diff --git a/client/src/components/Files/FileManager.tsx b/client/src/components/Files/FileManager.tsx
index e1979d9b..8a4117bc 100644
--- a/client/src/components/Files/FileManager.tsx
+++ b/client/src/components/Files/FileManager.tsx
@@ -649,8 +649,14 @@ export default function FileManager({ files = [], onUpload, onDelete, onUpdate,
{dayGroups.map(({ day, dayPlaces }) => (
-
- {day.title || `${t('dayplan.dayN', { n: day.day_number })}${day.date ? ` · ${day.date}` : ''}`}
+
+ {day.title || t('dayplan.dayN', { n: day.day_number })}
+ {day.date && (
+ {day.date}
+ )}
{dayPlaces.map(placeBtn)}
diff --git a/client/src/components/Planner/DayDetailPanel.tsx b/client/src/components/Planner/DayDetailPanel.tsx
index 3ff8b102..02a799f9 100644
--- a/client/src/components/Planner/DayDetailPanel.tsx
+++ b/client/src/components/Planner/DayDetailPanel.tsx
@@ -462,7 +462,8 @@ export default function DayDetailPanel({ day, days, places, categories = [], tri
onChange={v => setHotelDayRange(prev => ({ start: v, end: Math.max(v, prev.end) }))}
options={days.map((d, i) => ({
value: d.id,
- label: `${d.title || t('planner.dayN', { n: i + 1 })}${d.date ? ` — ${new Date(d.date + 'T00:00:00Z').toLocaleDateString(locale, { day: 'numeric', month: 'short', timeZone: 'UTC' })}` : ''}`,
+ label: d.title || t('planner.dayN', { n: i + 1 }),
+ badge: d.date ? new Date(d.date + 'T00:00:00Z').toLocaleDateString(locale, { day: 'numeric', month: 'short', timeZone: 'UTC' }) : undefined,
}))}
size="sm"
/>
@@ -474,7 +475,8 @@ export default function DayDetailPanel({ day, days, places, categories = [], tri
onChange={v => setHotelDayRange(prev => ({ start: Math.min(prev.start, v), end: v }))}
options={days.map((d, i) => ({
value: d.id,
- label: `${d.title || t('planner.dayN', { n: i + 1 })}${d.date ? ` — ${new Date(d.date + 'T00:00:00Z').toLocaleDateString(locale, { day: 'numeric', month: 'short', timeZone: 'UTC' })}` : ''}`,
+ label: d.title || t('planner.dayN', { n: i + 1 }),
+ badge: d.date ? new Date(d.date + 'T00:00:00Z').toLocaleDateString(locale, { day: 'numeric', month: 'short', timeZone: 'UTC' }) : undefined,
}))}
size="sm"
/>
diff --git a/client/src/components/Planner/ReservationModal.tsx b/client/src/components/Planner/ReservationModal.tsx
index 38408599..38889374 100644
--- a/client/src/components/Planner/ReservationModal.tsx
+++ b/client/src/components/Planner/ReservationModal.tsx
@@ -439,7 +439,11 @@ export function ReservationModal({ isOpen, onClose, onSave, reservation, days, p
value={form.hotel_start_day}
onChange={value => set('hotel_start_day', value)}
placeholder={t('reservations.meta.selectDay')}
- options={days.map(d => ({ value: d.id, label: d.title || `${t('dayplan.dayN', { n: d.day_number })}${d.date ? ` · ${formatDate(d.date, locale)}` : ''}` }))}
+ options={days.map(d => ({
+ value: d.id,
+ label: d.title || t('dayplan.dayN', { n: d.day_number }),
+ badge: d.date ? (formatDate(d.date, locale) ?? undefined) : undefined,
+ }))}
size="sm"
/>
@@ -449,7 +453,11 @@ export function ReservationModal({ isOpen, onClose, onSave, reservation, days, p
value={form.hotel_end_day}
onChange={value => set('hotel_end_day', value)}
placeholder={t('reservations.meta.selectDay')}
- options={days.map(d => ({ value: d.id, label: d.title || `${t('dayplan.dayN', { n: d.day_number })}${d.date ? ` · ${formatDate(d.date, locale)}` : ''}` }))}
+ options={days.map(d => ({
+ value: d.id,
+ label: d.title || t('dayplan.dayN', { n: d.day_number }),
+ badge: d.date ? (formatDate(d.date, locale) ?? undefined) : undefined,
+ }))}
size="sm"
/>
diff --git a/client/src/components/Planner/TransportModal.tsx b/client/src/components/Planner/TransportModal.tsx
index 53497a76..8bff7762 100644
--- a/client/src/components/Planner/TransportModal.tsx
+++ b/client/src/components/Planner/TransportModal.tsx
@@ -222,7 +222,8 @@ export function TransportModal({ isOpen, onClose, onSave, reservation, days, sel
{ value: '', label: '—' },
...days.map(d => ({
value: d.id,
- label: d.title || `${t('dayplan.dayN', { n: d.day_number })}${d.date ? ` · ${formatDate(d.date, locale) ?? ''}` : ''}`,
+ label: d.title || t('dayplan.dayN', { n: d.day_number }),
+ badge: d.date ? (formatDate(d.date, locale) ?? undefined) : undefined,
})),
]
diff --git a/client/src/components/shared/CustomSelect.tsx b/client/src/components/shared/CustomSelect.tsx
index 580123a2..d8b5ddbb 100644
--- a/client/src/components/shared/CustomSelect.tsx
+++ b/client/src/components/shared/CustomSelect.tsx
@@ -9,6 +9,7 @@ interface SelectOption {
isHeader?: boolean
searchLabel?: string
groupLabel?: string
+ badge?: string
}
interface CustomSelectProps {
@@ -104,6 +105,13 @@ export default function CustomSelect({