{{-- Entity-level SMART RETRY control — button + modal. Drives NotificationRetryController (preview + execute) which delegates to NotificationRetryService::retryEntity() / SmartRetryPlanner. The UI NEVER computes who to send to and never bypasses the idempotency success-guard — it only renders the engine's dry-run + result. Delta only: already-delivered recipients are skipped by the backend. Props: preview-url POST → dry-run summary (no sending) execute-url POST → queue the delta + result summary entity-type 'demo' | 'committee' | 'notification' | … entity-id int entity-title string entity-label optional badge text (defaults to Demo/Committee by entity-type) show-automation-type bool (default true) — hide for single-source producers show-audience bool (default true) — hide when audience is fixed show-not-confirmed bool (default true) — hide when there is no attendance axis --}} @props([ 'previewUrl', 'executeUrl', 'entityType', 'entityId', 'entityTitle', 'entityLabel' => null, 'showAutomationType' => true, 'showAudience' => true, 'showNotConfirmed' => true, ]) @php $ar = app()->getLocale() === 'ar'; $badgeLabel = $entityLabel ?? ($entityType === 'demo' ? ($ar ? 'ديمو' : 'Demo') : ($ar ? 'لجنة' : 'Committee')); @endphp