@symphony-talent/component-library 4.180.0 → 4.182.0

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 (62) hide show
  1. package/README.md +0 -1
  2. package/esm2020/lib/atoms/atoms.module.mjs +5 -1
  3. package/esm2020/lib/atoms/input-textarea-with-send/input-textarea-with-send.component.mjs +156 -0
  4. package/esm2020/lib/atoms/input-textarea-with-send/input-textarea-with-send.module.mjs +36 -0
  5. package/esm2020/lib/molecules/molecules.module.mjs +11 -4
  6. package/esm2020/lib/molecules/task-status/task-status.component.mjs +64 -0
  7. package/esm2020/lib/molecules/task-status/task-status.model.mjs +2 -0
  8. package/esm2020/lib/molecules/task-status/task-status.module.mjs +50 -0
  9. package/esm2020/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.component.mjs +178 -0
  10. package/esm2020/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.model.mjs +2 -0
  11. package/esm2020/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.module.mjs +64 -0
  12. package/esm2020/lib/organisms/ai-search-assistant-drawer/pipes/new-line-to-br.pipe.mjs +22 -0
  13. package/esm2020/lib/organisms/organisms.module.mjs +12 -4
  14. package/esm2020/projects/component-library/lib/atoms/atoms.module.mjs +5 -1
  15. package/esm2020/projects/component-library/lib/atoms/input-textarea-with-send/input-textarea-with-send.component.mjs +156 -0
  16. package/esm2020/projects/component-library/lib/atoms/input-textarea-with-send/input-textarea-with-send.module.mjs +36 -0
  17. package/esm2020/projects/component-library/lib/molecules/molecules.module.mjs +11 -4
  18. package/esm2020/projects/component-library/lib/molecules/task-status/task-status.component.mjs +64 -0
  19. package/esm2020/projects/component-library/lib/molecules/task-status/task-status.model.mjs +2 -0
  20. package/esm2020/projects/component-library/lib/molecules/task-status/task-status.module.mjs +50 -0
  21. package/esm2020/projects/component-library/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.component.mjs +178 -0
  22. package/esm2020/projects/component-library/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.model.mjs +2 -0
  23. package/esm2020/projects/component-library/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.module.mjs +64 -0
  24. package/esm2020/projects/component-library/lib/organisms/ai-search-assistant-drawer/pipes/new-line-to-br.pipe.mjs +22 -0
  25. package/esm2020/projects/component-library/lib/organisms/organisms.module.mjs +12 -4
  26. package/esm2020/projects/component-library/public-api.mjs +9 -1
  27. package/esm2020/public-api.mjs +9 -1
  28. package/fesm2015/symphony-talent-component-library-projects-component-library.mjs +542 -9
  29. package/fesm2015/symphony-talent-component-library-projects-component-library.mjs.map +1 -1
  30. package/fesm2015/symphony-talent-component-library.mjs +542 -9
  31. package/fesm2015/symphony-talent-component-library.mjs.map +1 -1
  32. package/fesm2020/symphony-talent-component-library-projects-component-library.mjs +534 -9
  33. package/fesm2020/symphony-talent-component-library-projects-component-library.mjs.map +1 -1
  34. package/fesm2020/symphony-talent-component-library.mjs +534 -9
  35. package/fesm2020/symphony-talent-component-library.mjs.map +1 -1
  36. package/lib/atoms/atoms.module.d.ts +13 -12
  37. package/lib/atoms/input-textarea-with-send/input-textarea-with-send.component.d.ts +38 -0
  38. package/lib/atoms/input-textarea-with-send/input-textarea-with-send.module.d.ts +10 -0
  39. package/lib/molecules/molecules.module.d.ts +3 -2
  40. package/lib/molecules/task-status/task-status.component.d.ts +18 -0
  41. package/lib/molecules/task-status/task-status.model.d.ts +21 -0
  42. package/lib/molecules/task-status/task-status.module.d.ts +15 -0
  43. package/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.component.d.ts +41 -0
  44. package/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.model.d.ts +53 -0
  45. package/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.module.d.ts +17 -0
  46. package/lib/organisms/ai-search-assistant-drawer/pipes/new-line-to-br.pipe.d.ts +7 -0
  47. package/lib/organisms/organisms.module.d.ts +2 -1
  48. package/package.json +1 -1
  49. package/projects/component-library/lib/atoms/atoms.module.d.ts +13 -12
  50. package/projects/component-library/lib/atoms/input-textarea-with-send/input-textarea-with-send.component.d.ts +38 -0
  51. package/projects/component-library/lib/atoms/input-textarea-with-send/input-textarea-with-send.module.d.ts +10 -0
  52. package/projects/component-library/lib/molecules/molecules.module.d.ts +3 -2
  53. package/projects/component-library/lib/molecules/task-status/task-status.component.d.ts +18 -0
  54. package/projects/component-library/lib/molecules/task-status/task-status.model.d.ts +21 -0
  55. package/projects/component-library/lib/molecules/task-status/task-status.module.d.ts +15 -0
  56. package/projects/component-library/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.component.d.ts +41 -0
  57. package/projects/component-library/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.model.d.ts +53 -0
  58. package/projects/component-library/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.module.d.ts +17 -0
  59. package/projects/component-library/lib/organisms/ai-search-assistant-drawer/pipes/new-line-to-br.pipe.d.ts +7 -0
  60. package/projects/component-library/lib/organisms/organisms.module.d.ts +2 -1
  61. package/projects/component-library/public-api.d.ts +8 -0
  62. package/public-api.d.ts +8 -0
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, Input, NgModule, EventEmitter, Output, Pipe, Injectable, ViewEncapsulation, ViewChild, HostListener } from '@angular/core';
2
+ import { Component, Input, NgModule, EventEmitter, Output, Pipe, Injectable, ViewEncapsulation, ViewChild, forwardRef, HostListener } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { SlicePipe, CommonModule, DecimalPipe } from '@angular/common';
5
5
  import * as i1$1 from 'ngx-bootstrap/dropdown';
@@ -12,7 +12,7 @@ import { AgGridModule } from 'ag-grid-angular';
12
12
  import { BrowserModule } from '@angular/platform-browser';
13
13
  import { LicenseManager } from 'ag-grid-enterprise';
14
14
  import * as i1$4 from '@angular/forms';
15
- import { FormsModule, ReactiveFormsModule, FormControl } from '@angular/forms';
15
+ import { FormsModule, ReactiveFormsModule, NG_VALUE_ACCESSOR, FormControl } from '@angular/forms';
16
16
  import { Subject, timer } from 'rxjs';
17
17
  import { debounceTime, delay } from 'rxjs/operators';
18
18
  import * as i3 from 'ngx-bootstrap/popover';
@@ -1969,6 +1969,185 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
1969
1969
  }]
1970
1970
  }] });
1971
1971
 
