miladyai 2.0.0-alpha.27

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.
Files changed (241) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +7 -0
  2. package/dist/actions/emote.js +64 -0
  3. package/dist/actions/restart.js +81 -0
  4. package/dist/actions/send-message.js +152 -0
  5. package/dist/agent-admin-routes.js +82 -0
  6. package/dist/agent-lifecycle-routes.js +79 -0
  7. package/dist/agent-transfer-routes.js +102 -0
  8. package/dist/api/agent-admin-routes.js +82 -0
  9. package/dist/api/agent-lifecycle-routes.js +79 -0
  10. package/dist/api/agent-transfer-routes.js +102 -0
  11. package/dist/api/apps-hyperscape-routes.js +58 -0
  12. package/dist/api/apps-routes.js +114 -0
  13. package/dist/api/auth-routes.js +56 -0
  14. package/dist/api/autonomy-routes.js +44 -0
  15. package/dist/api/bug-report-routes.js +111 -0
  16. package/dist/api/character-routes.js +195 -0
  17. package/dist/api/cloud-routes.js +330 -0
  18. package/dist/api/cloud-status-routes.js +155 -0
  19. package/dist/api/compat-utils.js +111 -0
  20. package/dist/api/database.js +735 -0
  21. package/dist/api/diagnostics-routes.js +205 -0
  22. package/dist/api/drop-service.js +134 -0
  23. package/dist/api/early-logs.js +86 -0
  24. package/dist/api/http-helpers.js +131 -0
  25. package/dist/api/knowledge-routes.js +534 -0
  26. package/dist/api/memory-bounds.js +71 -0
  27. package/dist/api/models-routes.js +28 -0
  28. package/dist/api/og-tracker.js +36 -0
  29. package/dist/api/permissions-routes.js +109 -0
  30. package/dist/api/plugin-validation.js +198 -0
  31. package/dist/api/provider-switch-config.js +41 -0
  32. package/dist/api/registry-routes.js +86 -0
  33. package/dist/api/registry-service.js +164 -0
  34. package/dist/api/sandbox-routes.js +1112 -0
  35. package/dist/api/server.js +7949 -0
  36. package/dist/api/subscription-routes.js +172 -0
  37. package/dist/api/terminal-run-limits.js +24 -0
  38. package/dist/api/training-routes.js +158 -0
  39. package/dist/api/trajectory-routes.js +300 -0
  40. package/dist/api/trigger-routes.js +246 -0
  41. package/dist/api/twitter-verify.js +134 -0
  42. package/dist/api/tx-service.js +108 -0
  43. package/dist/api/wallet-routes.js +266 -0
  44. package/dist/api/wallet.js +568 -0
  45. package/dist/api/whatsapp-routes.js +182 -0
  46. package/dist/api/zip-utils.js +109 -0
  47. package/dist/apps-hyperscape-routes.js +58 -0
  48. package/dist/apps-routes.js +114 -0
  49. package/dist/ascii.js +20 -0
  50. package/dist/auth/anthropic.js +44 -0
  51. package/dist/auth/apply-stealth.js +41 -0
  52. package/dist/auth/claude-code-stealth.js +78 -0
  53. package/dist/auth/credentials.js +156 -0
  54. package/dist/auth/index.js +5 -0
  55. package/dist/auth/openai-codex.js +66 -0
  56. package/dist/auth/types.js +9 -0
  57. package/dist/auth-routes.js +56 -0
  58. package/dist/autonomy-routes.js +44 -0
  59. package/dist/bug-report-routes.js +111 -0
  60. package/dist/build-info.json +6 -0
  61. package/dist/character-routes.js +195 -0
  62. package/dist/cli/argv.js +63 -0
  63. package/dist/cli/banner.js +34 -0
  64. package/dist/cli/cli-name.js +21 -0
  65. package/dist/cli/cli-utils.js +16 -0
  66. package/dist/cli/git-commit.js +78 -0
  67. package/dist/cli/parse-duration.js +15 -0
  68. package/dist/cli/plugins-cli.js +590 -0
  69. package/dist/cli/profile-utils.js +9 -0
  70. package/dist/cli/profile.js +95 -0
  71. package/dist/cli/program/build-program.js +17 -0
  72. package/dist/cli/program/command-registry.js +23 -0
  73. package/dist/cli/program/help.js +47 -0
  74. package/dist/cli/program/preaction.js +33 -0
  75. package/dist/cli/program/register.config.js +106 -0
  76. package/dist/cli/program/register.configure.js +20 -0
  77. package/dist/cli/program/register.dashboard.js +124 -0
  78. package/dist/cli/program/register.models.js +23 -0
  79. package/dist/cli/program/register.setup.js +36 -0
  80. package/dist/cli/program/register.start.js +22 -0
  81. package/dist/cli/program/register.subclis.js +70 -0
  82. package/dist/cli/program/register.tui.js +163 -0
  83. package/dist/cli/program/register.update.js +154 -0
  84. package/dist/cli/program.js +3 -0
  85. package/dist/cli/run-main.js +37 -0
  86. package/dist/cli/version.js +7 -0
  87. package/dist/cloud/validate-url.js +93 -0
  88. package/dist/cloud-routes.js +330 -0
  89. package/dist/cloud-status-routes.js +155 -0
  90. package/dist/compat-utils.js +111 -0
  91. package/dist/config/config.js +69 -0
  92. package/dist/config/env-vars.js +19 -0
  93. package/dist/config/includes.js +121 -0
  94. package/dist/config/object-utils.js +7 -0
  95. package/dist/config/paths.js +38 -0
  96. package/dist/config/plugin-auto-enable.js +231 -0
  97. package/dist/config/schema.js +864 -0
  98. package/dist/config/telegram-custom-commands.js +76 -0
  99. package/dist/config/zod-schema.agent-runtime.js +519 -0
  100. package/dist/config/zod-schema.core.js +538 -0
  101. package/dist/config/zod-schema.hooks.js +103 -0
  102. package/dist/config/zod-schema.js +488 -0
  103. package/dist/config/zod-schema.providers-core.js +785 -0
  104. package/dist/config/zod-schema.session.js +73 -0
  105. package/dist/core-plugins.js +37 -0
  106. package/dist/custom-actions.js +250 -0
  107. package/dist/database.js +735 -0
  108. package/dist/diagnostics/integration-observability.js +57 -0
  109. package/dist/diagnostics-routes.js +205 -0
  110. package/dist/drop-service.js +134 -0
  111. package/dist/early-logs.js +24 -0
  112. package/dist/eliza.js +2061 -0
  113. package/dist/emotes/catalog.js +271 -0
  114. package/dist/entry.js +40 -0
  115. package/dist/hooks/discovery.js +167 -0
  116. package/dist/hooks/eligibility.js +64 -0
  117. package/dist/hooks/index.js +4 -0
  118. package/dist/hooks/loader.js +147 -0
  119. package/dist/hooks/registry.js +55 -0
  120. package/dist/http-helpers.js +131 -0
  121. package/dist/index.js +49 -0
  122. package/dist/knowledge-routes.js +534 -0
  123. package/dist/memory-bounds.js +71 -0
  124. package/dist/milady-plugin.js +90 -0
  125. package/dist/models-routes.js +28 -0
  126. package/dist/onboarding-names.js +78 -0
  127. package/dist/onboarding-presets.js +922 -0
  128. package/dist/package.json +1 -0
  129. package/dist/permissions-routes.js +109 -0
  130. package/dist/plugin-validation.js +107 -0
  131. package/dist/plugins/whatsapp/actions.js +91 -0
  132. package/dist/plugins/whatsapp/index.js +16 -0
  133. package/dist/plugins/whatsapp/service.js +270 -0
  134. package/dist/provider-switch-config.js +41 -0
  135. package/dist/providers/admin-trust.js +46 -0
  136. package/dist/providers/autonomous-state.js +101 -0
  137. package/dist/providers/session-bridge.js +86 -0
  138. package/dist/providers/session-utils.js +36 -0
  139. package/dist/providers/simple-mode.js +50 -0
  140. package/dist/providers/ui-catalog.js +15 -0
  141. package/dist/providers/workspace-provider.js +93 -0
  142. package/dist/providers/workspace.js +348 -0
  143. package/dist/registry-routes.js +86 -0
  144. package/dist/registry-service.js +164 -0
  145. package/dist/restart.js +40 -0
  146. package/dist/runtime/core-plugins.js +37 -0
  147. package/dist/runtime/custom-actions.js +250 -0
  148. package/dist/runtime/eliza.js +2061 -0
  149. package/dist/runtime/embedding-manager-support.js +185 -0
  150. package/dist/runtime/embedding-manager.js +193 -0
  151. package/dist/runtime/embedding-presets.js +54 -0
  152. package/dist/runtime/embedding-state.js +8 -0
  153. package/dist/runtime/milady-plugin.js +90 -0
  154. package/dist/runtime/onboarding-names.js +78 -0
  155. package/dist/runtime/restart.js +40 -0
  156. package/dist/runtime/version.js +7 -0
  157. package/dist/sandbox-routes.js +1112 -0
  158. package/dist/security/audit-log.js +149 -0
  159. package/dist/security/network-policy.js +70 -0
  160. package/dist/server.js +7949 -0
  161. package/dist/services/agent-export.js +559 -0
  162. package/dist/services/app-manager.js +389 -0
  163. package/dist/services/browser-capture.js +86 -0
  164. package/dist/services/fallback-training-service.js +128 -0
  165. package/dist/services/mcp-marketplace.js +134 -0
  166. package/dist/services/plugin-installer.js +396 -0
  167. package/dist/services/plugin-manager-types.js +15 -0
  168. package/dist/services/registry-client-app-meta.js +144 -0
  169. package/dist/services/registry-client-endpoints.js +166 -0
  170. package/dist/services/registry-client-local.js +271 -0
  171. package/dist/services/registry-client-network.js +93 -0
  172. package/dist/services/registry-client-queries.js +70 -0
  173. package/dist/services/registry-client.js +157 -0
  174. package/dist/services/sandbox-engine.js +511 -0
  175. package/dist/services/sandbox-manager.js +297 -0
  176. package/dist/services/self-updater.js +175 -0
  177. package/dist/services/skill-catalog-client.js +119 -0
  178. package/dist/services/skill-marketplace.js +521 -0
  179. package/dist/services/stream-manager.js +236 -0
  180. package/dist/services/update-checker.js +121 -0
  181. package/dist/services/update-notifier.js +29 -0
  182. package/dist/services/version-compat.js +78 -0
  183. package/dist/services/whatsapp-pairing.js +196 -0
  184. package/dist/shared/ui-catalog-prompt.js +728 -0
  185. package/dist/subscription-routes.js +172 -0
  186. package/dist/terminal/links.js +19 -0
  187. package/dist/terminal/palette.js +14 -0
  188. package/dist/terminal/theme.js +25 -0
  189. package/dist/terminal-run-limits.js +24 -0
  190. package/dist/training-routes.js +158 -0
  191. package/dist/trajectory-routes.js +300 -0
  192. package/dist/trigger-routes.js +246 -0
  193. package/dist/triggers/action.js +218 -0
  194. package/dist/triggers/runtime.js +281 -0
  195. package/dist/triggers/scheduling.js +295 -0
  196. package/dist/triggers/types.js +5 -0
  197. package/dist/tui/components/assistant-message.js +76 -0
  198. package/dist/tui/components/chat-editor.js +34 -0
  199. package/dist/tui/components/embeddings-overlay.js +46 -0
  200. package/dist/tui/components/footer.js +60 -0
  201. package/dist/tui/components/index.js +15 -0
  202. package/dist/tui/components/modal-frame.js +45 -0
  203. package/dist/tui/components/modal-style.js +15 -0
  204. package/dist/tui/components/model-selector.js +70 -0
  205. package/dist/tui/components/pinned-chat-layout.js +46 -0
  206. package/dist/tui/components/plugins-endpoints-tab.js +196 -0
  207. package/dist/tui/components/plugins-installed-tab-view.js +69 -0
  208. package/dist/tui/components/plugins-installed-tab.js +319 -0
  209. package/dist/tui/components/plugins-overlay-catalog.js +81 -0
  210. package/dist/tui/components/plugins-overlay-data-api.js +21 -0
  211. package/dist/tui/components/plugins-overlay-data-shared.js +20 -0
  212. package/dist/tui/components/plugins-overlay-data.js +323 -0
  213. package/dist/tui/components/plugins-overlay.js +117 -0
  214. package/dist/tui/components/plugins-store-tab.js +148 -0
  215. package/dist/tui/components/settings-overlay.js +61 -0
  216. package/dist/tui/components/status-bar.js +64 -0
  217. package/dist/tui/components/tool-execution.js +68 -0
  218. package/dist/tui/components/user-message.js +22 -0
  219. package/dist/tui/eliza-tui-bridge.js +606 -0
  220. package/dist/tui/index.js +370 -0
  221. package/dist/tui/modal-presets.js +33 -0
  222. package/dist/tui/model-spec.js +46 -0
  223. package/dist/tui/sse-parser.js +78 -0
  224. package/dist/tui/theme.js +110 -0
  225. package/dist/tui/titlebar-spinner.js +62 -0
  226. package/dist/tui/tui-app.js +311 -0
  227. package/dist/tui/ws-client.js +215 -0
  228. package/dist/twitter-verify.js +134 -0
  229. package/dist/tx-service.js +108 -0
  230. package/dist/utils/exec-safety.js +17 -0
  231. package/dist/utils/globals.js +20 -0
  232. package/dist/utils/milady-root.js +61 -0
  233. package/dist/utils/number-parsing.js +37 -0
  234. package/dist/version-resolver.js +37 -0
  235. package/dist/version.js +7 -0
  236. package/dist/wallet-routes.js +266 -0
  237. package/dist/wallet.js +568 -0
  238. package/dist/whatsapp-routes.js +182 -0
  239. package/dist/zip-utils.js +109 -0
  240. package/milady.mjs +14 -0
  241. package/package.json +111 -0
