@frontmcp/ui 0.5.1 → 0.6.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 (1134) hide show
  1. package/adapters/index.d.ts +13 -0
  2. package/adapters/index.d.ts.map +1 -0
  3. package/adapters/index.js +462 -0
  4. package/adapters/platform-meta.d.ts +166 -0
  5. package/adapters/platform-meta.d.ts.map +1 -0
  6. package/adapters/response-builder.d.ts +108 -0
  7. package/adapters/response-builder.d.ts.map +1 -0
  8. package/adapters/serving-mode.d.ts +107 -0
  9. package/adapters/serving-mode.d.ts.map +1 -0
  10. package/base-template/bridge.d.ts +90 -0
  11. package/base-template/bridge.d.ts.map +1 -0
  12. package/base-template/default-base-template.d.ts +92 -0
  13. package/base-template/default-base-template.d.ts.map +1 -0
  14. package/base-template/index.d.ts +15 -0
  15. package/base-template/index.d.ts.map +1 -0
  16. package/base-template/index.js +1398 -0
  17. package/base-template/polyfills.d.ts +31 -0
  18. package/base-template/polyfills.d.ts.map +1 -0
  19. package/base-template/theme-styles.d.ts +74 -0
  20. package/base-template/theme-styles.d.ts.map +1 -0
  21. package/bridge/adapters/base-adapter.d.ts +104 -0
  22. package/bridge/adapters/base-adapter.d.ts.map +1 -0
  23. package/bridge/adapters/claude.adapter.d.ts +67 -0
  24. package/bridge/adapters/claude.adapter.d.ts.map +1 -0
  25. package/bridge/adapters/ext-apps.adapter.d.ts +143 -0
  26. package/bridge/adapters/ext-apps.adapter.d.ts.map +1 -0
  27. package/bridge/adapters/gemini.adapter.d.ts +64 -0
  28. package/bridge/adapters/gemini.adapter.d.ts.map +1 -0
  29. package/bridge/adapters/generic.adapter.d.ts +56 -0
  30. package/bridge/adapters/generic.adapter.d.ts.map +1 -0
  31. package/bridge/adapters/index.d.ts +26 -0
  32. package/bridge/adapters/index.d.ts.map +1 -0
  33. package/bridge/adapters/openai.adapter.d.ts +65 -0
  34. package/bridge/adapters/openai.adapter.d.ts.map +1 -0
  35. package/bridge/core/adapter-registry.d.ts +122 -0
  36. package/bridge/core/adapter-registry.d.ts.map +1 -0
  37. package/bridge/core/bridge-factory.d.ts +199 -0
  38. package/bridge/core/bridge-factory.d.ts.map +1 -0
  39. package/bridge/core/index.d.ts +10 -0
  40. package/bridge/core/index.d.ts.map +1 -0
  41. package/bridge/index.d.ts +62 -0
  42. package/bridge/index.d.ts.map +1 -0
  43. package/bridge/index.js +2540 -0
  44. package/bridge/runtime/iife-generator.d.ts +62 -0
  45. package/bridge/runtime/iife-generator.d.ts.map +1 -0
  46. package/bridge/runtime/index.d.ts +9 -0
  47. package/bridge/runtime/index.d.ts.map +1 -0
  48. package/bridge/types.d.ts +386 -0
  49. package/bridge/types.d.ts.map +1 -0
  50. package/build/cdn-resources.d.ts +243 -0
  51. package/build/cdn-resources.d.ts.map +1 -0
  52. package/build/index.d.ts +295 -0
  53. package/build/index.d.ts.map +1 -0
  54. package/build/index.js +7096 -0
  55. package/build/widget-manifest.d.ts +362 -0
  56. package/build/widget-manifest.d.ts.map +1 -0
  57. package/bundler/bundler.d.ts +208 -0
  58. package/bundler/bundler.d.ts.map +1 -0
  59. package/bundler/cache.d.ts +173 -0
  60. package/bundler/cache.d.ts.map +1 -0
  61. package/bundler/file-cache/component-builder.d.ts +167 -0
  62. package/bundler/file-cache/component-builder.d.ts.map +1 -0
  63. package/bundler/file-cache/hash-calculator.d.ts +155 -0
  64. package/bundler/file-cache/hash-calculator.d.ts.map +1 -0
  65. package/bundler/file-cache/index.d.ts +12 -0
  66. package/bundler/file-cache/index.d.ts.map +1 -0
  67. package/bundler/file-cache/storage/filesystem.d.ts +149 -0
  68. package/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
  69. package/bundler/file-cache/storage/index.d.ts +11 -0
  70. package/bundler/file-cache/storage/index.d.ts.map +1 -0
  71. package/bundler/file-cache/storage/interface.d.ts +152 -0
  72. package/bundler/file-cache/storage/interface.d.ts.map +1 -0
  73. package/bundler/file-cache/storage/redis.d.ts +139 -0
  74. package/bundler/file-cache/storage/redis.d.ts.map +1 -0
  75. package/bundler/index.d.ts +43 -0
  76. package/bundler/index.d.ts.map +1 -0
  77. package/bundler/index.js +4754 -0
  78. package/bundler/sandbox/enclave-adapter.d.ts +121 -0
  79. package/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
  80. package/bundler/sandbox/executor.d.ts +14 -0
  81. package/bundler/sandbox/executor.d.ts.map +1 -0
  82. package/bundler/sandbox/policy.d.ts +62 -0
  83. package/bundler/sandbox/policy.d.ts.map +1 -0
  84. package/bundler/types.d.ts +702 -0
  85. package/bundler/types.d.ts.map +1 -0
  86. package/components/alert.d.ts +66 -0
  87. package/components/alert.d.ts.map +1 -0
  88. package/components/alert.schema.d.ts +98 -0
  89. package/components/alert.schema.d.ts.map +1 -0
  90. package/components/avatar.d.ts +77 -0
  91. package/components/avatar.d.ts.map +1 -0
  92. package/components/avatar.schema.d.ts +170 -0
  93. package/components/avatar.schema.d.ts.map +1 -0
  94. package/components/badge.d.ts +64 -0
  95. package/components/badge.d.ts.map +1 -0
  96. package/components/badge.schema.d.ts +91 -0
  97. package/components/badge.schema.d.ts.map +1 -0
  98. package/components/button.d.ts +100 -0
  99. package/components/button.d.ts.map +1 -0
  100. package/components/button.schema.d.ts +120 -0
  101. package/components/button.schema.d.ts.map +1 -0
  102. package/components/card.d.ts +53 -0
  103. package/components/card.d.ts.map +1 -0
  104. package/components/card.schema.d.ts +93 -0
  105. package/components/card.schema.d.ts.map +1 -0
  106. package/components/form.d.ts +212 -0
  107. package/components/form.d.ts.map +1 -0
  108. package/components/form.schema.d.ts +365 -0
  109. package/components/form.schema.d.ts.map +1 -0
  110. package/components/index.d.ts +29 -0
  111. package/components/index.d.ts.map +1 -0
  112. package/components/index.js +2595 -0
  113. package/components/list.d.ts +121 -0
  114. package/components/list.d.ts.map +1 -0
  115. package/components/list.schema.d.ts +129 -0
  116. package/components/list.schema.d.ts.map +1 -0
  117. package/components/modal.d.ts +100 -0
  118. package/components/modal.d.ts.map +1 -0
  119. package/components/modal.schema.d.ts +151 -0
  120. package/components/modal.schema.d.ts.map +1 -0
  121. package/components/table.d.ts +91 -0
  122. package/components/table.d.ts.map +1 -0
  123. package/components/table.schema.d.ts +123 -0
  124. package/components/table.schema.d.ts.map +1 -0
  125. package/dependency/cdn-registry.d.ts +98 -0
  126. package/dependency/cdn-registry.d.ts.map +1 -0
  127. package/dependency/import-map.d.ts +186 -0
  128. package/dependency/import-map.d.ts.map +1 -0
  129. package/dependency/import-parser.d.ts +82 -0
  130. package/dependency/import-parser.d.ts.map +1 -0
  131. package/dependency/index.d.ts +17 -0
  132. package/dependency/index.d.ts.map +1 -0
  133. package/dependency/resolver.d.ts +164 -0
  134. package/dependency/resolver.d.ts.map +1 -0
  135. package/dependency/schemas.d.ts +486 -0
  136. package/dependency/schemas.d.ts.map +1 -0
  137. package/dependency/template-loader.d.ts +204 -0
  138. package/dependency/template-loader.d.ts.map +1 -0
  139. package/dependency/template-processor.d.ts +118 -0
  140. package/dependency/template-processor.d.ts.map +1 -0
  141. package/dependency/types.d.ts +739 -0
  142. package/dependency/types.d.ts.map +1 -0
  143. package/esm/adapters/index.d.ts +13 -0
  144. package/esm/adapters/index.d.ts.map +1 -0
  145. package/esm/adapters/index.js +427 -0
  146. package/esm/adapters/platform-meta.d.ts +166 -0
  147. package/esm/adapters/platform-meta.d.ts.map +1 -0
  148. package/esm/adapters/response-builder.d.ts +108 -0
  149. package/esm/adapters/response-builder.d.ts.map +1 -0
  150. package/esm/adapters/serving-mode.d.ts +107 -0
  151. package/esm/adapters/serving-mode.d.ts.map +1 -0
  152. package/esm/base-template/bridge.d.ts +90 -0
  153. package/esm/base-template/bridge.d.ts.map +1 -0
  154. package/esm/base-template/default-base-template.d.ts +92 -0
  155. package/esm/base-template/default-base-template.d.ts.map +1 -0
  156. package/esm/base-template/index.d.ts +15 -0
  157. package/esm/base-template/index.d.ts.map +1 -0
  158. package/esm/base-template/index.js +1364 -0
  159. package/esm/base-template/polyfills.d.ts +31 -0
  160. package/esm/base-template/polyfills.d.ts.map +1 -0
  161. package/esm/base-template/theme-styles.d.ts +74 -0
  162. package/esm/base-template/theme-styles.d.ts.map +1 -0
  163. package/esm/bridge/adapters/base-adapter.d.ts +104 -0
  164. package/esm/bridge/adapters/base-adapter.d.ts.map +1 -0
  165. package/esm/bridge/adapters/claude.adapter.d.ts +67 -0
  166. package/esm/bridge/adapters/claude.adapter.d.ts.map +1 -0
  167. package/esm/bridge/adapters/ext-apps.adapter.d.ts +143 -0
  168. package/esm/bridge/adapters/ext-apps.adapter.d.ts.map +1 -0
  169. package/esm/bridge/adapters/gemini.adapter.d.ts +64 -0
  170. package/esm/bridge/adapters/gemini.adapter.d.ts.map +1 -0
  171. package/esm/bridge/adapters/generic.adapter.d.ts +56 -0
  172. package/esm/bridge/adapters/generic.adapter.d.ts.map +1 -0
  173. package/esm/bridge/adapters/index.d.ts +26 -0
  174. package/esm/bridge/adapters/index.d.ts.map +1 -0
  175. package/esm/bridge/adapters/openai.adapter.d.ts +65 -0
  176. package/esm/bridge/adapters/openai.adapter.d.ts.map +1 -0
  177. package/esm/bridge/core/adapter-registry.d.ts +122 -0
  178. package/esm/bridge/core/adapter-registry.d.ts.map +1 -0
  179. package/esm/bridge/core/bridge-factory.d.ts +199 -0
  180. package/esm/bridge/core/bridge-factory.d.ts.map +1 -0
  181. package/esm/bridge/core/index.d.ts +10 -0
  182. package/esm/bridge/core/index.d.ts.map +1 -0
  183. package/esm/bridge/index.d.ts +62 -0
  184. package/esm/bridge/index.d.ts.map +1 -0
  185. package/esm/bridge/index.js +2487 -0
  186. package/esm/bridge/runtime/iife-generator.d.ts +62 -0
  187. package/esm/bridge/runtime/iife-generator.d.ts.map +1 -0
  188. package/esm/bridge/runtime/index.d.ts +9 -0
  189. package/esm/bridge/runtime/index.d.ts.map +1 -0
  190. package/esm/bridge/types.d.ts +386 -0
  191. package/esm/bridge/types.d.ts.map +1 -0
  192. package/esm/build/cdn-resources.d.ts +243 -0
  193. package/esm/build/cdn-resources.d.ts.map +1 -0
  194. package/esm/build/index.d.ts +295 -0
  195. package/esm/build/index.d.ts.map +1 -0
  196. package/esm/build/index.js +7021 -0
  197. package/esm/build/widget-manifest.d.ts +362 -0
  198. package/esm/build/widget-manifest.d.ts.map +1 -0
  199. package/esm/bundler/bundler.d.ts +208 -0
  200. package/esm/bundler/bundler.d.ts.map +1 -0
  201. package/esm/bundler/cache.d.ts +173 -0
  202. package/esm/bundler/cache.d.ts.map +1 -0
  203. package/esm/bundler/file-cache/component-builder.d.ts +167 -0
  204. package/esm/bundler/file-cache/component-builder.d.ts.map +1 -0
  205. package/esm/bundler/file-cache/hash-calculator.d.ts +155 -0
  206. package/esm/bundler/file-cache/hash-calculator.d.ts.map +1 -0
  207. package/esm/bundler/file-cache/index.d.ts +12 -0
  208. package/esm/bundler/file-cache/index.d.ts.map +1 -0
  209. package/esm/bundler/file-cache/storage/filesystem.d.ts +149 -0
  210. package/esm/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
  211. package/esm/bundler/file-cache/storage/index.d.ts +11 -0
  212. package/esm/bundler/file-cache/storage/index.d.ts.map +1 -0
  213. package/esm/bundler/file-cache/storage/interface.d.ts +152 -0
  214. package/esm/bundler/file-cache/storage/interface.d.ts.map +1 -0
  215. package/esm/bundler/file-cache/storage/redis.d.ts +139 -0
  216. package/esm/bundler/file-cache/storage/redis.d.ts.map +1 -0
  217. package/esm/bundler/index.d.ts +43 -0
  218. package/esm/bundler/index.d.ts.map +1 -0
  219. package/esm/bundler/index.js +4687 -0
  220. package/esm/bundler/sandbox/enclave-adapter.d.ts +121 -0
  221. package/esm/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
  222. package/esm/bundler/sandbox/executor.d.ts +14 -0
  223. package/esm/bundler/sandbox/executor.d.ts.map +1 -0
  224. package/esm/bundler/sandbox/policy.d.ts +62 -0
  225. package/esm/bundler/sandbox/policy.d.ts.map +1 -0
  226. package/esm/bundler/types.d.ts +702 -0
  227. package/esm/bundler/types.d.ts.map +1 -0
  228. package/esm/components/alert.d.ts +66 -0
  229. package/esm/components/alert.d.ts.map +1 -0
  230. package/esm/components/alert.schema.d.ts +98 -0
  231. package/esm/components/alert.schema.d.ts.map +1 -0
  232. package/esm/components/avatar.d.ts +77 -0
  233. package/esm/components/avatar.d.ts.map +1 -0
  234. package/esm/components/avatar.schema.d.ts +170 -0
  235. package/esm/components/avatar.schema.d.ts.map +1 -0
  236. package/esm/components/badge.d.ts +64 -0
  237. package/esm/components/badge.d.ts.map +1 -0
  238. package/esm/components/badge.schema.d.ts +91 -0
  239. package/esm/components/badge.schema.d.ts.map +1 -0
  240. package/esm/components/button.d.ts +100 -0
  241. package/esm/components/button.d.ts.map +1 -0
  242. package/esm/components/button.schema.d.ts +120 -0
  243. package/esm/components/button.schema.d.ts.map +1 -0
  244. package/esm/components/card.d.ts +53 -0
  245. package/esm/components/card.d.ts.map +1 -0
  246. package/esm/components/card.schema.d.ts +93 -0
  247. package/esm/components/card.schema.d.ts.map +1 -0
  248. package/esm/components/form.d.ts +212 -0
  249. package/esm/components/form.d.ts.map +1 -0
  250. package/esm/components/form.schema.d.ts +365 -0
  251. package/esm/components/form.schema.d.ts.map +1 -0
  252. package/esm/components/index.d.ts +29 -0
  253. package/esm/components/index.d.ts.map +1 -0
  254. package/esm/components/index.js +2456 -0
  255. package/esm/components/list.d.ts +121 -0
  256. package/esm/components/list.d.ts.map +1 -0
  257. package/esm/components/list.schema.d.ts +129 -0
  258. package/esm/components/list.schema.d.ts.map +1 -0
  259. package/esm/components/modal.d.ts +100 -0
  260. package/esm/components/modal.d.ts.map +1 -0
  261. package/esm/components/modal.schema.d.ts +151 -0
  262. package/esm/components/modal.schema.d.ts.map +1 -0
  263. package/esm/components/table.d.ts +91 -0
  264. package/esm/components/table.d.ts.map +1 -0
  265. package/esm/components/table.schema.d.ts +123 -0
  266. package/esm/components/table.schema.d.ts.map +1 -0
  267. package/esm/dependency/cdn-registry.d.ts +98 -0
  268. package/esm/dependency/cdn-registry.d.ts.map +1 -0
  269. package/esm/dependency/import-map.d.ts +186 -0
  270. package/esm/dependency/import-map.d.ts.map +1 -0
  271. package/esm/dependency/import-parser.d.ts +82 -0
  272. package/esm/dependency/import-parser.d.ts.map +1 -0
  273. package/esm/dependency/index.d.ts +17 -0
  274. package/esm/dependency/index.d.ts.map +1 -0
  275. package/esm/dependency/resolver.d.ts +164 -0
  276. package/esm/dependency/resolver.d.ts.map +1 -0
  277. package/esm/dependency/schemas.d.ts +486 -0
  278. package/esm/dependency/schemas.d.ts.map +1 -0
  279. package/esm/dependency/template-loader.d.ts +204 -0
  280. package/esm/dependency/template-loader.d.ts.map +1 -0
  281. package/esm/dependency/template-processor.d.ts +118 -0
  282. package/esm/dependency/template-processor.d.ts.map +1 -0
  283. package/esm/dependency/types.d.ts +739 -0
  284. package/esm/dependency/types.d.ts.map +1 -0
  285. package/esm/handlebars/expression-extractor.d.ts +147 -0
  286. package/esm/handlebars/expression-extractor.d.ts.map +1 -0
  287. package/esm/handlebars/helpers.d.ts +339 -0
  288. package/esm/handlebars/helpers.d.ts.map +1 -0
  289. package/esm/handlebars/index.d.ts +195 -0
  290. package/esm/handlebars/index.d.ts.map +1 -0
  291. package/esm/handlebars/index.js +587 -0
  292. package/esm/index.d.ts +56 -0
  293. package/esm/index.d.ts.map +1 -0
  294. package/esm/index.js +20511 -0
  295. package/esm/layouts/base.d.ts +86 -0
  296. package/esm/layouts/base.d.ts.map +1 -0
  297. package/esm/layouts/index.d.ts +8 -0
  298. package/esm/layouts/index.d.ts.map +1 -0
  299. package/esm/layouts/index.js +892 -0
  300. package/esm/layouts/presets.d.ts +134 -0
  301. package/esm/layouts/presets.d.ts.map +1 -0
  302. package/esm/package.json +90 -0
  303. package/esm/pages/consent.d.ts +117 -0
  304. package/esm/pages/consent.d.ts.map +1 -0
  305. package/esm/pages/error.d.ts +101 -0
  306. package/esm/pages/error.d.ts.map +1 -0
  307. package/esm/pages/index.d.ts +9 -0
  308. package/esm/pages/index.d.ts.map +1 -0
  309. package/esm/pages/index.js +1563 -0
  310. package/esm/react/Alert.d.ts +102 -0
  311. package/esm/react/Alert.d.ts.map +1 -0
  312. package/esm/react/Badge.d.ts +101 -0
  313. package/esm/react/Badge.d.ts.map +1 -0
  314. package/esm/react/Button.d.ts +109 -0
  315. package/esm/react/Button.d.ts.map +1 -0
  316. package/esm/react/Card.d.ts +104 -0
  317. package/esm/react/Card.d.ts.map +1 -0
  318. package/esm/react/hooks/context.d.ts +179 -0
  319. package/esm/react/hooks/context.d.ts.map +1 -0
  320. package/esm/react/hooks/index.d.ts +42 -0
  321. package/esm/react/hooks/index.d.ts.map +1 -0
  322. package/esm/react/hooks/tools.d.ts +284 -0
  323. package/esm/react/hooks/tools.d.ts.map +1 -0
  324. package/esm/react/index.d.ts +81 -0
  325. package/esm/react/index.d.ts.map +1 -0
  326. package/esm/react/index.js +1372 -0
  327. package/esm/react/types.d.ts +106 -0
  328. package/esm/react/types.d.ts.map +1 -0
  329. package/esm/react/utils.d.ts +43 -0
  330. package/esm/react/utils.d.ts.map +1 -0
  331. package/esm/registry/index.d.ts +46 -0
  332. package/esm/registry/index.d.ts.map +1 -0
  333. package/esm/registry/index.js +6422 -0
  334. package/esm/registry/render-template.d.ts +91 -0
  335. package/esm/registry/render-template.d.ts.map +1 -0
  336. package/esm/registry/tool-ui.registry.d.ts +294 -0
  337. package/esm/registry/tool-ui.registry.d.ts.map +1 -0
  338. package/esm/registry/uri-utils.d.ts +56 -0
  339. package/esm/registry/uri-utils.d.ts.map +1 -0
  340. package/esm/render/index.d.ts +8 -0
  341. package/esm/render/index.d.ts.map +1 -0
  342. package/esm/render/index.js +45 -0
  343. package/esm/render/prerender.d.ts +57 -0
  344. package/esm/render/prerender.d.ts.map +1 -0
  345. package/esm/renderers/cache.d.ts +145 -0
  346. package/esm/renderers/cache.d.ts.map +1 -0
  347. package/esm/renderers/html.renderer.d.ts +123 -0
  348. package/esm/renderers/html.renderer.d.ts.map +1 -0
  349. package/esm/renderers/index.d.ts +36 -0
  350. package/esm/renderers/index.d.ts.map +1 -0
  351. package/esm/renderers/index.js +1827 -0
  352. package/esm/renderers/mdx.renderer.d.ts +120 -0
  353. package/esm/renderers/mdx.renderer.d.ts.map +1 -0
  354. package/esm/renderers/react.renderer.d.ts +96 -0
  355. package/esm/renderers/react.renderer.d.ts.map +1 -0
  356. package/esm/renderers/registry.d.ts +134 -0
  357. package/esm/renderers/registry.d.ts.map +1 -0
  358. package/esm/renderers/types.d.ts +342 -0
  359. package/esm/renderers/types.d.ts.map +1 -0
  360. package/esm/renderers/utils/detect.d.ts +107 -0
  361. package/esm/renderers/utils/detect.d.ts.map +1 -0
  362. package/esm/renderers/utils/hash.d.ts +40 -0
  363. package/esm/renderers/utils/hash.d.ts.map +1 -0
  364. package/esm/renderers/utils/index.d.ts +9 -0
  365. package/esm/renderers/utils/index.d.ts.map +1 -0
  366. package/esm/renderers/utils/transpiler.d.ts +89 -0
  367. package/esm/renderers/utils/transpiler.d.ts.map +1 -0
  368. package/esm/runtime/adapters/html.adapter.d.ts +59 -0
  369. package/esm/runtime/adapters/html.adapter.d.ts.map +1 -0
  370. package/esm/runtime/adapters/index.d.ts +26 -0
  371. package/esm/runtime/adapters/index.d.ts.map +1 -0
  372. package/esm/runtime/adapters/mdx.adapter.d.ts +73 -0
  373. package/esm/runtime/adapters/mdx.adapter.d.ts.map +1 -0
  374. package/esm/runtime/adapters/react.adapter.d.ts +70 -0
  375. package/esm/runtime/adapters/react.adapter.d.ts.map +1 -0
  376. package/esm/runtime/adapters/types.d.ts +95 -0
  377. package/esm/runtime/adapters/types.d.ts.map +1 -0
  378. package/esm/runtime/csp.d.ts +48 -0
  379. package/esm/runtime/csp.d.ts.map +1 -0
  380. package/esm/runtime/index.d.ts +17 -0
  381. package/esm/runtime/index.d.ts.map +1 -0
  382. package/esm/runtime/index.js +5186 -0
  383. package/esm/runtime/mcp-bridge.d.ts +101 -0
  384. package/esm/runtime/mcp-bridge.d.ts.map +1 -0
  385. package/esm/runtime/renderer-runtime.d.ts +133 -0
  386. package/esm/runtime/renderer-runtime.d.ts.map +1 -0
  387. package/esm/runtime/sanitizer.d.ts +172 -0
  388. package/esm/runtime/sanitizer.d.ts.map +1 -0
  389. package/esm/runtime/types.d.ts +415 -0
  390. package/esm/runtime/types.d.ts.map +1 -0
  391. package/esm/runtime/wrapper.d.ts +421 -0
  392. package/esm/runtime/wrapper.d.ts.map +1 -0
  393. package/esm/styles/index.d.ts +8 -0
  394. package/esm/styles/index.d.ts.map +1 -0
  395. package/esm/styles/index.js +171 -0
  396. package/esm/styles/variants.d.ts +51 -0
  397. package/esm/styles/variants.d.ts.map +1 -0
  398. package/esm/theme/cdn.d.ts +195 -0
  399. package/esm/theme/cdn.d.ts.map +1 -0
  400. package/esm/theme/index.d.ts +18 -0
  401. package/esm/theme/index.d.ts.map +1 -0
  402. package/esm/theme/index.js +700 -0
  403. package/esm/theme/platforms.d.ts +107 -0
  404. package/esm/theme/platforms.d.ts.map +1 -0
  405. package/esm/theme/presets/github-openai.d.ts +50 -0
  406. package/esm/theme/presets/github-openai.d.ts.map +1 -0
  407. package/esm/theme/presets/index.d.ts +11 -0
  408. package/esm/theme/presets/index.d.ts.map +1 -0
  409. package/esm/theme/theme.d.ts +396 -0
  410. package/esm/theme/theme.d.ts.map +1 -0
  411. package/esm/tool-template/builder.d.ts +213 -0
  412. package/esm/tool-template/builder.d.ts.map +1 -0
  413. package/esm/tool-template/index.d.ts +16 -0
  414. package/esm/tool-template/index.d.ts.map +1 -0
  415. package/esm/tool-template/index.js +3515 -0
  416. package/esm/types/index.d.ts +14 -0
  417. package/esm/types/index.d.ts.map +1 -0
  418. package/esm/types/index.js +75 -0
  419. package/esm/types/ui-config.d.ts +639 -0
  420. package/esm/types/ui-config.d.ts.map +1 -0
  421. package/esm/types/ui-runtime.d.ts +1007 -0
  422. package/esm/types/ui-runtime.d.ts.map +1 -0
  423. package/esm/typings/cache/cache-adapter.d.ts +125 -0
  424. package/esm/typings/cache/cache-adapter.d.ts.map +1 -0
  425. package/esm/typings/cache/index.d.ts +10 -0
  426. package/esm/typings/cache/index.d.ts.map +1 -0
  427. package/esm/typings/cache/memory-cache.d.ts +92 -0
  428. package/esm/typings/cache/memory-cache.d.ts.map +1 -0
  429. package/esm/typings/dts-parser.d.ts +90 -0
  430. package/esm/typings/dts-parser.d.ts.map +1 -0
  431. package/esm/typings/index.d.ts +48 -0
  432. package/esm/typings/index.d.ts.map +1 -0
  433. package/esm/typings/schemas.d.ts +232 -0
  434. package/esm/typings/schemas.d.ts.map +1 -0
  435. package/esm/typings/type-fetcher.d.ts +89 -0
  436. package/esm/typings/type-fetcher.d.ts.map +1 -0
  437. package/esm/typings/types.d.ts +320 -0
  438. package/esm/typings/types.d.ts.map +1 -0
  439. package/esm/universal/UniversalApp.d.ts +108 -0
  440. package/esm/universal/UniversalApp.d.ts.map +1 -0
  441. package/esm/universal/cached-runtime.d.ts +115 -0
  442. package/esm/universal/cached-runtime.d.ts.map +1 -0
  443. package/esm/universal/context.d.ts +122 -0
  444. package/esm/universal/context.d.ts.map +1 -0
  445. package/esm/universal/index.d.ts +57 -0
  446. package/esm/universal/index.d.ts.map +1 -0
  447. package/esm/universal/renderers/html.renderer.d.ts +37 -0
  448. package/esm/universal/renderers/html.renderer.d.ts.map +1 -0
  449. package/esm/universal/renderers/index.d.ts +112 -0
  450. package/esm/universal/renderers/index.d.ts.map +1 -0
  451. package/esm/universal/renderers/markdown.renderer.d.ts +33 -0
  452. package/esm/universal/renderers/markdown.renderer.d.ts.map +1 -0
  453. package/esm/universal/renderers/mdx.renderer.d.ts +38 -0
  454. package/esm/universal/renderers/mdx.renderer.d.ts.map +1 -0
  455. package/esm/universal/renderers/react.renderer.d.ts +46 -0
  456. package/esm/universal/renderers/react.renderer.d.ts.map +1 -0
  457. package/esm/universal/runtime-builder.d.ts +33 -0
  458. package/esm/universal/runtime-builder.d.ts.map +1 -0
  459. package/esm/universal/store.d.ts +135 -0
  460. package/esm/universal/store.d.ts.map +1 -0
  461. package/esm/universal/types.d.ts +199 -0
  462. package/esm/universal/types.d.ts.map +1 -0
  463. package/esm/utils/escape-html.d.ts +58 -0
  464. package/esm/utils/escape-html.d.ts.map +1 -0
  465. package/esm/utils/index.d.ts +10 -0
  466. package/esm/utils/index.d.ts.map +1 -0
  467. package/esm/utils/index.js +40 -0
  468. package/esm/utils/safe-stringify.d.ts +30 -0
  469. package/esm/utils/safe-stringify.d.ts.map +1 -0
  470. package/esm/validation/error-box.d.ts +56 -0
  471. package/esm/validation/error-box.d.ts.map +1 -0
  472. package/esm/validation/index.d.ts +13 -0
  473. package/esm/validation/index.d.ts.map +1 -0
  474. package/esm/validation/index.js +562 -0
  475. package/esm/validation/schema-paths.d.ts +118 -0
  476. package/esm/validation/schema-paths.d.ts.map +1 -0
  477. package/esm/validation/template-validator.d.ts +143 -0
  478. package/esm/validation/template-validator.d.ts.map +1 -0
  479. package/esm/validation/wrapper.d.ts +97 -0
  480. package/esm/validation/wrapper.d.ts.map +1 -0
  481. package/esm/web-components/core/attribute-parser.d.ts +82 -0
  482. package/esm/web-components/core/attribute-parser.d.ts.map +1 -0
  483. package/esm/web-components/core/base-element.d.ts +197 -0
  484. package/esm/web-components/core/base-element.d.ts.map +1 -0
  485. package/esm/web-components/core/index.d.ts +9 -0
  486. package/esm/web-components/core/index.d.ts.map +1 -0
  487. package/esm/web-components/elements/fmcp-alert.d.ts +46 -0
  488. package/esm/web-components/elements/fmcp-alert.d.ts.map +1 -0
  489. package/esm/web-components/elements/fmcp-badge.d.ts +47 -0
  490. package/esm/web-components/elements/fmcp-badge.d.ts.map +1 -0
  491. package/esm/web-components/elements/fmcp-button.d.ts +117 -0
  492. package/esm/web-components/elements/fmcp-button.d.ts.map +1 -0
  493. package/esm/web-components/elements/fmcp-card.d.ts +53 -0
  494. package/esm/web-components/elements/fmcp-card.d.ts.map +1 -0
  495. package/esm/web-components/elements/fmcp-input.d.ts +96 -0
  496. package/esm/web-components/elements/fmcp-input.d.ts.map +1 -0
  497. package/esm/web-components/elements/fmcp-select.d.ts +100 -0
  498. package/esm/web-components/elements/fmcp-select.d.ts.map +1 -0
  499. package/esm/web-components/elements/index.d.ts +13 -0
  500. package/esm/web-components/elements/index.d.ts.map +1 -0
  501. package/esm/web-components/index.d.ts +50 -0
  502. package/esm/web-components/index.d.ts.map +1 -0
  503. package/esm/web-components/index.js +2048 -0
  504. package/esm/web-components/register.d.ts +57 -0
  505. package/esm/web-components/register.d.ts.map +1 -0
  506. package/esm/web-components/types.d.ts +122 -0
  507. package/esm/web-components/types.d.ts.map +1 -0
  508. package/esm/widgets/index.d.ts +8 -0
  509. package/esm/widgets/index.d.ts.map +1 -0
  510. package/esm/widgets/index.js +941 -0
  511. package/esm/widgets/progress.d.ts +133 -0
  512. package/esm/widgets/progress.d.ts.map +1 -0
  513. package/esm/widgets/resource.d.ts +163 -0
  514. package/esm/widgets/resource.d.ts.map +1 -0
  515. package/handlebars/expression-extractor.d.ts +147 -0
  516. package/handlebars/expression-extractor.d.ts.map +1 -0
  517. package/handlebars/helpers.d.ts +339 -0
  518. package/handlebars/helpers.d.ts.map +1 -0
  519. package/handlebars/index.d.ts +195 -0
  520. package/handlebars/index.d.ts.map +1 -0
  521. package/handlebars/index.js +666 -0
  522. package/index.d.ts +56 -0
  523. package/index.d.ts.map +1 -0
  524. package/index.js +20942 -0
  525. package/layouts/base.d.ts +86 -0
  526. package/layouts/base.d.ts.map +1 -0
  527. package/layouts/index.d.ts +8 -0
  528. package/layouts/index.d.ts.map +1 -0
  529. package/layouts/index.js +930 -0
  530. package/layouts/presets.d.ts +134 -0
  531. package/layouts/presets.d.ts.map +1 -0
  532. package/package.json +26 -85
  533. package/pages/consent.d.ts +117 -0
  534. package/pages/consent.d.ts.map +1 -0
  535. package/pages/error.d.ts +101 -0
  536. package/pages/error.d.ts.map +1 -0
  537. package/pages/index.d.ts +9 -0
  538. package/pages/index.d.ts.map +1 -0
  539. package/pages/index.js +1602 -0
  540. package/react/Alert.d.ts +102 -0
  541. package/react/Alert.d.ts.map +1 -0
  542. package/react/Badge.d.ts +101 -0
  543. package/react/Badge.d.ts.map +1 -0
  544. package/react/Button.d.ts +109 -0
  545. package/react/Button.d.ts.map +1 -0
  546. package/react/Card.d.ts +104 -0
  547. package/react/Card.d.ts.map +1 -0
  548. package/react/hooks/context.d.ts +179 -0
  549. package/react/hooks/context.d.ts.map +1 -0
  550. package/react/hooks/index.d.ts +42 -0
  551. package/react/hooks/index.d.ts.map +1 -0
  552. package/react/hooks/tools.d.ts +284 -0
  553. package/react/hooks/tools.d.ts.map +1 -0
  554. package/react/index.d.ts +81 -0
  555. package/react/index.d.ts.map +1 -0
  556. package/react/index.js +1430 -0
  557. package/react/types.d.ts +106 -0
  558. package/react/types.d.ts.map +1 -0
  559. package/react/utils.d.ts +43 -0
  560. package/react/utils.d.ts.map +1 -0
  561. package/registry/index.d.ts +46 -0
  562. package/registry/index.d.ts.map +1 -0
  563. package/registry/index.js +6465 -0
  564. package/registry/render-template.d.ts +91 -0
  565. package/registry/render-template.d.ts.map +1 -0
  566. package/registry/tool-ui.registry.d.ts +294 -0
  567. package/registry/tool-ui.registry.d.ts.map +1 -0
  568. package/registry/uri-utils.d.ts +56 -0
  569. package/registry/uri-utils.d.ts.map +1 -0
  570. package/render/index.d.ts +8 -0
  571. package/render/index.d.ts.map +1 -0
  572. package/render/index.js +77 -0
  573. package/render/prerender.d.ts +57 -0
  574. package/render/prerender.d.ts.map +1 -0
  575. package/renderers/cache.d.ts +145 -0
  576. package/renderers/cache.d.ts.map +1 -0
  577. package/renderers/html.renderer.d.ts +123 -0
  578. package/renderers/html.renderer.d.ts.map +1 -0
  579. package/renderers/index.d.ts +36 -0
  580. package/renderers/index.d.ts.map +1 -0
  581. package/renderers/index.js +1882 -0
  582. package/renderers/mdx.renderer.d.ts +120 -0
  583. package/renderers/mdx.renderer.d.ts.map +1 -0
  584. package/renderers/react.renderer.d.ts +96 -0
  585. package/renderers/react.renderer.d.ts.map +1 -0
  586. package/renderers/registry.d.ts +134 -0
  587. package/renderers/registry.d.ts.map +1 -0
  588. package/renderers/types.d.ts +342 -0
  589. package/renderers/types.d.ts.map +1 -0
  590. package/renderers/utils/detect.d.ts +107 -0
  591. package/renderers/utils/detect.d.ts.map +1 -0
  592. package/renderers/utils/hash.d.ts +40 -0
  593. package/renderers/utils/hash.d.ts.map +1 -0
  594. package/renderers/utils/index.d.ts +9 -0
  595. package/renderers/utils/index.d.ts.map +1 -0
  596. package/renderers/utils/transpiler.d.ts +89 -0
  597. package/renderers/utils/transpiler.d.ts.map +1 -0
  598. package/runtime/adapters/html.adapter.d.ts +59 -0
  599. package/runtime/adapters/html.adapter.d.ts.map +1 -0
  600. package/runtime/adapters/index.d.ts +26 -0
  601. package/runtime/adapters/index.d.ts.map +1 -0
  602. package/runtime/adapters/mdx.adapter.d.ts +73 -0
  603. package/runtime/adapters/mdx.adapter.d.ts.map +1 -0
  604. package/runtime/adapters/react.adapter.d.ts +70 -0
  605. package/runtime/adapters/react.adapter.d.ts.map +1 -0
  606. package/runtime/adapters/types.d.ts +95 -0
  607. package/runtime/adapters/types.d.ts.map +1 -0
  608. package/runtime/csp.d.ts +48 -0
  609. package/runtime/csp.d.ts.map +1 -0
  610. package/runtime/index.d.ts +17 -0
  611. package/runtime/index.d.ts.map +1 -0
  612. package/runtime/index.js +5264 -0
  613. package/runtime/mcp-bridge.d.ts +101 -0
  614. package/runtime/mcp-bridge.d.ts.map +1 -0
  615. package/runtime/renderer-runtime.d.ts +133 -0
  616. package/runtime/renderer-runtime.d.ts.map +1 -0
  617. package/runtime/sanitizer.d.ts +172 -0
  618. package/runtime/sanitizer.d.ts.map +1 -0
  619. package/runtime/types.d.ts +415 -0
  620. package/runtime/types.d.ts.map +1 -0
  621. package/runtime/wrapper.d.ts +421 -0
  622. package/runtime/wrapper.d.ts.map +1 -0
  623. package/styles/index.d.ts +8 -0
  624. package/styles/index.d.ts.map +1 -0
  625. package/styles/index.js +222 -0
  626. package/styles/variants.d.ts +51 -0
  627. package/styles/variants.d.ts.map +1 -0
  628. package/theme/cdn.d.ts +195 -0
  629. package/theme/cdn.d.ts.map +1 -0
  630. package/theme/index.d.ts +18 -0
  631. package/theme/index.d.ts.map +1 -0
  632. package/theme/index.js +757 -0
  633. package/theme/platforms.d.ts +107 -0
  634. package/theme/platforms.d.ts.map +1 -0
  635. package/theme/presets/github-openai.d.ts +50 -0
  636. package/theme/presets/github-openai.d.ts.map +1 -0
  637. package/theme/presets/index.d.ts +11 -0
  638. package/theme/presets/index.d.ts.map +1 -0
  639. package/theme/theme.d.ts +396 -0
  640. package/theme/theme.d.ts.map +1 -0
  641. package/tool-template/builder.d.ts +213 -0
  642. package/tool-template/builder.d.ts.map +1 -0
  643. package/tool-template/index.d.ts +16 -0
  644. package/tool-template/index.d.ts.map +1 -0
  645. package/tool-template/index.js +3559 -0
  646. package/types/index.d.ts +14 -0
  647. package/types/index.d.ts.map +1 -0
  648. package/types/index.js +108 -0
  649. package/types/ui-config.d.ts +639 -0
  650. package/types/ui-config.d.ts.map +1 -0
  651. package/types/ui-runtime.d.ts +1007 -0
  652. package/types/ui-runtime.d.ts.map +1 -0
  653. package/typings/cache/cache-adapter.d.ts +125 -0
  654. package/typings/cache/cache-adapter.d.ts.map +1 -0
  655. package/typings/cache/index.d.ts +10 -0
  656. package/typings/cache/index.d.ts.map +1 -0
  657. package/typings/cache/memory-cache.d.ts +92 -0
  658. package/typings/cache/memory-cache.d.ts.map +1 -0
  659. package/typings/dts-parser.d.ts +90 -0
  660. package/typings/dts-parser.d.ts.map +1 -0
  661. package/typings/index.d.ts +48 -0
  662. package/typings/index.d.ts.map +1 -0
  663. package/typings/schemas.d.ts +232 -0
  664. package/typings/schemas.d.ts.map +1 -0
  665. package/typings/type-fetcher.d.ts +89 -0
  666. package/typings/type-fetcher.d.ts.map +1 -0
  667. package/typings/types.d.ts +320 -0
  668. package/typings/types.d.ts.map +1 -0
  669. package/universal/UniversalApp.d.ts +108 -0
  670. package/universal/UniversalApp.d.ts.map +1 -0
  671. package/universal/cached-runtime.d.ts +115 -0
  672. package/universal/cached-runtime.d.ts.map +1 -0
  673. package/universal/context.d.ts +122 -0
  674. package/universal/context.d.ts.map +1 -0
  675. package/universal/index.d.ts +57 -0
  676. package/universal/index.d.ts.map +1 -0
  677. package/universal/renderers/html.renderer.d.ts +37 -0
  678. package/universal/renderers/html.renderer.d.ts.map +1 -0
  679. package/universal/renderers/index.d.ts +112 -0
  680. package/universal/renderers/index.d.ts.map +1 -0
  681. package/universal/renderers/markdown.renderer.d.ts +33 -0
  682. package/universal/renderers/markdown.renderer.d.ts.map +1 -0
  683. package/universal/renderers/mdx.renderer.d.ts +38 -0
  684. package/universal/renderers/mdx.renderer.d.ts.map +1 -0
  685. package/universal/renderers/react.renderer.d.ts +46 -0
  686. package/universal/renderers/react.renderer.d.ts.map +1 -0
  687. package/universal/runtime-builder.d.ts +33 -0
  688. package/universal/runtime-builder.d.ts.map +1 -0
  689. package/universal/store.d.ts +135 -0
  690. package/universal/store.d.ts.map +1 -0
  691. package/universal/types.d.ts +199 -0
  692. package/universal/types.d.ts.map +1 -0
  693. package/utils/escape-html.d.ts +58 -0
  694. package/utils/escape-html.d.ts.map +1 -0
  695. package/utils/index.d.ts +10 -0
  696. package/utils/index.d.ts.map +1 -0
  697. package/utils/index.js +70 -0
  698. package/utils/safe-stringify.d.ts +30 -0
  699. package/utils/safe-stringify.d.ts.map +1 -0
  700. package/validation/error-box.d.ts +56 -0
  701. package/validation/error-box.d.ts.map +1 -0
  702. package/validation/index.d.ts +13 -0
  703. package/validation/index.d.ts.map +1 -0
  704. package/validation/index.js +603 -0
  705. package/validation/schema-paths.d.ts +118 -0
  706. package/validation/schema-paths.d.ts.map +1 -0
  707. package/validation/template-validator.d.ts +143 -0
  708. package/validation/template-validator.d.ts.map +1 -0
  709. package/validation/wrapper.d.ts +97 -0
  710. package/validation/wrapper.d.ts.map +1 -0
  711. package/web-components/core/attribute-parser.d.ts +82 -0
  712. package/web-components/core/attribute-parser.d.ts.map +1 -0
  713. package/web-components/core/base-element.d.ts +197 -0
  714. package/web-components/core/base-element.d.ts.map +1 -0
  715. package/web-components/core/index.d.ts +9 -0
  716. package/web-components/core/index.d.ts.map +1 -0
  717. package/web-components/elements/fmcp-alert.d.ts +46 -0
  718. package/web-components/elements/fmcp-alert.d.ts.map +1 -0
  719. package/web-components/elements/fmcp-badge.d.ts +47 -0
  720. package/web-components/elements/fmcp-badge.d.ts.map +1 -0
  721. package/web-components/elements/fmcp-button.d.ts +117 -0
  722. package/web-components/elements/fmcp-button.d.ts.map +1 -0
  723. package/web-components/elements/fmcp-card.d.ts +53 -0
  724. package/web-components/elements/fmcp-card.d.ts.map +1 -0
  725. package/web-components/elements/fmcp-input.d.ts +96 -0
  726. package/web-components/elements/fmcp-input.d.ts.map +1 -0
  727. package/web-components/elements/fmcp-select.d.ts +100 -0
  728. package/web-components/elements/fmcp-select.d.ts.map +1 -0
  729. package/web-components/elements/index.d.ts +13 -0
  730. package/web-components/elements/index.d.ts.map +1 -0
  731. package/web-components/index.d.ts +50 -0
  732. package/web-components/index.d.ts.map +1 -0
  733. package/web-components/index.js +2093 -0
  734. package/web-components/register.d.ts +57 -0
  735. package/web-components/register.d.ts.map +1 -0
  736. package/web-components/types.d.ts +122 -0
  737. package/web-components/types.d.ts.map +1 -0
  738. package/widgets/index.d.ts +8 -0
  739. package/widgets/index.d.ts.map +1 -0
  740. package/widgets/index.js +978 -0
  741. package/widgets/progress.d.ts +133 -0
  742. package/widgets/progress.d.ts.map +1 -0
  743. package/widgets/resource.d.ts +163 -0
  744. package/widgets/resource.d.ts.map +1 -0
  745. package/src/adapters/index.d.ts +0 -10
  746. package/src/adapters/index.js +0 -18
  747. package/src/adapters/index.js.map +0 -1
  748. package/src/adapters/platform-meta.d.ts +0 -165
  749. package/src/adapters/platform-meta.js +0 -310
  750. package/src/adapters/platform-meta.js.map +0 -1
  751. package/src/base-template/bridge.d.ts +0 -89
  752. package/src/base-template/bridge.js +0 -452
  753. package/src/base-template/bridge.js.map +0 -1
  754. package/src/base-template/default-base-template.d.ts +0 -91
  755. package/src/base-template/default-base-template.js +0 -435
  756. package/src/base-template/default-base-template.js.map +0 -1
  757. package/src/base-template/index.d.ts +0 -14
  758. package/src/base-template/index.js +0 -30
  759. package/src/base-template/index.js.map +0 -1
  760. package/src/base-template/polyfills.d.ts +0 -30
  761. package/src/base-template/polyfills.js +0 -190
  762. package/src/base-template/polyfills.js.map +0 -1
  763. package/src/base-template/theme-styles.d.ts +0 -73
  764. package/src/base-template/theme-styles.js +0 -95
  765. package/src/base-template/theme-styles.js.map +0 -1
  766. package/src/bridge/adapters/base-adapter.d.ts +0 -103
  767. package/src/bridge/adapters/base-adapter.js +0 -314
  768. package/src/bridge/adapters/base-adapter.js.map +0 -1
  769. package/src/bridge/adapters/claude.adapter.d.ts +0 -66
  770. package/src/bridge/adapters/claude.adapter.js +0 -145
  771. package/src/bridge/adapters/claude.adapter.js.map +0 -1
  772. package/src/bridge/adapters/ext-apps.adapter.d.ts +0 -142
  773. package/src/bridge/adapters/ext-apps.adapter.js +0 -416
  774. package/src/bridge/adapters/ext-apps.adapter.js.map +0 -1
  775. package/src/bridge/adapters/gemini.adapter.d.ts +0 -63
  776. package/src/bridge/adapters/gemini.adapter.js +0 -160
  777. package/src/bridge/adapters/gemini.adapter.js.map +0 -1
  778. package/src/bridge/adapters/generic.adapter.d.ts +0 -55
  779. package/src/bridge/adapters/generic.adapter.js +0 -108
  780. package/src/bridge/adapters/generic.adapter.js.map +0 -1
  781. package/src/bridge/adapters/index.d.ts +0 -25
  782. package/src/bridge/adapters/index.js +0 -65
  783. package/src/bridge/adapters/index.js.map +0 -1
  784. package/src/bridge/adapters/openai.adapter.d.ts +0 -64
  785. package/src/bridge/adapters/openai.adapter.js +0 -194
  786. package/src/bridge/adapters/openai.adapter.js.map +0 -1
  787. package/src/bridge/core/adapter-registry.d.ts +0 -121
  788. package/src/bridge/core/adapter-registry.js +0 -271
  789. package/src/bridge/core/adapter-registry.js.map +0 -1
  790. package/src/bridge/core/bridge-factory.d.ts +0 -198
  791. package/src/bridge/core/bridge-factory.js +0 -428
  792. package/src/bridge/core/bridge-factory.js.map +0 -1
  793. package/src/bridge/core/index.d.ts +0 -9
  794. package/src/bridge/core/index.js +0 -22
  795. package/src/bridge/core/index.js.map +0 -1
  796. package/src/bridge/index.d.ts +0 -61
  797. package/src/bridge/index.js +0 -94
  798. package/src/bridge/index.js.map +0 -1
  799. package/src/bridge/runtime/iife-generator.d.ts +0 -61
  800. package/src/bridge/runtime/iife-generator.js +0 -940
  801. package/src/bridge/runtime/iife-generator.js.map +0 -1
  802. package/src/bridge/runtime/index.d.ts +0 -8
  803. package/src/bridge/runtime/index.js +0 -16
  804. package/src/bridge/runtime/index.js.map +0 -1
  805. package/src/bridge/types.d.ts +0 -385
  806. package/src/bridge/types.js +0 -11
  807. package/src/bridge/types.js.map +0 -1
  808. package/src/build/cdn-resources.d.ts +0 -140
  809. package/src/build/cdn-resources.js +0 -314
  810. package/src/build/cdn-resources.js.map +0 -1
  811. package/src/build/index.d.ts +0 -294
  812. package/src/build/index.js +0 -325
  813. package/src/build/index.js.map +0 -1
  814. package/src/build/widget-manifest.d.ts +0 -212
  815. package/src/build/widget-manifest.js +0 -652
  816. package/src/build/widget-manifest.js.map +0 -1
  817. package/src/bundler/bundler.d.ts +0 -110
  818. package/src/bundler/bundler.js +0 -432
  819. package/src/bundler/bundler.js.map +0 -1
  820. package/src/bundler/cache.d.ts +0 -172
  821. package/src/bundler/cache.js +0 -250
  822. package/src/bundler/cache.js.map +0 -1
  823. package/src/bundler/index.d.ts +0 -41
  824. package/src/bundler/index.js +0 -73
  825. package/src/bundler/index.js.map +0 -1
  826. package/src/bundler/sandbox/enclave-adapter.d.ts +0 -120
  827. package/src/bundler/sandbox/enclave-adapter.js +0 -339
  828. package/src/bundler/sandbox/enclave-adapter.js.map +0 -1
  829. package/src/bundler/sandbox/executor.d.ts +0 -13
  830. package/src/bundler/sandbox/executor.js +0 -22
  831. package/src/bundler/sandbox/executor.js.map +0 -1
  832. package/src/bundler/sandbox/policy.d.ts +0 -61
  833. package/src/bundler/sandbox/policy.js +0 -238
  834. package/src/bundler/sandbox/policy.js.map +0 -1
  835. package/src/bundler/types.d.ts +0 -347
  836. package/src/bundler/types.js +0 -132
  837. package/src/bundler/types.js.map +0 -1
  838. package/src/components/alert.d.ts +0 -71
  839. package/src/components/alert.js +0 -189
  840. package/src/components/alert.js.map +0 -1
  841. package/src/components/alert.schema.d.ts +0 -114
  842. package/src/components/alert.schema.js +0 -105
  843. package/src/components/alert.schema.js.map +0 -1
  844. package/src/components/avatar.d.ts +0 -76
  845. package/src/components/avatar.js +0 -176
  846. package/src/components/avatar.js.map +0 -1
  847. package/src/components/avatar.schema.d.ts +0 -169
  848. package/src/components/avatar.schema.js +0 -103
  849. package/src/components/avatar.schema.js.map +0 -1
  850. package/src/components/badge.d.ts +0 -70
  851. package/src/components/badge.js +0 -149
  852. package/src/components/badge.js.map +0 -1
  853. package/src/components/badge.schema.d.ts +0 -109
  854. package/src/components/badge.schema.js +0 -96
  855. package/src/components/badge.schema.js.map +0 -1
  856. package/src/components/button.d.ts +0 -111
  857. package/src/components/button.js +0 -336
  858. package/src/components/button.js.map +0 -1
  859. package/src/components/button.schema.d.ts +0 -148
  860. package/src/components/button.schema.js +0 -121
  861. package/src/components/button.schema.js.map +0 -1
  862. package/src/components/card.d.ts +0 -60
  863. package/src/components/card.js +0 -117
  864. package/src/components/card.js.map +0 -1
  865. package/src/components/card.schema.d.ts +0 -113
  866. package/src/components/card.schema.js +0 -98
  867. package/src/components/card.schema.js.map +0 -1
  868. package/src/components/form.d.ts +0 -239
  869. package/src/components/form.js +0 -420
  870. package/src/components/form.js.map +0 -1
  871. package/src/components/form.schema.d.ts +0 -441
  872. package/src/components/form.schema.js +0 -406
  873. package/src/components/form.schema.js.map +0 -1
  874. package/src/components/index.d.ts +0 -29
  875. package/src/components/index.js +0 -98
  876. package/src/components/index.js.map +0 -1
  877. package/src/components/list.d.ts +0 -127
  878. package/src/components/list.js +0 -279
  879. package/src/components/list.js.map +0 -1
  880. package/src/components/list.schema.d.ts +0 -134
  881. package/src/components/list.schema.js +0 -168
  882. package/src/components/list.schema.js.map +0 -1
  883. package/src/components/modal.d.ts +0 -111
  884. package/src/components/modal.js +0 -260
  885. package/src/components/modal.js.map +0 -1
  886. package/src/components/modal.schema.d.ts +0 -186
  887. package/src/components/modal.schema.js +0 -167
  888. package/src/components/modal.schema.js.map +0 -1
  889. package/src/components/table.d.ts +0 -105
  890. package/src/components/table.js +0 -283
  891. package/src/components/table.js.map +0 -1
  892. package/src/components/table.schema.d.ts +0 -159
  893. package/src/components/table.schema.js +0 -173
  894. package/src/components/table.schema.js.map +0 -1
  895. package/src/handlebars/helpers.d.ts +0 -348
  896. package/src/handlebars/helpers.js +0 -605
  897. package/src/handlebars/helpers.js.map +0 -1
  898. package/src/handlebars/index.d.ts +0 -193
  899. package/src/handlebars/index.js +0 -350
  900. package/src/handlebars/index.js.map +0 -1
  901. package/src/index.d.ts +0 -50
  902. package/src/index.js +0 -192
  903. package/src/index.js.map +0 -1
  904. package/src/layouts/base.d.ts +0 -88
  905. package/src/layouts/base.js +0 -227
  906. package/src/layouts/base.js.map +0 -1
  907. package/src/layouts/index.d.ts +0 -7
  908. package/src/layouts/index.js +0 -25
  909. package/src/layouts/index.js.map +0 -1
  910. package/src/layouts/presets.d.ts +0 -133
  911. package/src/layouts/presets.js +0 -277
  912. package/src/layouts/presets.js.map +0 -1
  913. package/src/pages/consent.d.ts +0 -116
  914. package/src/pages/consent.js +0 -218
  915. package/src/pages/consent.js.map +0 -1
  916. package/src/pages/error.d.ts +0 -100
  917. package/src/pages/error.js +0 -263
  918. package/src/pages/error.js.map +0 -1
  919. package/src/pages/index.d.ts +0 -8
  920. package/src/pages/index.js +0 -27
  921. package/src/pages/index.js.map +0 -1
  922. package/src/react/Alert.d.ts +0 -101
  923. package/src/react/Alert.js +0 -51
  924. package/src/react/Alert.js.map +0 -1
  925. package/src/react/Badge.d.ts +0 -100
  926. package/src/react/Badge.js +0 -55
  927. package/src/react/Badge.js.map +0 -1
  928. package/src/react/Button.d.ts +0 -108
  929. package/src/react/Button.js +0 -52
  930. package/src/react/Button.js.map +0 -1
  931. package/src/react/Card.d.ts +0 -103
  932. package/src/react/Card.js +0 -55
  933. package/src/react/Card.js.map +0 -1
  934. package/src/react/hooks/context.d.ts +0 -178
  935. package/src/react/hooks/context.js +0 -287
  936. package/src/react/hooks/context.js.map +0 -1
  937. package/src/react/hooks/index.d.ts +0 -41
  938. package/src/react/hooks/index.js +0 -61
  939. package/src/react/hooks/index.js.map +0 -1
  940. package/src/react/hooks/tools.d.ts +0 -283
  941. package/src/react/hooks/tools.js +0 -465
  942. package/src/react/hooks/tools.js.map +0 -1
  943. package/src/react/index.d.ts +0 -80
  944. package/src/react/index.js +0 -113
  945. package/src/react/index.js.map +0 -1
  946. package/src/react/types.d.ts +0 -105
  947. package/src/react/types.js +0 -12
  948. package/src/react/types.js.map +0 -1
  949. package/src/react/utils.d.ts +0 -42
  950. package/src/react/utils.js +0 -99
  951. package/src/react/utils.js.map +0 -1
  952. package/src/registry/index.d.ts +0 -45
  953. package/src/registry/index.js +0 -67
  954. package/src/registry/index.js.map +0 -1
  955. package/src/registry/render-template.d.ts +0 -86
  956. package/src/registry/render-template.js +0 -239
  957. package/src/registry/render-template.js.map +0 -1
  958. package/src/registry/tool-ui.registry.d.ts +0 -260
  959. package/src/registry/tool-ui.registry.js +0 -438
  960. package/src/registry/tool-ui.registry.js.map +0 -1
  961. package/src/registry/uri-utils.d.ts +0 -55
  962. package/src/registry/uri-utils.js +0 -97
  963. package/src/registry/uri-utils.js.map +0 -1
  964. package/src/render/index.d.ts +0 -7
  965. package/src/render/index.js +0 -14
  966. package/src/render/index.js.map +0 -1
  967. package/src/render/prerender.d.ts +0 -56
  968. package/src/render/prerender.js +0 -98
  969. package/src/render/prerender.js.map +0 -1
  970. package/src/renderers/cache.d.ts +0 -144
  971. package/src/renderers/cache.js +0 -240
  972. package/src/renderers/cache.js.map +0 -1
  973. package/src/renderers/html.renderer.d.ts +0 -122
  974. package/src/renderers/html.renderer.js +0 -204
  975. package/src/renderers/html.renderer.js.map +0 -1
  976. package/src/renderers/index.d.ts +0 -35
  977. package/src/renderers/index.js +0 -70
  978. package/src/renderers/index.js.map +0 -1
  979. package/src/renderers/mdx.renderer.d.ts +0 -119
  980. package/src/renderers/mdx.renderer.js +0 -305
  981. package/src/renderers/mdx.renderer.js.map +0 -1
  982. package/src/renderers/react.renderer.d.ts +0 -95
  983. package/src/renderers/react.renderer.js +0 -260
  984. package/src/renderers/react.renderer.js.map +0 -1
  985. package/src/renderers/registry.d.ts +0 -133
  986. package/src/renderers/registry.js +0 -232
  987. package/src/renderers/registry.js.map +0 -1
  988. package/src/renderers/types.d.ts +0 -341
  989. package/src/renderers/types.js +0 -9
  990. package/src/renderers/types.js.map +0 -1
  991. package/src/renderers/utils/detect.d.ts +0 -106
  992. package/src/renderers/utils/detect.js +0 -267
  993. package/src/renderers/utils/detect.js.map +0 -1
  994. package/src/renderers/utils/hash.d.ts +0 -39
  995. package/src/renderers/utils/hash.js +0 -75
  996. package/src/renderers/utils/hash.js.map +0 -1
  997. package/src/renderers/utils/index.d.ts +0 -8
  998. package/src/renderers/utils/index.js +0 -28
  999. package/src/renderers/utils/index.js.map +0 -1
  1000. package/src/renderers/utils/transpiler.d.ts +0 -88
  1001. package/src/renderers/utils/transpiler.js +0 -215
  1002. package/src/renderers/utils/transpiler.js.map +0 -1
  1003. package/src/runtime/adapters/html.adapter.d.ts +0 -58
  1004. package/src/runtime/adapters/html.adapter.js +0 -131
  1005. package/src/runtime/adapters/html.adapter.js.map +0 -1
  1006. package/src/runtime/adapters/index.d.ts +0 -25
  1007. package/src/runtime/adapters/index.js +0 -54
  1008. package/src/runtime/adapters/index.js.map +0 -1
  1009. package/src/runtime/adapters/mdx.adapter.d.ts +0 -72
  1010. package/src/runtime/adapters/mdx.adapter.js +0 -241
  1011. package/src/runtime/adapters/mdx.adapter.js.map +0 -1
  1012. package/src/runtime/adapters/react.adapter.d.ts +0 -69
  1013. package/src/runtime/adapters/react.adapter.js +0 -245
  1014. package/src/runtime/adapters/react.adapter.js.map +0 -1
  1015. package/src/runtime/adapters/types.d.ts +0 -94
  1016. package/src/runtime/adapters/types.js +0 -11
  1017. package/src/runtime/adapters/types.js.map +0 -1
  1018. package/src/runtime/csp.d.ts +0 -37
  1019. package/src/runtime/csp.js +0 -140
  1020. package/src/runtime/csp.js.map +0 -1
  1021. package/src/runtime/index.d.ts +0 -16
  1022. package/src/runtime/index.js +0 -72
  1023. package/src/runtime/index.js.map +0 -1
  1024. package/src/runtime/mcp-bridge.d.ts +0 -100
  1025. package/src/runtime/mcp-bridge.js +0 -581
  1026. package/src/runtime/mcp-bridge.js.map +0 -1
  1027. package/src/runtime/renderer-runtime.d.ts +0 -132
  1028. package/src/runtime/renderer-runtime.js +0 -389
  1029. package/src/runtime/renderer-runtime.js.map +0 -1
  1030. package/src/runtime/sanitizer.d.ts +0 -171
  1031. package/src/runtime/sanitizer.js +0 -318
  1032. package/src/runtime/sanitizer.js.map +0 -1
  1033. package/src/runtime/types.d.ts +0 -414
  1034. package/src/runtime/types.js +0 -12
  1035. package/src/runtime/types.js.map +0 -1
  1036. package/src/runtime/wrapper.d.ts +0 -375
  1037. package/src/runtime/wrapper.js +0 -1793
  1038. package/src/runtime/wrapper.js.map +0 -1
  1039. package/src/styles/index.d.ts +0 -7
  1040. package/src/styles/index.js +0 -11
  1041. package/src/styles/index.js.map +0 -1
  1042. package/src/styles/variants.d.ts +0 -50
  1043. package/src/styles/variants.js +0 -175
  1044. package/src/styles/variants.js.map +0 -1
  1045. package/src/theme/cdn.d.ts +0 -194
  1046. package/src/theme/cdn.js +0 -375
  1047. package/src/theme/cdn.js.map +0 -1
  1048. package/src/theme/index.d.ts +0 -17
  1049. package/src/theme/index.js +0 -57
  1050. package/src/theme/index.js.map +0 -1
  1051. package/src/theme/platforms.d.ts +0 -106
  1052. package/src/theme/platforms.js +0 -161
  1053. package/src/theme/platforms.js.map +0 -1
  1054. package/src/theme/presets/github-openai.d.ts +0 -49
  1055. package/src/theme/presets/github-openai.js +0 -189
  1056. package/src/theme/presets/github-openai.js.map +0 -1
  1057. package/src/theme/presets/index.d.ts +0 -10
  1058. package/src/theme/presets/index.js +0 -17
  1059. package/src/theme/presets/index.js.map +0 -1
  1060. package/src/theme/theme.d.ts +0 -395
  1061. package/src/theme/theme.js +0 -332
  1062. package/src/theme/theme.js.map +0 -1
  1063. package/src/tool-template/builder.d.ts +0 -212
  1064. package/src/tool-template/builder.js +0 -397
  1065. package/src/tool-template/builder.js.map +0 -1
  1066. package/src/tool-template/index.d.ts +0 -15
  1067. package/src/tool-template/index.js +0 -38
  1068. package/src/tool-template/index.js.map +0 -1
  1069. package/src/types/index.d.ts +0 -13
  1070. package/src/types/index.js +0 -26
  1071. package/src/types/index.js.map +0 -1
  1072. package/src/types/ui-config.d.ts +0 -357
  1073. package/src/types/ui-config.js +0 -12
  1074. package/src/types/ui-config.js.map +0 -1
  1075. package/src/types/ui-runtime.d.ts +0 -965
  1076. package/src/types/ui-runtime.js +0 -117
  1077. package/src/types/ui-runtime.js.map +0 -1
  1078. package/src/validation/error-box.d.ts +0 -55
  1079. package/src/validation/error-box.js +0 -75
  1080. package/src/validation/error-box.js.map +0 -1
  1081. package/src/validation/index.d.ts +0 -12
  1082. package/src/validation/index.js +0 -21
  1083. package/src/validation/index.js.map +0 -1
  1084. package/src/validation/wrapper.d.ts +0 -96
  1085. package/src/validation/wrapper.js +0 -117
  1086. package/src/validation/wrapper.js.map +0 -1
  1087. package/src/web-components/core/attribute-parser.d.ts +0 -85
  1088. package/src/web-components/core/attribute-parser.js +0 -189
  1089. package/src/web-components/core/attribute-parser.js.map +0 -1
  1090. package/src/web-components/core/base-element.d.ts +0 -197
  1091. package/src/web-components/core/base-element.js +0 -289
  1092. package/src/web-components/core/base-element.js.map +0 -1
  1093. package/src/web-components/core/index.d.ts +0 -8
  1094. package/src/web-components/core/index.js +0 -18
  1095. package/src/web-components/core/index.js.map +0 -1
  1096. package/src/web-components/elements/fmcp-alert.d.ts +0 -45
  1097. package/src/web-components/elements/fmcp-alert.js +0 -93
  1098. package/src/web-components/elements/fmcp-alert.js.map +0 -1
  1099. package/src/web-components/elements/fmcp-badge.d.ts +0 -46
  1100. package/src/web-components/elements/fmcp-badge.js +0 -99
  1101. package/src/web-components/elements/fmcp-badge.js.map +0 -1
  1102. package/src/web-components/elements/fmcp-button.d.ts +0 -124
  1103. package/src/web-components/elements/fmcp-button.js +0 -233
  1104. package/src/web-components/elements/fmcp-button.js.map +0 -1
  1105. package/src/web-components/elements/fmcp-card.d.ts +0 -52
  1106. package/src/web-components/elements/fmcp-card.js +0 -115
  1107. package/src/web-components/elements/fmcp-card.js.map +0 -1
  1108. package/src/web-components/elements/fmcp-input.d.ts +0 -95
  1109. package/src/web-components/elements/fmcp-input.js +0 -248
  1110. package/src/web-components/elements/fmcp-input.js.map +0 -1
  1111. package/src/web-components/elements/fmcp-select.d.ts +0 -99
  1112. package/src/web-components/elements/fmcp-select.js +0 -243
  1113. package/src/web-components/elements/fmcp-select.js.map +0 -1
  1114. package/src/web-components/elements/index.d.ts +0 -12
  1115. package/src/web-components/elements/index.js +0 -34
  1116. package/src/web-components/elements/index.js.map +0 -1
  1117. package/src/web-components/index.d.ts +0 -49
  1118. package/src/web-components/index.js +0 -75
  1119. package/src/web-components/index.js.map +0 -1
  1120. package/src/web-components/register.d.ts +0 -56
  1121. package/src/web-components/register.js +0 -80
  1122. package/src/web-components/register.js.map +0 -1
  1123. package/src/web-components/types.d.ts +0 -121
  1124. package/src/web-components/types.js +0 -25
  1125. package/src/web-components/types.js.map +0 -1
  1126. package/src/widgets/index.d.ts +0 -7
  1127. package/src/widgets/index.js +0 -24
  1128. package/src/widgets/index.js.map +0 -1
  1129. package/src/widgets/progress.d.ts +0 -132
  1130. package/src/widgets/progress.js +0 -303
  1131. package/src/widgets/progress.js.map +0 -1
  1132. package/src/widgets/resource.d.ts +0 -162
  1133. package/src/widgets/resource.js +0 -340
  1134. package/src/widgets/resource.js.map +0 -1
