@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.
- package/dist/atomic/_atomic.esm.js +1 -1
- package/dist/atomic/atomic.esm.js.map +1 -1
- package/dist/atomic/components/analytics-config.js +1 -1
- package/dist/atomic/components/analytics-config.js.map +1 -1
- package/dist/atomic/components/atomic-citation.js +1 -547
- package/dist/atomic/components/atomic-citation.js.map +1 -1
- package/dist/{esm/atomic-citation.entry.js → atomic/components/atomic-citation2.js} +35 -13
- package/dist/atomic/components/atomic-citation2.js.map +1 -0
- package/dist/atomic/components/atomic-generated-answer-feedback-modal.js +1 -440
- package/dist/atomic/components/atomic-generated-answer-feedback-modal.js.map +1 -1
- package/dist/{esm/atomic-generated-answer-feedback-modal.entry.js → atomic/components/atomic-generated-answer-feedback-modal2.js} +55 -25
- package/dist/atomic/components/atomic-generated-answer-feedback-modal2.js.map +1 -0
- package/dist/atomic/components/atomic-generated-answer.js +88 -28
- package/dist/atomic/components/atomic-generated-answer.js.map +1 -1
- package/dist/atomic/components/atomic-insight-generated-answer.js +95 -34
- package/dist/atomic/components/atomic-insight-generated-answer.js.map +1 -1
- package/dist/atomic/components/atomic-ipx-result-link.js +1 -1
- package/dist/atomic/components/atomic-popover.js +1 -1
- package/dist/atomic/components/atomic-result-link.js +1 -1
- package/dist/atomic/components/attributes-slot.js +1 -1
- package/dist/atomic/components/createPopper.js +1 -1
- package/dist/atomic/components/generated-answer-common.js +146 -238
- package/dist/atomic/components/generated-answer-common.js.map +1 -1
- package/dist/atomic/components/global/environment.js +1 -1
- package/dist/atomic/components/popper-lite.js +1 -1
- package/dist/atomic/components/slot-utils.js +1 -1
- package/dist/atomic/components/tab-popover.js +1 -1
- package/dist/atomic/p-01531448.entry.js +2 -0
- package/dist/atomic/p-01531448.entry.js.map +1 -0
- package/dist/atomic/p-027b85e5.js +2 -0
- package/dist/atomic/{p-bed5a86b.js.map → p-027b85e5.js.map} +1 -1
- package/dist/atomic/{p-7b9026d7.js → p-07f25674.js} +2 -2
- package/dist/atomic/{p-75b863ea.entry.js → p-0ff341d5.entry.js} +2 -2
- package/dist/atomic/{p-eb026d69.entry.js → p-129799b2.entry.js} +2 -2
- package/dist/atomic/p-284f3c50.js +2 -0
- package/dist/atomic/p-284f3c50.js.map +1 -0
- package/dist/atomic/p-33201620.entry.js +2 -0
- package/dist/atomic/p-33201620.entry.js.map +1 -0
- package/dist/atomic/{p-8b6aaeed.entry.js → p-333be187.entry.js} +2 -2
- package/dist/atomic/{p-ba67a16b.js → p-3b58a34d.js} +2 -2
- package/dist/atomic/{p-ba67a16b.js.map → p-3b58a34d.js.map} +1 -1
- package/dist/atomic/{p-946fe85f.js → p-4aaffb59.js} +2 -2
- package/dist/atomic/{p-48c8a766.entry.js → p-5730dec7.entry.js} +2 -2
- package/dist/atomic/p-5d785d02.entry.js +2 -0
- package/dist/atomic/p-5d785d02.entry.js.map +1 -0
- package/dist/atomic/{p-9da1c516.entry.js → p-6481379f.entry.js} +2 -2
- package/dist/atomic/{p-bfdecd0f.entry.js → p-6f5d26cb.entry.js} +2 -2
- package/dist/atomic/{p-ca0a32dc.entry.js → p-dd93ae9a.entry.js} +2 -2
- package/dist/cjs/_loader.cjs.js +1 -1
- package/dist/cjs/{analytics-config-f34a68ee.js → analytics-config-de09a791.js} +2 -2
- package/dist/cjs/analytics-config-de09a791.js.map +1 -0
- package/dist/cjs/{atomic-generated-answer-feedback-modal.cjs.entry.js → atomic-citation_2.cjs.entry.js} +526 -1
- package/dist/cjs/atomic-citation_2.cjs.entry.js.map +1 -0
- package/dist/cjs/atomic-generated-answer.cjs.entry.js +62 -27
- package/dist/cjs/atomic-generated-answer.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-generated-answer.cjs.entry.js +68 -32
- package/dist/cjs/atomic-insight-generated-answer.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-interface.cjs.entry.js +1 -1
- package/dist/cjs/atomic-recs-interface.cjs.entry.js +1 -1
- package/dist/cjs/atomic-search-interface.cjs.entry.js +1 -1
- package/dist/cjs/atomic.cjs.js +1 -1
- package/dist/cjs/{generated-answer-common-4cd4b7c6.js → generated-answer-common-469ad0e8.js} +152 -237
- package/dist/cjs/generated-answer-common-469ad0e8.js.map +1 -0
- package/dist/cjs/index-757bc886.js +4 -8
- package/dist/cjs/version.cjs.js +2 -2
- package/dist/esm/_loader.js +1 -1
- package/dist/esm/{analytics-config-672b6eba.js → analytics-config-19fa5599.js} +2 -2
- package/dist/esm/analytics-config-19fa5599.js.map +1 -0
- package/dist/esm/atomic-citation_2.entry.js +938 -0
- package/dist/esm/atomic-citation_2.entry.js.map +1 -0
- package/dist/esm/atomic-generated-answer.entry.js +64 -29
- package/dist/esm/atomic-generated-answer.entry.js.map +1 -1
- package/dist/esm/atomic-insight-generated-answer.entry.js +71 -35
- package/dist/esm/atomic-insight-generated-answer.entry.js.map +1 -1
- package/dist/esm/atomic-insight-interface.entry.js +1 -1
- package/dist/esm/atomic-popover.entry.js +2 -2
- package/dist/esm/atomic-recs-interface.entry.js +1 -1
- package/dist/esm/atomic-search-box-query-suggestions_2.entry.js +1 -1
- package/dist/esm/atomic-search-box.entry.js +1 -1
- package/dist/esm/atomic-search-interface.entry.js +2 -2
- package/dist/esm/atomic-tab-bar_2.entry.js +2 -2
- package/dist/esm/atomic.js +1 -1
- package/dist/esm/{createPopper-a633eb88.js → createPopper-ed15cfea.js} +2 -2
- package/dist/esm/{createPopper-a633eb88.js.map → createPopper-ed15cfea.js.map} +1 -1
- package/dist/esm/{generated-answer-common-06146290.js → generated-answer-common-184a3c08.js} +147 -239
- package/dist/esm/generated-answer-common-184a3c08.js.map +1 -0
- package/dist/esm/index-3f35faca.js +4 -8
- package/dist/esm/{local-storage-utils-410269e6.js → local-storage-utils-a4bf8fba.js} +2 -2
- package/dist/esm/{local-storage-utils-410269e6.js.map → local-storage-utils-a4bf8fba.js.map} +1 -1
- package/dist/esm/{popper-lite-2035100c.js → popper-lite-4b6382b2.js} +2 -2
- package/dist/esm/{popper-lite-2035100c.js.map → popper-lite-4b6382b2.js.map} +1 -1
- package/dist/esm/version.js +2 -2
- package/dist/types/components/common/generated-answer/generated-answer-common.d.ts +30 -50
- package/dist/types/components/insight/atomic-insight-generated-answer/atomic-insight-generated-answer.d.ts +11 -3
- package/dist/types/components/search/atomic-generated-answer/atomic-generated-answer.d.ts +9 -1
- package/docs/atomic-docs.json +17 -3
- package/package.json +3 -3
- package/dist/atomic/p-0c076058.entry.js +0 -2
- package/dist/atomic/p-0c076058.entry.js.map +0 -1
- package/dist/atomic/p-421850f9.entry.js +0 -2
- package/dist/atomic/p-421850f9.entry.js.map +0 -1
- package/dist/atomic/p-579c5b46.entry.js +0 -2
- package/dist/atomic/p-579c5b46.entry.js.map +0 -1
- package/dist/atomic/p-5fca1435.js +0 -2
- package/dist/atomic/p-5fca1435.js.map +0 -1
- package/dist/atomic/p-bed5a86b.js +0 -2
- package/dist/atomic/p-e27e1e46.entry.js +0 -2
- package/dist/atomic/p-e27e1e46.entry.js.map +0 -1
- package/dist/cjs/analytics-config-f34a68ee.js.map +0 -1
- package/dist/cjs/atomic-citation.cjs.entry.js +0 -533
- package/dist/cjs/atomic-citation.cjs.entry.js.map +0 -1
- package/dist/cjs/atomic-generated-answer-feedback-modal.cjs.entry.js.map +0 -1
- package/dist/cjs/generated-answer-common-4cd4b7c6.js.map +0 -1
- package/dist/esm/analytics-config-672b6eba.js.map +0 -1
- package/dist/esm/atomic-citation.entry.js.map +0 -1
- package/dist/esm/atomic-generated-answer-feedback-modal.entry.js.map +0 -1
- package/dist/esm/generated-answer-common-06146290.js.map +0 -1
- /package/dist/atomic/{p-7b9026d7.js.map → p-07f25674.js.map} +0 -0
- /package/dist/atomic/{p-75b863ea.entry.js.map → p-0ff341d5.entry.js.map} +0 -0
- /package/dist/atomic/{p-eb026d69.entry.js.map → p-129799b2.entry.js.map} +0 -0
- /package/dist/atomic/{p-8b6aaeed.entry.js.map → p-333be187.entry.js.map} +0 -0
- /package/dist/atomic/{p-946fe85f.js.map → p-4aaffb59.js.map} +0 -0
- /package/dist/atomic/{p-48c8a766.entry.js.map → p-5730dec7.entry.js.map} +0 -0
- /package/dist/atomic/{p-9da1c516.entry.js.map → p-6481379f.entry.js.map} +0 -0
- /package/dist/atomic/{p-bfdecd0f.entry.js.map → p-6f5d26cb.entry.js.map} +0 -0
- /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 {
|
|
2
|
-
import { C as CloseIcon } from './close
|
|
3
|
-
import { I as InitializeBindings } from './initialization-utils
|
|
4
|
-
import { u as updateBreakpoints } from './replace-breakpoint
|
|
5
|
-
import { r as randomID, o as once } from './utils
|
|
6
|
-
import { A as ATOMIC_MODAL_EXPORT_PARTS } from './export-parts
|
|
7
|
-
import { I as IconButton } from './iconButton
|
|
8
|
-
import { B as Button } from './stencil-button
|
|
9
|
-
import { F as FieldsetGroup } from './stencil-fieldset-group
|
|
10
|
-
import { R as RadioButton } from './stencil-radio-button
|
|
11
|
-
import './
|
|
12
|
-
import './
|
|
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(
|
|
229
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
442
|
+
export { AtomicGeneratedAnswerFeedbackModal as A, defineCustomElement as d };
|
|
413
443
|
|
|
414
|
-
//# sourceMappingURL=atomic-generated-answer-feedback-
|
|
444
|
+
//# sourceMappingURL=atomic-generated-answer-feedback-modal2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"atomic-generated-answer-feedback-modal2.js","mappings":"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","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}
|