@coveo/atomic 3.33.0 → 3.33.1-pre.3b2f3850a0

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 (126) hide show
  1. package/dist/atomic/_atomic.esm.js +1 -1
  2. package/dist/atomic/atomic.esm.js.map +1 -1
  3. package/dist/atomic/components/analytics-config.js +1 -1
  4. package/dist/atomic/components/analytics-config.js.map +1 -1
  5. package/dist/atomic/components/atomic-citation.js +1 -547
  6. package/dist/atomic/components/atomic-citation.js.map +1 -1
  7. package/dist/{esm/atomic-citation.entry.js → atomic/components/atomic-citation2.js} +35 -13
  8. package/dist/atomic/components/atomic-citation2.js.map +1 -0
  9. package/dist/atomic/components/atomic-generated-answer-feedback-modal.js +1 -440
  10. package/dist/atomic/components/atomic-generated-answer-feedback-modal.js.map +1 -1
  11. package/dist/{esm/atomic-generated-answer-feedback-modal.entry.js → atomic/components/atomic-generated-answer-feedback-modal2.js} +55 -25
  12. package/dist/atomic/components/atomic-generated-answer-feedback-modal2.js.map +1 -0
  13. package/dist/atomic/components/atomic-generated-answer.js +88 -28
  14. package/dist/atomic/components/atomic-generated-answer.js.map +1 -1
  15. package/dist/atomic/components/atomic-insight-generated-answer.js +95 -34
  16. package/dist/atomic/components/atomic-insight-generated-answer.js.map +1 -1
  17. package/dist/atomic/components/atomic-ipx-result-link.js +1 -1
  18. package/dist/atomic/components/atomic-popover.js +1 -1
  19. package/dist/atomic/components/atomic-result-link.js +1 -1
  20. package/dist/atomic/components/attributes-slot.js +1 -1
  21. package/dist/atomic/components/createPopper.js +1 -1
  22. package/dist/atomic/components/generated-answer-common.js +146 -238
  23. package/dist/atomic/components/generated-answer-common.js.map +1 -1
  24. package/dist/atomic/components/global/environment.js +1 -1
  25. package/dist/atomic/components/popper-lite.js +1 -1
  26. package/dist/atomic/components/slot-utils.js +1 -1
  27. package/dist/atomic/components/tab-popover.js +1 -1
  28. package/dist/atomic/p-01531448.entry.js +2 -0
  29. package/dist/atomic/p-01531448.entry.js.map +1 -0
  30. package/dist/atomic/p-027b85e5.js +2 -0
  31. package/dist/atomic/{p-bed5a86b.js.map → p-027b85e5.js.map} +1 -1
  32. package/dist/atomic/{p-7b9026d7.js → p-07f25674.js} +2 -2
  33. package/dist/atomic/{p-75b863ea.entry.js → p-0ff341d5.entry.js} +2 -2
  34. package/dist/atomic/{p-eb026d69.entry.js → p-129799b2.entry.js} +2 -2
  35. package/dist/atomic/p-284f3c50.js +2 -0
  36. package/dist/atomic/p-284f3c50.js.map +1 -0
  37. package/dist/atomic/p-33201620.entry.js +2 -0
  38. package/dist/atomic/p-33201620.entry.js.map +1 -0
  39. package/dist/atomic/{p-8b6aaeed.entry.js → p-333be187.entry.js} +2 -2
  40. package/dist/atomic/{p-ba67a16b.js → p-3b58a34d.js} +2 -2
  41. package/dist/atomic/{p-ba67a16b.js.map → p-3b58a34d.js.map} +1 -1
  42. package/dist/atomic/{p-946fe85f.js → p-4aaffb59.js} +2 -2
  43. package/dist/atomic/{p-48c8a766.entry.js → p-5730dec7.entry.js} +2 -2
  44. package/dist/atomic/p-5d785d02.entry.js +2 -0
  45. package/dist/atomic/p-5d785d02.entry.js.map +1 -0
  46. package/dist/atomic/{p-9da1c516.entry.js → p-6481379f.entry.js} +2 -2
  47. package/dist/atomic/{p-bfdecd0f.entry.js → p-6f5d26cb.entry.js} +2 -2
  48. package/dist/atomic/{p-ca0a32dc.entry.js → p-dd93ae9a.entry.js} +2 -2
  49. package/dist/cjs/_loader.cjs.js +1 -1
  50. package/dist/cjs/{analytics-config-f34a68ee.js → analytics-config-de09a791.js} +2 -2
  51. package/dist/cjs/analytics-config-de09a791.js.map +1 -0
  52. package/dist/cjs/{atomic-generated-answer-feedback-modal.cjs.entry.js → atomic-citation_2.cjs.entry.js} +526 -1
  53. package/dist/cjs/atomic-citation_2.cjs.entry.js.map +1 -0
  54. package/dist/cjs/atomic-generated-answer.cjs.entry.js +62 -27
  55. package/dist/cjs/atomic-generated-answer.cjs.entry.js.map +1 -1
  56. package/dist/cjs/atomic-insight-generated-answer.cjs.entry.js +68 -32
  57. package/dist/cjs/atomic-insight-generated-answer.cjs.entry.js.map +1 -1
  58. package/dist/cjs/atomic-insight-interface.cjs.entry.js +1 -1
  59. package/dist/cjs/atomic-recs-interface.cjs.entry.js +1 -1
  60. package/dist/cjs/atomic-search-interface.cjs.entry.js +1 -1
  61. package/dist/cjs/atomic.cjs.js +1 -1
  62. package/dist/cjs/{generated-answer-common-4cd4b7c6.js → generated-answer-common-469ad0e8.js} +152 -237
  63. package/dist/cjs/generated-answer-common-469ad0e8.js.map +1 -0
  64. package/dist/cjs/index-757bc886.js +4 -8
  65. package/dist/cjs/version.cjs.js +2 -2
  66. package/dist/esm/_loader.js +1 -1
  67. package/dist/esm/{analytics-config-672b6eba.js → analytics-config-19fa5599.js} +2 -2
  68. package/dist/esm/analytics-config-19fa5599.js.map +1 -0
  69. package/dist/esm/atomic-citation_2.entry.js +938 -0
  70. package/dist/esm/atomic-citation_2.entry.js.map +1 -0
  71. package/dist/esm/atomic-generated-answer.entry.js +64 -29
  72. package/dist/esm/atomic-generated-answer.entry.js.map +1 -1
  73. package/dist/esm/atomic-insight-generated-answer.entry.js +71 -35
  74. package/dist/esm/atomic-insight-generated-answer.entry.js.map +1 -1
  75. package/dist/esm/atomic-insight-interface.entry.js +1 -1
  76. package/dist/esm/atomic-popover.entry.js +2 -2
  77. package/dist/esm/atomic-recs-interface.entry.js +1 -1
  78. package/dist/esm/atomic-search-box-query-suggestions_2.entry.js +1 -1
  79. package/dist/esm/atomic-search-box.entry.js +1 -1
  80. package/dist/esm/atomic-search-interface.entry.js +2 -2
  81. package/dist/esm/atomic-tab-bar_2.entry.js +2 -2
  82. package/dist/esm/atomic.js +1 -1
  83. package/dist/esm/{createPopper-a633eb88.js → createPopper-ed15cfea.js} +2 -2
  84. package/dist/esm/{createPopper-a633eb88.js.map → createPopper-ed15cfea.js.map} +1 -1
  85. package/dist/esm/{generated-answer-common-06146290.js → generated-answer-common-184a3c08.js} +147 -239
  86. package/dist/esm/generated-answer-common-184a3c08.js.map +1 -0
  87. package/dist/esm/index-3f35faca.js +4 -8
  88. package/dist/esm/{local-storage-utils-410269e6.js → local-storage-utils-a4bf8fba.js} +2 -2
  89. package/dist/esm/{local-storage-utils-410269e6.js.map → local-storage-utils-a4bf8fba.js.map} +1 -1
  90. package/dist/esm/{popper-lite-2035100c.js → popper-lite-4b6382b2.js} +2 -2
  91. package/dist/esm/{popper-lite-2035100c.js.map → popper-lite-4b6382b2.js.map} +1 -1
  92. package/dist/esm/version.js +2 -2
  93. package/dist/types/components/common/generated-answer/generated-answer-common.d.ts +30 -50
  94. package/dist/types/components/insight/atomic-insight-generated-answer/atomic-insight-generated-answer.d.ts +11 -3
  95. package/dist/types/components/search/atomic-generated-answer/atomic-generated-answer.d.ts +9 -1
  96. package/docs/atomic-docs.json +17 -3
  97. package/package.json +3 -3
  98. package/dist/atomic/p-0c076058.entry.js +0 -2
  99. package/dist/atomic/p-0c076058.entry.js.map +0 -1
  100. package/dist/atomic/p-421850f9.entry.js +0 -2
  101. package/dist/atomic/p-421850f9.entry.js.map +0 -1
  102. package/dist/atomic/p-579c5b46.entry.js +0 -2
  103. package/dist/atomic/p-579c5b46.entry.js.map +0 -1
  104. package/dist/atomic/p-5fca1435.js +0 -2
  105. package/dist/atomic/p-5fca1435.js.map +0 -1
  106. package/dist/atomic/p-bed5a86b.js +0 -2
  107. package/dist/atomic/p-e27e1e46.entry.js +0 -2
  108. package/dist/atomic/p-e27e1e46.entry.js.map +0 -1
  109. package/dist/cjs/analytics-config-f34a68ee.js.map +0 -1
  110. package/dist/cjs/atomic-citation.cjs.entry.js +0 -533
  111. package/dist/cjs/atomic-citation.cjs.entry.js.map +0 -1
  112. package/dist/cjs/atomic-generated-answer-feedback-modal.cjs.entry.js.map +0 -1
  113. package/dist/cjs/generated-answer-common-4cd4b7c6.js.map +0 -1
  114. package/dist/esm/analytics-config-672b6eba.js.map +0 -1
  115. package/dist/esm/atomic-citation.entry.js.map +0 -1
  116. package/dist/esm/atomic-generated-answer-feedback-modal.entry.js.map +0 -1
  117. package/dist/esm/generated-answer-common-06146290.js.map +0 -1
  118. /package/dist/atomic/{p-7b9026d7.js.map → p-07f25674.js.map} +0 -0
  119. /package/dist/atomic/{p-75b863ea.entry.js.map → p-0ff341d5.entry.js.map} +0 -0
  120. /package/dist/atomic/{p-eb026d69.entry.js.map → p-129799b2.entry.js.map} +0 -0
  121. /package/dist/atomic/{p-8b6aaeed.entry.js.map → p-333be187.entry.js.map} +0 -0
  122. /package/dist/atomic/{p-946fe85f.js.map → p-4aaffb59.js.map} +0 -0
  123. /package/dist/atomic/{p-48c8a766.entry.js.map → p-5730dec7.entry.js.map} +0 -0
  124. /package/dist/atomic/{p-9da1c516.entry.js.map → p-6481379f.entry.js.map} +0 -0
  125. /package/dist/atomic/{p-bfdecd0f.entry.js.map → p-6f5d26cb.entry.js.map} +0 -0
  126. /package/dist/atomic/{p-ca0a32dc.entry.js.map → p-dd93ae9a.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"atomic-generated-answer-feedback-modal.js","mappings":"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","names":["AtomicGeneratedAnswerFeedbackModal"],"sources":["src/components/common/generated-answer/atomic-generated-answer-feedback/atomic-generated-answer-feedback-modal.pcss?tag=atomic-generated-answer-feedback-modal&encapsulation=shadow","src/components/common/generated-answer/atomic-generated-answer-feedback/atomic-generated-answer-feedback-modal.tsx"],"sourcesContent":["@import '../../../../global/global.pcss';\n\n@utility mobile-feedback-modal {\n &::part(container) {\n @apply w-auto min-w-full;\n }\n\n &::part(header),\n &::part(body),\n &::part(footer) {\n @apply max-w-full;\n }\n [part='buttons'] {\n .required-label {\n @apply text-sm;\n }\n }\n [part='form'] {\n .answer-evaluation {\n @apply block;\n }\n\n .options {\n @apply mt-2;\n }\n }\n [part='modal-header'] {\n .hide {\n @apply hidden;\n }\n }\n}\n\n[part='generated-answer-feedback-modal'] {\n &::part(container) {\n @apply min-w-170;\n }\n\n &::part(header),\n &::part(body),\n &::part(footer) {\n @apply max-w-170;\n }\n\n @media not all and (width >= theme(--breakpoint-desktop)) {\n @apply mobile-feedback-modal;\n }\n}\n\n[part='form'] {\n .active {\n @apply border-primary-light text-primary-light bg-primary-background;\n }\n .text-error-red {\n @apply text-inline-code;\n }\n .required {\n @apply flex;\n }\n}\n","import {\n GeneratedAnswer,\n GeneratedAnswerFeedback,\n GeneratedAnswerFeedbackOption,\n} from '@coveo/headless';\nimport {\n Component,\n State,\n h,\n Watch,\n Prop,\n Element,\n Event,\n EventEmitter,\n} from '@stencil/core/internal';\nimport CloseIcon from '../../../../images/close.svg';\nimport Success from '../../../../images/success.svg';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {updateBreakpoints} from '../../../../utils/replace-breakpoint';\nimport {once, randomID} from '../../../../utils/utils';\nimport {ATOMIC_MODAL_EXPORT_PARTS} from '../../atomic-modal/export-parts';\nimport {IconButton} from '../../iconButton';\nimport {AnyBindings} from '../../interface/bindings';\nimport {Button} from '../../stencil-button';\nimport {FieldsetGroup} from '../../stencil-fieldset-group';\nimport {RadioButton} from '../../stencil-radio-button';\n\n/**\n * @internal\n */\n@Component({\n tag: 'atomic-generated-answer-feedback-modal',\n styleUrl: 'atomic-generated-answer-feedback-modal.pcss',\n shadow: true,\n})\nexport class AtomicGeneratedAnswerFeedbackModal\n implements InitializableComponent<AnyBindings>\n{\n @InitializeBindings() public bindings!: AnyBindings;\n @Element() public host!: HTMLElement;\n\n /**\n * Indicates whether the modal is open.\n */\n @Prop({reflect: true, mutable: true}) isOpen = false;\n /**\n * A `GeneratedAnswer` controller instance. It is used when the user interacts with the modal.\n */\n @Prop({reflect: true, mutable: true}) generatedAnswer!: GeneratedAnswer;\n /**\n * Indicates whether the answer was helpful or not.\n */\n @Prop({reflect: true, mutable: true}) helpful = false;\n\n @State() public error!: Error;\n @State() private currentAnswer: Partial<GeneratedAnswerFeedback> =\n this.getInitialAnswerState();\n @State() feedbackSubmitted: boolean = false;\n @State() answerEvaluationRequired: boolean = false;\n\n private readonly formId = randomID(\n 'atomic-generated-answer-feedback-modal-form-'\n );\n private detailsInputRef?: HTMLTextAreaElement;\n\n private linkInputRef?: HTMLInputElement;\n\n @Event() feedbackSent!: EventEmitter;\n\n @Watch('isOpen')\n watchToggleOpen(isOpen: boolean) {\n if (isOpen) {\n this.generatedAnswer.openFeedbackModal();\n }\n }\n\n private static options: {\n localeKey: string;\n correspondingAnswer: keyof GeneratedAnswerFeedback;\n }[] = [\n {\n localeKey: 'feedback-correct-topic',\n correspondingAnswer: 'correctTopic',\n },\n {\n localeKey: 'feedback-hallucination-free',\n correspondingAnswer: 'hallucinationFree',\n },\n {\n localeKey: 'feedback-documented',\n correspondingAnswer: 'documented',\n },\n {\n localeKey: 'feedback-readable',\n correspondingAnswer: 'readable',\n },\n ];\n\n private getInitialAnswerState(): Partial<GeneratedAnswerFeedback> {\n return {\n documented: undefined,\n correctTopic: undefined,\n hallucinationFree: undefined,\n readable: undefined,\n };\n }\n\n private resetState() {\n this.feedbackSubmitted = false;\n this.currentAnswer = this.getInitialAnswerState();\n this.answerEvaluationRequired = false;\n this.isOpen = false;\n }\n\n private clearInputRefs() {\n if (this.detailsInputRef) {\n this.detailsInputRef.value = '';\n }\n if (this.linkInputRef) {\n this.linkInputRef.value = '';\n }\n }\n\n private close() {\n this.clearInputRefs();\n this.resetState();\n this.generatedAnswer.closeFeedbackModal();\n }\n\n private updateBreakpoints = once(() => updateBreakpoints(this.host));\n\n private setCurrentAnswer(\n key: keyof GeneratedAnswerFeedback,\n value: GeneratedAnswerFeedbackOption | string\n ) {\n this.currentAnswer = {\n ...this.currentAnswer,\n [key]: value,\n };\n }\n\n public sendFeedback() {\n const feedback: GeneratedAnswerFeedback = {\n ...(this.currentAnswer as GeneratedAnswerFeedback),\n helpful: this.helpful,\n };\n this.generatedAnswer.sendFeedback(feedback);\n this.feedbackSent.emit();\n }\n\n private isAnyAnswerEvaluationUndefined = () => {\n return Object.values(this.currentAnswer).some(\n (value) => value === undefined\n );\n };\n\n private handleSubmit(e: Event) {\n e.preventDefault();\n if (this.isAnyAnswerEvaluationUndefined()) {\n this.answerEvaluationRequired = true;\n return;\n }\n this.feedbackSubmitted = true;\n this.answerEvaluationRequired = false;\n this.sendFeedback();\n }\n\n private renderHeader() {\n return (\n <div\n slot=\"header\"\n part=\"modal-header\"\n class=\"flex w-full items-center justify-between\"\n >\n <h1>\n <span>{this.bindings.i18n.t('feedback-modal-title')}</span>\n <span class=\"hide ml-0.5\">\n {this.bindings.i18n.t('additional-feedback')}\n </span>\n </h1>\n <IconButton\n style=\"text-transparent\"\n class=\"search-clear-button\"\n onClick={() => this.close()}\n icon={CloseIcon}\n partPrefix={'close'}\n ariaLabel={this.bindings.i18n.t('close')}\n />\n </div>\n );\n }\n\n private renderFeedbackOption(\n option: GeneratedAnswerFeedbackOption,\n correspondingAnswer: keyof GeneratedAnswerFeedback\n ) {\n const buttonClasses = [\n 'min-w-20',\n 'flex',\n 'items-center',\n 'justify-center',\n 'px-3',\n 'py-1.5',\n 'mr-1',\n 'text-neutral-dark',\n ];\n const isSelected = this.currentAnswer[correspondingAnswer] === option;\n\n if (isSelected) {\n buttonClasses.push('active');\n }\n return (\n <RadioButton\n key={String(correspondingAnswer)}\n groupName={this.bindings.i18n.t(correspondingAnswer)}\n style=\"outline-neutral\"\n checked={isSelected}\n aria-checked={isSelected}\n onChecked={() => {\n this.setCurrentAnswer(correspondingAnswer, option);\n }}\n class={buttonClasses.join(' ')}\n text={this.bindings.i18n.t(option)}\n ></RadioButton>\n );\n }\n\n private renderAnswerEvaluation(\n label: string,\n correspondingAnswer: keyof GeneratedAnswerFeedback\n ) {\n const labelClasses = ['text-error-red', 'text-sm', 'hidden'];\n const isRequired =\n this.answerEvaluationRequired &&\n this.currentAnswer[correspondingAnswer] === undefined;\n if (isRequired) {\n labelClasses.push('required');\n }\n return (\n <div class=\"block\">\n <div class=\"flex\">\n <label class=\"text-base\">\n {this.bindings.i18n.t(label)}\n <span class=\"text-error-red ml-0.5\">*</span>\n </label>\n </div>\n <span class={labelClasses.join(' ')}>\n {this.bindings.i18n.t('required-fields-error')}\n </span>\n </div>\n );\n }\n\n private renderOptions() {\n return (\n <fieldset>\n <legend class=\"font-bold\">\n {this.bindings.i18n.t('answer-evaluation')}\n </legend>\n {AtomicGeneratedAnswerFeedbackModal.options.map(\n ({localeKey, correspondingAnswer}) => (\n <FieldsetGroup label={this.bindings.i18n.t(localeKey)}>\n <div\n class={`answer-evaluation mt-3 flex items-center justify-between ${String(correspondingAnswer)}`}\n key={String(correspondingAnswer)}\n >\n {this.renderAnswerEvaluation(localeKey, correspondingAnswer)}\n <div\n class=\"options flex text-base\"\n aria-label={this.bindings.i18n.t(localeKey)}\n >\n {this.renderFeedbackOption('yes', correspondingAnswer)}\n {this.renderFeedbackOption('unknown', correspondingAnswer)}\n {this.renderFeedbackOption('no', correspondingAnswer)}\n </div>\n </div>\n </FieldsetGroup>\n )\n )}\n </fieldset>\n );\n }\n\n private renderLinkToCorrectAnswerField() {\n return (\n <fieldset>\n <legend class=\"font-bold\">\n {this.bindings.i18n.t('generated-answer-feedback-link')}\n </legend>\n <input\n type=\"text\"\n ref={(linkInputRef) => (this.linkInputRef = linkInputRef)}\n placeholder=\"https://URL\"\n class=\"input-primary placeholder-neutral-dark mt-4 h-9 w-full rounded-md px-4\"\n onChange={(e) =>\n this.setCurrentAnswer(\n 'documentUrl',\n (e.currentTarget as HTMLInputElement).value\n )\n }\n />\n </fieldset>\n );\n }\n\n private renderAddNotesField() {\n return (\n <fieldset>\n <legend class=\"mt-8 font-bold\">\n {this.bindings.i18n.t('generated-answer-additional-notes')}\n </legend>\n <textarea\n name=\"answer-details\"\n ref={(detailsInput) => (this.detailsInputRef = detailsInput)}\n class=\"placeholder-neutral-dark border-neutral hover:border-primary-light focus-visible:border-primary mt-4 w-full resize-none rounded-md border px-4 py-2 leading-5 focus:outline-hidden focus-visible:ring-2\"\n rows={4}\n placeholder={this.bindings.i18n.t('add-notes')}\n onChange={(e) =>\n this.setCurrentAnswer(\n 'details',\n (e.currentTarget as HTMLTextAreaElement).value\n )\n }\n ></textarea>\n </fieldset>\n );\n }\n\n private renderFeedbackForm() {\n return (\n <form\n part=\"form\"\n id={this.formId}\n slot=\"body\"\n onSubmit={(e) => this.handleSubmit(e)}\n class=\"flex flex-col gap-8 leading-4\"\n >\n {this.renderOptions()}\n {this.renderLinkToCorrectAnswerField()}\n {this.renderAddNotesField()}\n </form>\n );\n }\n\n private renderSuccessMessage() {\n return (\n <div slot=\"body\" class=\"my-4 flex flex-col items-center gap-4\">\n <atomic-icon icon={Success} class=\"w-48\" />\n <p class=\"text-base\">\n {this.bindings.i18n.t('generated-answer-feedback-success')}\n </p>\n </div>\n );\n }\n\n private renderBody() {\n if (!this.feedbackSubmitted) {\n return this.renderFeedbackForm();\n } else {\n return this.renderSuccessMessage();\n }\n }\n\n private renderFeedbackFormFooter() {\n const buttonClasses =\n 'flex items-center justify-center text-sm leading-4 p-2 rounded-md';\n\n return (\n <div slot=\"footer\" part=\"modal-footer\">\n <div class=\"flex items-center justify-between\">\n <div class=\"required-label text-base\">\n <span class=\"text-error mr-0.5\">*</span>\n {this.bindings.i18n.t('required-fields')}\n </div>\n <div class=\"flex gap-2\">\n <Button\n part=\"cancel-button\"\n style=\"outline-primary\"\n class={buttonClasses}\n ariaLabel={this.bindings.i18n.t('skip')}\n onClick={() => this.close()}\n >\n {this.bindings.i18n.t('skip')}\n </Button>\n <Button\n part=\"submit-button\"\n style=\"primary\"\n type=\"submit\"\n form={this.formId}\n class={buttonClasses}\n ariaLabel={this.bindings.i18n.t('generated-answer-send-feedback')}\n >\n {this.bindings.i18n.t('generated-answer-send-feedback')}\n </Button>\n </div>\n </div>\n </div>\n );\n }\n\n private renderSuccessFormFooter() {\n return (\n <div slot=\"footer\">\n <div class=\"flex justify-end gap-2 p-2\">\n <Button\n part=\"cancel-button\"\n style=\"primary\"\n onClick={() => this.close()}\n class=\"flex justify-center p-2 text-sm leading-4\"\n ariaLabel={this.bindings.i18n.t('modal-done')}\n >\n {this.bindings.i18n.t('modal-done')}\n </Button>\n </div>\n </div>\n );\n }\n\n private renderFooter() {\n if (!this.feedbackSubmitted) {\n return this.renderFeedbackFormFooter();\n } else {\n return this.renderSuccessFormFooter();\n }\n }\n\n public render() {\n this.updateBreakpoints();\n\n return (\n <atomic-modal\n fullscreen={false}\n isOpen={this.isOpen}\n close={() => this.close()}\n container={this.host}\n part=\"generated-answer-feedback-modal\"\n exportparts={ATOMIC_MODAL_EXPORT_PARTS}\n >\n {this.renderHeader()}\n {this.renderBody()}\n {this.renderFooter()}\n </atomic-modal>\n );\n }\n}\n"],"version":3}
