dock-prompt.tsx 690 B

12345678910111213141516171819202122
  1. import type { JSX } from "solid-js"
  2. import { DockShell, DockTray } from "./dock-surface"
  3. export function DockPrompt(props: {
  4. kind: "question" | "permission"
  5. header: JSX.Element
  6. children: JSX.Element
  7. footer: JSX.Element
  8. ref?: (el: HTMLDivElement) => void
  9. }) {
  10. const slot = (name: string) => `${props.kind}-${name}`
  11. return (
  12. <div data-component="dock-prompt" data-kind={props.kind} ref={props.ref}>
  13. <DockShell data-slot={slot("body")}>
  14. <div data-slot={slot("header")}>{props.header}</div>
  15. <div data-slot={slot("content")}>{props.children}</div>
  16. </DockShell>
  17. <DockTray data-slot={slot("footer")}>{props.footer}</DockTray>
  18. </div>
  19. )
  20. }