@k2b/ui 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/actions/index.js +2 -2
- package/dist/browser/actions/index.js.map +1 -1
- package/dist/browser/chat/ChatComposer.js +1 -1
- package/dist/browser/chat/ChatComposer.js.map +1 -1
- package/dist/browser/chat/ChatContextPopup.js.map +1 -1
- package/dist/browser/chat/ChatPrimitives.js +2 -2
- package/dist/browser/chat/ChatPrimitives.js.map +1 -1
- package/dist/browser/chat/ChatTasks.js +1 -1
- package/dist/browser/chat/ChatTasks.js.map +1 -1
- package/dist/browser/chat/ChatTimeline.js +1 -1
- package/dist/browser/chat/ChatTimeline.js.map +1 -1
- package/dist/browser/chat/composer-document.js.map +1 -1
- package/dist/browser/chat/index.js.map +1 -1
- package/dist/browser/content/Chart.js +3 -3
- package/dist/browser/content/Chart.js.map +1 -1
- package/dist/browser/content/ChartExplorer.js +4 -4
- package/dist/browser/content/ChartExplorer.js.map +1 -1
- package/dist/browser/content/ChartExplorerControls.js +1 -1
- package/dist/browser/content/ChartExplorerControls.js.map +1 -1
- package/dist/browser/content/ChartFilterControls.js +2 -2
- package/dist/browser/content/ChartFilterControls.js.map +1 -1
- package/dist/browser/content/ChartSnapshotView.js +2 -1
- package/dist/browser/content/ChartSnapshotView.js.map +1 -1
- package/dist/browser/content/FileView.js +7 -3
- package/dist/browser/content/FileView.js.map +1 -1
- package/dist/browser/content/MarkdownView.js.map +1 -1
- package/dist/browser/content/Pagination.js.map +1 -1
- package/dist/browser/content/chart-explorer.js.map +1 -1
- package/dist/browser/content/chart-inspection.js.map +1 -1
- package/dist/browser/content/chart-line-gaps.js.map +1 -1
- package/dist/browser/content/chart-snapshot.js.map +1 -1
- package/dist/browser/content/file-view-preview.js.map +1 -1
- package/dist/browser/content/index.js +9 -9
- package/dist/browser/content/index.js.map +1 -1
- package/dist/browser/feedback/toast.js.map +1 -1
- package/dist/browser/inputs/ChoiceGroups.js.map +1 -1
- package/dist/browser/inputs/Select.js.map +1 -1
- package/dist/browser/inputs/markdown/behaviors.js +1 -1
- package/dist/browser/inputs/markdown/behaviors.js.map +1 -1
- package/dist/browser/layout/AppWorkspace.js +3 -3
- package/dist/browser/layout/AppWorkspace.js.map +1 -1
- package/dist/browser/layout/DetailPanel.js +1 -1
- package/dist/browser/layout/DetailPanel.js.map +1 -1
- package/dist/browser/layout/ScrollArea.js.map +1 -1
- package/dist/browser/layout/SidebarItemPreview.js +1 -1
- package/dist/browser/layout/SidebarItemPreview.js.map +1 -1
- package/dist/browser/layout/app-workspace-controller.js +1 -1
- package/dist/browser/layout/app-workspace-controller.js.map +1 -1
- package/dist/browser/layout/app-workspace-state.js.map +1 -1
- package/dist/browser/layout/index.js +3 -3
- package/dist/browser/layout/index.js.map +1 -1
- package/dist/ssr/actions/index.js +2 -2
- package/dist/ssr/actions/index.js.map +1 -1
- package/dist/ssr/chat/ChatComposer.js +1 -1
- package/dist/ssr/chat/ChatComposer.js.map +1 -1
- package/dist/ssr/chat/ChatContextPopup.js.map +1 -1
- package/dist/ssr/chat/ChatPrimitives.js +2 -2
- package/dist/ssr/chat/ChatPrimitives.js.map +1 -1
- package/dist/ssr/chat/ChatTasks.js +1 -1
- package/dist/ssr/chat/ChatTasks.js.map +1 -1
- package/dist/ssr/chat/ChatTimeline.js +1 -1
- package/dist/ssr/chat/ChatTimeline.js.map +1 -1
- package/dist/ssr/chat/composer-document.js.map +1 -1
- package/dist/ssr/chat/index.js.map +1 -1
- package/dist/ssr/content/Chart.js +3 -3
- package/dist/ssr/content/Chart.js.map +1 -1
- package/dist/ssr/content/ChartExplorer.js +4 -4
- package/dist/ssr/content/ChartExplorer.js.map +1 -1
- package/dist/ssr/content/ChartExplorerControls.js +1 -1
- package/dist/ssr/content/ChartExplorerControls.js.map +1 -1
- package/dist/ssr/content/ChartFilterControls.js +2 -2
- package/dist/ssr/content/ChartFilterControls.js.map +1 -1
- package/dist/ssr/content/ChartSnapshotView.js +2 -1
- package/dist/ssr/content/ChartSnapshotView.js.map +1 -1
- package/dist/ssr/content/FileView.js +7 -3
- package/dist/ssr/content/FileView.js.map +1 -1
- package/dist/ssr/content/MarkdownView.js.map +1 -1
- package/dist/ssr/content/Pagination.js.map +1 -1
- package/dist/ssr/content/chart-explorer.js.map +1 -1
- package/dist/ssr/content/chart-inspection.js.map +1 -1
- package/dist/ssr/content/chart-line-gaps.js.map +1 -1
- package/dist/ssr/content/chart-snapshot.js.map +1 -1
- package/dist/ssr/content/file-view-preview.js.map +1 -1
- package/dist/ssr/content/index.js +9 -9
- package/dist/ssr/content/index.js.map +1 -1
- package/dist/ssr/feedback/toast.js.map +1 -1
- package/dist/ssr/inputs/ChoiceGroups.js.map +1 -1
- package/dist/ssr/inputs/Select.js.map +1 -1
- package/dist/ssr/inputs/markdown/behaviors.js +1 -1
- package/dist/ssr/inputs/markdown/behaviors.js.map +1 -1
- package/dist/ssr/layout/AppWorkspace.js +3 -3
- package/dist/ssr/layout/AppWorkspace.js.map +1 -1
- package/dist/ssr/layout/DetailPanel.js +1 -1
- package/dist/ssr/layout/DetailPanel.js.map +1 -1
- package/dist/ssr/layout/ScrollArea.js.map +1 -1
- package/dist/ssr/layout/SidebarItemPreview.js +1 -1
- package/dist/ssr/layout/SidebarItemPreview.js.map +1 -1
- package/dist/ssr/layout/app-workspace-controller.js +1 -1
- package/dist/ssr/layout/app-workspace-controller.js.map +1 -1
- package/dist/ssr/layout/app-workspace-state.js.map +1 -1
- package/dist/ssr/layout/index.js +3 -3
- package/dist/ssr/layout/index.js.map +1 -1
- package/dist/types/actions/index.d.ts +4 -4
- package/dist/types/chat/ChatComposer.d.ts +1 -1
- package/dist/types/chat/index.d.ts +1 -1
- package/dist/types/content/Chart.d.ts +2 -2
- package/dist/types/content/ChartExplorer.d.ts +2 -2
- package/dist/types/content/ChartExplorerControls.d.ts +1 -1
- package/dist/types/content/ChartSnapshotView.d.ts +1 -1
- package/dist/types/content/chart-inspection.d.ts +1 -1
- package/dist/types/content/index.d.ts +15 -15
- package/dist/types/layout/AppWorkspace.d.ts +1 -1
- package/dist/types/layout/SidebarItemPreview.d.ts +1 -1
- package/dist/types/layout/index.d.ts +3 -3
- package/package.json +1 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createSignal","For","onCleanup","Show","Dropdown","ChatContextPopup","Button","useUiMessages","ProgressBar","executeChatAction","roleLabel","role","messages","assistant","user","tool","system","statusLabel","status","waiting","generating","failed","statusIcon","ChatProgressDots","_$getNextElement","_tmpl$","attachmentIcon","attachment","icon","kind","finiteNonNegative","value","Number","isFinite","Math","max","finiteUsageValue","normalizedUsage","usage","input","output","explicitTotal","total","reported","formatStableInteger","digits","String","round","replace","formatChatTokens","tokens","toFixed","dateTime","date","Date","getTime","toISOString","ChatMessage","props","busyActionId","setBusyActionId","completedActionId","setCompletedActionId","completedTimer","timestamp","createdAt","time","timeLabel","actions","actionDisplay","hasMeta","Boolean","length","runAction","action","disabled","id","clearTimeout","setTimeout","error","onActionError","actionIcon","menuItems","map","label","variant","_el$2","_tmpl$8","_el$3","firstChild","_el$5","_el$6","_co$","_$getNextMarker","nextSibling","_el$4","_el$20","_el$21","_co$6","_el$22","_el$23","_co$7","_el$24","_el$25","_co$8","_$insert","_$createComponent","when","attachments","children","_el$7","_tmpl$2","each","content","_$memo","previewUrl","fallback","_el$28","_tmpl$1","_$effect","_$className","_el$26","_tmpl$9","_p$","_v$6","_v$7","alt","name","e","_$setAttribute","t","undefined","_el$27","_tmpl$0","href","_el$29","_tmpl$10","_v$8","_v$9","_el$30","_tmpl$11","_v$0","_v$1","_v$10","_v$11","openInNewTab","a","o","_el$8","_tmpl$3","_el$9","_el$0","_tmpl$7","_el$12","_el$13","_co$2","_el$14","_el$15","_co$3","_el$16","_el$17","_co$4","_el$18","_el$19","_co$5","_el$31","_tmpl$12","_el$32","_el$33","_el$34","_co$9","_v$12","_v$13","_el$1","_tmpl$4","_el$35","_tmpl$13","_el$10","_tmpl$5","_el$36","_tmpl$14","_el$37","$$click","_v$14","_v$15","pressed","_v$16","pressedTone","_v$17","_v$18","_v$19","_v$20","i","n","_$setProperty","s","_$runHydrationEvents","messageActions","Root","position","width","items","Trigger","appearance","title","_tmpl$6","_v$","class","_v$2","_v$3","_v$4","anchorId","_v$5","ActivityContent","_el$38","_tmpl$15","leading","_el$45","_tmpl$19","_el$39","_tmpl$16","_el$40","_el$41","_el$42","_co$0","description","_el$46","_tmpl$20","trailing","_el$43","_tmpl$17","disclosure","_tmpl$18","ChatActivity","expanded","setExpanded","defaultOpen","open","tone","style","accent","renderBody","_el$50","_tmpl$22","_el$51","_v$30","_v$31","_v$32","_v$33","busy","_v$34","_v$35","_v$36","_$style","_el$47","_tmpl$21","_el$48","_el$49","addEventListener","event","currentTarget","onOpenChange","_$mergeProps","_c$","render","_v$21","_v$22","_v$23","_v$24","_v$25","bodyInset","_v$26","_v$27","_v$28","_v$29","h","r","ChatContextUsage","setBusy","run","formatNumber","formattedUsageValue","unknown","loopUsage","windowSize","contextWindow","percent","min","remaining","accessibleLabel","contextUsageUnavailableWithWindow","window","contextUsageUnavailable","tokensUsed","tokensUsedPercent","_el$54","_tmpl$25","_el$55","_el$78","_el$79","_co$12","_el$56","_el$72","_el$73","_co$1","_el$57","_el$58","_el$59","_el$60","_el$61","_el$62","_el$74","_el$75","_co$10","_el$66","_el$67","_el$68","_el$76","_el$77","_co$11","_el$80","_el$81","_co$13","lastRequestContext","size","contextWindowUsed","modelLabel","model","_el$82","_tmpl$24","_el$83","_el$84","_el$63","_el$64","_el$65","loopTotal","_c$3","notConfigured","_el$69","_el$70","_el$71","_c$4","onClick","aria-busy","_el$85","type","data-warning","aria-label","_tmpl$23","_el$53","_c$2","_$delegateEvents"],"sources":["chat/ChatPrimitives.tsx"],"sourcesContent":["import { createSignal, For, type JSX, onCleanup, Show } from \"solid-js\";\nimport { Dropdown, type DropdownItem } from \"../actions/Dropdown\";\nimport { ChatContextPopup } from \"./ChatContextPopup\";\nimport { Button } from \"../actions/Button\";\nimport { type UiMessages, useUiMessages } from \"../intl/messages\";\nimport { ProgressBar } from \"../surfaces/ProgressBar\";\nimport { executeChatAction } from \"./chat-behavior\";\nimport type { ChatAction, ChatActivityTone, ChatAttachment, ChatContextUsageData, ChatMessageStatus, ChatRole } from \"./types\";\n\nexport type ChatMessageProps = {\n role: ChatRole;\n children?: JSX.Element;\n label?: string;\n createdAt?: string | Date;\n timeLabel?: string;\n status?: ChatMessageStatus;\n attachments?: readonly ChatAttachment[];\n actions?: readonly ChatAction[];\n actionDisplay?: \"auto\" | \"inline\" | \"menu\";\n anchorId?: string | number;\n onActionError?: (error: unknown) => void;\n class?: string;\n};\n\nexport type ChatActivityProps = {\n label: string;\n description?: string;\n icon?: string;\n /** Optional host-owned leading visual rendered instead of the icon. */\n leading?: JSX.Element;\n /** Optional identity accent for the leading visual. Semantic tones still take precedence. */\n accent?: string;\n tone?: ChatActivityTone;\n /** Marks the activity as running with the shared accent sweep. */\n busy?: boolean;\n trailing?: JSX.Element;\n /** Controlled disclosure state. Omit to keep native details behavior. */\n open?: boolean;\n /** Reports disclosure changes when `open` is controlled by the host. */\n onOpenChange?: (open: boolean) => void;\n defaultOpen?: boolean;\n /** Set to false when the body is a peer list that should align with the activity row. */\n bodyInset?: boolean;\n anchorId?: string | number;\n children?: JSX.Element;\n /** Mount expensive details only while expanded. */\n renderBody?: () => JSX.Element;\n class?: string;\n};\n\nexport type ChatContextUsageProps = ChatContextUsageData & {\n action?: ChatAction;\n onActionError?: (error: unknown) => void;\n /** Host-owned number formatting. The default is locale-independent and SSR-stable. */\n formatNumber?: (value: number) => string;\n class?: string;\n};\n\nconst roleLabel = (role: ChatRole, messages: UiMessages): string => {\n if (role === \"assistant\") return messages.assistant;\n if (role === \"user\") return messages.user;\n if (role === \"tool\") return messages.tool;\n return messages.system;\n};\n\nconst statusLabel = (status: ChatMessageStatus | undefined, messages: UiMessages): string | null => {\n if (status === \"pending\") return messages.waiting;\n if (status === \"streaming\") return messages.generating;\n if (status === \"error\") return messages.failed;\n return null;\n};\n\nconst statusIcon = (status: ChatMessageStatus | undefined): string => {\n if (status === \"pending\") return \"ti ti-clock\";\n return \"ti ti-alert-circle\";\n};\n\nconst ChatProgressDots = () => (\n <span class=\"k2b-chat-progress-dots\" aria-hidden=\"true\">\n <span />\n <span />\n <span />\n </span>\n);\n\nconst attachmentIcon = (attachment: ChatAttachment): string =>\n attachment.icon ?? (attachment.kind === \"image\" ? \"ti ti-photo\" : attachment.kind === \"resource\" ? \"ti ti-link\" : \"ti ti-file\");\n\nconst finiteNonNegative = (value: number | undefined): number =>\n typeof value === \"number\" && Number.isFinite(value) ? Math.max(0, value) : 0;\n\nconst finiteUsageValue = (value: number | undefined): number | null =>\n typeof value === \"number\" && Number.isFinite(value) && value >= 0 ? value : null;\n\nconst normalizedUsage = (usage: ChatContextUsageData[\"usage\"]) => {\n const input = finiteUsageValue(usage?.input);\n const output = finiteUsageValue(usage?.output);\n const explicitTotal = finiteUsageValue(usage?.total);\n const total = explicitTotal ?? (input !== null || output !== null ? (input ?? 0) + (output ?? 0) : null);\n return { input, output, total, reported: total !== null };\n};\n\nconst formatStableInteger = (value: number): string => {\n const digits = String(Math.round(finiteNonNegative(value)));\n return digits.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n};\n\nexport const formatChatTokens = (tokens: number): string => {\n const value = finiteNonNegative(tokens);\n if (value >= 1_000_000) return `${(value / 1_000_000).toFixed(1)}M`;\n if (value >= 1_000) return `${(value / 1_000).toFixed(1)}k`;\n return String(Math.round(value));\n};\n\nconst dateTime = (value: string | Date | undefined): string | null => {\n if (!value) return null;\n const date = value instanceof Date ? value : new Date(value);\n return Number.isFinite(date.getTime()) ? date.toISOString() : null;\n};\n\nexport function ChatMessage(props: ChatMessageProps): JSX.Element {\n const messages = useUiMessages();\n const [busyActionId, setBusyActionId] = createSignal<string | null>(null);\n const [completedActionId, setCompletedActionId] = createSignal<string | null>(null);\n let completedTimer: ReturnType<typeof setTimeout> | undefined;\n const status = () => statusLabel(props.status, messages());\n const timestamp = () => dateTime(props.createdAt);\n // Locale and timezone are application policy. Requiring an explicit visible\n // label keeps SSR and hydration byte-stable while `createdAt` still supplies\n // the semantic machine-readable timestamp.\n const time = () => props.timeLabel ?? null;\n const actions = () => props.actions ?? [];\n const actionDisplay = () =>\n props.actionDisplay === \"auto\" || !props.actionDisplay ? (props.role === \"user\" ? \"menu\" : \"inline\") : props.actionDisplay;\n const hasMeta = () => props.status === \"streaming\" || status() !== null || Boolean(time()) || actions().length > 0;\n\n const runAction = async (action: ChatAction) => {\n if (action.disabled || busyActionId()) return;\n setBusyActionId(action.id);\n try {\n await executeChatAction(action);\n setCompletedActionId(action.id);\n if (completedTimer) clearTimeout(completedTimer);\n completedTimer = setTimeout(() => setCompletedActionId(null), 1400);\n } catch (error) {\n props.onActionError?.(error);\n } finally {\n setBusyActionId(null);\n }\n };\n\n const actionIcon = (action: ChatAction) =>\n busyActionId() === action.id\n ? \"ti ti-loader-2 k2b-spin\"\n : completedActionId() === action.id\n ? \"ti ti-check\"\n : (action.icon ?? \"ti ti-dots\");\n\n onCleanup(() => {\n if (completedTimer) clearTimeout(completedTimer);\n });\n\n const menuItems = (): readonly DropdownItem[] =>\n actions().map((action) => ({\n icon: actionIcon(action),\n label: action.label,\n variant: action.variant,\n disabled: action.disabled || Boolean(busyActionId()),\n action: () => void runAction(action),\n }));\n\n return (\n <article\n class={`k2b-chat-message ${props.class ?? \"\"}`}\n data-role={props.role}\n data-status={props.status ?? \"complete\"}\n data-chat-anchor={props.anchorId !== undefined ? String(props.anchorId) : undefined}\n aria-busy={props.status === \"pending\" || props.status === \"streaming\" ? \"true\" : undefined}\n >\n <span class=\"k2b-sr-only\">{props.label ?? roleLabel(props.role, messages())}: </span>\n <Show when={(props.attachments?.length ?? 0) > 0}>\n <div class=\"k2b-chat-message__attachments\" role=\"list\" aria-label={messages().attachments}>\n <For each={props.attachments}>\n {(attachment) => {\n const content = () => (\n <>\n <Show\n when={attachment.kind === \"image\" && attachment.previewUrl}\n fallback={<i class={attachmentIcon(attachment)} aria-hidden=\"true\" />}\n >\n <img src={attachment.previewUrl} alt={attachment.alt ?? attachment.name} />\n </Show>\n <Show when={attachment.kind !== \"image\"}>\n <span>{attachment.name}</span>\n </Show>\n </>\n );\n return (\n <Show\n when={attachment.href}\n fallback={\n <div class=\"k2b-chat-message__attachment\" data-kind={attachment.kind} role=\"listitem\" title={attachment.name}>\n {content()}\n </div>\n }\n >\n {(href) => (\n <a\n class=\"k2b-chat-message__attachment\"\n data-kind={attachment.kind}\n role=\"listitem\"\n title={attachment.name}\n href={href()}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label={messages().openInNewTab({ name: attachment.name })}\n >\n {content()}\n </a>\n )}\n </Show>\n );\n }}\n </For>\n </div>\n </Show>\n\n <Show when={props.children !== undefined && props.children !== null && props.children !== \"\"}>\n <div class=\"k2b-chat-message__bubble\">\n <div class=\"k2b-chat-message__content\">{props.children}</div>\n </div>\n </Show>\n\n <Show when={hasMeta()}>\n <footer class=\"k2b-chat-message__meta\">\n <Show\n when={props.status === \"streaming\"}\n fallback={\n <Show when={status()}>\n {(label) => (\n <span class=\"k2b-chat-message__status\" role={props.status === \"error\" ? \"alert\" : \"status\"}>\n <i class={statusIcon(props.status)} aria-hidden=\"true\" />\n {label()}\n </span>\n )}\n </Show>\n }\n >\n <span class=\"k2b-chat-message__status k2b-chat-message__status--streaming\" role=\"status\" aria-label={messages().generating}>\n <ChatProgressDots />\n </span>\n </Show>\n <Show when={time()}>{(label) => <time dateTime={timestamp() ?? undefined}>{label()}</time>}</Show>\n <Show when={actions().length > 0 && actionDisplay() === \"inline\"}>\n <span class=\"k2b-chat-message__actions\" role=\"group\" aria-label={messages().messageActions}>\n <For each={actions()}>\n {(action) => (\n <button\n type=\"button\"\n aria-label={action.label}\n aria-pressed={action.pressed}\n data-pressed-tone={action.pressedTone}\n title={action.label}\n data-danger={action.variant === \"danger\" ? \"true\" : undefined}\n disabled={action.disabled || Boolean(busyActionId())}\n onClick={() => void runAction(action)}\n >\n <i class={actionIcon(action)} aria-hidden=\"true\" />\n </button>\n )}\n </For>\n </span>\n </Show>\n <Show when={actions().length > 0 && actionDisplay() === \"menu\"}>\n <Dropdown.Root position=\"bottom-left\" width=\"12rem\" label={messages().messageActions} items={menuItems()}>\n <Dropdown.Trigger\n appearance=\"plain\"\n class=\"k2b-chat-message__menu\"\n label={messages().messageActions}\n title={messages().messageActions}\n >\n <i class=\"ti ti-dots\" aria-hidden=\"true\" />\n </Dropdown.Trigger>\n </Dropdown.Root>\n </Show>\n </footer>\n </Show>\n </article>\n );\n}\n\nconst ActivityContent = (props: ChatActivityProps & { disclosure?: boolean }) => (\n <>\n <span class=\"k2b-chat-activity__leading\" aria-hidden=\"true\">\n <Show when={props.leading} fallback={<i class={props.icon ?? \"ti ti-sparkles\"} />}>\n {props.leading}\n </Show>\n </span>\n <span class=\"k2b-chat-activity__copy\">\n <strong>{props.label}</strong>\n <Show when={props.description}>{(description) => <small>{description()}</small>}</Show>\n </span>\n <Show when={props.trailing}>\n <span class=\"k2b-chat-activity__trailing\">{props.trailing}</span>\n </Show>\n <Show when={props.disclosure}>\n <i class=\"ti ti-chevron-right k2b-chat-activity__chevron\" aria-hidden=\"true\" />\n </Show>\n </>\n);\n\nexport function ChatActivity(props: ChatActivityProps): JSX.Element {\n const [expanded, setExpanded] = createSignal(props.defaultOpen ?? false);\n const open = () => props.open ?? expanded();\n const tone = () => props.tone ?? \"neutral\";\n const style = () => (props.accent ? { \"--k2b-chat-activity-accent\": props.accent } : undefined);\n return (\n <Show\n when={props.renderBody || props.children}\n fallback={\n <div\n class={`k2b-chat-activity ${props.class ?? \"\"}`}\n data-tone={tone()}\n data-accent={props.accent ? \"true\" : undefined}\n data-busy={props.busy ? \"true\" : undefined}\n data-chat-anchor={props.anchorId !== undefined ? String(props.anchorId) : undefined}\n style={style()}\n aria-busy={props.busy ? \"true\" : undefined}\n >\n <div class=\"k2b-chat-activity__row\">\n <ActivityContent {...props} />\n </div>\n </div>\n }\n >\n <details\n class={`k2b-chat-activity ${props.class ?? \"\"}`}\n data-tone={tone()}\n data-accent={props.accent ? \"true\" : undefined}\n data-busy={props.busy ? \"true\" : undefined}\n data-body-inset={props.bodyInset === false ? \"false\" : undefined}\n data-chat-anchor={props.anchorId !== undefined ? String(props.anchorId) : undefined}\n style={style()}\n open={open()}\n onToggle={(event) => { setExpanded(event.currentTarget.open); props.onOpenChange?.(event.currentTarget.open); }}\n aria-busy={props.busy ? \"true\" : undefined}\n >\n <summary class=\"k2b-chat-activity__row\">\n <ActivityContent {...props} disclosure />\n </summary>\n <div class=\"k2b-chat-activity__body\">{props.renderBody ? <Show when={open() ? props.renderBody : undefined}>{(render) => render()()}</Show> : props.children}</div>\n </details>\n </Show>\n );\n}\n\nexport function ChatContextUsage(props: ChatContextUsageProps): JSX.Element {\n const [busy, setBusy] = createSignal(false);\n const run = async () => {\n const action = props.action;\n if (!action || action.disabled || busy()) return;\n setBusy(true);\n try {\n await executeChatAction(action);\n } catch (error) {\n props.onActionError?.(error);\n } finally {\n setBusy(false);\n }\n };\n const messages = useUiMessages();\n const formatNumber = (value: number) => (props.formatNumber ?? formatStableInteger)(value);\n const formattedUsageValue = (value: number | null): string => (value === null ? messages().unknown : formatNumber(value));\n const usage = () => normalizedUsage(props.usage);\n const loopUsage = () => normalizedUsage(props.loopUsage);\n const total = () => usage().total ?? 0;\n const windowSize = () => finiteNonNegative(props.contextWindow);\n const reported = () => usage().reported;\n const percent = () => (reported() && windowSize() > 0 ? Math.min(100, Math.round((total() / windowSize()) * 100)) : null);\n const remaining = () => (reported() && windowSize() > 0 ? Math.max(0, windowSize() - total()) : null);\n const accessibleLabel = () => {\n if (!reported()) {\n return windowSize() > 0\n ? messages().contextUsageUnavailableWithWindow({ window: formatNumber(windowSize()) })\n : messages().contextUsageUnavailable;\n }\n return percent() === null\n ? messages().tokensUsed({ total: formatNumber(total()) })\n : messages().tokensUsedPercent({ total: formatNumber(total()), percent: percent()! });\n };\n\n return (\n <ChatContextPopup\n content={\n <div class=\"k2b-chat-context__tooltip\">\n <strong>{messages().lastRequestContext}</strong>\n <Show when={percent() !== null}>\n <ProgressBar\n value={percent() ?? 0}\n size=\"xs\"\n tone={(percent() ?? 0) >= 85 ? \"danger\" : \"info\"}\n label={messages().contextWindowUsed}\n />\n </Show>\n <dl>\n <Show when={props.modelLabel}>\n {(model) => (\n <div>\n <dt>{messages().model}</dt>\n <dd>{model()}</dd>\n </div>\n )}\n </Show>\n <div>\n <dt>{messages().input}</dt>\n <dd>{formattedUsageValue(usage().input)}</dd>\n </div>\n <div>\n <dt>{messages().output}</dt>\n <dd>{formattedUsageValue(usage().output)}</dd>\n </div>\n <Show when={loopUsage().reported}>\n <div>\n <dt>{messages().loopTotal}</dt>\n <dd>{formattedUsageValue(loopUsage().total)}</dd>\n </div>\n </Show>\n <div>\n <dt>{messages().window}</dt>\n <dd>{windowSize() > 0 ? formatNumber(windowSize()) : messages().notConfigured}</dd>\n </div>\n <Show when={remaining() !== null}>\n <div>\n <dt>{messages().remaining}</dt>\n <dd>{remaining() === null ? messages().unknown : formatNumber(remaining()!)}</dd>\n </div>\n </Show>\n </dl>\n <Show when={props.action}>\n {(action) => (\n <Button size=\"xs\" variant=\"subtle\" disabled={action().disabled || busy()} onClick={() => void run()} aria-busy={busy()}>\n <i class={busy() ? \"ti ti-loader-2 k2b-spin\" : action().icon} aria-hidden=\"true\" />\n {action().label}\n </Button>\n )}\n </Show>\n </div>\n }\n type=\"button\"\n class={`k2b-chat-context ${props.class ?? \"\"}`}\n data-warning={reported() && (percent() ?? 0) >= 85 ? \"true\" : undefined}\n aria-label={accessibleLabel()}\n >\n <i class=\"ti ti-brain\" aria-hidden=\"true\" />\n <span>{percent() === null ? \"–\" : `${percent()}%`}</span>\n </ChatContextPopup>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createSignal","For","onCleanup","Show","Button","Dropdown","useUiMessages","ProgressBar","ChatContextPopup","executeChatAction","roleLabel","role","messages","assistant","user","tool","system","statusLabel","status","waiting","generating","failed","statusIcon","ChatProgressDots","_$getNextElement","_tmpl$","attachmentIcon","attachment","icon","kind","finiteNonNegative","value","Number","isFinite","Math","max","finiteUsageValue","normalizedUsage","usage","input","output","explicitTotal","total","reported","formatStableInteger","digits","String","round","replace","formatChatTokens","tokens","toFixed","dateTime","date","Date","getTime","toISOString","ChatMessage","props","busyActionId","setBusyActionId","completedActionId","setCompletedActionId","completedTimer","timestamp","createdAt","time","timeLabel","actions","actionDisplay","hasMeta","Boolean","length","runAction","action","disabled","id","clearTimeout","setTimeout","error","onActionError","actionIcon","menuItems","map","label","variant","_el$2","_tmpl$8","_el$3","firstChild","_el$5","_el$6","_co$","_$getNextMarker","nextSibling","_el$4","_el$20","_el$21","_co$6","_el$22","_el$23","_co$7","_el$24","_el$25","_co$8","_$insert","_$createComponent","when","attachments","children","_el$7","_tmpl$2","each","content","_$memo","previewUrl","fallback","_el$28","_tmpl$1","_$effect","_$className","_el$26","_tmpl$9","_p$","_v$6","_v$7","alt","name","e","_$setAttribute","t","undefined","_el$27","_tmpl$0","href","_el$29","_tmpl$10","_v$8","_v$9","_el$30","_tmpl$11","_v$0","_v$1","_v$10","_v$11","openInNewTab","a","o","_el$8","_tmpl$3","_el$9","_el$0","_tmpl$7","_el$12","_el$13","_co$2","_el$14","_el$15","_co$3","_el$16","_el$17","_co$4","_el$18","_el$19","_co$5","_el$31","_tmpl$12","_el$32","_el$33","_el$34","_co$9","_v$12","_v$13","_el$1","_tmpl$4","_el$35","_tmpl$13","_el$10","_tmpl$5","_el$36","_tmpl$14","_el$37","$$click","_v$14","_v$15","pressed","_v$16","pressedTone","_v$17","_v$18","_v$19","_v$20","i","n","_$setProperty","s","_$runHydrationEvents","messageActions","Root","position","width","items","Trigger","appearance","title","_tmpl$6","_v$","class","_v$2","_v$3","_v$4","anchorId","_v$5","ActivityContent","_el$38","_tmpl$15","leading","_el$45","_tmpl$19","_el$39","_tmpl$16","_el$40","_el$41","_el$42","_co$0","description","_el$46","_tmpl$20","trailing","_el$43","_tmpl$17","disclosure","_tmpl$18","ChatActivity","expanded","setExpanded","defaultOpen","open","tone","style","accent","renderBody","_el$50","_tmpl$22","_el$51","_v$30","_v$31","_v$32","_v$33","busy","_v$34","_v$35","_v$36","_$style","_el$47","_tmpl$21","_el$48","_el$49","addEventListener","event","currentTarget","onOpenChange","_$mergeProps","_c$","render","_v$21","_v$22","_v$23","_v$24","_v$25","bodyInset","_v$26","_v$27","_v$28","_v$29","h","r","ChatContextUsage","setBusy","run","formatNumber","formattedUsageValue","unknown","loopUsage","windowSize","contextWindow","percent","min","remaining","accessibleLabel","contextUsageUnavailableWithWindow","window","contextUsageUnavailable","tokensUsed","tokensUsedPercent","_el$54","_tmpl$25","_el$55","_el$78","_el$79","_co$12","_el$56","_el$72","_el$73","_co$1","_el$57","_el$58","_el$59","_el$60","_el$61","_el$62","_el$74","_el$75","_co$10","_el$66","_el$67","_el$68","_el$76","_el$77","_co$11","_el$80","_el$81","_co$13","lastRequestContext","size","contextWindowUsed","modelLabel","model","_el$82","_tmpl$24","_el$83","_el$84","_el$63","_el$64","_el$65","loopTotal","_c$3","notConfigured","_el$69","_el$70","_el$71","_c$4","onClick","aria-busy","_el$85","type","data-warning","aria-label","_tmpl$23","_el$53","_c$2","_$delegateEvents"],"sources":["chat/ChatPrimitives.tsx"],"sourcesContent":["import { createSignal, For, type JSX, onCleanup, Show } from \"solid-js\";\nimport { Button } from \"../actions/Button\";\nimport { Dropdown, type DropdownItem } from \"../actions/Dropdown\";\nimport { type UiMessages, useUiMessages } from \"../intl/messages\";\nimport { ProgressBar } from \"../surfaces/ProgressBar\";\nimport { ChatContextPopup } from \"./ChatContextPopup\";\nimport { executeChatAction } from \"./chat-behavior\";\nimport type { ChatAction, ChatActivityTone, ChatAttachment, ChatContextUsageData, ChatMessageStatus, ChatRole } from \"./types\";\n\nexport type ChatMessageProps = {\n role: ChatRole;\n children?: JSX.Element;\n label?: string;\n createdAt?: string | Date;\n timeLabel?: string;\n status?: ChatMessageStatus;\n attachments?: readonly ChatAttachment[];\n actions?: readonly ChatAction[];\n actionDisplay?: \"auto\" | \"inline\" | \"menu\";\n anchorId?: string | number;\n onActionError?: (error: unknown) => void;\n class?: string;\n};\n\nexport type ChatActivityProps = {\n label: string;\n description?: string;\n icon?: string;\n /** Optional host-owned leading visual rendered instead of the icon. */\n leading?: JSX.Element;\n /** Optional identity accent for the leading visual. Semantic tones still take precedence. */\n accent?: string;\n tone?: ChatActivityTone;\n /** Marks the activity as running with the shared accent sweep. */\n busy?: boolean;\n trailing?: JSX.Element;\n /** Controlled disclosure state. Omit to keep native details behavior. */\n open?: boolean;\n /** Reports disclosure changes when `open` is controlled by the host. */\n onOpenChange?: (open: boolean) => void;\n defaultOpen?: boolean;\n /** Set to false when the body is a peer list that should align with the activity row. */\n bodyInset?: boolean;\n anchorId?: string | number;\n children?: JSX.Element;\n /** Mount expensive details only while expanded. */\n renderBody?: () => JSX.Element;\n class?: string;\n};\n\nexport type ChatContextUsageProps = ChatContextUsageData & {\n action?: ChatAction;\n onActionError?: (error: unknown) => void;\n /** Host-owned number formatting. The default is locale-independent and SSR-stable. */\n formatNumber?: (value: number) => string;\n class?: string;\n};\n\nconst roleLabel = (role: ChatRole, messages: UiMessages): string => {\n if (role === \"assistant\") return messages.assistant;\n if (role === \"user\") return messages.user;\n if (role === \"tool\") return messages.tool;\n return messages.system;\n};\n\nconst statusLabel = (status: ChatMessageStatus | undefined, messages: UiMessages): string | null => {\n if (status === \"pending\") return messages.waiting;\n if (status === \"streaming\") return messages.generating;\n if (status === \"error\") return messages.failed;\n return null;\n};\n\nconst statusIcon = (status: ChatMessageStatus | undefined): string => {\n if (status === \"pending\") return \"ti ti-clock\";\n return \"ti ti-alert-circle\";\n};\n\nconst ChatProgressDots = () => (\n <span class=\"k2b-chat-progress-dots\" aria-hidden=\"true\">\n <span />\n <span />\n <span />\n </span>\n);\n\nconst attachmentIcon = (attachment: ChatAttachment): string =>\n attachment.icon ?? (attachment.kind === \"image\" ? \"ti ti-photo\" : attachment.kind === \"resource\" ? \"ti ti-link\" : \"ti ti-file\");\n\nconst finiteNonNegative = (value: number | undefined): number =>\n typeof value === \"number\" && Number.isFinite(value) ? Math.max(0, value) : 0;\n\nconst finiteUsageValue = (value: number | undefined): number | null =>\n typeof value === \"number\" && Number.isFinite(value) && value >= 0 ? value : null;\n\nconst normalizedUsage = (usage: ChatContextUsageData[\"usage\"]) => {\n const input = finiteUsageValue(usage?.input);\n const output = finiteUsageValue(usage?.output);\n const explicitTotal = finiteUsageValue(usage?.total);\n const total = explicitTotal ?? (input !== null || output !== null ? (input ?? 0) + (output ?? 0) : null);\n return { input, output, total, reported: total !== null };\n};\n\nconst formatStableInteger = (value: number): string => {\n const digits = String(Math.round(finiteNonNegative(value)));\n return digits.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n};\n\nexport const formatChatTokens = (tokens: number): string => {\n const value = finiteNonNegative(tokens);\n if (value >= 1_000_000) return `${(value / 1_000_000).toFixed(1)}M`;\n if (value >= 1_000) return `${(value / 1_000).toFixed(1)}k`;\n return String(Math.round(value));\n};\n\nconst dateTime = (value: string | Date | undefined): string | null => {\n if (!value) return null;\n const date = value instanceof Date ? value : new Date(value);\n return Number.isFinite(date.getTime()) ? date.toISOString() : null;\n};\n\nexport function ChatMessage(props: ChatMessageProps): JSX.Element {\n const messages = useUiMessages();\n const [busyActionId, setBusyActionId] = createSignal<string | null>(null);\n const [completedActionId, setCompletedActionId] = createSignal<string | null>(null);\n let completedTimer: ReturnType<typeof setTimeout> | undefined;\n const status = () => statusLabel(props.status, messages());\n const timestamp = () => dateTime(props.createdAt);\n // Locale and timezone are application policy. Requiring an explicit visible\n // label keeps SSR and hydration byte-stable while `createdAt` still supplies\n // the semantic machine-readable timestamp.\n const time = () => props.timeLabel ?? null;\n const actions = () => props.actions ?? [];\n const actionDisplay = () =>\n props.actionDisplay === \"auto\" || !props.actionDisplay ? (props.role === \"user\" ? \"menu\" : \"inline\") : props.actionDisplay;\n const hasMeta = () => props.status === \"streaming\" || status() !== null || Boolean(time()) || actions().length > 0;\n\n const runAction = async (action: ChatAction) => {\n if (action.disabled || busyActionId()) return;\n setBusyActionId(action.id);\n try {\n await executeChatAction(action);\n setCompletedActionId(action.id);\n if (completedTimer) clearTimeout(completedTimer);\n completedTimer = setTimeout(() => setCompletedActionId(null), 1400);\n } catch (error) {\n props.onActionError?.(error);\n } finally {\n setBusyActionId(null);\n }\n };\n\n const actionIcon = (action: ChatAction) =>\n busyActionId() === action.id\n ? \"ti ti-loader-2 k2b-spin\"\n : completedActionId() === action.id\n ? \"ti ti-check\"\n : (action.icon ?? \"ti ti-dots\");\n\n onCleanup(() => {\n if (completedTimer) clearTimeout(completedTimer);\n });\n\n const menuItems = (): readonly DropdownItem[] =>\n actions().map((action) => ({\n icon: actionIcon(action),\n label: action.label,\n variant: action.variant,\n disabled: action.disabled || Boolean(busyActionId()),\n action: () => void runAction(action),\n }));\n\n return (\n <article\n class={`k2b-chat-message ${props.class ?? \"\"}`}\n data-role={props.role}\n data-status={props.status ?? \"complete\"}\n data-chat-anchor={props.anchorId !== undefined ? String(props.anchorId) : undefined}\n aria-busy={props.status === \"pending\" || props.status === \"streaming\" ? \"true\" : undefined}\n >\n <span class=\"k2b-sr-only\">{props.label ?? roleLabel(props.role, messages())}: </span>\n <Show when={(props.attachments?.length ?? 0) > 0}>\n <div class=\"k2b-chat-message__attachments\" role=\"list\" aria-label={messages().attachments}>\n <For each={props.attachments}>\n {(attachment) => {\n const content = () => (\n <>\n <Show\n when={attachment.kind === \"image\" && attachment.previewUrl}\n fallback={<i class={attachmentIcon(attachment)} aria-hidden=\"true\" />}\n >\n <img src={attachment.previewUrl} alt={attachment.alt ?? attachment.name} />\n </Show>\n <Show when={attachment.kind !== \"image\"}>\n <span>{attachment.name}</span>\n </Show>\n </>\n );\n return (\n <Show\n when={attachment.href}\n fallback={\n <div class=\"k2b-chat-message__attachment\" data-kind={attachment.kind} role=\"listitem\" title={attachment.name}>\n {content()}\n </div>\n }\n >\n {(href) => (\n <a\n class=\"k2b-chat-message__attachment\"\n data-kind={attachment.kind}\n role=\"listitem\"\n title={attachment.name}\n href={href()}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label={messages().openInNewTab({ name: attachment.name })}\n >\n {content()}\n </a>\n )}\n </Show>\n );\n }}\n </For>\n </div>\n </Show>\n\n <Show when={props.children !== undefined && props.children !== null && props.children !== \"\"}>\n <div class=\"k2b-chat-message__bubble\">\n <div class=\"k2b-chat-message__content\">{props.children}</div>\n </div>\n </Show>\n\n <Show when={hasMeta()}>\n <footer class=\"k2b-chat-message__meta\">\n <Show\n when={props.status === \"streaming\"}\n fallback={\n <Show when={status()}>\n {(label) => (\n <span class=\"k2b-chat-message__status\" role={props.status === \"error\" ? \"alert\" : \"status\"}>\n <i class={statusIcon(props.status)} aria-hidden=\"true\" />\n {label()}\n </span>\n )}\n </Show>\n }\n >\n <span class=\"k2b-chat-message__status k2b-chat-message__status--streaming\" role=\"status\" aria-label={messages().generating}>\n <ChatProgressDots />\n </span>\n </Show>\n <Show when={time()}>{(label) => <time dateTime={timestamp() ?? undefined}>{label()}</time>}</Show>\n <Show when={actions().length > 0 && actionDisplay() === \"inline\"}>\n <span class=\"k2b-chat-message__actions\" role=\"group\" aria-label={messages().messageActions}>\n <For each={actions()}>\n {(action) => (\n <button\n type=\"button\"\n aria-label={action.label}\n aria-pressed={action.pressed}\n data-pressed-tone={action.pressedTone}\n title={action.label}\n data-danger={action.variant === \"danger\" ? \"true\" : undefined}\n disabled={action.disabled || Boolean(busyActionId())}\n onClick={() => void runAction(action)}\n >\n <i class={actionIcon(action)} aria-hidden=\"true\" />\n </button>\n )}\n </For>\n </span>\n </Show>\n <Show when={actions().length > 0 && actionDisplay() === \"menu\"}>\n <Dropdown.Root position=\"bottom-left\" width=\"12rem\" label={messages().messageActions} items={menuItems()}>\n <Dropdown.Trigger\n appearance=\"plain\"\n class=\"k2b-chat-message__menu\"\n label={messages().messageActions}\n title={messages().messageActions}\n >\n <i class=\"ti ti-dots\" aria-hidden=\"true\" />\n </Dropdown.Trigger>\n </Dropdown.Root>\n </Show>\n </footer>\n </Show>\n </article>\n );\n}\n\nconst ActivityContent = (props: ChatActivityProps & { disclosure?: boolean }) => (\n <>\n <span class=\"k2b-chat-activity__leading\" aria-hidden=\"true\">\n <Show when={props.leading} fallback={<i class={props.icon ?? \"ti ti-sparkles\"} />}>\n {props.leading}\n </Show>\n </span>\n <span class=\"k2b-chat-activity__copy\">\n <strong>{props.label}</strong>\n <Show when={props.description}>{(description) => <small>{description()}</small>}</Show>\n </span>\n <Show when={props.trailing}>\n <span class=\"k2b-chat-activity__trailing\">{props.trailing}</span>\n </Show>\n <Show when={props.disclosure}>\n <i class=\"ti ti-chevron-right k2b-chat-activity__chevron\" aria-hidden=\"true\" />\n </Show>\n </>\n);\n\nexport function ChatActivity(props: ChatActivityProps): JSX.Element {\n const [expanded, setExpanded] = createSignal(props.defaultOpen ?? false);\n const open = () => props.open ?? expanded();\n const tone = () => props.tone ?? \"neutral\";\n const style = () => (props.accent ? { \"--k2b-chat-activity-accent\": props.accent } : undefined);\n return (\n <Show\n when={props.renderBody || props.children}\n fallback={\n <div\n class={`k2b-chat-activity ${props.class ?? \"\"}`}\n data-tone={tone()}\n data-accent={props.accent ? \"true\" : undefined}\n data-busy={props.busy ? \"true\" : undefined}\n data-chat-anchor={props.anchorId !== undefined ? String(props.anchorId) : undefined}\n style={style()}\n aria-busy={props.busy ? \"true\" : undefined}\n >\n <div class=\"k2b-chat-activity__row\">\n <ActivityContent {...props} />\n </div>\n </div>\n }\n >\n <details\n class={`k2b-chat-activity ${props.class ?? \"\"}`}\n data-tone={tone()}\n data-accent={props.accent ? \"true\" : undefined}\n data-busy={props.busy ? \"true\" : undefined}\n data-body-inset={props.bodyInset === false ? \"false\" : undefined}\n data-chat-anchor={props.anchorId !== undefined ? String(props.anchorId) : undefined}\n style={style()}\n open={open()}\n onToggle={(event) => {\n setExpanded(event.currentTarget.open);\n props.onOpenChange?.(event.currentTarget.open);\n }}\n aria-busy={props.busy ? \"true\" : undefined}\n >\n <summary class=\"k2b-chat-activity__row\">\n <ActivityContent {...props} disclosure />\n </summary>\n <div class=\"k2b-chat-activity__body\">\n {props.renderBody ? <Show when={open() ? props.renderBody : undefined}>{(render) => render()()}</Show> : props.children}\n </div>\n </details>\n </Show>\n );\n}\n\nexport function ChatContextUsage(props: ChatContextUsageProps): JSX.Element {\n const [busy, setBusy] = createSignal(false);\n const run = async () => {\n const action = props.action;\n if (!action || action.disabled || busy()) return;\n setBusy(true);\n try {\n await executeChatAction(action);\n } catch (error) {\n props.onActionError?.(error);\n } finally {\n setBusy(false);\n }\n };\n const messages = useUiMessages();\n const formatNumber = (value: number) => (props.formatNumber ?? formatStableInteger)(value);\n const formattedUsageValue = (value: number | null): string => (value === null ? messages().unknown : formatNumber(value));\n const usage = () => normalizedUsage(props.usage);\n const loopUsage = () => normalizedUsage(props.loopUsage);\n const total = () => usage().total ?? 0;\n const windowSize = () => finiteNonNegative(props.contextWindow);\n const reported = () => usage().reported;\n const percent = () => (reported() && windowSize() > 0 ? Math.min(100, Math.round((total() / windowSize()) * 100)) : null);\n const remaining = () => (reported() && windowSize() > 0 ? Math.max(0, windowSize() - total()) : null);\n const accessibleLabel = () => {\n if (!reported()) {\n return windowSize() > 0\n ? messages().contextUsageUnavailableWithWindow({ window: formatNumber(windowSize()) })\n : messages().contextUsageUnavailable;\n }\n return percent() === null\n ? messages().tokensUsed({ total: formatNumber(total()) })\n : messages().tokensUsedPercent({ total: formatNumber(total()), percent: percent()! });\n };\n\n return (\n <ChatContextPopup\n content={\n <div class=\"k2b-chat-context__tooltip\">\n <strong>{messages().lastRequestContext}</strong>\n <Show when={percent() !== null}>\n <ProgressBar\n value={percent() ?? 0}\n size=\"xs\"\n tone={(percent() ?? 0) >= 85 ? \"danger\" : \"info\"}\n label={messages().contextWindowUsed}\n />\n </Show>\n <dl>\n <Show when={props.modelLabel}>\n {(model) => (\n <div>\n <dt>{messages().model}</dt>\n <dd>{model()}</dd>\n </div>\n )}\n </Show>\n <div>\n <dt>{messages().input}</dt>\n <dd>{formattedUsageValue(usage().input)}</dd>\n </div>\n <div>\n <dt>{messages().output}</dt>\n <dd>{formattedUsageValue(usage().output)}</dd>\n </div>\n <Show when={loopUsage().reported}>\n <div>\n <dt>{messages().loopTotal}</dt>\n <dd>{formattedUsageValue(loopUsage().total)}</dd>\n </div>\n </Show>\n <div>\n <dt>{messages().window}</dt>\n <dd>{windowSize() > 0 ? formatNumber(windowSize()) : messages().notConfigured}</dd>\n </div>\n <Show when={remaining() !== null}>\n <div>\n <dt>{messages().remaining}</dt>\n <dd>{remaining() === null ? messages().unknown : formatNumber(remaining()!)}</dd>\n </div>\n </Show>\n </dl>\n <Show when={props.action}>\n {(action) => (\n <Button size=\"xs\" variant=\"subtle\" disabled={action().disabled || busy()} onClick={() => void run()} aria-busy={busy()}>\n <i class={busy() ? \"ti ti-loader-2 k2b-spin\" : action().icon} aria-hidden=\"true\" />\n {action().label}\n </Button>\n )}\n </Show>\n </div>\n }\n type=\"button\"\n class={`k2b-chat-context ${props.class ?? \"\"}`}\n data-warning={reported() && (percent() ?? 0) >= 85 ? \"true\" : undefined}\n aria-label={accessibleLabel()}\n >\n <i class=\"ti ti-brain\" aria-hidden=\"true\" />\n <span>{percent() === null ? \"–\" : `${percent()}%`}</span>\n </ChatContextPopup>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,7 +13,7 @@ var _tmpl$ = /*#__PURE__*/_$template(`<ol class=k2b-chat-tasks__list>`),
|
|
|
13
13
|
_tmpl$2 = /*#__PURE__*/_$template(`<section class=k2b-chat-tasks><button type=button class=k2b-chat-tasks__header><i class="ti ti-list-check"aria-hidden=true></i><span class=k2b-chat-tasks__title><!$><!/><!$><!/></span><span class=k2b-chat-tasks__count></span><span class=k2b-chat-tasks__segments aria-hidden=true></span><i aria-hidden=true></i></button><!$><!/>`),
|
|
14
14
|
_tmpl$3 = /*#__PURE__*/_$template(`<span>`),
|
|
15
15
|
_tmpl$4 = /*#__PURE__*/_$template(`<li><i aria-hidden=true></i><span class=k2b-chat-tasks__content></span><span class=k2b-chat-tasks__status>`);
|
|
16
|
-
import { For, Show
|
|
16
|
+
import { createUniqueId, For, Show } from "solid-js";
|
|
17
17
|
/** Presentation only. The host owns the plan and execution state. */
|
|
18
18
|
export function ChatTasks(props) {
|
|
19
19
|
const id = createUniqueId();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["createUniqueId","For","Show","ChatTasks","props","id","active","items","find","item","status","icon","_$createComponent","when","length","children","_el$","_$getNextElement","_tmpl$2","_el$2","firstChild","_el$3","_el$4","nextSibling","_el$5","_el$6","_co$","_$getNextMarker","_el$7","_el$8","_co$2","_el$9","_el$0","_el$1","_el$11","_el$12","_co$3","$$click","onOpenChange","open","_$setAttribute","_$insert","label","_$memo","content","progressLabel","each","_el$13","_tmpl$3","_$effect","_el$10","_tmpl$","_el$14","_tmpl$4","_el$15","_el$16","_el$17","statusLabels","_p$","_v$3","_v$4","e","t","_$className","undefined","_v$","_v$2","_$runHydrationEvents","_$delegateEvents"],"sources":["chat/ChatTasks.tsx"],"sourcesContent":["import { createUniqueId, For, Show } from \"solid-js\";\n\nexport type ChatTask = { id: string; content: string; status: \"pending\" | \"in_progress\" | \"completed\" | \"cancelled\" };\nexport type ChatTasksProps = {\n items: readonly ChatTask[];\n open: boolean;\n onOpenChange: (open: boolean) => void;\n label: string;\n progressLabel: string;\n statusLabels: Record<ChatTask[\"status\"], string>;\n};\n\n/** Presentation only. The host owns the plan and execution state. */\nexport function ChatTasks(props: ChatTasksProps) {\n const id = createUniqueId();\n const active = () => props.items.find((item) => item.status === \"in_progress\");\n const icon = (status: ChatTask[\"status\"]) =>\n status === \"completed\"\n ? \"ti ti-check\"\n : status === \"cancelled\"\n ? \"ti ti-minus\"\n : status === \"in_progress\"\n ? \"ti ti-wave-saw-tool\"\n : \"ti ti-circle\";\n return (\n <Show when={props.items.length}>\n <section class=\"k2b-chat-tasks\">\n <button\n type=\"button\"\n class=\"k2b-chat-tasks__header\"\n aria-expanded={props.open}\n aria-controls={id}\n onClick={() => props.onOpenChange(!props.open)}\n >\n <i class=\"ti ti-list-check\" aria-hidden=\"true\" />\n <span class=\"k2b-chat-tasks__title\">\n {props.label}\n <Show when={active()}> · {active()!.content}</Show>\n </span>\n <span class=\"k2b-chat-tasks__count\">{props.progressLabel}</span>\n <span class=\"k2b-chat-tasks__segments\" aria-hidden=\"true\">\n <For each={props.items}>{(item) => <span data-status={item.status} />}</For>\n </span>\n <i class={props.open ? \"ti ti-chevron-up\" : \"ti ti-chevron-down\"} aria-hidden=\"true\" />\n </button>\n <Show when={props.open}>\n <ol id={id} class=\"k2b-chat-tasks__list\">\n <For each={props.items}>\n {(item) => (\n <li data-status={item.status}>\n <i class={icon(item.status)} aria-hidden=\"true\" />\n <span class=\"k2b-chat-tasks__content\">{item.content}</span>\n <span class=\"k2b-chat-tasks__status\">{props.statusLabels[item.status]}</span>\n </li>\n )}\n </For>\n </ol>\n </Show>\n </section>\n </Show>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -17,9 +17,9 @@ var _tmpl$ = /*#__PURE__*/_$template(`<div class=k2b-chat-timeline__navigation a
|
|
|
17
17
|
_tmpl$5 = /*#__PURE__*/_$template(`<section><div class=k2b-chat-timeline__viewport data-initializing role=region tabindex=0><!$><!/><div class=k2b-chat-timeline__content role=log aria-live=polite aria-relevant="additions text"><div class=k2b-chat-timeline__sentinel aria-hidden=true></div><!$><!/><!$><!/></div></div><!$><!/>`),
|
|
18
18
|
_tmpl$6 = /*#__PURE__*/_$template(`<i class="ti ti-loader-2 k2b-spin"aria-hidden=true>`),
|
|
19
19
|
_tmpl$7 = /*#__PURE__*/_$template(`<button type=button class=k2b-chat-timeline__retry><i class="ti ti-refresh"aria-hidden=true>`);
|
|
20
|
-
import { createScrollFade } from "../layout/scroll-fade";
|
|
21
20
|
import { createEffect, createSignal, For, onCleanup, onMount, Show, untrack } from "solid-js";
|
|
22
21
|
import { useUiMessages } from "../intl/messages";
|
|
22
|
+
import { createScrollFade } from "../layout/scroll-fade";
|
|
23
23
|
import Placeholder from "../surfaces/Placeholder";
|
|
24
24
|
import { ChatActivity, ChatMessage } from "./ChatPrimitives";
|
|
25
25
|
import { isChatNearBottom, restoredChatScrollTop } from "./chat-behavior";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createScrollFade","createEffect","createSignal","For","onCleanup","onMount","Show","untrack","useUiMessages","Placeholder","ChatActivity","ChatMessage","isChatNearBottom","restoredChatScrollTop","ChatTimeline","props","messages","pinned","setPinned","loadingOlderInternally","setLoadingOlderInternally","historyError","setHistoryError","viewportRef","scrollFade","contentRef","topSentinelRef","followFrame","userScrollFrame","userScrollingAway","touchY","lastConversationKey","loadingOlder","Boolean","canLoadOlder","onLoadOlder","hasMore","hasHistoryControls","hasContent","items","length","threshold","Math","max","followThreshold","cancelFollow","undefined","cancelAnimationFrame","scrollToAnchorRef","anchorId","anchor","Array","from","querySelectorAll","find","element","dataset","chatAnchor","String","scrollTop","getBoundingClientRect","top","noteUserScrollAway","requestAnimationFrame","scrollToLatest","scrollHeight","scheduleFollow","loadOlder","viewport","previousScrollTop","previousScrollHeight","prepended","error","Error","message","couldNotLoadOlderMessages","queueMicrotask","updatePinned","nearBottom","clientHeight","removeAttribute","resizeObserver","ResizeObserver","observe","historyObserver","IntersectionObserver","entries","some","entry","isIntersecting","root","rootMargin","disconnect","key","conversationKey","at","id","_el$","_$getNextElement","_tmpl$5","_el$2","firstChild","_el$19","_el$20","_co$7","_$getNextMarker","nextSibling","_el$4","_el$5","_el$15","_el$16","_co$5","_el$17","_el$18","_co$6","_el$25","_el$26","_co$9","addEventListener","$$touchend","$$touchmove","event","nextY","touches","clientY","$$touchstart","$$keydown","target","currentTarget","shiftKey","deltaY","_$use","_$insert","_$createComponent","when","navigation","children","_el$3","_tmpl$","_ref$","_el$6","_tmpl$3","_el$1","_el$10","_co$2","_el$11","_el$12","_co$3","_el$13","_el$14","_co$4","_el$7","_tmpl$2","_el$8","_el$9","_el$0","_co$","$$click","loadOlderMessages","_$runHydrationEvents","label","loadingOlderMessages","icon","trailing","_tmpl$6","description","tone","_el$28","_tmpl$7","_$effect","_$setAttribute","retryOlderMessages","_$memo","loading","fallback","state","title","loadingConversation","emptyTitle","startConversation","emptyDescription","each","item","kind","leading","accent","busy","defaultOpen","class","content","role","createdAt","timeLabel","status","attachments","actions","actionDisplay","onActionError","_el$21","_tmpl$4","_el$22","_el$23","_el$24","_co$8","jumpToLatest","_p$","_v$","_v$2","conversation","_v$3","_v$4","conversationMessages","_v$5","e","_$className","t","a","o","i","_$delegateEvents"],"sources":["chat/ChatTimeline.tsx"],"sourcesContent":["import { createScrollFade } from \"../layout/scroll-fade\";\nimport { createEffect, createSignal, For, type JSX, onCleanup, onMount, Show, untrack } from \"solid-js\";\nimport { useUiMessages } from \"../intl/messages\";\nimport Placeholder from \"../surfaces/Placeholder\";\nimport { ChatActivity, ChatMessage } from \"./ChatPrimitives\";\nimport { isChatNearBottom, restoredChatScrollTop } from \"./chat-behavior\";\nimport type { ChatAction, ChatActivityTone, ChatAttachment, ChatMessageStatus, ChatRole } from \"./types\";\n\nexport type ChatMessageItem = {\n kind: \"message\";\n id: string;\n role: ChatRole;\n content?: JSX.Element;\n label?: string;\n createdAt?: string | Date;\n timeLabel?: string;\n status?: ChatMessageStatus;\n attachments?: readonly ChatAttachment[];\n actions?: readonly ChatAction[];\n actionDisplay?: \"auto\" | \"inline\" | \"menu\";\n anchorId?: string | number;\n class?: string;\n};\n\nexport type ChatActivityItem = {\n kind: \"activity\";\n id: string;\n label: string;\n description?: string;\n icon?: string;\n leading?: JSX.Element;\n accent?: string;\n tone?: ChatActivityTone;\n busy?: boolean;\n trailing?: JSX.Element;\n defaultOpen?: boolean;\n anchorId?: string | number;\n content?: JSX.Element;\n class?: string;\n};\n\nexport type ChatTimelineItem = ChatMessageItem | ChatActivityItem;\n\nexport type ChatTimelineProps = {\n scrollFade?: boolean;\n items: readonly ChatTimelineItem[];\n conversationKey?: string | null;\n loading?: boolean;\n hasMore?: boolean;\n loadingOlder?: boolean;\n onLoadOlder?: () => boolean | void | Promise<boolean | void>;\n emptyTitle?: string;\n emptyDescription?: string;\n navigation?: JSX.Element;\n onActionError?: (error: unknown) => void;\n viewportRef?: (element: HTMLDivElement) => void;\n contentRef?: (element: HTMLDivElement) => void;\n scrollToAnchorRef?: (scrollToAnchor: (anchorId: string | number) => boolean) => void;\n label?: string;\n followThreshold?: number;\n class?: string;\n};\n\nexport function ChatTimeline(props: ChatTimelineProps): JSX.Element {\n const messages = useUiMessages();\n const [pinned, setPinned] = createSignal(true);\n const [loadingOlderInternally, setLoadingOlderInternally] = createSignal(false);\n const [historyError, setHistoryError] = createSignal<string | null>(null);\n let viewportRef: HTMLDivElement | undefined;\n createScrollFade(() => viewportRef, () => props.scrollFade !== false);\n let contentRef: HTMLDivElement | undefined;\n let topSentinelRef: HTMLDivElement | undefined;\n let followFrame: number | undefined;\n let userScrollFrame: number | undefined;\n let userScrollingAway = false;\n let touchY: number | undefined;\n let lastConversationKey: string | null | undefined;\n\n const loadingOlder = () => Boolean(props.loadingOlder || loadingOlderInternally());\n const canLoadOlder = () => Boolean(props.onLoadOlder && props.hasMore && !loadingOlder());\n const hasHistoryControls = () => loadingOlder() || historyError() !== null || canLoadOlder();\n const hasContent = () => props.items.length > 0;\n const threshold = () => Math.max(0, props.followThreshold ?? 96);\n\n const cancelFollow = () => {\n if (followFrame !== undefined) cancelAnimationFrame(followFrame);\n followFrame = undefined;\n };\n\n props.scrollToAnchorRef?.((anchorId) => {\n const anchor = Array.from(contentRef?.querySelectorAll<HTMLElement>(\"[data-chat-anchor]\") ?? [])\n .find((element) => element.dataset.chatAnchor === String(anchorId));\n if (!viewportRef || !anchor) return false;\n cancelFollow();\n setPinned(false);\n viewportRef.scrollTop = Math.max(0, viewportRef.scrollTop + anchor.getBoundingClientRect().top - viewportRef.getBoundingClientRect().top - 16);\n return true;\n });\n\n const noteUserScrollAway = () => {\n userScrollingAway = true;\n if (userScrollFrame !== undefined) cancelAnimationFrame(userScrollFrame);\n userScrollFrame = requestAnimationFrame(() => {\n userScrollFrame = undefined;\n userScrollingAway = false;\n });\n };\n\n const scrollToLatest = () => {\n if (!viewportRef) return;\n setPinned(true);\n viewportRef.scrollTop = viewportRef.scrollHeight;\n };\n\n const scheduleFollow = () => {\n if (!pinned() || followFrame !== undefined) return;\n followFrame = requestAnimationFrame(() => {\n followFrame = undefined;\n if (pinned()) scrollToLatest();\n });\n };\n\n const loadOlder = async () => {\n if (!props.onLoadOlder || !props.hasMore || loadingOlder()) return;\n const viewport = viewportRef;\n if (!viewport) return;\n const previousScrollTop = viewport.scrollTop;\n const previousScrollHeight = viewport.scrollHeight;\n setHistoryError(null);\n setLoadingOlderInternally(true);\n let prepended = false;\n try {\n prepended = (await props.onLoadOlder()) !== false;\n } catch (error) {\n setHistoryError(error instanceof Error ? error.message : messages().couldNotLoadOlderMessages);\n } finally {\n setLoadingOlderInternally(false);\n }\n if (!prepended || viewportRef !== viewport) return;\n queueMicrotask(() => {\n requestAnimationFrame(() => {\n if (viewportRef !== viewport) return;\n viewport.scrollTop = restoredChatScrollTop(previousScrollTop, previousScrollHeight, viewport.scrollHeight);\n });\n });\n };\n\n const updatePinned = () => {\n if (!viewportRef) return;\n const nearBottom = isChatNearBottom(viewportRef.scrollHeight, viewportRef.scrollTop, viewportRef.clientHeight, threshold());\n if (nearBottom) setPinned(true);\n else if (userScrollingAway || followFrame === undefined) {\n if (userScrollingAway) cancelFollow();\n setPinned(false);\n }\n if (viewportRef.scrollTop <= threshold()) void loadOlder();\n };\n\n onMount(() => {\n // Switch from CSS-only SSR anchoring to normal scroll coordinates before paint.\n viewportRef?.removeAttribute(\"data-initializing\");\n scrollToLatest();\n const resizeObserver = typeof ResizeObserver === \"undefined\" ? null : new ResizeObserver(() => scheduleFollow());\n if (contentRef) resizeObserver?.observe(contentRef);\n if (viewportRef) resizeObserver?.observe(viewportRef);\n\n const historyObserver =\n typeof IntersectionObserver === \"undefined\" || !topSentinelRef\n ? null\n : new IntersectionObserver(\n (entries) => {\n if (entries.some((entry) => entry.isIntersecting)) void loadOlder();\n },\n { root: viewportRef, rootMargin: \"160px 0px 0px\" },\n );\n if (topSentinelRef) historyObserver?.observe(topSentinelRef);\n\n onCleanup(() => {\n cancelFollow();\n if (userScrollFrame !== undefined) cancelAnimationFrame(userScrollFrame);\n resizeObserver?.disconnect();\n historyObserver?.disconnect();\n });\n });\n\n createEffect(() => {\n const key = props.conversationKey;\n if (key === lastConversationKey) return;\n lastConversationKey = key;\n setHistoryError(null);\n setPinned(true);\n queueMicrotask(scrollToLatest);\n });\n\n createEffect(() => {\n props.items.length;\n props.items.at(-1)?.id;\n untrack(scheduleFollow);\n });\n\n return (\n <section class={`k2b-chat-timeline ${props.class ?? \"\"}`} aria-label={props.label ?? messages().conversation}>\n <div\n ref={(element) => {\n viewportRef = element;\n props.viewportRef?.(element);\n }}\n class=\"k2b-chat-timeline__viewport\"\n data-scroll-fade-mode={props.scrollFade !== false ? \"bottom\" : undefined}\n data-initializing=\"\"\n role=\"region\"\n aria-label={messages().conversationMessages({ label: props.label ?? messages().conversation })}\n tabIndex={0}\n onWheel={(event) => {\n if (event.deltaY < 0) noteUserScrollAway();\n }}\n onKeyDown={(event) => {\n if (event.target !== event.currentTarget) return;\n if (event.key === \"ArrowUp\" || event.key === \"PageUp\" || event.key === \"Home\" || (event.key === \" \" && event.shiftKey)) {\n noteUserScrollAway();\n }\n }}\n onTouchStart={(event) => {\n touchY = event.touches[0]?.clientY;\n }}\n onTouchMove={(event) => {\n const nextY = event.touches[0]?.clientY;\n if (nextY !== undefined && touchY !== undefined && nextY > touchY) noteUserScrollAway();\n touchY = nextY;\n }}\n onTouchEnd={() => {\n touchY = undefined;\n }}\n onScroll={updatePinned}\n >\n <Show when={props.navigation}>\n <div class=\"k2b-chat-timeline__navigation\" aria-live=\"off\">\n {props.navigation}\n </div>\n </Show>\n <div\n ref={(element) => {\n contentRef = element;\n props.contentRef?.(element);\n }}\n class=\"k2b-chat-timeline__content\"\n role=\"log\"\n aria-live=\"polite\"\n aria-relevant=\"additions text\"\n aria-busy={props.loading ? \"true\" : undefined}\n >\n <div ref={topSentinelRef} class=\"k2b-chat-timeline__sentinel\" aria-hidden=\"true\" />\n <Show when={hasHistoryControls()}>\n <div class=\"k2b-chat-timeline__history\" aria-live=\"off\">\n <Show when={canLoadOlder()}>\n <button type=\"button\" class=\"k2b-chat-timeline__older\" onClick={() => void loadOlder()}>\n <i class=\"ti ti-history\" aria-hidden=\"true\" />\n {messages().loadOlderMessages}\n </button>\n </Show>\n <Show when={loadingOlder()}>\n <ChatActivity\n label={messages().loadingOlderMessages}\n icon=\"ti ti-history\"\n trailing={<i class=\"ti ti-loader-2 k2b-spin\" aria-hidden=\"true\" />}\n />\n </Show>\n <Show when={historyError()}>\n {(message) => (\n <ChatActivity\n label={messages().couldNotLoadOlderMessages}\n description={message()}\n icon=\"ti ti-alert-circle\"\n tone=\"danger\"\n trailing={\n <button\n type=\"button\"\n class=\"k2b-chat-timeline__retry\"\n aria-label={messages().retryOlderMessages}\n onClick={() => void loadOlder()}\n >\n <i class=\"ti ti-refresh\" aria-hidden=\"true\" />\n </button>\n }\n />\n )}\n </Show>\n </div>\n </Show>\n <Show\n when={!props.loading && hasContent()}\n fallback={\n <Placeholder\n class=\"k2b-chat-timeline__placeholder\"\n state={props.loading ? \"loading\" : \"empty\"}\n icon={props.loading ? undefined : \"ti ti-sparkles\"}\n title={props.loading ? messages().loadingConversation : (props.emptyTitle ?? messages().startConversation)}\n description={!props.loading ? props.emptyDescription : undefined}\n />\n }\n >\n <For each={props.items}>\n {(item) => (\n <Show\n when={item.kind === \"message\"}\n fallback={\n <ChatActivity\n label={(item as ChatActivityItem).label}\n description={(item as ChatActivityItem).description}\n icon={(item as ChatActivityItem).icon}\n leading={(item as ChatActivityItem).leading}\n accent={(item as ChatActivityItem).accent}\n tone={(item as ChatActivityItem).tone}\n busy={(item as ChatActivityItem).busy}\n trailing={(item as ChatActivityItem).trailing}\n defaultOpen={(item as ChatActivityItem).defaultOpen}\n anchorId={(item as ChatActivityItem).anchorId}\n class={(item as ChatActivityItem).class}\n >\n {(item as ChatActivityItem).content}\n </ChatActivity>\n }\n >\n <ChatMessage\n role={(item as ChatMessageItem).role}\n label={(item as ChatMessageItem).label}\n createdAt={(item as ChatMessageItem).createdAt}\n timeLabel={(item as ChatMessageItem).timeLabel}\n status={(item as ChatMessageItem).status}\n attachments={(item as ChatMessageItem).attachments}\n actions={(item as ChatMessageItem).actions}\n actionDisplay={(item as ChatMessageItem).actionDisplay}\n anchorId={(item as ChatMessageItem).anchorId}\n onActionError={props.onActionError}\n class={(item as ChatMessageItem).class}\n >\n {(item as ChatMessageItem).content}\n </ChatMessage>\n </Show>\n )}\n </For>\n </Show>\n </div>\n </div>\n <Show when={!pinned() && hasContent()}>\n <button type=\"button\" class=\"k2b-chat-timeline__latest\" onClick={scrollToLatest}>\n <i class=\"ti ti-arrow-down\" aria-hidden=\"true\" />\n {messages().jumpToLatest}\n </button>\n </Show>\n </section>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createEffect","createSignal","For","onCleanup","onMount","Show","untrack","useUiMessages","createScrollFade","Placeholder","ChatActivity","ChatMessage","isChatNearBottom","restoredChatScrollTop","ChatTimeline","props","messages","pinned","setPinned","loadingOlderInternally","setLoadingOlderInternally","historyError","setHistoryError","viewportRef","scrollFade","contentRef","topSentinelRef","followFrame","userScrollFrame","userScrollingAway","touchY","lastConversationKey","loadingOlder","Boolean","canLoadOlder","onLoadOlder","hasMore","hasHistoryControls","hasContent","items","length","threshold","Math","max","followThreshold","cancelFollow","undefined","cancelAnimationFrame","scrollToAnchorRef","anchorId","anchor","Array","from","querySelectorAll","find","element","dataset","chatAnchor","String","scrollTop","getBoundingClientRect","top","noteUserScrollAway","requestAnimationFrame","scrollToLatest","scrollHeight","scheduleFollow","loadOlder","viewport","previousScrollTop","previousScrollHeight","prepended","error","Error","message","couldNotLoadOlderMessages","queueMicrotask","updatePinned","nearBottom","clientHeight","removeAttribute","resizeObserver","ResizeObserver","observe","historyObserver","IntersectionObserver","entries","some","entry","isIntersecting","root","rootMargin","disconnect","key","conversationKey","at","id","_el$","_$getNextElement","_tmpl$5","_el$2","firstChild","_el$19","_el$20","_co$7","_$getNextMarker","nextSibling","_el$4","_el$5","_el$15","_el$16","_co$5","_el$17","_el$18","_co$6","_el$25","_el$26","_co$9","addEventListener","$$touchend","$$touchmove","event","nextY","touches","clientY","$$touchstart","$$keydown","target","currentTarget","shiftKey","deltaY","_$use","_$insert","_$createComponent","when","navigation","children","_el$3","_tmpl$","_ref$","_el$6","_tmpl$3","_el$1","_el$10","_co$2","_el$11","_el$12","_co$3","_el$13","_el$14","_co$4","_el$7","_tmpl$2","_el$8","_el$9","_el$0","_co$","$$click","loadOlderMessages","_$runHydrationEvents","label","loadingOlderMessages","icon","trailing","_tmpl$6","description","tone","_el$28","_tmpl$7","_$effect","_$setAttribute","retryOlderMessages","_$memo","loading","fallback","state","title","loadingConversation","emptyTitle","startConversation","emptyDescription","each","item","kind","leading","accent","busy","defaultOpen","class","content","role","createdAt","timeLabel","status","attachments","actions","actionDisplay","onActionError","_el$21","_tmpl$4","_el$22","_el$23","_el$24","_co$8","jumpToLatest","_p$","_v$","_v$2","conversation","_v$3","_v$4","conversationMessages","_v$5","e","_$className","t","a","o","i","_$delegateEvents"],"sources":["chat/ChatTimeline.tsx"],"sourcesContent":["import { createEffect, createSignal, For, type JSX, onCleanup, onMount, Show, untrack } from \"solid-js\";\nimport { useUiMessages } from \"../intl/messages\";\nimport { createScrollFade } from \"../layout/scroll-fade\";\nimport Placeholder from \"../surfaces/Placeholder\";\nimport { ChatActivity, ChatMessage } from \"./ChatPrimitives\";\nimport { isChatNearBottom, restoredChatScrollTop } from \"./chat-behavior\";\nimport type { ChatAction, ChatActivityTone, ChatAttachment, ChatMessageStatus, ChatRole } from \"./types\";\n\nexport type ChatMessageItem = {\n kind: \"message\";\n id: string;\n role: ChatRole;\n content?: JSX.Element;\n label?: string;\n createdAt?: string | Date;\n timeLabel?: string;\n status?: ChatMessageStatus;\n attachments?: readonly ChatAttachment[];\n actions?: readonly ChatAction[];\n actionDisplay?: \"auto\" | \"inline\" | \"menu\";\n anchorId?: string | number;\n class?: string;\n};\n\nexport type ChatActivityItem = {\n kind: \"activity\";\n id: string;\n label: string;\n description?: string;\n icon?: string;\n leading?: JSX.Element;\n accent?: string;\n tone?: ChatActivityTone;\n busy?: boolean;\n trailing?: JSX.Element;\n defaultOpen?: boolean;\n anchorId?: string | number;\n content?: JSX.Element;\n class?: string;\n};\n\nexport type ChatTimelineItem = ChatMessageItem | ChatActivityItem;\n\nexport type ChatTimelineProps = {\n scrollFade?: boolean;\n items: readonly ChatTimelineItem[];\n conversationKey?: string | null;\n loading?: boolean;\n hasMore?: boolean;\n loadingOlder?: boolean;\n onLoadOlder?: () => boolean | void | Promise<boolean | void>;\n emptyTitle?: string;\n emptyDescription?: string;\n navigation?: JSX.Element;\n onActionError?: (error: unknown) => void;\n viewportRef?: (element: HTMLDivElement) => void;\n contentRef?: (element: HTMLDivElement) => void;\n scrollToAnchorRef?: (scrollToAnchor: (anchorId: string | number) => boolean) => void;\n label?: string;\n followThreshold?: number;\n class?: string;\n};\n\nexport function ChatTimeline(props: ChatTimelineProps): JSX.Element {\n const messages = useUiMessages();\n const [pinned, setPinned] = createSignal(true);\n const [loadingOlderInternally, setLoadingOlderInternally] = createSignal(false);\n const [historyError, setHistoryError] = createSignal<string | null>(null);\n let viewportRef: HTMLDivElement | undefined;\n createScrollFade(\n () => viewportRef,\n () => props.scrollFade !== false,\n );\n let contentRef: HTMLDivElement | undefined;\n let topSentinelRef: HTMLDivElement | undefined;\n let followFrame: number | undefined;\n let userScrollFrame: number | undefined;\n let userScrollingAway = false;\n let touchY: number | undefined;\n let lastConversationKey: string | null | undefined;\n\n const loadingOlder = () => Boolean(props.loadingOlder || loadingOlderInternally());\n const canLoadOlder = () => Boolean(props.onLoadOlder && props.hasMore && !loadingOlder());\n const hasHistoryControls = () => loadingOlder() || historyError() !== null || canLoadOlder();\n const hasContent = () => props.items.length > 0;\n const threshold = () => Math.max(0, props.followThreshold ?? 96);\n\n const cancelFollow = () => {\n if (followFrame !== undefined) cancelAnimationFrame(followFrame);\n followFrame = undefined;\n };\n\n props.scrollToAnchorRef?.((anchorId) => {\n const anchor = Array.from(contentRef?.querySelectorAll<HTMLElement>(\"[data-chat-anchor]\") ?? []).find(\n (element) => element.dataset.chatAnchor === String(anchorId),\n );\n if (!viewportRef || !anchor) return false;\n cancelFollow();\n setPinned(false);\n viewportRef.scrollTop = Math.max(\n 0,\n viewportRef.scrollTop + anchor.getBoundingClientRect().top - viewportRef.getBoundingClientRect().top - 16,\n );\n return true;\n });\n\n const noteUserScrollAway = () => {\n userScrollingAway = true;\n if (userScrollFrame !== undefined) cancelAnimationFrame(userScrollFrame);\n userScrollFrame = requestAnimationFrame(() => {\n userScrollFrame = undefined;\n userScrollingAway = false;\n });\n };\n\n const scrollToLatest = () => {\n if (!viewportRef) return;\n setPinned(true);\n viewportRef.scrollTop = viewportRef.scrollHeight;\n };\n\n const scheduleFollow = () => {\n if (!pinned() || followFrame !== undefined) return;\n followFrame = requestAnimationFrame(() => {\n followFrame = undefined;\n if (pinned()) scrollToLatest();\n });\n };\n\n const loadOlder = async () => {\n if (!props.onLoadOlder || !props.hasMore || loadingOlder()) return;\n const viewport = viewportRef;\n if (!viewport) return;\n const previousScrollTop = viewport.scrollTop;\n const previousScrollHeight = viewport.scrollHeight;\n setHistoryError(null);\n setLoadingOlderInternally(true);\n let prepended = false;\n try {\n prepended = (await props.onLoadOlder()) !== false;\n } catch (error) {\n setHistoryError(error instanceof Error ? error.message : messages().couldNotLoadOlderMessages);\n } finally {\n setLoadingOlderInternally(false);\n }\n if (!prepended || viewportRef !== viewport) return;\n queueMicrotask(() => {\n requestAnimationFrame(() => {\n if (viewportRef !== viewport) return;\n viewport.scrollTop = restoredChatScrollTop(previousScrollTop, previousScrollHeight, viewport.scrollHeight);\n });\n });\n };\n\n const updatePinned = () => {\n if (!viewportRef) return;\n const nearBottom = isChatNearBottom(viewportRef.scrollHeight, viewportRef.scrollTop, viewportRef.clientHeight, threshold());\n if (nearBottom) setPinned(true);\n else if (userScrollingAway || followFrame === undefined) {\n if (userScrollingAway) cancelFollow();\n setPinned(false);\n }\n if (viewportRef.scrollTop <= threshold()) void loadOlder();\n };\n\n onMount(() => {\n // Switch from CSS-only SSR anchoring to normal scroll coordinates before paint.\n viewportRef?.removeAttribute(\"data-initializing\");\n scrollToLatest();\n const resizeObserver = typeof ResizeObserver === \"undefined\" ? null : new ResizeObserver(() => scheduleFollow());\n if (contentRef) resizeObserver?.observe(contentRef);\n if (viewportRef) resizeObserver?.observe(viewportRef);\n\n const historyObserver =\n typeof IntersectionObserver === \"undefined\" || !topSentinelRef\n ? null\n : new IntersectionObserver(\n (entries) => {\n if (entries.some((entry) => entry.isIntersecting)) void loadOlder();\n },\n { root: viewportRef, rootMargin: \"160px 0px 0px\" },\n );\n if (topSentinelRef) historyObserver?.observe(topSentinelRef);\n\n onCleanup(() => {\n cancelFollow();\n if (userScrollFrame !== undefined) cancelAnimationFrame(userScrollFrame);\n resizeObserver?.disconnect();\n historyObserver?.disconnect();\n });\n });\n\n createEffect(() => {\n const key = props.conversationKey;\n if (key === lastConversationKey) return;\n lastConversationKey = key;\n setHistoryError(null);\n setPinned(true);\n queueMicrotask(scrollToLatest);\n });\n\n createEffect(() => {\n props.items.length;\n props.items.at(-1)?.id;\n untrack(scheduleFollow);\n });\n\n return (\n <section class={`k2b-chat-timeline ${props.class ?? \"\"}`} aria-label={props.label ?? messages().conversation}>\n <div\n ref={(element) => {\n viewportRef = element;\n props.viewportRef?.(element);\n }}\n class=\"k2b-chat-timeline__viewport\"\n data-scroll-fade-mode={props.scrollFade !== false ? \"bottom\" : undefined}\n data-initializing=\"\"\n role=\"region\"\n aria-label={messages().conversationMessages({ label: props.label ?? messages().conversation })}\n tabIndex={0}\n onWheel={(event) => {\n if (event.deltaY < 0) noteUserScrollAway();\n }}\n onKeyDown={(event) => {\n if (event.target !== event.currentTarget) return;\n if (event.key === \"ArrowUp\" || event.key === \"PageUp\" || event.key === \"Home\" || (event.key === \" \" && event.shiftKey)) {\n noteUserScrollAway();\n }\n }}\n onTouchStart={(event) => {\n touchY = event.touches[0]?.clientY;\n }}\n onTouchMove={(event) => {\n const nextY = event.touches[0]?.clientY;\n if (nextY !== undefined && touchY !== undefined && nextY > touchY) noteUserScrollAway();\n touchY = nextY;\n }}\n onTouchEnd={() => {\n touchY = undefined;\n }}\n onScroll={updatePinned}\n >\n <Show when={props.navigation}>\n <div class=\"k2b-chat-timeline__navigation\" aria-live=\"off\">\n {props.navigation}\n </div>\n </Show>\n <div\n ref={(element) => {\n contentRef = element;\n props.contentRef?.(element);\n }}\n class=\"k2b-chat-timeline__content\"\n role=\"log\"\n aria-live=\"polite\"\n aria-relevant=\"additions text\"\n aria-busy={props.loading ? \"true\" : undefined}\n >\n <div ref={topSentinelRef} class=\"k2b-chat-timeline__sentinel\" aria-hidden=\"true\" />\n <Show when={hasHistoryControls()}>\n <div class=\"k2b-chat-timeline__history\" aria-live=\"off\">\n <Show when={canLoadOlder()}>\n <button type=\"button\" class=\"k2b-chat-timeline__older\" onClick={() => void loadOlder()}>\n <i class=\"ti ti-history\" aria-hidden=\"true\" />\n {messages().loadOlderMessages}\n </button>\n </Show>\n <Show when={loadingOlder()}>\n <ChatActivity\n label={messages().loadingOlderMessages}\n icon=\"ti ti-history\"\n trailing={<i class=\"ti ti-loader-2 k2b-spin\" aria-hidden=\"true\" />}\n />\n </Show>\n <Show when={historyError()}>\n {(message) => (\n <ChatActivity\n label={messages().couldNotLoadOlderMessages}\n description={message()}\n icon=\"ti ti-alert-circle\"\n tone=\"danger\"\n trailing={\n <button\n type=\"button\"\n class=\"k2b-chat-timeline__retry\"\n aria-label={messages().retryOlderMessages}\n onClick={() => void loadOlder()}\n >\n <i class=\"ti ti-refresh\" aria-hidden=\"true\" />\n </button>\n }\n />\n )}\n </Show>\n </div>\n </Show>\n <Show\n when={!props.loading && hasContent()}\n fallback={\n <Placeholder\n class=\"k2b-chat-timeline__placeholder\"\n state={props.loading ? \"loading\" : \"empty\"}\n icon={props.loading ? undefined : \"ti ti-sparkles\"}\n title={props.loading ? messages().loadingConversation : (props.emptyTitle ?? messages().startConversation)}\n description={!props.loading ? props.emptyDescription : undefined}\n />\n }\n >\n <For each={props.items}>\n {(item) => (\n <Show\n when={item.kind === \"message\"}\n fallback={\n <ChatActivity\n label={(item as ChatActivityItem).label}\n description={(item as ChatActivityItem).description}\n icon={(item as ChatActivityItem).icon}\n leading={(item as ChatActivityItem).leading}\n accent={(item as ChatActivityItem).accent}\n tone={(item as ChatActivityItem).tone}\n busy={(item as ChatActivityItem).busy}\n trailing={(item as ChatActivityItem).trailing}\n defaultOpen={(item as ChatActivityItem).defaultOpen}\n anchorId={(item as ChatActivityItem).anchorId}\n class={(item as ChatActivityItem).class}\n >\n {(item as ChatActivityItem).content}\n </ChatActivity>\n }\n >\n <ChatMessage\n role={(item as ChatMessageItem).role}\n label={(item as ChatMessageItem).label}\n createdAt={(item as ChatMessageItem).createdAt}\n timeLabel={(item as ChatMessageItem).timeLabel}\n status={(item as ChatMessageItem).status}\n attachments={(item as ChatMessageItem).attachments}\n actions={(item as ChatMessageItem).actions}\n actionDisplay={(item as ChatMessageItem).actionDisplay}\n anchorId={(item as ChatMessageItem).anchorId}\n onActionError={props.onActionError}\n class={(item as ChatMessageItem).class}\n >\n {(item as ChatMessageItem).content}\n </ChatMessage>\n </Show>\n )}\n </For>\n </Show>\n </div>\n </div>\n <Show when={!pinned() && hasContent()}>\n <button type=\"button\" class=\"k2b-chat-timeline__latest\" onClick={scrollToLatest}>\n <i class=\"ti ti-arrow-down\" aria-hidden=\"true\" />\n {messages().jumpToLatest}\n </button>\n </Show>\n </section>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["chatCommandQuery","text","caret","selectionEnd","before","slice","match","length","exec","start","end","query","reconcileChatMentions","after","mentions","oldEnd","newEnd","flatMap","mention","chatMentionSegments","segments","offset","sort","a","b","push"],"sources":["chat/composer-document.ts"],"sourcesContent":["import type { ChatMention } from \"./types\";\n\nexport type ChatCommandQuery = { start: number; end: number; query: string };\n\n/** Only the token at the caret; URLs, paths and inline/fenced code are ordinary text. */\nexport function chatCommandQuery(text: string, caret: number, selectionEnd = caret): ChatCommandQuery | null {\n if (caret !== selectionEnd) return null;\n const before = text.slice(0, caret);\n if ((before.match(/`/g)?.length ?? 0) % 2) return null;\n const match = /(?:^|[\\s(])\\/([^\\n/`]*)$/.exec(before);\n if (!match) return null;\n return { start: caret - match[1]!.length - 1, end: caret, query: match[1]! };\n}\n\n/** An edit inside a mention removes its identity; edits around it shift the range. */\nexport function reconcileChatMentions(before: string, after: string, mentions: readonly ChatMention[]): ChatMention[] {\n if (before === after) return [...mentions];\n let start = 0;\n while (start < before.length && start < after.length && before[start] === after[start]) start++;\n let oldEnd = before.length
|
|
1
|
+
{"version":3,"names":["chatCommandQuery","text","caret","selectionEnd","before","slice","match","length","exec","start","end","query","reconcileChatMentions","after","mentions","oldEnd","newEnd","flatMap","mention","chatMentionSegments","segments","offset","sort","a","b","push"],"sources":["chat/composer-document.ts"],"sourcesContent":["import type { ChatMention } from \"./types\";\n\nexport type ChatCommandQuery = { start: number; end: number; query: string };\n\n/** Only the token at the caret; URLs, paths and inline/fenced code are ordinary text. */\nexport function chatCommandQuery(text: string, caret: number, selectionEnd = caret): ChatCommandQuery | null {\n if (caret !== selectionEnd) return null;\n const before = text.slice(0, caret);\n if ((before.match(/`/g)?.length ?? 0) % 2) return null;\n const match = /(?:^|[\\s(])\\/([^\\n/`]*)$/.exec(before);\n if (!match) return null;\n return { start: caret - match[1]!.length - 1, end: caret, query: match[1]! };\n}\n\n/** An edit inside a mention removes its identity; edits around it shift the range. */\nexport function reconcileChatMentions(before: string, after: string, mentions: readonly ChatMention[]): ChatMention[] {\n if (before === after) return [...mentions];\n let start = 0;\n while (start < before.length && start < after.length && before[start] === after[start]) start++;\n let oldEnd = before.length,\n newEnd = after.length;\n while (oldEnd > start && newEnd > start && before[oldEnd - 1] === after[newEnd - 1]) {\n oldEnd--;\n newEnd--;\n }\n return mentions.flatMap((mention) => {\n if (mention.end <= start) return [mention];\n if (mention.start >= oldEnd) return [{ ...mention, start: mention.start + newEnd - oldEnd, end: mention.end + newEnd - oldEnd }];\n return [];\n });\n}\n\nexport function chatMentionSegments(text: string, mentions: readonly ChatMention[]) {\n const segments: { text: string; mention?: ChatMention }[] = [];\n let offset = 0;\n for (const mention of [...mentions].sort((a, b) => a.start - b.start)) {\n if (mention.start < offset || mention.end > text.length || mention.start >= mention.end) continue;\n segments.push({ text: text.slice(offset, mention.start) });\n segments.push({ text: text.slice(mention.start, mention.end), mention });\n offset = mention.end;\n }\n segments.push({ text: text.slice(offset) });\n return segments;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ChatContextPopup","ChatTasks","ChatComposer","ChatActivity","ChatContextUsage","ChatMessage","ChatRoot","ChatTimeline","formatChatTokens","Chat","Object","assign","Tasks","Timeline","Message","Activity","Composer","ContextUsage","ContextPopup","reconcileChatMentions"],"sources":["chat/index.ts"],"sourcesContent":["export type { ChatContextPopupProps } from \"./ChatContextPopup\";\nimport { ChatContextPopup } from \"./ChatContextPopup\";\nimport { ChatTasks } from \"./ChatTasks\";\nexport type { ChatTask, ChatTasksProps } from \"./ChatTasks\";\nimport { ChatComposer } from \"./ChatComposer\";\nimport { ChatActivity, ChatContextUsage, ChatMessage } from \"./ChatPrimitives\";\nimport { ChatRoot } from \"./ChatRoot\";\nimport { ChatTimeline } from \"./ChatTimeline\";\n\nexport type { ChatCommand, ChatCommandContext, ChatComposerProps, ChatFileSelection, ChatPasteHandler } from \"./ChatComposer\";\nexport type { ChatActivityProps, ChatContextUsageProps, ChatMessageProps } from \"./ChatPrimitives\";\nexport { formatChatTokens } from \"./ChatPrimitives\";\nexport type { ChatRootProps } from \"./ChatRoot\";\nexport type { ChatActivityItem, ChatMessageItem, ChatTimelineItem, ChatTimelineProps } from \"./ChatTimeline\";\nexport type {\n ChatAction,\n ChatActivityTone,\n ChatAttachment,\n
|
|
1
|
+
{"version":3,"names":["ChatContextPopup","ChatTasks","ChatComposer","ChatActivity","ChatContextUsage","ChatMessage","ChatRoot","ChatTimeline","formatChatTokens","Chat","Object","assign","Tasks","Timeline","Message","Activity","Composer","ContextUsage","ContextPopup","reconcileChatMentions"],"sources":["chat/index.ts"],"sourcesContent":["export type { ChatContextPopupProps } from \"./ChatContextPopup\";\n\nimport { ChatContextPopup } from \"./ChatContextPopup\";\nimport { ChatTasks } from \"./ChatTasks\";\n\nexport type { ChatTask, ChatTasksProps } from \"./ChatTasks\";\n\nimport { ChatComposer } from \"./ChatComposer\";\nimport { ChatActivity, ChatContextUsage, ChatMessage } from \"./ChatPrimitives\";\nimport { ChatRoot } from \"./ChatRoot\";\nimport { ChatTimeline } from \"./ChatTimeline\";\n\nexport type { ChatCommand, ChatCommandContext, ChatComposerProps, ChatFileSelection, ChatPasteHandler } from \"./ChatComposer\";\nexport type { ChatActivityProps, ChatContextUsageProps, ChatMessageProps } from \"./ChatPrimitives\";\nexport { formatChatTokens } from \"./ChatPrimitives\";\nexport type { ChatRootProps } from \"./ChatRoot\";\nexport type { ChatActivityItem, ChatMessageItem, ChatTimelineItem, ChatTimelineProps } from \"./ChatTimeline\";\nexport type {\n ChatAction,\n ChatActivityTone,\n ChatAttachment,\n ChatComposerState,\n ChatContextUsageData,\n ChatMention,\n ChatMessageStatus,\n ChatModelOption,\n ChatRole,\n ChatSubmitInput,\n ChatSubmitIntent,\n ChatUsage,\n} from \"./types\";\n\n/**\n * Portable, controlled chat surface. Applications own storage, streaming,\n * authorization, rich message rendering, and domain actions.\n */\nexport const Chat = Object.assign(ChatRoot, {\n Tasks: ChatTasks,\n Timeline: ChatTimeline,\n Message: ChatMessage,\n Activity: ChatActivity,\n Composer: ChatComposer,\n ContextUsage: ChatContextUsage,\n ContextPopup: ChatContextPopup,\n});\n\nexport { reconcileChatMentions } from \"./composer-document\";\n"],"mappings":"AAEA,SAASA,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,SAAS,QAAQ,aAAa;AAIvC,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,YAAY,EAAEC,gBAAgB,EAAEC,WAAW,QAAQ,kBAAkB;AAC9E,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,YAAY,QAAQ,gBAAgB;AAI7C,SAASC,gBAAgB,QAAQ,kBAAkB;AAkBnD;AACA;AACA;AACA;AACA,OAAO,MAAMC,IAAI,GAAGC,MAAM,CAACC,MAAM,CAACL,QAAQ,EAAE;EAC1CM,KAAK,EAAEX,SAAS;EAChBY,QAAQ,EAAEN,YAAY;EACtBO,OAAO,EAAET,WAAW;EACpBU,QAAQ,EAAEZ,YAAY;EACtBa,QAAQ,EAAEd,YAAY;EACtBe,YAAY,EAAEb,gBAAgB;EAC9Bc,YAAY,EAAElB;AAChB,CAAC,CAAC;AAEF,SAASmB,qBAAqB,QAAQ,qBAAqB","ignoreList":[]}
|
|
@@ -19,15 +19,15 @@ var _tmpl$ = /*#__PURE__*/_$template(`<span class=k2b-chart__anchor aria-hidden=
|
|
|
19
19
|
_tmpl$3 = /*#__PURE__*/_$template(`<div class=k2b-chart__controls><button type=button class="k2b-button k2b-icon-button"data-variant=secondary><i class="ti ti-plus"aria-hidden=true></i></button><button type=button class="k2b-button k2b-icon-button"data-variant=secondary><i class="ti ti-minus"aria-hidden=true></i></button><button type=button class="k2b-button k2b-icon-button"data-variant=secondary><i class="ti ti-focus-centered"aria-hidden=true>`),
|
|
20
20
|
_tmpl$4 = /*#__PURE__*/_$template(`<div role=group><div class=k2b-chart__svg></div><!$><!/><!$><!/>`),
|
|
21
21
|
_tmpl$5 = /*#__PURE__*/_$template(`<div>`);
|
|
22
|
-
import { lineGapsSvg } from "./chart-line-gaps";
|
|
23
22
|
import { charts } from "@k2b/stdlib";
|
|
24
23
|
import { createEffect, createMemo, createSignal, createUniqueId, onCleanup, onMount, Show, splitProps, untrack } from "solid-js";
|
|
25
|
-
import {
|
|
24
|
+
import { isServer } from "solid-js/web";
|
|
26
25
|
import { useLocale } from "../intl/locale";
|
|
27
26
|
import { useUiMessages } from "../intl/messages";
|
|
27
|
+
import { createChartInspection } from "./chart-inspection";
|
|
28
|
+
import { lineGapsSvg } from "./chart-line-gaps";
|
|
28
29
|
import { DEFAULT_MAP_VIEWPORT, normalizeMapViewport, panMapViewport, zoomMapViewport } from "./chart-map-viewport";
|
|
29
30
|
import { panStateTimelineViewport, renderStateTimelineSvg, stateTimelineDomain, stateTimelineHeight, zoomStateTimelineViewport } from "./chart-state-timeline";
|
|
30
|
-
import { isServer } from "solid-js/web";
|
|
31
31
|
import { responsiveChartSvg, responsiveMapSvg, selectedChartSvg } from "./chart-svg";
|
|
32
32
|
|
|
33
33
|
/**
|