@frontmcp/ui 0.12.2 → 1.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (310) hide show
  1. package/README.md +279 -72
  2. package/bridge/adapters/claude.adapter.d.ts.map +1 -1
  3. package/bridge/adapters/gemini.adapter.d.ts.map +1 -1
  4. package/bridge/index.js +2 -36
  5. package/components/Alert/Alert.d.ts +11 -0
  6. package/components/Alert/Alert.d.ts.map +1 -0
  7. package/components/Alert/index.d.ts +4 -0
  8. package/components/Alert/index.d.ts.map +1 -0
  9. package/components/Alert/index.js +61 -0
  10. package/components/Avatar/Avatar.d.ts +10 -0
  11. package/components/Avatar/Avatar.d.ts.map +1 -0
  12. package/components/Avatar/index.d.ts +4 -0
  13. package/components/Avatar/index.d.ts.map +1 -0
  14. package/components/Avatar/index.js +43 -0
  15. package/components/Badge/Badge.d.ts +13 -0
  16. package/components/Badge/Badge.d.ts.map +1 -0
  17. package/components/Badge/index.d.ts +4 -0
  18. package/components/Badge/index.d.ts.map +1 -0
  19. package/{render → components/Badge}/index.js +54 -42
  20. package/components/Button/Button.d.ts +16 -0
  21. package/components/Button/Button.d.ts.map +1 -0
  22. package/components/Button/index.d.ts +4 -0
  23. package/components/Button/index.d.ts.map +1 -0
  24. package/components/Button/index.js +91 -0
  25. package/components/Card/Card.d.ts +25 -0
  26. package/components/Card/Card.d.ts.map +1 -0
  27. package/components/Card/index.d.ts +4 -0
  28. package/components/Card/index.d.ts.map +1 -0
  29. package/components/Card/index.js +110 -0
  30. package/components/List/List.d.ts +15 -0
  31. package/components/List/List.d.ts.map +1 -0
  32. package/components/List/index.d.ts +4 -0
  33. package/components/List/index.d.ts.map +1 -0
  34. package/components/List/index.js +58 -0
  35. package/components/Loader/Loader.d.ts +28 -0
  36. package/components/Loader/Loader.d.ts.map +1 -0
  37. package/components/Loader/LoaderContext.d.ts +20 -0
  38. package/components/Loader/LoaderContext.d.ts.map +1 -0
  39. package/components/Loader/index.d.ts +6 -0
  40. package/components/Loader/index.d.ts.map +1 -0
  41. package/components/Loader/index.js +174 -0
  42. package/components/Modal/Modal.d.ts +22 -0
  43. package/components/Modal/Modal.d.ts.map +1 -0
  44. package/components/Modal/index.d.ts +4 -0
  45. package/components/Modal/index.d.ts.map +1 -0
  46. package/components/Modal/index.js +80 -0
  47. package/components/Select/Select.d.ts +21 -0
  48. package/components/Select/Select.d.ts.map +1 -0
  49. package/components/Select/index.d.ts +4 -0
  50. package/components/Select/index.d.ts.map +1 -0
  51. package/components/Select/index.js +78 -0
  52. package/components/Table/Table.d.ts +15 -0
  53. package/components/Table/Table.d.ts.map +1 -0
  54. package/components/Table/index.d.ts +4 -0
  55. package/components/Table/index.d.ts.map +1 -0
  56. package/components/Table/index.js +70 -0
  57. package/components/TextField/TextField.d.ts +19 -0
  58. package/components/TextField/TextField.d.ts.map +1 -0
  59. package/components/TextField/index.d.ts +4 -0
  60. package/components/TextField/index.d.ts.map +1 -0
  61. package/components/TextField/index.js +77 -0
  62. package/components/index.d.ts +22 -28
  63. package/components/index.d.ts.map +1 -1
  64. package/components/index.js +523 -2521
  65. package/esm/bridge/index.mjs +2 -6
  66. package/esm/components/Alert/index.mjs +28 -0
  67. package/esm/components/Avatar/index.mjs +10 -0
  68. package/esm/components/Badge/index.mjs +56 -0
  69. package/esm/components/Button/index.mjs +58 -0
  70. package/esm/components/Card/index.mjs +77 -0
  71. package/esm/components/List/index.mjs +25 -0
  72. package/esm/components/Loader/index.mjs +141 -0
  73. package/esm/components/Modal/index.mjs +47 -0
  74. package/esm/components/Select/index.mjs +45 -0
  75. package/esm/components/Table/index.mjs +37 -0
  76. package/esm/components/TextField/index.mjs +44 -0
  77. package/esm/components/index.mjs +513 -2415
  78. package/esm/index.mjs +62 -4652
  79. package/esm/package.json +372 -16
  80. package/esm/react/index.mjs +2 -285
  81. package/esm/renderer/charts/index.mjs +336 -0
  82. package/esm/renderer/common/index.mjs +135 -0
  83. package/esm/renderer/csv/index.mjs +193 -0
  84. package/esm/renderer/flow/index.mjs +259 -0
  85. package/esm/renderer/html/index.mjs +99 -0
  86. package/esm/renderer/image/index.mjs +125 -0
  87. package/esm/renderer/index.mjs +2173 -0
  88. package/esm/renderer/maps/index.mjs +217 -0
  89. package/esm/renderer/math/index.mjs +229 -0
  90. package/esm/renderer/mdx/index.mjs +261 -0
  91. package/esm/renderer/media/index.mjs +235 -0
  92. package/esm/renderer/mermaid/index.mjs +220 -0
  93. package/esm/renderer/pdf/index.mjs +229 -0
  94. package/esm/renderer/react/index.mjs +230 -0
  95. package/esm/runtime/index.mjs +194 -0
  96. package/esm/theme/index.mjs +93 -0
  97. package/index.d.ts +10 -18
  98. package/index.d.ts.map +1 -1
  99. package/index.js +63 -4806
  100. package/package.json +372 -16
  101. package/react/index.d.ts +8 -54
  102. package/react/index.d.ts.map +1 -1
  103. package/react/index.js +2 -295
  104. package/renderer/auto-detect.d.ts +39 -0
  105. package/renderer/auto-detect.d.ts.map +1 -0
  106. package/renderer/charts/index.d.ts +22 -0
  107. package/renderer/charts/index.d.ts.map +1 -0
  108. package/renderer/charts/index.js +367 -0
  109. package/renderer/common/index.d.ts +5 -0
  110. package/renderer/common/index.d.ts.map +1 -0
  111. package/renderer/common/index.js +158 -0
  112. package/renderer/common/inject-stylesheet.d.ts +9 -0
  113. package/renderer/common/inject-stylesheet.d.ts.map +1 -0
  114. package/renderer/common/lazy-import.d.ts +85 -0
  115. package/renderer/common/lazy-import.d.ts.map +1 -0
  116. package/renderer/common/use-lazy-module.d.ts +13 -0
  117. package/renderer/common/use-lazy-module.d.ts.map +1 -0
  118. package/renderer/common/use-renderer-theme.d.ts +35 -0
  119. package/renderer/common/use-renderer-theme.d.ts.map +1 -0
  120. package/renderer/csv/index.d.ts +12 -0
  121. package/renderer/csv/index.d.ts.map +1 -0
  122. package/renderer/csv/index.js +224 -0
  123. package/renderer/flow/index.d.ts +40 -0
  124. package/renderer/flow/index.d.ts.map +1 -0
  125. package/renderer/flow/index.js +290 -0
  126. package/renderer/html/index.d.ts +12 -0
  127. package/renderer/html/index.d.ts.map +1 -0
  128. package/renderer/html/index.js +130 -0
  129. package/renderer/image/index.d.ts +11 -0
  130. package/renderer/image/index.d.ts.map +1 -0
  131. package/renderer/image/index.js +156 -0
  132. package/renderer/index.d.ts +32 -0
  133. package/renderer/index.d.ts.map +1 -0
  134. package/renderer/index.js +2206 -0
  135. package/renderer/maps/index.d.ts +27 -0
  136. package/renderer/maps/index.d.ts.map +1 -0
  137. package/renderer/maps/index.js +248 -0
  138. package/renderer/math/index.d.ts +11 -0
  139. package/renderer/math/index.d.ts.map +1 -0
  140. package/renderer/math/index.js +260 -0
  141. package/renderer/mdx/index.d.ts +10 -0
  142. package/renderer/mdx/index.d.ts.map +1 -0
  143. package/renderer/mdx/index.js +292 -0
  144. package/renderer/media/index.d.ts +20 -0
  145. package/renderer/media/index.d.ts.map +1 -0
  146. package/renderer/media/index.js +266 -0
  147. package/renderer/mermaid/index.d.ts +11 -0
  148. package/renderer/mermaid/index.d.ts.map +1 -0
  149. package/renderer/mermaid/index.js +251 -0
  150. package/renderer/pdf/index.d.ts +10 -0
  151. package/renderer/pdf/index.d.ts.map +1 -0
  152. package/renderer/pdf/index.js +260 -0
  153. package/renderer/react/index.d.ts +45 -0
  154. package/renderer/react/index.d.ts.map +1 -0
  155. package/renderer/react/index.js +261 -0
  156. package/renderer/types.d.ts +24 -0
  157. package/renderer/types.d.ts.map +1 -0
  158. package/runtime/babel-runtime.d.ts +70 -0
  159. package/runtime/babel-runtime.d.ts.map +1 -0
  160. package/runtime/content-detector.d.ts +43 -0
  161. package/runtime/content-detector.d.ts.map +1 -0
  162. package/runtime/index.d.ts +10 -0
  163. package/runtime/index.d.ts.map +1 -0
  164. package/runtime/index.js +217 -0
  165. package/theme/FrontMcpThemeProvider.d.ts +4 -0
  166. package/theme/FrontMcpThemeProvider.d.ts.map +1 -0
  167. package/theme/create-theme.d.ts +9 -0
  168. package/theme/create-theme.d.ts.map +1 -0
  169. package/theme/index.d.ts +5 -0
  170. package/theme/index.d.ts.map +1 -0
  171. package/theme/index.js +126 -0
  172. package/theme/types.d.ts +28 -0
  173. package/theme/types.d.ts.map +1 -0
  174. package/theme/use-theme.d.ts +3 -0
  175. package/theme/use-theme.d.ts.map +1 -0
  176. package/bundler/browser-components.d.ts +0 -42
  177. package/bundler/browser-components.d.ts.map +0 -1
  178. package/bundler/bundler.d.ts +0 -282
  179. package/bundler/bundler.d.ts.map +0 -1
  180. package/bundler/index.d.ts +0 -43
  181. package/bundler/index.d.ts.map +0 -1
  182. package/bundler/index.js +0 -3168
  183. package/bundler/types.d.ts +0 -883
  184. package/bundler/types.d.ts.map +0 -1
  185. package/components/alert.d.ts +0 -83
  186. package/components/alert.d.ts.map +0 -1
  187. package/components/alert.schema.d.ts +0 -98
  188. package/components/alert.schema.d.ts.map +0 -1
  189. package/components/avatar.d.ts +0 -77
  190. package/components/avatar.d.ts.map +0 -1
  191. package/components/avatar.schema.d.ts +0 -170
  192. package/components/avatar.schema.d.ts.map +0 -1
  193. package/components/badge.d.ts +0 -78
  194. package/components/badge.d.ts.map +0 -1
  195. package/components/badge.schema.d.ts +0 -91
  196. package/components/badge.schema.d.ts.map +0 -1
  197. package/components/button.d.ts +0 -100
  198. package/components/button.d.ts.map +0 -1
  199. package/components/button.schema.d.ts +0 -120
  200. package/components/button.schema.d.ts.map +0 -1
  201. package/components/card.d.ts +0 -76
  202. package/components/card.d.ts.map +0 -1
  203. package/components/card.schema.d.ts +0 -93
  204. package/components/card.schema.d.ts.map +0 -1
  205. package/components/form.d.ts +0 -227
  206. package/components/form.d.ts.map +0 -1
  207. package/components/form.schema.d.ts +0 -365
  208. package/components/form.schema.d.ts.map +0 -1
  209. package/components/list.d.ts +0 -121
  210. package/components/list.d.ts.map +0 -1
  211. package/components/list.schema.d.ts +0 -129
  212. package/components/list.schema.d.ts.map +0 -1
  213. package/components/modal.d.ts +0 -100
  214. package/components/modal.d.ts.map +0 -1
  215. package/components/modal.schema.d.ts +0 -151
  216. package/components/modal.schema.d.ts.map +0 -1
  217. package/components/table.d.ts +0 -91
  218. package/components/table.d.ts.map +0 -1
  219. package/components/table.schema.d.ts +0 -123
  220. package/components/table.schema.d.ts.map +0 -1
  221. package/esm/bundler/index.mjs +0 -3136
  222. package/esm/layouts/index.mjs +0 -409
  223. package/esm/render/index.mjs +0 -45
  224. package/esm/renderers/index.mjs +0 -621
  225. package/esm/universal/index.mjs +0 -1946
  226. package/esm/web-components/index.mjs +0 -2023
  227. package/layouts/base.d.ts +0 -86
  228. package/layouts/base.d.ts.map +0 -1
  229. package/layouts/index.d.ts +0 -8
  230. package/layouts/index.d.ts.map +0 -1
  231. package/layouts/index.js +0 -437
  232. package/layouts/presets.d.ts +0 -134
  233. package/layouts/presets.d.ts.map +0 -1
  234. package/react/Alert.d.ts +0 -101
  235. package/react/Alert.d.ts.map +0 -1
  236. package/react/Badge.d.ts +0 -100
  237. package/react/Badge.d.ts.map +0 -1
  238. package/react/Button.d.ts +0 -108
  239. package/react/Button.d.ts.map +0 -1
  240. package/react/Card.d.ts +0 -103
  241. package/react/Card.d.ts.map +0 -1
  242. package/react/types.d.ts +0 -105
  243. package/react/types.d.ts.map +0 -1
  244. package/render/index.d.ts +0 -8
  245. package/render/index.d.ts.map +0 -1
  246. package/render/prerender.d.ts +0 -57
  247. package/render/prerender.d.ts.map +0 -1
  248. package/renderers/index.d.ts +0 -26
  249. package/renderers/index.d.ts.map +0 -1
  250. package/renderers/index.js +0 -666
  251. package/renderers/mdx.renderer.d.ts +0 -99
  252. package/renderers/mdx.renderer.d.ts.map +0 -1
  253. package/renderers/react.adapter.d.ts +0 -70
  254. package/renderers/react.adapter.d.ts.map +0 -1
  255. package/renderers/react.renderer.d.ts +0 -105
  256. package/renderers/react.renderer.d.ts.map +0 -1
  257. package/renderers/transpiler.d.ts +0 -49
  258. package/renderers/transpiler.d.ts.map +0 -1
  259. package/universal/UniversalApp.d.ts +0 -108
  260. package/universal/UniversalApp.d.ts.map +0 -1
  261. package/universal/cached-runtime.d.ts +0 -139
  262. package/universal/cached-runtime.d.ts.map +0 -1
  263. package/universal/context.d.ts +0 -122
  264. package/universal/context.d.ts.map +0 -1
  265. package/universal/index.d.ts +0 -57
  266. package/universal/index.d.ts.map +0 -1
  267. package/universal/index.js +0 -2032
  268. package/universal/renderers/html.renderer.d.ts +0 -36
  269. package/universal/renderers/html.renderer.d.ts.map +0 -1
  270. package/universal/renderers/index.d.ts +0 -112
  271. package/universal/renderers/index.d.ts.map +0 -1
  272. package/universal/renderers/markdown.renderer.d.ts +0 -33
  273. package/universal/renderers/markdown.renderer.d.ts.map +0 -1
  274. package/universal/renderers/mdx.renderer.d.ts +0 -38
  275. package/universal/renderers/mdx.renderer.d.ts.map +0 -1
  276. package/universal/renderers/react.renderer.d.ts +0 -46
  277. package/universal/renderers/react.renderer.d.ts.map +0 -1
  278. package/universal/runtime-builder.d.ts +0 -33
  279. package/universal/runtime-builder.d.ts.map +0 -1
  280. package/universal/store.d.ts +0 -135
  281. package/universal/store.d.ts.map +0 -1
  282. package/universal/types.d.ts +0 -199
  283. package/universal/types.d.ts.map +0 -1
  284. package/web-components/core/attribute-parser.d.ts +0 -82
  285. package/web-components/core/attribute-parser.d.ts.map +0 -1
  286. package/web-components/core/base-element.d.ts +0 -197
  287. package/web-components/core/base-element.d.ts.map +0 -1
  288. package/web-components/core/index.d.ts +0 -9
  289. package/web-components/core/index.d.ts.map +0 -1
  290. package/web-components/elements/fmcp-alert.d.ts +0 -46
  291. package/web-components/elements/fmcp-alert.d.ts.map +0 -1
  292. package/web-components/elements/fmcp-badge.d.ts +0 -47
  293. package/web-components/elements/fmcp-badge.d.ts.map +0 -1
  294. package/web-components/elements/fmcp-button.d.ts +0 -117
  295. package/web-components/elements/fmcp-button.d.ts.map +0 -1
  296. package/web-components/elements/fmcp-card.d.ts +0 -53
  297. package/web-components/elements/fmcp-card.d.ts.map +0 -1
  298. package/web-components/elements/fmcp-input.d.ts +0 -96
  299. package/web-components/elements/fmcp-input.d.ts.map +0 -1
  300. package/web-components/elements/fmcp-select.d.ts +0 -100
  301. package/web-components/elements/fmcp-select.d.ts.map +0 -1
  302. package/web-components/elements/index.d.ts +0 -13
  303. package/web-components/elements/index.d.ts.map +0 -1
  304. package/web-components/index.d.ts +0 -49
  305. package/web-components/index.d.ts.map +0 -1
  306. package/web-components/index.js +0 -2058
  307. package/web-components/register.d.ts +0 -57
  308. package/web-components/register.d.ts.map +0 -1
  309. package/web-components/types.d.ts +0 -122
  310. package/web-components/types.d.ts.map +0 -1
