@promptui-lib/codegen 0.1.3 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,6 +18,11 @@ export const COMPONENT_MAPPINGS = {
18
18
  props: { variant: 'contained' },
19
19
  imports: ["import { Button } from '@mui/material';"],
20
20
  },
21
+ antd: {
22
+ component: 'Button',
23
+ props: { type: 'primary' },
24
+ imports: ["import { Button } from 'antd';"],
25
+ },
21
26
  tailwind: {
22
27
  tag: 'button',
23
28
  classes: ['px-4', 'py-2', 'rounded-lg', 'font-medium'],
@@ -45,6 +50,10 @@ export const COMPONENT_MAPPINGS = {
45
50
  component: 'ButtonGroup',
46
51
  imports: ["import { ButtonGroup } from '@mui/material';"],
47
52
  },
53
+ antd: {
54
+ component: 'Space.Compact',
55
+ imports: ["import { Space, Button } from 'antd';"],
56
+ },
48
57
  tailwind: {
49
58
  tag: 'div',
50
59
  classes: ['inline-flex', 'rounded-lg', 'overflow-hidden'],
@@ -73,6 +82,11 @@ export const COMPONENT_MAPPINGS = {
73
82
  props: { severity: 'info' },
74
83
  imports: ["import { Alert } from '@mui/material';"],
75
84
  },
85
+ antd: {
86
+ component: 'Alert',
87
+ props: { type: 'info', showIcon: 'true' },
88
+ imports: ["import { Alert } from 'antd';"],
89
+ },
76
90
  tailwind: {
77
91
  tag: 'div',
78
92
  classes: ['p-4', 'rounded-lg', 'border'],
@@ -104,6 +118,11 @@ export const COMPONENT_MAPPINGS = {
104
118
  props: { size: 'small' },
105
119
  imports: ["import { Chip } from '@mui/material';"],
106
120
  },
121
+ antd: {
122
+ component: 'Badge',
123
+ props: { count: '0' },
124
+ imports: ["import { Badge } from 'antd';"],
125
+ },
107
126
  tailwind: {
108
127
  tag: 'span',
109
128
  classes: ['px-2', 'py-1', 'text-xs', 'font-medium', 'rounded-full'],
@@ -134,6 +153,10 @@ export const COMPONENT_MAPPINGS = {
134
153
  component: 'Card',
135
154
  imports: ["import { Card, CardContent } from '@mui/material';"],
136
155
  },
156
+ antd: {
157
+ component: 'Card',
158
+ imports: ["import { Card } from 'antd';"],
159
+ },
137
160
  tailwind: {
138
161
  tag: 'div',
139
162
  classes: ['rounded-lg', 'shadow-md', 'overflow-hidden', 'bg-white'],
@@ -162,6 +185,11 @@ export const COMPONENT_MAPPINGS = {
162
185
  component: 'Dialog',
163
186
  imports: ["import { Dialog, DialogTitle, DialogContent, DialogActions } from '@mui/material';"],
164
187
  },
188
+ antd: {
189
+ component: 'Modal',
190
+ props: { open: 'false' },
191
+ imports: ["import { Modal } from 'antd';"],
192
+ },
165
193
  tailwind: {
166
194
  tag: 'div',
167
195
  classes: ['fixed', 'inset-0', 'z-50', 'flex', 'items-center', 'justify-center'],
@@ -187,6 +215,11 @@ export const COMPONENT_MAPPINGS = {
187
215
  component: 'Dialog',
188
216
  imports: ["import { Dialog, DialogTitle, DialogContent, DialogActions } from '@mui/material';"],
189
217
  },
218
+ antd: {
219
+ component: 'Modal',
220
+ props: { open: 'false' },
221
+ imports: ["import { Modal } from 'antd';"],
222
+ },
190
223
  tailwind: {
191
224
  tag: 'div',
192
225
  classes: ['fixed', 'inset-0', 'z-50', 'flex', 'items-center', 'justify-center'],
@@ -213,6 +246,10 @@ export const COMPONENT_MAPPINGS = {
213
246
  component: 'AppBar',
214
247
  imports: ["import { AppBar, Toolbar } from '@mui/material';"],
215
248
  },
249
+ antd: {
250
+ component: 'Layout.Header',
251
+ imports: ["import { Layout, Menu } from 'antd';"],
252
+ },
216
253
  tailwind: {
217
254
  tag: 'nav',
218
255
  classes: ['flex', 'items-center', 'justify-between', 'px-6', 'py-4'],
@@ -237,6 +274,11 @@ export const COMPONENT_MAPPINGS = {
237
274
  component: 'Tabs',
238
275
  imports: ["import { Tabs, Tab } from '@mui/material';"],
239
276
  },
277
+ antd: {
278
+ component: 'Menu',
279
+ props: { mode: 'horizontal' },
280
+ imports: ["import { Menu } from 'antd';"],
281
+ },
240
282
  tailwind: {
241
283
  tag: 'nav',
242
284
  classes: ['flex', 'space-x-4'],
@@ -261,6 +303,10 @@ export const COMPONENT_MAPPINGS = {
261
303
  component: 'Tabs',
262
304
  imports: ["import { Tabs, Tab } from '@mui/material';"],
263
305
  },
306
+ antd: {
307
+ component: 'Tabs',
308
+ imports: ["import { Tabs } from 'antd';"],
309
+ },
264
310
  tailwind: {
265
311
  tag: 'div',
266
312
  classes: ['flex', 'border-b'],
@@ -286,6 +332,10 @@ export const COMPONENT_MAPPINGS = {
286
332
  component: 'Breadcrumbs',
287
333
  imports: ["import { Breadcrumbs, Link } from '@mui/material';"],
288
334
  },
335
+ antd: {
336
+ component: 'Breadcrumb',
337
+ imports: ["import { Breadcrumb } from 'antd';"],
338
+ },
289
339
  tailwind: {
290
340
  tag: 'nav',
291
341
  classes: ['flex', 'items-center', 'space-x-2', 'text-sm'],
@@ -310,6 +360,10 @@ export const COMPONENT_MAPPINGS = {
310
360
  component: 'Pagination',
311
361
  imports: ["import { Pagination } from '@mui/material';"],
312
362
  },
363
+ antd: {
364
+ component: 'Pagination',
365
+ imports: ["import { Pagination } from 'antd';"],
366
+ },
313
367
  tailwind: {
314
368
  tag: 'nav',
315
369
  classes: ['flex', 'items-center', 'space-x-1'],
@@ -336,6 +390,10 @@ export const COMPONENT_MAPPINGS = {
336
390
  props: { variant: 'outlined', fullWidth: 'true' },
337
391
  imports: ["import { TextField } from '@mui/material';"],
338
392
  },
393
+ antd: {
394
+ component: 'Input',
395
+ imports: ["import { Input } from 'antd';"],
396
+ },
339
397
  tailwind: {
340
398
  tag: 'input',
341
399
  classes: ['w-full', 'px-3', 'py-2', 'border', 'rounded-lg', 'focus:ring-2', 'focus:outline-none'],
@@ -363,6 +421,10 @@ export const COMPONENT_MAPPINGS = {
363
421
  props: { variant: 'outlined' },
364
422
  imports: ["import { TextField } from '@mui/material';"],
365
423
  },
424
+ antd: {
425
+ component: 'Input',
426
+ imports: ["import { Input } from 'antd';"],
427
+ },
366
428
  tailwind: {
367
429
  tag: 'input',
368
430
  classes: ['w-full', 'px-3', 'py-2', 'border', 'rounded-lg'],
@@ -388,6 +450,11 @@ export const COMPONENT_MAPPINGS = {
388
450
  props: { multiline: 'true', rows: '4' },
389
451
  imports: ["import { TextField } from '@mui/material';"],
390
452
  },
453
+ antd: {
454
+ component: 'Input.TextArea',
455
+ props: { rows: '4' },
456
+ imports: ["import { Input } from 'antd';"],
457
+ },
391
458
  tailwind: {
392
459
  tag: 'textarea',
393
460
  classes: ['w-full', 'px-3', 'py-2', 'border', 'rounded-lg', 'resize-y'],
@@ -413,6 +480,10 @@ export const COMPONENT_MAPPINGS = {
413
480
  component: 'Select',
414
481
  imports: ["import { Select, MenuItem, FormControl, InputLabel } from '@mui/material';"],
415
482
  },
483
+ antd: {
484
+ component: 'Select',
485
+ imports: ["import { Select } from 'antd';"],
486
+ },
416
487
  tailwind: {
417
488
  tag: 'select',
418
489
  classes: ['w-full', 'px-3', 'py-2', 'border', 'rounded-lg', 'bg-white'],
@@ -439,6 +510,10 @@ export const COMPONENT_MAPPINGS = {
439
510
  component: 'Checkbox',
440
511
  imports: ["import { Checkbox, FormControlLabel } from '@mui/material';"],
441
512
  },
513
+ antd: {
514
+ component: 'Checkbox',
515
+ imports: ["import { Checkbox } from 'antd';"],
516
+ },
442
517
  tailwind: {
443
518
  tag: 'input',
444
519
  classes: ['w-4', 'h-4', 'rounded', 'border-gray-300'],
@@ -465,6 +540,10 @@ export const COMPONENT_MAPPINGS = {
465
540
  component: 'Radio',
466
541
  imports: ["import { Radio, RadioGroup, FormControlLabel } from '@mui/material';"],
467
542
  },
543
+ antd: {
544
+ component: 'Radio',
545
+ imports: ["import { Radio } from 'antd';"],
546
+ },
468
547
  tailwind: {
469
548
  tag: 'input',
470
549
  classes: ['w-4', 'h-4', 'border-gray-300'],
@@ -490,6 +569,10 @@ export const COMPONENT_MAPPINGS = {
490
569
  component: 'Switch',
491
570
  imports: ["import { Switch, FormControlLabel } from '@mui/material';"],
492
571
  },
572
+ antd: {
573
+ component: 'Switch',
574
+ imports: ["import { Switch } from 'antd';"],
575
+ },
493
576
  tailwind: {
494
577
  tag: 'button',
495
578
  classes: ['relative', 'inline-flex', 'h-6', 'w-11', 'rounded-full', 'transition-colors'],
@@ -514,6 +597,10 @@ export const COMPONENT_MAPPINGS = {
514
597
  component: 'FormControl',
515
598
  imports: ["import { FormControl, FormLabel } from '@mui/material';"],
516
599
  },
600
+ antd: {
601
+ component: 'Form.Item',
602
+ imports: ["import { Form } from 'antd';"],
603
+ },
517
604
  tailwind: {
518
605
  tag: 'div',
519
606
  classes: ['mb-4'],
@@ -542,6 +629,10 @@ export const COMPONENT_MAPPINGS = {
542
629
  component: 'CircularProgress',
543
630
  imports: ["import { CircularProgress } from '@mui/material';"],
544
631
  },
632
+ antd: {
633
+ component: 'Spin',
634
+ imports: ["import { Spin } from 'antd';"],
635
+ },
545
636
  tailwind: {
546
637
  tag: 'div',
547
638
  classes: ['animate-spin', 'rounded-full', 'border-2', 'border-t-transparent'],
@@ -570,6 +661,11 @@ export const COMPONENT_MAPPINGS = {
570
661
  component: 'CircularProgress',
571
662
  imports: ["import { CircularProgress } from '@mui/material';"],
572
663
  },
664
+ antd: {
665
+ component: 'Spin',
666
+ props: { spinning: 'true' },
667
+ imports: ["import { Spin } from 'antd';"],
668
+ },
573
669
  tailwind: {
574
670
  tag: 'div',
575
671
  classes: ['animate-spin', 'rounded-full', 'border-2', 'border-t-transparent'],
@@ -597,6 +693,11 @@ export const COMPONENT_MAPPINGS = {
597
693
  component: 'LinearProgress',
598
694
  imports: ["import { LinearProgress } from '@mui/material';"],
599
695
  },
696
+ antd: {
697
+ component: 'Progress',
698
+ props: { percent: '0' },
699
+ imports: ["import { Progress } from 'antd';"],
700
+ },
600
701
  tailwind: {
601
702
  tag: 'div',
602
703
  classes: ['w-full', 'bg-gray-200', 'rounded-full', 'h-2'],
@@ -623,6 +724,10 @@ export const COMPONENT_MAPPINGS = {
623
724
  component: 'Snackbar',
624
725
  imports: ["import { Snackbar, Alert } from '@mui/material';"],
625
726
  },
727
+ antd: {
728
+ component: 'message',
729
+ imports: ["import { message } from 'antd';"],
730
+ },
626
731
  tailwind: {
627
732
  tag: 'div',
628
733
  classes: ['fixed', 'bottom-4', 'right-4', 'p-4', 'rounded-lg', 'shadow-lg'],
@@ -648,6 +753,10 @@ export const COMPONENT_MAPPINGS = {
648
753
  component: 'Snackbar',
649
754
  imports: ["import { Snackbar } from '@mui/material';"],
650
755
  },
756
+ antd: {
757
+ component: 'message',
758
+ imports: ["import { message } from 'antd';"],
759
+ },
651
760
  tailwind: {
652
761
  tag: 'div',
653
762
  classes: ['fixed', 'bottom-4', 'left-1/2', '-translate-x-1/2', 'p-4', 'rounded-lg'],
@@ -673,6 +782,10 @@ export const COMPONENT_MAPPINGS = {
673
782
  component: 'Tooltip',
674
783
  imports: ["import { Tooltip } from '@mui/material';"],
675
784
  },
785
+ antd: {
786
+ component: 'Tooltip',
787
+ imports: ["import { Tooltip } from 'antd';"],
788
+ },
676
789
  tailwind: {
677
790
  tag: 'div',
678
791
  classes: ['relative', 'group'],
@@ -699,6 +812,10 @@ export const COMPONENT_MAPPINGS = {
699
812
  component: 'Menu',
700
813
  imports: ["import { Menu, MenuItem, Button } from '@mui/material';"],
701
814
  },
815
+ antd: {
816
+ component: 'Dropdown',
817
+ imports: ["import { Dropdown } from 'antd';"],
818
+ },
702
819
  tailwind: {
703
820
  tag: 'div',
704
821
  classes: ['relative', 'inline-block'],
@@ -723,6 +840,10 @@ export const COMPONENT_MAPPINGS = {
723
840
  component: 'Menu',
724
841
  imports: ["import { Menu, MenuItem } from '@mui/material';"],
725
842
  },
843
+ antd: {
844
+ component: 'Menu',
845
+ imports: ["import { Menu } from 'antd';"],
846
+ },
726
847
  tailwind: {
727
848
  tag: 'div',
728
849
  classes: ['absolute', 'mt-2', 'py-2', 'bg-white', 'rounded-lg', 'shadow-lg'],
@@ -747,6 +868,10 @@ export const COMPONENT_MAPPINGS = {
747
868
  component: 'List',
748
869
  imports: ["import { List, ListItem, ListItemText } from '@mui/material';"],
749
870
  },
871
+ antd: {
872
+ component: 'List',
873
+ imports: ["import { List } from 'antd';"],
874
+ },
750
875
  tailwind: {
751
876
  tag: 'ul',
752
877
  classes: ['divide-y', 'rounded-lg', 'border'],
@@ -771,6 +896,10 @@ export const COMPONENT_MAPPINGS = {
771
896
  component: 'List',
772
897
  imports: ["import { List, ListItem } from '@mui/material';"],
773
898
  },
899
+ antd: {
900
+ component: 'List',
901
+ imports: ["import { List } from 'antd';"],
902
+ },
774
903
  tailwind: {
775
904
  tag: 'ul',
776
905
  classes: ['space-y-2'],
@@ -795,6 +924,10 @@ export const COMPONENT_MAPPINGS = {
795
924
  component: 'Table',
796
925
  imports: ["import { Table, TableBody, TableCell, TableContainer, TableHead, TableRow } from '@mui/material';"],
797
926
  },
927
+ antd: {
928
+ component: 'Table',
929
+ imports: ["import { Table } from 'antd';"],
930
+ },
798
931
  tailwind: {
799
932
  tag: 'table',
800
933
  classes: ['w-full', 'text-left', 'border-collapse'],
@@ -819,6 +952,10 @@ export const COMPONENT_MAPPINGS = {
819
952
  component: 'Accordion',
820
953
  imports: ["import { Accordion, AccordionSummary, AccordionDetails } from '@mui/material';"],
821
954
  },
955
+ antd: {
956
+ component: 'Collapse',
957
+ imports: ["import { Collapse } from 'antd';"],
958
+ },
822
959
  tailwind: {
823
960
  tag: 'div',
824
961
  classes: ['divide-y', 'border', 'rounded-lg'],
@@ -843,6 +980,10 @@ export const COMPONENT_MAPPINGS = {
843
980
  component: 'Collapse',
844
981
  imports: ["import { Collapse } from '@mui/material';"],
845
982
  },
983
+ antd: {
984
+ component: 'Collapse',
985
+ imports: ["import { Collapse } from 'antd';"],
986
+ },
846
987
  tailwind: {
847
988
  tag: 'div',
848
989
  classes: ['overflow-hidden', 'transition-all'],
@@ -869,6 +1010,10 @@ export const COMPONENT_MAPPINGS = {
869
1010
  component: 'Box',
870
1011
  imports: ["import { Box, IconButton } from '@mui/material';"],
871
1012
  },
1013
+ antd: {
1014
+ component: 'Carousel',
1015
+ imports: ["import { Carousel } from 'antd';"],
1016
+ },
872
1017
  tailwind: {
873
1018
  tag: 'div',
874
1019
  classes: ['relative', 'overflow-hidden'],
@@ -894,6 +1039,10 @@ export const COMPONENT_MAPPINGS = {
894
1039
  component: 'Drawer',
895
1040
  imports: ["import { Drawer } from '@mui/material';"],
896
1041
  },
1042
+ antd: {
1043
+ component: 'Drawer',
1044
+ imports: ["import { Drawer } from 'antd';"],
1045
+ },
897
1046
  tailwind: {
898
1047
  tag: 'div',
899
1048
  classes: ['fixed', 'inset-y-0', 'left-0', 'w-64', 'transform', '-translate-x-full'],
@@ -919,6 +1068,10 @@ export const COMPONENT_MAPPINGS = {
919
1068
  component: 'Drawer',
920
1069
  imports: ["import { Drawer } from '@mui/material';"],
921
1070
  },
1071
+ antd: {
1072
+ component: 'Drawer',
1073
+ imports: ["import { Drawer } from 'antd';"],
1074
+ },
922
1075
  tailwind: {
923
1076
  tag: 'div',
924
1077
  classes: ['fixed', 'inset-y-0', 'left-0', 'w-64', 'bg-white', 'shadow-lg'],
@@ -944,6 +1097,10 @@ export const COMPONENT_MAPPINGS = {
944
1097
  component: 'Avatar',
945
1098
  imports: ["import { Avatar } from '@mui/material';"],
946
1099
  },
1100
+ antd: {
1101
+ component: 'Avatar',
1102
+ imports: ["import { Avatar } from 'antd';"],
1103
+ },
947
1104
  tailwind: {
948
1105
  tag: 'img',
949
1106
  classes: ['w-10', 'h-10', 'rounded-full', 'object-cover'],
@@ -969,6 +1126,10 @@ export const COMPONENT_MAPPINGS = {
969
1126
  component: 'Chip',
970
1127
  imports: ["import { Chip } from '@mui/material';"],
971
1128
  },
1129
+ antd: {
1130
+ component: 'Tag',
1131
+ imports: ["import { Tag } from 'antd';"],
1132
+ },
972
1133
  tailwind: {
973
1134
  tag: 'span',
974
1135
  classes: ['inline-flex', 'items-center', 'px-3', 'py-1', 'rounded-full', 'text-sm'],
@@ -995,6 +1156,10 @@ export const COMPONENT_MAPPINGS = {
995
1156
  component: 'Slider',
996
1157
  imports: ["import { Slider } from '@mui/material';"],
997
1158
  },
1159
+ antd: {
1160
+ component: 'Slider',
1161
+ imports: ["import { Slider } from 'antd';"],
1162
+ },
998
1163
  tailwind: {
999
1164
  tag: 'input',
1000
1165
  classes: ['w-full', 'h-2', 'rounded-lg', 'appearance-none', 'cursor-pointer'],
@@ -1019,6 +1184,10 @@ export const COMPONENT_MAPPINGS = {
1019
1184
  component: 'Divider',
1020
1185
  imports: ["import { Divider } from '@mui/material';"],
1021
1186
  },
1187
+ antd: {
1188
+ component: 'Divider',
1189
+ imports: ["import { Divider } from 'antd';"],
1190
+ },
1022
1191
  tailwind: {
1023
1192
  tag: 'hr',
1024
1193
  classes: ['border-gray-200'],
@@ -1043,6 +1212,10 @@ export const COMPONENT_MAPPINGS = {
1043
1212
  component: 'Skeleton',
1044
1213
  imports: ["import { Skeleton } from '@mui/material';"],
1045
1214
  },
1215
+ antd: {
1216
+ component: 'Skeleton',
1217
+ imports: ["import { Skeleton } from 'antd';"],
1218
+ },
1046
1219
  tailwind: {
1047
1220
  tag: 'div',
1048
1221
  classes: ['animate-pulse', 'bg-gray-200', 'rounded'],
@@ -1062,6 +1235,329 @@ export const COMPONENT_MAPPINGS = {
1062
1235
  modifiers: ['.fill(Color.gray.opacity(0.3))', '.shimmering()'],
1063
1236
  },
1064
1237
  },
1238
+ // ============= ANT DESIGN SPECIFIC =============
1239
+ datepicker: {
1240
+ bootstrap: {
1241
+ tag: 'input',
1242
+ classes: ['form-control'],
1243
+ wrapper: 'type="date"',
1244
+ },
1245
+ mui: {
1246
+ component: 'DatePicker',
1247
+ imports: ["import { DatePicker } from '@mui/x-date-pickers';"],
1248
+ },
1249
+ antd: {
1250
+ component: 'DatePicker',
1251
+ imports: ["import { DatePicker } from 'antd';"],
1252
+ },
1253
+ tailwind: {
1254
+ tag: 'input',
1255
+ classes: ['w-full', 'px-3', 'py-2', 'border', 'rounded-lg'],
1256
+ },
1257
+ scss: {
1258
+ tag: 'input',
1259
+ baseClass: 'datepicker',
1260
+ },
1261
+ flutter: {
1262
+ widget: 'showDatePicker',
1263
+ },
1264
+ swiftui: {
1265
+ view: 'DatePicker',
1266
+ },
1267
+ },
1268
+ timepicker: {
1269
+ bootstrap: {
1270
+ tag: 'input',
1271
+ classes: ['form-control'],
1272
+ wrapper: 'type="time"',
1273
+ },
1274
+ mui: {
1275
+ component: 'TimePicker',
1276
+ imports: ["import { TimePicker } from '@mui/x-date-pickers';"],
1277
+ },
1278
+ antd: {
1279
+ component: 'TimePicker',
1280
+ imports: ["import { TimePicker } from 'antd';"],
1281
+ },
1282
+ tailwind: {
1283
+ tag: 'input',
1284
+ classes: ['w-full', 'px-3', 'py-2', 'border', 'rounded-lg'],
1285
+ },
1286
+ scss: {
1287
+ tag: 'input',
1288
+ baseClass: 'timepicker',
1289
+ },
1290
+ flutter: {
1291
+ widget: 'showTimePicker',
1292
+ },
1293
+ swiftui: {
1294
+ view: 'DatePicker',
1295
+ modifiers: ['.datePickerStyle(.compact)'],
1296
+ },
1297
+ },
1298
+ upload: {
1299
+ bootstrap: {
1300
+ tag: 'input',
1301
+ classes: ['form-control'],
1302
+ wrapper: 'type="file"',
1303
+ },
1304
+ mui: {
1305
+ component: 'Button',
1306
+ props: { component: 'label' },
1307
+ imports: ["import { Button } from '@mui/material';"],
1308
+ },
1309
+ antd: {
1310
+ component: 'Upload',
1311
+ imports: ["import { Upload, Button } from 'antd';"],
1312
+ },
1313
+ tailwind: {
1314
+ tag: 'input',
1315
+ classes: ['block', 'w-full', 'text-sm', 'file:mr-4', 'file:py-2', 'file:px-4', 'file:rounded', 'file:border-0'],
1316
+ },
1317
+ scss: {
1318
+ tag: 'input',
1319
+ baseClass: 'upload',
1320
+ },
1321
+ flutter: {
1322
+ widget: 'ElevatedButton',
1323
+ props: { onPressed: 'pickFile' },
1324
+ },
1325
+ swiftui: {
1326
+ view: 'Button',
1327
+ modifiers: ['.fileImporter(isPresented: $isPresented)'],
1328
+ },
1329
+ },
1330
+ rate: {
1331
+ bootstrap: {
1332
+ tag: 'div',
1333
+ classes: ['d-flex'],
1334
+ },
1335
+ mui: {
1336
+ component: 'Rating',
1337
+ imports: ["import { Rating } from '@mui/material';"],
1338
+ },
1339
+ antd: {
1340
+ component: 'Rate',
1341
+ imports: ["import { Rate } from 'antd';"],
1342
+ },
1343
+ tailwind: {
1344
+ tag: 'div',
1345
+ classes: ['flex', 'items-center', 'space-x-1'],
1346
+ },
1347
+ scss: {
1348
+ tag: 'div',
1349
+ baseClass: 'rate',
1350
+ },
1351
+ flutter: {
1352
+ widget: 'Row',
1353
+ },
1354
+ swiftui: {
1355
+ view: 'HStack',
1356
+ },
1357
+ },
1358
+ tree: {
1359
+ bootstrap: {
1360
+ tag: 'ul',
1361
+ classes: ['list-unstyled'],
1362
+ },
1363
+ mui: {
1364
+ component: 'TreeView',
1365
+ imports: ["import { TreeView, TreeItem } from '@mui/x-tree-view';"],
1366
+ },
1367
+ antd: {
1368
+ component: 'Tree',
1369
+ imports: ["import { Tree } from 'antd';"],
1370
+ },
1371
+ tailwind: {
1372
+ tag: 'ul',
1373
+ classes: ['space-y-1', 'pl-4'],
1374
+ },
1375
+ scss: {
1376
+ tag: 'ul',
1377
+ baseClass: 'tree',
1378
+ },
1379
+ flutter: {
1380
+ widget: 'ExpansionTile',
1381
+ },
1382
+ swiftui: {
1383
+ view: 'OutlineGroup',
1384
+ },
1385
+ },
1386
+ transfer: {
1387
+ bootstrap: {
1388
+ tag: 'div',
1389
+ classes: ['d-flex', 'gap-3'],
1390
+ },
1391
+ mui: {
1392
+ component: 'TransferList',
1393
+ imports: ["import { List, ListItem, Checkbox, Button, Grid } from '@mui/material';"],
1394
+ },
1395
+ antd: {
1396
+ component: 'Transfer',
1397
+ imports: ["import { Transfer } from 'antd';"],
1398
+ },
1399
+ tailwind: {
1400
+ tag: 'div',
1401
+ classes: ['flex', 'items-center', 'gap-4'],
1402
+ },
1403
+ scss: {
1404
+ tag: 'div',
1405
+ baseClass: 'transfer',
1406
+ },
1407
+ flutter: {
1408
+ widget: 'Row',
1409
+ },
1410
+ swiftui: {
1411
+ view: 'HStack',
1412
+ },
1413
+ },
1414
+ popover: {
1415
+ bootstrap: {
1416
+ tag: 'div',
1417
+ classes: [],
1418
+ wrapper: 'data-bs-toggle="popover"',
1419
+ },
1420
+ mui: {
1421
+ component: 'Popover',
1422
+ imports: ["import { Popover } from '@mui/material';"],
1423
+ },
1424
+ antd: {
1425
+ component: 'Popover',
1426
+ imports: ["import { Popover } from 'antd';"],
1427
+ },
1428
+ tailwind: {
1429
+ tag: 'div',
1430
+ classes: ['relative'],
1431
+ },
1432
+ scss: {
1433
+ tag: 'div',
1434
+ baseClass: 'popover',
1435
+ },
1436
+ flutter: {
1437
+ widget: 'PopupMenuButton',
1438
+ },
1439
+ swiftui: {
1440
+ view: 'Button',
1441
+ modifiers: ['.popover(isPresented: $isPresented)'],
1442
+ },
1443
+ },
1444
+ steps: {
1445
+ bootstrap: {
1446
+ tag: 'div',
1447
+ classes: ['d-flex', 'justify-content-between'],
1448
+ },
1449
+ mui: {
1450
+ component: 'Stepper',
1451
+ imports: ["import { Stepper, Step, StepLabel } from '@mui/material';"],
1452
+ },
1453
+ antd: {
1454
+ component: 'Steps',
1455
+ imports: ["import { Steps } from 'antd';"],
1456
+ },
1457
+ tailwind: {
1458
+ tag: 'div',
1459
+ classes: ['flex', 'items-center', 'justify-between'],
1460
+ },
1461
+ scss: {
1462
+ tag: 'div',
1463
+ baseClass: 'steps',
1464
+ },
1465
+ flutter: {
1466
+ widget: 'Stepper',
1467
+ },
1468
+ swiftui: {
1469
+ view: 'HStack',
1470
+ },
1471
+ },
1472
+ timeline: {
1473
+ bootstrap: {
1474
+ tag: 'div',
1475
+ classes: ['d-flex', 'flex-column'],
1476
+ },
1477
+ mui: {
1478
+ component: 'Timeline',
1479
+ imports: ["import { Timeline, TimelineItem, TimelineSeparator, TimelineConnector, TimelineContent, TimelineDot } from '@mui/lab';"],
1480
+ },
1481
+ antd: {
1482
+ component: 'Timeline',
1483
+ imports: ["import { Timeline } from 'antd';"],
1484
+ },
1485
+ tailwind: {
1486
+ tag: 'div',
1487
+ classes: ['relative', 'border-l', 'border-gray-200', 'ml-3'],
1488
+ },
1489
+ scss: {
1490
+ tag: 'div',
1491
+ baseClass: 'timeline',
1492
+ },
1493
+ flutter: {
1494
+ widget: 'Column',
1495
+ },
1496
+ swiftui: {
1497
+ view: 'VStack',
1498
+ modifiers: ['.alignment(.leading)'],
1499
+ },
1500
+ },
1501
+ tag: {
1502
+ bootstrap: {
1503
+ tag: 'span',
1504
+ classes: ['badge'],
1505
+ },
1506
+ mui: {
1507
+ component: 'Chip',
1508
+ props: { size: 'small' },
1509
+ imports: ["import { Chip } from '@mui/material';"],
1510
+ },
1511
+ antd: {
1512
+ component: 'Tag',
1513
+ imports: ["import { Tag } from 'antd';"],
1514
+ },
1515
+ tailwind: {
1516
+ tag: 'span',
1517
+ classes: ['inline-flex', 'items-center', 'px-2', 'py-1', 'text-xs', 'rounded'],
1518
+ },
1519
+ scss: {
1520
+ tag: 'span',
1521
+ baseClass: 'tag',
1522
+ },
1523
+ flutter: {
1524
+ widget: 'Chip',
1525
+ },
1526
+ swiftui: {
1527
+ view: 'Text',
1528
+ modifiers: ['.padding(4)', '.background(Color.gray.opacity(0.2))', '.cornerRadius(4)'],
1529
+ },
1530
+ },
1531
+ segmented: {
1532
+ bootstrap: {
1533
+ tag: 'div',
1534
+ classes: ['btn-group'],
1535
+ wrapper: 'role="group"',
1536
+ },
1537
+ mui: {
1538
+ component: 'ToggleButtonGroup',
1539
+ imports: ["import { ToggleButtonGroup, ToggleButton } from '@mui/material';"],
1540
+ },
1541
+ antd: {
1542
+ component: 'Segmented',
1543
+ imports: ["import { Segmented } from 'antd';"],
1544
+ },
1545
+ tailwind: {
1546
+ tag: 'div',
1547
+ classes: ['inline-flex', 'rounded-lg', 'overflow-hidden', 'border'],
1548
+ },
1549
+ scss: {
1550
+ tag: 'div',
1551
+ baseClass: 'segmented',
1552
+ },
1553
+ flutter: {
1554
+ widget: 'SegmentedButton',
1555
+ },
1556
+ swiftui: {
1557
+ view: 'Picker',
1558
+ modifiers: ['.pickerStyle(.segmented)'],
1559
+ },
1560
+ },
1065
1561
  };
1066
1562
  /**
1067
1563
  * Get component mapping by name (case-insensitive)