@blinq_ai/widget 0.1.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/embed-styles.ts","../src/browser.ts"],"sourcesContent":["export const EMBED_WIDGET_STYLES = `\n :host {\n all: initial;\n display: block;\n position: static;\n color-scheme: light;\n }\n\n *, *::before, *::after {\n box-sizing: border-box;\n }\n\n button,\n input {\n font: inherit;\n }\n\n .blinq-shell {\n position: fixed;\n bottom: 24px;\n z-index: 2147483647;\n display: flex;\n flex-direction: column;\n gap: 12px;\n width: 420px;\n max-width: calc(100vw - 24px);\n font-family:\n \"Inter\", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,\n \"Segoe UI\", sans-serif;\n pointer-events: none;\n --blinq-accent: #111111;\n --blinq-background: #ffffff;\n --blinq-panel: rgba(255, 255, 255, 0.98);\n --blinq-panel-soft: #fafafa;\n --blinq-surface: #ffffff;\n --blinq-surface-soft: #f5f5f5;\n --blinq-surface-muted: #ededed;\n --blinq-border: rgba(17, 17, 17, 0.08);\n --blinq-border-strong: rgba(17, 17, 17, 0.18);\n --blinq-text: #111111;\n --blinq-text-soft: #262626;\n --blinq-text-muted: #737373;\n --blinq-user-bubble: #111111;\n --blinq-user-text: #ffffff;\n --blinq-shadow: 0 24px 60px rgba(17, 17, 17, 0.12);\n }\n\n .blinq-shell[data-side=\"left\"] {\n left: 24px;\n align-items: flex-start;\n }\n\n .blinq-shell[data-side=\"right\"] {\n right: 24px;\n align-items: flex-end;\n }\n\n .blinq-panel,\n .blinq-launcher {\n pointer-events: auto;\n }\n\n .blinq-launcher {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 12px;\n min-height: 58px;\n padding: 0 18px;\n border: 1px solid var(--blinq-border);\n border-radius: 20px;\n background: #ffffff;\n color: var(--blinq-text);\n box-shadow: 0 18px 40px rgba(17, 17, 17, 0.12);\n backdrop-filter: blur(18px);\n -webkit-backdrop-filter: blur(18px);\n transition:\n transform 180ms ease,\n box-shadow 180ms ease,\n border-color 180ms ease;\n }\n\n .blinq-launcher:hover {\n transform: translateY(-2px);\n border-color: rgba(17, 17, 17, 0.16);\n box-shadow: 0 22px 46px rgba(17, 17, 17, 0.16);\n }\n\n .blinq-launcher-badge {\n display: grid;\n place-items: center;\n width: 34px;\n height: 34px;\n border-radius: 12px;\n background: #111111;\n color: #ffffff;\n transition:\n transform 180ms ease,\n box-shadow 180ms ease;\n }\n\n .blinq-launcher:hover .blinq-launcher-badge {\n transform: scale(1.06);\n box-shadow: 0 10px 24px rgba(17, 17, 17, 0.22);\n }\n\n .blinq-launcher-icon-only {\n width: 58px;\n min-width: 58px;\n padding: 0;\n border-radius: 18px;\n }\n\n .blinq-launcher-agent {\n overflow: visible;\n }\n\n .blinq-agent-orbit {\n stroke: rgba(255, 255, 255, 0.42);\n stroke-width: 1.3;\n stroke-dasharray: 2.6 2.6;\n transform-origin: center;\n transition: opacity 180ms ease;\n }\n\n .blinq-agent-spark,\n .blinq-agent-head,\n .blinq-agent-antenna,\n .blinq-agent-antenna-dot,\n .blinq-agent-neck {\n transform-origin: center;\n }\n\n .blinq-launcher:hover .blinq-agent-orbit {\n animation: blinq-agent-spin 2.2s linear infinite;\n }\n\n .blinq-launcher:hover .blinq-agent-spark {\n animation: blinq-agent-spark 1.1s ease-in-out infinite;\n }\n\n .blinq-launcher:hover .blinq-agent-head,\n .blinq-launcher:hover .blinq-agent-neck,\n .blinq-launcher:hover .blinq-agent-antenna,\n .blinq-launcher:hover .blinq-agent-antenna-dot {\n animation: blinq-agent-bob 1.35s ease-in-out infinite;\n }\n\n .blinq-launcher-copy {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n line-height: 1.1;\n }\n\n .blinq-launcher-label {\n font-size: 11px;\n font-weight: 700;\n letter-spacing: 0.08em;\n text-transform: uppercase;\n color: var(--blinq-text-muted);\n }\n\n .blinq-launcher-title {\n margin-top: 3px;\n font-size: 14px;\n font-weight: 600;\n color: var(--blinq-text);\n }\n\n .blinq-panel {\n width: 100%;\n max-width: 420px;\n border: 1px solid var(--blinq-border);\n border-radius: 28px;\n overflow: hidden;\n background: #ffffff;\n box-shadow: var(--blinq-shadow);\n backdrop-filter: blur(24px);\n -webkit-backdrop-filter: blur(24px);\n }\n\n .blinq-header {\n padding: 16px;\n border-bottom: 1px solid var(--blinq-border);\n background: #ffffff;\n }\n\n .blinq-status-line {\n margin-top: 10px;\n font-size: 12px;\n line-height: 1.45;\n color: var(--blinq-text-muted);\n }\n\n .blinq-header-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n }\n\n .blinq-header-copy {\n min-width: 0;\n flex: 1;\n }\n\n .blinq-header-badges {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n }\n\n .blinq-heading-row {\n margin-top: 14px;\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 12px;\n }\n\n .blinq-heading {\n font-size: 16px;\n font-weight: 700;\n letter-spacing: -0.02em;\n color: var(--blinq-text);\n }\n\n .blinq-subheading {\n margin-top: 6px;\n max-width: 320px;\n font-size: 13px;\n line-height: 1.45;\n color: var(--blinq-text-muted);\n }\n\n .blinq-statusbar {\n margin-top: 14px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n flex-wrap: wrap;\n }\n\n .blinq-status {\n display: inline-flex;\n align-items: center;\n min-height: 34px;\n padding: 0 12px;\n border-radius: 999px;\n border: 1px solid var(--blinq-border);\n background: #f8f8f8;\n color: var(--blinq-text-soft);\n font-size: 12px;\n line-height: 1.45;\n }\n\n .blinq-runtime-chip {\n display: inline-flex;\n align-items: center;\n min-height: 34px;\n padding: 0 12px;\n border-radius: 999px;\n background: #111111;\n border: 1px solid #111111;\n color: #ffffff;\n font-size: 12px;\n font-family: ui-monospace, SFMono-Regular, Menlo, monospace;\n }\n\n .blinq-workspace {\n display: grid;\n grid-template-columns: 112px minmax(0, 1fr);\n min-height: 430px;\n }\n\n .blinq-sidebar {\n display: flex;\n flex-direction: column;\n gap: 14px;\n padding: 16px;\n border-right: 1px solid var(--blinq-border);\n background: #fafafa;\n }\n\n .blinq-sidebar-group {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n\n .blinq-tab-trigger {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n min-height: 56px;\n padding: 10px;\n border: 1px solid transparent;\n border-radius: 18px;\n background: transparent;\n color: var(--blinq-text-soft);\n cursor: pointer;\n transition:\n background 120ms ease,\n border-color 120ms ease,\n color 120ms ease,\n transform 120ms ease;\n }\n\n .blinq-tab-trigger:hover {\n background: rgba(255,255,255,0.9);\n border-color: var(--blinq-border);\n }\n\n .blinq-tab-trigger-active {\n background: #ffffff;\n border-color: rgba(17, 17, 17, 0.16);\n box-shadow: 0 10px 24px rgba(17, 17, 17, 0.08);\n color: var(--blinq-text);\n }\n\n .blinq-tab-icon {\n display: grid;\n place-items: center;\n width: 32px;\n height: 32px;\n border-radius: 12px;\n background: rgba(15, 23, 42, 0.04);\n color: currentColor;\n flex: 0 0 auto;\n }\n\n .blinq-tab-copy {\n display: flex;\n flex-direction: column;\n min-width: 0;\n align-items: flex-start;\n text-align: left;\n }\n\n .blinq-tab-label {\n font-size: 13px;\n font-weight: 600;\n }\n\n .blinq-tab-caption {\n margin-top: 2px;\n font-size: 11px;\n color: var(--blinq-text-muted);\n }\n\n .blinq-tab-count {\n margin-left: auto;\n min-width: 22px;\n height: 22px;\n padding: 0 6px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 999px;\n background: rgba(15, 23, 42, 0.06);\n color: var(--blinq-text-soft);\n font-size: 11px;\n font-weight: 700;\n }\n\n .blinq-separator {\n height: 1px;\n background: var(--blinq-border);\n }\n\n .blinq-sidebar-card {\n gap: 12px;\n border-radius: 18px;\n background: rgba(255,255,255,0.94);\n box-shadow: 0 12px 30px rgba(15, 23, 42, 0.06);\n }\n\n .blinq-sidebar-card-header {\n padding: 14px 14px 0;\n }\n\n .blinq-sidebar-card-content {\n padding: 0 14px 14px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n\n .blinq-stat-line {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n font-size: 12px;\n color: var(--blinq-text-muted);\n }\n\n .blinq-stat-line strong {\n color: var(--blinq-text);\n font-size: 12px;\n }\n\n .blinq-main {\n display: flex;\n flex-direction: column;\n min-width: 0;\n background: transparent;\n }\n\n .blinq-main-toolbar {\n padding: 16px 18px 12px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n\n .blinq-toolbar-label {\n font-size: 11px;\n font-weight: 700;\n letter-spacing: 0.08em;\n text-transform: uppercase;\n color: var(--blinq-text-muted);\n }\n\n .blinq-prompt-row {\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n }\n\n .blinq-prompt-chip {\n padding: 8px 12px;\n border-radius: 999px;\n border: 1px solid var(--blinq-border);\n background: rgba(255,255,255,0.95);\n color: var(--blinq-text-soft);\n font-size: 12px;\n font-weight: 600;\n cursor: pointer;\n transition:\n background 120ms ease,\n border-color 120ms ease,\n color 120ms ease,\n transform 120ms ease;\n }\n\n .blinq-prompt-chip:hover {\n border-color: rgba(17, 17, 17, 0.16);\n color: #111111;\n background: #f7f7f7;\n }\n\n .blinq-scroll {\n display: flex;\n flex-direction: column;\n gap: 12px;\n min-height: 0;\n height: 100%;\n max-height: 420px;\n padding: 16px;\n overflow-y: auto;\n }\n\n .blinq-thread {\n min-height: 0;\n }\n\n .blinq-thread-viewport {\n width: 100%;\n }\n\n .blinq-scroll-actions,\n .blinq-scroll-context {\n padding-top: 18px;\n }\n\n .blinq-scroll::-webkit-scrollbar {\n width: 8px;\n }\n\n .blinq-scroll::-webkit-scrollbar-thumb {\n background: rgba(148, 163, 184, 0.25);\n border-radius: 999px;\n }\n\n .blinq-message {\n max-width: 88%;\n border-radius: 20px;\n padding: 13px 14px;\n font-size: 14px;\n line-height: 1.55;\n white-space: pre-wrap;\n border: 1px solid var(--blinq-border);\n box-shadow: 0 12px 30px rgba(15, 23, 42, 0.05);\n }\n\n .blinq-message[data-role=\"assistant\"] {\n align-self: flex-start;\n background: rgba(255,255,255,0.98);\n color: var(--blinq-text);\n }\n\n .blinq-message[data-kind=\"artifact\"] {\n max-width: 100%;\n width: 100%;\n padding: 0;\n border: 0;\n background: transparent;\n box-shadow: none;\n }\n\n .blinq-message[data-role=\"user\"] {\n align-self: flex-end;\n background: var(--blinq-user-bubble);\n border-color: rgba(17, 17, 17, 0.22);\n color: var(--blinq-user-text);\n }\n\n .blinq-message-copy {\n display: block;\n }\n\n .blinq-message-copy-reveal {\n animation: blinq-blur-in 220ms cubic-bezier(0.16, 1, 0.3, 1);\n will-change: opacity, transform, filter;\n }\n\n .blinq-thinking-card {\n align-self: flex-start;\n background: rgba(255,255,255,0.98);\n color: var(--blinq-text);\n }\n\n .blinq-thinking {\n display: inline-flex;\n align-items: center;\n gap: 10px;\n min-height: 20px;\n font-size: 13px;\n color: var(--blinq-text-muted);\n opacity: 1;\n transform: translateY(0);\n transition:\n opacity 180ms ease,\n transform 180ms ease;\n }\n\n .blinq-thinking-dots {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n }\n\n .blinq-thinking-dots > span {\n width: 6px;\n height: 6px;\n border-radius: 999px;\n background: #111111;\n animation: blinq-thinking-pulse 1.1s ease-in-out infinite;\n }\n\n .blinq-thinking-dots > span:nth-child(2) {\n animation-delay: 120ms;\n }\n\n .blinq-thinking-dots > span:nth-child(3) {\n animation-delay: 240ms;\n }\n\n .blinq-card {\n display: flex;\n flex-direction: column;\n gap: 14px;\n border: 1px solid var(--blinq-border);\n border-radius: 20px;\n background: var(--blinq-surface);\n color: var(--blinq-text);\n box-shadow: 0 16px 36px rgba(15, 23, 42, 0.06);\n }\n\n .blinq-card-header {\n display: flex;\n flex-direction: column;\n gap: 7px;\n padding: 16px 16px 0;\n }\n\n .blinq-card-title {\n font-size: 15px;\n font-weight: 700;\n color: var(--blinq-text);\n }\n\n .blinq-card-description {\n font-size: 13px;\n line-height: 1.5;\n color: var(--blinq-text-muted);\n }\n\n .blinq-card-content {\n padding: 0 16px 16px;\n }\n\n .blinq-action-card {\n align-self: stretch;\n gap: 0;\n }\n\n .blinq-plan-card {\n border-color: var(--blinq-border-strong);\n }\n\n .blinq-plan-step {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n padding: 10px 0;\n border-top: 1px solid rgba(17, 17, 17, 0.06);\n }\n\n .blinq-plan-step:first-child {\n border-top: 0;\n padding-top: 0;\n }\n\n .blinq-plan-step-index {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 22px;\n height: 22px;\n border-radius: 999px;\n background: #111111;\n color: #ffffff;\n font-size: 11px;\n font-weight: 700;\n flex: none;\n }\n\n .blinq-plan-step-copy {\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 3px;\n font-size: 13px;\n color: var(--blinq-text);\n }\n\n .blinq-plan-step-meta {\n font-size: 12px;\n color: var(--blinq-text-muted);\n }\n\n .blinq-plan-step[data-current=\"true\"] .blinq-plan-step-index {\n box-shadow: 0 0 0 4px rgba(17, 17, 17, 0.08);\n }\n\n .blinq-plan-step[data-status=\"completed\"] .blinq-plan-step-index {\n background: #111111;\n }\n\n .blinq-plan-step[data-status=\"failed\"] .blinq-plan-step-index,\n .blinq-plan-step[data-status=\"cancelled\"] .blinq-plan-step-index {\n background: #525252;\n }\n\n .blinq-action-meta-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n flex-wrap: wrap;\n }\n\n .blinq-action-details {\n margin-top: 8px;\n }\n\n .blinq-action-details > summary {\n cursor: pointer;\n font-size: 12px;\n font-weight: 600;\n color: #111111;\n list-style: none;\n }\n\n .blinq-action-details > summary::-webkit-details-marker {\n display: none;\n }\n\n .blinq-code {\n margin-top: 10px;\n padding: 10px 12px;\n border-radius: 14px;\n background: var(--blinq-surface-soft);\n border: 1px solid var(--blinq-border);\n font-size: 12px;\n line-height: 1.45;\n white-space: pre-wrap;\n color: var(--blinq-text-soft);\n font-family: ui-monospace, SFMono-Regular, Menlo, monospace;\n }\n\n .blinq-code-compact {\n margin-top: 12px;\n }\n\n .blinq-action-state {\n margin-top: 12px;\n font-size: 12px;\n color: var(--blinq-text-muted);\n }\n\n .blinq-action-state[data-state=\"approved\"] {\n color: #111111;\n }\n\n .blinq-action-state[data-state=\"declined\"] {\n color: var(--blinq-text-muted);\n }\n\n .blinq-actions {\n display: flex;\n gap: 10px;\n margin-top: 14px;\n }\n\n .blinq-actions > * {\n flex: 1;\n }\n\n .blinq-context-grid {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 12px;\n }\n\n .blinq-context-card {\n min-height: 150px;\n }\n\n .blinq-context-card-wide {\n grid-column: 1 / -1;\n }\n\n .blinq-context-copy {\n font-size: 13px;\n line-height: 1.5;\n color: var(--blinq-text-soft);\n }\n\n .blinq-empty-card {\n min-height: 180px;\n justify-content: center;\n }\n\n .blinq-badge-pill {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: 28px;\n padding: 0 10px;\n border-radius: 999px;\n font-size: 11px;\n font-weight: 700;\n letter-spacing: 0.06em;\n text-transform: uppercase;\n }\n\n .blinq-badge-pill-default {\n background: rgba(15, 23, 42, 0.05);\n color: var(--blinq-text-soft);\n }\n\n .blinq-badge-pill-outline {\n border: 1px solid var(--blinq-border);\n color: var(--blinq-text-muted);\n background: rgba(255,255,255,0.84);\n }\n\n .blinq-badge-pill-soft {\n background: #f5f5f5;\n color: #111111;\n }\n\n .blinq-badge-pill-accent {\n background: #111111;\n color: #ffffff;\n }\n\n .blinq-composer {\n display: flex;\n flex-direction: column;\n gap: 10px;\n padding: 0 16px 16px;\n border-top: 1px solid var(--blinq-border);\n background: #ffffff;\n }\n\n .blinq-composer-copy {\n display: flex;\n flex-direction: column;\n gap: 4px;\n }\n\n .blinq-composer-title {\n font-size: 12px;\n font-weight: 700;\n letter-spacing: 0.08em;\n text-transform: uppercase;\n color: var(--blinq-text-muted);\n }\n\n .blinq-composer-hint {\n font-size: 13px;\n line-height: 1.45;\n color: var(--blinq-text-muted);\n }\n\n .blinq-composer-controls {\n display: flex;\n padding-top: 14px;\n }\n\n .blinq-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n border-radius: 14px;\n border: 1px solid transparent;\n font-size: 14px;\n font-weight: 600;\n transition:\n background 120ms ease,\n border-color 120ms ease,\n color 120ms ease,\n opacity 120ms ease,\n transform 120ms ease;\n cursor: pointer;\n outline: none;\n }\n\n .blinq-button:disabled {\n opacity: 0.55;\n cursor: not-allowed;\n }\n\n .blinq-button:focus-visible,\n .blinq-input:focus-visible,\n .blinq-tab-trigger:focus-visible,\n .blinq-prompt-chip:focus-visible {\n box-shadow: 0 0 0 3px rgba(17, 17, 17, 0.12);\n outline: none;\n }\n\n .blinq-button-default {\n background: #111111;\n color: white;\n box-shadow: 0 12px 24px rgba(17, 17, 17, 0.16);\n }\n\n .blinq-button-default:hover:not(:disabled) {\n filter: brightness(1.04);\n }\n\n .blinq-button-outline {\n border-color: var(--blinq-border-strong);\n background: #ffffff;\n color: var(--blinq-text);\n }\n\n .blinq-button-outline:hover:not(:disabled),\n .blinq-button-ghost:hover:not(:disabled) {\n background: var(--blinq-surface-soft);\n }\n\n .blinq-button-ghost {\n border-color: var(--blinq-border);\n background: rgba(255,255,255,0.76);\n color: var(--blinq-text-soft);\n }\n\n .blinq-button-destructive {\n background: #111111;\n border-color: #111111;\n color: #ffffff;\n }\n\n .blinq-button-md {\n height: 44px;\n padding: 0 16px;\n }\n\n .blinq-button-sm {\n height: 36px;\n padding: 0 12px;\n font-size: 13px;\n }\n\n .blinq-button-icon {\n width: 44px;\n height: 44px;\n padding: 0;\n }\n\n .blinq-button-icon-sm {\n width: 36px;\n height: 36px;\n padding: 0;\n border-radius: 12px;\n }\n\n .blinq-input {\n width: 100%;\n min-width: 0;\n height: 52px;\n border-radius: 18px;\n border: 1px solid var(--blinq-border-strong);\n padding: 0 48px 0 44px;\n background: #ffffff;\n color: var(--blinq-text);\n outline: none;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);\n }\n\n .blinq-input-shell {\n position: relative;\n width: 100%;\n }\n\n .blinq-recording-input {\n display: flex;\n align-items: center;\n gap: 12px;\n width: 100%;\n min-width: 0;\n height: 52px;\n padding: 0 48px 0 44px;\n border-radius: 18px;\n border: 1px solid var(--blinq-border-strong);\n background: #ffffff;\n color: var(--blinq-text);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);\n }\n\n .blinq-recording-time {\n flex: 0 0 auto;\n min-width: 42px;\n font-size: 12px;\n font-weight: 700;\n letter-spacing: 0.04em;\n color: var(--blinq-text-soft);\n font-variant-numeric: tabular-nums;\n }\n\n .blinq-recording-waveform {\n display: flex;\n align-items: flex-end;\n gap: 3px;\n flex: 1 1 auto;\n min-width: 0;\n height: 24px;\n overflow: hidden;\n }\n\n .blinq-recording-waveform-bar {\n width: 3px;\n min-width: 3px;\n height: 100%;\n border-radius: 999px;\n background: rgba(17, 17, 17, 0.22);\n transform-origin: center bottom;\n transition:\n transform 110ms ease,\n background 110ms ease;\n }\n\n .blinq-input-mic {\n position: absolute;\n left: 8px;\n top: 50%;\n transform: translateY(-50%);\n z-index: 2;\n }\n\n .blinq-input-send {\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n z-index: 2;\n width: 36px;\n height: 36px;\n min-width: 36px;\n border-radius: 12px;\n }\n\n .blinq-text-animate {\n display: block;\n }\n\n .blinq-text-animate-blur-in .blinq-text-segment {\n display: inline-block;\n opacity: 0;\n filter: blur(8px);\n animation: blinq-blur-in 420ms cubic-bezier(0.16, 1, 0.3, 1) forwards;\n }\n\n @keyframes blinq-thinking-pulse {\n 0%, 100% {\n opacity: 0.28;\n transform: translateY(0);\n }\n\n 50% {\n opacity: 1;\n transform: translateY(-2px);\n }\n }\n\n @keyframes blinq-agent-spin {\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n }\n\n @keyframes blinq-agent-bob {\n 0%, 100% {\n transform: translateY(0);\n }\n\n 50% {\n transform: translateY(-0.8px);\n }\n }\n\n @keyframes blinq-agent-spark {\n 0%, 100% {\n transform: scale(1);\n opacity: 0.72;\n }\n\n 50% {\n transform: scale(1.25);\n opacity: 1;\n }\n }\n\n @keyframes blinq-blur-in {\n 0% {\n opacity: 0;\n filter: blur(8px);\n transform: translateY(4px);\n }\n\n 100% {\n opacity: 1;\n filter: blur(0);\n transform: translateY(0);\n }\n }\n\n .blinq-input::placeholder {\n color: var(--blinq-text-muted);\n }\n\n @media (max-width: 720px) {\n .blinq-shell {\n bottom: 12px;\n left: 12px;\n right: 12px;\n width: auto;\n max-width: none;\n align-items: stretch;\n }\n\n .blinq-shell[data-side=\"left\"],\n .blinq-shell[data-side=\"right\"] {\n left: 12px;\n right: 12px;\n align-items: stretch;\n }\n\n .blinq-panel,\n .blinq-launcher {\n max-width: none;\n width: 100%;\n }\n\n .blinq-workspace {\n grid-template-columns: 1fr;\n }\n\n .blinq-sidebar {\n border-right: none;\n border-bottom: 1px solid var(--blinq-border);\n }\n\n .blinq-sidebar-group {\n flex-direction: row;\n overflow-x: auto;\n }\n\n .blinq-tab-trigger {\n min-width: 116px;\n }\n\n .blinq-context-grid {\n grid-template-columns: 1fr;\n }\n }\n`\n","import {\n type BlinqWidgetInitOptions,\n type BlinqWidgetConfigFile,\n BlinqWidget,\n init,\n initFromConfig,\n} from \"./index\"\nimport { EMBED_WIDGET_STYLES } from \"./embed-styles\"\n\ndeclare global {\n interface Window {\n BlinqWidget?: {\n init: typeof init\n initFromConfig: typeof initFromConfig\n }\n }\n}\n\nconst EMBED_TAG_NAME = \"blinq-widget\"\n\nfunction shadowRootStyles() {\n return EMBED_WIDGET_STYLES\n}\n\nclass BlinqWidgetElement extends HTMLElement {\n private widget: BlinqWidget | null = null\n private widgetPromise: Promise<BlinqWidget> | null = null\n private mountEl: HTMLDivElement | null = null\n\n connectedCallback() {\n if (this.widget || this.widgetPromise) {\n return\n }\n\n const publicToken = this.getAttribute(\"public-token\")?.trim()\n if (!publicToken) {\n console.error(\"Blinq widget: missing required public-token attribute.\")\n return\n }\n\n const root = this.shadowRoot ?? this.attachShadow({ mode: \"open\" })\n root.replaceChildren()\n\n const style = document.createElement(\"style\")\n style.textContent = shadowRootStyles()\n\n const mount = document.createElement(\"div\")\n mount.dataset.blinqMount = \"true\"\n root.append(style, mount)\n this.mountEl = mount\n\n const options: BlinqWidgetInitOptions = {\n publicToken,\n apiBaseUrl: this.getAttribute(\"api-base-url\")?.trim() || undefined,\n mcpEndpoint: this.getAttribute(\"mcp-endpoint\")?.trim() || undefined,\n mount,\n }\n\n this.widgetPromise = init(options)\n .then((widget) => {\n this.widget = widget\n return widget\n })\n .catch((error) => {\n console.error(\"Blinq widget failed to initialize.\", error)\n throw error\n })\n .finally(() => {\n this.widgetPromise = null\n })\n }\n\n disconnectedCallback() {\n this.widget?.destroy()\n void this.widget?.endSession()\n this.widget = null\n this.widgetPromise = null\n this.mountEl = null\n }\n}\n\nfunction defineBlinqWidgetElement() {\n if (typeof window === \"undefined\" || typeof customElements === \"undefined\") {\n return\n }\n\n if (!customElements.get(EMBED_TAG_NAME)) {\n customElements.define(EMBED_TAG_NAME, BlinqWidgetElement)\n }\n}\n\nif (typeof window !== \"undefined\") {\n defineBlinqWidgetElement()\n window.BlinqWidget = {\n init,\n initFromConfig,\n }\n}\n\nexport { init, initFromConfig, BlinqWidgetElement }\nexport type { BlinqWidgetConfigFile, BlinqWidgetInitOptions }\n"],"mappings":";;;;;;AAAO,IAAM,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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","names":[]}