summaryrefslogtreecommitdiffhomepage
path: root/packages/ui/src/components/dock-prompt.tsx
blob: 4def4862ff32d5f574be1e750e33fe6a1b8e6f6b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import type { JSX } from "solid-js"

export function DockPrompt(props: {
  kind: "question" | "permission"
  header: JSX.Element
  children: JSX.Element
  footer: JSX.Element
  ref?: (el: HTMLDivElement) => void
}) {
  const slot = (name: string) => `${props.kind}-${name}`

  return (
    <div data-component="dock-prompt" data-kind={props.kind} ref={props.ref}>
      <div data-slot={slot("body")}>
        <div data-slot={slot("header")}>{props.header}</div>
        <div data-slot={slot("content")}>{props.children}</div>
      </div>
      <div data-slot={slot("footer")}>{props.footer}</div>
    </div>
  )
}