'est' : 'Eastern Standard Time (EST)' ,
'cst' : 'Central Standard Time (CST)' ,
'mst' : 'Mountain Standard Time (MST)' ,
'pst' : 'Pacific Standard Time (PST)' ,
'akst' : 'Alaska Standard Time (AKST)' ,
'hst' : 'Hawaii Standard Time (HST)' ,
'gmt' : 'Greenwich Mean Time (GMT)' ,
'cet' : 'Central European Time (CET)' ,
'eet' : 'Eastern European Time (EET)' ,
'west' : 'Western European Summer Time (WEST)' ,
'cat' : 'Central Africa Time (CAT)' ,
'eat' : 'Eastern Africa Time (EAT)' ,
'msk' : 'Moscow Time (MSK)' ,
'ist' : 'India Standard Time (IST)' ,
'cst_china' : 'China Standard Time (CST)' ,
'jst' : 'Japan Standard Time (JST)' ,
'kst' : 'Korea Standard Time (KST)' ,
'ist_indonasia' : 'Indonesia Standard Time (IST)' ,
'awst' : 'Australian Western Standard Time (AWST)' ,
'acst' : 'Australian Central Standard Time (ACST)' ,
'aest' : 'Australian Eastern Standard Time (AEST)' ,
'nzst' : 'New Zealand Standard Time (NZST)' ,
'fjt' : 'Fiji Time (FJT)' ,
'art' : 'Argentina Time (ART)' ,
'bot' : 'Bolivia Time (BOT)' ,
'brt' : 'Brasilia Time (BRT)' ,
'clt' : 'Chile Standard Time (CLT)' ,
List < Widget > getTimezonesWidgets ( ShadThemeData theme) {
final widgets = < Widget > [];
for ( final zone in timezones.entries) {
padding : const EdgeInsets . fromLTRB ( 32 , 6 , 6 , 6 ),
style : theme.textTheme.muted. copyWith (
fontWeight : FontWeight .w600,
color : theme.colorScheme.popoverForeground,
textAlign : TextAlign .start,
widgets. addAll (zone.value.entries
. map ((e) => ShadOption (value : e.key, child : Text (e.value))));
class SelectExample extends StatelessWidget {
const SelectExample ({ super .key});
Widget build ( BuildContext context) {
final theme = ShadTheme . of (context);
constraints : const BoxConstraints (minWidth : 280 ),
child : ShadSelect < String >(
placeholder : const Text ( 'Select a timezone' ),
options : getTimezonesWidgets (theme),
selectedOptionBuilder : (context, value) {
final timezone = timezones.entries
. firstWhere ((element) => element.value. containsKey (value))