1972
+ class InputTextareaWithSendComponent {
1973
+ constructor() {
1974
+ this.placeholder = 'Type your message...';
1975
+ this.isDisabled = false;
1976
+ this.showCharacterCount = false;
1977
+ this.minRows = 1;
1978
+ this.maxRows = 6;
1979
+ this.sendButtonIcon = 'si-arrow-next';
1980
+ this.sendButtonAriaLabel = 'Send message';
1981
+ this.autoResize = true;
1982
+ this.sendClicked = new EventEmitter();
1983
+ this.enterPressed = new EventEmitter();
1984
+ this.valueChanged = new EventEmitter();
1985
+ this.value = '';
1986
+ this.currentRows = 1;
1987
+ this.onChange = (value) => { };
1988
+ this.onTouched = () => { };
1989
+ }
1990
+ ngAfterViewInit() {
1991
+ if (this.autoResize) {
1992
+ this.adjustTextareaHeight();
1993
+ }
1994
+ }
1995
+ // ControlValueAccessor implementation
1996
+ writeValue(value) {
1997
+ this.value = value || '';
1998
+ if (this.autoResize) {
1999
+ setTimeout(() => this.adjustTextareaHeight(), 0);
2000
+ }
2001
+ }
2002
+ registerOnChange(fn) {
2003
+ this.onChange = fn;
2004
+ }
2005
+ registerOnTouched(fn) {
2006
+ this.onTouched = fn;
2007
+ }
2008
+ setDisabledState(isDisabled) {
2009
+ this.isDisabled = isDisabled;
2010
+ }
2011
+ onInputChange(event) {
2012
+ const target = event.target;
2013
+ this.value = target.value;
2014
+ this.onChange(this.value);
2015
+ this.valueChanged.emit(this.value);
2016
+ if (this.autoResize) {
2017
+ this.adjustTextareaHeight();
2018
+ }
2019
+ }
2020
+ onInputKeyPress(event) {
2021
+ if (event.key === 'Enter' && !event.shiftKey) {
2022
+ event.preventDefault();
2023
+ if (this.canSend()) {
2024
+ this.onSendClick();
2025
+ }
2026
+ }
2027
+ }
2028
+ onSendClick() {
2029
+ if (this.canSend()) {
2030
+ this.sendClicked.emit(this.value);
2031
+ this.enterPressed.emit(this.value);
2032
+ }
2033
+ }
2034
+ adjustTextareaHeight() {
2035
+ if (!this.textareaElement)
2036
+ return;
2037
+ const textarea = this.textareaElement.nativeElement;
2038
+ // Reset height to auto to get the scroll height
2039
+ textarea.style.height = 'auto';
2040
+ // Calculate the number of lines
2041
+ const lineHeight = 24; // Base line height in pixels
2042
+ const padding = 16; // Top + bottom padding
2043
+ const minHeight = this.minRows * lineHeight + padding;
2044
+ const maxHeight = this.maxRows * lineHeight + padding;
2045
+ let newHeight = Math.max(textarea.scrollHeight, minHeight);
2046
+ newHeight = Math.min(newHeight, maxHeight);
2047
+ textarea.style.height = newHeight + 'px';
2048
+ // Update current rows for styling purposes
2049
+ this.currentRows = Math.ceil((newHeight - padding) / lineHeight);
2050
+ }
2051
+ canSend() {
2052
+ const trimmedValue = this.value?.trim();
2053
+ const hasValue = !!trimmedValue;
2054
+ const withinLimit = !this.maxCharacterLimit || this.value.length <= this.maxCharacterLimit;
2055
+ return !this.isDisabled && hasValue && withinLimit;
2056
+ }
2057
+ getCharacterCount() {
2058
+ return this.value?.length || 0;
2059
+ }
2060
+ isCharacterLimitExceeded() {
2061
+ return !!this.maxCharacterLimit && this.getCharacterCount() > this.maxCharacterLimit;
2062
+ }
2063
+ focus() {
2064
+ if (this.textareaElement) {
2065
+ this.textareaElement.nativeElement.focus();
2066
+ }
2067
+ }
2068
+ clear() {
2069
+ this.value = '';
2070
+ this.onChange('');
2071
+ this.valueChanged.emit('');
2072
+ if (this.autoResize) {
2073
+ setTimeout(() => this.adjustTextareaHeight(), 0);
2074
+ }
2075
+ }
2076
+ }
2077
+ InputTextareaWithSendComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: InputTextareaWithSendComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2078
+ InputTextareaWithSendComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: InputTextareaWithSendComponent, selector: "symphony-input-textarea-with-send", inputs: { placeholder: "placeholder", isDisabled: "isDisabled", maxCharacterLimit: "maxCharacterLimit", showCharacterCount: "showCharacterCount", minRows: "minRows", maxRows: "maxRows", sendButtonIcon: "sendButtonIcon", sendButtonAriaLabel: "sendButtonAriaLabel", autoResize: "autoResize" }, outputs: { sendClicked: "sendClicked", enterPressed: "enterPressed", valueChanged: "valueChanged" }, providers: [
2079
+ {
2080
+ provide: NG_VALUE_ACCESSOR,
2081
+ useExisting: forwardRef(() => InputTextareaWithSendComponent),
2082
+ multi: true
2083
+ }
2084
+ ], viewQueries: [{ propertyName: "textareaElement", first: true, predicate: ["textareaElement"], descendants: true }], ngImport: i0, template: "<div class=\"input-textarea-with-send-container\">\n <!-- Character Counter -->\n <div \n class=\"character-counter sfx-mb-10\"\n *ngIf=\"showCharacterCount && maxCharacterLimit\">\n <span \n class=\"counter-text\"\n [class.counter-exceeded]=\"isCharacterLimitExceeded()\">\n {{ getCharacterCount() }} / {{ maxCharacterLimit }}\n </span>\n </div>\n\n <!-- Input with Send Button -->\n <div class=\"input-wrapper\">\n <textarea\n #textareaElement\n class=\"textarea-input\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"isDisabled\"\n [maxLength]=\"maxCharacterLimit\"\n (input)=\"onInputChange($event)\"\n (keydown)=\"onInputKeyPress($event)\"\n (blur)=\"onTouched()\"\n rows=\"1\">\n </textarea>\n \n <!-- Send Button -->\n <button\n type=\"button\"\n class=\"send-button\"\n [class.enabled]=\"canSend()\"\n [class.disabled]=\"!canSend()\"\n [disabled]=\"!canSend()\"\n (click)=\"onSendClick()\"\n [attr.aria-label]=\"sendButtonAriaLabel\">\n <symphony-icon [icon]=\"sendButtonIcon\" [size]=\"'10px'\"></symphony-icon>\n </button>\n </div>\n</div> ", styles: [".sfx-p-0{padding:0}.sfx-p-5{padding:.3rem}.sfx-p-10{padding:.625rem}.sfx-p-15{padding:.9375rem}.sfx-p-20{padding:1.25rem}.sfx-p-30{padding:1.875rem}.sfx-pt-0{padding-top:0}.sfx-pt-5{padding-top:.3rem}.sfx-pt-10{padding-top:.625rem}.sfx-pt-15{padding-top:.9375rem}.sfx-pt-20{padding-top:1.25rem}.sfx-pt-25{padding-top:1.5625rem}.sfx-pt-30{padding-top:1.875rem}.sfx-pt-35{padding-top:2.1875rem}.sfx-pt-40{padding-top:2.5rem}.sfx-pt-50{padding-top:3.125rem}.sfx-pb-0{padding-bottom:0}.sfx-pb-5{padding-bottom:.3rem}.sfx-pb-10{padding-bottom:.625rem}.sfx-pb-15{padding-bottom:.9375rem}.sfx-pb-20{padding-bottom:1.25rem}.sfx-pb-25{padding-bottom:1.5625rem}.sfx-pb-30{padding-bottom:1.875rem}.sfx-pb-35{padding-bottom:2.1875rem}.sfx-pb-40{padding-bottom:2.5rem}.sfx-pb-50{padding-bottom:3.125rem}.sfx-pl-0{padding-left:0}.sfx-pl-5{padding-left:.3rem}.sfx-pl-10{padding-left:.625rem}.sfx-pl-15{padding-left:.9375rem}.sfx-pl-20{padding-left:1.25rem}.sfx-pl-25{padding-left:1.5625rem}.sfx-pl-30{padding-left:1.875rem}.sfx-pr-0{padding-right:0}.sfx-pr-5{padding-right:.3rem}.sfx-pr-10{padding-right:.625rem}.sfx-pr-15{padding-right:.9375rem}.sfx-pr-20{padding-right:1.25rem}.sfx-pr-25{padding-right:1.5625rem}.sfx-pr-30{padding-right:1.875rem}.sfx-py-15{padding-left:.9375rem;padding-right:.9375rem}.sfx-py-30{padding-left:1.875rem;padding-right:1.875rem}.sfx-px-0{padding-top:0;padding-bottom:0}.sfx-px-15{padding-top:.9375rem;padding-bottom:.9375rem}.sfx-px-20{padding-top:1.25rem;padding-bottom:1.25rem}.sfx-px-30{padding-top:1.875rem;padding-bottom:1.875rem}.sfx-m-0{margin:0}.sfx-m-5{margin:.3rem}.sfx-m-10{margin:.625rem}.sfx-m-15{margin:.9375rem}.sfx-m-20{margin:1.25rem}.sfx-m-auto{margin:0 auto}.sfx-mt-0{margin-top:0}.sfx-mt-5{margin-top:.3rem}.sfx-mt-10{margin-top:.625rem}.sfx-mt-15{margin-top:.9375rem}.sfx-mt-20{margin-top:1.25rem}.sfx-mt-25{margin-top:1.5625rem}.sfx-mt-30{margin-top:1.875rem}.sfx-mt-40{margin-top:2.5rem}.sfx-mt-80{margin-top:5rem}.sfx-mb-0{margin-bottom:0}.sfx-mb-5{margin-bottom:.3rem}.sfx-mb-10{margin-bottom:.625rem}.sfx-mb-15{margin-bottom:.9375rem}.sfx-mb-20{margin-bottom:1.25rem}.sfx-mb-25{margin-bottom:1.5625rem}.sfx-mb-30{margin-bottom:1.875rem}.sfx-mb-40{margin-bottom:2.5rem}.sfx-mb-50{margin-bottom:3.125rem}.sfx-ml-0{margin-left:0}.sfx-ml-5{margin-left:.3rem}.sfx-ml-10{margin-left:.625rem}.sfx-ml-15{margin-left:.9375rem}.sfx-ml-20{margin-left:1.25rem}.sfx-ml-auto{margin-left:auto}.sfx-mr-0{margin-right:0}.sfx-mr-5{margin-right:.3rem}.sfx-mr-10{margin-right:.625rem}.sfx-mr-15{margin-right:.9375rem}.sfx-mr-20{margin-right:1.25rem}.sfx-mr-25{margin-right:1.5625rem}.sfx-mr-30{margin-right:1.875rem}.sfx-mr-40{margin-right:2.5rem}.input-textarea-with-send-container{width:100%}.character-counter{text-align:right}.character-counter .counter-text{font-size:.75rem;color:#5b6d80}.character-counter .counter-text.counter-exceeded{color:#ac4463;font-weight:500}.input-wrapper{position:relative;display:flex;align-items:flex-end}.input-wrapper .textarea-input{flex:1;width:100%;min-height:52px;max-height:200px;padding:.9375rem 56px .9375rem .9375rem;font-size:.875rem;line-height:1.5rem;font-family:runda,sans-serif;background:#ffffff;border:1px solid #334860;border-radius:4px;resize:none;overflow-y:auto;transition:border-color .2s ease}.input-wrapper .textarea-input::-moz-placeholder{color:#5b6d80}.input-wrapper .textarea-input:-ms-input-placeholder{color:#5b6d80}.input-wrapper .textarea-input::placeholder{color:#5b6d80}.input-wrapper .textarea-input:focus{border-color:#2b8ff3;outline:none}.input-wrapper .textarea-input:disabled{background-color:#f1f2f5;border-color:#c3cbdc;color:#5b6d80;cursor:not-allowed}.input-wrapper .textarea-input::-webkit-scrollbar{width:4px}.input-wrapper .textarea-input::-webkit-scrollbar-track{background:transparent}.input-wrapper .textarea-input::-webkit-scrollbar-thumb{background:#C3CBDC;border-radius:2px}.input-wrapper .textarea-input::-webkit-scrollbar-thumb:hover{background:#5B6D80}.input-wrapper .send-button{position:absolute;right:.625rem;bottom:.625rem;width:36px;height:36px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;z-index:10;flex-shrink:0}.input-wrapper .send-button.enabled{background-color:#2b8ff3}.input-wrapper .send-button.enabled:hover{background-color:#0d76de;transform:scale(1.05)}.input-wrapper .send-button.enabled:active{transform:scale(.95)}.input-wrapper .send-button.enabled symphony-icon{color:#fff;font-size:16px}.input-wrapper .send-button.disabled{background-color:#d2d8e5;cursor:not-allowed}.input-wrapper .send-button.disabled symphony-icon{color:#5b6d80;font-size:16px}.input-wrapper .send-button symphony-icon{transition:color .2s ease}.input-wrapper .send-button:focus{outline:2px solid #2B8FF3;outline-offset:2px}@media (max-width: 768px){.input-wrapper .textarea-input{min-height:48px;padding:.625rem 50px .625rem .9375rem;font-size:.875rem;line-height:22px}.input-wrapper .send-button{width:32px;height:32px;right:.625rem;bottom:.625rem}.input-wrapper .send-button symphony-icon{font-size:.875rem}}@media (prefers-contrast: high){.textarea-input{border:2px solid #08203E}.textarea-input:focus{border-color:#2b8ff3}.send-button.enabled{border:2px solid #0a5cae}}@media (prefers-reduced-motion: reduce){.textarea-input,.send-button{transition:none}.send-button:hover,.send-button:active{transform:none}}\n"], components: [{ type: IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2085
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: InputTextareaWithSendComponent, decorators: [{
2086
+ type: Component,
2087
+ args: [{ selector: 'symphony-input-textarea-with-send', providers: [
2088
+ {
2089
+ provide: NG_VALUE_ACCESSOR,
2090
+ useExisting: forwardRef(() => InputTextareaWithSendComponent),
2091
+ multi: true
2092
+ }
2093
+ ], template: "<div class=\"input-textarea-with-send-container\">\n <!-- Character Counter -->\n <div \n class=\"character-counter sfx-mb-10\"\n *ngIf=\"showCharacterCount && maxCharacterLimit\">\n <span \n class=\"counter-text\"\n [class.counter-exceeded]=\"isCharacterLimitExceeded()\">\n {{ getCharacterCount() }} / {{ maxCharacterLimit }}\n </span>\n </div>\n\n <!-- Input with Send Button -->\n <div class=\"input-wrapper\">\n <textarea\n #textareaElement\n class=\"textarea-input\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"isDisabled\"\n [maxLength]=\"maxCharacterLimit\"\n (input)=\"onInputChange($event)\"\n (keydown)=\"onInputKeyPress($event)\"\n (blur)=\"onTouched()\"\n rows=\"1\">\n </textarea>\n \n <!-- Send Button -->\n <button\n type=\"button\"\n class=\"send-button\"\n [class.enabled]=\"canSend()\"\n [class.disabled]=\"!canSend()\"\n [disabled]=\"!canSend()\"\n (click)=\"onSendClick()\"\n [attr.aria-label]=\"sendButtonAriaLabel\">\n <symphony-icon [icon]=\"sendButtonIcon\" [size]=\"'10px'\"></symphony-icon>\n </button>\n </div>\n</div> ", styles: [".sfx-p-0{padding:0}.sfx-p-5{padding:.3rem}.sfx-p-10{padding:.625rem}.sfx-p-15{padding:.9375rem}.sfx-p-20{padding:1.25rem}.sfx-p-30{padding:1.875rem}.sfx-pt-0{padding-top:0}.sfx-pt-5{padding-top:.3rem}.sfx-pt-10{padding-top:.625rem}.sfx-pt-15{padding-top:.9375rem}.sfx-pt-20{padding-top:1.25rem}.sfx-pt-25{padding-top:1.5625rem}.sfx-pt-30{padding-top:1.875rem}.sfx-pt-35{padding-top:2.1875rem}.sfx-pt-40{padding-top:2.5rem}.sfx-pt-50{padding-top:3.125rem}.sfx-pb-0{padding-bottom:0}.sfx-pb-5{padding-bottom:.3rem}.sfx-pb-10{padding-bottom:.625rem}.sfx-pb-15{padding-bottom:.9375rem}.sfx-pb-20{padding-bottom:1.25rem}.sfx-pb-25{padding-bottom:1.5625rem}.sfx-pb-30{padding-bottom:1.875rem}.sfx-pb-35{padding-bottom:2.1875rem}.sfx-pb-40{padding-bottom:2.5rem}.sfx-pb-50{padding-bottom:3.125rem}.sfx-pl-0{padding-left:0}.sfx-pl-5{padding-left:.3rem}.sfx-pl-10{padding-left:.625rem}.sfx-pl-15{padding-left:.9375rem}.sfx-pl-20{padding-left:1.25rem}.sfx-pl-25{padding-left:1.5625rem}.sfx-pl-30{padding-left:1.875rem}.sfx-pr-0{padding-right:0}.sfx-pr-5{padding-right:.3rem}.sfx-pr-10{padding-right:.625rem}.sfx-pr-15{padding-right:.9375rem}.sfx-pr-20{padding-right:1.25rem}.sfx-pr-25{padding-right:1.5625rem}.sfx-pr-30{padding-right:1.875rem}.sfx-py-15{padding-left:.9375rem;padding-right:.9375rem}.sfx-py-30{padding-left:1.875rem;padding-right:1.875rem}.sfx-px-0{padding-top:0;padding-bottom:0}.sfx-px-15{padding-top:.9375rem;padding-bottom:.9375rem}.sfx-px-20{padding-top:1.25rem;padding-bottom:1.25rem}.sfx-px-30{padding-top:1.875rem;padding-bottom:1.875rem}.sfx-m-0{margin:0}.sfx-m-5{margin:.3rem}.sfx-m-10{margin:.625rem}.sfx-m-15{margin:.9375rem}.sfx-m-20{margin:1.25rem}.sfx-m-auto{margin:0 auto}.sfx-mt-0{margin-top:0}.sfx-mt-5{margin-top:.3rem}.sfx-mt-10{margin-top:.625rem}.sfx-mt-15{margin-top:.9375rem}.sfx-mt-20{margin-top:1.25rem}.sfx-mt-25{margin-top:1.5625rem}.sfx-mt-30{margin-top:1.875rem}.sfx-mt-40{margin-top:2.5rem}.sfx-mt-80{margin-top:5rem}.sfx-mb-0{margin-bottom:0}.sfx-mb-5{margin-bottom:.3rem}.sfx-mb-10{margin-bottom:.625rem}.sfx-mb-15{margin-bottom:.9375rem}.sfx-mb-20{margin-bottom:1.25rem}.sfx-mb-25{margin-bottom:1.5625rem}.sfx-mb-30{margin-bottom:1.875rem}.sfx-mb-40{margin-bottom:2.5rem}.sfx-mb-50{margin-bottom:3.125rem}.sfx-ml-0{margin-left:0}.sfx-ml-5{margin-left:.3rem}.sfx-ml-10{margin-left:.625rem}.sfx-ml-15{margin-left:.9375rem}.sfx-ml-20{margin-left:1.25rem}.sfx-ml-auto{margin-left:auto}.sfx-mr-0{margin-right:0}.sfx-mr-5{margin-right:.3rem}.sfx-mr-10{margin-right:.625rem}.sfx-mr-15{margin-right:.9375rem}.sfx-mr-20{margin-right:1.25rem}.sfx-mr-25{margin-right:1.5625rem}.sfx-mr-30{margin-right:1.875rem}.sfx-mr-40{margin-right:2.5rem}.input-textarea-with-send-container{width:100%}.character-counter{text-align:right}.character-counter .counter-text{font-size:.75rem;color:#5b6d80}.character-counter .counter-text.counter-exceeded{color:#ac4463;font-weight:500}.input-wrapper{position:relative;display:flex;align-items:flex-end}.input-wrapper .textarea-input{flex:1;width:100%;min-height:52px;max-height:200px;padding:.9375rem 56px .9375rem .9375rem;font-size:.875rem;line-height:1.5rem;font-family:runda,sans-serif;background:#ffffff;border:1px solid #334860;border-radius:4px;resize:none;overflow-y:auto;transition:border-color .2s ease}.input-wrapper .textarea-input::-moz-placeholder{color:#5b6d80}.input-wrapper .textarea-input:-ms-input-placeholder{color:#5b6d80}.input-wrapper .textarea-input::placeholder{color:#5b6d80}.input-wrapper .textarea-input:focus{border-color:#2b8ff3;outline:none}.input-wrapper .textarea-input:disabled{background-color:#f1f2f5;border-color:#c3cbdc;color:#5b6d80;cursor:not-allowed}.input-wrapper .textarea-input::-webkit-scrollbar{width:4px}.input-wrapper .textarea-input::-webkit-scrollbar-track{background:transparent}.input-wrapper .textarea-input::-webkit-scrollbar-thumb{background:#C3CBDC;border-radius:2px}.input-wrapper .textarea-input::-webkit-scrollbar-thumb:hover{background:#5B6D80}.input-wrapper .send-button{position:absolute;right:.625rem;bottom:.625rem;width:36px;height:36px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;z-index:10;flex-shrink:0}.input-wrapper .send-button.enabled{background-color:#2b8ff3}.input-wrapper .send-button.enabled:hover{background-color:#0d76de;transform:scale(1.05)}.input-wrapper .send-button.enabled:active{transform:scale(.95)}.input-wrapper .send-button.enabled symphony-icon{color:#fff;font-size:16px}.input-wrapper .send-button.disabled{background-color:#d2d8e5;cursor:not-allowed}.input-wrapper .send-button.disabled symphony-icon{color:#5b6d80;font-size:16px}.input-wrapper .send-button symphony-icon{transition:color .2s ease}.input-wrapper .send-button:focus{outline:2px solid #2B8FF3;outline-offset:2px}@media (max-width: 768px){.input-wrapper .textarea-input{min-height:48px;padding:.625rem 50px .625rem .9375rem;font-size:.875rem;line-height:22px}.input-wrapper .send-button{width:32px;height:32px;right:.625rem;bottom:.625rem}.input-wrapper .send-button symphony-icon{font-size:.875rem}}@media (prefers-contrast: high){.textarea-input{border:2px solid #08203E}.textarea-input:focus{border-color:#2b8ff3}.send-button.enabled{border:2px solid #0a5cae}}@media (prefers-reduced-motion: reduce){.textarea-input,.send-button{transition:none}.send-button:hover,.send-button:active{transform:none}}\n"] }]
2094
+ }], propDecorators: { placeholder: [{
2095
+ type: Input
2096
+ }], isDisabled: [{
2097
+ type: Input
2098
+ }], maxCharacterLimit: [{
2099
+ type: Input
2100
+ }], showCharacterCount: [{
2101
+ type: Input
2102
+ }], minRows: [{
2103
+ type: Input
2104
+ }], maxRows: [{
2105
+ type: Input
2106
+ }], sendButtonIcon: [{
2107
+ type: Input
2108
+ }], sendButtonAriaLabel: [{
2109
+ type: Input
2110
+ }], autoResize: [{
2111
+ type: Input
2112
+ }], sendClicked: [{
2113
+ type: Output
2114
+ }], enterPressed: [{
2115
+ type: Output
2116
+ }], valueChanged: [{
2117
+ type: Output
2118
+ }], textareaElement: [{
2119
+ type: ViewChild,
2120
+ args: ['textareaElement']
2121
+ }] } });
2122
+
2123
+ class InputTextareaWithSendModule {
2124
+ }
2125
+ InputTextareaWithSendModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: InputTextareaWithSendModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2126
+ InputTextareaWithSendModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: InputTextareaWithSendModule, declarations: [InputTextareaWithSendComponent], imports: [CommonModule,
2127
+ FormsModule,
2128
+ IconModule], exports: [InputTextareaWithSendComponent] });
2129
+ InputTextareaWithSendModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: InputTextareaWithSendModule, imports: [[
2130
+ CommonModule,
2131
+ FormsModule,
2132
+ IconModule
2133
+ ]] });
2134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: InputTextareaWithSendModule, decorators: [{
2135
+ type: NgModule,
2136
+ args: [{
2137
+ declarations: [
2138
+ InputTextareaWithSendComponent
2139
+ ],
2140
+ imports: [
2141
+ CommonModule,
2142
+ FormsModule,
2143
+ IconModule
2144
+ ],
2145
+ exports: [
2146
+ InputTextareaWithSendComponent
2147
+ ]
2148
+ }]
2149
+ }] });
2150
+
1972
2151
  class InputRadioToggleComponent {
1973
2152
  constructor() {
1974
2153
  this.changedValue = new EventEmitter();
@@ -3057,6 +3236,7 @@ AtomsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "1
3057
3236
  NotificationsModule,
3058
3237
  CharacterCounterModule,
3059
3238
  InputTextareaModule,
3239
+ InputTextareaWithSendModule,
3060
3240
  ColoredTextIndicatorModule,
3061
3241
  InputFileUploadModule,
3062
3242
  ChatHistoryMessageAvatarModule,
@@ -3103,6 +3283,7 @@ AtomsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "1
3103
3283
  NotificationsModule,
3104
3284
  CharacterCounterModule,
3105
3285
  InputTextareaModule,
3286
+ InputTextareaWithSendModule,
3106
3287
  ColoredTextIndicatorModule,
3107
3288
  InputFileUploadModule,
3108
3289
  ChatHistoryMessageAvatarModule,
@@ -3155,6 +3336,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
3155
3336
  NotificationsModule,
3156
3337
  CharacterCounterModule,
3157
3338
  InputTextareaModule,
3339
+ InputTextareaWithSendModule,
3158
3340
  ColoredTextIndicatorModule,
3159
3341
  InputFileUploadModule,
3160
3342
  ChatHistoryMessageAvatarModule,
@@ -4143,6 +4325,101 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
4143
4325
  }]
