mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-27 05:38:51 +01:00
* progress on settings refactor * fix(helpers.js): replace fs.rmdirSync with fs.rm to delete node_modules directory recursively fix(packages.js): delete package-lock.json if it exists before running the script * feat(CrossIcon.tsx): add CrossIcon component * wip: refactor Options for modularity into higher order components, OptionsBar > ModelSelect/Settings * refactor: import more from utils/index, including cardStyle used by model select/settings * refactor(AnthropicOptions): refactor to new format, OpenAI: reduce format to name of endpoint * refactor(AnthropicSettings): refactor to new format, match defaults to API docs * fix: google and anthropic defaults * refactor(conversation/submission atoms): add typing, remove unused code * chore(types.ts): add missing type definitions for TMessages, TMessagesAtom, TConversationAtom, and ModelSelectProps feat(types.ts): make endpoint property nullable in TSubmission, TEndpointOption, TConversation, and TPreset types * refactor(ChatGPT): refactor to new format, add omit settings logic * refactor(EndpointSettings/BingAI): new dir structure and format BingAI options/settings to new * fix: update useUpdateTokenCountMutation to accept an object with a 'text' property instead of a string * fix(endpoints): ensure expected behaviors for preset dialogs * chore(index.ts): add defaultTextProps to utils/index.ts for use in settings components * chore(index.ts): add optionText to utils/index.ts for use in settings components * wip: refactor google settings * wip: progress with Google refactor, needs AdditionalButtons handling and global state setters * refactor(OptionsBar.tsx): The setOption function has been refactored to use the useSetOptions custom hook for setting conversation options. * chore(Anthropic.tsx, BingAI.tsx, Google.tsx, OpenAI.tsx): adjust height of container div in Settings component; chore(Examples.tsx): adjust height in Examples component * refactor(Google): complete google refactor feat(client): add new component PopoverButtons for displaying popover buttons in EndpointPopover feat(data-provider): add types for PopoverButton and EndpointOptionsPopoverProps * fix(OptionsBar.tsx): add useEffect hook to handle opacity class based on messagesTree and advancedMode fix(style.css): rename class from 'openAIOptions-simple-container' to 'options-bar' and update references * refactor(Plugins/OptionsBar): complete refactor of Plugins Select options, consolidate logic from TextChat to OptionsBar * fix(Plugins.tsx): filter lastSelectedTools to remove any tools that are not in the current tools list fix(useSetOptions.ts): remove unnecessary empty line * feat(useSetOptions.ts): add setAgentOption function to update agentOptions in conversation state feat(types.ts): add setAgentOption function to UseSetOptions type * refactor(Settings/Plugins): refactor to new format, refactor(OptionHover): use same component for all endpoints * refactor(OptionHover.tsx): refactor types object to use nested objects for openAI and gptPlugins feat(OptionHover.tsx): add openAI object with specific properties for openAI configuration * refactor(AgentSettings): new format, feat(types.ts): add TAgentOptions type for defining agent options in a conversation * feat(PopoverButtons.tsx): add support for GPT plugin settings button feat(Plugins.tsx): create PluginsView component for displaying plugin settings feat(optionSettings.ts): add showAgentSettings atom for controlling agent settings visibility * feat(client): add support for PluginsSettings in Input/Settings component fix(client): change import path for PluginsSettings in Input/Settings component * refactor(Settings/Plugins): complete refactor, store: refactor to TS, refactor: import defaultTextPropsLabel from utils * feat(EndpointSettings, AgentSettings, Anthropic, Google, types.ts): Add support for Recoil state management and useRecoilValue hook; Pass models from endpointsConfig to various components; Add TModels type and update ModelSelectProps type. fix(AgentSettings, Anthropic, Google, GoogleView, Plugins, OpenAI, Settings.tsx): Change import statements for ModelSelectProps from librechat-data-provider; Add models as a parameter to various components; Add models prop to PluginsView, Settings, and other components. * refactor(EditPresetDialog.jsx): update import statements for Examples and AgentSettings components feat(Settings/index.ts): add export statements for Examples and AgentSettings components * chore(package.json): update eslint-plugin-import to version 2.28.0 * fix(eslint): dependency cycle rule is now working * fix: dependency cycle errors and type errors * refactor(EditPresetDialog.jsx): update import path for DialogTemplate component refactor(NewConversationMenu/index.jsx): update import path for DialogTemplate component refactor(ExportModel.jsx): update import path for DialogTemplate component * refactor: rename NewConversationMenu to EndpointMenu * style: mobile and desktop optimizations * chore: eslint changes * chore(eslintrc.js): update eslint configuration to use 'prettier' plugin chore(postcss.config.cjs): update postcss configuration to use single quotes for require statements fix(helpers.js): fix fs.rmSync function call to delete node_modules directory recursively feat(update.js): add support for skipping git commands with '-g' flag * chore(ModelSelect.tsx): add support for azureOpenAI option component chore(Settings.tsx): add support for azureOpenAI option component chore(package.json): add rebuild:package-lock and update:branch scripts * fix(OptionHover.tsx): fix accessing nested properties in types object feat(OptionHover.tsx): add check for existence of text before rendering HoverCardContent * chore(style.css): update transition duration for options-bar from 0.3s to 0.25s * fix(ScrollToBottom.jsx): fix z-index value for scroll button * style: improve dialogs * fix(Nav.jsx): adjust width and max-width of nav component * chore(Nav.jsx): update max-width class for nav component in different screen sizes chore(Dialog.tsx): update class for DialogFooter component to use flex-row layout * fix(client): fix node_module resolution with path mapping * fix(AdjustToneButton.jsx): add z-index to adjust tone button for proper layering fix(TextChat.jsx): change onClick function to use arrow function to avoid immediate execution fix(mobile.css): update z-index for nav and nav-mask for proper layering chore(package.json): rename update:branch script to reinstall for clarity and consistency * fix(OptionsBar/Settings): add null checks for conversation in BingAI.tsx, ChatGPT.tsx, Plugins.tsx, Settings.tsx * style(TextChat/OptionsBar): match official site styles, setup regen/continue/stop buttons div * chore: Import and apply removeFocusOutlines utility across various components, and rename removeButtonOutline to removeFocusOutlines chore(Settings): Remove unused import and conditionally return null if conversation is falsy * feat(hooks): add useLocalize hook The useLocalize hook is added to the hooks/index.ts file. This hook allows for localization of phrases using the localize function from the ~/localization/Translation module. The hook uses the lang value from the store to determine the current language and returns a function that takes a phraseKey and optional values array as arguments and returns the localized phrase. * refactor(OptionHover.tsx): Update text keys for OptionHover component, use new hook: useLocalize * refactor(useDocumentTitle.ts): refactor to TS * fix(typescript): type issues and update typescript linting deps * refactor: Update ThemeContext and useOnClickOutside to TypeScript chore(useDidMountEffect.js): Remove useDidMountEffect hook * feat: GenerationButtons for stop/continue/regen, remove AdjustToneButton in favor of alternate advanced mode/Settings in OptionsBar * fix(EndpointOptionsPopover.tsx): change switchToSimpleMode function name to closePopover fix(GenerationButtons.tsx): change advancedMode prop name to showPopover fix(OptionsBar.tsx): change advancedMode state name to showPopover feat(OptionsBar.tsx): add logic to show/hide popover based on showPopover state fix(types.ts): change switchToSimpleMode function name to closePopover * chore: remove template button * chore(GenerationButtons.tsx): adjust positioning of the div element chore(Plugins.tsx): adjust width of the MultiSelectDropDown component chore(OptionsBar.tsx): adjust padding of the button element * refactor(EditPresetDialog): use new modular higher order components * chore(newoptionsbar.html): delete unused file newoptionsbar.html * refactor(EditPresetDialog): convert to TS * chore(babel.config.cjs): update babel configuration, linting * chore(EditPresetDialog.tsx): update className for DialogTemplate to include pb-0 chore(EndpointOptionsDialog.jsx): update className for DialogTemplate to include pb-0 chore(PopoverButtons.tsx): add buttonClass prop to PopoverButtons component chore(DialogTemplate.tsx): update className for the footer div to include h-auto chore(Dropdown.jsx): remove id prop from Dropdown component chore(mobile.css): update transition duration for .nav class from 0.2s to 0.15s * refactor(EditPresetDialog.tsx): simplify localization usage with hook * chore(EditPresetDialog.tsx): update containerClassName to include z-index value * fix(endpoints.ts): change type of endpointsConfig atom to TEndpointsConfig refactor(cleanupPreset.ts): convert to TS fix(index.ts): export cleanupPreset utility function fix(types.ts): add missing properties to TPreset type * refactor(EndpointOptionsDialog): convert to TS * fix(EditPresetDialog.tsx): - import cleanupPreset from index - add null check before submitting preset - add null check before exporting preset refactor(SaveAsPresetDialog.tsx): convert to TS fix(usePresetOptions.ts): import cleanupPreset from index fix(types.ts): - make title prop optional in EditPresetProps - change preset prop in CleanupPreset to be partial * chore: reorganize imports in App, EndpointMenu, Messages, and ExportModel components feat(ScreenshotContext.jsx): add ScreenshotContext to hooks/index chore(index.ts): export ThemeContext, ScreenshotContext, ApiErrorBoundaryContext hooks, cleanupPreset, and getIcon functions from utils * wip: add headerClassName for dialog template * chore(EndpointOptionsDialog.tsx): remove unused headerClassName prop chore(EndpointOptionsDialog.tsx): adjust height of main container in mobile and desktop view * fix(react-query-service.ts): change return type of useGetEndpointsQuery to QueryObserverResult<t.TEndpointsConfig> * refactor: imports from index and refactor to TS * refactor: refactor all svg components to TS * refactor: refactor all UI components to TS, remove unused component * fix(SelectDropDown.tsx): remove file extension from import statement for CheckMark component * fix: SaveAsPresetDialog typing issue * fix(OptionsBar): close popover when an endpoint with no settings is selected * chore(ChatGPT.tsx): update width of model select dropdown to 60px refactor(types.ts): decouple ModelSelectProps from SettingsProps * fix(popover Settings): space taken from the options menu for each endpoint * fix:'Set token first' element alignment, add padding to endpointmenu icon in mobile * style: match official site header * refactor(EndpointOptionsDialog): make functionality explicitly saving current convos as presets * fix(useLocalize.ts): change values parameter from an array to rest parameters * refactor(EndpointSettings): Utilize useLocalize hook for all endpoint settings * fix(Popover): correct spacing/center and remove focus outlines for close button * chore: employ use of cn (clsx) in Popover styles * chore(EditPresetDialog.tsx): update className to add padding bottom chore(EndpointOptionsDialog.tsx): update className to add padding bottom * style(EndpointMenu, TextChat): add better styling at diff. breakpoints * refactor(EndpointSettings): consolidate container style to higher order component * refactor(EditPresetDialog.tsx): pass custom style to Settings from here * style: setting dialogs improved in all views * style(EndpointMenu): improve UX for mobile * style(PresetDialog): increase height so scrollbar isn't triggered * chore(EditPresetDialog.tsx): update className to include xl height for DialogTemplate chore(InputNumber.tsx): update className to include max height for InputNumber component * fix: light mode styling * fix(OptionsBar/ScrollToBottom/Popover): quick fix to rework in future: hide scrollToBottom when Popover is open * style: remove bg-gradient around textarea in mobile view * chore(ThemeContext.tsx): refactor ThemeContext to use default context value, also fixes type issue * chore(EditPresetDialog.tsx): adjust grid layout in EditPresetDialog component * style(TextChat): make gradient more opaque/smoother * fix(TextChat.jsx): fix background gradient color based on theme and system preference * test(layout-test-utils.tsx): add mock implementation for window.matchMedia in test setup feat(layout-test-utils.tsx): add authConfig prop to AuthContextProvider in renderWithProvidersWrapper function chore(tsconfig.json): include test directory in tsconfig include section * chore(jest.config.cjs): update test file paths in jest configuration chore(Login.spec.tsx): update test file path in import statement chore(LoginForm.spec.tsx): update test file path in import statement chore(Registration.spec.tsx): update test file path in import statement chore(PluginAuthForm.spec.tsx): update test file path in import statement chore(PluginStoreDialog.spec.tsx): update test file path in import statement chore(layout-test-utils.tsx): move matchMedia mock to separate file chore(tsconfig.json): add path mapping for test files in client directory * test: add import for 'test/matchMedia.mock' in test files The changes in this commit add an import statement for 'test/matchMedia.mock' in multiple test files. This import is necessary for mocking the behavior of the matchMedia function during testing. * style(ClearConvosDialog): remove borders from button and modal, uniform button size * fix(AgentSettings.tsx): overlapping issue * fix(PresetDialogs): improve spacing of top row and dialog content * style(Settings): 2nd column will now dynamically adjust better across all screen sizes * style(ModelSelect): improve styling for mobile/desktop, add hover shadow feat(ModelSelect/Plugins): hide ModelSelect when screen is small * refactor(RowButton, buildTree): convert to TS * style(ModelSelect): add transition effect to shadows on hover
1535 lines
35 KiB
CSS
1535 lines
35 KiB
CSS
@tailwind base;
|
|
@tailwind components;
|
|
@tailwind utilities;
|
|
|
|
@media (max-width: 640px) {
|
|
.no-gradient-sm {
|
|
background: none !important;
|
|
}
|
|
}
|
|
|
|
@font-face {
|
|
font-display: swap;
|
|
font-family: Signifier;
|
|
font-style: normal;
|
|
font-weight: 400;
|
|
src: url("../fonts/signifier-light.woff2") format("woff2")
|
|
}
|
|
|
|
@font-face {
|
|
font-display: swap;
|
|
font-family: Signifier;
|
|
font-style: italic;
|
|
font-weight: 400;
|
|
src: url("../fonts/signifier-light-italic.woff2") format("woff2")
|
|
}
|
|
|
|
@font-face {
|
|
font-display: swap;
|
|
font-family: Signifier;
|
|
font-style: normal;
|
|
font-weight: 700;
|
|
src: url("../fonts/signifier-bold.woff2") format("woff2")
|
|
}
|
|
|
|
@font-face {
|
|
font-display: swap;
|
|
font-family: Signifier;
|
|
font-style: italic;
|
|
font-weight: 700;
|
|
src: url("../fonts/signifier-bold-italic.woff2") format("woff2")
|
|
}
|
|
|
|
@font-face {
|
|
font-display: swap;
|
|
font-family: Söhne;
|
|
font-style: normal;
|
|
font-weight: 400;
|
|
src: url("../fonts/soehne-buch.woff2") format("woff2")
|
|
}
|
|
|
|
@font-face {
|
|
font-display: swap;
|
|
font-family: Söhne;
|
|
font-style: italic;
|
|
font-weight: 400;
|
|
src: url("../fonts/soehne-buch-kursiv.woff2") format("woff2")
|
|
}
|
|
|
|
@font-face {
|
|
font-display: swap;
|
|
font-family: Söhne;
|
|
font-style: normal;
|
|
font-weight: 500;
|
|
src: url("../fonts/soehne-kraftig.woff2") format("woff2")
|
|
}
|
|
|
|
@font-face {
|
|
font-display: swap;
|
|
font-family: Söhne;
|
|
font-style: italic;
|
|
font-weight: 500;
|
|
src: url("../fonts/soehne-kraftig-kursiv.woff2") format("woff2")
|
|
}
|
|
|
|
@font-face {
|
|
font-display: swap;
|
|
font-family: Söhne;
|
|
font-style: normal;
|
|
font-weight: 600;
|
|
src: url("../fonts/soehne-halbfett.woff2") format("woff2")
|
|
}
|
|
|
|
@font-face {
|
|
font-display: swap;
|
|
font-family: Söhne;
|
|
font-style: italic;
|
|
font-weight: 600;
|
|
src: url("../fonts/soehne-halbfett-kursiv.woff2") format("woff2")
|
|
}
|
|
|
|
@font-face {
|
|
font-display: swap;
|
|
font-family: Söhne Mono;
|
|
font-style: normal;
|
|
font-weight: 400;
|
|
src: url("../fonts/soehne-mono-buch.woff2") format("woff2")
|
|
}
|
|
|
|
@font-face {
|
|
font-display: swap;
|
|
font-family: Söhne Mono;
|
|
font-style: normal;
|
|
font-weight: 700;
|
|
src: url("../fonts/soehne-mono-halbfett.woff2") format("woff2")
|
|
}
|
|
|
|
@font-face {
|
|
font-display: swap;
|
|
font-family: Söhne Mono;
|
|
font-style: italic;
|
|
font-weight: 400;
|
|
src: url("../fonts/soehne-mono-buch-kursiv.woff2") format("woff2")
|
|
}
|
|
|
|
/* * {
|
|
box-sizing: border-box;
|
|
outline: 1px solid limegreen !important;
|
|
} */
|
|
|
|
/* p small {
|
|
opacity: 0;
|
|
animation: fadeIn 3s ease forwards;
|
|
}
|
|
|
|
@keyframes fadeIn {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(-10px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
} */
|
|
|
|
/* .LazyLoad {
|
|
opacity: 0;
|
|
transition: all 1s ease-in-out;
|
|
} */
|
|
|
|
select {
|
|
--tw-shadow: 0 0 transparent;
|
|
-webkit-appearance: none;
|
|
appearance: none;
|
|
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%238e8ea0' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");
|
|
background-position: right .5rem center;
|
|
background-repeat: no-repeat;
|
|
background-size: 1.5em 1.5em;
|
|
padding-right: 2.5rem;
|
|
background-color: #fff;
|
|
border-color: #8e8ea0;
|
|
border-radius: 0;
|
|
border-width: 1px;
|
|
font-size: 1rem;
|
|
line-height: 1.5rem;
|
|
padding: .5rem .75rem;
|
|
}
|
|
|
|
.overflow-y-auto {
|
|
overflow-y: overlay;
|
|
}
|
|
|
|
.overflow-x-auto {
|
|
overflow-x: overlay;
|
|
}
|
|
|
|
.reset-rc-number-input input {
|
|
width: 100%;
|
|
border: none !important;
|
|
background: transparent;
|
|
}
|
|
|
|
.reset-rc-number-input-text-right input {
|
|
text-align: right;
|
|
}
|
|
|
|
.option-buttons {
|
|
pointer-events: none;
|
|
opacity: 0;
|
|
transition: all 0.25s ease-in-out;
|
|
}
|
|
|
|
.option-buttons.full-opacity {
|
|
pointer-events: fill;
|
|
opacity: 1;
|
|
}
|
|
|
|
.option-buttons.show {
|
|
pointer-events: fill;
|
|
opacity: 1;
|
|
}
|
|
|
|
.options-bar {
|
|
pointer-events: none;
|
|
opacity: 0;
|
|
transition: all 0.25s ease-in-out;
|
|
}
|
|
|
|
.options-bar.full-opacity {
|
|
pointer-events: fill;
|
|
opacity: 1;
|
|
}
|
|
|
|
.options-bar.show {
|
|
pointer-events: fill;
|
|
opacity: 0.3;
|
|
}
|
|
|
|
.hidden {
|
|
display: none;
|
|
}
|
|
|
|
.endpointOptionsPopover-container {
|
|
pointer-events: none;
|
|
opacity: 0;
|
|
transition: all 0.2s ease-in-out;
|
|
transform: scaleY(0);
|
|
transform-origin: bottom center;
|
|
}
|
|
|
|
.endpointOptionsPopover-container.show {
|
|
pointer-events: fill;
|
|
opacity: 1;
|
|
transform: scaleY(1)
|
|
}
|
|
|
|
.creative-tab {
|
|
/* background: linear-gradient(90deg, #904887 10.79%, #8B257E 87.08%); */
|
|
background: linear-gradient(90deg, #904887 10.79%, #8B257E 87.08%);
|
|
}
|
|
|
|
.fast-tab {
|
|
background: linear-gradient(90deg, #2870EA 10.79%, #1B4AEF 87.08%);
|
|
}
|
|
|
|
.balanced-tab {
|
|
background: linear-gradient(90deg, #D7871A 10.79%, #9F6005 87.08%);
|
|
}
|
|
|
|
.precise-tab {
|
|
background: linear-gradient(90deg, #006880 10.79%, #005366 87.08%)
|
|
}
|
|
|
|
p > small {
|
|
opacity: 0;
|
|
animation: fadein 3s forwards;
|
|
}
|
|
|
|
@keyframes fadein {
|
|
from { opacity: 0; transform: translateY(-20px); }
|
|
to { opacity: 1; transform: translateY(0); }
|
|
}
|
|
|
|
blockquote, dd, dl, fieldset, figure, h1, h2, h3, h4, h5, h6, hr, p, pre {
|
|
margin: 0;
|
|
}
|
|
|
|
.markdown ol li, .markdown ol li > p, .markdown ol ol, .markdown ol ul, .markdown ul li, .markdown ul li > p, .markdown ul ol, .markdown ul ul {
|
|
margin: 0;
|
|
}
|
|
|
|
.scroll-down-enter {
|
|
opacity: 0;
|
|
}
|
|
/* .scroll-down-appear {
|
|
opacity: 0;
|
|
} */
|
|
|
|
.scroll-down-enter-active {
|
|
opacity: 1;
|
|
transition: opacity 400ms;
|
|
}
|
|
|
|
.scroll-down-exit {
|
|
opacity: 1;
|
|
}
|
|
|
|
.scroll-down-exit-active {
|
|
opacity: 0;
|
|
transition: opacity 400ms;
|
|
}
|
|
|
|
.blink {
|
|
animation: blink 1s linear infinite;
|
|
}
|
|
@keyframes blink {
|
|
0% {
|
|
opacity: 1;
|
|
}
|
|
50% {
|
|
opacity: 0;
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.cursorBlink {
|
|
animation: blink 1s linear infinite;
|
|
}
|
|
@keyframes blink {
|
|
0% {
|
|
opacity: 1;
|
|
}
|
|
79% {
|
|
opacity: 1;
|
|
}
|
|
80% {
|
|
opacity: 0;
|
|
}
|
|
99% {
|
|
opacity: 0;
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.blink2 {
|
|
animation: blink 1500ms linear infinite;
|
|
}
|
|
@keyframes blink2 {
|
|
0% {
|
|
opacity: 1;
|
|
}
|
|
50% {
|
|
opacity: 0;
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.prose {
|
|
color:var(--tw-prose-body);
|
|
max-width:65ch
|
|
}
|
|
.prose :where([class~=lead]):not(:where([class~=not-prose] *)) {
|
|
color:var(--tw-prose-lead);
|
|
font-size:1.25em;
|
|
line-height:1.6;
|
|
margin-bottom:1.2em;
|
|
margin-top:1.2em
|
|
}
|
|
.prose :where(a):not(:where([class~=not-prose] *)) {
|
|
color:var(--tw-prose-links);
|
|
font-weight:500;
|
|
text-decoration:underline
|
|
}
|
|
.prose :where(strong):not(:where([class~=not-prose] *)) {
|
|
color:var(--tw-prose-bold);
|
|
font-weight:600
|
|
}
|
|
.prose :where(a strong):not(:where([class~=not-prose] *)) {
|
|
color:inherit
|
|
}
|
|
.prose :where(blockquote strong):not(:where([class~=not-prose] *)) {
|
|
color:inherit
|
|
}
|
|
.prose :where(thead th strong):not(:where([class~=not-prose] *)) {
|
|
color:inherit
|
|
}
|
|
.prose :where(ol):not(:where([class~=not-prose] *)) {
|
|
list-style-type:decimal;
|
|
margin-bottom: 1.25em;
|
|
margin-top: 1.25em;
|
|
padding-left: 1.625em
|
|
}
|
|
.prose :where(ol[type=A]):not(:where([class~=not-prose] *)) {
|
|
list-style-type:upper-alpha
|
|
}
|
|
.prose :where(ol[type=a]):not(:where([class~=not-prose] *)) {
|
|
list-style-type:lower-alpha
|
|
}
|
|
.prose :where(ol[type=A s]):not(:where([class~=not-prose] *)) {
|
|
list-style-type:upper-alpha
|
|
}
|
|
.prose :where(ol[type=a s]):not(:where([class~=not-prose] *)) {
|
|
list-style-type:lower-alpha
|
|
}
|
|
.prose :where(ol[type=I]):not(:where([class~=not-prose] *)) {
|
|
list-style-type:upper-roman
|
|
}
|
|
.prose :where(ol[type=i]):not(:where([class~=not-prose] *)) {
|
|
list-style-type:lower-roman
|
|
}
|
|
.prose :where(ol[type=I s]):not(:where([class~=not-prose] *)) {
|
|
list-style-type:upper-roman
|
|
}
|
|
.prose :where(ol[type=i s]):not(:where([class~=not-prose] *)) {
|
|
list-style-type:lower-roman
|
|
}
|
|
.prose :where(ol[type="1"]):not(:where([class~=not-prose] *)) {
|
|
list-style-type:decimal
|
|
}
|
|
.prose :where(ul):not(:where([class~=not-prose] *)) {
|
|
list-style-type:disc;
|
|
margin-bottom:0.1em;
|
|
margin-top:0.1em;
|
|
padding-left:1.625em
|
|
}
|
|
.prose :where(ol>li):not(:where([class~=not-prose] *))::marker {
|
|
color:var(--tw-prose-counters);
|
|
font-weight:400
|
|
}
|
|
.prose :where(ul>li):not(:where([class~=not-prose] *))::marker {
|
|
color:var(--tw-prose-bullets)
|
|
}
|
|
.prose :where(hr):not(:where([class~=not-prose] *)) {
|
|
border-color:var(--tw-prose-hr);
|
|
border-top-width:1px;
|
|
margin-bottom:3em;
|
|
margin-top:3em
|
|
}
|
|
.prose :where(blockquote):not(:where([class~=not-prose] *)) {
|
|
border-left-color:var(--tw-prose-quote-borders);
|
|
border-left-width:.25rem;
|
|
color:var(--tw-prose-quotes);
|
|
font-style:italic;
|
|
font-style:normal;
|
|
font-weight:500;
|
|
margin-bottom:1.6em;
|
|
margin-top:1.6em;
|
|
padding-left:1em;
|
|
quotes:"\201C""\201D""\2018""\2019"
|
|
}
|
|
.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose] *)):before {
|
|
content:open-quote
|
|
}
|
|
.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose] *)):after {
|
|
content:close-quote
|
|
}
|
|
.prose :where(h1):not(:where([class~=not-prose] *)) {
|
|
color:var(--tw-prose-headings);
|
|
font-size:2.25em;
|
|
font-weight:800;
|
|
line-height:1.1111111;
|
|
margin-bottom:.8888889em;
|
|
margin-top:0
|
|
}
|
|
.prose :where(h1 strong):not(:where([class~=not-prose] *)) {
|
|
color:inherit;
|
|
font-weight:900
|
|
}
|
|
.prose :where(h2):not(:where([class~=not-prose] *)) {
|
|
color:var(--tw-prose-headings);
|
|
font-size:1.5em;
|
|
font-weight:700;
|
|
line-height:1.3333333;
|
|
margin-bottom:1em;
|
|
margin-top:2em
|
|
}
|
|
.prose :where(h2 strong):not(:where([class~=not-prose] *)) {
|
|
color:inherit;
|
|
font-weight:800
|
|
}
|
|
.prose :where(h3):not(:where([class~=not-prose] *)) {
|
|
color:var(--tw-prose-headings);
|
|
font-size:1.25em;
|
|
font-weight:600;
|
|
line-height:1.6;
|
|
margin-bottom:.6em;
|
|
margin-top:1.6em
|
|
}
|
|
.prose :where(h3 strong):not(:where([class~=not-prose] *)) {
|
|
color:inherit;
|
|
font-weight:700
|
|
}
|
|
.prose :where(h4):not(:where([class~=not-prose] *)) {
|
|
color:var(--tw-prose-headings);
|
|
font-weight:600;
|
|
line-height:1.5;
|
|
margin-bottom:.5em;
|
|
margin-top:1.5em
|
|
}
|
|
.prose :where(h4 strong):not(:where([class~=not-prose] *)) {
|
|
color:inherit;
|
|
font-weight:700
|
|
}
|
|
.prose :where(img):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:2em;
|
|
margin-top:2em
|
|
}
|
|
.prose :where(figure>*):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:0;
|
|
margin-top:0
|
|
}
|
|
.prose :where(figcaption):not(:where([class~=not-prose] *)) {
|
|
color:var(--tw-prose-captions);
|
|
font-size:.875em;
|
|
line-height:1.4285714;
|
|
margin-top:.8571429em
|
|
}
|
|
.prose :where(code):not(:where([class~=not-prose] *)) {
|
|
color:var(--tw-prose-code);
|
|
font-size:.875em;
|
|
font-weight:600;
|
|
}
|
|
.prose :where(code):not(:where([class~=not-prose] *)):before {
|
|
content:"`"
|
|
}
|
|
.prose :where(code):not(:where([class~=not-prose] *)):after {
|
|
content:"`"
|
|
}
|
|
.prose :where(a code):not(:where([class~=not-prose] *)) {
|
|
color:inherit
|
|
}
|
|
.prose :where(h1 code):not(:where([class~=not-prose] *)) {
|
|
color:inherit
|
|
}
|
|
.prose :where(h2 code):not(:where([class~=not-prose] *)) {
|
|
color:inherit;
|
|
font-size:.875em
|
|
}
|
|
.prose :where(h3 code):not(:where([class~=not-prose] *)) {
|
|
color:inherit;
|
|
font-size:.9em
|
|
}
|
|
.prose :where(h4 code):not(:where([class~=not-prose] *)) {
|
|
color:inherit
|
|
}
|
|
.prose :where(blockquote code):not(:where([class~=not-prose] *)) {
|
|
color:inherit
|
|
}
|
|
.prose :where(thead th code):not(:where([class~=not-prose] *)) {
|
|
color:inherit
|
|
}
|
|
.prose :where(pre):not(:where([class~=not-prose] *)) {
|
|
background-color:transparent;
|
|
border-radius:.375rem;
|
|
color:currentColor;
|
|
font-size:.875em;
|
|
font-weight:400;
|
|
line-height:1.7142857;
|
|
margin:0;
|
|
overflow-x:auto;
|
|
padding:0
|
|
}
|
|
.prose :where(pre code):not(:where([class~=not-prose] *)) {
|
|
background-color:transparent;
|
|
border-radius:0;
|
|
border-width:0;
|
|
color:inherit;
|
|
font-family:inherit;
|
|
font-size:inherit;
|
|
font-weight:inherit;
|
|
line-height:inherit;
|
|
padding:0
|
|
}
|
|
.prose :where(pre code):not(:where([class~=not-prose] *)):before {
|
|
content:none
|
|
}
|
|
.prose :where(pre code):not(:where([class~=not-prose] *)):after {
|
|
content:none
|
|
}
|
|
.prose :where(table):not(:where([class~=not-prose] *)) {
|
|
font-size:.875em;
|
|
line-height:1.7142857;
|
|
margin-bottom:2em;
|
|
margin-top:2em;
|
|
table-layout:auto;
|
|
text-align:left;
|
|
width:100%
|
|
}
|
|
.prose :where(thead):not(:where([class~=not-prose] *)) {
|
|
border-bottom-color:var(--tw-prose-th-borders);
|
|
border-bottom-width:1px
|
|
}
|
|
.prose :where(thead th):not(:where([class~=not-prose] *)) {
|
|
color:var(--tw-prose-headings);
|
|
font-weight:600;
|
|
padding-bottom:.5714286em;
|
|
padding-left:.5714286em;
|
|
padding-right:.5714286em;
|
|
vertical-align:bottom
|
|
}
|
|
.prose :where(tbody tr):not(:where([class~=not-prose] *)) {
|
|
border-bottom-color:var(--tw-prose-td-borders);
|
|
border-bottom-width:1px
|
|
}
|
|
.prose :where(tbody tr:last-child):not(:where([class~=not-prose] *)) {
|
|
border-bottom-width:0
|
|
}
|
|
.prose :where(tbody td):not(:where([class~=not-prose] *)) {
|
|
vertical-align:baseline
|
|
}
|
|
.prose :where(tfoot):not(:where([class~=not-prose] *)) {
|
|
border-top-color:var(--tw-prose-th-borders);
|
|
border-top-width:1px
|
|
}
|
|
.prose :where(tfoot td):not(:where([class~=not-prose] *)) {
|
|
vertical-align:top
|
|
}
|
|
.prose {
|
|
--tw-prose-body:#374151;
|
|
--tw-prose-headings:#111827;
|
|
--tw-prose-lead:#4b5563;
|
|
--tw-prose-links:#111827;
|
|
--tw-prose-bold:#111827;
|
|
--tw-prose-counters:#6b7280;
|
|
--tw-prose-bullets:#d1d5db;
|
|
--tw-prose-hr:#e5e7eb;
|
|
--tw-prose-quotes:#111827;
|
|
--tw-prose-quote-borders:#e5e7eb;
|
|
--tw-prose-captions:#6b7280;
|
|
--tw-prose-code:#111827;
|
|
--tw-prose-pre-code:#e5e7eb;
|
|
--tw-prose-pre-bg:#1f2937;
|
|
--tw-prose-th-borders:#d1d5db;
|
|
--tw-prose-td-borders:#e5e7eb;
|
|
--tw-prose-invert-body:#d1d5db;
|
|
--tw-prose-invert-headings:#fff;
|
|
--tw-prose-invert-lead:#9ca3af;
|
|
--tw-prose-invert-links:#fff;
|
|
--tw-prose-invert-bold:#fff;
|
|
--tw-prose-invert-counters:#9ca3af;
|
|
--tw-prose-invert-bullets:#4b5563;
|
|
--tw-prose-invert-hr:#374151;
|
|
--tw-prose-invert-quotes:#f3f4f6;
|
|
--tw-prose-invert-quote-borders:#374151;
|
|
--tw-prose-invert-captions:#9ca3af;
|
|
--tw-prose-invert-code:#fff;
|
|
--tw-prose-invert-pre-code:#d1d5db;
|
|
--tw-prose-invert-pre-bg:rgba(0,0,0,.5);
|
|
--tw-prose-invert-th-borders:#4b5563;
|
|
--tw-prose-invert-td-borders:#374151;
|
|
font-size:1rem;
|
|
line-height:1.75
|
|
}
|
|
.prose :where(p):not(:where([class~=not-prose] *)) {
|
|
margin-bottom: 1.25em;
|
|
margin-top: 1.25em
|
|
}
|
|
.prose :where(video):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:2em;
|
|
margin-top:2em
|
|
}
|
|
.prose :where(figure):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:2em;
|
|
margin-top:2em
|
|
}
|
|
.prose :where(li):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:.5em;
|
|
margin-top:.5em
|
|
}
|
|
.prose :where(ol>li):not(:where([class~=not-prose] *)) {
|
|
padding-left:.375em
|
|
}
|
|
.prose :where(ul>li):not(:where([class~=not-prose] *)) {
|
|
padding-left:.375em
|
|
}
|
|
.prose :where(.prose>ul>li p):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:.75em;
|
|
margin-top:.75em
|
|
}
|
|
.prose :where(.prose>ul>li>:first-child):not(:where([class~=not-prose] *)) {
|
|
margin-top:1.25em
|
|
}
|
|
.prose :where(.prose>ul>li>:last-child):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:1.25em
|
|
}
|
|
.prose :where(.prose>ol>li>:first-child):not(:where([class~=not-prose] *)) {
|
|
margin-top:1.25em
|
|
}
|
|
.prose :where(.prose>ol>li>:last-child):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:1.25em
|
|
}
|
|
.prose :where(ul ul,
|
|
ul ol,
|
|
ol ul,
|
|
ol ol):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:.75em;
|
|
margin-top:.75em
|
|
}
|
|
.prose :where(hr+*):not(:where([class~=not-prose] *)) {
|
|
margin-top:0
|
|
}
|
|
.prose :where(h2+*):not(:where([class~=not-prose] *)) {
|
|
margin-top:0
|
|
}
|
|
.prose :where(h3+*):not(:where([class~=not-prose] *)) {
|
|
margin-top:0
|
|
}
|
|
.prose :where(h4+*):not(:where([class~=not-prose] *)) {
|
|
margin-top:0
|
|
}
|
|
.prose :where(thead th:first-child):not(:where([class~=not-prose] *)) {
|
|
padding-left:0
|
|
}
|
|
.prose :where(thead th:last-child):not(:where([class~=not-prose] *)) {
|
|
padding-right:0
|
|
}
|
|
.prose :where(tbody td,
|
|
tfoot td):not(:where([class~=not-prose] *)) {
|
|
padding:.5714286em
|
|
}
|
|
.prose :where(tbody td:first-child,
|
|
tfoot td:first-child):not(:where([class~=not-prose] *)) {
|
|
padding-left:0
|
|
}
|
|
.prose :where(tbody td:last-child,
|
|
tfoot td:last-child):not(:where([class~=not-prose] *)) {
|
|
padding-right:0
|
|
}
|
|
.prose :where(.prose>:first-child):not(:where([class~=not-prose] *)) {
|
|
margin-top:0
|
|
}
|
|
.prose :where(.prose>:last-child):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:0
|
|
}
|
|
.prose-sm :where(.prose>ul>li p):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:.5714286em;
|
|
margin-top:.5714286em
|
|
}
|
|
.prose-sm :where(.prose>ul>li>:first-child):not(:where([class~=not-prose] *)) {
|
|
margin-top:1.1428571em
|
|
}
|
|
.prose-sm :where(.prose>ul>li>:last-child):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:1.1428571em
|
|
}
|
|
.prose-sm :where(.prose>ol>li>:first-child):not(:where([class~=not-prose] *)) {
|
|
margin-top:1.1428571em
|
|
}
|
|
.prose-sm :where(.prose>ol>li>:last-child):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:1.1428571em
|
|
}
|
|
.prose-sm :where(.prose>:first-child):not(:where([class~=not-prose] *)) {
|
|
margin-top:0
|
|
}
|
|
.prose-sm :where(.prose>:last-child):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:0
|
|
}
|
|
.prose-base :where(.prose>ul>li p):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:.75em;
|
|
margin-top:.75em
|
|
}
|
|
.prose-base :where(.prose>ul>li>:first-child):not(:where([class~=not-prose] *)) {
|
|
margin-top:1.25em
|
|
}
|
|
.prose-base :where(.prose>ul>li>:last-child):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:1.25em
|
|
}
|
|
.prose-base :where(.prose>ol>li>:first-child):not(:where([class~=not-prose] *)) {
|
|
margin-top:1.25em
|
|
}
|
|
.prose-base :where(.prose>ol>li>:last-child):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:1.25em
|
|
}
|
|
.prose-base :where(.prose>:first-child):not(:where([class~=not-prose] *)) {
|
|
margin-top:0
|
|
}
|
|
.prose-base :where(.prose>:last-child):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:0
|
|
}
|
|
.prose-lg :where(.prose>ul>li p):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:.8888889em;
|
|
margin-top:.8888889em
|
|
}
|
|
.prose-lg :where(.prose>ul>li>:first-child):not(:where([class~=not-prose] *)) {
|
|
margin-top:1.3333333em
|
|
}
|
|
.prose-lg :where(.prose>ul>li>:last-child):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:1.3333333em
|
|
}
|
|
.prose-lg :where(.prose>ol>li>:first-child):not(:where([class~=not-prose] *)) {
|
|
margin-top:1.3333333em
|
|
}
|
|
.prose-lg :where(.prose>ol>li>:last-child):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:1.3333333em
|
|
}
|
|
.prose-lg :where(.prose>:first-child):not(:where([class~=not-prose] *)) {
|
|
margin-top:0
|
|
}
|
|
.prose-lg :where(.prose>:last-child):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:0
|
|
}
|
|
.prose-xl :where(.prose>ul>li p):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:.8em;
|
|
margin-top:.8em
|
|
}
|
|
.prose-xl :where(.prose>ul>li>:first-child):not(:where([class~=not-prose] *)) {
|
|
margin-top:1.2em
|
|
}
|
|
.prose-xl :where(.prose>ul>li>:last-child):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:1.2em
|
|
}
|
|
.prose-xl :where(.prose>ol>li>:first-child):not(:where([class~=not-prose] *)) {
|
|
margin-top:1.2em
|
|
}
|
|
.prose-xl :where(.prose>ol>li>:last-child):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:1.2em
|
|
}
|
|
.prose-xl :where(.prose>:first-child):not(:where([class~=not-prose] *)) {
|
|
margin-top:0
|
|
}
|
|
.prose-xl :where(.prose>:last-child):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:0
|
|
}
|
|
.prose-2xl :where(.prose>ul>li p):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:.8333333em;
|
|
margin-top:.8333333em
|
|
}
|
|
.prose-2xl :where(.prose>ul>li>:first-child):not(:where([class~=not-prose] *)) {
|
|
margin-top:1.3333333em
|
|
}
|
|
.prose-2xl :where(.prose>ul>li>:last-child):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:1.3333333em
|
|
}
|
|
.prose-2xl :where(.prose>ol>li>:first-child):not(:where([class~=not-prose] *)) {
|
|
margin-top:1.3333333em
|
|
}
|
|
.prose-2xl :where(.prose>ol>li>:last-child):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:1.3333333em
|
|
}
|
|
.prose-2xl :where(.prose>:first-child):not(:where([class~=not-prose] *)) {
|
|
margin-top:0
|
|
}
|
|
.prose-2xl :where(.prose>:last-child):not(:where([class~=not-prose] *)) {
|
|
margin-bottom:0
|
|
}
|
|
|
|
code,
|
|
pre {
|
|
font-family: Söhne Mono, Monaco, Andale Mono, Ubuntu Mono, monospace !important;
|
|
}
|
|
code[class='language-plaintext'] {
|
|
white-space: pre-line;
|
|
}
|
|
code.hljs,
|
|
code[class*='language-'],
|
|
pre[class*='language-'] {
|
|
word-wrap: normal;
|
|
background: none;
|
|
color: #fff;
|
|
-webkit-hyphens: none;
|
|
hyphens: none;
|
|
font-size: .85rem;
|
|
line-height: 1.5;
|
|
tab-size: 4;
|
|
text-align: left;
|
|
white-space: pre;
|
|
word-break: normal;
|
|
word-spacing: normal;
|
|
}
|
|
pre[class*='language-'] {
|
|
border-radius: 0.3em;
|
|
overflow: auto;
|
|
}
|
|
:not(pre) > code.hljs,
|
|
:not(pre) > code[class*='language-'] {
|
|
border-radius: 0.3em;
|
|
padding: 0.1em;
|
|
white-space: normal;
|
|
}
|
|
.hljs-comment {
|
|
color: hsla(0, 0%, 100%, 0.5);
|
|
}
|
|
.hljs-meta {
|
|
color: hsla(0, 0%, 100%, 0.6);
|
|
}
|
|
.hljs-built_in,
|
|
.hljs-class .hljs-title {
|
|
color: #e9950c;
|
|
}
|
|
.hljs-doctag,
|
|
.hljs-formula,
|
|
.hljs-keyword,
|
|
.hljs-literal {
|
|
color: #2e95d3;
|
|
}
|
|
.hljs-addition,
|
|
.hljs-attribute,
|
|
.hljs-meta-string,
|
|
.hljs-regexp,
|
|
.hljs-string {
|
|
color: #00a67d;
|
|
}
|
|
.hljs-attr,
|
|
.hljs-number,
|
|
.hljs-selector-attr,
|
|
.hljs-selector-class,
|
|
.hljs-selector-pseudo,
|
|
.hljs-template-variable,
|
|
.hljs-type,
|
|
.hljs-variable {
|
|
color: #df3079;
|
|
}
|
|
.hljs-bullet,
|
|
.hljs-link,
|
|
.hljs-selector-id,
|
|
.hljs-symbol,
|
|
.hljs-title {
|
|
color: #f22c3d;
|
|
}
|
|
|
|
[role='button'],
|
|
button {
|
|
cursor: pointer;
|
|
}
|
|
|
|
.btn {
|
|
align-items: center;
|
|
border-color: transparent;
|
|
border-radius: 0.25rem;
|
|
border-width: 1px;
|
|
display: inline-flex;
|
|
font-size: 0.875rem;
|
|
line-height: 1.25rem;
|
|
padding: 0.5rem 0.75rem;
|
|
pointer-events: auto;
|
|
}
|
|
.custom-btn {
|
|
align-items: center;
|
|
border-color: transparent;
|
|
border-radius: 0.25rem;
|
|
border-width: 1px;
|
|
display: inline-flex;
|
|
font-size: 0.875rem;
|
|
line-height: 1.25rem;
|
|
padding: 0.5rem 0.75rem;
|
|
}
|
|
.btn:focus {
|
|
outline: 2px solid transparent;
|
|
outline-offset: 2px;
|
|
}
|
|
.btn:disabled {
|
|
cursor: not-allowed;
|
|
opacity: 0.5;
|
|
}
|
|
.btn-primary {
|
|
--tw-bg-opacity: 1;
|
|
--tw-text-opacity: 1;
|
|
background-color: rgba(16, 163, 127, var(--tw-bg-opacity));
|
|
color: rgba(255, 255, 255, var(--tw-text-opacity));
|
|
}
|
|
.btn-primary:hover {
|
|
--tw-bg-opacity: 1;
|
|
background-color: rgba(26, 127, 100, var(--tw-bg-opacity));
|
|
}
|
|
.btn-primary:focus {
|
|
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width)
|
|
var(--tw-ring-offset-color);
|
|
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width))
|
|
var(--tw-ring-color);
|
|
--tw-ring-offset-width: 2px;
|
|
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 transparent;
|
|
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow),
|
|
var(--tw-shadow, 0 0 transparent);
|
|
}
|
|
.btn-primary.focus-visible {
|
|
--tw-ring-opacity: 1;
|
|
--tw-ring-color: rgba(25, 195, 125, var(--tw-ring-opacity));
|
|
}
|
|
.btn-primary:focus-visible {
|
|
--tw-ring-opacity: 1;
|
|
--tw-ring-color: rgba(25, 195, 125, var(--tw-ring-opacity));
|
|
}
|
|
.btn-primary:disabled:hover {
|
|
--tw-bg-opacity: 1;
|
|
background-color: rgba(16, 163, 127, var(--tw-bg-opacity));
|
|
}
|
|
.btn-secondary {
|
|
--tw-bg-opacity: 1;
|
|
--tw-text-opacity: 1;
|
|
background-color: rgba(224, 231, 255, var(--tw-bg-opacity));
|
|
color: rgba(67, 56, 202, var(--tw-text-opacity));
|
|
font-size: 0.875rem;
|
|
line-height: 1.25rem;
|
|
}
|
|
.btn-secondary:hover {
|
|
--tw-bg-opacity: 1;
|
|
background-color: rgba(199, 210, 254, var(--tw-bg-opacity));
|
|
}
|
|
.btn-secondary:focus {
|
|
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width)
|
|
var(--tw-ring-offset-color);
|
|
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width))
|
|
var(--tw-ring-color);
|
|
--tw-ring-offset-width: 2px;
|
|
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 transparent;
|
|
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow),
|
|
var(--tw-shadow, 0 0 transparent);
|
|
}
|
|
.btn-secondary.focus-visible {
|
|
--tw-ring-opacity: 1;
|
|
--tw-ring-color: rgba(99, 102, 241, var(--tw-ring-opacity));
|
|
}
|
|
.btn-secondary:focus-visible {
|
|
--tw-ring-opacity: 1;
|
|
--tw-ring-color: rgba(99, 102, 241, var(--tw-ring-opacity));
|
|
}
|
|
.btn-neutral {
|
|
--tw-bg-opacity: 1;
|
|
--tw-text-opacity: 1;
|
|
background-color: rgba(255, 255, 255, var(--tw-bg-opacity));
|
|
border-color: rgba(0, 0, 0, 0.1);
|
|
border-width: 1px;
|
|
color: rgba(64, 65, 79, var(--tw-text-opacity));
|
|
font-size: 0.875rem;
|
|
line-height: 1.25rem;
|
|
}
|
|
.btn-neutral:hover {
|
|
--tw-bg-opacity: 1;
|
|
background-color: rgba(236, 236, 241, var(--tw-bg-opacity));
|
|
}
|
|
.btn-neutral:focus {
|
|
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width)
|
|
var(--tw-ring-offset-color);
|
|
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width))
|
|
var(--tw-ring-color);
|
|
--tw-ring-offset-width: 2px;
|
|
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 transparent;
|
|
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow),
|
|
var(--tw-shadow, 0 0 transparent);
|
|
}
|
|
.btn-neutral.focus-visible {
|
|
--tw-ring-opacity: 1;
|
|
--tw-ring-color: rgba(99, 102, 241, var(--tw-ring-opacity));
|
|
}
|
|
.btn-neutral:focus-visible {
|
|
--tw-ring-opacity: 1;
|
|
--tw-ring-color: rgba(99, 102, 241, var(--tw-ring-opacity));
|
|
}
|
|
.dark .btn-neutral {
|
|
--tw-border-opacity: 1;
|
|
--tw-bg-opacity: 1;
|
|
--tw-text-opacity: 1;
|
|
background-color: rgba(52, 53, 65, var(--tw-bg-opacity));
|
|
border-color: rgba(86, 88, 105, var(--tw-border-opacity));
|
|
color: rgba(217, 217, 227, var(--tw-text-opacity));
|
|
}
|
|
.dark .btn-neutral:hover {
|
|
--tw-bg-opacity: 1;
|
|
background-color: rgba(64, 65, 79, var(--tw-bg-opacity));
|
|
}
|
|
.btn-dark {
|
|
--tw-border-opacity: 1;
|
|
--tw-bg-opacity: 1;
|
|
--tw-text-opacity: 1;
|
|
background-color: rgba(52, 53, 65, var(--tw-bg-opacity));
|
|
border-color: rgba(86, 88, 105, var(--tw-border-opacity));
|
|
border-width: 1px;
|
|
color: rgba(255, 255, 255, var(--tw-text-opacity));
|
|
}
|
|
.btn-dark:hover {
|
|
--tw-bg-opacity: 1;
|
|
background-color: rgba(64, 65, 79, var(--tw-bg-opacity));
|
|
}
|
|
.btn-small {
|
|
padding: 0.25rem 0.5rem;
|
|
}
|
|
|
|
::-webkit-scrollbar {
|
|
height: 0.85em;
|
|
width: 0.5rem;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb {
|
|
--tw-border-opacity: 1;
|
|
/* background-color: rgba(217,217,227,.8); Original */
|
|
background-color: rgba(217, 217, 227, 0.26);
|
|
border-color: rgba(255, 255, 255, var(--tw-border-opacity));
|
|
border-radius: 9999px;
|
|
border-width: 1px;
|
|
}
|
|
|
|
.scrollbar-transparent::-webkit-scrollbar-thumb {
|
|
background-color: rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
::-webkit-scrollbar-track {
|
|
background-color: transparent;
|
|
border-radius: 9999px;
|
|
}
|
|
|
|
body,
|
|
html {
|
|
height: 100%;
|
|
}
|
|
|
|
.dark body,
|
|
.dark html {
|
|
--tw-bg-opacity: 1;
|
|
background-color: rgba(52, 53, 65, var(--tw-bg-opacity));
|
|
}
|
|
|
|
#__next,
|
|
#root {
|
|
height: 100%;
|
|
}
|
|
|
|
.markdown ol {
|
|
counter-reset: item;
|
|
}
|
|
|
|
.markdown ul li {
|
|
display: block;
|
|
margin: 0;
|
|
position: relative;
|
|
}
|
|
|
|
.markdown ul li:before {
|
|
content: '•';
|
|
font-size: 0.875rem;
|
|
line-height: 1.25rem;
|
|
margin-left: -1rem;
|
|
position: absolute;
|
|
}
|
|
|
|
.markdown {
|
|
max-width: none;
|
|
}
|
|
|
|
.markdown h1,
|
|
.markdown h2 {
|
|
font-weight: 600;
|
|
}
|
|
|
|
.markdown h2 {
|
|
margin-bottom: 1rem;
|
|
margin-top: 2rem;
|
|
}
|
|
|
|
.markdown h3 {
|
|
font-weight: 600;
|
|
}
|
|
|
|
.markdown h3,
|
|
.markdown h4 {
|
|
margin-bottom: 0.5rem;
|
|
margin-top: 1rem;
|
|
}
|
|
|
|
.markdown h4 {
|
|
font-weight: 400;
|
|
}
|
|
|
|
.markdown h5 {
|
|
font-weight: 600;
|
|
}
|
|
|
|
.markdown blockquote {
|
|
--tw-border-opacity: 1;
|
|
border-color: rgba(142, 142, 160, var(--tw-border-opacity));
|
|
border-left-width: 2px;
|
|
line-height: 1rem;
|
|
padding-left: 1rem;
|
|
}
|
|
|
|
/* .markdown ol, */
|
|
.markdown ul {
|
|
display: flex;
|
|
flex-direction: column;
|
|
padding-left: 1rem;
|
|
}
|
|
|
|
.markdown ol {
|
|
list-style-type: decimal;
|
|
}
|
|
|
|
.markdown ol li,
|
|
.markdown ol li > p,
|
|
.markdown ol ol,
|
|
.markdown ol ul,
|
|
.markdown ul li,
|
|
.markdown ul li > p,
|
|
.markdown ul ol,
|
|
.markdown ul ul {
|
|
margin: 0;
|
|
}
|
|
|
|
.markdown table {
|
|
--tw-border-spacing-x: 0px;
|
|
--tw-border-spacing-y: 0px;
|
|
border-collapse: separate;
|
|
border-spacing: var(--tw-border-spacing-x) var(--tw-border-spacing-y);
|
|
width: 100%;
|
|
}
|
|
|
|
.markdown th {
|
|
background-color: rgba(236, 236, 241, 0.2);
|
|
border-bottom-width: 1px;
|
|
border-left-width: 1px;
|
|
border-top-width: 1px;
|
|
padding: 0.25rem 0.75rem;
|
|
}
|
|
|
|
.markdown th:first-child {
|
|
border-top-left-radius: 0.375rem;
|
|
}
|
|
|
|
.markdown th:last-child {
|
|
border-right-width: 1px;
|
|
border-top-right-radius: 0.375rem;
|
|
}
|
|
|
|
.markdown td {
|
|
border-bottom-width: 1px;
|
|
border-left-width: 1px;
|
|
padding: 0.25rem 0.75rem;
|
|
}
|
|
|
|
.markdown td:last-child {
|
|
border-right-width: 1px;
|
|
}
|
|
|
|
.markdown tbody tr:last-child td:first-child {
|
|
border-bottom-left-radius: 0.375rem;
|
|
}
|
|
|
|
.markdown tbody tr:last-child td:last-child {
|
|
border-bottom-right-radius: 0.375rem;
|
|
}
|
|
|
|
.markdown a {
|
|
text-decoration-line: underline;
|
|
text-underline-offset: 2px;
|
|
}
|
|
|
|
.animate-flash {
|
|
-webkit-animation: flash 2s steps(60, start);
|
|
animation: flash 2s steps(60, start);
|
|
}
|
|
|
|
@-webkit-keyframes flash {
|
|
0% {
|
|
background-color: hsla(0, 0%, 100%, 0.4);
|
|
}
|
|
}
|
|
|
|
@keyframes flash {
|
|
0% {
|
|
background-color: hsla(0, 0%, 100%, 0.4);
|
|
}
|
|
}
|
|
|
|
.truncate {
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.text-ellipsis,
|
|
.truncate {
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.group:hover .group-hover\:visible {
|
|
visibility: visible;
|
|
}
|
|
.group:hover .group-hover\:from-\[\#2A2B32\] {
|
|
--tw-gradient-from: #2a2b32;
|
|
--tw-gradient-to: rgba(42, 43, 50, 0);
|
|
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
|
|
}
|
|
.group:hover .group-hover\:text-gray-500 {
|
|
--tw-text-opacity: 1;
|
|
color: rgba(142, 142, 160, var(--tw-text-opacity));
|
|
}
|
|
.group:hover .group-hover\:text-gray-700 {
|
|
--tw-text-opacity: 1;
|
|
color: rgba(64, 65, 79, var(--tw-text-opacity));
|
|
}
|
|
.dark .dark\:prose-invert {
|
|
--tw-prose-body: var(--tw-prose-invert-body);
|
|
--tw-prose-headings: var(--tw-prose-invert-headings);
|
|
--tw-prose-lead: var(--tw-prose-invert-lead);
|
|
--tw-prose-links: var(--tw-prose-invert-links);
|
|
--tw-prose-bold: var(--tw-prose-invert-bold);
|
|
--tw-prose-counters: var(--tw-prose-invert-counters);
|
|
--tw-prose-bullets: var(--tw-prose-invert-bullets);
|
|
--tw-prose-hr: var(--tw-prose-invert-hr);
|
|
--tw-prose-quotes: var(--tw-prose-invert-quotes);
|
|
--tw-prose-quote-borders: var(--tw-prose-invert-quote-borders);
|
|
--tw-prose-captions: var(--tw-prose-invert-captions);
|
|
--tw-prose-code: var(--tw-prose-invert-code);
|
|
--tw-prose-pre-code: var(--tw-prose-invert-pre-code);
|
|
--tw-prose-pre-bg: var(--tw-prose-invert-pre-bg);
|
|
--tw-prose-th-borders: var(--tw-prose-invert-th-borders);
|
|
--tw-prose-td-borders: var(--tw-prose-invert-td-borders);
|
|
}
|
|
|
|
@-webkit-keyframes spin {
|
|
to {
|
|
-webkit-transform: rotate(1turn);
|
|
transform: rotate(1turn);
|
|
}
|
|
}
|
|
@keyframes spin {
|
|
to {
|
|
-webkit-transform: rotate(1turn);
|
|
transform: rotate(1turn);
|
|
}
|
|
}
|
|
.animate-spin {
|
|
-webkit-animation: spin 1s linear infinite;
|
|
animation: spin 1s linear infinite;
|
|
}
|
|
|
|
.result-streaming {
|
|
-webkit-animation: blink 1s steps(5, start) infinite;
|
|
animation: blink 1s steps(5, start) infinite;
|
|
content:"▋";
|
|
margin-left: 0.25rem;
|
|
vertical-align: baseline;
|
|
}
|
|
|
|
/* .result-streaming>:not(ol):not(ul):not(pre):last-child:after,
|
|
.result-streaming>ol:last-child li:last-child:after,
|
|
.result-streaming>pre:last-child code:after,
|
|
.result-streaming>ul:last-child li:last-child:after {
|
|
-webkit-animation:blink 1s steps(5,start) infinite;
|
|
animation:blink 1s steps(5,start) infinite;
|
|
content:"▋";
|
|
margin-left:.25rem;
|
|
vertical-align:baseline
|
|
} */
|
|
|
|
.form-input,
|
|
.form-multiselect,
|
|
.form-select,
|
|
.form-textarea {
|
|
--tw-shadow:0 0 transparent;
|
|
-webkit-appearance:none;
|
|
appearance:none;
|
|
background-color:#fff;
|
|
border-color:#8e8ea0;
|
|
border-radius:0;
|
|
border-width:1px;
|
|
font-size:1rem;
|
|
line-height:1.5rem;
|
|
padding:.5rem .75rem
|
|
}
|
|
.form-input:focus,
|
|
.form-multiselect:focus,
|
|
.form-select:focus,
|
|
.form-textarea:focus {
|
|
--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);
|
|
--tw-ring-offset-width:0px;
|
|
--tw-ring-offset-color:#fff;
|
|
--tw-ring-color:#2563eb;
|
|
--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
|
|
--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
|
|
border-color:#2563eb;
|
|
box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);
|
|
outline:2px solid transparent;
|
|
outline-offset:2px
|
|
}
|
|
.form-input::-webkit-input-placeholder,
|
|
.form-textarea::-webkit-input-placeholder {
|
|
color:#8e8ea0;
|
|
opacity:1
|
|
}
|
|
.form-input::placeholder,
|
|
.form-textarea::placeholder {
|
|
color:#8e8ea0;
|
|
opacity:1
|
|
}
|
|
.form-input::-webkit-datetime-edit-fields-wrapper {
|
|
padding:0
|
|
}
|
|
.form-input::-webkit-date-and-time-value {
|
|
min-height:1.5em
|
|
}
|
|
.form-input::-webkit-datetime-edit,
|
|
.form-input::-webkit-datetime-edit-day-field,
|
|
.form-input::-webkit-datetime-edit-hour-field,
|
|
.form-input::-webkit-datetime-edit-meridiem-field,
|
|
.form-input::-webkit-datetime-edit-millisecond-field,
|
|
.form-input::-webkit-datetime-edit-minute-field,
|
|
.form-input::-webkit-datetime-edit-month-field,
|
|
.form-input::-webkit-datetime-edit-second-field,
|
|
.form-input::-webkit-datetime-edit-year-field {
|
|
padding-bottom:0;
|
|
padding-top:0
|
|
}
|
|
|
|
.grow {
|
|
flex-grow:1
|
|
}
|
|
|
|
.transform {
|
|
-webkit-transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
|
transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
|
|
}
|
|
body,
|
|
html {
|
|
height:100%
|
|
}
|
|
.dark body,
|
|
.dark html {
|
|
--tw-bg-opacity:1;
|
|
background-color:rgba(52,53,65,var(--tw-bg-opacity))
|
|
}
|
|
#__next,
|
|
#root {
|
|
height:100%
|
|
}
|
|
.markdown ol {
|
|
counter-reset:item
|
|
}
|
|
.markdown ul li {
|
|
display:block;
|
|
margin:0;
|
|
position:relative
|
|
}
|
|
.markdown ul li:before {
|
|
content:"•";
|
|
font-size:.875rem;
|
|
line-height:1.25rem;
|
|
margin-left:-1rem;
|
|
position:absolute
|
|
}
|
|
.markdown {
|
|
max-width:none
|
|
}
|
|
.markdown h1,
|
|
.markdown h2 {
|
|
font-weight:600
|
|
}
|
|
.markdown h2 {
|
|
margin-bottom:1rem;
|
|
margin-top:2rem
|
|
}
|
|
.markdown h3 {
|
|
font-weight:600
|
|
}
|
|
.markdown h3,
|
|
.markdown h4 {
|
|
margin-bottom:.5rem;
|
|
margin-top:1rem
|
|
}
|
|
.markdown h4 {
|
|
font-weight:400
|
|
}
|
|
.markdown h5 {
|
|
font-weight:600
|
|
}
|
|
.markdown blockquote {
|
|
--tw-border-opacity:1;
|
|
border-color:rgba(142,142,160,var(--tw-border-opacity));
|
|
border-left-width:2px;
|
|
line-height:1rem;
|
|
padding-left:1rem
|
|
}
|
|
.markdown ol,
|
|
.markdown ul {
|
|
display:flex;
|
|
flex-direction:column;
|
|
padding-left:1rem
|
|
}
|
|
.markdown ol li,
|
|
.markdown ol li>p,
|
|
.markdown ol ol,
|
|
.markdown ol ul,
|
|
.markdown ul li,
|
|
.markdown ul li>p,
|
|
.markdown ul ol,
|
|
.markdown ul ul {
|
|
margin:0
|
|
}
|
|
.markdown table {
|
|
--tw-border-spacing-x:0px;
|
|
--tw-border-spacing-y:0px;
|
|
border-collapse:separate;
|
|
border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y);
|
|
width:100%
|
|
}
|
|
.markdown th {
|
|
background-color:rgba(236,236,241,.2);
|
|
border-bottom-width:1px;
|
|
border-left-width:1px;
|
|
border-top-width:1px;
|
|
padding:.25rem .75rem
|
|
}
|
|
.markdown th:first-child {
|
|
border-top-left-radius:.375rem
|
|
}
|
|
.markdown th:last-child {
|
|
border-right-width:1px;
|
|
border-top-right-radius:.375rem
|
|
}
|
|
.markdown td {
|
|
border-bottom-width:1px;
|
|
border-left-width:1px;
|
|
padding:.25rem .75rem
|
|
}
|
|
.markdown td:last-child {
|
|
border-right-width:1px
|
|
}
|
|
.markdown tbody tr:last-child td:first-child {
|
|
border-bottom-left-radius:.375rem
|
|
}
|
|
.markdown tbody tr:last-child td:last-child {
|
|
border-bottom-right-radius:.375rem
|
|
}
|
|
.markdown a {
|
|
text-decoration-line:underline;
|
|
text-underline-offset:2px
|
|
}
|
|
.conversation-item-time:before {
|
|
content:attr(data-time)
|
|
}
|
|
.tooltip-label:before {
|
|
content:attr(data-content)
|
|
}
|
|
button.scroll-convo {
|
|
display:none
|
|
}
|
|
@-webkit-keyframes blink {
|
|
to {
|
|
visibility:hidden
|
|
}
|
|
}
|
|
@keyframes blink {
|
|
to {
|
|
visibility:hidden
|
|
}
|
|
}
|
|
.animate-flash {
|
|
-webkit-animation:flash 2s steps(60,start);
|
|
animation:flash 2s steps(60,start)
|
|
}
|
|
@-webkit-keyframes flash {
|
|
0% {
|
|
background-color:hsla(0,0%,100%,.4)
|
|
}
|
|
}
|
|
@keyframes flash {
|
|
0% {
|
|
background-color:hsla(0,0%,100%,.4)
|
|
}
|
|
}
|
|
.hidden-visibility {
|
|
visibility: hidden;
|
|
}
|