@@ -1,168 +0,0 @@
1
- "use strict";
2
- /**
3
- * @file list.schema.ts
4
- * @description Zod schemas for List component options validation.
5
- *
6
- * Provides strict validation schemas for permission lists, feature lists,
7
- * description lists, and action lists with HTMX support.
8
- *
9
- * @example
10
- * ```typescript
11
- * import { PermissionItemSchema, PermissionListOptionsSchema } from '@frontmcp/ui';
12
- *
13
- * const itemResult = PermissionItemSchema.safeParse({
14
- * scope: 'read:profile',
15
- * name: 'Read Profile',
16
- * });
17
- * ```
18
- *
19
- * @module @frontmcp/ui/components/list.schema
20
- */
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.ActionListOptionsSchema = exports.ActionItemSchema = exports.DescriptionListOptionsSchema = exports.DescriptionItemSchema = exports.FeatureListOptionsSchema = exports.FeatureItemSchema = exports.PermissionListOptionsSchema = exports.PermissionItemSchema = void 0;
23
- const zod_1 = require("zod");
24
- // ============================================
25
- // Permission Item Schema
26
- // ============================================
27
- /**
28
- * Permission/Scope item schema for OAuth consent
29
- */
30
- exports.PermissionItemSchema = zod_1.z
31
- .object({
32
- /** Scope identifier */
33
- scope: zod_1.z.string(),
34
- /** Display name */
35
- name: zod_1.z.string(),
36
- /** Description */
37
- description: zod_1.z.string().optional(),
38
- /** Icon HTML */
39
- icon: zod_1.z.string().optional(),
40
- /** Required permission (cannot be unchecked) */
41
- required: zod_1.z.boolean().optional(),
42
- /** Checked by default */
43
- checked: zod_1.z.boolean().optional(),
44
- /** Sensitive/dangerous permission */
45
- sensitive: zod_1.z.boolean().optional(),
46
- })
47
- .strict();
48
- /**
49
- * Permission list options schema
50
- */
51
- exports.PermissionListOptionsSchema = zod_1.z
52
- .object({
53
- /** List ID */
54
- id: zod_1.z.string().optional(),
55
- /** Checkable permissions */
56
- checkable: zod_1.z.boolean().optional(),
57
- /** Input name for checkable */
58
- inputName: zod_1.z.string().optional(),
59
- /** Group title */
60
- title: zod_1.z.string().optional(),
61
- /** Additional CSS classes */
62
- className: zod_1.z.string().optional(),
63
- })
64
- .strict();
65
- // ============================================
66
- // Feature Item Schema
67
- // ============================================
68
- /**
69
- * Feature list item schema
70
- */
71
- exports.FeatureItemSchema = zod_1.z
72
- .object({
73
- /** Feature name */
74
- name: zod_1.z.string(),
75
- /** Feature description */
76
- description: zod_1.z.string().optional(),
77
- /** Icon HTML */
78
- icon: zod_1.z.string().optional(),
79
- /** Included in plan */
80
- included: zod_1.z.boolean().optional(),
81
- })
82
- .strict();
83
- /**
84
- * Feature list options schema
85
- */
86
- exports.FeatureListOptionsSchema = zod_1.z
87
- .object({
88
- /** Group title */
89
- title: zod_1.z.string().optional(),
90
- /** Show included/excluded styling */
91
- showStatus: zod_1.z.boolean().optional(),
92
- /** Additional CSS classes */
93
- className: zod_1.z.string().optional(),
94
- })
95
- .strict();
96
- // ============================================
97
- // Description Item Schema
98
- // ============================================
99
- /**
100
- * Description list item schema
101
- */
102
- exports.DescriptionItemSchema = zod_1.z
103
- .object({
104
- /** Term/label */
105
- term: zod_1.z.string(),
106
- /** Description/value */
107
- description: zod_1.z.string(),
108
- /** Copy button */
109
- copyable: zod_1.z.boolean().optional(),
110
- })
111
- .strict();
112
- /**
113
- * Description list options schema
114
- */
115
- exports.DescriptionListOptionsSchema = zod_1.z
116
- .object({
117
- /** Layout direction */
118
- direction: zod_1.z.enum(['horizontal', 'vertical']).optional(),
119
- /** Striped rows */
120
- striped: zod_1.z.boolean().optional(),
121
- /** Additional CSS classes */
122
- className: zod_1.z.string().optional(),
123
- })
124
- .strict();
125
- // ============================================
126
- // Action Item Schema
127
- // ============================================
128
- /**
129
- * Action list item schema
130
- */
131
- exports.ActionItemSchema = zod_1.z
132
- .object({
133
- /** Action label */
134
- label: zod_1.z.string(),
135
- /** Action description */
136
- description: zod_1.z.string().optional(),
137
- /** Icon HTML */
138
- icon: zod_1.z.string().optional(),
139
- /** Click URL */
140
- href: zod_1.z.string().optional(),
141
- /** HTMX attributes */
142
- htmx: zod_1.z
143
- .object({
144
- get: zod_1.z.string().optional(),
145
- post: zod_1.z.string().optional(),
146
- target: zod_1.z.string().optional(),
147
- swap: zod_1.z.string().optional(),
148
- })
149
- .strict()
150
- .optional(),
151
- /** Destructive action styling */
152
- destructive: zod_1.z.boolean().optional(),
153
- /** Disabled state */
154
- disabled: zod_1.z.boolean().optional(),
155
- })
156
- .strict();
157
- /**
158
- * Action list options schema
159
- */
160
- exports.ActionListOptionsSchema = zod_1.z
161
- .object({
162
- /** Divided items */
163
- divided: zod_1.z.boolean().optional(),
164
- /** Additional CSS classes */
165
- className: zod_1.z.string().optional(),
166
- })
167
- .strict();
168
- //# sourceMappingURL=list.schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.schema.js","sourceRoot":"","sources":["../../../src/components/list.schema.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @file list.schema.ts\n * @description Zod schemas for List component options validation.\n *\n * Provides strict validation schemas for permission lists, feature lists,\n * description lists, and action lists with HTMX support.\n *\n * @example\n * ```typescript\n * import { PermissionItemSchema, PermissionListOptionsSchema } from '@frontmcp/ui';\n *\n * const itemResult = PermissionItemSchema.safeParse({\n * scope: 'read:profile',\n * name: 'Read Profile',\n * });\n * ```\n *\n * @module @frontmcp/ui/components/list.schema\n */\n\nimport { z } from 'zod';\n\n// ============================================\n// Permission Item Schema\n// ============================================\n\n/**\n * Permission/Scope item schema for OAuth consent\n */\nexport const PermissionItemSchema = z\n .object({\n /** Scope identifier */\n scope: z.string(),\n /** Display name */\n name: z.string(),\n /** Description */\n description: z.string().optional(),\n /** Icon HTML */\n icon: z.string().optional(),\n /** Required permission (cannot be unchecked) */\n required: z.boolean().optional(),\n /** Checked by default */\n checked: z.boolean().optional(),\n /** Sensitive/dangerous permission */\n sensitive: z.boolean().optional(),\n })\n .strict();\n\n/**\n * Permission item type\n */\nexport type PermissionItem = z.infer<typeof PermissionItemSchema>;\n\n/**\n * Permission list options schema\n */\nexport const PermissionListOptionsSchema = z\n .object({\n /** List ID */\n id: z.string().optional(),\n /** Checkable permissions */\n checkable: z.boolean().optional(),\n /** Input name for checkable */\n inputName: z.string().optional(),\n /** Group title */\n title: z.string().optional(),\n /** Additional CSS classes */\n className: z.string().optional(),\n })\n .strict();\n\n/**\n * Permission list options type\n */\nexport type PermissionListOptions = z.infer<typeof PermissionListOptionsSchema>;\n\n// ============================================\n// Feature Item Schema\n// ============================================\n\n/**\n * Feature list item schema\n */\nexport const FeatureItemSchema = z\n .object({\n /** Feature name */\n name: z.string(),\n /** Feature description */\n description: z.string().optional(),\n /** Icon HTML */\n icon: z.string().optional(),\n /** Included in plan */\n included: z.boolean().optional(),\n })\n .strict();\n\n/**\n * Feature item type\n */\nexport type FeatureItem = z.infer<typeof FeatureItemSchema>;\n\n/**\n * Feature list options schema\n */\nexport const FeatureListOptionsSchema = z\n .object({\n /** Group title */\n title: z.string().optional(),\n /** Show included/excluded styling */\n showStatus: z.boolean().optional(),\n /** Additional CSS classes */\n className: z.string().optional(),\n })\n .strict();\n\n/**\n * Feature list options type\n */\nexport type FeatureListOptions = z.infer<typeof FeatureListOptionsSchema>;\n\n// ============================================\n// Description Item Schema\n// ============================================\n\n/**\n * Description list item schema\n */\nexport const DescriptionItemSchema = z\n .object({\n /** Term/label */\n term: z.string(),\n /** Description/value */\n description: z.string(),\n /** Copy button */\n copyable: z.boolean().optional(),\n })\n .strict();\n\n/**\n * Description item type\n */\nexport type DescriptionItem = z.infer<typeof DescriptionItemSchema>;\n\n/**\n * Description list options schema\n */\nexport const DescriptionListOptionsSchema = z\n .object({\n /** Layout direction */\n direction: z.enum(['horizontal', 'vertical']).optional(),\n /** Striped rows */\n striped: z.boolean().optional(),\n /** Additional CSS classes */\n className: z.string().optional(),\n })\n .strict();\n\n/**\n * Description list options type\n */\nexport type DescriptionListOptions = z.infer<typeof DescriptionListOptionsSchema>;\n\n// ============================================\n// Action Item Schema\n// ============================================\n\n/**\n * Action list item schema\n */\nexport const ActionItemSchema = z\n .object({\n /** Action label */\n label: z.string(),\n /** Action description */\n description: z.string().optional(),\n /** Icon HTML */\n icon: z.string().optional(),\n /** Click URL */\n href: z.string().optional(),\n /** HTMX attributes */\n htmx: z\n .object({\n get: z.string().optional(),\n post: z.string().optional(),\n target: z.string().optional(),\n swap: z.string().optional(),\n })\n .strict()\n .optional(),\n /** Destructive action styling */\n destructive: z.boolean().optional(),\n /** Disabled state */\n disabled: z.boolean().optional(),\n })\n .strict();\n\n/**\n * Action item type\n */\nexport type ActionItem = z.infer<typeof ActionItemSchema>;\n\n/**\n * Action list options schema\n */\nexport const ActionListOptionsSchema = z\n .object({\n /** Divided items */\n divided: z.boolean().optional(),\n /** Additional CSS classes */\n className: z.string().optional(),\n })\n .strict();\n\n/**\n * Action list options type\n */\nexport type ActionListOptions = z.infer<typeof ActionListOptionsSchema>;\n"]}
@@ -1,111 +0,0 @@
1
- /**
2
- * Modal Component
3
- *
4
- * Dialog and modal components.
5
- */
6
- /**
7
- * Modal size options
8
- */
9
- export type ModalSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
10
- /**
11
- * Modal component options
12
- */
13
- export interface ModalOptions {
14
- /** Modal ID */
15
- id: string;
16
- /** Modal title */
17
- title?: string;
18
- /** Modal size */
19
- size?: ModalSize;
20
- /** Show close button */
21
- showClose?: boolean;
22
- /** Close on backdrop click */
23
- closeOnBackdrop?: boolean;
24
- /** Close on escape key */
25
- closeOnEscape?: boolean;
26
- /** Footer content */
27
- footer?: string;
28
- /** Additional CSS classes for modal */
29
- className?: string;
30
- /** Initially visible */
31
- open?: boolean;
32
- /** HTMX for closing */
33
- onClose?: {
34
- delete?: string;
35
- target?: string;
36
- swap?: string;
37
- };
38
- }
39
- /**
40
- * Build a modal component
41
- */
42
- export declare function modal(content: string, options: ModalOptions): string;
43
- /**
44
- * Build a modal trigger button/element
45
- */
46
- export declare function modalTrigger(triggerContent: string, modalId: string, options?: {
47
- className?: string;
48
- tag?: 'button' | 'a' | 'span';
49
- }): string;
50
- /**
51
- * Confirmation modal options
52
- */
53
- export interface ConfirmModalOptions {
54
- /** Modal ID */
55
- id: string;
56
- /** Dialog title */
57
- title?: string;
58
- /** Confirmation message */
59
- message: string;
60
- /** Confirm button text */
61
- confirmText?: string;
62
- /** Cancel button text */
63
- cancelText?: string;
64
- /** Confirm button variant */
65
- variant?: 'primary' | 'danger' | 'warning';
66
- /** Icon */
67
- icon?: string;
68
- /** HTMX for confirm action */
69
- onConfirm?: {
70
- post?: string;
71
- delete?: string;
72
- put?: string;
73
- target?: string;
74
- swap?: string;
75
- };
76
- }
77
- /**
78
- * Build a confirmation modal
79
- */
80
- export declare function confirmModal(options: ConfirmModalOptions): string;
81
- /**
82
- * Drawer position options
83
- */
84
- export type DrawerPosition = 'left' | 'right' | 'top' | 'bottom';
85
- /**
86
- * Drawer options
87
- */
88
- export interface DrawerOptions {
89
- /** Drawer ID */
90
- id: string;
91
- /** Drawer title */
92
- title?: string;
93
- /** Drawer position */
94
- position?: DrawerPosition;
95
- /** Drawer size (width for left/right, height for top/bottom) */
96
- size?: 'sm' | 'md' | 'lg' | 'xl';
97
- /** Show close button */
98
- showClose?: boolean;
99
- /** Close on backdrop click */
100
- closeOnBackdrop?: boolean;
101
- /** Footer content */
102
- footer?: string;
103
- /** Additional CSS classes */
104
- className?: string;
105
- /** Initially visible */
106
- open?: boolean;
107
- }
108
- /**
109
- * Build a drawer component
110
- */
111
- export declare function drawer(content: string, options: DrawerOptions): string;
@@ -1,260 +0,0 @@
1
- "use strict";
2
- /**
3
- * Modal Component
4
- *
5
- * Dialog and modal components.
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.modal = modal;
9
- exports.modalTrigger = modalTrigger;
10
- exports.confirmModal = confirmModal;
11
- exports.drawer = drawer;
12
- const base_1 = require("../layouts/base");
13
- // ============================================
14
- // Modal Builder
15
- // ============================================
16
- /**
17
- * Get size CSS classes
18
- */
19
- function getSizeClasses(size) {
20
- const sizes = {
21
- sm: 'max-w-sm',
22
- md: 'max-w-md',
23
- lg: 'max-w-lg',
24
- xl: 'max-w-2xl',
25
- full: 'max-w-full mx-4',
26
- };
27
- return sizes[size];
28
- }
29
- /**
30
- * Build a modal component
31
- */
32
- function modal(content, options) {
33
- const { id, title, size = 'md', showClose = true, closeOnBackdrop = true, closeOnEscape = true, footer, className = '', open = false, onClose, } = options;
34
- const sizeClasses = getSizeClasses(size);
35
- const visibilityClasses = open ? '' : 'hidden';
36
- const headerHtml = title || showClose
37
- ? `<div class="flex items-center justify-between p-4 border-b border-divider">
38
- ${title ? `<h3 class="text-lg font-semibold text-text-primary">${(0, base_1.escapeHtml)(title)}</h3>` : '<div></div>'}
39
- ${showClose
40
- ? `
41
- <button
42
- type="button"
43
- class="p-1 rounded-lg text-text-secondary hover:text-text-primary hover:bg-gray-100 transition-colors"
44
- onclick="document.getElementById('${(0, base_1.escapeHtml)(id)}').classList.add('hidden')"
45
- ${onClose?.delete ? `hx-delete="${(0, base_1.escapeHtml)(onClose.delete)}"` : ''}
46
- ${onClose?.target ? `hx-target="${(0, base_1.escapeHtml)(onClose.target)}"` : ''}
47
- ${onClose?.swap ? `hx-swap="${(0, base_1.escapeHtml)(onClose.swap)}"` : ''}
48
- aria-label="Close"
49
- >
50
- <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
51
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
52
- </svg>
53
- </button>
54
- `
55
- : ''}
56
- </div>`
57
- : '';
58
- const footerHtml = footer
59
- ? `<div class="flex items-center justify-end gap-3 p-4 border-t border-divider">
60
- ${footer}
61
- </div>`
62
- : '';
63
- const backdropClickHandler = closeOnBackdrop
64
- ? `onclick="if (event.target === this) this.classList.add('hidden')"`
65
- : '';
66
- const escapeHandler = closeOnEscape
67
- ? `<script>
68
- document.addEventListener('keydown', function(e) {
69
- if (e.key === 'Escape') {
70
- document.getElementById('${(0, base_1.escapeHtml)(id)}')?.classList.add('hidden');
71
- }
72
- });
73
- </script>`
74
- : '';
75
- return `
76
- <div
77
- id="${(0, base_1.escapeHtml)(id)}"
78
- class="fixed inset-0 z-50 overflow-y-auto ${visibilityClasses}"
79
- ${backdropClickHandler}
80
- role="dialog"
81
- aria-modal="true"
82
- aria-labelledby="${(0, base_1.escapeHtml)(id)}-title"
83
- >
84
- <!-- Backdrop -->
85
- <div class="fixed inset-0 bg-black/50 transition-opacity"></div>
86
-
87
- <!-- Modal container -->
88
- <div class="flex min-h-full items-center justify-center p-4">
89
- <div class="relative w-full ${sizeClasses} bg-white rounded-xl shadow-xl ${className}">
90
- ${headerHtml}
91
- <div class="p-4">
92
- ${content}
93
- </div>
94
- ${footerHtml}
95
- </div>
96
- </div>
97
- </div>
98
- ${escapeHandler}
99
- `;
100
- }
101
- // ============================================
102
- // Modal Trigger
103
- // ============================================
104
- /**
105
- * Build a modal trigger button/element
106
- */
107
- function modalTrigger(triggerContent, modalId, options = {}) {
108
- const { className = '', tag = 'button' } = options;
109
- const attrs = `
110
- class="${className}"
111
- onclick="document.getElementById('${(0, base_1.escapeHtml)(modalId)}').classList.remove('hidden')"
112
- `;
113
- if (tag === 'button') {
114
- return `<button type="button" ${attrs}>${triggerContent}</button>`;
115
- }
116
- return `<${tag} ${attrs}>${triggerContent}</${tag}>`;
117
- }
118
- /**
119
- * Build a confirmation modal
120
- */
121
- function confirmModal(options) {
122
- const { id, title = 'Confirm Action', message, confirmText = 'Confirm', cancelText = 'Cancel', variant = 'primary', icon, onConfirm, } = options;
123
- const variantClasses = {
124
- primary: 'bg-primary hover:bg-primary/90 text-white',
125
- danger: 'bg-danger hover:bg-danger/90 text-white',
126
- warning: 'bg-warning hover:bg-warning/90 text-white',
127
- };
128
- const iconColors = {
129
- primary: 'text-primary bg-primary/10',
130
- danger: 'text-danger bg-danger/10',
131
- warning: 'text-warning bg-warning/10',
132
- };
133
- const defaultIcons = {
134
- primary: `<svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
135
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8.228 9c.549-1.165 2.03-2 3.772-2 2.21 0 4 1.343 4 3 0 1.4-1.278 2.575-3.006 2.907-.542.104-.994.54-.994 1.093m0 3h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/>
136
- </svg>`,
137
- danger: `<svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
138
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"/>
139
- </svg>`,
140
- warning: `<svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
141
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"/>
142
- </svg>`,
143
- };
144
- const displayIcon = icon || defaultIcons[variant];
145
- const htmxAttrs = [];
146
- if (onConfirm) {
147
- if (onConfirm.post)
148
- htmxAttrs.push(`hx-post="${(0, base_1.escapeHtml)(onConfirm.post)}"`);
149
- if (onConfirm.delete)
150
- htmxAttrs.push(`hx-delete="${(0, base_1.escapeHtml)(onConfirm.delete)}"`);
151
- if (onConfirm.put)
152
- htmxAttrs.push(`hx-put="${(0, base_1.escapeHtml)(onConfirm.put)}"`);
153
- if (onConfirm.target)
154
- htmxAttrs.push(`hx-target="${(0, base_1.escapeHtml)(onConfirm.target)}"`);
155
- if (onConfirm.swap)
156
- htmxAttrs.push(`hx-swap="${(0, base_1.escapeHtml)(onConfirm.swap)}"`);
157
- }
158
- const content = `
159
- <div class="text-center">
160
- <div class="mx-auto w-12 h-12 rounded-full ${iconColors[variant]} flex items-center justify-center mb-4">
161
- ${displayIcon}
162
- </div>
163
- <h3 class="text-lg font-semibold text-text-primary mb-2">${(0, base_1.escapeHtml)(title)}</h3>
164
- <p class="text-text-secondary">${(0, base_1.escapeHtml)(message)}</p>
165
- </div>
166
- `;
167
- const footer = `
168
- <button
169
- type="button"
170
- class="px-4 py-2 rounded-lg border border-border text-text-primary hover:bg-gray-50 transition-colors"
171
- onclick="document.getElementById('${(0, base_1.escapeHtml)(id)}').classList.add('hidden')"
172
- >
173
- ${(0, base_1.escapeHtml)(cancelText)}
174
- </button>
175
- <button
176
- type="button"
177
- class="px-4 py-2 rounded-lg ${variantClasses[variant]} transition-colors"
178
- ${htmxAttrs.join(' ')}
179
- onclick="document.getElementById('${(0, base_1.escapeHtml)(id)}').classList.add('hidden')"
180
- >
181
- ${(0, base_1.escapeHtml)(confirmText)}
182
- </button>
183
- `;
184
- return modal(content, {
185
- id,
186
- size: 'sm',
187
- showClose: false,
188
- footer,
189
- });
190
- }
191
- /**
192
- * Build a drawer component
193
- */
194
- function drawer(content, options) {
195
- const { id, title, position = 'right', size = 'md', showClose = true, closeOnBackdrop = true, footer, className = '', open = false, } = options;
196
- const sizeClasses = {
197
- left: { sm: 'w-64', md: 'w-80', lg: 'w-96', xl: 'w-[32rem]' },
198
- right: { sm: 'w-64', md: 'w-80', lg: 'w-96', xl: 'w-[32rem]' },
199
- top: { sm: 'h-32', md: 'h-48', lg: 'h-64', xl: 'h-96' },
200
- bottom: { sm: 'h-32', md: 'h-48', lg: 'h-64', xl: 'h-96' },
201
- };
202
- const positionClasses = {
203
- left: 'inset-y-0 left-0',
204
- right: 'inset-y-0 right-0',
205
- top: 'inset-x-0 top-0',
206
- bottom: 'inset-x-0 bottom-0',
207
- };
208
- const fullSizeClasses = {
209
- left: 'h-full',
210
- right: 'h-full',
211
- top: 'w-full',
212
- bottom: 'w-full',
213
- };
214
- const visibilityClasses = open ? '' : 'hidden';
215
- const headerHtml = title || showClose
216
- ? `<div class="flex items-center justify-between p-4 border-b border-divider">
217
- ${title ? `<h3 class="text-lg font-semibold text-text-primary">${(0, base_1.escapeHtml)(title)}</h3>` : '<div></div>'}
218
- ${showClose
219
- ? `
220
- <button
221
- type="button"
222
- class="p-1 rounded-lg text-text-secondary hover:text-text-primary hover:bg-gray-100 transition-colors"
223
- onclick="document.getElementById('${(0, base_1.escapeHtml)(id)}').classList.add('hidden')"
224
- aria-label="Close"
225
- >
226
- <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
227
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
228
- </svg>
229
- </button>
230
- `
231
- : ''}
232
- </div>`
233
- : '';
234
- const footerHtml = footer ? `<div class="p-4 border-t border-divider">${footer}</div>` : '';
235
- const backdropClickHandler = closeOnBackdrop
236
- ? `onclick="if (event.target === this) this.classList.add('hidden')"`
237
- : '';
238
- return `
239
- <div
240
- id="${(0, base_1.escapeHtml)(id)}"
241
- class="fixed inset-0 z-50 ${visibilityClasses}"
242
- ${backdropClickHandler}
243
- role="dialog"
244
- aria-modal="true"
245
- >
246
- <!-- Backdrop -->
247
- <div class="fixed inset-0 bg-black/50 transition-opacity"></div>
248
-
249
- <!-- Drawer -->
250
- <div class="fixed ${positionClasses[position]} ${sizeClasses[position][size]} ${fullSizeClasses[position]} bg-white shadow-xl flex flex-col ${className}">
251
- ${headerHtml}
252
- <div class="flex-1 overflow-y-auto p-4">
253
- ${content}
254
- </div>
255
- ${footerHtml}
256
- </div>
257
- </div>
258
- `;
259
- }
260
- //# sourceMappingURL=modal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"modal.js","sourceRoot":"","sources":["../../../src/components/modal.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAgEH,sBAwFC;AASD,oCAiBC;AAqCD,oCAiFC;AAsCD,wBAwFC;AApaD,0CAA6C;AAyC7C,+CAA+C;AAC/C,gBAAgB;AAChB,+CAA+C;AAE/C;;GAEG;AACH,SAAS,cAAc,CAAC,IAAe;IACrC,MAAM,KAAK,GAA8B;QACvC,EAAE,EAAE,UAAU;QACd,EAAE,EAAE,UAAU;QACd,EAAE,EAAE,UAAU;QACd,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,iBAAiB;KACxB,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,SAAgB,KAAK,CAAC,OAAe,EAAE,OAAqB;IAC1D,MAAM,EACJ,EAAE,EACF,KAAK,EACL,IAAI,GAAG,IAAI,EACX,SAAS,GAAG,IAAI,EAChB,eAAe,GAAG,IAAI,EACtB,aAAa,GAAG,IAAI,EACpB,MAAM,EACN,SAAS,GAAG,EAAE,EACd,IAAI,GAAG,KAAK,EACZ,OAAO,GACR,GAAG,OAAO,CAAC;IAEZ,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;IAE/C,MAAM,UAAU,GACd,KAAK,IAAI,SAAS;QAChB,CAAC,CAAC;UACE,KAAK,CAAC,CAAC,CAAC,uDAAuD,IAAA,iBAAU,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa;UAEvG,SAAS;YACP,CAAC,CAAC;;;;gDAIkC,IAAA,iBAAU,EAAC,EAAE,CAAC;cAChD,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,IAAA,iBAAU,EAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;cAClE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,IAAA,iBAAU,EAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;cAClE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,YAAY,IAAA,iBAAU,EAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;;;;;;;SAOjE;YACG,CAAC,CAAC,EACN;aACK;QACP,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,UAAU,GAAG,MAAM;QACvB,CAAC,CAAC;UACI,MAAM;aACH;QACT,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,oBAAoB,GAAG,eAAe;QAC1C,CAAC,CAAC,mEAAmE;QACrE,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,aAAa,GAAG,aAAa;QACjC,CAAC,CAAC;;;uCAGiC,IAAA,iBAAU,EAAC,EAAE,CAAC;;;gBAGrC;QACZ,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;;YAEG,IAAA,iBAAU,EAAC,EAAE,CAAC;kDACwB,iBAAiB;QAC3D,oBAAoB;;;yBAGH,IAAA,iBAAU,EAAC,EAAE,CAAC;;;;;;;sCAOD,WAAW,kCAAkC,SAAS;YAChF,UAAU;;cAER,OAAO;;YAET,UAAU;;;;MAIhB,aAAa;GAChB,CAAC;AACJ,CAAC;AAED,+CAA+C;AAC/C,gBAAgB;AAChB,+CAA+C;AAE/C;;GAEG;AACH,SAAgB,YAAY,CAC1B,cAAsB,EACtB,OAAe,EACf,UAAiE,EAAE;IAEnE,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC;IAEnD,MAAM,KAAK,GAAG;aACH,SAAS;wCACkB,IAAA,iBAAU,EAAC,OAAO,CAAC;GACxD,CAAC;IAEF,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;QACrB,OAAO,yBAAyB,KAAK,IAAI,cAAc,WAAW,CAAC;IACrE,CAAC;IAED,OAAO,IAAI,GAAG,IAAI,KAAK,IAAI,cAAc,KAAK,GAAG,GAAG,CAAC;AACvD,CAAC;AAkCD;;GAEG;AACH,SAAgB,YAAY,CAAC,OAA4B;IACvD,MAAM,EACJ,EAAE,EACF,KAAK,GAAG,gBAAgB,EACxB,OAAO,EACP,WAAW,GAAG,SAAS,EACvB,UAAU,GAAG,QAAQ,EACrB,OAAO,GAAG,SAAS,EACnB,IAAI,EACJ,SAAS,GACV,GAAG,OAAO,CAAC;IAEZ,MAAM,cAAc,GAA2B;QAC7C,OAAO,EAAE,2CAA2C;QACpD,MAAM,EAAE,yCAAyC;QACjD,OAAO,EAAE,2CAA2C;KACrD,CAAC;IAEF,MAAM,UAAU,GAA2B;QACzC,OAAO,EAAE,4BAA4B;QACrC,MAAM,EAAE,0BAA0B;QAClC,OAAO,EAAE,4BAA4B;KACtC,CAAC;IAEF,MAAM,YAAY,GAA2B;QAC3C,OAAO,EAAE;;WAEF;QACP,MAAM,EAAE;;WAED;QACP,OAAO,EAAE;;WAEF;KACR,CAAC;IAEF,MAAM,WAAW,GAAG,IAAI,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;IAElD,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,SAAS,CAAC,IAAI;YAAE,SAAS,CAAC,IAAI,CAAC,YAAY,IAAA,iBAAU,EAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9E,IAAI,SAAS,CAAC,MAAM;YAAE,SAAS,CAAC,IAAI,CAAC,cAAc,IAAA,iBAAU,EAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACpF,IAAI,SAAS,CAAC,GAAG;YAAE,SAAS,CAAC,IAAI,CAAC,WAAW,IAAA,iBAAU,EAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3E,IAAI,SAAS,CAAC,MAAM;YAAE,SAAS,CAAC,IAAI,CAAC,cAAc,IAAA,iBAAU,EAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACpF,IAAI,SAAS,CAAC,IAAI;YAAE,SAAS,CAAC,IAAI,CAAC,YAAY,IAAA,iBAAU,EAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,OAAO,GAAG;;mDAEiC,UAAU,CAAC,OAAO,CAAC;UAC5D,WAAW;;iEAE4C,IAAA,iBAAU,EAAC,KAAK,CAAC;uCAC3C,IAAA,iBAAU,EAAC,OAAO,CAAC;;GAEvD,CAAC;IAEF,MAAM,MAAM,GAAG;;;;0CAIyB,IAAA,iBAAU,EAAC,EAAE,CAAC;;QAEhD,IAAA,iBAAU,EAAC,UAAU,CAAC;;;;oCAIM,cAAc,CAAC,OAAO,CAAC;QACnD,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;0CACe,IAAA,iBAAU,EAAC,EAAE,CAAC;;QAEhD,IAAA,iBAAU,EAAC,WAAW,CAAC;;GAE5B,CAAC;IAEF,OAAO,KAAK,CAAC,OAAO,EAAE;QACpB,EAAE;QACF,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,KAAK;QAChB,MAAM;KACP,CAAC,CAAC;AACL,CAAC;AAmCD;;GAEG;AACH,SAAgB,MAAM,CAAC,OAAe,EAAE,OAAsB;IAC5D,MAAM,EACJ,EAAE,EACF,KAAK,EACL,QAAQ,GAAG,OAAO,EAClB,IAAI,GAAG,IAAI,EACX,SAAS,GAAG,IAAI,EAChB,eAAe,GAAG,IAAI,EACtB,MAAM,EACN,SAAS,GAAG,EAAE,EACd,IAAI,GAAG,KAAK,GACb,GAAG,OAAO,CAAC;IAEZ,MAAM,WAAW,GAA2C;QAC1D,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE;QAC7D,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE;QAC9D,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE;QACvD,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE;KAC3D,CAAC;IAEF,MAAM,eAAe,GAAmC;QACtD,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,mBAAmB;QAC1B,GAAG,EAAE,iBAAiB;QACtB,MAAM,EAAE,oBAAoB;KAC7B,CAAC;IAEF,MAAM,eAAe,GAAmC;QACtD,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,QAAQ;QACf,GAAG,EAAE,QAAQ;QACb,MAAM,EAAE,QAAQ;KACjB,CAAC;IAEF,MAAM,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;IAE/C,MAAM,UAAU,GACd,KAAK,IAAI,SAAS;QAChB,CAAC,CAAC;UACE,KAAK,CAAC,CAAC,CAAC,uDAAuD,IAAA,iBAAU,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa;UAEvG,SAAS;YACP,CAAC,CAAC;;;;gDAIkC,IAAA,iBAAU,EAAC,EAAE,CAAC;;;;;;;SAOrD;YACG,CAAC,CAAC,EACN;aACK;QACP,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,4CAA4C,MAAM,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAE5F,MAAM,oBAAoB,GAAG,eAAe;QAC1C,CAAC,CAAC,mEAAmE;QACrE,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;;YAEG,IAAA,iBAAU,EAAC,EAAE,CAAC;kCACQ,iBAAiB;QAC3C,oBAAoB;;;;;;;;0BAQF,eAAe,CAAC,QAAQ,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAC9E,eAAe,CAAC,QAAQ,CAC1B,qCAAqC,SAAS;UACtC,UAAU;;YAER,OAAO;;UAET,UAAU;;;GAGjB,CAAC;AACJ,CAAC","sourcesContent":["/**\n * Modal Component\n *\n * Dialog and modal components.\n */\n\nimport { escapeHtml } from '../layouts/base';\n\n// ============================================\n// Modal Types\n// ============================================\n\n/**\n * Modal size options\n */\nexport type ModalSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';\n\n/**\n * Modal component options\n */\nexport interface ModalOptions {\n /** Modal ID */\n id: string;\n /** Modal title */\n title?: string;\n /** Modal size */\n size?: ModalSize;\n /** Show close button */\n showClose?: boolean;\n /** Close on backdrop click */\n closeOnBackdrop?: boolean;\n /** Close on escape key */\n closeOnEscape?: boolean;\n /** Footer content */\n footer?: string;\n /** Additional CSS classes for modal */\n className?: string;\n /** Initially visible */\n open?: boolean;\n /** HTMX for closing */\n onClose?: {\n delete?: string;\n target?: string;\n swap?: string;\n };\n}\n\n// ============================================\n// Modal Builder\n// ============================================\n\n/**\n * Get size CSS classes\n */\nfunction getSizeClasses(size: ModalSize): string {\n const sizes: Record<ModalSize, string> = {\n sm: 'max-w-sm',\n md: 'max-w-md',\n lg: 'max-w-lg',\n xl: 'max-w-2xl',\n full: 'max-w-full mx-4',\n };\n return sizes[size];\n}\n\n/**\n * Build a modal component\n */\nexport function modal(content: string, options: ModalOptions): string {\n const {\n id,\n title,\n size = 'md',\n showClose = true,\n closeOnBackdrop = true,\n closeOnEscape = true,\n footer,\n className = '',\n open = false,\n onClose,\n } = options;\n\n const sizeClasses = getSizeClasses(size);\n const visibilityClasses = open ? '' : 'hidden';\n\n const headerHtml =\n title || showClose\n ? `<div class=\"flex items-center justify-between p-4 border-b border-divider\">\n ${title ? `<h3 class=\"text-lg font-semibold text-text-primary\">${escapeHtml(title)}</h3>` : '<div></div>'}\n ${\n showClose\n ? `\n <button\n type=\"button\"\n class=\"p-1 rounded-lg text-text-secondary hover:text-text-primary hover:bg-gray-100 transition-colors\"\n onclick=\"document.getElementById('${escapeHtml(id)}').classList.add('hidden')\"\n ${onClose?.delete ? `hx-delete=\"${escapeHtml(onClose.delete)}\"` : ''}\n ${onClose?.target ? `hx-target=\"${escapeHtml(onClose.target)}\"` : ''}\n ${onClose?.swap ? `hx-swap=\"${escapeHtml(onClose.swap)}\"` : ''}\n aria-label=\"Close\"\n >\n <svg class=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\"/>\n </svg>\n </button>\n `\n : ''\n }\n </div>`\n : '';\n\n const footerHtml = footer\n ? `<div class=\"flex items-center justify-end gap-3 p-4 border-t border-divider\">\n ${footer}\n </div>`\n : '';\n\n const backdropClickHandler = closeOnBackdrop\n ? `onclick=\"if (event.target === this) this.classList.add('hidden')\"`\n : '';\n\n const escapeHandler = closeOnEscape\n ? `<script>\n document.addEventListener('keydown', function(e) {\n if (e.key === 'Escape') {\n document.getElementById('${escapeHtml(id)}')?.classList.add('hidden');\n }\n });\n </script>`\n : '';\n\n return `\n <div\n id=\"${escapeHtml(id)}\"\n class=\"fixed inset-0 z-50 overflow-y-auto ${visibilityClasses}\"\n ${backdropClickHandler}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"${escapeHtml(id)}-title\"\n >\n <!-- Backdrop -->\n <div class=\"fixed inset-0 bg-black/50 transition-opacity\"></div>\n\n <!-- Modal container -->\n <div class=\"flex min-h-full items-center justify-center p-4\">\n <div class=\"relative w-full ${sizeClasses} bg-white rounded-xl shadow-xl ${className}\">\n ${headerHtml}\n <div class=\"p-4\">\n ${content}\n </div>\n ${footerHtml}\n </div>\n </div>\n </div>\n ${escapeHandler}\n `;\n}\n\n// ============================================\n// Modal Trigger\n// ============================================\n\n/**\n * Build a modal trigger button/element\n */\nexport function modalTrigger(\n triggerContent: string,\n modalId: string,\n options: { className?: string; tag?: 'button' | 'a' | 'span' } = {},\n): string {\n const { className = '', tag = 'button' } = options;\n\n const attrs = `\n class=\"${className}\"\n onclick=\"document.getElementById('${escapeHtml(modalId)}').classList.remove('hidden')\"\n `;\n\n if (tag === 'button') {\n return `<button type=\"button\" ${attrs}>${triggerContent}</button>`;\n }\n\n return `<${tag} ${attrs}>${triggerContent}</${tag}>`;\n}\n\n// ============================================\n// Confirmation Modal\n// ============================================\n\n/**\n * Confirmation modal options\n */\nexport interface ConfirmModalOptions {\n /** Modal ID */\n id: string;\n /** Dialog title */\n title?: string;\n /** Confirmation message */\n message: string;\n /** Confirm button text */\n confirmText?: string;\n /** Cancel button text */\n cancelText?: string;\n /** Confirm button variant */\n variant?: 'primary' | 'danger' | 'warning';\n /** Icon */\n icon?: string;\n /** HTMX for confirm action */\n onConfirm?: {\n post?: string;\n delete?: string;\n put?: string;\n target?: string;\n swap?: string;\n };\n}\n\n/**\n * Build a confirmation modal\n */\nexport function confirmModal(options: ConfirmModalOptions): string {\n const {\n id,\n title = 'Confirm Action',\n message,\n confirmText = 'Confirm',\n cancelText = 'Cancel',\n variant = 'primary',\n icon,\n onConfirm,\n } = options;\n\n const variantClasses: Record<string, string> = {\n primary: 'bg-primary hover:bg-primary/90 text-white',\n danger: 'bg-danger hover:bg-danger/90 text-white',\n warning: 'bg-warning hover:bg-warning/90 text-white',\n };\n\n const iconColors: Record<string, string> = {\n primary: 'text-primary bg-primary/10',\n danger: 'text-danger bg-danger/10',\n warning: 'text-warning bg-warning/10',\n };\n\n const defaultIcons: Record<string, string> = {\n primary: `<svg class=\"w-6 h-6\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8.228 9c.549-1.165 2.03-2 3.772-2 2.21 0 4 1.343 4 3 0 1.4-1.278 2.575-3.006 2.907-.542.104-.994.54-.994 1.093m0 3h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"/>\n </svg>`,\n danger: `<svg class=\"w-6 h-6\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\"/>\n </svg>`,\n warning: `<svg class=\"w-6 h-6\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\"/>\n </svg>`,\n };\n\n const displayIcon = icon || defaultIcons[variant];\n\n const htmxAttrs: string[] = [];\n if (onConfirm) {\n if (onConfirm.post) htmxAttrs.push(`hx-post=\"${escapeHtml(onConfirm.post)}\"`);\n if (onConfirm.delete) htmxAttrs.push(`hx-delete=\"${escapeHtml(onConfirm.delete)}\"`);\n if (onConfirm.put) htmxAttrs.push(`hx-put=\"${escapeHtml(onConfirm.put)}\"`);\n if (onConfirm.target) htmxAttrs.push(`hx-target=\"${escapeHtml(onConfirm.target)}\"`);\n if (onConfirm.swap) htmxAttrs.push(`hx-swap=\"${escapeHtml(onConfirm.swap)}\"`);\n }\n\n const content = `\n <div class=\"text-center\">\n <div class=\"mx-auto w-12 h-12 rounded-full ${iconColors[variant]} flex items-center justify-center mb-4\">\n ${displayIcon}\n </div>\n <h3 class=\"text-lg font-semibold text-text-primary mb-2\">${escapeHtml(title)}</h3>\n <p class=\"text-text-secondary\">${escapeHtml(message)}</p>\n </div>\n `;\n\n const footer = `\n <button\n type=\"button\"\n class=\"px-4 py-2 rounded-lg border border-border text-text-primary hover:bg-gray-50 transition-colors\"\n onclick=\"document.getElementById('${escapeHtml(id)}').classList.add('hidden')\"\n >\n ${escapeHtml(cancelText)}\n </button>\n <button\n type=\"button\"\n class=\"px-4 py-2 rounded-lg ${variantClasses[variant]} transition-colors\"\n ${htmxAttrs.join(' ')}\n onclick=\"document.getElementById('${escapeHtml(id)}').classList.add('hidden')\"\n >\n ${escapeHtml(confirmText)}\n </button>\n `;\n\n return modal(content, {\n id,\n size: 'sm',\n showClose: false,\n footer,\n });\n}\n\n// ============================================\n// Drawer Component\n// ============================================\n\n/**\n * Drawer position options\n */\nexport type DrawerPosition = 'left' | 'right' | 'top' | 'bottom';\n\n/**\n * Drawer options\n */\nexport interface DrawerOptions {\n /** Drawer ID */\n id: string;\n /** Drawer title */\n title?: string;\n /** Drawer position */\n position?: DrawerPosition;\n /** Drawer size (width for left/right, height for top/bottom) */\n size?: 'sm' | 'md' | 'lg' | 'xl';\n /** Show close button */\n showClose?: boolean;\n /** Close on backdrop click */\n closeOnBackdrop?: boolean;\n /** Footer content */\n footer?: string;\n /** Additional CSS classes */\n className?: string;\n /** Initially visible */\n open?: boolean;\n}\n\n/**\n * Build a drawer component\n */\nexport function drawer(content: string, options: DrawerOptions): string {\n const {\n id,\n title,\n position = 'right',\n size = 'md',\n showClose = true,\n closeOnBackdrop = true,\n footer,\n className = '',\n open = false,\n } = options;\n\n const sizeClasses: Record<string, Record<string, string>> = {\n left: { sm: 'w-64', md: 'w-80', lg: 'w-96', xl: 'w-[32rem]' },\n right: { sm: 'w-64', md: 'w-80', lg: 'w-96', xl: 'w-[32rem]' },\n top: { sm: 'h-32', md: 'h-48', lg: 'h-64', xl: 'h-96' },\n bottom: { sm: 'h-32', md: 'h-48', lg: 'h-64', xl: 'h-96' },\n };\n\n const positionClasses: Record<DrawerPosition, string> = {\n left: 'inset-y-0 left-0',\n right: 'inset-y-0 right-0',\n top: 'inset-x-0 top-0',\n bottom: 'inset-x-0 bottom-0',\n };\n\n const fullSizeClasses: Record<DrawerPosition, string> = {\n left: 'h-full',\n right: 'h-full',\n top: 'w-full',\n bottom: 'w-full',\n };\n\n const visibilityClasses = open ? '' : 'hidden';\n\n const headerHtml =\n title || showClose\n ? `<div class=\"flex items-center justify-between p-4 border-b border-divider\">\n ${title ? `<h3 class=\"text-lg font-semibold text-text-primary\">${escapeHtml(title)}</h3>` : '<div></div>'}\n ${\n showClose\n ? `\n <button\n type=\"button\"\n class=\"p-1 rounded-lg text-text-secondary hover:text-text-primary hover:bg-gray-100 transition-colors\"\n onclick=\"document.getElementById('${escapeHtml(id)}').classList.add('hidden')\"\n aria-label=\"Close\"\n >\n <svg class=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\"/>\n </svg>\n </button>\n `\n : ''\n }\n </div>`\n : '';\n\n const footerHtml = footer ? `<div class=\"p-4 border-t border-divider\">${footer}</div>` : '';\n\n const backdropClickHandler = closeOnBackdrop\n ? `onclick=\"if (event.target === this) this.classList.add('hidden')\"`\n : '';\n\n return `\n <div\n id=\"${escapeHtml(id)}\"\n class=\"fixed inset-0 z-50 ${visibilityClasses}\"\n ${backdropClickHandler}\n role=\"dialog\"\n aria-modal=\"true\"\n >\n <!-- Backdrop -->\n <div class=\"fixed inset-0 bg-black/50 transition-opacity\"></div>\n\n <!-- Drawer -->\n <div class=\"fixed ${positionClasses[position]} ${sizeClasses[position][size]} ${\n fullSizeClasses[position]\n } bg-white shadow-xl flex flex-col ${className}\">\n ${headerHtml}\n <div class=\"flex-1 overflow-y-auto p-4\">\n ${content}\n </div>\n ${footerHtml}\n </div>\n </div>\n `;\n}\n"]}