4144
4326
  }] });
4145
4327
 
4328
+ class TaskStatusComponent {
4329
+ constructor() {
4330
+ this.cancelTask = new EventEmitter();
4331
+ this.retryTask = new EventEmitter();
4332
+ }
4333
+ onCancelTask() {
4334
+ this.cancelTask.emit();
4335
+ }
4336
+ onRetryTask() {
4337
+ this.retryTask.emit();
4338
+ }
4339
+ getProgressText() {
4340
+ if (this.taskStatusModel?.progress) {
4341
+ return `${this.taskStatusModel.progress}%`;
4342
+ }
4343
+ return '';
4344
+ }
4345
+ getTaskStatusText() {
4346
+ if (this.taskStatusModel?.showCompleted) {
4347
+ return this.taskStatusModel?.taskTitle || 'Completed';
4348
+ }
4349
+ if (this.taskStatusModel?.hasError) {
4350
+ return this.taskStatusModel?.taskTitle || 'Error';
4351
+ }
4352
+ return this.taskStatusModel?.taskTitle || 'Processing';
4353
+ }
4354
+ getTaskName() {
4355
+ if (this.taskStatusModel?.showCompleted) {
4356
+ return this.taskStatusModel?.successMessage || 'Task completed successfully!';
4357
+ }
4358
+ if (this.taskStatusModel?.hasError) {
4359
+ return this.taskStatusModel?.taskDescription || 'Task failed';
4360
+ }
4361
+ // For processing state, use processingMessage if provided, otherwise use taskDescription
4362
+ return this.taskStatusModel?.processingMessage || this.taskStatusModel?.taskDescription || '';
4363
+ }
4364
+ getErrorMessage() {
4365
+ return this.taskStatusModel?.errorMessage || 'Unable to complete task. Please try again.';
4366
+ }
4367
+ shouldShowRetry() {
4368
+ return this.taskStatusModel?.hasError && (this.taskStatusModel?.showRetry !== false);
4369
+ }
4370
+ }
4371
+ TaskStatusComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: TaskStatusComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4372
+ TaskStatusComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: TaskStatusComponent, selector: "symphony-task-status", inputs: { taskStatusModel: "taskStatusModel" }, outputs: { cancelTask: "cancelTask", retryTask: "retryTask" }, ngImport: i0, template: "<!-- Task Status - Card-based Design -->\n<div class=\"task-status\" *ngIf=\"taskStatusModel\">\n <!-- Task Status Card -->\n <div class=\"task-card\" \n [class.success-state]=\"taskStatusModel.showCompleted\"\n [class.error-state]=\"taskStatusModel.hasError\"\n [class.progress-state]=\"taskStatusModel.showProgressBar\">\n \n <!-- Card Header -->\n <div class=\"task-header\">\n <!-- Status Icon -->\n <div class=\"task-icon-container\">\n <!-- Success Icon (completion state) -->\n <symphony-icon\n *ngIf=\"taskStatusModel.showCompleted\"\n class=\"task-icon success-icon\"\n [icon]=\"'si-confirmation'\"\n ></symphony-icon>\n \n <!-- Error Icon (error state) -->\n <symphony-icon\n *ngIf=\"taskStatusModel.hasError\"\n class=\"task-icon error-icon\"\n [icon]=\"'si-pending-incomplete'\"\n ></symphony-icon>\n \n <!-- Processing Icon (progress state) -->\n <symphony-icon\n *ngIf=\"taskStatusModel.showProgressBar && !taskStatusModel.hasError\"\n class=\"task-icon processing-icon\"\n [icon]=\"taskStatusModel.processingIcon || 'si-chatbot'\"\n ></symphony-icon>\n </div>\n \n <!-- Status Text and Task Name -->\n <div class=\"task-content\">\n <symphony-h4 class=\"task-status-text\">\n {{ getTaskStatusText() }}\n </symphony-h4>\n <symphony-paragraph class=\"task-name\">\n {{ getTaskName() }}\n </symphony-paragraph>\n </div>\n \n <!-- Progress Percentage or Actions -->\n <div class=\"task-actions\">\n <!-- Progress Percentage -->\n <symphony-paragraph\n *ngIf=\"taskStatusModel.showProgressBar && !taskStatusModel.hasError\"\n class=\"progress-text\">\n {{ getProgressText() }}\n </symphony-paragraph>\n \n <!-- Cancel Button (only during progress) -->\n <symphony-icon\n *ngIf=\"taskStatusModel.showCancel && !taskStatusModel.showCompleted && !taskStatusModel.hasError\"\n class=\"cancel-btn\"\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCancelTask()\">\n </symphony-icon>\n </div>\n </div>\n \n <!-- Card Body -->\n <div class=\"task-body\">\n <!-- Progress Bar -->\n <symphony-sfx-progress-bar\n *ngIf=\"taskStatusModel.showProgressBar && !taskStatusModel.hasError\"\n [progress]=\"taskStatusModel.progress\"\n class=\"progress-bar\">\n </symphony-sfx-progress-bar>\n \n <!-- Error Message -->\n <div *ngIf=\"taskStatusModel.hasError\" class=\"error-content\">\n <symphony-paragraph class=\"error-message\">\n {{ getErrorMessage() }}\n </symphony-paragraph>\n <symphony-icon-wrapper \n *ngIf=\"shouldShowRetry()\"\n class=\"retry-icon\"\n (clicked)=\"onRetryTask()\">\n <symphony-icon [icon]=\"'si-refresh'\"></symphony-icon>\n </symphony-icon-wrapper>\n </div>\n </div>\n </div>\n</div> ", styles: [".sfx-p-0{padding:0}.sfx-p-5{padding:.3rem}.sfx-p-10{padding:.625rem}.sfx-p-15{padding:.9375rem}.sfx-p-20{padding:1.25rem}.sfx-p-30{padding:1.875rem}.sfx-pt-0{padding-top:0}.sfx-pt-5{padding-top:.3rem}.sfx-pt-10{padding-top:.625rem}.sfx-pt-15{padding-top:.9375rem}.sfx-pt-20{padding-top:1.25rem}.sfx-pt-25{padding-top:1.5625rem}.sfx-pt-30{padding-top:1.875rem}.sfx-pt-35{padding-top:2.1875rem}.sfx-pt-40{padding-top:2.5rem}.sfx-pt-50{padding-top:3.125rem}.sfx-pb-0{padding-bottom:0}.sfx-pb-5{padding-bottom:.3rem}.sfx-pb-10{padding-bottom:.625rem}.sfx-pb-15{padding-bottom:.9375rem}.sfx-pb-20{padding-bottom:1.25rem}.sfx-pb-25{padding-bottom:1.5625rem}.sfx-pb-30{padding-bottom:1.875rem}.sfx-pb-35{padding-bottom:2.1875rem}.sfx-pb-40{padding-bottom:2.5rem}.sfx-pb-50{padding-bottom:3.125rem}.sfx-pl-0{padding-left:0}.sfx-pl-5{padding-left:.3rem}.sfx-pl-10{padding-left:.625rem}.sfx-pl-15{padding-left:.9375rem}.sfx-pl-20{padding-left:1.25rem}.sfx-pl-25{padding-left:1.5625rem}.sfx-pl-30{padding-left:1.875rem}.sfx-pr-0{padding-right:0}.sfx-pr-5{padding-right:.3rem}.sfx-pr-10{padding-right:.625rem}.sfx-pr-15{padding-right:.9375rem}.sfx-pr-20{padding-right:1.25rem}.sfx-pr-25{padding-right:1.5625rem}.sfx-pr-30{padding-right:1.875rem}.sfx-py-15{padding-left:.9375rem;padding-right:.9375rem}.sfx-py-30{padding-left:1.875rem;padding-right:1.875rem}.sfx-px-0{padding-top:0;padding-bottom:0}.sfx-px-15{padding-top:.9375rem;padding-bottom:.9375rem}.sfx-px-20{padding-top:1.25rem;padding-bottom:1.25rem}.sfx-px-30{padding-top:1.875rem;padding-bottom:1.875rem}.sfx-m-0{margin:0}.sfx-m-5{margin:.3rem}.sfx-m-10{margin:.625rem}.sfx-m-15{margin:.9375rem}.sfx-m-20{margin:1.25rem}.sfx-m-auto{margin:0 auto}.sfx-mt-0{margin-top:0}.sfx-mt-5{margin-top:.3rem}.sfx-mt-10{margin-top:.625rem}.sfx-mt-15{margin-top:.9375rem}.sfx-mt-20{margin-top:1.25rem}.sfx-mt-25{margin-top:1.5625rem}.sfx-mt-30{margin-top:1.875rem}.sfx-mt-40{margin-top:2.5rem}.sfx-mt-80{margin-top:5rem}.sfx-mb-0{margin-bottom:0}.sfx-mb-5{margin-bottom:.3rem}.sfx-mb-10{margin-bottom:.625rem}.sfx-mb-15{margin-bottom:.9375rem}.sfx-mb-20{margin-bottom:1.25rem}.sfx-mb-25{margin-bottom:1.5625rem}.sfx-mb-30{margin-bottom:1.875rem}.sfx-mb-40{margin-bottom:2.5rem}.sfx-mb-50{margin-bottom:3.125rem}.sfx-ml-0{margin-left:0}.sfx-ml-5{margin-left:.3rem}.sfx-ml-10{margin-left:.625rem}.sfx-ml-15{margin-left:.9375rem}.sfx-ml-20{margin-left:1.25rem}.sfx-ml-auto{margin-left:auto}.sfx-mr-0{margin-right:0}.sfx-mr-5{margin-right:.3rem}.sfx-mr-10{margin-right:.625rem}.sfx-mr-15{margin-right:.9375rem}.sfx-mr-20{margin-right:1.25rem}.sfx-mr-25{margin-right:1.5625rem}.sfx-mr-30{margin-right:1.875rem}.sfx-mr-40{margin-right:2.5rem}.task-status .task-card{background:#F1F2F5;border:1px solid #D2D8E5;border-radius:8px;padding:16px;margin:8px 0;transition:all .3s ease;min-height:80px}.task-status .task-card.success-state{border-color:#2cb45f;background:#f8fff9}.task-status .task-card.error-state{border-color:#ac4463;background:#fff8f8}.task-status .task-card.progress-state{border-color:#2b8ff3;background:#f8f9ff}.task-status .task-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.task-status .task-icon-container{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%}.task-status .task-icon-container .task-icon{font-size:18px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%}.task-status .task-icon-container .success-icon{color:#2cb45f;background:#d2f4de}.task-status .task-icon-container .error-icon{color:#ac4463;background:#f4e2e7}.task-status .task-icon-container .processing-icon{color:#2b8ff3;background:white}.task-status .task-content{flex:1;min-width:0}.task-status .task-content .task-status-text{margin:0 0 4px;font-weight:600;font-size:.875rem;color:#08203e}.task-status .task-content .task-name{margin:0;font-size:.75rem;color:#5b6d80;line-height:1.4;word-wrap:break-word}.task-status .task-actions{flex-shrink:0;display:flex;align-items:center;gap:8px}.task-status .task-actions .progress-text{margin:0;font-weight:600;font-size:.75rem;color:#2b8ff3;min-width:35px;text-align:right}.task-status .task-actions .cancel-btn{cursor:pointer;font-size:16px;color:#5b6d80;transition:color .2s ease;padding:4px}.task-status .task-actions .cancel-btn:hover{color:#ac4463}.task-status .task-body .progress-bar{margin:0}.task-status .task-body .error-content{display:flex;align-items:center;justify-content:space-between;gap:12px}.task-status .task-body .error-content .error-message{margin:0;font-size:.75rem;color:#ac4463;line-height:1.4;flex:1}.task-status .task-body .error-content .retry-icon{flex-shrink:0;width:32px;height:32px}.task-status .task-body .error-content .retry-icon ::ng-deep .icon-wrapper{width:32px;height:32px;border:1px solid #AC4463;color:#ac4463;padding:6px;font-size:14px}.task-status .task-body .error-content .retry-icon ::ng-deep .icon-wrapper:hover{background:#AC4463;color:#fff}.task-status symphony-sfx-progress-bar{transition:all .3s ease;float:none}\n"], components: [{ type: IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: H4Component, selector: "symphony-h4", inputs: ["text", "isSecondary"] }, { type: ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary", "isFontBold"] }, { type: SfxProgressBarComponent, selector: "symphony-sfx-progress-bar", inputs: ["progress"] }, { type: IconWrapperComponent, selector: "symphony-icon-wrapper", inputs: ["backgroundColor", "isInverse", "hasHoverWithoutBorder"], outputs: ["clicked"] }], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
4373
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: TaskStatusComponent, decorators: [{
4374
+ type: Component,
4375
+ args: [{ selector: 'symphony-task-status', template: "<!-- Task Status - Card-based Design -->\n<div class=\"task-status\" *ngIf=\"taskStatusModel\">\n <!-- Task Status Card -->\n <div class=\"task-card\" \n [class.success-state]=\"taskStatusModel.showCompleted\"\n [class.error-state]=\"taskStatusModel.hasError\"\n [class.progress-state]=\"taskStatusModel.showProgressBar\">\n \n <!-- Card Header -->\n <div class=\"task-header\">\n <!-- Status Icon -->\n <div class=\"task-icon-container\">\n <!-- Success Icon (completion state) -->\n <symphony-icon\n *ngIf=\"taskStatusModel.showCompleted\"\n class=\"task-icon success-icon\"\n [icon]=\"'si-confirmation'\"\n ></symphony-icon>\n \n <!-- Error Icon (error state) -->\n <symphony-icon\n *ngIf=\"taskStatusModel.hasError\"\n class=\"task-icon error-icon\"\n [icon]=\"'si-pending-incomplete'\"\n ></symphony-icon>\n \n <!-- Processing Icon (progress state) -->\n <symphony-icon\n *ngIf=\"taskStatusModel.showProgressBar && !taskStatusModel.hasError\"\n class=\"task-icon processing-icon\"\n [icon]=\"taskStatusModel.processingIcon || 'si-chatbot'\"\n ></symphony-icon>\n </div>\n \n <!-- Status Text and Task Name -->\n <div class=\"task-content\">\n <symphony-h4 class=\"task-status-text\">\n {{ getTaskStatusText() }}\n </symphony-h4>\n <symphony-paragraph class=\"task-name\">\n {{ getTaskName() }}\n </symphony-paragraph>\n </div>\n \n <!-- Progress Percentage or Actions -->\n <div class=\"task-actions\">\n <!-- Progress Percentage -->\n <symphony-paragraph\n *ngIf=\"taskStatusModel.showProgressBar && !taskStatusModel.hasError\"\n class=\"progress-text\">\n {{ getProgressText() }}\n </symphony-paragraph>\n \n <!-- Cancel Button (only during progress) -->\n <symphony-icon\n *ngIf=\"taskStatusModel.showCancel && !taskStatusModel.showCompleted && !taskStatusModel.hasError\"\n class=\"cancel-btn\"\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCancelTask()\">\n </symphony-icon>\n </div>\n </div>\n \n <!-- Card Body -->\n <div class=\"task-body\">\n <!-- Progress Bar -->\n <symphony-sfx-progress-bar\n *ngIf=\"taskStatusModel.showProgressBar && !taskStatusModel.hasError\"\n [progress]=\"taskStatusModel.progress\"\n class=\"progress-bar\">\n </symphony-sfx-progress-bar>\n \n <!-- Error Message -->\n <div *ngIf=\"taskStatusModel.hasError\" class=\"error-content\">\n <symphony-paragraph class=\"error-message\">\n {{ getErrorMessage() }}\n </symphony-paragraph>\n <symphony-icon-wrapper \n *ngIf=\"shouldShowRetry()\"\n class=\"retry-icon\"\n (clicked)=\"onRetryTask()\">\n <symphony-icon [icon]=\"'si-refresh'\"></symphony-icon>\n </symphony-icon-wrapper>\n </div>\n </div>\n </div>\n</div> ", styles: [".sfx-p-0{padding:0}.sfx-p-5{padding:.3rem}.sfx-p-10{padding:.625rem}.sfx-p-15{padding:.9375rem}.sfx-p-20{padding:1.25rem}.sfx-p-30{padding:1.875rem}.sfx-pt-0{padding-top:0}.sfx-pt-5{padding-top:.3rem}.sfx-pt-10{padding-top:.625rem}.sfx-pt-15{padding-top:.9375rem}.sfx-pt-20{padding-top:1.25rem}.sfx-pt-25{padding-top:1.5625rem}.sfx-pt-30{padding-top:1.875rem}.sfx-pt-35{padding-top:2.1875rem}.sfx-pt-40{padding-top:2.5rem}.sfx-pt-50{padding-top:3.125rem}.sfx-pb-0{padding-bottom:0}.sfx-pb-5{padding-bottom:.3rem}.sfx-pb-10{padding-bottom:.625rem}.sfx-pb-15{padding-bottom:.9375rem}.sfx-pb-20{padding-bottom:1.25rem}.sfx-pb-25{padding-bottom:1.5625rem}.sfx-pb-30{padding-bottom:1.875rem}.sfx-pb-35{padding-bottom:2.1875rem}.sfx-pb-40{padding-bottom:2.5rem}.sfx-pb-50{padding-bottom:3.125rem}.sfx-pl-0{padding-left:0}.sfx-pl-5{padding-left:.3rem}.sfx-pl-10{padding-left:.625rem}.sfx-pl-15{padding-left:.9375rem}.sfx-pl-20{padding-left:1.25rem}.sfx-pl-25{padding-left:1.5625rem}.sfx-pl-30{padding-left:1.875rem}.sfx-pr-0{padding-right:0}.sfx-pr-5{padding-right:.3rem}.sfx-pr-10{padding-right:.625rem}.sfx-pr-15{padding-right:.9375rem}.sfx-pr-20{padding-right:1.25rem}.sfx-pr-25{padding-right:1.5625rem}.sfx-pr-30{padding-right:1.875rem}.sfx-py-15{padding-left:.9375rem;padding-right:.9375rem}.sfx-py-30{padding-left:1.875rem;padding-right:1.875rem}.sfx-px-0{padding-top:0;padding-bottom:0}.sfx-px-15{padding-top:.9375rem;padding-bottom:.9375rem}.sfx-px-20{padding-top:1.25rem;padding-bottom:1.25rem}.sfx-px-30{padding-top:1.875rem;padding-bottom:1.875rem}.sfx-m-0{margin:0}.sfx-m-5{margin:.3rem}.sfx-m-10{margin:.625rem}.sfx-m-15{margin:.9375rem}.sfx-m-20{margin:1.25rem}.sfx-m-auto{margin:0 auto}.sfx-mt-0{margin-top:0}.sfx-mt-5{margin-top:.3rem}.sfx-mt-10{margin-top:.625rem}.sfx-mt-15{margin-top:.9375rem}.sfx-mt-20{margin-top:1.25rem}.sfx-mt-25{margin-top:1.5625rem}.sfx-mt-30{margin-top:1.875rem}.sfx-mt-40{margin-top:2.5rem}.sfx-mt-80{margin-top:5rem}.sfx-mb-0{margin-bottom:0}.sfx-mb-5{margin-bottom:.3rem}.sfx-mb-10{margin-bottom:.625rem}.sfx-mb-15{margin-bottom:.9375rem}.sfx-mb-20{margin-bottom:1.25rem}.sfx-mb-25{margin-bottom:1.5625rem}.sfx-mb-30{margin-bottom:1.875rem}.sfx-mb-40{margin-bottom:2.5rem}.sfx-mb-50{margin-bottom:3.125rem}.sfx-ml-0{margin-left:0}.sfx-ml-5{margin-left:.3rem}.sfx-ml-10{margin-left:.625rem}.sfx-ml-15{margin-left:.9375rem}.sfx-ml-20{margin-left:1.25rem}.sfx-ml-auto{margin-left:auto}.sfx-mr-0{margin-right:0}.sfx-mr-5{margin-right:.3rem}.sfx-mr-10{margin-right:.625rem}.sfx-mr-15{margin-right:.9375rem}.sfx-mr-20{margin-right:1.25rem}.sfx-mr-25{margin-right:1.5625rem}.sfx-mr-30{margin-right:1.875rem}.sfx-mr-40{margin-right:2.5rem}.task-status .task-card{background:#F1F2F5;border:1px solid #D2D8E5;border-radius:8px;padding:16px;margin:8px 0;transition:all .3s ease;min-height:80px}.task-status .task-card.success-state{border-color:#2cb45f;background:#f8fff9}.task-status .task-card.error-state{border-color:#ac4463;background:#fff8f8}.task-status .task-card.progress-state{border-color:#2b8ff3;background:#f8f9ff}.task-status .task-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.task-status .task-icon-container{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%}.task-status .task-icon-container .task-icon{font-size:18px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%}.task-status .task-icon-container .success-icon{color:#2cb45f;background:#d2f4de}.task-status .task-icon-container .error-icon{color:#ac4463;background:#f4e2e7}.task-status .task-icon-container .processing-icon{color:#2b8ff3;background:white}.task-status .task-content{flex:1;min-width:0}.task-status .task-content .task-status-text{margin:0 0 4px;font-weight:600;font-size:.875rem;color:#08203e}.task-status .task-content .task-name{margin:0;font-size:.75rem;color:#5b6d80;line-height:1.4;word-wrap:break-word}.task-status .task-actions{flex-shrink:0;display:flex;align-items:center;gap:8px}.task-status .task-actions .progress-text{margin:0;font-weight:600;font-size:.75rem;color:#2b8ff3;min-width:35px;text-align:right}.task-status .task-actions .cancel-btn{cursor:pointer;font-size:16px;color:#5b6d80;transition:color .2s ease;padding:4px}.task-status .task-actions .cancel-btn:hover{color:#ac4463}.task-status .task-body .progress-bar{margin:0}.task-status .task-body .error-content{display:flex;align-items:center;justify-content:space-between;gap:12px}.task-status .task-body .error-content .error-message{margin:0;font-size:.75rem;color:#ac4463;line-height:1.4;flex:1}.task-status .task-body .error-content .retry-icon{flex-shrink:0;width:32px;height:32px}.task-status .task-body .error-content .retry-icon ::ng-deep .icon-wrapper{width:32px;height:32px;border:1px solid #AC4463;color:#ac4463;padding:6px;font-size:14px}.task-status .task-body .error-content .retry-icon ::ng-deep .icon-wrapper:hover{background:#AC4463;color:#fff}.task-status symphony-sfx-progress-bar{transition:all .3s ease;float:none}\n"] }]
4376
+ }], ctorParameters: function () { return []; }, propDecorators: { taskStatusModel: [{
4377
+ type: Input
4378
+ }], cancelTask: [{
4379
+ type: Output
4380
+ }], retryTask: [{
4381
+ type: Output
4382
+ }] } });
4383
+
4384
+ class TaskStatusModule {
4385
+ }
4386
+ TaskStatusModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: TaskStatusModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4387
+ TaskStatusModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: TaskStatusModule, declarations: [TaskStatusComponent], imports: [CommonModule,
4388
+ SfxProgressBarModule,
4389
+ IconModule,
4390
+ IconWrapperModule,
4391
+ ParagraphModule,
4392
+ H3Module,
4393
+ H4Module,
4394
+ ButtonV2Module], exports: [TaskStatusComponent] });
4395
+ TaskStatusModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: TaskStatusModule, imports: [[
4396
+ CommonModule,
4397
+ SfxProgressBarModule,
4398
+ IconModule,
4399
+ IconWrapperModule,
4400
+ ParagraphModule,
4401
+ H3Module,
4402
+ H4Module,
4403
+ ButtonV2Module
4404
+ ]] });
4405
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: TaskStatusModule, decorators: [{
4406
+ type: NgModule,
4407
+ args: [{
4408
+ declarations: [TaskStatusComponent],
4409
+ imports: [
4410
+ CommonModule,
4411
+ SfxProgressBarModule,
4412
+ IconModule,
4413
+ IconWrapperModule,
4414
+ ParagraphModule,
4415
+ H3Module,
4416
+ H4Module,
4417
+ ButtonV2Module
4418
+ ],
4419
+ exports: [TaskStatusComponent],
4420
+ }]
4421
+ }] });
4422
+
4146
4423
  class ColorSwatchComponent {
4147
4424
  constructor() {
4148
4425
  this.colorSwatchModel = {
@@ -4399,13 +4676,15 @@ MoleculesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version
4399
4676
  ChatHistoryMessageItemModule,
4400
4677
  FilterTabsModule,
4401
4678
  FilterTabsV2Module,
4402
- FilterDetailTreeModule], exports: [PillsModule,
4679
+ FilterDetailTreeModule,
4680
+ TaskStatusModule], exports: [PillsModule,
4403
4681
  BreadcrumbModule,
4404
4682
  FeedbackCardModule,
4405
4683
  FilterTabsV2Module,
4406
4684
  DocumentManagementItemModule,
4407
4685
  PhaserCardModule,
4408
- SettingsDetailNavigationItemModule] });
4686
+ SettingsDetailNavigationItemModule,
4687
+ TaskStatusModule] });
4409
4688
  MoleculesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: MoleculesModule, imports: [[
4410
4689
  CommonModule,
4411
4690
  AvatarModule,
@@ -4437,13 +4716,15 @@ MoleculesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version
4437
4716
  FilterTabsModule,
4438
4717
  FilterTabsV2Module,
4439
4718
  FilterDetailTreeModule,
4719
+ TaskStatusModule,
4440
4720
  ], PillsModule,
4441
4721
  BreadcrumbModule,
4442
4722
  FeedbackCardModule,
4443
4723
  FilterTabsV2Module,
4444
4724
  DocumentManagementItemModule,
4445
4725
  PhaserCardModule,
4446
- SettingsDetailNavigationItemModule] });
4726
+ SettingsDetailNavigationItemModule,
4727
+ TaskStatusModule] });
4447
4728
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: MoleculesModule, decorators: [{
4448
4729
  type: NgModule,
4449
4730
  args: [{
@@ -4456,6 +4737,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
4456
4737
  DocumentManagementItemModule,
4457
4738
  PhaserCardModule,
4458
4739
  SettingsDetailNavigationItemModule,
4740
+ TaskStatusModule,
4459
4741
  ],
4460
4742
  imports: [
4461
4743
  CommonModule,
@@ -4488,6 +4770,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
4488
4770
  FilterTabsModule,
4489
4771
  FilterTabsV2Module,
4490
4772
  FilterDetailTreeModule,
4773
+ TaskStatusModule,
4491
4774
  ],
4492
4775
  }]
4493
4776
  }] });
