@frontmcp/ui 0.5.1 → 0.6.1

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 (805) hide show
  1. package/README.md +140 -362
  2. package/bridge/adapters/base-adapter.d.ts +104 -0
  3. package/bridge/adapters/base-adapter.d.ts.map +1 -0
  4. package/bridge/adapters/claude.adapter.d.ts +67 -0
  5. package/bridge/adapters/claude.adapter.d.ts.map +1 -0
  6. package/bridge/adapters/ext-apps.adapter.d.ts +143 -0
  7. package/bridge/adapters/ext-apps.adapter.d.ts.map +1 -0
  8. package/bridge/adapters/gemini.adapter.d.ts +64 -0
  9. package/bridge/adapters/gemini.adapter.d.ts.map +1 -0
  10. package/bridge/adapters/generic.adapter.d.ts +56 -0
  11. package/bridge/adapters/generic.adapter.d.ts.map +1 -0
  12. package/bridge/adapters/index.d.ts +26 -0
  13. package/bridge/adapters/index.d.ts.map +1 -0
  14. package/bridge/adapters/openai.adapter.d.ts +65 -0
  15. package/bridge/adapters/openai.adapter.d.ts.map +1 -0
  16. package/bridge/core/adapter-registry.d.ts +122 -0
  17. package/bridge/core/adapter-registry.d.ts.map +1 -0
  18. package/bridge/core/bridge-factory.d.ts +199 -0
  19. package/bridge/core/bridge-factory.d.ts.map +1 -0
  20. package/bridge/core/index.d.ts +10 -0
  21. package/bridge/core/index.d.ts.map +1 -0
  22. package/bridge/index.d.ts +62 -0
  23. package/bridge/index.d.ts.map +1 -0
  24. package/bridge/index.js +2540 -0
  25. package/bridge/runtime/iife-generator.d.ts +62 -0
  26. package/bridge/runtime/iife-generator.d.ts.map +1 -0
  27. package/bridge/runtime/index.d.ts +10 -0
  28. package/bridge/runtime/index.d.ts.map +1 -0
  29. package/bridge/types.d.ts +386 -0
  30. package/bridge/types.d.ts.map +1 -0
  31. package/bundler/bundler.d.ts +208 -0
  32. package/bundler/bundler.d.ts.map +1 -0
  33. package/bundler/cache.d.ts +173 -0
  34. package/bundler/cache.d.ts.map +1 -0
  35. package/bundler/file-cache/component-builder.d.ts +167 -0
  36. package/bundler/file-cache/component-builder.d.ts.map +1 -0
  37. package/bundler/file-cache/hash-calculator.d.ts +155 -0
  38. package/bundler/file-cache/hash-calculator.d.ts.map +1 -0
  39. package/bundler/file-cache/index.d.ts +12 -0
  40. package/bundler/file-cache/index.d.ts.map +1 -0
  41. package/bundler/file-cache/storage/filesystem.d.ts +149 -0
  42. package/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
  43. package/bundler/file-cache/storage/index.d.ts +11 -0
  44. package/bundler/file-cache/storage/index.d.ts.map +1 -0
  45. package/bundler/file-cache/storage/interface.d.ts +152 -0
  46. package/bundler/file-cache/storage/interface.d.ts.map +1 -0
  47. package/bundler/file-cache/storage/redis.d.ts +139 -0
  48. package/bundler/file-cache/storage/redis.d.ts.map +1 -0
  49. package/bundler/index.d.ts +43 -0
  50. package/bundler/index.d.ts.map +1 -0
  51. package/bundler/index.js +3707 -0
  52. package/bundler/sandbox/enclave-adapter.d.ts +121 -0
  53. package/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
  54. package/bundler/sandbox/executor.d.ts +14 -0
  55. package/bundler/sandbox/executor.d.ts.map +1 -0
  56. package/bundler/sandbox/policy.d.ts +62 -0
  57. package/bundler/sandbox/policy.d.ts.map +1 -0
  58. package/bundler/types.d.ts +702 -0
  59. package/bundler/types.d.ts.map +1 -0
  60. package/components/alert.d.ts +66 -0
  61. package/components/alert.d.ts.map +1 -0
  62. package/components/alert.schema.d.ts +98 -0
  63. package/components/alert.schema.d.ts.map +1 -0
  64. package/components/avatar.d.ts +77 -0
  65. package/components/avatar.d.ts.map +1 -0
  66. package/components/avatar.schema.d.ts +170 -0
  67. package/components/avatar.schema.d.ts.map +1 -0
  68. package/components/badge.d.ts +64 -0
  69. package/components/badge.d.ts.map +1 -0
  70. package/components/badge.schema.d.ts +91 -0
  71. package/components/badge.schema.d.ts.map +1 -0
  72. package/components/button.d.ts +100 -0
  73. package/components/button.d.ts.map +1 -0
  74. package/components/button.schema.d.ts +120 -0
  75. package/components/button.schema.d.ts.map +1 -0
  76. package/components/card.d.ts +53 -0
  77. package/components/card.d.ts.map +1 -0
  78. package/components/card.schema.d.ts +93 -0
  79. package/components/card.schema.d.ts.map +1 -0
  80. package/components/form.d.ts +212 -0
  81. package/components/form.d.ts.map +1 -0
  82. package/components/form.schema.d.ts +365 -0
  83. package/components/form.schema.d.ts.map +1 -0
  84. package/components/index.d.ts +29 -0
  85. package/components/index.d.ts.map +1 -0
  86. package/components/index.js +2525 -0
  87. package/components/list.d.ts +121 -0
  88. package/components/list.d.ts.map +1 -0
  89. package/components/list.schema.d.ts +129 -0
  90. package/components/list.schema.d.ts.map +1 -0
  91. package/components/modal.d.ts +100 -0
  92. package/components/modal.d.ts.map +1 -0
  93. package/components/modal.schema.d.ts +151 -0
  94. package/components/modal.schema.d.ts.map +1 -0
  95. package/components/table.d.ts +91 -0
  96. package/components/table.d.ts.map +1 -0
  97. package/components/table.schema.d.ts +123 -0
  98. package/components/table.schema.d.ts.map +1 -0
  99. package/esm/bridge/adapters/base-adapter.d.ts +104 -0
  100. package/esm/bridge/adapters/base-adapter.d.ts.map +1 -0
  101. package/esm/bridge/adapters/claude.adapter.d.ts +67 -0
  102. package/esm/bridge/adapters/claude.adapter.d.ts.map +1 -0
  103. package/esm/bridge/adapters/ext-apps.adapter.d.ts +143 -0
  104. package/esm/bridge/adapters/ext-apps.adapter.d.ts.map +1 -0
  105. package/esm/bridge/adapters/gemini.adapter.d.ts +64 -0
  106. package/esm/bridge/adapters/gemini.adapter.d.ts.map +1 -0
  107. package/esm/bridge/adapters/generic.adapter.d.ts +56 -0
  108. package/esm/bridge/adapters/generic.adapter.d.ts.map +1 -0
  109. package/esm/bridge/adapters/index.d.ts +26 -0
  110. package/esm/bridge/adapters/index.d.ts.map +1 -0
  111. package/esm/bridge/adapters/openai.adapter.d.ts +65 -0
  112. package/esm/bridge/adapters/openai.adapter.d.ts.map +1 -0
  113. package/esm/bridge/core/adapter-registry.d.ts +122 -0
  114. package/esm/bridge/core/adapter-registry.d.ts.map +1 -0
  115. package/esm/bridge/core/bridge-factory.d.ts +199 -0
  116. package/esm/bridge/core/bridge-factory.d.ts.map +1 -0
  117. package/esm/bridge/core/index.d.ts +10 -0
  118. package/esm/bridge/core/index.d.ts.map +1 -0
  119. package/esm/bridge/index.d.ts +62 -0
  120. package/esm/bridge/index.d.ts.map +1 -0
  121. package/esm/bridge/index.js +2487 -0
  122. package/esm/bridge/runtime/iife-generator.d.ts +62 -0
  123. package/esm/bridge/runtime/iife-generator.d.ts.map +1 -0
  124. package/esm/bridge/runtime/index.d.ts +10 -0
  125. package/esm/bridge/runtime/index.d.ts.map +1 -0
  126. package/esm/bridge/types.d.ts +386 -0
  127. package/esm/bridge/types.d.ts.map +1 -0
  128. package/esm/bundler/bundler.d.ts +208 -0
  129. package/esm/bundler/bundler.d.ts.map +1 -0
  130. package/esm/bundler/cache.d.ts +173 -0
  131. package/esm/bundler/cache.d.ts.map +1 -0
  132. package/esm/bundler/file-cache/component-builder.d.ts +167 -0
  133. package/esm/bundler/file-cache/component-builder.d.ts.map +1 -0
  134. package/esm/bundler/file-cache/hash-calculator.d.ts +155 -0
  135. package/esm/bundler/file-cache/hash-calculator.d.ts.map +1 -0
  136. package/esm/bundler/file-cache/index.d.ts +12 -0
  137. package/esm/bundler/file-cache/index.d.ts.map +1 -0
  138. package/esm/bundler/file-cache/storage/filesystem.d.ts +149 -0
  139. package/esm/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
  140. package/esm/bundler/file-cache/storage/index.d.ts +11 -0
  141. package/esm/bundler/file-cache/storage/index.d.ts.map +1 -0
  142. package/esm/bundler/file-cache/storage/interface.d.ts +152 -0
  143. package/esm/bundler/file-cache/storage/interface.d.ts.map +1 -0
  144. package/esm/bundler/file-cache/storage/redis.d.ts +139 -0
  145. package/esm/bundler/file-cache/storage/redis.d.ts.map +1 -0
  146. package/esm/bundler/index.d.ts +43 -0
  147. package/esm/bundler/index.d.ts.map +1 -0
  148. package/esm/bundler/index.js +3640 -0
  149. package/esm/bundler/sandbox/enclave-adapter.d.ts +121 -0
  150. package/esm/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
  151. package/esm/bundler/sandbox/executor.d.ts +14 -0
  152. package/esm/bundler/sandbox/executor.d.ts.map +1 -0
  153. package/esm/bundler/sandbox/policy.d.ts +62 -0
  154. package/esm/bundler/sandbox/policy.d.ts.map +1 -0
  155. package/esm/bundler/types.d.ts +702 -0
  156. package/esm/bundler/types.d.ts.map +1 -0
  157. package/esm/components/alert.d.ts +66 -0
  158. package/esm/components/alert.d.ts.map +1 -0
  159. package/esm/components/alert.schema.d.ts +98 -0
  160. package/esm/components/alert.schema.d.ts.map +1 -0
  161. package/esm/components/avatar.d.ts +77 -0
  162. package/esm/components/avatar.d.ts.map +1 -0
  163. package/esm/components/avatar.schema.d.ts +170 -0
  164. package/esm/components/avatar.schema.d.ts.map +1 -0
  165. package/esm/components/badge.d.ts +64 -0
  166. package/esm/components/badge.d.ts.map +1 -0
  167. package/esm/components/badge.schema.d.ts +91 -0
  168. package/esm/components/badge.schema.d.ts.map +1 -0
  169. package/esm/components/button.d.ts +100 -0
  170. package/esm/components/button.d.ts.map +1 -0
  171. package/esm/components/button.schema.d.ts +120 -0
  172. package/esm/components/button.schema.d.ts.map +1 -0
  173. package/esm/components/card.d.ts +53 -0
  174. package/esm/components/card.d.ts.map +1 -0
  175. package/esm/components/card.schema.d.ts +93 -0
  176. package/esm/components/card.schema.d.ts.map +1 -0
  177. package/esm/components/form.d.ts +212 -0
  178. package/esm/components/form.d.ts.map +1 -0
  179. package/esm/components/form.schema.d.ts +365 -0
  180. package/esm/components/form.schema.d.ts.map +1 -0
  181. package/esm/components/index.d.ts +29 -0
  182. package/esm/components/index.d.ts.map +1 -0
  183. package/esm/components/index.js +2396 -0
  184. package/esm/components/list.d.ts +121 -0
  185. package/esm/components/list.d.ts.map +1 -0
  186. package/esm/components/list.schema.d.ts +129 -0
  187. package/esm/components/list.schema.d.ts.map +1 -0
  188. package/esm/components/modal.d.ts +100 -0
  189. package/esm/components/modal.d.ts.map +1 -0
  190. package/esm/components/modal.schema.d.ts +151 -0
  191. package/esm/components/modal.schema.d.ts.map +1 -0
  192. package/esm/components/table.d.ts +91 -0
  193. package/esm/components/table.d.ts.map +1 -0
  194. package/esm/components/table.schema.d.ts +123 -0
  195. package/esm/components/table.schema.d.ts.map +1 -0
  196. package/esm/index.d.ts +40 -0
  197. package/esm/index.d.ts.map +1 -0
  198. package/esm/index.js +8326 -0
  199. package/esm/layouts/base.d.ts +86 -0
  200. package/esm/layouts/base.d.ts.map +1 -0
  201. package/esm/layouts/index.d.ts +8 -0
  202. package/esm/layouts/index.d.ts.map +1 -0
  203. package/esm/layouts/index.js +409 -0
  204. package/esm/layouts/presets.d.ts +134 -0
  205. package/esm/layouts/presets.d.ts.map +1 -0
  206. package/esm/package.json +72 -0
  207. package/esm/pages/consent.d.ts +117 -0
  208. package/esm/pages/consent.d.ts.map +1 -0
  209. package/esm/pages/error.d.ts +101 -0
  210. package/esm/pages/error.d.ts.map +1 -0
  211. package/esm/pages/index.d.ts +9 -0
  212. package/esm/pages/index.d.ts.map +1 -0
  213. package/esm/pages/index.js +1036 -0
  214. package/esm/react/Alert.d.ts +101 -0
  215. package/esm/react/Alert.d.ts.map +1 -0
  216. package/esm/react/Badge.d.ts +100 -0
  217. package/esm/react/Badge.d.ts.map +1 -0
  218. package/esm/react/Button.d.ts +108 -0
  219. package/esm/react/Button.d.ts.map +1 -0
  220. package/esm/react/Card.d.ts +103 -0
  221. package/esm/react/Card.d.ts.map +1 -0
  222. package/esm/react/hooks/context.d.ts +179 -0
  223. package/esm/react/hooks/context.d.ts.map +1 -0
  224. package/esm/react/hooks/index.d.ts +42 -0
  225. package/esm/react/hooks/index.d.ts.map +1 -0
  226. package/esm/react/hooks/tools.d.ts +284 -0
  227. package/esm/react/hooks/tools.d.ts.map +1 -0
  228. package/esm/react/index.d.ts +80 -0
  229. package/esm/react/index.d.ts.map +1 -0
  230. package/esm/react/index.js +3124 -0
  231. package/esm/react/types.d.ts +105 -0
  232. package/esm/react/types.d.ts.map +1 -0
  233. package/esm/react/utils.d.ts +43 -0
  234. package/esm/react/utils.d.ts.map +1 -0
  235. package/esm/render/index.d.ts +8 -0
  236. package/esm/render/index.d.ts.map +1 -0
  237. package/esm/render/index.js +45 -0
  238. package/esm/render/prerender.d.ts +57 -0
  239. package/esm/render/prerender.d.ts.map +1 -0
  240. package/esm/renderers/index.d.ts +21 -0
  241. package/esm/renderers/index.d.ts.map +1 -0
  242. package/esm/renderers/index.js +381 -0
  243. package/esm/renderers/react.adapter.d.ts +70 -0
  244. package/esm/renderers/react.adapter.d.ts.map +1 -0
  245. package/esm/renderers/react.renderer.d.ts +96 -0
  246. package/esm/renderers/react.renderer.d.ts.map +1 -0
  247. package/esm/universal/UniversalApp.d.ts +108 -0
  248. package/esm/universal/UniversalApp.d.ts.map +1 -0
  249. package/esm/universal/cached-runtime.d.ts +115 -0
  250. package/esm/universal/cached-runtime.d.ts.map +1 -0
  251. package/esm/universal/context.d.ts +122 -0
  252. package/esm/universal/context.d.ts.map +1 -0
  253. package/esm/universal/index.d.ts +57 -0
  254. package/esm/universal/index.d.ts.map +1 -0
  255. package/esm/universal/index.js +1755 -0
  256. package/esm/universal/renderers/html.renderer.d.ts +37 -0
  257. package/esm/universal/renderers/html.renderer.d.ts.map +1 -0
  258. package/esm/universal/renderers/index.d.ts +112 -0
  259. package/esm/universal/renderers/index.d.ts.map +1 -0
  260. package/esm/universal/renderers/markdown.renderer.d.ts +33 -0
  261. package/esm/universal/renderers/markdown.renderer.d.ts.map +1 -0
  262. package/esm/universal/renderers/mdx.renderer.d.ts +38 -0
  263. package/esm/universal/renderers/mdx.renderer.d.ts.map +1 -0
  264. package/esm/universal/renderers/react.renderer.d.ts +46 -0
  265. package/esm/universal/renderers/react.renderer.d.ts.map +1 -0
  266. package/esm/universal/runtime-builder.d.ts +33 -0
  267. package/esm/universal/runtime-builder.d.ts.map +1 -0
  268. package/esm/universal/store.d.ts +135 -0
  269. package/esm/universal/store.d.ts.map +1 -0
  270. package/esm/universal/types.d.ts +199 -0
  271. package/esm/universal/types.d.ts.map +1 -0
  272. package/esm/web-components/core/attribute-parser.d.ts +82 -0
  273. package/esm/web-components/core/attribute-parser.d.ts.map +1 -0
  274. package/esm/web-components/core/base-element.d.ts +197 -0
  275. package/esm/web-components/core/base-element.d.ts.map +1 -0
  276. package/esm/web-components/core/index.d.ts +9 -0
  277. package/esm/web-components/core/index.d.ts.map +1 -0
  278. package/esm/web-components/elements/fmcp-alert.d.ts +46 -0
  279. package/esm/web-components/elements/fmcp-alert.d.ts.map +1 -0
  280. package/esm/web-components/elements/fmcp-badge.d.ts +47 -0
  281. package/esm/web-components/elements/fmcp-badge.d.ts.map +1 -0
  282. package/esm/web-components/elements/fmcp-button.d.ts +117 -0
  283. package/esm/web-components/elements/fmcp-button.d.ts.map +1 -0
  284. package/esm/web-components/elements/fmcp-card.d.ts +53 -0
  285. package/esm/web-components/elements/fmcp-card.d.ts.map +1 -0
  286. package/esm/web-components/elements/fmcp-input.d.ts +96 -0
  287. package/esm/web-components/elements/fmcp-input.d.ts.map +1 -0
  288. package/esm/web-components/elements/fmcp-select.d.ts +100 -0
  289. package/esm/web-components/elements/fmcp-select.d.ts.map +1 -0
  290. package/esm/web-components/elements/index.d.ts +13 -0
  291. package/esm/web-components/elements/index.d.ts.map +1 -0
  292. package/esm/web-components/index.d.ts +50 -0
  293. package/esm/web-components/index.d.ts.map +1 -0
  294. package/esm/web-components/index.js +1993 -0
  295. package/esm/web-components/register.d.ts +57 -0
  296. package/esm/web-components/register.d.ts.map +1 -0
  297. package/esm/web-components/types.d.ts +122 -0
  298. package/esm/web-components/types.d.ts.map +1 -0
  299. package/esm/widgets/index.d.ts +8 -0
  300. package/esm/widgets/index.d.ts.map +1 -0
  301. package/esm/widgets/index.js +883 -0
  302. package/esm/widgets/progress.d.ts +133 -0
  303. package/esm/widgets/progress.d.ts.map +1 -0
  304. package/esm/widgets/resource.d.ts +163 -0
  305. package/esm/widgets/resource.d.ts.map +1 -0
  306. package/index.d.ts +40 -0
  307. package/index.d.ts.map +1 -0
  308. package/index.js +8526 -0
  309. package/layouts/base.d.ts +86 -0
  310. package/layouts/base.d.ts.map +1 -0
  311. package/layouts/index.d.ts +8 -0
  312. package/layouts/index.d.ts.map +1 -0
  313. package/layouts/index.js +437 -0
  314. package/layouts/presets.d.ts +134 -0
  315. package/layouts/presets.d.ts.map +1 -0
  316. package/package.json +33 -110
  317. package/pages/consent.d.ts +117 -0
  318. package/pages/consent.d.ts.map +1 -0
  319. package/pages/error.d.ts +101 -0
  320. package/pages/error.d.ts.map +1 -0
  321. package/pages/index.d.ts +9 -0
  322. package/pages/index.d.ts.map +1 -0
  323. package/pages/index.js +1065 -0
  324. package/react/Alert.d.ts +101 -0
  325. package/react/Alert.d.ts.map +1 -0
  326. package/react/Badge.d.ts +100 -0
  327. package/react/Badge.d.ts.map +1 -0
  328. package/react/Button.d.ts +108 -0
  329. package/react/Button.d.ts.map +1 -0
  330. package/react/Card.d.ts +103 -0
  331. package/react/Card.d.ts.map +1 -0
  332. package/react/hooks/context.d.ts +179 -0
  333. package/react/hooks/context.d.ts.map +1 -0
  334. package/react/hooks/index.d.ts +42 -0
  335. package/react/hooks/index.d.ts.map +1 -0
  336. package/react/hooks/tools.d.ts +284 -0
  337. package/react/hooks/tools.d.ts.map +1 -0
  338. package/react/index.d.ts +80 -0
  339. package/react/index.d.ts.map +1 -0
  340. package/react/index.js +3160 -0
  341. package/react/types.d.ts +105 -0
  342. package/react/types.d.ts.map +1 -0
  343. package/react/utils.d.ts +43 -0
  344. package/react/utils.d.ts.map +1 -0
  345. package/render/index.d.ts +8 -0
  346. package/render/index.d.ts.map +1 -0
  347. package/render/index.js +77 -0
  348. package/render/prerender.d.ts +57 -0
  349. package/render/prerender.d.ts.map +1 -0
  350. package/renderers/index.d.ts +21 -0
  351. package/renderers/index.d.ts.map +1 -0
  352. package/renderers/index.js +416 -0
  353. package/renderers/react.adapter.d.ts +70 -0
  354. package/renderers/react.adapter.d.ts.map +1 -0
  355. package/renderers/react.renderer.d.ts +96 -0
  356. package/renderers/react.renderer.d.ts.map +1 -0
  357. package/universal/UniversalApp.d.ts +108 -0
  358. package/universal/UniversalApp.d.ts.map +1 -0
  359. package/universal/cached-runtime.d.ts +115 -0
  360. package/universal/cached-runtime.d.ts.map +1 -0
  361. package/universal/context.d.ts +122 -0
  362. package/universal/context.d.ts.map +1 -0
  363. package/universal/index.d.ts +57 -0
  364. package/universal/index.d.ts.map +1 -0
  365. package/universal/index.js +1841 -0
  366. package/universal/renderers/html.renderer.d.ts +37 -0
  367. package/universal/renderers/html.renderer.d.ts.map +1 -0
  368. package/universal/renderers/index.d.ts +112 -0
  369. package/universal/renderers/index.d.ts.map +1 -0
  370. package/universal/renderers/markdown.renderer.d.ts +33 -0
  371. package/universal/renderers/markdown.renderer.d.ts.map +1 -0
  372. package/universal/renderers/mdx.renderer.d.ts +38 -0
  373. package/universal/renderers/mdx.renderer.d.ts.map +1 -0
  374. package/universal/renderers/react.renderer.d.ts +46 -0
  375. package/universal/renderers/react.renderer.d.ts.map +1 -0
  376. package/universal/runtime-builder.d.ts +33 -0
  377. package/universal/runtime-builder.d.ts.map +1 -0
  378. package/universal/store.d.ts +135 -0
  379. package/universal/store.d.ts.map +1 -0
  380. package/universal/types.d.ts +199 -0
  381. package/universal/types.d.ts.map +1 -0
  382. package/web-components/core/attribute-parser.d.ts +82 -0
  383. package/web-components/core/attribute-parser.d.ts.map +1 -0
  384. package/web-components/core/base-element.d.ts +197 -0
  385. package/web-components/core/base-element.d.ts.map +1 -0
  386. package/web-components/core/index.d.ts +9 -0
  387. package/web-components/core/index.d.ts.map +1 -0
  388. package/web-components/elements/fmcp-alert.d.ts +46 -0
  389. package/web-components/elements/fmcp-alert.d.ts.map +1 -0
  390. package/web-components/elements/fmcp-badge.d.ts +47 -0
  391. package/web-components/elements/fmcp-badge.d.ts.map +1 -0
  392. package/web-components/elements/fmcp-button.d.ts +117 -0
  393. package/web-components/elements/fmcp-button.d.ts.map +1 -0
  394. package/web-components/elements/fmcp-card.d.ts +53 -0
  395. package/web-components/elements/fmcp-card.d.ts.map +1 -0
  396. package/web-components/elements/fmcp-input.d.ts +96 -0
  397. package/web-components/elements/fmcp-input.d.ts.map +1 -0
  398. package/web-components/elements/fmcp-select.d.ts +100 -0
  399. package/web-components/elements/fmcp-select.d.ts.map +1 -0
  400. package/web-components/elements/index.d.ts +13 -0
  401. package/web-components/elements/index.d.ts.map +1 -0
  402. package/web-components/index.d.ts +50 -0
  403. package/web-components/index.d.ts.map +1 -0
  404. package/web-components/index.js +2028 -0
  405. package/web-components/register.d.ts +57 -0
  406. package/web-components/register.d.ts.map +1 -0
  407. package/web-components/types.d.ts +122 -0
  408. package/web-components/types.d.ts.map +1 -0
  409. package/widgets/index.d.ts +8 -0
  410. package/widgets/index.d.ts.map +1 -0
  411. package/widgets/index.js +910 -0
  412. package/widgets/progress.d.ts +133 -0
  413. package/widgets/progress.d.ts.map +1 -0
  414. package/widgets/resource.d.ts +163 -0
  415. package/widgets/resource.d.ts.map +1 -0
  416. package/src/adapters/index.d.ts +0 -10
  417. package/src/adapters/index.js +0 -18
  418. package/src/adapters/index.js.map +0 -1
  419. package/src/adapters/platform-meta.d.ts +0 -165
  420. package/src/adapters/platform-meta.js +0 -310
  421. package/src/adapters/platform-meta.js.map +0 -1
  422. package/src/base-template/bridge.d.ts +0 -89
  423. package/src/base-template/bridge.js +0 -452
  424. package/src/base-template/bridge.js.map +0 -1
  425. package/src/base-template/default-base-template.d.ts +0 -91
  426. package/src/base-template/default-base-template.js +0 -435
  427. package/src/base-template/default-base-template.js.map +0 -1
  428. package/src/base-template/index.d.ts +0 -14
  429. package/src/base-template/index.js +0 -30
  430. package/src/base-template/index.js.map +0 -1
  431. package/src/base-template/polyfills.d.ts +0 -30
  432. package/src/base-template/polyfills.js +0 -190
  433. package/src/base-template/polyfills.js.map +0 -1
  434. package/src/base-template/theme-styles.d.ts +0 -73
  435. package/src/base-template/theme-styles.js +0 -95
  436. package/src/base-template/theme-styles.js.map +0 -1
  437. package/src/bridge/adapters/base-adapter.d.ts +0 -103
  438. package/src/bridge/adapters/base-adapter.js +0 -314
  439. package/src/bridge/adapters/base-adapter.js.map +0 -1
  440. package/src/bridge/adapters/claude.adapter.d.ts +0 -66
  441. package/src/bridge/adapters/claude.adapter.js +0 -145
  442. package/src/bridge/adapters/claude.adapter.js.map +0 -1
  443. package/src/bridge/adapters/ext-apps.adapter.d.ts +0 -142
  444. package/src/bridge/adapters/ext-apps.adapter.js +0 -416
  445. package/src/bridge/adapters/ext-apps.adapter.js.map +0 -1
  446. package/src/bridge/adapters/gemini.adapter.d.ts +0 -63
  447. package/src/bridge/adapters/gemini.adapter.js +0 -160
  448. package/src/bridge/adapters/gemini.adapter.js.map +0 -1
  449. package/src/bridge/adapters/generic.adapter.d.ts +0 -55
  450. package/src/bridge/adapters/generic.adapter.js +0 -108
  451. package/src/bridge/adapters/generic.adapter.js.map +0 -1
  452. package/src/bridge/adapters/index.d.ts +0 -25
  453. package/src/bridge/adapters/index.js +0 -65
  454. package/src/bridge/adapters/index.js.map +0 -1
  455. package/src/bridge/adapters/openai.adapter.d.ts +0 -64
  456. package/src/bridge/adapters/openai.adapter.js +0 -194
  457. package/src/bridge/adapters/openai.adapter.js.map +0 -1
  458. package/src/bridge/core/adapter-registry.d.ts +0 -121
  459. package/src/bridge/core/adapter-registry.js +0 -271
  460. package/src/bridge/core/adapter-registry.js.map +0 -1
  461. package/src/bridge/core/bridge-factory.d.ts +0 -198
  462. package/src/bridge/core/bridge-factory.js +0 -428
  463. package/src/bridge/core/bridge-factory.js.map +0 -1
  464. package/src/bridge/core/index.d.ts +0 -9
  465. package/src/bridge/core/index.js +0 -22
  466. package/src/bridge/core/index.js.map +0 -1
  467. package/src/bridge/index.d.ts +0 -61
  468. package/src/bridge/index.js +0 -94
  469. package/src/bridge/index.js.map +0 -1
  470. package/src/bridge/runtime/iife-generator.d.ts +0 -61
  471. package/src/bridge/runtime/iife-generator.js +0 -940
  472. package/src/bridge/runtime/iife-generator.js.map +0 -1
  473. package/src/bridge/runtime/index.d.ts +0 -8
  474. package/src/bridge/runtime/index.js +0 -16
  475. package/src/bridge/runtime/index.js.map +0 -1
  476. package/src/bridge/types.d.ts +0 -385
  477. package/src/bridge/types.js +0 -11
  478. package/src/bridge/types.js.map +0 -1
  479. package/src/build/cdn-resources.d.ts +0 -140
  480. package/src/build/cdn-resources.js +0 -314
  481. package/src/build/cdn-resources.js.map +0 -1
  482. package/src/build/index.d.ts +0 -294
  483. package/src/build/index.js +0 -325
  484. package/src/build/index.js.map +0 -1
  485. package/src/build/widget-manifest.d.ts +0 -212
  486. package/src/build/widget-manifest.js +0 -652
  487. package/src/build/widget-manifest.js.map +0 -1
  488. package/src/bundler/bundler.d.ts +0 -110
  489. package/src/bundler/bundler.js +0 -432
  490. package/src/bundler/bundler.js.map +0 -1
  491. package/src/bundler/cache.d.ts +0 -172
  492. package/src/bundler/cache.js +0 -250
  493. package/src/bundler/cache.js.map +0 -1
  494. package/src/bundler/index.d.ts +0 -41
  495. package/src/bundler/index.js +0 -73
  496. package/src/bundler/index.js.map +0 -1
  497. package/src/bundler/sandbox/enclave-adapter.d.ts +0 -120
  498. package/src/bundler/sandbox/enclave-adapter.js +0 -339
  499. package/src/bundler/sandbox/enclave-adapter.js.map +0 -1
  500. package/src/bundler/sandbox/executor.d.ts +0 -13
  501. package/src/bundler/sandbox/executor.js +0 -22
  502. package/src/bundler/sandbox/executor.js.map +0 -1
  503. package/src/bundler/sandbox/policy.d.ts +0 -61
  504. package/src/bundler/sandbox/policy.js +0 -238
  505. package/src/bundler/sandbox/policy.js.map +0 -1
  506. package/src/bundler/types.d.ts +0 -347
  507. package/src/bundler/types.js +0 -132
  508. package/src/bundler/types.js.map +0 -1
  509. package/src/components/alert.d.ts +0 -71
  510. package/src/components/alert.js +0 -189
  511. package/src/components/alert.js.map +0 -1
  512. package/src/components/alert.schema.d.ts +0 -114
  513. package/src/components/alert.schema.js +0 -105
  514. package/src/components/alert.schema.js.map +0 -1
  515. package/src/components/avatar.d.ts +0 -76
  516. package/src/components/avatar.js +0 -176
  517. package/src/components/avatar.js.map +0 -1
  518. package/src/components/avatar.schema.d.ts +0 -169
  519. package/src/components/avatar.schema.js +0 -103
  520. package/src/components/avatar.schema.js.map +0 -1
  521. package/src/components/badge.d.ts +0 -70
  522. package/src/components/badge.js +0 -149
  523. package/src/components/badge.js.map +0 -1
  524. package/src/components/badge.schema.d.ts +0 -109
  525. package/src/components/badge.schema.js +0 -96
  526. package/src/components/badge.schema.js.map +0 -1
  527. package/src/components/button.d.ts +0 -111
  528. package/src/components/button.js +0 -336
  529. package/src/components/button.js.map +0 -1
  530. package/src/components/button.schema.d.ts +0 -148
  531. package/src/components/button.schema.js +0 -121
  532. package/src/components/button.schema.js.map +0 -1
  533. package/src/components/card.d.ts +0 -60
  534. package/src/components/card.js +0 -117
  535. package/src/components/card.js.map +0 -1
  536. package/src/components/card.schema.d.ts +0 -113
  537. package/src/components/card.schema.js +0 -98
  538. package/src/components/card.schema.js.map +0 -1
  539. package/src/components/form.d.ts +0 -239
  540. package/src/components/form.js +0 -420
  541. package/src/components/form.js.map +0 -1
  542. package/src/components/form.schema.d.ts +0 -441
  543. package/src/components/form.schema.js +0 -406
  544. package/src/components/form.schema.js.map +0 -1
  545. package/src/components/index.d.ts +0 -29
  546. package/src/components/index.js +0 -98
  547. package/src/components/index.js.map +0 -1
  548. package/src/components/list.d.ts +0 -127
  549. package/src/components/list.js +0 -279
  550. package/src/components/list.js.map +0 -1
  551. package/src/components/list.schema.d.ts +0 -134
  552. package/src/components/list.schema.js +0 -168
  553. package/src/components/list.schema.js.map +0 -1
  554. package/src/components/modal.d.ts +0 -111
  555. package/src/components/modal.js +0 -260
  556. package/src/components/modal.js.map +0 -1
  557. package/src/components/modal.schema.d.ts +0 -186
  558. package/src/components/modal.schema.js +0 -167
  559. package/src/components/modal.schema.js.map +0 -1
  560. package/src/components/table.d.ts +0 -105
  561. package/src/components/table.js +0 -283
  562. package/src/components/table.js.map +0 -1
  563. package/src/components/table.schema.d.ts +0 -159
  564. package/src/components/table.schema.js +0 -173
  565. package/src/components/table.schema.js.map +0 -1
  566. package/src/handlebars/helpers.d.ts +0 -348
  567. package/src/handlebars/helpers.js +0 -605
  568. package/src/handlebars/helpers.js.map +0 -1
  569. package/src/handlebars/index.d.ts +0 -193
  570. package/src/handlebars/index.js +0 -350
  571. package/src/handlebars/index.js.map +0 -1
  572. package/src/index.d.ts +0 -50
  573. package/src/index.js +0 -192
  574. package/src/index.js.map +0 -1
  575. package/src/layouts/base.d.ts +0 -88
  576. package/src/layouts/base.js +0 -227
  577. package/src/layouts/base.js.map +0 -1
  578. package/src/layouts/index.d.ts +0 -7
  579. package/src/layouts/index.js +0 -25
  580. package/src/layouts/index.js.map +0 -1
  581. package/src/layouts/presets.d.ts +0 -133
  582. package/src/layouts/presets.js +0 -277
  583. package/src/layouts/presets.js.map +0 -1
  584. package/src/pages/consent.d.ts +0 -116
  585. package/src/pages/consent.js +0 -218
  586. package/src/pages/consent.js.map +0 -1
  587. package/src/pages/error.d.ts +0 -100
  588. package/src/pages/error.js +0 -263
  589. package/src/pages/error.js.map +0 -1
  590. package/src/pages/index.d.ts +0 -8
  591. package/src/pages/index.js +0 -27
  592. package/src/pages/index.js.map +0 -1
  593. package/src/react/Alert.d.ts +0 -101
  594. package/src/react/Alert.js +0 -51
  595. package/src/react/Alert.js.map +0 -1
  596. package/src/react/Badge.d.ts +0 -100
  597. package/src/react/Badge.js +0 -55
  598. package/src/react/Badge.js.map +0 -1
  599. package/src/react/Button.d.ts +0 -108
  600. package/src/react/Button.js +0 -52
  601. package/src/react/Button.js.map +0 -1
  602. package/src/react/Card.d.ts +0 -103
  603. package/src/react/Card.js +0 -55
  604. package/src/react/Card.js.map +0 -1
  605. package/src/react/hooks/context.d.ts +0 -178
  606. package/src/react/hooks/context.js +0 -287
  607. package/src/react/hooks/context.js.map +0 -1
  608. package/src/react/hooks/index.d.ts +0 -41
  609. package/src/react/hooks/index.js +0 -61
  610. package/src/react/hooks/index.js.map +0 -1
  611. package/src/react/hooks/tools.d.ts +0 -283
  612. package/src/react/hooks/tools.js +0 -465
  613. package/src/react/hooks/tools.js.map +0 -1
  614. package/src/react/index.d.ts +0 -80
  615. package/src/react/index.js +0 -113
  616. package/src/react/index.js.map +0 -1
  617. package/src/react/types.d.ts +0 -105
  618. package/src/react/types.js +0 -12
  619. package/src/react/types.js.map +0 -1
  620. package/src/react/utils.d.ts +0 -42
  621. package/src/react/utils.js +0 -99
  622. package/src/react/utils.js.map +0 -1
  623. package/src/registry/index.d.ts +0 -45
  624. package/src/registry/index.js +0 -67
  625. package/src/registry/index.js.map +0 -1
  626. package/src/registry/render-template.d.ts +0 -86
  627. package/src/registry/render-template.js +0 -239
  628. package/src/registry/render-template.js.map +0 -1
  629. package/src/registry/tool-ui.registry.d.ts +0 -260
  630. package/src/registry/tool-ui.registry.js +0 -438
  631. package/src/registry/tool-ui.registry.js.map +0 -1
  632. package/src/registry/uri-utils.d.ts +0 -55
  633. package/src/registry/uri-utils.js +0 -97
  634. package/src/registry/uri-utils.js.map +0 -1
  635. package/src/render/index.d.ts +0 -7
  636. package/src/render/index.js +0 -14
  637. package/src/render/index.js.map +0 -1
  638. package/src/render/prerender.d.ts +0 -56
  639. package/src/render/prerender.js +0 -98
  640. package/src/render/prerender.js.map +0 -1
  641. package/src/renderers/cache.d.ts +0 -144
  642. package/src/renderers/cache.js +0 -240
  643. package/src/renderers/cache.js.map +0 -1
  644. package/src/renderers/html.renderer.d.ts +0 -122
  645. package/src/renderers/html.renderer.js +0 -204
  646. package/src/renderers/html.renderer.js.map +0 -1
  647. package/src/renderers/index.d.ts +0 -35
  648. package/src/renderers/index.js +0 -70
  649. package/src/renderers/index.js.map +0 -1
  650. package/src/renderers/mdx.renderer.d.ts +0 -119
  651. package/src/renderers/mdx.renderer.js +0 -305
  652. package/src/renderers/mdx.renderer.js.map +0 -1
  653. package/src/renderers/react.renderer.d.ts +0 -95
  654. package/src/renderers/react.renderer.js +0 -260
  655. package/src/renderers/react.renderer.js.map +0 -1
  656. package/src/renderers/registry.d.ts +0 -133
  657. package/src/renderers/registry.js +0 -232
  658. package/src/renderers/registry.js.map +0 -1
  659. package/src/renderers/types.d.ts +0 -341
  660. package/src/renderers/types.js +0 -9
  661. package/src/renderers/types.js.map +0 -1
  662. package/src/renderers/utils/detect.d.ts +0 -106
  663. package/src/renderers/utils/detect.js +0 -267
  664. package/src/renderers/utils/detect.js.map +0 -1
  665. package/src/renderers/utils/hash.d.ts +0 -39
  666. package/src/renderers/utils/hash.js +0 -75
  667. package/src/renderers/utils/hash.js.map +0 -1
  668. package/src/renderers/utils/index.d.ts +0 -8
  669. package/src/renderers/utils/index.js +0 -28
  670. package/src/renderers/utils/index.js.map +0 -1
  671. package/src/renderers/utils/transpiler.d.ts +0 -88
  672. package/src/renderers/utils/transpiler.js +0 -215
  673. package/src/renderers/utils/transpiler.js.map +0 -1
  674. package/src/runtime/adapters/html.adapter.d.ts +0 -58
  675. package/src/runtime/adapters/html.adapter.js +0 -131
  676. package/src/runtime/adapters/html.adapter.js.map +0 -1
  677. package/src/runtime/adapters/index.d.ts +0 -25
  678. package/src/runtime/adapters/index.js +0 -54
  679. package/src/runtime/adapters/index.js.map +0 -1
  680. package/src/runtime/adapters/mdx.adapter.d.ts +0 -72
  681. package/src/runtime/adapters/mdx.adapter.js +0 -241
  682. package/src/runtime/adapters/mdx.adapter.js.map +0 -1
  683. package/src/runtime/adapters/react.adapter.d.ts +0 -69
  684. package/src/runtime/adapters/react.adapter.js +0 -245
  685. package/src/runtime/adapters/react.adapter.js.map +0 -1
  686. package/src/runtime/adapters/types.d.ts +0 -94
  687. package/src/runtime/adapters/types.js +0 -11
  688. package/src/runtime/adapters/types.js.map +0 -1
  689. package/src/runtime/csp.d.ts +0 -37
  690. package/src/runtime/csp.js +0 -140
  691. package/src/runtime/csp.js.map +0 -1
  692. package/src/runtime/index.d.ts +0 -16
  693. package/src/runtime/index.js +0 -72
  694. package/src/runtime/index.js.map +0 -1
  695. package/src/runtime/mcp-bridge.d.ts +0 -100
  696. package/src/runtime/mcp-bridge.js +0 -581
  697. package/src/runtime/mcp-bridge.js.map +0 -1
  698. package/src/runtime/renderer-runtime.d.ts +0 -132
  699. package/src/runtime/renderer-runtime.js +0 -389
  700. package/src/runtime/renderer-runtime.js.map +0 -1
  701. package/src/runtime/sanitizer.d.ts +0 -171
  702. package/src/runtime/sanitizer.js +0 -318
  703. package/src/runtime/sanitizer.js.map +0 -1
  704. package/src/runtime/types.d.ts +0 -414
  705. package/src/runtime/types.js +0 -12
  706. package/src/runtime/types.js.map +0 -1
  707. package/src/runtime/wrapper.d.ts +0 -375
  708. package/src/runtime/wrapper.js +0 -1793
  709. package/src/runtime/wrapper.js.map +0 -1
  710. package/src/styles/index.d.ts +0 -7
  711. package/src/styles/index.js +0 -11
  712. package/src/styles/index.js.map +0 -1
  713. package/src/styles/variants.d.ts +0 -50
  714. package/src/styles/variants.js +0 -175
  715. package/src/styles/variants.js.map +0 -1
  716. package/src/theme/cdn.d.ts +0 -194
  717. package/src/theme/cdn.js +0 -375
  718. package/src/theme/cdn.js.map +0 -1
  719. package/src/theme/index.d.ts +0 -17
  720. package/src/theme/index.js +0 -57
  721. package/src/theme/index.js.map +0 -1
  722. package/src/theme/platforms.d.ts +0 -106
  723. package/src/theme/platforms.js +0 -161
  724. package/src/theme/platforms.js.map +0 -1
  725. package/src/theme/presets/github-openai.d.ts +0 -49
  726. package/src/theme/presets/github-openai.js +0 -189
  727. package/src/theme/presets/github-openai.js.map +0 -1
  728. package/src/theme/presets/index.d.ts +0 -10
  729. package/src/theme/presets/index.js +0 -17
  730. package/src/theme/presets/index.js.map +0 -1
  731. package/src/theme/theme.d.ts +0 -395
  732. package/src/theme/theme.js +0 -332
  733. package/src/theme/theme.js.map +0 -1
  734. package/src/tool-template/builder.d.ts +0 -212
  735. package/src/tool-template/builder.js +0 -397
  736. package/src/tool-template/builder.js.map +0 -1
  737. package/src/tool-template/index.d.ts +0 -15
  738. package/src/tool-template/index.js +0 -38
  739. package/src/tool-template/index.js.map +0 -1
  740. package/src/types/index.d.ts +0 -13
  741. package/src/types/index.js +0 -26
  742. package/src/types/index.js.map +0 -1
  743. package/src/types/ui-config.d.ts +0 -357
  744. package/src/types/ui-config.js +0 -12
  745. package/src/types/ui-config.js.map +0 -1
  746. package/src/types/ui-runtime.d.ts +0 -965
  747. package/src/types/ui-runtime.js +0 -117
  748. package/src/types/ui-runtime.js.map +0 -1
  749. package/src/validation/error-box.d.ts +0 -55
  750. package/src/validation/error-box.js +0 -75
  751. package/src/validation/error-box.js.map +0 -1
  752. package/src/validation/index.d.ts +0 -12
  753. package/src/validation/index.js +0 -21
  754. package/src/validation/index.js.map +0 -1
  755. package/src/validation/wrapper.d.ts +0 -96
  756. package/src/validation/wrapper.js +0 -117
  757. package/src/validation/wrapper.js.map +0 -1
  758. package/src/web-components/core/attribute-parser.d.ts +0 -85
  759. package/src/web-components/core/attribute-parser.js +0 -189
  760. package/src/web-components/core/attribute-parser.js.map +0 -1
  761. package/src/web-components/core/base-element.d.ts +0 -197
  762. package/src/web-components/core/base-element.js +0 -289
  763. package/src/web-components/core/base-element.js.map +0 -1
  764. package/src/web-components/core/index.d.ts +0 -8
  765. package/src/web-components/core/index.js +0 -18
  766. package/src/web-components/core/index.js.map +0 -1
  767. package/src/web-components/elements/fmcp-alert.d.ts +0 -45
  768. package/src/web-components/elements/fmcp-alert.js +0 -93
  769. package/src/web-components/elements/fmcp-alert.js.map +0 -1
  770. package/src/web-components/elements/fmcp-badge.d.ts +0 -46
  771. package/src/web-components/elements/fmcp-badge.js +0 -99
  772. package/src/web-components/elements/fmcp-badge.js.map +0 -1
  773. package/src/web-components/elements/fmcp-button.d.ts +0 -124
  774. package/src/web-components/elements/fmcp-button.js +0 -233
  775. package/src/web-components/elements/fmcp-button.js.map +0 -1
  776. package/src/web-components/elements/fmcp-card.d.ts +0 -52
  777. package/src/web-components/elements/fmcp-card.js +0 -115
  778. package/src/web-components/elements/fmcp-card.js.map +0 -1
  779. package/src/web-components/elements/fmcp-input.d.ts +0 -95
  780. package/src/web-components/elements/fmcp-input.js +0 -248
  781. package/src/web-components/elements/fmcp-input.js.map +0 -1
  782. package/src/web-components/elements/fmcp-select.d.ts +0 -99
  783. package/src/web-components/elements/fmcp-select.js +0 -243
  784. package/src/web-components/elements/fmcp-select.js.map +0 -1
  785. package/src/web-components/elements/index.d.ts +0 -12
  786. package/src/web-components/elements/index.js +0 -34
  787. package/src/web-components/elements/index.js.map +0 -1
  788. package/src/web-components/index.d.ts +0 -49
  789. package/src/web-components/index.js +0 -75
  790. package/src/web-components/index.js.map +0 -1
  791. package/src/web-components/register.d.ts +0 -56
  792. package/src/web-components/register.js +0 -80
  793. package/src/web-components/register.js.map +0 -1
  794. package/src/web-components/types.d.ts +0 -121
  795. package/src/web-components/types.js +0 -25
  796. package/src/web-components/types.js.map +0 -1
  797. package/src/widgets/index.d.ts +0 -7
  798. package/src/widgets/index.js +0 -24
  799. package/src/widgets/index.js.map +0 -1
  800. package/src/widgets/progress.d.ts +0 -132
  801. package/src/widgets/progress.js +0 -303
  802. package/src/widgets/progress.js.map +0 -1
  803. package/src/widgets/resource.d.ts +0 -162
  804. package/src/widgets/resource.js +0 -340
  805. package/src/widgets/resource.js.map +0 -1
