diff --git a/packages/quantic/force-app/main/default/lwc/quanticCitation/quanticCitation.css b/packages/quantic/force-app/main/default/lwc/quanticCitation/quanticCitation.css index 14207893bd9..29d36ca4d32 100644 --- a/packages/quantic/force-app/main/default/lwc/quanticCitation/quanticCitation.css +++ b/packages/quantic/force-app/main/default/lwc/quanticCitation/quanticCitation.css @@ -37,4 +37,8 @@ .citation__tooltip { color: rgb(26, 27, 30); cursor: default; -} \ No newline at end of file +} + +.citation__title--active { + color: var(--lwc-brandAccessible, #0176d3); +} diff --git a/packages/quantic/force-app/main/default/lwc/quanticCitation/quanticCitation.html b/packages/quantic/force-app/main/default/lwc/quanticCitation/quanticCitation.html index 7ccfd12fd40..2bc8a2baf17 100644 --- a/packages/quantic/force-app/main/default/lwc/quanticCitation/quanticCitation.html +++ b/packages/quantic/force-app/main/default/lwc/quanticCitation/quanticCitation.html @@ -12,11 +12,8 @@ onmouseleave={handleCitationMouseLeave} onclick={handleClick} > -

- {citationTitle} -

+ +

{citationTitle}

-
{hrefValue}
-
{citationTitle}
-
{text}
+
+ {hrefValue} +
+
+ {citationTitle} +
+
+ {text} +
+
+ +
diff --git a/packages/quantic/force-app/main/default/lwc/quanticCitation/quanticCitation.js b/packages/quantic/force-app/main/default/lwc/quanticCitation/quanticCitation.js index eb2122bab80..ad649bc5a32 100644 --- a/packages/quantic/force-app/main/default/lwc/quanticCitation/quanticCitation.js +++ b/packages/quantic/force-app/main/default/lwc/quanticCitation/quanticCitation.js @@ -54,6 +54,12 @@ export default class QuanticCitation extends NavigationMixin(LightningElement) { * @default false */ @api disableCitationAnchoring = false; + /** + * The variant of the citation. + * @api + * @type {string} "default" || "active" + */ + @api variant = 'default'; /** @type {Object} */ timeout; @@ -247,4 +253,10 @@ export default class QuanticCitation extends NavigationMixin(LightningElement) { ? this.salesforceRecordUrl : (this.clickUri ?? this.citation?.uri); } + + get citationTitleClasses() { + return this.variant === 'active' + ? 'citation__title citation__title--active slds-m-left_x-small slds-truncate slds-has-flexi-truncate' + : 'citation__title slds-m-left_x-small slds-truncate slds-has-flexi-truncate'; + } } diff --git a/packages/quantic/force-app/main/default/lwc/quanticGeneratedAnswer/templates/generatedAnswer.html b/packages/quantic/force-app/main/default/lwc/quanticGeneratedAnswer/templates/generatedAnswer.html index 695d55c95a2..53f0b8c961b 100644 --- a/packages/quantic/force-app/main/default/lwc/quanticGeneratedAnswer/templates/generatedAnswer.html +++ b/packages/quantic/force-app/main/default/lwc/quanticGeneratedAnswer/templates/generatedAnswer.html @@ -66,7 +66,9 @@ citations={citations} citation-hover-handler={handleCitationHover} disable-citation-anchoring={disableCitationAnchoring} - > + > + + diff --git a/packages/quantic/force-app/main/default/lwc/quanticSourceCitations/quanticSourceCitations.html b/packages/quantic/force-app/main/default/lwc/quanticSourceCitations/quanticSourceCitations.html index b132d3fbd79..3d2cc11ec4f 100644 --- a/packages/quantic/force-app/main/default/lwc/quanticSourceCitations/quanticSourceCitations.html +++ b/packages/quantic/force-app/main/default/lwc/quanticSourceCitations/quanticSourceCitations.html @@ -5,14 +5,19 @@ >
- + \ No newline at end of file diff --git a/packages/quantic/force-app/main/default/lwc/quanticSourceCitations/quanticSourceCitations.js b/packages/quantic/force-app/main/default/lwc/quanticSourceCitations/quanticSourceCitations.js index 6a7035e1e60..956294f867b 100644 --- a/packages/quantic/force-app/main/default/lwc/quanticSourceCitations/quanticSourceCitations.js +++ b/packages/quantic/force-app/main/default/lwc/quanticSourceCitations/quanticSourceCitations.js @@ -56,6 +56,11 @@ export default class QuanticSourceCitations extends LightningElement { renderedCallback() { initializeWithHeadless(this, this.engineId, this.initialize); + + // Push citation data to slotted custom components + if (this.isInitialized) { + this._pushDataToCustomSlots(); + } } initialize = (engine) => { @@ -64,6 +69,43 @@ export default class QuanticSourceCitations extends LightningElement { this.isInitialized = true; }; + /** + * Pushes citation data to custom slotted components + * @private + */ + _pushDataToCustomSlots() { + const slots = this.template.querySelectorAll('slot[name="citation-component"]'); + if (!slots || slots.length === 0) return; + + slots.forEach((slotEl, index) => { + // @ts-ignore + const assigned = slotEl.assignedElements({flatten: true}); + + // If nothing assigned, fallback is showing - don't push to it + if (assigned.length === 0) { + return; // Using fallback content + } + + // Get the corresponding citation for this slot + const citationData = this.indexedCitations[index]; + if (!citationData) return; + + // Push data to each assigned element + assigned.forEach((el) => { + // Set the public API properties directly + if ('citation' in el) { + el.citation = citationData.data; + } + if ('interactiveCitation' in el) { + el.interactiveCitation = citationData.interactiveCitation; + } + if ('engineId' in el) { + el.engineId = this.engineId; + } + }); + }); + } + /** * Returns the indexed citations. * @returns {Object} @@ -97,4 +139,4 @@ export default class QuanticSourceCitations extends LightningElement { get shouldDisplayCitations() { return this.isInitialized && !!this.citations?.length; } -} +} \ No newline at end of file