/** * Entity properties panel — canonical create/edit/delete surface for tenant * entities. Plain HTML + Tailwind (no shadcn) so the package has zero * design-system dependency; consumers theme via the neutral palette. * * Sync-from-prop uses the React-blessed render-time reset pattern: when the * incoming `entity` identity changes, we set state DURING render (not in a * useEffect) so the form resets atomically before the next paint. See * https://react.dev/reference/react/useState#storing-information-from-previous-renders */ import { type TenantEntity } from '../types.js'; export interface EntityPropertiesPanelProps { /** `null` renders the panel in create mode. */ entity: TenantEntity | null; /** Lowercase names already used in the scope, used for uniqueness validation. */ existingNames?: string[]; onClose: () => void; onSave: (updates: Partial) => void | Promise; onDelete?: (id: string) => void | Promise; /** * True when the signed-in user is a platform developer. Unlocks label and * description on a PLATFORM-owned system entity — the one edit that role is * permitted to make, routed through the audited * `update_platform_entity_label` RPC. The database enforces this * independently, so forcing the prop true client-side yields 42501. */ isPlatformDeveloper?: boolean; } export declare function EntityPropertiesPanel({ entity, existingNames, onClose, onSave, onDelete, isPlatformDeveloper, }: EntityPropertiesPanelProps): import("react").JSX.Element; //# sourceMappingURL=EntityPropertiesPanel.d.ts.map