@liveblocks/react-ui 2.25.0-aiprivatebeta8 → 3.0.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/_private/package.json +2 -2
- package/dist/_private/index.cjs +14 -12
- package/dist/_private/index.cjs.map +1 -1
- package/dist/_private/index.d.cts +146 -113
- package/dist/_private/index.d.ts +146 -113
- package/dist/_private/index.js +10 -5
- package/dist/_private/index.js.map +1 -1
- package/dist/components/AiChat.cjs +85 -121
- package/dist/components/AiChat.cjs.map +1 -1
- package/dist/components/AiChat.js +87 -123
- package/dist/components/AiChat.js.map +1 -1
- package/dist/components/AiTool.cjs +188 -0
- package/dist/components/AiTool.cjs.map +1 -0
- package/dist/components/AiTool.js +186 -0
- package/dist/components/AiTool.js.map +1 -0
- package/dist/components/Comment.cjs +259 -238
- package/dist/components/Comment.cjs.map +1 -1
- package/dist/components/Comment.js +261 -240
- package/dist/components/Comment.js.map +1 -1
- package/dist/components/Composer.cjs +42 -30
- package/dist/components/Composer.cjs.map +1 -1
- package/dist/components/Composer.js +44 -32
- package/dist/components/Composer.js.map +1 -1
- package/dist/components/InboxNotificationList.cjs +11 -3
- package/dist/components/InboxNotificationList.cjs.map +1 -1
- package/dist/components/InboxNotificationList.js +12 -4
- package/dist/components/InboxNotificationList.js.map +1 -1
- package/dist/components/Thread.cjs +7 -1
- package/dist/components/Thread.cjs.map +1 -1
- package/dist/components/Thread.js +8 -2
- package/dist/components/Thread.js.map +1 -1
- package/dist/components/internal/AiChatAssistantMessage.cjs +75 -199
- package/dist/components/internal/AiChatAssistantMessage.cjs.map +1 -1
- package/dist/components/internal/AiChatAssistantMessage.js +77 -201
- package/dist/components/internal/AiChatAssistantMessage.js.map +1 -1
- package/dist/components/internal/AiChatComposer.cjs +1 -1
- package/dist/components/internal/AiChatComposer.cjs.map +1 -1
- package/dist/components/internal/AiChatComposer.js +1 -1
- package/dist/components/internal/AiChatComposer.js.map +1 -1
- package/dist/components/internal/AiChatUserMessage.cjs +17 -10
- package/dist/components/internal/AiChatUserMessage.cjs.map +1 -1
- package/dist/components/internal/AiChatUserMessage.js +17 -10
- package/dist/components/internal/AiChatUserMessage.js.map +1 -1
- package/dist/components/internal/Button.cjs.map +1 -1
- package/dist/components/internal/Button.js.map +1 -1
- package/dist/components/internal/CodeBlock.cjs +75 -0
- package/dist/components/internal/CodeBlock.cjs.map +1 -0
- package/dist/components/internal/CodeBlock.js +73 -0
- package/dist/components/internal/CodeBlock.js.map +1 -0
- package/dist/components/internal/Dropdown.cjs +1 -1
- package/dist/components/internal/Dropdown.cjs.map +1 -1
- package/dist/components/internal/Dropdown.js +2 -2
- package/dist/components/internal/Dropdown.js.map +1 -1
- package/dist/components/internal/Emoji.cjs +12 -4
- package/dist/components/internal/Emoji.cjs.map +1 -1
- package/dist/components/internal/Emoji.js +12 -4
- package/dist/components/internal/Emoji.js.map +1 -1
- package/dist/components/internal/EmojiPicker.cjs +1 -1
- package/dist/components/internal/EmojiPicker.cjs.map +1 -1
- package/dist/components/internal/EmojiPicker.js +2 -2
- package/dist/components/internal/EmojiPicker.js.map +1 -1
- package/dist/components/internal/InboxNotificationThread.cjs +5 -2
- package/dist/components/internal/InboxNotificationThread.cjs.map +1 -1
- package/dist/components/internal/InboxNotificationThread.js +6 -3
- package/dist/components/internal/InboxNotificationThread.js.map +1 -1
- package/dist/components/internal/Prose.cjs +37 -0
- package/dist/components/internal/Prose.cjs.map +1 -0
- package/dist/components/internal/Prose.js +35 -0
- package/dist/components/internal/Prose.js.map +1 -0
- package/dist/components/internal/Tooltip.cjs +1 -1
- package/dist/components/internal/Tooltip.cjs.map +1 -1
- package/dist/components/internal/Tooltip.js +2 -2
- package/dist/components/internal/Tooltip.js.map +1 -1
- package/dist/config.cjs +9 -9
- package/dist/config.cjs.map +1 -1
- package/dist/config.js +8 -8
- package/dist/config.js.map +1 -1
- package/dist/icons/CrossCircleFill.cjs +25 -0
- package/dist/icons/CrossCircleFill.cjs.map +1 -0
- package/dist/icons/CrossCircleFill.js +23 -0
- package/dist/icons/CrossCircleFill.js.map +1 -0
- package/dist/icons/MinusCircle.cjs +23 -0
- package/dist/icons/MinusCircle.cjs.map +1 -0
- package/dist/icons/MinusCircle.js +21 -0
- package/dist/icons/MinusCircle.js.map +1 -0
- package/dist/icons/index.cjs +4 -0
- package/dist/icons/index.cjs.map +1 -1
- package/dist/icons/index.js +2 -0
- package/dist/icons/index.js.map +1 -1
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +270 -22
- package/dist/index.d.ts +270 -22
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/overrides.cjs +6 -4
- package/dist/overrides.cjs.map +1 -1
- package/dist/overrides.js +6 -4
- package/dist/overrides.js.map +1 -1
- package/dist/primitives/AiMessage/contexts.cjs +18 -0
- package/dist/primitives/AiMessage/contexts.cjs.map +1 -0
- package/dist/primitives/AiMessage/contexts.js +15 -0
- package/dist/primitives/AiMessage/contexts.js.map +1 -0
- package/dist/primitives/AiMessage/index.cjs +77 -0
- package/dist/primitives/AiMessage/index.cjs.map +1 -0
- package/dist/primitives/AiMessage/index.js +75 -0
- package/dist/primitives/AiMessage/index.js.map +1 -0
- package/dist/primitives/AiMessage/tool-invocation.cjs +70 -0
- package/dist/primitives/AiMessage/tool-invocation.cjs.map +1 -0
- package/dist/primitives/AiMessage/tool-invocation.js +68 -0
- package/dist/primitives/AiMessage/tool-invocation.js.map +1 -0
- package/dist/primitives/{internal/Collapsible → Collapsible}/index.cjs +39 -17
- package/dist/primitives/Collapsible/index.cjs.map +1 -0
- package/dist/primitives/{internal/Collapsible → Collapsible}/index.js +37 -15
- package/dist/primitives/Collapsible/index.js.map +1 -0
- package/dist/primitives/Comment/index.cjs +5 -4
- package/dist/primitives/Comment/index.cjs.map +1 -1
- package/dist/primitives/Comment/index.js +5 -4
- package/dist/primitives/Comment/index.js.map +1 -1
- package/dist/primitives/Composer/index.cjs +49 -41
- package/dist/primitives/Composer/index.cjs.map +1 -1
- package/dist/primitives/Composer/index.js +50 -42
- package/dist/primitives/Composer/index.js.map +1 -1
- package/dist/primitives/Composer/slate/plugins/mentions.cjs +4 -4
- package/dist/primitives/Composer/slate/plugins/mentions.cjs.map +1 -1
- package/dist/primitives/Composer/slate/plugins/mentions.js +4 -4
- package/dist/primitives/Composer/slate/plugins/mentions.js.map +1 -1
- package/dist/primitives/Composer/utils.cjs +3 -6
- package/dist/primitives/Composer/utils.cjs.map +1 -1
- package/dist/primitives/Composer/utils.js +3 -6
- package/dist/primitives/Composer/utils.js.map +1 -1
- package/dist/primitives/{internal/Markdown.cjs → Markdown.cjs} +105 -65
- package/dist/primitives/Markdown.cjs.map +1 -0
- package/dist/primitives/{internal/Markdown.js → Markdown.js} +106 -65
- package/dist/primitives/Markdown.js.map +1 -0
- package/dist/primitives/index.cjs +4 -6
- package/dist/primitives/index.cjs.map +1 -1
- package/dist/primitives/index.d.cts +20 -93
- package/dist/primitives/index.d.ts +20 -93
- package/dist/primitives/index.js +4 -6
- package/dist/primitives/index.js.map +1 -1
- package/dist/utils/ErrorBoundary.cjs +48 -0
- package/dist/utils/ErrorBoundary.cjs.map +1 -0
- package/dist/utils/ErrorBoundary.js +45 -0
- package/dist/utils/ErrorBoundary.js.map +1 -0
- package/dist/utils/use-controllable-state.cjs +25 -2
- package/dist/utils/use-controllable-state.cjs.map +1 -1
- package/dist/utils/use-controllable-state.js +25 -3
- package/dist/utils/use-controllable-state.js.map +1 -1
- package/dist/utils/use-visible.cjs +65 -45
- package/dist/utils/use-visible.cjs.map +1 -1
- package/dist/utils/use-visible.js +66 -46
- package/dist/utils/use-visible.js.map +1 -1
- package/dist/version.cjs +1 -1
- package/dist/version.cjs.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +16 -5
- package/primitives/package.json +2 -2
- package/src/styles/constants.css +1 -1
- package/src/styles/dark/index.css +7 -3
- package/src/styles/index.css +572 -252
- package/src/styles/utils.css +1 -1
- package/styles/dark/attributes.css +1 -1
- package/styles/dark/attributes.css.map +1 -1
- package/styles/dark/media-query.css +1 -1
- package/styles/dark/media-query.css.map +1 -1
- package/styles.css +1 -1
- package/styles.css.map +1 -1
- package/dist/components/AiToolDebugger.cjs +0 -74
- package/dist/components/AiToolDebugger.cjs.map +0 -1
- package/dist/components/AiToolDebugger.js +0 -72
- package/dist/components/AiToolDebugger.js.map +0 -1
- package/dist/primitives/internal/Collapsible/index.cjs.map +0 -1
- package/dist/primitives/internal/Collapsible/index.js.map +0 -1
- package/dist/primitives/internal/Emoji.cjs +0 -32
- package/dist/primitives/internal/Emoji.cjs.map +0 -1
- package/dist/primitives/internal/Emoji.js +0 -30
- package/dist/primitives/internal/Emoji.js.map +0 -1
- package/dist/primitives/internal/Markdown.cjs.map +0 -1
- package/dist/primitives/internal/Markdown.js.map +0 -1
package/styles.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["src/styles/src/styles/index.css","src/styles/src/styles/utils.css"],"names":[],"mappings":"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","file":"styles.css","sourcesContent":["@import \"./utils\";\n@import \"./constants\";\n\n.lb-root {\n /**\n * Basic\n */\n --lb-radius: 0.5em;\n --lb-spacing: 1em;\n --lb-accent: #17f;\n --lb-accent-foreground: #fff;\n --lb-destructive: #f45;\n --lb-destructive-foreground: #fff;\n --lb-background: #fff;\n --lb-foreground: #111;\n\n /**\n * Advanced\n */\n --lb-line-height: 1.5;\n --lb-icon-size: 20px;\n --lb-icon-weight: 1.5px;\n --lb-avatar-radius: 50%;\n --lb-button-radius: calc(0.75 * var(--lb-radius));\n --lb-transition-duration: 0.1s;\n --lb-transition-easing: cubic-bezier(0.4, 0, 0.2, 1);\n --lb-highlight-shadow: inset 0 0 0 1px rgb(0 0 0 / 10%);\n --lb-elevation-shadow: $lb-elevation-shadow;\n --lb-elevation-shadow-small: $lb-elevation-shadow-small;\n --lb-tooltip-shadow: $lb-tooltip-shadow;\n --lb-accent-contrast: 8%;\n --lb-destructive-contrast: 8%;\n --lb-foreground-contrast: 8%;\n\n /**\n * Colors\n */\n --lb-background-foreground-faint: color-mix-scale(\n var(--lb-background),\n var(--lb-foreground),\n var(--lb-foreground-contrast),\n 50\n );\n --lb-background-accent-faint: color-mix-scale(\n var(--lb-background),\n var(--lb-accent),\n var(--lb-accent-contrast),\n 50\n );\n --lb-background-accent-subtle: color-mix-scale(\n var(--lb-background),\n var(--lb-accent),\n var(--lb-accent-contrast),\n 100\n );\n --lb-background-destructive-faint: color-mix-scale(\n var(--lb-background),\n var(--lb-destructive),\n var(--lb-destructive-contrast),\n 50\n );\n --lb-background-destructive-subtle: color-mix-scale(\n var(--lb-background),\n var(--lb-destructive),\n var(--lb-destructive-contrast),\n 100\n );\n --lb-accent-subtle: color-mix-scale(\n var(--lb-dynamic-background),\n var(--lb-accent),\n var(--lb-accent-contrast),\n 100\n );\n --lb-accent-moderate: color-mix-scale(\n var(--lb-dynamic-background),\n var(--lb-accent),\n var(--lb-accent-contrast),\n 400\n );\n --lb-accent-tertiary: color-mix-scale(\n var(--lb-dynamic-background),\n var(--lb-accent),\n var(--lb-accent-contrast),\n 600\n );\n --lb-accent-secondary: color-mix-scale(\n var(--lb-dynamic-background),\n var(--lb-accent),\n var(--lb-accent-contrast),\n 800\n );\n --lb-destructive-subtle: color-mix-scale(\n var(--lb-dynamic-background),\n var(--lb-destructive),\n var(--lb-destructive-contrast),\n 100\n );\n --lb-destructive-moderate: color-mix-scale(\n var(--lb-dynamic-background),\n var(--lb-destructive),\n var(--lb-destructive-contrast),\n 400\n );\n --lb-destructive-tertiary: color-mix-scale(\n var(--lb-dynamic-background),\n var(--lb-destructive),\n var(--lb-destructive-contrast),\n 600\n );\n --lb-destructive-secondary: color-mix-scale(\n var(--lb-dynamic-background),\n var(--lb-destructive),\n var(--lb-destructive-contrast),\n 800\n );\n --lb-foreground-subtle: color-mix-scale(\n var(--lb-dynamic-background),\n var(--lb-foreground),\n var(--lb-foreground-contrast),\n 100\n );\n --lb-foreground-moderate: color-mix-scale(\n var(--lb-dynamic-background),\n var(--lb-foreground),\n var(--lb-foreground-contrast),\n 400\n );\n --lb-foreground-tertiary: color-mix-scale(\n var(--lb-dynamic-background),\n var(--lb-foreground),\n var(--lb-foreground-contrast),\n 600\n );\n --lb-foreground-secondary: color-mix-scale(\n var(--lb-dynamic-background),\n var(--lb-foreground),\n var(--lb-foreground-contrast),\n 800\n );\n --lb-selection: color-mix(in srgb, var(--lb-accent) 40%, transparent);\n\n overflow-wrap: break-word;\n accent-color: var(--lb-accent);\n text-size-adjust: none;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n\n &,\n *,\n ::before,\n ::after {\n box-sizing: border-box;\n transition: none var(--lb-transition-duration) var(--lb-transition-easing);\n }\n\n /* Define some variables only on first .lb-root instances */\n &:where(:not(& &)) {\n --lb-dynamic-background: var(--lb-background);\n }\n}\n\n/*************************************\n * States *\n *************************************/\n\n.lb-loading,\n.lb-empty,\n.lb-error {\n position: absolute;\n inset: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.lb-loading {\n color: var(--lb-foreground-moderate);\n}\n\n.lb-empty,\n.lb-error {\n padding: var(--lb-spacing);\n color: var(--lb-foreground-tertiary);\n font-size: 0.875em;\n text-align: center;\n text-wrap: balance;\n}\n\n/*************************************\n * Icon *\n *************************************/\n\n.lb-icon-container,\n.lb-icon {\n inline-size: var(--lb-icon-size);\n block-size: var(--lb-icon-size);\n}\n\n.lb-icon-container {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.lb-icon {\n --lb-icon-background: var(--lb-dynamic-background);\n\n * {\n stroke-width: var(--lb-icon-weight);\n vector-effect: non-scaling-stroke;\n }\n}\n\n.lb-icon-spinner {\n transform-origin: center;\n animation: lb-animation-spin 0.75s linear infinite;\n}\n\n/*************************************\n * Button *\n *************************************/\n\n.lb-button {\n --lb-button-background: var(--lb-dynamic-background);\n\n @include button;\n\n display: flex;\n justify-content: center;\n align-items: center;\n padding: calc(0.25 * var(--lb-spacing));\n border-radius: var(--lb-button-radius);\n background: var(--lb-button-background);\n color: var(--lb-foreground-moderate);\n\n &:where(.lb-button\\:non-disableable:disabled) {\n cursor: default;\n }\n\n &:where(:not(.lb-button\\:non-disableable):disabled) {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n &:where(\n :enabled:hover,\n :enabled:focus-visible,\n [aria-expanded=\"true\"],\n [aria-selected=\"true\"]\n ) {\n --lb-button-background: var(--lb-foreground-subtle);\n\n color: var(--lb-foreground-tertiary);\n }\n\n &:where(\n [data-variant=\"default\"]:not(\n :is(\n :enabled:hover,\n :enabled:focus-visible,\n [aria-expanded=\"true\"],\n [aria-selected=\"true\"],\n [aria-pressed]\n )\n )\n ) {\n background: transparent;\n }\n\n &:where([data-variant=\"primary\"]) {\n --lb-button-background: var(--lb-accent);\n\n color: var(--lb-accent-foreground);\n\n &:where(\n :enabled:hover,\n :enabled:focus-visible,\n [aria-expanded=\"true\"],\n [aria-selected=\"true\"]\n ) {\n --lb-button-background: var(--lb-accent-secondary);\n\n color: var(--lb-accent-foreground);\n }\n }\n\n &:where([data-variant=\"outline\"]) {\n box-shadow: inset 0 0 0 1px var(--lb-foreground-subtle);\n transition-property: background, color, opacity, box-shadow;\n }\n\n &:where(:has(.lb-button-label)) {\n gap: calc(0.175 * var(--lb-spacing));\n padding-inline: calc(0.55 * var(--lb-spacing));\n\n &:where(:has(.lb-icon-container)) {\n padding-inline-start: calc(0.4 * var(--lb-spacing));\n }\n }\n\n &:where([data-variant=\"toolbar\"]) {\n color: var(--lb-foreground-tertiary);\n\n &:where([aria-pressed=\"true\"]) {\n --lb-button-background: var(--lb-foreground-subtle);\n\n color: var(--lb-foreground-secondary);\n\n :where(.lb-icon *) {\n stroke-width: calc(1.25 * var(--lb-icon-weight));\n }\n }\n }\n\n &:where([data-variant=\"secondary\"]) {\n --lb-button-background: var(--lb-foreground-subtle);\n\n color: var(--lb-foreground-tertiary);\n\n &:where(\n :enabled:hover,\n :enabled:focus-visible,\n [aria-expanded=\"true\"],\n [aria-selected=\"true\"]\n ) {\n --lb-button-background: var(--lb-foreground);\n\n color: var(--lb-dynamic-background);\n }\n }\n\n &:where([data-size=\"large\"]) {\n padding: calc(0.5 * var(--lb-spacing));\n\n &:where(:has(.lb-button-label)) {\n gap: calc(0.35 * var(--lb-spacing));\n padding-inline: calc(0.7 * var(--lb-spacing));\n\n &:where(:has(.lb-icon-container)) {\n padding-inline-start: calc(0.6 * var(--lb-spacing));\n }\n }\n }\n\n :where(.lb-icon-container) {\n flex: none;\n }\n\n :where(.lb-icon) {\n --lb-icon-background: var(--lb-button-background);\n }\n}\n\n.lb-button-label {\n display: inline-flex;\n flex: none;\n align-items: center;\n block-size: var(--lb-icon-size);\n font-weight: 500;\n font-size: calc(0.7 * var(--lb-icon-size));\n line-height: 1;\n}\n\n/*************************************\n * Dropdown *\n *************************************/\n\n.lb-dropdown {\n min-inline-size: 160px;\n}\n\n.lb-dropdown-label {\n padding: calc(0.875 * var(--lb-spacing)) calc(0.625 * var(--lb-spacing))\n calc(0.125 * var(--lb-spacing));\n color: var(--lb-foreground-tertiary);\n font-weight: 600;\n font-size: 0.675em;\n text-transform: uppercase;\n pointer-events: none;\n user-select: none;\n\n &:where(:first-child) {\n padding-block-start: var(--lb-spacing);\n }\n}\n\n.lb-dropdown-separator {\n block-size: 1px;\n margin: $lb-elevation-padding calc(-1 * $lb-elevation-padding);\n background: var(--lb-foreground-subtle);\n}\n\n.lb-dropdown-item {\n :where(.lb-icon-container) {\n margin-inline-start: calc(-0.125 * var(--lb-spacing));\n margin-inline-end: calc(0.375 * var(--lb-spacing));\n color: var(--lb-foreground-moderate);\n transition-property: color;\n }\n}\n\n.lb-dropdown-item:where(\n :is(\n [data-highlighted]:not([data-highlighted=\"false\"]),\n [data-selected]:not([data-selected=\"false\"]),\n [data-active]:not([data-active=\"false\"])\n )\n ) {\n :where(.lb-icon-container) {\n color: var(--lb-foreground-tertiary);\n }\n}\n\n.lb-dropdown-item:where(:has(.lb-dropdown-item-accessory)) {\n :where(.lb-dropdown-item-label) {\n margin-inline-end: calc(0.375 * var(--lb-spacing));\n }\n}\n\n.lb-dropdown-item-accessory {\n margin-inline-start: auto;\n margin-inline-end: calc(-0.25 * var(--lb-spacing));\n}\n\n/* If a dropdown has at least one icon, all items should be aligned has if they had an icon */\n.lb-dropdown:where(:has(.lb-dropdown-item-icon))\n :where(.lb-dropdown-item:not(:has(.lb-dropdown-item-icon)))\n :where(.lb-dropdown-item-label) {\n margin-inline-start: calc(\n var(--lb-icon-size) + (0.375 - 0.125) * var(--lb-spacing)\n );\n}\n\n/*************************************\n * Select *\n *************************************/\n\n.lb-select-button {\n min-inline-size: 0;\n\n :where(.lb-button-label) {\n @include truncate;\n\n flex: 1;\n }\n}\n\n.lb-select-button-chevron {\n flex: none;\n margin-inline-end: calc(-0.25 * var(--lb-spacing));\n opacity: 0.75;\n}\n\n/*************************************\n * Composer suggestions *\n *************************************/\n\n.lb-composer-suggestions-list {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.lb-composer-suggestions-list-item {\n scroll-margin-block: $lb-elevation-padding;\n}\n\n/*************************************\n * Composer mention suggestions *\n *************************************/\n\n.lb-composer-mention-suggestions {\n --lb-composer-mention-suggestion-avatar-size: 1.25rem;\n}\n\n.lb-composer-mention-suggestion {\n padding: calc(0.375 * var(--lb-spacing)) calc(0.625 * var(--lb-spacing));\n}\n\n.lb-composer-mention-suggestion-avatar {\n inline-size: var(--lb-composer-mention-suggestion-avatar-size);\n margin-inline-start: calc(-0.125 * var(--lb-spacing));\n margin-inline-end: calc(0.5 * var(--lb-spacing));\n margin-block: calc(0.125 * var(--lb-spacing));\n background: var(--lb-foreground-subtle);\n color: var(--lb-foreground-moderate);\n}\n\n/*************************************\n * List *\n *************************************/\n\n.lb-list {\n display: contents;\n\n :where(:first-child) {\n @include capitalize;\n }\n}\n\n/*************************************\n * Date *\n *************************************/\n\n.lb-date {\n @include capitalize;\n}\n\n/*************************************\n * Emoji *\n *************************************/\n\n@include safari-only {\n .lb-emoji {\n transform: scale(0.825);\n will-change: transform;\n }\n}\n\n/*************************************\n * Emoji picker *\n *************************************/\n\n.lb-emoji-picker {\n --lb-emoji-picker-padding: $lb-emoji-picker-padding;\n --lb-emoji-picker-offset-padding: calc(\n $lb-emoji-picker-padding + 0.375 * var(--lb-spacing)\n );\n\n display: flex;\n flex-direction: column;\n inline-size: 100%;\n max-inline-size: var(--frimousse-viewport-width);\n block-size: 374px;\n color: var(--lb-foreground);\n}\n\n.lb-emoji-picker-header {\n flex: none;\n border-block-end: 1px solid var(--lb-foreground-subtle);\n}\n\n.lb-emoji-picker-footer {\n display: flex;\n flex: none;\n gap: calc(0.5 * var(--lb-spacing));\n align-items: center;\n inline-size: 100%;\n padding: calc(0.5 * var(--lb-spacing));\n border-block-start: 1px solid var(--lb-foreground-subtle);\n}\n\n.lb-emoji-picker-active-emoji {\n display: flex;\n flex: none;\n justify-content: center;\n align-items: center;\n inline-size: 1.25em;\n block-size: 1.25em;\n font-size: 1.25em;\n}\n\n.lb-emoji-picker-active-emoji-label {\n @include truncate;\n\n flex: 1;\n color: var(--lb-foreground-secondary);\n font-weight: 500;\n font-size: 0.8125em;\n}\n\n.lb-emoji-picker-active-emoji-label-placeholder {\n margin-inline-start: calc(0.5 * var(--lb-spacing));\n color: var(--lb-foreground-moderate);\n}\n\n.lb-emoji-picker-skin-tone-selector {\n display: flex;\n flex: none;\n justify-content: center;\n align-items: center;\n inline-size: calc(1.75 * var(--lb-spacing));\n block-size: calc(1.75 * var(--lb-spacing));\n margin-inline-start: auto;\n}\n\n.lb-emoji-picker-search-container {\n position: relative;\n display: flex;\n align-items: center;\n\n :where(.lb-icon) {\n position: absolute;\n inset-inline-start: var(--lb-emoji-picker-offset-padding);\n color: var(--lb-foreground-moderate);\n pointer-events: none;\n }\n}\n\n.lb-emoji-picker-search {\n all: unset;\n box-sizing: inherit;\n inline-size: 100%;\n padding: var(--lb-emoji-picker-offset-padding);\n padding-inline-start: calc(\n var(--lb-icon-size) + var(--lb-emoji-picker-offset-padding) + 0.375 *\n var(--lb-spacing)\n );\n background: transparent;\n outline: none;\n appearance: textfield;\n\n &::placeholder {\n color: var(--lb-foreground-moderate);\n }\n\n &::-webkit-search-cancel-button {\n display: none;\n }\n}\n\n.lb-emoji-picker-content {\n position: relative;\n flex: 1;\n outline: none;\n}\n\n.lb-emoji-picker-category-header {\n padding: var(--lb-emoji-picker-padding) var(--lb-emoji-picker-offset-padding);\n background: var(--lb-dynamic-background);\n}\n\n.lb-emoji-picker-category-header-title {\n color: var(--lb-foreground-tertiary);\n font-weight: 600;\n font-size: 0.675em;\n text-transform: uppercase;\n}\n\n.lb-emoji-picker-list {\n padding-block-end: var(--lb-emoji-picker-padding);\n animation: lb-animation-appear var(--lb-transition-duration)\n var(--lb-transition-easing) both;\n}\n\n.lb-emoji-picker-row {\n display: flex;\n padding-inline: var(--lb-emoji-picker-padding);\n scroll-margin-block-end: var(--lb-emoji-picker-padding);\n}\n\n.lb-emoji-picker-emoji {\n all: unset;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n box-sizing: inherit;\n aspect-ratio: 1;\n padding: calc(0.375 * var(--lb-spacing));\n border-radius: calc(var(--lb-radius) - 0.75 * $lb-emoji-picker-padding);\n text-align: center;\n}\n\n/*************************************\n * Tooltip *\n *************************************/\n\n.lb-tooltip {\n --lb-background: #222;\n --lb-foreground: #fff;\n --lb-foreground-contrast: 10%;\n\n position: relative;\n display: flex;\n align-items: center;\n max-inline-size: 300px;\n min-block-size: calc(\n $lb-tooltip-shortcut-height + 2 * $lb-tooltip-additional-padding\n );\n padding-inline: $lb-tooltip-horizontal-padding;\n border-radius: var(--lb-radius);\n background: var(--lb-dynamic-background);\n color: var(--lb-foreground);\n box-shadow: var(--lb-tooltip-shadow);\n font-size: 0.75rem;\n line-height: 1;\n overflow-wrap: anywhere;\n pointer-events: none;\n\n &::after {\n content: \"\";\n position: absolute;\n inset: 0;\n z-index: 1;\n border-radius: inherit;\n box-shadow: var(--lb-inset-shadow);\n pointer-events: none;\n }\n}\n\n.lb-tooltip\\:multiline {\n justify-content: center;\n padding-block: calc(\n $lb-tooltip-vertical-padding * (1 / $lb-tooltip-line-height)\n );\n line-height: $lb-tooltip-line-height;\n text-align: center;\n}\n\n.lb-tooltip-shortcut {\n display: flex;\n gap: calc(0.125 * var(--lb-spacing));\n justify-content: center;\n align-items: center;\n block-size: $lb-tooltip-shortcut-height;\n margin-inline-start: $lb-tooltip-horizontal-padding;\n margin-inline-end: calc(\n -1 * $lb-tooltip-horizontal-padding + $lb-tooltip-additional-padding\n );\n padding-inline: calc(0.25 * var(--lb-spacing));\n border-radius: calc(\n var(--lb-radius) - 0.625 * $lb-tooltip-additional-padding\n );\n background: var(--lb-foreground-subtle);\n color: var(--lb-foreground-tertiary);\n font-family: inherit;\n line-height: 1;\n text-transform: uppercase;\n\n :where(abbr) {\n all: unset;\n }\n}\n\n/*************************************\n * Avatar *\n *************************************/\n\n.lb-avatar {\n position: relative;\n container-type: inline-size;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n aspect-ratio: 1;\n border-radius: var(--lb-avatar-radius);\n background: var(--lb-foreground-subtle);\n color: var(--lb-foreground-moderate);\n\n &:where([data-loading]) {\n background: var(--lb-foreground);\n opacity: $lb-loading-opacity;\n }\n}\n\n.lb-avatar-image {\n position: absolute;\n inset: 0;\n object-fit: cover;\n inline-size: 100%;\n block-size: 100%;\n}\n\n.lb-avatar-fallback {\n font-weight: 500;\n font-size: 35cqi;\n white-space: nowrap;\n\n /**\n * Progressive enhancement: Only show the fallback when container queries are supported\n */\n @supports not (container-type: inline-size) {\n display: none;\n }\n}\n\n/*************************************\n * Name *\n *************************************/\n\n.lb-name {\n display: inline-block;\n\n &:where([data-loading]) {\n &::before {\n content: \"\\FEFF\";\n display: inline-block;\n vertical-align: middle;\n inline-size: 8ch;\n block-size: 1.75ex;\n border-radius: calc(0.5 * var(--lb-radius));\n background: currentcolor;\n opacity: $lb-loading-opacity;\n user-select: none;\n }\n }\n}\n\n/*************************************\n * Loading *\n *************************************/\n\n:is(.lb-avatar, .lb-name):where([data-loading]) {\n animation: lb-animation-shimmer 8s linear infinite;\n}\n\n/*************************************\n * Body *\n *************************************/\n\n:is(.lb-comment-body, .lb-composer-editor) {\n color: var(--lb-foreground-secondary);\n\n &,\n * {\n line-height: var(--lb-line-height);\n }\n\n :where(p) {\n --lb-line-height-crop: calc(1lh - 1em) / -2;\n\n margin-block-start: 0.25em;\n margin-block-end: 0.25em;\n\n /* Cancel out the impact of line-height on margins/paddings */\n &:where(:first-of-type) {\n margin-block-start: calc(0.125em + var(--lb-line-height-crop));\n }\n\n /* Cancel out the impact of line-height on margins/paddings */\n &:where(:last-of-type) {\n margin-block-end: calc(0.125em + var(--lb-line-height-crop));\n }\n }\n\n :where(strong) {\n font-weight: 600;\n }\n}\n\n.lb-comment-mention,\n.lb-composer-mention {\n color: var(--lb-accent);\n box-decoration-break: clone;\n font-weight: 500;\n}\n\n:is(.lb-comment-link, .lb-composer-link) {\n color: var(--lb-foreground);\n outline: none;\n font-weight: 500;\n transition-property: color, text-decoration-color;\n text-decoration-line: underline;\n text-decoration-color: var(--lb-foreground-moderate);\n text-underline-offset: 2px;\n\n &:where([href]):where(:hover, :focus-visible) {\n color: var(--lb-accent);\n text-decoration-color: var(--lb-accent-moderate);\n }\n}\n\n.lb-comment-mention:where([data-self]),\n.lb-composer-mention {\n padding: 0.1em 0.3em;\n border-radius: calc(0.675 * var(--lb-radius));\n background: var(--lb-accent-subtle);\n}\n\n/*************************************\n * Composer *\n *************************************/\n\n.lb-composer {\n position: relative;\n background: var(--lb-dynamic-background);\n color: var(--lb-foreground);\n transition-property: background;\n}\n\n.lb-composer-form {\n margin: 0;\n}\n\n.lb-composer:where(:has(.lb-composer-editor:not(:focus-visible))) {\n :where(.lb-button[data-variant=\"primary\"]) {\n --lb-button-background: var(--lb-foreground-subtle);\n\n color: var(--lb-foreground-tertiary);\n\n &:where(:enabled:hover, :enabled:focus-visible) {\n --lb-button-background: var(--lb-accent);\n\n color: var(--lb-accent-foreground);\n }\n }\n}\n\n.lb-composer-editor {\n padding: var(--lb-spacing);\n outline: none;\n\n &:where([data-disabled]:not([data-disabled=\"false\"])) {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n :where(.lb-composer-editor-container:has(.lb-composer-attachments)) & {\n padding-block-end: calc(0.25 * var(--lb-spacing));\n }\n\n :where([data-placeholder]) {\n color: var(--lb-foreground-moderate);\n }\n}\n\n.lb-composer-mention {\n @include invisible-selection;\n\n &:where([data-selected]:not([data-selected=\"false\"])) {\n background: var(--lb-accent);\n color: var(--lb-accent-foreground);\n }\n}\n\n.lb-composer-footer {\n display: flex;\n gap: calc(0.75 * var(--lb-spacing));\n align-items: center;\n block-size: calc($lb-button-size + var(--lb-spacing));\n margin-block-start: calc(-0.125 * var(--lb-spacing));\n padding: 0 var(--lb-spacing) var(--lb-spacing);\n}\n\n.lb-composer-actions,\n.lb-composer-editor-actions {\n display: flex;\n gap: calc(0.125 * var(--lb-spacing));\n align-items: center;\n}\n\n.lb-composer-editor-actions {\n margin-inline-end: auto;\n}\n\n.lb-composer-attribution {\n color: var(--lb-foreground-moderate);\n outline: none;\n transition-property: color;\n\n &:where(:hover, :focus-visible) {\n color: var(--lb-foreground-tertiary);\n }\n\n :where(svg) {\n block-size: calc(0.75 * $lb-button-size);\n }\n}\n\n.lb-composer-attachments {\n padding-inline: var(--lb-spacing);\n padding-block-start: calc(0.75 * var(--lb-spacing));\n padding-block-end: var(--lb-spacing);\n}\n\n.lb-composer-editor-container:where([data-drop]) * {\n pointer-events: none;\n}\n\n.lb-composer-attachments-drop-area {\n position: absolute;\n inset: 0;\n display: flex;\n place-content: center;\n place-items: center;\n color: var(--lb-accent);\n\n &::before,\n &::after {\n content: \"\";\n position: absolute;\n inset: calc(0.5 * var(--lb-spacing));\n z-index: 0;\n border-radius: calc(0.75 * var(--lb-radius));\n }\n\n &::before {\n background: currentcolor;\n opacity: calc(1 * var(--lb-accent-contrast));\n }\n\n &::after {\n border: 2px dashed currentcolor;\n opacity: calc(2 * var(--lb-accent-contrast));\n }\n}\n\n.lb-composer-attachments-drop-area-label {\n position: relative;\n display: flex;\n gap: calc(0.25 * var(--lb-spacing));\n place-items: center;\n padding: calc(0.375 * var(--lb-spacing)) calc(0.5 * var(--lb-spacing));\n border-radius: calc(0.75 * var(--lb-radius));\n background: var(--lb-accent);\n color: var(--lb-accent-foreground);\n font-weight: 500;\n pointer-events: none;\n}\n\n/*************************************\n * Floating Toolbar *\n *************************************/\n\n.lb-composer-floating-toolbar {\n display: flex;\n flex-direction: row;\n gap: $lb-elevation-padding;\n padding: $lb-elevation-padding;\n user-select: none;\n\n /* Invisibly increase the buttons' hit target size */\n :where(.lb-button) {\n &::before {\n content: \"\";\n position: absolute;\n inset: calc(-1 * $lb-elevation-padding);\n z-index: -1;\n border-radius: inherit;\n }\n\n &:where(:not(:first-of-type))::before {\n inset-inline-start: calc(-0.5 * $lb-elevation-padding);\n }\n\n &:where(:not(:last-of-type))::before {\n inset-inline-end: calc(-0.5 * $lb-elevation-padding);\n }\n }\n}\n\n/*************************************\n * Comment *\n *************************************/\n\n.lb-comment {\n --lb-comment-avatar-size: $lb-button-size;\n\n position: relative;\n padding: var(--lb-spacing);\n background: var(--lb-dynamic-background);\n color: var(--lb-foreground);\n font-weight: 400;\n scroll-margin: var(--lb-spacing);\n\n @media (hover: hover) {\n &:where(.lb-comment\\:show-actions-hover) {\n :where(.lb-comment-actions) {\n position: absolute;\n inset-inline-end: 0;\n opacity: 0;\n transition-property: opacity;\n }\n\n &:where(:is(:hover, :focus-within, .lb-comment\\:action-open)) {\n :where(.lb-comment-actions) {\n position: relative;\n opacity: 1;\n }\n }\n }\n }\n\n &:where(:target, [data-target]) {\n --lb-dynamic-background: var(--lb-background-accent-faint);\n }\n\n &:where([data-editing]) {\n --lb-dynamic-background: var(--lb-background-foreground-faint);\n }\n}\n\n.lb-comment-header {\n position: relative;\n display: flex;\n gap: calc(0.75 * var(--lb-spacing));\n align-items: center;\n block-size: var(--lb-comment-avatar-size);\n margin-block-end: calc(0.75 * var(--lb-spacing));\n}\n\n.lb-comment-details {\n display: flex;\n gap: calc(0.75 * var(--lb-spacing));\n align-items: center;\n min-inline-size: 0;\n}\n\n.lb-comment-avatar {\n flex: none;\n inline-size: var(--lb-comment-avatar-size);\n}\n\n.lb-comment-details-labels {\n display: flex;\n gap: calc(0.5 * var(--lb-spacing));\n align-items: baseline;\n min-inline-size: 0;\n}\n\n.lb-comment-author,\n.lb-comment-date {\n @include truncate;\n @include capitalize;\n}\n\n.lb-comment-author {\n font-weight: 500;\n}\n\n.lb-comment-date {\n color: var(--lb-foreground-tertiary);\n font-size: 0.875em;\n}\n\n.lb-comment-date-created,\n.lb-comment-date-edited {\n display: contents;\n}\n\n.lb-comment-actions {\n display: flex;\n gap: calc(0.125 * var(--lb-spacing));\n margin-inline-start: auto;\n}\n\n.lb-comment-composer {\n margin: calc(-1 * var(--lb-spacing));\n background: unset;\n}\n\n.lb-comment-body {\n /**\n * Prevent empty lines from collapsing\n */\n :where(p span:only-child:empty)::before {\n content: \"\\FEFF\";\n user-select: none;\n }\n}\n\n.lb-comment-attachments {\n margin-block-start: calc(0.75 * var(--lb-spacing));\n}\n\n.lb-comment-reactions {\n display: flex;\n flex-wrap: wrap;\n gap: calc(0.375 * var(--lb-spacing));\n margin-block-start: calc(0.75 * var(--lb-spacing));\n}\n\n.lb-comment-reaction {\n gap: calc(0.375 * var(--lb-spacing));\n block-size: $lb-button-size;\n padding-inline: calc(0.575 * var(--lb-spacing));\n border-radius: $lb-radius-full;\n\n &:where([data-self]) {\n background: var(--lb-accent-subtle);\n color: var(--lb-accent-secondary);\n box-shadow: inset 0 0 0 1px var(--lb-accent-moderate);\n\n &:where(\n :enabled:hover,\n :enabled:focus-visible,\n [aria-expanded=\"true\"],\n [aria-selected=\"true\"]\n ) {\n color: var(--lb-accent);\n }\n }\n}\n\n.lb-comment-reaction-count {\n font-weight: 500;\n font-size: 0.75em;\n font-variant-numeric: tabular-nums;\n}\n\n.lb-comment-reaction-tooltip {\n max-inline-size: 200px;\n}\n\n.lb-comment-deleted {\n color: var(--lb-foreground-tertiary);\n font-size: 0.875em;\n}\n\n.lb-comment\\:indent-content {\n min-block-size: calc(var(--lb-comment-avatar-size) + 2 * var(--lb-spacing));\n\n :where(.lb-comment-header) {\n block-size: $lb-button-size;\n margin-block-end: calc(0.25 * var(--lb-spacing));\n }\n\n :where(.lb-comment-avatar) {\n position: absolute;\n inset-inline-start: 0;\n inset-block-start: 0;\n }\n\n :where(.lb-comment-details-labels) {\n margin-inline-start: calc(\n var(--lb-comment-avatar-size) + 0.75 * var(--lb-spacing)\n );\n }\n\n :where(.lb-comment-content) {\n padding-inline-start: calc(\n var(--lb-comment-avatar-size) + 0.75 * var(--lb-spacing)\n );\n }\n}\n\n/*************************************\n * Thread *\n *************************************/\n\n.lb-thread {\n background: var(--lb-dynamic-background);\n color: var(--lb-foreground);\n transition-property: background;\n\n @media (hover: hover) {\n &:where(.lb-thread\\:show-actions-hover :is(:hover, :focus-within)) {\n :where(.lb-thread-actions) {\n opacity: 1;\n }\n }\n }\n}\n\n.lb-thread-comments {\n position: relative;\n z-index: 0;\n display: flex;\n flex-direction: column;\n}\n\n.lb-thread-comment {\n z-index: 0;\n padding-block: calc(0.6 * var(--lb-spacing));\n transition-property: background;\n\n &:where(.lb-comment\\:indent-content) {\n min-block-size: calc(var(--lb-comment-avatar-size) + var(--lb-spacing));\n }\n\n &:where(:first-of-type, [data-editing]) {\n padding-block-start: var(--lb-spacing);\n\n &:where(.lb-comment\\:indent-content) {\n min-block-size: calc(\n var(--lb-comment-avatar-size) + 1.5 * var(--lb-spacing)\n );\n }\n }\n\n &:where(:last-of-type, [data-editing]) {\n padding-block-end: var(--lb-spacing);\n\n &:where(.lb-comment\\:indent-content) {\n min-block-size: calc(\n var(--lb-comment-avatar-size) + 1.75 * var(--lb-spacing)\n );\n }\n }\n}\n\n.lb-thread-new-indicator {\n position: relative;\n z-index: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n block-size: 0;\n\n &::before,\n &::after {\n content: \"\";\n z-index: 0;\n flex: 1;\n block-size: 0;\n border-block-start: 1px solid var(--lb-foreground-subtle);\n transition-property: border;\n }\n}\n\n.lb-thread-new-indicator-label {\n z-index: 1;\n display: flex;\n flex: none;\n gap: calc(0.325 * var(--lb-spacing));\n align-items: center;\n padding: calc(0.25 * var(--lb-spacing)) var(--lb-spacing);\n color: var(--lb-accent);\n font-weight: 600;\n font-size: 0.675em;\n text-transform: uppercase;\n}\n\n.lb-thread-new-indicator-label-icon {\n inline-size: calc(0.6 * var(--lb-icon-size));\n block-size: calc(0.6 * var(--lb-icon-size));\n}\n\n.lb-thread-composer {\n position: relative;\n\n &::after {\n content: \"\";\n position: absolute;\n inset: 0;\n inline-size: 100%;\n block-size: 100%;\n border-block-start: 1px solid var(--lb-foreground-subtle);\n pointer-events: none;\n transition-property: border;\n }\n}\n\n/*************************************\n * Attachments *\n *************************************/\n\n.lb-comment-attachments,\n.lb-composer-attachments {\n display: flex;\n flex-direction: column;\n gap: calc(0.75 * var(--lb-spacing));\n}\n\n.lb-attachments {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr));\n gap: calc(0.75 * var(--lb-spacing));\n}\n\n.lb-attachment,\n.lb-attachment-delete {\n @include button;\n}\n\n.lb-attachment {\n position: relative;\n display: flex;\n inline-size: 100%;\n min-inline-size: 0;\n border-radius: var(--lb-radius);\n background: var(--lb-dynamic-background);\n box-shadow: inset 0 0 0 1px var(--lb-foreground-subtle);\n\n &:where([tabindex=\"-1\"]) {\n cursor: default;\n }\n\n &:where(:not([tabindex=\"-1\"])) {\n &:where(:hover, :focus-visible) {\n background: var(--lb-foreground-subtle);\n }\n }\n}\n\n.lb-attachment-delete {\n position: absolute;\n inset-inline-end: -0.35rem;\n inset-block-start: -0.35rem;\n z-index: 2;\n display: flex;\n justify-content: center;\n align-items: center;\n inline-size: 1.1rem;\n block-size: 1.1rem;\n border-radius: 50%;\n background: var(--lb-foreground-subtle);\n color: var(--lb-foreground-secondary);\n box-shadow: 0 0 0 2px var(--lb-dynamic-background);\n opacity: 0;\n\n /* Invisibly increase the button's hit target size */\n &::before {\n content: \"\";\n position: absolute;\n inset: -4px;\n z-index: -1;\n border-radius: inherit;\n }\n\n &:where(:hover, :focus-visible) {\n background: var(--lb-foreground-secondary);\n color: var(--lb-dynamic-background);\n }\n\n :where(.lb-attachment:focus-within, .lb-attachment:hover) & {\n opacity: 1;\n }\n\n :where(.lb-icon) {\n inline-size: 0.75rem;\n }\n}\n\n.lb-attachment-details {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: calc(0.25 * var(--lb-spacing));\n justify-content: center;\n min-inline-size: 0;\n font-size: 0.875em;\n}\n\n.lb-attachment-name {\n display: flex;\n font-weight: 500;\n}\n\n.lb-attachment-name-base,\n.lb-attachment-description {\n @include truncate;\n\n transition-property: color;\n}\n\n.lb-attachment-preview {\n position: relative;\n display: flex;\n flex: none;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n background: color-mix(\n in srgb,\n transparent,\n var(--lb-foreground) var(--lb-foreground-contrast)\n );\n color: var(--lb-foreground-tertiary);\n transition-property: background, color;\n}\n\n.lb-attachment-preview-media {\n border-radius: inherit;\n transition-property: opacity;\n\n &,\n &::after,\n img,\n video {\n position: absolute;\n inset: 0;\n inline-size: 100%;\n block-size: 100%;\n }\n\n img,\n video {\n object-fit: cover;\n pointer-events: none;\n }\n\n &::after {\n content: \"\";\n border-radius: inherit;\n box-shadow: var(--lb-highlight-shadow);\n pointer-events: none;\n }\n\n &:where([data-hidden]) {\n opacity: 0;\n }\n}\n\n.lb-attachment-icon {\n flex: none;\n overflow: visible;\n color: var(--lb-foreground);\n}\n\n.lb-attachment-icon-glyph {\n fill: var(--lb-foreground-moderate);\n}\n\n.lb-attachment-icon-background {\n fill: var(--lb-background);\n}\n\n.lb-attachment-icon-fold {\n fill-opacity: calc(0.75 * var(--lb-foreground-contrast));\n}\n\n.lb-attachment-icon-shadow {\n filter: blur(6px);\n fill-opacity: var(--lb-foreground-contrast);\n}\n\n.lb-file-attachment {\n gap: calc(0.5 * var(--lb-spacing));\n padding: calc(0.5 * var(--lb-spacing));\n padding-inline-end: calc(0.65 * var(--lb-spacing));\n\n :where(.lb-attachment-preview) {\n aspect-ratio: 1;\n inline-size: 2.5rem;\n border-radius: calc(0.5 * var(--lb-radius));\n }\n\n :where(.lb-attachment-name) {\n color: var(--lb-foreground-secondary);\n }\n\n :where(.lb-attachment-description) {\n color: var(--lb-foreground-tertiary);\n }\n\n &:where(:not([tabindex=\"-1\"])) {\n &:where(:hover, :focus-visible, :focus-within) {\n :where(.lb-attachment-name) {\n color: var(--lb-foreground);\n }\n\n :where(.lb-attachment-description) {\n color: var(--lb-foreground-secondary);\n }\n }\n }\n}\n\n.lb-media-attachment {\n aspect-ratio: 16 / 10;\n\n :where(.lb-attachment-preview) {\n position: absolute;\n inset: 0;\n border-radius: inherit;\n }\n\n :where(.lb-attachment-details) {\n position: absolute;\n inset-inline: 0;\n inset-block-end: 0;\n padding: calc(0.75 * var(--lb-spacing));\n border-end-start-radius: inherit;\n border-end-end-radius: inherit;\n background: linear-gradient(to bottom, transparent, rgba(0 0 0 / 80%));\n text-shadow: 0 0 2px rgba(0 0 0 / 40%);\n opacity: 0;\n transition-property: opacity;\n }\n\n :where(.lb-attachment-name) {\n color: #fff;\n }\n\n :where(.lb-attachment-description) {\n color: rgba(255 255 255 / 80%);\n }\n\n &:where(:not([tabindex=\"-1\"])) {\n &:where(:hover, :focus-visible, :focus-within) {\n :where(.lb-attachment-details) {\n opacity: 1;\n }\n }\n }\n}\n\n.lb-attachment:where([data-error]) {\n :where(.lb-attachment-preview) {\n background: var(--lb-destructive);\n color: var(--lb-destructive-foreground);\n }\n}\n\n/*************************************\n * Inbox Notification *\n *************************************/\n\n.lb-inbox-notification {\n --lb-inbox-notification-aside-size: 36px;\n\n position: relative;\n display: flex;\n gap: calc(0.75 * var(--lb-spacing));\n overflow: hidden;\n padding: var(--lb-spacing);\n background: var(--lb-dynamic-background);\n color: var(--lb-foreground);\n font-weight: 400;\n text-decoration: inherit;\n transition-property: background;\n\n /* Highlight missing notifications during development */\n &:where([data-missing]) {\n --lb-accent: var(--lb-destructive) !important;\n --lb-accent-foreground: var(--lb-destructive-foreground) !important;\n --lb-accent-contrast: var(--lb-destructive-contrast) !important;\n --lb-dynamic-background: var(--lb-background-accent-faint);\n }\n\n &:where([data-unread]) {\n --lb-dynamic-background: var(--lb-background-accent-faint);\n }\n\n &:where([href]) {\n cursor: pointer;\n\n &:where(:hover, :focus-visible, :focus-within) {\n --lb-dynamic-background: var(--lb-background-foreground-faint);\n }\n\n &:where([data-unread]) {\n &:where(:hover, :focus-visible, :focus-within) {\n --lb-dynamic-background: var(--lb-background-accent-subtle);\n }\n }\n }\n\n @media (hover: hover) {\n &:where(.lb-inbox-notification\\:show-actions-hover) {\n :where(.lb-inbox-notification-header) {\n display: grid;\n grid-template: \"title secondary\" / 1fr max-content;\n }\n\n :where(.lb-inbox-notification-details) {\n opacity: 1;\n transition-property: opacity;\n }\n\n :where(.lb-inbox-notification-actions) {\n opacity: 0;\n transition-property: opacity;\n }\n\n &:where(:is(:hover, :focus-within, .lb-inbox-notification\\:action-open)) {\n :where(.lb-inbox-notification-details) {\n opacity: 0;\n }\n\n :where(.lb-inbox-notification-actions) {\n opacity: 1;\n }\n }\n\n :where(.lb-inbox-notification-details),\n :where(.lb-inbox-notification-actions) {\n grid-area: secondary;\n justify-self: end;\n }\n }\n }\n}\n\n.lb-inbox-notification-aside {\n flex: none;\n inline-size: var(--lb-inbox-notification-aside-size);\n}\n\n.lb-inbox-notification-icon {\n display: flex;\n justify-content: center;\n place-items: center;\n aspect-ratio: 1;\n border-radius: 50%;\n background: var(--lb-foreground-subtle);\n\n .lb-inbox-notification:where([data-missing]) :where(&) {\n background: var(--lb-accent-subtle);\n color: var(--lb-accent);\n }\n}\n\n.lb-inbox-notification-content {\n flex: 1;\n}\n\n.lb-inbox-notification-content,\n.lb-inbox-notification-body {\n min-inline-size: 0;\n max-inline-size: 100%;\n}\n\n.lb-inbox-notification-header {\n display: flex;\n gap: calc(0.75 * var(--lb-spacing));\n align-items: center;\n margin-block-start: calc(0.25 * var(--lb-spacing));\n margin-block-end: calc(0.5 * var(--lb-spacing));\n}\n\n.lb-inbox-notification-title {\n @include capitalize;\n\n min-block-size: $lb-button-size;\n\n :where(strong, .lb-list, .lb-name) {\n font-weight: 500;\n }\n}\n\n.lb-inbox-notification-details {\n flex: none;\n align-self: start;\n min-inline-size: 0;\n block-size: $lb-button-size;\n margin-inline-start: auto;\n}\n\n.lb-inbox-notification-details-labels {\n display: flex;\n align-items: baseline;\n min-inline-size: 0;\n\n &::before {\n content: \"\\FEFF\";\n }\n}\n\n.lb-inbox-notification-actions {\n display: flex;\n grid-area: actions;\n gap: calc(0.125 * var(--lb-spacing));\n align-self: start;\n}\n\n.lb-inbox-notification-comments {\n display: flex;\n flex-direction: column;\n gap: var(--lb-spacing);\n}\n\n.lb-inbox-notification-comment {\n padding: 0;\n background: transparent;\n\n :where(.lb-comment-header) {\n block-size: auto;\n color: var(--lb-foreground-tertiary);\n font-size: 0.875rem;\n }\n\n :where(.lb-comment-reaction),\n :where(.lb-comment-attachment) {\n pointer-events: none;\n }\n}\n\n.lb-inbox-notification-date {\n color: var(--lb-foreground-tertiary);\n font-size: 0.875em;\n}\n\n.lb-inbox-notification-unread-indicator {\n align-self: center;\n inline-size: 10px;\n block-size: 10px;\n margin-inline-start: calc(0.5 * var(--lb-spacing));\n border-radius: 50%;\n background: var(--lb-accent);\n}\n\n/*************************************\n * History Version Summary *\n *************************************/\n\n.lb-history-version-summary {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: calc(0.25 * var(--lb-spacing));\n justify-content: center;\n inline-size: 100%;\n min-inline-size: 0;\n padding: var(--lb-spacing);\n background: var(--lb-dynamic-background);\n transition-property: background;\n\n &:where(\n :hover,\n :focus-visible,\n :focus-within,\n [data-selected]:not([data-selected=\"false\"])\n ) {\n --lb-dynamic-background: var(--lb-background-foreground-faint);\n }\n}\n\n.lb-history-version-summary-date,\n.lb-history-version-summary-authors {\n @include truncate;\n @include capitalize;\n\n min-inline-size: 0;\n max-inline-size: 100%;\n}\n\n.lb-history-version-summary-date {\n color: var(--lb-foreground-secondary);\n font-weight: 500;\n}\n\n.lb-history-version-summary-authors {\n color: var(--lb-foreground-tertiary);\n}\n\n/*************************************\n * History Version Previe *\n *************************************/\n\n.lb-history-version-preview {\n position: relative;\n display: flex;\n flex-direction: column;\n background: var(--lb-dynamic-background);\n\n /* overflow-block: auto; doesn't work as expected */\n /* stylelint-disable-next-line plugin/use-logical-properties-and-values */\n overflow-y: auto;\n}\n\n.lb-history-version-preview-content {\n flex: 1 0 auto;\n padding: var(--lb-spacing);\n}\n\n.lb-history-version-preview-footer {\n position: sticky;\n inset-block-end: 0;\n display: flex;\n flex: none;\n gap: var(--lb-spacing);\n align-items: center;\n margin-block-start: auto;\n padding: var(--lb-spacing);\n border-block-start: 1px solid var(--lb-foreground-subtle);\n background: var(--lb-dynamic-background);\n}\n\n.lb-history-version-preview-authors {\n @include truncate;\n\n flex: 1 1 auto;\n min-inline-size: 0;\n color: var(--lb-foreground-tertiary);\n}\n\n.lb-history-version-preview-actions {\n display: flex;\n flex: none;\n gap: calc(0.35 * var(--lb-spacing));\n align-items: center;\n margin-inline-start: auto;\n}\n\n/*************************************\n * Lists *\n *************************************/\n\n.lb-inbox-notification-list,\n.lb-history-version-summary-list {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.lb-inbox-notification-list-item,\n.lb-history-version-summary-list-item {\n &:where(:not(:last-of-type)) {\n border-block-end: 1px solid var(--lb-foreground-subtle);\n }\n}\n\n/*************************************\n * Inline code *\n *************************************/\n\n:is(.lb-root) {\n :where(code:not(pre > code)) {\n padding: 0.2em 0.4em;\n border-radius: calc(0.75 * var(--lb-radius));\n background: var(--lb-foreground-subtle);\n box-decoration-break: clone;\n font-size: 85%;\n line-height: 1;\n }\n\n /**\n * Merge adjacent inline code elements\n */\n :where(span:has(code) + span code) {\n padding-inline-start: 0;\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n\n :where(span:has(code):has(+ span code) code) {\n padding-inline-end: 0;\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n}\n\n/* 0,0,0 specificity to inherit any styles applied to `code` elements */\n:where(:is(.lb-root) code) {\n font-family: ui-monospace, Menlo, Monaco, \"Roboto Mono\", \"Cascadia Code\",\n \"Source Code Pro\", Consolas, \"DejaVu Sans Mono\", monospace;\n}\n\n/*************************************\n * Elevation *\n *************************************/\n\n.lb-elevation {\n position: relative;\n overflow: hidden;\n border-radius: var(--lb-radius);\n background: var(--lb-dynamic-background);\n box-shadow: var(--lb-elevation-shadow);\n\n &::after {\n content: \"\";\n position: absolute;\n inset: 0;\n z-index: 1;\n border-radius: inherit;\n box-shadow: var(--lb-inset-shadow);\n pointer-events: none;\n }\n}\n\n/*************************************\n * Elevation lists *\n *************************************/\n\n.lb-dropdown,\n.lb-composer-suggestions {\n padding: $lb-elevation-padding;\n\n /* overflow-block: auto; doesn't work as expected */\n /* stylelint-disable-next-line plugin/use-logical-properties-and-values */\n overflow-y: auto;\n\n &:where([data-hidden]) {\n opacity: 0;\n }\n}\n\n.lb-dropdown-item,\n.lb-composer-suggestions-list-item {\n display: flex;\n align-items: center;\n padding: calc(0.25 * var(--lb-spacing)) calc(0.5 * var(--lb-spacing));\n font-size: 0.875rem;\n}\n\n.lb-dropdown-item,\n.lb-composer-suggestions-list-item,\n.lb-emoji-picker-emoji {\n border-radius: calc(var(--lb-radius) - 0.75 * $lb-elevation-padding);\n color: var(--lb-foreground-secondary);\n outline: none;\n cursor: pointer;\n user-select: none;\n transition-property: background, color, opacity;\n}\n\n:is(\n .lb-dropdown-item,\n .lb-composer-suggestions-list-item,\n .lb-emoji-picker-emoji\n) {\n &:where(\n [data-highlighted]:not([data-highlighted=\"false\"]),\n [data-selected]:not([data-selected=\"false\"]),\n [data-active]:not([data-active=\"false\"])\n ) {\n background: var(--lb-foreground-subtle);\n transition-duration: calc(var(--lb-transition-duration) / 2);\n }\n\n &:where(:disabled, [data-disabled]:not([data-disabled=\"false\"])) {\n opacity: 0.5;\n cursor: not-allowed;\n }\n}\n\n/*************************************\n * Floating animations *\n *************************************/\n\n.lb-dropdown,\n.lb-composer-suggestions,\n.lb-composer-floating-toolbar,\n.lb-tooltip,\n.lb-emoji-picker {\n animation-duration: var(--lb-transition-duration);\n animation-timing-function: var(--lb-transition-easing);\n will-change: transform, opacity;\n}\n\n:is(\n .lb-dropdown,\n .lb-emoji-picker,\n .lb-tooltip:where([data-state=\"delayed-open\"]),\n .lb-composer-suggestions,\n .lb-composer-floating-toolbar\n) {\n &:where([data-side=\"top\"]) {\n animation-name: lb-animation-slide-up;\n }\n\n &:where([data-side=\"bottom\"]) {\n animation-name: lb-animation-slide-down;\n }\n}\n\n:is(\n .lb-dropdown,\n .lb-emoji-picker,\n .lb-tooltip,\n .lb-composer-suggestions,\n .lb-composer-floating-toolbar\n) {\n &:where([data-state=\"closed\"]) {\n animation-name: lb-animation-disappear;\n }\n}\n\n@media (prefers-reduced-motion) {\n .lb-dropdown:where(:not([data-state=\"closed\"])),\n .lb-emoji-picker:where(:not([data-state=\"closed\"])),\n .lb-tooltip:where([data-state=\"delayed-open\"]:not([data-state=\"closed\"])),\n .lb-composer-suggestions:where(:not([data-state=\"closed\"])) {\n animation-name: lb-animation-appear;\n }\n}\n\n/*************************************\n * Chat Composer *\n *************************************/\n.lb-ai-chat-composer-form:where(\n :has(.lb-ai-chat-composer-editor:not(:focus-visible))\n ) {\n :where(.lb-button[data-variant=\"primary\"]) {\n --lb-button-background: var(--lb-foreground-subtle);\n\n color: var(--lb-foreground-tertiary);\n\n &:where(:enabled:hover, :enabled:focus-visible) {\n --lb-button-background: var(--lb-accent);\n\n color: var(--lb-accent-foreground);\n }\n }\n}\n\n.lb-ai-chat-composer-form {\n position: relative;\n background: var(--lb-dynamic-background);\n color: var(--lb-foreground);\n transition-property: background;\n}\n\n.lb-ai-chat-composer-editor {\n max-block-size: 15rem;\n padding: var(--lb-spacing) var(--lb-spacing) 0;\n color: var(--lb-foreground-secondary);\n outline: none;\n resize: none;\n\n /* overflow-block: auto; doesn't work as expected */\n /* stylelint-disable-next-line plugin/use-logical-properties-and-values */\n overflow-y: auto;\n\n &,\n * {\n line-height: var(--lb-line-height);\n }\n\n :where(p) {\n --lb-line-height-crop: calc(1lh - 1em) / -2;\n\n margin-block-start: 0.25em;\n margin-block-end: 0.25em;\n\n /* Cancel out the impact of line-height on margins/paddings */\n &:where(:first-of-type) {\n margin-block-start: calc(0.125em + var(--lb-line-height-crop));\n }\n\n /* Cancel out the impact of line-height on margins/paddings */\n &:where(:last-of-type) {\n margin-block-end: calc(0.125em + var(--lb-line-height-crop));\n }\n }\n\n &:where([data-disabled]:not([data-disabled=\"false\"])) {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n :where([data-placeholder]) {\n color: var(--lb-foreground-moderate);\n }\n}\n\n.lb-ai-chat-composer-footer {\n display: flex;\n gap: calc(0.75 * var(--lb-spacing));\n align-items: center;\n margin-block-start: calc(-0.125 * var(--lb-spacing));\n padding: var(--lb-spacing);\n}\n\n.lb-ai-chat-composer-actions,\n.lb-ai-chat-composer-editor-actions {\n display: flex;\n gap: calc(0.125 * var(--lb-spacing));\n align-items: center;\n}\n\n.lb-ai-chat-composer-editor-actions {\n margin-inline-end: auto;\n}\n\n/*************************************\n * Chat message *\n *************************************/\n\n.lb-ai-chat-message {\n display: flex;\n flex-direction: column;\n gap: calc(0.75 * var(--lb-spacing));\n color: var(--lb-foreground);\n}\n\n.lb-ai-chat-message-content {\n inline-size: 100%;\n white-space: break-spaces;\n}\n\n.lb-ai-chat-user-message {\n :where(.lb-ai-chat-message-content) {\n padding: calc(0.5 * var(--lb-spacing)) var(--lb-spacing);\n border-radius: calc(3 * var(--lb-radius));\n background: var(--lb-background-foreground-faint);\n color: var(--lb-foreground);\n }\n}\n\n.lb-ai-chat-message-text {\n display: flex;\n flex-direction: column;\n\n &,\n * {\n line-height: var(--lb-line-height);\n }\n\n :where(p) {\n margin-block: 0.25em;\n }\n\n :where(h1, h2, h3, h4, h5, h6) {\n margin-block: 0.5em;\n font-weight: 600;\n }\n\n :where(h1) {\n font-size: 1.75em;\n }\n\n :where(h2) {\n font-size: 1.5em;\n }\n\n :where(h3) {\n font-size: 1.25em;\n }\n\n :where(h4) {\n font-size: 1.125em;\n }\n\n :where(h5) {\n font-size: 1em;\n }\n\n :where(h6) {\n font-size: 0.875em;\n }\n\n :where(hr) {\n margin-block: calc(0.75 * var(--lb-spacing));\n border-block-start: 1px solid var(--lb-foreground-subtle);\n }\n\n :where(blockquote) {\n position: relative;\n margin-block-start: calc(0.75 * var(--lb-spacing));\n padding: calc(0.375 * var(--lb-spacing)) 0 calc(0.375 * var(--lb-spacing))\n calc(1.5 * var(--lb-spacing));\n\n &::after {\n content: \"\";\n position: absolute;\n inset-inline-start: 0;\n inset-block-start: 0;\n inline-size: 4px;\n block-size: 100%;\n border-radius: calc(0.5 * var(--lb-radius));\n background: var(--lb-foreground-subtle);\n }\n }\n\n :where(ol, ul) {\n margin-block: calc(0.75 * var(--lb-spacing));\n padding-inline-start: calc(1.5 * var(--lb-spacing));\n list-style-position: outside;\n }\n\n :where(ul) {\n list-style-type: disc;\n }\n\n :where(ol) {\n list-style-type: decimal;\n }\n\n :where(li) {\n margin-block: calc(0.25 * var(--lb-spacing));\n }\n\n /**\n * Merge adjacent inline code elements\n */\n :where(span:has(code) + span code) {\n padding-inline-start: 0;\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n\n :where(span:has(code):has(+ span code) code) {\n padding-inline-end: 0;\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n\n :where(a) {\n color: var(--lb-foreground);\n outline: none;\n font-weight: 500;\n transition-property: color, text-decoration-color;\n text-decoration-line: underline;\n text-decoration-color: var(--lb-foreground-moderate);\n text-underline-offset: 2px;\n\n &:where([href]):where(:hover, :focus-visible) {\n color: var(--lb-accent);\n text-decoration-color: var(--lb-accent-moderate);\n }\n }\n\n :where(.lb-code-block) {\n min-inline-size: 0;\n margin-block: 0.25em;\n border: 1px solid var(--lb-foreground-subtle);\n border-radius: var(--lb-radius);\n\n :where(.lb-code-block-header) {\n display: flex;\n align-items: center;\n padding: calc(0.5 * var(--lb-spacing));\n }\n\n :where(.lb-code-block-title) {\n margin-inline-start: calc(0.5 * var(--lb-spacing));\n color: var(--lb-foreground-tertiary);\n font-weight: 600;\n font-size: 0.675em;\n text-transform: uppercase;\n }\n\n :where(.lb-code-block-header-actions) {\n margin-inline-start: auto;\n }\n\n :where(.lb-code-block-content) {\n min-inline-size: 0;\n padding: 0 var(--lb-spacing) calc(0.875 * var(--lb-spacing));\n font-size: 85%;\n line-height: 1;\n\n /* overflow-inline: auto; doesn't work as expected */\n /* stylelint-disable-next-line plugin/use-logical-properties-and-values */\n overflow-x: auto;\n }\n }\n\n :where(strong) {\n font-weight: 600;\n }\n}\n\n.lb-ai-chat-message-tool {\n margin-block: calc(0.25 * var(--lb-spacing));\n}\n\n.lb-ai-chat-message-deleted {\n position: relative;\n align-items: center;\n inline-size: 100%;\n color: var(--lb-foreground-moderate);\n font-size: 0.875em;\n text-wrap: balance;\n}\n\n.lb-ai-chat-message-error {\n --lb-dynamic-background: var(--lb-background-destructive-subtle);\n\n position: relative;\n display: flex;\n gap: calc(0.5 * var(--lb-spacing));\n align-items: center;\n inline-size: 100%;\n padding: calc(0.75 * var(--lb-spacing));\n border-radius: var(--lb-radius);\n background: var(--lb-dynamic-background);\n color: var(--lb-destructive);\n font-size: 0.875em;\n text-wrap: balance;\n\n :where(.lb-icon-container) {\n color: var(--lb-destructive-secondary);\n }\n}\n\n.lb-ai-chat-message-collapsible-trigger {\n @include truncate;\n\n display: flex;\n gap: calc(0.25 * var(--lb-spacing));\n align-items: center;\n cursor: pointer;\n}\n\n.lb-ai-chat-message-collapsible-content {\n display: flex;\n flex-direction: column;\n gap: calc(0.5 * var(--lb-spacing));\n line-height: var(--lb-line-height);\n\n :where(& > *:first-child) {\n margin-block-start: calc(0.5 * var(--lb-spacing));\n }\n}\n\n.lb-ai-chat-message-collapsible-chevron {\n inline-size: calc(0.8 * var(--lb-icon-size));\n block-size: calc(0.8 * var(--lb-icon-size));\n margin-inline-start: -1px;\n margin-block-start: 1px;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n @supports (interpolate-size: allow-keywords) {\n .lb-ai-chat-message-collapsible-content {\n block-size: 0;\n opacity: 0;\n transition-duration: calc(3 * var(--lb-transition-duration));\n transition-property: block-size, opacity, content-visibility;\n content-visibility: hidden;\n\n /* overflow-block: clip; doesn't work as expected */\n /* stylelint-disable-next-line plugin/use-logical-properties-and-values */\n overflow-y: clip;\n\n /* interpolate-size is a new-ish property */\n /* stylelint-disable-next-line */\n interpolate-size: allow-keywords;\n\n /* transition-behavior is a new-ish property */\n /* stylelint-disable-next-line */\n transition-behavior: allow-discrete;\n\n &:where([data-state=\"open\"]) {\n block-size: auto;\n opacity: 1;\n content-visibility: auto;\n\n /* overflow-block: auto; doesn't work as expected */\n /* stylelint-disable-next-line plugin/use-logical-properties-and-values */\n overflow-y: auto;\n }\n }\n }\n\n .lb-ai-chat-message-collapsible-chevron {\n transition-property: transform;\n\n .lb-ai-chat-message-collapsible:where([data-state=\"open\"]) :where(&) {\n transform: rotate(90deg);\n }\n }\n}\n\n.lb-ai-chat-messages {\n display: flex;\n flex-direction: column;\n gap: calc(0.75 * var(--lb-spacing));\n inline-size: 100%;\n max-inline-size: min(\n calc(var(--lb-ai-chat-container-width) - var(--lb-spacing)),\n calc(100% - 3 * var(--lb-spacing))\n );\n margin-inline: auto;\n padding-block-start: var(--lb-spacing);\n padding-block-end: calc(5 * var(--lb-spacing));\n\n :where(.lb-ai-chat-user-message) {\n max-inline-size: 80%;\n margin-inline-start: auto;\n }\n}\n\n.lb-ai-chat-footer {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: calc(0.75 * var(--lb-spacing));\n inline-size: 100%;\n}\n\n.lb-ai-chat {\n --lb-ai-chat-container-width: 100%;\n\n display: flex;\n flex-direction: column;\n inline-size: 100%;\n block-size: 100%;\n background: var(--lb-background);\n isolation: isolate;\n\n /* overflow-block: auto; doesn't work as expected */\n /* stylelint-disable-next-line plugin/use-logical-properties-and-values */\n overflow-y: auto;\n\n :where(.lb-ai-chat-footer) {\n position: sticky;\n inset-block-end: 0;\n z-index: 1;\n margin-block-start: auto;\n padding: var(--lb-spacing);\n padding-block-start: 0;\n\n &::before {\n content: \"\";\n position: absolute;\n inset: 0;\n inset-block-start: calc(-3 * var(--lb-spacing));\n background: linear-gradient(\n to bottom,\n transparent 0%,\n var(--lb-background) calc(3.5 * var(--lb-spacing))\n );\n pointer-events: none;\n }\n }\n\n :where(.lb-ai-chat-composer) {\n max-inline-size: var(--lb-ai-chat-container-width);\n margin-inline: auto;\n border-radius: calc(2 * var(--lb-radius));\n background: var(--lb-dynamic-background);\n box-shadow: var(--lb-elevation-shadow-small);\n }\n}\n\n.lb-ai-chat-footer-actions {\n position: absolute;\n inset-inline: 0;\n inset-block-start: calc(-1 * var(--lb-spacing));\n display: flex;\n justify-content: center;\n pointer-events: none;\n transform: translateY(-100%);\n}\n\n.lb-ai-chat-composer {\n position: relative;\n inline-size: 100%;\n}\n\n.lb-ai-chat-scroll-indicator {\n border-radius: $lb-radius-full;\n color: var(--lb-foreground-moderate);\n opacity: 0;\n pointer-events: none;\n transition-property: transform, opacity, background;\n transform: scale(0.8);\n transform-origin: bottom;\n\n &:where([data-visible]) {\n opacity: 1;\n pointer-events: all;\n transform: scale(1);\n }\n}\n\n.lb-ai-chat-scroll-indicator-button {\n @include button-base;\n\n padding: calc(0.375 * var(--lb-spacing));\n border-radius: $lb-radius-full;\n color: var(--lb-foreground-moderate);\n transition-property: opacity, color;\n\n &:where(:hover, :focus-visible) {\n color: var(--lb-foreground-secondary);\n }\n\n &::after {\n content: \"\";\n position: absolute;\n inset: 0;\n border-radius: inherit;\n pointer-events: none;\n transition-property: box-shadow;\n }\n\n &:where(:focus-visible)::after {\n box-shadow: inset var(--lb-accent) 0 0 0 2px;\n }\n}\n\n.lb-ai-chat-pending {\n user-select: none;\n animation: lb-animation-shimmer-small 5s linear infinite;\n}\n\n.lb-ai-chat-message-thinking,\n.lb-ai-chat-message-reasoning {\n inline-size: fit-content;\n max-inline-size: 100%;\n}\n\n.lb-ai-chat-message-reasoning {\n margin-block-end: calc(0.5 * var(--lb-spacing));\n\n :where(.lb-ai-chat-message-text) {\n font-size: 0.875em;\n opacity: 0.75;\n }\n}\n\n/*************************************\n * Animations *\n *************************************/\n\n@keyframes lb-animation-slide-down {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes lb-animation-slide-up {\n from {\n opacity: 0;\n transform: translateY(4px);\n }\n\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes lb-animation-appear {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n@keyframes lb-animation-disappear {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n }\n}\n\n@keyframes lb-animation-shimmer {\n from,\n to {\n mask-image: linear-gradient(\n 90deg,\n rgb(0 0 0 / 50%),\n #000,\n #000,\n rgb(0 0 0 / 50%)\n );\n mask-size: 400% 100%;\n }\n\n from {\n mask-position: 200% 0;\n }\n\n to {\n mask-position: -200% 0;\n }\n}\n\n@keyframes lb-animation-shimmer-small {\n from,\n to {\n mask-image: linear-gradient(\n 90deg,\n #000 0%,\n rgb(0 0 0 / 50%) 18%,\n rgb(0 0 0 / 50%) 82%,\n #000 100%\n );\n mask-size: 300% 100%;\n }\n\n from {\n mask-position: 200% 0;\n }\n\n to {\n mask-position: -100% 0;\n }\n}\n\n@keyframes lb-animation-spin {\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n}\n","/* Because of `all: unset`, we have to re-define some these values. */\n@mixin button-base {\n all: unset;\n position: relative;\n box-sizing: inherit;\n outline: none;\n cursor: pointer;\n user-select: none;\n transition-timing-function: var(--lb-transition-easing);\n transition-duration: var(--lb-transition-duration);\n -webkit-tap-highlight-color: transparent;\n}\n\n@mixin button {\n @include button-base;\n\n transition-property: background, color, opacity;\n\n &::after {\n content: \"\";\n position: absolute;\n inset: 0;\n border-radius: inherit;\n pointer-events: none;\n transition-property: box-shadow;\n }\n\n &:where(:focus-visible) {\n z-index: 1;\n\n &::after {\n box-shadow:\n var(--lb-dynamic-background) 0 0 0 2px,\n var(--lb-accent) 0 0 0 4px;\n }\n }\n}\n\n@mixin truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n@mixin capitalize {\n &::first-letter {\n text-transform: capitalize;\n }\n}\n\n@mixin invisible-selection {\n &::selection,\n *::selection {\n background: transparent;\n }\n}\n\n@mixin invisible-scrollbar {\n & {\n -ms-overflow-style: none;\n scrollbar-width: none;\n }\n\n &::-webkit-scrollbar {\n display: none;\n }\n}\n\n@mixin firefox-only {\n @supports (-moz-appearance: none) {\n @content;\n }\n}\n\n@mixin not-firefox {\n @supports not (-moz-appearance: none) {\n @content;\n }\n}\n\n@mixin safari-only {\n @supports (background: -webkit-named-image(i)) {\n @content;\n }\n}\n\n@mixin not-safari {\n @supports not (background: -webkit-named-image(i)) {\n @content;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["src/styles/src/styles/index.css","src/styles/src/styles/utils.css"],"names":[],"mappings":"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","file":"styles.css","sourcesContent":["@import \"./utils\";\n@import \"./constants\";\n\n.lb-root {\n /**\n * Basic\n */\n --lb-radius: 0.5em;\n --lb-spacing: 1em;\n --lb-accent: #17f;\n --lb-accent-foreground: #fff;\n --lb-destructive: #f45;\n --lb-destructive-foreground: #fff;\n --lb-background: #fff;\n --lb-foreground: #111;\n\n /**\n * Advanced\n */\n --lb-line-height: 1.5;\n --lb-icon-size: 20px;\n --lb-icon-weight: 1.5px;\n --lb-avatar-radius: 50%;\n --lb-button-radius: calc(0.75 * var(--lb-radius));\n --lb-transition-duration: 0.1s;\n --lb-transition-easing: cubic-bezier(0.4, 0, 0.2, 1);\n --lb-highlight-shadow: inset 0 0 0 1px rgb(0 0 0 / 10%);\n --lb-elevation-shadow: $lb-elevation-shadow;\n --lb-elevation-shadow-moderate: $lb-elevation-shadow-moderate;\n --lb-tooltip-shadow: $lb-tooltip-shadow;\n --lb-accent-contrast: 8%;\n --lb-destructive-contrast: 8%;\n --lb-foreground-contrast: 8%;\n\n /**\n * Colors\n */\n --lb-background-foreground-faint: color-mix-scale(\n var(--lb-background),\n var(--lb-foreground),\n var(--lb-foreground-contrast),\n 50\n );\n --lb-background-accent-faint: color-mix-scale(\n var(--lb-background),\n var(--lb-accent),\n var(--lb-accent-contrast),\n 50\n );\n --lb-background-accent-subtle: color-mix-scale(\n var(--lb-background),\n var(--lb-accent),\n var(--lb-accent-contrast),\n 100\n );\n --lb-background-destructive-faint: color-mix-scale(\n var(--lb-background),\n var(--lb-destructive),\n var(--lb-destructive-contrast),\n 50\n );\n --lb-background-destructive-subtle: color-mix-scale(\n var(--lb-background),\n var(--lb-destructive),\n var(--lb-destructive-contrast),\n 100\n );\n --lb-accent-subtle: color-mix-scale(\n var(--lb-dynamic-background),\n var(--lb-accent),\n var(--lb-accent-contrast),\n 100\n );\n --lb-accent-moderate: color-mix-scale(\n var(--lb-dynamic-background),\n var(--lb-accent),\n var(--lb-accent-contrast),\n 400\n );\n --lb-accent-tertiary: color-mix-scale(\n var(--lb-dynamic-background),\n var(--lb-accent),\n var(--lb-accent-contrast),\n 600\n );\n --lb-accent-secondary: color-mix-scale(\n var(--lb-dynamic-background),\n var(--lb-accent),\n var(--lb-accent-contrast),\n 800\n );\n --lb-destructive-subtle: color-mix-scale(\n var(--lb-dynamic-background),\n var(--lb-destructive),\n var(--lb-destructive-contrast),\n 100\n );\n --lb-destructive-moderate: color-mix-scale(\n var(--lb-dynamic-background),\n var(--lb-destructive),\n var(--lb-destructive-contrast),\n 400\n );\n --lb-destructive-tertiary: color-mix-scale(\n var(--lb-dynamic-background),\n var(--lb-destructive),\n var(--lb-destructive-contrast),\n 600\n );\n --lb-destructive-secondary: color-mix-scale(\n var(--lb-dynamic-background),\n var(--lb-destructive),\n var(--lb-destructive-contrast),\n 800\n );\n --lb-foreground-subtle: color-mix-scale(\n var(--lb-dynamic-background),\n var(--lb-foreground),\n var(--lb-foreground-contrast),\n 100\n );\n --lb-foreground-moderate: color-mix-scale(\n var(--lb-dynamic-background),\n var(--lb-foreground),\n var(--lb-foreground-contrast),\n 400\n );\n --lb-foreground-tertiary: color-mix-scale(\n var(--lb-dynamic-background),\n var(--lb-foreground),\n var(--lb-foreground-contrast),\n 600\n );\n --lb-foreground-secondary: color-mix-scale(\n var(--lb-dynamic-background),\n var(--lb-foreground),\n var(--lb-foreground-contrast),\n 800\n );\n --lb-selection: color-mix(in srgb, var(--lb-accent) 40%, transparent);\n\n overflow-wrap: break-word;\n accent-color: var(--lb-accent);\n text-size-adjust: none;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n\n &,\n *,\n ::before,\n ::after {\n box-sizing: border-box;\n transition: none var(--lb-transition-duration) var(--lb-transition-easing);\n }\n\n /* Define some variables only on first .lb-root instances */\n &:where(:not(& &)) {\n --lb-dynamic-background: var(--lb-background);\n }\n}\n\n/*************************************\n * States *\n *************************************/\n\n.lb-loading,\n.lb-empty,\n.lb-error {\n position: absolute;\n inset: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.lb-loading {\n color: var(--lb-foreground-moderate);\n}\n\n.lb-empty,\n.lb-error {\n padding: var(--lb-spacing);\n color: var(--lb-foreground-tertiary);\n font-size: 0.875em;\n text-align: center;\n text-wrap: balance;\n}\n\n/*************************************\n * Icon *\n *************************************/\n\n.lb-icon-container,\n.lb-icon {\n inline-size: var(--lb-icon-size);\n block-size: var(--lb-icon-size);\n}\n\n.lb-icon-container {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.lb-icon {\n --lb-icon-background: var(--lb-dynamic-background);\n\n * {\n stroke-width: var(--lb-icon-weight);\n vector-effect: non-scaling-stroke;\n }\n}\n\n.lb-icon-spinner {\n transform-origin: center;\n animation: lb-animation-spin 0.75s linear infinite;\n}\n\n/*************************************\n * Button *\n *************************************/\n\n.lb-button {\n --lb-button-background: var(--lb-dynamic-background);\n\n @include button;\n\n display: flex;\n justify-content: center;\n align-items: center;\n padding: calc(0.25 * var(--lb-spacing));\n border-radius: var(--lb-button-radius);\n background: var(--lb-button-background);\n color: var(--lb-foreground-moderate);\n\n &:where(.lb-button\\:non-disableable:disabled) {\n cursor: default;\n }\n\n &:where(:not(.lb-button\\:non-disableable):disabled) {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n &:where(\n :enabled:hover,\n :enabled:focus-visible,\n [aria-expanded=\"true\"],\n [aria-selected=\"true\"]\n ) {\n --lb-button-background: var(--lb-foreground-subtle);\n\n color: var(--lb-foreground-tertiary);\n }\n\n &:where(\n [data-variant=\"default\"]:not(\n :is(\n :enabled:hover,\n :enabled:focus-visible,\n [aria-expanded=\"true\"],\n [aria-selected=\"true\"],\n [aria-pressed]\n )\n )\n ) {\n background: transparent;\n }\n\n &:where([data-variant=\"primary\"]) {\n --lb-button-background: var(--lb-accent);\n\n color: var(--lb-accent-foreground);\n\n &:where(\n :enabled:hover,\n :enabled:focus-visible,\n [aria-expanded=\"true\"],\n [aria-selected=\"true\"]\n ) {\n --lb-button-background: var(--lb-accent-secondary);\n\n color: var(--lb-accent-foreground);\n }\n }\n\n &:where([data-variant=\"destructive\"]) {\n --lb-button-background: var(--lb-destructive);\n\n color: var(--lb-destructive-foreground);\n\n &:where(\n :enabled:hover,\n :enabled:focus-visible,\n [aria-expanded=\"true\"],\n [aria-selected=\"true\"]\n ) {\n --lb-button-background: var(--lb-destructive-secondary);\n\n color: var(--lb-destructive-foreground);\n }\n }\n\n &:where([data-variant=\"outline\"]) {\n box-shadow: inset 0 0 0 1px var(--lb-foreground-subtle);\n transition-property: background, color, opacity, box-shadow;\n }\n\n &:where(:has(.lb-button-label)) {\n gap: calc(0.175 * var(--lb-spacing));\n padding-inline: calc(0.55 * var(--lb-spacing));\n\n &:where(:has(.lb-icon-container)) {\n padding-inline-start: calc(0.4 * var(--lb-spacing));\n }\n }\n\n &:where([data-variant=\"toolbar\"]) {\n color: var(--lb-foreground-tertiary);\n\n &:where([aria-pressed=\"true\"]) {\n --lb-button-background: var(--lb-foreground-subtle);\n\n color: var(--lb-foreground-secondary);\n\n :where(.lb-icon *) {\n stroke-width: calc(1.25 * var(--lb-icon-weight));\n }\n }\n }\n\n &:where([data-variant=\"secondary\"]) {\n --lb-button-background: var(--lb-foreground-subtle);\n\n color: var(--lb-foreground-tertiary);\n\n &:where(\n :enabled:hover,\n :enabled:focus-visible,\n [aria-expanded=\"true\"],\n [aria-selected=\"true\"]\n ) {\n --lb-button-background: var(--lb-foreground);\n\n color: var(--lb-dynamic-background);\n }\n }\n\n &:where([data-size=\"large\"]) {\n padding: calc(0.5 * var(--lb-spacing));\n\n &:where(:has(.lb-button-label)) {\n gap: calc(0.35 * var(--lb-spacing));\n padding-inline: calc(0.7 * var(--lb-spacing));\n\n &:where(:has(.lb-icon-container)) {\n padding-inline-start: calc(0.6 * var(--lb-spacing));\n }\n }\n }\n\n :where(.lb-icon-container) {\n flex: none;\n }\n\n :where(.lb-icon) {\n --lb-icon-background: var(--lb-button-background);\n }\n}\n\n.lb-button-label {\n display: inline-flex;\n flex: none;\n align-items: center;\n block-size: var(--lb-icon-size);\n font-weight: 500;\n font-size: calc(0.7 * var(--lb-icon-size));\n line-height: 1;\n}\n\n/*************************************\n * Dropdown *\n *************************************/\n\n.lb-dropdown {\n min-inline-size: 160px;\n}\n\n.lb-dropdown-label {\n padding: calc(0.875 * var(--lb-spacing)) calc(0.625 * var(--lb-spacing))\n calc(0.125 * var(--lb-spacing));\n color: var(--lb-foreground-tertiary);\n font-weight: 600;\n font-size: 0.675em;\n text-transform: uppercase;\n pointer-events: none;\n user-select: none;\n\n &:where(:first-child) {\n padding-block-start: var(--lb-spacing);\n }\n}\n\n.lb-dropdown-separator {\n block-size: 1px;\n margin: $lb-elevation-padding calc(-1 * $lb-elevation-padding);\n background: var(--lb-foreground-subtle);\n}\n\n.lb-dropdown-item {\n :where(.lb-icon-container) {\n margin-inline-start: calc(-0.125 * var(--lb-spacing));\n margin-inline-end: calc(0.375 * var(--lb-spacing));\n color: var(--lb-foreground-moderate);\n transition-property: color;\n }\n}\n\n.lb-dropdown-item:where(\n :is(\n [data-highlighted]:not([data-highlighted=\"false\"]),\n [data-selected]:not([data-selected=\"false\"]),\n [data-active]:not([data-active=\"false\"])\n )\n ) {\n :where(.lb-icon-container) {\n color: var(--lb-foreground-tertiary);\n }\n}\n\n.lb-dropdown-item:where(:has(.lb-dropdown-item-accessory)) {\n :where(.lb-dropdown-item-label) {\n margin-inline-end: calc(0.375 * var(--lb-spacing));\n }\n}\n\n.lb-dropdown-item-accessory {\n margin-inline-start: auto;\n margin-inline-end: calc(-0.25 * var(--lb-spacing));\n}\n\n/* If a dropdown has at least one icon, all items should be aligned has if they had an icon */\n.lb-dropdown:where(:has(.lb-dropdown-item-icon))\n :where(.lb-dropdown-item:not(:has(.lb-dropdown-item-icon)))\n :where(.lb-dropdown-item-label) {\n margin-inline-start: calc(\n var(--lb-icon-size) + (0.375 - 0.125) * var(--lb-spacing)\n );\n}\n\n/*************************************\n * Select *\n *************************************/\n\n.lb-select-button {\n min-inline-size: 0;\n\n :where(.lb-button-label) {\n @include truncate;\n\n flex: 1;\n }\n}\n\n.lb-select-button-chevron {\n flex: none;\n margin-inline-end: calc(-0.25 * var(--lb-spacing));\n opacity: 0.75;\n}\n\n/*************************************\n * Collapsible *\n *************************************/\n\n.lb-collapsible-trigger {\n all: unset;\n position: relative;\n box-sizing: inherit;\n user-select: none;\n transition-timing-function: var(--lb-transition-easing);\n transition-duration: var(--lb-transition-duration);\n transition-property: color, background, opacity;\n -webkit-tap-highlight-color: transparent;\n\n &:where(:not([data-disabled])) {\n cursor: pointer;\n }\n}\n\n.lb-collapsible-chevron {\n inline-size: calc(0.8 * var(--lb-icon-size));\n block-size: calc(0.8 * var(--lb-icon-size));\n margin-inline-start: -1px;\n margin-block-start: 1px;\n color: var(--lb-foreground-moderate);\n}\n\n@media (prefers-reduced-motion: no-preference) {\n @supports (interpolate-size: allow-keywords) {\n .lb-collapsible-content {\n block-size: 0;\n opacity: 0;\n transition-duration: calc(3 * var(--lb-transition-duration));\n transition-property: block-size, opacity, content-visibility;\n\n /* overflow-block: clip; doesn't work as expected */\n /* stylelint-disable-next-line plugin/use-logical-properties-and-values */\n overflow-y: clip;\n\n /* interpolate-size is a new-ish property */\n /* stylelint-disable-next-line */\n interpolate-size: allow-keywords;\n\n /* transition-behavior is a new-ish property */\n /* stylelint-disable-next-line */\n transition-behavior: allow-discrete;\n\n &:where([data-state=\"open\"]) {\n block-size: auto;\n opacity: 1;\n\n /* overflow-block: auto; doesn't work as expected */\n /* stylelint-disable-next-line plugin/use-logical-properties-and-values */\n overflow-y: auto;\n }\n }\n }\n\n .lb-collapsible-chevron {\n transition-property: transform;\n\n .lb-collapsible:where([data-state=\"open\"]) :where(&) {\n transform: rotate(90deg);\n }\n }\n}\n\n/* Fix default browser styles when `hidden=\"until-found\"` isn't supported. */\n.lb-collapsible-content:where([hidden]:not([hidden=\"until-found\"])) {\n display: none !important;\n}\n\n/*************************************\n * Prose *\n *************************************/\n\n.lb-prose {\n &,\n * {\n line-height: var(--lb-line-height);\n }\n\n :where(p) {\n margin-block: 0.75em;\n }\n\n :where(p, li) {\n text-wrap: pretty;\n }\n\n :where(h1, h2, h3, h4, h5, h6) {\n margin-block-start: 1.5em;\n margin-block-end: 0.375em;\n font-weight: 600;\n text-wrap: balance;\n }\n\n :where(h1) {\n font-size: 1.75em;\n line-height: calc(0.8 * var(--lb-line-height));\n }\n\n :where(h2) {\n font-size: 1.5em;\n line-height: calc(0.86 * var(--lb-line-height));\n }\n\n :where(h3) {\n font-size: 1.25em;\n line-height: calc(0.92 * var(--lb-line-height));\n }\n\n :where(h4) {\n font-size: 1.125em;\n line-height: calc(0.98 * var(--lb-line-height));\n }\n\n :where(h5) {\n font-size: 1em;\n }\n\n :where(h6) {\n font-size: 0.875em;\n }\n\n :where(hr) {\n margin-block: 1.5em;\n border: none;\n border-block-start: 1px solid var(--lb-foreground-subtle);\n }\n\n :where(ol, ul) {\n display: flex;\n flex-direction: column;\n gap: 0.25em;\n margin-block: 0.75em;\n padding-inline-start: 1.5em;\n list-style-position: outside;\n\n :where(ol, ul) {\n margin-block: 0;\n }\n }\n\n :where(ul) {\n list-style-type: disc;\n }\n\n :where(ol) {\n list-style-type: decimal;\n }\n\n :where(li) {\n margin-block: 0;\n\n > :where(ol, ul) {\n margin-block-start: 0.25em;\n }\n }\n\n :where(a) {\n color: var(--lb-foreground);\n outline: none;\n font-weight: 500;\n transition-property: color, text-decoration-color;\n text-decoration-line: underline;\n text-decoration-color: var(--lb-foreground-moderate);\n text-underline-offset: 2px;\n\n &:where([href]):where(:hover, :focus-visible) {\n color: var(--lb-accent);\n text-decoration-color: var(--lb-accent-moderate);\n }\n }\n\n :where(strong) {\n font-weight: 600;\n }\n\n :where(table) {\n inline-size: 100%;\n min-inline-size: 0;\n margin-block: 1em;\n border-collapse: collapse;\n table-layout: auto;\n word-break: break-word;\n }\n\n :where(thead) {\n border-block-end: 2px solid var(--lb-foreground-subtle);\n\n :where(th) {\n vertical-align: bottom;\n }\n }\n\n :where(tbody) {\n :where(td) {\n vertical-align: baseline;\n }\n\n :where(tr:not(:last-child)) {\n border-block-end: 1px solid var(--lb-foreground-subtle);\n }\n }\n\n :where(tfoot) {\n border-block-start: 2px solid var(--lb-foreground-subtle);\n\n :where(td) {\n vertical-align: top;\n }\n }\n\n :where(th, td) {\n padding-inline: 0.75em;\n padding-block: 0.5em;\n text-align: start;\n\n &:where(:first-child) {\n padding-inline-start: 0;\n }\n\n &:where(:last-child) {\n padding-inline-end: 0;\n }\n }\n\n :where(.lb-code-block) {\n margin-block: 1em;\n }\n\n :where(blockquote) {\n position: relative;\n margin-inline: 0;\n margin-block: 0.75em;\n padding: 0;\n padding-inline-start: 1.25em;\n\n &::after {\n content: \"\";\n position: absolute;\n inset-inline-start: 0;\n inset-block-start: 0;\n inline-size: 4px;\n block-size: 100%;\n border-radius: calc(0.5 * var(--lb-radius));\n background: var(--lb-foreground-subtle);\n }\n\n &:where(& + &) {\n margin-block-start: 1em;\n }\n\n > :where(:first-child) {\n margin-block-start: 0;\n }\n\n > :where(:last-child) {\n margin-block-end: 0;\n }\n }\n\n > :where(:first-child) {\n margin-block-start: 0;\n }\n\n > :where(:last-child) {\n margin-block-end: 0;\n }\n}\n\n/*************************************\n * Composer suggestions *\n *************************************/\n\n.lb-composer-suggestions-list {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.lb-composer-suggestions-list-item {\n scroll-margin-block: $lb-elevation-padding;\n}\n\n/*************************************\n * Composer mention suggestions *\n *************************************/\n\n.lb-composer-mention-suggestions {\n --lb-composer-mention-suggestion-avatar-size: 1.25rem;\n}\n\n.lb-composer-mention-suggestion {\n padding: calc(0.375 * var(--lb-spacing)) calc(0.625 * var(--lb-spacing));\n}\n\n.lb-composer-mention-suggestion-avatar {\n inline-size: var(--lb-composer-mention-suggestion-avatar-size);\n margin-inline-start: calc(-0.125 * var(--lb-spacing));\n margin-inline-end: calc(0.5 * var(--lb-spacing));\n margin-block: calc(0.125 * var(--lb-spacing));\n background: var(--lb-foreground-subtle);\n color: var(--lb-foreground-moderate);\n}\n\n/*************************************\n * List *\n *************************************/\n\n.lb-list {\n display: contents;\n\n :where(:first-child) {\n @include capitalize;\n }\n}\n\n/*************************************\n * Date *\n *************************************/\n\n.lb-date {\n @include capitalize;\n}\n\n/*************************************\n * Emoji *\n *************************************/\n\n.lb-emoji {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n inline-size: 1em;\n white-space: nowrap;\n}\n\n@include safari-only {\n .lb-emoji {\n transform: scale(0.825);\n will-change: transform;\n }\n}\n\n/*************************************\n * Emoji picker *\n *************************************/\n\n.lb-emoji-picker {\n --lb-emoji-picker-padding: $lb-emoji-picker-padding;\n --lb-emoji-picker-offset-padding: calc(\n $lb-emoji-picker-padding + 0.375 * var(--lb-spacing)\n );\n\n display: flex;\n flex-direction: column;\n inline-size: 100%;\n max-inline-size: var(--frimousse-viewport-width);\n block-size: 374px;\n color: var(--lb-foreground);\n}\n\n.lb-emoji-picker-header {\n flex: none;\n border-block-end: 1px solid var(--lb-foreground-subtle);\n}\n\n.lb-emoji-picker-footer {\n display: flex;\n flex: none;\n gap: calc(0.5 * var(--lb-spacing));\n align-items: center;\n inline-size: 100%;\n padding: calc(0.5 * var(--lb-spacing));\n border-block-start: 1px solid var(--lb-foreground-subtle);\n}\n\n.lb-emoji-picker-active-emoji {\n display: flex;\n flex: none;\n justify-content: center;\n align-items: center;\n inline-size: 1.25em;\n block-size: 1.25em;\n font-size: 1.25em;\n}\n\n.lb-emoji-picker-active-emoji-label {\n @include truncate;\n\n flex: 1;\n color: var(--lb-foreground-secondary);\n font-weight: 500;\n font-size: 0.8125em;\n}\n\n.lb-emoji-picker-active-emoji-label-placeholder {\n margin-inline-start: calc(0.5 * var(--lb-spacing));\n color: var(--lb-foreground-moderate);\n}\n\n.lb-emoji-picker-skin-tone-selector {\n display: flex;\n flex: none;\n justify-content: center;\n align-items: center;\n inline-size: calc(1.75 * var(--lb-spacing));\n block-size: calc(1.75 * var(--lb-spacing));\n margin-inline-start: auto;\n}\n\n.lb-emoji-picker-search-container {\n position: relative;\n display: flex;\n align-items: center;\n\n :where(.lb-icon) {\n position: absolute;\n inset-inline-start: var(--lb-emoji-picker-offset-padding);\n color: var(--lb-foreground-moderate);\n pointer-events: none;\n }\n}\n\n.lb-emoji-picker-search {\n all: unset;\n box-sizing: inherit;\n inline-size: 100%;\n padding: var(--lb-emoji-picker-offset-padding);\n padding-inline-start: calc(\n var(--lb-icon-size) + var(--lb-emoji-picker-offset-padding) + 0.375 *\n var(--lb-spacing)\n );\n background: transparent;\n outline: none;\n appearance: textfield;\n\n &::placeholder {\n color: var(--lb-foreground-moderate);\n }\n\n &::-webkit-search-cancel-button {\n display: none;\n }\n}\n\n.lb-emoji-picker-content {\n position: relative;\n flex: 1;\n outline: none;\n}\n\n.lb-emoji-picker-category-header {\n padding: var(--lb-emoji-picker-padding) var(--lb-emoji-picker-offset-padding);\n background: var(--lb-dynamic-background);\n}\n\n.lb-emoji-picker-category-header-title {\n color: var(--lb-foreground-tertiary);\n font-weight: 600;\n font-size: 0.675em;\n text-transform: uppercase;\n}\n\n.lb-emoji-picker-list {\n padding-block-end: var(--lb-emoji-picker-padding);\n animation: lb-animation-appear var(--lb-transition-duration)\n var(--lb-transition-easing) both;\n}\n\n.lb-emoji-picker-row {\n display: flex;\n padding-inline: var(--lb-emoji-picker-padding);\n scroll-margin-block-end: var(--lb-emoji-picker-padding);\n}\n\n.lb-emoji-picker-emoji {\n all: unset;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n box-sizing: inherit;\n aspect-ratio: 1;\n padding: calc(0.375 * var(--lb-spacing));\n border-radius: calc(var(--lb-radius) - 0.75 * $lb-emoji-picker-padding);\n text-align: center;\n}\n\n/*************************************\n * Tooltip *\n *************************************/\n\n.lb-tooltip {\n --lb-background: #222;\n --lb-foreground: #fff;\n --lb-foreground-contrast: 10%;\n --lb-dynamic-background: var(--lb-background);\n\n position: relative;\n display: flex;\n align-items: center;\n max-inline-size: 300px;\n min-block-size: calc(\n $lb-tooltip-shortcut-height + 2 * $lb-tooltip-additional-padding\n );\n padding-inline: $lb-tooltip-horizontal-padding;\n border-radius: var(--lb-radius);\n background: var(--lb-dynamic-background);\n color: var(--lb-foreground);\n box-shadow: var(--lb-tooltip-shadow);\n font-size: 0.75rem;\n line-height: 1;\n overflow-wrap: anywhere;\n pointer-events: none;\n\n &::after {\n content: \"\";\n position: absolute;\n inset: 0;\n z-index: 1;\n border-radius: inherit;\n box-shadow: var(--lb-inset-shadow);\n pointer-events: none;\n }\n}\n\n.lb-tooltip\\:multiline {\n justify-content: center;\n padding-block: calc(\n $lb-tooltip-vertical-padding * (1 / $lb-tooltip-line-height)\n );\n line-height: $lb-tooltip-line-height;\n text-align: center;\n}\n\n.lb-tooltip-shortcut {\n display: flex;\n gap: calc(0.125 * var(--lb-spacing));\n justify-content: center;\n align-items: center;\n block-size: $lb-tooltip-shortcut-height;\n margin-inline-start: $lb-tooltip-horizontal-padding;\n margin-inline-end: calc(\n -1 * $lb-tooltip-horizontal-padding + $lb-tooltip-additional-padding\n );\n padding-inline: calc(0.25 * var(--lb-spacing));\n border-radius: calc(\n var(--lb-radius) - 0.625 * $lb-tooltip-additional-padding\n );\n background: var(--lb-foreground-subtle);\n color: var(--lb-foreground-tertiary);\n font-family: inherit;\n line-height: 1;\n text-transform: uppercase;\n\n :where(abbr) {\n all: unset;\n }\n}\n\n/*************************************\n * Avatar *\n *************************************/\n\n.lb-avatar {\n position: relative;\n container-type: inline-size;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n aspect-ratio: 1;\n border-radius: var(--lb-avatar-radius);\n background: var(--lb-foreground-subtle);\n color: var(--lb-foreground-moderate);\n\n &:where([data-loading]) {\n background: var(--lb-foreground);\n opacity: $lb-loading-opacity;\n }\n}\n\n.lb-avatar-image {\n position: absolute;\n inset: 0;\n object-fit: cover;\n inline-size: 100%;\n block-size: 100%;\n}\n\n.lb-avatar-fallback {\n font-weight: 500;\n font-size: 35cqi;\n white-space: nowrap;\n\n /**\n * Progressive enhancement: Only show the fallback when container queries are supported\n */\n @supports not (container-type: inline-size) {\n display: none;\n }\n}\n\n/*************************************\n * Name *\n *************************************/\n\n.lb-name {\n display: inline-block;\n\n &:where([data-loading]) {\n &::before {\n content: \"\\FEFF\";\n display: inline-block;\n vertical-align: middle;\n inline-size: 8ch;\n block-size: 1.75ex;\n border-radius: calc(0.5 * var(--lb-radius));\n background: currentcolor;\n opacity: $lb-loading-opacity;\n user-select: none;\n }\n }\n}\n\n/*************************************\n * Loading *\n *************************************/\n\n:is(.lb-avatar, .lb-name):where([data-loading]) {\n animation: lb-animation-shimmer 8s linear infinite;\n}\n\n/*************************************\n * Body *\n *************************************/\n\n:is(.lb-comment-body, .lb-composer-editor) {\n color: var(--lb-foreground-secondary);\n\n &,\n * {\n line-height: var(--lb-line-height);\n }\n\n :where(p) {\n --lb-line-height-crop: calc(1lh - 1em) / -2;\n\n margin-block-start: 0.25em;\n margin-block-end: 0.25em;\n\n /* Cancel out the impact of line-height on margins/paddings */\n &:where(:first-of-type) {\n margin-block-start: calc(0.125em + var(--lb-line-height-crop));\n }\n\n /* Cancel out the impact of line-height on margins/paddings */\n &:where(:last-of-type) {\n margin-block-end: calc(0.125em + var(--lb-line-height-crop));\n }\n }\n\n :where(strong) {\n font-weight: 600;\n }\n}\n\n.lb-comment-mention,\n.lb-composer-mention {\n color: var(--lb-accent);\n box-decoration-break: clone;\n font-weight: 500;\n}\n\n:is(.lb-comment-link, .lb-composer-link) {\n color: var(--lb-foreground);\n outline: none;\n font-weight: 500;\n transition-property: color, text-decoration-color;\n text-decoration-line: underline;\n text-decoration-color: var(--lb-foreground-moderate);\n text-underline-offset: 2px;\n\n &:where([href]):where(:hover, :focus-visible) {\n color: var(--lb-accent);\n text-decoration-color: var(--lb-accent-moderate);\n }\n}\n\n.lb-comment-mention:where([data-self]),\n.lb-composer-mention {\n padding: 0.1em 0.3em;\n border-radius: calc(0.675 * var(--lb-radius));\n background: var(--lb-accent-subtle);\n}\n\n/*************************************\n * Composer *\n *************************************/\n\n.lb-composer {\n position: relative;\n background: var(--lb-dynamic-background);\n color: var(--lb-foreground);\n transition-property: background;\n}\n\n.lb-composer-form {\n margin: 0;\n}\n\n.lb-composer:where(:has(.lb-composer-editor:not(:focus-visible))) {\n :where(.lb-button[data-variant=\"primary\"]) {\n --lb-button-background: var(--lb-foreground-subtle);\n\n color: var(--lb-foreground-tertiary);\n\n &:where(:enabled:hover, :enabled:focus-visible) {\n --lb-button-background: var(--lb-accent);\n\n color: var(--lb-accent-foreground);\n }\n }\n}\n\n.lb-composer-editor {\n padding: var(--lb-spacing);\n outline: none;\n\n &:where([data-disabled]:not([data-disabled=\"false\"])) {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n :where(.lb-composer-editor-container:has(.lb-composer-attachments)) & {\n padding-block-end: calc(0.25 * var(--lb-spacing));\n }\n\n :where([data-placeholder]) {\n color: var(--lb-foreground-moderate);\n }\n}\n\n.lb-composer-mention {\n @include invisible-selection;\n\n &:where([data-selected]:not([data-selected=\"false\"])) {\n background: var(--lb-accent);\n color: var(--lb-accent-foreground);\n }\n}\n\n.lb-composer-footer {\n display: flex;\n gap: calc(0.75 * var(--lb-spacing));\n align-items: center;\n block-size: calc($lb-button-size + var(--lb-spacing));\n margin-block-start: calc(-0.125 * var(--lb-spacing));\n padding: 0 var(--lb-spacing) var(--lb-spacing);\n}\n\n.lb-composer-actions,\n.lb-composer-editor-actions {\n display: flex;\n gap: calc(0.125 * var(--lb-spacing));\n align-items: center;\n}\n\n.lb-composer-editor-actions {\n margin-inline-end: auto;\n}\n\n.lb-composer-attribution {\n color: var(--lb-foreground-moderate);\n outline: none;\n transition-property: color;\n\n &:where(:hover, :focus-visible) {\n color: var(--lb-foreground-tertiary);\n }\n\n :where(svg) {\n block-size: calc(0.75 * $lb-button-size);\n }\n}\n\n.lb-composer-attachments {\n padding-inline: var(--lb-spacing);\n padding-block-start: calc(0.75 * var(--lb-spacing));\n padding-block-end: var(--lb-spacing);\n}\n\n.lb-composer-editor-container:where([data-drop]) * {\n pointer-events: none;\n}\n\n.lb-composer-attachments-drop-area {\n position: absolute;\n inset: 0;\n display: flex;\n place-content: center;\n place-items: center;\n color: var(--lb-accent);\n\n &::before,\n &::after {\n content: \"\";\n position: absolute;\n inset: calc(0.5 * var(--lb-spacing));\n z-index: 0;\n border-radius: calc(0.75 * var(--lb-radius));\n }\n\n &::before {\n background: currentcolor;\n opacity: calc(1 * var(--lb-accent-contrast));\n }\n\n &::after {\n border: 2px dashed currentcolor;\n opacity: calc(2 * var(--lb-accent-contrast));\n }\n}\n\n.lb-composer-attachments-drop-area-label {\n position: relative;\n display: flex;\n gap: calc(0.25 * var(--lb-spacing));\n place-items: center;\n padding: calc(0.375 * var(--lb-spacing)) calc(0.5 * var(--lb-spacing));\n border-radius: calc(0.75 * var(--lb-radius));\n background: var(--lb-accent);\n color: var(--lb-accent-foreground);\n font-weight: 500;\n pointer-events: none;\n}\n\n/*************************************\n * Floating Toolbar *\n *************************************/\n\n.lb-composer-floating-toolbar {\n display: flex;\n flex-direction: row;\n gap: $lb-elevation-padding;\n padding: $lb-elevation-padding;\n user-select: none;\n\n /* Invisibly increase the buttons' hit target size */\n :where(.lb-button) {\n &::before {\n content: \"\";\n position: absolute;\n inset: calc(-1 * $lb-elevation-padding);\n z-index: -1;\n border-radius: inherit;\n }\n\n &:where(:not(:first-of-type))::before {\n inset-inline-start: calc(-0.5 * $lb-elevation-padding);\n }\n\n &:where(:not(:last-of-type))::before {\n inset-inline-end: calc(-0.5 * $lb-elevation-padding);\n }\n }\n}\n\n/*************************************\n * Comment *\n *************************************/\n\n.lb-comment {\n --lb-comment-avatar-size: $lb-button-size;\n\n position: relative;\n padding: var(--lb-spacing);\n background: var(--lb-dynamic-background);\n color: var(--lb-foreground);\n font-weight: 400;\n scroll-margin: var(--lb-spacing);\n\n @media (hover: hover) {\n &:where(.lb-comment\\:show-actions-hover) {\n :where(.lb-comment-actions) {\n position: absolute;\n inset-inline-end: 0;\n opacity: 0;\n transition-property: opacity;\n }\n\n &:where(:is(:hover, :focus-within, .lb-comment\\:action-open)) {\n :where(.lb-comment-actions) {\n position: relative;\n opacity: 1;\n }\n }\n }\n }\n\n &:where(:target, [data-target]) {\n --lb-dynamic-background: var(--lb-background-accent-faint);\n }\n\n &:where([data-editing]) {\n --lb-dynamic-background: var(--lb-background-foreground-faint);\n }\n}\n\n.lb-comment-header {\n position: relative;\n display: flex;\n gap: calc(0.75 * var(--lb-spacing));\n align-items: center;\n block-size: var(--lb-comment-avatar-size);\n margin-block-end: calc(0.75 * var(--lb-spacing));\n}\n\n.lb-comment-details {\n display: flex;\n gap: calc(0.75 * var(--lb-spacing));\n align-items: center;\n min-inline-size: 0;\n}\n\n.lb-comment-avatar {\n flex: none;\n inline-size: var(--lb-comment-avatar-size);\n}\n\n.lb-comment-details-labels {\n display: flex;\n gap: calc(0.5 * var(--lb-spacing));\n align-items: baseline;\n min-inline-size: 0;\n}\n\n.lb-comment-author,\n.lb-comment-date {\n @include truncate;\n @include capitalize;\n}\n\n.lb-comment-author {\n font-weight: 500;\n}\n\n.lb-comment-date {\n color: var(--lb-foreground-tertiary);\n font-size: 0.875em;\n}\n\n.lb-comment-date-created,\n.lb-comment-date-edited {\n display: contents;\n}\n\n.lb-comment-actions {\n display: flex;\n gap: calc(0.125 * var(--lb-spacing));\n margin-inline-start: auto;\n}\n\n.lb-comment-composer {\n margin: calc(-1 * var(--lb-spacing));\n background: unset;\n}\n\n.lb-comment-body {\n /**\n * Prevent empty lines from collapsing\n */\n :where(p span:only-child:empty)::before {\n content: \"\\FEFF\";\n user-select: none;\n }\n}\n\n.lb-comment-attachments {\n margin-block-start: calc(0.75 * var(--lb-spacing));\n}\n\n.lb-comment-reactions {\n display: flex;\n flex-wrap: wrap;\n gap: calc(0.375 * var(--lb-spacing));\n margin-block-start: calc(0.75 * var(--lb-spacing));\n}\n\n.lb-comment-reaction {\n gap: calc(0.375 * var(--lb-spacing));\n block-size: $lb-button-size;\n padding-inline: calc(0.575 * var(--lb-spacing));\n border-radius: $lb-radius-full;\n\n &:where([data-self]) {\n background: var(--lb-accent-subtle);\n color: var(--lb-accent-secondary);\n box-shadow: inset 0 0 0 1px var(--lb-accent-moderate);\n\n &:where(\n :enabled:hover,\n :enabled:focus-visible,\n [aria-expanded=\"true\"],\n [aria-selected=\"true\"]\n ) {\n color: var(--lb-accent);\n }\n }\n}\n\n.lb-comment-reaction-count {\n font-weight: 500;\n font-size: 0.75em;\n font-variant-numeric: tabular-nums;\n}\n\n.lb-comment-reaction-tooltip {\n max-inline-size: 200px;\n}\n\n.lb-comment-deleted {\n color: var(--lb-foreground-tertiary);\n font-size: 0.875em;\n}\n\n.lb-comment\\:indent-content {\n min-block-size: calc(var(--lb-comment-avatar-size) + 2 * var(--lb-spacing));\n\n :where(.lb-comment-header) {\n block-size: $lb-button-size;\n margin-block-end: calc(0.25 * var(--lb-spacing));\n }\n\n :where(.lb-comment-avatar) {\n position: absolute;\n inset-inline-start: 0;\n inset-block-start: 0;\n }\n\n :where(.lb-comment-details-labels) {\n margin-inline-start: calc(\n var(--lb-comment-avatar-size) + 0.75 * var(--lb-spacing)\n );\n }\n\n :where(.lb-comment-content) {\n padding-inline-start: calc(\n var(--lb-comment-avatar-size) + 0.75 * var(--lb-spacing)\n );\n }\n}\n\n/*************************************\n * Thread *\n *************************************/\n\n.lb-thread {\n background: var(--lb-dynamic-background);\n color: var(--lb-foreground);\n transition-property: background;\n\n @media (hover: hover) {\n &:where(.lb-thread\\:show-actions-hover :is(:hover, :focus-within)) {\n :where(.lb-thread-actions) {\n opacity: 1;\n }\n }\n }\n}\n\n.lb-thread-comments {\n position: relative;\n z-index: 0;\n display: flex;\n flex-direction: column;\n}\n\n.lb-thread-comment {\n z-index: 0;\n padding-block: calc(0.6 * var(--lb-spacing));\n transition-property: background;\n\n &:where(.lb-comment\\:indent-content) {\n min-block-size: calc(var(--lb-comment-avatar-size) + var(--lb-spacing));\n }\n\n &:where(:first-of-type, [data-editing]) {\n padding-block-start: var(--lb-spacing);\n\n &:where(.lb-comment\\:indent-content) {\n min-block-size: calc(\n var(--lb-comment-avatar-size) + 1.5 * var(--lb-spacing)\n );\n }\n }\n\n &:where(:last-of-type, [data-editing]) {\n padding-block-end: var(--lb-spacing);\n\n &:where(.lb-comment\\:indent-content) {\n min-block-size: calc(\n var(--lb-comment-avatar-size) + 1.75 * var(--lb-spacing)\n );\n }\n }\n}\n\n.lb-thread-new-indicator {\n position: relative;\n z-index: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n block-size: 0;\n\n &::before,\n &::after {\n content: \"\";\n z-index: 0;\n flex: 1;\n block-size: 0;\n border-block-start: 1px solid var(--lb-foreground-subtle);\n transition-property: border;\n }\n}\n\n.lb-thread-new-indicator-label {\n z-index: 1;\n display: flex;\n flex: none;\n gap: calc(0.325 * var(--lb-spacing));\n align-items: center;\n padding: calc(0.25 * var(--lb-spacing)) var(--lb-spacing);\n color: var(--lb-accent);\n font-weight: 600;\n font-size: 0.675em;\n text-transform: uppercase;\n}\n\n.lb-thread-new-indicator-label-icon {\n inline-size: calc(0.6 * var(--lb-icon-size));\n block-size: calc(0.6 * var(--lb-icon-size));\n}\n\n.lb-thread-composer {\n position: relative;\n\n &::after {\n content: \"\";\n position: absolute;\n inset: 0;\n inline-size: 100%;\n block-size: 100%;\n border-block-start: 1px solid var(--lb-foreground-subtle);\n pointer-events: none;\n transition-property: border;\n }\n}\n\n/*************************************\n * Attachments *\n *************************************/\n\n.lb-comment-attachments,\n.lb-composer-attachments {\n display: flex;\n flex-direction: column;\n gap: calc(0.75 * var(--lb-spacing));\n}\n\n.lb-attachments {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr));\n gap: calc(0.75 * var(--lb-spacing));\n}\n\n.lb-attachment,\n.lb-attachment-delete {\n @include button;\n}\n\n.lb-attachment {\n position: relative;\n display: flex;\n inline-size: 100%;\n min-inline-size: 0;\n border-radius: var(--lb-radius);\n background: var(--lb-dynamic-background);\n box-shadow: inset 0 0 0 1px var(--lb-foreground-subtle);\n\n &:where([tabindex=\"-1\"]) {\n cursor: default;\n }\n\n &:where(:not([tabindex=\"-1\"])) {\n &:where(:hover, :focus-visible) {\n background: var(--lb-foreground-subtle);\n }\n }\n}\n\n.lb-attachment-delete {\n position: absolute;\n inset-inline-end: -0.35rem;\n inset-block-start: -0.35rem;\n z-index: 2;\n display: flex;\n justify-content: center;\n align-items: center;\n inline-size: 1.1rem;\n block-size: 1.1rem;\n border-radius: 50%;\n background: var(--lb-foreground-subtle);\n color: var(--lb-foreground-secondary);\n box-shadow: 0 0 0 2px var(--lb-dynamic-background);\n opacity: 0;\n\n /* Invisibly increase the button's hit target size */\n &::before {\n content: \"\";\n position: absolute;\n inset: -4px;\n z-index: -1;\n border-radius: inherit;\n }\n\n &:where(:hover, :focus-visible) {\n background: var(--lb-foreground-secondary);\n color: var(--lb-dynamic-background);\n }\n\n :where(.lb-attachment:focus-within, .lb-attachment:hover) & {\n opacity: 1;\n }\n\n :where(.lb-icon) {\n inline-size: 0.75rem;\n }\n}\n\n.lb-attachment-details {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: calc(0.25 * var(--lb-spacing));\n justify-content: center;\n min-inline-size: 0;\n font-size: 0.875em;\n}\n\n.lb-attachment-name {\n display: flex;\n font-weight: 500;\n}\n\n.lb-attachment-name-base,\n.lb-attachment-description {\n @include truncate;\n\n transition-property: color;\n}\n\n.lb-attachment-preview {\n position: relative;\n display: flex;\n flex: none;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n background: color-mix(\n in srgb,\n transparent,\n var(--lb-foreground) var(--lb-foreground-contrast)\n );\n color: var(--lb-foreground-tertiary);\n transition-property: background, color;\n}\n\n.lb-attachment-preview-media {\n border-radius: inherit;\n transition-property: opacity;\n\n &,\n &::after,\n img,\n video {\n position: absolute;\n inset: 0;\n inline-size: 100%;\n block-size: 100%;\n }\n\n img,\n video {\n object-fit: cover;\n pointer-events: none;\n }\n\n &::after {\n content: \"\";\n border-radius: inherit;\n box-shadow: var(--lb-highlight-shadow);\n pointer-events: none;\n }\n\n &:where([data-hidden]) {\n opacity: 0;\n }\n}\n\n.lb-attachment-icon {\n flex: none;\n overflow: visible;\n color: var(--lb-foreground);\n}\n\n.lb-attachment-icon-glyph {\n fill: var(--lb-foreground-moderate);\n}\n\n.lb-attachment-icon-background {\n fill: var(--lb-background);\n}\n\n.lb-attachment-icon-fold {\n fill-opacity: calc(0.75 * var(--lb-foreground-contrast));\n}\n\n.lb-attachment-icon-shadow {\n filter: blur(6px);\n fill-opacity: var(--lb-foreground-contrast);\n}\n\n.lb-file-attachment {\n gap: calc(0.5 * var(--lb-spacing));\n padding: calc(0.5 * var(--lb-spacing));\n padding-inline-end: calc(0.65 * var(--lb-spacing));\n\n :where(.lb-attachment-preview) {\n aspect-ratio: 1;\n inline-size: 2.5rem;\n border-radius: calc(0.5 * var(--lb-radius));\n }\n\n :where(.lb-attachment-name) {\n color: var(--lb-foreground-secondary);\n }\n\n :where(.lb-attachment-description) {\n color: var(--lb-foreground-tertiary);\n }\n\n &:where(:not([tabindex=\"-1\"])) {\n &:where(:hover, :focus-visible, :focus-within) {\n :where(.lb-attachment-name) {\n color: var(--lb-foreground);\n }\n\n :where(.lb-attachment-description) {\n color: var(--lb-foreground-secondary);\n }\n }\n }\n}\n\n.lb-media-attachment {\n aspect-ratio: 16 / 10;\n\n :where(.lb-attachment-preview) {\n position: absolute;\n inset: 0;\n border-radius: inherit;\n }\n\n :where(.lb-attachment-details) {\n position: absolute;\n inset-inline: 0;\n inset-block-end: 0;\n padding: calc(0.75 * var(--lb-spacing));\n border-end-start-radius: inherit;\n border-end-end-radius: inherit;\n background: linear-gradient(to bottom, transparent, rgba(0 0 0 / 80%));\n text-shadow: 0 0 2px rgba(0 0 0 / 40%);\n opacity: 0;\n transition-property: opacity;\n }\n\n :where(.lb-attachment-name) {\n color: #fff;\n }\n\n :where(.lb-attachment-description) {\n color: rgba(255 255 255 / 80%);\n }\n\n &:where(:not([tabindex=\"-1\"])) {\n &:where(:hover, :focus-visible, :focus-within) {\n :where(.lb-attachment-details) {\n opacity: 1;\n }\n }\n }\n}\n\n.lb-attachment:where([data-error]) {\n :where(.lb-attachment-preview) {\n background: var(--lb-destructive);\n color: var(--lb-destructive-foreground);\n }\n}\n\n/*************************************\n * Inbox Notification *\n *************************************/\n\n.lb-inbox-notification {\n --lb-inbox-notification-aside-size: 36px;\n\n position: relative;\n display: flex;\n gap: calc(0.75 * var(--lb-spacing));\n overflow: hidden;\n padding: var(--lb-spacing);\n background: var(--lb-dynamic-background);\n color: var(--lb-foreground);\n font-weight: 400;\n text-decoration: inherit;\n transition-property: background;\n\n /* Highlight missing notifications during development */\n &:where([data-missing]) {\n --lb-accent: var(--lb-destructive) !important;\n --lb-accent-foreground: var(--lb-destructive-foreground) !important;\n --lb-accent-contrast: var(--lb-destructive-contrast) !important;\n --lb-dynamic-background: var(--lb-background-accent-faint);\n }\n\n &:where([data-unread]) {\n --lb-dynamic-background: var(--lb-background-accent-faint);\n }\n\n &:where([href]) {\n cursor: pointer;\n\n &:where(:hover, :focus-visible, :focus-within) {\n --lb-dynamic-background: var(--lb-background-foreground-faint);\n }\n\n &:where([data-unread]) {\n &:where(:hover, :focus-visible, :focus-within) {\n --lb-dynamic-background: var(--lb-background-accent-subtle);\n }\n }\n }\n\n @media (hover: hover) {\n &:where(.lb-inbox-notification\\:show-actions-hover) {\n :where(.lb-inbox-notification-header) {\n display: grid;\n grid-template: \"title secondary\" / 1fr max-content;\n }\n\n :where(.lb-inbox-notification-details) {\n opacity: 1;\n transition-property: opacity;\n }\n\n :where(.lb-inbox-notification-actions) {\n opacity: 0;\n transition-property: opacity;\n }\n\n &:where(:is(:hover, :focus-within, .lb-inbox-notification\\:action-open)) {\n :where(.lb-inbox-notification-details) {\n opacity: 0;\n }\n\n :where(.lb-inbox-notification-actions) {\n opacity: 1;\n }\n }\n\n :where(.lb-inbox-notification-details),\n :where(.lb-inbox-notification-actions) {\n grid-area: secondary;\n justify-self: end;\n }\n }\n }\n}\n\n.lb-inbox-notification-aside {\n flex: none;\n inline-size: var(--lb-inbox-notification-aside-size);\n}\n\n.lb-inbox-notification-icon {\n display: flex;\n justify-content: center;\n place-items: center;\n aspect-ratio: 1;\n border-radius: 50%;\n background: var(--lb-foreground-subtle);\n\n .lb-inbox-notification:where([data-missing]) :where(&) {\n background: var(--lb-accent-subtle);\n color: var(--lb-accent);\n }\n}\n\n.lb-inbox-notification-content {\n flex: 1;\n}\n\n.lb-inbox-notification-content,\n.lb-inbox-notification-body {\n min-inline-size: 0;\n max-inline-size: 100%;\n}\n\n.lb-inbox-notification-header {\n display: flex;\n gap: calc(0.75 * var(--lb-spacing));\n align-items: center;\n margin-block-start: calc(0.25 * var(--lb-spacing));\n margin-block-end: calc(0.5 * var(--lb-spacing));\n}\n\n.lb-inbox-notification-title {\n @include capitalize;\n\n min-block-size: $lb-button-size;\n\n :where(strong, .lb-list, .lb-name) {\n font-weight: 500;\n }\n}\n\n.lb-inbox-notification-details {\n flex: none;\n align-self: start;\n min-inline-size: 0;\n block-size: $lb-button-size;\n margin-inline-start: auto;\n}\n\n.lb-inbox-notification-details-labels {\n display: flex;\n align-items: baseline;\n min-inline-size: 0;\n\n &::before {\n content: \"\\FEFF\";\n }\n}\n\n.lb-inbox-notification-actions {\n display: flex;\n grid-area: actions;\n gap: calc(0.125 * var(--lb-spacing));\n align-self: start;\n}\n\n.lb-inbox-notification-comments {\n display: flex;\n flex-direction: column;\n gap: var(--lb-spacing);\n}\n\n.lb-inbox-notification-comment {\n padding: 0;\n background: transparent;\n\n :where(.lb-comment-header) {\n block-size: auto;\n color: var(--lb-foreground-tertiary);\n font-size: 0.875rem;\n }\n\n :where(.lb-comment-reaction),\n :where(.lb-comment-attachment) {\n pointer-events: none;\n }\n}\n\n.lb-inbox-notification-date {\n color: var(--lb-foreground-tertiary);\n font-size: 0.875em;\n}\n\n.lb-inbox-notification-unread-indicator {\n align-self: center;\n inline-size: 10px;\n block-size: 10px;\n margin-inline-start: calc(0.5 * var(--lb-spacing));\n border-radius: 50%;\n background: var(--lb-accent);\n}\n\n/*************************************\n * History Version Summary *\n *************************************/\n\n.lb-history-version-summary {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: calc(0.25 * var(--lb-spacing));\n justify-content: center;\n inline-size: 100%;\n min-inline-size: 0;\n padding: var(--lb-spacing);\n background: var(--lb-dynamic-background);\n transition-property: background;\n\n &:where(\n :hover,\n :focus-visible,\n :focus-within,\n [data-selected]:not([data-selected=\"false\"])\n ) {\n --lb-dynamic-background: var(--lb-background-foreground-faint);\n }\n}\n\n.lb-history-version-summary-date,\n.lb-history-version-summary-authors {\n @include truncate;\n @include capitalize;\n\n min-inline-size: 0;\n max-inline-size: 100%;\n}\n\n.lb-history-version-summary-date {\n color: var(--lb-foreground-secondary);\n font-weight: 500;\n}\n\n.lb-history-version-summary-authors {\n color: var(--lb-foreground-tertiary);\n}\n\n/*************************************\n * History Version Previe *\n *************************************/\n\n.lb-history-version-preview {\n position: relative;\n display: flex;\n flex-direction: column;\n background: var(--lb-dynamic-background);\n\n /* overflow-block: auto; doesn't work as expected */\n /* stylelint-disable-next-line plugin/use-logical-properties-and-values */\n overflow-y: auto;\n}\n\n.lb-history-version-preview-content {\n flex: 1 0 auto;\n padding: var(--lb-spacing);\n}\n\n.lb-history-version-preview-footer {\n position: sticky;\n inset-block-end: 0;\n display: flex;\n flex: none;\n gap: var(--lb-spacing);\n align-items: center;\n margin-block-start: auto;\n padding: var(--lb-spacing);\n border-block-start: 1px solid var(--lb-foreground-subtle);\n background: var(--lb-dynamic-background);\n}\n\n.lb-history-version-preview-authors {\n @include truncate;\n\n flex: 1 1 auto;\n min-inline-size: 0;\n color: var(--lb-foreground-tertiary);\n}\n\n.lb-history-version-preview-actions {\n display: flex;\n flex: none;\n gap: calc(0.35 * var(--lb-spacing));\n align-items: center;\n margin-inline-start: auto;\n}\n\n/*************************************\n * Lists *\n *************************************/\n\n.lb-inbox-notification-list,\n.lb-history-version-summary-list {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.lb-inbox-notification-list-item,\n.lb-history-version-summary-list-item {\n &:where(:not(:last-of-type)) {\n border-block-end: 1px solid var(--lb-foreground-subtle);\n }\n}\n\n/*************************************\n * Inline code *\n *************************************/\n\n:is(.lb-root) {\n :where(code:not(pre > code)) {\n padding: 0.2em 0.4em;\n border-radius: calc(0.75 * var(--lb-radius));\n background: var(--lb-foreground-subtle);\n box-decoration-break: clone;\n font-size: 85%;\n line-height: 1;\n }\n\n /**\n * Merge adjacent inline code elements\n */\n :where(span:has(code) + span code) {\n padding-inline-start: 0;\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n\n :where(span:has(code):has(+ span code) code) {\n padding-inline-end: 0;\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n}\n\n/* 0,0,0 specificity to inherit any styles applied to `code` elements */\n:where(:is(.lb-root) code) {\n font-family: ui-monospace, Menlo, Monaco, \"Roboto Mono\", \"Cascadia Code\",\n \"Source Code Pro\", Consolas, \"DejaVu Sans Mono\", monospace;\n}\n\n/*************************************\n * Elevation *\n *************************************/\n\n.lb-elevation {\n --lb-dynamic-background: var(--lb-background);\n\n position: relative;\n overflow: hidden;\n border-radius: var(--lb-radius);\n background: var(--lb-dynamic-background);\n box-shadow: var(--lb-elevation-shadow);\n\n &::after {\n content: \"\";\n position: absolute;\n inset: 0;\n z-index: 1;\n border-radius: inherit;\n box-shadow: var(--lb-inset-shadow);\n pointer-events: none;\n }\n\n &:where(.lb-elevation-moderate) {\n box-shadow: var(--lb-elevation-shadow-moderate);\n }\n}\n\n/*************************************\n * Elevation lists *\n *************************************/\n\n.lb-dropdown,\n.lb-composer-suggestions {\n padding: $lb-elevation-padding;\n\n /* overflow-block: auto; doesn't work as expected */\n /* stylelint-disable-next-line plugin/use-logical-properties-and-values */\n overflow-y: auto;\n\n &:where([data-hidden]) {\n opacity: 0;\n }\n}\n\n.lb-dropdown-item,\n.lb-composer-suggestions-list-item {\n display: flex;\n align-items: center;\n padding: calc(0.25 * var(--lb-spacing)) calc(0.5 * var(--lb-spacing));\n font-size: 0.875rem;\n}\n\n.lb-dropdown-item,\n.lb-composer-suggestions-list-item,\n.lb-emoji-picker-emoji {\n border-radius: calc(var(--lb-radius) - 0.75 * $lb-elevation-padding);\n color: var(--lb-foreground-secondary);\n outline: none;\n cursor: pointer;\n user-select: none;\n transition-property: background, color, opacity;\n}\n\n:is(\n .lb-dropdown-item,\n .lb-composer-suggestions-list-item,\n .lb-emoji-picker-emoji\n) {\n &:where(\n [data-highlighted]:not([data-highlighted=\"false\"]),\n [data-selected]:not([data-selected=\"false\"]),\n [data-active]:not([data-active=\"false\"])\n ) {\n background: var(--lb-foreground-subtle);\n transition-duration: calc(var(--lb-transition-duration) / 2);\n }\n\n &:where(:disabled, [data-disabled]:not([data-disabled=\"false\"])) {\n opacity: 0.5;\n cursor: not-allowed;\n }\n}\n\n/*************************************\n * Floating animations *\n *************************************/\n\n.lb-dropdown,\n.lb-composer-suggestions,\n.lb-composer-floating-toolbar,\n.lb-tooltip,\n.lb-emoji-picker {\n animation-duration: var(--lb-transition-duration);\n animation-timing-function: var(--lb-transition-easing);\n will-change: transform, opacity;\n}\n\n:is(\n .lb-dropdown,\n .lb-emoji-picker,\n .lb-tooltip:where([data-state=\"delayed-open\"]),\n .lb-composer-suggestions,\n .lb-composer-floating-toolbar\n) {\n &:where([data-side=\"top\"]) {\n animation-name: lb-animation-slide-up;\n }\n\n &:where([data-side=\"bottom\"]) {\n animation-name: lb-animation-slide-down;\n }\n}\n\n:is(\n .lb-dropdown,\n .lb-emoji-picker,\n .lb-tooltip,\n .lb-composer-suggestions,\n .lb-composer-floating-toolbar\n) {\n &:where([data-state=\"closed\"]) {\n animation-name: lb-animation-disappear;\n }\n}\n\n@media (prefers-reduced-motion) {\n .lb-dropdown:where(:not([data-state=\"closed\"])),\n .lb-emoji-picker:where(:not([data-state=\"closed\"])),\n .lb-tooltip:where([data-state=\"delayed-open\"]:not([data-state=\"closed\"])),\n .lb-composer-suggestions:where(:not([data-state=\"closed\"])) {\n animation-name: lb-animation-appear;\n }\n}\n\n/*************************************\n * Code block *\n *************************************/\n\n.lb-code-block {\n min-inline-size: 0;\n border: 1px solid var(--lb-foreground-subtle);\n border-radius: var(--lb-radius);\n\n :where(.lb-code-block-header) {\n display: flex;\n align-items: center;\n padding: calc(0.5 * var(--lb-spacing));\n }\n\n :where(.lb-code-block-title) {\n margin-inline-start: calc(0.5 * var(--lb-spacing));\n color: var(--lb-foreground-tertiary);\n font-weight: 600;\n font-size: 0.675em;\n text-transform: uppercase;\n }\n\n :where(.lb-code-block-header-actions) {\n margin-inline-start: auto;\n }\n\n :where(.lb-code-block-content) {\n min-inline-size: 0;\n margin: 0;\n padding: 0 var(--lb-spacing) calc(0.875 * var(--lb-spacing));\n font-size: 85%;\n line-height: 1;\n\n /* overflow-inline: auto; doesn't work as expected */\n /* stylelint-disable-next-line plugin/use-logical-properties-and-values */\n overflow-x: auto;\n }\n}\n\n/*************************************\n * Chat Composer *\n *************************************/\n\n.lb-ai-chat-composer {\n position: relative;\n inline-size: 100%;\n color: var(--lb-foreground);\n}\n\n.lb-ai-chat-composer-form:where(\n :has(.lb-ai-chat-composer-editor:not(:focus-visible))\n ) {\n :where(.lb-button[data-variant=\"primary\"]) {\n --lb-button-background: var(--lb-foreground-subtle);\n\n color: var(--lb-foreground-tertiary);\n\n &:where(:enabled:hover, :enabled:focus-visible) {\n --lb-button-background: var(--lb-accent);\n\n color: var(--lb-accent-foreground);\n }\n }\n}\n\n.lb-ai-chat-composer-editor {\n max-block-size: 15rem;\n padding: var(--lb-spacing) var(--lb-spacing) 0;\n color: var(--lb-foreground-secondary);\n outline: none;\n resize: none;\n\n /* overflow-block: auto; doesn't work as expected */\n /* stylelint-disable-next-line plugin/use-logical-properties-and-values */\n overflow-y: auto;\n\n &,\n * {\n line-height: var(--lb-line-height);\n }\n\n :where(p) {\n --lb-line-height-crop: calc(1lh - 1em) / -2;\n\n margin-block-start: 0.25em;\n margin-block-end: 0.25em;\n\n /* Cancel out the impact of line-height on margins/paddings */\n &:where(:first-of-type) {\n margin-block-start: calc(0.125em + var(--lb-line-height-crop));\n }\n\n /* Cancel out the impact of line-height on margins/paddings */\n &:where(:last-of-type) {\n margin-block-end: calc(0.125em + var(--lb-line-height-crop));\n }\n }\n\n &:where([data-disabled]:not([data-disabled=\"false\"])) {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n :where([data-placeholder]) {\n color: var(--lb-foreground-moderate);\n }\n}\n\n.lb-ai-chat-composer-footer {\n display: flex;\n gap: calc(0.75 * var(--lb-spacing));\n align-items: center;\n margin-block-start: calc(-0.125 * var(--lb-spacing));\n padding: var(--lb-spacing);\n}\n\n.lb-ai-chat-composer-actions,\n.lb-ai-chat-composer-editor-actions {\n display: flex;\n gap: calc(0.125 * var(--lb-spacing));\n align-items: center;\n}\n\n.lb-ai-chat-composer-editor-actions {\n margin-inline-end: auto;\n}\n\n/*************************************\n * Chat message *\n *************************************/\n\n.lb-ai-chat-message {\n display: flex;\n flex-direction: column;\n gap: var(--lb-spacing);\n color: var(--lb-foreground);\n}\n\n.lb-ai-chat-user-message {\n :where(.lb-ai-chat-message-content) {\n min-block-size: calc(1lh + var(--lb-spacing));\n padding: calc(0.5 * var(--lb-spacing)) var(--lb-spacing);\n\n /**\n * Exactly half the height (line-height + padding) of a one line bubble,\n * so that it doesn't change when the text wraps and the bubble becomes taller.\n */\n border-radius: calc((1lh + var(--lb-spacing)) / 2);\n background: var(--lb-background-foreground-faint);\n color: var(--lb-foreground);\n line-height: var(--lb-line-height);\n }\n}\n\n.lb-ai-chat-message-deleted {\n position: relative;\n align-items: center;\n inline-size: 100%;\n color: var(--lb-foreground-moderate);\n font-size: 0.875em;\n text-wrap: pretty;\n}\n\n.lb-ai-chat-message-error {\n display: flex;\n gap: calc(0.5 * var(--lb-spacing));\n align-items: flex-start;\n inline-size: 100%;\n color: var(--lb-destructive);\n font-size: 0.875em;\n line-height: var(--lb-line-height);\n text-wrap: pretty;\n word-break: break-word;\n\n :where(.lb-icon-container) {\n block-size: 1lh;\n color: var(--lb-destructive-secondary);\n }\n\n :where(code:not(pre > code)) {\n background: var(--lb-destructive-subtle);\n }\n}\n\n.lb-ai-chat-message-content {\n inline-size: 100%;\n white-space: break-spaces;\n\n &:where(:empty) {\n display: contents;\n }\n\n > :where(.lb-ai-chat-message-text) {\n margin-block: var(--lb-spacing);\n }\n\n > :where(.lb-ai-chat-message-tool-invocation) {\n margin-block: var(--lb-spacing);\n }\n\n > :where(:first-child) {\n margin-block-start: 0;\n }\n\n > :where(:last-child) {\n margin-block-end: 0;\n }\n}\n\n.lb-ai-chat-messages {\n display: flex;\n flex-direction: column;\n gap: var(--lb-spacing);\n inline-size: 100%;\n max-inline-size: min(\n calc(var(--lb-ai-chat-container-width) - var(--lb-spacing)),\n calc(100% - 3 * var(--lb-spacing))\n );\n margin-inline: auto;\n padding-block-start: calc(1.5 * var(--lb-spacing));\n padding-block-end: calc(3 * var(--lb-spacing));\n\n :where(.lb-ai-chat-user-message) {\n max-inline-size: 80%;\n margin-inline-start: auto;\n }\n}\n\n.lb-ai-chat-footer {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: calc(0.75 * var(--lb-spacing));\n inline-size: 100%;\n}\n\n.lb-ai-chat {\n --lb-ai-chat-container-width: 100%;\n\n display: flex;\n flex-direction: column;\n inline-size: 100%;\n block-size: 100%;\n background: var(--lb-background);\n isolation: isolate;\n\n /* overflow-block: auto; doesn't work as expected */\n /* stylelint-disable-next-line plugin/use-logical-properties-and-values */\n overflow-y: auto;\n\n :where(.lb-ai-chat-footer) {\n position: sticky;\n inset-block-end: 0;\n z-index: 1;\n margin-block-start: auto;\n }\n\n :where(.lb-ai-chat-composer) {\n margin-inline: auto;\n }\n}\n\n.lb-ai-chat:where(.lb-ai-chat\\:layout-compact) {\n :where(.lb-ai-chat-footer) {\n background: var(--lb-dynamic-background);\n\n &::after {\n content: \"\";\n position: absolute;\n inset: 0;\n border-block-start: 1px solid var(--lb-foreground-subtle);\n pointer-events: none;\n }\n }\n\n :where(.lb-ai-chat-composer) {\n max-inline-size: min(\n 100%,\n calc(var(--lb-ai-chat-container-width) + var(--lb-spacing))\n );\n }\n}\n\n.lb-ai-chat:where(.lb-ai-chat\\:layout-inset) {\n :where(.lb-ai-chat-footer) {\n padding: var(--lb-spacing);\n padding-block-start: 0;\n\n &::before {\n content: \"\";\n position: absolute;\n inset: 0;\n inset-block-start: calc(-3 * var(--lb-spacing));\n background: linear-gradient(\n to bottom,\n transparent 0%,\n var(--lb-background) calc(3.5 * var(--lb-spacing))\n );\n pointer-events: none;\n }\n }\n\n :where(.lb-ai-chat-composer) {\n max-inline-size: var(--lb-ai-chat-container-width);\n border-radius: calc(2 * var(--lb-radius));\n }\n}\n\n.lb-ai-chat-content {\n position: relative;\n flex: 1 0 auto;\n}\n\n.lb-ai-chat-footer-actions {\n position: absolute;\n inset-inline: 0;\n inset-block-start: calc(-1 * var(--lb-spacing));\n display: flex;\n justify-content: center;\n pointer-events: none;\n transform: translateY(-100%);\n}\n\n.lb-ai-chat-scroll-indicator {\n border-radius: $lb-radius-full;\n color: var(--lb-foreground-moderate);\n opacity: 0;\n pointer-events: none;\n transition-property: transform, opacity, background;\n transform: scale(0.8);\n transform-origin: bottom;\n\n &:where([data-visible]) {\n opacity: 1;\n pointer-events: all;\n transform: scale(1);\n }\n}\n\n.lb-ai-chat-scroll-indicator-button {\n @include button-base;\n\n padding: calc(0.375 * var(--lb-spacing));\n border-radius: $lb-radius-full;\n color: var(--lb-foreground-moderate);\n transition-property: opacity, color;\n\n &:where(:hover, :focus-visible) {\n color: var(--lb-foreground-secondary);\n }\n\n &::after {\n content: \"\";\n position: absolute;\n inset: 0;\n border-radius: inherit;\n pointer-events: none;\n transition-property: box-shadow;\n }\n\n &:where(:focus-visible)::after {\n box-shadow: inset var(--lb-accent) 0 0 0 2px;\n }\n}\n\n.lb-ai-chat-pending {\n user-select: none;\n animation: lb-animation-shimmer-small 5s linear infinite;\n}\n\n.lb-ai-chat-message-thinking,\n.lb-ai-chat-message-reasoning {\n inline-size: fit-content;\n max-inline-size: 100%;\n color: var(--lb-foreground-tertiary);\n\n &:where(.lb-ai-chat-pending),\n :where(.lb-ai-chat-pending) {\n color: var(--lb-foreground);\n }\n}\n\n.lb-ai-chat-message-reasoning {\n margin-block-end: calc(0.75 * var(--lb-spacing));\n\n :where(.lb-collapsible-trigger) {\n display: flex;\n gap: calc(0.25 * var(--lb-spacing));\n align-items: center;\n\n &:where(:focus-visible) {\n color: var(--lb-accent);\n\n :where(.lb-collapsible-chevron) {\n color: var(--lb-accent-moderate);\n }\n }\n }\n\n :where(.lb-collapsible-content) {\n display: flex;\n flex-direction: column;\n gap: calc(0.5 * var(--lb-spacing));\n line-height: var(--lb-line-height);\n\n :where(& > *:first-child) {\n margin-block-start: calc(0.5 * var(--lb-spacing));\n }\n }\n\n :where(.lb-prose) {\n color: var(--lb-foreground);\n font-size: 0.875em;\n opacity: 0.75;\n }\n}\n\n.lb-ai-tool {\n position: relative;\n border-radius: var(--lb-radius);\n box-shadow: inset 0 0 0 1px var(--lb-foreground-subtle);\n\n &::after {\n content: \"\";\n position: absolute;\n inset: 0;\n border-radius: inherit;\n pointer-events: none;\n transition-property: box-shadow;\n }\n\n &:where(:has(.lb-ai-tool-header:focus-visible)) {\n z-index: 1;\n\n &::after {\n box-shadow:\n var(--lb-dynamic-background) 0 0 0 2px,\n var(--lb-accent) 0 0 0 4px;\n }\n }\n}\n\n.lb-ai-tool-header {\n display: flex;\n gap: calc(0.25 * var(--lb-spacing));\n align-items: center;\n inline-size: 100%;\n block-size: calc($lb-button-size + var(--lb-spacing));\n padding-inline: calc(0.5 * var(--lb-spacing));\n}\n\n.lb-ai-tool-header-icon-container,\n.lb-ai-tool-icon {\n display: flex;\n flex: none;\n justify-content: center;\n align-items: center;\n inline-size: $lb-button-size;\n block-size: $lb-button-size;\n}\n\n.lb-ai-tool-header-icon-container {\n color: var(--lb-foreground-moderate);\n\n &:where(:has(.lb-ai-tool-icon)) {\n margin-inline-end: calc(0.25 * var(--lb-spacing));\n }\n}\n\n.lb-ai-tool-icon {\n border-radius: calc(0.75 * var(--lb-radius));\n background: var(--lb-foreground-subtle);\n font-size: 0.875em;\n}\n\n.lb-ai-tool-header-title {\n @include truncate;\n\n color: var(--lb-foreground-secondary);\n font-size: 0.9375em;\n\n &:where(:first-child) {\n margin-inline-start: calc(0.25 * var(--lb-spacing));\n }\n}\n\n.lb-ai-tool-header-status {\n flex: none;\n margin-inline-start: auto;\n margin-inline-end: calc(0.25 * var(--lb-spacing));\n color: var(--lb-foreground-moderate);\n}\n\n.lb-ai-tool:where([data-result=\"error\"]) {\n box-shadow: inset 0 0 0 1px var(--lb-destructive-moderate);\n\n &:where(:has(.lb-ai-tool-header:focus-visible)) {\n &::after {\n box-shadow:\n var(--lb-dynamic-background) 0 0 0 2px,\n var(--lb-destructive) 0 0 0 4px;\n }\n }\n\n :where(.lb-ai-tool-header-status) {\n color: var(--lb-destructive);\n }\n}\n\n.lb-ai-tool-content:where(:not(:empty)) {\n padding: 0 calc(0.75 * var(--lb-spacing)) calc(0.75 * var(--lb-spacing));\n}\n\n.lb-ai-tool-inspector {\n display: flex;\n flex-direction: column;\n gap: calc(0.75 * var(--lb-spacing));\n}\n\n.lb-ai-tool-confirmation-footer {\n display: flex;\n align-items: center;\n margin-block-start: calc(0.75 * var(--lb-spacing));\n}\n\n.lb-ai-tool-confirmation-actions {\n display: flex;\n gap: calc(0.75 * var(--lb-spacing));\n justify-content: flex-end;\n align-items: center;\n margin-inline-start: auto;\n}\n\n/*************************************\n * Animations *\n *************************************/\n\n@keyframes lb-animation-slide-down {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes lb-animation-slide-up {\n from {\n opacity: 0;\n transform: translateY(4px);\n }\n\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes lb-animation-appear {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n@keyframes lb-animation-disappear {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n }\n}\n\n@keyframes lb-animation-shimmer {\n from,\n to {\n mask-image: linear-gradient(\n 90deg,\n rgb(0 0 0 / 50%),\n #000,\n #000,\n rgb(0 0 0 / 50%)\n );\n mask-size: 400% 100%;\n }\n\n from {\n mask-position: 200% 0;\n }\n\n to {\n mask-position: -200% 0;\n }\n}\n\n@keyframes lb-animation-shimmer-small {\n from,\n to {\n mask-image: linear-gradient(\n 90deg,\n #000 0%,\n rgb(0 0 0 / 50%) 18%,\n rgb(0 0 0 / 50%) 82%,\n #000 100%\n );\n mask-size: 300% 100%;\n }\n\n from {\n mask-position: 200% 0;\n }\n\n to {\n mask-position: -100% 0;\n }\n}\n\n@keyframes lb-animation-spin {\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n}\n","/* Because of `all: unset`, we have to re-define some of these values. */\n@mixin button-base {\n all: unset;\n position: relative;\n box-sizing: inherit;\n outline: none;\n cursor: pointer;\n user-select: none;\n transition-timing-function: var(--lb-transition-easing);\n transition-duration: var(--lb-transition-duration);\n -webkit-tap-highlight-color: transparent;\n}\n\n@mixin button {\n @include button-base;\n\n transition-property: background, color, opacity;\n\n &::after {\n content: \"\";\n position: absolute;\n inset: 0;\n border-radius: inherit;\n pointer-events: none;\n transition-property: box-shadow;\n }\n\n &:where(:focus-visible) {\n z-index: 1;\n\n &::after {\n box-shadow:\n var(--lb-dynamic-background) 0 0 0 2px,\n var(--lb-accent) 0 0 0 4px;\n }\n }\n}\n\n@mixin truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n@mixin capitalize {\n &::first-letter {\n text-transform: capitalize;\n }\n}\n\n@mixin invisible-selection {\n &::selection,\n *::selection {\n background: transparent;\n }\n}\n\n@mixin invisible-scrollbar {\n & {\n -ms-overflow-style: none;\n scrollbar-width: none;\n }\n\n &::-webkit-scrollbar {\n display: none;\n }\n}\n\n@mixin firefox-only {\n @supports (-moz-appearance: none) {\n @content;\n }\n}\n\n@mixin not-firefox {\n @supports not (-moz-appearance: none) {\n @content;\n }\n}\n\n@mixin safari-only {\n @supports (background: -webkit-named-image(i)) {\n @content;\n }\n}\n\n@mixin not-safari {\n @supports not (background: -webkit-named-image(i)) {\n @content;\n }\n}\n"]}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
|
|
5
|
-
function AiToolDebugger(props) {
|
|
6
|
-
const color = props.status === "executed" ? "darkgreen" : props.status === "executing" ? "orange" : "gray";
|
|
7
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", {
|
|
8
|
-
className: "lb-ai-chat-message-tool",
|
|
9
|
-
style: {
|
|
10
|
-
border: `2px solid ${color}`,
|
|
11
|
-
padding: "1rem"
|
|
12
|
-
},
|
|
13
|
-
children: [
|
|
14
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", {
|
|
15
|
-
children: [
|
|
16
|
-
/* @__PURE__ */ jsxRuntime.jsx("b", {
|
|
17
|
-
children: "status:"
|
|
18
|
-
}),
|
|
19
|
-
" ",
|
|
20
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", {
|
|
21
|
-
style: { color },
|
|
22
|
-
children: props.status
|
|
23
|
-
})
|
|
24
|
-
]
|
|
25
|
-
}),
|
|
26
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", {
|
|
27
|
-
children: [
|
|
28
|
-
/* @__PURE__ */ jsxRuntime.jsx("b", {
|
|
29
|
-
children: "name:"
|
|
30
|
-
}),
|
|
31
|
-
" ",
|
|
32
|
-
props.toolName
|
|
33
|
-
]
|
|
34
|
-
}),
|
|
35
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", {
|
|
36
|
-
children: props.partialArgs ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
37
|
-
children: [
|
|
38
|
-
/* @__PURE__ */ jsxRuntime.jsx("b", {
|
|
39
|
-
children: "partialArgs:"
|
|
40
|
-
}),
|
|
41
|
-
" ",
|
|
42
|
-
/* @__PURE__ */ jsxRuntime.jsx("code", {
|
|
43
|
-
children: JSON.stringify(props.partialArgs)
|
|
44
|
-
})
|
|
45
|
-
]
|
|
46
|
-
}) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
47
|
-
children: [
|
|
48
|
-
/* @__PURE__ */ jsxRuntime.jsx("b", {
|
|
49
|
-
children: "args:"
|
|
50
|
-
}),
|
|
51
|
-
" ",
|
|
52
|
-
/* @__PURE__ */ jsxRuntime.jsx("code", {
|
|
53
|
-
children: JSON.stringify(props.args)
|
|
54
|
-
})
|
|
55
|
-
]
|
|
56
|
-
})
|
|
57
|
-
}),
|
|
58
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", {
|
|
59
|
-
children: [
|
|
60
|
-
/* @__PURE__ */ jsxRuntime.jsx("b", {
|
|
61
|
-
children: "result:"
|
|
62
|
-
}),
|
|
63
|
-
" ",
|
|
64
|
-
props.result ? /* @__PURE__ */ jsxRuntime.jsx("code", {
|
|
65
|
-
children: JSON.stringify(props.result)
|
|
66
|
-
}) : "\u2014"
|
|
67
|
-
]
|
|
68
|
-
})
|
|
69
|
-
]
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
exports.AiToolDebugger = AiToolDebugger;
|
|
74
|
-
//# sourceMappingURL=AiToolDebugger.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AiToolDebugger.cjs","sources":["../../src/components/AiToolDebugger.tsx"],"sourcesContent":["import type { AiToolDefinitionRenderProps } from \"@liveblocks/core\";\n\n/**\n * @experimental\n * Helper to debug tool invocations.\n *\n * Simply drop this into your tool definition's `render` property to visually\n * see what's going on with your tool calls.\n */\nexport function AiToolDebugger(props: AiToolDefinitionRenderProps) {\n const color =\n props.status === \"executed\"\n ? \"darkgreen\"\n : props.status === \"executing\"\n ? \"orange\"\n : \"gray\";\n return (\n <div\n className=\"lb-ai-chat-message-tool\"\n style={{\n border: `2px solid ${color}`,\n padding: \"1rem\",\n }}\n >\n <div>\n <b>status:</b> <span style={{ color }}>{props.status}</span>\n </div>\n <div>\n <b>name:</b> {props.toolName}\n </div>\n <div>\n {props.partialArgs ? (\n <>\n <b>partialArgs:</b> <code>{JSON.stringify(props.partialArgs)}</code>\n </>\n ) : (\n <>\n <b>args:</b> <code>{JSON.stringify(props.args)}</code>\n </>\n )}\n </div>\n <div>\n <b>result:</b>{\" \"}\n {props.result ? <code>{JSON.stringify(props.result)}</code> : \"—\"}\n </div>\n </div>\n );\n}\n"],"names":["jsxs","jsx","Fragment"],"mappings":";;;;AASO,SAAS,eAAe,KAAoC,EAAA;AACjE,EAAM,MAAA,KAAA,GACJ,MAAM,MAAW,KAAA,UAAA,GACb,cACA,KAAM,CAAA,MAAA,KAAW,cACf,QACA,GAAA,MAAA,CAAA;AACR,EAAA,uBACGA,eAAA,CAAA,KAAA,EAAA;AAAA,IACC,SAAU,EAAA,yBAAA;AAAA,IACV,KAAO,EAAA;AAAA,MACL,QAAQ,CAAa,UAAA,EAAA,KAAA,CAAA,CAAA;AAAA,MACrB,OAAS,EAAA,MAAA;AAAA,KACX;AAAA,IAEA,QAAA,EAAA;AAAA,sBAACA,eAAA,CAAA,KAAA,EAAA;AAAA,QACC,QAAA,EAAA;AAAA,0BAACC,cAAA,CAAA,GAAA,EAAA;AAAA,YAAE,QAAA,EAAA,SAAA;AAAA,WAAO,CAAA;AAAA,UAAI,GAAA;AAAA,0BAAEA,cAAA,CAAA,MAAA,EAAA;AAAA,YAAK,KAAA,EAAO,EAAE,KAAM,EAAA;AAAA,YAAI,QAAM,EAAA,KAAA,CAAA,MAAA;AAAA,WAAO,CAAA;AAAA,SAAA;AAAA,OACvD,CAAA;AAAA,sBACCD,eAAA,CAAA,KAAA,EAAA;AAAA,QACC,QAAA,EAAA;AAAA,0BAACC,cAAA,CAAA,GAAA,EAAA;AAAA,YAAE,QAAA,EAAA,OAAA;AAAA,WAAK,CAAA;AAAA,UAAI,GAAA;AAAA,UAAE,KAAM,CAAA,QAAA;AAAA,SAAA;AAAA,OACtB,CAAA;AAAA,sBACCA,cAAA,CAAA,KAAA,EAAA;AAAA,QACE,gBAAM,WACL,mBAAAD,eAAA,CAAAE,mBAAA,EAAA;AAAA,UACE,QAAA,EAAA;AAAA,4BAACD,cAAA,CAAA,GAAA,EAAA;AAAA,cAAE,QAAA,EAAA,cAAA;AAAA,aAAY,CAAA;AAAA,YAAI,GAAA;AAAA,4BAAEA,cAAA,CAAA,MAAA,EAAA;AAAA,cAAM,QAAA,EAAA,IAAA,CAAK,SAAU,CAAA,KAAA,CAAM,WAAW,CAAA;AAAA,aAAE,CAAA;AAAA,WAAA;AAAA,SAC/D,CAEA,mBAAAD,eAAA,CAAAE,mBAAA,EAAA;AAAA,UACE,QAAA,EAAA;AAAA,4BAACD,cAAA,CAAA,GAAA,EAAA;AAAA,cAAE,QAAA,EAAA,OAAA;AAAA,aAAK,CAAA;AAAA,YAAI,GAAA;AAAA,4BAAEA,cAAA,CAAA,MAAA,EAAA;AAAA,cAAM,QAAA,EAAA,IAAA,CAAK,SAAU,CAAA,KAAA,CAAM,IAAI,CAAA;AAAA,aAAE,CAAA;AAAA,WAAA;AAAA,SACjD,CAAA;AAAA,OAEJ,CAAA;AAAA,sBACCD,eAAA,CAAA,KAAA,EAAA;AAAA,QACC,QAAA,EAAA;AAAA,0BAACC,cAAA,CAAA,GAAA,EAAA;AAAA,YAAE,QAAA,EAAA,SAAA;AAAA,WAAO,CAAA;AAAA,UAAK,GAAA;AAAA,UACd,KAAA,CAAM,yBAAUA,cAAA,CAAA,MAAA,EAAA;AAAA,YAAM,QAAA,EAAA,IAAA,CAAK,SAAU,CAAA,KAAA,CAAM,MAAM,CAAA;AAAA,WAAE,CAAU,GAAA,QAAA;AAAA,SAAA;AAAA,OAChE,CAAA;AAAA,KAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
|
|
3
|
-
function AiToolDebugger(props) {
|
|
4
|
-
const color = props.status === "executed" ? "darkgreen" : props.status === "executing" ? "orange" : "gray";
|
|
5
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
6
|
-
className: "lb-ai-chat-message-tool",
|
|
7
|
-
style: {
|
|
8
|
-
border: `2px solid ${color}`,
|
|
9
|
-
padding: "1rem"
|
|
10
|
-
},
|
|
11
|
-
children: [
|
|
12
|
-
/* @__PURE__ */ jsxs("div", {
|
|
13
|
-
children: [
|
|
14
|
-
/* @__PURE__ */ jsx("b", {
|
|
15
|
-
children: "status:"
|
|
16
|
-
}),
|
|
17
|
-
" ",
|
|
18
|
-
/* @__PURE__ */ jsx("span", {
|
|
19
|
-
style: { color },
|
|
20
|
-
children: props.status
|
|
21
|
-
})
|
|
22
|
-
]
|
|
23
|
-
}),
|
|
24
|
-
/* @__PURE__ */ jsxs("div", {
|
|
25
|
-
children: [
|
|
26
|
-
/* @__PURE__ */ jsx("b", {
|
|
27
|
-
children: "name:"
|
|
28
|
-
}),
|
|
29
|
-
" ",
|
|
30
|
-
props.toolName
|
|
31
|
-
]
|
|
32
|
-
}),
|
|
33
|
-
/* @__PURE__ */ jsx("div", {
|
|
34
|
-
children: props.partialArgs ? /* @__PURE__ */ jsxs(Fragment, {
|
|
35
|
-
children: [
|
|
36
|
-
/* @__PURE__ */ jsx("b", {
|
|
37
|
-
children: "partialArgs:"
|
|
38
|
-
}),
|
|
39
|
-
" ",
|
|
40
|
-
/* @__PURE__ */ jsx("code", {
|
|
41
|
-
children: JSON.stringify(props.partialArgs)
|
|
42
|
-
})
|
|
43
|
-
]
|
|
44
|
-
}) : /* @__PURE__ */ jsxs(Fragment, {
|
|
45
|
-
children: [
|
|
46
|
-
/* @__PURE__ */ jsx("b", {
|
|
47
|
-
children: "args:"
|
|
48
|
-
}),
|
|
49
|
-
" ",
|
|
50
|
-
/* @__PURE__ */ jsx("code", {
|
|
51
|
-
children: JSON.stringify(props.args)
|
|
52
|
-
})
|
|
53
|
-
]
|
|
54
|
-
})
|
|
55
|
-
}),
|
|
56
|
-
/* @__PURE__ */ jsxs("div", {
|
|
57
|
-
children: [
|
|
58
|
-
/* @__PURE__ */ jsx("b", {
|
|
59
|
-
children: "result:"
|
|
60
|
-
}),
|
|
61
|
-
" ",
|
|
62
|
-
props.result ? /* @__PURE__ */ jsx("code", {
|
|
63
|
-
children: JSON.stringify(props.result)
|
|
64
|
-
}) : "\u2014"
|
|
65
|
-
]
|
|
66
|
-
})
|
|
67
|
-
]
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
export { AiToolDebugger };
|
|
72
|
-
//# sourceMappingURL=AiToolDebugger.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AiToolDebugger.js","sources":["../../src/components/AiToolDebugger.tsx"],"sourcesContent":["import type { AiToolDefinitionRenderProps } from \"@liveblocks/core\";\n\n/**\n * @experimental\n * Helper to debug tool invocations.\n *\n * Simply drop this into your tool definition's `render` property to visually\n * see what's going on with your tool calls.\n */\nexport function AiToolDebugger(props: AiToolDefinitionRenderProps) {\n const color =\n props.status === \"executed\"\n ? \"darkgreen\"\n : props.status === \"executing\"\n ? \"orange\"\n : \"gray\";\n return (\n <div\n className=\"lb-ai-chat-message-tool\"\n style={{\n border: `2px solid ${color}`,\n padding: \"1rem\",\n }}\n >\n <div>\n <b>status:</b> <span style={{ color }}>{props.status}</span>\n </div>\n <div>\n <b>name:</b> {props.toolName}\n </div>\n <div>\n {props.partialArgs ? (\n <>\n <b>partialArgs:</b> <code>{JSON.stringify(props.partialArgs)}</code>\n </>\n ) : (\n <>\n <b>args:</b> <code>{JSON.stringify(props.args)}</code>\n </>\n )}\n </div>\n <div>\n <b>result:</b>{\" \"}\n {props.result ? <code>{JSON.stringify(props.result)}</code> : \"—\"}\n </div>\n </div>\n );\n}\n"],"names":[],"mappings":";;AASO,SAAS,eAAe,KAAoC,EAAA;AACjE,EAAM,MAAA,KAAA,GACJ,MAAM,MAAW,KAAA,UAAA,GACb,cACA,KAAM,CAAA,MAAA,KAAW,cACf,QACA,GAAA,MAAA,CAAA;AACR,EAAA,uBACG,IAAA,CAAA,KAAA,EAAA;AAAA,IACC,SAAU,EAAA,yBAAA;AAAA,IACV,KAAO,EAAA;AAAA,MACL,QAAQ,CAAa,UAAA,EAAA,KAAA,CAAA,CAAA;AAAA,MACrB,OAAS,EAAA,MAAA;AAAA,KACX;AAAA,IAEA,QAAA,EAAA;AAAA,sBAAC,IAAA,CAAA,KAAA,EAAA;AAAA,QACC,QAAA,EAAA;AAAA,0BAAC,GAAA,CAAA,GAAA,EAAA;AAAA,YAAE,QAAA,EAAA,SAAA;AAAA,WAAO,CAAA;AAAA,UAAI,GAAA;AAAA,0BAAE,GAAA,CAAA,MAAA,EAAA;AAAA,YAAK,KAAA,EAAO,EAAE,KAAM,EAAA;AAAA,YAAI,QAAM,EAAA,KAAA,CAAA,MAAA;AAAA,WAAO,CAAA;AAAA,SAAA;AAAA,OACvD,CAAA;AAAA,sBACC,IAAA,CAAA,KAAA,EAAA;AAAA,QACC,QAAA,EAAA;AAAA,0BAAC,GAAA,CAAA,GAAA,EAAA;AAAA,YAAE,QAAA,EAAA,OAAA;AAAA,WAAK,CAAA;AAAA,UAAI,GAAA;AAAA,UAAE,KAAM,CAAA,QAAA;AAAA,SAAA;AAAA,OACtB,CAAA;AAAA,sBACC,GAAA,CAAA,KAAA,EAAA;AAAA,QACE,gBAAM,WACL,mBAAA,IAAA,CAAA,QAAA,EAAA;AAAA,UACE,QAAA,EAAA;AAAA,4BAAC,GAAA,CAAA,GAAA,EAAA;AAAA,cAAE,QAAA,EAAA,cAAA;AAAA,aAAY,CAAA;AAAA,YAAI,GAAA;AAAA,4BAAE,GAAA,CAAA,MAAA,EAAA;AAAA,cAAM,QAAA,EAAA,IAAA,CAAK,SAAU,CAAA,KAAA,CAAM,WAAW,CAAA;AAAA,aAAE,CAAA;AAAA,WAAA;AAAA,SAC/D,CAEA,mBAAA,IAAA,CAAA,QAAA,EAAA;AAAA,UACE,QAAA,EAAA;AAAA,4BAAC,GAAA,CAAA,GAAA,EAAA;AAAA,cAAE,QAAA,EAAA,OAAA;AAAA,aAAK,CAAA;AAAA,YAAI,GAAA;AAAA,4BAAE,GAAA,CAAA,MAAA,EAAA;AAAA,cAAM,QAAA,EAAA,IAAA,CAAK,SAAU,CAAA,KAAA,CAAM,IAAI,CAAA;AAAA,aAAE,CAAA;AAAA,WAAA;AAAA,SACjD,CAAA;AAAA,OAEJ,CAAA;AAAA,sBACC,IAAA,CAAA,KAAA,EAAA;AAAA,QACC,QAAA,EAAA;AAAA,0BAAC,GAAA,CAAA,GAAA,EAAA;AAAA,YAAE,QAAA,EAAA,SAAA;AAAA,WAAO,CAAA;AAAA,UAAK,GAAA;AAAA,UACd,KAAA,CAAM,yBAAU,GAAA,CAAA,MAAA,EAAA;AAAA,YAAM,QAAA,EAAA,IAAA,CAAK,SAAU,CAAA,KAAA,CAAM,MAAM,CAAA;AAAA,WAAE,CAAU,GAAA,QAAA;AAAA,SAAA;AAAA,OAChE,CAAA;AAAA,KAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../src/primitives/internal/Collapsible/index.tsx"],"sourcesContent":["import { Slot } from \"@radix-ui/react-slot\";\nimport {\n createContext,\n forwardRef,\n useContext,\n useEffect,\n useId,\n useImperativeHandle,\n useRef,\n} from \"react\";\n\nimport type { ContentProps, RootProps, TriggerProps } from \"./types\";\n\n/* -------------------------------------------------------------------------------------------------\n * Root\n * -----------------------------------------------------------------------------------------------*/\n\nconst RootContext = createContext<{\n open: boolean;\n onOpenChange(open: boolean): void;\n\n disabled: boolean;\n contentId: string;\n} | null>(null);\n\nexport const Root = forwardRef<HTMLDivElement, RootProps>(\n (\n { open, onOpenChange, disabled = false, asChild, ...props },\n forwardedRef\n ) => {\n const Component = asChild ? Slot : \"div\";\n const id = useId();\n\n return (\n <RootContext.Provider\n value={{ open, onOpenChange, disabled, contentId: id }}\n >\n <Component\n {...props}\n ref={forwardedRef}\n data-state={open ? \"open\" : \"closed\"}\n data-disabled={disabled ? \"\" : undefined}\n />\n </RootContext.Provider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * Trigger\n * -----------------------------------------------------------------------------------------------*/\n\nexport const Trigger = forwardRef<HTMLButtonElement, TriggerProps>(\n ({ onClick, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"button\";\n const context = useContext(RootContext);\n\n if (!context) {\n throw new Error(\"Collapsible.Trigger must be a descendant of Root\");\n }\n\n const { open, disabled, contentId, onOpenChange } = context;\n\n return (\n <Component\n {...props}\n ref={forwardedRef}\n type=\"button\"\n aria-controls={contentId}\n aria-expanded={open || false}\n data-state={open ? \"open\" : \"closed\"}\n data-disabled={disabled ? \"\" : undefined}\n disabled={disabled}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n if (disabled) return;\n onOpenChange(!open);\n }}\n />\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * Content\n * -----------------------------------------------------------------------------------------------*/\n\nexport const Content = forwardRef<HTMLDivElement, ContentProps>(\n ({ asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"div\";\n const rootContext = useContext(RootContext);\n const divRef = useRef<HTMLDivElement>(null);\n\n if (!rootContext) throw new Error(\"Missing RootContext Provider\");\n\n const { open, onOpenChange, disabled, contentId } = rootContext;\n\n useEffect(() => {\n const element = divRef.current;\n if (element === null) return;\n\n const isHiddenUntilFoundSupported = \"onbeforematch\" in document.body;\n if (!isHiddenUntilFoundSupported) return;\n\n function handleBeforeMatch() {\n onOpenChange(true);\n }\n\n // https://developer.chrome.com/articles/hidden-until-found/\n element.addEventListener(\"beforematch\", handleBeforeMatch);\n return () => {\n element.removeEventListener(\"beforematch\", handleBeforeMatch);\n };\n }, [onOpenChange]);\n\n // Passing `string` to `hidden` in JSX is not currently supported: https://github.com/facebook/react/issues/24740\n useEffect(() => {\n const element = divRef.current;\n if (element === null) return;\n\n if (open) return;\n\n const isHiddenUntilFoundSupported = \"onbeforematch\" in document.body;\n if (!isHiddenUntilFoundSupported) return;\n\n element.setAttribute(\"hidden\", \"until-found\");\n return () => {\n element.removeAttribute(\"hidden\");\n };\n }, [open]);\n\n useImperativeHandle<\n HTMLDivElement | null,\n HTMLDivElement | null\n >(forwardedRef, () => {\n return divRef.current;\n }, []);\n\n return (\n <Component\n {...props}\n ref={divRef}\n data-state={open ? \"open\" : \"closed\"}\n data-disabled={disabled ? \"\" : undefined}\n id={contentId}\n hidden={!open}\n />\n );\n }\n);\n"],"names":["createContext","forwardRef","Slot","useId","jsx","useContext","useRef","useEffect","useImperativeHandle"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/primitives/internal/Collapsible/index.tsx"],"sourcesContent":["import { Slot } from \"@radix-ui/react-slot\";\nimport {\n createContext,\n forwardRef,\n useContext,\n useEffect,\n useId,\n useImperativeHandle,\n useRef,\n} from \"react\";\n\nimport type { ContentProps, RootProps, TriggerProps } from \"./types\";\n\n/* -------------------------------------------------------------------------------------------------\n * Root\n * -----------------------------------------------------------------------------------------------*/\n\nconst RootContext = createContext<{\n open: boolean;\n onOpenChange(open: boolean): void;\n\n disabled: boolean;\n contentId: string;\n} | null>(null);\n\nexport const Root = forwardRef<HTMLDivElement, RootProps>(\n (\n { open, onOpenChange, disabled = false, asChild, ...props },\n forwardedRef\n ) => {\n const Component = asChild ? Slot : \"div\";\n const id = useId();\n\n return (\n <RootContext.Provider\n value={{ open, onOpenChange, disabled, contentId: id }}\n >\n <Component\n {...props}\n ref={forwardedRef}\n data-state={open ? \"open\" : \"closed\"}\n data-disabled={disabled ? \"\" : undefined}\n />\n </RootContext.Provider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * Trigger\n * -----------------------------------------------------------------------------------------------*/\n\nexport const Trigger = forwardRef<HTMLButtonElement, TriggerProps>(\n ({ onClick, asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"button\";\n const context = useContext(RootContext);\n\n if (!context) {\n throw new Error(\"Collapsible.Trigger must be a descendant of Root\");\n }\n\n const { open, disabled, contentId, onOpenChange } = context;\n\n return (\n <Component\n {...props}\n ref={forwardedRef}\n type=\"button\"\n aria-controls={contentId}\n aria-expanded={open || false}\n data-state={open ? \"open\" : \"closed\"}\n data-disabled={disabled ? \"\" : undefined}\n disabled={disabled}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n if (disabled) return;\n onOpenChange(!open);\n }}\n />\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * Content\n * -----------------------------------------------------------------------------------------------*/\n\nexport const Content = forwardRef<HTMLDivElement, ContentProps>(\n ({ asChild, ...props }, forwardedRef) => {\n const Component = asChild ? Slot : \"div\";\n const rootContext = useContext(RootContext);\n const divRef = useRef<HTMLDivElement>(null);\n\n if (!rootContext) throw new Error(\"Missing RootContext Provider\");\n\n const { open, onOpenChange, disabled, contentId } = rootContext;\n\n useEffect(() => {\n const element = divRef.current;\n if (element === null) return;\n\n const isHiddenUntilFoundSupported = \"onbeforematch\" in document.body;\n if (!isHiddenUntilFoundSupported) return;\n\n function handleBeforeMatch() {\n onOpenChange(true);\n }\n\n // https://developer.chrome.com/articles/hidden-until-found/\n element.addEventListener(\"beforematch\", handleBeforeMatch);\n return () => {\n element.removeEventListener(\"beforematch\", handleBeforeMatch);\n };\n }, [onOpenChange]);\n\n // Passing `string` to `hidden` in JSX is not currently supported: https://github.com/facebook/react/issues/24740\n useEffect(() => {\n const element = divRef.current;\n if (element === null) return;\n\n if (open) return;\n\n const isHiddenUntilFoundSupported = \"onbeforematch\" in document.body;\n if (!isHiddenUntilFoundSupported) return;\n\n element.setAttribute(\"hidden\", \"until-found\");\n return () => {\n element.removeAttribute(\"hidden\");\n };\n }, [open]);\n\n useImperativeHandle<\n HTMLDivElement | null,\n HTMLDivElement | null\n >(forwardedRef, () => {\n return divRef.current;\n }, []);\n\n return (\n <Component\n {...props}\n ref={divRef}\n data-state={open ? \"open\" : \"closed\"}\n data-disabled={disabled ? \"\" : undefined}\n id={contentId}\n hidden={!open}\n />\n );\n }\n);\n"],"names":[],"mappings":"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"}
|