/** @jsxImportSource react */ import { releasePointerFocus } from "../host/focus-scope"; import type { ReactNode } from "react"; import type { IconButtonProps, IconName, IconProps } from "../../../../components/ui/icon"; /** The desktop icon set, drawn on a 12-unit grid in the current colour. */ const ICONS: Record = { more: ( <> ), close: , zap: , lock: ( <> ), warning: ( <> ), back: , "chevron-down": , "chevron-right": , search: ( <> ), plus: , check: , minimize: , maximize: , // Drawn on a 24-unit grid and scaled, so strokes match the chat pane's // original icons at the same pixel size. cloud: ( ), "sound-on": ( ), "sound-off": ( ), user: ( ), "sort-up": , "sort-down": , // Two columns of three dots: the pane's drag handle. grip: ( <> ), restore: ( <> ), }; export function WebIcon({ name, size = 12, color }: IconProps) { return ( ); } function pressEventFrom( target: HTMLElement, pixelX: number, pixelY: number, event: { preventDefault(): void; stopPropagation(): void; button?: number }, ) { return { target, pixelX, pixelY, button: event.button ?? 0, preventDefault: () => event.preventDefault(), stopPropagation: () => event.stopPropagation(), }; } export function WebIconButton({ icon, label, title, shortcut, hasPopup, onPress, pressed, color, disabled = false, size = 12, stopPropagation = true, }: IconButtonProps) { return ( ); }