import type { Style } from "@react-pdf/types"; import type { ComponentProps } from "react"; import type { StyleInput } from "./styles"; import { Link as PdfLink, Text as PdfText, View } from "@react-pdf/renderer"; import { Icon as PhosphorIcon } from "phosphor-icons-react-pdf/dynamic"; import { useTemplateIconSlot, useTemplateStyle } from "./context"; import { composeLinkStyles, composeStyles } from "./styles"; const asStyleInput = (style: unknown): StyleInput => style as StyleInput; export const safeTextStyle = { minWidth: 0, maxWidth: "100%", flexShrink: 1, overflow: "hidden", } satisfies Style; export const Div = ({ style, ...props }: ComponentProps) => { const divStyle = useTemplateStyle("div"); return ; }; export const Text = ({ style, ...props }: ComponentProps) => { const textStyle = useTemplateStyle("text"); return ; }; export const Heading = ({ style, ...props }: ComponentProps) => { const headingStyle = useTemplateStyle("heading"); return ; }; export const Link = ({ style, ...props }: ComponentProps) => { const linkStyle = useTemplateStyle("link"); return ; }; export const Small = ({ style, ...props }: ComponentProps) => { const textStyle = useTemplateStyle("text"); const smallStyle = useTemplateStyle("small"); return ; }; export const Bold = ({ style, ...props }: ComponentProps) => { const textStyle = useTemplateStyle("text"); const boldStyle = useTemplateStyle("bold"); return ; }; export const Icon = ({ style, ...props }: ComponentProps) => { const { style: iconStyle, ...iconProps } = useTemplateIconSlot("icon"); if (iconProps.display === "none") return null; return ; };