F1 component kit/Shell/Language globe, clock and timezoneDesktop

Language globe, clock and timezone

Missing · new03 · locale-tz

Per-person preferences stored by PUT /admin/me/preferences {locale, timezone}. The globe is the whole control: one click toggles EN ↔ 中文. The clock shows the time in the staff zone and opens the timezone choice. Settings that carry their own zone (shipping cutoff, supplier) use the IANA timezone field.

Covers: M09. Exports: LocaleToggle, ClockButton, TimezoneSelect.

Whole page:Phone is fixed at comfortable (POWERUPS #15).Laravel · navyDTC · midnight green

Anatomy

The component as it sits in the product: English, compact, real data shapes.

Profile

LanguageEnglish · 中文
TimezoneAsia/Shanghai · UTC+8
Switch to desktop viewRemembered on this phone

States

5 states, left to right, top to bottom. A mock poll never finishes, so each state is drawn on purpose.

default · globe + clock

Profile

LanguageEnglish · 中文
TimezoneAsia/Shanghai · UTC+8
Switch to desktop viewRemembered on this phone
clock → timezone menu

Profile

LanguageEnglish · 中文
TimezoneAsia/Shanghai · UTC+8
Switch to desktop viewRemembered on this phone
Show times inAPI sends UTC
Asia/ShanghaiUTC+8
Europe/DublinUTC+1
Europe/LondonUTC+1
America/New_YorkUTC−4
UTCUTC+0
Saved to your preferences · timezone
IANA timezone field (settings)

Profile

LanguageEnglish · 中文
TimezoneAsia/Shanghai · UTC+8
Switch to desktop viewRemembered on this phone
saving locale

Profile

LanguageEnglish · 中文
TimezoneAsia/Shanghai · UTC+8
Switch to desktop viewRemembered on this phone
Saving…
save failed

Profile

LanguageEnglish · 中文
TimezoneAsia/Shanghai · UTC+8
Switch to desktop viewRemembered on this phone

Density

The phone shell is always comfortable (POWERUPS #15): 44px tap targets, 16px inputs. Compact exists on desktop only; see the desktop page.

comfortable · phone default

Profile

LanguageEnglish · 中文
TimezoneAsia/Shanghai · UTC+8
Switch to desktop viewRemembered on this phone

English · 中文

Staff pick en or cn (T001 Q25). Labels arrive localised; CJK falls back to PingFang SC / Noto Sans SC.

en

Profile

LanguageEnglish · 中文
TimezoneAsia/Shanghai · UTC+8
Switch to desktop viewRemembered on this phone
中文 · lang=zh-Hans

个人资料

语言English · 中文
时区Asia/Shanghai · UTC+8
切换到桌面版在本机记住

Long string · permission denied

The long-string case (PL-063) and what a role without the permission sees (the server decides; T003).

long string

Profile

LanguageEnglish · 中文
TimezoneAmerica/Argentina/ComodRivadavia · UTC−3
Switch to desktop viewRemembered on this phone
permission denied

Profile

LanguageEnglish · 中文
TimezoneAsia/Shanghai · UTC+8
Switch to desktop viewRemembered on this phone
Your own preference, always allowedPUT /admin/me/preferences

Contract

The @rj/admin-kit API for this family. Mirrored in CONTRACT.md.

Export
LocaleToggle · @rj/admin-kit
Props
locale en|cn · onChange
States
en · cn · saving · error
shadcn / Radix
Toggle (icon button)
Package underneath
next-intl
Accessibility
aria-label “Language: English. Switch to 中文”
API operations
admin.me.preferences.update {locale}
Export
ClockButton · @rj/admin-kit
Props
timezone · now
shadcn / Radix
Popover + Command (search)
Package underneath
@date-fns/tz · cmdk
Accessibility
time is a live region off; button names the zone
API operations
admin.me.preferences.update {timezone}
Export
TimezoneSelect · @rj/admin-kit
Props
value IANA · disabled
shadcn / Radix
Combobox (F1) over Intl.supportedValuesOf('timeZone')
Package underneath
cmdk
Phone variant
in the profile drawer