@@ -7112,6 +7395,242 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
7112
7395
  }]
7113
7396
  }] });
7114
7397
 
7398
+ class NewLineToBrPipe {
7399
+ transform(value) {
7400
+ if (!value) {
7401
+ return value;
7402
+ }
7403
+ return value
7404
+ .replace(/\n/g, '<br>')
7405
+ .replace(/\r\n/g, '<br>')
7406
+ .replace(/\r/g, '<br>');
7407
+ }
7408
+ }
7409
+ NewLineToBrPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: NewLineToBrPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
7410
+ NewLineToBrPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: NewLineToBrPipe, name: "newLineToBr" });
7411
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: NewLineToBrPipe, decorators: [{
7412
+ type: Pipe,
7413
+ args: [{
7414
+ name: 'newLineToBr'
7415
+ }]
7416
+ }] });
7417
+
7418
+ class AISearchAssistantDrawerComponent {
7419
+ constructor(cdr) {
7420
+ this.cdr = cdr;
7421
+ this.model = {
7422
+ isOpen: false,
7423
+ messages: [],
7424
+ suggestedPrompts: [],
7425
+ isLoading: false,
7426
+ inputValue: '',
7427
+ maxCharacterLimit: 1000
7428
+ };
7429
+ this.config = {
7430
+ welcomeMessage: 'Hello! I\'m your AI Writing Assistant. How can I help you today?',
7431
+ placeholder: 'Message AI Assistant',
7432
+ maxMessages: 100,
7433
+ autoScroll: true,
7434
+ showTimestamps: true,
7435
+ enableSuggestedPrompts: true
7436
+ };
7437
+ // Simple event outputs following Symphony patterns
7438
+ this.drawerClosed = new EventEmitter();
7439
+ this.promptSelected = new EventEmitter();
7440
+ this.messageSent = new EventEmitter();
7441
+ this.inputChanged = new EventEmitter();
7442
+ this.retryClicked = new EventEmitter();
7443
+ // AI Task Status events
7444
+ this.taskCancelled = new EventEmitter();
7445
+ this.shouldScrollToBottom = false;
7446
+ this.hasAddedWelcomeMessage = false;
7447
+ }
7448
+ ngOnInit() {
7449
+ // Add welcome message if configured and no messages exist
7450
+ this.addWelcomeMessageIfNeeded();
7451
+ }
7452
+ ngAfterViewChecked() {
7453
+ if (this.shouldScrollToBottom && this.config.autoScroll) {
7454
+ this.scrollToBottom();
7455
+ this.shouldScrollToBottom = false;
7456
+ }
7457
+ }
7458
+ trackByMessageId(index, message) {
7459
+ return message.id;
7460
+ }
7461
+ onToggleDrawer() {
7462
+ this.model.isOpen = !this.model.isOpen;
7463
+ if (this.model.isOpen) {
7464
+ // Add welcome message as first message if not already added and no messages exist
7465
+ this.addWelcomeMessageIfNeeded();
7466
+ // Focus the input field when opening
7467
+ setTimeout(() => {
7468
+ if (this.messageInput) {
7469
+ this.messageInput.focus();
7470
+ }
7471
+ }, 300); // Wait for animation to complete
7472
+ }
7473
+ else {
7474
+ this.drawerClosed.emit();
7475
+ }
7476
+ }
7477
+ onPromptClick(prompt) {
7478
+ this.promptSelected.emit(prompt);
7479
+ // Copy prompt text to input instead of auto-sending
7480
+ this.model.inputValue = prompt.text;
7481
+ this.inputChanged.emit(prompt.text);
7482
+ // Focus the input field for better UX
7483
+ setTimeout(() => {
7484
+ if (this.messageInput) {
7485
+ this.messageInput.focus();
7486
+ }
7487
+ }, 100);
7488
+ }
7489
+ onSendMessage() {
7490
+ const message = this.model.inputValue?.trim();
7491
+ if (message && !this.model.isLoading && !this.model.aiTaskStatus?.showProgressBar) {
7492
+ // Create generic event payload
7493
+ const messageEvent = {
7494
+ content: message,
7495
+ context: this.model.context // Pass any context data
7496
+ };
7497
+ // Clear input immediately for better UX
7498
+ this.model.inputValue = '';
7499
+ // Emit event for parent to handle
7500
+ this.messageSent.emit(messageEvent);
7501
+ }
7502
+ }
7503
+ onInputChange(value) {
7504
+ this.model.inputValue = value;
7505
+ this.inputChanged.emit(value);
7506
+ }
7507
+ // AI Task Status event handlers
7508
+ onCancelTask() {
7509
+ this.taskCancelled.emit();
7510
+ }
7511
+ onRetryTask() {
7512
+ this.retryClicked.emit();
7513
+ }
7514
+ scrollToBottom() {
7515
+ if (this.chatContainer) {
7516
+ const element = this.chatContainer.nativeElement;
7517
+ element.scrollTop = element.scrollHeight;
7518
+ }
7519
+ }
7520
+ /**
7521
+ * Gets formatted time string for message timestamp
7522
+ */
7523
+ getMessageTime(timestamp) {
7524
+ const date = typeof timestamp === 'string' ? new Date(timestamp) : timestamp;
7525
+ return date.toLocaleString('en-US', {
7526
+ month: 'short',
7527
+ day: 'numeric',
7528
+ hour: 'numeric',
7529
+ minute: '2-digit',
7530
+ hour12: true
7531
+ });
7532
+ }
7533
+ /**
7534
+ * Gets the display text for message status
7535
+ */
7536
+ getStatusText(status) {
7537
+ const statusMap = {
7538
+ 'pending': 'Sending...',
7539
+ 'delivered': 'Delivered',
7540
+ 'error': 'Failed to send'
7541
+ };
7542
+ return statusMap[status] || '';
7543
+ }
7544
+ addWelcomeMessageIfNeeded() {
7545
+ if (!this.hasAddedWelcomeMessage && this.model.messages.length === 0 && this.config.welcomeMessage) {
7546
+ this.model.messages.push({
7547
+ id: 'welcome-message',
7548
+ content: this.config.welcomeMessage,
7549
+ timestamp: new Date(),
7550
+ type: 'ai'
7551
+ });
7552
+ this.hasAddedWelcomeMessage = true;
7553
+ this.shouldScrollToBottom = true;
7554
+ }
7555
+ }
7556
+ }
7557
+ AISearchAssistantDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AISearchAssistantDrawerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
7558
+ AISearchAssistantDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: AISearchAssistantDrawerComponent, selector: "symphony-ai-search-assistant-drawer", inputs: { model: "model", config: "config" }, outputs: { drawerClosed: "drawerClosed", promptSelected: "promptSelected", messageSent: "messageSent", inputChanged: "inputChanged", retryClicked: "retryClicked", taskCancelled: "taskCancelled" }, viewQueries: [{ propertyName: "chatContainer", first: true, predicate: ["chatContainer"], descendants: true }, { propertyName: "messageInput", first: true, predicate: ["messageInput"], descendants: true }], ngImport: i0, template: "<!-- Drawer Container -->\n<div \n class=\"ai-drawer-container\" \n [class.open]=\"model.isOpen\">\n \n <!-- Edge Toggle Button (inside drawer container) -->\n <button \n class=\"ai-drawer-edge-toggle\"\n [class.drawer-open]=\"model.isOpen\"\n (click)=\"onToggleDrawer()\"\n [attr.aria-label]=\"model.isOpen ? 'Close AI Assistant' : 'Open AI Assistant'\"\n [title]=\"model.isOpen ? 'Close AI Assistant' : 'AI Assisted Messaging'\">\n <symphony-icon [icon]=\"model.isOpen ? 'si-arrow-next' : 'si-arrow-prev'\"></symphony-icon>\n </button>\n \n <!-- Header -->\n <div class=\"ai-drawer-header\" *ngIf=\"model.isOpen\">\n <symphony-h3 class=\"ai-drawer-title sfx-m-0\">AI Writing Assistant</symphony-h3>\n </div>\n\n <!-- Chat Container -->\n <div class=\"ai-drawer-body\" *ngIf=\"model.isOpen\">\n \n <!-- Messages Area -->\n <div \n class=\"ai-chat-container\" \n #chatContainer>\n \n <!-- Message List -->\n <div class=\"ai-message-list sfx-mb-20\">\n <div \n *ngFor=\"let message of model.messages; trackBy: trackByMessageId\"\n class=\"ai-message-wrapper\"\n [attr.data-message-type]=\"message.type\">\n \n <!-- Timestamp Above Message -->\n <div \n class=\"ai-message-timestamp-container\"\n *ngIf=\"config.showTimestamps\">\n <span class=\"ai-message-timestamp\">\n {{ getMessageTime(message.timestamp) }}\n </span>\n </div>\n \n <!-- Message Bubble -->\n <div \n class=\"ai-message-bubble\"\n [class.user-message]=\"message.type === 'user'\"\n [class.ai-message]=\"message.type === 'ai'\"\n [class.system-message]=\"message.type === 'system'\">\n \n <!-- AI Message Icon -->\n <div \n class=\"ai-message-icon\" \n *ngIf=\"message.type === 'ai'\">\n <symphony-icon [icon]=\"'si-chatbot'\"></symphony-icon>\n </div>\n \n <div class=\"ai-message-content-wrapper\">\n <symphony-paragraph \n class=\"ai-message-content sfx-m-0\"\n [innerHTML]=\"message.content | newLineToBr\">\n </symphony-paragraph>\n </div>\n </div>\n \n <!-- Message Status (for user messages) -->\n <div \n class=\"ai-message-status\"\n *ngIf=\"message.type === 'user' && message.status\">\n <span \n class=\"ai-status-text\"\n [class.status-delivered]=\"message.status === 'delivered'\"\n [class.status-pending]=\"message.status === 'pending'\"\n [class.status-error]=\"message.status === 'error'\">\n {{ getStatusText(message.status) }}\n </span>\n </div>\n </div>\n\n <!-- AI Task Status (Progress Bar and Error Handling) -->\n\n <div \n *ngIf=\"model.aiTaskStatus\"\n class=\"ai-message-wrapper task-status-wrapper\"\n id=\"taskStatusMessage\">\n <symphony-task-status\n [taskStatusModel]=\"model.aiTaskStatus\"\n (cancelTask)=\"onCancelTask()\"\n (retryTask)=\"onRetryTask()\">\n </symphony-task-status>\n </div>\n </div>\n </div>\n\n <!-- Suggested Prompts -->\n <div \n class=\"ai-suggested-prompts\"\n *ngIf=\"config.enableSuggestedPrompts && model.suggestedPrompts.length > 0\">\n \n <symphony-paragraph class=\"ai-prompts-intro sfx-mb-15\">\n Need help writing an email? Here are a few suggested prompts to get you started.\n </symphony-paragraph>\n \n <div class=\"ai-prompts-list\">\n <button\n *ngFor=\"let prompt of model.suggestedPrompts\"\n class=\"ai-prompt-button\"\n (click)=\"onPromptClick(prompt)\">\n <symphony-icon \n *ngIf=\"prompt.icon\" \n [icon]=\"'si-' + prompt.icon\"\n class=\"ai-prompt-icon\">\n </symphony-icon>\n <span class=\"ai-prompt-text\">{{ prompt.text }}</span>\n </button>\n </div>\n </div>\n </div>\n\n <!-- Footer / Input Area -->\n <div class=\"ai-drawer-footer\" *ngIf=\"model.isOpen\">\n \n <!-- Input Row -->\n <div class=\"ai-input-row\">\n <symphony-input-textarea-with-send\n #messageInput\n [(ngModel)]=\"model.inputValue\"\n [placeholder]=\"config.placeholder\"\n [isDisabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\"\n [maxCharacterLimit]=\"model.maxCharacterLimit\"\n [showCharacterCount]=\"!!model.maxCharacterLimit\"\n (sendClicked)=\"onSendMessage()\"\n (valueChanged)=\"onInputChange($event)\"\n (enterPressed)=\"onSendMessage()\">\n </symphony-input-textarea-with-send>\n </div>\n </div>\n</div> ", styles: [".sfx-p-0{padding:0}.sfx-p-5{padding:.3rem}.sfx-p-10{padding:.625rem}.sfx-p-15{padding:.9375rem}.sfx-p-20{padding:1.25rem}.sfx-p-30{padding:1.875rem}.sfx-pt-0{padding-top:0}.sfx-pt-5{padding-top:.3rem}.sfx-pt-10{padding-top:.625rem}.sfx-pt-15{padding-top:.9375rem}.sfx-pt-20{padding-top:1.25rem}.sfx-pt-25{padding-top:1.5625rem}.sfx-pt-30{padding-top:1.875rem}.sfx-pt-35{padding-top:2.1875rem}.sfx-pt-40{padding-top:2.5rem}.sfx-pt-50{padding-top:3.125rem}.sfx-pb-0{padding-bottom:0}.sfx-pb-5{padding-bottom:.3rem}.sfx-pb-10{padding-bottom:.625rem}.sfx-pb-15{padding-bottom:.9375rem}.sfx-pb-20{padding-bottom:1.25rem}.sfx-pb-25{padding-bottom:1.5625rem}.sfx-pb-30{padding-bottom:1.875rem}.sfx-pb-35{padding-bottom:2.1875rem}.sfx-pb-40{padding-bottom:2.5rem}.sfx-pb-50{padding-bottom:3.125rem}.sfx-pl-0{padding-left:0}.sfx-pl-5{padding-left:.3rem}.sfx-pl-10{padding-left:.625rem}.sfx-pl-15{padding-left:.9375rem}.sfx-pl-20{padding-left:1.25rem}.sfx-pl-25{padding-left:1.5625rem}.sfx-pl-30{padding-left:1.875rem}.sfx-pr-0{padding-right:0}.sfx-pr-5{padding-right:.3rem}.sfx-pr-10{padding-right:.625rem}.sfx-pr-15{padding-right:.9375rem}.sfx-pr-20{padding-right:1.25rem}.sfx-pr-25{padding-right:1.5625rem}.sfx-pr-30{padding-right:1.875rem}.sfx-py-15{padding-left:.9375rem;padding-right:.9375rem}.sfx-py-30{padding-left:1.875rem;padding-right:1.875rem}.sfx-px-0{padding-top:0;padding-bottom:0}.sfx-px-15{padding-top:.9375rem;padding-bottom:.9375rem}.sfx-px-20{padding-top:1.25rem;padding-bottom:1.25rem}.sfx-px-30{padding-top:1.875rem;padding-bottom:1.875rem}.sfx-m-0{margin:0}.sfx-m-5{margin:.3rem}.sfx-m-10{margin:.625rem}.sfx-m-15{margin:.9375rem}.sfx-m-20{margin:1.25rem}.sfx-m-auto{margin:0 auto}.sfx-mt-0{margin-top:0}.sfx-mt-5{margin-top:.3rem}.sfx-mt-10{margin-top:.625rem}.sfx-mt-15{margin-top:.9375rem}.sfx-mt-20{margin-top:1.25rem}.sfx-mt-25{margin-top:1.5625rem}.sfx-mt-30{margin-top:1.875rem}.sfx-mt-40{margin-top:2.5rem}.sfx-mt-80{margin-top:5rem}.sfx-mb-0{margin-bottom:0}.sfx-mb-5{margin-bottom:.3rem}.sfx-mb-10{margin-bottom:.625rem}.sfx-mb-15{margin-bottom:.9375rem}.sfx-mb-20{margin-bottom:1.25rem}.sfx-mb-25{margin-bottom:1.5625rem}.sfx-mb-30{margin-bottom:1.875rem}.sfx-mb-40{margin-bottom:2.5rem}.sfx-mb-50{margin-bottom:3.125rem}.sfx-ml-0{margin-left:0}.sfx-ml-5{margin-left:.3rem}.sfx-ml-10{margin-left:.625rem}.sfx-ml-15{margin-left:.9375rem}.sfx-ml-20{margin-left:1.25rem}.sfx-ml-auto{margin-left:auto}.sfx-mr-0{margin-right:0}.sfx-mr-5{margin-right:.3rem}.sfx-mr-10{margin-right:.625rem}.sfx-mr-15{margin-right:.9375rem}.sfx-mr-20{margin-right:1.25rem}.sfx-mr-25{margin-right:1.5625rem}.sfx-mr-30{margin-right:1.875rem}.sfx-mr-40{margin-right:2.5rem}.ai-drawer-container{position:absolute;top:0;right:0;width:100%;max-width:500px;height:100%;background-color:#fff;box-shadow:-4px 0 24px rgba(0,0,0,.15);z-index:9999;display:flex;flex-direction:column;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1)}.ai-drawer-container.open{transform:translate(0)}@media (max-width: 768px){.ai-drawer-container{width:100%;box-shadow:none}}.ai-drawer-edge-toggle{position:absolute;top:50%;left:-48px;transform:translateY(-50%);width:48px;height:48px;border:1px solid #D2D8E5;border-radius:8px 0 0 8px;background-color:#2b8ff3;color:#fff;cursor:pointer;box-shadow:-2px 0 8px rgba(0,0,0,.15);z-index:10001;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.ai-drawer-edge-toggle:hover{background-color:#0d76de;box-shadow:-4px 0 12px rgba(0,0,0,.2);transform:translateY(-50%) scale(1.02)}.ai-drawer-edge-toggle:focus{outline:2px solid #2B8FF3;outline-offset:2px}.ai-drawer-edge-toggle symphony-icon{font-size:20px;transition:transform .2s ease;display:block;line-height:1;color:#fff}.ai-drawer-edge-toggle.drawer-open{left:-35px;background-color:#fff;color:#2b8ff3;border-color:#d2d8e5;border-radius:8px 0 0 8px;box-shadow:-2px 0 8px rgba(0,0,0,.1)}.ai-drawer-edge-toggle.drawer-open:hover{background-color:#f1f2f5;color:#0d76de;box-shadow:-4px 0 12px rgba(0,0,0,.15);transform:translateY(-50%) scale(1.02)}.ai-drawer-edge-toggle.drawer-open symphony-icon{font-size:18px;color:#2b8ff3}@media (max-width: 768px){.ai-drawer-edge-toggle{left:-40px;width:40px;height:40px}.ai-drawer-edge-toggle symphony-icon{font-size:18px}.ai-drawer-edge-toggle.drawer-open{left:-40px;width:40px;height:40px}.ai-drawer-edge-toggle.drawer-open symphony-icon{font-size:16px}}.ai-drawer-header{display:flex;align-items:center;justify-content:center;padding:1.25rem 1.5625rem;border-bottom:1px solid #D2D8E5;background-color:#fff;position:relative;z-index:1}.ai-drawer-header .ai-drawer-title{font-size:1.125rem;font-weight:600;color:#08203e}.ai-drawer-body{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;z-index:1}.ai-chat-container{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding:.9375rem 1.5625rem}.ai-chat-container::-webkit-scrollbar{width:6px}.ai-chat-container::-webkit-scrollbar-track{background:#F1F2F5}.ai-chat-container::-webkit-scrollbar-thumb{background:#C3CBDC;border-radius:3px}.ai-chat-container::-webkit-scrollbar-thumb:hover{background:#5B6D80}.ai-message-list{display:flex;flex-direction:column;gap:.9375rem}.ai-message-wrapper{display:flex;flex-direction:column}.ai-message-wrapper[data-message-type=user]{align-items:flex-end}.ai-message-wrapper[data-message-type=ai],.ai-message-wrapper[data-message-type=system],.ai-message-wrapper.ai-loading-message{align-items:flex-start}.ai-message-timestamp-container{margin-bottom:.625rem;text-align:center;width:100%;align-self:center}.ai-message-timestamp-container .ai-message-timestamp{font-size:.75rem;color:#82919f;font-weight:500}.ai-message-bubble{max-width:80%;border-radius:12px;word-wrap:break-word;animation:messageSlideIn .3s ease-out;display:flex;gap:.625rem}.ai-message-bubble.user-message{background-color:#2b8ff3;color:#fff;border-bottom-right-radius:4px;padding:.625rem .9375rem;justify-content:flex-end}.ai-message-bubble.user-message .ai-message-content-wrapper{display:flex;flex-direction:column;align-items:flex-end}.ai-message-bubble.ai-message{background-color:#fff;border:1px solid #D2D8E5;color:#08203e;border-bottom-left-radius:4px;padding:.625rem .9375rem;align-items:flex-start}.ai-message-bubble.ai-message .ai-message-icon{flex:0 0 auto;width:24px;height:24px;background-color:#f0f8ff;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:2px}.ai-message-bubble.ai-message .ai-message-icon symphony-icon{color:#2b8ff3;font-size:.875rem}.ai-message-bubble.ai-message .ai-message-content-wrapper{flex:1;display:flex;flex-direction:column}.ai-message-bubble.system-message{background-color:#f1f2f5;border:1px solid #E4E7EF;color:#5b6d80;border-radius:8px;text-align:center;max-width:90%;padding:.625rem .9375rem;justify-content:center}.ai-message-bubble.system-message .ai-message-content{font-size:.875rem}@media (max-width: 768px){.ai-message-bubble{max-width:90%}}.ai-message-status{margin-top:.3rem;text-align:right}.ai-message-status .ai-status-text{display:inline-flex;gap:4px;font-size:.75rem;font-weight:500}.ai-message-status .ai-status-text.status-delivered{color:#5b6d80}.ai-message-status .ai-status-text.status-delivered .ai-status-icon{color:#2cb45f;font-size:12px}.ai-message-status .ai-status-text.status-pending{color:#5b6d80}.ai-message-status .ai-status-text.status-pending .ai-status-loader{width:12px;height:12px}.ai-message-status .ai-status-text.status-error{color:#ac4463}.ai-message-status .ai-status-text.status-error .ai-status-icon{color:#ac4463;font-size:12px}.ai-loading-message .ai-message-bubble .ai-message-icon{flex:0 0 auto;width:24px;height:24px;background-color:#f0f8ff;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:2px}.ai-loading-message .ai-message-bubble .ai-message-icon symphony-icon{color:#2b8ff3;font-size:.875rem}.ai-loading-message .ai-message-bubble .ai-loading-content{display:flex;align-items:center;gap:.625rem;flex:1}.ai-loading-message .ai-message-bubble .ai-loading-text{font-style:italic;color:#5b6d80;font-size:.875rem}.ai-suggested-prompts{padding:1.25rem 1.5625rem;border-top:1px solid #E4E7EF;background-color:#f1f2f5}.ai-suggested-prompts .ai-prompts-intro{font-size:.875rem;color:#5b6d80;text-align:center;line-height:1.4}.ai-suggested-prompts .ai-prompts-list{display:flex;flex-direction:column;gap:.625rem}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button{display:flex;align-items:center;gap:.625rem;padding:.625rem .9375rem;border:1px solid #C5AEFF;border-radius:24px;background-color:transparent;color:#712ace;cursor:pointer;transition:all .2s ease;text-align:left;font-size:.875rem;min-height:48px}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:hover{background-color:#f3f0ff;border-color:#9d79ff;transform:translateY(-1px)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:active{transform:translateY(0)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-icon{flex:0 0 auto;color:#712ace;font-size:16px}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-text{flex:1;font-weight:400;line-height:1.3}.ai-drawer-footer{padding:.9375rem 1.5625rem 1.25rem;border-top:1px solid #D2D8E5;background-color:#fff;position:relative;z-index:1}.ai-input-row symphony-input-textarea-with-send{width:100%}.ai-footer-actions{text-align:center}.ai-footer-actions symphony-button-v2{font-size:.75rem;color:#5b6d80}.ai-footer-actions symphony-button-v2:hover{color:#08203e}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-contrast: high){.ai-drawer-container{border:2px solid #08203E}.ai-message-bubble.user-message{border:1px solid #0a5cae}.ai-message-bubble.ai-message{border:2px solid #5B6D80}.ai-message-bubble.system-message{border:2px solid #C3CBDC}}@media (prefers-reduced-motion: reduce){.ai-drawer-container,.ai-message-bubble,.ai-drawer-edge-toggle{transition:none;animation:none}}\n"], components: [{ type: IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: H3Component, selector: "symphony-h3", inputs: ["text", "isSecondary"] }, { type: ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary", "isFontBold"] }, { type: TaskStatusComponent, selector: "symphony-task-status", inputs: ["taskStatusModel"], outputs: ["cancelTask", "retryTask"] }, { type: InputTextareaWithSendComponent, selector: "symphony-input-textarea-with-send", inputs: ["placeholder", "isDisabled", "maxCharacterLimit", "showCharacterCount", "minRows", "maxRows", "sendButtonIcon", "sendButtonAriaLabel", "autoResize"], outputs: ["sendClicked", "enterPressed", "valueChanged"] }], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "newLineToBr": NewLineToBrPipe } });
7559
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AISearchAssistantDrawerComponent, decorators: [{
7560
+ type: Component,
7561
+ args: [{ selector: 'symphony-ai-search-assistant-drawer', template: "<!-- Drawer Container -->\n<div \n class=\"ai-drawer-container\" \n [class.open]=\"model.isOpen\">\n \n <!-- Edge Toggle Button (inside drawer container) -->\n <button \n class=\"ai-drawer-edge-toggle\"\n [class.drawer-open]=\"model.isOpen\"\n (click)=\"onToggleDrawer()\"\n [attr.aria-label]=\"model.isOpen ? 'Close AI Assistant' : 'Open AI Assistant'\"\n [title]=\"model.isOpen ? 'Close AI Assistant' : 'AI Assisted Messaging'\">\n <symphony-icon [icon]=\"model.isOpen ? 'si-arrow-next' : 'si-arrow-prev'\"></symphony-icon>\n </button>\n \n <!-- Header -->\n <div class=\"ai-drawer-header\" *ngIf=\"model.isOpen\">\n <symphony-h3 class=\"ai-drawer-title sfx-m-0\">AI Writing Assistant</symphony-h3>\n </div>\n\n <!-- Chat Container -->\n <div class=\"ai-drawer-body\" *ngIf=\"model.isOpen\">\n \n <!-- Messages Area -->\n <div \n class=\"ai-chat-container\" \n #chatContainer>\n \n <!-- Message List -->\n <div class=\"ai-message-list sfx-mb-20\">\n <div \n *ngFor=\"let message of model.messages; trackBy: trackByMessageId\"\n class=\"ai-message-wrapper\"\n [attr.data-message-type]=\"message.type\">\n \n <!-- Timestamp Above Message -->\n <div \n class=\"ai-message-timestamp-container\"\n *ngIf=\"config.showTimestamps\">\n <span class=\"ai-message-timestamp\">\n {{ getMessageTime(message.timestamp) }}\n </span>\n </div>\n \n <!-- Message Bubble -->\n <div \n class=\"ai-message-bubble\"\n [class.user-message]=\"message.type === 'user'\"\n [class.ai-message]=\"message.type === 'ai'\"\n [class.system-message]=\"message.type === 'system'\">\n \n <!-- AI Message Icon -->\n <div \n class=\"ai-message-icon\" \n *ngIf=\"message.type === 'ai'\">\n <symphony-icon [icon]=\"'si-chatbot'\"></symphony-icon>\n </div>\n \n <div class=\"ai-message-content-wrapper\">\n <symphony-paragraph \n class=\"ai-message-content sfx-m-0\"\n [innerHTML]=\"message.content | newLineToBr\">\n </symphony-paragraph>\n </div>\n </div>\n \n <!-- Message Status (for user messages) -->\n <div \n class=\"ai-message-status\"\n *ngIf=\"message.type === 'user' && message.status\">\n <span \n class=\"ai-status-text\"\n [class.status-delivered]=\"message.status === 'delivered'\"\n [class.status-pending]=\"message.status === 'pending'\"\n [class.status-error]=\"message.status === 'error'\">\n {{ getStatusText(message.status) }}\n </span>\n </div>\n </div>\n\n <!-- AI Task Status (Progress Bar and Error Handling) -->\n\n <div \n *ngIf=\"model.aiTaskStatus\"\n class=\"ai-message-wrapper task-status-wrapper\"\n id=\"taskStatusMessage\">\n <symphony-task-status\n [taskStatusModel]=\"model.aiTaskStatus\"\n (cancelTask)=\"onCancelTask()\"\n (retryTask)=\"onRetryTask()\">\n </symphony-task-status>\n </div>\n </div>\n </div>\n\n <!-- Suggested Prompts -->\n <div \n class=\"ai-suggested-prompts\"\n *ngIf=\"config.enableSuggestedPrompts && model.suggestedPrompts.length > 0\">\n \n <symphony-paragraph class=\"ai-prompts-intro sfx-mb-15\">\n Need help writing an email? Here are a few suggested prompts to get you started.\n </symphony-paragraph>\n \n <div class=\"ai-prompts-list\">\n <button\n *ngFor=\"let prompt of model.suggestedPrompts\"\n class=\"ai-prompt-button\"\n (click)=\"onPromptClick(prompt)\">\n <symphony-icon \n *ngIf=\"prompt.icon\" \n [icon]=\"'si-' + prompt.icon\"\n class=\"ai-prompt-icon\">\n </symphony-icon>\n <span class=\"ai-prompt-text\">{{ prompt.text }}</span>\n </button>\n </div>\n </div>\n </div>\n\n <!-- Footer / Input Area -->\n <div class=\"ai-drawer-footer\" *ngIf=\"model.isOpen\">\n \n <!-- Input Row -->\n <div class=\"ai-input-row\">\n <symphony-input-textarea-with-send\n #messageInput\n [(ngModel)]=\"model.inputValue\"\n [placeholder]=\"config.placeholder\"\n [isDisabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\"\n [maxCharacterLimit]=\"model.maxCharacterLimit\"\n [showCharacterCount]=\"!!model.maxCharacterLimit\"\n (sendClicked)=\"onSendMessage()\"\n (valueChanged)=\"onInputChange($event)\"\n (enterPressed)=\"onSendMessage()\">\n </symphony-input-textarea-with-send>\n </div>\n </div>\n</div> ", styles: [".sfx-p-0{padding:0}.sfx-p-5{padding:.3rem}.sfx-p-10{padding:.625rem}.sfx-p-15{padding:.9375rem}.sfx-p-20{padding:1.25rem}.sfx-p-30{padding:1.875rem}.sfx-pt-0{padding-top:0}.sfx-pt-5{padding-top:.3rem}.sfx-pt-10{padding-top:.625rem}.sfx-pt-15{padding-top:.9375rem}.sfx-pt-20{padding-top:1.25rem}.sfx-pt-25{padding-top:1.5625rem}.sfx-pt-30{padding-top:1.875rem}.sfx-pt-35{padding-top:2.1875rem}.sfx-pt-40{padding-top:2.5rem}.sfx-pt-50{padding-top:3.125rem}.sfx-pb-0{padding-bottom:0}.sfx-pb-5{padding-bottom:.3rem}.sfx-pb-10{padding-bottom:.625rem}.sfx-pb-15{padding-bottom:.9375rem}.sfx-pb-20{padding-bottom:1.25rem}.sfx-pb-25{padding-bottom:1.5625rem}.sfx-pb-30{padding-bottom:1.875rem}.sfx-pb-35{padding-bottom:2.1875rem}.sfx-pb-40{padding-bottom:2.5rem}.sfx-pb-50{padding-bottom:3.125rem}.sfx-pl-0{padding-left:0}.sfx-pl-5{padding-left:.3rem}.sfx-pl-10{padding-left:.625rem}.sfx-pl-15{padding-left:.9375rem}.sfx-pl-20{padding-left:1.25rem}.sfx-pl-25{padding-left:1.5625rem}.sfx-pl-30{padding-left:1.875rem}.sfx-pr-0{padding-right:0}.sfx-pr-5{padding-right:.3rem}.sfx-pr-10{padding-right:.625rem}.sfx-pr-15{padding-right:.9375rem}.sfx-pr-20{padding-right:1.25rem}.sfx-pr-25{padding-right:1.5625rem}.sfx-pr-30{padding-right:1.875rem}.sfx-py-15{padding-left:.9375rem;padding-right:.9375rem}.sfx-py-30{padding-left:1.875rem;padding-right:1.875rem}.sfx-px-0{padding-top:0;padding-bottom:0}.sfx-px-15{padding-top:.9375rem;padding-bottom:.9375rem}.sfx-px-20{padding-top:1.25rem;padding-bottom:1.25rem}.sfx-px-30{padding-top:1.875rem;padding-bottom:1.875rem}.sfx-m-0{margin:0}.sfx-m-5{margin:.3rem}.sfx-m-10{margin:.625rem}.sfx-m-15{margin:.9375rem}.sfx-m-20{margin:1.25rem}.sfx-m-auto{margin:0 auto}.sfx-mt-0{margin-top:0}.sfx-mt-5{margin-top:.3rem}.sfx-mt-10{margin-top:.625rem}.sfx-mt-15{margin-top:.9375rem}.sfx-mt-20{margin-top:1.25rem}.sfx-mt-25{margin-top:1.5625rem}.sfx-mt-30{margin-top:1.875rem}.sfx-mt-40{margin-top:2.5rem}.sfx-mt-80{margin-top:5rem}.sfx-mb-0{margin-bottom:0}.sfx-mb-5{margin-bottom:.3rem}.sfx-mb-10{margin-bottom:.625rem}.sfx-mb-15{margin-bottom:.9375rem}.sfx-mb-20{margin-bottom:1.25rem}.sfx-mb-25{margin-bottom:1.5625rem}.sfx-mb-30{margin-bottom:1.875rem}.sfx-mb-40{margin-bottom:2.5rem}.sfx-mb-50{margin-bottom:3.125rem}.sfx-ml-0{margin-left:0}.sfx-ml-5{margin-left:.3rem}.sfx-ml-10{margin-left:.625rem}.sfx-ml-15{margin-left:.9375rem}.sfx-ml-20{margin-left:1.25rem}.sfx-ml-auto{margin-left:auto}.sfx-mr-0{margin-right:0}.sfx-mr-5{margin-right:.3rem}.sfx-mr-10{margin-right:.625rem}.sfx-mr-15{margin-right:.9375rem}.sfx-mr-20{margin-right:1.25rem}.sfx-mr-25{margin-right:1.5625rem}.sfx-mr-30{margin-right:1.875rem}.sfx-mr-40{margin-right:2.5rem}.ai-drawer-container{position:absolute;top:0;right:0;width:100%;max-width:500px;height:100%;background-color:#fff;box-shadow:-4px 0 24px rgba(0,0,0,.15);z-index:9999;display:flex;flex-direction:column;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1)}.ai-drawer-container.open{transform:translate(0)}@media (max-width: 768px){.ai-drawer-container{width:100%;box-shadow:none}}.ai-drawer-edge-toggle{position:absolute;top:50%;left:-48px;transform:translateY(-50%);width:48px;height:48px;border:1px solid #D2D8E5;border-radius:8px 0 0 8px;background-color:#2b8ff3;color:#fff;cursor:pointer;box-shadow:-2px 0 8px rgba(0,0,0,.15);z-index:10001;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.ai-drawer-edge-toggle:hover{background-color:#0d76de;box-shadow:-4px 0 12px rgba(0,0,0,.2);transform:translateY(-50%) scale(1.02)}.ai-drawer-edge-toggle:focus{outline:2px solid #2B8FF3;outline-offset:2px}.ai-drawer-edge-toggle symphony-icon{font-size:20px;transition:transform .2s ease;display:block;line-height:1;color:#fff}.ai-drawer-edge-toggle.drawer-open{left:-35px;background-color:#fff;color:#2b8ff3;border-color:#d2d8e5;border-radius:8px 0 0 8px;box-shadow:-2px 0 8px rgba(0,0,0,.1)}.ai-drawer-edge-toggle.drawer-open:hover{background-color:#f1f2f5;color:#0d76de;box-shadow:-4px 0 12px rgba(0,0,0,.15);transform:translateY(-50%) scale(1.02)}.ai-drawer-edge-toggle.drawer-open symphony-icon{font-size:18px;color:#2b8ff3}@media (max-width: 768px){.ai-drawer-edge-toggle{left:-40px;width:40px;height:40px}.ai-drawer-edge-toggle symphony-icon{font-size:18px}.ai-drawer-edge-toggle.drawer-open{left:-40px;width:40px;height:40px}.ai-drawer-edge-toggle.drawer-open symphony-icon{font-size:16px}}.ai-drawer-header{display:flex;align-items:center;justify-content:center;padding:1.25rem 1.5625rem;border-bottom:1px solid #D2D8E5;background-color:#fff;position:relative;z-index:1}.ai-drawer-header .ai-drawer-title{font-size:1.125rem;font-weight:600;color:#08203e}.ai-drawer-body{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;z-index:1}.ai-chat-container{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding:.9375rem 1.5625rem}.ai-chat-container::-webkit-scrollbar{width:6px}.ai-chat-container::-webkit-scrollbar-track{background:#F1F2F5}.ai-chat-container::-webkit-scrollbar-thumb{background:#C3CBDC;border-radius:3px}.ai-chat-container::-webkit-scrollbar-thumb:hover{background:#5B6D80}.ai-message-list{display:flex;flex-direction:column;gap:.9375rem}.ai-message-wrapper{display:flex;flex-direction:column}.ai-message-wrapper[data-message-type=user]{align-items:flex-end}.ai-message-wrapper[data-message-type=ai],.ai-message-wrapper[data-message-type=system],.ai-message-wrapper.ai-loading-message{align-items:flex-start}.ai-message-timestamp-container{margin-bottom:.625rem;text-align:center;width:100%;align-self:center}.ai-message-timestamp-container .ai-message-timestamp{font-size:.75rem;color:#82919f;font-weight:500}.ai-message-bubble{max-width:80%;border-radius:12px;word-wrap:break-word;animation:messageSlideIn .3s ease-out;display:flex;gap:.625rem}.ai-message-bubble.user-message{background-color:#2b8ff3;color:#fff;border-bottom-right-radius:4px;padding:.625rem .9375rem;justify-content:flex-end}.ai-message-bubble.user-message .ai-message-content-wrapper{display:flex;flex-direction:column;align-items:flex-end}.ai-message-bubble.ai-message{background-color:#fff;border:1px solid #D2D8E5;color:#08203e;border-bottom-left-radius:4px;padding:.625rem .9375rem;align-items:flex-start}.ai-message-bubble.ai-message .ai-message-icon{flex:0 0 auto;width:24px;height:24px;background-color:#f0f8ff;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:2px}.ai-message-bubble.ai-message .ai-message-icon symphony-icon{color:#2b8ff3;font-size:.875rem}.ai-message-bubble.ai-message .ai-message-content-wrapper{flex:1;display:flex;flex-direction:column}.ai-message-bubble.system-message{background-color:#f1f2f5;border:1px solid #E4E7EF;color:#5b6d80;border-radius:8px;text-align:center;max-width:90%;padding:.625rem .9375rem;justify-content:center}.ai-message-bubble.system-message .ai-message-content{font-size:.875rem}@media (max-width: 768px){.ai-message-bubble{max-width:90%}}.ai-message-status{margin-top:.3rem;text-align:right}.ai-message-status .ai-status-text{display:inline-flex;gap:4px;font-size:.75rem;font-weight:500}.ai-message-status .ai-status-text.status-delivered{color:#5b6d80}.ai-message-status .ai-status-text.status-delivered .ai-status-icon{color:#2cb45f;font-size:12px}.ai-message-status .ai-status-text.status-pending{color:#5b6d80}.ai-message-status .ai-status-text.status-pending .ai-status-loader{width:12px;height:12px}.ai-message-status .ai-status-text.status-error{color:#ac4463}.ai-message-status .ai-status-text.status-error .ai-status-icon{color:#ac4463;font-size:12px}.ai-loading-message .ai-message-bubble .ai-message-icon{flex:0 0 auto;width:24px;height:24px;background-color:#f0f8ff;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:2px}.ai-loading-message .ai-message-bubble .ai-message-icon symphony-icon{color:#2b8ff3;font-size:.875rem}.ai-loading-message .ai-message-bubble .ai-loading-content{display:flex;align-items:center;gap:.625rem;flex:1}.ai-loading-message .ai-message-bubble .ai-loading-text{font-style:italic;color:#5b6d80;font-size:.875rem}.ai-suggested-prompts{padding:1.25rem 1.5625rem;border-top:1px solid #E4E7EF;background-color:#f1f2f5}.ai-suggested-prompts .ai-prompts-intro{font-size:.875rem;color:#5b6d80;text-align:center;line-height:1.4}.ai-suggested-prompts .ai-prompts-list{display:flex;flex-direction:column;gap:.625rem}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button{display:flex;align-items:center;gap:.625rem;padding:.625rem .9375rem;border:1px solid #C5AEFF;border-radius:24px;background-color:transparent;color:#712ace;cursor:pointer;transition:all .2s ease;text-align:left;font-size:.875rem;min-height:48px}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:hover{background-color:#f3f0ff;border-color:#9d79ff;transform:translateY(-1px)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:active{transform:translateY(0)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-icon{flex:0 0 auto;color:#712ace;font-size:16px}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-text{flex:1;font-weight:400;line-height:1.3}.ai-drawer-footer{padding:.9375rem 1.5625rem 1.25rem;border-top:1px solid #D2D8E5;background-color:#fff;position:relative;z-index:1}.ai-input-row symphony-input-textarea-with-send{width:100%}.ai-footer-actions{text-align:center}.ai-footer-actions symphony-button-v2{font-size:.75rem;color:#5b6d80}.ai-footer-actions symphony-button-v2:hover{color:#08203e}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-contrast: high){.ai-drawer-container{border:2px solid #08203E}.ai-message-bubble.user-message{border:1px solid #0a5cae}.ai-message-bubble.ai-message{border:2px solid #5B6D80}.ai-message-bubble.system-message{border:2px solid #C3CBDC}}@media (prefers-reduced-motion: reduce){.ai-drawer-container,.ai-message-bubble,.ai-drawer-edge-toggle{transition:none;animation:none}}\n"] }]
7562
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { model: [{
7563
+ type: Input
7564
+ }], config: [{
7565
+ type: Input
7566
+ }], drawerClosed: [{
7567
+ type: Output
7568
+ }], promptSelected: [{
7569
+ type: Output
7570
+ }], messageSent: [{
7571
+ type: Output
7572
+ }], inputChanged: [{
7573
+ type: Output
7574
+ }], retryClicked: [{
7575
+ type: Output
7576
+ }], taskCancelled: [{
7577
+ type: Output
7578
+ }], chatContainer: [{
7579
+ type: ViewChild,
7580
+ args: ['chatContainer']
7581
+ }], messageInput: [{
7582
+ type: ViewChild,
7583
+ args: ['messageInput']
7584
+ }] } });
7585
+
7586
+ class AISearchAssistantDrawerModule {
7587
+ }
7588
+ AISearchAssistantDrawerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AISearchAssistantDrawerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7589
+ AISearchAssistantDrawerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AISearchAssistantDrawerModule, declarations: [AISearchAssistantDrawerComponent,
7590
+ NewLineToBrPipe], imports: [CommonModule,
7591
+ FormsModule,
7592
+ H3Module,
7593
+ IconModule,
7594
+ ParagraphModule,
7595
+ ButtonV2Module,
7596
+ SfxLoaderModule,
7597
+ InputTextareaWithSendModule,
7598
+ TaskStatusModule], exports: [AISearchAssistantDrawerComponent] });
7599
+ AISearchAssistantDrawerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AISearchAssistantDrawerModule, imports: [[
7600
+ CommonModule,
7601
+ FormsModule,
7602
+ H3Module,
7603
+ IconModule,
7604
+ ParagraphModule,
7605
+ ButtonV2Module,
7606
+ SfxLoaderModule,
7607
+ InputTextareaWithSendModule,
7608
+ TaskStatusModule
7609
+ ]] });
7610
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AISearchAssistantDrawerModule, decorators: [{
7611
+ type: NgModule,
7612
+ args: [{
7613
+ declarations: [
7614
+ AISearchAssistantDrawerComponent,
7615
+ NewLineToBrPipe
7616
+ ],
7617
+ imports: [
7618
+ CommonModule,
7619
+ FormsModule,
7620
+ H3Module,
7621
+ IconModule,
7622
+ ParagraphModule,
7623
+ ButtonV2Module,
7624
+ SfxLoaderModule,
7625
+ InputTextareaWithSendModule,
7626
+ TaskStatusModule
7627
+ ],
7628
+ exports: [
7629
+ AISearchAssistantDrawerComponent
7630
+ ]
7631
+ }]
7632
+ }] });
7633
+
7115
7634
  class OrganismsModule {
7116
7635
  }
