-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathComponentRegistry.cs
More file actions
318 lines (310 loc) · 16.6 KB
/
ComponentRegistry.cs
File metadata and controls
318 lines (310 loc) · 16.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
using ShellUI.Core.Models;
using ShellUI.Templates.Templates;
namespace ShellUI.Templates;
public static class ComponentRegistry
{
public static readonly Dictionary<string, ComponentMetadata> Components = new()
{
{ "shell", ShellTemplate.Metadata },
{ "button", ButtonTemplate.Metadata },
{ "button-variants", ButtonVariantsTemplate.Metadata },
{ "theme-toggle", ThemeToggleTemplate.Metadata },
{ "input", InputTemplate.Metadata },
{ "card", CardTemplate.Metadata },
{ "card-header", CardHeaderTemplate.Metadata },
{ "card-title", CardTitleTemplate.Metadata },
{ "card-description", CardDescriptionTemplate.Metadata },
{ "card-content", CardContentTemplate.Metadata },
{ "card-footer", CardFooterTemplate.Metadata },
{ "alert", AlertTemplate.Metadata },
{ "badge", BadgeTemplate.Metadata },
{ "label", LabelTemplate.Metadata },
{ "textarea", TextareaTemplate.Metadata },
{ "dialog", DialogTemplate.Metadata },
{ "dialog-trigger", DialogTriggerTemplate.Metadata },
{ "dialog-content", DialogContentTemplate.Metadata },
{ "dialog-header", DialogHeaderTemplate.Metadata },
{ "dialog-footer", DialogFooterTemplate.Metadata },
{ "dialog-title", DialogTitleTemplate.Metadata },
{ "dialog-description", DialogDescriptionTemplate.Metadata },
{ "dialog-close", DialogCloseTemplate.Metadata },
{ "skeleton", SkeletonTemplate.Metadata },
{ "progress", ProgressTemplate.Metadata },
{ "separator", SeparatorTemplate.Metadata },
{ "select", SelectTemplate.Metadata },
{ "select-trigger", SelectTriggerTemplate.Metadata },
{ "select-content", SelectContentTemplate.Metadata },
{ "select-item", SelectItemTemplate.Metadata },
{ "checkbox", CheckboxTemplate.Metadata },
{ "switch", SwitchTemplate.Metadata },
{ "tabs", TabsTemplate.Metadata },
{ "tabs-list", TabsListTemplate.Metadata },
{ "tabs-trigger", TabsTriggerTemplate.Metadata },
{ "tabs-content", TabsContentTemplate.Metadata },
{ "tab-models", TabModelsTemplate.Metadata },
{ "navbar", NavbarTemplate.Metadata },
{ "sidebar", SidebarTemplate.Metadata },
{ "dropdown", DropdownTemplate.Metadata },
{ "dropdown-trigger", DropdownTriggerTemplate.Metadata },
{ "dropdown-content", DropdownContentTemplate.Metadata },
{ "dropdown-item", DropdownItemTemplate.Metadata },
{ "radio-group", RadioGroupTemplate.Metadata },
{ "radio-group-item", RadioGroupItemTemplate.Metadata },
{ "slider", SliderTemplate.Metadata },
{ "toggle", ToggleTemplate.Metadata },
{ "accordion", AccordionTemplate.Metadata },
{ "accordion-item", AccordionItemTemplate.Metadata },
{ "accordion-trigger", AccordionTriggerTemplate.Metadata },
{ "accordion-content", AccordionContentTemplate.Metadata },
{ "breadcrumb", BreadcrumbTemplate.Metadata },
{ "breadcrumb-item", BreadcrumbItemTemplate.Metadata },
{ "toast", ToastTemplate.Metadata },
{ "sonner", SonnerTemplate.Metadata },
{ "sonner-service", SonnerServiceTemplate.Metadata },
{ "sonner-variants", SonnerVariantsTemplate.Metadata },
{ "tooltip", TooltipTemplate.Metadata },
{ "popover", PopoverTemplate.Metadata },
{ "popover-trigger", PopoverTriggerTemplate.Metadata },
{ "popover-content", PopoverContentTemplate.Metadata },
{ "avatar", AvatarTemplate.Metadata },
{ "avatar-variants", AvatarVariantsTemplate.Metadata },
{ "badge-variants", BadgeVariantsTemplate.Metadata },
{ "alert-variants", AlertVariantsTemplate.Metadata },
{ "toggle-variants", ToggleVariantsTemplate.Metadata },
{ "table", TableTemplate.Metadata },
{ "table-header", TableHeaderTemplate.Metadata },
{ "table-body", TableBodyTemplate.Metadata },
{ "table-row", TableRowTemplate.Metadata },
{ "table-head", TableHeadTemplate.Metadata },
{ "table-cell", TableCellTemplate.Metadata },
{ "form", FormTemplate.Metadata },
{ "input-otp", InputOTPTemplate.Metadata },
{ "combobox", ComboboxTemplate.Metadata },
{ "date-picker", DatePickerTemplate.Metadata },
{ "date-range-picker", DateRangePickerTemplate.Metadata },
{ "time-picker", TimePickerTemplate.Metadata },
{ "navigation-menu", NavigationMenuTemplate.Metadata },
{ "nav-list", NavListTemplate.Metadata },
{ "nav-item", NavItemTemplate.Metadata },
{ "nav-trigger", NavTriggerTemplate.Metadata },
{ "nav-content", NavContentTemplate.Metadata },
{ "navigation-menu-item", NavigationMenuItemTemplate.Metadata },
{ "menubar", MenubarTemplate.Metadata },
{ "menubar-item", MenubarItemTemplate.Metadata },
{ "pagination", PaginationTemplate.Metadata },
{ "scroll-area", ScrollAreaTemplate.Metadata },
{ "resizable", ResizableTemplate.Metadata },
{ "sheet", SheetTemplate.Metadata },
{ "sheet-trigger", SheetTriggerTemplate.Metadata },
{ "sheet-content", SheetContentTemplate.Metadata },
{ "sheet-variants", SheetVariantsTemplate.Metadata },
{ "drawer", DrawerTemplate.Metadata },
{ "drawer-trigger", DrawerTriggerTemplate.Metadata },
{ "drawer-content", DrawerContentTemplate.Metadata },
{ "drawer-variants", DrawerVariantsTemplate.Metadata },
{ "collapsible", CollapsibleTemplate.Metadata },
{ "collapsible-trigger", CollapsibleTriggerTemplate.Metadata },
{ "collapsible-content", CollapsibleContentTemplate.Metadata },
{ "data-table", DataTableTemplate.Metadata },
{ "alert-dialog", AlertDialogTemplate.Metadata },
{ "calendar", CalendarTemplate.Metadata },
{ "loading", LoadingTemplate.Metadata },
{ "hover-card", HoverCardTemplate.Metadata },
{ "hover-card-trigger", HoverCardTriggerTemplate.Metadata },
{ "hover-card-content", HoverCardContentTemplate.Metadata },
{ "command", CommandTemplate.Metadata },
{ "context-menu", ContextMenuTemplate.Metadata },
{ "context-menu-trigger", ContextMenuTriggerTemplate.Metadata },
{ "context-menu-content", ContextMenuContentTemplate.Metadata },
{ "context-menu-option", ContextMenuOptionTemplate.Metadata },
{ "empty-state", EmptyStateTemplate.Metadata },
{ "stepper", StepperTemplate.Metadata },
{ "stepper-list", StepperListTemplate.Metadata },
{ "stepper-step", StepperStepTemplate.Metadata },
{ "stepper-content", StepperContentTemplate.Metadata },
{ "carousel", CarouselTemplate.Metadata },
{ "carousel-list", CarouselListTemplate.Metadata },
{ "carousel-slide", CarouselSlideTemplate.Metadata },
{ "carousel-item", CarouselItemTemplate.Metadata },
{ "carousel-content", CarouselContentTemplate.Metadata },
{ "carousel-previous", CarouselPreviousTemplate.Metadata },
{ "carousel-next", CarouselNextTemplate.Metadata },
{ "carousel-dots", CarouselDotsTemplate.Metadata },
{ "file-upload", FileUploadTemplate.Metadata },
{ "chart-variants", ChartVariantsTemplate.Metadata },
{ "chart", ChartTemplate.Metadata },
{ "bar-chart", BarChartTemplate.Metadata },
{ "line-chart", LineChartTemplate.Metadata },
{ "pie-chart", PieChartTemplate.Metadata },
{ "area-chart", AreaChartTemplate.Metadata },
{ "multi-series-chart", MultiSeriesChartTemplate.Metadata },
{ "chart-series", ChartSeriesTemplate.Metadata },
{ "copy-button", CopyButtonTemplate.Metadata },
{ "callout-variants", CalloutVariantsTemplate.Metadata },
{ "callout", CalloutTemplate.Metadata },
{ "link-card", LinkCardTemplate.Metadata },
{ "prev-next-nav", PrevNextNavTemplate.Metadata }
};
public static string? GetComponentContent(string componentName)
{
return componentName.ToLower() switch
{
"shell" => ShellTemplate.Content,
"button" => ButtonTemplate.Content,
"button-variants" => ButtonVariantsTemplate.Content,
"theme-toggle" => ThemeToggleTemplate.Content,
"input" => InputTemplate.Content,
"card" => CardTemplate.Content,
"card-header" => CardHeaderTemplate.Content,
"card-title" => CardTitleTemplate.Content,
"card-description" => CardDescriptionTemplate.Content,
"card-content" => CardContentTemplate.Content,
"card-footer" => CardFooterTemplate.Content,
"alert" => AlertTemplate.Content,
"badge" => BadgeTemplate.Content,
"label" => LabelTemplate.Content,
"textarea" => TextareaTemplate.Content,
"dialog" => DialogTemplate.Content,
"dialog-trigger" => DialogTriggerTemplate.Content,
"dialog-content" => DialogContentTemplate.Content,
"dialog-header" => DialogHeaderTemplate.Content,
"dialog-footer" => DialogFooterTemplate.Content,
"dialog-title" => DialogTitleTemplate.Content,
"dialog-description" => DialogDescriptionTemplate.Content,
"dialog-close" => DialogCloseTemplate.Content,
"skeleton" => SkeletonTemplate.Content,
"progress" => ProgressTemplate.Content,
"separator" => SeparatorTemplate.Content,
"select" => SelectTemplate.Content,
"select-trigger" => SelectTriggerTemplate.Content,
"select-content" => SelectContentTemplate.Content,
"select-item" => SelectItemTemplate.Content,
"checkbox" => CheckboxTemplate.Content,
"switch" => SwitchTemplate.Content,
"tabs" => TabsTemplate.Content,
"tabs-list" => TabsListTemplate.Content,
"tabs-trigger" => TabsTriggerTemplate.Content,
"tabs-content" => TabsContentTemplate.Content,
"tab-models" => TabModelsTemplate.Content,
"navbar" => NavbarTemplate.Content,
"sidebar" => SidebarTemplate.Content,
"dropdown" => DropdownTemplate.Content,
"dropdown-trigger" => DropdownTriggerTemplate.Content,
"dropdown-content" => DropdownContentTemplate.Content,
"dropdown-item" => DropdownItemTemplate.Content,
"radio-group" => RadioGroupTemplate.Content,
"radio-group-item" => RadioGroupItemTemplate.Content,
"slider" => SliderTemplate.Content,
"toggle" => ToggleTemplate.Content,
"accordion" => AccordionTemplate.Content,
"accordion-item" => AccordionItemTemplate.Content,
"accordion-trigger" => AccordionTriggerTemplate.Content,
"accordion-content" => AccordionContentTemplate.Content,
"breadcrumb" => BreadcrumbTemplate.Content,
"breadcrumb-item" => BreadcrumbItemTemplate.Content,
"toast" => ToastTemplate.Content,
"sonner" => SonnerTemplate.Content,
"sonner-service" => SonnerServiceTemplate.Content,
"sonner-variants" => SonnerVariantsTemplate.Content,
"tooltip" => TooltipTemplate.Content,
"popover" => PopoverTemplate.Content,
"popover-trigger" => PopoverTriggerTemplate.Content,
"popover-content" => PopoverContentTemplate.Content,
"avatar" => AvatarTemplate.Content,
"avatar-variants" => AvatarVariantsTemplate.Content,
"badge-variants" => BadgeVariantsTemplate.Content,
"alert-variants" => AlertVariantsTemplate.Content,
"toggle-variants" => ToggleVariantsTemplate.Content,
"table" => TableTemplate.Content,
"table-header" => TableHeaderTemplate.Content,
"table-body" => TableBodyTemplate.Content,
"table-row" => TableRowTemplate.Content,
"table-head" => TableHeadTemplate.Content,
"table-cell" => TableCellTemplate.Content,
"form" => FormTemplate.Content,
"input-otp" => InputOTPTemplate.Content,
"combobox" => ComboboxTemplate.Content,
"date-picker" => DatePickerTemplate.Content,
"date-range-picker" => DateRangePickerTemplate.Content,
"time-picker" => TimePickerTemplate.Content,
"navigation-menu" => NavigationMenuTemplate.Content,
"nav-list" => NavListTemplate.Content,
"nav-item" => NavItemTemplate.Content,
"nav-trigger" => NavTriggerTemplate.Content,
"nav-content" => NavContentTemplate.Content,
"navigation-menu-item" => NavigationMenuItemTemplate.Content,
"menubar" => MenubarTemplate.Content,
"menubar-item" => MenubarItemTemplate.Content,
"pagination" => PaginationTemplate.Content,
"scroll-area" => ScrollAreaTemplate.Content,
"resizable" => ResizableTemplate.Content,
"sheet" => SheetTemplate.Content,
"sheet-trigger" => SheetTriggerTemplate.Content,
"sheet-content" => SheetContentTemplate.Content,
"sheet-variants" => SheetVariantsTemplate.Content,
"drawer" => DrawerTemplate.Content,
"drawer-trigger" => DrawerTriggerTemplate.Content,
"drawer-content" => DrawerContentTemplate.Content,
"drawer-variants" => DrawerVariantsTemplate.Content,
"collapsible" => CollapsibleTemplate.Content,
"collapsible-trigger" => CollapsibleTriggerTemplate.Content,
"collapsible-content" => CollapsibleContentTemplate.Content,
"data-table" => DataTableTemplate.Content,
"alert-dialog" => AlertDialogTemplate.Content,
"calendar" => CalendarTemplate.Content,
"loading" => LoadingTemplate.Content,
"hover-card" => HoverCardTemplate.Content,
"hover-card-trigger" => HoverCardTriggerTemplate.Content,
"hover-card-content" => HoverCardContentTemplate.Content,
"command" => CommandTemplate.Content,
"context-menu" => ContextMenuTemplate.Content,
"context-menu-trigger" => ContextMenuTriggerTemplate.Content,
"context-menu-content" => ContextMenuContentTemplate.Content,
"context-menu-option" => ContextMenuOptionTemplate.Content,
"empty-state" => EmptyStateTemplate.Content,
"stepper" => StepperTemplate.Content,
"stepper-list" => StepperListTemplate.Content,
"stepper-step" => StepperStepTemplate.Content,
"stepper-content" => StepperContentTemplate.Content,
"carousel" => CarouselTemplate.Content,
"carousel-list" => CarouselListTemplate.Content,
"carousel-slide" => CarouselSlideTemplate.Content,
"carousel-item" => CarouselItemTemplate.Content,
"carousel-content" => CarouselContentTemplate.Content,
"carousel-previous" => CarouselPreviousTemplate.Content,
"carousel-next" => CarouselNextTemplate.Content,
"carousel-dots" => CarouselDotsTemplate.Content,
"file-upload" => FileUploadTemplate.Content,
"chart-variants" => ChartVariantsTemplate.Content,
"chart" => ChartTemplate.Content,
"bar-chart" => BarChartTemplate.Content,
"line-chart" => LineChartTemplate.Content,
"pie-chart" => PieChartTemplate.Content,
"area-chart" => AreaChartTemplate.Content,
"multi-series-chart" => MultiSeriesChartTemplate.Content,
"chart-series" => ChartSeriesTemplate.Content,
"copy-button" => CopyButtonTemplate.Content,
"callout-variants" => CalloutVariantsTemplate.Content,
"callout" => CalloutTemplate.Content,
"link-card" => LinkCardTemplate.Content,
"prev-next-nav" => PrevNextNavTemplate.Content,
_ => null
};
}
public static IEnumerable<ComponentMetadata> GetByCategory(ComponentCategory category)
{
return Components.Values.Where(c => c.Category == category);
}
public static IEnumerable<ComponentMetadata> SearchByTag(string tag)
{
return Components.Values.Where(c => c.Tags.Contains(tag, StringComparer.OrdinalIgnoreCase));
}
public static ComponentMetadata? GetMetadata(string componentName)
{
return Components.TryGetValue(componentName.ToLower(), out var metadata) ? metadata : null;
}
public static bool Exists(string componentName)
{
return Components.ContainsKey(componentName.ToLower());
}
}