@frontmcp/ui 0.5.0

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 (393) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +438 -0
  3. package/package.json +147 -0
  4. package/src/adapters/index.d.ts +10 -0
  5. package/src/adapters/index.js +18 -0
  6. package/src/adapters/index.js.map +1 -0
  7. package/src/adapters/platform-meta.d.ts +165 -0
  8. package/src/adapters/platform-meta.js +310 -0
  9. package/src/adapters/platform-meta.js.map +1 -0
  10. package/src/base-template/bridge.d.ts +89 -0
  11. package/src/base-template/bridge.js +452 -0
  12. package/src/base-template/bridge.js.map +1 -0
  13. package/src/base-template/default-base-template.d.ts +91 -0
  14. package/src/base-template/default-base-template.js +435 -0
  15. package/src/base-template/default-base-template.js.map +1 -0
  16. package/src/base-template/index.d.ts +14 -0
  17. package/src/base-template/index.js +30 -0
  18. package/src/base-template/index.js.map +1 -0
  19. package/src/base-template/polyfills.d.ts +30 -0
  20. package/src/base-template/polyfills.js +190 -0
  21. package/src/base-template/polyfills.js.map +1 -0
  22. package/src/base-template/theme-styles.d.ts +73 -0
  23. package/src/base-template/theme-styles.js +95 -0
  24. package/src/base-template/theme-styles.js.map +1 -0
  25. package/src/bridge/adapters/base-adapter.d.ts +103 -0
  26. package/src/bridge/adapters/base-adapter.js +314 -0
  27. package/src/bridge/adapters/base-adapter.js.map +1 -0
  28. package/src/bridge/adapters/claude.adapter.d.ts +66 -0
  29. package/src/bridge/adapters/claude.adapter.js +145 -0
  30. package/src/bridge/adapters/claude.adapter.js.map +1 -0
  31. package/src/bridge/adapters/ext-apps.adapter.d.ts +142 -0
  32. package/src/bridge/adapters/ext-apps.adapter.js +416 -0
  33. package/src/bridge/adapters/ext-apps.adapter.js.map +1 -0
  34. package/src/bridge/adapters/gemini.adapter.d.ts +63 -0
  35. package/src/bridge/adapters/gemini.adapter.js +160 -0
  36. package/src/bridge/adapters/gemini.adapter.js.map +1 -0
  37. package/src/bridge/adapters/generic.adapter.d.ts +55 -0
  38. package/src/bridge/adapters/generic.adapter.js +108 -0
  39. package/src/bridge/adapters/generic.adapter.js.map +1 -0
  40. package/src/bridge/adapters/index.d.ts +25 -0
  41. package/src/bridge/adapters/index.js +65 -0
  42. package/src/bridge/adapters/index.js.map +1 -0
  43. package/src/bridge/adapters/openai.adapter.d.ts +64 -0
  44. package/src/bridge/adapters/openai.adapter.js +194 -0
  45. package/src/bridge/adapters/openai.adapter.js.map +1 -0
  46. package/src/bridge/core/adapter-registry.d.ts +121 -0
  47. package/src/bridge/core/adapter-registry.js +271 -0
  48. package/src/bridge/core/adapter-registry.js.map +1 -0
  49. package/src/bridge/core/bridge-factory.d.ts +198 -0
  50. package/src/bridge/core/bridge-factory.js +428 -0
  51. package/src/bridge/core/bridge-factory.js.map +1 -0
  52. package/src/bridge/core/index.d.ts +9 -0
  53. package/src/bridge/core/index.js +22 -0
  54. package/src/bridge/core/index.js.map +1 -0
  55. package/src/bridge/index.d.ts +61 -0
  56. package/src/bridge/index.js +94 -0
  57. package/src/bridge/index.js.map +1 -0
  58. package/src/bridge/runtime/iife-generator.d.ts +61 -0
  59. package/src/bridge/runtime/iife-generator.js +940 -0
  60. package/src/bridge/runtime/iife-generator.js.map +1 -0
  61. package/src/bridge/runtime/index.d.ts +8 -0
  62. package/src/bridge/runtime/index.js +16 -0
  63. package/src/bridge/runtime/index.js.map +1 -0
  64. package/src/bridge/types.d.ts +385 -0
  65. package/src/bridge/types.js +11 -0
  66. package/src/bridge/types.js.map +1 -0
  67. package/src/build/cdn-resources.d.ts +140 -0
  68. package/src/build/cdn-resources.js +314 -0
  69. package/src/build/cdn-resources.js.map +1 -0
  70. package/src/build/index.d.ts +294 -0
  71. package/src/build/index.js +325 -0
  72. package/src/build/index.js.map +1 -0
  73. package/src/build/widget-manifest.d.ts +212 -0
  74. package/src/build/widget-manifest.js +652 -0
  75. package/src/build/widget-manifest.js.map +1 -0
  76. package/src/bundler/bundler.d.ts +110 -0
  77. package/src/bundler/bundler.js +432 -0
  78. package/src/bundler/bundler.js.map +1 -0
  79. package/src/bundler/cache.d.ts +172 -0
  80. package/src/bundler/cache.js +250 -0
  81. package/src/bundler/cache.js.map +1 -0
  82. package/src/bundler/index.d.ts +41 -0
  83. package/src/bundler/index.js +73 -0
  84. package/src/bundler/index.js.map +1 -0
  85. package/src/bundler/sandbox/enclave-adapter.d.ts +120 -0
  86. package/src/bundler/sandbox/enclave-adapter.js +339 -0
  87. package/src/bundler/sandbox/enclave-adapter.js.map +1 -0
  88. package/src/bundler/sandbox/executor.d.ts +13 -0
  89. package/src/bundler/sandbox/executor.js +22 -0
  90. package/src/bundler/sandbox/executor.js.map +1 -0
  91. package/src/bundler/sandbox/policy.d.ts +61 -0
  92. package/src/bundler/sandbox/policy.js +238 -0
  93. package/src/bundler/sandbox/policy.js.map +1 -0
  94. package/src/bundler/types.d.ts +347 -0
  95. package/src/bundler/types.js +132 -0
  96. package/src/bundler/types.js.map +1 -0
  97. package/src/components/alert.d.ts +71 -0
  98. package/src/components/alert.js +189 -0
  99. package/src/components/alert.js.map +1 -0
  100. package/src/components/alert.schema.d.ts +114 -0
  101. package/src/components/alert.schema.js +105 -0
  102. package/src/components/alert.schema.js.map +1 -0
  103. package/src/components/avatar.d.ts +76 -0
  104. package/src/components/avatar.js +176 -0
  105. package/src/components/avatar.js.map +1 -0
  106. package/src/components/avatar.schema.d.ts +169 -0
  107. package/src/components/avatar.schema.js +103 -0
  108. package/src/components/avatar.schema.js.map +1 -0
  109. package/src/components/badge.d.ts +70 -0
  110. package/src/components/badge.js +149 -0
  111. package/src/components/badge.js.map +1 -0
  112. package/src/components/badge.schema.d.ts +109 -0
  113. package/src/components/badge.schema.js +96 -0
  114. package/src/components/badge.schema.js.map +1 -0
  115. package/src/components/button.d.ts +111 -0
  116. package/src/components/button.js +336 -0
  117. package/src/components/button.js.map +1 -0
  118. package/src/components/button.schema.d.ts +148 -0
  119. package/src/components/button.schema.js +121 -0
  120. package/src/components/button.schema.js.map +1 -0
  121. package/src/components/card.d.ts +60 -0
  122. package/src/components/card.js +117 -0
  123. package/src/components/card.js.map +1 -0
  124. package/src/components/card.schema.d.ts +113 -0
  125. package/src/components/card.schema.js +98 -0
  126. package/src/components/card.schema.js.map +1 -0
  127. package/src/components/form.d.ts +239 -0
  128. package/src/components/form.js +420 -0
  129. package/src/components/form.js.map +1 -0
  130. package/src/components/form.schema.d.ts +441 -0
  131. package/src/components/form.schema.js +406 -0
  132. package/src/components/form.schema.js.map +1 -0
  133. package/src/components/index.d.ts +29 -0
  134. package/src/components/index.js +98 -0
  135. package/src/components/index.js.map +1 -0
  136. package/src/components/list.d.ts +127 -0
  137. package/src/components/list.js +279 -0
  138. package/src/components/list.js.map +1 -0
  139. package/src/components/list.schema.d.ts +134 -0
  140. package/src/components/list.schema.js +168 -0
  141. package/src/components/list.schema.js.map +1 -0
  142. package/src/components/modal.d.ts +111 -0
  143. package/src/components/modal.js +260 -0
  144. package/src/components/modal.js.map +1 -0
  145. package/src/components/modal.schema.d.ts +186 -0
  146. package/src/components/modal.schema.js +167 -0
  147. package/src/components/modal.schema.js.map +1 -0
  148. package/src/components/table.d.ts +105 -0
  149. package/src/components/table.js +283 -0
  150. package/src/components/table.js.map +1 -0
  151. package/src/components/table.schema.d.ts +159 -0
  152. package/src/components/table.schema.js +173 -0
  153. package/src/components/table.schema.js.map +1 -0
  154. package/src/handlebars/helpers.d.ts +348 -0
  155. package/src/handlebars/helpers.js +605 -0
  156. package/src/handlebars/helpers.js.map +1 -0
  157. package/src/handlebars/index.d.ts +193 -0
  158. package/src/handlebars/index.js +350 -0
  159. package/src/handlebars/index.js.map +1 -0
  160. package/src/index.d.ts +50 -0
  161. package/src/index.js +192 -0
  162. package/src/index.js.map +1 -0
  163. package/src/layouts/base.d.ts +88 -0
  164. package/src/layouts/base.js +227 -0
  165. package/src/layouts/base.js.map +1 -0
  166. package/src/layouts/index.d.ts +7 -0
  167. package/src/layouts/index.js +25 -0
  168. package/src/layouts/index.js.map +1 -0
  169. package/src/layouts/presets.d.ts +133 -0
  170. package/src/layouts/presets.js +277 -0
  171. package/src/layouts/presets.js.map +1 -0
  172. package/src/pages/consent.d.ts +116 -0
  173. package/src/pages/consent.js +218 -0
  174. package/src/pages/consent.js.map +1 -0
  175. package/src/pages/error.d.ts +100 -0
  176. package/src/pages/error.js +263 -0
  177. package/src/pages/error.js.map +1 -0
  178. package/src/pages/index.d.ts +8 -0
  179. package/src/pages/index.js +27 -0
  180. package/src/pages/index.js.map +1 -0
  181. package/src/react/Alert.d.ts +101 -0
  182. package/src/react/Alert.js +51 -0
  183. package/src/react/Alert.js.map +1 -0
  184. package/src/react/Badge.d.ts +100 -0
  185. package/src/react/Badge.js +55 -0
  186. package/src/react/Badge.js.map +1 -0
  187. package/src/react/Button.d.ts +108 -0
  188. package/src/react/Button.js +52 -0
  189. package/src/react/Button.js.map +1 -0
  190. package/src/react/Card.d.ts +103 -0
  191. package/src/react/Card.js +55 -0
  192. package/src/react/Card.js.map +1 -0
  193. package/src/react/hooks/context.d.ts +178 -0
  194. package/src/react/hooks/context.js +287 -0
  195. package/src/react/hooks/context.js.map +1 -0
  196. package/src/react/hooks/index.d.ts +41 -0
  197. package/src/react/hooks/index.js +61 -0
  198. package/src/react/hooks/index.js.map +1 -0
  199. package/src/react/hooks/tools.d.ts +283 -0
  200. package/src/react/hooks/tools.js +465 -0
  201. package/src/react/hooks/tools.js.map +1 -0
  202. package/src/react/index.d.ts +80 -0
  203. package/src/react/index.js +113 -0
  204. package/src/react/index.js.map +1 -0
  205. package/src/react/types.d.ts +105 -0
  206. package/src/react/types.js +12 -0
  207. package/src/react/types.js.map +1 -0
  208. package/src/react/utils.d.ts +42 -0
  209. package/src/react/utils.js +99 -0
  210. package/src/react/utils.js.map +1 -0
  211. package/src/registry/index.d.ts +45 -0
  212. package/src/registry/index.js +67 -0
  213. package/src/registry/index.js.map +1 -0
  214. package/src/registry/render-template.d.ts +86 -0
  215. package/src/registry/render-template.js +239 -0
  216. package/src/registry/render-template.js.map +1 -0
  217. package/src/registry/tool-ui.registry.d.ts +260 -0
  218. package/src/registry/tool-ui.registry.js +438 -0
  219. package/src/registry/tool-ui.registry.js.map +1 -0
  220. package/src/registry/uri-utils.d.ts +55 -0
  221. package/src/registry/uri-utils.js +97 -0
  222. package/src/registry/uri-utils.js.map +1 -0
  223. package/src/render/index.d.ts +7 -0
  224. package/src/render/index.js +14 -0
  225. package/src/render/index.js.map +1 -0
  226. package/src/render/prerender.d.ts +56 -0
  227. package/src/render/prerender.js +98 -0
  228. package/src/render/prerender.js.map +1 -0
  229. package/src/renderers/cache.d.ts +144 -0
  230. package/src/renderers/cache.js +240 -0
  231. package/src/renderers/cache.js.map +1 -0
  232. package/src/renderers/html.renderer.d.ts +122 -0
  233. package/src/renderers/html.renderer.js +204 -0
  234. package/src/renderers/html.renderer.js.map +1 -0
  235. package/src/renderers/index.d.ts +35 -0
  236. package/src/renderers/index.js +70 -0
  237. package/src/renderers/index.js.map +1 -0
  238. package/src/renderers/mdx.renderer.d.ts +119 -0
  239. package/src/renderers/mdx.renderer.js +305 -0
  240. package/src/renderers/mdx.renderer.js.map +1 -0
  241. package/src/renderers/react.renderer.d.ts +95 -0
  242. package/src/renderers/react.renderer.js +260 -0
  243. package/src/renderers/react.renderer.js.map +1 -0
  244. package/src/renderers/registry.d.ts +133 -0
  245. package/src/renderers/registry.js +232 -0
  246. package/src/renderers/registry.js.map +1 -0
  247. package/src/renderers/types.d.ts +341 -0
  248. package/src/renderers/types.js +9 -0
  249. package/src/renderers/types.js.map +1 -0
  250. package/src/renderers/utils/detect.d.ts +106 -0
  251. package/src/renderers/utils/detect.js +267 -0
  252. package/src/renderers/utils/detect.js.map +1 -0
  253. package/src/renderers/utils/hash.d.ts +39 -0
  254. package/src/renderers/utils/hash.js +75 -0
  255. package/src/renderers/utils/hash.js.map +1 -0
  256. package/src/renderers/utils/index.d.ts +8 -0
  257. package/src/renderers/utils/index.js +28 -0
  258. package/src/renderers/utils/index.js.map +1 -0
  259. package/src/renderers/utils/transpiler.d.ts +88 -0
  260. package/src/renderers/utils/transpiler.js +215 -0
  261. package/src/renderers/utils/transpiler.js.map +1 -0
  262. package/src/runtime/adapters/html.adapter.d.ts +58 -0
  263. package/src/runtime/adapters/html.adapter.js +131 -0
  264. package/src/runtime/adapters/html.adapter.js.map +1 -0
  265. package/src/runtime/adapters/index.d.ts +25 -0
  266. package/src/runtime/adapters/index.js +54 -0
  267. package/src/runtime/adapters/index.js.map +1 -0
  268. package/src/runtime/adapters/mdx.adapter.d.ts +72 -0
  269. package/src/runtime/adapters/mdx.adapter.js +241 -0
  270. package/src/runtime/adapters/mdx.adapter.js.map +1 -0
  271. package/src/runtime/adapters/react.adapter.d.ts +69 -0
  272. package/src/runtime/adapters/react.adapter.js +245 -0
  273. package/src/runtime/adapters/react.adapter.js.map +1 -0
  274. package/src/runtime/adapters/types.d.ts +94 -0
  275. package/src/runtime/adapters/types.js +11 -0
  276. package/src/runtime/adapters/types.js.map +1 -0
  277. package/src/runtime/csp.d.ts +37 -0
  278. package/src/runtime/csp.js +140 -0
  279. package/src/runtime/csp.js.map +1 -0
  280. package/src/runtime/index.d.ts +16 -0
  281. package/src/runtime/index.js +72 -0
  282. package/src/runtime/index.js.map +1 -0
  283. package/src/runtime/mcp-bridge.d.ts +100 -0
  284. package/src/runtime/mcp-bridge.js +581 -0
  285. package/src/runtime/mcp-bridge.js.map +1 -0
  286. package/src/runtime/renderer-runtime.d.ts +132 -0
  287. package/src/runtime/renderer-runtime.js +389 -0
  288. package/src/runtime/renderer-runtime.js.map +1 -0
  289. package/src/runtime/sanitizer.d.ts +171 -0
  290. package/src/runtime/sanitizer.js +318 -0
  291. package/src/runtime/sanitizer.js.map +1 -0
  292. package/src/runtime/types.d.ts +414 -0
  293. package/src/runtime/types.js +12 -0
  294. package/src/runtime/types.js.map +1 -0
  295. package/src/runtime/wrapper.d.ts +375 -0
  296. package/src/runtime/wrapper.js +1793 -0
  297. package/src/runtime/wrapper.js.map +1 -0
  298. package/src/styles/index.d.ts +7 -0
  299. package/src/styles/index.js +11 -0
  300. package/src/styles/index.js.map +1 -0
  301. package/src/styles/variants.d.ts +50 -0
  302. package/src/styles/variants.js +175 -0
  303. package/src/styles/variants.js.map +1 -0
  304. package/src/theme/cdn.d.ts +194 -0
  305. package/src/theme/cdn.js +375 -0
  306. package/src/theme/cdn.js.map +1 -0
  307. package/src/theme/index.d.ts +17 -0
  308. package/src/theme/index.js +57 -0
  309. package/src/theme/index.js.map +1 -0
  310. package/src/theme/platforms.d.ts +106 -0
  311. package/src/theme/platforms.js +161 -0
  312. package/src/theme/platforms.js.map +1 -0
  313. package/src/theme/presets/github-openai.d.ts +49 -0
  314. package/src/theme/presets/github-openai.js +189 -0
  315. package/src/theme/presets/github-openai.js.map +1 -0
  316. package/src/theme/presets/index.d.ts +10 -0
  317. package/src/theme/presets/index.js +17 -0
  318. package/src/theme/presets/index.js.map +1 -0
  319. package/src/theme/theme.d.ts +395 -0
  320. package/src/theme/theme.js +332 -0
  321. package/src/theme/theme.js.map +1 -0
  322. package/src/tool-template/builder.d.ts +212 -0
  323. package/src/tool-template/builder.js +397 -0
  324. package/src/tool-template/builder.js.map +1 -0
  325. package/src/tool-template/index.d.ts +15 -0
  326. package/src/tool-template/index.js +38 -0
  327. package/src/tool-template/index.js.map +1 -0
  328. package/src/types/index.d.ts +13 -0
  329. package/src/types/index.js +26 -0
  330. package/src/types/index.js.map +1 -0
  331. package/src/types/ui-config.d.ts +357 -0
  332. package/src/types/ui-config.js +12 -0
  333. package/src/types/ui-config.js.map +1 -0
  334. package/src/types/ui-runtime.d.ts +965 -0
  335. package/src/types/ui-runtime.js +117 -0
  336. package/src/types/ui-runtime.js.map +1 -0
  337. package/src/validation/error-box.d.ts +55 -0
  338. package/src/validation/error-box.js +75 -0
  339. package/src/validation/error-box.js.map +1 -0
  340. package/src/validation/index.d.ts +12 -0
  341. package/src/validation/index.js +21 -0
  342. package/src/validation/index.js.map +1 -0
  343. package/src/validation/wrapper.d.ts +96 -0
  344. package/src/validation/wrapper.js +117 -0
  345. package/src/validation/wrapper.js.map +1 -0
  346. package/src/web-components/core/attribute-parser.d.ts +85 -0
  347. package/src/web-components/core/attribute-parser.js +189 -0
  348. package/src/web-components/core/attribute-parser.js.map +1 -0
  349. package/src/web-components/core/base-element.d.ts +197 -0
  350. package/src/web-components/core/base-element.js +289 -0
  351. package/src/web-components/core/base-element.js.map +1 -0
  352. package/src/web-components/core/index.d.ts +8 -0
  353. package/src/web-components/core/index.js +18 -0
  354. package/src/web-components/core/index.js.map +1 -0
  355. package/src/web-components/elements/fmcp-alert.d.ts +45 -0
  356. package/src/web-components/elements/fmcp-alert.js +93 -0
  357. package/src/web-components/elements/fmcp-alert.js.map +1 -0
  358. package/src/web-components/elements/fmcp-badge.d.ts +46 -0
  359. package/src/web-components/elements/fmcp-badge.js +99 -0
  360. package/src/web-components/elements/fmcp-badge.js.map +1 -0
  361. package/src/web-components/elements/fmcp-button.d.ts +124 -0
  362. package/src/web-components/elements/fmcp-button.js +233 -0
  363. package/src/web-components/elements/fmcp-button.js.map +1 -0
  364. package/src/web-components/elements/fmcp-card.d.ts +52 -0
  365. package/src/web-components/elements/fmcp-card.js +115 -0
  366. package/src/web-components/elements/fmcp-card.js.map +1 -0
  367. package/src/web-components/elements/fmcp-input.d.ts +95 -0
  368. package/src/web-components/elements/fmcp-input.js +248 -0
  369. package/src/web-components/elements/fmcp-input.js.map +1 -0
  370. package/src/web-components/elements/fmcp-select.d.ts +99 -0
  371. package/src/web-components/elements/fmcp-select.js +243 -0
  372. package/src/web-components/elements/fmcp-select.js.map +1 -0
  373. package/src/web-components/elements/index.d.ts +12 -0
  374. package/src/web-components/elements/index.js +34 -0
  375. package/src/web-components/elements/index.js.map +1 -0
  376. package/src/web-components/index.d.ts +49 -0
  377. package/src/web-components/index.js +75 -0
  378. package/src/web-components/index.js.map +1 -0
  379. package/src/web-components/register.d.ts +56 -0
  380. package/src/web-components/register.js +80 -0
  381. package/src/web-components/register.js.map +1 -0
  382. package/src/web-components/types.d.ts +121 -0
  383. package/src/web-components/types.js +25 -0
  384. package/src/web-components/types.js.map +1 -0
  385. package/src/widgets/index.d.ts +7 -0
  386. package/src/widgets/index.js +24 -0
  387. package/src/widgets/index.js.map +1 -0
  388. package/src/widgets/progress.d.ts +132 -0
  389. package/src/widgets/progress.js +303 -0
  390. package/src/widgets/progress.js.map +1 -0
  391. package/src/widgets/resource.d.ts +162 -0
  392. package/src/widgets/resource.js +340 -0
  393. package/src/widgets/resource.js.map +1 -0
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ /**
3
+ * @file elements/index.ts
4
+ * @description Barrel exports for FrontMCP Web Component elements.
5
+ *
6
+ * @module @frontmcp/ui/web-components/elements
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.registerFmcpSelect = exports.FmcpSelect = exports.registerFmcpInput = exports.FmcpInput = exports.registerFmcpBadge = exports.FmcpBadge = exports.registerFmcpAlert = exports.FmcpAlert = exports.registerFmcpCard = exports.FmcpCard = exports.registerFmcpButton = exports.FmcpButton = void 0;
10
+ // Button
11
+ var fmcp_button_1 = require("./fmcp-button");
12
+ Object.defineProperty(exports, "FmcpButton", { enumerable: true, get: function () { return fmcp_button_1.FmcpButton; } });
13
+ Object.defineProperty(exports, "registerFmcpButton", { enumerable: true, get: function () { return fmcp_button_1.registerFmcpButton; } });
14
+ // Card
15
+ var fmcp_card_1 = require("./fmcp-card");
16
+ Object.defineProperty(exports, "FmcpCard", { enumerable: true, get: function () { return fmcp_card_1.FmcpCard; } });
17
+ Object.defineProperty(exports, "registerFmcpCard", { enumerable: true, get: function () { return fmcp_card_1.registerFmcpCard; } });
18
+ // Alert
19
+ var fmcp_alert_1 = require("./fmcp-alert");
20
+ Object.defineProperty(exports, "FmcpAlert", { enumerable: true, get: function () { return fmcp_alert_1.FmcpAlert; } });
21
+ Object.defineProperty(exports, "registerFmcpAlert", { enumerable: true, get: function () { return fmcp_alert_1.registerFmcpAlert; } });
22
+ // Badge
23
+ var fmcp_badge_1 = require("./fmcp-badge");
24
+ Object.defineProperty(exports, "FmcpBadge", { enumerable: true, get: function () { return fmcp_badge_1.FmcpBadge; } });
25
+ Object.defineProperty(exports, "registerFmcpBadge", { enumerable: true, get: function () { return fmcp_badge_1.registerFmcpBadge; } });
26
+ // Input
27
+ var fmcp_input_1 = require("./fmcp-input");
28
+ Object.defineProperty(exports, "FmcpInput", { enumerable: true, get: function () { return fmcp_input_1.FmcpInput; } });
29
+ Object.defineProperty(exports, "registerFmcpInput", { enumerable: true, get: function () { return fmcp_input_1.registerFmcpInput; } });
30
+ // Select
31
+ var fmcp_select_1 = require("./fmcp-select");
32
+ Object.defineProperty(exports, "FmcpSelect", { enumerable: true, get: function () { return fmcp_select_1.FmcpSelect; } });
33
+ Object.defineProperty(exports, "registerFmcpSelect", { enumerable: true, get: function () { return fmcp_select_1.registerFmcpSelect; } });
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/web-components/elements/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,SAAS;AACT,6CAA+D;AAAtD,yGAAA,UAAU,OAAA;AAAE,iHAAA,kBAAkB,OAAA;AAEvC,OAAO;AACP,yCAAyD;AAAhD,qGAAA,QAAQ,OAAA;AAAE,6GAAA,gBAAgB,OAAA;AAEnC,QAAQ;AACR,2CAA4D;AAAnD,uGAAA,SAAS,OAAA;AAAE,+GAAA,iBAAiB,OAAA;AAErC,QAAQ;AACR,2CAA4D;AAAnD,uGAAA,SAAS,OAAA;AAAE,+GAAA,iBAAiB,OAAA;AAErC,QAAQ;AACR,2CAA4D;AAAnD,uGAAA,SAAS,OAAA;AAAE,+GAAA,iBAAiB,OAAA;AAErC,SAAS;AACT,6CAA+D;AAAtD,yGAAA,UAAU,OAAA;AAAE,iHAAA,kBAAkB,OAAA","sourcesContent":["/**\n * @file elements/index.ts\n * @description Barrel exports for FrontMCP Web Component elements.\n *\n * @module @frontmcp/ui/web-components/elements\n */\n\n// Button\nexport { FmcpButton, registerFmcpButton } from './fmcp-button';\n\n// Card\nexport { FmcpCard, registerFmcpCard } from './fmcp-card';\n\n// Alert\nexport { FmcpAlert, registerFmcpAlert } from './fmcp-alert';\n\n// Badge\nexport { FmcpBadge, registerFmcpBadge } from './fmcp-badge';\n\n// Input\nexport { FmcpInput, registerFmcpInput } from './fmcp-input';\n\n// Select\nexport { FmcpSelect, registerFmcpSelect } from './fmcp-select';\n"]}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * @file index.ts
3
+ * @description FrontMCP Web Components - Custom Elements for React/Vue/HTML.
4
+ *
5
+ * This module provides Web Components (Custom Elements) that wrap the
6
+ * FrontMCP UI HTML functions, allowing native usage in any framework.
7
+ *
8
+ * @example Basic usage
9
+ * ```typescript
10
+ * import { registerAllComponents } from '@frontmcp/ui/web-components';
11
+ *
12
+ * // Register all components
13
+ * registerAllComponents();
14
+ *
15
+ * // Use in HTML
16
+ * // <fmcp-button variant="primary">Click Me</fmcp-button>
17
+ * ```
18
+ *
19
+ * @example React usage
20
+ * ```tsx
21
+ * import { registerFmcpButton } from '@frontmcp/ui/web-components';
22
+ *
23
+ * registerFmcpButton();
24
+ *
25
+ * function App() {
26
+ * return (
27
+ * <fmcp-button variant="primary" onClick={handleClick}>
28
+ * Click Me
29
+ * </fmcp-button>
30
+ * );
31
+ * }
32
+ * ```
33
+ *
34
+ * @example Tree-shakeable imports
35
+ * ```typescript
36
+ * import { registerFmcpButton, registerFmcpCard } from '@frontmcp/ui/web-components';
37
+ *
38
+ * // Only register the components you need
39
+ * registerFmcpButton();
40
+ * registerFmcpCard();
41
+ * ```
42
+ *
43
+ * @module @frontmcp/ui/web-components
44
+ */
45
+ export { FmcpElement, type FmcpElementConfig, type FmcpRenderEventDetail, parseAttributeValue, kebabToCamel, camelToKebab, getObservedAttributesFromSchema, mergeAttributeIntoOptions, type ParsedAttribute, } from './core';
46
+ export { FmcpButton, FmcpCard, FmcpAlert, FmcpBadge, FmcpInput, FmcpSelect } from './elements';
47
+ export { registerAllComponents, registerFmcpButton, registerFmcpCard, registerFmcpAlert, registerFmcpBadge, registerFmcpInput, registerFmcpSelect, } from './register';
48
+ export type { FmcpButtonProps, FmcpCardProps, FmcpAlertProps, FmcpBadgeProps, FmcpInputProps, FmcpSelectProps, } from './types';
49
+ import './types';
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ /**
3
+ * @file index.ts
4
+ * @description FrontMCP Web Components - Custom Elements for React/Vue/HTML.
5
+ *
6
+ * This module provides Web Components (Custom Elements) that wrap the
7
+ * FrontMCP UI HTML functions, allowing native usage in any framework.
8
+ *
9
+ * @example Basic usage
10
+ * ```typescript
11
+ * import { registerAllComponents } from '@frontmcp/ui/web-components';
12
+ *
13
+ * // Register all components
14
+ * registerAllComponents();
15
+ *
16
+ * // Use in HTML
17
+ * // <fmcp-button variant="primary">Click Me</fmcp-button>
18
+ * ```
19
+ *
20
+ * @example React usage
21
+ * ```tsx
22
+ * import { registerFmcpButton } from '@frontmcp/ui/web-components';
23
+ *
24
+ * registerFmcpButton();
25
+ *
26
+ * function App() {
27
+ * return (
28
+ * <fmcp-button variant="primary" onClick={handleClick}>
29
+ * Click Me
30
+ * </fmcp-button>
31
+ * );
32
+ * }
33
+ * ```
34
+ *
35
+ * @example Tree-shakeable imports
36
+ * ```typescript
37
+ * import { registerFmcpButton, registerFmcpCard } from '@frontmcp/ui/web-components';
38
+ *
39
+ * // Only register the components you need
40
+ * registerFmcpButton();
41
+ * registerFmcpCard();
42
+ * ```
43
+ *
44
+ * @module @frontmcp/ui/web-components
45
+ */
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ exports.registerFmcpSelect = exports.registerFmcpInput = exports.registerFmcpBadge = exports.registerFmcpAlert = exports.registerFmcpCard = exports.registerFmcpButton = exports.registerAllComponents = exports.FmcpSelect = exports.FmcpInput = exports.FmcpBadge = exports.FmcpAlert = exports.FmcpCard = exports.FmcpButton = exports.mergeAttributeIntoOptions = exports.getObservedAttributesFromSchema = exports.camelToKebab = exports.kebabToCamel = exports.parseAttributeValue = exports.FmcpElement = void 0;
48
+ // Core utilities
49
+ var core_1 = require("./core");
50
+ Object.defineProperty(exports, "FmcpElement", { enumerable: true, get: function () { return core_1.FmcpElement; } });
51
+ Object.defineProperty(exports, "parseAttributeValue", { enumerable: true, get: function () { return core_1.parseAttributeValue; } });
52
+ Object.defineProperty(exports, "kebabToCamel", { enumerable: true, get: function () { return core_1.kebabToCamel; } });
53
+ Object.defineProperty(exports, "camelToKebab", { enumerable: true, get: function () { return core_1.camelToKebab; } });
54
+ Object.defineProperty(exports, "getObservedAttributesFromSchema", { enumerable: true, get: function () { return core_1.getObservedAttributesFromSchema; } });
55
+ Object.defineProperty(exports, "mergeAttributeIntoOptions", { enumerable: true, get: function () { return core_1.mergeAttributeIntoOptions; } });
56
+ // Element classes
57
+ var elements_1 = require("./elements");
58
+ Object.defineProperty(exports, "FmcpButton", { enumerable: true, get: function () { return elements_1.FmcpButton; } });
59
+ Object.defineProperty(exports, "FmcpCard", { enumerable: true, get: function () { return elements_1.FmcpCard; } });
60
+ Object.defineProperty(exports, "FmcpAlert", { enumerable: true, get: function () { return elements_1.FmcpAlert; } });
61
+ Object.defineProperty(exports, "FmcpBadge", { enumerable: true, get: function () { return elements_1.FmcpBadge; } });
62
+ Object.defineProperty(exports, "FmcpInput", { enumerable: true, get: function () { return elements_1.FmcpInput; } });
63
+ Object.defineProperty(exports, "FmcpSelect", { enumerable: true, get: function () { return elements_1.FmcpSelect; } });
64
+ // Registration functions
65
+ var register_1 = require("./register");
66
+ Object.defineProperty(exports, "registerAllComponents", { enumerable: true, get: function () { return register_1.registerAllComponents; } });
67
+ Object.defineProperty(exports, "registerFmcpButton", { enumerable: true, get: function () { return register_1.registerFmcpButton; } });
68
+ Object.defineProperty(exports, "registerFmcpCard", { enumerable: true, get: function () { return register_1.registerFmcpCard; } });
69
+ Object.defineProperty(exports, "registerFmcpAlert", { enumerable: true, get: function () { return register_1.registerFmcpAlert; } });
70
+ Object.defineProperty(exports, "registerFmcpBadge", { enumerable: true, get: function () { return register_1.registerFmcpBadge; } });
71
+ Object.defineProperty(exports, "registerFmcpInput", { enumerable: true, get: function () { return register_1.registerFmcpInput; } });
72
+ Object.defineProperty(exports, "registerFmcpSelect", { enumerable: true, get: function () { return register_1.registerFmcpSelect; } });
73
+ // Import types for side-effect (JSX augmentation)
74
+ require("./types");
75
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/web-components/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;;;AAEH,iBAAiB;AACjB,+BAUgB;AATd,mGAAA,WAAW,OAAA;AAGX,2GAAA,mBAAmB,OAAA;AACnB,oGAAA,YAAY,OAAA;AACZ,oGAAA,YAAY,OAAA;AACZ,uHAAA,+BAA+B,OAAA;AAC/B,iHAAA,yBAAyB,OAAA;AAI3B,kBAAkB;AAClB,uCAA+F;AAAtF,sGAAA,UAAU,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAAE,qGAAA,SAAS,OAAA;AAAE,qGAAA,SAAS,OAAA;AAAE,qGAAA,SAAS,OAAA;AAAE,sGAAA,UAAU,OAAA;AAE1E,yBAAyB;AACzB,uCAQoB;AAPlB,iHAAA,qBAAqB,OAAA;AACrB,8GAAA,kBAAkB,OAAA;AAClB,4GAAA,gBAAgB,OAAA;AAChB,6GAAA,iBAAiB,OAAA;AACjB,6GAAA,iBAAiB,OAAA;AACjB,6GAAA,iBAAiB,OAAA;AACjB,8GAAA,kBAAkB,OAAA;AAapB,kDAAkD;AAClD,mBAAiB","sourcesContent":["/**\n * @file index.ts\n * @description FrontMCP Web Components - Custom Elements for React/Vue/HTML.\n *\n * This module provides Web Components (Custom Elements) that wrap the\n * FrontMCP UI HTML functions, allowing native usage in any framework.\n *\n * @example Basic usage\n * ```typescript\n * import { registerAllComponents } from '@frontmcp/ui/web-components';\n *\n * // Register all components\n * registerAllComponents();\n *\n * // Use in HTML\n * // <fmcp-button variant=\"primary\">Click Me</fmcp-button>\n * ```\n *\n * @example React usage\n * ```tsx\n * import { registerFmcpButton } from '@frontmcp/ui/web-components';\n *\n * registerFmcpButton();\n *\n * function App() {\n * return (\n * <fmcp-button variant=\"primary\" onClick={handleClick}>\n * Click Me\n * </fmcp-button>\n * );\n * }\n * ```\n *\n * @example Tree-shakeable imports\n * ```typescript\n * import { registerFmcpButton, registerFmcpCard } from '@frontmcp/ui/web-components';\n *\n * // Only register the components you need\n * registerFmcpButton();\n * registerFmcpCard();\n * ```\n *\n * @module @frontmcp/ui/web-components\n */\n\n// Core utilities\nexport {\n FmcpElement,\n type FmcpElementConfig,\n type FmcpRenderEventDetail,\n parseAttributeValue,\n kebabToCamel,\n camelToKebab,\n getObservedAttributesFromSchema,\n mergeAttributeIntoOptions,\n type ParsedAttribute,\n} from './core';\n\n// Element classes\nexport { FmcpButton, FmcpCard, FmcpAlert, FmcpBadge, FmcpInput, FmcpSelect } from './elements';\n\n// Registration functions\nexport {\n registerAllComponents,\n registerFmcpButton,\n registerFmcpCard,\n registerFmcpAlert,\n registerFmcpBadge,\n registerFmcpInput,\n registerFmcpSelect,\n} from './register';\n\n// Type declarations (side-effect import for JSX types)\nexport type {\n FmcpButtonProps,\n FmcpCardProps,\n FmcpAlertProps,\n FmcpBadgeProps,\n FmcpInputProps,\n FmcpSelectProps,\n} from './types';\n\n// Import types for side-effect (JSX augmentation)\nimport './types';\n"]}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * @file register.ts
3
+ * @description Registration utilities for FrontMCP Web Components.
4
+ *
5
+ * Provides functions to register custom elements either all at once
6
+ * or individually for tree-shaking optimization.
7
+ *
8
+ * @example Register all components
9
+ * ```typescript
10
+ * import { registerAllComponents } from '@frontmcp/ui/web-components';
11
+ *
12
+ * // Register all FrontMCP components
13
+ * registerAllComponents();
14
+ *
15
+ * // Then use in HTML:
16
+ * // <fmcp-button variant="primary">Click</fmcp-button>
17
+ * ```
18
+ *
19
+ * @example Register individual components (tree-shakeable)
20
+ * ```typescript
21
+ * import { registerFmcpButton, registerFmcpCard } from '@frontmcp/ui/web-components';
22
+ *
23
+ * // Only register what you need
24
+ * registerFmcpButton();
25
+ * registerFmcpCard();
26
+ * ```
27
+ *
28
+ * @module @frontmcp/ui/web-components/register
29
+ */
30
+ import { registerFmcpButton } from './elements/fmcp-button';
31
+ import { registerFmcpCard } from './elements/fmcp-card';
32
+ import { registerFmcpAlert } from './elements/fmcp-alert';
33
+ import { registerFmcpBadge } from './elements/fmcp-badge';
34
+ import { registerFmcpInput } from './elements/fmcp-input';
35
+ import { registerFmcpSelect } from './elements/fmcp-select';
36
+ /**
37
+ * Register all FrontMCP Web Components.
38
+ *
39
+ * This function registers all available custom elements:
40
+ * - `<fmcp-button>` - Button component
41
+ * - `<fmcp-card>` - Card component
42
+ * - `<fmcp-alert>` - Alert/notification component
43
+ * - `<fmcp-badge>` - Badge component
44
+ * - `<fmcp-input>` - Form input component
45
+ * - `<fmcp-select>` - Form select component
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * import { registerAllComponents } from '@frontmcp/ui/web-components';
50
+ *
51
+ * // Call once on app startup
52
+ * registerAllComponents();
53
+ * ```
54
+ */
55
+ export declare function registerAllComponents(): void;
56
+ export { registerFmcpButton, registerFmcpCard, registerFmcpAlert, registerFmcpBadge, registerFmcpInput, registerFmcpSelect, };
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ /**
3
+ * @file register.ts
4
+ * @description Registration utilities for FrontMCP Web Components.
5
+ *
6
+ * Provides functions to register custom elements either all at once
7
+ * or individually for tree-shaking optimization.
8
+ *
9
+ * @example Register all components
10
+ * ```typescript
11
+ * import { registerAllComponents } from '@frontmcp/ui/web-components';
12
+ *
13
+ * // Register all FrontMCP components
14
+ * registerAllComponents();
15
+ *
16
+ * // Then use in HTML:
17
+ * // <fmcp-button variant="primary">Click</fmcp-button>
18
+ * ```
19
+ *
20
+ * @example Register individual components (tree-shakeable)
21
+ * ```typescript
22
+ * import { registerFmcpButton, registerFmcpCard } from '@frontmcp/ui/web-components';
23
+ *
24
+ * // Only register what you need
25
+ * registerFmcpButton();
26
+ * registerFmcpCard();
27
+ * ```
28
+ *
29
+ * @module @frontmcp/ui/web-components/register
30
+ */
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ exports.registerFmcpSelect = exports.registerFmcpInput = exports.registerFmcpBadge = exports.registerFmcpAlert = exports.registerFmcpCard = exports.registerFmcpButton = void 0;
33
+ exports.registerAllComponents = registerAllComponents;
34
+ const fmcp_button_1 = require("./elements/fmcp-button");
35
+ Object.defineProperty(exports, "registerFmcpButton", { enumerable: true, get: function () { return fmcp_button_1.registerFmcpButton; } });
36
+ const fmcp_card_1 = require("./elements/fmcp-card");
37
+ Object.defineProperty(exports, "registerFmcpCard", { enumerable: true, get: function () { return fmcp_card_1.registerFmcpCard; } });
38
+ const fmcp_alert_1 = require("./elements/fmcp-alert");
39
+ Object.defineProperty(exports, "registerFmcpAlert", { enumerable: true, get: function () { return fmcp_alert_1.registerFmcpAlert; } });
40
+ const fmcp_badge_1 = require("./elements/fmcp-badge");
41
+ Object.defineProperty(exports, "registerFmcpBadge", { enumerable: true, get: function () { return fmcp_badge_1.registerFmcpBadge; } });
42
+ const fmcp_input_1 = require("./elements/fmcp-input");
43
+ Object.defineProperty(exports, "registerFmcpInput", { enumerable: true, get: function () { return fmcp_input_1.registerFmcpInput; } });
44
+ const fmcp_select_1 = require("./elements/fmcp-select");
45
+ Object.defineProperty(exports, "registerFmcpSelect", { enumerable: true, get: function () { return fmcp_select_1.registerFmcpSelect; } });
46
+ /**
47
+ * Register all FrontMCP Web Components.
48
+ *
49
+ * This function registers all available custom elements:
50
+ * - `<fmcp-button>` - Button component
51
+ * - `<fmcp-card>` - Card component
52
+ * - `<fmcp-alert>` - Alert/notification component
53
+ * - `<fmcp-badge>` - Badge component
54
+ * - `<fmcp-input>` - Form input component
55
+ * - `<fmcp-select>` - Form select component
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * import { registerAllComponents } from '@frontmcp/ui/web-components';
60
+ *
61
+ * // Call once on app startup
62
+ * registerAllComponents();
63
+ * ```
64
+ */
65
+ function registerAllComponents() {
66
+ (0, fmcp_button_1.registerFmcpButton)();
67
+ (0, fmcp_card_1.registerFmcpCard)();
68
+ (0, fmcp_alert_1.registerFmcpAlert)();
69
+ (0, fmcp_badge_1.registerFmcpBadge)();
70
+ (0, fmcp_input_1.registerFmcpInput)();
71
+ (0, fmcp_select_1.registerFmcpSelect)();
72
+ }
73
+ // Auto-register if script tag has data-auto-register attribute
74
+ if (typeof window !== 'undefined' && typeof document !== 'undefined') {
75
+ const script = document.currentScript;
76
+ if (script?.hasAttribute('data-auto-register')) {
77
+ registerAllComponents();
78
+ }
79
+ }
80
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/web-components/register.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;;;AA4BH,sDAOC;AAjCD,wDAA4D;AAqC1D,mGArCO,gCAAkB,OAqCP;AApCpB,oDAAwD;AAqCtD,iGArCO,4BAAgB,OAqCP;AApClB,sDAA0D;AAqCxD,kGArCO,8BAAiB,OAqCP;AApCnB,sDAA0D;AAqCxD,kGArCO,8BAAiB,OAqCP;AApCnB,sDAA0D;AAqCxD,kGArCO,8BAAiB,OAqCP;AApCnB,wDAA4D;AAqC1D,mGArCO,gCAAkB,OAqCP;AAnCpB;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,qBAAqB;IACnC,IAAA,gCAAkB,GAAE,CAAC;IACrB,IAAA,4BAAgB,GAAE,CAAC;IACnB,IAAA,8BAAiB,GAAE,CAAC;IACpB,IAAA,8BAAiB,GAAE,CAAC;IACpB,IAAA,8BAAiB,GAAE,CAAC;IACpB,IAAA,gCAAkB,GAAE,CAAC;AACvB,CAAC;AAYD,+DAA+D;AAC/D,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;IACrE,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC;IACtC,IAAI,MAAM,EAAE,YAAY,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAC/C,qBAAqB,EAAE,CAAC;IAC1B,CAAC;AACH,CAAC","sourcesContent":["/**\n * @file register.ts\n * @description Registration utilities for FrontMCP Web Components.\n *\n * Provides functions to register custom elements either all at once\n * or individually for tree-shaking optimization.\n *\n * @example Register all components\n * ```typescript\n * import { registerAllComponents } from '@frontmcp/ui/web-components';\n *\n * // Register all FrontMCP components\n * registerAllComponents();\n *\n * // Then use in HTML:\n * // <fmcp-button variant=\"primary\">Click</fmcp-button>\n * ```\n *\n * @example Register individual components (tree-shakeable)\n * ```typescript\n * import { registerFmcpButton, registerFmcpCard } from '@frontmcp/ui/web-components';\n *\n * // Only register what you need\n * registerFmcpButton();\n * registerFmcpCard();\n * ```\n *\n * @module @frontmcp/ui/web-components/register\n */\n\nimport { registerFmcpButton } from './elements/fmcp-button';\nimport { registerFmcpCard } from './elements/fmcp-card';\nimport { registerFmcpAlert } from './elements/fmcp-alert';\nimport { registerFmcpBadge } from './elements/fmcp-badge';\nimport { registerFmcpInput } from './elements/fmcp-input';\nimport { registerFmcpSelect } from './elements/fmcp-select';\n\n/**\n * Register all FrontMCP Web Components.\n *\n * This function registers all available custom elements:\n * - `<fmcp-button>` - Button component\n * - `<fmcp-card>` - Card component\n * - `<fmcp-alert>` - Alert/notification component\n * - `<fmcp-badge>` - Badge component\n * - `<fmcp-input>` - Form input component\n * - `<fmcp-select>` - Form select component\n *\n * @example\n * ```typescript\n * import { registerAllComponents } from '@frontmcp/ui/web-components';\n *\n * // Call once on app startup\n * registerAllComponents();\n * ```\n */\nexport function registerAllComponents(): void {\n registerFmcpButton();\n registerFmcpCard();\n registerFmcpAlert();\n registerFmcpBadge();\n registerFmcpInput();\n registerFmcpSelect();\n}\n\n// Re-export individual registration functions\nexport {\n registerFmcpButton,\n registerFmcpCard,\n registerFmcpAlert,\n registerFmcpBadge,\n registerFmcpInput,\n registerFmcpSelect,\n};\n\n// Auto-register if script tag has data-auto-register attribute\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n const script = document.currentScript;\n if (script?.hasAttribute('data-auto-register')) {\n registerAllComponents();\n }\n}\n"]}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * @file types.ts
3
+ * @description TypeScript type declarations for FrontMCP Web Components.
4
+ *
5
+ * Provides JSX.IntrinsicElements augmentation for React/Preact compatibility,
6
+ * and HTMLElementTagNameMap augmentation for TypeScript DOM APIs.
7
+ *
8
+ * @example React usage with types
9
+ * ```tsx
10
+ * import '@frontmcp/ui/web-components'; // Includes type augmentations
11
+ *
12
+ * function App() {
13
+ * return (
14
+ * <fmcp-button variant="primary" onClick={handleClick}>
15
+ * Click Me
16
+ * </fmcp-button>
17
+ * );
18
+ * }
19
+ * ```
20
+ *
21
+ * @module @frontmcp/ui/web-components/types
22
+ */
23
+ import type { ButtonOptions } from '../components/button';
24
+ import type { CardOptions } from '../components/card';
25
+ import type { AlertOptions } from '../components/alert';
26
+ import type { BadgeOptions } from '../components/badge';
27
+ import type { InputOptions, SelectOptions } from '../components/form';
28
+ /**
29
+ * Props for fmcp-button element
30
+ */
31
+ export interface FmcpButtonProps extends Partial<ButtonOptions> {
32
+ children?: string;
33
+ class?: string;
34
+ style?: string;
35
+ 'onfmcp:click'?: (e: CustomEvent) => void;
36
+ 'onfmcp:render'?: (e: CustomEvent) => void;
37
+ }
38
+ /**
39
+ * Props for fmcp-card element
40
+ */
41
+ export interface FmcpCardProps extends Partial<Omit<CardOptions, 'title'>> {
42
+ /** Card title (renamed to avoid conflict with HTMLElement.title) */
43
+ 'card-title'?: string;
44
+ children?: string;
45
+ class?: string;
46
+ style?: string;
47
+ 'onfmcp:render'?: (e: CustomEvent) => void;
48
+ }
49
+ /**
50
+ * Props for fmcp-alert element
51
+ */
52
+ export interface FmcpAlertProps extends Partial<Omit<AlertOptions, 'title'>> {
53
+ /** Alert title (renamed to avoid conflict with HTMLElement.title) */
54
+ 'alert-title'?: string;
55
+ children?: string;
56
+ class?: string;
57
+ style?: string;
58
+ 'onfmcp:render'?: (e: CustomEvent) => void;
59
+ }
60
+ /**
61
+ * Props for fmcp-badge element
62
+ */
63
+ export interface FmcpBadgeProps extends Partial<BadgeOptions> {
64
+ children?: string;
65
+ class?: string;
66
+ style?: string;
67
+ 'onfmcp:render'?: (e: CustomEvent) => void;
68
+ }
69
+ /**
70
+ * Props for fmcp-input element
71
+ */
72
+ export interface FmcpInputProps extends Partial<InputOptions> {
73
+ class?: string;
74
+ style?: string;
75
+ 'onfmcp:input'?: (e: CustomEvent<{
76
+ value: string;
77
+ name: string;
78
+ }>) => void;
79
+ 'onfmcp:change'?: (e: CustomEvent<{
80
+ value: string;
81
+ name: string;
82
+ }>) => void;
83
+ 'onfmcp:render'?: (e: CustomEvent) => void;
84
+ }
85
+ /**
86
+ * Props for fmcp-select element
87
+ */
88
+ export interface FmcpSelectProps extends Partial<SelectOptions> {
89
+ class?: string;
90
+ style?: string;
91
+ 'onfmcp:change'?: (e: CustomEvent<{
92
+ value: string;
93
+ name: string;
94
+ selectedOptions: string[];
95
+ }>) => void;
96
+ 'onfmcp:render'?: (e: CustomEvent) => void;
97
+ }
98
+ declare global {
99
+ /**
100
+ * HTMLElementTagNameMap augmentation for DOM APIs
101
+ */
102
+ interface HTMLElementTagNameMap {
103
+ 'fmcp-button': HTMLElement & FmcpButtonProps;
104
+ 'fmcp-card': HTMLElement & FmcpCardProps;
105
+ 'fmcp-alert': HTMLElement & FmcpAlertProps;
106
+ 'fmcp-badge': HTMLElement & FmcpBadgeProps;
107
+ 'fmcp-input': HTMLElement & FmcpInputProps;
108
+ 'fmcp-select': HTMLElement & FmcpSelectProps;
109
+ }
110
+ namespace JSX {
111
+ interface IntrinsicElements {
112
+ 'fmcp-button': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement> & FmcpButtonProps, HTMLElement>;
113
+ 'fmcp-card': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement> & FmcpCardProps, HTMLElement>;
114
+ 'fmcp-alert': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement> & FmcpAlertProps, HTMLElement>;
115
+ 'fmcp-badge': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement> & FmcpBadgeProps, HTMLElement>;
116
+ 'fmcp-input': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement> & FmcpInputProps, HTMLElement>;
117
+ 'fmcp-select': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement> & FmcpSelectProps, HTMLElement>;
118
+ }
119
+ }
120
+ }
121
+ export {};
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ /**
3
+ * @file types.ts
4
+ * @description TypeScript type declarations for FrontMCP Web Components.
5
+ *
6
+ * Provides JSX.IntrinsicElements augmentation for React/Preact compatibility,
7
+ * and HTMLElementTagNameMap augmentation for TypeScript DOM APIs.
8
+ *
9
+ * @example React usage with types
10
+ * ```tsx
11
+ * import '@frontmcp/ui/web-components'; // Includes type augmentations
12
+ *
13
+ * function App() {
14
+ * return (
15
+ * <fmcp-button variant="primary" onClick={handleClick}>
16
+ * Click Me
17
+ * </fmcp-button>
18
+ * );
19
+ * }
20
+ * ```
21
+ *
22
+ * @module @frontmcp/ui/web-components/types
23
+ */
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/web-components/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG","sourcesContent":["/**\n * @file types.ts\n * @description TypeScript type declarations for FrontMCP Web Components.\n *\n * Provides JSX.IntrinsicElements augmentation for React/Preact compatibility,\n * and HTMLElementTagNameMap augmentation for TypeScript DOM APIs.\n *\n * @example React usage with types\n * ```tsx\n * import '@frontmcp/ui/web-components'; // Includes type augmentations\n *\n * function App() {\n * return (\n * <fmcp-button variant=\"primary\" onClick={handleClick}>\n * Click Me\n * </fmcp-button>\n * );\n * }\n * ```\n *\n * @module @frontmcp/ui/web-components/types\n */\n\nimport type { ButtonOptions } from '../components/button';\nimport type { CardOptions } from '../components/card';\nimport type { AlertOptions } from '../components/alert';\nimport type { BadgeOptions } from '../components/badge';\nimport type { InputOptions, SelectOptions } from '../components/form';\n\n// ============================================\n// Web Component Props Interfaces\n// ============================================\n\n/**\n * Props for fmcp-button element\n */\nexport interface FmcpButtonProps extends Partial<ButtonOptions> {\n children?: string;\n class?: string;\n style?: string;\n 'onfmcp:click'?: (e: CustomEvent) => void;\n 'onfmcp:render'?: (e: CustomEvent) => void;\n}\n\n/**\n * Props for fmcp-card element\n */\nexport interface FmcpCardProps extends Partial<Omit<CardOptions, 'title'>> {\n /** Card title (renamed to avoid conflict with HTMLElement.title) */\n 'card-title'?: string;\n children?: string;\n class?: string;\n style?: string;\n 'onfmcp:render'?: (e: CustomEvent) => void;\n}\n\n/**\n * Props for fmcp-alert element\n */\nexport interface FmcpAlertProps extends Partial<Omit<AlertOptions, 'title'>> {\n /** Alert title (renamed to avoid conflict with HTMLElement.title) */\n 'alert-title'?: string;\n children?: string;\n class?: string;\n style?: string;\n 'onfmcp:render'?: (e: CustomEvent) => void;\n}\n\n/**\n * Props for fmcp-badge element\n */\nexport interface FmcpBadgeProps extends Partial<BadgeOptions> {\n children?: string;\n class?: string;\n style?: string;\n 'onfmcp:render'?: (e: CustomEvent) => void;\n}\n\n/**\n * Props for fmcp-input element\n */\nexport interface FmcpInputProps extends Partial<InputOptions> {\n class?: string;\n style?: string;\n 'onfmcp:input'?: (e: CustomEvent<{ value: string; name: string }>) => void;\n 'onfmcp:change'?: (e: CustomEvent<{ value: string; name: string }>) => void;\n 'onfmcp:render'?: (e: CustomEvent) => void;\n}\n\n/**\n * Props for fmcp-select element\n */\nexport interface FmcpSelectProps extends Partial<SelectOptions> {\n class?: string;\n style?: string;\n 'onfmcp:change'?: (e: CustomEvent<{ value: string; name: string; selectedOptions: string[] }>) => void;\n 'onfmcp:render'?: (e: CustomEvent) => void;\n}\n\n// ============================================\n// Global Type Augmentations\n// ============================================\n\ndeclare global {\n /**\n * HTMLElementTagNameMap augmentation for DOM APIs\n */\n interface HTMLElementTagNameMap {\n 'fmcp-button': HTMLElement & FmcpButtonProps;\n 'fmcp-card': HTMLElement & FmcpCardProps;\n 'fmcp-alert': HTMLElement & FmcpAlertProps;\n 'fmcp-badge': HTMLElement & FmcpBadgeProps;\n 'fmcp-input': HTMLElement & FmcpInputProps;\n 'fmcp-select': HTMLElement & FmcpSelectProps;\n }\n\n // JSX namespace for React/Preact\n namespace JSX {\n interface IntrinsicElements {\n 'fmcp-button': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement> & FmcpButtonProps, HTMLElement>;\n 'fmcp-card': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement> & FmcpCardProps, HTMLElement>;\n 'fmcp-alert': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement> & FmcpAlertProps, HTMLElement>;\n 'fmcp-badge': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement> & FmcpBadgeProps, HTMLElement>;\n 'fmcp-input': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement> & FmcpInputProps, HTMLElement>;\n 'fmcp-select': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement> & FmcpSelectProps, HTMLElement>;\n }\n }\n}\n\n// This export is needed to make this a module\nexport {};\n"]}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Widgets Module
3
+ *
4
+ * Specialized widgets for OpenAI App SDK and common UI patterns.
5
+ */
6
+ export { type ResourceType, type ResourceMeta, type ResourceAction, type ResourceOptions, type ResourceListOptions, type CodePreviewOptions, type ImagePreviewOptions, resourceWidget, resourceList, resourceItem, codePreview, imagePreview, } from './resource';
7
+ export { type ProgressBarOptions, type Step, type StepProgressOptions, type CircularProgressOptions, type StatusIndicatorOptions, type SkeletonOptions, progressBar, stepProgress, circularProgress, statusIndicator, skeleton, contentSkeleton, } from './progress';
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /**
3
+ * Widgets Module
4
+ *
5
+ * Specialized widgets for OpenAI App SDK and common UI patterns.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.contentSkeleton = exports.skeleton = exports.statusIndicator = exports.circularProgress = exports.stepProgress = exports.progressBar = exports.imagePreview = exports.codePreview = exports.resourceItem = exports.resourceList = exports.resourceWidget = void 0;
9
+ // Resource widgets
10
+ var resource_1 = require("./resource");
11
+ Object.defineProperty(exports, "resourceWidget", { enumerable: true, get: function () { return resource_1.resourceWidget; } });
12
+ Object.defineProperty(exports, "resourceList", { enumerable: true, get: function () { return resource_1.resourceList; } });
13
+ Object.defineProperty(exports, "resourceItem", { enumerable: true, get: function () { return resource_1.resourceItem; } });
14
+ Object.defineProperty(exports, "codePreview", { enumerable: true, get: function () { return resource_1.codePreview; } });
15
+ Object.defineProperty(exports, "imagePreview", { enumerable: true, get: function () { return resource_1.imagePreview; } });
16
+ // Progress widgets
17
+ var progress_1 = require("./progress");
18
+ Object.defineProperty(exports, "progressBar", { enumerable: true, get: function () { return progress_1.progressBar; } });
19
+ Object.defineProperty(exports, "stepProgress", { enumerable: true, get: function () { return progress_1.stepProgress; } });
20
+ Object.defineProperty(exports, "circularProgress", { enumerable: true, get: function () { return progress_1.circularProgress; } });
21
+ Object.defineProperty(exports, "statusIndicator", { enumerable: true, get: function () { return progress_1.statusIndicator; } });
22
+ Object.defineProperty(exports, "skeleton", { enumerable: true, get: function () { return progress_1.skeleton; } });
23
+ Object.defineProperty(exports, "contentSkeleton", { enumerable: true, get: function () { return progress_1.contentSkeleton; } });
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/widgets/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,mBAAmB;AACnB,uCAaoB;AALlB,0GAAA,cAAc,OAAA;AACd,wGAAA,YAAY,OAAA;AACZ,wGAAA,YAAY,OAAA;AACZ,uGAAA,WAAW,OAAA;AACX,wGAAA,YAAY,OAAA;AAGd,mBAAmB;AACnB,uCAaoB;AANlB,uGAAA,WAAW,OAAA;AACX,wGAAA,YAAY,OAAA;AACZ,4GAAA,gBAAgB,OAAA;AAChB,2GAAA,eAAe,OAAA;AACf,oGAAA,QAAQ,OAAA;AACR,2GAAA,eAAe,OAAA","sourcesContent":["/**\n * Widgets Module\n *\n * Specialized widgets for OpenAI App SDK and common UI patterns.\n */\n\n// Resource widgets\nexport {\n type ResourceType,\n type ResourceMeta,\n type ResourceAction,\n type ResourceOptions,\n type ResourceListOptions,\n type CodePreviewOptions,\n type ImagePreviewOptions,\n resourceWidget,\n resourceList,\n resourceItem,\n codePreview,\n imagePreview,\n} from './resource';\n\n// Progress widgets\nexport {\n type ProgressBarOptions,\n type Step,\n type StepProgressOptions,\n type CircularProgressOptions,\n type StatusIndicatorOptions,\n type SkeletonOptions,\n progressBar,\n stepProgress,\n circularProgress,\n statusIndicator,\n skeleton,\n contentSkeleton,\n} from './progress';\n"]}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Progress and Status Widgets
3
+ *
4
+ * Components for displaying progress, loading states, and status information.
5
+ */
6
+ /**
7
+ * Progress bar options
8
+ */
9
+ export interface ProgressBarOptions {
10
+ /** Progress value (0-100) */
11
+ value: number;
12
+ /** Show percentage text */
13
+ showLabel?: boolean;
14
+ /** Label position */
15
+ labelPosition?: 'inside' | 'outside' | 'none';
16
+ /** Size */
17
+ size?: 'sm' | 'md' | 'lg';
18
+ /** Color variant */
19
+ variant?: 'primary' | 'success' | 'warning' | 'danger' | 'info';
20
+ /** Animated (striped) */
21
+ animated?: boolean;
22
+ /** Additional CSS classes */
23
+ className?: string;
24
+ /** Custom label */
25
+ label?: string;
26
+ }
27
+ /**
28
+ * Build a progress bar
29
+ */
30
+ export declare function progressBar(options: ProgressBarOptions): string;
31
+ /**
32
+ * Step definition
33
+ */
34
+ export interface Step {
35
+ /** Step label */
36
+ label: string;
37
+ /** Step description */
38
+ description?: string;
39
+ /** Step status */
40
+ status: 'completed' | 'current' | 'upcoming';
41
+ /** Icon (optional) */
42
+ icon?: string;
43
+ /** URL for clickable steps */
44
+ href?: string;
45
+ }
46
+ /**
47
+ * Multi-step progress options
48
+ */
49
+ export interface StepProgressOptions {
50
+ /** Steps */
51
+ steps: Step[];
52
+ /** Orientation */
53
+ orientation?: 'horizontal' | 'vertical';
54
+ /** Connector style */
55
+ connector?: 'line' | 'dashed' | 'none';
56
+ /** Additional CSS classes */
57
+ className?: string;
58
+ }
59
+ /**
60
+ * Build a multi-step progress indicator
61
+ */
62
+ export declare function stepProgress(options: StepProgressOptions): string;
63
+ /**
64
+ * Circular progress options
65
+ */
66
+ export interface CircularProgressOptions {
67
+ /** Progress value (0-100) */
68
+ value: number;
69
+ /** Size in pixels */
70
+ size?: number;
71
+ /** Stroke width */
72
+ strokeWidth?: number;
73
+ /** Color variant */
74
+ variant?: 'primary' | 'success' | 'warning' | 'danger';
75
+ /** Show percentage */
76
+ showLabel?: boolean;
77
+ /** Custom label */
78
+ label?: string;
79
+ /** Additional CSS classes */
80
+ className?: string;
81
+ }
82
+ /**
83
+ * Build a circular progress indicator
84
+ */
85
+ export declare function circularProgress(options: CircularProgressOptions): string;
86
+ /**
87
+ * Status indicator options
88
+ */
89
+ export interface StatusIndicatorOptions {
90
+ /** Status state */
91
+ status: 'online' | 'offline' | 'busy' | 'away' | 'loading' | 'error' | 'success';
92
+ /** Status label */
93
+ label?: string;
94
+ /** Size */
95
+ size?: 'sm' | 'md' | 'lg';
96
+ /** Show pulse animation */
97
+ pulse?: boolean;
98
+ /** Additional CSS classes */
99
+ className?: string;
100
+ }
101
+ /**
102
+ * Build a status indicator
103
+ */
104
+ export declare function statusIndicator(options: StatusIndicatorOptions): string;
105
+ /**
106
+ * Skeleton loader options
107
+ */
108
+ export interface SkeletonOptions {
109
+ /** Skeleton type */
110
+ type?: 'text' | 'circle' | 'rect' | 'card';
111
+ /** Width (CSS value) */
112
+ width?: string;
113
+ /** Height (CSS value) */
114
+ height?: string;
115
+ /** Number of text lines */
116
+ lines?: number;
117
+ /** Animated */
118
+ animated?: boolean;
119
+ /** Additional CSS classes */
120
+ className?: string;
121
+ }
122
+ /**
123
+ * Build a skeleton loader
124
+ */
125
+ export declare function skeleton(options?: SkeletonOptions): string;
126
+ /**
127
+ * Build a content skeleton with avatar and text
128
+ */
129
+ export declare function contentSkeleton(options?: {
130
+ animated?: boolean;
131
+ className?: string;
132
+ }): string;