@frontmcp/ui 0.5.0 → 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 +28 -87
  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,218 +0,0 @@
1
- "use strict";
2
- /**
3
- * OAuth Consent Page Template
4
- *
5
- * OAuth/OpenID Connect consent page for authorization flows.
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.consentPage = consentPage;
9
- exports.consentSuccessPage = consentSuccessPage;
10
- exports.consentDeniedPage = consentDeniedPage;
11
- const layouts_1 = require("../layouts");
12
- const button_1 = require("../components/button");
13
- const list_1 = require("../components/list");
14
- const form_1 = require("../components/form");
15
- const alert_1 = require("../components/alert");
16
- const base_1 = require("../layouts/base");
17
- // ============================================
18
- // Consent Page Builder
19
- // ============================================
20
- /**
21
- * Build an OAuth consent page
22
- */
23
- function consentPage(options) {
24
- const { client, user, permissions, approveUrl, denyUrl, csrfToken, state, redirectUri, responseType, nonce, codeChallenge, codeChallengeMethod, error, layout = {}, warningMessage, allowScopeSelection = false, approveText = 'Allow', denyText = 'Deny', } = options;
25
- // Error alert
26
- const errorAlert = error ? (0, alert_1.alert)(error, { variant: 'danger', dismissible: true }) : '';
27
- // Warning for unverified apps
28
- const unverifiedWarning = !client.verified
29
- ? (0, alert_1.alert)(warningMessage || 'This application has not been verified. Only authorize applications you trust.', {
30
- variant: 'warning',
31
- title: 'Unverified Application',
32
- })
33
- : '';
34
- // Client header
35
- const clientHeader = `
36
- <div class="text-center mb-6">
37
- ${client.icon
38
- ? `<img src="${(0, base_1.escapeHtml)(client.icon)}" alt="${(0, base_1.escapeHtml)(client.name)}" class="w-16 h-16 rounded-xl mx-auto mb-4 shadow-md">`
39
- : `<div class="inline-flex items-center justify-center w-16 h-16 rounded-xl bg-gradient-to-br from-primary to-secondary text-white font-bold text-2xl mx-auto mb-4 shadow-md">
40
- ${(0, base_1.escapeHtml)(client.name.charAt(0).toUpperCase())}
41
- </div>`}
42
- <h1 class="text-xl font-bold text-text-primary">
43
- ${client.verified
44
- ? `<span class="inline-flex items-center gap-1">
45
- ${(0, base_1.escapeHtml)(client.name)}
46
- <svg class="w-5 h-5 text-primary" fill="currentColor" viewBox="0 0 20 20">
47
- <path fill-rule="evenodd" d="M6.267 3.455a3.066 3.066 0 001.745-.723 3.066 3.066 0 013.976 0 3.066 3.066 0 001.745.723 3.066 3.066 0 012.812 2.812c.051.643.304 1.254.723 1.745a3.066 3.066 0 010 3.976 3.066 3.066 0 00-.723 1.745 3.066 3.066 0 01-2.812 2.812 3.066 3.066 0 00-1.745.723 3.066 3.066 0 01-3.976 0 3.066 3.066 0 00-1.745-.723 3.066 3.066 0 01-2.812-2.812 3.066 3.066 0 00-.723-1.745 3.066 3.066 0 010-3.976 3.066 3.066 0 00.723-1.745 3.066 3.066 0 012.812-2.812zm7.44 5.252a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"/>
48
- </svg>
49
- </span>`
50
- : (0, base_1.escapeHtml)(client.name)}
51
- </h1>
52
- <p class="text-text-secondary mt-1">wants to access your account</p>
53
- </div>
54
- `;
55
- // User info section
56
- const userSection = user
57
- ? `
58
- <div class="flex items-center gap-3 p-4 bg-gray-50 rounded-lg mb-6">
59
- ${user.avatar
60
- ? `<img src="${(0, base_1.escapeHtml)(user.avatar)}" class="w-12 h-12 rounded-full">`
61
- : `<div class="w-12 h-12 rounded-full bg-primary text-white flex items-center justify-center font-semibold text-lg">
62
- ${(0, base_1.escapeHtml)((user.name || user.email || 'U').charAt(0).toUpperCase())}
63
- </div>`}
64
- <div class="flex-1 min-w-0">
65
- ${user.name ? `<div class="font-medium text-text-primary truncate">${(0, base_1.escapeHtml)(user.name)}</div>` : ''}
66
- ${user.email ? `<div class="text-sm text-text-secondary truncate">${(0, base_1.escapeHtml)(user.email)}</div>` : ''}
67
- </div>
68
- <a href="/login?prompt=select_account" class="text-sm text-primary hover:text-primary/80">
69
- Switch account
70
- </a>
71
- </div>
72
- `
73
- : '';
74
- // Permissions section
75
- const permissionsSection = `
76
- <div class="mb-6">
77
- <h3 class="font-medium text-text-primary mb-3">This will allow ${(0, base_1.escapeHtml)(client.name)} to:</h3>
78
- ${(0, list_1.permissionList)(permissions, {
79
- checkable: allowScopeSelection,
80
- inputName: 'scope',
81
- })}
82
- </div>
83
- `;
84
- // Hidden form fields
85
- const hiddenFields = [
86
- csrfToken ? (0, form_1.csrfInput)(csrfToken) : '',
87
- state ? (0, form_1.hiddenInput)('state', state) : '',
88
- redirectUri ? (0, form_1.hiddenInput)('redirect_uri', redirectUri) : '',
89
- responseType ? (0, form_1.hiddenInput)('response_type', responseType) : '',
90
- nonce ? (0, form_1.hiddenInput)('nonce', nonce) : '',
91
- codeChallenge ? (0, form_1.hiddenInput)('code_challenge', codeChallenge) : '',
92
- codeChallengeMethod ? (0, form_1.hiddenInput)('code_challenge_method', codeChallengeMethod) : '',
93
- (0, form_1.hiddenInput)('client_id', client.clientId),
94
- // Include all scopes if not selectable
95
- !allowScopeSelection ? permissions.map((p) => (0, form_1.hiddenInput)('scope[]', p.scope)).join('\n') : '',
96
- ]
97
- .filter(Boolean)
98
- .join('\n');
99
- // Action buttons
100
- const actionsHtml = `
101
- <div class="flex gap-3 pt-4">
102
- <form action="${(0, base_1.escapeHtml)(denyUrl || approveUrl)}" method="post" class="flex-1">
103
- ${hiddenFields}
104
- <input type="hidden" name="action" value="deny">
105
- ${(0, button_1.outlineButton)(denyText, { type: 'submit', fullWidth: true })}
106
- </form>
107
- <form action="${(0, base_1.escapeHtml)(approveUrl)}" method="post" class="flex-1">
108
- ${hiddenFields}
109
- <input type="hidden" name="action" value="approve">
110
- ${(0, button_1.primaryButton)(approveText, { type: 'submit', fullWidth: true })}
111
- </form>
112
- </div>
113
- `;
114
- // Privacy/Terms links
115
- const linksHtml = client.privacyUrl || client.termsUrl || client.websiteUrl
116
- ? `
117
- <div class="text-center text-xs text-text-secondary mt-6 space-x-3">
118
- ${client.websiteUrl
119
- ? `<a href="${(0, base_1.escapeHtml)(client.websiteUrl)}" target="_blank" rel="noopener" class="hover:text-primary">Website</a>`
120
- : ''}
121
- ${client.privacyUrl
122
- ? `<a href="${(0, base_1.escapeHtml)(client.privacyUrl)}" target="_blank" rel="noopener" class="hover:text-primary">Privacy Policy</a>`
123
- : ''}
124
- ${client.termsUrl
125
- ? `<a href="${(0, base_1.escapeHtml)(client.termsUrl)}" target="_blank" rel="noopener" class="hover:text-primary">Terms of Service</a>`
126
- : ''}
127
- </div>
128
- `
129
- : '';
130
- // Combine all content
131
- const content = `
132
- ${errorAlert}
133
- ${unverifiedWarning}
134
- ${clientHeader}
135
- ${userSection}
136
- ${permissionsSection}
137
- ${actionsHtml}
138
- ${linksHtml}
139
- `;
140
- return (0, layouts_1.consentLayout)(content, {
141
- title: `Authorize ${client.name}`,
142
- clientName: client.name,
143
- clientIcon: client.icon,
144
- userInfo: user,
145
- ...layout,
146
- });
147
- }
148
- /**
149
- * Build a consent success page
150
- */
151
- function consentSuccessPage(options) {
152
- const { client, redirectUrl, autoRedirectDelay = 3000, layout = {} } = options;
153
- const redirectScript = redirectUrl && autoRedirectDelay > 0
154
- ? `
155
- <script>
156
- setTimeout(() => {
157
- window.location.href = '${(0, base_1.escapeHtml)(redirectUrl)}';
158
- }, ${autoRedirectDelay});
159
- </script>
160
- `
161
- : '';
162
- const content = `
163
- <div class="text-center">
164
- <div class="inline-flex items-center justify-center w-16 h-16 rounded-full bg-success/10 mb-6">
165
- <svg class="w-8 h-8 text-success" fill="none" stroke="currentColor" viewBox="0 0 24 24">
166
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"/>
167
- </svg>
168
- </div>
169
- <h1 class="text-2xl font-bold text-text-primary mb-2">Authorization Successful</h1>
170
- <p class="text-text-secondary mb-4">
171
- You have authorized <strong>${(0, base_1.escapeHtml)(client.name)}</strong> to access your account.
172
- </p>
173
- ${redirectUrl
174
- ? `<p class="text-sm text-text-secondary">Redirecting you back to ${(0, base_1.escapeHtml)(client.name)}...</p>`
175
- : ''}
176
- </div>
177
- ${redirectScript}
178
- `;
179
- return (0, layouts_1.consentLayout)(content, {
180
- title: 'Authorization Successful',
181
- clientName: client.name,
182
- clientIcon: client.icon,
183
- ...layout,
184
- });
185
- }
186
- /**
187
- * Build a consent denied page
188
- */
189
- function consentDeniedPage(options) {
190
- const { client, redirectUrl, layout = {} } = options;
191
- const content = `
192
- <div class="text-center">
193
- <div class="inline-flex items-center justify-center w-16 h-16 rounded-full bg-gray-100 mb-6">
194
- <svg class="w-8 h-8 text-gray-500" fill="none" stroke="currentColor" viewBox="0 0 24 24">
195
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
196
- </svg>
197
- </div>
198
- <h1 class="text-2xl font-bold text-text-primary mb-2">Authorization Denied</h1>
199
- <p class="text-text-secondary mb-6">
200
- You denied <strong>${(0, base_1.escapeHtml)(client.name)}</strong> access to your account.
201
- </p>
202
- ${redirectUrl
203
- ? `
204
- <a href="${(0, base_1.escapeHtml)(redirectUrl)}" class="inline-block px-6 py-3 bg-primary hover:bg-primary/90 text-white font-medium rounded-lg transition-colors">
205
- Return to ${(0, base_1.escapeHtml)(client.name)}
206
- </a>
207
- `
208
- : ''}
209
- </div>
210
- `;
211
- return (0, layouts_1.consentLayout)(content, {
212
- title: 'Authorization Denied',
213
- clientName: client.name,
214
- clientIcon: client.icon,
215
- ...layout,
216
- });
217
- }
218
- //# sourceMappingURL=consent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"consent.js","sourceRoot":"","sources":["../../../src/pages/consent.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * OAuth Consent Page Template\n *\n * OAuth/OpenID Connect consent page for authorization flows.\n */\n\nimport { consentLayout, type ConsentLayoutOptions } from '../layouts';\nimport { primaryButton, outlineButton, dangerButton } from '../components/button';\nimport { permissionList, type PermissionItem } from '../components/list';\nimport { form, formActions, csrfInput, hiddenInput } from '../components/form';\nimport { alert } from '../components/alert';\nimport { escapeHtml } from '../layouts/base';\n\n// ============================================\n// Consent Page Types\n// ============================================\n\n/**\n * Client/Application information\n */\nexport interface ClientInfo {\n /** Client ID */\n clientId: string;\n /** Client name */\n name: string;\n /** Client icon/logo URL */\n icon?: string;\n /** Client website URL */\n websiteUrl?: string;\n /** Privacy policy URL */\n privacyUrl?: string;\n /** Terms of service URL */\n termsUrl?: string;\n /** Verified client badge */\n verified?: boolean;\n}\n\n/**\n * User information\n */\nexport interface UserInfo {\n /** User ID */\n id?: string;\n /** User name */\n name?: string;\n /** User email */\n email?: string;\n /** Avatar URL */\n avatar?: string;\n}\n\n/**\n * Consent page options\n */\nexport interface ConsentPageOptions {\n /** Client/App requesting authorization */\n client: ClientInfo;\n /** Current user info */\n user?: UserInfo;\n /** Requested permissions/scopes */\n permissions: PermissionItem[];\n /** Form action URL for approval */\n approveUrl: string;\n /** Form action URL for denial (optional, uses approveUrl if not provided) */\n denyUrl?: string;\n /** CSRF token */\n csrfToken?: string;\n /** OAuth state parameter */\n state?: string;\n /** Redirect URI */\n redirectUri?: string;\n /** Response type */\n responseType?: string;\n /** Nonce */\n nonce?: string;\n /** Code challenge */\n codeChallenge?: string;\n /** Code challenge method */\n codeChallengeMethod?: string;\n /** Error message */\n error?: string;\n /** Layout options */\n layout?: Partial<ConsentLayoutOptions>;\n /** Custom warning message */\n warningMessage?: string;\n /** Allow partial scope selection */\n allowScopeSelection?: boolean;\n /** Custom approve button text */\n approveText?: string;\n /** Custom deny button text */\n denyText?: string;\n}\n\n// ============================================\n// Consent Page Builder\n// ============================================\n\n/**\n * Build an OAuth consent page\n */\nexport function consentPage(options: ConsentPageOptions): string {\n const {\n client,\n user,\n permissions,\n approveUrl,\n denyUrl,\n csrfToken,\n state,\n redirectUri,\n responseType,\n nonce,\n codeChallenge,\n codeChallengeMethod,\n error,\n layout = {},\n warningMessage,\n allowScopeSelection = false,\n approveText = 'Allow',\n denyText = 'Deny',\n } = options;\n\n // Error alert\n const errorAlert = error ? alert(error, { variant: 'danger', dismissible: true }) : '';\n\n // Warning for unverified apps\n const unverifiedWarning = !client.verified\n ? alert(warningMessage || 'This application has not been verified. Only authorize applications you trust.', {\n variant: 'warning',\n title: 'Unverified Application',\n })\n : '';\n\n // Client header\n const clientHeader = `\n <div class=\"text-center mb-6\">\n ${\n client.icon\n ? `<img src=\"${escapeHtml(client.icon)}\" alt=\"${escapeHtml(\n client.name,\n )}\" class=\"w-16 h-16 rounded-xl mx-auto mb-4 shadow-md\">`\n : `<div class=\"inline-flex items-center justify-center w-16 h-16 rounded-xl bg-gradient-to-br from-primary to-secondary text-white font-bold text-2xl mx-auto mb-4 shadow-md\">\n ${escapeHtml(client.name.charAt(0).toUpperCase())}\n </div>`\n }\n <h1 class=\"text-xl font-bold text-text-primary\">\n ${\n client.verified\n ? `<span class=\"inline-flex items-center gap-1\">\n ${escapeHtml(client.name)}\n <svg class=\"w-5 h-5 text-primary\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fill-rule=\"evenodd\" d=\"M6.267 3.455a3.066 3.066 0 001.745-.723 3.066 3.066 0 013.976 0 3.066 3.066 0 001.745.723 3.066 3.066 0 012.812 2.812c.051.643.304 1.254.723 1.745a3.066 3.066 0 010 3.976 3.066 3.066 0 00-.723 1.745 3.066 3.066 0 01-2.812 2.812 3.066 3.066 0 00-1.745.723 3.066 3.066 0 01-3.976 0 3.066 3.066 0 00-1.745-.723 3.066 3.066 0 01-2.812-2.812 3.066 3.066 0 00-.723-1.745 3.066 3.066 0 010-3.976 3.066 3.066 0 00.723-1.745 3.066 3.066 0 012.812-2.812zm7.44 5.252a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\" clip-rule=\"evenodd\"/>\n </svg>\n </span>`\n : escapeHtml(client.name)\n }\n </h1>\n <p class=\"text-text-secondary mt-1\">wants to access your account</p>\n </div>\n `;\n\n // User info section\n const userSection = user\n ? `\n <div class=\"flex items-center gap-3 p-4 bg-gray-50 rounded-lg mb-6\">\n ${\n user.avatar\n ? `<img src=\"${escapeHtml(user.avatar)}\" class=\"w-12 h-12 rounded-full\">`\n : `<div class=\"w-12 h-12 rounded-full bg-primary text-white flex items-center justify-center font-semibold text-lg\">\n ${escapeHtml((user.name || user.email || 'U').charAt(0).toUpperCase())}\n </div>`\n }\n <div class=\"flex-1 min-w-0\">\n ${user.name ? `<div class=\"font-medium text-text-primary truncate\">${escapeHtml(user.name)}</div>` : ''}\n ${user.email ? `<div class=\"text-sm text-text-secondary truncate\">${escapeHtml(user.email)}</div>` : ''}\n </div>\n <a href=\"/login?prompt=select_account\" class=\"text-sm text-primary hover:text-primary/80\">\n Switch account\n </a>\n </div>\n `\n : '';\n\n // Permissions section\n const permissionsSection = `\n <div class=\"mb-6\">\n <h3 class=\"font-medium text-text-primary mb-3\">This will allow ${escapeHtml(client.name)} to:</h3>\n ${permissionList(permissions, {\n checkable: allowScopeSelection,\n inputName: 'scope',\n })}\n </div>\n `;\n\n // Hidden form fields\n const hiddenFields = [\n csrfToken ? csrfInput(csrfToken) : '',\n state ? hiddenInput('state', state) : '',\n redirectUri ? hiddenInput('redirect_uri', redirectUri) : '',\n responseType ? hiddenInput('response_type', responseType) : '',\n nonce ? hiddenInput('nonce', nonce) : '',\n codeChallenge ? hiddenInput('code_challenge', codeChallenge) : '',\n codeChallengeMethod ? hiddenInput('code_challenge_method', codeChallengeMethod) : '',\n hiddenInput('client_id', client.clientId),\n // Include all scopes if not selectable\n !allowScopeSelection ? permissions.map((p) => hiddenInput('scope[]', p.scope)).join('\\n') : '',\n ]\n .filter(Boolean)\n .join('\\n');\n\n // Action buttons\n const actionsHtml = `\n <div class=\"flex gap-3 pt-4\">\n <form action=\"${escapeHtml(denyUrl || approveUrl)}\" method=\"post\" class=\"flex-1\">\n ${hiddenFields}\n <input type=\"hidden\" name=\"action\" value=\"deny\">\n ${outlineButton(denyText, { type: 'submit', fullWidth: true })}\n </form>\n <form action=\"${escapeHtml(approveUrl)}\" method=\"post\" class=\"flex-1\">\n ${hiddenFields}\n <input type=\"hidden\" name=\"action\" value=\"approve\">\n ${primaryButton(approveText, { type: 'submit', fullWidth: true })}\n </form>\n </div>\n `;\n\n // Privacy/Terms links\n const linksHtml =\n client.privacyUrl || client.termsUrl || client.websiteUrl\n ? `\n <div class=\"text-center text-xs text-text-secondary mt-6 space-x-3\">\n ${\n client.websiteUrl\n ? `<a href=\"${escapeHtml(\n client.websiteUrl,\n )}\" target=\"_blank\" rel=\"noopener\" class=\"hover:text-primary\">Website</a>`\n : ''\n }\n ${\n client.privacyUrl\n ? `<a href=\"${escapeHtml(\n client.privacyUrl,\n )}\" target=\"_blank\" rel=\"noopener\" class=\"hover:text-primary\">Privacy Policy</a>`\n : ''\n }\n ${\n client.termsUrl\n ? `<a href=\"${escapeHtml(\n client.termsUrl,\n )}\" target=\"_blank\" rel=\"noopener\" class=\"hover:text-primary\">Terms of Service</a>`\n : ''\n }\n </div>\n `\n : '';\n\n // Combine all content\n const content = `\n ${errorAlert}\n ${unverifiedWarning}\n ${clientHeader}\n ${userSection}\n ${permissionsSection}\n ${actionsHtml}\n ${linksHtml}\n `;\n\n return consentLayout(content, {\n title: `Authorize ${client.name}`,\n clientName: client.name,\n clientIcon: client.icon,\n userInfo: user,\n ...layout,\n });\n}\n\n// ============================================\n// Consent Success Page\n// ============================================\n\n/**\n * Consent success page options\n */\nexport interface ConsentSuccessOptions {\n /** Client info */\n client: ClientInfo;\n /** Redirect URL */\n redirectUrl?: string;\n /** Auto redirect delay (ms) */\n autoRedirectDelay?: number;\n /** Layout options */\n layout?: Partial<ConsentLayoutOptions>;\n}\n\n/**\n * Build a consent success page\n */\nexport function consentSuccessPage(options: ConsentSuccessOptions): string {\n const { client, redirectUrl, autoRedirectDelay = 3000, layout = {} } = options;\n\n const redirectScript =\n redirectUrl && autoRedirectDelay > 0\n ? `\n <script>\n setTimeout(() => {\n window.location.href = '${escapeHtml(redirectUrl)}';\n }, ${autoRedirectDelay});\n </script>\n `\n : '';\n\n const content = `\n <div class=\"text-center\">\n <div class=\"inline-flex items-center justify-center w-16 h-16 rounded-full bg-success/10 mb-6\">\n <svg class=\"w-8 h-8 text-success\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 13l4 4L19 7\"/>\n </svg>\n </div>\n <h1 class=\"text-2xl font-bold text-text-primary mb-2\">Authorization Successful</h1>\n <p class=\"text-text-secondary mb-4\">\n You have authorized <strong>${escapeHtml(client.name)}</strong> to access your account.\n </p>\n ${\n redirectUrl\n ? `<p class=\"text-sm text-text-secondary\">Redirecting you back to ${escapeHtml(client.name)}...</p>`\n : ''\n }\n </div>\n ${redirectScript}\n `;\n\n return consentLayout(content, {\n title: 'Authorization Successful',\n clientName: client.name,\n clientIcon: client.icon,\n ...layout,\n });\n}\n\n// ============================================\n// Consent Denied Page\n// ============================================\n\n/**\n * Consent denied page options\n */\nexport interface ConsentDeniedOptions {\n /** Client info */\n client: ClientInfo;\n /** Redirect URL */\n redirectUrl?: string;\n /** Layout options */\n layout?: Partial<ConsentLayoutOptions>;\n}\n\n/**\n * Build a consent denied page\n */\nexport function consentDeniedPage(options: ConsentDeniedOptions): string {\n const { client, redirectUrl, layout = {} } = options;\n\n const content = `\n <div class=\"text-center\">\n <div class=\"inline-flex items-center justify-center w-16 h-16 rounded-full bg-gray-100 mb-6\">\n <svg class=\"w-8 h-8 text-gray-500\" 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 </div>\n <h1 class=\"text-2xl font-bold text-text-primary mb-2\">Authorization Denied</h1>\n <p class=\"text-text-secondary mb-6\">\n You denied <strong>${escapeHtml(client.name)}</strong> access to your account.\n </p>\n ${\n redirectUrl\n ? `\n <a href=\"${escapeHtml(\n redirectUrl,\n )}\" class=\"inline-block px-6 py-3 bg-primary hover:bg-primary/90 text-white font-medium rounded-lg transition-colors\">\n Return to ${escapeHtml(client.name)}\n </a>\n `\n : ''\n }\n </div>\n `;\n\n return consentLayout(content, {\n title: 'Authorization Denied',\n clientName: client.name,\n clientIcon: client.icon,\n ...layout,\n });\n}\n"]}
@@ -1,100 +0,0 @@
1
- /**
2
- * Error Page Templates
3
- *
4
- * Various error page templates (404, 500, etc.)
5
- */
6
- import { type ErrorLayoutOptions } from '../layouts';
7
- /**
8
- * Error page options
9
- */
10
- export interface ErrorPageOptions {
11
- /** Error code (404, 500, etc.) */
12
- code?: string | number;
13
- /** Error title */
14
- title?: string;
15
- /** Error message */
16
- message?: string;
17
- /** Detailed error (for development) */
18
- details?: string;
19
- /** Show stack trace (development only) */
20
- showStack?: boolean;
21
- /** Stack trace */
22
- stack?: string;
23
- /** Show retry button */
24
- showRetry?: boolean;
25
- /** Retry URL */
26
- retryUrl?: string;
27
- /** Show home button */
28
- showHome?: boolean;
29
- /** Home URL */
30
- homeUrl?: string;
31
- /** Show back button */
32
- showBack?: boolean;
33
- /** Custom actions HTML */
34
- actions?: string;
35
- /** Layout options */
36
- layout?: Partial<ErrorLayoutOptions>;
37
- /** Request ID (for support) */
38
- requestId?: string;
39
- }
40
- /**
41
- * Build a generic error page
42
- */
43
- export declare function errorPage(options: ErrorPageOptions): string;
44
- /**
45
- * 404 Not Found page
46
- */
47
- export declare function notFoundPage(options?: Partial<ErrorPageOptions>): string;
48
- /**
49
- * 403 Forbidden page
50
- */
51
- export declare function forbiddenPage(options?: Partial<ErrorPageOptions>): string;
52
- /**
53
- * 401 Unauthorized page
54
- */
55
- export declare function unauthorizedPage(options?: Partial<ErrorPageOptions> & {
56
- loginUrl?: string;
57
- }): string;
58
- /**
59
- * 500 Internal Server Error page
60
- */
61
- export declare function serverErrorPage(options?: Partial<ErrorPageOptions>): string;
62
- /**
63
- * 503 Service Unavailable page
64
- */
65
- export declare function maintenancePage(options?: Partial<ErrorPageOptions> & {
66
- estimatedTime?: string;
67
- }): string;
68
- /**
69
- * 429 Rate Limit page
70
- */
71
- export declare function rateLimitPage(options?: Partial<ErrorPageOptions> & {
72
- retryAfter?: number;
73
- }): string;
74
- /**
75
- * Offline page
76
- */
77
- export declare function offlinePage(options?: Partial<ErrorPageOptions>): string;
78
- /**
79
- * Session expired page
80
- */
81
- export declare function sessionExpiredPage(options?: Partial<ErrorPageOptions> & {
82
- loginUrl?: string;
83
- }): string;
84
- /**
85
- * OAuth error page options
86
- */
87
- export interface OAuthErrorPageOptions extends Partial<ErrorPageOptions> {
88
- /** OAuth error code */
89
- errorCode?: string;
90
- /** OAuth error description */
91
- errorDescription?: string;
92
- /** Redirect URI */
93
- redirectUri?: string;
94
- /** Client name */
95
- clientName?: string;
96
- }
97
- /**
98
- * OAuth error page
99
- */
100
- export declare function oauthErrorPage(options: OAuthErrorPageOptions): string;
@@ -1,263 +0,0 @@
1
- "use strict";
2
- /**
3
- * Error Page Templates
4
- *
5
- * Various error page templates (404, 500, etc.)
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.errorPage = errorPage;
9
- exports.notFoundPage = notFoundPage;
10
- exports.forbiddenPage = forbiddenPage;
11
- exports.unauthorizedPage = unauthorizedPage;
12
- exports.serverErrorPage = serverErrorPage;
13
- exports.maintenancePage = maintenancePage;
14
- exports.rateLimitPage = rateLimitPage;
15
- exports.offlinePage = offlinePage;
16
- exports.sessionExpiredPage = sessionExpiredPage;
17
- exports.oauthErrorPage = oauthErrorPage;
18
- const layouts_1 = require("../layouts");
19
- const base_1 = require("../layouts/base");
20
- // ============================================
21
- // Error Page Builder
22
- // ============================================
23
- /**
24
- * Build a generic error page
25
- */
26
- function errorPage(options) {
27
- const { code, title = 'Something went wrong', message, details, showStack = false, stack, showRetry = true, retryUrl, showHome = true, homeUrl = '/', showBack = false, actions, layout = {}, requestId, } = options;
28
- // Details section (for development)
29
- const detailsHtml = details || (showStack && stack)
30
- ? `
31
- <div class="mt-8 text-left">
32
- ${details
33
- ? `
34
- <div class="p-4 bg-gray-50 rounded-lg text-sm text-text-secondary mb-4">
35
- <strong class="text-text-primary">Details:</strong>
36
- <p class="mt-1">${(0, base_1.escapeHtml)(details)}</p>
37
- </div>
38
- `
39
- : ''}
40
- ${showStack && stack
41
- ? `
42
- <details class="p-4 bg-gray-900 rounded-lg text-sm">
43
- <summary class="text-gray-300 cursor-pointer hover:text-white">Stack Trace</summary>
44
- <pre class="mt-2 text-xs text-gray-400 overflow-x-auto whitespace-pre-wrap">${(0, base_1.escapeHtml)(stack)}</pre>
45
- </details>
46
- `
47
- : ''}
48
- </div>
49
- `
50
- : '';
51
- // Request ID for support
52
- const requestIdHtml = requestId
53
- ? `
54
- <p class="text-xs text-text-secondary mt-6">
55
- Request ID: <code class="px-1.5 py-0.5 bg-gray-100 rounded text-xs">${(0, base_1.escapeHtml)(requestId)}</code>
56
- </p>
57
- `
58
- : '';
59
- // Custom actions or default buttons are handled by errorLayout
60
- const content = `
61
- ${detailsHtml}
62
- ${actions || ''}
63
- ${requestIdHtml}
64
- `;
65
- return (0, layouts_1.errorLayout)(content, {
66
- title: `${code ? `Error ${code} - ` : ''}${title}`,
67
- errorCode: code?.toString(),
68
- errorTitle: title,
69
- errorMessage: message,
70
- showRetry,
71
- retryUrl,
72
- showHome,
73
- homeUrl,
74
- ...layout,
75
- });
76
- }
77
- // ============================================
78
- // Specific Error Pages
79
- // ============================================
80
- /**
81
- * 404 Not Found page
82
- */
83
- function notFoundPage(options = {}) {
84
- return errorPage({
85
- code: 404,
86
- title: 'Page Not Found',
87
- message: "The page you're looking for doesn't exist or has been moved.",
88
- showRetry: false,
89
- ...options,
90
- });
91
- }
92
- /**
93
- * 403 Forbidden page
94
- */
95
- function forbiddenPage(options = {}) {
96
- return errorPage({
97
- code: 403,
98
- title: 'Access Denied',
99
- message: "You don't have permission to access this resource.",
100
- showRetry: false,
101
- ...options,
102
- });
103
- }
104
- /**
105
- * 401 Unauthorized page
106
- */
107
- function unauthorizedPage(options = {}) {
108
- const { loginUrl = '/login', ...rest } = options;
109
- return errorPage({
110
- code: 401,
111
- title: 'Authentication Required',
112
- message: 'Please sign in to access this resource.',
113
- showRetry: false,
114
- showHome: false,
115
- actions: `
116
- <div class="flex justify-center mt-8">
117
- <a href="${(0, base_1.escapeHtml)(loginUrl)}" class="px-6 py-3 bg-primary hover:bg-primary/90 text-white font-medium rounded-lg transition-colors">
118
- Sign In
119
- </a>
120
- </div>
121
- `,
122
- ...rest,
123
- });
124
- }
125
- /**
126
- * 500 Internal Server Error page
127
- */
128
- function serverErrorPage(options = {}) {
129
- return errorPage({
130
- code: 500,
131
- title: 'Server Error',
132
- message: "We're having trouble processing your request. Please try again later.",
133
- showRetry: true,
134
- ...options,
135
- });
136
- }
137
- /**
138
- * 503 Service Unavailable page
139
- */
140
- function maintenancePage(options = {}) {
141
- const { estimatedTime, ...rest } = options;
142
- const timeMessage = estimatedTime
143
- ? `We expect to be back by ${(0, base_1.escapeHtml)(estimatedTime)}.`
144
- : "We'll be back shortly.";
145
- return errorPage({
146
- code: 503,
147
- title: 'Under Maintenance',
148
- message: `We're currently performing scheduled maintenance. ${timeMessage}`,
149
- showRetry: true,
150
- showHome: false,
151
- ...rest,
152
- });
153
- }
154
- /**
155
- * 429 Rate Limit page
156
- */
157
- function rateLimitPage(options = {}) {
158
- const { retryAfter, ...rest } = options;
159
- const retryMessage = retryAfter
160
- ? `Please wait ${retryAfter} seconds before trying again.`
161
- : 'Please wait a moment before trying again.';
162
- return errorPage({
163
- code: 429,
164
- title: 'Too Many Requests',
165
- message: `You've made too many requests. ${retryMessage}`,
166
- showRetry: true,
167
- showHome: true,
168
- ...rest,
169
- });
170
- }
171
- /**
172
- * Offline page
173
- */
174
- function offlinePage(options = {}) {
175
- return errorPage({
176
- title: "You're Offline",
177
- message: 'Please check your internet connection and try again.',
178
- showRetry: true,
179
- showHome: false,
180
- ...options,
181
- layout: {
182
- ...options.layout,
183
- },
184
- });
185
- }
186
- /**
187
- * Session expired page
188
- */
189
- function sessionExpiredPage(options = {}) {
190
- const { loginUrl = '/login', ...rest } = options;
191
- return errorPage({
192
- title: 'Session Expired',
193
- message: 'Your session has expired. Please sign in again to continue.',
194
- showRetry: false,
195
- showHome: false,
196
- actions: `
197
- <div class="flex justify-center mt-8">
198
- <a href="${(0, base_1.escapeHtml)(loginUrl)}" class="px-6 py-3 bg-primary hover:bg-primary/90 text-white font-medium rounded-lg transition-colors">
199
- Sign In Again
200
- </a>
201
- </div>
202
- `,
203
- ...rest,
204
- });
205
- }
206
- /**
207
- * OAuth error page
208
- */
209
- function oauthErrorPage(options) {
210
- const { errorCode, errorDescription, redirectUri, clientName, ...rest } = options;
211
- // Map OAuth error codes to user-friendly messages
212
- const errorMessages = {
213
- invalid_request: {
214
- title: 'Invalid Request',
215
- message: 'The authorization request is missing required parameters or is malformed.',
216
- },
217
- unauthorized_client: {
218
- title: 'Unauthorized Client',
219
- message: 'The client is not authorized to request an authorization code.',
220
- },
221
- access_denied: {
222
- title: 'Access Denied',
223
- message: 'The resource owner denied the authorization request.',
224
- },
225
- unsupported_response_type: {
226
- title: 'Unsupported Response Type',
227
- message: 'The authorization server does not support the requested response type.',
228
- },
229
- invalid_scope: {
230
- title: 'Invalid Scope',
231
- message: 'The requested scope is invalid, unknown, or malformed.',
232
- },
233
- server_error: {
234
- title: 'Server Error',
235
- message: 'The authorization server encountered an unexpected error.',
236
- },
237
- temporarily_unavailable: {
238
- title: 'Temporarily Unavailable',
239
- message: 'The authorization server is temporarily unavailable. Please try again later.',
240
- },
241
- };
242
- const errorInfo = errorCode && errorMessages[errorCode]
243
- ? errorMessages[errorCode]
244
- : { title: 'Authorization Error', message: errorDescription || 'An error occurred during authorization.' };
245
- const clientMessage = clientName ? ` while connecting to ${(0, base_1.escapeHtml)(clientName)}` : '';
246
- const redirectAction = redirectUri
247
- ? `
248
- <a href="${(0, base_1.escapeHtml)(redirectUri)}" class="px-6 py-3 bg-gray-100 hover:bg-gray-200 text-text-primary font-medium rounded-lg transition-colors">
249
- Return to ${clientName ? (0, base_1.escapeHtml)(clientName) : 'Application'}
250
- </a>
251
- `
252
- : '';
253
- return errorPage({
254
- title: errorInfo.title,
255
- message: `${errorInfo.message}${clientMessage}`,
256
- details: errorCode && errorDescription ? `Error: ${errorCode}\n${errorDescription}` : undefined,
257
- showRetry: errorCode === 'server_error' || errorCode === 'temporarily_unavailable',
258
- showHome: true,
259
- actions: redirectAction ? `<div class="flex justify-center gap-4 mt-8">${redirectAction}</div>` : undefined,
260
- ...rest,
261
- });
262
- }
263
- //# sourceMappingURL=error.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/pages/error.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAkDH,8BA0EC;AASD,oCAQC;AAKD,sCAQC;AAKD,4CAoBC;AAKD,0CAQC;AAKD,0CAeC;AAKD,sCAeC;AAKD,kCAWC;AAKD,gDAmBC;AAuBD,wCA6DC;AAlWD,wCAAkE;AAClE,0CAA6C;AAwC7C,+CAA+C;AAC/C,qBAAqB;AACrB,+CAA+C;AAE/C;;GAEG;AACH,SAAgB,SAAS,CAAC,OAAyB;IACjD,MAAM,EACJ,IAAI,EACJ,KAAK,GAAG,sBAAsB,EAC9B,OAAO,EACP,OAAO,EACP,SAAS,GAAG,KAAK,EACjB,KAAK,EACL,SAAS,GAAG,IAAI,EAChB,QAAQ,EACR,QAAQ,GAAG,IAAI,EACf,OAAO,GAAG,GAAG,EACb,QAAQ,GAAG,KAAK,EAChB,OAAO,EACP,MAAM,GAAG,EAAE,EACX,SAAS,GACV,GAAG,OAAO,CAAC;IAEZ,oCAAoC;IACpC,MAAM,WAAW,GACf,OAAO,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;QAC7B,CAAC,CAAC;;QAGA,OAAO;YACL,CAAC,CAAC;;;4BAGgB,IAAA,iBAAU,EAAC,OAAO,CAAC;;OAExC;YACG,CAAC,CAAC,EACN;QAEE,SAAS,IAAI,KAAK;YAChB,CAAC,CAAC;;;wFAG4E,IAAA,iBAAU,EAAC,KAAK,CAAC;;OAElG;YACG,CAAC,CAAC,EACN;;GAEH;QACG,CAAC,CAAC,EAAE,CAAC;IAET,yBAAyB;IACzB,MAAM,aAAa,GAAG,SAAS;QAC7B,CAAC,CAAC;;4EAEsE,IAAA,iBAAU,EAAC,SAAS,CAAC;;GAE9F;QACC,CAAC,CAAC,EAAE,CAAC;IAEP,+DAA+D;IAC/D,MAAM,OAAO,GAAG;MACZ,WAAW;MACX,OAAO,IAAI,EAAE;MACb,aAAa;GAChB,CAAC;IAEF,OAAO,IAAA,qBAAW,EAAC,OAAO,EAAE;QAC1B,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE;QAClD,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3B,UAAU,EAAE,KAAK;QACjB,YAAY,EAAE,OAAO;QACrB,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,GAAG,MAAM;KACV,CAAC,CAAC;AACL,CAAC;AAED,+CAA+C;AAC/C,uBAAuB;AACvB,+CAA+C;AAE/C;;GAEG;AACH,SAAgB,YAAY,CAAC,UAAqC,EAAE;IAClE,OAAO,SAAS,CAAC;QACf,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,gBAAgB;QACvB,OAAO,EAAE,8DAA8D;QACvE,SAAS,EAAE,KAAK;QAChB,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,UAAqC,EAAE;IACnE,OAAO,SAAS,CAAC;QACf,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,eAAe;QACtB,OAAO,EAAE,oDAAoD;QAC7D,SAAS,EAAE,KAAK;QAChB,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,UAA6D,EAAE;IAC9F,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAEjD,OAAO,SAAS,CAAC;QACf,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,yBAAyB;QAChC,OAAO,EAAE,yCAAyC;QAClD,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE;;mBAEM,IAAA,iBAAU,EACnB,QAAQ,CACT;;;;KAIJ;QACD,GAAG,IAAI;KACR,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,UAAqC,EAAE;IACrE,OAAO,SAAS,CAAC;QACf,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,uEAAuE;QAChF,SAAS,EAAE,IAAI;QACf,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,UAAkE,EAAE;IAClG,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAE3C,MAAM,WAAW,GAAG,aAAa;QAC/B,CAAC,CAAC,2BAA2B,IAAA,iBAAU,EAAC,aAAa,CAAC,GAAG;QACzD,CAAC,CAAC,wBAAwB,CAAC;IAE7B,OAAO,SAAS,CAAC;QACf,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,mBAAmB;QAC1B,OAAO,EAAE,qDAAqD,WAAW,EAAE;QAC3E,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,KAAK;QACf,GAAG,IAAI;KACR,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,UAA+D,EAAE;IAC7F,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAExC,MAAM,YAAY,GAAG,UAAU;QAC7B,CAAC,CAAC,eAAe,UAAU,+BAA+B;QAC1D,CAAC,CAAC,2CAA2C,CAAC;IAEhD,OAAO,SAAS,CAAC;QACf,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,mBAAmB;QAC1B,OAAO,EAAE,kCAAkC,YAAY,EAAE;QACzD,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,IAAI;QACd,GAAG,IAAI;KACR,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,UAAqC,EAAE;IACjE,OAAO,SAAS,CAAC;QACf,KAAK,EAAE,gBAAgB;QACvB,OAAO,EAAE,sDAAsD;QAC/D,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,KAAK;QACf,GAAG,OAAO;QACV,MAAM,EAAE;YACN,GAAG,OAAO,CAAC,MAAM;SAClB;KACF,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,UAA6D,EAAE;IAChG,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAEjD,OAAO,SAAS,CAAC;QACf,KAAK,EAAE,iBAAiB;QACxB,OAAO,EAAE,6DAA6D;QACtE,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE;;mBAEM,IAAA,iBAAU,EACnB,QAAQ,CACT;;;;KAIJ;QACD,GAAG,IAAI;KACR,CAAC,CAAC;AACL,CAAC;AAoBD;;GAEG;AACH,SAAgB,cAAc,CAAC,OAA8B;IAC3D,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAElF,kDAAkD;IAClD,MAAM,aAAa,GAAuD;QACxE,eAAe,EAAE;YACf,KAAK,EAAE,iBAAiB;YACxB,OAAO,EAAE,2EAA2E;SACrF;QACD,mBAAmB,EAAE;YACnB,KAAK,EAAE,qBAAqB;YAC5B,OAAO,EAAE,gEAAgE;SAC1E;QACD,aAAa,EAAE;YACb,KAAK,EAAE,eAAe;YACtB,OAAO,EAAE,sDAAsD;SAChE;QACD,yBAAyB,EAAE;YACzB,KAAK,EAAE,2BAA2B;YAClC,OAAO,EAAE,wEAAwE;SAClF;QACD,aAAa,EAAE;YACb,KAAK,EAAE,eAAe;YACtB,OAAO,EAAE,wDAAwD;SAClE;QACD,YAAY,EAAE;YACZ,KAAK,EAAE,cAAc;YACrB,OAAO,EAAE,2DAA2D;SACrE;QACD,uBAAuB,EAAE;YACvB,KAAK,EAAE,yBAAyB;YAChC,OAAO,EAAE,8EAA8E;SACxF;KACF,CAAC;IAEF,MAAM,SAAS,GACb,SAAS,IAAI,aAAa,CAAC,SAAS,CAAC;QACnC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC;QAC1B,CAAC,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,gBAAgB,IAAI,yCAAyC,EAAE,CAAC;IAE/G,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,wBAAwB,IAAA,iBAAU,EAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzF,MAAM,cAAc,GAAG,WAAW;QAChC,CAAC,CAAC;eACS,IAAA,iBAAU,EACnB,WAAW,CACZ;kBACa,UAAU,CAAC,CAAC,CAAC,IAAA,iBAAU,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa;;GAElE;QACC,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,SAAS,CAAC;QACf,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,GAAG,aAAa,EAAE;QAC/C,OAAO,EAAE,SAAS,IAAI,gBAAgB,CAAC,CAAC,CAAC,UAAU,SAAS,KAAK,gBAAgB,EAAE,CAAC,CAAC,CAAC,SAAS;QAC/F,SAAS,EAAE,SAAS,KAAK,cAAc,IAAI,SAAS,KAAK,yBAAyB;QAClF,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,+CAA+C,cAAc,QAAQ,CAAC,CAAC,CAAC,SAAS;QAC3G,GAAG,IAAI;KACR,CAAC,CAAC;AACL,CAAC","sourcesContent":["/**\n * Error Page Templates\n *\n * Various error page templates (404, 500, etc.)\n */\n\nimport { errorLayout, type ErrorLayoutOptions } from '../layouts';\nimport { escapeHtml } from '../layouts/base';\n\n// ============================================\n// Error Page Types\n// ============================================\n\n/**\n * Error page options\n */\nexport interface ErrorPageOptions {\n /** Error code (404, 500, etc.) */\n code?: string | number;\n /** Error title */\n title?: string;\n /** Error message */\n message?: string;\n /** Detailed error (for development) */\n details?: string;\n /** Show stack trace (development only) */\n showStack?: boolean;\n /** Stack trace */\n stack?: string;\n /** Show retry button */\n showRetry?: boolean;\n /** Retry URL */\n retryUrl?: string;\n /** Show home button */\n showHome?: boolean;\n /** Home URL */\n homeUrl?: string;\n /** Show back button */\n showBack?: boolean;\n /** Custom actions HTML */\n actions?: string;\n /** Layout options */\n layout?: Partial<ErrorLayoutOptions>;\n /** Request ID (for support) */\n requestId?: string;\n}\n\n// ============================================\n// Error Page Builder\n// ============================================\n\n/**\n * Build a generic error page\n */\nexport function errorPage(options: ErrorPageOptions): string {\n const {\n code,\n title = 'Something went wrong',\n message,\n details,\n showStack = false,\n stack,\n showRetry = true,\n retryUrl,\n showHome = true,\n homeUrl = '/',\n showBack = false,\n actions,\n layout = {},\n requestId,\n } = options;\n\n // Details section (for development)\n const detailsHtml =\n details || (showStack && stack)\n ? `\n <div class=\"mt-8 text-left\">\n ${\n details\n ? `\n <div class=\"p-4 bg-gray-50 rounded-lg text-sm text-text-secondary mb-4\">\n <strong class=\"text-text-primary\">Details:</strong>\n <p class=\"mt-1\">${escapeHtml(details)}</p>\n </div>\n `\n : ''\n }\n ${\n showStack && stack\n ? `\n <details class=\"p-4 bg-gray-900 rounded-lg text-sm\">\n <summary class=\"text-gray-300 cursor-pointer hover:text-white\">Stack Trace</summary>\n <pre class=\"mt-2 text-xs text-gray-400 overflow-x-auto whitespace-pre-wrap\">${escapeHtml(stack)}</pre>\n </details>\n `\n : ''\n }\n </div>\n `\n : '';\n\n // Request ID for support\n const requestIdHtml = requestId\n ? `\n <p class=\"text-xs text-text-secondary mt-6\">\n Request ID: <code class=\"px-1.5 py-0.5 bg-gray-100 rounded text-xs\">${escapeHtml(requestId)}</code>\n </p>\n `\n : '';\n\n // Custom actions or default buttons are handled by errorLayout\n const content = `\n ${detailsHtml}\n ${actions || ''}\n ${requestIdHtml}\n `;\n\n return errorLayout(content, {\n title: `${code ? `Error ${code} - ` : ''}${title}`,\n errorCode: code?.toString(),\n errorTitle: title,\n errorMessage: message,\n showRetry,\n retryUrl,\n showHome,\n homeUrl,\n ...layout,\n });\n}\n\n// ============================================\n// Specific Error Pages\n// ============================================\n\n/**\n * 404 Not Found page\n */\nexport function notFoundPage(options: Partial<ErrorPageOptions> = {}): string {\n return errorPage({\n code: 404,\n title: 'Page Not Found',\n message: \"The page you're looking for doesn't exist or has been moved.\",\n showRetry: false,\n ...options,\n });\n}\n\n/**\n * 403 Forbidden page\n */\nexport function forbiddenPage(options: Partial<ErrorPageOptions> = {}): string {\n return errorPage({\n code: 403,\n title: 'Access Denied',\n message: \"You don't have permission to access this resource.\",\n showRetry: false,\n ...options,\n });\n}\n\n/**\n * 401 Unauthorized page\n */\nexport function unauthorizedPage(options: Partial<ErrorPageOptions> & { loginUrl?: string } = {}): string {\n const { loginUrl = '/login', ...rest } = options;\n\n return errorPage({\n code: 401,\n title: 'Authentication Required',\n message: 'Please sign in to access this resource.',\n showRetry: false,\n showHome: false,\n actions: `\n <div class=\"flex justify-center mt-8\">\n <a href=\"${escapeHtml(\n loginUrl,\n )}\" class=\"px-6 py-3 bg-primary hover:bg-primary/90 text-white font-medium rounded-lg transition-colors\">\n Sign In\n </a>\n </div>\n `,\n ...rest,\n });\n}\n\n/**\n * 500 Internal Server Error page\n */\nexport function serverErrorPage(options: Partial<ErrorPageOptions> = {}): string {\n return errorPage({\n code: 500,\n title: 'Server Error',\n message: \"We're having trouble processing your request. Please try again later.\",\n showRetry: true,\n ...options,\n });\n}\n\n/**\n * 503 Service Unavailable page\n */\nexport function maintenancePage(options: Partial<ErrorPageOptions> & { estimatedTime?: string } = {}): string {\n const { estimatedTime, ...rest } = options;\n\n const timeMessage = estimatedTime\n ? `We expect to be back by ${escapeHtml(estimatedTime)}.`\n : \"We'll be back shortly.\";\n\n return errorPage({\n code: 503,\n title: 'Under Maintenance',\n message: `We're currently performing scheduled maintenance. ${timeMessage}`,\n showRetry: true,\n showHome: false,\n ...rest,\n });\n}\n\n/**\n * 429 Rate Limit page\n */\nexport function rateLimitPage(options: Partial<ErrorPageOptions> & { retryAfter?: number } = {}): string {\n const { retryAfter, ...rest } = options;\n\n const retryMessage = retryAfter\n ? `Please wait ${retryAfter} seconds before trying again.`\n : 'Please wait a moment before trying again.';\n\n return errorPage({\n code: 429,\n title: 'Too Many Requests',\n message: `You've made too many requests. ${retryMessage}`,\n showRetry: true,\n showHome: true,\n ...rest,\n });\n}\n\n/**\n * Offline page\n */\nexport function offlinePage(options: Partial<ErrorPageOptions> = {}): string {\n return errorPage({\n title: \"You're Offline\",\n message: 'Please check your internet connection and try again.',\n showRetry: true,\n showHome: false,\n ...options,\n layout: {\n ...options.layout,\n },\n });\n}\n\n/**\n * Session expired page\n */\nexport function sessionExpiredPage(options: Partial<ErrorPageOptions> & { loginUrl?: string } = {}): string {\n const { loginUrl = '/login', ...rest } = options;\n\n return errorPage({\n title: 'Session Expired',\n message: 'Your session has expired. Please sign in again to continue.',\n showRetry: false,\n showHome: false,\n actions: `\n <div class=\"flex justify-center mt-8\">\n <a href=\"${escapeHtml(\n loginUrl,\n )}\" class=\"px-6 py-3 bg-primary hover:bg-primary/90 text-white font-medium rounded-lg transition-colors\">\n Sign In Again\n </a>\n </div>\n `,\n ...rest,\n });\n}\n\n// ============================================\n// OAuth Error Pages\n// ============================================\n\n/**\n * OAuth error page options\n */\nexport interface OAuthErrorPageOptions extends Partial<ErrorPageOptions> {\n /** OAuth error code */\n errorCode?: string;\n /** OAuth error description */\n errorDescription?: string;\n /** Redirect URI */\n redirectUri?: string;\n /** Client name */\n clientName?: string;\n}\n\n/**\n * OAuth error page\n */\nexport function oauthErrorPage(options: OAuthErrorPageOptions): string {\n const { errorCode, errorDescription, redirectUri, clientName, ...rest } = options;\n\n // Map OAuth error codes to user-friendly messages\n const errorMessages: Record<string, { title: string; message: string }> = {\n invalid_request: {\n title: 'Invalid Request',\n message: 'The authorization request is missing required parameters or is malformed.',\n },\n unauthorized_client: {\n title: 'Unauthorized Client',\n message: 'The client is not authorized to request an authorization code.',\n },\n access_denied: {\n title: 'Access Denied',\n message: 'The resource owner denied the authorization request.',\n },\n unsupported_response_type: {\n title: 'Unsupported Response Type',\n message: 'The authorization server does not support the requested response type.',\n },\n invalid_scope: {\n title: 'Invalid Scope',\n message: 'The requested scope is invalid, unknown, or malformed.',\n },\n server_error: {\n title: 'Server Error',\n message: 'The authorization server encountered an unexpected error.',\n },\n temporarily_unavailable: {\n title: 'Temporarily Unavailable',\n message: 'The authorization server is temporarily unavailable. Please try again later.',\n },\n };\n\n const errorInfo =\n errorCode && errorMessages[errorCode]\n ? errorMessages[errorCode]\n : { title: 'Authorization Error', message: errorDescription || 'An error occurred during authorization.' };\n\n const clientMessage = clientName ? ` while connecting to ${escapeHtml(clientName)}` : '';\n\n const redirectAction = redirectUri\n ? `\n <a href=\"${escapeHtml(\n redirectUri,\n )}\" class=\"px-6 py-3 bg-gray-100 hover:bg-gray-200 text-text-primary font-medium rounded-lg transition-colors\">\n Return to ${clientName ? escapeHtml(clientName) : 'Application'}\n </a>\n `\n : '';\n\n return errorPage({\n title: errorInfo.title,\n message: `${errorInfo.message}${clientMessage}`,\n details: errorCode && errorDescription ? `Error: ${errorCode}\\n${errorDescription}` : undefined,\n showRetry: errorCode === 'server_error' || errorCode === 'temporarily_unavailable',\n showHome: true,\n actions: redirectAction ? `<div class=\"flex justify-center gap-4 mt-8\">${redirectAction}</div>` : undefined,\n ...rest,\n });\n}\n"]}