diff --git a/docs/screenshots/menu-layout/after-ask-empty-en-light.jpg b/docs/screenshots/menu-layout/after-ask-empty-en-light.jpg new file mode 100644 index 000000000..f66a8f9e4 Binary files /dev/null and b/docs/screenshots/menu-layout/after-ask-empty-en-light.jpg differ diff --git a/docs/screenshots/menu-layout/after-ask-error-en-dark.jpg b/docs/screenshots/menu-layout/after-ask-error-en-dark.jpg new file mode 100644 index 000000000..b2fae34d2 Binary files /dev/null and b/docs/screenshots/menu-layout/after-ask-error-en-dark.jpg differ diff --git a/docs/screenshots/menu-layout/after-ask-error-en-light.jpg b/docs/screenshots/menu-layout/after-ask-error-en-light.jpg new file mode 100644 index 000000000..fb183dc5a Binary files /dev/null and b/docs/screenshots/menu-layout/after-ask-error-en-light.jpg differ diff --git a/docs/screenshots/menu-layout/after-ask-filled-en-light.jpg b/docs/screenshots/menu-layout/after-ask-filled-en-light.jpg new file mode 100644 index 000000000..8df4edef8 Binary files /dev/null and b/docs/screenshots/menu-layout/after-ask-filled-en-light.jpg differ diff --git a/docs/screenshots/menu-layout/after-ask-filled-es-light.jpg b/docs/screenshots/menu-layout/after-ask-filled-es-light.jpg new file mode 100644 index 000000000..b6e39bddf Binary files /dev/null and b/docs/screenshots/menu-layout/after-ask-filled-es-light.jpg differ diff --git a/docs/screenshots/menu-layout/after-ask-filled-hu-dark.jpg b/docs/screenshots/menu-layout/after-ask-filled-hu-dark.jpg new file mode 100644 index 000000000..19d6bab69 Binary files /dev/null and b/docs/screenshots/menu-layout/after-ask-filled-hu-dark.jpg differ diff --git a/docs/screenshots/menu-layout/after-ask-filled-hu-light.jpg b/docs/screenshots/menu-layout/after-ask-filled-hu-light.jpg new file mode 100644 index 000000000..d5cc2f060 Binary files /dev/null and b/docs/screenshots/menu-layout/after-ask-filled-hu-light.jpg differ diff --git a/docs/screenshots/menu-layout/after-ask-loading-en-light.jpg b/docs/screenshots/menu-layout/after-ask-loading-en-light.jpg new file mode 100644 index 000000000..875abd2a4 Binary files /dev/null and b/docs/screenshots/menu-layout/after-ask-loading-en-light.jpg differ diff --git a/docs/screenshots/menu-layout/after-ask-options-en-light.jpg b/docs/screenshots/menu-layout/after-ask-options-en-light.jpg new file mode 100644 index 000000000..840403c4f Binary files /dev/null and b/docs/screenshots/menu-layout/after-ask-options-en-light.jpg differ diff --git a/docs/screenshots/menu-layout/after-ask-options-hu-light.jpg b/docs/screenshots/menu-layout/after-ask-options-hu-light.jpg new file mode 100644 index 000000000..d3d5ac919 Binary files /dev/null and b/docs/screenshots/menu-layout/after-ask-options-hu-light.jpg differ diff --git a/docs/screenshots/menu-layout/after-ask-sidebar-hu-dark.jpg b/docs/screenshots/menu-layout/after-ask-sidebar-hu-dark.jpg new file mode 100644 index 000000000..2819bfe07 Binary files /dev/null and b/docs/screenshots/menu-layout/after-ask-sidebar-hu-dark.jpg differ diff --git a/docs/screenshots/menu-layout/after-gen-empty-en-light.jpg b/docs/screenshots/menu-layout/after-gen-empty-en-light.jpg new file mode 100644 index 000000000..96024c2b9 Binary files /dev/null and b/docs/screenshots/menu-layout/after-gen-empty-en-light.jpg differ diff --git a/docs/screenshots/menu-layout/after-gen-error-en-light.jpg b/docs/screenshots/menu-layout/after-gen-error-en-light.jpg new file mode 100644 index 000000000..7e5659ee2 Binary files /dev/null and b/docs/screenshots/menu-layout/after-gen-error-en-light.jpg differ diff --git a/docs/screenshots/menu-layout/after-gen-filled-en-dark.jpg b/docs/screenshots/menu-layout/after-gen-filled-en-dark.jpg new file mode 100644 index 000000000..fc81faa9c Binary files /dev/null and b/docs/screenshots/menu-layout/after-gen-filled-en-dark.jpg differ diff --git a/docs/screenshots/menu-layout/after-gen-filled-en-light.jpg b/docs/screenshots/menu-layout/after-gen-filled-en-light.jpg new file mode 100644 index 000000000..61c873576 Binary files /dev/null and b/docs/screenshots/menu-layout/after-gen-filled-en-light.jpg differ diff --git a/docs/screenshots/menu-layout/after-gen-filled-es-light.jpg b/docs/screenshots/menu-layout/after-gen-filled-es-light.jpg new file mode 100644 index 000000000..2352576c6 Binary files /dev/null and b/docs/screenshots/menu-layout/after-gen-filled-es-light.jpg differ diff --git a/docs/screenshots/menu-layout/after-gen-filled-hu-dark.jpg b/docs/screenshots/menu-layout/after-gen-filled-hu-dark.jpg new file mode 100644 index 000000000..f380f2bcd Binary files /dev/null and b/docs/screenshots/menu-layout/after-gen-filled-hu-dark.jpg differ diff --git a/docs/screenshots/menu-layout/after-gen-filled-hu-light.jpg b/docs/screenshots/menu-layout/after-gen-filled-hu-light.jpg new file mode 100644 index 000000000..4ad977e3e Binary files /dev/null and b/docs/screenshots/menu-layout/after-gen-filled-hu-light.jpg differ diff --git a/docs/screenshots/menu-layout/after-gen-loading-en-light.jpg b/docs/screenshots/menu-layout/after-gen-loading-en-light.jpg new file mode 100644 index 000000000..930538a6d Binary files /dev/null and b/docs/screenshots/menu-layout/after-gen-loading-en-light.jpg differ diff --git a/docs/screenshots/menu-layout/after-gen-regenerating-en-light.jpg b/docs/screenshots/menu-layout/after-gen-regenerating-en-light.jpg new file mode 100644 index 000000000..8f7ab6fd0 Binary files /dev/null and b/docs/screenshots/menu-layout/after-gen-regenerating-en-light.jpg differ diff --git a/docs/screenshots/menu-layout/after-gen-saved-hu-light.jpg b/docs/screenshots/menu-layout/after-gen-saved-hu-light.jpg new file mode 100644 index 000000000..f8fae342e Binary files /dev/null and b/docs/screenshots/menu-layout/after-gen-saved-hu-light.jpg differ diff --git a/docs/screenshots/menu-layout/before-ask-empty-en-light.jpg b/docs/screenshots/menu-layout/before-ask-empty-en-light.jpg new file mode 100644 index 000000000..530d3acc5 Binary files /dev/null and b/docs/screenshots/menu-layout/before-ask-empty-en-light.jpg differ diff --git a/docs/screenshots/menu-layout/before-ask-error-en-dark.jpg b/docs/screenshots/menu-layout/before-ask-error-en-dark.jpg new file mode 100644 index 000000000..1ab3ce8b0 Binary files /dev/null and b/docs/screenshots/menu-layout/before-ask-error-en-dark.jpg differ diff --git a/docs/screenshots/menu-layout/before-ask-error-en-light.jpg b/docs/screenshots/menu-layout/before-ask-error-en-light.jpg new file mode 100644 index 000000000..30181be01 Binary files /dev/null and b/docs/screenshots/menu-layout/before-ask-error-en-light.jpg differ diff --git a/docs/screenshots/menu-layout/before-ask-filled-en-light.jpg b/docs/screenshots/menu-layout/before-ask-filled-en-light.jpg new file mode 100644 index 000000000..caddd0dbd Binary files /dev/null and b/docs/screenshots/menu-layout/before-ask-filled-en-light.jpg differ diff --git a/docs/screenshots/menu-layout/before-ask-filled-es-light.jpg b/docs/screenshots/menu-layout/before-ask-filled-es-light.jpg new file mode 100644 index 000000000..5595e76da Binary files /dev/null and b/docs/screenshots/menu-layout/before-ask-filled-es-light.jpg differ diff --git a/docs/screenshots/menu-layout/before-ask-filled-hu-dark.jpg b/docs/screenshots/menu-layout/before-ask-filled-hu-dark.jpg new file mode 100644 index 000000000..4e9ac1476 Binary files /dev/null and b/docs/screenshots/menu-layout/before-ask-filled-hu-dark.jpg differ diff --git a/docs/screenshots/menu-layout/before-ask-filled-hu-light.jpg b/docs/screenshots/menu-layout/before-ask-filled-hu-light.jpg new file mode 100644 index 000000000..71fdb29f9 Binary files /dev/null and b/docs/screenshots/menu-layout/before-ask-filled-hu-light.jpg differ diff --git a/docs/screenshots/menu-layout/before-ask-loading-en-light.jpg b/docs/screenshots/menu-layout/before-ask-loading-en-light.jpg new file mode 100644 index 000000000..e458fbe29 Binary files /dev/null and b/docs/screenshots/menu-layout/before-ask-loading-en-light.jpg differ diff --git a/docs/screenshots/menu-layout/before-ask-options-en-light.jpg b/docs/screenshots/menu-layout/before-ask-options-en-light.jpg new file mode 100644 index 000000000..4ca4e1bd6 Binary files /dev/null and b/docs/screenshots/menu-layout/before-ask-options-en-light.jpg differ diff --git a/docs/screenshots/menu-layout/before-ask-options-hu-light.jpg b/docs/screenshots/menu-layout/before-ask-options-hu-light.jpg new file mode 100644 index 000000000..7c7729a39 Binary files /dev/null and b/docs/screenshots/menu-layout/before-ask-options-hu-light.jpg differ diff --git a/docs/screenshots/menu-layout/before-ask-sidebar-hu-dark.jpg b/docs/screenshots/menu-layout/before-ask-sidebar-hu-dark.jpg new file mode 100644 index 000000000..4d4c3d743 Binary files /dev/null and b/docs/screenshots/menu-layout/before-ask-sidebar-hu-dark.jpg differ diff --git a/docs/screenshots/menu-layout/before-gen-empty-en-light.jpg b/docs/screenshots/menu-layout/before-gen-empty-en-light.jpg new file mode 100644 index 000000000..bdf8833b7 Binary files /dev/null and b/docs/screenshots/menu-layout/before-gen-empty-en-light.jpg differ diff --git a/docs/screenshots/menu-layout/before-gen-error-en-light.jpg b/docs/screenshots/menu-layout/before-gen-error-en-light.jpg new file mode 100644 index 000000000..4549919d0 Binary files /dev/null and b/docs/screenshots/menu-layout/before-gen-error-en-light.jpg differ diff --git a/docs/screenshots/menu-layout/before-gen-filled-en-dark.jpg b/docs/screenshots/menu-layout/before-gen-filled-en-dark.jpg new file mode 100644 index 000000000..7e1f62ae1 Binary files /dev/null and b/docs/screenshots/menu-layout/before-gen-filled-en-dark.jpg differ diff --git a/docs/screenshots/menu-layout/before-gen-filled-en-light.jpg b/docs/screenshots/menu-layout/before-gen-filled-en-light.jpg new file mode 100644 index 000000000..864c9cb68 Binary files /dev/null and b/docs/screenshots/menu-layout/before-gen-filled-en-light.jpg differ diff --git a/docs/screenshots/menu-layout/before-gen-filled-es-light.jpg b/docs/screenshots/menu-layout/before-gen-filled-es-light.jpg new file mode 100644 index 000000000..049d8c54f Binary files /dev/null and b/docs/screenshots/menu-layout/before-gen-filled-es-light.jpg differ diff --git a/docs/screenshots/menu-layout/before-gen-filled-hu-dark.jpg b/docs/screenshots/menu-layout/before-gen-filled-hu-dark.jpg new file mode 100644 index 000000000..d85ac942d Binary files /dev/null and b/docs/screenshots/menu-layout/before-gen-filled-hu-dark.jpg differ diff --git a/docs/screenshots/menu-layout/before-gen-filled-hu-light.jpg b/docs/screenshots/menu-layout/before-gen-filled-hu-light.jpg new file mode 100644 index 000000000..e4070f66e Binary files /dev/null and b/docs/screenshots/menu-layout/before-gen-filled-hu-light.jpg differ diff --git a/docs/screenshots/menu-layout/before-gen-loading-en-light.jpg b/docs/screenshots/menu-layout/before-gen-loading-en-light.jpg new file mode 100644 index 000000000..404930541 Binary files /dev/null and b/docs/screenshots/menu-layout/before-gen-loading-en-light.jpg differ diff --git a/docs/screenshots/menu-layout/before-gen-regenerating-en-light.jpg b/docs/screenshots/menu-layout/before-gen-regenerating-en-light.jpg new file mode 100644 index 000000000..6e541146c Binary files /dev/null and b/docs/screenshots/menu-layout/before-gen-regenerating-en-light.jpg differ diff --git a/docs/screenshots/menu-layout/before-gen-saved-hu-light.jpg b/docs/screenshots/menu-layout/before-gen-saved-hu-light.jpg new file mode 100644 index 000000000..8f43ba248 Binary files /dev/null and b/docs/screenshots/menu-layout/before-gen-saved-hu-light.jpg differ diff --git a/src/components/features/ExportToolbar.tsx b/src/components/features/ExportToolbar.tsx index c0b2757d4..167599956 100644 --- a/src/components/features/ExportToolbar.tsx +++ b/src/components/features/ExportToolbar.tsx @@ -4,6 +4,7 @@ import { useTranslation } from 'react-i18next'; import { FileText, FileDown, MessageSquare } from 'lucide-react'; import { Button } from '@/components/ui/button'; import GoogleDocsIcon from '@/components/icons/GoogleDocsIcon'; +import { cn } from '@/lib/utils'; interface ExportToolbarProps { onPdf: () => void; @@ -16,8 +17,16 @@ interface ExportToolbarProps { extraExports?: ReactNode; /** Buttons that appear on the top row (Save, Discuss, Flowcharts, Undo, etc.). */ secondaryActions?: ReactNode; + /** On a phone, both rows stretch their buttons into even pairs and the EXPORT tag takes its own line. */ + evenRows?: boolean; } +// On a phone each button grows from half the row, so two share a line and a +// label too long for half takes the whole line; nothing is left ragged. Buttons +// set their own touch min-width, which would let a long label shrink into half +// a row, so the width of the label wins. +const EVEN_ROW = 'max-sm:[&>*]:grow max-sm:[&>*]:basis-[calc(50%-0.25rem)] max-sm:[&>*]:whitespace-nowrap max-sm:[&>*]:min-w-fit!'; + // Unified export bar used by every feature's results view. // Two explicit rows, both left-aligned: // Row 1 (top): secondary actions — Save, Discuss, Flowcharts, Undo @@ -32,16 +41,22 @@ export function ExportToolbar({ discussLabel, extraExports, secondaryActions, + evenRows = false, }: ExportToolbarProps) { const { t } = useTranslation(); const hasSecondaryActions = Children.toArray(secondaryActions).filter(Boolean).length > 0; const hasTopRow = hasSecondaryActions || !!onDiscuss; + const exportTag = ( + + {t('common.export', 'Export')} + + ); return (