diff --git a/src/styles/missing-tailwind.css b/src/styles/missing-tailwind.css index 28920da..4048b44 100644 --- a/src/styles/missing-tailwind.css +++ b/src/styles/missing-tailwind.css @@ -94,6 +94,10 @@ flex-shrink: 0; } +.min-w-0 { + min-width: 0; +} + .space-y-6>:not([hidden])~:not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse))); diff --git a/src/ui/Dialog.css b/src/ui/Dialog.css index 542b6a2..cf442ff 100644 --- a/src/ui/Dialog.css +++ b/src/ui/Dialog.css @@ -205,6 +205,9 @@ .SelectToolbar { display: flex; align-items: center; + /* Minimum breathing room between the select-all label and the right + group once the ml-auto margin collapses under pressure */ + gap: 12px; padding: 12px 16px; border-radius: 0; border: 1px solid #6f6e77; @@ -212,6 +215,12 @@ flex-shrink: 0; } +/* CJK labels wrap per-character when the row is squeezed — never shrink it */ +.SelectToolbar .CheckBoxLabel { + white-space: nowrap; + flex-shrink: 0; +} + .ProjectSelect .Select { width: auto; } diff --git a/src/ui/ExportDialog.tsx b/src/ui/ExportDialog.tsx index af40758..0364098 100644 --- a/src/ui/ExportDialog.tsx +++ b/src/ui/ExportDialog.tsx @@ -221,16 +221,22 @@ const ConversationSelect: FC = ({ setSelected(checked ? filtered : []) }} /> -
+ {/* min-w-0 lets the shrinkable items (hint first, then the loading + indicator) truncate instead of the whole row wrapping */} +
{loading && conversations.length > 0 && ( - + {t('Loading')}... ({conversations.length}) )} - + {/* Highest shrink factor: the hint collapses before the + loading indicator starts truncating */} + {t('Shift Select Hint')} - + {selected.length} / {filtered.length}