.composer-ai-helper-modal { .combobox, .text-preview, .ai-helper-waiting-selection { margin: 10px 0 10px 0; } .text-preview, .inline-diff { ins { background-color: var(--success-low); text-decoration: underline; } del { background-color: var(--danger-low); text-decoration: line-through; } .preview-area { height: 200px; } } &__old-value { background-color: var(--danger-low); color: var(--danger); margin-bottom: 1rem; } &__new-value { background-color: var(--success-low); color: var(--success); } .selection-hint { font-size: var(--font-down-2); margin-bottom: 20px; } } .topic-above-suggested-outlet.related-topics { margin: 4.5em 0 1em; } .ai-helper-context-menu { background: var(--secondary); box-shadow: var(--shadow-card); padding: 0.25rem; max-width: 25rem; border: 1px solid var(--primary-low); list-style: none; z-index: 999; &.out-of-bounds { visibility: hidden; pointer-events: none; } ul { margin: 0; list-style: none; } .btn { justify-content: left; text-align: left; background: none; width: 100%; border-radius: 0; margin: 0; &:focus, &:hover { color: var(--primary); background: var(--d-hover); .d-icon { color: var(--primary-medium); } } } .d-button-label { color: var(--primary-very-high); } &__options { padding: 0.25rem; } &__loading { .dot-falling { margin-inline: 1rem; margin-left: 1.5rem; } li { display: flex; padding: 0.5rem; gap: 1rem; justify-content: flex-start; align-items: center; } } &__resets { display: flex; align-items: center; flex-flow: row wrap; } &__review { display: flex; align-items: center; flex-flow: row wrap; } } .d-editor-input.loading { animation: loading-text 1.5s infinite linear; } @keyframes loading-text { 0% { color: var(--primary); } 50% { color: var(--tertiary); } 100% { color: var(--primary); } } // AI Typing indicator (taken from: https://github.com/nzbin/three-dots) .dot-falling { position: relative; left: -9999px; width: 10px; height: 10px; border-radius: 5px; background-color: var(--tertiary); color: var(--tertiary); box-shadow: 9999px 0 0 0 var(--tertiary); animation: dot-falling 1s infinite linear; animation-delay: 0.1s; } .dot-falling::before, .dot-falling::after { content: ""; display: inline-block; position: absolute; top: 0; } .dot-falling::before { width: 10px; height: 10px; border-radius: 5px; background-color: var(--tertiary); color: var(--tertiary); animation: dot-falling-before 1s infinite linear; animation-delay: 0s; } .dot-falling::after { width: 10px; height: 10px; border-radius: 5px; background-color: var(--tertiary); color: var(--tertiary); animation: dot-falling-after 1s infinite linear; animation-delay: 0.2s; } @keyframes dot-falling { 0% { box-shadow: 9999px -15px 0 0 rgba(152, 128, 255, 0); } 25%, 50%, 75% { box-shadow: 9999px 0 0 0 var(--tertiary); } 100% { box-shadow: 9999px 15px 0 0 rgba(152, 128, 255, 0); } } @keyframes dot-falling-before { 0% { box-shadow: 9984px -15px 0 0 rgba(152, 128, 255, 0); } 25%, 50%, 75% { box-shadow: 9984px 0 0 0 var(--tertiary); } 100% { box-shadow: 9984px 15px 0 0 rgba(152, 128, 255, 0); } } @keyframes dot-falling-after { 0% { box-shadow: 10014px -15px 0 0 rgba(152, 128, 255, 0); } 25%, 50%, 75% { box-shadow: 10014px 0 0 0 var(--tertiary); } 100% { box-shadow: 10014px 15px 0 0 rgba(152, 128, 255, 0); } } // Suggest Titles Related .suggest-titles-button { position: absolute; top: 1px; right: 1px; background: none; border: none; } .suggestion-button { .d-icon-spinner { animation: spin 1s linear infinite; } } .suggest-tags-button, .suggest-category-button { display: block; align-self: baseline; border: 1px solid var(--primary-medium); border-left: none; background: none; } .ai-suggestions-menu { list-style: none; margin-left: 0; position: absolute; right: 0; top: 1.5rem; max-width: 25rem; width: unset; z-index: 999; &__errors { background: var(--danger); padding: 0.25rem 1em; color: var(--secondary); } } .category-input:has(.ai-suggestions-menu) { position: relative; } .suggest-tags-button + .ai-suggestions-menu { top: 4.25rem; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(359deg); } }