1
+ {"file":"atomic-generated-answer-feedback-modal.js","mappings":";;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
@@ -1,20 +1,15 @@
1
- import { r as registerInstance, c as createEvent, h, g as getElement } from './index-3f35faca.js';
2
- import { C as CloseIcon } from './close-ff816971.js';
3
- import { I as InitializeBindings } from './initialization-utils-271aa8c0.js';
4
- import { u as updateBreakpoints } from './replace-breakpoint-213367f8.js';
5
- import { r as randomID, o as once } from './utils-7ac76ba7.js';
6
- import { A as ATOMIC_MODAL_EXPORT_PARTS } from './export-parts-14a53e2c.js';
7
- import { I as IconButton } from './iconButton-779dd472.js';
8
- import { B as Button } from './stencil-button-75e8b31b.js';
9
- import { F as FieldsetGroup } from './stencil-fieldset-group-5fa357cd.js';
10
- import { R as RadioButton } from './stencil-radio-button-ce6ec704.js';
11
- import './dom-utils-f6086cd3.js';
12
- import './event-utils-8de63ec3.js';
13
- import './init-queue-fbe942c3.js';
14
- import './initialization-lit-stencil-common-utils-804fe146.js';
15
- import './purify-c7ebd240.js';
16
- import './_commonjsHelpers-1789f0cf.js';
17
- import './stencil-button-style-0bc80040.js';
1
+ import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
+ import { C as CloseIcon } from './close.js';
3
+ import { I as InitializeBindings } from './initialization-utils.js';
4
+ import { u as updateBreakpoints } from './replace-breakpoint.js';
5
+ import { r as randomID, o as once } from './utils.js';
6
+ import { A as ATOMIC_MODAL_EXPORT_PARTS } from './export-parts.js';
7
+ import { I as IconButton } from './iconButton.js';
8
+ import { B as Button } from './stencil-button.js';
9
+ import { F as FieldsetGroup } from './stencil-fieldset-group.js';
10
+ import { R as RadioButton } from './stencil-radio-button.js';
11
+ import { d as defineCustomElement$2 } from './atomic-focus-trap2.js';
12
+ import { d as defineCustomElement$1 } from './atomic-modal2.js';
18
13
 
19
14
  const Success = `<svg width="352" height="352" viewBox="0 0 352 352" fill="none" xmlns="http://www.w3.org/2000/svg">
20
15
  <g filter="url(#filter0_b_110_11263)">
@@ -224,9 +219,11 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
224
219
  r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
225
220
  return c > 3 && r && Object.defineProperty(target, key, r), r;
226
221
  };
227
- const AtomicGeneratedAnswerFeedbackModal = class {
228
- constructor(hostRef) {
229
- registerInstance(this, hostRef);
222
+ const AtomicGeneratedAnswerFeedbackModal = /*@__PURE__*/ proxyCustomElement(class AtomicGeneratedAnswerFeedbackModal extends HTMLElement {
223
+ constructor() {
224
+ super();
225
+ this.__registerHost();
226
+ this.__attachShadow();
230
227
  this.feedbackSent = createEvent(this, "feedbackSent", 7);
231
228
  /**
232
229
  * Indicates whether the modal is open.
@@ -381,11 +378,22 @@ const AtomicGeneratedAnswerFeedbackModal = class {
381
378
  this.updateBreakpoints();
382
379
  return (h("atomic-modal", { key: 'dbedd84c14aa04e943995efa1f481712aa9d6ff1', fullscreen: false, isOpen: this.isOpen, close: () => this.close(), container: this.host, part: "generated-answer-feedback-modal", exportparts: ATOMIC_MODAL_EXPORT_PARTS }, this.renderHeader(), this.renderBody(), this.renderFooter()));
383
380
  }
384
- get host() { return getElement(this); }
381
+ get host() { return this; }
385
382
  static get watchers() { return {
386
383
  "isOpen": ["watchToggleOpen"]
387
384
  }; }
388
- };
385
+ static get style() { return AtomicGeneratedAnswerFeedbackModalStyle0; }
386
+ }, [1, "atomic-generated-answer-feedback-modal", {
387
+ "isOpen": [1540, "is-open"],
388
+ "generatedAnswer": [1040],
389
+ "helpful": [1540],
390
+ "error": [32],
391
+ "currentAnswer": [32],
392
+ "feedbackSubmitted": [32],
393
+ "answerEvaluationRequired": [32]
394
+ }, undefined, {
395
+ "isOpen": ["watchToggleOpen"]
396
+ }]);
389
397
  AtomicGeneratedAnswerFeedbackModal.options = [
390
398
  {
391
399
  localeKey: 'feedback-correct-topic',
@@ -407,8 +415,30 @@ AtomicGeneratedAnswerFeedbackModal.options = [
407
415
  __decorate([
408
416
  InitializeBindings()
409
417
  ], AtomicGeneratedAnswerFeedbackModal.prototype, "bindings", void 0);
410
- AtomicGeneratedAnswerFeedbackModal.style = AtomicGeneratedAnswerFeedbackModalStyle0;
418
+ function defineCustomElement() {
419
+ if (typeof customElements === "undefined") {
420
+ return;
421
+ }
422
+ const components = ["atomic-generated-answer-feedback-modal", "atomic-focus-trap", "atomic-modal"];
423
+ components.forEach(tagName => { switch (tagName) {
424
+ case "atomic-generated-answer-feedback-modal":
425
+ if (!customElements.get(tagName)) {
426
+ customElements.define(tagName, AtomicGeneratedAnswerFeedbackModal);
427
+ }
428
+ break;
429
+ case "atomic-focus-trap":
430
+ if (!customElements.get(tagName)) {
431
+ defineCustomElement$2();
432
+ }
433
+ break;
434
+ case "atomic-modal":
435
+ if (!customElements.get(tagName)) {
436
+ defineCustomElement$1();
437
+ }
438
+ break;
439
+ } });
440
+ }
411
441
 
412
- export { AtomicGeneratedAnswerFeedbackModal as atomic_generated_answer_feedback_modal };
442
+ export { AtomicGeneratedAnswerFeedbackModal as A, defineCustomElement as d };
413
443
 
414
- //# sourceMappingURL=atomic-generated-answer-feedback-modal.entry.js.map
444
+ //# sourceMappingURL=atomic-generated-answer-feedback-modal2.js.map
@@ -0,0 +1 @@
1
+ {"file":"atomic-generated-answer-feedback-modal2.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAM,qCAAqC,GAAG,i3kEAAi3kE,CAAC;AACh6kE,iDAAe,qCAAqC;;;;;;;;;;;;MCqCvC,kCAAkC;;;;;;;;;QASP,WAAM,GAAG,KAAK,CAAC;;;;QAQf,YAAO,GAAG,KAAK,CAAC;QAGrC,kBAAa,GAC5B,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACtB,sBAAiB,GAAY,KAAK,CAAC;QACnC,6BAAwB,GAAY,KAAK,CAAC;QAElC,WAAM,GAAG,QAAQ,CAChC,8CAA8C,CAC/C,CAAC;QAmEM,sBAAiB,GAAG,IAAI,CAAC,MAAM,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAqB7D,mCAA8B,GAAG;YACvC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAC3C,CAAC,KAAK,KAAK,KAAK,KAAK,SAAS,CAC/B,CAAC;SACH,CAAC;sBA9G6C,KAAK;;uBAQJ,KAAK;;6BAInD,IAAI,CAAC,qBAAqB,EAAE;iCACQ,KAAK;wCACE,KAAK;;IAYlD,eAAe,CAAC,MAAe;QAC7B,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC;SAC1C;KACF;IAwBO,qBAAqB;QAC3B,OAAO;YACL,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,SAAS;YACvB,iBAAiB,EAAE,SAAS;YAC5B,QAAQ,EAAE,SAAS;SACpB,CAAC;KACH;IAEO,UAAU;QAChB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAClD,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACrB;IAEO,cAAc;QACpB,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,EAAE,CAAC;SACjC;QACD,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,EAAE,CAAC;SAC9B;KACF;IAEO,KAAK;QACX,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC;KAC3C;IAIO,gBAAgB,CACtB,GAAkC,EAClC,KAA6C;QAE7C,IAAI,CAAC,aAAa,GAAG;YACnB,GAAG,IAAI,CAAC,aAAa;YACrB,CAAC,GAAG,GAAG,KAAK;SACb,CAAC;KACH;IAEM,YAAY;QACjB,MAAM,QAAQ,GAA4B;YACxC,GAAI,IAAI,CAAC,aAAyC;YAClD,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;IAQO,YAAY,CAAC,CAAQ;QAC3B,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,8BAA8B,EAAE,EAAE;YACzC,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;YACrC,OAAO;SACR;QACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;QACtC,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IAEO,YAAY;QAClB,QACE,WACE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,cAAc,EACnB,KAAK,EAAC,0CAA0C,IAEhD,cACE,gBAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAQ,EAC3D,YAAM,KAAK,EAAC,aAAa,IACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,CACvC,CACJ,EACL,EAAC,UAAU,IACT,KAAK,EAAC,kBAAkB,EACxB,KAAK,EAAC,qBAAqB,EAC3B,OAAO,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,EAC3B,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,OAAO,EACnB,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GACxC,CACE,EACN;KACH;IAEO,oBAAoB,CAC1B,MAAqC,EACrC,mBAAkD;QAElD,MAAM,aAAa,GAAG;YACpB,UAAU;YACV,MAAM;YACN,cAAc;YACd,gBAAgB;YAChB,MAAM;YACN,QAAQ;YACR,MAAM;YACN,mBAAmB;SACpB,CAAC;QACF,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,KAAK,MAAM,CAAC;QAEtE,IAAI,UAAU,EAAE;YACd,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC9B;QACD,QACE,EAAC,WAAW,IACV,GAAG,EAAE,MAAM,CAAC,mBAAmB,CAAC,EAChC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,EACpD,KAAK,EAAC,iBAAiB,EACvB,OAAO,EAAE,UAAU,kBACL,UAAU,EACxB,SAAS,EAAE;gBACT,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;aACpD,EACD,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAC9B,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GACrB,EACf;KACH;IAEO,sBAAsB,CAC5B,KAAa,EACb,mBAAkD;QAElD,MAAM,YAAY,GAAG,CAAC,gBAAgB,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC7D,MAAM,UAAU,GACd,IAAI,CAAC,wBAAwB;YAC7B,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,KAAK,SAAS,CAAC;QACxD,IAAI,UAAU,EAAE;YACd,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC/B;QACD,QACE,WAAK,KAAK,EAAC,OAAO,IAChB,WAAK,KAAK,EAAC,MAAM,IACf,aAAO,KAAK,EAAC,WAAW,IACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAC5B,YAAM,KAAK,EAAC,uBAAuB,QAAS,CACtC,CACJ,EACN,YAAM,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,IAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC,CACzC,CACH,EACN;KACH;IAEO,aAAa;QACnB,QACE,oBACE,cAAQ,KAAK,EAAC,WAAW,IACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CACnC,EACR,kCAAkC,CAAC,OAAO,CAAC,GAAG,CAC7C,CAAC,EAAC,SAAS,EAAE,mBAAmB,EAAC,MAC/B,EAAC,aAAa,IAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IACnD,WACE,KAAK,EAAE,4DAA4D,MAAM,CAAC,mBAAmB,CAAC,EAAE,EAChG,GAAG,EAAE,MAAM,CAAC,mBAAmB,CAAC,IAE/B,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,mBAAmB,CAAC,EAC5D,WACE,KAAK,EAAC,wBAAwB,gBAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAE1C,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,CAAC,EACrD,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,mBAAmB,CAAC,EACzD,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CACjD,CACF,CACQ,CACjB,CACF,CACQ,EACX;KACH;IAEO,8BAA8B;QACpC,QACE,oBACE,cAAQ,KAAK,EAAC,WAAW,IACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAChD,EACT,aACE,IAAI,EAAC,MAAM,EACX,GAAG,EAAE,CAAC,YAAY,MAAM,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,EACzD,WAAW,EAAC,aAAa,EACzB,KAAK,EAAC,wEAAwE,EAC9E,QAAQ,EAAE,CAAC,CAAC,KACV,IAAI,CAAC,gBAAgB,CACnB,aAAa,EACZ,CAAC,CAAC,aAAkC,CAAC,KAAK,CAC5C,GAEH,CACO,EACX;KACH;IAEO,mBAAmB;QACzB,QACE,oBACE,cAAQ,KAAK,EAAC,gBAAgB,IAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAmC,CAAC,CACnD,EACT,gBACE,IAAI,EAAC,gBAAgB,EACrB,GAAG,EAAE,CAAC,YAAY,MAAM,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,EAC5D,KAAK,EAAC,yMAAyM,EAC/M,IAAI,EAAE,CAAC,EACP,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,EAC9C,QAAQ,EAAE,CAAC,CAAC,KACV,IAAI,CAAC,gBAAgB,CACnB,SAAS,EACR,CAAC,CAAC,aAAqC,CAAC,KAAK,CAC/C,GAEO,CACH,EACX;KACH;IAEO,kBAAkB;QACxB,QACE,YACE,IAAI,EAAC,MAAM,EACX,EAAE,EAAE,IAAI,CAAC,MAAM,EACf,IAAI,EAAC,MAAM,EACX,QAAQ,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EACrC,KAAK,EAAC,+BAA+B,IAEpC,IAAI,CAAC,aAAa,EAAE,EACpB,IAAI,CAAC,8BAA8B,EAAE,EACrC,IAAI,CAAC,mBAAmB,EAAE,CACtB,EACP;KACH;IAEO,oBAAoB;QAC1B,QACE,WAAK,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,uCAAuC,IAC5D,mBAAa,IAAI,EAAE,OAAO,EAAE,KAAK,EAAC,MAAM,GAAG,EAC3C,SAAG,KAAK,EAAC,WAAW,IACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAmC,CAAC,CACxD,CACA,EACN;KACH;IAEO,UAAU;QAChB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC3B,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAClC;aAAM;YACL,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC;SACpC;KACF;IAEO,wBAAwB;QAC9B,MAAM,aAAa,GACjB,mEAAmE,CAAC;QAEtE,QACE,WAAK,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,cAAc,IACpC,WAAK,KAAK,EAAC,mCAAmC,IAC5C,WAAK,KAAK,EAAC,0BAA0B,IACnC,YAAM,KAAK,EAAC,mBAAmB,QAAS,EACvC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CACpC,EACN,WAAK,KAAK,EAAC,YAAY,IACrB,EAAC,MAAM,IACL,IAAI,EAAC,eAAe,EACpB,KAAK,EAAC,iBAAiB,EACvB,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EACvC,OAAO,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,IAE1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CACtB,EACT,EAAC,MAAM,IACL,IAAI,EAAC,eAAe,EACpB,KAAK,EAAC,SAAS,EACf,IAAI,EAAC,QAAQ,EACb,IAAI,EAAE,IAAI,CAAC,MAAM,EACjB,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,gCAAgC,CAAC,IAEhE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAChD,CACL,CACF,CACF,EACN;KACH;IAEO,uBAAuB;QAC7B,QACE,WAAK,IAAI,EAAC,QAAQ,IAChB,WAAK,KAAK,EAAC,4BAA4B,IACrC,EAAC,MAAM,IACL,IAAI,EAAC,eAAe,EACpB,KAAK,EAAC,SAAS,EACf,OAAO,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,EAC3B,KAAK,EAAC,2CAA2C,EACjD,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAE5C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAC5B,CACL,CACF,EACN;KACH;IAEO,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC3B,OAAO,IAAI,CAAC,wBAAwB,EAAE,CAAC;SACxC;aAAM;YACL,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAC;SACvC;KACF;IAEM,MAAM;QACX,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,QACE,qEACE,UAAU,EAAE,KAAK,EACjB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,KAAK,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,EACzB,SAAS,EAAE,IAAI,CAAC,IAAI,EACpB,IAAI,EAAC,iCAAiC,EACtC,WAAW,EAAE,yBAAyB,IAErC,IAAI,CAAC,YAAY,EAAE,EACnB,IAAI,CAAC,UAAU,EAAE,EACjB,IAAI,CAAC,YAAY,EAAE,CACP,EACf;KACH;;;;;;;;;;;;;;;;;AA/Wc,0CAAO,GAGhB;IACJ;QACE,SAAS,EAAE,wBAAwB;QACnC,mBAAmB,EAAE,cAAc;KACpC;IACD;QACE,SAAS,EAAE,6BAA6B;QACxC,mBAAmB,EAAE,mBAAmB;KACzC;IACD;QACE,SAAS,EAAE,qBAAqB;QAChC,mBAAmB,EAAE,YAAY;KAClC;IACD;QACE,SAAS,EAAE,mBAAmB;QAC9B,mBAAmB,EAAE,UAAU;KAChC;CAnBmB,CAoBpB;AA1D2B;IAA5B,kBAAkB,EAAE;oEAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/common/generated-answer/atomic-generated-answer-feedback/atomic-generated-answer-feedback-modal.pcss?tag=atomic-generated-answer-feedback-modal&encapsulation=shadow","src/components/common/generated-answer/atomic-generated-answer-feedback/atomic-generated-answer-feedback-modal.tsx"],"sourcesContent":["@import '../../../../global/global.pcss';\n\n@utility mobile-feedback-modal {\n &::part(container) {\n @apply w-auto min-w-full;\n }\n\n &::part(header),\n &::part(body),\n &::part(footer) {\n @apply max-w-full;\n }\n [part='buttons'] {\n .required-label {\n @apply text-sm;\n }\n }\n [part='form'] {\n .answer-evaluation {\n @apply block;\n }\n\n .options {\n @apply mt-2;\n }\n }\n [part='modal-header'] {\n .hide {\n @apply hidden;\n }\n }\n}\n\n[part='generated-answer-feedback-modal'] {\n &::part(container) {\n @apply min-w-170;\n }\n\n &::part(header),\n &::part(body),\n &::part(footer) {\n @apply max-w-170;\n }\n\n @media not all and (width >= theme(--breakpoint-desktop)) {\n @apply mobile-feedback-modal;\n }\n}\n\n[part='form'] {\n .active {\n @apply border-primary-light text-primary-light bg-primary-background;\n }\n .text-error-red {\n @apply text-inline-code;\n }\n .required {\n @apply flex;\n }\n}\n","import {\n GeneratedAnswer,\n GeneratedAnswerFeedback,\n GeneratedAnswerFeedbackOption,\n} from '@coveo/headless';\nimport {\n Component,\n State,\n h,\n Watch,\n Prop,\n Element,\n Event,\n EventEmitter,\n} from '@stencil/core/internal';\nimport CloseIcon from '../../../../images/close.svg';\nimport Success from '../../../../images/success.svg';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../../utils/initialization-utils';\nimport {updateBreakpoints} from '../../../../utils/replace-breakpoint';\nimport {once, randomID} from '../../../../utils/utils';\nimport {ATOMIC_MODAL_EXPORT_PARTS} from '../../atomic-modal/export-parts';\nimport {IconButton} from '../../iconButton';\nimport {AnyBindings} from '../../interface/bindings';\nimport {Button} from '../../stencil-button';\nimport {FieldsetGroup} from '../../stencil-fieldset-group';\nimport {RadioButton} from '../../stencil-radio-button';\n\n/**\n * @internal\n */\n@Component({\n tag: 'atomic-generated-answer-feedback-modal',\n styleUrl: 'atomic-generated-answer-feedback-modal.pcss',\n shadow: true,\n})\nexport class AtomicGeneratedAnswerFeedbackModal\n implements InitializableComponent<AnyBindings>\n{\n @InitializeBindings() public bindings!: AnyBindings;\n @Element() public host!: HTMLElement;\n\n /**\n * Indicates whether the modal is open.\n */\n @Prop({reflect: true, mutable: true}) isOpen = false;\n /**\n * A `GeneratedAnswer` controller instance. It is used when the user interacts with the modal.\n */\n @Prop({reflect: true, mutable: true}) generatedAnswer!: GeneratedAnswer;\n /**\n * Indicates whether the answer was helpful or not.\n */\n @Prop({reflect: true, mutable: true}) helpful = false;\n\n @State() public error!: Error;\n @State() private currentAnswer: Partial<GeneratedAnswerFeedback> =\n this.getInitialAnswerState();\n @State() feedbackSubmitted: boolean = false;\n @State() answerEvaluationRequired: boolean = false;\n\n private readonly formId = randomID(\n 'atomic-generated-answer-feedback-modal-form-'\n );\n private detailsInputRef?: HTMLTextAreaElement;\n\n private linkInputRef?: HTMLInputElement;\n\n @Event() feedbackSent!: EventEmitter;\n\n @Watch('isOpen')\n watchToggleOpen(isOpen: boolean) {\n if (isOpen) {\n this.generatedAnswer.openFeedbackModal();\n }\n }\n\n private static options: {\n localeKey: string;\n correspondingAnswer: keyof GeneratedAnswerFeedback;\n }[] = [\n {\n localeKey: 'feedback-correct-topic',\n correspondingAnswer: 'correctTopic',\n },\n {\n localeKey: 'feedback-hallucination-free',\n correspondingAnswer: 'hallucinationFree',\n },\n {\n localeKey: 'feedback-documented',\n correspondingAnswer: 'documented',\n },\n {\n localeKey: 'feedback-readable',\n correspondingAnswer: 'readable',\n },\n ];\n\n private getInitialAnswerState(): Partial<GeneratedAnswerFeedback> {\n return {\n documented: undefined,\n correctTopic: undefined,\n hallucinationFree: undefined,\n readable: undefined,\n };\n }\n\n private resetState() {\n this.feedbackSubmitted = false;\n this.currentAnswer = this.getInitialAnswerState();\n this.answerEvaluationRequired = false;\n this.isOpen = false;\n }\n\n private clearInputRefs() {\n if (this.detailsInputRef) {\n this.detailsInputRef.value = '';\n }\n if (this.linkInputRef) {\n this.linkInputRef.value = '';\n }\n }\n\n private close() {\n this.clearInputRefs();\n this.resetState();\n this.generatedAnswer.closeFeedbackModal();\n }\n\n private updateBreakpoints = once(() => updateBreakpoints(this.host));\n\n private setCurrentAnswer(\n key: keyof GeneratedAnswerFeedback,\n value: GeneratedAnswerFeedbackOption | string\n ) {\n this.currentAnswer = {\n ...this.currentAnswer,\n [key]: value,\n };\n }\n\n public sendFeedback() {\n const feedback: GeneratedAnswerFeedback = {\n ...(this.currentAnswer as GeneratedAnswerFeedback),\n helpful: this.helpful,\n };\n this.generatedAnswer.sendFeedback(feedback);\n this.feedbackSent.emit();\n }\n\n private isAnyAnswerEvaluationUndefined = () => {\n return Object.values(this.currentAnswer).some(\n (value) => value === undefined\n );\n };\n\n private handleSubmit(e: Event) {\n e.preventDefault();\n if (this.isAnyAnswerEvaluationUndefined()) {\n this.answerEvaluationRequired = true;\n return;\n }\n this.feedbackSubmitted = true;\n this.answerEvaluationRequired = false;\n this.sendFeedback();\n }\n\n private renderHeader() {\n return (\n <div\n slot=\"header\"\n part=\"modal-header\"\n class=\"flex w-full items-center justify-between\"\n >\n <h1>\n <span>{this.bindings.i18n.t('feedback-modal-title')}</span>\n <span class=\"hide ml-0.5\">\n {this.bindings.i18n.t('additional-feedback')}\n </span>\n </h1>\n <IconButton\n style=\"text-transparent\"\n class=\"search-clear-button\"\n onClick={() => this.close()}\n icon={CloseIcon}\n partPrefix={'close'}\n ariaLabel={this.bindings.i18n.t('close')}\n />\n </div>\n );\n }\n\n private renderFeedbackOption(\n option: GeneratedAnswerFeedbackOption,\n correspondingAnswer: keyof GeneratedAnswerFeedback\n ) {\n const buttonClasses = [\n 'min-w-20',\n 'flex',\n 'items-center',\n 'justify-center',\n 'px-3',\n 'py-1.5',\n 'mr-1',\n 'text-neutral-dark',\n ];\n const isSelected = this.currentAnswer[correspondingAnswer] === option;\n\n if (isSelected) {\n buttonClasses.push('active');\n }\n return (\n <RadioButton\n key={String(correspondingAnswer)}\n groupName={this.bindings.i18n.t(correspondingAnswer)}\n style=\"outline-neutral\"\n checked={isSelected}\n aria-checked={isSelected}\n onChecked={() => {\n this.setCurrentAnswer(correspondingAnswer, option);\n }}\n class={buttonClasses.join(' ')}\n text={this.bindings.i18n.t(option)}\n ></RadioButton>\n );\n }\n\n private renderAnswerEvaluation(\n label: string,\n correspondingAnswer: keyof GeneratedAnswerFeedback\n ) {\n const labelClasses = ['text-error-red', 'text-sm', 'hidden'];\n const isRequired =\n this.answerEvaluationRequired &&\n this.currentAnswer[correspondingAnswer] === undefined;\n if (isRequired) {\n labelClasses.push('required');\n }\n return (\n <div class=\"block\">\n <div class=\"flex\">\n <label class=\"text-base\">\n {this.bindings.i18n.t(label)}\n <span class=\"text-error-red ml-0.5\">*</span>\n </label>\n </div>\n <span class={labelClasses.join(' ')}>\n {this.bindings.i18n.t('required-fields-error')}\n </span>\n </div>\n );\n }\n\n private renderOptions() {\n return (\n <fieldset>\n <legend class=\"font-bold\">\n {this.bindings.i18n.t('answer-evaluation')}\n </legend>\n {AtomicGeneratedAnswerFeedbackModal.options.map(\n ({localeKey, correspondingAnswer}) => (\n <FieldsetGroup label={this.bindings.i18n.t(localeKey)}>\n <div\n class={`answer-evaluation mt-3 flex items-center justify-between ${String(correspondingAnswer)}`}\n key={String(correspondingAnswer)}\n >\n {this.renderAnswerEvaluation(localeKey, correspondingAnswer)}\n <div\n class=\"options flex text-base\"\n aria-label={this.bindings.i18n.t(localeKey)}\n >\n {this.renderFeedbackOption('yes', correspondingAnswer)}\n {this.renderFeedbackOption('unknown', correspondingAnswer)}\n {this.renderFeedbackOption('no', correspondingAnswer)}\n </div>\n </div>\n </FieldsetGroup>\n )\n )}\n </fieldset>\n );\n }\n\n private renderLinkToCorrectAnswerField() {\n return (\n <fieldset>\n <legend class=\"font-bold\">\n {this.bindings.i18n.t('generated-answer-feedback-link')}\n </legend>\n <input\n type=\"text\"\n ref={(linkInputRef) => (this.linkInputRef = linkInputRef)}\n placeholder=\"https://URL\"\n class=\"input-primary placeholder-neutral-dark mt-4 h-9 w-full rounded-md px-4\"\n onChange={(e) =>\n this.setCurrentAnswer(\n 'documentUrl',\n (e.currentTarget as HTMLInputElement).value\n )\n }\n />\n </fieldset>\n );\n }\n\n private renderAddNotesField() {\n return (\n <fieldset>\n <legend class=\"mt-8 font-bold\">\n {this.bindings.i18n.t('generated-answer-additional-notes')}\n </legend>\n <textarea\n name=\"answer-details\"\n ref={(detailsInput) => (this.detailsInputRef = detailsInput)}\n class=\"placeholder-neutral-dark border-neutral hover:border-primary-light focus-visible:border-primary mt-4 w-full resize-none rounded-md border px-4 py-2 leading-5 focus:outline-hidden focus-visible:ring-2\"\n rows={4}\n placeholder={this.bindings.i18n.t('add-notes')}\n onChange={(e) =>\n this.setCurrentAnswer(\n 'details',\n (e.currentTarget as HTMLTextAreaElement).value\n )\n }\n ></textarea>\n </fieldset>\n );\n }\n\n private renderFeedbackForm() {\n return (\n <form\n part=\"form\"\n id={this.formId}\n slot=\"body\"\n onSubmit={(e) => this.handleSubmit(e)}\n class=\"flex flex-col gap-8 leading-4\"\n >\n {this.renderOptions()}\n {this.renderLinkToCorrectAnswerField()}\n {this.renderAddNotesField()}\n </form>\n );\n }\n\n private renderSuccessMessage() {\n return (\n <div slot=\"body\" class=\"my-4 flex flex-col items-center gap-4\">\n <atomic-icon icon={Success} class=\"w-48\" />\n <p class=\"text-base\">\n {this.bindings.i18n.t('generated-answer-feedback-success')}\n </p>\n </div>\n );\n }\n\n private renderBody() {\n if (!this.feedbackSubmitted) {\n return this.renderFeedbackForm();\n } else {\n return this.renderSuccessMessage();\n }\n }\n\n private renderFeedbackFormFooter() {\n const buttonClasses =\n 'flex items-center justify-center text-sm leading-4 p-2 rounded-md';\n\n return (\n <div slot=\"footer\" part=\"modal-footer\">\n <div class=\"flex items-center justify-between\">\n <div class=\"required-label text-base\">\n <span class=\"text-error mr-0.5\">*</span>\n {this.bindings.i18n.t('required-fields')}\n </div>\n <div class=\"flex gap-2\">\n <Button\n part=\"cancel-button\"\n style=\"outline-primary\"\n class={buttonClasses}\n ariaLabel={this.bindings.i18n.t('skip')}\n onClick={() => this.close()}\n >\n {this.bindings.i18n.t('skip')}\n </Button>\n <Button\n part=\"submit-button\"\n style=\"primary\"\n type=\"submit\"\n form={this.formId}\n class={buttonClasses}\n ariaLabel={this.bindings.i18n.t('generated-answer-send-feedback')}\n >\n {this.bindings.i18n.t('generated-answer-send-feedback')}\n </Button>\n </div>\n </div>\n </div>\n );\n }\n\n private renderSuccessFormFooter() {\n return (\n <div slot=\"footer\">\n <div class=\"flex justify-end gap-2 p-2\">\n <Button\n part=\"cancel-button\"\n style=\"primary\"\n onClick={() => this.close()}\n class=\"flex justify-center p-2 text-sm leading-4\"\n ariaLabel={this.bindings.i18n.t('modal-done')}\n >\n {this.bindings.i18n.t('modal-done')}\n </Button>\n </div>\n </div>\n );\n }\n\n private renderFooter() {\n if (!this.feedbackSubmitted) {\n return this.renderFeedbackFormFooter();\n } else {\n return this.renderSuccessFormFooter();\n }\n }\n\n public render() {\n this.updateBreakpoints();\n\n return (\n <atomic-modal\n fullscreen={false}\n isOpen={this.isOpen}\n close={() => this.close()}\n container={this.host}\n part=\"generated-answer-feedback-modal\"\n exportparts={ATOMIC_MODAL_EXPORT_PARTS}\n >\n {this.renderHeader()}\n {this.renderBody()}\n {this.renderFooter()}\n </atomic-modal>\n );\n }\n}\n"],"version":3}