@mp-consulting/homebridge-ui-kit 1.2.2 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tokens.css","../src/ai.css"],"sourcesContent":["/* ── Design tokens ──────────────────────────────────────────────────────────\n CSS custom properties used throughout the design system.\n Override these in your plugin's styles.css to customize per-plugin.\n Light values live on :root. Dark values apply under Bootstrap's\n [data-bs-theme=\"dark\"] or under the selector-agnostic .mp-theme-dark class,\n for hosts whose dark mode does not use Bootstrap's attribute (e.g. a\n `body.dark-mode` app): add .mp-theme-dark next to your own class instead of\n copying these values.\n\n The kit's rules are deliberately NOT wrapped in a cascade layer:\n unlayered styles beat every layered style regardless of specificity or\n order, so unlayered Bootstrap would then override the kit's Bootstrap\n remaps (primary button, tabs, spinner) and break them.\n ────────────────────────────────────────────────────────────────────────── */\n\n:root {\n /* Brand */\n --mp-primary: #4f46e5;\n --mp-primary-rgb: 79, 70, 229;\n --mp-primary-hover: #4338ca;\n --mp-primary-text: #4f46e5; /* brand color for text; meets WCAG AA on the body bg */\n\n /* Status */\n --mp-status-online: #10b981;\n --mp-status-online-glow: rgba(16, 185, 129, 0.35);\n --mp-status-offline: #ef4444;\n --mp-status-checking: #94a3b8;\n\n /* Accessible text and focus colours (plain values, so they hold contrast\n whether or not the host switches Bootstrap's variables) */\n --mp-text-subtle: #5c636a; /* secondary hints; 6.1:1 on white */\n --mp-focus-ring: #4f46e5; /* focus outlines; 6.3:1 on white */\n\n /* Surfaces */\n --mp-surface: rgba(0, 0, 0, 0.02);\n --mp-border: rgba(0, 0, 0, 0.1);\n\n /* Skeleton shimmer */\n --mp-skeleton-base: rgba(0, 0, 0, 0.08);\n --mp-skeleton-shine: rgba(0, 0, 0, 0.03);\n\n /* Shape */\n --mp-radius: 0.5rem;\n --mp-shadow-hover: 0 0.5rem 1rem rgba(0, 0, 0, 0.12);\n\n /* Assistant (AI) halo palette. Only ever used for borders, glows and\n decorative dots: text never sits on the gradient. */\n --mp-ai-1: #BC82F3;\n --mp-ai-2: #F5B9EA;\n --mp-ai-3: #8D9FFF;\n --mp-ai-4: #FF6778;\n --mp-ai-5: #FFBA71;\n --mp-ai-6: #C686FF;\n --mp-ai-stops: var(--mp-ai-1), var(--mp-ai-2), var(--mp-ai-3), var(--mp-ai-4),\n var(--mp-ai-5), var(--mp-ai-6), var(--mp-ai-1);\n /* Halo gradient. Custom properties resolve where they are declared, so this\n token is static (angle 0) when used as-is; the AI components rebuild it\n from --mp-ai-stops on the animated element so it rotates (see ai.css). */\n --mp-ai-gradient: conic-gradient(from var(--mp-ai-angle), var(--mp-ai-stops));\n --mp-ai-gradient-linear: linear-gradient(90deg, var(--mp-ai-stops));\n --mp-ai-text: #7e22ce; /* accent text; 7.1:1 on white */\n --mp-ai-surface: var(--bs-body-bg, #fff);\n /* Colours the AI components take from the host. They default to Bootstrap's,\n and are repeated in the dark block so they resolve on the element that\n switches theme. A host with its own theming (Glass UI) overrides them. */\n --mp-ai-fg: var(--bs-body-color, #212529);\n --mp-ai-fg-muted: var(--bs-secondary-color, #6c757d);\n --mp-ai-bg: var(--bs-body-bg, transparent);\n --mp-ai-border-color: var(--bs-border-color, #dee2e6);\n --mp-ai-success-text: var(--bs-success-text-emphasis, #0a3622);\n --mp-ai-danger-text: var(--bs-danger-text-emphasis, #b02a37);\n --mp-ai-border-width: 2px;\n --mp-ai-glow-blur: 12px;\n --mp-ai-glow-opacity: 0.45;\n --mp-ai-edge-glow-opacity: 0.55;\n --mp-ai-duration: 4s;\n --mp-ai-edge-width: 28px;\n\n /* Assistant diff lines (text/background pairs meet WCAG AA) */\n --mp-ai-diff-add-bg: #dcfce7;\n --mp-ai-diff-add-text: #14532d;\n --mp-ai-diff-del-bg: #fee2e2;\n --mp-ai-diff-del-text: #7f1d1d;\n}\n\n/* Animatable angle for the rotating halo. Browsers without @property simply\n show a static gradient. */\n@property --mp-ai-angle {\n syntax: '<angle>';\n inherits: false;\n initial-value: 0deg;\n}\n\n/* Dark values that do not depend on Bootstrap. */\n[data-bs-theme=\"dark\"],\n.mp-theme-dark {\n --mp-primary-text: #818cf8;\n --mp-text-subtle: #a3a9b0; /* 6.5:1 on #212529 */\n --mp-focus-ring: #818cf8; /* 5.2:1 on #212529 (the brand indigo is 2.5:1) */\n --mp-surface: rgba(255, 255, 255, 0.03);\n --mp-border: rgba(255, 255, 255, 0.08);\n --mp-shadow-hover: 0 0.5rem 1rem rgba(0, 0, 0, 0.3);\n --mp-skeleton-base: rgba(255, 255, 255, 0.08);\n --mp-skeleton-shine: rgba(255, 255, 255, 0.16);\n --mp-ai-text: #d8b4fe; /* 9.6:1 on #212529 */\n --mp-ai-glow-opacity: 0.7;\n --mp-ai-edge-glow-opacity: 0.8;\n --mp-ai-diff-add-bg: rgba(34, 197, 94, 0.16);\n --mp-ai-diff-add-text: #bbf7d0;\n --mp-ai-diff-del-bg: rgba(239, 68, 68, 0.18);\n --mp-ai-diff-del-text: #fecaca;\n}\n\n/* .mp-theme-dark alone: the host does not switch Bootstrap's variables, so\n the host colours are plain values (Bootstrap's dark palette). */\n.mp-theme-dark {\n --mp-ai-surface: #212529;\n --mp-ai-fg: #dee2e6;\n --mp-ai-fg-muted: rgba(222, 226, 230, 0.75);\n --mp-ai-bg: transparent;\n --mp-ai-border-color: #495057;\n --mp-ai-success-text: #75b798;\n --mp-ai-danger-text: #ea868f;\n}\n\n/* Bootstrap's dark theme: follow its variables, so a plugin that customises\n them is respected. Declared after .mp-theme-dark so it wins when an element\n has both. */\n[data-bs-theme=\"dark\"] {\n --mp-ai-surface: var(--bs-body-bg, #212529);\n --mp-ai-fg: var(--bs-body-color, #dee2e6);\n --mp-ai-fg-muted: var(--bs-secondary-color, rgba(222, 226, 230, 0.75));\n --mp-ai-bg: var(--bs-body-bg, transparent);\n --mp-ai-border-color: var(--bs-border-color, #495057);\n --mp-ai-success-text: var(--bs-success-text-emphasis, #75b798);\n --mp-ai-danger-text: var(--bs-danger-text-emphasis, #ea868f);\n}\n","/* ── Assistant (AI) components ──────────────────────────────────────────────\n Halo-styled surfaces for AI features. Text always sits on a neutral surface\n (--mp-ai-surface); the gradient is only used for rings, glows and dots.\n Bootstrap is optional: every colour has a fallback, so this file also works\n standalone as dist/ai.css (with the tokens).\n ────────────────────────────────────────────────────────────────────────── */\n\n@keyframes mp-ai-spin {\n to { --mp-ai-angle: 360deg; }\n}\n\n@keyframes mp-ai-glow-pulse {\n 0%, 100% { opacity: calc(var(--mp-ai-glow-opacity) * 0.35); }\n 50% { opacity: var(--mp-ai-glow-opacity); }\n}\n\n@keyframes mp-ai-orb-pulse {\n 0%, 100% { transform: scale(0.8); opacity: 0.65; }\n 50% { transform: scale(1.1); opacity: 1; }\n}\n\n@keyframes mp-ai-blink {\n 50% { opacity: 0; }\n}\n\n@keyframes mp-ai-fade-in {\n from { opacity: 0; }\n}\n\n/* ── Shared halo ring ───────────────────────────────────── */\n/* ::before paints the neutral surface plus a gradient border (padding-box /\n border-box layers); ::after is the blurred glow behind it. Both sit below\n the content inside the element's own stacking context. */\n\n.mp-ai-halo,\n.mp-ai-button,\n.mp-ai-badge,\n.mp-ai-panel {\n position: relative;\n isolation: isolate;\n background: transparent;\n}\n\n.mp-ai-halo::before,\n.mp-ai-button::before,\n.mp-ai-badge::before,\n.mp-ai-panel::before {\n content: '';\n position: absolute;\n inset: 0;\n z-index: -1;\n border: var(--mp-ai-border-width) solid transparent;\n border-radius: inherit;\n background:\n linear-gradient(var(--mp-ai-surface), var(--mp-ai-surface)) padding-box,\n conic-gradient(from var(--mp-ai-angle), var(--mp-ai-stops)) border-box;\n pointer-events: none;\n}\n\n.mp-ai-halo::after,\n.mp-ai-button::after,\n.mp-ai-panel::after {\n content: '';\n position: absolute;\n inset: 0;\n z-index: -2;\n border-radius: inherit;\n background: conic-gradient(from var(--mp-ai-angle), var(--mp-ai-stops));\n filter: blur(var(--mp-ai-glow-blur));\n opacity: var(--mp-ai-glow-opacity);\n pointer-events: none;\n transition: opacity 0.2s ease;\n}\n\n/* ── Halo container ─────────────────────────────────────── */\n\n.mp-ai-halo {\n display: block;\n border-radius: var(--mp-radius, 0.5rem);\n}\n\n.mp-ai-halo::before,\n.mp-ai-halo::after {\n animation: mp-ai-spin var(--mp-ai-duration) linear infinite;\n}\n\n/* ── Badge ──────────────────────────────────────────────── */\n\n.mp-ai-badge {\n --mp-ai-border-width: 1.5px;\n display: inline-flex;\n align-items: center;\n gap: 0.3em;\n padding: 0.2em 0.65em;\n border-radius: 999px;\n color: var(--mp-ai-text);\n font-size: 0.75rem;\n font-weight: 600;\n line-height: 1.2;\n white-space: nowrap;\n}\n\n.mp-ai-icon {\n width: 1em;\n height: 1em;\n flex-shrink: 0;\n fill: currentColor;\n color: var(--mp-ai-text);\n}\n\n/* ── Button ─────────────────────────────────────────────── */\n\n.mp-ai-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.4rem;\n padding: 0.375rem 0.95rem;\n border: 0;\n border-radius: 999px;\n color: var(--mp-ai-fg);\n font: inherit;\n font-size: 0.875rem;\n font-weight: 500;\n line-height: 1.5;\n text-decoration: none;\n cursor: pointer;\n}\n\n.mp-ai-button::after {\n opacity: 0;\n}\n\n.mp-ai-button:hover::before,\n.mp-ai-button:hover::after,\n.mp-ai-button:focus-visible::before,\n.mp-ai-button:focus-visible::after,\n.mp-ai-button[aria-busy=\"true\"]::before,\n.mp-ai-button[aria-busy=\"true\"]::after {\n animation: mp-ai-spin var(--mp-ai-duration) linear infinite;\n}\n\n.mp-ai-button:hover::after,\n.mp-ai-button:focus-visible::after,\n.mp-ai-button[aria-busy=\"true\"]::after {\n opacity: var(--mp-ai-glow-opacity);\n}\n\n.mp-ai-button:focus-visible {\n outline: 2px solid var(--mp-ai-text);\n outline-offset: 3px;\n}\n\n.mp-ai-button:disabled:not([aria-busy=\"true\"]) {\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n.mp-ai-button-sm {\n padding: 0.25rem 0.7rem;\n font-size: 0.8125rem;\n}\n\n.mp-ai-button-lg {\n padding: 0.55rem 1.25rem;\n font-size: 1rem;\n}\n\n/* ── Thinking indicator ─────────────────────────────────── */\n/* Standalone: a pulsing gradient orb before the label.\n On a halo/button/panel: the glow pulses instead. */\n\n.mp-ai-thinking:not(.mp-ai-halo, .mp-ai-button, .mp-ai-badge, .mp-ai-panel) {\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n color: var(--mp-ai-fg-muted);\n font-size: 0.875rem;\n}\n\n.mp-ai-thinking:not(.mp-ai-halo, .mp-ai-button, .mp-ai-badge, .mp-ai-panel)::before {\n content: '';\n width: 0.875em;\n height: 0.875em;\n flex-shrink: 0;\n border-radius: 50%;\n background: conic-gradient(from var(--mp-ai-angle), var(--mp-ai-stops));\n animation:\n mp-ai-spin 1.5s linear infinite,\n mp-ai-orb-pulse 1.4s ease-in-out infinite;\n}\n\n.mp-ai-thinking:is(.mp-ai-halo, .mp-ai-button, .mp-ai-panel)::before {\n animation: mp-ai-spin var(--mp-ai-duration) linear infinite;\n}\n\n.mp-ai-thinking:is(.mp-ai-halo, .mp-ai-button, .mp-ai-panel)::after {\n animation:\n mp-ai-spin var(--mp-ai-duration) linear infinite,\n mp-ai-glow-pulse 1.6s ease-in-out infinite;\n}\n\n/* ── Answer panel ───────────────────────────────────────── */\n\n.mp-ai-panel {\n display: block;\n /* Full width of its slot, and safe as a flex/grid item: it never forces its\n parent wider, and long words or URLs wrap instead of overflowing. */\n box-sizing: border-box;\n width: 100%;\n max-width: 100%;\n min-width: 0;\n overflow-wrap: break-word;\n padding: 1rem 1.125rem;\n border-radius: var(--mp-radius, 0.5rem);\n color: var(--mp-ai-fg);\n font-size: 0.9375rem;\n}\n\n.mp-ai-panel::after {\n opacity: calc(var(--mp-ai-glow-opacity) * 0.4);\n}\n\n.mp-ai-panel.is-streaming::before,\n.mp-ai-panel.is-streaming::after {\n animation: mp-ai-spin var(--mp-ai-duration) linear infinite;\n}\n\n.mp-ai-panel.is-streaming::after {\n opacity: var(--mp-ai-glow-opacity);\n}\n\n.mp-ai-panel-header {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 0.375rem 0.5rem;\n margin-bottom: 0.625rem;\n}\n\n.mp-ai-panel-header > .mp-ai-badge {\n flex: none;\n}\n\n/* The title sits next to the badge when there is room for at least ~12rem of\n it; otherwise it wraps onto its own full-width line below the badge, so it\n is never squeezed into a narrow column. */\n.mp-ai-panel-title {\n flex: 1 1 12rem;\n min-width: 0;\n margin: 0;\n font-size: 0.875rem;\n font-weight: 600;\n line-height: 1.35;\n overflow-wrap: anywhere;\n}\n\n.mp-ai-panel-body {\n min-width: 0;\n}\n\n.mp-ai-panel-note {\n margin: 0.75rem 0 0;\n font-size: 0.75rem;\n color: var(--mp-ai-fg-muted);\n}\n\n.mp-ai-error {\n margin: 0.5rem 0 0;\n color: var(--mp-ai-danger-text);\n font-size: 0.875rem;\n}\n\n.mp-ai-caret {\n display: inline-block;\n width: 0.5em;\n height: 1.1em;\n margin-inline-start: 2px;\n vertical-align: text-bottom;\n border-radius: 1px;\n background: var(--mp-ai-text);\n animation: mp-ai-blink 1s steps(1) infinite;\n}\n\n/* ── Rendered answer text (safe markdown subset) ────────── */\n\n.mp-ai-prose > :first-child {\n margin-top: 0;\n}\n\n.mp-ai-prose > :last-child {\n margin-bottom: 0;\n}\n\n.mp-ai-prose p,\n.mp-ai-prose ul,\n.mp-ai-prose ol,\n.mp-ai-prose pre {\n margin: 0 0 0.625rem;\n}\n\n.mp-ai-prose ul,\n.mp-ai-prose ol {\n padding-inline-start: 1.25rem;\n}\n\n.mp-ai-prose code {\n padding: 0.1em 0.35em;\n border-radius: 0.25rem;\n background: var(--mp-surface, rgba(0, 0, 0, 0.04));\n border: 1px solid var(--mp-border, rgba(0, 0, 0, 0.1));\n color: inherit;\n font-family: var(--bs-font-monospace, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);\n font-size: 0.85em;\n}\n\n/* Code reads left to right even on an RTL page. */\n.mp-ai-prose pre {\n direction: ltr;\n unicode-bidi: isolate;\n padding: 0.625rem 0.75rem;\n overflow-x: auto;\n border-radius: 0.375rem;\n background: var(--mp-surface, rgba(0, 0, 0, 0.04));\n border: 1px solid var(--mp-border, rgba(0, 0, 0, 0.1));\n font-size: 0.8125rem;\n}\n\n.mp-ai-prose pre code {\n padding: 0;\n border: 0;\n background: none;\n font-size: inherit;\n}\n\n/* ── Chat ───────────────────────────────────────────────── */\n\n.mp-ai-chat {\n display: flex;\n flex-direction: column;\n min-height: 16rem;\n max-height: var(--mp-ai-chat-height, 28rem);\n overflow: hidden;\n border: 1px solid var(--mp-border, rgba(0, 0, 0, 0.1));\n border-radius: var(--mp-radius, 0.5rem);\n background: var(--mp-ai-surface);\n color: var(--mp-ai-fg);\n}\n\n.mp-ai-chat-header {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.625rem 0.875rem;\n border-bottom: 1px solid var(--mp-border, rgba(0, 0, 0, 0.1));\n}\n\n.mp-ai-chat-log {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: 0.75rem;\n padding: 1rem;\n overflow-y: auto;\n}\n\n.mp-ai-chat-empty {\n margin: auto;\n color: var(--mp-ai-fg-muted);\n font-size: 0.875rem;\n text-align: center;\n}\n\n.mp-ai-chat-msg {\n display: flex;\n}\n\n.mp-ai-chat-msg.is-user {\n justify-content: flex-end;\n}\n\n.mp-ai-chat-bubble {\n max-width: 85%;\n padding: 0.5rem 0.75rem;\n border-radius: 0.875rem;\n font-size: 0.9rem;\n overflow-wrap: anywhere;\n}\n\n.is-user > .mp-ai-chat-bubble {\n border-end-end-radius: 0.25rem;\n background: var(--mp-primary, #4f46e5);\n color: #fff;\n}\n\n.is-assistant > .mp-ai-chat-bubble {\n border: 1px solid var(--mp-border, rgba(0, 0, 0, 0.1));\n border-end-start-radius: 0.25rem;\n background: var(--mp-surface, rgba(0, 0, 0, 0.02));\n}\n\n.mp-ai-chat-form {\n display: flex;\n align-items: flex-end;\n gap: 0.5rem;\n padding: 0.75rem;\n border-top: 1px solid var(--mp-border, rgba(0, 0, 0, 0.1));\n}\n\n.mp-ai-chat-input {\n flex: 1;\n min-height: 2.375rem;\n max-height: 8rem;\n padding: 0.45rem 0.75rem;\n resize: vertical;\n border: 1px solid var(--mp-ai-border-color);\n border-radius: 0.5rem;\n background: var(--mp-ai-bg);\n color: inherit;\n font: inherit;\n font-size: 0.9rem;\n}\n\n.mp-ai-chat-input:focus {\n outline: 2px solid var(--mp-ai-text);\n outline-offset: 1px;\n border-color: transparent;\n}\n\n/* ── Diff ───────────────────────────────────────────────── */\n\n.mp-ai-diff {\n overflow: hidden;\n border: 1px solid var(--mp-border, rgba(0, 0, 0, 0.1));\n border-radius: var(--mp-radius, 0.5rem);\n background: var(--mp-ai-surface);\n color: var(--mp-ai-fg);\n}\n\n.mp-ai-diff-header {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 0.375rem 0.5rem;\n padding: 0.5rem 0.75rem;\n border-bottom: 1px solid var(--mp-border, rgba(0, 0, 0, 0.1));\n font-size: 0.8125rem;\n}\n\n.mp-ai-diff-header > .mp-ai-badge {\n flex: none;\n}\n\n/* Same as the panel title: next to the badge when there is room for ~12rem of\n it, otherwise on its own line below the badge (with the stats at its end),\n never squeezed into a narrow column. */\n.mp-ai-diff-title {\n flex: 1 1 12rem;\n min-width: 0;\n font-weight: 500;\n line-height: 1.35;\n overflow-wrap: anywhere;\n}\n\n.mp-ai-diff-stats {\n flex: none;\n display: inline-flex;\n margin-inline-start: auto;\n gap: 0.5rem;\n font-family: var(--bs-font-monospace, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);\n}\n\n.mp-ai-diff-stat-add {\n color: var(--mp-ai-success-text);\n}\n\n.mp-ai-diff-stat-del {\n color: var(--mp-ai-danger-text);\n}\n\n.mp-ai-diff-body {\n direction: ltr;\n unicode-bidi: isolate;\n max-height: 24rem;\n margin: 0;\n padding: 0.375rem 0;\n overflow: auto;\n font-family: var(--bs-font-monospace, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);\n font-size: 0.8125rem;\n line-height: 1.55;\n}\n\n.mp-ai-diff-line {\n display: block;\n min-width: max-content;\n padding-inline-end: 0.75rem;\n white-space: pre;\n}\n\n.mp-ai-diff-sign {\n display: inline-block;\n width: 1.75rem;\n color: var(--mp-ai-fg-muted);\n text-align: center;\n user-select: none;\n}\n\n.mp-ai-diff-line.is-add {\n background: var(--mp-ai-diff-add-bg);\n color: var(--mp-ai-diff-add-text);\n}\n\n.mp-ai-diff-line.is-del {\n background: var(--mp-ai-diff-del-bg);\n color: var(--mp-ai-diff-del-text);\n}\n\n.mp-ai-diff-line.is-add .mp-ai-diff-sign,\n.mp-ai-diff-line.is-del .mp-ai-diff-sign {\n color: inherit;\n}\n\n.mp-ai-diff-actions {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 0.5rem;\n padding: 0.5rem 0.75rem;\n border-top: 1px solid var(--mp-border, rgba(0, 0, 0, 0.1));\n}\n\n.mp-ai-diff-status {\n margin-inline-end: auto;\n color: var(--mp-ai-fg-muted);\n font-size: 0.8125rem;\n}\n\n.mp-ai-diff.is-applied .mp-ai-diff-status {\n color: var(--mp-ai-success-text);\n}\n\n/* Plain action buttons, so the diff works without Bootstrap */\n.mp-ai-action {\n padding: 0.3rem 0.85rem;\n border: 1px solid var(--mp-ai-border-color);\n border-radius: 0.375rem;\n background: transparent;\n color: var(--mp-ai-fg);\n font: inherit;\n font-size: 0.8125rem;\n font-weight: 500;\n cursor: pointer;\n}\n\n.mp-ai-action:hover {\n background: var(--mp-surface, rgba(0, 0, 0, 0.04));\n}\n\n.mp-ai-action-primary {\n border-color: var(--mp-primary, #4f46e5);\n background: var(--mp-primary, #4f46e5);\n color: #fff;\n}\n\n.mp-ai-action-primary:hover {\n border-color: var(--mp-primary-hover, #4338ca);\n background: var(--mp-primary-hover, #4338ca);\n}\n\n.mp-ai-action:focus-visible {\n outline: 2px solid var(--mp-ai-text);\n outline-offset: 2px;\n}\n\n.mp-ai-action:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n/* ── Page edge glow ─────────────────────────────────────── */\n/* A fixed, click-through glow around the viewport while the Assistant works. */\n\n.mp-ai-edge-glow {\n position: fixed;\n inset: 0;\n z-index: 1090;\n pointer-events: none;\n animation: mp-ai-fade-in 0.4s ease-out;\n}\n\n.mp-ai-edge-glow[hidden] {\n display: none;\n}\n\n.mp-ai-edge-glow::before,\n.mp-ai-edge-glow::after {\n content: '';\n position: absolute;\n inset: 0;\n background: conic-gradient(from var(--mp-ai-angle) at 50% 50%, var(--mp-ai-stops));\n animation: mp-ai-spin var(--mp-ai-duration) linear infinite;\n}\n\n/* Crisp 3px line along the edges */\n.mp-ai-edge-glow::before {\n padding: 3px;\n -webkit-mask:\n linear-gradient(#000 0 0) content-box,\n linear-gradient(#000 0 0);\n -webkit-mask-composite: xor;\n mask:\n linear-gradient(#000 0 0) content-box exclude,\n linear-gradient(#000 0 0);\n}\n\n/* Soft glow fading inwards */\n.mp-ai-edge-glow::after {\n opacity: var(--mp-ai-edge-glow-opacity);\n -webkit-mask-image:\n linear-gradient(to right, #000, transparent var(--mp-ai-edge-width),\n transparent calc(100% - var(--mp-ai-edge-width)), #000),\n linear-gradient(to bottom, #000, transparent var(--mp-ai-edge-width),\n transparent calc(100% - var(--mp-ai-edge-width)), #000);\n mask-image:\n linear-gradient(to right, #000, transparent var(--mp-ai-edge-width),\n transparent calc(100% - var(--mp-ai-edge-width)), #000),\n linear-gradient(to bottom, #000, transparent var(--mp-ai-edge-width),\n transparent calc(100% - var(--mp-ai-edge-width)), #000);\n}\n\n/* ── Utilities ──────────────────────────────────────────── */\n\n.mp-ai-sr-only {\n position: absolute !important;\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n}\n\n/* ── Reduced motion: static gradient, no pulse ──────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .mp-ai-halo::before,\n .mp-ai-halo::after,\n .mp-ai-button::before,\n .mp-ai-button::after,\n .mp-ai-panel::before,\n .mp-ai-panel::after,\n .mp-ai-thinking::before,\n .mp-ai-thinking::after,\n .mp-ai-edge-glow,\n .mp-ai-edge-glow::before,\n .mp-ai-edge-glow::after,\n .mp-ai-caret {\n animation: none !important;\n }\n\n .mp-ai-button::after {\n transition: none;\n }\n}\n\n/* ── Forced colours: rings and glows vanish, keep an outline ── */\n\n@media (forced-colors: active) {\n .mp-ai-halo,\n .mp-ai-button,\n .mp-ai-badge,\n .mp-ai-panel {\n border: 1px solid CanvasText;\n }\n\n .mp-ai-edge-glow {\n display: none;\n }\n}\n"],"mappings":"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","names":[],"sourceRoot":""}