package/layouts/base.d.ts DELETED
@@ -1,86 +0,0 @@
1
- /**
2
- * Base Layout System
3
- *
4
- * Provides the foundation for all FrontMCP UI pages with:
5
- * - Platform-aware rendering (OpenAI, Claude, etc.)
6
- * - Theme integration
7
- * - CDN resource management
8
- * - Responsive layouts
9
- */
10
- import { type PlatformCapabilities, type ThemeConfig, type DeepPartial } from '@frontmcp/uipack/theme';
11
- /**
12
- * Page type determines the layout structure
13
- */
14
- export type PageType = 'auth' | 'consent' | 'error' | 'loading' | 'success' | 'dashboard' | 'widget' | 'resource' | 'custom';
15
- /**
16
- * Layout size/width options
17
- */
18
- export type LayoutSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full';
19
- /**
20
- * Background style options
21
- */
22
- export type BackgroundStyle = 'solid' | 'gradient' | 'pattern' | 'none';
23
- /**
24
- * Layout alignment options
25
- */
26
- export type LayoutAlignment = 'center' | 'top' | 'start';
27
- /**
28
- * Base layout configuration options
29
- */
30
- export interface BaseLayoutOptions {
31
- /** Page title (will be suffixed with branding) */
32
- title: string;
33
- /** Page type for layout structure */
34
- pageType?: PageType;
35
- /** Content width */
36
- size?: LayoutSize;
37
- /** Content alignment */
38
- alignment?: LayoutAlignment;
39
- /** Background style */
40
- background?: BackgroundStyle;
41
- /** Optional page description for meta tag */
42
- description?: string;
43
- /** Target platform capabilities */
44
- platform?: PlatformCapabilities;
45
- /** Theme configuration (deep partial - nested properties are also optional) */
46
- theme?: DeepPartial<ThemeConfig>;
47
- /** Include HTMX (default: based on platform) */
48
- includeHtmx?: boolean;
49
- /** Include Alpine.js (default: false) */
50
- includeAlpine?: boolean;
51
- /** Include Lucide icons (default: false) */
52
- includeIcons?: boolean;
53
- /** Additional head content */
54
- headExtra?: string;
55
- /** Additional body attributes */
56
- bodyAttrs?: Record<string, string>;
57
- /** Custom body classes */
58
- bodyClass?: string;
59
- /** Title suffix/branding */
60
- titleSuffix?: string;
61
- /** Favicon URL */
62
- favicon?: string;
63
- /** Open Graph meta tags */
64
- og?: {
65
- title?: string;
66
- description?: string;
67
- image?: string;
68
- type?: string;
69
- };
70
- }
71
- export { escapeHtml } from '@frontmcp/uipack/utils';
72
- /**
73
- * Build the complete HTML document
74
- *
75
- * @param content - The page content (HTML string)
76
- * @param options - Layout configuration options
77
- * @returns Complete HTML document string
78
- */
79
- export declare function baseLayout(content: string, options: BaseLayoutOptions): string;
80
- /**
81
- * Create a layout builder with preset options.
82
- * The returned function accepts optional options that extend/override the defaults.
83
- * If defaults include `title`, the returned function's options are fully optional.
84
- */
85
- export declare function createLayoutBuilder(defaults: Partial<BaseLayoutOptions>): (content: string, options?: Partial<BaseLayoutOptions>) => string;
86
- //# sourceMappingURL=base.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/layouts/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAChB,KAAK,WAAW,EAUjB,MAAM,wBAAwB,CAAC;AAOhC;;GAEG;AACH,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,SAAS,GACT,OAAO,GACP,SAAS,GACT,SAAS,GACT,WAAW,GACX,QAAQ,GACR,UAAU,GACV,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,KAAK,GACL,MAAM,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,OAAO,GACP,UAAU,GACV,SAAS,GACT,MAAM,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,QAAQ,GACR,KAAK,GACL,OAAO,CAAC;AAMZ;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IAEd,qCAAqC;IACrC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,oBAAoB;IACpB,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB,wBAAwB;IACxB,SAAS,CAAC,EAAE,eAAe,CAAC;IAE5B,uBAAuB;IACvB,UAAU,CAAC,EAAE,eAAe,CAAC;IAE7B,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAEhC,+EAA+E;IAC/E,KAAK,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAEjC,gDAAgD;IAChD,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,yCAAyC;IACzC,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnC,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,kBAAkB;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,2BAA2B;IAC3B,EAAE,CAAC,EAAE;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAOD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAiGpD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAuG9E;AAMD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACnC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,KAAK,MAAM,CAyBnE"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Layouts Module
3
- *
4
- * Provides base layouts and page-specific presets for FrontMCP UI.
5
- */
6
- export { type PageType, type LayoutSize, type BackgroundStyle, type LayoutAlignment, type BaseLayoutOptions, baseLayout, createLayoutBuilder, escapeHtml, } from './base';
7
- export { type AuthLayoutOptions, type ConsentLayoutOptions, type ErrorLayoutOptions, type LoadingLayoutOptions, type SuccessLayoutOptions, type WidgetLayoutOptions, authLayout, consentLayout, errorLayout, loadingLayout, successLayout, widgetLayout, authLayoutBuilder, consentLayoutBuilder, errorLayoutBuilder, } from './presets';
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/layouts/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,UAAU,EACV,mBAAmB,EACnB,UAAU,GACX,MAAM,QAAQ,CAAC;AAGhB,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,UAAU,EACV,aAAa,EACb,WAAW,EACX,aAAa,EACb,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,WAAW,CAAC"}
package/layouts/index.js DELETED
@@ -1,437 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // libs/ui/src/layouts/index.ts
21
- var layouts_exports = {};
22
- __export(layouts_exports, {
23
- authLayout: () => authLayout,
24
- authLayoutBuilder: () => authLayoutBuilder,
25
- baseLayout: () => baseLayout,
26
- consentLayout: () => consentLayout,
27
- consentLayoutBuilder: () => consentLayoutBuilder,
28
- createLayoutBuilder: () => createLayoutBuilder,
29
- errorLayout: () => errorLayout,
30
- errorLayoutBuilder: () => errorLayoutBuilder,
31
- escapeHtml: () => import_utils2.escapeHtml,
32
- loadingLayout: () => loadingLayout,
33
- successLayout: () => successLayout,
34
- widgetLayout: () => widgetLayout
35
- });
36
- module.exports = __toCommonJS(layouts_exports);
37
-
38
- // libs/ui/src/layouts/base.ts
39
- var import_theme = require("@frontmcp/uipack/theme");
40
- var import_utils = require("@frontmcp/uipack/utils");
41
- var import_utils2 = require("@frontmcp/uipack/utils");
42
- function getSizeClass(size) {
43
- const sizeMap = {
44
- xs: "max-w-sm",
45
- sm: "max-w-md",
46
- md: "max-w-lg",
47
- lg: "max-w-xl",
48
- xl: "max-w-2xl",
49
- "2xl": "max-w-3xl",
50
- "3xl": "max-w-4xl",
51
- full: "max-w-full"
52
- };
53
- return sizeMap[size];
54
- }
55
- function getAlignmentClasses(alignment) {
56
- const alignMap = {
57
- center: "min-h-screen flex items-center justify-center",
58
- top: "min-h-screen flex flex-col items-center pt-12",
59
- start: "min-h-screen"
60
- };
61
- return alignMap[alignment];
62
- }
63
- function getBackgroundClasses(background) {
64
- switch (background) {
65
- case "gradient":
66
- return "bg-gradient-to-br from-primary to-secondary";
67
- case "pattern":
68
- return 'bg-surface bg-[url("data:image/svg+xml,...")]';
69
- // Pattern would be defined
70
- case "solid":
71
- return "bg-background";
72
- case "none":
73
- default:
74
- return "";
75
- }
76
- }
77
- function buildMetaTags(options) {
78
- const tags = [];
79
- if (options.description) {
80
- tags.push(`<meta name="description" content="${(0, import_utils.escapeHtml)(options.description)}">`);
81
- }
82
- if (options.og) {
83
- if (options.og.title) {
84
- tags.push(`<meta property="og:title" content="${(0, import_utils.escapeHtml)(options.og.title)}">`);
85
- }
86
- if (options.og.description) {
87
- tags.push(`<meta property="og:description" content="${(0, import_utils.escapeHtml)(options.og.description)}">`);
88
- }
89
- if (options.og.image) {
90
- tags.push(`<meta property="og:image" content="${(0, import_utils.escapeHtml)(options.og.image)}">`);
91
- }
92
- if (options.og.type) {
93
- tags.push(`<meta property="og:type" content="${(0, import_utils.escapeHtml)(options.og.type)}">`);
94
- }
95
- }
96
- if (options.favicon) {
97
- tags.push(`<link rel="icon" href="${(0, import_utils.escapeHtml)(options.favicon)}">`);
98
- }
99
- return tags.join("\n ");
100
- }
101
- function buildBodyAttrs(attrs) {
102
- if (!attrs) return "";
103
- return Object.entries(attrs).map(([key, value]) => `${key}="${(0, import_utils.escapeHtml)(value)}"`).join(" ");
104
- }
105
- function baseLayout(content, options) {
106
- const {
107
- title,
108
- pageType: _pageType = "custom",
109
- size = "md",
110
- alignment = "center",
111
- background = "solid",
112
- platform = import_theme.OPENAI_PLATFORM,
113
- theme: themeOverrides,
114
- includeHtmx,
115
- includeAlpine = false,
116
- includeIcons = false,
117
- headExtra = "",
118
- bodyAttrs,
119
- bodyClass = "",
120
- titleSuffix = "FrontMCP"
121
- } = options;
122
- const theme = themeOverrides ? (0, import_theme.mergeThemes)(import_theme.DEFAULT_THEME, themeOverrides) : import_theme.DEFAULT_THEME;
123
- const shouldIncludeHtmx = includeHtmx ?? platform.supportsHtmx;
124
- const useCdn = (0, import_theme.canUseCdn)(platform);
125
- const useInline = (0, import_theme.needsInlineScripts)(platform);
126
- const fontPreconnect = useCdn ? (0, import_theme.buildFontPreconnect)() : "";
127
- const fontStylesheets = useCdn ? (0, import_theme.buildFontStylesheets)({ inter: true }) : "";
128
- const scripts = (0, import_theme.buildCdnScripts)({
129
- tailwind: platform.supportsTailwind,
130
- htmx: shouldIncludeHtmx,
131
- alpine: includeAlpine,
132
- icons: includeIcons,
133
- inline: useInline
134
- });
135
- const themeCss = (0, import_theme.buildThemeCss)(theme);
136
- const customCss = theme.customCss || "";
137
- const styleBlock = platform.supportsTailwind ? `<style type="text/tailwindcss">
138
- @theme {
139
- ${themeCss}
140
- }
141
- ${customCss}
142
- </style>` : "";
143
- const sizeClass = getSizeClass(size);
144
- const alignmentClasses = getAlignmentClasses(alignment);
145
- const backgroundClasses = getBackgroundClasses(background);
146
- const allBodyClasses = [backgroundClasses, "font-sans antialiased", bodyClass].filter(Boolean).join(" ");
147
- const metaTags = buildMetaTags(options);
148
- const bodyAttrStr = buildBodyAttrs(bodyAttrs);
149
- const wrappedContent = alignment === "center" ? `<div class="${alignmentClasses} p-4">
150
- <div class="w-full ${sizeClass}">
151
- ${content}
152
- </div>
153
- </div>` : `<div class="${alignmentClasses}">
154
- <div class="w-full ${sizeClass} mx-auto px-4 py-8">
155
- ${content}
156
- </div>
157
- </div>`;
158
- return `<!DOCTYPE html>
159
- <html lang="en">
160
- <head>
161
- <meta charset="UTF-8">
162
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
163
- <title>${(0, import_utils.escapeHtml)(title)}${titleSuffix ? ` - ${(0, import_utils.escapeHtml)(titleSuffix)}` : ""}</title>
164
- ${metaTags}
165
-
166
- <!-- Fonts -->
167
- ${fontPreconnect}
168
- ${fontStylesheets}
169
-
170
- <!-- Tailwind CSS -->
171
- ${scripts}
172
- ${styleBlock}
173
-
174
- ${headExtra}
175
- </head>
176
- <body class="${(0, import_utils.escapeHtml)(allBodyClasses)}"${bodyAttrStr ? ` ${bodyAttrStr}` : ""}>
177
- ${wrappedContent}
178
- </body>
179
- </html>`;
180
- }
181
- function createLayoutBuilder(defaults) {
182
- return (content, options = {}) => {
183
- let mergedTheme = import_theme.DEFAULT_THEME;
184
- if (defaults.theme) {
185
- mergedTheme = (0, import_theme.mergeThemes)(mergedTheme, defaults.theme);
186
- }
187
- if (options.theme) {
188
- mergedTheme = (0, import_theme.mergeThemes)(mergedTheme, options.theme);
189
- }
190
- const merged = {
191
- ...defaults,
192
- ...options,
193
- theme: mergedTheme
194
- };
195
- if (!merged.title) {
196
- throw new Error("createLayoutBuilder: title is required either in defaults or options");
197
- }
198
- return baseLayout(content, merged);
199
- };
200
- }
201
-
202
- // libs/ui/src/layouts/presets.ts
203
- function authLayout(content, options) {
204
- const { showBranding = true, logo, footer, ...baseOptions } = options;
205
- const brandingHtml = showBranding && logo ? `<div class="text-center mb-8">${logo}</div>` : showBranding ? `<div class="text-center mb-8">
206
- <div class="inline-flex items-center justify-center w-16 h-16 rounded-xl bg-gradient-to-br from-primary to-secondary mb-4">
207
- <svg class="w-8 h-8 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
208
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"/>
209
- </svg>
210
- </div>
211
- </div>` : "";
212
- const footerHtml = footer ? `<div class="mt-8 text-center text-sm text-text-secondary">${footer}</div>` : "";
213
- const wrappedContent = `
214
- <div class="bg-white rounded-2xl shadow-xl p-8">
215
- ${brandingHtml}
216
- ${content}
217
- </div>
218
- ${footerHtml}
219
- `;
220
- return baseLayout(wrappedContent, {
221
- ...baseOptions,
222
- pageType: "auth",
223
- size: baseOptions.size ?? "sm",
224
- alignment: "center",
225
- background: "gradient"
226
- });
227
- }
228
- function consentLayout(content, options) {
229
- const { clientName, clientIcon, userInfo, ...baseOptions } = options;
230
- const headerHtml = clientName ? `<div class="text-center mb-6">
231
- ${clientIcon ? `<img src="${(0, import_utils2.escapeHtml)(clientIcon)}" alt="${(0, import_utils2.escapeHtml)(
232
- clientName
233
- )}" class="w-16 h-16 rounded-xl mx-auto mb-4">` : `<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">
234
- ${(0, import_utils2.escapeHtml)(clientName.charAt(0).toUpperCase())}
235
- </div>`}
236
- <h1 class="text-2xl font-bold text-text-primary">${(0, import_utils2.escapeHtml)(clientName)}</h1>
237
- </div>` : "";
238
- const userInfoHtml = userInfo ? `<div class="flex items-center gap-3 p-3 bg-gray-50 rounded-lg mb-6">
239
- ${userInfo.avatar ? `<img src="${(0, import_utils2.escapeHtml)(userInfo.avatar)}" class="w-10 h-10 rounded-full">` : `<div class="w-10 h-10 rounded-full bg-primary text-white flex items-center justify-center font-medium">
240
- ${(0, import_utils2.escapeHtml)((userInfo.name || userInfo.email || "U").charAt(0).toUpperCase())}
241
- </div>`}
242
- <div>
243
- ${userInfo.name ? `<div class="font-medium text-text-primary">${(0, import_utils2.escapeHtml)(userInfo.name)}</div>` : ""}
244
- ${userInfo.email ? `<div class="text-sm text-text-secondary">${(0, import_utils2.escapeHtml)(userInfo.email)}</div>` : ""}
245
- </div>
246
- </div>` : "";
247
- const wrappedContent = `
248
- ${headerHtml}
249
- ${userInfoHtml}
250
- ${content}
251
- `;
252
- return baseLayout(wrappedContent, {
253
- ...baseOptions,
254
- pageType: "consent",
255
- size: baseOptions.size ?? "lg",
256
- alignment: "top",
257
- background: "solid"
258
- });
259
- }
260
- function errorLayout(content, options) {
261
- const {
262
- errorCode,
263
- errorTitle = "Something went wrong",
264
- errorMessage,
265
- showRetry = true,
266
- retryUrl,
267
- showHome = true,
268
- homeUrl = "/",
269
- ...baseOptions
270
- } = options;
271
- const errorHtml = `
272
- <div class="text-center">
273
- <!-- Error icon -->
274
- <div class="inline-flex items-center justify-center w-20 h-20 rounded-full bg-danger/10 mb-6">
275
- <svg class="w-10 h-10 text-danger" fill="none" stroke="currentColor" viewBox="0 0 24 24">
276
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"/>
277
- </svg>
278
- </div>
279
-
280
- ${errorCode ? `<p class="text-6xl font-bold text-danger mb-2">${(0, import_utils2.escapeHtml)(errorCode)}</p>` : ""}
281
- <h1 class="text-2xl font-bold text-text-primary mb-4">${(0, import_utils2.escapeHtml)(errorTitle)}</h1>
282
- ${errorMessage ? `<p class="text-text-secondary mb-8">${(0, import_utils2.escapeHtml)(errorMessage)}</p>` : ""}
283
-
284
- ${content}
285
-
286
- <div class="flex gap-4 justify-center mt-8">
287
- ${showRetry ? `<button onclick="${retryUrl ? `window.location.href='${(0, import_utils2.escapeHtml)(retryUrl)}'` : "window.location.reload()"}" class="px-6 py-3 bg-primary hover:bg-primary/90 text-white font-medium rounded-lg transition-colors">Try Again</button>` : ""}
288
- ${showHome ? `<a href="${(0, import_utils2.escapeHtml)(
289
- homeUrl
290
- )}" class="px-6 py-3 bg-gray-100 hover:bg-gray-200 text-text-primary font-medium rounded-lg transition-colors">Go Home</a>` : ""}
291
- </div>
292
- </div>
293
- `;
294
- return baseLayout(errorHtml, {
295
- ...baseOptions,
296
- pageType: "error",
297
- size: "sm",
298
- alignment: "center",
299
- background: "solid",
300
- title: baseOptions.title ?? errorTitle
301
- });
302
- }
303
- function loadingLayout(content, options) {
304
- const { message = "Loading...", showSpinner = true, showProgress = false, progress = 0, ...baseOptions } = options;
305
- const spinnerHtml = showSpinner ? `<div class="inline-flex items-center justify-center w-16 h-16 mb-6">
306
- <svg class="animate-spin w-12 h-12 text-primary" fill="none" viewBox="0 0 24 24">
307
- <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
308
- <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
309
- </svg>
310
- </div>` : "";
311
- const progressHtml = showProgress ? `<div class="w-full bg-gray-200 rounded-full h-2 mb-4">
312
- <div class="bg-primary h-2 rounded-full transition-all duration-300" style="width: ${progress}%"></div>
313
- </div>` : "";
314
- const loadingHtml = `
315
- <div class="text-center">
316
- ${spinnerHtml}
317
- <h2 class="text-xl font-medium text-text-primary mb-2">${(0, import_utils2.escapeHtml)(message)}</h2>
318
- ${progressHtml}
319
- ${content}
320
- </div>
321
- `;
322
- return baseLayout(loadingHtml, {
323
- ...baseOptions,
324
- pageType: "loading",
325
- size: "sm",
326
- alignment: "center",
327
- background: "solid",
328
- title: baseOptions.title ?? "Loading"
329
- });
330
- }
331
- function successLayout(content, options) {
332
- const {
333
- successTitle = "Success!",
334
- successMessage,
335
- continueText = "Continue",
336
- continueUrl,
337
- autoClose,
338
- ...baseOptions
339
- } = options;
340
- const autoCloseScript = autoClose ? `<script>
341
- let countdown = ${autoClose};
342
- const countdownEl = document.getElementById('countdown');
343
- const interval = setInterval(() => {
344
- countdown--;
345
- if (countdownEl) countdownEl.textContent = countdown;
346
- if (countdown <= 0) {
347
- clearInterval(interval);
348
- ${continueUrl ? `window.location.href = '${(0, import_utils2.escapeHtml)(continueUrl)}';` : "window.close();"}
349
- }
350
- }, 1000);
351
- </script>` : "";
352
- const successHtml = `
353
- <div class="text-center">
354
- <!-- Success icon -->
355
- <div class="inline-flex items-center justify-center w-20 h-20 rounded-full bg-success/10 mb-6">
356
- <svg class="w-10 h-10 text-success" fill="none" stroke="currentColor" viewBox="0 0 24 24">
357
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"/>
358
- </svg>
359
- </div>
360
-
361
- <h1 class="text-2xl font-bold text-text-primary mb-4">${(0, import_utils2.escapeHtml)(successTitle)}</h1>
362
- ${successMessage ? `<p class="text-text-secondary mb-8">${(0, import_utils2.escapeHtml)(successMessage)}</p>` : ""}
363
-
364
- ${content}
365
-
366
- ${continueUrl ? `<a href="${(0, import_utils2.escapeHtml)(
367
- continueUrl
368
- )}" class="inline-block mt-6 px-6 py-3 bg-primary hover:bg-primary/90 text-white font-medium rounded-lg transition-colors">${(0, import_utils2.escapeHtml)(
369
- continueText
370
- )}</a>` : ""}
371
-
372
- ${autoClose ? `<p class="mt-4 text-sm text-text-secondary">Closing in <span id="countdown">${autoClose}</span> seconds...</p>` : ""}
373
- </div>
374
- ${autoCloseScript}
375
- `;
376
- return baseLayout(successHtml, {
377
- ...baseOptions,
378
- pageType: "success",
379
- size: "sm",
380
- alignment: "center",
381
- background: "solid",
382
- title: baseOptions.title ?? successTitle
383
- });
384
- }
385
- function widgetLayout(content, options) {
386
- const { maxWidth = "100%", showBorder = false, transparent = true, ...baseOptions } = options;
387
- const containerClasses = [
388
- "widget-container",
389
- showBorder ? "border border-border rounded-lg" : "",
390
- transparent ? "" : "bg-surface"
391
- ].filter(Boolean).join(" ");
392
- const wrappedContent = `
393
- <div class="${containerClasses}" style="max-width: ${(0, import_utils2.escapeHtml)(maxWidth)}">
394
- ${content}
395
- </div>
396
- `;
397
- return baseLayout(wrappedContent, {
398
- ...baseOptions,
399
- pageType: "widget",
400
- size: "full",
401
- alignment: "start",
402
- background: "none"
403
- });
404
- }
405
- var authLayoutBuilder = createLayoutBuilder({
406
- pageType: "auth",
407
- size: "sm",
408
- alignment: "center",
409
- background: "gradient"
410
- });
411
- var consentLayoutBuilder = createLayoutBuilder({
412
- pageType: "consent",
413
- size: "lg",
414
- alignment: "top",
415
- background: "solid"
416
- });
417
- var errorLayoutBuilder = createLayoutBuilder({
418
- pageType: "error",
419
- size: "sm",
420
- alignment: "center",
421
- background: "solid"
422
- });
423
- // Annotate the CommonJS export names for ESM import in node:
424
- 0 && (module.exports = {
425
- authLayout,
426
- authLayoutBuilder,
427
- baseLayout,
428
- consentLayout,
429
- consentLayoutBuilder,
430
- createLayoutBuilder,
431
- errorLayout,
432
- errorLayoutBuilder,
433
- escapeHtml,
434
- loadingLayout,
435
- successLayout,
436
- widgetLayout
437
- });
@@ -1,134 +0,0 @@
1
- /**
2
- * Layout Presets
3
- *
4
- * Pre-configured layouts for common page types:
5
- * - Auth pages (login, register, etc.)
6
- * - Consent pages (OAuth, permissions)
7
- * - Error pages
8
- * - Loading states
9
- * - Success pages
10
- * - Widget mode (embedded)
11
- * - Resource display (OpenAI SDK)
12
- */
13
- import { type BaseLayoutOptions } from './base';
14
- /**
15
- * Auth layout options
16
- */
17
- export interface AuthLayoutOptions extends Omit<BaseLayoutOptions, 'pageType'> {
18
- /** Show branding/logo */
19
- showBranding?: boolean;
20
- /** Custom logo HTML */
21
- logo?: string;
22
- /** Footer content */
23
- footer?: string;
24
- }
25
- /**
26
- * Build auth page layout (login, register, etc.)
27
- */
28
- export declare function authLayout(content: string, options: AuthLayoutOptions): string;
29
- /**
30
- * Consent layout options
31
- */
32
- export interface ConsentLayoutOptions extends Omit<BaseLayoutOptions, 'pageType'> {
33
- /** App/client name requesting consent */
34
- clientName?: string;
35
- /** App icon URL */
36
- clientIcon?: string;
37
- /** User info display */
38
- userInfo?: {
39
- name?: string;
40
- email?: string;
41
- avatar?: string;
42
- };
43
- }
44
- /**
45
- * Build consent page layout (OAuth consent, permissions)
46
- */
47
- export declare function consentLayout(content: string, options: ConsentLayoutOptions): string;
48
- /**
49
- * Error layout options
50
- */
51
- export interface ErrorLayoutOptions extends Omit<BaseLayoutOptions, 'pageType'> {
52
- /** Error code */
53
- errorCode?: string;
54
- /** Error title */
55
- errorTitle?: string;
56
- /** Error message */
57
- errorMessage?: string;
58
- /** Show retry button */
59
- showRetry?: boolean;
60
- /** Retry URL */
61
- retryUrl?: string;
62
- /** Show home button */
63
- showHome?: boolean;
64
- /** Home URL */
65
- homeUrl?: string;
66
- }
67
- /**
68
- * Build error page layout
69
- */
70
- export declare function errorLayout(content: string, options: ErrorLayoutOptions): string;
71
- /**
72
- * Loading layout options
73
- */
74
- export interface LoadingLayoutOptions extends Omit<BaseLayoutOptions, 'pageType'> {
75
- /** Loading message */
76
- message?: string;
77
- /** Show spinner */
78
- showSpinner?: boolean;
79
- /** Show progress bar */
80
- showProgress?: boolean;
81
- /** Progress value (0-100) */
82
- progress?: number;
83
- }
84
- /**
85
- * Build loading page layout
86
- */
87
- export declare function loadingLayout(content: string, options: LoadingLayoutOptions): string;
88
- /**
89
- * Success layout options
90
- */
91
- export interface SuccessLayoutOptions extends Omit<BaseLayoutOptions, 'pageType'> {
92
- /** Success title */
93
- successTitle?: string;
94
- /** Success message */
95
- successMessage?: string;
96
- /** Continue button text */
97
- continueText?: string;
98
- /** Continue URL */
99
- continueUrl?: string;
100
- /** Auto-close countdown (seconds) */
101
- autoClose?: number;
102
- }
103
- /**
104
- * Build success page layout
105
- */
106
- export declare function successLayout(content: string, options: SuccessLayoutOptions): string;
107
- /**
108
- * Widget layout options (for embedded widgets)
109
- */
110
- export interface WidgetLayoutOptions extends Omit<BaseLayoutOptions, 'pageType' | 'alignment'> {
111
- /** Widget max width */
112
- maxWidth?: string;
113
- /** Show border */
114
- showBorder?: boolean;
115
- /** Transparent background */
116
- transparent?: boolean;
117
- }
118
- /**
119
- * Build widget layout (for embedding)
120
- */
121
- export declare function widgetLayout(content: string, options: WidgetLayoutOptions): string;
122
- /**
123
- * Pre-configured auth layout builder
124
- */
125
- export declare const authLayoutBuilder: (content: string, options?: Partial<BaseLayoutOptions>) => string;
126
- /**
127
- * Pre-configured consent layout builder
128
- */
129
- export declare const consentLayoutBuilder: (content: string, options?: Partial<BaseLayoutOptions>) => string;
130
- /**
131
- * Pre-configured error layout builder
132
- */
133
- export declare const errorLayoutBuilder: (content: string, options?: Partial<BaseLayoutOptions>) => string;
134
- //# sourceMappingURL=presets.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/layouts/presets.ts"],"names":[],"mappings":"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"}