@coveo/atomic 3.59.7 → 3.60.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.
- package/custom-elements.json +702 -677
- package/dist/cjs/components/commerce/atomic-commerce-breadbox/atomic-commerce-breadbox.cjs +4 -4
- package/dist/cjs/components/commerce/atomic-commerce-pager/atomic-commerce-pager.cjs +2 -11
- package/dist/cjs/components/common/atomic-agent-stream-of-thought/atomic-agent-stream-of-thought.cjs +40 -10
- package/dist/cjs/components/common/atomic-ask-follow-up-input/atomic-ask-follow-up-input.cjs +37 -4
- package/dist/cjs/components/common/atomic-focus-trap/atomic-focus-trap.cjs +1 -3
- package/dist/cjs/components/common/atomic-generated-answer-feedback-modal/atomic-generated-answer-feedback-modal.cjs +7 -13
- package/dist/cjs/components/common/atomic-generated-answer-thread-item/atomic-generated-answer-thread-item.cjs +6 -2
- package/dist/cjs/components/common/atomic-modal/atomic-modal.cjs +5 -3
- package/dist/cjs/components/common/generated-answer/generated-answer-controller.cjs +3 -0
- package/dist/cjs/components/common/generated-answer/render-card-header.cjs +22 -13
- package/dist/cjs/components/common/generated-answer/render-conversation-debug-header.cjs +82 -0
- package/dist/cjs/components/common/item-list/item-list-common.cjs +6 -1
- package/dist/cjs/components/common/pager/pager-buttons.cjs +6 -18
- package/dist/cjs/components/common/pager/pager-navigation.cjs +1 -3
- package/dist/cjs/components/common/refine-modal/modal.cjs +2 -2
- package/dist/cjs/components/insight/atomic-insight-pager/atomic-insight-pager.cjs +2 -11
- package/dist/cjs/components/search/atomic-breadbox/atomic-breadbox.cjs +4 -4
- package/dist/cjs/components/search/atomic-generated-answer/atomic-generated-answer.cjs +9 -1
- package/dist/cjs/components/search/atomic-load-more-results/atomic-load-more-results.cjs +13 -2
- package/dist/cjs/components/search/atomic-pager/atomic-pager.cjs +2 -12
- package/dist/cjs/components/search/atomic-tab-manager/atomic-tab-manager.cjs +1 -1
- package/dist/cjs/global/environment.cjs +1 -1
- package/dist/cjs/utils/coveo.tw.css.cjs +1 -1
- package/dist/cjs/utils/tailwind.global.tw.css.cjs +1 -1
- package/dist/cjs/versions.cjs +1 -1
- package/dist/esm/components/commerce/atomic-commerce-breadbox/atomic-commerce-breadbox.js +5 -5
- package/dist/esm/components/commerce/atomic-commerce-category-facet/atomic-commerce-category-facet.js +1 -1
- package/dist/esm/components/commerce/atomic-commerce-pager/atomic-commerce-pager.js +2 -11
- package/dist/esm/components/commerce/atomic-commerce-product-list/atomic-commerce-product-list.js +1 -1
- package/dist/esm/components/commerce/atomic-commerce-recommendation-list/atomic-commerce-recommendation-list.js +1 -1
- package/dist/esm/components/commerce/atomic-commerce-search-box/atomic-commerce-search-box.js +1 -1
- package/dist/esm/components/commerce/atomic-product/atomic-product.tw.css.js +1 -1
- package/dist/esm/components/commerce/atomic-product-link/atomic-product-link.tw.css.js +1 -1
- package/dist/esm/components/commerce/atomic-product-section-actions/atomic-product-section-actions.js +1 -1
- package/dist/esm/components/commerce/atomic-product-section-badges/atomic-product-section-badges.js +1 -1
- package/dist/esm/components/commerce/atomic-product-section-bottom-metadata/atomic-product-section-bottom-metadata.js +1 -1
- package/dist/esm/components/commerce/atomic-product-section-children/atomic-product-section-children.js +1 -1
- package/dist/esm/components/commerce/atomic-product-section-description/atomic-product-section-description.js +1 -1
- package/dist/esm/components/commerce/atomic-product-section-emphasized/atomic-product-section-emphasized.js +1 -1
- package/dist/esm/components/commerce/atomic-product-section-metadata/atomic-product-section-metadata.js +1 -1
- package/dist/esm/components/commerce/atomic-product-section-name/atomic-product-section-name.js +1 -1
- package/dist/esm/components/commerce/atomic-product-section-visual/atomic-product-section-visual.js +1 -1
- package/dist/esm/components/common/atomic-agent-stream-of-thought/atomic-agent-stream-of-thought.js +40 -10
- package/dist/esm/components/common/atomic-agent-stream-of-thought/atomic-agent-stream-of-thought.tw.css.js +1 -1
- package/dist/esm/components/common/atomic-ask-follow-up-input/atomic-ask-follow-up-input.js +38 -5
- package/dist/esm/components/common/atomic-ask-follow-up-input/atomic-ask-follow-up-input.tw.css.js +1 -1
- package/dist/esm/components/common/atomic-citation/atomic-citation.tw.css.js +1 -1
- package/dist/esm/components/common/atomic-focus-trap/atomic-focus-trap.js +1 -3
- package/dist/esm/components/common/atomic-generated-answer-feedback-modal/atomic-generated-answer-feedback-modal.js +8 -14
- package/dist/esm/components/common/atomic-generated-answer-inline-link/atomic-generated-answer-inline-link.tw.css.js +1 -1
- package/dist/esm/components/common/atomic-generated-answer-thread-item/atomic-generated-answer-thread-item.js +6 -2
- package/dist/esm/components/common/atomic-modal/atomic-modal.js +6 -4
- package/dist/esm/components/common/atomic-rating/atomic-rating.tw.css.js +1 -1
- package/dist/esm/components/common/atomic-result-placeholder/atomic-result-placeholder.js +1 -1
- package/dist/esm/components/common/atomic-smart-snippet-answer/atomic-smart-snippet-answer.tw.css.js +1 -1
- package/dist/esm/components/common/atomic-smart-snippet-expandable-answer/atomic-smart-snippet-expandable-answer.tw.css.js +1 -1
- package/dist/esm/components/common/atomic-tab-bar/atomic-tab-bar.js +1 -1
- package/dist/esm/components/common/facets/facet-common.tw.css.js +1 -1
- package/dist/esm/components/common/facets/facet-search/facet-search.tw.css.js +1 -1
- package/dist/esm/components/common/facets/facet-value-box/facet-value-box.tw.css.js +1 -1
- package/dist/esm/components/common/facets/facet-value-checkbox/facet-value-checkbox.tw.css.js +1 -1
- package/dist/esm/components/common/generated-answer/generated-answer-controller.js +3 -0
- package/dist/esm/components/common/generated-answer/generated-content/generated-markdown-content.tw.css.js +1 -1
- package/dist/esm/components/common/generated-answer/render-card-header.js +23 -14
- package/dist/esm/components/common/generated-answer/render-conversation-debug-header.js +34 -0
- package/dist/esm/components/common/generated-answer/styles/generated-answer.tw.css.js +1 -1
- package/dist/esm/components/common/generated-answer/styles/generated-text.tw.css.js +1 -1
- package/dist/esm/components/common/item-list/item-list-common.js +6 -1
- package/dist/esm/components/common/item-list/styles/grid-display.tw.css.js +1 -1
- package/dist/esm/components/common/item-list/styles/list-display.tw.css.js +1 -1
- package/dist/esm/components/common/item-list/styles/table-display.tw.css.js +1 -1
- package/dist/esm/components/common/pager/pager-buttons.js +6 -18
- package/dist/esm/components/common/pager/pager-navigation.js +1 -3
- package/dist/esm/components/common/refine-modal/modal.js +2 -2
- package/dist/esm/components/insight/atomic-insight-full-search-button/atomic-insight-full-search-button.js +1 -1
- package/dist/esm/components/insight/atomic-insight-pager/atomic-insight-pager.js +3 -12
- package/dist/esm/components/insight/atomic-insight-result/atomic-insight-result.js +1 -1
- package/dist/esm/components/insight/atomic-insight-result-action/atomic-insight-result-action.js +1 -1
- package/dist/esm/components/insight/atomic-insight-result-action-bar/atomic-insight-result-action-bar.js +1 -1
- package/dist/esm/components/insight/atomic-insight-result-children/atomic-insight-result-children.js +1 -1
- package/dist/esm/components/insight/atomic-insight-result-list/insight-list-display.tw.css.js +1 -1
- package/dist/esm/components/insight/atomic-insight-search-box/atomic-insight-search-box.tw.css.js +1 -1
- package/dist/esm/components/insight/atomic-insight-smart-snippet/atomic-insight-smart-snippet.tw.css.js +1 -1
- package/dist/esm/components/insight/atomic-insight-smart-snippet-feedback-modal/atomic-insight-smart-snippet-feedback-modal.tw.css.js +1 -1
- package/dist/esm/components/insight/atomic-insight-smart-snippet-suggestions/atomic-insight-smart-snippet-suggestions.tw.css.js +1 -1
- package/dist/esm/components/insight/atomic-insight-tab/atomic-insight-tab.js +1 -1
- package/dist/esm/components/insight/atomic-insight-user-actions-modal/atomic-insight-user-actions-modal.js +1 -1
- package/dist/esm/components/insight/atomic-insight-user-actions-session/atomic-insight-user-actions-session.js +1 -1
- package/dist/esm/components/insight/atomic-insight-user-actions-timeline/atomic-insight-user-actions-timeline.js +1 -1
- package/dist/esm/components/ipx/atomic-ipx-button/atomic-ipx-button.js +1 -1
- package/dist/esm/components/ipx/atomic-ipx-embedded/atomic-ipx-embedded.js +1 -1
- package/dist/esm/components/ipx/atomic-ipx-modal/atomic-ipx-modal.js +1 -1
- package/dist/esm/components/ipx/atomic-ipx-recs-list/atomic-ipx-recs-list.js +1 -1
- package/dist/esm/components/ipx/atomic-ipx-refine-modal/atomic-ipx-refine-modal.js +1 -1
- package/dist/esm/components/ipx/atomic-ipx-refine-toggle/atomic-ipx-refine-toggle.js +1 -1
- package/dist/esm/components/ipx/atomic-ipx-result-link/atomic-ipx-result-link.tw.css.js +1 -1
- package/dist/esm/components/ipx/atomic-ipx-tab/atomic-ipx-tab.js +1 -1
- package/dist/esm/components/recommendations/atomic-recs-list/atomic-recs-list.js +1 -1
- package/dist/esm/components/recommendations/atomic-recs-result/atomic-recs-result.js +1 -1
- package/dist/esm/components/search/atomic-breadbox/atomic-breadbox.js +5 -5
- package/dist/esm/components/search/atomic-category-facet/atomic-category-facet.js +1 -1
- package/dist/esm/components/search/atomic-generated-answer/atomic-generated-answer.js +9 -1
- package/dist/esm/components/search/atomic-load-more-results/atomic-load-more-results.js +13 -2
- package/dist/esm/components/search/atomic-pager/atomic-pager.js +2 -12
- package/dist/esm/components/search/atomic-quickview-modal/atomic-quickview-modal.js +1 -1
- package/dist/esm/components/search/atomic-refine-modal/atomic-refine-modal.js +1 -1
- package/dist/esm/components/search/atomic-result/atomic-result.js +1 -1
- package/dist/esm/components/search/atomic-result-children/atomic-result-children.js +1 -1
- package/dist/esm/components/search/atomic-result-link/atomic-result-link.tw.css.js +1 -1
- package/dist/esm/components/search/atomic-result-section-actions/atomic-result-section-actions.js +1 -1
- package/dist/esm/components/search/atomic-result-section-badges/atomic-result-section-badges.js +1 -1
- package/dist/esm/components/search/atomic-result-section-bottom-metadata/atomic-result-section-bottom-metadata.js +1 -1
- package/dist/esm/components/search/atomic-result-section-children/atomic-result-section-children.js +1 -1
- package/dist/esm/components/search/atomic-result-section-emphasized/atomic-result-section-emphasized.js +1 -1
- package/dist/esm/components/search/atomic-result-section-excerpt/atomic-result-section-excerpt.js +1 -1
- package/dist/esm/components/search/atomic-result-section-title/atomic-result-section-title.js +1 -1
- package/dist/esm/components/search/atomic-result-section-title-metadata/atomic-result-section-title-metadata.js +1 -1
- package/dist/esm/components/search/atomic-result-section-visual/atomic-result-section-visual.js +1 -1
- package/dist/esm/components/search/atomic-result-table-placeholder/atomic-result-table-placeholder.js +1 -1
- package/dist/esm/components/search/atomic-search-box/atomic-search-box.js +1 -1
- package/dist/esm/components/search/atomic-smart-snippet/atomic-smart-snippet.tw.css.js +1 -1
- package/dist/esm/components/search/atomic-smart-snippet-feedback-modal/atomic-smart-snippet-feedback-modal.tw.css.js +1 -1
- package/dist/esm/components/search/atomic-smart-snippet-suggestions/atomic-smart-snippet-suggestions.tw.css.js +1 -1
- package/dist/esm/components/search/atomic-tab-manager/atomic-tab-manager.js +1 -1
- package/dist/esm/components/search/atomic-tab-manager/atomic-tab-manager.tw.css.js +1 -1
- package/dist/esm/components/search/facets/facet-segmented-value/facet-segmented-value.tw.css.js +1 -1
- package/dist/esm/global/environment.js +1 -1
- package/dist/esm/utils/coveo.tw.css.js +1 -1
- package/dist/esm/utils/tailwind.global.tw.css.js +1 -1
- package/dist/esm/versions.js +1 -1
- package/dist/lang/cs.json +1 -1
- package/dist/lang/da.json +1 -1
- package/dist/lang/de.json +1 -1
- package/dist/lang/dev.json +1 -1
- package/dist/lang/el.json +1 -1
- package/dist/lang/en.json +1 -1
- package/dist/lang/es.json +1 -1
- package/dist/lang/fi.json +1 -1
- package/dist/lang/fr.json +1 -1
- package/dist/lang/hu.json +1 -1
- package/dist/lang/id.json +1 -1
- package/dist/lang/it.json +1 -1
- package/dist/lang/ja.json +1 -1
- package/dist/lang/ko.json +1 -1
- package/dist/lang/nl.json +1 -1
- package/dist/lang/no.json +1 -1
- package/dist/lang/pl.json +1 -1
- package/dist/lang/pt-BR.json +1 -1
- package/dist/lang/pt.json +1 -1
- package/dist/lang/ru.json +1 -1
- package/dist/lang/sv.json +1 -1
- package/dist/lang/th.json +1 -1
- package/dist/lang/tr.json +1 -1
- package/dist/lang/zh-CN.json +1 -1
- package/dist/lang/zh-TW.json +1 -1
- package/dist/lang/zh.json +1 -1
- package/dist/types/components/commerce/atomic-commerce-pager/atomic-commerce-pager.d.ts +0 -2
- package/dist/types/components/common/atomic-agent-stream-of-thought/atomic-agent-stream-of-thought.d.ts +2 -1
- package/dist/types/components/common/atomic-ask-follow-up-input/atomic-ask-follow-up-input.d.ts +2 -0
- package/dist/types/components/common/atomic-generated-answer-thread-item/atomic-generated-answer-thread-item.d.ts +1 -0
- package/dist/types/components/common/atomic-modal/atomic-modal.d.ts +5 -0
- package/dist/types/components/common/generated-answer/generated-answer-controller.d.ts +1 -0
- package/dist/types/components/common/generated-answer/render-card-header.d.ts +2 -0
- package/dist/types/components/common/generated-answer/render-conversation-debug-header.d.ts +8 -0
- package/dist/types/components/common/pager/pager-buttons.d.ts +3 -3
- package/dist/types/components/insight/atomic-insight-pager/atomic-insight-pager.d.ts +0 -2
- package/dist/types/components/search/atomic-generated-answer/atomic-generated-answer.d.ts +5 -0
- package/dist/types/components/search/atomic-load-more-results/atomic-load-more-results.d.ts +12 -1
- package/dist/types/components/search/atomic-pager/atomic-pager.d.ts +0 -2
- package/package.json +13 -13
package/dist/esm/components/common/atomic-agent-stream-of-thought/atomic-agent-stream-of-thought.js
CHANGED
|
@@ -22,6 +22,10 @@ const stepLabelKeys = {
|
|
|
22
22
|
active: 'agent-generation-step-search',
|
|
23
23
|
completed: 'agent-generation-step-search-completed'
|
|
24
24
|
},
|
|
25
|
+
'searching-with-query': {
|
|
26
|
+
active: 'agent-generation-step-search-query',
|
|
27
|
+
completed: 'agent-generation-step-search-query-completed'
|
|
28
|
+
},
|
|
25
29
|
'thinking-after-search': {
|
|
26
30
|
active: 'agent-generation-step-analyzing-results',
|
|
27
31
|
completed: 'agent-generation-step-analyzing-results-completed'
|
|
@@ -52,7 +56,9 @@ class AtomicAgentStreamOfThought extends LitElement {
|
|
|
52
56
|
}
|
|
53
57
|
renderStep(step) {
|
|
54
58
|
const labelKey = 'active' === step.status ? stepLabelKeys[step.type].active : stepLabelKeys[step.type].completed;
|
|
55
|
-
const label = this.i18n.t(labelKey
|
|
59
|
+
const label = 'searching-with-query' === step.type ? this.i18n.t(labelKey, {
|
|
60
|
+
query: step.searchQuery
|
|
61
|
+
}) : this.i18n.t(labelKey);
|
|
56
62
|
return html`
|
|
57
63
|
<div class="step">
|
|
58
64
|
${'active' === step.status ? this.renderSpinner() : this.renderCheckmark()}
|
|
@@ -65,7 +71,9 @@ class AtomicAgentStreamOfThought extends LitElement {
|
|
|
65
71
|
if (0 === resolvedSteps.length) return nothing;
|
|
66
72
|
const step = resolvedSteps[resolvedSteps.length - 1];
|
|
67
73
|
const labelKey = stepLabelKeys[step.type].completed;
|
|
68
|
-
const label = this.i18n.t(labelKey
|
|
74
|
+
const label = 'searching-with-query' === step.type ? this.i18n.t(labelKey, {
|
|
75
|
+
query: step.searchQuery
|
|
76
|
+
}) : this.i18n.t(labelKey);
|
|
69
77
|
return html`
|
|
70
78
|
<button
|
|
71
79
|
class="collapsed-timeline-summary"
|
|
@@ -179,16 +187,38 @@ AtomicAgentStreamOfThought = _ts_decorate([
|
|
|
179
187
|
], AtomicAgentStreamOfThought);
|
|
180
188
|
function resolveSteps(steps) {
|
|
181
189
|
let searchWasPerformed = false;
|
|
182
|
-
return steps.
|
|
183
|
-
let type;
|
|
190
|
+
return steps.flatMap((step)=>{
|
|
184
191
|
if ('searching' === step.name) {
|
|
185
192
|
searchWasPerformed = true;
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
193
|
+
const searchToolCalls = step.toolCalls?.filter((tc)=>'search' === tc.type);
|
|
194
|
+
if (searchToolCalls?.length) return searchToolCalls.map((tc)=>{
|
|
195
|
+
const searchQuery = tc.toolCallArgs && 'q' in tc.toolCallArgs ? tc.toolCallArgs.q : void 0;
|
|
196
|
+
if (searchQuery) return {
|
|
197
|
+
type: 'searching-with-query',
|
|
198
|
+
status: tc.status,
|
|
199
|
+
searchQuery
|
|
200
|
+
};
|
|
201
|
+
return {
|
|
202
|
+
type: 'searching',
|
|
203
|
+
status: tc.status
|
|
204
|
+
};
|
|
205
|
+
});
|
|
206
|
+
return {
|
|
207
|
+
type: 'searching',
|
|
208
|
+
status: step.status
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
{
|
|
212
|
+
if ('answering' === step.name) return {
|
|
213
|
+
type: 'answering',
|
|
214
|
+
status: step.status
|
|
215
|
+
};
|
|
216
|
+
const type = searchWasPerformed ? 'thinking-after-search' : 'thinking-before-search';
|
|
217
|
+
return {
|
|
218
|
+
type,
|
|
219
|
+
status: step.status
|
|
220
|
+
};
|
|
221
|
+
}
|
|
192
222
|
});
|
|
193
223
|
}
|
|
194
224
|
export { AtomicAgentStreamOfThought, resolveSteps };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { css } from "lit";
|
|
2
|
-
const styles = css`/*! tailwindcss v4.3.
|
|
2
|
+
const styles = css`/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-font-weight:initial;--tw-outline-style:solid}}}:host{display:block}@keyframes spin{to{transform:rotate(1turn)}}.timeline{font-size:var(--atomic-text-sm);gap:var(--spacing,.25rem);line-height:var(--tw-leading,var(--text-sm--line-height,1.42857));padding-block:var(--spacing,.25rem);--tw-font-weight:var(--font-weight-light,300);color:var(--atomic-neutral-dark);display:flex;flex-direction:column;font-weight:var(--font-weight-light,300)}.collapsed-timeline-summary,.step{align-items:center;display:flex;gap:calc(var(--spacing,.25rem)*2)}.collapsed-timeline-summary{cursor:pointer;--tw-border-style:none;background-color:#0000;border-style:none;color:inherit;font:inherit;padding:0;text-align:left}.collapsed-timeline-summary:focus-visible{border-radius:var(--atomic-border-radius);outline-color:var(--atomic-primary);outline-offset:2px;outline-style:var(--tw-outline-style);outline-width:2px}.toggle-button{align-items:center;cursor:pointer;gap:var(--spacing,.25rem);--tw-border-style:none;background-color:#0000;border-style:none;color:inherit;display:flex;font:inherit;padding:0}.toggle-button:focus-visible{border-radius:var(--atomic-border-radius);outline-color:var(--atomic-primary);outline-offset:2px;outline-style:var(--tw-outline-style);outline-width:2px}.step-icon{align-items:center;display:flex;flex-shrink:0;height:14px;justify-content:center;width:14px}.checkmark-icon{color:var(--atomic-success,#1b8057)}.spinner{animation:spin .8s linear infinite;border:2px solid;border-radius:3.40282e+38px;border-top:2px solid #0000;display:inline-block;height:12px;width:12px}.chevron{align-items:center;display:flex;margin-left:var(--spacing,.25rem);transition:transform .2s}.chevron-up{transform:rotate(180deg)}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}`;
|
|
3
3
|
const atomic_agent_stream_of_thought_tw_css = styles;
|
|
4
4
|
export default atomic_agent_stream_of_thought_tw_css;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LitElement, html } from "lit";
|
|
1
|
+
import { LitElement, html, nothing } from "lit";
|
|
2
2
|
import { customElement, property, state } from "lit/decorators.js";
|
|
3
3
|
import { createRef, ref } from "lit/directives/ref.js";
|
|
4
4
|
import { renderButton } from "../button.js";
|
|
@@ -13,15 +13,20 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
13
13
|
function _ts_metadata(k, v) {
|
|
14
14
|
if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
|
|
15
15
|
}
|
|
16
|
+
const MAX_FOLLOW_UP_QUESTION_LENGTH = 300;
|
|
16
17
|
class AtomicAskFollowUpInput extends LitElement {
|
|
18
|
+
get isOverCharacterLimit() {
|
|
19
|
+
return this.characterCount > MAX_FOLLOW_UP_QUESTION_LENGTH;
|
|
20
|
+
}
|
|
17
21
|
async handleSubmit() {
|
|
18
22
|
const input = this.textAreaRef.value;
|
|
19
23
|
if (!input || this.isSubmitting) return;
|
|
20
24
|
const inputValue = input.value.trim();
|
|
21
|
-
if (!inputValue || this.submitButtonDisabled) return;
|
|
25
|
+
if (!inputValue || this.submitButtonDisabled || this.isOverCharacterLimit) return;
|
|
22
26
|
this.isSubmitting = true;
|
|
23
27
|
try {
|
|
24
28
|
input.value = '';
|
|
29
|
+
this.characterCount = 0;
|
|
25
30
|
this.clearReplicaText();
|
|
26
31
|
this.collapseTextArea();
|
|
27
32
|
await this.askFollowUp(inputValue);
|
|
@@ -30,6 +35,7 @@ class AtomicAskFollowUpInput extends LitElement {
|
|
|
30
35
|
}
|
|
31
36
|
}
|
|
32
37
|
handleInput() {
|
|
38
|
+
this.characterCount = this.textAreaRef.value?.value.trim().length ?? 0;
|
|
33
39
|
this.expandTextArea();
|
|
34
40
|
this.syncTextWithReplica();
|
|
35
41
|
}
|
|
@@ -64,7 +70,7 @@ class AtomicAskFollowUpInput extends LitElement {
|
|
|
64
70
|
return html`
|
|
65
71
|
<div
|
|
66
72
|
part="input-container"
|
|
67
|
-
class="relative flex rounded-md border border-neutral"
|
|
73
|
+
class="relative flex rounded-md border ${this.isOverCharacterLimit ? 'border-error' : 'border-neutral'}"
|
|
68
74
|
>
|
|
69
75
|
<div part="textarea-expander" class="grid grow overflow-hidden">
|
|
70
76
|
<textarea
|
|
@@ -77,6 +83,8 @@ class AtomicAskFollowUpInput extends LitElement {
|
|
|
77
83
|
@blur=${this.collapseTextArea}
|
|
78
84
|
placeholder=${this.i18n.t('ask-follow-up')}
|
|
79
85
|
aria-label=${this.i18n.t('ask-follow-up')}
|
|
86
|
+
aria-invalid=${this.isOverCharacterLimit}
|
|
87
|
+
aria-describedby=${this.isOverCharacterLimit ? 'follow-up-validation-message' : nothing}
|
|
80
88
|
></textarea>
|
|
81
89
|
</div>
|
|
82
90
|
${renderButton({
|
|
@@ -85,7 +93,7 @@ class AtomicAskFollowUpInput extends LitElement {
|
|
|
85
93
|
part: 'submit-button',
|
|
86
94
|
class: 'absolute right-1 bottom-1 flex h-8 w-8 items-center justify-center rounded-md disabled:bg-primary/60 disabled:opacity-100',
|
|
87
95
|
type: 'button',
|
|
88
|
-
disabled: this.submitButtonDisabled,
|
|
96
|
+
disabled: this.submitButtonDisabled || this.isOverCharacterLimit,
|
|
89
97
|
ariaLabel: this.i18n.t('submit-follow-up'),
|
|
90
98
|
onClick: ()=>this.handleSubmit()
|
|
91
99
|
}
|
|
@@ -102,10 +110,31 @@ class AtomicAskFollowUpInput extends LitElement {
|
|
|
102
110
|
/>
|
|
103
111
|
</svg>`)}
|
|
104
112
|
</div>
|
|
113
|
+
<div
|
|
114
|
+
part="input-footer"
|
|
115
|
+
class="mt-1 flex min-h-5 items-start justify-between gap-2 px-1 text-sm"
|
|
116
|
+
>
|
|
117
|
+
<span
|
|
118
|
+
id="follow-up-validation-message"
|
|
119
|
+
part="validation-message"
|
|
120
|
+
class="text-error"
|
|
121
|
+
aria-live="polite"
|
|
122
|
+
>
|
|
123
|
+
${this.isOverCharacterLimit ? this.i18n.t('follow-up-input-too-long', {
|
|
124
|
+
max: MAX_FOLLOW_UP_QUESTION_LENGTH
|
|
125
|
+
}) : ''}
|
|
126
|
+
</span>
|
|
127
|
+
<span
|
|
128
|
+
part="character-counter"
|
|
129
|
+
class="shrink-0 ${this.isOverCharacterLimit ? 'text-error' : 'text-neutral-dark'}"
|
|
130
|
+
>
|
|
131
|
+
${this.characterCount} / ${MAX_FOLLOW_UP_QUESTION_LENGTH}
|
|
132
|
+
</span>
|
|
133
|
+
</div>
|
|
105
134
|
`;
|
|
106
135
|
}
|
|
107
136
|
constructor(...args){
|
|
108
|
-
super(...args), this.submitButtonDisabled = false, this.isSubmitting = false, this.textAreaRef = createRef();
|
|
137
|
+
super(...args), this.submitButtonDisabled = false, this.isSubmitting = false, this.characterCount = 0, this.textAreaRef = createRef();
|
|
109
138
|
}
|
|
110
139
|
}
|
|
111
140
|
AtomicAskFollowUpInput.styles = atomic_ask_follow_up_input_tw_css;
|
|
@@ -131,6 +160,10 @@ _ts_decorate([
|
|
|
131
160
|
state(),
|
|
132
161
|
_ts_metadata("design:type", Boolean)
|
|
133
162
|
], AtomicAskFollowUpInput.prototype, "isSubmitting", void 0);
|
|
163
|
+
_ts_decorate([
|
|
164
|
+
state(),
|
|
165
|
+
_ts_metadata("design:type", Number)
|
|
166
|
+
], AtomicAskFollowUpInput.prototype, "characterCount", void 0);
|
|
134
167
|
AtomicAskFollowUpInput = _ts_decorate([
|
|
135
168
|
customElement('atomic-ask-follow-up-input'),
|
|
136
169
|
withTailwindStyles
|
package/dist/esm/components/common/atomic-ask-follow-up-input/atomic-ask-follow-up-input.tw.css.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { css } from "lit";
|
|
2
|
-
const styles = css`/*! tailwindcss v4.3.
|
|
2
|
+
const styles = css`/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}[part=input-container]{min-height:calc(2.5rem + 2px)}[part=textarea-expander]:after{content:attr(data-replicated-value) " ";visibility:hidden}[part=textarea-expander]{margin-right:calc(var(--spacing,.25rem)*10)}[part=textarea-expander]:after,[part=textarea-expander]>[part=input-field]{-ms-overflow-style:none;scrollbar-width:none}:is([part=textarea-expander]>[part=input-field])::-webkit-scrollbar{display:none}[part=textarea-expander]:after,[part=textarea-expander]>[part=input-field]{background-color:#0000;overflow:hidden;padding-block:calc(var(--spacing,.25rem)*2);padding-inline:calc(var(--spacing,.25rem)*4);resize:none;white-space:nowrap}:is([part=textarea-expander]>[part=input-field])::placeholder{color:var(--atomic-neutral-dark)}[part=textarea-expander]:after,[part=textarea-expander]>[part=input-field]{--tw-outline-style:none;grid-area:1/1/2/2;min-height:2.5rem;outline-style:none;padding-right:3rem}[part=textarea-expander].expanded{background-color:var(--atomic-background);border-color:var(--atomic-primary);border-radius:var(--atomic-border-radius-md);border-style:var(--tw-border-style);border-width:1px;--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color:var(--atomic-primary);bottom:-1px;left:-1px;margin-right:0;overflow:visible;position:absolute;right:-1px;z-index:10}[part=textarea-expander].expanded:after,[part=textarea-expander].expanded>[part=input-field]{max-height:8rem;overflow-y:auto;white-space:pre-wrap}[part=submit-button]{z-index:11}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}`;
|
|
3
3
|
const atomic_ask_follow_up_input_tw_css = styles;
|
|
4
4
|
export default atomic_ask_follow_up_input_tw_css;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { css } from "lit";
|
|
2
|
-
const styles = css`/*! tailwindcss v4.3.
|
|
2
|
+
const styles = css`/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */:host{display:contents;position:relative}[part=citation]{--height:2.2em;--index-height:1.1em;--max-citation-width:400px;height:var(--height);max-width:var(--max-citation-width)}[part=citation-popover]{--popover-width:350px;width:var(--popover-width)}[part=citation-popover] p{--font-size:var(--atomic-text-sm);font-size:var(--font-size);--line-height:calc(var(--font-size)*var(--atomic-line-height-ratio));line-height:var(--line-height)}`;
|
|
3
3
|
const atomic_citation_tw_css = styles;
|
|
4
4
|
export default atomic_citation_tw_css;
|
|
@@ -82,11 +82,9 @@ class AtomicFocusTrap extends LightDomMixin(LitElement) {
|
|
|
82
82
|
}
|
|
83
83
|
constructor(...args){
|
|
84
84
|
super(...args), this.active = false, this.shouldHideSelf = true, this.scope = document.body, this.hiddenElements = [], this.onFocusChanged = (e)=>{
|
|
85
|
-
const elementIsPartOfHost = (focusedElement)=>isAncestorOf(this, focusedElement);
|
|
86
|
-
const elementIsPartOfScope = (focusedElement)=>isAncestorOf(this.scope, focusedElement);
|
|
87
85
|
if (!e.target || !this.active) return;
|
|
88
86
|
const focusedElement = getFocusedElement();
|
|
89
|
-
if (focusedElement && (
|
|
87
|
+
if (focusedElement && isAncestorOf(this, focusedElement)) return;
|
|
90
88
|
getFirstFocusableDescendant(this)?.focus();
|
|
91
89
|
};
|
|
92
90
|
}
|
|
@@ -82,21 +82,15 @@ class AtomicGeneratedAnswerFeedbackModal extends LitElement {
|
|
|
82
82
|
}
|
|
83
83
|
renderHeader() {
|
|
84
84
|
return html`
|
|
85
|
-
<
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
class=${multiClassMap({
|
|
89
|
-
'flex w-full items-center justify-between': true
|
|
90
|
-
})}
|
|
91
|
-
>
|
|
92
|
-
<h1>
|
|
93
|
-
<span>${this.bindings.i18n.t('feedback-modal-title')}</span>
|
|
94
|
-
<span class=${multiClassMap({
|
|
85
|
+
<h1 slot="header" part="modal-header">
|
|
86
|
+
<span>${this.bindings.i18n.t('feedback-modal-title')}</span>
|
|
87
|
+
<span class=${multiClassMap({
|
|
95
88
|
'hide ml-0.5': true
|
|
96
89
|
})}>
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
90
|
+
${this.bindings.i18n.t('additional-feedback')}
|
|
91
|
+
</span>
|
|
92
|
+
</h1>
|
|
93
|
+
<div slot="header-actions" class="contents">
|
|
100
94
|
${renderIconButton({
|
|
101
95
|
props: {
|
|
102
96
|
style: 'text-transparent',
|
|
@@ -403,7 +397,7 @@ AtomicGeneratedAnswerFeedbackModal.options = [
|
|
|
403
397
|
correspondingAnswer: 'readable'
|
|
404
398
|
}
|
|
405
399
|
];
|
|
406
|
-
AtomicGeneratedAnswerFeedbackModal.styles = css`/*! tailwindcss v4.3.
|
|
400
|
+
AtomicGeneratedAnswerFeedbackModal.styles = css`/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */[part=generated-answer-feedback-modal]::part(container){min-width:calc(var(--spacing,.25rem)*170)}[part=generated-answer-feedback-modal]::part(body),[part=generated-answer-feedback-modal]::part(footer),[part=generated-answer-feedback-modal]::part(header){max-width:calc(var(--spacing,.25rem)*170)}@media not all and (min-width:1024px){[part=generated-answer-feedback-modal]::part(container){min-width:100%;width:auto}[part=generated-answer-feedback-modal]::part(body),[part=generated-answer-feedback-modal]::part(footer),[part=generated-answer-feedback-modal]::part(header){max-width:100%}[part=generated-answer-feedback-modal] [part=buttons] .required-label{font-size:var(--atomic-text-sm);line-height:var(--tw-leading,var(--text-sm--line-height,1.42857))}[part=generated-answer-feedback-modal] [part=form] .answer-evaluation{display:block}[part=generated-answer-feedback-modal] [part=form] .options{margin-top:calc(var(--spacing,.25rem)*2)}[part=generated-answer-feedback-modal] [part=modal-header] .hide{display:none}}[part=form] .active{background-color:var(--atomic-primary-background);border-color:var(--atomic-primary-light);color:var(--atomic-primary-light)}[part=form] .text-error-red{color:var(--atomic-inline-code)}`;
|
|
407
401
|
_ts_decorate([
|
|
408
402
|
property({
|
|
409
403
|
type: Boolean,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { css } from "lit";
|
|
2
|
-
const styles = css`/*! tailwindcss v4.3.
|
|
2
|
+
const styles = css`/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */:host{display:inline}a{color:var(--atomic-primary);text-decoration-line:none}a [part=answer-link-text]{text-decoration-line:underline}.icon-wrapper{display:inline-block;height:1em;vertical-align:text-bottom;width:1em}`;
|
|
3
3
|
const atomic_generated_answer_inline_link_tw_css = styles;
|
|
4
4
|
export default atomic_generated_answer_inline_link_tw_css;
|
|
@@ -10,6 +10,10 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
10
10
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
11
11
|
}
|
|
12
12
|
class AtomicGeneratedAnswerThreadItem extends LitElement {
|
|
13
|
+
connectedCallback() {
|
|
14
|
+
super.connectedCallback();
|
|
15
|
+
this.setAttribute('role', 'listitem');
|
|
16
|
+
}
|
|
13
17
|
willUpdate() {
|
|
14
18
|
if (!this.hasUpdated) this.isExpanded = this.disableCollapse ? true : this.isExpanded;
|
|
15
19
|
}
|
|
@@ -85,7 +89,7 @@ class AtomicGeneratedAnswerThreadItem extends LitElement {
|
|
|
85
89
|
});
|
|
86
90
|
const timelineConnectorClasses = "relative h-full w-px bg-neutral transition-colors duration-150 group-hover:bg-neutral-dark before:absolute before:left-0 before:top-[-8px] before:h-[8px] before:w-px before:bg-neutral before:transition-colors before:duration-150 group-hover:before:bg-neutral-dark before:content-[''] after:absolute after:bottom-[-8px] after:left-0 after:h-[8px] after:w-px after:bg-neutral after:transition-colors after:duration-150 group-hover:after:bg-neutral-dark after:content-['']";
|
|
87
91
|
return html`
|
|
88
|
-
<
|
|
92
|
+
<div class="grid min-w-0">
|
|
89
93
|
<div class="flex min-w-0 items-center gap-3">
|
|
90
94
|
<div class=${timelineDotToggleClasses}>
|
|
91
95
|
${when(this.showTimelineDot, ()=>html`
|
|
@@ -131,7 +135,7 @@ class AtomicGeneratedAnswerThreadItem extends LitElement {
|
|
|
131
135
|
</div>
|
|
132
136
|
</div>
|
|
133
137
|
</div>
|
|
134
|
-
</
|
|
138
|
+
</div>
|
|
135
139
|
`;
|
|
136
140
|
}
|
|
137
141
|
constructor(...args){
|
|
@@ -55,7 +55,7 @@ class AtomicModal extends InitializeBindingsMixin(LitElement) {
|
|
|
55
55
|
.source=${this.source}
|
|
56
56
|
.container=${this.container ?? this}
|
|
57
57
|
${ref(this.focusTrap)}
|
|
58
|
-
.scope=${this.scope}
|
|
58
|
+
.scope=${this.scope ?? this.bindings?.interfaceElement ?? document.body}
|
|
59
59
|
>
|
|
60
60
|
${this.renderContent()}
|
|
61
61
|
</atomic-focus-trap>
|
|
@@ -143,9 +143,11 @@ class AtomicModal extends InitializeBindingsMixin(LitElement) {
|
|
|
143
143
|
'flex justify-between w-full max-w-lg text-xl': true,
|
|
144
144
|
'font-bold': this.fullscreen
|
|
145
145
|
}))}
|
|
146
|
-
id=${this.headerId}
|
|
147
146
|
>
|
|
148
|
-
<
|
|
147
|
+
<div id=${this.headerId} class="contents">
|
|
148
|
+
<slot name="header"></slot>
|
|
149
|
+
</div>
|
|
150
|
+
<slot name="header-actions"></slot>
|
|
149
151
|
</div>
|
|
150
152
|
</header>
|
|
151
153
|
<hr part="header-ruler" class="border-t border-neutral" />
|
|
@@ -204,7 +206,7 @@ class AtomicModal extends InitializeBindingsMixin(LitElement) {
|
|
|
204
206
|
};
|
|
205
207
|
}
|
|
206
208
|
}
|
|
207
|
-
AtomicModal.styles = css`/*! tailwindcss v4.3.
|
|
209
|
+
AtomicModal.styles = css`/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */@keyframes scaleUp{0%{opacity:0;transform:scale(.7)translateY(150vh)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes slideDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(150vh)}}article.animate-open{animation:var(--animate-scale-up-modal,scaleUp .5s cubic-bezier(.165,.84,.44,1) forwards)}article.animate-close{animation:var(--animate-slide-down-modal,slideDown .5s linear forwards)}.grid-template-modal{grid-template:". . ."1fr".modal."". . ."3fr/1fr min(30rem,100%) 1fr}`;
|
|
208
210
|
_ts_decorate([
|
|
209
211
|
state(),
|
|
210
212
|
_ts_metadata("design:type", "u" < typeof AnyBindings ? Object : AnyBindings)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { css } from "lit";
|
|
2
|
-
const styles = css`/*! tailwindcss v4.3.
|
|
2
|
+
const styles = css`/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */@layer components{:is(:is(atomic-product-rating,atomic-result-rating) .text-rating-icon-active,:is(atomic-product-rating,atomic-result-rating) .text-rating-icon-inactive) svg path{stroke:var(--atomic-rating-icon-outline-color,none)}}`;
|
|
3
3
|
const atomic_rating_tw_css = styles;
|
|
4
4
|
export default atomic_rating_tw_css;
|