@fayz-ai/plugin-forms 0.15.14 → 0.15.15
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/CustomFormsSettingsTab-EI4WKOYR.js +314 -0
- package/dist/CustomFormsSettingsTab-EI4WKOYR.js.map +1 -0
- package/dist/{FormBuilder-Q2Q42HAT.js → FormBuilder-7UXCXUOF.js} +7 -3
- package/dist/FormBuilder-7UXCXUOF.js.map +1 -0
- package/dist/PersonAnswerAlerts-MDBBY63K.js +98 -0
- package/dist/PersonAnswerAlerts-MDBBY63K.js.map +1 -0
- package/dist/PersonDocumentsWidget-RGN4UHS3.js +977 -0
- package/dist/PersonDocumentsWidget-RGN4UHS3.js.map +1 -0
- package/dist/chunk-5WW6FTNG.js +113 -0
- package/dist/chunk-5WW6FTNG.js.map +1 -0
- package/dist/chunk-66C3L4RE.js +17 -0
- package/dist/chunk-66C3L4RE.js.map +1 -0
- package/dist/chunk-BFXJLPKA.js +55 -0
- package/dist/chunk-BFXJLPKA.js.map +1 -0
- package/dist/chunk-RB7UYZLA.js +824 -0
- package/dist/chunk-RB7UYZLA.js.map +1 -0
- package/dist/chunk-X6CU44B4.js +223 -0
- package/dist/chunk-X6CU44B4.js.map +1 -0
- package/dist/chunk-YOFFKQD4.js +584 -0
- package/dist/chunk-YOFFKQD4.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +58 -1507
- package/dist/index.js.map +1 -1
- package/dist/views/CustomFormsSettingsTab.d.ts.map +1 -1
- package/package.json +5 -5
- package/dist/FormBuilder-Q2Q42HAT.js.map +0 -1
- package/dist/chunk-JRR7A5HN.js +0 -1678
- package/dist/chunk-JRR7A5HN.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/fields/media.tsx","../src/components/fields/fields.tsx"],"names":["React","jsx"],"mappings":"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","file":"chunk-YOFFKQD4.js","sourcesContent":["import React from 'react'\nimport { useOptionalCustomFormsContext } from '../../context'\nimport type { MediaValue } from '@fayz-ai/forms/domain/template'\n\n/** Paths in the private bucket need a signed URL; data/blob URLs (unsaved, mock) show as-is. */\nexport function useMediaUrl(path: string | null | undefined): string | null {\n const ctx = useOptionalCustomFormsContext()\n const [url, setUrl] = React.useState<string | null>(null)\n React.useEffect(() => {\n if (!path) { setUrl(null); return }\n if (/^(data:|blob:|https?:)/.test(path)) { setUrl(path); return }\n let alive = true\n Promise.resolve(ctx?.provider.mediaUrl?.(path) ?? null)\n .then((u) => { if (alive) setUrl(u) })\n .catch(() => { if (alive) setUrl(null) })\n return () => { alive = false }\n }, [path, ctx])\n return url\n}\n\nexport function useMediaUpload() {\n const ctx = useOptionalCustomFormsContext()\n const upload = ctx?.provider.uploadMedia\n return React.useMemo(() => (upload\n ? (blob: Blob, folder: string, name: string) => upload.call(ctx!.provider, blob, folder, name)\n : null), [upload, ctx])\n}\n\n/** V1 sends phone photos through a resize first: five 4 MB iPhone shots used to kill Safari. */\nexport async function compressImage(file: Blob, maxSide = 1600, quality = 0.85): Promise<Blob> {\n if (!file.type.startsWith('image/') || file.type === 'image/gif') return file\n try {\n const bitmap = await createImageBitmap(file)\n const scale = Math.min(1, maxSide / Math.max(bitmap.width, bitmap.height))\n if (scale === 1 && file.size < 900_000) return file\n const canvas = document.createElement('canvas')\n canvas.width = Math.round(bitmap.width * scale)\n canvas.height = Math.round(bitmap.height * scale)\n canvas.getContext('2d')!.drawImage(bitmap, 0, 0, canvas.width, canvas.height)\n const out = await new Promise<Blob | null>((r) => canvas.toBlob(r, 'image/jpeg', quality))\n return out ?? file\n } catch {\n return file\n }\n}\n\nexport function dataUrlToBlob(dataUrl: string): Blob {\n const [head, body] = dataUrl.split(',')\n const mime = /data:([^;]+)/.exec(head)?.[1] ?? 'application/octet-stream'\n const bin = atob(body)\n const bytes = new Uint8Array(bin.length)\n for (let i = 0; i < bin.length; i++) bytes[i] = bin.charCodeAt(i)\n return new Blob([bytes], { type: mime })\n}\n\nexport function isMedia(v: unknown): v is MediaValue {\n return !!v && typeof v === 'object' && typeof (v as MediaValue).path === 'string'\n}\n\nexport function MediaImage({ value, alt, className, style }: {\n value: MediaValue | string | null | undefined\n alt: string\n className?: string\n style?: React.CSSProperties\n}) {\n const path = typeof value === 'string' ? value : value?.path\n const url = useMediaUrl(path)\n if (!url) return <div className={`animate-pulse bg-muted ${className ?? ''}`} style={style} aria-busy=\"true\" />\n return <img src={url} alt={alt} className={className} style={style} />\n}\n","import React from 'react'\nimport {\n AlertTriangle, Camera, ImagePlus, Minus, Package, Plus, Receipt, ScanFace, ShoppingBag, Trash2, Video, X,\n} from 'lucide-react'\nimport { Button, PickerList, type PickerGroup } from '@fayz-ai/ui'\nimport { useOptionalCustomFormsContext } from '../../context'\nimport type { AnswerAlertConfig, FormFieldDef, GalleryConfig, MediaValue, RecommendationLine, StencilConfig, YesNoTextValue } from '@fayz-ai/forms/domain/template'\nimport type { CatalogOption } from '@fayz-ai/forms/data/provider'\nimport { MediaImage, compressImage, isMedia, useMediaUpload, useMediaUrl } from './media'\nimport { describeError, formatCurrency } from '@fayz-ai/core'\n\nconst brl = (n: number) => formatCurrency(n)\n\nexport const stencilOf = (f: FormFieldDef): StencilConfig => (f.config?.stencil as StencilConfig) ?? {}\nexport const galleryOf = (f: FormFieldDef): GalleryConfig => (f.config?.gallery as GalleryConfig) ?? {}\nexport const alertOf = (f: FormFieldDef): AnswerAlertConfig | null => {\n const a = f.config?.alert as AnswerAlertConfig | undefined\n return a?.trigger && a.trigger !== 'never' ? a : null\n}\nexport const aspectRatioOf = (c: StencilConfig) => (c.aspect === '1:1' ? 1 : c.aspect === '4:3' ? 4 / 3 : 3 / 4)\n\n/** The answer a yes/no field holds, whatever shape it was stored in. */\nexport function yesNoAnswer(v: unknown): 'sim' | 'nao' | '' {\n const a = typeof v === 'string' ? v : (v as YesNoTextValue | null)?.answer\n return a === 'sim' || a === 'nao' ? a : ''\n}\n\n/** Does this answer raise the field's clinical alert? */\nexport function answerAlerts(f: FormFieldDef, v: unknown): AnswerAlertConfig | null {\n const a = alertOf(f)\n return a && yesNoAnswer(v) === a.trigger ? a : null\n}\n\nconst ALERT_TONE = {\n danger: 'border-destructive/40 bg-destructive/5 text-destructive',\n warning: 'border-warning/40 bg-warning-soft text-warning-soft-foreground',\n info: 'border-info/40 bg-info-soft text-info-soft-foreground',\n} as const\n\nexport function AnswerAlertNote({ alert }: { alert: AnswerAlertConfig }) {\n return (\n <p className={`mt-1.5 inline-flex items-center gap-1.5 rounded-md border px-2 py-1 text-[11px] font-medium ${ALERT_TONE[alert.severity ?? 'danger']}`}>\n <AlertTriangle className=\"h-3 w-3 shrink-0\" />\n {alert.message || 'Gera alerta na ficha do cliente'}\n </p>\n )\n}\n\nfunction YesNoButtons({ id, value, onChange, disabled }: {\n id: string; value: string; onChange: (v: 'sim' | 'nao') => void; disabled?: boolean\n}) {\n return (\n <div role=\"radiogroup\" className=\"inline-flex rounded-lg border bg-muted/40 p-0.5\">\n {(['sim', 'nao'] as const).map((opt) => (\n <Button variant=\"bare\" size=\"bare\"\n key={opt}\n id={`${id}-${opt}`}\n type=\"button\"\n role=\"radio\"\n aria-checked={value === opt}\n disabled={disabled}\n onClick={() => onChange(opt)}\n className={`min-w-14 rounded-md px-3 py-1 text-xs font-medium transition-colors ${\n value === opt ? 'bg-primary text-primary-foreground shadow-sm' : 'text-muted-foreground hover:text-foreground'\n }`}\n >\n {opt === 'sim' ? 'Sim' : 'Não'}\n </Button>\n ))}\n </div>\n )\n}\n\nexport function YesNoField({ field, value, onChange }: { field: FormFieldDef; value: unknown; onChange: (v: unknown) => void }) {\n const alert = answerAlerts(field, value)\n return (\n <div>\n <YesNoButtons id={field.id} value={yesNoAnswer(value)} onChange={onChange} />\n {alert && <AnswerAlertNote alert={alert} />}\n </div>\n )\n}\n\nexport function YesNoTextField({ field, value, onChange }: { field: FormFieldDef; value: unknown; onChange: (v: unknown) => void }) {\n const v: YesNoTextValue = value && typeof value === 'object' ? (value as YesNoTextValue) : { answer: yesNoAnswer(value) }\n // The follow-up text only opens on \"Sim\" — 34 of these in the anamnesis made the list endless.\n // Text already written stays visible.\n const showText = v.answer === 'sim' || !!v.text?.trim()\n const alert = answerAlerts(field, v)\n return (\n <div className=\"space-y-2\">\n <YesNoButtons id={field.id} value={v.answer} onChange={(a) => onChange({ ...v, answer: a })} />\n {alert && <AnswerAlertNote alert={alert} />}\n {showText && (\n <textarea\n value={v.text ?? ''}\n onChange={(e) => onChange({ ...v, text: e.target.value })}\n placeholder={field.placeholder || 'Descreva…'}\n rows={2}\n className=\"flex w-full rounded-input border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n />\n )}\n </div>\n )\n}\n\nexport function StencilPhotoField({ field, value, onChange, onOpenCamera, uploading }: {\n field: FormFieldDef\n value: unknown\n onChange: (v: unknown) => void\n onOpenCamera: () => void\n uploading?: boolean\n}) {\n const cfg = stencilOf(field)\n const ratio = aspectRatioOf(cfg)\n const overlay = useMediaUrl(cfg.overlayPath)\n // A pose is a portrait, not a banner: on a wide pane a full-width 3:4 tile is taller than the screen.\n if (uploading) {\n return <div className=\"w-full max-w-[320px] animate-pulse rounded-lg bg-muted\" style={{ aspectRatio: String(ratio) }} aria-busy=\"true\" />\n }\n if (isMedia(value)) {\n return (\n <div className=\"max-w-[320px] space-y-2\">\n <MediaImage value={value} alt={field.label} className=\"w-full rounded-lg border object-cover\" style={{ aspectRatio: String(ratio) }} />\n <div className=\"flex flex-wrap gap-2\">\n <Button type=\"button\" size=\"sm\" variant=\"outline\" className=\"h-8 gap-1 text-xs\" onClick={onOpenCamera}>\n <Camera className=\"h-3 w-3\" /> Refazer\n </Button>\n <Button type=\"button\" size=\"sm\" variant=\"outline\" className=\"h-8 gap-1 text-xs text-destructive hover:text-destructive\"\n onClick={() => onChange(null)}>\n <X className=\"h-3 w-3\" /> Excluir\n </Button>\n </div>\n {cfg.description && <p className=\"text-xs text-muted-foreground\">{cfg.description}</p>}\n </div>\n )\n }\n return (\n <Button variant=\"bare\" size=\"bare\"\n type=\"button\"\n onClick={onOpenCamera}\n className=\"font-normal whitespace-normal flex w-full max-w-[320px] flex-col items-center justify-center gap-2 rounded-lg border-2 border-dashed border-input bg-muted/20 p-3 text-muted-foreground transition-colors hover:border-primary hover:bg-muted/40 hover:text-primary\"\n style={{ aspectRatio: String(ratio) }}\n >\n {overlay ? <img src={overlay} alt=\"\" className=\"max-h-[70%] max-w-[70%] object-contain opacity-70\" /> : <ScanFace className=\"h-8 w-8\" />}\n <span className=\"line-clamp-2 text-center text-[11px] font-medium leading-tight\">\n {cfg.description || 'Tocar para abrir câmera'}\n </span>\n </Button>\n )\n}\n\nfunction GalleryThumb({ item, onRemove }: { item: MediaValue; onRemove?: () => void }) {\n const url = useMediaUrl(item.path)\n return (\n <div className=\"group relative aspect-square overflow-hidden rounded-lg border bg-muted\">\n {!url ? (\n <div className=\"h-full w-full animate-pulse bg-muted\" />\n ) : item.type === 'video' ? (\n <video src={url} className=\"h-full w-full object-cover\" controls preload=\"metadata\" />\n ) : (\n <a href={url} target=\"_blank\" rel=\"noreferrer\"><img src={url} alt={item.name ?? ''} className=\"h-full w-full object-cover\" /></a>\n )}\n {onRemove && (\n <Button variant=\"bare\" size=\"bare\" type=\"button\" onClick={onRemove} aria-label=\"Remover\"\n className=\"font-normal absolute right-1 top-1 flex h-6 w-6 items-center justify-center rounded-full bg-background/90 text-muted-foreground shadow hover:text-destructive\">\n <X className=\"h-3.5 w-3.5\" />\n </Button>\n )}\n </div>\n )\n}\n\nexport function GalleryView({ items }: { items: MediaValue[] }) {\n return (\n <div className=\"grid grid-cols-3 gap-2 sm:grid-cols-4\">\n {items.map((it) => <GalleryThumb key={it.path} item={it} />)}\n </div>\n )\n}\n\nexport function GalleryField({ field, value, onChange }: { field: FormFieldDef; value: unknown; onChange: (v: unknown) => void }) {\n const cfg = galleryOf(field)\n const allowPhoto = cfg.allowPhoto ?? true\n const allowVideo = cfg.allowVideo ?? true\n const upload = useMediaUpload()\n const photoRef = React.useRef<HTMLInputElement>(null)\n const videoRef = React.useRef<HTMLInputElement>(null)\n const [pending, setPending] = React.useState(0)\n const [erro, setErro] = React.useState<string | null>(null)\n const items = Array.isArray(value) ? (value as MediaValue[]).filter(isMedia) : []\n const latest = React.useRef(items)\n latest.current = items\n\n async function add(files: FileList | null, kind: 'photo' | 'video') {\n if (!files?.length || !upload) return\n setErro(null)\n // One at a time: parallel phone-sized uploads are what made V1 lose photos.\n for (const file of Array.from(files)) {\n setPending((n) => n + 1)\n try {\n const blob = kind === 'photo' ? await compressImage(file) : file\n const { path } = await upload(blob, `uploads/${field.id}`, kind === 'photo' ? 'foto.jpg' : file.name)\n latest.current = [...latest.current, { path, type: kind, name: file.name }]\n onChange(latest.current)\n } catch (e) {\n setErro(`Não foi possível enviar ${file.name}: ${describeError(e, 'erro')}`)\n } finally {\n setPending((n) => n - 1)\n }\n }\n }\n\n return (\n <div className=\"space-y-2\">\n <div className=\"flex flex-wrap gap-2\">\n {allowPhoto && (\n <Button type=\"button\" variant=\"outline\" size=\"sm\" className=\"h-8 gap-1.5 text-xs\" disabled={!upload}\n onClick={() => photoRef.current?.click()}>\n <ImagePlus className=\"h-3.5 w-3.5\" /> Adicionar foto\n </Button>\n )}\n {allowVideo && (\n <Button type=\"button\" variant=\"outline\" size=\"sm\" className=\"h-8 gap-1.5 text-xs\" disabled={!upload}\n onClick={() => videoRef.current?.click()}>\n <Video className=\"h-3.5 w-3.5\" /> Adicionar vídeo\n </Button>\n )}\n </div>\n <input ref={photoRef} type=\"file\" accept=\"image/*\" multiple className=\"hidden\"\n onChange={(e) => { add(e.target.files, 'photo'); e.target.value = '' }} />\n <input ref={videoRef} type=\"file\" accept=\"video/*\" multiple className=\"hidden\"\n onChange={(e) => { add(e.target.files, 'video'); e.target.value = '' }} />\n {(items.length > 0 || pending > 0) && (\n <div className=\"grid grid-cols-3 gap-2 sm:grid-cols-4\">\n {items.map((it) => (\n <GalleryThumb key={it.path} item={it} onRemove={() => onChange(items.filter((x) => x.path !== it.path))} />\n ))}\n {Array.from({ length: pending }).map((_, i) => (\n <div key={`p${i}`} className=\"aspect-square animate-pulse rounded-lg bg-muted\" aria-busy=\"true\" />\n ))}\n </div>\n )}\n {erro && <p className=\"text-xs text-destructive\">{erro}</p>}\n </div>\n )\n}\n\n/** A one-tap shortcut above the recommendation list — V1 shows the client's prepaid services here. */\nexport type { RecommendationShortcut } from '@fayz-ai/forms/views/zones'\nimport type { RecommendationShortcut } from '@fayz-ai/forms/views/zones'\n\nfunction Stepper({ value, onChange }: { value: number; onChange: (n: number) => void }) {\n return (\n <div className=\"inline-flex items-center rounded-lg border\">\n <Button variant=\"bare\" size=\"bare\" type=\"button\" aria-label=\"Diminuir\" disabled={value <= 1} onClick={() => onChange(value - 1)}\n className=\"font-normal flex h-7 w-7 items-center justify-center text-muted-foreground hover:text-foreground disabled:opacity-30\">\n <Minus className=\"h-3 w-3\" />\n </Button>\n <span className=\"w-7 text-center text-sm tabular-nums\">{value}</span>\n <Button variant=\"bare\" size=\"bare\" type=\"button\" aria-label=\"Aumentar\" onClick={() => onChange(value + 1)}\n className=\"font-normal flex h-7 w-7 items-center justify-center text-muted-foreground hover:text-foreground\">\n <Plus className=\"h-3 w-3\" />\n </Button>\n </div>\n )\n}\n\nexport function RecommendationField({ value, onChange, shortcuts = [] }: {\n value: unknown\n onChange: (v: RecommendationLine[]) => void\n shortcuts?: RecommendationShortcut[]\n}) {\n const ctx = useOptionalCustomFormsContext()\n const items = Array.isArray(value) ? (value as RecommendationLine[]) : []\n const [picking, setPicking] = React.useState<'service' | 'package' | null>(null)\n const [catalog, setCatalog] = React.useState<CatalogOption[] | null>(null)\n const [erro, setErro] = React.useState<string | null>(null)\n\n React.useEffect(() => {\n if (!picking || catalog) return\n let alive = true\n Promise.resolve(ctx?.provider.searchCatalog?.('') ?? [])\n .then((r) => { if (alive) setCatalog(r) })\n .catch((e) => { if (alive) { setCatalog([]); setErro(describeError(e, 'Não foi possível ler o catálogo.')) } })\n return () => { alive = false }\n }, [picking, catalog, ctx])\n\n const has = (serviceId: string) => items.some((i) => i.serviceId === serviceId && !i.packageId)\n\n const groups = React.useMemo<PickerGroup[]>(() => {\n const opts = (catalog ?? []).filter((c) => c.kind === picking)\n if (picking === 'package') {\n return [{ id: 'pk', options: opts.map((c) => ({ id: c.id, label: c.name, hint: brl(c.price) })) }]\n }\n const by = new Map<string, CatalogOption[]>()\n for (const c of opts) {\n const g = c.group ?? 'Outros'\n if (!by.has(g)) by.set(g, [])\n by.get(g)!.push(c)\n }\n return [...by.entries()].sort(([a], [b]) => a.localeCompare(b, 'pt-BR')).map(([g, cs]) => ({\n id: g,\n label: `${g} (${cs.length})`,\n options: cs.map((c) => ({ id: c.id, label: c.name, hint: brl(c.price), disabled: has(c.id) })),\n }))\n }, [catalog, picking, items])\n\n async function pick(id: string) {\n const c = catalog?.find((x) => x.id === id)\n if (!c) return\n if (c.kind === 'service') {\n if (!has(c.id)) onChange([...items, { serviceId: c.id, name: c.name, unitPrice: c.price, quantity: 1 }])\n setPicking(null)\n return\n }\n // A package is indicated through its services: the contracting step and the CRM speak services.\n try {\n const lines = (await ctx?.provider.getPackageServices?.(c.id)) ?? []\n if (!lines.length) { setErro('Este pacote não tem serviços cadastrados.'); return }\n onChange([...items.filter((i) => i.packageId !== c.id), ...lines.map((l) => ({ ...l, packageId: c.id, packageName: c.name }))])\n setPicking(null)\n } catch (e) {\n setErro(describeError(e, 'Não foi possível abrir o pacote.'))\n }\n }\n\n const freeShortcuts = shortcuts.filter((s) => !has(s.serviceId))\n\n return (\n <div className=\"space-y-2.5\">\n {freeShortcuts.length > 0 && (\n <div className=\"space-y-2 rounded-lg border border-warning/40 bg-warning-soft/50 p-2.5\">\n <p className=\"flex items-center gap-1.5 text-xs font-semibold text-warning-soft-foreground\">\n <ShoppingBag className=\"h-3.5 w-3.5\" /> Compras antecipadas deste cliente\n <span className=\"text-[11px] font-normal opacity-80\">· toque para indicar o que vai executar</span>\n </p>\n <div className=\"flex flex-wrap gap-1.5\">\n {freeShortcuts.map((s) => (\n <Button variant=\"bare\" size=\"bare\" key={s.serviceId} type=\"button\"\n onClick={() => onChange([...items, { serviceId: s.serviceId, name: s.name, unitPrice: s.unitPrice, quantity: 1 }])}\n className=\"font-normal inline-flex items-center gap-1.5 rounded-full border bg-background px-2.5 py-1 text-xs hover:bg-muted\">\n <Plus className=\"h-3 w-3\" /><span className=\"font-medium\">{s.name}</span>\n {s.hint && <span className=\"text-[11px] text-success\">{s.hint}</span>}\n </Button>\n ))}\n </div>\n </div>\n )}\n\n {items.length > 0 ? (\n <div className=\"overflow-hidden rounded-lg border\">\n <div className=\"grid grid-cols-[1fr_auto_auto] gap-2 border-b bg-muted/50 px-3 py-2 text-xs font-semibold text-muted-foreground\">\n <span>Procedimento indicado</span><span className=\"w-[84px] text-center\">Qtd.</span><span className=\"w-6\" />\n </div>\n {items.map((it, idx) => (\n <div key={`${it.packageId ?? ''}:${it.serviceId}`} className=\"grid grid-cols-[1fr_auto_auto] items-center gap-2 border-b px-3 py-2 last:border-0\">\n <div className=\"min-w-0\">\n <p className=\"truncate text-sm\">{it.name}</p>\n <p className=\"text-[11px] text-muted-foreground\">\n {brl(it.unitPrice * it.quantity)}{it.packageName ? ` · pacote ${it.packageName}` : ''}\n </p>\n </div>\n <Stepper value={it.quantity} onChange={(q) => onChange(items.map((x, i) => (i === idx ? { ...x, quantity: q } : x)))} />\n <Button variant=\"bare\" size=\"bare\" type=\"button\" aria-label={`Remover ${it.name}`} onClick={() => onChange(items.filter((_, i) => i !== idx))}\n className=\"font-normal flex h-6 w-6 items-center justify-center text-muted-foreground hover:text-destructive\">\n <Trash2 className=\"h-3.5 w-3.5\" />\n </Button>\n </div>\n ))}\n </div>\n ) : !picking && (\n <div className=\"flex items-center gap-2 rounded-lg border-2 border-dashed border-input p-3 text-sm text-muted-foreground\">\n <Receipt className=\"h-5 w-5 shrink-0\" />\n Indique procedimentos para o cliente — eles vão para o CRM e para \"O que o cliente deseja contratar?\".\n </div>\n )}\n\n {picking ? (\n <div className=\"overflow-hidden rounded-lg border\">\n <div className=\"flex items-center justify-between border-b px-3 py-2\">\n <p className=\"text-xs font-semibold\">{picking === 'package' ? 'Indicar pacote' : 'Adicionar serviços'}</p>\n <Button variant=\"bare\" size=\"bare\" type=\"button\" onClick={() => setPicking(null)} aria-label=\"Fechar lista\"\n className=\"font-normal text-muted-foreground hover:text-foreground\"><X className=\"h-4 w-4\" /></Button>\n </div>\n {catalog === null ? (\n <div className=\"space-y-1.5 p-3\" aria-busy=\"true\">\n {[0, 1, 2, 3].map((i) => <div key={i} className=\"h-8 animate-pulse rounded-md bg-muted\" />)}\n </div>\n ) : (\n <PickerList groups={groups} onSelect={pick} searchThreshold={0} listClassName=\"max-h-72\"\n searchPlaceholder={picking === 'package' ? 'Buscar pacote…' : 'Buscar serviço…'}\n emptyLabel={picking === 'package' ? 'Nenhum pacote ativo' : 'Nenhum serviço encontrado'} />\n )}\n </div>\n ) : (\n <div className=\"grid gap-2 sm:grid-cols-2\">\n <Button type=\"button\" variant=\"outline\" className=\"justify-center gap-2\" onClick={() => setPicking('service')}>\n <Plus className=\"h-4 w-4\" /> Adicionar indicação\n </Button>\n <Button type=\"button\" variant=\"outline\" className=\"justify-center gap-2\" onClick={() => setPicking('package')}>\n <Package className=\"h-4 w-4\" /> Indicar pacote\n </Button>\n </div>\n )}\n {erro && <p className=\"text-xs text-destructive\">{erro}</p>}\n </div>\n )\n}\n\nexport function RecommendationView({ items }: { items: RecommendationLine[] }) {\n if (!items.length) return <span className=\"text-muted-foreground/50\">—</span>\n return (\n <ul className=\"space-y-1\">\n {items.map((it) => (\n <li key={`${it.packageId ?? ''}:${it.serviceId}`} className=\"flex items-baseline justify-between gap-3 text-sm\">\n <span>{it.quantity > 1 ? `${it.quantity}× ` : ''}{it.name}</span>\n <span className=\"tabular-nums text-muted-foreground\">{brl(it.unitPrice * it.quantity)}</span>\n </li>\n ))}\n </ul>\n )\n}\n\nexport function SignatureField({ field, value, onChange }: { field: FormFieldDef; value: unknown; onChange: (v: unknown) => void }) {\n const canvasRef = React.useRef<HTMLCanvasElement>(null)\n const drawing = React.useRef(false)\n const dirty = React.useRef(false)\n const upload = useMediaUpload()\n const [saving, setSaving] = React.useState(false)\n const [erro, setErro] = React.useState<string | null>(null)\n\n React.useEffect(() => {\n const c = canvasRef.current\n if (!c) return\n const ratio = window.devicePixelRatio || 1\n c.width = c.offsetWidth * ratio\n c.height = c.offsetHeight * ratio\n const ctx = c.getContext('2d')!\n ctx.scale(ratio, ratio)\n ctx.lineWidth = 2\n ctx.lineCap = 'round'\n ctx.strokeStyle = '#111827'\n }, [isMedia(value)])\n\n if (isMedia(value)) {\n return (\n <div className=\"space-y-2\">\n <MediaImage value={value} alt=\"Assinatura\" className=\"max-h-32 rounded-md border bg-white\" />\n <Button type=\"button\" variant=\"outline\" size=\"sm\" onClick={() => onChange(null)}>Assinar novamente</Button>\n </div>\n )\n }\n\n const pos = (e: React.PointerEvent<HTMLCanvasElement>) => {\n const r = e.currentTarget.getBoundingClientRect()\n return [e.clientX - r.left, e.clientY - r.top] as const\n }\n\n async function confirm() {\n const c = canvasRef.current\n if (!c || !dirty.current || !upload) return\n setSaving(true); setErro(null)\n try {\n const blob = await new Promise<Blob | null>((r) => c.toBlob(r, 'image/png'))\n if (!blob) return\n const { path } = await upload(blob, `uploads/${field.id}`, 'assinatura.png')\n onChange({ path, type: 'signature' } satisfies MediaValue)\n } catch (e) {\n setErro(describeError(e, 'Não foi possível guardar a assinatura.'))\n } finally { setSaving(false) }\n }\n\n function clear() {\n const c = canvasRef.current\n if (!c) return\n c.getContext('2d')!.clearRect(0, 0, c.width, c.height)\n dirty.current = false\n }\n\n return (\n <div className=\"space-y-2\">\n <canvas\n ref={canvasRef}\n className=\"h-36 w-full touch-none rounded-md border bg-white\"\n onPointerDown={(e) => {\n drawing.current = true\n e.currentTarget.setPointerCapture(e.pointerId)\n const ctx = e.currentTarget.getContext('2d')!\n const [x, y] = pos(e); ctx.beginPath(); ctx.moveTo(x, y)\n }}\n onPointerMove={(e) => {\n if (!drawing.current) return\n const ctx = e.currentTarget.getContext('2d')!\n const [x, y] = pos(e); ctx.lineTo(x, y); ctx.stroke(); dirty.current = true\n }}\n onPointerUp={() => { drawing.current = false }}\n />\n <div className=\"flex gap-2\">\n <Button type=\"button\" variant=\"outline\" size=\"sm\" onClick={clear}>Limpar</Button>\n <Button type=\"button\" size=\"sm\" onClick={confirm} disabled={saving || !upload}>\n {saving ? 'Guardando…' : 'Confirmar assinatura'}\n </Button>\n </div>\n {erro && <p className=\"text-xs text-destructive\">{erro}</p>}\n </div>\n )\n}\n"]}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAWnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAWnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAA;AAsDxD,YAAY,EAAE,wBAAwB,EAAE,CAAA;AACxC,OAAO,EAAE,4BAA4B,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AACvH,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAC5F,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,KAAK,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC9H,YAAY,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAExE,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAC5F,OAAO,EACL,yBAAyB,EAAE,uBAAuB,EAClD,KAAK,kBAAkB,EAAE,KAAK,eAAe,EAAE,KAAK,oBAAoB,GACzE,MAAM,4BAA4B,CAAA;AACnC,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAErI,OAAO,EAAE,aAAa,EAAE,KAAK,qBAAqB,EAAE,KAAK,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACpH,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAA;AAWxE,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,wBAAwB,GAAG,cAAc,CA0R1F"}
|