@patternfly/chatbot 2.2.0-prerelease.11 → 2.2.0-prerelease.13

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 (93) hide show
  1. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.js +3 -1
  2. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.js +3 -1
  3. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.js +3 -1
  4. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +3 -1
  5. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +3 -1
  6. package/dist/cjs/ChatbotToggle/ChatbotToggle.js +3 -1
  7. package/dist/cjs/Message/Message.d.ts +12 -1
  8. package/dist/cjs/Message/Message.js +11 -6
  9. package/dist/cjs/Message/QuickResponse/QuickResponse.d.ts +3 -1
  10. package/dist/cjs/Message/QuickResponse/QuickResponse.js +2 -1
  11. package/dist/cjs/Message/UserFeedback/CloseButton.d.ts +10 -0
  12. package/dist/cjs/Message/UserFeedback/CloseButton.js +14 -0
  13. package/dist/cjs/Message/UserFeedback/UserFeedback.d.ts +39 -0
  14. package/dist/cjs/Message/UserFeedback/UserFeedback.js +55 -0
  15. package/dist/cjs/Message/UserFeedback/UserFeedback.test.d.ts +1 -0
  16. package/dist/cjs/Message/UserFeedback/UserFeedback.test.js +146 -0
  17. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.d.ts +42 -0
  18. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.js +117 -0
  19. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.test.d.ts +1 -0
  20. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.test.js +249 -0
  21. package/dist/cjs/MessageBar/AttachButton.js +3 -1
  22. package/dist/cjs/MessageBar/SendButton.js +3 -1
  23. package/dist/cjs/MessageBar/StopButton.js +3 -1
  24. package/dist/cjs/ResponseActions/ResponseActionButton.d.ts +4 -1
  25. package/dist/cjs/ResponseActions/ResponseActionButton.js +21 -6
  26. package/dist/cjs/ResponseActions/ResponseActions.d.ts +8 -2
  27. package/dist/cjs/ResponseActions/ResponseActions.js +7 -7
  28. package/dist/css/main.css +69 -11
  29. package/dist/css/main.css.map +1 -1
  30. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.js +3 -1
  31. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.js +3 -1
  32. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.js +3 -1
  33. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +3 -1
  34. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +3 -1
  35. package/dist/esm/ChatbotToggle/ChatbotToggle.js +3 -1
  36. package/dist/esm/Message/Message.d.ts +12 -1
  37. package/dist/esm/Message/Message.js +8 -3
  38. package/dist/esm/Message/QuickResponse/QuickResponse.d.ts +3 -1
  39. package/dist/esm/Message/QuickResponse/QuickResponse.js +2 -1
  40. package/dist/esm/Message/UserFeedback/CloseButton.d.ts +10 -0
  41. package/dist/esm/Message/UserFeedback/CloseButton.js +9 -0
  42. package/dist/esm/Message/UserFeedback/UserFeedback.d.ts +39 -0
  43. package/dist/esm/Message/UserFeedback/UserFeedback.js +50 -0
  44. package/dist/esm/Message/UserFeedback/UserFeedback.test.d.ts +1 -0
  45. package/dist/esm/Message/UserFeedback/UserFeedback.test.js +141 -0
  46. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.d.ts +42 -0
  47. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.js +112 -0
  48. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.test.d.ts +1 -0
  49. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.test.js +244 -0
  50. package/dist/esm/MessageBar/AttachButton.js +3 -1
  51. package/dist/esm/MessageBar/SendButton.js +3 -1
  52. package/dist/esm/MessageBar/StopButton.js +3 -1
  53. package/dist/esm/ResponseActions/ResponseActionButton.d.ts +4 -1
  54. package/dist/esm/ResponseActions/ResponseActionButton.js +18 -3
  55. package/dist/esm/ResponseActions/ResponseActions.d.ts +8 -2
  56. package/dist/esm/ResponseActions/ResponseActions.js +7 -7
  57. package/dist/tsconfig.tsbuildinfo +1 -1
  58. package/package.json +1 -1
  59. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedback.tsx +71 -0
  60. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedbackTimeout.tsx +27 -0
  61. package/patternfly-docs/content/extensions/chatbot/examples/Messages/Messages.md +37 -7
  62. package/patternfly-docs/content/extensions/chatbot/examples/UI/UI.md +3 -6
  63. package/patternfly-docs/content/extensions/chatbot/examples/demos/AttachmentDemos.md +14 -0
  64. package/patternfly-docs/content/extensions/chatbot/examples/demos/Feedback.tsx +104 -0
  65. package/src/AttachMenu/AttachMenu.scss +1 -1
  66. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.tsx +7 -1
  67. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss +8 -1
  68. package/src/ChatbotHeader/ChatbotHeaderCloseButton.tsx +7 -1
  69. package/src/ChatbotHeader/ChatbotHeaderMenu.tsx +7 -1
  70. package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.tsx +8 -1
  71. package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.tsx +8 -1
  72. package/src/ChatbotModal/ChatbotModal.scss +1 -1
  73. package/src/ChatbotToggle/ChatbotToggle.tsx +6 -1
  74. package/src/CodeModal/CodeModal.scss +1 -1
  75. package/src/FileDetails/FileDetails.scss +1 -1
  76. package/src/Message/CodeBlockMessage/CodeBlockMessage.scss +1 -1
  77. package/src/Message/Message.scss +1 -1
  78. package/src/Message/Message.tsx +24 -2
  79. package/src/Message/QuickResponse/QuickResponse.tsx +6 -2
  80. package/src/Message/UserFeedback/CloseButton.tsx +21 -0
  81. package/src/Message/UserFeedback/UserFeedback.scss +53 -0
  82. package/src/Message/UserFeedback/UserFeedback.test.tsx +257 -0
  83. package/src/Message/UserFeedback/UserFeedback.tsx +132 -0
  84. package/src/Message/UserFeedback/UserFeedbackComplete.test.tsx +255 -0
  85. package/src/Message/UserFeedback/UserFeedbackComplete.tsx +211 -0
  86. package/src/MessageBar/AttachButton.tsx +2 -0
  87. package/src/MessageBar/SendButton.tsx +2 -0
  88. package/src/MessageBar/StopButton.tsx +2 -0
  89. package/src/ResponseActions/ResponseActionButton.tsx +14 -2
  90. package/src/ResponseActions/ResponseActions.tsx +26 -2
  91. package/src/Settings/Settings.scss +2 -2
  92. package/src/SourceDetailsMenuItem/SourceDetailsMenuItem.scss +1 -1
  93. package/src/main.scss +1 -0
package/dist/css/main.css CHANGED
@@ -47,7 +47,7 @@
47
47
  width: 21px;
48
48
  }
49
49
  .pf-chatbot__menu .pf-v6-c-menu__item-description {
50
- font-weight: 500;
50
+ font-weight: var(--pf-t--global--font--weight--body--bold);
51
51
  }
52
52
  .pf-chatbot__menu .pf-v6-c-divider {
53
53
  padding: 0 var(--pf-t--global--spacer--md) 0 var(--pf-t--global--spacer--md);
@@ -189,7 +189,7 @@
189
189
  }
190
190
  .pf-chatbot__history .pf-chatbot__menu-item-header > .pf-v6-c-menu__group-title {
191
191
  color: var(--pf-t--global--text--color--subtle);
192
- font-weight: 500;
192
+ font-weight: var(--pf-t--global--font--weight--body--bold);
193
193
  font-size: var(--pf-t--global--icon--size--font--sm);
194
194
  --pf-v6-c-menu__group-title--PaddingInlineStart: var(--pf-t--global--spacer--sm);
195
195
  --pf-v6-c-menu__group-title--PaddingInlineEnd: var(--pf-t--global--spacer--sm);
@@ -276,6 +276,9 @@
276
276
  flex-direction: column;
277
277
  height: 70vh;
278
278
  }
