/** * * Copyright 2023-present InspectorRAGet Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * **/ @use '@carbon/react/scss/spacing' as *; @use '@carbon/colors' as *; .line { display: flex; flex-direction: row-reverse; justify-content: flex-start; align-items: flex-end; margin-bottom: 1.25rem; gap: 24px; } .assistantLine { justify-content: flex-start; flex-direction: row; } .latestResponse { margin-bottom: $spacing-12; } .baloon { display: flex; flex-direction: column; border-radius: 1rem; border-bottom-right-radius: 0; background: var(--cds-layer-01); width: 80%; border: 2px solid transparent; transition: border-color 0.1s ease; } .baloonSelected { border-color: var(--cds-border-interactive); } .assistantBaloon { border-bottom-left-radius: 0; border-bottom-right-radius: 1rem; } .toolCallBaloon { border-bottom-left-radius: 0; border-bottom-right-radius: 1rem; padding: $spacing-03; } .toolResponseBaloon { border-bottom-left-radius: 0; border-bottom-right-radius: 1rem; padding: $spacing-03; } // Footer row at the bottom of every balloon. // Left side is reserved for future additions; status+retries are grouped on the right. .balloonFooter { display: flex; align-items: center; padding: $spacing-02 $spacing-03; border-top: 1px solid var(--cds-border-subtle-01); min-height: 28px; } .balloonFooterRight { margin-left: auto; display: flex; align-items: center; gap: $spacing-03; } .statusBadge { display: inline-flex; align-items: center; gap: $spacing-02; font-size: 0.75rem; font-weight: 600; // DefinitionTooltip renders an inner trigger button — make it flex so the // icon and label sit side-by-side, and inherit the color from the wrapper. :global(.cds--definition-term) { display: inline-flex; align-items: center; gap: $spacing-02; font-size: inherit; font-weight: inherit; color: inherit; } } .statusBadgePass { color: var(--cds-support-success); } .statusBadgeWarn { color: var(--cds-support-warning); } .statusBadgeFail { color: var(--cds-support-error); } // Retries modal content .retriesModalContent { display: flex; flex-direction: column; gap: $spacing-05; } .retryAttempt { display: flex; flex-direction: column; gap: $spacing-03; padding: $spacing-04; background: var(--cds-layer-01); border-radius: 4px; } .retryAttemptHeader { font-size: 0.875rem; font-weight: 600; color: var(--cds-text-secondary); } .retryError { display: flex; flex-direction: column; gap: $spacing-02; } .retryErrorLabel { font-size: 0.75rem; font-weight: 600; color: var(--cds-support-error); } .retryErrorText { font-size: 0.875rem; color: var(--cds-text-primary); } .message { font-size: 16px; line-height: 22px; margin: $spacing-04 $spacing-05; min-width: 120px; } .assistantResponse { display: flex; flex-direction: column; } // Each tool call card inside an assistant balloon; top border separates adjacent calls .toolCallItem { border-top: 1px solid var(--cds-border-subtle-01); } .toolCall { display: flex; flex-direction: column; row-gap: $spacing-03; } .toolCall :global(.cds--snippet--multi) { min-inline-size: 100%; max-inline-size: 100%; padding: 0 0 $spacing-03; background-color: var(--cds-background); } .toolCall :global(.cds--snippet-container) { padding: $spacing-03; } .toolResponse { display: flex; flex-direction: column; row-gap: $spacing-03; } .toolResponse :global(.cds--snippet--multi) { max-inline-size: 100%; padding: 0 0 $spacing-03; background-color: var(--cds-background); } .toolResponse :global(.cds--snippet-container) { padding: $spacing-03; } .viewDocumentsButton { border: 1px solid var(--cds-background-inverse); border-radius: 50%; width: 32px; height: 32px; margin: -10px auto -16px; background: var(--cds-background); cursor: pointer; display: flex; justify-content: center; align-items: center; } .viewDocumentsIcon { color: var(--cds-background-inverse); } .toolbar { border: none; cursor: pointer; display: flex; justify-content: flex-end; margin: 0 $spacing-05; align-items: baseline; } .btnActive { background-color: var(--cds-background-selected); } .superscript { vertical-align: super; font-size: 12px; margin-left: $spacing-01; } .citations { margin: 0 $spacing-05; } .feedbackContainer { width: 500px; display: flex; flex-direction: column; margin: 0 $spacing-05 $spacing-03; align-self: flex-start; row-gap: $spacing-03; } .feedbackMetricContainer { display: flex; justify-content: space-between; align-items: center; } .feedbackMetricDescription { display: flex; column-gap: $spacing-02; } .feedbackMetricValues { margin-left: auto; align-self: flex-end; }