@liveblocks/react-ui 3.2.0 → 3.3.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/dist/_private/index.cjs +4 -2
- package/dist/_private/index.cjs.map +1 -1
- package/dist/_private/index.d.cts +111 -38
- package/dist/_private/index.d.ts +111 -38
- package/dist/_private/index.js +3 -2
- package/dist/_private/index.js.map +1 -1
- package/dist/components/AiChat.cjs +11 -9
- package/dist/components/AiChat.cjs.map +1 -1
- package/dist/components/AiChat.js +12 -10
- package/dist/components/AiChat.js.map +1 -1
- package/dist/components/Thread.cjs +58 -0
- package/dist/components/Thread.cjs.map +1 -1
- package/dist/components/Thread.js +59 -1
- package/dist/components/Thread.js.map +1 -1
- package/dist/components/internal/AiComposer.cjs +132 -0
- package/dist/components/internal/AiComposer.cjs.map +1 -0
- package/dist/components/internal/AiComposer.js +130 -0
- package/dist/components/internal/AiComposer.js.map +1 -0
- package/dist/components/internal/Button.cjs.map +1 -1
- package/dist/components/internal/Button.js.map +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +123 -15
- package/dist/index.d.ts +123 -15
- package/dist/index.js.map +1 -1
- package/dist/overrides.cjs +4 -3
- package/dist/overrides.cjs.map +1 -1
- package/dist/overrides.js +4 -3
- package/dist/overrides.js.map +1 -1
- package/dist/primitives/AiComposer/contexts.cjs +24 -0
- package/dist/primitives/AiComposer/contexts.cjs.map +1 -0
- package/dist/primitives/AiComposer/contexts.js +19 -0
- package/dist/primitives/AiComposer/contexts.js.map +1 -0
- package/dist/primitives/AiComposer/index.cjs +348 -0
- package/dist/primitives/AiComposer/index.cjs.map +1 -0
- package/dist/primitives/AiComposer/index.js +340 -0
- package/dist/primitives/AiComposer/index.js.map +1 -0
- package/dist/primitives/Markdown.cjs +4 -3
- package/dist/primitives/Markdown.cjs.map +1 -1
- package/dist/primitives/Markdown.js +4 -3
- package/dist/primitives/Markdown.js.map +1 -1
- package/dist/primitives/index.d.cts +8 -1
- package/dist/primitives/index.d.ts +8 -1
- package/dist/version.cjs +1 -1
- package/dist/version.js +1 -1
- package/package.json +4 -4
- package/src/styles/index.css +37 -11
- package/styles.css +1 -1
- package/styles.css.map +1 -1
- package/dist/components/internal/AiChatComposer.cjs +0 -161
- package/dist/components/internal/AiChatComposer.cjs.map +0 -1
- package/dist/components/internal/AiChatComposer.js +0 -159
- package/dist/components/internal/AiChatComposer.js.map +0 -1
- package/dist/primitives/AiChatComposer/index.cjs +0 -202
- package/dist/primitives/AiChatComposer/index.cjs.map +0 -1
- package/dist/primitives/AiChatComposer/index.js +0 -195
- package/dist/primitives/AiChatComposer/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Markdown.js","sources":["../../src/primitives/Markdown.tsx"],"sourcesContent":["import { assertNever, sanitizeUrl } from \"@liveblocks/core\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { Lexer, type MarkedToken, type Token, type Tokens } from \"marked\";\nimport {\n type ComponentType,\n forwardRef,\n memo,\n type ReactNode,\n useMemo,\n} from \"react\";\n\nimport type { ComponentPropsWithSlot } from \"../types\";\n\nexport type MarkdownComponents = {\n /**\n * The component used to render paragraphs.\n *\n * @example\n * ```md\n * A paragraph.\n *\n * Another paragraph.\n * ```\n * ```tsx\n * <Markdown\n * components={{\n * Paragraph: ({ children }) => <p className=\"...\">{children}</p>\n * }}\n * />\n * ```\n */\n Paragraph: ComponentType<MarkdownComponentsParagraphProps>;\n\n /**\n * The component used to render inline elements (bold, italic, strikethrough, and inline code).\n *\n * @example\n * ```md\n * **Bold**, _italic_, ~~strikethrough~~, and `inline code`.\n * ```\n * ```tsx\n * <Markdown\n * components={{\n * Inline: ({ type, children }) => {\n * const Component = type;\n * return <Component className=\"...\">{children}</Component>;\n * }\n * }}\n * />\n * ```\n */\n Inline: ComponentType<MarkdownComponentsInlineProps>;\n\n /**\n * The component used to render links.\n *\n * @example\n * ```md\n * A [link](https://liveblocks.io).\n * ```\n * ```tsx\n * <Markdown\n * components={{\n * Link: ({ href, children }) => <a href={href} className=\"...\">{children}</a>\n * }}\n * />\n * ```\n */\n Link: ComponentType<MarkdownComponentsLinkProps>;\n\n /**\n * The component used to render headings.\n *\n * @example\n * ```md\n * # Heading 1\n * ## Heading 2\n * ### Heading 3\n * ```\n * ```tsx\n * <Markdown\n * components={{\n * Heading: ({ level, children }) => {\n * const Heading = `h${level}` as const;\n * return <Heading className=\"...\">{children}</Heading>;\n * }\n * }}\n * />\n * ```\n */\n Heading: ComponentType<MarkdownComponentsHeadingProps>;\n\n /**\n * The component used to render blockquotes.\n *\n * @example\n * ```md\n * > A blockquote.\n * ```\n * ```tsx\n * <Markdown\n * components={{\n * Blockquote: ({ children }) => <blockquote className=\"...\">{children}</blockquote>\n * }}\n * />\n * ```\n */\n Blockquote: ComponentType<MarkdownComponentsBlockquoteProps>;\n\n /**\n * The component used to render code blocks.\n *\n * @example\n * ```md\n * ```javascript\n * const a = 1;\n * ```\n * ```\n * ```tsx\n * <Markdown\n * components={{\n * CodeBlock: ({ language, code }) => (\n * <pre data-language={language} className=\"...\">\n * <code className=\"...\">{code}</code>\n * </pre>\n * )\n * }}\n * />\n * ```\n */\n CodeBlock: ComponentType<MarkdownComponentsCodeBlockProps>;\n\n /**\n * The component used to render images.\n *\n * @example\n * ```md\n * \n * ```\n * ```tsx\n * <Markdown\n * components={{\n * Image: ({ src, alt }) => <img src={src} alt={alt} className=\"...\">\n * }}\n * />\n * ```\n */\n Image: ComponentType<MarkdownComponentsImageProps>;\n\n /**\n * The component used to render lists.\n *\n * @example\n * ```md\n * 1. An ordered list item\n * - An unordered list item\n * - [x] A checked list item\n * ```\n * ```tsx\n * <Markdown\n * components={{\n * List: ({ type, items }) => {\n * const List = type === \"ordered\" ? \"ol\" : \"ul\";\n * return (\n * <List>\n * {items.map((item, index) => (\n * <li key={index}>\n * {item.checked !== undefined && (\n * <input type=\"checkbox\" disabled checked={item.checked} />{\" \"}\n * )}\n * {item.children}\n * </li>\n * ))}\n * </List>\n * );\n * }\n * }}\n * />\n * ```\n */\n List: ComponentType<MarkdownComponentsListProps>;\n\n /**\n * The component used to render tables.\n *\n * @example\n * ```md\n * | Heading 1 | Heading 2 |\n * |-----------|-----------|\n * | Cell 1 | Cell 2 |\n * | Cell 3 | Cell 4 |\n * ```\n * ```tsx\n * <Markdown\n * components={{\n * Table: ({ headings, rows }) => (\n * <table>\n * <thead>\n * <tr>\n * {headings.map(({ children }, index) => (\n * <th key={index}>{children}</th>\n * ))}\n * </tr>\n * </thead>\n * <tbody>\n * {rows.map((row, index) => (\n * <tr key={index}>\n * {row.map(({ children }, index) => (\n * <td key={index}>{children}</td>\n * ))}\n * </tr>\n * ))}\n * </tbody>\n * </table>\n * )\n * }}\n * />\n * ```\n */\n Table: ComponentType<MarkdownComponentsTableProps>;\n\n /**\n * The component used to render separators.\n *\n * @example\n * ```md\n * ---\n * ```\n * ```tsx\n * <Markdown components={{ Separator: () => <hr className=\"...\" /> }} />\n * ```\n */\n Separator: ComponentType;\n};\n\nexport interface MarkdownComponentsInlineProps {\n type: \"strong\" | \"em\" | \"code\" | \"del\";\n children: ReactNode;\n}\n\nexport interface MarkdownComponentsParagraphProps {\n children: ReactNode;\n}\n\ninterface MarkdownComponentsTableCell {\n align?: \"left\" | \"center\" | \"right\";\n children: ReactNode;\n}\n\nexport interface MarkdownComponentsTableProps {\n headings: MarkdownComponentsTableCell[];\n rows: MarkdownComponentsTableCell[][];\n}\n\ninterface MarkdownComponentsListItem {\n checked?: boolean;\n children: ReactNode;\n}\n\nexport interface MarkdownComponentsListProps {\n type: \"ordered\" | \"unordered\";\n items: MarkdownComponentsListItem[];\n}\n\nexport interface MarkdownComponentsBlockquoteProps {\n children: ReactNode;\n}\n\nexport interface MarkdownComponentsImageProps {\n src: string;\n alt: string;\n title?: string;\n}\n\nexport interface MarkdownComponentsHeadingProps {\n level: 1 | 2 | 3 | 4 | 5 | 6;\n children: ReactNode;\n}\n\nexport interface MarkdownComponentsLinkProps {\n href: string;\n title?: string;\n children: ReactNode;\n}\n\nexport interface MarkdownComponentsCodeBlockProps {\n code: string;\n language?: string;\n}\n\nexport interface MarkdownProps extends ComponentPropsWithSlot<\"div\"> {\n content: string;\n components?: Partial<MarkdownComponents>;\n}\n\nconst defaultComponents: MarkdownComponents = {\n Paragraph: ({ children }) => {\n return <p>{children}</p>;\n },\n Inline: ({ type, children }) => {\n switch (type) {\n case \"strong\":\n return <strong>{children}</strong>;\n case \"em\":\n return <em>{children}</em>;\n case \"code\":\n return <code>{children}</code>;\n case \"del\":\n return <del>{children}</del>;\n default:\n assertNever(type, \"Unknown inline type\");\n }\n },\n CodeBlock: ({ language, code }) => {\n return (\n <pre data-language={language ?? undefined}>\n <code>{code}</code>\n </pre>\n );\n },\n Link: ({ href, title, children }) => {\n return (\n <a href={href} title={title} target=\"_blank\" rel=\"noopener noreferrer\">\n {children}\n </a>\n );\n },\n Heading: ({ level, children }) => {\n const Heading = `h${level}` as const;\n\n return <Heading>{children}</Heading>;\n },\n Image: ({ src, alt, title }) => {\n return <img src={src} alt={alt} title={title} />;\n },\n Blockquote: ({ children }) => {\n return <blockquote>{children}</blockquote>;\n },\n Table: ({ headings, rows }) => {\n return (\n <table>\n <thead>\n <tr>\n {headings.map((heading, index) => {\n return (\n <th key={index} align={heading.align}>\n {heading.children}\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody>\n {rows.map((row, index) => {\n return (\n <tr key={index}>\n {row.map((cell, index) => {\n return (\n <td key={index} align={cell.align}>\n {cell.children}\n </td>\n );\n })}\n </tr>\n );\n })}\n </tbody>\n </table>\n );\n },\n List: ({ type, items }) => {\n const List = type === \"ordered\" ? \"ol\" : \"ul\";\n\n return (\n <List>\n {items.map((item, index) => (\n <li key={index}>\n {item.checked !== undefined && (\n <>\n <input type=\"checkbox\" disabled checked={item.checked} />{\" \"}\n </>\n )}\n {item.children}\n </li>\n ))}\n </List>\n );\n },\n Separator: () => {\n return <hr />;\n },\n};\n\nexport const Markdown = forwardRef<HTMLDivElement, MarkdownProps>(\n ({ content, components, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"div\";\n const tokens = useMemo(() => {\n return new Lexer().lex(content);\n }, [content]);\n\n return (\n <Component {...props} ref={forwardedRef}>\n {tokens.map((token, index) => {\n return (\n <MemoizedMarkdownToken\n token={token}\n key={index}\n components={components}\n />\n );\n })}\n </Component>\n );\n }\n);\n\nconst MemoizedMarkdownToken = memo(\n ({\n token,\n components,\n }: {\n token: Token;\n components?: Partial<MarkdownComponents>;\n }) => {\n return <MarkdownToken token={token} components={components} />;\n },\n (previousProps, nextProps) => {\n const previousToken = previousProps.token;\n const nextToken = nextProps.token;\n\n if (previousToken.raw.length !== nextToken.raw.length) {\n return false;\n }\n\n if (previousToken.type !== nextToken.type) {\n return false;\n }\n\n return previousToken.raw === nextToken.raw;\n }\n);\n\nexport function MarkdownToken({\n token,\n components,\n}: {\n token: Token;\n components: Partial<MarkdownComponents> | undefined;\n}) {\n // Marked.js supports generic tokens, but we don't use them.\n if (!isMarkedToken(token)) {\n return null;\n }\n\n switch (token.type) {\n case \"escape\": {\n return token.text;\n }\n\n case \"space\": {\n return null;\n }\n\n case \"text\": {\n if (token.tokens !== undefined) {\n return <MarkdownTokens tokens={token.tokens} components={components} />;\n } else {\n return parseHtmlEntities(token.text);\n }\n }\n\n case \"br\": {\n return <br />;\n }\n\n case \"paragraph\": {\n const Paragraph = components?.Paragraph ?? defaultComponents.Paragraph;\n\n return (\n <Paragraph>\n <MarkdownTokens tokens={token.tokens} components={components} />\n </Paragraph>\n );\n }\n\n case \"heading\": {\n const Heading = components?.Heading ?? defaultComponents.Heading;\n\n return (\n <Heading level={clampHeadingLevel(token.depth)}>\n <MarkdownTokens tokens={token.tokens} components={components} />\n </Heading>\n );\n }\n\n case \"strong\": {\n const Inline = components?.Inline ?? defaultComponents.Inline;\n\n return (\n <Inline type=\"strong\">\n <MarkdownTokens tokens={token.tokens} components={components} />\n </Inline>\n );\n }\n\n case \"em\": {\n const Inline = components?.Inline ?? defaultComponents.Inline;\n\n return (\n <Inline type=\"em\">\n <MarkdownTokens tokens={token.tokens} components={components} />\n </Inline>\n );\n }\n\n case \"codespan\": {\n const Inline = components?.Inline ?? defaultComponents.Inline;\n\n return <Inline type=\"code\">{parseHtmlEntities(token.text)}</Inline>;\n }\n\n case \"del\": {\n const Inline = components?.Inline ?? defaultComponents.Inline;\n\n return (\n <Inline type=\"del\">\n <MarkdownTokens tokens={token.tokens} components={components} />\n </Inline>\n );\n }\n\n case \"link\": {\n const href = sanitizeUrl(token.href);\n\n if (href === null) {\n return <MarkdownTokens tokens={token.tokens} components={components} />;\n }\n\n const Link = components?.Link ?? defaultComponents.Link;\n\n return (\n <Link href={href} title={token.title ?? undefined}>\n <MarkdownTokens tokens={token.tokens} components={components} />\n </Link>\n );\n }\n\n case \"code\": {\n let language: string | undefined = undefined;\n if (token.lang !== undefined) {\n language = token.lang.match(/^\\S*/)?.[0] ?? undefined;\n }\n\n const CodeBlock = components?.CodeBlock ?? defaultComponents.CodeBlock;\n\n return <CodeBlock language={language} code={token.text} />;\n }\n\n case \"blockquote\": {\n const Blockquote = components?.Blockquote ?? defaultComponents.Blockquote;\n\n return (\n <Blockquote>\n <MarkdownTokens\n tokens={token.tokens}\n components={components}\n normalizeToBlockTokens\n />\n </Blockquote>\n );\n }\n\n case \"list\": {\n const List = components?.List ?? defaultComponents.List;\n const items: MarkdownComponentsListItem[] = token.items.map((item) => {\n return {\n checked: item.task ? item.checked : undefined,\n children: (\n <MarkdownTokens\n tokens={item.tokens}\n components={components}\n // A \"loose\" list item in Markdown is one where the content is wrapped in a paragraph (or potentially other block) token\n normalizeToBlockTokens={item.loose}\n />\n ),\n };\n });\n\n return (\n <List type={token.ordered ? \"ordered\" : \"unordered\"} items={items} />\n );\n }\n\n case \"table\": {\n const Table = components?.Table ?? defaultComponents.Table;\n const headings: MarkdownComponentsTableCell[] = token.header.map(\n (cell) => ({\n align: cell.align ?? undefined,\n children: (\n <MarkdownTokens tokens={cell.tokens} components={components} />\n ),\n })\n );\n\n const rows: MarkdownComponentsTableCell[][] = token.rows.map((row) =>\n row.map((cell) => ({\n align: cell.align ?? undefined,\n children: (\n <MarkdownTokens tokens={cell.tokens} components={components} />\n ),\n }))\n );\n\n return <Table headings={headings} rows={rows} />;\n }\n\n case \"image\": {\n const href = sanitizeUrl(token.href);\n\n if (href === null) {\n return token.text;\n }\n\n const Image = components?.Image ?? defaultComponents.Image;\n\n return (\n <Image src={href} alt={token.text} title={token.title ?? undefined} />\n );\n }\n\n case \"hr\": {\n const Separator = components?.Separator ?? defaultComponents.Separator;\n\n return <Separator />;\n }\n\n // HTML elements/tokens are not supported (yet).\n case \"html\":\n default: {\n return null;\n }\n }\n}\n\nfunction MarkdownTokens({\n tokens,\n components,\n normalizeToBlockTokens = false,\n}: {\n tokens: Token[];\n components: Partial<MarkdownComponents> | undefined;\n normalizeToBlockTokens?: boolean;\n}) {\n const normalizedTokens: Token[] = [];\n\n if (normalizeToBlockTokens) {\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i]!;\n\n switch (token.type) {\n case \"text\": {\n // Wrap consecutive text tokens into a paragraph\n const texts: Tokens.Text[] = [token as Tokens.Text];\n while (i + 1 < tokens.length && tokens[i + 1]!.type === \"text\") {\n i++;\n texts.push(tokens[i] as Tokens.Text);\n }\n\n normalizedTokens.push({\n type: \"paragraph\",\n tokens: texts,\n raw: texts.map((text) => text.raw).join(\"\"),\n text: texts.map((text) => text.text).join(\"\"),\n } satisfies Tokens.Paragraph);\n\n break;\n }\n\n default: {\n normalizedTokens.push(token);\n }\n }\n }\n }\n\n return tokens.map((token, index) => (\n <MarkdownToken key={index} token={token} components={components} />\n ));\n}\n\nconst markedTokenTypes = [\n \"blockquote\",\n \"br\",\n \"code\",\n \"codespan\",\n \"def\",\n \"del\",\n \"em\",\n \"escape\",\n \"heading\",\n \"hr\",\n \"html\",\n \"image\",\n \"link\",\n \"list\",\n \"list_item\",\n \"paragraph\",\n \"space\",\n \"strong\",\n \"table\",\n \"text\",\n] as const satisfies MarkedToken[\"type\"][];\n\nfunction isMarkedToken(token: unknown): token is MarkedToken {\n return (\n typeof token === \"object\" &&\n token !== null &&\n \"type\" in token &&\n markedTokenTypes.includes(token.type as MarkedToken[\"type\"])\n );\n}\n\nfunction parseHtmlEntities(input: string) {\n const document = new DOMParser().parseFromString(\n `<!doctype html><body>${input}`,\n \"text/html\"\n );\n\n return document.body.textContent;\n}\n\nfunction clampHeadingLevel(level: number) {\n return Math.max(1, Math.min(6, level)) as 1 | 2 | 3 | 4 | 5 | 6;\n}\n"],"names":["index"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Markdown.js","sources":["../../src/primitives/Markdown.tsx"],"sourcesContent":["import { assertNever, type Relax, sanitizeUrl } from \"@liveblocks/core\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { Lexer, type MarkedToken, type Token, type Tokens } from \"marked\";\nimport {\n type ComponentType,\n forwardRef,\n memo,\n type ReactNode,\n useMemo,\n} from \"react\";\n\nimport type { ComponentPropsWithSlot } from \"../types\";\n\nexport type MarkdownComponents = {\n /**\n * The component used to render paragraphs.\n *\n * @example\n * ```md\n * A paragraph.\n *\n * Another paragraph.\n * ```\n * ```tsx\n * <Markdown\n * components={{\n * Paragraph: ({ children }) => <p className=\"...\">{children}</p>\n * }}\n * />\n * ```\n */\n Paragraph: ComponentType<MarkdownComponentsParagraphProps>;\n\n /**\n * The component used to render inline elements (bold, italic, strikethrough, and inline code).\n *\n * @example\n * ```md\n * **Bold**, _italic_, ~~strikethrough~~, and `inline code`.\n * ```\n * ```tsx\n * <Markdown\n * components={{\n * Inline: ({ type, children }) => {\n * const Component = type;\n * return <Component className=\"...\">{children}</Component>;\n * }\n * }}\n * />\n * ```\n */\n Inline: ComponentType<MarkdownComponentsInlineProps>;\n\n /**\n * The component used to render links.\n *\n * @example\n * ```md\n * A [link](https://liveblocks.io).\n * ```\n * ```tsx\n * <Markdown\n * components={{\n * Link: ({ href, children }) => <a href={href} className=\"...\">{children}</a>\n * }}\n * />\n * ```\n */\n Link: ComponentType<MarkdownComponentsLinkProps>;\n\n /**\n * The component used to render headings.\n *\n * @example\n * ```md\n * # Heading 1\n * ## Heading 2\n * ### Heading 3\n * ```\n * ```tsx\n * <Markdown\n * components={{\n * Heading: ({ level, children }) => {\n * const Heading = `h${level}` as const;\n * return <Heading className=\"...\">{children}</Heading>;\n * }\n * }}\n * />\n * ```\n */\n Heading: ComponentType<MarkdownComponentsHeadingProps>;\n\n /**\n * The component used to render blockquotes.\n *\n * @example\n * ```md\n * > A blockquote.\n * ```\n * ```tsx\n * <Markdown\n * components={{\n * Blockquote: ({ children }) => <blockquote className=\"...\">{children}</blockquote>\n * }}\n * />\n * ```\n */\n Blockquote: ComponentType<MarkdownComponentsBlockquoteProps>;\n\n /**\n * The component used to render code blocks.\n *\n * @example\n * ```md\n * ```javascript\n * const a = 1;\n * ```\n * ```\n * ```tsx\n * <Markdown\n * components={{\n * CodeBlock: ({ language, code }) => (\n * <pre data-language={language} className=\"...\">\n * <code className=\"...\">{code}</code>\n * </pre>\n * )\n * }}\n * />\n * ```\n */\n CodeBlock: ComponentType<MarkdownComponentsCodeBlockProps>;\n\n /**\n * The component used to render images.\n *\n * @example\n * ```md\n * \n * ```\n * ```tsx\n * <Markdown\n * components={{\n * Image: ({ src, alt }) => <img src={src} alt={alt} className=\"...\">\n * }}\n * />\n * ```\n */\n Image: ComponentType<MarkdownComponentsImageProps>;\n\n /**\n * The component used to render lists.\n *\n * @example\n * ```md\n * 1. An ordered list item\n * - An unordered list item\n * - [x] A checked list item\n * ```\n * ```tsx\n * <Markdown\n * components={{\n * List: ({ type, items, start }) => {\n * const List = type === \"ordered\" ? \"ol\" : \"ul\";\n * return (\n * <List start={start}>\n * {items.map((item, index) => (\n * <li key={index}>\n * {item.checked !== undefined && (\n * <input type=\"checkbox\" disabled checked={item.checked} />{\" \"}\n * )}\n * {item.children}\n * </li>\n * ))}\n * </List>\n * );\n * }\n * }}\n * />\n * ```\n */\n List: ComponentType<MarkdownComponentsListProps>;\n\n /**\n * The component used to render tables.\n *\n * @example\n * ```md\n * | Heading 1 | Heading 2 |\n * |-----------|-----------|\n * | Cell 1 | Cell 2 |\n * | Cell 3 | Cell 4 |\n * ```\n * ```tsx\n * <Markdown\n * components={{\n * Table: ({ headings, rows }) => (\n * <table>\n * <thead>\n * <tr>\n * {headings.map(({ children }, index) => (\n * <th key={index}>{children}</th>\n * ))}\n * </tr>\n * </thead>\n * <tbody>\n * {rows.map((row, index) => (\n * <tr key={index}>\n * {row.map(({ children }, index) => (\n * <td key={index}>{children}</td>\n * ))}\n * </tr>\n * ))}\n * </tbody>\n * </table>\n * )\n * }}\n * />\n * ```\n */\n Table: ComponentType<MarkdownComponentsTableProps>;\n\n /**\n * The component used to render separators.\n *\n * @example\n * ```md\n * ---\n * ```\n * ```tsx\n * <Markdown components={{ Separator: () => <hr className=\"...\" /> }} />\n * ```\n */\n Separator: ComponentType;\n};\n\nexport interface MarkdownComponentsInlineProps {\n type: \"strong\" | \"em\" | \"code\" | \"del\";\n children: ReactNode;\n}\n\nexport interface MarkdownComponentsParagraphProps {\n children: ReactNode;\n}\n\ninterface MarkdownComponentsTableCell {\n align?: \"left\" | \"center\" | \"right\";\n children: ReactNode;\n}\n\nexport interface MarkdownComponentsTableProps {\n headings: MarkdownComponentsTableCell[];\n rows: MarkdownComponentsTableCell[][];\n}\n\ninterface MarkdownComponentsListItem {\n checked?: boolean;\n children: ReactNode;\n}\n\nexport type MarkdownComponentsListProps = Relax<\n MarkdownComponentsOrderedListProps | MarkdownComponentsUnorderedListProps\n>;\n\ninterface MarkdownComponentsOrderedListProps {\n type: \"ordered\";\n items: MarkdownComponentsListItem[];\n start: number;\n}\n\ninterface MarkdownComponentsUnorderedListProps {\n type: \"unordered\";\n items: MarkdownComponentsListItem[];\n}\n\nexport interface MarkdownComponentsBlockquoteProps {\n children: ReactNode;\n}\n\nexport interface MarkdownComponentsImageProps {\n src: string;\n alt: string;\n title?: string;\n}\n\nexport interface MarkdownComponentsHeadingProps {\n level: 1 | 2 | 3 | 4 | 5 | 6;\n children: ReactNode;\n}\n\nexport interface MarkdownComponentsLinkProps {\n href: string;\n title?: string;\n children: ReactNode;\n}\n\nexport interface MarkdownComponentsCodeBlockProps {\n code: string;\n language?: string;\n}\n\nexport interface MarkdownProps extends ComponentPropsWithSlot<\"div\"> {\n content: string;\n components?: Partial<MarkdownComponents>;\n}\n\nconst defaultComponents: MarkdownComponents = {\n Paragraph: ({ children }) => {\n return <p>{children}</p>;\n },\n Inline: ({ type, children }) => {\n switch (type) {\n case \"strong\":\n return <strong>{children}</strong>;\n case \"em\":\n return <em>{children}</em>;\n case \"code\":\n return <code>{children}</code>;\n case \"del\":\n return <del>{children}</del>;\n default:\n assertNever(type, \"Unknown inline type\");\n }\n },\n CodeBlock: ({ language, code }) => {\n return (\n <pre data-language={language ?? undefined}>\n <code>{code}</code>\n </pre>\n );\n },\n Link: ({ href, title, children }) => {\n return (\n <a href={href} title={title} target=\"_blank\" rel=\"noopener noreferrer\">\n {children}\n </a>\n );\n },\n Heading: ({ level, children }) => {\n const Heading = `h${level}` as const;\n\n return <Heading>{children}</Heading>;\n },\n Image: ({ src, alt, title }) => {\n return <img src={src} alt={alt} title={title} />;\n },\n Blockquote: ({ children }) => {\n return <blockquote>{children}</blockquote>;\n },\n Table: ({ headings, rows }) => {\n return (\n <table>\n <thead>\n <tr>\n {headings.map((heading, index) => {\n return (\n <th key={index} align={heading.align}>\n {heading.children}\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody>\n {rows.map((row, index) => {\n return (\n <tr key={index}>\n {row.map((cell, index) => {\n return (\n <td key={index} align={cell.align}>\n {cell.children}\n </td>\n );\n })}\n </tr>\n );\n })}\n </tbody>\n </table>\n );\n },\n List: ({ type, items, start }) => {\n const List = type === \"ordered\" ? \"ol\" : \"ul\";\n\n return (\n <List start={start === 1 ? undefined : start}>\n {items.map((item, index) => (\n <li key={index}>\n {item.checked !== undefined && (\n <>\n <input type=\"checkbox\" disabled checked={item.checked} />{\" \"}\n </>\n )}\n {item.children}\n </li>\n ))}\n </List>\n );\n },\n Separator: () => {\n return <hr />;\n },\n};\n\nexport const Markdown = forwardRef<HTMLDivElement, MarkdownProps>(\n ({ content, components, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"div\";\n const tokens = useMemo(() => {\n return new Lexer().lex(content);\n }, [content]);\n\n return (\n <Component {...props} ref={forwardedRef}>\n {tokens.map((token, index) => {\n return (\n <MemoizedMarkdownToken\n token={token}\n key={index}\n components={components}\n />\n );\n })}\n </Component>\n );\n }\n);\n\nconst MemoizedMarkdownToken = memo(\n ({\n token,\n components,\n }: {\n token: Token;\n components?: Partial<MarkdownComponents>;\n }) => {\n return <MarkdownToken token={token} components={components} />;\n },\n (previousProps, nextProps) => {\n const previousToken = previousProps.token;\n const nextToken = nextProps.token;\n\n if (previousToken.raw.length !== nextToken.raw.length) {\n return false;\n }\n\n if (previousToken.type !== nextToken.type) {\n return false;\n }\n\n return previousToken.raw === nextToken.raw;\n }\n);\n\nexport function MarkdownToken({\n token,\n components,\n}: {\n token: Token;\n components: Partial<MarkdownComponents> | undefined;\n}) {\n // Marked.js supports generic tokens, but we don't use them.\n if (!isMarkedToken(token)) {\n return null;\n }\n\n switch (token.type) {\n case \"escape\": {\n return token.text;\n }\n\n case \"space\": {\n return null;\n }\n\n case \"text\": {\n if (token.tokens !== undefined) {\n return <MarkdownTokens tokens={token.tokens} components={components} />;\n } else {\n return parseHtmlEntities(token.text);\n }\n }\n\n case \"br\": {\n return <br />;\n }\n\n case \"paragraph\": {\n const Paragraph = components?.Paragraph ?? defaultComponents.Paragraph;\n\n return (\n <Paragraph>\n <MarkdownTokens tokens={token.tokens} components={components} />\n </Paragraph>\n );\n }\n\n case \"heading\": {\n const Heading = components?.Heading ?? defaultComponents.Heading;\n\n return (\n <Heading level={clampHeadingLevel(token.depth)}>\n <MarkdownTokens tokens={token.tokens} components={components} />\n </Heading>\n );\n }\n\n case \"strong\": {\n const Inline = components?.Inline ?? defaultComponents.Inline;\n\n return (\n <Inline type=\"strong\">\n <MarkdownTokens tokens={token.tokens} components={components} />\n </Inline>\n );\n }\n\n case \"em\": {\n const Inline = components?.Inline ?? defaultComponents.Inline;\n\n return (\n <Inline type=\"em\">\n <MarkdownTokens tokens={token.tokens} components={components} />\n </Inline>\n );\n }\n\n case \"codespan\": {\n const Inline = components?.Inline ?? defaultComponents.Inline;\n\n return <Inline type=\"code\">{parseHtmlEntities(token.text)}</Inline>;\n }\n\n case \"del\": {\n const Inline = components?.Inline ?? defaultComponents.Inline;\n\n return (\n <Inline type=\"del\">\n <MarkdownTokens tokens={token.tokens} components={components} />\n </Inline>\n );\n }\n\n case \"link\": {\n const href = sanitizeUrl(token.href);\n\n if (href === null) {\n return <MarkdownTokens tokens={token.tokens} components={components} />;\n }\n\n const Link = components?.Link ?? defaultComponents.Link;\n\n return (\n <Link href={href} title={token.title ?? undefined}>\n <MarkdownTokens tokens={token.tokens} components={components} />\n </Link>\n );\n }\n\n case \"code\": {\n let language: string | undefined = undefined;\n if (token.lang !== undefined) {\n language = token.lang.match(/^\\S*/)?.[0] ?? undefined;\n }\n\n const CodeBlock = components?.CodeBlock ?? defaultComponents.CodeBlock;\n\n return <CodeBlock language={language} code={token.text} />;\n }\n\n case \"blockquote\": {\n const Blockquote = components?.Blockquote ?? defaultComponents.Blockquote;\n\n return (\n <Blockquote>\n <MarkdownTokens\n tokens={token.tokens}\n components={components}\n normalizeToBlockTokens\n />\n </Blockquote>\n );\n }\n\n case \"list\": {\n const List = components?.List ?? defaultComponents.List;\n const items: MarkdownComponentsListItem[] = token.items.map((item) => {\n return {\n checked: item.task ? item.checked : undefined,\n children: (\n <MarkdownTokens\n tokens={item.tokens}\n components={components}\n // A \"loose\" list item in Markdown is one where the content is wrapped in a paragraph (or potentially other block) token\n normalizeToBlockTokens={item.loose}\n />\n ),\n };\n });\n\n const props: MarkdownComponentsListProps = token.ordered\n ? { type: \"ordered\", items, start: token.start || 1 }\n : { type: \"unordered\", items };\n\n return <List {...props} />;\n }\n\n case \"table\": {\n const Table = components?.Table ?? defaultComponents.Table;\n const headings: MarkdownComponentsTableCell[] = token.header.map(\n (cell) => ({\n align: cell.align ?? undefined,\n children: (\n <MarkdownTokens tokens={cell.tokens} components={components} />\n ),\n })\n );\n\n const rows: MarkdownComponentsTableCell[][] = token.rows.map((row) =>\n row.map((cell) => ({\n align: cell.align ?? undefined,\n children: (\n <MarkdownTokens tokens={cell.tokens} components={components} />\n ),\n }))\n );\n\n return <Table headings={headings} rows={rows} />;\n }\n\n case \"image\": {\n const href = sanitizeUrl(token.href);\n\n if (href === null) {\n return token.text;\n }\n\n const Image = components?.Image ?? defaultComponents.Image;\n\n return (\n <Image src={href} alt={token.text} title={token.title ?? undefined} />\n );\n }\n\n case \"hr\": {\n const Separator = components?.Separator ?? defaultComponents.Separator;\n\n return <Separator />;\n }\n\n // HTML elements/tokens are not supported (yet).\n case \"html\":\n default: {\n return null;\n }\n }\n}\n\nfunction MarkdownTokens({\n tokens,\n components,\n normalizeToBlockTokens = false,\n}: {\n tokens: Token[];\n components: Partial<MarkdownComponents> | undefined;\n normalizeToBlockTokens?: boolean;\n}) {\n const normalizedTokens: Token[] = [];\n\n if (normalizeToBlockTokens) {\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i]!;\n\n switch (token.type) {\n case \"text\": {\n // Wrap consecutive text tokens into a paragraph\n const texts: Tokens.Text[] = [token as Tokens.Text];\n while (i + 1 < tokens.length && tokens[i + 1]!.type === \"text\") {\n i++;\n texts.push(tokens[i] as Tokens.Text);\n }\n\n normalizedTokens.push({\n type: \"paragraph\",\n tokens: texts,\n raw: texts.map((text) => text.raw).join(\"\"),\n text: texts.map((text) => text.text).join(\"\"),\n } satisfies Tokens.Paragraph);\n\n break;\n }\n\n default: {\n normalizedTokens.push(token);\n }\n }\n }\n }\n\n return tokens.map((token, index) => (\n <MarkdownToken key={index} token={token} components={components} />\n ));\n}\n\nconst markedTokenTypes = [\n \"blockquote\",\n \"br\",\n \"code\",\n \"codespan\",\n \"def\",\n \"del\",\n \"em\",\n \"escape\",\n \"heading\",\n \"hr\",\n \"html\",\n \"image\",\n \"link\",\n \"list\",\n \"list_item\",\n \"paragraph\",\n \"space\",\n \"strong\",\n \"table\",\n \"text\",\n] as const satisfies MarkedToken[\"type\"][];\n\nfunction isMarkedToken(token: unknown): token is MarkedToken {\n return (\n typeof token === \"object\" &&\n token !== null &&\n \"type\" in token &&\n markedTokenTypes.includes(token.type as MarkedToken[\"type\"])\n );\n}\n\nfunction parseHtmlEntities(input: string) {\n const document = new DOMParser().parseFromString(\n `<!doctype html><body>${input}`,\n \"text/html\"\n );\n\n return document.body.textContent;\n}\n\nfunction clampHeadingLevel(level: number) {\n return Math.max(1, Math.min(6, level)) as 1 | 2 | 3 | 4 | 5 | 6;\n}\n"],"names":["index"],"mappings":"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"}
|
|
@@ -22,6 +22,13 @@ type ComposerBodyMarks = {
|
|
|
22
22
|
[K in ComposerBodyMark]: boolean;
|
|
23
23
|
};
|
|
24
24
|
|
|
25
|
+
interface AiComposerSubmitMessage {
|
|
26
|
+
/**
|
|
27
|
+
* The submitted message text.
|
|
28
|
+
*/
|
|
29
|
+
text: string;
|
|
30
|
+
}
|
|
31
|
+
|
|
25
32
|
type CommentMentionProps = ComponentPropsWithSlot<"span">;
|
|
26
33
|
type CommentBodyMentionProps = {
|
|
27
34
|
/**
|
|
@@ -498,4 +505,4 @@ interface TimestampProps extends Omit<ComponentPropsWithSlot<"time">, "children"
|
|
|
498
505
|
*/
|
|
499
506
|
declare const Timestamp: react.ForwardRefExoticComponent<TimestampProps & react.RefAttributes<HTMLTimeElement>>;
|
|
500
507
|
|
|
501
|
-
export { AttachmentTooLargeError, index$1 as Comment, CommentBodyComponents, CommentBodyLinkProps, CommentBodyMentionProps, CommentBodyProps, CommentLinkProps, CommentMentionProps, index as Composer, ComposerAttachFilesProps, ComposerAttachmentsDropAreaProps, ComposerBodyMark, ComposerBodyMarks, ComposerContext, ComposerEditorComponents, ComposerEditorFloatingToolbarProps, ComposerEditorLinkProps, ComposerEditorMentionProps, ComposerEditorMentionSuggestionsProps, ComposerEditorProps, ComposerFloatingToolbarProps, ComposerFormProps, ComposerLinkProps, ComposerMarkToggleProps, ComposerMentionProps, ComposerSubmitComment, ComposerSubmitProps, ComposerSuggestionsListItemProps, ComposerSuggestionsListProps, FileSize, FileSizeProps, Timestamp, TimestampProps, useComposer };
|
|
508
|
+
export { AiComposerSubmitMessage, AttachmentTooLargeError, index$1 as Comment, CommentBodyComponents, CommentBodyLinkProps, CommentBodyMentionProps, CommentBodyProps, CommentLinkProps, CommentMentionProps, index as Composer, ComposerAttachFilesProps, ComposerAttachmentsDropAreaProps, ComposerBodyMark, ComposerBodyMarks, ComposerContext, ComposerEditorComponents, ComposerEditorFloatingToolbarProps, ComposerEditorLinkProps, ComposerEditorMentionProps, ComposerEditorMentionSuggestionsProps, ComposerEditorProps, ComposerFloatingToolbarProps, ComposerFormProps, ComposerLinkProps, ComposerMarkToggleProps, ComposerMentionProps, ComposerSubmitComment, ComposerSubmitProps, ComposerSuggestionsListItemProps, ComposerSuggestionsListProps, FileSize, FileSizeProps, Timestamp, TimestampProps, useComposer };
|
|
@@ -22,6 +22,13 @@ type ComposerBodyMarks = {
|
|
|
22
22
|
[K in ComposerBodyMark]: boolean;
|
|
23
23
|
};
|
|
24
24
|
|
|
25
|
+
interface AiComposerSubmitMessage {
|
|
26
|
+
/**
|
|
27
|
+
* The submitted message text.
|
|
28
|
+
*/
|
|
29
|
+
text: string;
|
|
30
|
+
}
|
|
31
|
+
|
|
25
32
|
type CommentMentionProps = ComponentPropsWithSlot<"span">;
|
|
26
33
|
type CommentBodyMentionProps = {
|
|
27
34
|
/**
|
|
@@ -498,4 +505,4 @@ interface TimestampProps extends Omit<ComponentPropsWithSlot<"time">, "children"
|
|
|
498
505
|
*/
|
|
499
506
|
declare const Timestamp: react.ForwardRefExoticComponent<TimestampProps & react.RefAttributes<HTMLTimeElement>>;
|
|
500
507
|
|
|
501
|
-
export { AttachmentTooLargeError, index$1 as Comment, CommentBodyComponents, CommentBodyLinkProps, CommentBodyMentionProps, CommentBodyProps, CommentLinkProps, CommentMentionProps, index as Composer, ComposerAttachFilesProps, ComposerAttachmentsDropAreaProps, ComposerBodyMark, ComposerBodyMarks, ComposerContext, ComposerEditorComponents, ComposerEditorFloatingToolbarProps, ComposerEditorLinkProps, ComposerEditorMentionProps, ComposerEditorMentionSuggestionsProps, ComposerEditorProps, ComposerFloatingToolbarProps, ComposerFormProps, ComposerLinkProps, ComposerMarkToggleProps, ComposerMentionProps, ComposerSubmitComment, ComposerSubmitProps, ComposerSuggestionsListItemProps, ComposerSuggestionsListProps, FileSize, FileSizeProps, Timestamp, TimestampProps, useComposer };
|
|
508
|
+
export { AiComposerSubmitMessage, AttachmentTooLargeError, index$1 as Comment, CommentBodyComponents, CommentBodyLinkProps, CommentBodyMentionProps, CommentBodyProps, CommentLinkProps, CommentMentionProps, index as Composer, ComposerAttachFilesProps, ComposerAttachmentsDropAreaProps, ComposerBodyMark, ComposerBodyMarks, ComposerContext, ComposerEditorComponents, ComposerEditorFloatingToolbarProps, ComposerEditorLinkProps, ComposerEditorMentionProps, ComposerEditorMentionSuggestionsProps, ComposerEditorProps, ComposerFloatingToolbarProps, ComposerFormProps, ComposerLinkProps, ComposerMarkToggleProps, ComposerMentionProps, ComposerSubmitComment, ComposerSubmitProps, ComposerSuggestionsListItemProps, ComposerSuggestionsListProps, FileSize, FileSizeProps, Timestamp, TimestampProps, useComposer };
|
package/dist/version.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const PKG_NAME = "@liveblocks/react-ui";
|
|
4
|
-
const PKG_VERSION = typeof "3.
|
|
4
|
+
const PKG_VERSION = typeof "3.3.0" === "string" && "3.3.0";
|
|
5
5
|
const PKG_FORMAT = typeof "cjs" === "string" && "cjs";
|
|
6
6
|
|
|
7
7
|
exports.PKG_FORMAT = PKG_FORMAT;
|
package/dist/version.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const PKG_NAME = "@liveblocks/react-ui";
|
|
2
|
-
const PKG_VERSION = typeof "3.
|
|
2
|
+
const PKG_VERSION = typeof "3.3.0" === "string" && "3.3.0";
|
|
3
3
|
const PKG_FORMAT = typeof "esm" === "string" && "esm";
|
|
4
4
|
|
|
5
5
|
export { PKG_FORMAT, PKG_NAME, PKG_VERSION };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@liveblocks/react-ui",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.3.0",
|
|
4
4
|
"description": "A set of React pre-built components for the Liveblocks products. Liveblocks is the all-in-one toolkit to build collaborative products like Figma, Notion, and more.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -76,9 +76,9 @@
|
|
|
76
76
|
},
|
|
77
77
|
"dependencies": {
|
|
78
78
|
"@floating-ui/react-dom": "^2.1.2",
|
|
79
|
-
"@liveblocks/client": "3.
|
|
80
|
-
"@liveblocks/core": "3.
|
|
81
|
-
"@liveblocks/react": "3.
|
|
79
|
+
"@liveblocks/client": "3.3.0",
|
|
80
|
+
"@liveblocks/core": "3.3.0",
|
|
81
|
+
"@liveblocks/react": "3.3.0",
|
|
82
82
|
"@radix-ui/react-dropdown-menu": "^2.1.2",
|
|
83
83
|
"@radix-ui/react-popover": "^1.1.2",
|
|
84
84
|
"@radix-ui/react-slot": "^1.1.0",
|
package/src/styles/index.css
CHANGED
|
@@ -306,6 +306,10 @@
|
|
|
306
306
|
transition-property: background, color, opacity, box-shadow;
|
|
307
307
|
}
|
|
308
308
|
|
|
309
|
+
&:where([data-variant="ghost"]) {
|
|
310
|
+
background: transparent;
|
|
311
|
+
}
|
|
312
|
+
|
|
309
313
|
&:where(:has(.lb-button-label)) {
|
|
310
314
|
gap: calc(0.175 * var(--lb-spacing));
|
|
311
315
|
padding-inline: calc(0.55 * var(--lb-spacing));
|
|
@@ -604,7 +608,7 @@
|
|
|
604
608
|
flex-direction: column;
|
|
605
609
|
gap: 0.25em;
|
|
606
610
|
margin-block: 0.75em;
|
|
607
|
-
padding-inline-start: 1.
|
|
611
|
+
padding-inline-start: 1.125em;
|
|
608
612
|
list-style-position: outside;
|
|
609
613
|
|
|
610
614
|
:where(ol, ul) {
|
|
@@ -1591,6 +1595,30 @@
|
|
|
1591
1595
|
}
|
|
1592
1596
|
}
|
|
1593
1597
|
|
|
1598
|
+
.lb-thread-show-more {
|
|
1599
|
+
position: relative;
|
|
1600
|
+
z-index: 1;
|
|
1601
|
+
display: flex;
|
|
1602
|
+
gap: calc(0.5 * var(--lb-spacing));
|
|
1603
|
+
justify-content: center;
|
|
1604
|
+
align-items: center;
|
|
1605
|
+
|
|
1606
|
+
&::before,
|
|
1607
|
+
&::after {
|
|
1608
|
+
content: "";
|
|
1609
|
+
z-index: 0;
|
|
1610
|
+
flex: 1 0 auto;
|
|
1611
|
+
min-inline-size: var(--lb-spacing);
|
|
1612
|
+
block-size: 0;
|
|
1613
|
+
border-block-start: 1px dashed var(--lb-foreground-subtle);
|
|
1614
|
+
transition-property: border;
|
|
1615
|
+
}
|
|
1616
|
+
}
|
|
1617
|
+
|
|
1618
|
+
:where(.lb-thread-show-more + .lb-thread-new-indicator) {
|
|
1619
|
+
margin-block-start: calc(0.5 * var(--lb-spacing));
|
|
1620
|
+
}
|
|
1621
|
+
|
|
1594
1622
|
.lb-thread-new-indicator {
|
|
1595
1623
|
position: relative;
|
|
1596
1624
|
z-index: 1;
|
|
@@ -2408,18 +2436,16 @@
|
|
|
2408
2436
|
}
|
|
2409
2437
|
|
|
2410
2438
|
/*************************************
|
|
2411
|
-
*
|
|
2439
|
+
* AI Composer *
|
|
2412
2440
|
*************************************/
|
|
2413
2441
|
|
|
2414
|
-
.lb-ai-
|
|
2442
|
+
.lb-ai-composer {
|
|
2415
2443
|
position: relative;
|
|
2416
2444
|
inline-size: 100%;
|
|
2417
2445
|
color: var(--lb-foreground);
|
|
2418
2446
|
}
|
|
2419
2447
|
|
|
2420
|
-
.lb-ai-
|
|
2421
|
-
:has(.lb-ai-chat-composer-editor:not(:focus-visible))
|
|
2422
|
-
) {
|
|
2448
|
+
.lb-ai-composer-form:where(:has(.lb-ai-composer-editor:not(:focus-visible))) {
|
|
2423
2449
|
:where(.lb-button[data-variant="primary"]) {
|
|
2424
2450
|
--lb-button-background: var(--lb-foreground-subtle);
|
|
2425
2451
|
|
|
@@ -2433,7 +2459,7 @@
|
|
|
2433
2459
|
}
|
|
2434
2460
|
}
|
|
2435
2461
|
|
|
2436
|
-
.lb-ai-
|
|
2462
|
+
.lb-ai-composer-editor {
|
|
2437
2463
|
max-block-size: 15rem;
|
|
2438
2464
|
padding: var(--lb-spacing) var(--lb-spacing) 0;
|
|
2439
2465
|
color: var(--lb-foreground-secondary);
|
|
@@ -2476,7 +2502,7 @@
|
|
|
2476
2502
|
}
|
|
2477
2503
|
}
|
|
2478
2504
|
|
|
2479
|
-
.lb-ai-
|
|
2505
|
+
.lb-ai-composer-footer {
|
|
2480
2506
|
display: flex;
|
|
2481
2507
|
gap: calc(0.75 * var(--lb-spacing));
|
|
2482
2508
|
align-items: center;
|
|
@@ -2484,14 +2510,14 @@
|
|
|
2484
2510
|
padding: var(--lb-spacing);
|
|
2485
2511
|
}
|
|
2486
2512
|
|
|
2487
|
-
.lb-ai-
|
|
2488
|
-
.lb-ai-
|
|
2513
|
+
.lb-ai-composer-actions,
|
|
2514
|
+
.lb-ai-composer-editor-actions {
|
|
2489
2515
|
display: flex;
|
|
2490
2516
|
gap: calc(0.125 * var(--lb-spacing));
|
|
2491
2517
|
align-items: center;
|
|
2492
2518
|
}
|
|
2493
2519
|
|
|
2494
|
-
.lb-ai-
|
|
2520
|
+
.lb-ai-composer-editor-actions {
|
|
2495
2521
|
margin-inline-end: auto;
|
|
2496
2522
|
}
|
|
2497
2523
|
|
package/styles.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.lb-root{--lb-radius:.5em;--lb-spacing:1em;--lb-accent:#17f;--lb-accent-foreground:#fff;--lb-destructive:#f45;--lb-destructive-foreground:#fff;--lb-background:#fff;--lb-foreground:#111;--lb-line-height:1.5;--lb-icon-size:20px;--lb-icon-weight:1.5px;--lb-avatar-radius:50%;--lb-button-radius:calc(.75*var(--lb-radius));--lb-transition-duration:.1s;--lb-transition-easing:cubic-bezier(.4,0,.2,1);--lb-highlight-shadow:inset 0 0 0 1px #0000001a;--lb-elevation-shadow:0 0 0 1px #0000000a,0 2px 6px #00000014,0 8px 26px #0000001f;--lb-elevation-shadow-moderate:0 0 0 1px #0000000a,0 2px 6px #0000000d,0 8px 26px #0000000f;--lb-tooltip-shadow:0 2px 4px #00000014,0 4px 12px #0000001f;--lb-accent-contrast:8%;--lb-destructive-contrast:8%;--lb-foreground-contrast:8%;--lb-background-foreground-faint:color-mix(in srgb,var(--lb-foreground),var(--lb-background)calc(100% - var(--lb-foreground-contrast) + ((100% - var(--lb-foreground-contrast))/9)/2));--lb-background-accent-faint:color-mix(in srgb,var(--lb-accent),var(--lb-background)calc(100% - var(--lb-accent-contrast) + ((100% - var(--lb-accent-contrast))/9)/2));--lb-background-accent-subtle:color-mix(in srgb,var(--lb-accent),var(--lb-background)calc(100% - var(--lb-accent-contrast)));--lb-background-destructive-faint:color-mix(in srgb,var(--lb-destructive),var(--lb-background)calc(100% - var(--lb-destructive-contrast) + ((100% - var(--lb-destructive-contrast))/9)/2));--lb-background-destructive-subtle:color-mix(in srgb,var(--lb-destructive),var(--lb-background)calc(100% - var(--lb-destructive-contrast)));--lb-accent-subtle:color-mix(in srgb,var(--lb-accent),var(--lb-dynamic-background)calc(100% - var(--lb-accent-contrast)));--lb-accent-moderate:color-mix(in srgb,var(--lb-accent),var(--lb-dynamic-background)calc(100% - (var(--lb-accent-contrast) + 3*((100% - var(--lb-accent-contrast))/9))));--lb-accent-tertiary:color-mix(in srgb,var(--lb-accent),var(--lb-dynamic-background)calc(100% - (var(--lb-accent-contrast) + 5*((100% - var(--lb-accent-contrast))/9))));--lb-accent-secondary:color-mix(in srgb,var(--lb-accent),var(--lb-dynamic-background)calc(100% - (var(--lb-accent-contrast) + 7*((100% - var(--lb-accent-contrast))/9))));--lb-destructive-subtle:color-mix(in srgb,var(--lb-destructive),var(--lb-dynamic-background)calc(100% - var(--lb-destructive-contrast)));--lb-destructive-moderate:color-mix(in srgb,var(--lb-destructive),var(--lb-dynamic-background)calc(100% - (var(--lb-destructive-contrast) + 3*((100% - var(--lb-destructive-contrast))/9))));--lb-destructive-tertiary:color-mix(in srgb,var(--lb-destructive),var(--lb-dynamic-background)calc(100% - (var(--lb-destructive-contrast) + 5*((100% - var(--lb-destructive-contrast))/9))));--lb-destructive-secondary:color-mix(in srgb,var(--lb-destructive),var(--lb-dynamic-background)calc(100% - (var(--lb-destructive-contrast) + 7*((100% - var(--lb-destructive-contrast))/9))));--lb-foreground-subtle:color-mix(in srgb,var(--lb-foreground),var(--lb-dynamic-background)calc(100% - var(--lb-foreground-contrast)));--lb-foreground-moderate:color-mix(in srgb,var(--lb-foreground),var(--lb-dynamic-background)calc(100% - (var(--lb-foreground-contrast) + 3*((100% - var(--lb-foreground-contrast))/9))));--lb-foreground-tertiary:color-mix(in srgb,var(--lb-foreground),var(--lb-dynamic-background)calc(100% - (var(--lb-foreground-contrast) + 5*((100% - var(--lb-foreground-contrast))/9))));--lb-foreground-secondary:color-mix(in srgb,var(--lb-foreground),var(--lb-dynamic-background)calc(100% - (var(--lb-foreground-contrast) + 7*((100% - var(--lb-foreground-contrast))/9))));--lb-selection:color-mix(in srgb,var(--lb-accent)40%,transparent);overflow-wrap:break-word;accent-color:var(--lb-accent);-webkit-text-size-adjust:none;text-size-adjust:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lb-root,.lb-root *,.lb-root :before,.lb-root :after{box-sizing:border-box;transition:none var(--lb-transition-duration)var(--lb-transition-easing)}.lb-root:where(:not(.lb-root .lb-root)){--lb-dynamic-background:var(--lb-background)}.lb-loading,.lb-empty,.lb-error{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.lb-loading{color:var(--lb-foreground-moderate)}.lb-empty,.lb-error{padding:var(--lb-spacing);color:var(--lb-foreground-tertiary);text-align:center;text-wrap:balance;font-size:.875em}.lb-icon-container,.lb-icon{inline-size:var(--lb-icon-size);block-size:var(--lb-icon-size)}.lb-icon-container{justify-content:center;align-items:center;display:flex}.lb-icon{--lb-icon-background:var(--lb-dynamic-background)}.lb-icon *{stroke-width:var(--lb-icon-weight);vector-effect:non-scaling-stroke}.lb-icon-spinner{transform-origin:50%;animation:.75s linear infinite lb-animation-spin}.lb-button{--lb-button-background:var(--lb-dynamic-background);all:unset;box-sizing:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;transition-timing-function:var(--lb-transition-easing);transition-duration:var(--lb-transition-duration);-webkit-tap-highlight-color:transparent;padding:calc(.25*var(--lb-spacing));border-radius:var(--lb-button-radius);background:var(--lb-button-background);color:var(--lb-foreground-moderate);outline:none;justify-content:center;align-items:center;transition-property:background,color,opacity;display:flex;position:relative}.lb-button:after{content:"";border-radius:inherit;pointer-events:none;transition-property:box-shadow;position:absolute;inset:0}.lb-button:where(:focus-visible){z-index:1}.lb-button:where(:focus-visible):after{box-shadow:var(--lb-dynamic-background)0 0 0 2px,var(--lb-accent)0 0 0 4px}.lb-button:where(.lb-button\:non-disableable:disabled){cursor:default}.lb-button:where(:not(.lb-button\:non-disableable):disabled){opacity:.5;cursor:not-allowed}.lb-button:where(:enabled:hover,:enabled:focus-visible,[aria-expanded=true],[aria-selected=true]){--lb-button-background:var(--lb-foreground-subtle);color:var(--lb-foreground-tertiary)}.lb-button:where([data-variant=default]:not(:is(:enabled:hover,:enabled:focus-visible,[aria-expanded=true],[aria-selected=true],[aria-pressed]))){background:0 0}.lb-button:where([data-variant=primary]){--lb-button-background:var(--lb-accent);color:var(--lb-accent-foreground)}.lb-button:where([data-variant=primary]):where(:enabled:hover,:enabled:focus-visible,[aria-expanded=true],[aria-selected=true]){--lb-button-background:var(--lb-accent-secondary);color:var(--lb-accent-foreground)}.lb-button:where([data-variant=destructive]){--lb-button-background:var(--lb-destructive);color:var(--lb-destructive-foreground)}.lb-button:where([data-variant=destructive]):where(:enabled:hover,:enabled:focus-visible,[aria-expanded=true],[aria-selected=true]){--lb-button-background:var(--lb-destructive-secondary);color:var(--lb-destructive-foreground)}.lb-button:where([data-variant=outline]){box-shadow:inset 0 0 0 1px var(--lb-foreground-subtle);transition-property:background,color,opacity,box-shadow}.lb-button:where(:has(.lb-button-label)){gap:calc(.175*var(--lb-spacing));padding-inline:calc(.55*var(--lb-spacing))}.lb-button:where(:has(.lb-button-label)):where(:has(.lb-icon-container)){padding-inline-start:calc(.4*var(--lb-spacing))}.lb-button:where([data-variant=toolbar]){color:var(--lb-foreground-tertiary)}.lb-button:where([data-variant=toolbar]):where([aria-pressed=true]){--lb-button-background:var(--lb-foreground-subtle);color:var(--lb-foreground-secondary)}.lb-button:where([data-variant=toolbar]):where([aria-pressed=true]) :where(.lb-icon *){stroke-width:calc(1.25*var(--lb-icon-weight))}.lb-button:where([data-variant=secondary]){--lb-button-background:var(--lb-foreground-subtle);color:var(--lb-foreground-tertiary)}.lb-button:where([data-variant=secondary]):where(:enabled:hover,:enabled:focus-visible,[aria-expanded=true],[aria-selected=true]){--lb-button-background:var(--lb-foreground);color:var(--lb-dynamic-background)}.lb-button:where([data-size=large]){padding:calc(.5*var(--lb-spacing))}.lb-button:where([data-size=large]):where(:has(.lb-button-label)){gap:calc(.35*var(--lb-spacing));padding-inline:calc(.7*var(--lb-spacing))}.lb-button:where([data-size=large]):where(:has(.lb-button-label)):where(:has(.lb-icon-container)){padding-inline-start:calc(.6*var(--lb-spacing))}.lb-button :where(.lb-icon-container){flex:none}.lb-button :where(.lb-icon){--lb-icon-background:var(--lb-button-background)}.lb-button-label{block-size:var(--lb-icon-size);font-weight:500;font-size:calc(.7*var(--lb-icon-size));flex:none;align-items:center;line-height:1;display:inline-flex}.lb-dropdown{min-inline-size:160px}.lb-dropdown-label{padding:calc(.875*var(--lb-spacing))calc(.625*var(--lb-spacing))calc(.125*var(--lb-spacing));color:var(--lb-foreground-tertiary);text-transform:uppercase;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:.675em;font-weight:600}.lb-dropdown-label:where(:first-child){padding-block-start:var(--lb-spacing)}.lb-dropdown-separator{background:var(--lb-foreground-subtle);block-size:1px;margin:4px -4px}.lb-dropdown-item :where(.lb-icon-container){color:var(--lb-foreground-moderate);margin-inline-start:calc(-.125*var(--lb-spacing));margin-inline-end:calc(.375*var(--lb-spacing));transition-property:color}.lb-dropdown-item:where(:is([data-highlighted]:not([data-highlighted=false]),[data-selected]:not([data-selected=false]),[data-active]:not([data-active=false]))) :where(.lb-icon-container){color:var(--lb-foreground-tertiary)}.lb-dropdown-item:where(:has(.lb-dropdown-item-accessory)) :where(.lb-dropdown-item-label){margin-inline-end:calc(.375*var(--lb-spacing))}.lb-dropdown-item-accessory{margin-inline-start:auto;margin-inline-end:calc(-.25*var(--lb-spacing))}.lb-dropdown:where(:has(.lb-dropdown-item-icon)) :where(.lb-dropdown-item:not(:has(.lb-dropdown-item-icon))) :where(.lb-dropdown-item-label){margin-inline-start:calc(var(--lb-icon-size) + (.375 - .125)*var(--lb-spacing))}.lb-select-button{min-inline-size:0}.lb-select-button :where(.lb-button-label){text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.lb-select-button-chevron{opacity:.75;flex:none;margin-inline-end:calc(-.25*var(--lb-spacing))}.lb-collapsible-trigger{all:unset;box-sizing:inherit;-webkit-user-select:none;user-select:none;transition-timing-function:var(--lb-transition-easing);transition-duration:var(--lb-transition-duration);-webkit-tap-highlight-color:transparent;transition-property:color,background,opacity;position:relative}.lb-collapsible-trigger:where(:not([data-disabled])){cursor:pointer}.lb-collapsible-chevron{inline-size:calc(.8*var(--lb-icon-size));block-size:calc(.8*var(--lb-icon-size));color:var(--lb-foreground-moderate);margin-block-start:1px;margin-inline-start:-1px}.lb-collapsible-content:where([hidden]:not([hidden=until-found])){display:none!important}.lb-prose,.lb-prose *{line-height:var(--lb-line-height)}.lb-prose :where(p){margin-block:.75em}.lb-prose :where(p,li){text-wrap:pretty}.lb-prose :where(h1,h2,h3,h4,h5,h6){text-wrap:balance;margin-block:1.5em .375em;font-weight:600}.lb-prose :where(h1){font-size:1.75em;line-height:calc(.8*var(--lb-line-height))}.lb-prose :where(h2){font-size:1.5em;line-height:calc(.86*var(--lb-line-height))}.lb-prose :where(h3){font-size:1.25em;line-height:calc(.92*var(--lb-line-height))}.lb-prose :where(h4){font-size:1.125em;line-height:calc(.98*var(--lb-line-height))}.lb-prose :where(h5){font-size:1em}.lb-prose :where(h6){font-size:.875em}.lb-prose :where(hr){border:none;border-block-start:1px solid var(--lb-foreground-subtle);margin-block:1.5em}.lb-prose :where(ol,ul){flex-direction:column;gap:.25em;margin-block:.75em;padding-inline-start:1.5em;list-style-position:outside;display:flex}.lb-prose :where(ol,ul) :where(ol,ul){margin-block:0}.lb-prose :where(ul){list-style-type:disc}.lb-prose :where(ol){list-style-type:decimal}.lb-prose :where(li){margin-block:0}.lb-prose :where(li)>:where(ol,ul){margin-block-start:.25em}.lb-prose :where(li)>:where(p){margin-block:.25em}.lb-prose :where(li)>:where(p:first-child){margin-block-start:0}.lb-prose :where(li)>:where(p:last-child){margin-block-end:0}.lb-prose :where(a){color:var(--lb-foreground);text-decoration-line:underline;-webkit-text-decoration-color:var(--lb-foreground-moderate);text-decoration-color:var(--lb-foreground-moderate);text-underline-offset:2px;outline:none;font-weight:500;transition-property:color,text-decoration-color}.lb-prose :where(a):where([href]):where(:hover,:focus-visible){color:var(--lb-accent);-webkit-text-decoration-color:var(--lb-accent-moderate);text-decoration-color:var(--lb-accent-moderate)}.lb-prose :where(strong){font-weight:600}.lb-prose :where(table){border-collapse:collapse;table-layout:auto;word-break:break-word;inline-size:100%;min-inline-size:0;margin-block:1em}.lb-prose :where(thead){border-block-end:2px solid var(--lb-foreground-subtle)}.lb-prose :where(thead) :where(th){vertical-align:bottom}.lb-prose :where(tbody) :where(td){vertical-align:baseline}.lb-prose :where(tbody) :where(tr:not(:last-child)){border-block-end:1px solid var(--lb-foreground-subtle)}.lb-prose :where(tfoot){border-block-start:2px solid var(--lb-foreground-subtle)}.lb-prose :where(tfoot) :where(td){vertical-align:top}.lb-prose :where(th,td){text-align:start;padding-block:.5em;padding-inline:.75em}.lb-prose :where(th,td):where(:first-child){padding-inline-start:0}.lb-prose :where(th,td):where(:last-child){padding-inline-end:0}.lb-prose :where(.lb-code-block){margin-block:1em}.lb-prose :where(blockquote){margin-block:.75em;margin-inline:0;padding:0;padding-inline-start:1.25em;position:relative}.lb-prose :where(blockquote):after{content:"";border-radius:calc(.5*var(--lb-radius));background:var(--lb-foreground-subtle);block-size:100%;inline-size:4px;position:absolute;inset-block-start:0;inset-inline-start:0}.lb-prose :where(blockquote):where(:is(.lb-prose :where(blockquote))+:is(.lb-prose :where(blockquote))){margin-block-start:1em}.lb-prose :where(blockquote)>:where(:first-child){margin-block-start:0}.lb-prose :where(blockquote)>:where(:last-child){margin-block-end:0}.lb-prose>:where(:first-child){margin-block-start:0}.lb-prose>:where(:last-child){margin-block-end:0}.lb-composer-suggestions-list{margin:0;padding:0;list-style:none}.lb-composer-suggestions-list-item{scroll-margin-block:4px}.lb-composer-mention-suggestions{--lb-composer-mention-suggestion-avatar-size:1.25rem}.lb-composer-mention-suggestion{padding:calc(.375*var(--lb-spacing))calc(.625*var(--lb-spacing))}.lb-composer-mention-suggestion-avatar{inline-size:var(--lb-composer-mention-suggestion-avatar-size);margin-inline-start:calc(-.125*var(--lb-spacing));margin-inline-end:calc(.5*var(--lb-spacing));margin-block:calc(.125*var(--lb-spacing));background:var(--lb-foreground-subtle);color:var(--lb-foreground-moderate)}.lb-list{display:contents}.lb-list :where(:first-child):first-letter,.lb-date:first-letter{text-transform:capitalize}.lb-emoji{white-space:nowrap;justify-content:center;align-items:center;inline-size:1em;display:inline-flex}@supports (background:-webkit-named-image(i)){.lb-emoji{will-change:transform;transform:scale(.825)}}.lb-emoji-picker{--lb-emoji-picker-padding:6px;--lb-emoji-picker-offset-padding:calc(6px + .375*var(--lb-spacing));inline-size:100%;max-inline-size:var(--frimousse-viewport-width);block-size:374px;color:var(--lb-foreground);flex-direction:column;display:flex}.lb-emoji-picker-header{border-block-end:1px solid var(--lb-foreground-subtle);flex:none}.lb-emoji-picker-footer{gap:calc(.5*var(--lb-spacing));inline-size:100%;padding:calc(.5*var(--lb-spacing));border-block-start:1px solid var(--lb-foreground-subtle);flex:none;align-items:center;display:flex}.lb-emoji-picker-active-emoji{flex:none;justify-content:center;align-items:center;block-size:1.25em;inline-size:1.25em;font-size:1.25em;display:flex}.lb-emoji-picker-active-emoji-label{text-overflow:ellipsis;white-space:nowrap;color:var(--lb-foreground-secondary);flex:1;font-size:.8125em;font-weight:500;overflow:hidden}.lb-emoji-picker-active-emoji-label-placeholder{color:var(--lb-foreground-moderate);margin-inline-start:calc(.5*var(--lb-spacing))}.lb-emoji-picker-skin-tone-selector{inline-size:calc(1.75*var(--lb-spacing));block-size:calc(1.75*var(--lb-spacing));flex:none;justify-content:center;align-items:center;margin-inline-start:auto;display:flex}.lb-emoji-picker-search-container{align-items:center;display:flex;position:relative}.lb-emoji-picker-search-container :where(.lb-icon){color:var(--lb-foreground-moderate);pointer-events:none;position:absolute;inset-inline-start:var(--lb-emoji-picker-offset-padding)}.lb-emoji-picker-search{all:unset;box-sizing:inherit;inline-size:100%;padding:var(--lb-emoji-picker-offset-padding);appearance:textfield;background:0 0;outline:none;padding-inline-start:calc(var(--lb-icon-size) + var(--lb-emoji-picker-offset-padding) + .375*var(--lb-spacing))}.lb-emoji-picker-search::placeholder{color:var(--lb-foreground-moderate)}.lb-emoji-picker-search::-webkit-search-cancel-button{display:none}.lb-emoji-picker-content{outline:none;flex:1;position:relative}.lb-emoji-picker-category-header{padding:var(--lb-emoji-picker-padding)var(--lb-emoji-picker-offset-padding);background:var(--lb-dynamic-background)}.lb-emoji-picker-category-header-title{color:var(--lb-foreground-tertiary);text-transform:uppercase;font-size:.675em;font-weight:600}.lb-emoji-picker-list{animation:lb-animation-appear var(--lb-transition-duration)var(--lb-transition-easing)both;padding-block-end:var(--lb-emoji-picker-padding)}.lb-emoji-picker-row{padding-inline:var(--lb-emoji-picker-padding);scroll-margin-block-end:var(--lb-emoji-picker-padding);display:flex}.lb-emoji-picker-emoji{all:unset;box-sizing:inherit;aspect-ratio:1;padding:calc(.375*var(--lb-spacing));border-radius:calc(var(--lb-radius) - .75*6px);text-align:center;justify-content:center;align-items:center;display:flex;overflow:hidden}.lb-tooltip{--lb-background:#222;--lb-foreground:#fff;--lb-foreground-contrast:10%;--lb-dynamic-background:var(--lb-background);max-inline-size:300px;min-block-size:calc(calc(1em + 2*.25*var(--lb-spacing)) + 2*5px);padding-inline:calc(.75*var(--lb-spacing));border-radius:var(--lb-radius);background:var(--lb-dynamic-background);color:var(--lb-foreground);box-shadow:var(--lb-tooltip-shadow);overflow-wrap:anywhere;pointer-events:none;align-items:center;font-size:.75rem;line-height:1;display:flex;position:relative}.lb-tooltip:after{content:"";z-index:1;border-radius:inherit;box-shadow:var(--lb-inset-shadow);pointer-events:none;position:absolute;inset:0}.lb-tooltip\:multiline{padding-block:calc(calc(.625*var(--lb-spacing))*(1/1.5));text-align:center;justify-content:center;line-height:1.5}.lb-tooltip-shortcut{gap:calc(.125*var(--lb-spacing));block-size:calc(1em + 2*.25*var(--lb-spacing));padding-inline:calc(.25*var(--lb-spacing));border-radius:calc(var(--lb-radius) - .625*5px);background:var(--lb-foreground-subtle);color:var(--lb-foreground-tertiary);text-transform:uppercase;justify-content:center;align-items:center;margin-inline-start:calc(.75*var(--lb-spacing));margin-inline-end:calc(-1*calc(.75*var(--lb-spacing)) + 5px);font-family:inherit;line-height:1;display:flex}.lb-tooltip-shortcut :where(abbr){all:unset}.lb-avatar{aspect-ratio:1;border-radius:var(--lb-avatar-radius);background:var(--lb-foreground-subtle);color:var(--lb-foreground-moderate);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden;container-type:inline-size}.lb-avatar:where([data-loading]){background:var(--lb-foreground);opacity:.12}.lb-avatar-image{object-fit:cover;block-size:100%;inline-size:100%;position:absolute;inset:0}.lb-avatar-fallback{white-space:nowrap;font-size:35cqi;font-weight:500}@supports not (container-type:inline-size){.lb-avatar-fallback{display:none}}.lb-name{display:inline-block}.lb-name:where([data-loading]):before{content:"";vertical-align:middle;border-radius:calc(.5*var(--lb-radius));opacity:.12;-webkit-user-select:none;user-select:none;background:currentColor;block-size:1.75ex;inline-size:8ch;display:inline-block}:is(.lb-avatar,.lb-name):where([data-loading]){animation:8s linear infinite lb-animation-shimmer}:is(.lb-comment-body,.lb-composer-editor){color:var(--lb-foreground-secondary)}:is(.lb-comment-body,.lb-composer-editor),:is(.lb-comment-body,.lb-composer-editor) *{line-height:var(--lb-line-height)}:is(.lb-comment-body,.lb-composer-editor) :where(p){--lb-line-height-crop:calc(1lh - 1em)/-2;margin-block:.25em}:is(.lb-comment-body,.lb-composer-editor) :where(p):where(:first-of-type){margin-block-start:calc(.125em + var(--lb-line-height-crop))}:is(.lb-comment-body,.lb-composer-editor) :where(p):where(:last-of-type){margin-block-end:calc(.125em + var(--lb-line-height-crop))}:is(.lb-comment-body,.lb-composer-editor) :where(strong){font-weight:600}.lb-comment-mention,.lb-composer-mention{color:var(--lb-accent);-webkit-box-decoration-break:clone;box-decoration-break:clone;font-weight:500}:is(.lb-comment-link,.lb-composer-link){color:var(--lb-foreground);text-decoration-line:underline;-webkit-text-decoration-color:var(--lb-foreground-moderate);text-decoration-color:var(--lb-foreground-moderate);text-underline-offset:2px;outline:none;font-weight:500;transition-property:color,text-decoration-color}:is(.lb-comment-link,.lb-composer-link):where([href]):where(:hover,:focus-visible){color:var(--lb-accent);-webkit-text-decoration-color:var(--lb-accent-moderate);text-decoration-color:var(--lb-accent-moderate)}.lb-comment-mention:where([data-self]),.lb-composer-mention{border-radius:calc(.675*var(--lb-radius));background:var(--lb-accent-subtle);padding:.1em .3em}.lb-composer{background:var(--lb-dynamic-background);color:var(--lb-foreground);transition-property:background;position:relative}.lb-composer-form{margin:0}.lb-composer:where(:has(.lb-composer-editor:not(:focus-visible))) :where(.lb-button[data-variant=primary]){--lb-button-background:var(--lb-foreground-subtle);color:var(--lb-foreground-tertiary)}.lb-composer:where(:has(.lb-composer-editor:not(:focus-visible))) :where(.lb-button[data-variant=primary]):where(:enabled:hover,:enabled:focus-visible){--lb-button-background:var(--lb-accent);color:var(--lb-accent-foreground)}.lb-composer-editor{padding:var(--lb-spacing);outline:none}.lb-composer-editor:where([data-disabled]:not([data-disabled=false])){opacity:.5;cursor:not-allowed}:where(.lb-composer-editor-container:has(.lb-composer-attachments)) .lb-composer-editor{padding-block-end:calc(.25*var(--lb-spacing))}.lb-composer-editor :where([data-placeholder]){color:var(--lb-foreground-moderate)}.lb-composer-mention::selection{background:0 0}.lb-composer-mention ::selection{background:0 0}.lb-composer-mention:where([data-selected]:not([data-selected=false])){background:var(--lb-accent);color:var(--lb-accent-foreground)}.lb-composer-footer{gap:calc(.75*var(--lb-spacing));block-size:calc(calc(2*.25*var(--lb-spacing) + var(--lb-icon-size)) + var(--lb-spacing));padding:0 var(--lb-spacing)var(--lb-spacing);align-items:center;margin-block-start:calc(-.125*var(--lb-spacing));display:flex}.lb-composer-actions,.lb-composer-editor-actions{gap:calc(.125*var(--lb-spacing));align-items:center;display:flex}.lb-composer-editor-actions{margin-inline-end:auto}.lb-composer-attribution{color:var(--lb-foreground-moderate);outline:none;transition-property:color}.lb-composer-attribution:where(:hover,:focus-visible){color:var(--lb-foreground-tertiary)}.lb-composer-attribution :where(svg){block-size:calc(.75*calc(2*.25*var(--lb-spacing) + var(--lb-icon-size)))}.lb-composer-attachments{padding-inline:var(--lb-spacing);padding-block-start:calc(.75*var(--lb-spacing));padding-block-end:var(--lb-spacing)}.lb-composer-editor-container:where([data-drop]) *{pointer-events:none}.lb-composer-attachments-drop-area{color:var(--lb-accent);place-content:center;place-items:center;display:flex;position:absolute;inset:0}.lb-composer-attachments-drop-area:before,.lb-composer-attachments-drop-area:after{content:"";inset:calc(.5*var(--lb-spacing));z-index:0;border-radius:calc(.75*var(--lb-radius));position:absolute}.lb-composer-attachments-drop-area:before{opacity:calc(1*var(--lb-accent-contrast));background:currentColor}.lb-composer-attachments-drop-area:after{opacity:calc(2*var(--lb-accent-contrast));border:2px dashed}.lb-composer-attachments-drop-area-label{gap:calc(.25*var(--lb-spacing));padding:calc(.375*var(--lb-spacing))calc(.5*var(--lb-spacing));border-radius:calc(.75*var(--lb-radius));background:var(--lb-accent);color:var(--lb-accent-foreground);pointer-events:none;place-items:center;font-weight:500;display:flex;position:relative}.lb-composer-floating-toolbar{-webkit-user-select:none;user-select:none;flex-direction:row;gap:4px;padding:4px;display:flex}.lb-composer-floating-toolbar :where(.lb-button):before{content:"";z-index:-1;border-radius:inherit;position:absolute;inset:-4px}.lb-composer-floating-toolbar :where(.lb-button):where(:not(:first-of-type)):before{inset-inline-start:-2px}.lb-composer-floating-toolbar :where(.lb-button):where(:not(:last-of-type)):before{inset-inline-end:-2px}.lb-comment{--lb-comment-avatar-size:calc(2*.25*var(--lb-spacing) + var(--lb-icon-size));padding:var(--lb-spacing);background:var(--lb-dynamic-background);color:var(--lb-foreground);scroll-margin:var(--lb-spacing);font-weight:400;position:relative}.lb-comment:where(:target,[data-target]){--lb-dynamic-background:var(--lb-background-accent-faint)}.lb-comment:where([data-editing]){--lb-dynamic-background:var(--lb-background-foreground-faint)}.lb-comment-header{gap:calc(.75*var(--lb-spacing));block-size:var(--lb-comment-avatar-size);align-items:center;margin-block-end:calc(.75*var(--lb-spacing));display:flex;position:relative}.lb-comment-details{gap:calc(.75*var(--lb-spacing));align-items:center;min-inline-size:0;display:flex}.lb-comment-avatar{inline-size:var(--lb-comment-avatar-size);flex:none}.lb-comment-details-labels{gap:calc(.5*var(--lb-spacing));align-items:baseline;min-inline-size:0;display:flex}.lb-comment-author,.lb-comment-date{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lb-comment-author:first-letter,.lb-comment-date:first-letter{text-transform:capitalize}.lb-comment-author{font-weight:500}.lb-comment-date{color:var(--lb-foreground-tertiary);font-size:.875em}.lb-comment-date-created,.lb-comment-date-edited{display:contents}.lb-comment-actions{gap:calc(.125*var(--lb-spacing));margin-inline-start:auto;display:flex}.lb-comment-composer{margin:calc(-1*var(--lb-spacing));background:unset}.lb-comment-body :where(p span:only-child:empty):before{content:"";-webkit-user-select:none;user-select:none}.lb-comment-attachments{margin-block-start:calc(.75*var(--lb-spacing))}.lb-comment-reactions{gap:calc(.375*var(--lb-spacing));flex-wrap:wrap;margin-block-start:calc(.75*var(--lb-spacing));display:flex}.lb-comment-reaction{gap:calc(.375*var(--lb-spacing));block-size:calc(2*.25*var(--lb-spacing) + var(--lb-icon-size));padding-inline:calc(.575*var(--lb-spacing));border-radius:9999px}.lb-comment-reaction:where([data-self]){background:var(--lb-accent-subtle);color:var(--lb-accent-secondary);box-shadow:inset 0 0 0 1px var(--lb-accent-moderate)}.lb-comment-reaction:where([data-self]):where(:enabled:hover,:enabled:focus-visible,[aria-expanded=true],[aria-selected=true]){color:var(--lb-accent)}.lb-comment-reaction-count{font-variant-numeric:tabular-nums;font-size:.75em;font-weight:500}.lb-comment-reaction-tooltip{max-inline-size:200px}.lb-comment-deleted{color:var(--lb-foreground-tertiary);font-size:.875em}.lb-comment\:indent-content{min-block-size:calc(var(--lb-comment-avatar-size) + 2*var(--lb-spacing))}.lb-comment\:indent-content :where(.lb-comment-header){block-size:calc(2*.25*var(--lb-spacing) + var(--lb-icon-size));margin-block-end:calc(.25*var(--lb-spacing))}.lb-comment\:indent-content :where(.lb-comment-avatar){position:absolute;inset-block-start:0;inset-inline-start:0}.lb-comment\:indent-content :where(.lb-comment-details-labels){margin-inline-start:calc(var(--lb-comment-avatar-size) + .75*var(--lb-spacing))}.lb-comment\:indent-content :where(.lb-comment-content){padding-inline-start:calc(var(--lb-comment-avatar-size) + .75*var(--lb-spacing))}.lb-thread{background:var(--lb-dynamic-background);color:var(--lb-foreground);transition-property:background}.lb-thread-comments{z-index:0;flex-direction:column;display:flex;position:relative}.lb-thread-comment{z-index:0;padding-block:calc(.6*var(--lb-spacing));transition-property:background}.lb-thread-comment:where(.lb-comment\:indent-content){min-block-size:calc(var(--lb-comment-avatar-size) + var(--lb-spacing))}.lb-thread-comment:where(:first-of-type,[data-editing]){padding-block-start:var(--lb-spacing)}.lb-thread-comment:where(:first-of-type,[data-editing]):where(.lb-comment\:indent-content){min-block-size:calc(var(--lb-comment-avatar-size) + 1.5*var(--lb-spacing))}.lb-thread-comment:where(:last-of-type,[data-editing]){padding-block-end:var(--lb-spacing)}.lb-thread-comment:where(:last-of-type,[data-editing]):where(.lb-comment\:indent-content){min-block-size:calc(var(--lb-comment-avatar-size) + 1.75*var(--lb-spacing))}.lb-thread-new-indicator{z-index:1;justify-content:center;align-items:center;block-size:0;display:flex;position:relative}.lb-thread-new-indicator:before,.lb-thread-new-indicator:after{content:"";z-index:0;border-block-start:1px solid var(--lb-foreground-subtle);flex:1;block-size:0;transition-property:border}.lb-thread-new-indicator-label{z-index:1;gap:calc(.325*var(--lb-spacing));padding:calc(.25*var(--lb-spacing))var(--lb-spacing);color:var(--lb-accent);text-transform:uppercase;flex:none;align-items:center;font-size:.675em;font-weight:600;display:flex}.lb-thread-new-indicator-label-icon{inline-size:calc(.6*var(--lb-icon-size));block-size:calc(.6*var(--lb-icon-size))}.lb-thread-composer{position:relative}.lb-thread-composer:after{content:"";border-block-start:1px solid var(--lb-foreground-subtle);pointer-events:none;block-size:100%;inline-size:100%;transition-property:border;position:absolute;inset:0}.lb-comment-attachments,.lb-composer-attachments{gap:calc(.75*var(--lb-spacing));flex-direction:column;display:flex}.lb-attachments{gap:calc(.75*var(--lb-spacing));grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));display:grid}.lb-attachment,.lb-attachment-delete{all:unset;box-sizing:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;transition-timing-function:var(--lb-transition-easing);transition-duration:var(--lb-transition-duration);-webkit-tap-highlight-color:transparent;outline:none;transition-property:background,color,opacity;position:relative}.lb-attachment:after,.lb-attachment-delete:after{content:"";border-radius:inherit;pointer-events:none;transition-property:box-shadow;position:absolute;inset:0}.lb-attachment:where(:focus-visible),.lb-attachment-delete:where(:focus-visible){z-index:1}.lb-attachment:where(:focus-visible):after,.lb-attachment-delete:where(:focus-visible):after{box-shadow:var(--lb-dynamic-background)0 0 0 2px,var(--lb-accent)0 0 0 4px}.lb-attachment{border-radius:var(--lb-radius);background:var(--lb-dynamic-background);inline-size:100%;min-inline-size:0;box-shadow:inset 0 0 0 1px var(--lb-foreground-subtle);display:flex;position:relative}.lb-attachment:where([tabindex="-1"]){cursor:default}.lb-attachment:where(:not([tabindex="-1"])):where(:hover,:focus-visible){background:var(--lb-foreground-subtle)}.lb-attachment-delete{z-index:2;background:var(--lb-foreground-subtle);block-size:1.1rem;inline-size:1.1rem;color:var(--lb-foreground-secondary);box-shadow:0 0 0 2px var(--lb-dynamic-background);opacity:0;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;inset-block-start:-.35rem;inset-inline-end:-.35rem}.lb-attachment-delete:before{content:"";z-index:-1;border-radius:inherit;position:absolute;inset:-4px}.lb-attachment-delete:where(:hover,:focus-visible){background:var(--lb-foreground-secondary);color:var(--lb-dynamic-background)}:where(.lb-attachment:focus-within,.lb-attachment:hover) .lb-attachment-delete{opacity:1}.lb-attachment-delete :where(.lb-icon){inline-size:.75rem}.lb-attachment-details{gap:calc(.25*var(--lb-spacing));flex-direction:column;justify-content:center;min-inline-size:0;font-size:.875em;display:flex;position:relative}.lb-attachment-name{font-weight:500;display:flex}.lb-attachment-name-base,.lb-attachment-description{text-overflow:ellipsis;white-space:nowrap;transition-property:color;overflow:hidden}.lb-attachment-preview{background:color-mix(in srgb,transparent,var(--lb-foreground)var(--lb-foreground-contrast));color:var(--lb-foreground-tertiary);flex:none;justify-content:center;align-items:center;transition-property:background,color;display:flex;position:relative;overflow:hidden}.lb-attachment-preview-media{border-radius:inherit;transition-property:opacity}.lb-attachment-preview-media,.lb-attachment-preview-media:after,.lb-attachment-preview-media img,.lb-attachment-preview-media video{block-size:100%;inline-size:100%;position:absolute;inset:0}.lb-attachment-preview-media img,.lb-attachment-preview-media video{object-fit:cover;pointer-events:none}.lb-attachment-preview-media:after{content:"";border-radius:inherit;box-shadow:var(--lb-highlight-shadow);pointer-events:none}.lb-attachment-preview-media:where([data-hidden]){opacity:0}.lb-attachment-icon{color:var(--lb-foreground);flex:none;overflow:visible}.lb-attachment-icon-glyph{fill:var(--lb-foreground-moderate)}.lb-attachment-icon-background{fill:var(--lb-background)}.lb-attachment-icon-fold{fill-opacity:calc(.75*var(--lb-foreground-contrast))}.lb-attachment-icon-shadow{filter:blur(6px);fill-opacity:var(--lb-foreground-contrast)}.lb-file-attachment{gap:calc(.5*var(--lb-spacing));padding:calc(.5*var(--lb-spacing));padding-inline-end:calc(.65*var(--lb-spacing))}.lb-file-attachment :where(.lb-attachment-preview){aspect-ratio:1;border-radius:calc(.5*var(--lb-radius));inline-size:2.5rem}.lb-file-attachment :where(.lb-attachment-name){color:var(--lb-foreground-secondary)}.lb-file-attachment :where(.lb-attachment-description){color:var(--lb-foreground-tertiary)}.lb-file-attachment:where(:not([tabindex="-1"])):where(:hover,:focus-visible,:focus-within) :where(.lb-attachment-name){color:var(--lb-foreground)}.lb-file-attachment:where(:not([tabindex="-1"])):where(:hover,:focus-visible,:focus-within) :where(.lb-attachment-description){color:var(--lb-foreground-secondary)}.lb-media-attachment{aspect-ratio:16/10}.lb-media-attachment :where(.lb-attachment-preview){border-radius:inherit;position:absolute;inset:0}.lb-media-attachment :where(.lb-attachment-details){padding:calc(.75*var(--lb-spacing));text-shadow:0 0 2px #0006;opacity:0;background:linear-gradient(#0000,#000c);border-end-end-radius:inherit;border-end-start-radius:inherit;transition-property:opacity;position:absolute;inset-block-end:0;inset-inline:0}.lb-media-attachment :where(.lb-attachment-name){color:#fff}.lb-media-attachment :where(.lb-attachment-description){color:#fffc}.lb-media-attachment:where(:not([tabindex="-1"])):where(:hover,:focus-visible,:focus-within) :where(.lb-attachment-details){opacity:1}.lb-attachment:where([data-error]) :where(.lb-attachment-preview){background:var(--lb-destructive);color:var(--lb-destructive-foreground)}.lb-inbox-notification{--lb-inbox-notification-aside-size:36px;gap:calc(.75*var(--lb-spacing));padding:var(--lb-spacing);background:var(--lb-dynamic-background);color:var(--lb-foreground);-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:400;transition-property:background;display:flex;position:relative;overflow:hidden}.lb-inbox-notification:where([data-missing]){--lb-dynamic-background:var(--lb-background-accent-faint);--lb-accent:var(--lb-destructive)!important;--lb-accent-foreground:var(--lb-destructive-foreground)!important;--lb-accent-contrast:var(--lb-destructive-contrast)!important}.lb-inbox-notification:where([data-unread]){--lb-dynamic-background:var(--lb-background-accent-faint)}.lb-inbox-notification:where([href]){cursor:pointer}.lb-inbox-notification:where([href]):where(:hover,:focus-visible,:focus-within){--lb-dynamic-background:var(--lb-background-foreground-faint)}.lb-inbox-notification:where([href]):where([data-unread]):where(:hover,:focus-visible,:focus-within){--lb-dynamic-background:var(--lb-background-accent-subtle)}.lb-inbox-notification-aside{inline-size:var(--lb-inbox-notification-aside-size);flex:none}.lb-inbox-notification-icon{aspect-ratio:1;background:var(--lb-foreground-subtle);border-radius:50%;justify-content:center;place-items:center;display:flex}.lb-inbox-notification:where([data-missing]) :where(.lb-inbox-notification-icon){background:var(--lb-accent-subtle);color:var(--lb-accent)}.lb-inbox-notification-content{flex:1}.lb-inbox-notification-content,.lb-inbox-notification-body{min-inline-size:0;max-inline-size:100%}.lb-inbox-notification-header{gap:calc(.75*var(--lb-spacing));align-items:center;margin-block-start:calc(.25*var(--lb-spacing));margin-block-end:calc(.5*var(--lb-spacing));display:flex}.lb-inbox-notification-title{min-block-size:calc(2*.25*var(--lb-spacing) + var(--lb-icon-size))}:where(.lb-inbox-notification:not([data-inspector])) .lb-inbox-notification-title:first-letter{text-transform:capitalize}.lb-inbox-notification-title :where(strong,.lb-list,.lb-name){font-weight:500}.lb-inbox-notification-details{min-inline-size:0;block-size:calc(2*.25*var(--lb-spacing) + var(--lb-icon-size));flex:none;align-self:start;margin-inline-start:auto}.lb-inbox-notification-details-labels{align-items:baseline;min-inline-size:0;display:flex}.lb-inbox-notification-details-labels:before{content:""}.lb-inbox-notification-actions{gap:calc(.125*var(--lb-spacing));grid-area:actions;align-self:start;display:flex}.lb-inbox-notification-comments{gap:var(--lb-spacing);flex-direction:column;display:flex}.lb-inbox-notification-comment{background:0 0;padding:0}.lb-inbox-notification-comment :where(.lb-comment-header){block-size:auto;color:var(--lb-foreground-tertiary);font-size:.875rem}.lb-inbox-notification-comment :where(.lb-comment-reaction),.lb-inbox-notification-comment :where(.lb-comment-attachment){pointer-events:none}.lb-inbox-notification-date{color:var(--lb-foreground-tertiary);font-size:.875em}.lb-inbox-notification-unread-indicator{block-size:10px;inline-size:10px;background:var(--lb-accent);border-radius:50%;align-self:center;margin-inline-start:calc(.5*var(--lb-spacing))}.lb-history-version-summary{gap:calc(.25*var(--lb-spacing));inline-size:100%;min-inline-size:0;padding:var(--lb-spacing);background:var(--lb-dynamic-background);flex-direction:column;justify-content:center;transition-property:background;display:flex;position:relative}.lb-history-version-summary:where(:hover,:focus-visible,:focus-within,[data-selected]:not([data-selected=false])){--lb-dynamic-background:var(--lb-background-foreground-faint)}.lb-history-version-summary-date,.lb-history-version-summary-authors{text-overflow:ellipsis;white-space:nowrap;min-inline-size:0;max-inline-size:100%;overflow:hidden}.lb-history-version-summary-date:first-letter,.lb-history-version-summary-authors:first-letter{text-transform:capitalize}.lb-history-version-summary-date{color:var(--lb-foreground-secondary);font-weight:500}.lb-history-version-summary-authors{color:var(--lb-foreground-tertiary)}.lb-history-version-preview{background:var(--lb-dynamic-background);flex-direction:column;display:flex;position:relative;overflow-y:auto}.lb-history-version-preview-content{padding:var(--lb-spacing);flex:1 0 auto}.lb-history-version-preview-footer{gap:var(--lb-spacing);padding:var(--lb-spacing);border-block-start:1px solid var(--lb-foreground-subtle);background:var(--lb-dynamic-background);flex:none;align-items:center;margin-block-start:auto;display:flex;position:sticky;inset-block-end:0}.lb-history-version-preview-authors{text-overflow:ellipsis;white-space:nowrap;min-inline-size:0;color:var(--lb-foreground-tertiary);flex:auto;overflow:hidden}.lb-history-version-preview-actions{gap:calc(.35*var(--lb-spacing));flex:none;align-items:center;margin-inline-start:auto;display:flex}.lb-inbox-notification-list,.lb-history-version-summary-list{margin:0;padding:0;list-style:none}.lb-inbox-notification-list-item:where(:not(:last-of-type)),.lb-history-version-summary-list-item:where(:not(:last-of-type)){border-block-end:1px solid var(--lb-foreground-subtle)}.lb-root :where(code:not(pre>code)){border-radius:calc(.75*var(--lb-radius));background:var(--lb-foreground-subtle);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:.2em .4em;font-size:85%;line-height:1}.lb-root :where(span:has(code)+span code){border-start-start-radius:0;border-end-start-radius:0;padding-inline-start:0}.lb-root :where(span:has(code):has(+span code) code){border-start-end-radius:0;border-end-end-radius:0;padding-inline-end:0}:where(.lb-root code){font-family:ui-monospace,Menlo,Monaco,Roboto Mono,Cascadia Code,Source Code Pro,Consolas,DejaVu Sans Mono,monospace}.lb-elevation{--lb-dynamic-background:var(--lb-background);border-radius:var(--lb-radius);background:var(--lb-dynamic-background);box-shadow:var(--lb-elevation-shadow);position:relative;overflow:hidden}.lb-elevation:after{content:"";z-index:1;border-radius:inherit;box-shadow:var(--lb-inset-shadow);pointer-events:none;position:absolute;inset:0}.lb-elevation:where(.lb-elevation-moderate){box-shadow:var(--lb-elevation-shadow-moderate)}.lb-dropdown,.lb-composer-suggestions{padding:4px;overflow-y:auto}.lb-dropdown:where([data-hidden]),.lb-composer-suggestions:where([data-hidden]){opacity:0}.lb-dropdown-item,.lb-composer-suggestions-list-item{padding:calc(.25*var(--lb-spacing))calc(.5*var(--lb-spacing));align-items:center;font-size:.875rem;display:flex}.lb-dropdown-item,.lb-composer-suggestions-list-item,.lb-emoji-picker-emoji{border-radius:calc(var(--lb-radius) - .75*4px);color:var(--lb-foreground-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;transition-property:background,color,opacity}:is(.lb-dropdown-item,.lb-composer-suggestions-list-item,.lb-emoji-picker-emoji):where([data-highlighted]:not([data-highlighted=false]),[data-selected]:not([data-selected=false]),[data-active]:not([data-active=false])){background:var(--lb-foreground-subtle);transition-duration:calc(var(--lb-transition-duration)/2)}:is(.lb-dropdown-item,.lb-composer-suggestions-list-item,.lb-emoji-picker-emoji):where(:disabled,[data-disabled]:not([data-disabled=false])){opacity:.5;cursor:not-allowed}.lb-dropdown,.lb-composer-suggestions,.lb-composer-floating-toolbar,.lb-tooltip,.lb-emoji-picker{animation-duration:var(--lb-transition-duration);animation-timing-function:var(--lb-transition-easing);will-change:transform,opacity}:is(.lb-dropdown,.lb-emoji-picker,.lb-tooltip:where([data-state=delayed-open]),.lb-composer-suggestions,.lb-composer-floating-toolbar):where([data-side=top]){animation-name:lb-animation-slide-up}:is(.lb-dropdown,.lb-emoji-picker,.lb-tooltip:where([data-state=delayed-open]),.lb-composer-suggestions,.lb-composer-floating-toolbar):where([data-side=bottom]){animation-name:lb-animation-slide-down}:is(.lb-dropdown,.lb-emoji-picker,.lb-tooltip,.lb-composer-suggestions,.lb-composer-floating-toolbar):where([data-state=closed]){animation-name:lb-animation-disappear}.lb-code-block{border:1px solid var(--lb-foreground-subtle);border-radius:var(--lb-radius);min-inline-size:0}.lb-code-block :where(.lb-code-block-header){padding:calc(.5*var(--lb-spacing));align-items:center;display:flex}.lb-code-block :where(.lb-code-block-title){color:var(--lb-foreground-tertiary);text-transform:uppercase;margin-inline-start:calc(.5*var(--lb-spacing));font-size:.675em;font-weight:600}.lb-code-block :where(.lb-code-block-header-actions){margin-inline-start:auto}.lb-code-block :where(.lb-code-block-content){min-inline-size:0;padding:0 var(--lb-spacing)calc(.875*var(--lb-spacing));font-size:85%;line-height:var(--lb-line-height);margin:0;overflow-x:auto}.lb-ai-chat-composer{inline-size:100%;color:var(--lb-foreground);position:relative}.lb-ai-chat-composer-form:where(:has(.lb-ai-chat-composer-editor:not(:focus-visible))) :where(.lb-button[data-variant=primary]){--lb-button-background:var(--lb-foreground-subtle);color:var(--lb-foreground-tertiary)}.lb-ai-chat-composer-form:where(:has(.lb-ai-chat-composer-editor:not(:focus-visible))) :where(.lb-button[data-variant=primary]):where(:enabled:hover,:enabled:focus-visible){--lb-button-background:var(--lb-accent);color:var(--lb-accent-foreground)}.lb-ai-chat-composer-editor{max-block-size:15rem;padding:var(--lb-spacing)var(--lb-spacing)0;color:var(--lb-foreground-secondary);resize:none;outline:none;overflow-y:auto}.lb-ai-chat-composer-editor,.lb-ai-chat-composer-editor *{line-height:var(--lb-line-height)}.lb-ai-chat-composer-editor :where(p){--lb-line-height-crop:calc(1lh - 1em)/-2;margin-block:.25em}.lb-ai-chat-composer-editor :where(p):where(:first-of-type){margin-block-start:calc(.125em + var(--lb-line-height-crop))}.lb-ai-chat-composer-editor :where(p):where(:last-of-type){margin-block-end:calc(.125em + var(--lb-line-height-crop))}.lb-ai-chat-composer-editor:where([data-disabled]:not([data-disabled=false])){opacity:.5;cursor:not-allowed}.lb-ai-chat-composer-editor :where([data-placeholder]){color:var(--lb-foreground-moderate)}.lb-ai-chat-composer-footer{gap:calc(.75*var(--lb-spacing));padding:var(--lb-spacing);align-items:center;margin-block-start:calc(-.125*var(--lb-spacing));display:flex}.lb-ai-chat-composer-actions,.lb-ai-chat-composer-editor-actions{gap:calc(.125*var(--lb-spacing));align-items:center;display:flex}.lb-ai-chat-composer-editor-actions{margin-inline-end:auto}.lb-ai-chat-message{gap:var(--lb-spacing);color:var(--lb-foreground);flex-direction:column;scroll-margin-block-start:calc(1.5*var(--lb-spacing));display:flex}.lb-ai-chat-user-message :where(.lb-ai-chat-message-content){min-block-size:calc(1lh + var(--lb-spacing));padding:calc(.5*var(--lb-spacing))var(--lb-spacing);border-radius:calc((1lh + var(--lb-spacing))/2);background:var(--lb-background-foreground-faint);color:var(--lb-foreground);line-height:var(--lb-line-height)}.lb-ai-chat-message-deleted{inline-size:100%;color:var(--lb-foreground-moderate);text-wrap:pretty;align-items:center;font-size:.875em;position:relative}.lb-ai-chat-message-error{gap:calc(.5*var(--lb-spacing));inline-size:100%;color:var(--lb-destructive);font-size:.875em;line-height:var(--lb-line-height);text-wrap:pretty;word-break:break-word;align-items:flex-start;display:flex}.lb-ai-chat-message-error :where(.lb-icon-container){block-size:1lh;color:var(--lb-destructive-secondary)}.lb-ai-chat-message-error :where(code:not(pre>code)){background:var(--lb-destructive-subtle)}.lb-ai-chat-message-content{white-space:break-spaces;inline-size:100%}.lb-ai-chat-message-content:where(:empty){display:contents}.lb-ai-chat-message-content>:where(.lb-ai-chat-message-text),.lb-ai-chat-message-content>:where(.lb-ai-chat-message-tool-invocation){margin-block:var(--lb-spacing)}.lb-ai-chat-message-content>:where(:first-child){margin-block-start:0}.lb-ai-chat-message-content>:where(:last-child){margin-block-end:0}.lb-ai-chat-messages{gap:calc(1.5*var(--lb-spacing));inline-size:100%;max-inline-size:min(calc(var(--lb-ai-chat-container-width) - var(--lb-spacing)),calc(100% - 3*var(--lb-spacing)));flex-direction:column;margin-inline:auto;padding-block-start:calc(1.5*var(--lb-spacing));padding-block-end:calc(3*var(--lb-spacing));display:flex}.lb-ai-chat-messages :where(.lb-ai-chat-user-message){max-inline-size:80%;margin-inline-start:auto}.lb-ai-chat-footer{gap:calc(.75*var(--lb-spacing));flex-direction:column;inline-size:100%;display:flex;position:relative}.lb-ai-chat{--lb-ai-chat-container-width:100%;background:var(--lb-background);isolation:isolate;flex-direction:column;block-size:100%;inline-size:100%;display:flex;overflow-y:auto}.lb-ai-chat :where(.lb-ai-chat-footer){z-index:1;margin-block-start:auto;position:sticky;inset-block-end:0}.lb-ai-chat :where(.lb-ai-chat-composer){margin-inline:auto}.lb-ai-chat:where(.lb-ai-chat\:layout-compact) :where(.lb-ai-chat-footer){background:var(--lb-dynamic-background)}.lb-ai-chat:where(.lb-ai-chat\:layout-compact) :where(.lb-ai-chat-footer):after{content:"";border-block-start:1px solid var(--lb-foreground-subtle);pointer-events:none;position:absolute;inset:0}.lb-ai-chat:where(.lb-ai-chat\:layout-compact) :where(.lb-ai-chat-composer){max-inline-size:min(100%,calc(var(--lb-ai-chat-container-width) + var(--lb-spacing)))}.lb-ai-chat:where(.lb-ai-chat\:layout-inset) :where(.lb-ai-chat-footer){padding:var(--lb-spacing);padding-block-start:0}.lb-ai-chat:where(.lb-ai-chat\:layout-inset) :where(.lb-ai-chat-footer):before{content:"";background:linear-gradient(to bottom,transparent 0%,var(--lb-background)calc(3.5*var(--lb-spacing)));pointer-events:none;position:absolute;inset:0;inset-block-start:calc(-3*var(--lb-spacing))}.lb-ai-chat:where(.lb-ai-chat\:layout-inset) :where(.lb-ai-chat-composer){max-inline-size:var(--lb-ai-chat-container-width);border-radius:calc(2*var(--lb-radius))}.lb-ai-chat-content{flex:1 0 auto;position:relative}.lb-ai-chat-footer-actions{pointer-events:none;justify-content:center;display:flex;position:absolute;inset-block-start:calc(-1*var(--lb-spacing));inset-inline:0;transform:translateY(-100%)}.lb-ai-chat-scroll-indicator{color:var(--lb-foreground-moderate);opacity:0;pointer-events:none;transform-origin:bottom;border-radius:9999px;transition-property:transform,opacity,background;transform:scale(.8)}.lb-ai-chat-scroll-indicator:where([data-visible]){opacity:1;pointer-events:all;transform:scale(1)}.lb-ai-chat-scroll-indicator-button{all:unset;box-sizing:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;transition-timing-function:var(--lb-transition-easing);transition-duration:var(--lb-transition-duration);-webkit-tap-highlight-color:transparent;padding:calc(.375*var(--lb-spacing));color:var(--lb-foreground-moderate);border-radius:9999px;outline:none;transition-property:opacity,color;position:relative}.lb-ai-chat-scroll-indicator-button:where(:hover,:focus-visible){color:var(--lb-foreground-secondary)}.lb-ai-chat-scroll-indicator-button:after{content:"";border-radius:inherit;pointer-events:none;transition-property:box-shadow;position:absolute;inset:0}.lb-ai-chat-scroll-indicator-button:where(:focus-visible):after{box-shadow:inset var(--lb-accent)0 0 0 2px}.lb-ai-chat-pending{-webkit-user-select:none;user-select:none;animation:5s linear infinite lb-animation-shimmer-small}.lb-ai-chat-message-thinking,.lb-ai-chat-message-reasoning{inline-size:fit-content;max-inline-size:100%;color:var(--lb-foreground-tertiary)}.lb-ai-chat-message-thinking:where(.lb-ai-chat-pending),.lb-ai-chat-message-reasoning:where(.lb-ai-chat-pending),.lb-ai-chat-message-thinking :where(.lb-ai-chat-pending),.lb-ai-chat-message-reasoning :where(.lb-ai-chat-pending){color:var(--lb-foreground)}.lb-ai-chat-message-reasoning{margin-block-end:calc(.75*var(--lb-spacing))}.lb-ai-chat-message-reasoning :where(.lb-collapsible-trigger){gap:calc(.25*var(--lb-spacing));align-items:center;display:flex}.lb-ai-chat-message-reasoning :where(.lb-collapsible-trigger):where(:focus-visible){color:var(--lb-accent)}.lb-ai-chat-message-reasoning :where(.lb-collapsible-trigger):where(:focus-visible) :where(.lb-collapsible-chevron){color:var(--lb-accent-moderate)}.lb-ai-chat-message-reasoning :where(.lb-collapsible-content){gap:calc(.5*var(--lb-spacing));line-height:var(--lb-line-height);flex-direction:column;display:flex}:where(.lb-ai-chat-message-reasoning :where(.lb-collapsible-content)>:first-child){margin-block-start:calc(.5*var(--lb-spacing))}.lb-ai-chat-message-reasoning :where(.lb-prose){color:var(--lb-foreground);opacity:.75;font-size:.875em}.lb-ai-tool{border-radius:var(--lb-radius);box-shadow:inset 0 0 0 1px var(--lb-foreground-subtle);position:relative}.lb-ai-tool:after{content:"";border-radius:inherit;pointer-events:none;transition-property:box-shadow;position:absolute;inset:0}.lb-ai-tool:where(:has(.lb-ai-tool-header:focus-visible)){z-index:1}.lb-ai-tool:where(:has(.lb-ai-tool-header:focus-visible)):after{box-shadow:var(--lb-dynamic-background)0 0 0 2px,var(--lb-accent)0 0 0 4px}.lb-ai-tool-header{gap:calc(.3125*var(--lb-spacing));inline-size:100%;block-size:calc(calc(2*.25*var(--lb-spacing) + var(--lb-icon-size)) + var(--lb-spacing));padding-inline:calc(.5*var(--lb-spacing));align-items:center;display:flex}.lb-ai-tool-header-icon-container,.lb-ai-tool-icon{inline-size:calc(2*.25*var(--lb-spacing) + var(--lb-icon-size));block-size:calc(2*.25*var(--lb-spacing) + var(--lb-icon-size));flex:none;justify-content:center;align-items:center;display:flex}.lb-ai-tool-header-icon-container{color:var(--lb-foreground-moderate)}.lb-ai-tool-header-icon-container:where(:has(.lb-ai-tool-icon)){margin-inline-end:calc(.25*var(--lb-spacing))}.lb-ai-tool-icon{border-radius:calc(.75*var(--lb-radius));background:var(--lb-foreground-subtle);font-size:.875em}.lb-ai-tool-header-title{text-overflow:ellipsis;white-space:nowrap;color:var(--lb-foreground-secondary);margin-inline-end:calc(.25*var(--lb-spacing));font-size:.9375em;overflow:hidden}.lb-ai-tool-header-title:where(:first-child){margin-inline-start:calc(.3125*var(--lb-spacing))}.lb-ai-tool-header-status{color:var(--lb-foreground-moderate);flex:none;margin-inline-start:auto;margin-inline-end:calc(.1875*var(--lb-spacing))}.lb-ai-tool:where([data-result=error]){box-shadow:inset 0 0 0 1px var(--lb-destructive-moderate)}.lb-ai-tool:where([data-result=error]):where(:has(.lb-ai-tool-header:focus-visible)):after{box-shadow:var(--lb-dynamic-background)0 0 0 2px,var(--lb-destructive)0 0 0 4px}.lb-ai-tool:where([data-result=error]) :where(.lb-ai-tool-header-status){color:var(--lb-destructive)}.lb-ai-tool-content:where(:not(:empty)){padding:0 calc(.75*var(--lb-spacing))calc(.75*var(--lb-spacing))}.lb-ai-tool-inspector{gap:calc(.75*var(--lb-spacing));flex-direction:column;display:flex}.lb-ai-tool-confirmation-footer{align-items:center;margin-block-start:calc(.75*var(--lb-spacing));display:flex}.lb-ai-tool-confirmation-actions{gap:calc(.75*var(--lb-spacing));justify-content:flex-end;align-items:center;margin-inline-start:auto;display:flex}@keyframes lb-animation-slide-down{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes lb-animation-slide-up{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes lb-animation-appear{0%{opacity:0}to{opacity:1}}@keyframes lb-animation-disappear{0%{opacity:1}to{opacity:0}}@keyframes lb-animation-shimmer{0%,to{-webkit-mask-image:linear-gradient(90deg,#00000080,#000,#000,#00000080);mask-image:linear-gradient(90deg,#00000080,#000,#000,#00000080);-webkit-mask-size:400% 100%;mask-size:400% 100%}0%{-webkit-mask-position:200% 0;mask-position:200% 0}to{-webkit-mask-position:-200% 0;mask-position:-200% 0}}@keyframes lb-animation-shimmer-small{0%,to{-webkit-mask-image:linear-gradient(90deg,#000 0%,#00000080 18% 82%,#000 100%);mask-image:linear-gradient(90deg,#000 0%,#00000080 18% 82%,#000 100%);-webkit-mask-size:300% 100%;mask-size:300% 100%}0%{-webkit-mask-position:200% 0;mask-position:200% 0}to{-webkit-mask-position:-100% 0;mask-position:-100% 0}}@keyframes lb-animation-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (hover:hover){.lb-comment:where(.lb-comment\:show-actions-hover) :where(.lb-comment-actions){opacity:0;transition-property:opacity;position:absolute;inset-inline-end:0}.lb-comment:where(.lb-comment\:show-actions-hover):where(:is(:hover,:focus-within,.lb-comment\:action-open)) :where(.lb-comment-actions){opacity:1;position:relative}.lb-thread:where(.lb-thread\:show-actions-hover :is(:hover,:focus-within)) :where(.lb-thread-actions){opacity:1}.lb-inbox-notification:where(.lb-inbox-notification\:show-actions-hover) :where(.lb-inbox-notification-header){grid-template:"title secondary"/1fr max-content;display:grid}.lb-inbox-notification:where(.lb-inbox-notification\:show-actions-hover) :where(.lb-inbox-notification-details){opacity:1;transition-property:opacity}.lb-inbox-notification:where(.lb-inbox-notification\:show-actions-hover) :where(.lb-inbox-notification-actions){opacity:0;transition-property:opacity}.lb-inbox-notification:where(.lb-inbox-notification\:show-actions-hover):where(:is(:hover,:focus-within,.lb-inbox-notification\:action-open)) :where(.lb-inbox-notification-details){opacity:0}.lb-inbox-notification:where(.lb-inbox-notification\:show-actions-hover):where(:is(:hover,:focus-within,.lb-inbox-notification\:action-open)) :where(.lb-inbox-notification-actions){opacity:1}.lb-inbox-notification:where(.lb-inbox-notification\:show-actions-hover) :where(.lb-inbox-notification-details),.lb-inbox-notification:where(.lb-inbox-notification\:show-actions-hover) :where(.lb-inbox-notification-actions){grid-area:secondary;justify-self:end}}@media (prefers-reduced-motion:no-preference){@supports (interpolate-size:allow-keywords){.lb-collapsible-content{opacity:0;block-size:0;transition-duration:calc(3*var(--lb-transition-duration));interpolate-size:allow-keywords;transition-behavior:allow-discrete;transition-property:block-size,opacity,content-visibility;overflow-y:clip}.lb-collapsible-content:where([data-state=open]){opacity:1;block-size:auto;overflow-y:auto}}.lb-collapsible-chevron{transition-property:transform}.lb-collapsible:where([data-state=open]) :where(.lb-collapsible-chevron){transform:rotate(90deg)}}@media (prefers-reduced-motion){.lb-dropdown:where(:not([data-state=closed])),.lb-emoji-picker:where(:not([data-state=closed])),.lb-tooltip:where([data-state=delayed-open]:not([data-state=closed])),.lb-composer-suggestions:where(:not([data-state=closed])){animation-name:lb-animation-appear}}
|
|
1
|
+
.lb-root{--lb-radius:.5em;--lb-spacing:1em;--lb-accent:#17f;--lb-accent-foreground:#fff;--lb-destructive:#f45;--lb-destructive-foreground:#fff;--lb-background:#fff;--lb-foreground:#111;--lb-line-height:1.5;--lb-icon-size:20px;--lb-icon-weight:1.5px;--lb-avatar-radius:50%;--lb-button-radius:calc(.75*var(--lb-radius));--lb-transition-duration:.1s;--lb-transition-easing:cubic-bezier(.4,0,.2,1);--lb-highlight-shadow:inset 0 0 0 1px #0000001a;--lb-elevation-shadow:0 0 0 1px #0000000a,0 2px 6px #00000014,0 8px 26px #0000001f;--lb-elevation-shadow-moderate:0 0 0 1px #0000000a,0 2px 6px #0000000d,0 8px 26px #0000000f;--lb-tooltip-shadow:0 2px 4px #00000014,0 4px 12px #0000001f;--lb-accent-contrast:8%;--lb-destructive-contrast:8%;--lb-foreground-contrast:8%;--lb-background-foreground-faint:color-mix(in srgb,var(--lb-foreground),var(--lb-background)calc(100% - var(--lb-foreground-contrast) + ((100% - var(--lb-foreground-contrast))/9)/2));--lb-background-accent-faint:color-mix(in srgb,var(--lb-accent),var(--lb-background)calc(100% - var(--lb-accent-contrast) + ((100% - var(--lb-accent-contrast))/9)/2));--lb-background-accent-subtle:color-mix(in srgb,var(--lb-accent),var(--lb-background)calc(100% - var(--lb-accent-contrast)));--lb-background-destructive-faint:color-mix(in srgb,var(--lb-destructive),var(--lb-background)calc(100% - var(--lb-destructive-contrast) + ((100% - var(--lb-destructive-contrast))/9)/2));--lb-background-destructive-subtle:color-mix(in srgb,var(--lb-destructive),var(--lb-background)calc(100% - var(--lb-destructive-contrast)));--lb-accent-subtle:color-mix(in srgb,var(--lb-accent),var(--lb-dynamic-background)calc(100% - var(--lb-accent-contrast)));--lb-accent-moderate:color-mix(in srgb,var(--lb-accent),var(--lb-dynamic-background)calc(100% - (var(--lb-accent-contrast) + 3*((100% - var(--lb-accent-contrast))/9))));--lb-accent-tertiary:color-mix(in srgb,var(--lb-accent),var(--lb-dynamic-background)calc(100% - (var(--lb-accent-contrast) + 5*((100% - var(--lb-accent-contrast))/9))));--lb-accent-secondary:color-mix(in srgb,var(--lb-accent),var(--lb-dynamic-background)calc(100% - (var(--lb-accent-contrast) + 7*((100% - var(--lb-accent-contrast))/9))));--lb-destructive-subtle:color-mix(in srgb,var(--lb-destructive),var(--lb-dynamic-background)calc(100% - var(--lb-destructive-contrast)));--lb-destructive-moderate:color-mix(in srgb,var(--lb-destructive),var(--lb-dynamic-background)calc(100% - (var(--lb-destructive-contrast) + 3*((100% - var(--lb-destructive-contrast))/9))));--lb-destructive-tertiary:color-mix(in srgb,var(--lb-destructive),var(--lb-dynamic-background)calc(100% - (var(--lb-destructive-contrast) + 5*((100% - var(--lb-destructive-contrast))/9))));--lb-destructive-secondary:color-mix(in srgb,var(--lb-destructive),var(--lb-dynamic-background)calc(100% - (var(--lb-destructive-contrast) + 7*((100% - var(--lb-destructive-contrast))/9))));--lb-foreground-subtle:color-mix(in srgb,var(--lb-foreground),var(--lb-dynamic-background)calc(100% - var(--lb-foreground-contrast)));--lb-foreground-moderate:color-mix(in srgb,var(--lb-foreground),var(--lb-dynamic-background)calc(100% - (var(--lb-foreground-contrast) + 3*((100% - var(--lb-foreground-contrast))/9))));--lb-foreground-tertiary:color-mix(in srgb,var(--lb-foreground),var(--lb-dynamic-background)calc(100% - (var(--lb-foreground-contrast) + 5*((100% - var(--lb-foreground-contrast))/9))));--lb-foreground-secondary:color-mix(in srgb,var(--lb-foreground),var(--lb-dynamic-background)calc(100% - (var(--lb-foreground-contrast) + 7*((100% - var(--lb-foreground-contrast))/9))));--lb-selection:color-mix(in srgb,var(--lb-accent)40%,transparent);overflow-wrap:break-word;accent-color:var(--lb-accent);-webkit-text-size-adjust:none;text-size-adjust:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lb-root,.lb-root *,.lb-root :before,.lb-root :after{box-sizing:border-box;transition:none var(--lb-transition-duration)var(--lb-transition-easing)}.lb-root:where(:not(.lb-root .lb-root)){--lb-dynamic-background:var(--lb-background)}.lb-loading,.lb-empty,.lb-error{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.lb-loading{color:var(--lb-foreground-moderate)}.lb-empty,.lb-error{padding:var(--lb-spacing);color:var(--lb-foreground-tertiary);text-align:center;text-wrap:balance;font-size:.875em}.lb-icon-container,.lb-icon{inline-size:var(--lb-icon-size);block-size:var(--lb-icon-size)}.lb-icon-container{justify-content:center;align-items:center;display:flex}.lb-icon{--lb-icon-background:var(--lb-dynamic-background)}.lb-icon *{stroke-width:var(--lb-icon-weight);vector-effect:non-scaling-stroke}.lb-icon-spinner{transform-origin:50%;animation:.75s linear infinite lb-animation-spin}.lb-button{--lb-button-background:var(--lb-dynamic-background);all:unset;box-sizing:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;transition-timing-function:var(--lb-transition-easing);transition-duration:var(--lb-transition-duration);-webkit-tap-highlight-color:transparent;padding:calc(.25*var(--lb-spacing));border-radius:var(--lb-button-radius);background:var(--lb-button-background);color:var(--lb-foreground-moderate);outline:none;justify-content:center;align-items:center;transition-property:background,color,opacity;display:flex;position:relative}.lb-button:after{content:"";border-radius:inherit;pointer-events:none;transition-property:box-shadow;position:absolute;inset:0}.lb-button:where(:focus-visible){z-index:1}.lb-button:where(:focus-visible):after{box-shadow:var(--lb-dynamic-background)0 0 0 2px,var(--lb-accent)0 0 0 4px}.lb-button:where(.lb-button\:non-disableable:disabled){cursor:default}.lb-button:where(:not(.lb-button\:non-disableable):disabled){opacity:.5;cursor:not-allowed}.lb-button:where(:enabled:hover,:enabled:focus-visible,[aria-expanded=true],[aria-selected=true]){--lb-button-background:var(--lb-foreground-subtle);color:var(--lb-foreground-tertiary)}.lb-button:where([data-variant=default]:not(:is(:enabled:hover,:enabled:focus-visible,[aria-expanded=true],[aria-selected=true],[aria-pressed]))){background:0 0}.lb-button:where([data-variant=primary]){--lb-button-background:var(--lb-accent);color:var(--lb-accent-foreground)}.lb-button:where([data-variant=primary]):where(:enabled:hover,:enabled:focus-visible,[aria-expanded=true],[aria-selected=true]){--lb-button-background:var(--lb-accent-secondary);color:var(--lb-accent-foreground)}.lb-button:where([data-variant=destructive]){--lb-button-background:var(--lb-destructive);color:var(--lb-destructive-foreground)}.lb-button:where([data-variant=destructive]):where(:enabled:hover,:enabled:focus-visible,[aria-expanded=true],[aria-selected=true]){--lb-button-background:var(--lb-destructive-secondary);color:var(--lb-destructive-foreground)}.lb-button:where([data-variant=outline]){box-shadow:inset 0 0 0 1px var(--lb-foreground-subtle);transition-property:background,color,opacity,box-shadow}.lb-button:where([data-variant=ghost]){background:0 0}.lb-button:where(:has(.lb-button-label)){gap:calc(.175*var(--lb-spacing));padding-inline:calc(.55*var(--lb-spacing))}.lb-button:where(:has(.lb-button-label)):where(:has(.lb-icon-container)){padding-inline-start:calc(.4*var(--lb-spacing))}.lb-button:where([data-variant=toolbar]){color:var(--lb-foreground-tertiary)}.lb-button:where([data-variant=toolbar]):where([aria-pressed=true]){--lb-button-background:var(--lb-foreground-subtle);color:var(--lb-foreground-secondary)}.lb-button:where([data-variant=toolbar]):where([aria-pressed=true]) :where(.lb-icon *){stroke-width:calc(1.25*var(--lb-icon-weight))}.lb-button:where([data-variant=secondary]){--lb-button-background:var(--lb-foreground-subtle);color:var(--lb-foreground-tertiary)}.lb-button:where([data-variant=secondary]):where(:enabled:hover,:enabled:focus-visible,[aria-expanded=true],[aria-selected=true]){--lb-button-background:var(--lb-foreground);color:var(--lb-dynamic-background)}.lb-button:where([data-size=large]){padding:calc(.5*var(--lb-spacing))}.lb-button:where([data-size=large]):where(:has(.lb-button-label)){gap:calc(.35*var(--lb-spacing));padding-inline:calc(.7*var(--lb-spacing))}.lb-button:where([data-size=large]):where(:has(.lb-button-label)):where(:has(.lb-icon-container)){padding-inline-start:calc(.6*var(--lb-spacing))}.lb-button :where(.lb-icon-container){flex:none}.lb-button :where(.lb-icon){--lb-icon-background:var(--lb-button-background)}.lb-button-label{block-size:var(--lb-icon-size);font-weight:500;font-size:calc(.7*var(--lb-icon-size));flex:none;align-items:center;line-height:1;display:inline-flex}.lb-dropdown{min-inline-size:160px}.lb-dropdown-label{padding:calc(.875*var(--lb-spacing))calc(.625*var(--lb-spacing))calc(.125*var(--lb-spacing));color:var(--lb-foreground-tertiary);text-transform:uppercase;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:.675em;font-weight:600}.lb-dropdown-label:where(:first-child){padding-block-start:var(--lb-spacing)}.lb-dropdown-separator{background:var(--lb-foreground-subtle);block-size:1px;margin:4px -4px}.lb-dropdown-item :where(.lb-icon-container){color:var(--lb-foreground-moderate);margin-inline-start:calc(-.125*var(--lb-spacing));margin-inline-end:calc(.375*var(--lb-spacing));transition-property:color}.lb-dropdown-item:where(:is([data-highlighted]:not([data-highlighted=false]),[data-selected]:not([data-selected=false]),[data-active]:not([data-active=false]))) :where(.lb-icon-container){color:var(--lb-foreground-tertiary)}.lb-dropdown-item:where(:has(.lb-dropdown-item-accessory)) :where(.lb-dropdown-item-label){margin-inline-end:calc(.375*var(--lb-spacing))}.lb-dropdown-item-accessory{margin-inline-start:auto;margin-inline-end:calc(-.25*var(--lb-spacing))}.lb-dropdown:where(:has(.lb-dropdown-item-icon)) :where(.lb-dropdown-item:not(:has(.lb-dropdown-item-icon))) :where(.lb-dropdown-item-label){margin-inline-start:calc(var(--lb-icon-size) + (.375 - .125)*var(--lb-spacing))}.lb-select-button{min-inline-size:0}.lb-select-button :where(.lb-button-label){text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.lb-select-button-chevron{opacity:.75;flex:none;margin-inline-end:calc(-.25*var(--lb-spacing))}.lb-collapsible-trigger{all:unset;box-sizing:inherit;-webkit-user-select:none;user-select:none;transition-timing-function:var(--lb-transition-easing);transition-duration:var(--lb-transition-duration);-webkit-tap-highlight-color:transparent;transition-property:color,background,opacity;position:relative}.lb-collapsible-trigger:where(:not([data-disabled])){cursor:pointer}.lb-collapsible-chevron{inline-size:calc(.8*var(--lb-icon-size));block-size:calc(.8*var(--lb-icon-size));color:var(--lb-foreground-moderate);margin-block-start:1px;margin-inline-start:-1px}.lb-collapsible-content:where([hidden]:not([hidden=until-found])){display:none!important}.lb-prose,.lb-prose *{line-height:var(--lb-line-height)}.lb-prose :where(p){margin-block:.75em}.lb-prose :where(p,li){text-wrap:pretty}.lb-prose :where(h1,h2,h3,h4,h5,h6){text-wrap:balance;margin-block:1.5em .375em;font-weight:600}.lb-prose :where(h1){font-size:1.75em;line-height:calc(.8*var(--lb-line-height))}.lb-prose :where(h2){font-size:1.5em;line-height:calc(.86*var(--lb-line-height))}.lb-prose :where(h3){font-size:1.25em;line-height:calc(.92*var(--lb-line-height))}.lb-prose :where(h4){font-size:1.125em;line-height:calc(.98*var(--lb-line-height))}.lb-prose :where(h5){font-size:1em}.lb-prose :where(h6){font-size:.875em}.lb-prose :where(hr){border:none;border-block-start:1px solid var(--lb-foreground-subtle);margin-block:1.5em}.lb-prose :where(ol,ul){flex-direction:column;gap:.25em;margin-block:.75em;padding-inline-start:1.125em;list-style-position:outside;display:flex}.lb-prose :where(ol,ul) :where(ol,ul){margin-block:0}.lb-prose :where(ul){list-style-type:disc}.lb-prose :where(ol){list-style-type:decimal}.lb-prose :where(li){margin-block:0}.lb-prose :where(li)>:where(ol,ul){margin-block-start:.25em}.lb-prose :where(li)>:where(p){margin-block:.25em}.lb-prose :where(li)>:where(p:first-child){margin-block-start:0}.lb-prose :where(li)>:where(p:last-child){margin-block-end:0}.lb-prose :where(a){color:var(--lb-foreground);text-decoration-line:underline;-webkit-text-decoration-color:var(--lb-foreground-moderate);text-decoration-color:var(--lb-foreground-moderate);text-underline-offset:2px;outline:none;font-weight:500;transition-property:color,text-decoration-color}.lb-prose :where(a):where([href]):where(:hover,:focus-visible){color:var(--lb-accent);-webkit-text-decoration-color:var(--lb-accent-moderate);text-decoration-color:var(--lb-accent-moderate)}.lb-prose :where(strong){font-weight:600}.lb-prose :where(table){border-collapse:collapse;table-layout:auto;word-break:break-word;inline-size:100%;min-inline-size:0;margin-block:1em}.lb-prose :where(thead){border-block-end:2px solid var(--lb-foreground-subtle)}.lb-prose :where(thead) :where(th){vertical-align:bottom}.lb-prose :where(tbody) :where(td){vertical-align:baseline}.lb-prose :where(tbody) :where(tr:not(:last-child)){border-block-end:1px solid var(--lb-foreground-subtle)}.lb-prose :where(tfoot){border-block-start:2px solid var(--lb-foreground-subtle)}.lb-prose :where(tfoot) :where(td){vertical-align:top}.lb-prose :where(th,td){text-align:start;padding-block:.5em;padding-inline:.75em}.lb-prose :where(th,td):where(:first-child){padding-inline-start:0}.lb-prose :where(th,td):where(:last-child){padding-inline-end:0}.lb-prose :where(.lb-code-block){margin-block:1em}.lb-prose :where(blockquote){margin-block:.75em;margin-inline:0;padding:0;padding-inline-start:1.25em;position:relative}.lb-prose :where(blockquote):after{content:"";border-radius:calc(.5*var(--lb-radius));background:var(--lb-foreground-subtle);block-size:100%;inline-size:4px;position:absolute;inset-block-start:0;inset-inline-start:0}.lb-prose :where(blockquote):where(:is(.lb-prose :where(blockquote))+:is(.lb-prose :where(blockquote))){margin-block-start:1em}.lb-prose :where(blockquote)>:where(:first-child){margin-block-start:0}.lb-prose :where(blockquote)>:where(:last-child){margin-block-end:0}.lb-prose>:where(:first-child){margin-block-start:0}.lb-prose>:where(:last-child){margin-block-end:0}.lb-composer-suggestions-list{margin:0;padding:0;list-style:none}.lb-composer-suggestions-list-item{scroll-margin-block:4px}.lb-composer-mention-suggestions{--lb-composer-mention-suggestion-avatar-size:1.25rem}.lb-composer-mention-suggestion{padding:calc(.375*var(--lb-spacing))calc(.625*var(--lb-spacing))}.lb-composer-mention-suggestion-avatar{inline-size:var(--lb-composer-mention-suggestion-avatar-size);margin-inline-start:calc(-.125*var(--lb-spacing));margin-inline-end:calc(.5*var(--lb-spacing));margin-block:calc(.125*var(--lb-spacing));background:var(--lb-foreground-subtle);color:var(--lb-foreground-moderate)}.lb-list{display:contents}.lb-list :where(:first-child):first-letter,.lb-date:first-letter{text-transform:capitalize}.lb-emoji{white-space:nowrap;justify-content:center;align-items:center;inline-size:1em;display:inline-flex}@supports (background:-webkit-named-image(i)){.lb-emoji{will-change:transform;transform:scale(.825)}}.lb-emoji-picker{--lb-emoji-picker-padding:6px;--lb-emoji-picker-offset-padding:calc(6px + .375*var(--lb-spacing));inline-size:100%;max-inline-size:var(--frimousse-viewport-width);block-size:374px;color:var(--lb-foreground);flex-direction:column;display:flex}.lb-emoji-picker-header{border-block-end:1px solid var(--lb-foreground-subtle);flex:none}.lb-emoji-picker-footer{gap:calc(.5*var(--lb-spacing));inline-size:100%;padding:calc(.5*var(--lb-spacing));border-block-start:1px solid var(--lb-foreground-subtle);flex:none;align-items:center;display:flex}.lb-emoji-picker-active-emoji{flex:none;justify-content:center;align-items:center;block-size:1.25em;inline-size:1.25em;font-size:1.25em;display:flex}.lb-emoji-picker-active-emoji-label{text-overflow:ellipsis;white-space:nowrap;color:var(--lb-foreground-secondary);flex:1;font-size:.8125em;font-weight:500;overflow:hidden}.lb-emoji-picker-active-emoji-label-placeholder{color:var(--lb-foreground-moderate);margin-inline-start:calc(.5*var(--lb-spacing))}.lb-emoji-picker-skin-tone-selector{inline-size:calc(1.75*var(--lb-spacing));block-size:calc(1.75*var(--lb-spacing));flex:none;justify-content:center;align-items:center;margin-inline-start:auto;display:flex}.lb-emoji-picker-search-container{align-items:center;display:flex;position:relative}.lb-emoji-picker-search-container :where(.lb-icon){color:var(--lb-foreground-moderate);pointer-events:none;position:absolute;inset-inline-start:var(--lb-emoji-picker-offset-padding)}.lb-emoji-picker-search{all:unset;box-sizing:inherit;inline-size:100%;padding:var(--lb-emoji-picker-offset-padding);appearance:textfield;background:0 0;outline:none;padding-inline-start:calc(var(--lb-icon-size) + var(--lb-emoji-picker-offset-padding) + .375*var(--lb-spacing))}.lb-emoji-picker-search::placeholder{color:var(--lb-foreground-moderate)}.lb-emoji-picker-search::-webkit-search-cancel-button{display:none}.lb-emoji-picker-content{outline:none;flex:1;position:relative}.lb-emoji-picker-category-header{padding:var(--lb-emoji-picker-padding)var(--lb-emoji-picker-offset-padding);background:var(--lb-dynamic-background)}.lb-emoji-picker-category-header-title{color:var(--lb-foreground-tertiary);text-transform:uppercase;font-size:.675em;font-weight:600}.lb-emoji-picker-list{animation:lb-animation-appear var(--lb-transition-duration)var(--lb-transition-easing)both;padding-block-end:var(--lb-emoji-picker-padding)}.lb-emoji-picker-row{padding-inline:var(--lb-emoji-picker-padding);scroll-margin-block-end:var(--lb-emoji-picker-padding);display:flex}.lb-emoji-picker-emoji{all:unset;box-sizing:inherit;aspect-ratio:1;padding:calc(.375*var(--lb-spacing));border-radius:calc(var(--lb-radius) - .75*6px);text-align:center;justify-content:center;align-items:center;display:flex;overflow:hidden}.lb-tooltip{--lb-background:#222;--lb-foreground:#fff;--lb-foreground-contrast:10%;--lb-dynamic-background:var(--lb-background);max-inline-size:300px;min-block-size:calc(calc(1em + 2*.25*var(--lb-spacing)) + 2*5px);padding-inline:calc(.75*var(--lb-spacing));border-radius:var(--lb-radius);background:var(--lb-dynamic-background);color:var(--lb-foreground);box-shadow:var(--lb-tooltip-shadow);overflow-wrap:anywhere;pointer-events:none;align-items:center;font-size:.75rem;line-height:1;display:flex;position:relative}.lb-tooltip:after{content:"";z-index:1;border-radius:inherit;box-shadow:var(--lb-inset-shadow);pointer-events:none;position:absolute;inset:0}.lb-tooltip\:multiline{padding-block:calc(calc(.625*var(--lb-spacing))*(1/1.5));text-align:center;justify-content:center;line-height:1.5}.lb-tooltip-shortcut{gap:calc(.125*var(--lb-spacing));block-size:calc(1em + 2*.25*var(--lb-spacing));padding-inline:calc(.25*var(--lb-spacing));border-radius:calc(var(--lb-radius) - .625*5px);background:var(--lb-foreground-subtle);color:var(--lb-foreground-tertiary);text-transform:uppercase;justify-content:center;align-items:center;margin-inline-start:calc(.75*var(--lb-spacing));margin-inline-end:calc(-1*calc(.75*var(--lb-spacing)) + 5px);font-family:inherit;line-height:1;display:flex}.lb-tooltip-shortcut :where(abbr){all:unset}.lb-avatar{aspect-ratio:1;border-radius:var(--lb-avatar-radius);background:var(--lb-foreground-subtle);color:var(--lb-foreground-moderate);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden;container-type:inline-size}.lb-avatar:where([data-loading]){background:var(--lb-foreground);opacity:.12}.lb-avatar-image{object-fit:cover;block-size:100%;inline-size:100%;position:absolute;inset:0}.lb-avatar-fallback{white-space:nowrap;font-size:35cqi;font-weight:500}@supports not (container-type:inline-size){.lb-avatar-fallback{display:none}}.lb-name{display:inline-block}.lb-name:where([data-loading]):before{content:"";vertical-align:middle;border-radius:calc(.5*var(--lb-radius));opacity:.12;-webkit-user-select:none;user-select:none;background:currentColor;block-size:1.75ex;inline-size:8ch;display:inline-block}:is(.lb-avatar,.lb-name):where([data-loading]){animation:8s linear infinite lb-animation-shimmer}:is(.lb-comment-body,.lb-composer-editor){color:var(--lb-foreground-secondary)}:is(.lb-comment-body,.lb-composer-editor),:is(.lb-comment-body,.lb-composer-editor) *{line-height:var(--lb-line-height)}:is(.lb-comment-body,.lb-composer-editor) :where(p){--lb-line-height-crop:calc(1lh - 1em)/-2;margin-block:.25em}:is(.lb-comment-body,.lb-composer-editor) :where(p):where(:first-of-type){margin-block-start:calc(.125em + var(--lb-line-height-crop))}:is(.lb-comment-body,.lb-composer-editor) :where(p):where(:last-of-type){margin-block-end:calc(.125em + var(--lb-line-height-crop))}:is(.lb-comment-body,.lb-composer-editor) :where(strong){font-weight:600}.lb-comment-mention,.lb-composer-mention{color:var(--lb-accent);-webkit-box-decoration-break:clone;box-decoration-break:clone;font-weight:500}:is(.lb-comment-link,.lb-composer-link){color:var(--lb-foreground);text-decoration-line:underline;-webkit-text-decoration-color:var(--lb-foreground-moderate);text-decoration-color:var(--lb-foreground-moderate);text-underline-offset:2px;outline:none;font-weight:500;transition-property:color,text-decoration-color}:is(.lb-comment-link,.lb-composer-link):where([href]):where(:hover,:focus-visible){color:var(--lb-accent);-webkit-text-decoration-color:var(--lb-accent-moderate);text-decoration-color:var(--lb-accent-moderate)}.lb-comment-mention:where([data-self]),.lb-composer-mention{border-radius:calc(.675*var(--lb-radius));background:var(--lb-accent-subtle);padding:.1em .3em}.lb-composer{background:var(--lb-dynamic-background);color:var(--lb-foreground);transition-property:background;position:relative}.lb-composer-form{margin:0}.lb-composer:where(:has(.lb-composer-editor:not(:focus-visible))) :where(.lb-button[data-variant=primary]){--lb-button-background:var(--lb-foreground-subtle);color:var(--lb-foreground-tertiary)}.lb-composer:where(:has(.lb-composer-editor:not(:focus-visible))) :where(.lb-button[data-variant=primary]):where(:enabled:hover,:enabled:focus-visible){--lb-button-background:var(--lb-accent);color:var(--lb-accent-foreground)}.lb-composer-editor{padding:var(--lb-spacing);outline:none}.lb-composer-editor:where([data-disabled]:not([data-disabled=false])){opacity:.5;cursor:not-allowed}:where(.lb-composer-editor-container:has(.lb-composer-attachments)) .lb-composer-editor{padding-block-end:calc(.25*var(--lb-spacing))}.lb-composer-editor :where([data-placeholder]){color:var(--lb-foreground-moderate)}.lb-composer-mention::selection{background:0 0}.lb-composer-mention ::selection{background:0 0}.lb-composer-mention:where([data-selected]:not([data-selected=false])){background:var(--lb-accent);color:var(--lb-accent-foreground)}.lb-composer-footer{gap:calc(.75*var(--lb-spacing));block-size:calc(calc(2*.25*var(--lb-spacing) + var(--lb-icon-size)) + var(--lb-spacing));padding:0 var(--lb-spacing)var(--lb-spacing);align-items:center;margin-block-start:calc(-.125*var(--lb-spacing));display:flex}.lb-composer-actions,.lb-composer-editor-actions{gap:calc(.125*var(--lb-spacing));align-items:center;display:flex}.lb-composer-editor-actions{margin-inline-end:auto}.lb-composer-attribution{color:var(--lb-foreground-moderate);outline:none;transition-property:color}.lb-composer-attribution:where(:hover,:focus-visible){color:var(--lb-foreground-tertiary)}.lb-composer-attribution :where(svg){block-size:calc(.75*calc(2*.25*var(--lb-spacing) + var(--lb-icon-size)))}.lb-composer-attachments{padding-inline:var(--lb-spacing);padding-block-start:calc(.75*var(--lb-spacing));padding-block-end:var(--lb-spacing)}.lb-composer-editor-container:where([data-drop]) *{pointer-events:none}.lb-composer-attachments-drop-area{color:var(--lb-accent);place-content:center;place-items:center;display:flex;position:absolute;inset:0}.lb-composer-attachments-drop-area:before,.lb-composer-attachments-drop-area:after{content:"";inset:calc(.5*var(--lb-spacing));z-index:0;border-radius:calc(.75*var(--lb-radius));position:absolute}.lb-composer-attachments-drop-area:before{opacity:calc(1*var(--lb-accent-contrast));background:currentColor}.lb-composer-attachments-drop-area:after{opacity:calc(2*var(--lb-accent-contrast));border:2px dashed}.lb-composer-attachments-drop-area-label{gap:calc(.25*var(--lb-spacing));padding:calc(.375*var(--lb-spacing))calc(.5*var(--lb-spacing));border-radius:calc(.75*var(--lb-radius));background:var(--lb-accent);color:var(--lb-accent-foreground);pointer-events:none;place-items:center;font-weight:500;display:flex;position:relative}.lb-composer-floating-toolbar{-webkit-user-select:none;user-select:none;flex-direction:row;gap:4px;padding:4px;display:flex}.lb-composer-floating-toolbar :where(.lb-button):before{content:"";z-index:-1;border-radius:inherit;position:absolute;inset:-4px}.lb-composer-floating-toolbar :where(.lb-button):where(:not(:first-of-type)):before{inset-inline-start:-2px}.lb-composer-floating-toolbar :where(.lb-button):where(:not(:last-of-type)):before{inset-inline-end:-2px}.lb-comment{--lb-comment-avatar-size:calc(2*.25*var(--lb-spacing) + var(--lb-icon-size));padding:var(--lb-spacing);background:var(--lb-dynamic-background);color:var(--lb-foreground);scroll-margin:var(--lb-spacing);font-weight:400;position:relative}.lb-comment:where(:target,[data-target]){--lb-dynamic-background:var(--lb-background-accent-faint)}.lb-comment:where([data-editing]){--lb-dynamic-background:var(--lb-background-foreground-faint)}.lb-comment-header{gap:calc(.75*var(--lb-spacing));block-size:var(--lb-comment-avatar-size);align-items:center;margin-block-end:calc(.75*var(--lb-spacing));display:flex;position:relative}.lb-comment-details{gap:calc(.75*var(--lb-spacing));align-items:center;min-inline-size:0;display:flex}.lb-comment-avatar{inline-size:var(--lb-comment-avatar-size);flex:none}.lb-comment-details-labels{gap:calc(.5*var(--lb-spacing));align-items:baseline;min-inline-size:0;display:flex}.lb-comment-author,.lb-comment-date{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lb-comment-author:first-letter,.lb-comment-date:first-letter{text-transform:capitalize}.lb-comment-author{font-weight:500}.lb-comment-date{color:var(--lb-foreground-tertiary);font-size:.875em}.lb-comment-date-created,.lb-comment-date-edited{display:contents}.lb-comment-actions{gap:calc(.125*var(--lb-spacing));margin-inline-start:auto;display:flex}.lb-comment-composer{margin:calc(-1*var(--lb-spacing));background:unset}.lb-comment-body :where(p span:only-child:empty):before{content:"";-webkit-user-select:none;user-select:none}.lb-comment-attachments{margin-block-start:calc(.75*var(--lb-spacing))}.lb-comment-reactions{gap:calc(.375*var(--lb-spacing));flex-wrap:wrap;margin-block-start:calc(.75*var(--lb-spacing));display:flex}.lb-comment-reaction{gap:calc(.375*var(--lb-spacing));block-size:calc(2*.25*var(--lb-spacing) + var(--lb-icon-size));padding-inline:calc(.575*var(--lb-spacing));border-radius:9999px}.lb-comment-reaction:where([data-self]){background:var(--lb-accent-subtle);color:var(--lb-accent-secondary);box-shadow:inset 0 0 0 1px var(--lb-accent-moderate)}.lb-comment-reaction:where([data-self]):where(:enabled:hover,:enabled:focus-visible,[aria-expanded=true],[aria-selected=true]){color:var(--lb-accent)}.lb-comment-reaction-count{font-variant-numeric:tabular-nums;font-size:.75em;font-weight:500}.lb-comment-reaction-tooltip{max-inline-size:200px}.lb-comment-deleted{color:var(--lb-foreground-tertiary);font-size:.875em}.lb-comment\:indent-content{min-block-size:calc(var(--lb-comment-avatar-size) + 2*var(--lb-spacing))}.lb-comment\:indent-content :where(.lb-comment-header){block-size:calc(2*.25*var(--lb-spacing) + var(--lb-icon-size));margin-block-end:calc(.25*var(--lb-spacing))}.lb-comment\:indent-content :where(.lb-comment-avatar){position:absolute;inset-block-start:0;inset-inline-start:0}.lb-comment\:indent-content :where(.lb-comment-details-labels){margin-inline-start:calc(var(--lb-comment-avatar-size) + .75*var(--lb-spacing))}.lb-comment\:indent-content :where(.lb-comment-content){padding-inline-start:calc(var(--lb-comment-avatar-size) + .75*var(--lb-spacing))}.lb-thread{background:var(--lb-dynamic-background);color:var(--lb-foreground);transition-property:background}.lb-thread-comments{z-index:0;flex-direction:column;display:flex;position:relative}.lb-thread-comment{z-index:0;padding-block:calc(.6*var(--lb-spacing));transition-property:background}.lb-thread-comment:where(.lb-comment\:indent-content){min-block-size:calc(var(--lb-comment-avatar-size) + var(--lb-spacing))}.lb-thread-comment:where(:first-of-type,[data-editing]){padding-block-start:var(--lb-spacing)}.lb-thread-comment:where(:first-of-type,[data-editing]):where(.lb-comment\:indent-content){min-block-size:calc(var(--lb-comment-avatar-size) + 1.5*var(--lb-spacing))}.lb-thread-comment:where(:last-of-type,[data-editing]){padding-block-end:var(--lb-spacing)}.lb-thread-comment:where(:last-of-type,[data-editing]):where(.lb-comment\:indent-content){min-block-size:calc(var(--lb-comment-avatar-size) + 1.75*var(--lb-spacing))}.lb-thread-show-more{z-index:1;gap:calc(.5*var(--lb-spacing));justify-content:center;align-items:center;display:flex;position:relative}.lb-thread-show-more:before,.lb-thread-show-more:after{content:"";z-index:0;min-inline-size:var(--lb-spacing);border-block-start:1px dashed var(--lb-foreground-subtle);flex:1 0 auto;block-size:0;transition-property:border}:where(.lb-thread-show-more+.lb-thread-new-indicator){margin-block-start:calc(.5*var(--lb-spacing))}.lb-thread-new-indicator{z-index:1;justify-content:center;align-items:center;block-size:0;display:flex;position:relative}.lb-thread-new-indicator:before,.lb-thread-new-indicator:after{content:"";z-index:0;border-block-start:1px solid var(--lb-foreground-subtle);flex:1;block-size:0;transition-property:border}.lb-thread-new-indicator-label{z-index:1;gap:calc(.325*var(--lb-spacing));padding:calc(.25*var(--lb-spacing))var(--lb-spacing);color:var(--lb-accent);text-transform:uppercase;flex:none;align-items:center;font-size:.675em;font-weight:600;display:flex}.lb-thread-new-indicator-label-icon{inline-size:calc(.6*var(--lb-icon-size));block-size:calc(.6*var(--lb-icon-size))}.lb-thread-composer{position:relative}.lb-thread-composer:after{content:"";border-block-start:1px solid var(--lb-foreground-subtle);pointer-events:none;block-size:100%;inline-size:100%;transition-property:border;position:absolute;inset:0}.lb-comment-attachments,.lb-composer-attachments{gap:calc(.75*var(--lb-spacing));flex-direction:column;display:flex}.lb-attachments{gap:calc(.75*var(--lb-spacing));grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));display:grid}.lb-attachment,.lb-attachment-delete{all:unset;box-sizing:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;transition-timing-function:var(--lb-transition-easing);transition-duration:var(--lb-transition-duration);-webkit-tap-highlight-color:transparent;outline:none;transition-property:background,color,opacity;position:relative}.lb-attachment:after,.lb-attachment-delete:after{content:"";border-radius:inherit;pointer-events:none;transition-property:box-shadow;position:absolute;inset:0}.lb-attachment:where(:focus-visible),.lb-attachment-delete:where(:focus-visible){z-index:1}.lb-attachment:where(:focus-visible):after,.lb-attachment-delete:where(:focus-visible):after{box-shadow:var(--lb-dynamic-background)0 0 0 2px,var(--lb-accent)0 0 0 4px}.lb-attachment{border-radius:var(--lb-radius);background:var(--lb-dynamic-background);inline-size:100%;min-inline-size:0;box-shadow:inset 0 0 0 1px var(--lb-foreground-subtle);display:flex;position:relative}.lb-attachment:where([tabindex="-1"]){cursor:default}.lb-attachment:where(:not([tabindex="-1"])):where(:hover,:focus-visible){background:var(--lb-foreground-subtle)}.lb-attachment-delete{z-index:2;background:var(--lb-foreground-subtle);block-size:1.1rem;inline-size:1.1rem;color:var(--lb-foreground-secondary);box-shadow:0 0 0 2px var(--lb-dynamic-background);opacity:0;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;inset-block-start:-.35rem;inset-inline-end:-.35rem}.lb-attachment-delete:before{content:"";z-index:-1;border-radius:inherit;position:absolute;inset:-4px}.lb-attachment-delete:where(:hover,:focus-visible){background:var(--lb-foreground-secondary);color:var(--lb-dynamic-background)}:where(.lb-attachment:focus-within,.lb-attachment:hover) .lb-attachment-delete{opacity:1}.lb-attachment-delete :where(.lb-icon){inline-size:.75rem}.lb-attachment-details{gap:calc(.25*var(--lb-spacing));flex-direction:column;justify-content:center;min-inline-size:0;font-size:.875em;display:flex;position:relative}.lb-attachment-name{font-weight:500;display:flex}.lb-attachment-name-base,.lb-attachment-description{text-overflow:ellipsis;white-space:nowrap;transition-property:color;overflow:hidden}.lb-attachment-preview{background:color-mix(in srgb,transparent,var(--lb-foreground)var(--lb-foreground-contrast));color:var(--lb-foreground-tertiary);flex:none;justify-content:center;align-items:center;transition-property:background,color;display:flex;position:relative;overflow:hidden}.lb-attachment-preview-media{border-radius:inherit;transition-property:opacity}.lb-attachment-preview-media,.lb-attachment-preview-media:after,.lb-attachment-preview-media img,.lb-attachment-preview-media video{block-size:100%;inline-size:100%;position:absolute;inset:0}.lb-attachment-preview-media img,.lb-attachment-preview-media video{object-fit:cover;pointer-events:none}.lb-attachment-preview-media:after{content:"";border-radius:inherit;box-shadow:var(--lb-highlight-shadow);pointer-events:none}.lb-attachment-preview-media:where([data-hidden]){opacity:0}.lb-attachment-icon{color:var(--lb-foreground);flex:none;overflow:visible}.lb-attachment-icon-glyph{fill:var(--lb-foreground-moderate)}.lb-attachment-icon-background{fill:var(--lb-background)}.lb-attachment-icon-fold{fill-opacity:calc(.75*var(--lb-foreground-contrast))}.lb-attachment-icon-shadow{filter:blur(6px);fill-opacity:var(--lb-foreground-contrast)}.lb-file-attachment{gap:calc(.5*var(--lb-spacing));padding:calc(.5*var(--lb-spacing));padding-inline-end:calc(.65*var(--lb-spacing))}.lb-file-attachment :where(.lb-attachment-preview){aspect-ratio:1;border-radius:calc(.5*var(--lb-radius));inline-size:2.5rem}.lb-file-attachment :where(.lb-attachment-name){color:var(--lb-foreground-secondary)}.lb-file-attachment :where(.lb-attachment-description){color:var(--lb-foreground-tertiary)}.lb-file-attachment:where(:not([tabindex="-1"])):where(:hover,:focus-visible,:focus-within) :where(.lb-attachment-name){color:var(--lb-foreground)}.lb-file-attachment:where(:not([tabindex="-1"])):where(:hover,:focus-visible,:focus-within) :where(.lb-attachment-description){color:var(--lb-foreground-secondary)}.lb-media-attachment{aspect-ratio:16/10}.lb-media-attachment :where(.lb-attachment-preview){border-radius:inherit;position:absolute;inset:0}.lb-media-attachment :where(.lb-attachment-details){padding:calc(.75*var(--lb-spacing));text-shadow:0 0 2px #0006;opacity:0;background:linear-gradient(#0000,#000c);border-end-end-radius:inherit;border-end-start-radius:inherit;transition-property:opacity;position:absolute;inset-block-end:0;inset-inline:0}.lb-media-attachment :where(.lb-attachment-name){color:#fff}.lb-media-attachment :where(.lb-attachment-description){color:#fffc}.lb-media-attachment:where(:not([tabindex="-1"])):where(:hover,:focus-visible,:focus-within) :where(.lb-attachment-details){opacity:1}.lb-attachment:where([data-error]) :where(.lb-attachment-preview){background:var(--lb-destructive);color:var(--lb-destructive-foreground)}.lb-inbox-notification{--lb-inbox-notification-aside-size:36px;gap:calc(.75*var(--lb-spacing));padding:var(--lb-spacing);background:var(--lb-dynamic-background);color:var(--lb-foreground);-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:400;transition-property:background;display:flex;position:relative;overflow:hidden}.lb-inbox-notification:where([data-missing]){--lb-dynamic-background:var(--lb-background-accent-faint);--lb-accent:var(--lb-destructive)!important;--lb-accent-foreground:var(--lb-destructive-foreground)!important;--lb-accent-contrast:var(--lb-destructive-contrast)!important}.lb-inbox-notification:where([data-unread]){--lb-dynamic-background:var(--lb-background-accent-faint)}.lb-inbox-notification:where([href]){cursor:pointer}.lb-inbox-notification:where([href]):where(:hover,:focus-visible,:focus-within){--lb-dynamic-background:var(--lb-background-foreground-faint)}.lb-inbox-notification:where([href]):where([data-unread]):where(:hover,:focus-visible,:focus-within){--lb-dynamic-background:var(--lb-background-accent-subtle)}.lb-inbox-notification-aside{inline-size:var(--lb-inbox-notification-aside-size);flex:none}.lb-inbox-notification-icon{aspect-ratio:1;background:var(--lb-foreground-subtle);border-radius:50%;justify-content:center;place-items:center;display:flex}.lb-inbox-notification:where([data-missing]) :where(.lb-inbox-notification-icon){background:var(--lb-accent-subtle);color:var(--lb-accent)}.lb-inbox-notification-content{flex:1}.lb-inbox-notification-content,.lb-inbox-notification-body{min-inline-size:0;max-inline-size:100%}.lb-inbox-notification-header{gap:calc(.75*var(--lb-spacing));align-items:center;margin-block-start:calc(.25*var(--lb-spacing));margin-block-end:calc(.5*var(--lb-spacing));display:flex}.lb-inbox-notification-title{min-block-size:calc(2*.25*var(--lb-spacing) + var(--lb-icon-size))}:where(.lb-inbox-notification:not([data-inspector])) .lb-inbox-notification-title:first-letter{text-transform:capitalize}.lb-inbox-notification-title :where(strong,.lb-list,.lb-name){font-weight:500}.lb-inbox-notification-details{min-inline-size:0;block-size:calc(2*.25*var(--lb-spacing) + var(--lb-icon-size));flex:none;align-self:start;margin-inline-start:auto}.lb-inbox-notification-details-labels{align-items:baseline;min-inline-size:0;display:flex}.lb-inbox-notification-details-labels:before{content:""}.lb-inbox-notification-actions{gap:calc(.125*var(--lb-spacing));grid-area:actions;align-self:start;display:flex}.lb-inbox-notification-comments{gap:var(--lb-spacing);flex-direction:column;display:flex}.lb-inbox-notification-comment{background:0 0;padding:0}.lb-inbox-notification-comment :where(.lb-comment-header){block-size:auto;color:var(--lb-foreground-tertiary);font-size:.875rem}.lb-inbox-notification-comment :where(.lb-comment-reaction),.lb-inbox-notification-comment :where(.lb-comment-attachment){pointer-events:none}.lb-inbox-notification-date{color:var(--lb-foreground-tertiary);font-size:.875em}.lb-inbox-notification-unread-indicator{block-size:10px;inline-size:10px;background:var(--lb-accent);border-radius:50%;align-self:center;margin-inline-start:calc(.5*var(--lb-spacing))}.lb-history-version-summary{gap:calc(.25*var(--lb-spacing));inline-size:100%;min-inline-size:0;padding:var(--lb-spacing);background:var(--lb-dynamic-background);flex-direction:column;justify-content:center;transition-property:background;display:flex;position:relative}.lb-history-version-summary:where(:hover,:focus-visible,:focus-within,[data-selected]:not([data-selected=false])){--lb-dynamic-background:var(--lb-background-foreground-faint)}.lb-history-version-summary-date,.lb-history-version-summary-authors{text-overflow:ellipsis;white-space:nowrap;min-inline-size:0;max-inline-size:100%;overflow:hidden}.lb-history-version-summary-date:first-letter,.lb-history-version-summary-authors:first-letter{text-transform:capitalize}.lb-history-version-summary-date{color:var(--lb-foreground-secondary);font-weight:500}.lb-history-version-summary-authors{color:var(--lb-foreground-tertiary)}.lb-history-version-preview{background:var(--lb-dynamic-background);flex-direction:column;display:flex;position:relative;overflow-y:auto}.lb-history-version-preview-content{padding:var(--lb-spacing);flex:1 0 auto}.lb-history-version-preview-footer{gap:var(--lb-spacing);padding:var(--lb-spacing);border-block-start:1px solid var(--lb-foreground-subtle);background:var(--lb-dynamic-background);flex:none;align-items:center;margin-block-start:auto;display:flex;position:sticky;inset-block-end:0}.lb-history-version-preview-authors{text-overflow:ellipsis;white-space:nowrap;min-inline-size:0;color:var(--lb-foreground-tertiary);flex:auto;overflow:hidden}.lb-history-version-preview-actions{gap:calc(.35*var(--lb-spacing));flex:none;align-items:center;margin-inline-start:auto;display:flex}.lb-inbox-notification-list,.lb-history-version-summary-list{margin:0;padding:0;list-style:none}.lb-inbox-notification-list-item:where(:not(:last-of-type)),.lb-history-version-summary-list-item:where(:not(:last-of-type)){border-block-end:1px solid var(--lb-foreground-subtle)}.lb-root :where(code:not(pre>code)){border-radius:calc(.75*var(--lb-radius));background:var(--lb-foreground-subtle);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:.2em .4em;font-size:85%;line-height:1}.lb-root :where(span:has(code)+span code){border-start-start-radius:0;border-end-start-radius:0;padding-inline-start:0}.lb-root :where(span:has(code):has(+span code) code){border-start-end-radius:0;border-end-end-radius:0;padding-inline-end:0}:where(.lb-root code){font-family:ui-monospace,Menlo,Monaco,Roboto Mono,Cascadia Code,Source Code Pro,Consolas,DejaVu Sans Mono,monospace}.lb-elevation{--lb-dynamic-background:var(--lb-background);border-radius:var(--lb-radius);background:var(--lb-dynamic-background);box-shadow:var(--lb-elevation-shadow);position:relative;overflow:hidden}.lb-elevation:after{content:"";z-index:1;border-radius:inherit;box-shadow:var(--lb-inset-shadow);pointer-events:none;position:absolute;inset:0}.lb-elevation:where(.lb-elevation-moderate){box-shadow:var(--lb-elevation-shadow-moderate)}.lb-dropdown,.lb-composer-suggestions{padding:4px;overflow-y:auto}.lb-dropdown:where([data-hidden]),.lb-composer-suggestions:where([data-hidden]){opacity:0}.lb-dropdown-item,.lb-composer-suggestions-list-item{padding:calc(.25*var(--lb-spacing))calc(.5*var(--lb-spacing));align-items:center;font-size:.875rem;display:flex}.lb-dropdown-item,.lb-composer-suggestions-list-item,.lb-emoji-picker-emoji{border-radius:calc(var(--lb-radius) - .75*4px);color:var(--lb-foreground-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;transition-property:background,color,opacity}:is(.lb-dropdown-item,.lb-composer-suggestions-list-item,.lb-emoji-picker-emoji):where([data-highlighted]:not([data-highlighted=false]),[data-selected]:not([data-selected=false]),[data-active]:not([data-active=false])){background:var(--lb-foreground-subtle);transition-duration:calc(var(--lb-transition-duration)/2)}:is(.lb-dropdown-item,.lb-composer-suggestions-list-item,.lb-emoji-picker-emoji):where(:disabled,[data-disabled]:not([data-disabled=false])){opacity:.5;cursor:not-allowed}.lb-dropdown,.lb-composer-suggestions,.lb-composer-floating-toolbar,.lb-tooltip,.lb-emoji-picker{animation-duration:var(--lb-transition-duration);animation-timing-function:var(--lb-transition-easing);will-change:transform,opacity}:is(.lb-dropdown,.lb-emoji-picker,.lb-tooltip:where([data-state=delayed-open]),.lb-composer-suggestions,.lb-composer-floating-toolbar):where([data-side=top]){animation-name:lb-animation-slide-up}:is(.lb-dropdown,.lb-emoji-picker,.lb-tooltip:where([data-state=delayed-open]),.lb-composer-suggestions,.lb-composer-floating-toolbar):where([data-side=bottom]){animation-name:lb-animation-slide-down}:is(.lb-dropdown,.lb-emoji-picker,.lb-tooltip,.lb-composer-suggestions,.lb-composer-floating-toolbar):where([data-state=closed]){animation-name:lb-animation-disappear}.lb-code-block{border:1px solid var(--lb-foreground-subtle);border-radius:var(--lb-radius);min-inline-size:0}.lb-code-block :where(.lb-code-block-header){padding:calc(.5*var(--lb-spacing));align-items:center;display:flex}.lb-code-block :where(.lb-code-block-title){color:var(--lb-foreground-tertiary);text-transform:uppercase;margin-inline-start:calc(.5*var(--lb-spacing));font-size:.675em;font-weight:600}.lb-code-block :where(.lb-code-block-header-actions){margin-inline-start:auto}.lb-code-block :where(.lb-code-block-content){min-inline-size:0;padding:0 var(--lb-spacing)calc(.875*var(--lb-spacing));font-size:85%;line-height:var(--lb-line-height);margin:0;overflow-x:auto}.lb-ai-composer{inline-size:100%;color:var(--lb-foreground);position:relative}.lb-ai-composer-form:where(:has(.lb-ai-composer-editor:not(:focus-visible))) :where(.lb-button[data-variant=primary]){--lb-button-background:var(--lb-foreground-subtle);color:var(--lb-foreground-tertiary)}.lb-ai-composer-form:where(:has(.lb-ai-composer-editor:not(:focus-visible))) :where(.lb-button[data-variant=primary]):where(:enabled:hover,:enabled:focus-visible){--lb-button-background:var(--lb-accent);color:var(--lb-accent-foreground)}.lb-ai-composer-editor{max-block-size:15rem;padding:var(--lb-spacing)var(--lb-spacing)0;color:var(--lb-foreground-secondary);resize:none;outline:none;overflow-y:auto}.lb-ai-composer-editor,.lb-ai-composer-editor *{line-height:var(--lb-line-height)}.lb-ai-composer-editor :where(p){--lb-line-height-crop:calc(1lh - 1em)/-2;margin-block:.25em}.lb-ai-composer-editor :where(p):where(:first-of-type){margin-block-start:calc(.125em + var(--lb-line-height-crop))}.lb-ai-composer-editor :where(p):where(:last-of-type){margin-block-end:calc(.125em + var(--lb-line-height-crop))}.lb-ai-composer-editor:where([data-disabled]:not([data-disabled=false])){opacity:.5;cursor:not-allowed}.lb-ai-composer-editor :where([data-placeholder]){color:var(--lb-foreground-moderate)}.lb-ai-composer-footer{gap:calc(.75*var(--lb-spacing));padding:var(--lb-spacing);align-items:center;margin-block-start:calc(-.125*var(--lb-spacing));display:flex}.lb-ai-composer-actions,.lb-ai-composer-editor-actions{gap:calc(.125*var(--lb-spacing));align-items:center;display:flex}.lb-ai-composer-editor-actions{margin-inline-end:auto}.lb-ai-chat-message{gap:var(--lb-spacing);color:var(--lb-foreground);flex-direction:column;scroll-margin-block-start:calc(1.5*var(--lb-spacing));display:flex}.lb-ai-chat-user-message :where(.lb-ai-chat-message-content){min-block-size:calc(1lh + var(--lb-spacing));padding:calc(.5*var(--lb-spacing))var(--lb-spacing);border-radius:calc((1lh + var(--lb-spacing))/2);background:var(--lb-background-foreground-faint);color:var(--lb-foreground);line-height:var(--lb-line-height)}.lb-ai-chat-message-deleted{inline-size:100%;color:var(--lb-foreground-moderate);text-wrap:pretty;align-items:center;font-size:.875em;position:relative}.lb-ai-chat-message-error{gap:calc(.5*var(--lb-spacing));inline-size:100%;color:var(--lb-destructive);font-size:.875em;line-height:var(--lb-line-height);text-wrap:pretty;word-break:break-word;align-items:flex-start;display:flex}.lb-ai-chat-message-error :where(.lb-icon-container){block-size:1lh;color:var(--lb-destructive-secondary)}.lb-ai-chat-message-error :where(code:not(pre>code)){background:var(--lb-destructive-subtle)}.lb-ai-chat-message-content{white-space:break-spaces;inline-size:100%}.lb-ai-chat-message-content:where(:empty){display:contents}.lb-ai-chat-message-content>:where(.lb-ai-chat-message-text),.lb-ai-chat-message-content>:where(.lb-ai-chat-message-tool-invocation){margin-block:var(--lb-spacing)}.lb-ai-chat-message-content>:where(:first-child){margin-block-start:0}.lb-ai-chat-message-content>:where(:last-child){margin-block-end:0}.lb-ai-chat-messages{gap:calc(1.5*var(--lb-spacing));inline-size:100%;max-inline-size:min(calc(var(--lb-ai-chat-container-width) - var(--lb-spacing)),calc(100% - 3*var(--lb-spacing)));flex-direction:column;margin-inline:auto;padding-block-start:calc(1.5*var(--lb-spacing));padding-block-end:calc(3*var(--lb-spacing));display:flex}.lb-ai-chat-messages :where(.lb-ai-chat-user-message){max-inline-size:80%;margin-inline-start:auto}.lb-ai-chat-footer{gap:calc(.75*var(--lb-spacing));flex-direction:column;inline-size:100%;display:flex;position:relative}.lb-ai-chat{--lb-ai-chat-container-width:100%;background:var(--lb-background);isolation:isolate;flex-direction:column;block-size:100%;inline-size:100%;display:flex;overflow-y:auto}.lb-ai-chat :where(.lb-ai-chat-footer){z-index:1;margin-block-start:auto;position:sticky;inset-block-end:0}.lb-ai-chat :where(.lb-ai-chat-composer){margin-inline:auto}.lb-ai-chat:where(.lb-ai-chat\:layout-compact) :where(.lb-ai-chat-footer){background:var(--lb-dynamic-background)}.lb-ai-chat:where(.lb-ai-chat\:layout-compact) :where(.lb-ai-chat-footer):after{content:"";border-block-start:1px solid var(--lb-foreground-subtle);pointer-events:none;position:absolute;inset:0}.lb-ai-chat:where(.lb-ai-chat\:layout-compact) :where(.lb-ai-chat-composer){max-inline-size:min(100%,calc(var(--lb-ai-chat-container-width) + var(--lb-spacing)))}.lb-ai-chat:where(.lb-ai-chat\:layout-inset) :where(.lb-ai-chat-footer){padding:var(--lb-spacing);padding-block-start:0}.lb-ai-chat:where(.lb-ai-chat\:layout-inset) :where(.lb-ai-chat-footer):before{content:"";background:linear-gradient(to bottom,transparent 0%,var(--lb-background)calc(3.5*var(--lb-spacing)));pointer-events:none;position:absolute;inset:0;inset-block-start:calc(-3*var(--lb-spacing))}.lb-ai-chat:where(.lb-ai-chat\:layout-inset) :where(.lb-ai-chat-composer){max-inline-size:var(--lb-ai-chat-container-width);border-radius:calc(2*var(--lb-radius))}.lb-ai-chat-content{flex:1 0 auto;position:relative}.lb-ai-chat-footer-actions{pointer-events:none;justify-content:center;display:flex;position:absolute;inset-block-start:calc(-1*var(--lb-spacing));inset-inline:0;transform:translateY(-100%)}.lb-ai-chat-scroll-indicator{color:var(--lb-foreground-moderate);opacity:0;pointer-events:none;transform-origin:bottom;border-radius:9999px;transition-property:transform,opacity,background;transform:scale(.8)}.lb-ai-chat-scroll-indicator:where([data-visible]){opacity:1;pointer-events:all;transform:scale(1)}.lb-ai-chat-scroll-indicator-button{all:unset;box-sizing:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;transition-timing-function:var(--lb-transition-easing);transition-duration:var(--lb-transition-duration);-webkit-tap-highlight-color:transparent;padding:calc(.375*var(--lb-spacing));color:var(--lb-foreground-moderate);border-radius:9999px;outline:none;transition-property:opacity,color;position:relative}.lb-ai-chat-scroll-indicator-button:where(:hover,:focus-visible){color:var(--lb-foreground-secondary)}.lb-ai-chat-scroll-indicator-button:after{content:"";border-radius:inherit;pointer-events:none;transition-property:box-shadow;position:absolute;inset:0}.lb-ai-chat-scroll-indicator-button:where(:focus-visible):after{box-shadow:inset var(--lb-accent)0 0 0 2px}.lb-ai-chat-pending{-webkit-user-select:none;user-select:none;animation:5s linear infinite lb-animation-shimmer-small}.lb-ai-chat-message-thinking,.lb-ai-chat-message-reasoning{inline-size:fit-content;max-inline-size:100%;color:var(--lb-foreground-tertiary)}.lb-ai-chat-message-thinking:where(.lb-ai-chat-pending),.lb-ai-chat-message-reasoning:where(.lb-ai-chat-pending),.lb-ai-chat-message-thinking :where(.lb-ai-chat-pending),.lb-ai-chat-message-reasoning :where(.lb-ai-chat-pending){color:var(--lb-foreground)}.lb-ai-chat-message-reasoning{margin-block-end:calc(.75*var(--lb-spacing))}.lb-ai-chat-message-reasoning :where(.lb-collapsible-trigger){gap:calc(.25*var(--lb-spacing));align-items:center;display:flex}.lb-ai-chat-message-reasoning :where(.lb-collapsible-trigger):where(:focus-visible){color:var(--lb-accent)}.lb-ai-chat-message-reasoning :where(.lb-collapsible-trigger):where(:focus-visible) :where(.lb-collapsible-chevron){color:var(--lb-accent-moderate)}.lb-ai-chat-message-reasoning :where(.lb-collapsible-content){gap:calc(.5*var(--lb-spacing));line-height:var(--lb-line-height);flex-direction:column;display:flex}:where(.lb-ai-chat-message-reasoning :where(.lb-collapsible-content)>:first-child){margin-block-start:calc(.5*var(--lb-spacing))}.lb-ai-chat-message-reasoning :where(.lb-prose){color:var(--lb-foreground);opacity:.75;font-size:.875em}.lb-ai-tool{border-radius:var(--lb-radius);box-shadow:inset 0 0 0 1px var(--lb-foreground-subtle);position:relative}.lb-ai-tool:after{content:"";border-radius:inherit;pointer-events:none;transition-property:box-shadow;position:absolute;inset:0}.lb-ai-tool:where(:has(.lb-ai-tool-header:focus-visible)){z-index:1}.lb-ai-tool:where(:has(.lb-ai-tool-header:focus-visible)):after{box-shadow:var(--lb-dynamic-background)0 0 0 2px,var(--lb-accent)0 0 0 4px}.lb-ai-tool-header{gap:calc(.3125*var(--lb-spacing));inline-size:100%;block-size:calc(calc(2*.25*var(--lb-spacing) + var(--lb-icon-size)) + var(--lb-spacing));padding-inline:calc(.5*var(--lb-spacing));align-items:center;display:flex}.lb-ai-tool-header-icon-container,.lb-ai-tool-icon{inline-size:calc(2*.25*var(--lb-spacing) + var(--lb-icon-size));block-size:calc(2*.25*var(--lb-spacing) + var(--lb-icon-size));flex:none;justify-content:center;align-items:center;display:flex}.lb-ai-tool-header-icon-container{color:var(--lb-foreground-moderate)}.lb-ai-tool-header-icon-container:where(:has(.lb-ai-tool-icon)){margin-inline-end:calc(.25*var(--lb-spacing))}.lb-ai-tool-icon{border-radius:calc(.75*var(--lb-radius));background:var(--lb-foreground-subtle);font-size:.875em}.lb-ai-tool-header-title{text-overflow:ellipsis;white-space:nowrap;color:var(--lb-foreground-secondary);margin-inline-end:calc(.25*var(--lb-spacing));font-size:.9375em;overflow:hidden}.lb-ai-tool-header-title:where(:first-child){margin-inline-start:calc(.3125*var(--lb-spacing))}.lb-ai-tool-header-status{color:var(--lb-foreground-moderate);flex:none;margin-inline-start:auto;margin-inline-end:calc(.1875*var(--lb-spacing))}.lb-ai-tool:where([data-result=error]){box-shadow:inset 0 0 0 1px var(--lb-destructive-moderate)}.lb-ai-tool:where([data-result=error]):where(:has(.lb-ai-tool-header:focus-visible)):after{box-shadow:var(--lb-dynamic-background)0 0 0 2px,var(--lb-destructive)0 0 0 4px}.lb-ai-tool:where([data-result=error]) :where(.lb-ai-tool-header-status){color:var(--lb-destructive)}.lb-ai-tool-content:where(:not(:empty)){padding:0 calc(.75*var(--lb-spacing))calc(.75*var(--lb-spacing))}.lb-ai-tool-inspector{gap:calc(.75*var(--lb-spacing));flex-direction:column;display:flex}.lb-ai-tool-confirmation-footer{align-items:center;margin-block-start:calc(.75*var(--lb-spacing));display:flex}.lb-ai-tool-confirmation-actions{gap:calc(.75*var(--lb-spacing));justify-content:flex-end;align-items:center;margin-inline-start:auto;display:flex}@keyframes lb-animation-slide-down{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes lb-animation-slide-up{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes lb-animation-appear{0%{opacity:0}to{opacity:1}}@keyframes lb-animation-disappear{0%{opacity:1}to{opacity:0}}@keyframes lb-animation-shimmer{0%,to{-webkit-mask-image:linear-gradient(90deg,#00000080,#000,#000,#00000080);mask-image:linear-gradient(90deg,#00000080,#000,#000,#00000080);-webkit-mask-size:400% 100%;mask-size:400% 100%}0%{-webkit-mask-position:200% 0;mask-position:200% 0}to{-webkit-mask-position:-200% 0;mask-position:-200% 0}}@keyframes lb-animation-shimmer-small{0%,to{-webkit-mask-image:linear-gradient(90deg,#000 0%,#00000080 18% 82%,#000 100%);mask-image:linear-gradient(90deg,#000 0%,#00000080 18% 82%,#000 100%);-webkit-mask-size:300% 100%;mask-size:300% 100%}0%{-webkit-mask-position:200% 0;mask-position:200% 0}to{-webkit-mask-position:-100% 0;mask-position:-100% 0}}@keyframes lb-animation-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (hover:hover){.lb-comment:where(.lb-comment\:show-actions-hover) :where(.lb-comment-actions){opacity:0;transition-property:opacity;position:absolute;inset-inline-end:0}.lb-comment:where(.lb-comment\:show-actions-hover):where(:is(:hover,:focus-within,.lb-comment\:action-open)) :where(.lb-comment-actions){opacity:1;position:relative}.lb-thread:where(.lb-thread\:show-actions-hover :is(:hover,:focus-within)) :where(.lb-thread-actions){opacity:1}.lb-inbox-notification:where(.lb-inbox-notification\:show-actions-hover) :where(.lb-inbox-notification-header){grid-template:"title secondary"/1fr max-content;display:grid}.lb-inbox-notification:where(.lb-inbox-notification\:show-actions-hover) :where(.lb-inbox-notification-details){opacity:1;transition-property:opacity}.lb-inbox-notification:where(.lb-inbox-notification\:show-actions-hover) :where(.lb-inbox-notification-actions){opacity:0;transition-property:opacity}.lb-inbox-notification:where(.lb-inbox-notification\:show-actions-hover):where(:is(:hover,:focus-within,.lb-inbox-notification\:action-open)) :where(.lb-inbox-notification-details){opacity:0}.lb-inbox-notification:where(.lb-inbox-notification\:show-actions-hover):where(:is(:hover,:focus-within,.lb-inbox-notification\:action-open)) :where(.lb-inbox-notification-actions){opacity:1}.lb-inbox-notification:where(.lb-inbox-notification\:show-actions-hover) :where(.lb-inbox-notification-details),.lb-inbox-notification:where(.lb-inbox-notification\:show-actions-hover) :where(.lb-inbox-notification-actions){grid-area:secondary;justify-self:end}}@media (prefers-reduced-motion:no-preference){@supports (interpolate-size:allow-keywords){.lb-collapsible-content{opacity:0;block-size:0;transition-duration:calc(3*var(--lb-transition-duration));interpolate-size:allow-keywords;transition-behavior:allow-discrete;transition-property:block-size,opacity,content-visibility;overflow-y:clip}.lb-collapsible-content:where([data-state=open]){opacity:1;block-size:auto;overflow-y:auto}}.lb-collapsible-chevron{transition-property:transform}.lb-collapsible:where([data-state=open]) :where(.lb-collapsible-chevron){transform:rotate(90deg)}}@media (prefers-reduced-motion){.lb-dropdown:where(:not([data-state=closed])),.lb-emoji-picker:where(:not([data-state=closed])),.lb-tooltip:where([data-state=delayed-open]:not([data-state=closed])),.lb-composer-suggestions:where(:not([data-state=closed])){animation-name:lb-animation-appear}}
|