7117
7636
  OrganismsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: OrganismsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -7147,7 +7666,9 @@ OrganismsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version
7147
7666
  FilterDetailModule,
7148
7667
  ReportsCardListModule,
7149
7668
  GridActionBarV2Module,
7150
- GenerateLicenseModalModule] });
7669
+ GenerateLicenseModalModule,
7670
+ // MergeContactsModalModule,
7671
+ AISearchAssistantDrawerModule] });
7151
7672
  OrganismsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: OrganismsModule, imports: [[
7152
7673
  CommonModule,
7153
7674
  NoteListModule,
@@ -7181,7 +7702,9 @@ OrganismsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version
7181
7702
  FilterDetailModule,
7182
7703
  ReportsCardListModule,
7183
7704
  GridActionBarV2Module,
7184
- GenerateLicenseModalModule
7705
+ GenerateLicenseModalModule,
7706
+ // MergeContactsModalModule,
7707
+ AISearchAssistantDrawerModule
7185
7708
  ]] });
7186
7709
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: OrganismsModule, decorators: [{
7187
7710
  type: NgModule,
@@ -7220,7 +7743,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
7220
7743
  FilterDetailModule,
7221
7744
  ReportsCardListModule,
7222
7745
  GridActionBarV2Module,
7223
- GenerateLicenseModalModule
7746
+ GenerateLicenseModalModule,
7747
+ // MergeContactsModalModule,
7748
+ AISearchAssistantDrawerModule
7224
7749
  ]
7225
7750
  }]