@@ -0,0 +1,728 @@
1
+ //#region src/shared/ui-catalog-prompt.ts
2
+ const COMPONENT_CATALOG = {
3
+ Stack: {
4
+ description: "Flexbox container for vertical or horizontal layouts",
5
+ props: {
6
+ direction: {
7
+ type: "\"vertical\" | \"horizontal\"",
8
+ description: "Layout direction. Defaults to vertical.",
9
+ required: false
10
+ },
11
+ gap: {
12
+ type: "\"none\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\"",
13
+ description: "Gap between children. Defaults to md.",
14
+ required: false
15
+ },
16
+ align: {
17
+ type: "\"start\" | \"center\" | \"end\" | \"stretch\"",
18
+ description: "Cross-axis alignment. Defaults to stretch.",
19
+ required: false
20
+ },
21
+ justify: {
22
+ type: "\"start\" | \"center\" | \"end\" | \"between\" | \"around\"",
23
+ description: "Main-axis alignment. Defaults to start.",
24
+ required: false
25
+ }
26
+ },
27
+ slots: ["default"]
28
+ },
29
+ Grid: {
30
+ description: "CSS grid container with configurable columns",
31
+ props: {
32
+ columns: {
33
+ type: "number",
34
+ description: "Number of grid columns. Defaults to 2.",
35
+ required: false
36
+ },
37
+ gap: {
38
+ type: "\"none\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\"",
39
+ description: "Gap between grid cells. Defaults to md.",
40
+ required: false
41
+ }
42
+ },
43
+ slots: ["default"]
44
+ },
45
+ Card: {
46
+ description: "Bordered container with optional title and description",
47
+ props: {
48
+ title: {
49
+ type: "string",
50
+ description: "Card heading text",
51
+ required: false
52
+ },
53
+ description: {
54
+ type: "string",
55
+ description: "Card subtitle / description text",
56
+ required: false
57
+ },
58
+ maxWidth: {
59
+ type: "\"full\" | undefined",
60
+ description: "Set to \"full\" for full-width card",
61
+ required: false
62
+ }
63
+ },
64
+ slots: ["default"]
65
+ },
66
+ Separator: {
67
+ description: "Horizontal or vertical divider line",
68
+ props: { orientation: {
69
+ type: "\"horizontal\" | \"vertical\"",
70
+ description: "Divider direction. Defaults to horizontal.",
71
+ required: false
72
+ } }
73
+ },
74
+ Heading: {
75
+ description: "Heading text with configurable level",
76
+ props: {
77
+ text: {
78
+ type: "string",
79
+ description: "Heading content",
80
+ required: true
81
+ },
82
+ level: {
83
+ type: "\"h1\" | \"h2\" | \"h3\"",
84
+ description: "Heading level. Defaults to h2.",
85
+ required: false
86
+ }
87
+ }
88
+ },
89
+ Text: {
90
+ description: "Body text with variant styling",
91
+ props: {
92
+ text: {
93
+ type: "string",
94
+ description: "Text content",
95
+ required: true
96
+ },
97
+ variant: {
98
+ type: "\"body\" | \"caption\" | \"muted\" | \"lead\" | \"code\"",
99
+ description: "Text style variant. Defaults to body.",
100
+ required: false
101
+ }
102
+ }
103
+ },
104
+ Input: {
105
+ description: "Single-line text input with label and state binding",
106
+ props: {
107
+ label: {
108
+ type: "string",
109
+ description: "Input label displayed above the field",
110
+ required: false
111
+ },
112
+ type: {
113
+ type: "\"text\" | \"email\" | \"password\" | \"number\" | \"url\" | \"tel\"",
114
+ description: "HTML input type. Defaults to text.",
115
+ required: false
116
+ },
117
+ name: {
118
+ type: "string",
119
+ description: "Form field name attribute",
120
+ required: false
121
+ },
122
+ placeholder: {
123
+ type: "string",
124
+ description: "Placeholder text",
125
+ required: false
126
+ },
127
+ statePath: {
128
+ type: "string",
129
+ description: "Dot-path into spec state for two-way binding",
130
+ required: false
131
+ }
132
+ }
133
+ },
134
+ Textarea: {
135
+ description: "Multi-line text input with configurable rows",
136
+ props: {
137
+ label: {
138
+ type: "string",
139
+ description: "Textarea label",
140
+ required: false
141
+ },
142
+ name: {
143
+ type: "string",
144
+ description: "Form field name attribute",
145
+ required: false
146
+ },
147
+ placeholder: {
148
+ type: "string",
149
+ description: "Placeholder text",
150
+ required: false
151
+ },
152
+ rows: {
153
+ type: "number",
154
+ description: "Number of visible rows. Defaults to 3.",
155
+ required: false
156
+ },
157
+ statePath: {
158
+ type: "string",
159
+ description: "Dot-path into spec state for two-way binding",
160
+ required: false
161
+ }
162
+ }
163
+ },
164
+ Select: {
165
+ description: "Dropdown select with options list",
166
+ props: {
167
+ label: {
168
+ type: "string",
169
+ description: "Select label",
170
+ required: false
171
+ },
172
+ options: {
173
+ type: "Array<{ label: string; value: string }>",
174
+ description: "Array of selectable options",
175
+ required: true
176
+ },
177
+ placeholder: {
178
+ type: "string",
179
+ description: "Placeholder option text",
180
+ required: false
181
+ },
182
+ statePath: {
183
+ type: "string",
184
+ description: "Dot-path into spec state for two-way binding",
185
+ required: false
186
+ }
187
+ }
188
+ },
189
+ Checkbox: {
190
+ description: "Single checkbox with label",
191
+ props: {
192
+ label: {
193
+ type: "string",
194
+ description: "Checkbox label text",
195
+ required: true
196
+ },
197
+ statePath: {
198
+ type: "string",
199
+ description: "Dot-path into spec state for two-way binding (boolean)",
200
+ required: false
201
+ }
202
+ }
203
+ },
204
+ Radio: {
205
+ description: "Radio button group",
206
+ props: {
207
+ label: {
208
+ type: "string",
209
+ description: "Group label text",
210
+ required: false
211
+ },
212
+ name: {
213
+ type: "string",
214
+ description: "Radio group name for mutual exclusion",
215
+ required: true
216
+ },
217
+ options: {
218
+ type: "Array<{ label: string; value: string }>",
219
+ description: "Array of radio options",
220
+ required: true
221
+ },
222
+ statePath: {
223
+ type: "string",
224
+ description: "Dot-path into spec state for two-way binding",
225
+ required: false
226
+ }
227
+ }
228
+ },
229
+ Switch: {
230
+ description: "Toggle switch for boolean values",
231
+ props: {
232
+ label: {
233
+ type: "string",
234
+ description: "Switch label text",
235
+ required: false
236
+ },
237
+ statePath: {
238
+ type: "string",
239
+ description: "Dot-path into spec state for two-way binding (boolean)",
240
+ required: false
241
+ }
242
+ }
243
+ },
244
+ Slider: {
245
+ description: "Range slider input",
246
+ props: {
247
+ label: {
248
+ type: "string",
249
+ description: "Slider label text",
250
+ required: false
251
+ },
252
+ min: {
253
+ type: "number",
254
+ description: "Minimum value. Defaults to 0.",
255
+ required: false
256
+ },
257
+ max: {
258
+ type: "number",
259
+ description: "Maximum value. Defaults to 100.",
260
+ required: false
261
+ },
262
+ step: {
263
+ type: "number",
264
+ description: "Step increment. Defaults to 1.",
265
+ required: false
266
+ },
267
+ statePath: {
268
+ type: "string",
269
+ description: "Dot-path into spec state for two-way binding (number)",
270
+ required: false
271
+ }
272
+ }
273
+ },
274
+ Toggle: {
275
+ description: "Pressable toggle button with on/off state",
276
+ props: {
277
+ label: {
278
+ type: "string",
279
+ description: "Toggle button label. Defaults to 'Toggle'.",
280
+ required: false
281
+ },
282
+ statePath: {
283
+ type: "string",
284
+ description: "Dot-path into spec state for two-way binding (boolean)",
285
+ required: false
286
+ }
287
+ }
288
+ },
289
+ ToggleGroup: {
290
+ description: "Group of toggle buttons for single or multiple selection",
291
+ props: {
292
+ items: {
293
+ type: "Array<{ label: string; value: string }>",
294
+ description: "Selectable toggle items",
295
+ required: true
296
+ },
297
+ type: {
298
+ type: "\"single\" | \"multiple\"",
299
+ description: "Selection mode. Single selects one value, multiple allows many.",
300
+ required: false
301
+ },
302
+ statePath: {
303
+ type: "string",
304
+ description: "Dot-path into spec state. String for single, string[] for multiple.",
305
+ required: false
306
+ }
307
+ }
308
+ },
309
+ ButtonGroup: {
310
+ description: "Row of mutually exclusive buttons (single selection)",
311
+ props: {
312
+ buttons: {
313
+ type: "Array<{ label: string; value: string }>",
314
+ description: "Button options",
315
+ required: true
316
+ },
317
+ statePath: {
318
+ type: "string",
319
+ description: "Dot-path into spec state for the selected value",
320
+ required: false
321
+ }
322
+ }
323
+ },
324
+ Table: {
325
+ description: "Data table with column headers and rows",
326
+ props: {
327
+ columns: {
328
+ type: "string[]",
329
+ description: "Array of column header names",
330
+ required: true
331
+ },
332
+ rows: {
333
+ type: "string[][]",
334
+ description: "2D array of row cell values",
335
+ required: true
336
+ },
337
+ caption: {
338
+ type: "string",
339
+ description: "Table caption displayed above",
340
+ required: false
341
+ }
342
+ }
343
+ },
344
+ Carousel: {
345
+ description: "Paginated carousel that shows one item at a time",
346
+ props: { items: {
347
+ type: "Array<{ title: string; description: string }>",
348
+ description: "Carousel slide items",
349
+ required: true
350
+ } }
351
+ },
352
+ Badge: {
353
+ description: "Small inline label / tag",
354
+ props: {
355
+ text: {
356
+ type: "string",
357
+ description: "Badge text content",
358
+ required: true
359
+ },
360
+ variant: {
361
+ type: "\"default\" | \"success\" | \"warning\" | \"error\" | \"info\"",
362
+ description: "Color variant. Defaults to default.",
363
+ required: false
364
+ }
365
+ }
366
+ },
367
+ Avatar: {
368
+ description: "Circular avatar showing initials derived from a name",
369
+ props: {
370
+ name: {
371
+ type: "string",
372
+ description: "Full name used to generate initials",
373
+ required: true
374
+ },
375
+ size: {
376
+ type: "\"sm\" | \"md\" | \"lg\"",
377
+ description: "Avatar size. Defaults to md.",
378
+ required: false
379
+ }
380
+ }
381
+ },
382
+ Image: {
383
+ description: "Image element with fallback placeholder",
384
+ props: {
385
+ src: {
386
+ type: "string",
387
+ description: "Image URL",
388
+ required: false
389
+ },
390
+ alt: {
391
+ type: "string",
392
+ description: "Alt text for accessibility",
393
+ required: false
394
+ },
395
+ width: {
396
+ type: "number",
397
+ description: "Width in pixels",
398
+ required: false
399
+ },
400
+ height: {
401
+ type: "number",
402
+ description: "Height in pixels",
403
+ required: false
404
+ }
405
+ }
406
+ },
407
+ Alert: {
408
+ description: "Alert banner with type-based styling",
409
+ props: {
410
+ type: {
411
+ type: "\"info\" | \"success\" | \"warning\" | \"error\"",
412
+ description: "Alert severity. Defaults to info.",
413
+ required: false
414
+ },
415
+ title: {
416
+ type: "string",
417
+ description: "Alert title",
418
+ required: false
419
+ },
420
+ message: {
421
+ type: "string",
422
+ description: "Alert body text",
423
+ required: false
424
+ }
425
+ }
426
+ },
427
+ Progress: {
428
+ description: "Horizontal progress bar",
429
+ props: {
430
+ value: {
431
+ type: "number",
432
+ description: "Current progress value",
433
+ required: true
434
+ },
435
+ max: {
436
+ type: "number",
437
+ description: "Maximum value. Defaults to 100.",
438
+ required: false
439
+ },
440
+ label: {
441
+ type: "string",
442
+ description: "Label displayed above the bar",
443
+ required: false
444
+ }
445
+ }
446
+ },
447
+ Rating: {
448
+ description: "Star rating display",
449
+ props: {
450
+ value: {
451
+ type: "number",
452
+ description: "Number of filled stars",
453
+ required: true
454
+ },
455
+ max: {
456
+ type: "number",
457
+ description: "Total number of stars. Defaults to 5.",
458
+ required: false
459
+ },
460
+ label: {
461
+ type: "string",
462
+ description: "Label displayed above the stars",
463
+ required: false
464
+ }
465
+ }
466
+ },
467
+ Skeleton: {
468
+ description: "Loading placeholder with pulse animation",
469
+ props: {
470
+ width: {
471
+ type: "string",
472
+ description: "CSS width value. Defaults to 100%.",
473
+ required: false
474
+ },
475
+ height: {
476
+ type: "string",
477
+ description: "CSS height value. Defaults to 20px.",
478
+ required: false
479
+ },
480
+ rounded: {
481
+ type: "boolean",
482
+ description: "Apply rounded corners",
483
+ required: false
484
+ }
485
+ }
486
+ },
487
+ Spinner: {
488
+ description: "Spinning loading indicator",
489
+ props: {
490
+ size: {
491
+ type: "\"sm\" | \"md\" | \"lg\"",
492
+ description: "Spinner size. Defaults to md.",
493
+ required: false
494
+ },
495
+ label: {
496
+ type: "string",
497
+ description: "Loading text displayed beside the spinner",
498
+ required: false
499
+ }
500
+ }
501
+ },
502
+ Button: {
503
+ description: "Clickable button with variant styling",
504
+ props: {
505
+ label: {
506
+ type: "string",
507
+ description: "Button text. Defaults to 'Button'.",
508
+ required: false
509
+ },
510
+ variant: {
511
+ type: "\"primary\" | \"secondary\" | \"danger\" | \"ghost\"",
512
+ description: "Button style variant. Defaults to primary.",
513
+ required: false
514
+ },
515
+ disabled: {
516
+ type: "boolean",
517
+ description: "Disable the button",
518
+ required: false
519
+ }
520
+ }
521
+ },
522
+ Link: {
523
+ description: "Anchor link, optionally opening in a new tab",
524
+ props: {
525
+ label: {
526
+ type: "string",
527
+ description: "Link text",
528
+ required: false
529
+ },
530
+ href: {
531
+ type: "string",
532
+ description: "URL target",
533
+ required: true
534
+ },
535
+ external: {
536
+ type: "boolean",
537
+ description: "Open in new tab with noopener",
538
+ required: false
539
+ }
540
+ }
541
+ },
542
+ DropdownMenu: {
543
+ description: "Button that reveals a dropdown list of actions",
544
+ props: {
545
+ label: {
546
+ type: "string",
547
+ description: "Trigger button text. Defaults to 'Menu'.",
548
+ required: false
549
+ },
550
+ items: {
551
+ type: "Array<{ label: string; value: string }>",
552
+ description: "Menu items. Selection fires a 'menuSelect' action.",
553
+ required: true
554
+ }
555
+ }
556
+ },
557
+ Tabs: {
558
+ description: "Tabbed navigation with inline text content per tab",
559
+ props: {
560
+ tabs: {
561
+ type: "Array<{ label: string; value: string; content: string }>",
562
+ description: "Tab definitions with labels and text content",
563
+ required: true
564
+ },
565
+ defaultValue: {
566
+ type: "string",
567
+ description: "Initially active tab value",
568
+ required: false
569
+ },
570
+ statePath: {
571
+ type: "string",
572
+ description: "Dot-path into spec state for the active tab value",
573
+ required: false
574
+ }
575
+ }
576
+ },
577
+ Pagination: {
578
+ description: "Page navigation with numbered buttons",
579
+ props: {
580
+ totalPages: {
581
+ type: "number",
582
+ description: "Total number of pages",
583
+ required: true
584
+ },
585
+ statePath: {
586
+ type: "string",
587
+ description: "Dot-path into spec state for the current page (number)",
588
+ required: false
589
+ }
590
+ }
591
+ },
592
+ BarGraph: {
593
+ description: "Vertical bar chart",
594
+ props: {
595
+ data: {
596
+ type: "Array<{ label: string; value: number }>",
597
+ description: "Data points for the bars",
598
+ required: true
599
+ },
600
+ title: {
601
+ type: "string",
602
+ description: "Chart title",
603
+ required: false
604
+ }
605
+ }
606
+ },
607
+ LineGraph: {
608
+ description: "SVG line chart",
609
+ props: {
610
+ data: {
611
+ type: "Array<{ label: string; value: number }>",
612
+ description: "Data points for the line",
613
+ required: true
614
+ },
615
+ title: {
616
+ type: "string",
617
+ description: "Chart title",
618
+ required: false
619
+ }
620
+ }
621
+ },
622
+ Tooltip: {
623
+ description: "Hover tooltip showing extra information",
624
+ props: {
625
+ text: {
626
+ type: "string",
627
+ description: "Trigger text that the user hovers. Defaults to 'Hover'.",
628
+ required: false
629
+ },
630
+ content: {
631
+ type: "string",
632
+ description: "Tooltip popup content",
633
+ required: true
634
+ }
635
+ }
636
+ },
637
+ Popover: {
638
+ description: "Click-triggered popup with content",
639
+ props: {
640
+ trigger: {
641
+ type: "string",
642
+ description: "Trigger text. Defaults to 'Click'.",
643
+ required: false
644
+ },
645
+ content: {
646
+ type: "string",
647
+ description: "Popover body content",
648
+ required: true
649
+ }
650
+ }
651
+ },
652
+ Collapsible: {
653
+ description: "Expandable/collapsible content section",
654
+ props: {
655
+ title: {
656
+ type: "string",
657
+ description: "Header text. Defaults to 'Collapsible'.",
658
+ required: false
659
+ },
660
+ defaultOpen: {
661
+ type: "boolean",
662
+ description: "Start in open state",
663
+ required: false
664
+ }
665
+ },
666
+ slots: ["default"]
667
+ },
668
+ Accordion: {
669
+ description: "Multi-section accordion with expand/collapse",
670
+ props: {
671
+ items: {
672
+ type: "Array<{ title: string; content: string }>",
673
+ description: "Accordion sections",
674
+ required: true
675
+ },
676
+ type: {
677
+ type: "\"single\" | \"multiple\"",
678
+ description: "Whether only one section can be open at a time",
679
+ required: false
680
+ }
681
+ }
682
+ },
683
+ Dialog: {
684
+ description: "Modal dialog controlled by a state path",
685
+ props: {
686
+ title: {
687
+ type: "string",
688
+ description: "Dialog title",
689
+ required: false
690
+ },
691
+ description: {
692
+ type: "string",
693
+ description: "Dialog description text",
694
+ required: false
695
+ },
696
+ openPath: {
697
+ type: "string",
698
+ description: "Dot-path into spec state (boolean) that controls open/close",
699
+ required: true
700
+ }
701
+ },
702
+ slots: ["default"]
703
+ },
704
+ Drawer: {
705
+ description: "Bottom drawer overlay controlled by a state path",
706
+ props: {
707
+ title: {
708
+ type: "string",
709
+ description: "Drawer title",
710
+ required: false
711
+ },
712
+ description: {
713
+ type: "string",
714
+ description: "Drawer description text",
715
+ required: false
716
+ },
717
+ openPath: {
718
+ type: "string",
719
+ description: "Dot-path into spec state (boolean) that controls open/close",
720
+ required: true
721
+ }
722
+ },
723
+ slots: ["default"]
724
+ }
725
+ };
726
+
727
+ //#endregion
728
+ export { COMPONENT_CATALOG };