279
+ .pf-chatbot__history.pf-v6-c-drawer .pf-v6-c-drawer__panel.pf-m-resizable .pf-v6-c-drawer__panel-main {
280
+ row-gap: var(--pf-v6-c-drawer__panel--RowGap);
281
+ }
279
282
 
280
283
  .pf-chatbot--docked .pf-chatbot__history.pf-v6-c-drawer {
281
284
  height: 100vh;
@@ -489,7 +492,7 @@
489
492
  }
490
493
  .pf-chatbot__chatbot-modal .pf-v6-c-button.pf-m-primary.pf-m-block,
491
494
  .pf-chatbot__chatbot-modal .pf-v6-c-button.pf-m-link.pf-m-block {
492
- --pf-v6-c-button--FontWeight: 500;
495
+ --pf-v6-c-button--FontWeight: var(--pf-t--global--font--weight--body--bold);
493
496
  }
494
497
  .pf-chatbot__chatbot-modal .pf-v6-c-modal-box__footer {
495
498
  padding-block-start: var(--pf-t--global--spacer--xl);
@@ -661,7 +664,7 @@
661
664
  border: none;
662
665
  --pf-v6-c-code-editor__tab--BorderStartEndRadius: 0;
663
666
  border-start-start-radius: var(--pf-t--global--border--radius--small);
664
- --pf-t--global--font--weight--body--default: 500;
667
+ --pf-t--global--font--weight--body--default: var(--pf-t--global--font--weight--body--bold);
665
668
  }
666
669
  .pf-chatbot__code-modal .pf-v6-c-code-editor__tab-icon {
667
670
  display: none;
@@ -777,7 +780,7 @@
777
780
  color: var(--pf-t--global--text--color--subtle);
778
781
  display: flex;
779
782
  font-size: var(--pf-t--global--icon--size--font--xs);
780
- font-weight: 500;
783
+ font-weight: var(--pf-t--global--font--weight--body--bold);
781
784
  }
782
785
 
