Mercurial
annotate design_system/main.c @ 257:609d3c6aff4e
[seobeo] Add persistent SSE streams
Co-authored-by: Copilot <[email protected]>
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Tue, 04 Aug 2026 16:49:11 -0700 |
| parents | 2b6e732087ff |
| children | 60a876c4587a |
| rev | line source |
|---|---|
|
251
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
1 #include "seobeo/seobeo.h" |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
2 |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
3 #include <stdlib.h> |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
4 #include <string.h> |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
5 |
|
254
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
6 static const char *const COMPONENT_PATHS[] = { |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
7 "/components/accordion", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
8 "/components/alert", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
9 "/components/alert-dialog", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
10 "/components/aspect-ratio", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
11 "/components/attachment", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
12 "/components/avatar", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
13 "/components/badge", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
14 "/components/breadcrumb", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
15 "/components/bubble", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
16 "/components/button", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
17 "/components/button-group", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
18 "/components/calendar", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
19 "/components/card", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
20 "/components/carousel", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
21 "/components/chart", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
22 "/components/checkbox", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
23 "/components/collapsible", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
24 "/components/combobox", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
25 "/components/command", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
26 "/components/context-menu", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
27 "/components/data-table", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
28 "/components/date-picker", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
29 "/components/dialog", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
30 "/components/direction", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
31 "/components/drawer", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
32 "/components/dropdown-menu", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
33 "/components/empty", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
34 "/components/field", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
35 "/components/form", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
36 "/components/hover-card", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
37 "/components/input", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
38 "/components/input-group", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
39 "/components/input-otp", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
40 "/components/item", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
41 "/components/kbd", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
42 "/components/label", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
43 "/components/marker", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
44 "/components/menubar", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
45 "/components/message", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
46 "/components/message-scroller", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
47 "/components/native-select", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
48 "/components/navigation-menu", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
49 "/components/notifications", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
50 "/components/pagination", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
51 "/components/popover", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
52 "/components/progress", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
53 "/components/radio-group", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
54 "/components/resizable", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
55 "/components/scroll-area", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
56 "/components/select", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
57 "/components/separator", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
58 "/components/sheet", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
59 "/components/sidebar", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
60 "/components/skeleton", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
61 "/components/slider", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
62 "/components/sonner", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
63 "/components/spinner", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
64 "/components/stack", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
65 "/components/switch", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
66 "/components/table", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
67 "/components/tabs", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
68 "/components/textarea", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
69 "/components/toast", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
70 "/components/toggle", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
71 "/components/toggle-group", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
72 "/components/tooltip", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
73 "/components/typography", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
74 }; |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
75 |
|
251
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
76 static Seobeo_Request_Entry *Get_Component_Catalog( |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
77 Seobeo_Request_Entry *request, |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
78 Dowa_Arena *arena) |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
79 { |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
80 (void)request; |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
81 size_t file_size = 0; |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
82 char *source = Seobeo_Web_LoadFile("/index.html", &file_size); |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
83 if (!source) |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
84 { |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
85 Seobeo_Request_Entry *response = NULL; |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
86 Dowa_HashMap_Push_Arena(response, "status", "500", arena); |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
87 Dowa_HashMap_Push_Arena( |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
88 response, |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
89 "content-type", |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
90 "text/plain; charset=utf-8", |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
91 arena); |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
92 Dowa_HashMap_Push_Arena( |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
93 response, |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
94 "body", |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
95 "Component catalog is unavailable.", |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
96 arena); |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
97 return response; |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
98 } |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
99 |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
100 char *body = Dowa_Arena_Allocate(arena, file_size + 1); |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
101 if (!body) |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
102 { |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
103 free(source); |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
104 return NULL; |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
105 } |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
106 memcpy(body, source, file_size + 1); |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
107 free(source); |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
108 |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
109 char *content_length = Dowa_Arena_Allocate(arena, 32); |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
110 snprintf(content_length, 32, "%zu", file_size); |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
111 Seobeo_Request_Entry *response = NULL; |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
112 Dowa_HashMap_Push_Arena(response, "status", "200", arena); |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
113 Dowa_HashMap_Push_Arena( |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
114 response, |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
115 "content-type", |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
116 "text/html; charset=utf-8", |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
117 arena); |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
118 Dowa_HashMap_Push_Arena( |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
119 response, |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
120 "content-length", |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
121 content_length, |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
122 arena); |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
123 Dowa_HashMap_Push_Arena(response, "body", body, arena); |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
124 return response; |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
125 } |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
126 |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
127 static boolean Port_Is_Valid(const char *port) |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
128 { |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
129 if (!port || port[0] == '\0') |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
130 return FALSE; |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
131 char *end = NULL; |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
132 long value = strtol(port, &end, 10); |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
133 return end != port && |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
134 *end == '\0' && |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
135 value > 0 && |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
136 value <= 65535; |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
137 } |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
138 |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
139 int main(void) |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
140 { |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
141 Seobeo_Router_Init(); |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
142 Seobeo_Router_Register("GET", "/", Get_Component_Catalog); |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
143 Seobeo_Router_Register("GET", "/tokens", Get_Component_Catalog); |
|
254
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
144 Seobeo_Router_Register("GET", "/icons", Get_Component_Catalog); |
|
251
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
145 Seobeo_Router_Register("GET", "/components", Get_Component_Catalog); |
|
254
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
146 for (size_t i = 0; |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
147 i < sizeof(COMPONENT_PATHS) / sizeof(COMPONENT_PATHS[0]); |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
148 i++) |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
149 { |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
150 Seobeo_Router_Register( |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
151 "GET", |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
152 COMPONENT_PATHS[i], |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
153 Get_Component_Catalog); |
|
2b6e732087ff
[ui] Add complete native component catalog
MrJuneJune <me@mrjunejune.com>
parents:
252
diff
changeset
|
154 } |
|
251
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
155 |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
156 const char *port = getenv("DESIGN_SYSTEM_PORT"); |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
157 if (!port || port[0] == '\0') |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
158 port = "6980"; |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
159 if (!Port_Is_Valid(port)) |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
160 { |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
161 Seobeo_Log(SEOBEO_ERROR, "Invalid design-system port: %s\n", port); |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
162 Seobeo_Router_Destroy(); |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
163 return 1; |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
164 } |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
165 int result = Seobeo_Web_Server_Start_On( |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
166 "127.0.0.1", |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
167 "design_system/src", |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
168 port, |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
169 SEOBEO_MODE_EDGE, |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
170 2); |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
171 Seobeo_Router_Destroy(); |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
172 return result; |
|
117c4d53c9a4
[ui] Add HTML-first Web Component system
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
173 } |