7226
7751
  }] });
@@ -10210,5 +10735,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
10210
10735
  * Generated bundle index. Do not edit.
10211
10736
  */
10212
10737
 
10213
- export { ActionBarComponent, ActionBarJobListComponent, ActionBarJobListModule, ActionBarModule, ActionBarSelectionCounterComponent, ActionBarSelectionCounterModule, ActivityScoreLevel, AdditionModalComponent, AdditionModalModule, AdditionalInformationCardListComponent, AdditionalInformationCardListModule, AdvanceFilterSelectedCounterComponent, AdvanceFilterSelectedCounterModule, AdvanceSearchModalComponent, AdvanceSearchModalModule, AdvertiseModalComponent, AdvertiseModalModule, AdvertisedJobPostingsListPageComponent, AdvertisedJobPostingsListPageModule, AdvertisedJobPostingsModalComponent, AdvertisedJobPostingsModalModule, AdvertisedJobsCostComponent, AdvertisedJobsCostModule, AlertDuration, AssignToUserModalComponent, AssignToUserModalModule, AssignedToWidgetComponent, AssignedToWidgetModule, AtomsModule, AvatarComponent, AvatarModule, BreadcrumbComponent, BreadcrumbModule, BulkImportAdminListPageComponent, BulkImportAdminListPageModule, ButtonComponent, ButtonDropdownComponent, ButtonDropdownModule, ButtonModule, ButtonV2Component, ButtonV2Module, ButtonWithIconComponent, ButtonWithIconModule, CapitalizeFirstCharacterPipe, CardComponent, CardListComponent, CardListModule, CardModule, CharacterCounterComponent, CharacterCounterModule, ChatHistoryDateStampComponent, ChatHistoryDateStampModule, ChatHistoryMessageAvatarComponent, ChatHistoryMessageAvatarModule, ChatHistoryMessageBubbleComponent, ChatHistoryMessageBubbleModule, ChatHistoryMessageItemComponent, ChatHistoryMessageItemModule, ChatHistoryMessageListComponent, ChatHistoryMessageListModule, ChatbotHistoryModalComponent, ChatbotHistoryModalModule, ColorNames, ColoredTextIndicatorComponent, ColoredTextIndicatorModule, ConfirmationModalComponent, ConfirmationModalModule, ContactActivityScoreComponent, ContactActivityScoreModule, ContextualMenuComponent, ContextualMenuModule, DocumentManagementItemComponent, DocumentManagementItemModule, DocumentManagementListComponent, DocumentManagementListModule, DomainWhitelistingPartialPageComponent, DomainWhitelistingPartialPageModule, EditableSettingItemComponent, EditableSettingItemListComponent, EditableSettingItemListModule, EditableSettingItemModule, EditableSettingKey, EditableSettingPartialPageComponent, EditableSettingPartialPageModule, EmailValidator, EventSettingsMoreOptionsComponent, EventSettingsMoreOptionsModule, EventsSettingsPageComponent, EventsSettingsPageModule, FeedbackCardComponent, FeedbackCardListComponent, FeedbackCardListModule, FeedbackCardModule, FeedbackCardState, FeedbackDetailPageComponent, FeedbackDetailPageModule, FeedbackListPageComponent, FeedbackListPageModule, FeedbackLoginModalComponent, FeedbackLoginModalModule, FeedbackRequestListPageComponent, FeedbackRequestListPageModule, FeedbackSettingDetailsPageComponent, FeedbackSettingDetailsPageModule, FileUploadComponent, FileUploadModule, FileUploadV2Component, FileUploadV2Module, FilterAreaComponent, FilterAreaModule, FilterDetailComponent, FilterDetailModule, FilterDetailTreeComponent, FilterDetailTreeModule, FilterTabsComponent, FilterTabsModule, FilterTabsV2Component, FilterTabsV2Module, FormattedCounterComponent, FormattedCounterModule, FrameworkModule, GenerateLicenseModalComponent, GenerateLicenseModalModule, GridActionBarV2Component, GridActionBarV2Module, GridActionsComponent, GridActionsModule, GridCellClickableComponent, GridCellClickableModule, GridCellClickedOpenNewTabComponent, GridCellClickedOpenNewTabModule, GridCellLoaderModule, GridComponent, GridControlsComponent, GridControlsModule, GridDownloadComponent, GridDownloadModule, GridLoadingCellComponent, GridModule, GridNoRowsOverlayComponent, GridNoRowsOverlayModule, GridToggleCellRendererComponent, GridToggleCellRendererModule, H1Component, H1Module, H2Component, H2Module, H3Component, H3Module, H4Component, H4Module, H5Component, H5Module, H5WithIconComponent, H5WithIconModule, IconComponent, IconModule, IconWithTooltipComponent, IconWithTooltipModule, IconWrapperComponent, IconWrapperModule, Icons, InformationModalComponent, InformationModalModule, InputCheckboxComponent, InputCheckboxListComponent, InputCheckboxListModule, InputCheckboxModule, InputChipsComponent, InputChipsModule, InputDropdownComponent, InputDropdownList, InputDropdownListItemModel, InputDropdownModule, InputFileUploadComponent, InputFileUploadModule, InputLimitedTextComponent, InputLimitedTextModule, InputNumberComponent, InputNumberModule, InputRadioComponent, InputRadioModule, InputRadioToggleComponent, InputRadioToggleModule, InputSearchCheckboxDropdownComponent, InputSearchCheckboxDropdownModule, InputTextComponent, InputTextModule, InputTextareaComponent, InputTextareaModule, InputToggleComponent, InputToggleModule, JobListPageComponent, JobListPageModule, LibrariesPageComponent, LibrariesPageModule, LinkedinPremiumJobPostingsModalComponent, LinkedinPremiumJobPostingsModalModule, MergeContactClickedOpenModalComponent, MergeContactClickedOpenModalModule, MoleculesModule, MultiSelectDataModule, MultiselectSearchCheckbox, NavigationLinkComponent, NavigationLinkModule, NotificationsComponent, NotificationsModule, OrganismsModule, OverflowTextComponent, OverflowTextModule, OverflowTextTooltipComponent, OverflowTextTooltipModule, ParagraphComponent, ParagraphModule, PartialPages, PhaserCardComponent, PhaserCardModule, PhaserComponent, PhaserModule, PillComponent, PillModule, PillsComponent, PillsModule, PipeModule, RelevanceScoreComponent, RelevanceScoreModule, ReportLicenseDetailsPageComponent, ReportLicenseDetailsPageModule, ReportsCardComponent, ReportsCardListComponent, ReportsCardListModule, ReportsCardModule, ReportsPageComponent, ReportsPageModule, ScheduleInterviewModalComponent, ScheduleInterviewModalModule, SettingDetailPageComponent, SettingDetailPageModule, SettingListPageComponent, SettingListPageModule, SettingsDetailNavigationItemComponent, SettingsDetailNavigationItemModule, SettingsDetailNavigationListComponent, SettingsDetailNavigationListModule, SettingsLicenseManagementComponent, SettingsLicenseManagementModule, SettingsReportManagementComponent, SettingsReportManagementModule, SfxLoaderComponent, SfxLoaderModule, SfxPageLoaderComponent, SfxPageLoaderModule, SfxProgressBarComponent, SfxProgressBarModule, SidebarNavigationComponent, SidebarNavigationModule, SidebarNavigationV2Component, SidebarNavigationV2Module, SmsUsageReportPageComponent, SmsUsageReportPageModule, StatusCardComponent, StatusCardModule, StatusIndicatorComponent, StatusIndicatorModule, StatusPillComponent, StatusPillModule, SymphonyModalComponent, SymphonyModalModule, TabsComponent, TabsModules, ToasterAlertComponent, ToasterAlertModel, ToasterAlertModule, ToasterAlertType, TooltipWrapperComponent, TooltipWrapperModule, TrimIdPipe, TwoColumnFilterAreaComponent, TwoColumnFilterAreaModule, UploadResumeModalComponent, UploadResumeModalModule, VerticalSeparatorComponent, VerticalSeparatorModule, gridType };
10738
+ export { AISearchAssistantDrawerComponent, AISearchAssistantDrawerModule, ActionBarComponent, ActionBarJobListComponent, ActionBarJobListModule, ActionBarModule, ActionBarSelectionCounterComponent, ActionBarSelectionCounterModule, ActivityScoreLevel, AdditionModalComponent, AdditionModalModule, AdditionalInformationCardListComponent, AdditionalInformationCardListModule, AdvanceFilterSelectedCounterComponent, AdvanceFilterSelectedCounterModule, AdvanceSearchModalComponent, AdvanceSearchModalModule, AdvertiseModalComponent, AdvertiseModalModule, AdvertisedJobPostingsListPageComponent, AdvertisedJobPostingsListPageModule, AdvertisedJobPostingsModalComponent, AdvertisedJobPostingsModalModule, AdvertisedJobsCostComponent, AdvertisedJobsCostModule, AlertDuration, AssignToUserModalComponent, AssignToUserModalModule, AssignedToWidgetComponent, AssignedToWidgetModule, AtomsModule, AvatarComponent, AvatarModule, BreadcrumbComponent, BreadcrumbModule, BulkImportAdminListPageComponent, BulkImportAdminListPageModule, ButtonComponent, ButtonDropdownComponent, ButtonDropdownModule, ButtonModule, ButtonV2Component, ButtonV2Module, ButtonWithIconComponent, ButtonWithIconModule, CapitalizeFirstCharacterPipe, CardComponent, CardListComponent, CardListModule, CardModule, CharacterCounterComponent, CharacterCounterModule, ChatHistoryDateStampComponent, ChatHistoryDateStampModule, ChatHistoryMessageAvatarComponent, ChatHistoryMessageAvatarModule, ChatHistoryMessageBubbleComponent, ChatHistoryMessageBubbleModule, ChatHistoryMessageItemComponent, ChatHistoryMessageItemModule, ChatHistoryMessageListComponent, ChatHistoryMessageListModule, ChatbotHistoryModalComponent, ChatbotHistoryModalModule, ColorNames, ColoredTextIndicatorComponent, ColoredTextIndicatorModule, ConfirmationModalComponent, ConfirmationModalModule, ContactActivityScoreComponent, ContactActivityScoreModule, ContextualMenuComponent, ContextualMenuModule, DocumentManagementItemComponent, DocumentManagementItemModule, DocumentManagementListComponent, DocumentManagementListModule, DomainWhitelistingPartialPageComponent, DomainWhitelistingPartialPageModule, EditableSettingItemComponent, EditableSettingItemListComponent, EditableSettingItemListModule, EditableSettingItemModule, EditableSettingKey, EditableSettingPartialPageComponent, EditableSettingPartialPageModule, EmailValidator, EventSettingsMoreOptionsComponent, EventSettingsMoreOptionsModule, EventsSettingsPageComponent, EventsSettingsPageModule, FeedbackCardComponent, FeedbackCardListComponent, FeedbackCardListModule, FeedbackCardModule, FeedbackCardState, FeedbackDetailPageComponent, FeedbackDetailPageModule, FeedbackListPageComponent, FeedbackListPageModule, FeedbackLoginModalComponent, FeedbackLoginModalModule, FeedbackRequestListPageComponent, FeedbackRequestListPageModule, FeedbackSettingDetailsPageComponent, FeedbackSettingDetailsPageModule, FileUploadComponent, FileUploadModule, FileUploadV2Component, FileUploadV2Module, FilterAreaComponent, FilterAreaModule, FilterDetailComponent, FilterDetailModule, FilterDetailTreeComponent, FilterDetailTreeModule, FilterTabsComponent, FilterTabsModule, FilterTabsV2Component, FilterTabsV2Module, FormattedCounterComponent, FormattedCounterModule, FrameworkModule, GenerateLicenseModalComponent, GenerateLicenseModalModule, GridActionBarV2Component, GridActionBarV2Module, GridActionsComponent, GridActionsModule, GridCellClickableComponent, GridCellClickableModule, GridCellClickedOpenNewTabComponent, GridCellClickedOpenNewTabModule, GridCellLoaderModule, GridComponent, GridControlsComponent, GridControlsModule, GridDownloadComponent, GridDownloadModule, GridLoadingCellComponent, GridModule, GridNoRowsOverlayComponent, GridNoRowsOverlayModule, GridToggleCellRendererComponent, GridToggleCellRendererModule, H1Component, H1Module, H2Component, H2Module, H3Component, H3Module, H4Component, H4Module, H5Component, H5Module, H5WithIconComponent, H5WithIconModule, IconComponent, IconModule, IconWithTooltipComponent, IconWithTooltipModule, IconWrapperComponent, IconWrapperModule, Icons, InformationModalComponent, InformationModalModule, InputCheckboxComponent, InputCheckboxListComponent, InputCheckboxListModule, InputCheckboxModule, InputChipsComponent, InputChipsModule, InputDropdownComponent, InputDropdownList, InputDropdownListItemModel, InputDropdownModule, InputFileUploadComponent, InputFileUploadModule, InputLimitedTextComponent, InputLimitedTextModule, InputNumberComponent, InputNumberModule, InputRadioComponent, InputRadioModule, InputRadioToggleComponent, InputRadioToggleModule, InputSearchCheckboxDropdownComponent, InputSearchCheckboxDropdownModule, InputTextComponent, InputTextModule, InputTextareaComponent, InputTextareaModule, InputTextareaWithSendComponent, InputTextareaWithSendModule, InputToggleComponent, InputToggleModule, JobListPageComponent, JobListPageModule, LibrariesPageComponent, LibrariesPageModule, LinkedinPremiumJobPostingsModalComponent, LinkedinPremiumJobPostingsModalModule, MergeContactClickedOpenModalComponent, MergeContactClickedOpenModalModule, MoleculesModule, MultiSelectDataModule, MultiselectSearchCheckbox, NavigationLinkComponent, NavigationLinkModule, NotificationsComponent, NotificationsModule, OrganismsModule, OverflowTextComponent, OverflowTextModule, OverflowTextTooltipComponent, OverflowTextTooltipModule, ParagraphComponent, ParagraphModule, PartialPages, PhaserCardComponent, PhaserCardModule, PhaserComponent, PhaserModule, PillComponent, PillModule, PillsComponent, PillsModule, PipeModule, RelevanceScoreComponent, RelevanceScoreModule, ReportLicenseDetailsPageComponent, ReportLicenseDetailsPageModule, ReportsCardComponent, ReportsCardListComponent, ReportsCardListModule, ReportsCardModule, ReportsPageComponent, ReportsPageModule, ScheduleInterviewModalComponent, ScheduleInterviewModalModule, SettingDetailPageComponent, SettingDetailPageModule, SettingListPageComponent, SettingListPageModule, SettingsDetailNavigationItemComponent, SettingsDetailNavigationItemModule, SettingsDetailNavigationListComponent, SettingsDetailNavigationListModule, SettingsLicenseManagementComponent, SettingsLicenseManagementModule, SettingsReportManagementComponent, SettingsReportManagementModule, SfxLoaderComponent, SfxLoaderModule, SfxPageLoaderComponent, SfxPageLoaderModule, SfxProgressBarComponent, SfxProgressBarModule, SidebarNavigationComponent, SidebarNavigationModule, SidebarNavigationV2Component, SidebarNavigationV2Module, SmsUsageReportPageComponent, SmsUsageReportPageModule, StatusCardComponent, StatusCardModule, StatusIndicatorComponent, StatusIndicatorModule, StatusPillComponent, StatusPillModule, SymphonyModalComponent, SymphonyModalModule, TabsComponent, TabsModules, TaskStatusComponent, TaskStatusModule, ToasterAlertComponent, ToasterAlertModel, ToasterAlertModule, ToasterAlertType, TooltipWrapperComponent, TooltipWrapperModule, TrimIdPipe, TwoColumnFilterAreaComponent, TwoColumnFilterAreaModule, UploadResumeModalComponent, UploadResumeModalModule, VerticalSeparatorComponent, VerticalSeparatorModule, gridType };
10214
10739
  //# sourceMappingURL=symphony-talent-component-library-projects-component-library.mjs.map