783
786
  .pf-chatbot__code-icon {
@@ -955,7 +958,7 @@
955
958
  .pf-chatbot__message-meta .pf-v6-c-label {
956
959
  --pf-v6-c-label--m-outline--BorderColor: var(--pf-t--chatbot-message--meta--label--color);
957
960
  --pf-v6-c-label--FontSize: var(--pf-t--global--font--size--xs);
958
- font-weight: 500;
961
+ font-weight: var(--pf-t--global--font--weight--body--bold);
959
962
  }
960
963
  .pf-chatbot__message-meta .pf-v6-c-label .pf-v6-c-label__content {
961
964
  --pf-v6-c-label--Color: var(--pf-t--chatbot-message--meta--label--color);
@@ -1061,7 +1064,7 @@
1061
1064
  justify-content: space-between;
1062
1065
  width: 100%;
1063
1066
  font-size: var(--pf-t--global--font--size--sm);
1064
- font-weight: 500;
1067
+ font-weight: var(--pf-t--global--font--weight--body--bold);
1065
1068
  }
1066
1069
  .pf-chatbot__message-code-block .pf-v6-c-code-block__header .pf-chatbot__button--copy.pf-v6-c-button {
1067
1070
  color: var(--pf-t--color--white);
@@ -1164,7 +1167,7 @@
1164
1167
  justify-content: space-between;
1165
1168
  width: 100%;
1166
1169
  font-size: var(--pf-t--global--font--size--sm);
1167
- font-weight: 500;
1170
+ font-weight: var(--pf-t--global--font--weight--body--bold);
1168
1171
  }
1169
1172
  .pf-chatbot__message-code-block .pf-v6-c-code-block__header .pf-chatbot__button--copy.pf-v6-c-button {
1170
1173
  color: var(--pf-t--color--white);
@@ -1353,6 +1356,61 @@
1353
1356
  --pf-v6-c-label--m-clickable--hover--BorderWidth: 0;
1354
1357
  }
1355
1358
 
1359
+ .pf-chatbot__feedback-card {
1360
+ box-shadow: var(--pf-t--global--box-shadow--sm);
1361
+ --pf-v6-c-card--BorderWidth: 0;
1362
+ max-width: 27.5rem;
1363
+ }
1364
+
1365
+ .pf-chatbot__feedback-complete-body {
1366
+ display: flex;
1367
+ flex-direction: column;
1368
+ gap: var(--pf-t--global--spacer--lg);
1369
+ align-items: center;
1370
+ }
1371
+
1372
+ .pf-chatbot__feedback-complete-text {
1373
+ display: flex;
1374
+ align-items: center;
1375
+ justify-content: center;
1376
+ flex-direction: column;
1377
+ gap: var(--pf-t--global--spacer--sm);
1378
+ --pf-v6-c-card--first-child--PaddingBlockStart: 0;
1379
+ --pf-v6-c-card__title--not--last-child--PaddingBlockEnd: 0;
1380
+ }
1381
+
1382
+ .pf-chatbot__feedback-complete-image {
1383
+ display: flex;
1384
+ align-items: center;
1385
+ justify-content: center;
1386
+ }
1387
+
1388
+ .pf-chatbot__feedback-complete-body {
1389
+ text-align: center;
1390
+ }
1391
+
1392
+ .pf-chatbot__feedback-complete-title {
1393
+ font-family: var(--pf-t--global--font--family--heading);
1394
+ font-size: var(--pf-t--global--font--size--lg);
1395
+ font-weight: var(--pf-t--global--font--weight--body--bold);
1396
+ line-height: var(--pf-t--global--font--line-height--heading);
1397
+ }
1398
+
1399
+ .pf-chatbot__feedback-card-title {
1400
+ font-family: var(--pf-t--global--font--family--heading);
1401
+ font-size: var(--pf-t--global--font--size--md);
1402
+ font-weight: var(--pf-t--global--font--weight--body--bold);
1403
+ line-height: var(--pf-t--global--font--line-height--heading);
1404
+ }
1405
+
1406
+ .pf-chatbot__feedback-card-form {
1407
+ --pf-v6-c-form__group--m-action--MarginBlockStart: 0;
1408
+ }
1409
+
1410
+ .pf-chatbot__feedback-card-optional {
1411
+ font-weight: initial;
1412
+ }
1413
+
1356
1414
  .pf-v6-c-button.pf-chatbot__button--attach {
1357
1415
  border-radius: var(--pf-t--global--border--radius--pill);
1358
1416
  padding: var(--pf-t--global--spacer--md);
@@ -1683,7 +1741,7 @@
1683
1741
  justify-content: space-between;
1684
1742
  border-bottom: 1px solid var(--pf-t--global--border--color--default);
1685
1743
  padding: var(--pf-t--global--spacer--lg);
1686
- font-weight: 500;
1744
+ font-weight: var(--pf-t--global--font--weight--body--bold);
1687
1745
  }
1688
1746
 
1689
1747
  .pf-chatbot__settings-form-row:last-of-type {
@@ -1693,7 +1751,7 @@
1693
1751
  .pf-chatbot__settings--title {
1694
1752
  font-family: var(--pf-t--global--font--family--heading);
1695
1753
  font-size: var(--pf-t--global--font--size--xl);
1696
- font-weight: 500;
1754
+ font-weight: var(--pf-t--global--font--weight--body--bold);
1697
1755
  text-align: center;
1698
1756
  }
1699
1757
 
@@ -1767,7 +1825,7 @@
1767
1825
  .pf-chatbot__source-details-subhead {
1768
1826
  color: var(--pf-t--global--text--color--subtle);
1769
1827
  font-size: var(--pf-t--global--icon--size--font--xs);
1770
- font-weight: 500;
1828
+ font-weight: var(--pf-t--global--font--weight--body--bold);
1771
1829
  }
1772
1830
 
1773
1831
  .pf-chatbot__source-details-heading {
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../src/AttachMenu/AttachMenu.scss","../../src/Chatbot/Chatbot.scss","../../src/ChatbotAlert/ChatbotAlert.scss","../../src/ChatbotContent/ChatbotContent.scss","../../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss","../../src/ChatbotFooter/ChatbotFootnote.scss","../../src/ChatbotFooter/ChatbotFooter.scss","../../src/ChatbotHeader/ChatbotHeader.scss","../../src/ChatbotModal/ChatbotModal.scss","../../src/ChatbotPopover/ChatbotPopover.scss","../../src/ChatbotToggle/ChatbotToggle.scss","../../src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.scss","../../src/CodeModal/CodeModal.scss","../../src/Compare/Compare.scss","../../src/FileDetails/FileDetails.scss","../../src/FileDetailsLabel/FileDetailsLabel.scss","../../src/FileDropZone/FileDropZone.scss","../../src/Message/Message.scss","../../src/Message/MessageLoading.scss","../../src/Message/CodeBlockMessage/CodeBlockMessage.scss","../../src/Message/TextMessage/TextMessage.scss","../../src/Message/ListMessage/ListMessage.scss","../../src/Message/QuickStarts/QuickStartTile.scss","../../src/Message/QuickResponse/QuickResponse.scss","../../src/MessageBar/AttachButton.scss","../../src/MessageBar/MicrophoneButton.scss","../../src/MessageBar/SendButton.scss","../../src/MessageBar/StopButton.scss","../../src/MessageBar/MessageBar.scss","../../src/MessageBox/JumpButton.scss","../../src/MessageBox/MessageBox.scss","../../src/ResponseActions/ResponseActions.scss","../../src/Settings/Settings.scss","../../src/SourcesCard/SourcesCard.scss","../../src/SourceDetailsMenuItem/SourceDetailsMenuItem.scss","../../src/TermsOfUse/TermsOfUse.scss","../../src/main.scss"],"names":[],"mappings":"AAAA;EACE;EACA;;;AAGF;AACE;AAsBA;AASA;;AA9BA;EACE;EACA;EACA;EACA;;AAEF;EACE;;AAGF;AACE;;AACA;EACE;EACA;EACA;EACA;EACA;;AAKJ;EACE;;AAGF;EACE;;AAIF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;;ACxDJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;;AAKF;EAvBF;IAwBI;IACA;;;AAIF;EA7BF;IA8BI;;;;AAOJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;EAXF;IAYI;;;;AAOJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;;AAIF;EAdF;IAeI;;;;AAIJ;EACE;;;AAGF;AAAA;AAAA;EAGE;;;AC1GF;EACE;EACA;EACA;;;ACAF;EACE;EACA;EACA;EACA;EACA;;AAGA;EARF;IASI;;;;AAOJ;EAGI;AAAA;IACE;IACA;;;ACpBJ;EACE;EACA;;AAIF;EACE;EACA;;AAKF;EACE;EACA;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEF;EACE;;AAGF;EACE;;AAGF;EACE;;;AAMJ;EACE;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;AAIF;EACE;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAKA;EACE;EACA;EACA;EACA;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;;AAQF;EACE;;;AAQF;EACE;;AACA;EACE;;;AASJ;EACE;;AACA;EACE;EACA;;AAEF;EACE;;;AASF;AAAA;AAAA;EACE;;;AChLN;EACE;;AAEA;EACE;EACA;;;ACHJ;EACE;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAMF;EAGI;AAAA;IACE;;EACA;AAAA;IACE;;EAGJ;AAAA;IACE;IACA;IACA;;;AAUF;EACE;;AAGJ;EACE;;;ACjDJ;EACE;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;;AAKJ;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;;;AAQN;EAGI;AAAA;IACE;;EAEF;AAAA;IACE;;;AASJ;EACE;;AAEF;EACE;;;AAOJ;AAAA;EAEE;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAGF;AAAA;AAAA;AAAA;EAEE;EACA;EACA;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;;AAOJ;EACE;;;AAOJ;AAAA;EAEE;;;AAGF;EACE;;;AAGF;EACE;;;AC1IF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEF;AAAA;EAEE;;AAEF;EACE;EACA;;AAEF;EACE;;;AAOJ;EACE;AAAA;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;;;AAGJ;EACE;AAAA;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;;;AAOJ;EACE;;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAQE;EACE;;;AAQN;EACE;;;ACvFA;EAA0B;;AAMxB;EAAM;;AACN;EAAuB;;AACvB;EACE;;AAIF;EACE;EACA;;AAEF;EACE;;;ACnBN;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;;AAGF;EACE;;AAIF;EACE;EACA;;;AAIJ;EACE;EACA;EACA;;;AC3BF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;;AAOJ;EAIM;AAAA;IACE;IACA;;;AC1CN;EACE;EACA;EACA;EACA;;AAEF;EACE;AACA;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;;AAEF;EACE;;AAEF;EACE;;;AASA;EACE;EACA;;;AAKN;EACE;;;AAGF;EACE;;;AClFF;EACE;EACA;EACA;EACA;;;AAEF;EACE;;AAEA;EACE;EACA;EACA;;;AAGJ;EACE;EACA;EACA;;AAEA;EALF;IAMI;;;AAGF;EACE;;AAEA;EAHF;IAII;;;;AAKN;EACE;;AAEA;EACE;;AAGF;EACE;;AAIA;EADF;IAEI;;;;AAIN;EACE;;AAEA;EAHF;IAII;;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EARF;IASI;IACA;IACA;;;;ACrEJ;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAIF;EACE;EACA;EACA;EACA;EACA;;;ACvBF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EAEA;EACA;EACA;;AACA;EACE;;AAGF;AAAA;EAEE;EACA;;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;;;AAKF;EACE;;AAGF;EACE;;;AAIJ;AAAA;EAEE;EACA;;AAEA;AAAA;EACE;;;AAKF;EACE;;;AAMF;AAAA;EACE;;;AC/DJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;;AAGA;EANF;IAOI;;;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;AACA;EACE;EACA;EACA;EACA;;;AAME;EADF;IAEI;IACA;IACA;;EAEA;IACE;;;;AChDR;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;AAIA;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAKF;EACE;EACA;;AAKF;EACE;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;;AAGA;EACE;EACA;EACA;;AAIF;EACE;EACA;EACA;;AAEA;EACE;;AAKJ;EACE;;AAEF;EACE;;AAMJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;;AAMJ;EACE;EACA;EACA;;;ACrGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EAEE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;IACE;;EAEF;IAEE;;;;AC9CN;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;EAEE;;AAMN;EACE;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEE;EACA;EACA;;AAEF;EACE;EACA;EACA;;AAGF;EACE;EACA;;;AAKN;EACE;EACA;;;AC1EE;EACE;;;AAMN;EACE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;EACE;EACA;;;AAKF;EACE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;EACE;;;AD5CN;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;EAEE;;AAMN;EACE;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEE;EACA;EACA;;AAEF;EACE;EACA;EACA;;AAGF;EACE;EACA;;;AAKN;EACE;EACA;;;AC1EE;EACE;;;AAMN;EACE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;EACE;EACA;;;AAKF;EACE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;EACE;;;AC3CN;AAAA;EAEE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;;AAKF;AAAA;EAEE;EACA;EACA;;;AHnBJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EAEE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;IACE;;EAEF;IAEE;;;;AIjDN;EACE;EACA;EACA;;AAEA;EALF;IAMI;IACA;;;AAKA;EACE;;;AAOF;EACE;;;ACpBJ;EACE;;AAEA;EAHF;IAII;;;AAGF;EAPF;IAQI;;;AAKF;EACE;EACA;;AAIJ;AAAA;EAEE;EACA;;AAIF;EACE;EACA;EACA;;;AC3BJ;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAKA;EACE;;;ACbN;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAMA;EACE;;AAKJ;EACE;EACA;;AAGA;EACE;;AAKA;EACE;;;AAMR;EACE;IACE;;EAEF;IACE;;;AC1CJ;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EAEE;EACA;;AAEA;EACE;;;AAMJ;EACE;;AACA;EACE;;AAIJ;EACE;EACA;;AAGF;AAAA;EAEE;;;AAIJ;EACE;IACE;IACA;;EAEF;IACE;IACA;;;AC/CJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EAEE;;;ACTJ;EACE;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACxEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;EAIF;;AAEA;EACE;;AAGF;EAEE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAIF;EA3CF;IA4CI;;;;AC9CJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAIA;EAVF;IAWI;;;AAGF;EAdF;IAeI;;;;AAIJ;EACE;;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EAGI;AAAA;IACE;IACA;;;ADtCN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;EAIF;;AAEA;EACE;;AAGF;EAEE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAIF;EA3CF;IA4CI;;;;AEhDJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEF;EACE;EACA;;;AAKN;EACE;EACA;;;AC1BF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AChCF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;AAAA;EACE;;AAGJ;EACE;EACA;;AAKA;AAAA;EACE;;AAGJ;EACE;;;ACrER;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAIF;EACE;EACA;;;AAGA;EACE;;;AAIJ;EACE;;;AAGF;EACE;;;AC9BA;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAIF;EACE;IACE;IACA;;;;AAKN;AAAA;EAGE;;AAGE;AAAA;EACE;;AAIJ;AAAA;EACE;;;AC/BJ;EAKE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EASA;EACA;EAEA;EAEA;EAEA;AAAA;AAAA;AAAA;AAAA;AAAA;EAMA;EAKA;EAEA;EACA;EACA;EAEA;EACA;EACA;EAEA;;;AAMF;EACE;EACA;EAEA;EAEA;EACA;;;AAGF;EACE;EACA","file":"main.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../../src/AttachMenu/AttachMenu.scss","../../src/Chatbot/Chatbot.scss","../../src/ChatbotAlert/ChatbotAlert.scss","../../src/ChatbotContent/ChatbotContent.scss","../../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss","../../src/ChatbotFooter/ChatbotFootnote.scss","../../src/ChatbotFooter/ChatbotFooter.scss","../../src/ChatbotHeader/ChatbotHeader.scss","../../src/ChatbotModal/ChatbotModal.scss","../../src/ChatbotPopover/ChatbotPopover.scss","../../src/ChatbotToggle/ChatbotToggle.scss","../../src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.scss","../../src/CodeModal/CodeModal.scss","../../src/Compare/Compare.scss","../../src/FileDetails/FileDetails.scss","../../src/FileDetailsLabel/FileDetailsLabel.scss","../../src/FileDropZone/FileDropZone.scss","../../src/Message/Message.scss","../../src/Message/MessageLoading.scss","../../src/Message/CodeBlockMessage/CodeBlockMessage.scss","../../src/Message/TextMessage/TextMessage.scss","../../src/Message/ListMessage/ListMessage.scss","../../src/Message/QuickStarts/QuickStartTile.scss","../../src/Message/QuickResponse/QuickResponse.scss","../../src/Message/UserFeedback/UserFeedback.scss","../../src/MessageBar/AttachButton.scss","../../src/MessageBar/MicrophoneButton.scss","../../src/MessageBar/SendButton.scss","../../src/MessageBar/StopButton.scss","../../src/MessageBar/MessageBar.scss","../../src/MessageBox/JumpButton.scss","../../src/MessageBox/MessageBox.scss","../../src/ResponseActions/ResponseActions.scss","../../src/Settings/Settings.scss","../../src/SourcesCard/SourcesCard.scss","../../src/SourceDetailsMenuItem/SourceDetailsMenuItem.scss","../../src/TermsOfUse/TermsOfUse.scss","../../src/main.scss"],"names":[],"mappings":"AAAA;EACE;EACA;;;AAGF;AACE;AAsBA;AASA;;AA9BA;EACE;EACA;EACA;EACA;;AAEF;EACE;;AAGF;AACE;;AACA;EACE;EACA;EACA;EACA;EACA;;AAKJ;EACE;;AAGF;EACE;;AAIF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;;ACxDJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;;AAKF;EAvBF;IAwBI;IACA;;;AAIF;EA7BF;IA8BI;;;;AAOJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;EAXF;IAYI;;;;AAOJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;;AAIF;EAdF;IAeI;;;;AAIJ;EACE;;;AAGF;AAAA;AAAA;EAGE;;;AC1GF;EACE;EACA;EACA;;;ACAF;EACE;EACA;EACA;EACA;EACA;;AAGA;EARF;IASI;;;;AAOJ;EAGI;AAAA;IACE;IACA;;;ACpBJ;EACE;EACA;;AAIF;EACE;EACA;;AAKF;EACE;EACA;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEF;EACE;;AAGF;EACE;;AAGF;EACE;;;AAMJ;EACE;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;AAIF;EACE;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAKA;EACE;EACA;EACA;EACA;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;AAKA;EACE;;;AASJ;EACE;;;AAQF;EACE;;AACA;EACE;;;AASJ;EACE;;AACA;EACE;EACA;;AAEF;EACE;;;AASF;AAAA;AAAA;EACE;;;ACvLN;EACE;;AAEA;EACE;EACA;;;ACHJ;EACE;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAMF;EAGI;AAAA;IACE;;EACA;AAAA;IACE;;EAGJ;AAAA;IACE;IACA;IACA;;;AAUF;EACE;;AAGJ;EACE;;;ACjDJ;EACE;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;;AAKJ;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;;;AAQN;EAGI;AAAA;IACE;;EAEF;AAAA;IACE;;;AASJ;EACE;;AAEF;EACE;;;AAOJ;AAAA;EAEE;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAGF;AAAA;AAAA;AAAA;EAEE;EACA;EACA;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;;AAOJ;EACE;;;AAOJ;AAAA;EAEE;;;AAGF;EACE;;;AAGF;EACE;;;AC1IF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEF;AAAA;EAEE;;AAEF;EACE;EACA;;AAEF;EACE;;;AAOJ;EACE;AAAA;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;;;AAGJ;EACE;AAAA;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;;;AAOJ;EACE;;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAQE;EACE;;;AAQN;EACE;;;ACvFA;EAA0B;;AAMxB;EAAM;;AACN;EAAuB;;AACvB;EACE;;AAIF;EACE;EACA;;AAEF;EACE;;;ACnBN;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;;AAGF;EACE;;AAIF;EACE;EACA;;;AAIJ;EACE;EACA;EACA;;;AC3BF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;;AAOJ;EAIM;AAAA;IACE;IACA;;;AC1CN;EACE;EACA;EACA;EACA;;AAEF;EACE;AACA;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;;AAEF;EACE;;AAEF;EACE;;;AASA;EACE;EACA;;;AAKN;EACE;;;AAGF;EACE;;;AClFF;EACE;EACA;EACA;EACA;;;AAEF;EACE;;AAEA;EACE;EACA;EACA;;;AAGJ;EACE;EACA;EACA;;AAEA;EALF;IAMI;;;AAGF;EACE;;AAEA;EAHF;IAII;;;;AAKN;EACE;;AAEA;EACE;;AAGF;EACE;;AAIA;EADF;IAEI;;;;AAIN;EACE;;AAEA;EAHF;IAII;;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EARF;IASI;IACA;IACA;;;;ACrEJ;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAIF;EACE;EACA;EACA;EACA;EACA;;;ACvBF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EAEA;EACA;EACA;;AACA;EACE;;AAGF;AAAA;EAEE;EACA;;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;;;AAKF;EACE;;AAGF;EACE;;;AAIJ;AAAA;EAEE;EACA;;AAEA;AAAA;EACE;;;AAKF;EACE;;;AAMF;AAAA;EACE;;;AC/DJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;;AAGA;EANF;IAOI;;;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;AACA;EACE;EACA;EACA;EACA;;;AAME;EADF;IAEI;IACA;IACA;;EAEA;IACE;;;;AChDR;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;AAIA;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAKF;EACE;EACA;;AAKF;EACE;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;;AAGA;EACE;EACA;EACA;;AAIF;EACE;EACA;EACA;;AAEA;EACE;;AAKJ;EACE;;AAEF;EACE;;AAMJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;;AAMJ;EACE;EACA;EACA;;;ACrGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EAEE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;IACE;;EAEF;IAEE;;;;AC9CN;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;EAEE;;AAMN;EACE;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEE;EACA;EACA;;AAEF;EACE;EACA;EACA;;AAGF;EACE;EACA;;;AAKN;EACE;EACA;;;AC1EE;EACE;;;AAMN;EACE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;EACE;EACA;;;AAKF;EACE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;EACE;;;AD5CN;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;EAEE;;AAMN;EACE;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEE;EACA;EACA;;AAEF;EACE;EACA;EACA;;AAGF;EACE;EACA;;;AAKN;EACE;EACA;;;AC1EE;EACE;;;AAMN;EACE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;EACE;EACA;;;AAKF;EACE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;EACE;;;AC3CN;AAAA;EAEE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;;AAKF;AAAA;EAEE;EACA;EACA;;;AHnBJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EAEE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;IACE;;EAEF;IAEE;;;;AIjDN;EACE;EACA;EACA;;AAEA;EALF;IAMI;IACA;;;AAKA;EACE;;;AAOF;EACE;;;ACpBJ;EACE;;AAEA;EAHF;IAII;;;AAGF;EAPF;IAQI;;;AAKF;EACE;EACA;;AAIJ;AAAA;EAEE;EACA;;AAIF;EACE;EACA;EACA;;;AC7BJ;EACE;EACA;EACA;;;AAIF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;EACA;;;AAIF;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AChDF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAKA;EACE;;;ACbN;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAMA;EACE;;AAKJ;EACE;EACA;;AAGA;EACE;;AAKA;EACE;;;AAMR;EACE;IACE;;EAEF;IACE;;;AC1CJ;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EAEE;EACA;;AAEA;EACE;;;AAMJ;EACE;;AACA;EACE;;AAIJ;EACE;EACA;;AAGF;AAAA;EAEE;;;AAIJ;EACE;IACE;IACA;;EAEF;IACE;IACA;;;AC/CJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EAEE;;;ACTJ;EACE;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACxEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;EAIF;;AAEA;EACE;;AAGF;EAEE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAIF;EA3CF;IA4CI;;;;AC9CJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAIA;EAVF;IAWI;;;AAGF;EAdF;IAeI;;;;AAIJ;EACE;;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EAGI;AAAA;IACE;IACA;;;ADtCN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;EAIF;;AAEA;EACE;;AAGF;EAEE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAIF;EA3CF;IA4CI;;;;AEhDJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEF;EACE;EACA;;;AAKN;EACE;EACA;;;AC1BF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AChCF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;AAAA;EACE;;AAGJ;EACE;EACA;;AAKA;AAAA;EACE;;AAGJ;EACE;;;ACrER;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAIF;EACE;EACA;;;AAGA;EACE;;;AAIJ;EACE;;;AAGF;EACE;;;AC9BA;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAIF;EACE;IACE;IACA;;;;AAKN;AAAA;EAGE;;AAGE;AAAA;EACE;;AAIJ;AAAA;EACE;;;AC9BJ;EAKE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EASA;EACA;EAEA;EAEA;EAEA;AAAA;AAAA;AAAA;AAAA;AAAA;EAMA;EAKA;EAEA;EACA;EACA;EAEA;EACA;EACA;EAEA;;;AAMF;EACE;EACA;EAEA;EAEA;EACA;;;AAGF;EACE;EACA","file":"main.css"}
@@ -7,7 +7,9 @@ import { Tooltip, MenuToggle, Dropdown } from '@patternfly/react-core';
7
7
  import EllipsisIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
8
8
  export const ChatbotConversationHistoryDropdown = ({ menuItems, menuClassName, onSelect, label }) => {
9
9
  const [isOpen, setIsOpen] = React.useState(false);
10
- const toggle = (toggleRef) => (React.createElement(Tooltip, { className: "pf-chatbot__tooltip", content: label !== null && label !== void 0 ? label : 'Conversation options', position: "bottom" },
10
+ const toggle = (toggleRef) => (React.createElement(Tooltip, { className: "pf-chatbot__tooltip", content: label !== null && label !== void 0 ? label : 'Conversation options', position: "bottom",
11
+ // prevents VO announcements of both aria label and tooltip
12
+ aria: "none" },
11
13
  React.createElement(MenuToggle, { className: "pf-chatbot__history-actions", variant: "plain", "aria-label": label !== null && label !== void 0 ? label : 'Conversation options', ref: toggleRef, isExpanded: isOpen, onClick: () => setIsOpen(!isOpen), role: "menuitem" },
12
14
  React.createElement(EllipsisIcon, null))));
13
15
  return (React.createElement(Dropdown, { className: `pf-chatbot__selections ${menuClassName !== null && menuClassName !== void 0 ? menuClassName : ''}`, isOpen: isOpen, onSelect: (props) => {
@@ -2,7 +2,9 @@ import React from 'react';
2
2
  import { Button, Icon, Tooltip } from '@patternfly/react-core';
3
3
  import { CloseIcon } from '@patternfly/react-icons';
4
4
  const ChatbotHeaderCloseButtonBase = ({ className, onClick, tooltipProps, menuAriaLabel = 'Close', innerRef, tooltipContent = 'Close' }) => (React.createElement("div", { className: `pf-chatbot__menu ${className}` },
5
- React.createElement(Tooltip, Object.assign({ content: tooltipContent, position: "bottom" }, tooltipProps),
5
+ React.createElement(Tooltip, Object.assign({ content: tooltipContent, position: "bottom",
6
+ // prevents VO announcements of both aria label and tooltip
7
+ aria: "none" }, tooltipProps),
6
8
  React.createElement(Button, { className: "pf-chatbot__button--toggle-menu", variant: "plain", onClick: onClick, "aria-label": menuAriaLabel, ref: innerRef, icon: React.createElement(Icon, { size: "xl", isInline: true },
7
9
  React.createElement(CloseIcon, null)) }))));
8
10
  export const ChatbotHeaderCloseButton = React.forwardRef((props, ref) => (React.createElement(ChatbotHeaderCloseButtonBase, Object.assign({ innerRef: ref }, props))));
@@ -2,7 +2,9 @@ import React from 'react';
2
2
  import { Button, Icon, Tooltip } from '@patternfly/react-core';
3
3
  import BarsIcon from '@patternfly/react-icons/dist/esm/icons/bars-icon';
4
4
  const ChatbotHeaderMenuBase = ({ className, onMenuToggle, tooltipProps, menuAriaLabel = 'Toggle menu', innerRef, tooltipContent = 'Menu' }) => (React.createElement("div", { className: `pf-chatbot__menu ${className}` },
5
- React.createElement(Tooltip, Object.assign({ content: tooltipContent, position: "bottom" }, tooltipProps),
5
+ React.createElement(Tooltip, Object.assign({ content: tooltipContent, position: "bottom",
6
+ // prevents VO announcements of both aria label and tooltip
7
+ aria: "none" }, tooltipProps),
6
8
  React.createElement(Button, { className: "pf-chatbot__button--toggle-menu", variant: "plain", onClick: onMenuToggle, "aria-label": menuAriaLabel, ref: innerRef, icon: React.createElement(Icon, { size: "xl", isInline: true },
7
9
  React.createElement(BarsIcon, null)) }))));
8
10
  export const ChatbotHeaderMenu = React.forwardRef((props, ref) => (React.createElement(ChatbotHeaderMenuBase, Object.assign({ innerRef: ref }, props))));
@@ -15,7 +15,9 @@ import EllipsisIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon
15
15
  export const ChatbotHeaderOptionsDropdown = (_a) => {
16
16
  var { className, children, onSelect, tooltipProps, menuToggleAriaLabel = 'Chatbot options' } = _a, props = __rest(_a, ["className", "children", "onSelect", "tooltipProps", "menuToggleAriaLabel"]);
17
17
  const [isOptionsMenuOpen, setIsOptionsMenuOpen] = React.useState(false);
18
- const toggle = (toggleRef) => (React.createElement(Tooltip, Object.assign({ className: "pf-chatbot__tooltip", content: "Chatbot options", position: "bottom" }, tooltipProps),
18
+ const toggle = (toggleRef) => (React.createElement(Tooltip, Object.assign({ className: "pf-chatbot__tooltip", content: "Chatbot options", position: "bottom",
19
+ // prevents VO announcements of both aria label and tooltip
20
+ aria: "none" }, tooltipProps),
19
21
  React.createElement(MenuToggle, { className: "pf-chatbot__button--toggle-options", variant: "plain", "aria-label": menuToggleAriaLabel, ref: toggleRef, icon: React.createElement(Icon, { iconSize: "xl", isInline: true },
20
22
  React.createElement(EllipsisIcon, null)), isExpanded: isOptionsMenuOpen, onClick: () => setIsOptionsMenuOpen(!isOptionsMenuOpen) })));
21
23
  return (React.createElement(Dropdown, Object.assign({ className: `pf-chatbot__options ${className !== null && className !== void 0 ? className : ''}`, isOpen: isOptionsMenuOpen, onSelect: (e, value) => {
@@ -15,7 +15,9 @@ export const ChatbotHeaderSelectorDropdown = (_a) => {
15
15
  var { value, className, children, onSelect, tooltipProps, tooltipContent = 'Chatbot selector', menuToggleAriaLabel } = _a, props = __rest(_a, ["value", "className", "children", "onSelect", "tooltipProps", "tooltipContent", "menuToggleAriaLabel"]);
16
16
  const [isOptionsMenuOpen, setIsOptionsMenuOpen] = React.useState(false);
17
17
  const [defaultAriaLabel, setDefaultAriaLabel] = React.useState('Chatbot selector');
18
- const toggle = (toggleRef) => (React.createElement(Tooltip, Object.assign({ className: "pf-chatbot__tooltip", content: tooltipContent, position: "bottom" }, tooltipProps),
18
+ const toggle = (toggleRef) => (React.createElement(Tooltip, Object.assign({ className: "pf-chatbot__tooltip", content: tooltipContent, position: "bottom",
19
+ // prevents VO announcements of both aria label and tooltip
20
+ aria: "none" }, tooltipProps),
19
21
  React.createElement(MenuToggle, { variant: "secondary", "aria-label": menuToggleAriaLabel !== null && menuToggleAriaLabel !== void 0 ? menuToggleAriaLabel : defaultAriaLabel, ref: toggleRef, isExpanded: isOptionsMenuOpen, onClick: () => setIsOptionsMenuOpen(!isOptionsMenuOpen) }, value)));
20
22
  return (React.createElement(Dropdown, Object.assign({ className: `pf-chatbot__selections ${className !== null && className !== void 0 ? className : ''}`, isOpen: isOptionsMenuOpen, onSelect: (e, value) => {
21
23
  onSelect && onSelect(e, value);
@@ -23,7 +23,9 @@ const ChatbotToggleBase = (_a) => {
23
23
  // Configure icon
24
24
  const closedIcon = ClosedToggleIcon ? React.createElement(ClosedToggleIcon, null) : React.createElement(ChatIcon, null);
25
25
  const icon = isChatbotVisible ? React.createElement(AngleDownIcon, { "data-testid": openIconTestId }) : closedIcon;
26
- return (React.createElement(Tooltip, Object.assign({ content: tooltipLabel }, tooltipProps),
26
+ return (React.createElement(Tooltip, Object.assign({ content: tooltipLabel,
27
+ // prevents VO announcements of both aria label and tooltip
28
+ aria: "none" }, tooltipProps),
27
29
  React.createElement(Button, Object.assign({ className: `pf-chatbot__button ${isChatbotVisible ? 'pf-chatbot__button--active' : ''} ${isRound ? 'pf-chatbot__button--round' : ''} ${className ? className : ''}`, variant: "plain", "aria-label": toggleButtonLabel || `${tooltipLabel} toggle`, onClick: onToggleChatbot, "aria-expanded": isChatbotVisible, icon: React.createElement(Icon, { isInline: true }, icon), ref: innerRef }, props))));
28
30
  };
29
31
  const ChatbotToggle = React.forwardRef((props, ref) => (React.createElement(ChatbotToggleBase, Object.assign({ innerRef: ref }, props))));
@@ -4,6 +4,8 @@ import { ActionProps } from '../ResponseActions/ResponseActions';
4
4
  import { SourcesCardProps } from '../SourcesCard';
5
5
  import { QuickStart, QuickstartAction } from './QuickStarts/types';
6
6
  import QuickResponse from './QuickResponse/QuickResponse';
7
+ import { UserFeedbackProps } from './UserFeedback/UserFeedback';
8
+ import { UserFeedbackCompleteProps } from './UserFeedback/UserFeedbackComplete';
7
9
  export interface MessageAttachment {
8
10
  /** Name of file attached to the message */
9
11
  name: string;
@@ -57,6 +59,10 @@ export interface MessageProps extends Omit<React.HTMLProps<HTMLDivElement>, 'rol
57
59
  quickResponses?: QuickResponse[];
58
60
  /** Props for quick responses container */
59
61
  quickResponseContainerProps?: Omit<LabelGroupProps, 'ref'>;
62
+ /** Props for user feedback card */
63
+ userFeedbackForm?: Omit<UserFeedbackProps, 'ref'>;
64
+ /** Props for user feedback response */
65
+ userFeedbackComplete?: Omit<UserFeedbackCompleteProps, 'ref'>;
60
66
  /** Whether avatar is round */
61
67
  hasRoundAvatar?: boolean;
62
68
  /** Any additional props applied to the avatar, for additional customization */
@@ -74,6 +80,11 @@ export interface MessageProps extends Omit<React.HTMLProps<HTMLDivElement>, 'rol
74
80
  onClick?: () => void;
75
81
  action?: QuickstartAction;
76
82
  };
83
+ /** Turns the container into a live region so that changes to content within the Message, such as appending a feedback card, are reliably announced to assistive technology. */
84
+ isLiveRegion?: boolean;
85
+ /** Ref applied to message */
86
+ innerRef?: React.Ref<HTMLDivElement>;
77
87
  }
78
- export declare const Message: React.FunctionComponent<MessageProps>;
88
+ export declare const MessageBase: React.FunctionComponent<MessageProps>;
89
+ declare const Message: React.ForwardRefExoticComponent<Omit<MessageProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
79
90
  export default Message;
@@ -27,8 +27,10 @@ import UnorderedListMessage from './ListMessage/UnorderedListMessage';
27
27
  import OrderedListMessage from './ListMessage/OrderedListMessage';
28
28
  import QuickStartTile from './QuickStarts/QuickStartTile';
29
29
  import QuickResponse from './QuickResponse/QuickResponse';
30
- export const Message = (_a) => {
31
- var { role, content, name, avatar, timestamp, isLoading, actions, sources, botWord = 'AI', loadingWord = 'Loading message', codeBlockProps, quickResponses, quickResponseContainerProps = { numLabels: 5 }, attachments, hasRoundAvatar = true, avatarProps, quickStarts } = _a, props = __rest(_a, ["role", "content", "name", "avatar", "timestamp", "isLoading", "actions", "sources", "botWord", "loadingWord", "codeBlockProps", "quickResponses", "quickResponseContainerProps", "attachments", "hasRoundAvatar", "avatarProps", "quickStarts"]);
30
+ import UserFeedback from './UserFeedback/UserFeedback';
31
+ import UserFeedbackComplete from './UserFeedback/UserFeedbackComplete';
32
+ export const MessageBase = (_a) => {
33
+ var { role, content, name, avatar, timestamp, isLoading, actions, sources, botWord = 'AI', loadingWord = 'Loading message', codeBlockProps, quickResponses, quickResponseContainerProps = { numLabels: 5 }, attachments, hasRoundAvatar = true, avatarProps, quickStarts, userFeedbackForm, userFeedbackComplete, isLiveRegion = true, innerRef } = _a, props = __rest(_a, ["role", "content", "name", "avatar", "timestamp", "isLoading", "actions", "sources", "botWord", "loadingWord", "codeBlockProps", "quickResponses", "quickResponseContainerProps", "attachments", "hasRoundAvatar", "avatarProps", "quickStarts", "userFeedbackForm", "userFeedbackComplete", "isLiveRegion", "innerRef"]);
32
34
  let avatarClassName;
33
35
  if (avatarProps && 'className' in avatarProps) {
34
36
  const { className } = avatarProps, rest = __rest(avatarProps, ["className"]);
@@ -38,7 +40,7 @@ export const Message = (_a) => {
38
40
  // Keep timestamps consistent between Timestamp component and aria-label
39
41
  const date = new Date();
40
42
  const dateString = timestamp !== null && timestamp !== void 0 ? timestamp : `${date.toLocaleDateString()} ${date.toLocaleTimeString()}`;
41
- return (React.createElement("section", Object.assign({ "aria-label": `Message from ${role} - ${dateString}`, className: `pf-chatbot__message pf-chatbot__message--${role}` }, props),
43
+ return (React.createElement("section", Object.assign({ "aria-label": `Message from ${role} - ${dateString}`, className: `pf-chatbot__message pf-chatbot__message--${role}`, "aria-live": isLiveRegion ? 'polite' : undefined, "aria-atomic": isLiveRegion ? false : undefined, ref: innerRef }, props),
42
44
  React.createElement(Avatar, Object.assign({ className: `pf-chatbot__message-avatar ${hasRoundAvatar ? 'pf-chatbot__message-avatar--round' : ''} ${avatarClassName ? avatarClassName : ''}`, src: avatar, alt: "" }, avatarProps)),
43
45
  React.createElement("div", { className: "pf-chatbot__message-contents" },
44
46
  React.createElement("div", { className: "pf-chatbot__message-meta" },
@@ -58,6 +60,8 @@ export const Message = (_a) => {
58
60
  !isLoading && sources && React.createElement(SourcesCard, Object.assign({}, sources)),
59
61
  quickStarts && quickStarts.quickStart && (React.createElement(QuickStartTile, { quickStart: quickStarts.quickStart, onSelectQuickStart: quickStarts.onSelectQuickStart, minuteWord: quickStarts.minuteWord, minuteWordPlural: quickStarts.minuteWordPlural, prerequisiteWord: quickStarts.prerequisiteWord, prerequisiteWordPlural: quickStarts.prerequisiteWordPlural, quickStartButtonAriaLabel: quickStarts.quickStartButtonAriaLabel })),
60
62
  !isLoading && actions && React.createElement(ResponseActions, { actions: actions }),
63
+ userFeedbackForm && React.createElement(UserFeedback, Object.assign({}, userFeedbackForm, { timestamp: dateString })),
64
+ userFeedbackComplete && React.createElement(UserFeedbackComplete, Object.assign({}, userFeedbackComplete, { timestamp: dateString })),
61
65
  !isLoading && quickResponses && (React.createElement(QuickResponse, { quickResponses: quickResponses, quickResponseContainerProps: quickResponseContainerProps }))),
62
66
  attachments && (React.createElement("div", { className: "pf-chatbot__message-attachments-container" }, attachments.map((attachment) => {
63
67
  var _a;
@@ -65,4 +69,5 @@ export const Message = (_a) => {
65
69
  React.createElement(FileDetailsLabel, { fileName: attachment.name, fileId: attachment.id, onClose: attachment.onClose, onClick: attachment.onClick, isLoading: attachment.isLoading, closeButtonAriaLabel: attachment.closeButtonAriaLabel, languageTestId: attachment.languageTestId, spinnerTestId: attachment.spinnerTestId })));
66
70
  })))))));
67
71
  };
72
+ const Message = React.forwardRef((props, ref) => (React.createElement(MessageBase, Object.assign({ innerRef: ref }, props))));
68
73
  export default Message;
@@ -3,13 +3,15 @@ import { LabelGroupProps, LabelProps } from '@patternfly/react-core';
3
3
  export interface QuickResponse extends Omit<LabelProps, 'children'> {
4
4
  content: string;
5
5
  id: string;
6
- onClick: () => void;
6
+ onClick?: () => void;
7
7
  }
8
8
  export interface QuickResponseProps {
9
9
  /** Props for quick responses */
10
10
  quickResponses: QuickResponse[];
11
11
  /** Props for quick responses container */
12
12
  quickResponseContainerProps?: Omit<LabelGroupProps, 'ref'>;
13
+ /** Callback when a response is clicked; used in feedback cards */
14
+ onSelect?: (id: string) => void;
13
15
  }
14
16
  export declare const QuickResponse: React.FunctionComponent<QuickResponseProps>;
15
17
  export default QuickResponse;
@@ -12,11 +12,12 @@ var __rest = (this && this.__rest) || function (s, e) {
12
12
  import React from 'react';
13
13
  import { Label, LabelGroup } from '@patternfly/react-core';
14
14
  import { CheckIcon } from '@patternfly/react-icons';
15
- export const QuickResponse = ({ quickResponses, quickResponseContainerProps = { numLabels: 5 } }) => {
15
+ export const QuickResponse = ({ quickResponses, quickResponseContainerProps = { numLabels: 5 }, onSelect }) => {
16
16
  const [selectedQuickResponse, setSelectedQuickResponse] = React.useState();
17
17
  const handleQuickResponseClick = (id, onClick) => {
18
18
  setSelectedQuickResponse(id);
19
19
  onClick && onClick();
20
+ onSelect && onSelect(id);
20
21
  };
21
22
  return (React.createElement(LabelGroup, Object.assign({ className: `pf-chatbot__message-quick-response ${quickResponseContainerProps === null || quickResponseContainerProps === void 0 ? void 0 : quickResponseContainerProps.className}` }, quickResponseContainerProps), quickResponses.map((_a) => {
22
23
  var { id, onClick, content, className } = _a, props = __rest(_a, ["id", "onClick", "content", "className"]);
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { ButtonProps } from '@patternfly/react-core';
3
+ export interface CloseButtonProps extends ButtonProps {
4
+ /** Callback function for when close button is clicked */
5
+ onClose?: () => void;
6
+ /** Aria-label for button */
7
+ ariaLabel?: string;
8
+ }
9
+ declare const CloseButton: React.FunctionComponent<CloseButtonProps>;
10
+ export default CloseButton;
@@ -0,0 +1,9 @@
1
+ // ============================================================================
2
+ // Chatbot Main - Messages - Close Button
3
+ // ============================================================================
4
+ import React from 'react';
5
+ // Import PatternFly components
6
+ import { Button } from '@patternfly/react-core';
7
+ import { CloseIcon } from '@patternfly/react-icons';
8
+ const CloseButton = ({ onClose, ariaLabel }) => (React.createElement(Button, { variant: "plain", onClick: onClose, icon: React.createElement(CloseIcon, null), "aria-label": ariaLabel }));
9
+ export default CloseButton;
@@ -0,0 +1,39 @@
1
+ import React from 'react';
2
+ import { CardProps, LabelGroupProps, OUIAProps } from '@patternfly/react-core';
3
+ import QuickResponse from '../QuickResponse/QuickResponse';
4
+ export interface UserFeedbackProps extends Omit<CardProps, 'onSubmit'>, OUIAProps {
5
+ /** Additional classes for the pagination navigation container. */
6
+ className?: string;
7
+ /** Quick responses a user can select */
8
+ quickResponses?: QuickResponse[];
9
+ /** Props for quick responses container */
10
+ quickResponseContainerProps?: Omit<LabelGroupProps, 'ref'>;
11
+ /** Whether form includes text area */
12
+ hasTextArea?: boolean;
13
+ /** Placeholder of text area */
14
+ textAreaPlaceholder?: string;
15
+ /** Aria label for text area */
16
+ textAreaAriaLabel?: string;
17
+ /** Callback function for when text area changes */
18
+ onTextAreaChange?: (event: React.ChangeEvent<HTMLTextAreaElement>, value: string) => void;
19
+ /** Callback function for when form is submitted */
20
+ onSubmit: (selectedResponse?: string, additionalFeedback?: string) => void;
21
+ /** Callback function for when close button is clicked */
22
+ onClose: () => void;
23
+ /** Aria label for close button */
24
+ closeButtonAriaLabel?: string;
25
+ /** Label for the English word "Submit." */
26
+ submitWord?: string;
27
+ /** Label for the English word "Cancel." */
28
+ cancelWord?: string;
29
+ /** Uniquely identifies the card. */
30
+ id?: string;
31
+ /** The heading level to use, default is h1 */
32
+ headingLevel?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
33
+ /** Whether to focus card on load */
34
+ focusOnLoad?: boolean;
35
+ /** Timestamp passed in by Message for more context in aria announcements */
36
+ timestamp?: string;
37
+ }
38
+ declare const UserFeedback: React.FunctionComponent<UserFeedbackProps>;
39
+ export default UserFeedback;
@@ -0,0 +1,50 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ // ============================================================================
13
+ // Chatbot Main - Messages - Feedback Card
14
+ // ============================================================================
15
+ import React from 'react';
16
+ // Import PatternFly components
17
+ import { ActionGroup, Button, Card, CardBody, CardHeader, Form, TextArea } from '@patternfly/react-core';
18
+ import QuickResponse from '../QuickResponse/QuickResponse';
19
+ import CloseButton from './CloseButton';
20
+ const UserFeedback = (_a) => {
21
+ var { className, timestamp, title = 'Why did you choose this rating?', hasTextArea, textAreaAriaLabel = `Provide optional additional feedback for message received at ${timestamp}`, textAreaPlaceholder = 'Provide optional additional feedback', onTextAreaChange, submitWord = 'Submit', quickResponses, quickResponseContainerProps = { 'aria-label': `Quick feedback for message received at ${timestamp}` }, onSubmit, onClose, closeButtonAriaLabel = `Close feedback for message received at ${timestamp}`, id, headingLevel: HeadingLevel = 'h1', focusOnLoad = true, cancelWord = 'Cancel' } = _a, props = __rest(_a, ["className", "timestamp", "title", "hasTextArea", "textAreaAriaLabel", "textAreaPlaceholder", "onTextAreaChange", "submitWord", "quickResponses", "quickResponseContainerProps", "onSubmit", "onClose", "closeButtonAriaLabel", "id", "headingLevel", "focusOnLoad", "cancelWord"]);
22
+ const [selectedResponse, setSelectedResponse] = React.useState();
23
+ const [value, setValue] = React.useState('');
24
+ const divRef = React.useRef(null);
25
+ React.useEffect(() => {
26
+ var _a;
27
+ if (focusOnLoad) {
28
+ (_a = divRef.current) === null || _a === void 0 ? void 0 : _a.focus();
29
+ }
30
+ }, []);
31
+ return (
32
+ /* card does not have ref forwarding; hence wrapper div */
33
+ React.createElement("div", { ref: divRef, id: id, tabIndex: 0, "aria-label": title },
34
+ React.createElement(Card, Object.assign({ className: `pf-chatbot__feedback-card ${className ? className : ''}` }, props),
35
+ React.createElement(CardHeader, { actions: {
36
+ actions: React.createElement(CloseButton, { onClose: onClose, ariaLabel: closeButtonAriaLabel })
37
+ } },
38
+ React.createElement(HeadingLevel, { className: "pf-chatbot__feedback-card-title" }, title)),
39
+ React.createElement(CardBody, null,
40
+ React.createElement(Form, { className: "pf-chatbot__feedback-card-form" },
41
+ quickResponses && (React.createElement(QuickResponse, { quickResponses: quickResponses, quickResponseContainerProps: quickResponseContainerProps, onSelect: (id) => setSelectedResponse(id) })),
42
+ hasTextArea && (React.createElement(TextArea, { value: value, onChange: (_event, value) => {
43
+ setValue(value);
44
+ onTextAreaChange && onTextAreaChange(_event, value);
45
+ }, placeholder: textAreaPlaceholder, "aria-label": textAreaAriaLabel, resizeOrientation: "vertical" })),
46
+ React.createElement(ActionGroup, null,
47
+ React.createElement(Button, { onClick: () => onSubmit(selectedResponse, value) }, submitWord),
48
+ React.createElement(Button, { variant: "link", onClick: onClose }, cancelWord)))))));
49
+ };
50
+ export default UserFeedback;
@@ -0,0 +1 @@
1
+ import '@testing-library/jest-dom';