@@ -1,248 +0,0 @@
1
- "use strict";
2
- /**
3
- * @file fmcp-input.ts
4
- * @description FrontMCP Input Web Component.
5
- *
6
- * A custom element wrapper around the input() HTML function.
7
- *
8
- * @example Basic usage
9
- * ```html
10
- * <fmcp-input name="email" type="email" label="Email Address"></fmcp-input>
11
- * <fmcp-input name="password" type="password" label="Password" required></fmcp-input>
12
- * ```
13
- *
14
- * @example With validation
15
- * ```html
16
- * <fmcp-input
17
- * name="username"
18
- * label="Username"
19
- * helper="Choose a unique username"
20
- * pattern="[a-z0-9]+"
21
- * ></fmcp-input>
22
- * ```
23
- *
24
- * @module @frontmcp/ui/web-components/elements/fmcp-input
25
- */
26
- Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.FmcpInput = void 0;
28
- exports.registerFmcpInput = registerFmcpInput;
29
- const core_1 = require("../core");
30
- const form_1 = require("../../components/form");
31
- const form_schema_1 = require("../../components/form.schema");
32
- /**
33
- * FmcpInput Web Component
34
- */
35
- class FmcpInput extends core_1.FmcpElement {
36
- config = {
37
- name: 'input',
38
- schema: form_schema_1.InputOptionsSchema,
39
- defaults: {
40
- type: 'text',
41
- size: 'md',
42
- state: 'default',
43
- },
44
- };
45
- static get observedAttributes() {
46
- return [
47
- 'name',
48
- 'type',
49
- 'id',
50
- 'value',
51
- 'placeholder',
52
- 'label',
53
- 'helper',
54
- 'error',
55
- 'size',
56
- 'state',
57
- 'required',
58
- 'disabled',
59
- 'readonly',
60
- 'autocomplete',
61
- 'pattern',
62
- 'min',
63
- 'max',
64
- 'step',
65
- 'class',
66
- 'icon-before',
67
- 'icon-after',
68
- 'hx-get',
69
- 'hx-post',
70
- 'hx-target',
71
- 'hx-swap',
72
- 'hx-trigger',
73
- ];
74
- }
75
- renderHtml(options, _content) {
76
- return (0, form_1.input)(options);
77
- }
78
- // ============================================
79
- // Property Setters
80
- // ============================================
81
- set name(value) {
82
- this._options.name = value;
83
- this._scheduleRender();
84
- }
85
- get name() {
86
- return this._options.name ?? '';
87
- }
88
- set type(value) {
89
- this._options.type = value;
90
- this._scheduleRender();
91
- }
92
- get type() {
93
- return this._options.type;
94
- }
95
- set label(value) {
96
- this._options.label = value;
97
- this._scheduleRender();
98
- }
99
- get label() {
100
- return this._options.label;
101
- }
102
- set placeholder(value) {
103
- this._options.placeholder = value;
104
- this._scheduleRender();
105
- }
106
- get placeholder() {
107
- return this._options.placeholder;
108
- }
109
- set helper(value) {
110
- this._options.helper = value;
111
- this._scheduleRender();
112
- }
113
- get helper() {
114
- return this._options.helper;
115
- }
116
- set error(value) {
117
- this._options.error = value;
118
- this._scheduleRender();
119
- }
120
- get error() {
121
- return this._options.error;
122
- }
123
- set size(value) {
124
- this._options.size = value;
125
- this._scheduleRender();
126
- }
127
- get size() {
128
- return this._options.size;
129
- }
130
- set state(value) {
131
- this._options.state = value;
132
- this._scheduleRender();
133
- }
134
- get state() {
135
- return this._options.state;
136
- }
137
- set required(value) {
138
- this._options.required = value;
139
- this._scheduleRender();
140
- }
141
- get required() {
142
- return this._options.required ?? false;
143
- }
144
- set disabled(value) {
145
- this._options.disabled = value;
146
- this._scheduleRender();
147
- }
148
- get disabled() {
149
- return this._options.disabled ?? false;
150
- }
151
- set readonly(value) {
152
- this._options.readonly = value;
153
- this._scheduleRender();
154
- }
155
- get readonly() {
156
- return this._options.readonly ?? false;
157
- }
158
- // ============================================
159
- // Form Integration
160
- // ============================================
161
- connectedCallback() {
162
- super.connectedCallback();
163
- // Forward input/change events
164
- this.addEventListener('input', this._handleInput.bind(this));
165
- this.addEventListener('change', this._handleChange.bind(this));
166
- }
167
- _handleInput(e) {
168
- const inputEl = this.querySelector('input');
169
- if (inputEl && (e.target === inputEl || inputEl.contains(e.target))) {
170
- this.dispatchEvent(new CustomEvent('fmcp:input', {
171
- bubbles: true,
172
- detail: { value: inputEl.value, name: this._options.name },
173
- }));
174
- }
175
- }
176
- _handleChange(e) {
177
- const inputEl = this.querySelector('input');
178
- if (inputEl && (e.target === inputEl || inputEl.contains(e.target))) {
179
- this.dispatchEvent(new CustomEvent('fmcp:change', {
180
- bubbles: true,
181
- detail: { value: inputEl.value, name: this._options.name },
182
- }));
183
- }
184
- }
185
- /**
186
- * Get current input value.
187
- */
188
- get value() {
189
- const inputEl = this.querySelector('input');
190
- return inputEl?.value ?? this._options.value ?? '';
191
- }
192
- /**
193
- * Set input value.
194
- */
195
- set value(val) {
196
- const inputEl = this.querySelector('input');
197
- if (inputEl) {
198
- inputEl.value = val;
199
- }
200
- this._options.value = val;
201
- }
202
- /**
203
- * Get validity state.
204
- */
205
- get validity() {
206
- return this.querySelector('input')?.validity;
207
- }
208
- /**
209
- * Check validity.
210
- */
211
- checkValidity() {
212
- return this.querySelector('input')?.checkValidity() ?? true;
213
- }
214
- /**
215
- * Report validity.
216
- */
217
- reportValidity() {
218
- return this.querySelector('input')?.reportValidity() ?? true;
219
- }
220
- /**
221
- * Focus the input.
222
- */
223
- focus() {
224
- this.querySelector('input')?.focus();
225
- }
226
- /**
227
- * Blur the input.
228
- */
229
- blur() {
230
- this.querySelector('input')?.blur();
231
- }
232
- /**
233
- * Select all text.
234
- */
235
- select() {
236
- this.querySelector('input')?.select();
237
- }
238
- }
239
- exports.FmcpInput = FmcpInput;
240
- /**
241
- * Register the fmcp-input custom element.
242
- */
243
- function registerFmcpInput() {
244
- if (typeof customElements !== 'undefined' && !customElements.get('fmcp-input')) {
245
- customElements.define('fmcp-input', FmcpInput);
246
- }
247
- }
248
- //# sourceMappingURL=fmcp-input.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fmcp-input.js","sourceRoot":"","sources":["../../../../src/web-components/elements/fmcp-input.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @file fmcp-input.ts\n * @description FrontMCP Input Web Component.\n *\n * A custom element wrapper around the input() HTML function.\n *\n * @example Basic usage\n * ```html\n * <fmcp-input name=\"email\" type=\"email\" label=\"Email Address\"></fmcp-input>\n * <fmcp-input name=\"password\" type=\"password\" label=\"Password\" required></fmcp-input>\n * ```\n *\n * @example With validation\n * ```html\n * <fmcp-input\n * name=\"username\"\n * label=\"Username\"\n * helper=\"Choose a unique username\"\n * pattern=\"[a-z0-9]+\"\n * ></fmcp-input>\n * ```\n *\n * @module @frontmcp/ui/web-components/elements/fmcp-input\n */\n\nimport { FmcpElement, type FmcpElementConfig, getObservedAttributesFromSchema } from '../core';\nimport { input, type InputOptions } from '../../components/form';\nimport { InputOptionsSchema } from '../../components/form.schema';\n\n/**\n * FmcpInput Web Component\n */\nexport class FmcpInput extends FmcpElement<InputOptions> {\n protected readonly config: FmcpElementConfig<InputOptions> = {\n name: 'input',\n schema: InputOptionsSchema,\n defaults: {\n type: 'text',\n size: 'md',\n state: 'default',\n },\n };\n\n static get observedAttributes(): string[] {\n return [\n 'name',\n 'type',\n 'id',\n 'value',\n 'placeholder',\n 'label',\n 'helper',\n 'error',\n 'size',\n 'state',\n 'required',\n 'disabled',\n 'readonly',\n 'autocomplete',\n 'pattern',\n 'min',\n 'max',\n 'step',\n 'class',\n 'icon-before',\n 'icon-after',\n 'hx-get',\n 'hx-post',\n 'hx-target',\n 'hx-swap',\n 'hx-trigger',\n ];\n }\n\n protected renderHtml(options: InputOptions, _content: string): string {\n return input(options);\n }\n\n // ============================================\n // Property Setters\n // ============================================\n\n set name(value: string) {\n this._options.name = value;\n this._scheduleRender();\n }\n get name(): string {\n return this._options.name ?? '';\n }\n\n set type(value: InputOptions['type']) {\n this._options.type = value;\n this._scheduleRender();\n }\n get type(): InputOptions['type'] {\n return this._options.type;\n }\n\n set label(value: string | undefined) {\n this._options.label = value;\n this._scheduleRender();\n }\n get label(): string | undefined {\n return this._options.label;\n }\n\n set placeholder(value: string | undefined) {\n this._options.placeholder = value;\n this._scheduleRender();\n }\n get placeholder(): string | undefined {\n return this._options.placeholder;\n }\n\n set helper(value: string | undefined) {\n this._options.helper = value;\n this._scheduleRender();\n }\n get helper(): string | undefined {\n return this._options.helper;\n }\n\n set error(value: string | undefined) {\n this._options.error = value;\n this._scheduleRender();\n }\n get error(): string | undefined {\n return this._options.error;\n }\n\n set size(value: InputOptions['size']) {\n this._options.size = value;\n this._scheduleRender();\n }\n get size(): InputOptions['size'] {\n return this._options.size;\n }\n\n set state(value: InputOptions['state']) {\n this._options.state = value;\n this._scheduleRender();\n }\n get state(): InputOptions['state'] {\n return this._options.state;\n }\n\n set required(value: boolean) {\n this._options.required = value;\n this._scheduleRender();\n }\n get required(): boolean {\n return this._options.required ?? false;\n }\n\n set disabled(value: boolean) {\n this._options.disabled = value;\n this._scheduleRender();\n }\n get disabled(): boolean {\n return this._options.disabled ?? false;\n }\n\n set readonly(value: boolean) {\n this._options.readonly = value;\n this._scheduleRender();\n }\n get readonly(): boolean {\n return this._options.readonly ?? false;\n }\n\n // ============================================\n // Form Integration\n // ============================================\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n // Forward input/change events\n this.addEventListener('input', this._handleInput.bind(this));\n this.addEventListener('change', this._handleChange.bind(this));\n }\n\n private _handleInput(e: Event): void {\n const inputEl = this.querySelector('input');\n if (inputEl && (e.target === inputEl || inputEl.contains(e.target as Node))) {\n this.dispatchEvent(\n new CustomEvent('fmcp:input', {\n bubbles: true,\n detail: { value: inputEl.value, name: this._options.name },\n }),\n );\n }\n }\n\n private _handleChange(e: Event): void {\n const inputEl = this.querySelector('input');\n if (inputEl && (e.target === inputEl || inputEl.contains(e.target as Node))) {\n this.dispatchEvent(\n new CustomEvent('fmcp:change', {\n bubbles: true,\n detail: { value: inputEl.value, name: this._options.name },\n }),\n );\n }\n }\n\n /**\n * Get current input value.\n */\n get value(): string {\n const inputEl = this.querySelector('input');\n return inputEl?.value ?? this._options.value ?? '';\n }\n\n /**\n * Set input value.\n */\n set value(val: string) {\n const inputEl = this.querySelector('input');\n if (inputEl) {\n inputEl.value = val;\n }\n this._options.value = val;\n }\n\n /**\n * Get validity state.\n */\n get validity(): ValidityState | undefined {\n return this.querySelector('input')?.validity;\n }\n\n /**\n * Check validity.\n */\n checkValidity(): boolean {\n return this.querySelector('input')?.checkValidity() ?? true;\n }\n\n /**\n * Report validity.\n */\n reportValidity(): boolean {\n return this.querySelector('input')?.reportValidity() ?? true;\n }\n\n /**\n * Focus the input.\n */\n override focus(): void {\n this.querySelector('input')?.focus();\n }\n\n /**\n * Blur the input.\n */\n override blur(): void {\n this.querySelector('input')?.blur();\n }\n\n /**\n * Select all text.\n */\n select(): void {\n this.querySelector('input')?.select();\n }\n}\n\n/**\n * Register the fmcp-input custom element.\n */\nexport function registerFmcpInput(): void {\n if (typeof customElements !== 'undefined' && !customElements.get('fmcp-input')) {\n customElements.define('fmcp-input', FmcpInput);\n }\n}\n"]}
@@ -1,99 +0,0 @@
1
- /**
2
- * @file fmcp-select.ts
3
- * @description FrontMCP Select Web Component.
4
- *
5
- * A custom element wrapper around the select() HTML function.
6
- *
7
- * @example Basic usage
8
- * ```html
9
- * <fmcp-select name="country" label="Country" placeholder="Select a country">
10
- * </fmcp-select>
11
- * ```
12
- *
13
- * @example With options via property
14
- * ```tsx
15
- * const selectEl = document.querySelector('fmcp-select');
16
- * selectEl.selectOptions = [
17
- * { value: 'us', label: 'United States' },
18
- * { value: 'uk', label: 'United Kingdom' },
19
- * ];
20
- * ```
21
- *
22
- * @module @frontmcp/ui/web-components/elements/fmcp-select
23
- */
24
- import { FmcpElement, type FmcpElementConfig } from '../core';
25
- import { type SelectOptions } from '../../components/form';
26
- import { type SelectOptionItem } from '../../components/form.schema';
27
- /**
28
- * FmcpSelect Web Component
29
- */
30
- export declare class FmcpSelect extends FmcpElement<SelectOptions> {
31
- protected readonly config: FmcpElementConfig<SelectOptions>;
32
- /** Select options stored separately since they're complex objects */
33
- private _selectOptions;
34
- static get observedAttributes(): string[];
35
- protected renderHtml(options: SelectOptions, _content: string): string;
36
- set name(value: string);
37
- get name(): string;
38
- set label(value: string | undefined);
39
- get label(): string | undefined;
40
- set placeholder(value: string | undefined);
41
- get placeholder(): string | undefined;
42
- set helper(value: string | undefined);
43
- get helper(): string | undefined;
44
- set error(value: string | undefined);
45
- get error(): string | undefined;
46
- set size(value: SelectOptions['size']);
47
- get size(): SelectOptions['size'];
48
- set state(value: SelectOptions['state']);
49
- get state(): SelectOptions['state'];
50
- set required(value: boolean);
51
- get required(): boolean;
52
- set disabled(value: boolean);
53
- get disabled(): boolean;
54
- set multiple(value: boolean);
55
- get multiple(): boolean;
56
- /**
57
- * Set select options (array of { value, label, disabled?, selected? })
58
- */
59
- set selectOptions(value: SelectOptionItem[]);
60
- get selectOptions(): SelectOptionItem[];
61
- connectedCallback(): void;
62
- private _handleChange;
63
- /**
64
- * Get current select value.
65
- */
66
- get value(): string;
67
- /**
68
- * Set select value.
69
- */
70
- set value(val: string);
71
- /**
72
- * Get selected options (for multiple select).
73
- */
74
- get selectedOptions(): string[];
75
- /**
76
- * Get validity state.
77
- */
78
- get validity(): ValidityState | undefined;
79
- /**
80
- * Check validity.
81
- */
82
- checkValidity(): boolean;
83
- /**
84
- * Report validity.
85
- */
86
- reportValidity(): boolean;
87
- /**
88
- * Focus the select.
89
- */
90
- focus(): void;
91
- /**
92
- * Blur the select.
93
- */
94
- blur(): void;
95
- }
96
- /**
97
- * Register the fmcp-select custom element.
98
- */
99
- export declare function registerFmcpSelect(): void;
@@ -1,243 +0,0 @@
1
- "use strict";
2
- /**
3
- * @file fmcp-select.ts
4
- * @description FrontMCP Select Web Component.
5
- *
6
- * A custom element wrapper around the select() HTML function.
7
- *
8
- * @example Basic usage
9
- * ```html
10
- * <fmcp-select name="country" label="Country" placeholder="Select a country">
11
- * </fmcp-select>
12
- * ```
13
- *
14
- * @example With options via property
15
- * ```tsx
16
- * const selectEl = document.querySelector('fmcp-select');
17
- * selectEl.selectOptions = [
18
- * { value: 'us', label: 'United States' },
19
- * { value: 'uk', label: 'United Kingdom' },
20
- * ];
21
- * ```
22
- *
23
- * @module @frontmcp/ui/web-components/elements/fmcp-select
24
- */
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.FmcpSelect = void 0;
27
- exports.registerFmcpSelect = registerFmcpSelect;
28
- const core_1 = require("../core");
29
- const form_1 = require("../../components/form");
30
- const form_schema_1 = require("../../components/form.schema");
31
- /**
32
- * FmcpSelect Web Component
33
- */
34
- class FmcpSelect extends core_1.FmcpElement {
35
- config = {
36
- name: 'select',
37
- schema: form_schema_1.SelectOptionsSchema,
38
- defaults: {
39
- size: 'md',
40
- state: 'default',
41
- },
42
- };
43
- /** Select options stored separately since they're complex objects */
44
- _selectOptions = [];
45
- static get observedAttributes() {
46
- return [
47
- 'name',
48
- 'id',
49
- 'value',
50
- 'placeholder',
51
- 'label',
52
- 'helper',
53
- 'error',
54
- 'size',
55
- 'state',
56
- 'required',
57
- 'disabled',
58
- 'multiple',
59
- 'class',
60
- 'hx-get',
61
- 'hx-post',
62
- 'hx-target',
63
- 'hx-swap',
64
- 'hx-trigger',
65
- ];
66
- }
67
- renderHtml(options, _content) {
68
- // Merge stored select options
69
- const mergedOptions = {
70
- ...options,
71
- options: this._selectOptions.length > 0 ? this._selectOptions : options.options,
72
- };
73
- return (0, form_1.select)(mergedOptions);
74
- }
75
- // ============================================
76
- // Property Setters
77
- // ============================================
78
- set name(value) {
79
- this._options.name = value;
80
- this._scheduleRender();
81
- }
82
- get name() {
83
- return this._options.name ?? '';
84
- }
85
- set label(value) {
86
- this._options.label = value;
87
- this._scheduleRender();
88
- }
89
- get label() {
90
- return this._options.label;
91
- }
92
- set placeholder(value) {
93
- this._options.placeholder = value;
94
- this._scheduleRender();
95
- }
96
- get placeholder() {
97
- return this._options.placeholder;
98
- }
99
- set helper(value) {
100
- this._options.helper = value;
101
- this._scheduleRender();
102
- }
103
- get helper() {
104
- return this._options.helper;
105
- }
106
- set error(value) {
107
- this._options.error = value;
108
- this._scheduleRender();
109
- }
110
- get error() {
111
- return this._options.error;
112
- }
113
- set size(value) {
114
- this._options.size = value;
115
- this._scheduleRender();
116
- }
117
- get size() {
118
- return this._options.size;
119
- }
120
- set state(value) {
121
- this._options.state = value;
122
- this._scheduleRender();
123
- }
124
- get state() {
125
- return this._options.state;
126
- }
127
- set required(value) {
128
- this._options.required = value;
129
- this._scheduleRender();
130
- }
131
- get required() {
132
- return this._options.required ?? false;
133
- }
134
- set disabled(value) {
135
- this._options.disabled = value;
136
- this._scheduleRender();
137
- }
138
- get disabled() {
139
- return this._options.disabled ?? false;
140
- }
141
- set multiple(value) {
142
- this._options.multiple = value;
143
- this._scheduleRender();
144
- }
145
- get multiple() {
146
- return this._options.multiple ?? false;
147
- }
148
- /**
149
- * Set select options (array of { value, label, disabled?, selected? })
150
- */
151
- set selectOptions(value) {
152
- this._selectOptions = value;
153
- this._scheduleRender();
154
- }
155
- get selectOptions() {
156
- return this._selectOptions;
157
- }
158
- // ============================================
159
- // Form Integration
160
- // ============================================
161
- connectedCallback() {
162
- super.connectedCallback();
163
- // Forward change events
164
- this.addEventListener('change', this._handleChange.bind(this));
165
- }
166
- _handleChange(e) {
167
- const selectEl = this.querySelector('select');
168
- if (selectEl && (e.target === selectEl || selectEl.contains(e.target))) {
169
- this.dispatchEvent(new CustomEvent('fmcp:change', {
170
- bubbles: true,
171
- detail: {
172
- value: selectEl.value,
173
- name: this._options.name,
174
- selectedOptions: Array.from(selectEl.selectedOptions).map((opt) => opt.value),
175
- },
176
- }));
177
- }
178
- }
179
- /**
180
- * Get current select value.
181
- */
182
- get value() {
183
- const selectEl = this.querySelector('select');
184
- return selectEl?.value ?? this._options.value ?? '';
185
- }
186
- /**
187
- * Set select value.
188
- */
189
- set value(val) {
190
- const selectEl = this.querySelector('select');
191
- if (selectEl) {
192
- selectEl.value = val;
193
- }
194
- this._options.value = val;
195
- }
196
- /**
197
- * Get selected options (for multiple select).
198
- */
199
- get selectedOptions() {
200
- const selectEl = this.querySelector('select');
201
- return selectEl ? Array.from(selectEl.selectedOptions).map((opt) => opt.value) : [];
202
- }
203
- /**
204
- * Get validity state.
205
- */
206
- get validity() {
207
- return this.querySelector('select')?.validity;
208
- }
209
- /**
210
- * Check validity.
211
- */
212
- checkValidity() {
213
- return this.querySelector('select')?.checkValidity() ?? true;
214
- }
215
- /**
216
- * Report validity.
217
- */
218
- reportValidity() {
219
- return this.querySelector('select')?.reportValidity() ?? true;
220
- }
221
- /**
222
- * Focus the select.
223
- */
224
- focus() {
225
- this.querySelector('select')?.focus();
226
- }
227
- /**
228
- * Blur the select.
229
- */
230
- blur() {
231
- this.querySelector('select')?.blur();
232
- }
233
- }
234
- exports.FmcpSelect = FmcpSelect;
235
- /**
236
- * Register the fmcp-select custom element.
237
- */
238
- function registerFmcpSelect() {
239
- if (typeof customElements !== 'undefined' && !customElements.get('fmcp-select')) {
240
- customElements.define('fmcp-select', FmcpSelect);
241
- }
242
- }
243
- //# sourceMappingURL=fmcp-select.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fmcp-select.js","sourceRoot":"","sources":["../../../../src/web-components/elements/fmcp-select.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @file fmcp-select.ts\n * @description FrontMCP Select Web Component.\n *\n * A custom element wrapper around the select() HTML function.\n *\n * @example Basic usage\n * ```html\n * <fmcp-select name=\"country\" label=\"Country\" placeholder=\"Select a country\">\n * </fmcp-select>\n * ```\n *\n * @example With options via property\n * ```tsx\n * const selectEl = document.querySelector('fmcp-select');\n * selectEl.selectOptions = [\n * { value: 'us', label: 'United States' },\n * { value: 'uk', label: 'United Kingdom' },\n * ];\n * ```\n *\n * @module @frontmcp/ui/web-components/elements/fmcp-select\n */\n\nimport { FmcpElement, type FmcpElementConfig, getObservedAttributesFromSchema } from '../core';\nimport { select, type SelectOptions } from '../../components/form';\nimport { SelectOptionsSchema, type SelectOptionItem } from '../../components/form.schema';\n\n/**\n * FmcpSelect Web Component\n */\nexport class FmcpSelect extends FmcpElement<SelectOptions> {\n protected readonly config: FmcpElementConfig<SelectOptions> = {\n name: 'select',\n schema: SelectOptionsSchema,\n defaults: {\n size: 'md',\n state: 'default',\n },\n };\n\n /** Select options stored separately since they're complex objects */\n private _selectOptions: SelectOptionItem[] = [];\n\n static get observedAttributes(): string[] {\n return [\n 'name',\n 'id',\n 'value',\n 'placeholder',\n 'label',\n 'helper',\n 'error',\n 'size',\n 'state',\n 'required',\n 'disabled',\n 'multiple',\n 'class',\n 'hx-get',\n 'hx-post',\n 'hx-target',\n 'hx-swap',\n 'hx-trigger',\n ];\n }\n\n protected renderHtml(options: SelectOptions, _content: string): string {\n // Merge stored select options\n const mergedOptions: SelectOptions = {\n ...options,\n options: this._selectOptions.length > 0 ? this._selectOptions : options.options,\n };\n return select(mergedOptions);\n }\n\n // ============================================\n // Property Setters\n // ============================================\n\n set name(value: string) {\n this._options.name = value;\n this._scheduleRender();\n }\n get name(): string {\n return this._options.name ?? '';\n }\n\n set label(value: string | undefined) {\n this._options.label = value;\n this._scheduleRender();\n }\n get label(): string | undefined {\n return this._options.label;\n }\n\n set placeholder(value: string | undefined) {\n this._options.placeholder = value;\n this._scheduleRender();\n }\n get placeholder(): string | undefined {\n return this._options.placeholder;\n }\n\n set helper(value: string | undefined) {\n this._options.helper = value;\n this._scheduleRender();\n }\n get helper(): string | undefined {\n return this._options.helper;\n }\n\n set error(value: string | undefined) {\n this._options.error = value;\n this._scheduleRender();\n }\n get error(): string | undefined {\n return this._options.error;\n }\n\n set size(value: SelectOptions['size']) {\n this._options.size = value;\n this._scheduleRender();\n }\n get size(): SelectOptions['size'] {\n return this._options.size;\n }\n\n set state(value: SelectOptions['state']) {\n this._options.state = value;\n this._scheduleRender();\n }\n get state(): SelectOptions['state'] {\n return this._options.state;\n }\n\n set required(value: boolean) {\n this._options.required = value;\n this._scheduleRender();\n }\n get required(): boolean {\n return this._options.required ?? false;\n }\n\n set disabled(value: boolean) {\n this._options.disabled = value;\n this._scheduleRender();\n }\n get disabled(): boolean {\n return this._options.disabled ?? false;\n }\n\n set multiple(value: boolean) {\n this._options.multiple = value;\n this._scheduleRender();\n }\n get multiple(): boolean {\n return this._options.multiple ?? false;\n }\n\n /**\n * Set select options (array of { value, label, disabled?, selected? })\n */\n set selectOptions(value: SelectOptionItem[]) {\n this._selectOptions = value;\n this._scheduleRender();\n }\n get selectOptions(): SelectOptionItem[] {\n return this._selectOptions;\n }\n\n // ============================================\n // Form Integration\n // ============================================\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n // Forward change events\n this.addEventListener('change', this._handleChange.bind(this));\n }\n\n private _handleChange(e: Event): void {\n const selectEl = this.querySelector('select');\n if (selectEl && (e.target === selectEl || selectEl.contains(e.target as Node))) {\n this.dispatchEvent(\n new CustomEvent('fmcp:change', {\n bubbles: true,\n detail: {\n value: selectEl.value,\n name: this._options.name,\n selectedOptions: Array.from(selectEl.selectedOptions).map((opt) => opt.value),\n },\n }),\n );\n }\n }\n\n /**\n * Get current select value.\n */\n get value(): string {\n const selectEl = this.querySelector('select');\n return selectEl?.value ?? this._options.value ?? '';\n }\n\n /**\n * Set select value.\n */\n set value(val: string) {\n const selectEl = this.querySelector('select');\n if (selectEl) {\n selectEl.value = val;\n }\n this._options.value = val;\n }\n\n /**\n * Get selected options (for multiple select).\n */\n get selectedOptions(): string[] {\n const selectEl = this.querySelector('select');\n return selectEl ? Array.from(selectEl.selectedOptions).map((opt) => opt.value) : [];\n }\n\n /**\n * Get validity state.\n */\n get validity(): ValidityState | undefined {\n return this.querySelector('select')?.validity;\n }\n\n /**\n * Check validity.\n */\n checkValidity(): boolean {\n return this.querySelector('select')?.checkValidity() ?? true;\n }\n\n /**\n * Report validity.\n */\n reportValidity(): boolean {\n return this.querySelector('select')?.reportValidity() ?? true;\n }\n\n /**\n * Focus the select.\n */\n override focus(): void {\n this.querySelector('select')?.focus();\n }\n\n /**\n * Blur the select.\n */\n override blur(): void {\n this.querySelector('select')?.blur();\n }\n}\n\n/**\n * Register the fmcp-select custom element.\n */\nexport function registerFmcpSelect(): void {\n if (typeof customElements !== 'undefined' && !customElements.get('fmcp-select')) {\n customElements.define('fmcp-select', FmcpSelect);\n }\n}\n"]}
@@ -1,12 +0,0 @@
1
- /**
2
- * @file elements/index.ts
3
- * @description Barrel exports for FrontMCP Web Component elements.
4
- *
5
- * @module @frontmcp/ui/web-components/elements
6
- */
7
- export { FmcpButton, registerFmcpButton } from './fmcp-button';
8
- export { FmcpCard, registerFmcpCard } from './fmcp-card';
9
- export { FmcpAlert, registerFmcpAlert } from './fmcp-alert';
10
- export { FmcpBadge, registerFmcpBadge } from './fmcp-badge';
11
- export { FmcpInput, registerFmcpInput } from './fmcp-input';
12
- export { FmcpSelect, registerFmcpSelect } from './fmcp-select';