@@ -240,6 +240,8 @@ export default function Download() {
240240 </ div >
241241 ) }
242242
243+ { detected === 'mac' && < MacGatekeeperNotice /> }
244+
243245 { Object . entries ( PLATFORMS ) . map ( ( [ key , meta ] ) => {
244246 const assets = grouped [ key ] || [ ]
245247 if ( ! assets . length ) return null
@@ -328,20 +330,52 @@ function PlatformSection({ platform, assets, highlight, showMacNote }) {
328330 ) ) }
329331 </ div >
330332
331- { showMacNote && (
332- < p className = "mt-3 text-xs text-gray-400 leading-relaxed" >
333- Builds are unsigned unless signing credentials are configured, so the first
334- launch needs < span className = "text-gray-600" > right-click → Open</ span > (or{ ' ' }
335- < code className = "text-gray-600" >
336- xattr -dr com.apple.quarantine /Applications/DeepSQL.app
337- </ code >
338- ).
339- </ p >
340- ) }
333+ { showMacNote && < MacGatekeeperNotice compact /> }
341334 </ section >
342335 )
343336}
344337
338+ /** macOS builds ship unsigned unless signing secrets are configured in CI. */
339+ function MacGatekeeperNotice ( { compact = false } ) {
340+ return (
341+ < div
342+ className = { `rounded-xl border border-amber-200 bg-amber-50 text-amber-950 ${
343+ compact ? 'mt-3 px-4 py-3' : 'mb-10 px-5 py-4'
344+ } `}
345+ >
346+ < div className = "flex items-start gap-3" >
347+ < AlertTriangle className = "h-4 w-4 text-amber-700 mt-0.5 shrink-0" />
348+ < div className = "text-sm leading-relaxed" >
349+ < p className = { `font-semibold text-amber-950 ${ compact ? 'mb-1' : 'mb-2' } ` } >
350+ macOS may block the first launch
351+ </ p >
352+ < p className = "text-amber-900/90 mb-3" >
353+ Installers are not Apple-notarized yet, so double-clicking can show
354+ “DeepSQL” Not Opened with only < strong > Done</ strong > and{ ' ' }
355+ < strong > Move to Trash</ strong > . That is expected — use one of these instead:
356+ </ p >
357+ < ol className = "list-decimal pl-5 space-y-2 text-amber-900/90" >
358+ < li >
359+ In Finder, < strong > right-click DeepSQL.app → Open</ strong > , then click{ ' ' }
360+ < strong > Open</ strong > in the dialog. You only need to do this once.
361+ </ li >
362+ < li >
363+ Or open < strong > System Settings → Privacy & Security</ strong > , scroll
364+ down after the block, and click < strong > Open Anyway</ strong > .
365+ </ li >
366+ < li >
367+ Or run in Terminal:{ ' ' }
368+ < code className = "text-xs bg-amber-100/80 px-1.5 py-0.5 rounded" >
369+ xattr -dr com.apple.quarantine /Applications/DeepSQL.app
370+ </ code >
371+ </ li >
372+ </ ol >
373+ </ div >
374+ </ div >
375+ </ div >
376+ )
377+ }
378+
345379function Notice ( { tone, title, body, action } ) {
346380 return (
347381 < div
0 commit comments