@xemahq/ui-kernel 0.9.0 → 0.9.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 (238) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/biome-host/biome-registry.d.ts.map +1 -1
  6. package/dist/lib/biome-host/biome-registry.js +14 -9
  7. package/dist/lib/biome-host/biome-registry.js.map +1 -1
  8. package/dist/lib/contribution-registry/contribution-registry.d.ts +24 -0
  9. package/dist/lib/contribution-registry/contribution-registry.d.ts.map +1 -0
  10. package/dist/lib/contribution-registry/contribution-registry.js +67 -0
  11. package/dist/lib/contribution-registry/contribution-registry.js.map +1 -0
  12. package/dist/lib/contribution-registry/index.d.ts +3 -0
  13. package/dist/lib/contribution-registry/index.d.ts.map +1 -0
  14. package/dist/lib/contribution-registry/index.js +3 -0
  15. package/dist/lib/contribution-registry/index.js.map +1 -0
  16. package/dist/lib/contribution-registry/renderable-registry.d.ts +33 -0
  17. package/dist/lib/contribution-registry/renderable-registry.d.ts.map +1 -0
  18. package/dist/lib/contribution-registry/renderable-registry.js +51 -0
  19. package/dist/lib/contribution-registry/renderable-registry.js.map +1 -0
  20. package/dist/ui/capture/field-spec-to-zod.d.ts +1 -0
  21. package/dist/ui/capture/field-spec-to-zod.d.ts.map +1 -1
  22. package/dist/ui/capture/field-spec-to-zod.js +19 -0
  23. package/dist/ui/capture/field-spec-to-zod.js.map +1 -1
  24. package/dist/ui/capture/field-spec-validate.d.ts +4 -0
  25. package/dist/ui/capture/field-spec-validate.d.ts.map +1 -0
  26. package/dist/ui/capture/field-spec-validate.js +129 -0
  27. package/dist/ui/capture/field-spec-validate.js.map +1 -0
  28. package/dist/ui/capture/field-spec.d.ts +13 -1
  29. package/dist/ui/capture/field-spec.d.ts.map +1 -1
  30. package/dist/ui/capture/field-spec.js +25 -0
  31. package/dist/ui/capture/field-spec.js.map +1 -1
  32. package/dist/ui/capture/index.d.ts +4 -2
  33. package/dist/ui/capture/index.d.ts.map +1 -1
  34. package/dist/ui/capture/index.js +4 -2
  35. package/dist/ui/capture/index.js.map +1 -1
  36. package/dist/ui/capture/schema-field-input.d.ts.map +1 -1
  37. package/dist/ui/capture/schema-field-input.js +39 -12
  38. package/dist/ui/capture/schema-field-input.js.map +1 -1
  39. package/dist/ui/capture/submit-values.d.ts +6 -0
  40. package/dist/ui/capture/submit-values.d.ts.map +1 -0
  41. package/dist/ui/capture/submit-values.js +28 -0
  42. package/dist/ui/capture/submit-values.js.map +1 -0
  43. package/dist/ui/index.d.ts +1 -0
  44. package/dist/ui/index.d.ts.map +1 -1
  45. package/dist/ui/index.js +1 -0
  46. package/dist/ui/index.js.map +1 -1
  47. package/dist/ui/primitives/overflow-tabs.d.ts +5 -0
  48. package/dist/ui/primitives/overflow-tabs.d.ts.map +1 -1
  49. package/dist/ui/primitives/overflow-tabs.js +4 -4
  50. package/dist/ui/primitives/overflow-tabs.js.map +1 -1
  51. package/dist/ui/primitives/url-preview-chrome.d.ts +8 -0
  52. package/dist/ui/primitives/url-preview-chrome.d.ts.map +1 -0
  53. package/dist/ui/primitives/url-preview-chrome.js +40 -0
  54. package/dist/ui/primitives/url-preview-chrome.js.map +1 -0
  55. package/dist/vista/GenericCatalogueSurface.d.ts +10 -0
  56. package/dist/vista/GenericCatalogueSurface.d.ts.map +1 -0
  57. package/dist/vista/GenericCatalogueSurface.js +80 -0
  58. package/dist/vista/GenericCatalogueSurface.js.map +1 -0
  59. package/dist/vista/SurfaceFallbackCard.d.ts +9 -0
  60. package/dist/vista/SurfaceFallbackCard.d.ts.map +1 -0
  61. package/dist/vista/SurfaceFallbackCard.js +44 -0
  62. package/dist/vista/SurfaceFallbackCard.js.map +1 -0
  63. package/dist/vista/VistaPanel.d.ts +21 -0
  64. package/dist/vista/VistaPanel.d.ts.map +1 -0
  65. package/dist/vista/VistaPanel.js +31 -0
  66. package/dist/vista/VistaPanel.js.map +1 -0
  67. package/dist/vista/html/CustomUiFrame.d.ts +20 -0
  68. package/dist/vista/html/CustomUiFrame.d.ts.map +1 -0
  69. package/dist/vista/html/CustomUiFrame.js +69 -0
  70. package/dist/vista/html/CustomUiFrame.js.map +1 -0
  71. package/dist/vista/html/custom-ui-frame-bridge.d.ts +13 -0
  72. package/dist/vista/html/custom-ui-frame-bridge.d.ts.map +1 -0
  73. package/dist/vista/html/custom-ui-frame-bridge.js +30 -0
  74. package/dist/vista/html/custom-ui-frame-bridge.js.map +1 -0
  75. package/dist/vista/html/custom-ui-frame-contract.d.ts +29 -0
  76. package/dist/vista/html/custom-ui-frame-contract.d.ts.map +1 -0
  77. package/dist/vista/html/custom-ui-frame-contract.js +16 -0
  78. package/dist/vista/html/custom-ui-frame-contract.js.map +1 -0
  79. package/dist/vista/html/custom-ui-intents.d.ts +20 -0
  80. package/dist/vista/html/custom-ui-intents.d.ts.map +1 -0
  81. package/dist/vista/html/custom-ui-intents.js +57 -0
  82. package/dist/vista/html/custom-ui-intents.js.map +1 -0
  83. package/dist/vista/html/custom-ui-srcdoc.d.ts +17 -0
  84. package/dist/vista/html/custom-ui-srcdoc.d.ts.map +1 -0
  85. package/dist/vista/html/custom-ui-srcdoc.js +70 -0
  86. package/dist/vista/html/custom-ui-srcdoc.js.map +1 -0
  87. package/dist/vista/html/index.d.ts +6 -0
  88. package/dist/vista/html/index.d.ts.map +1 -0
  89. package/dist/vista/html/index.js +6 -0
  90. package/dist/vista/html/index.js.map +1 -0
  91. package/dist/vista/index.d.ts +18 -0
  92. package/dist/vista/index.d.ts.map +1 -0
  93. package/dist/vista/index.js +18 -0
  94. package/dist/vista/index.js.map +1 -0
  95. package/dist/vista/surface-catalogue.d.ts +5 -0
  96. package/dist/vista/surface-catalogue.d.ts.map +1 -0
  97. package/dist/vista/surface-catalogue.js +30 -0
  98. package/dist/vista/surface-catalogue.js.map +1 -0
  99. package/dist/vista/surface-icons.d.ts +7 -0
  100. package/dist/vista/surface-icons.d.ts.map +1 -0
  101. package/dist/vista/surface-icons.js +26 -0
  102. package/dist/vista/surface-icons.js.map +1 -0
  103. package/dist/vista/surface-registry.d.ts +7 -0
  104. package/dist/vista/surface-registry.d.ts.map +1 -0
  105. package/dist/vista/surface-registry.js +7 -0
  106. package/dist/vista/surface-registry.js.map +1 -0
  107. package/dist/vista/surfaces/ChartSurface.d.ts +4 -0
  108. package/dist/vista/surfaces/ChartSurface.d.ts.map +1 -0
  109. package/dist/vista/surfaces/ChartSurface.js +17 -0
  110. package/dist/vista/surfaces/ChartSurface.js.map +1 -0
  111. package/dist/vista/surfaces/FilesSurface.d.ts +15 -0
  112. package/dist/vista/surfaces/FilesSurface.d.ts.map +1 -0
  113. package/dist/vista/surfaces/FilesSurface.js +121 -0
  114. package/dist/vista/surfaces/FilesSurface.js.map +1 -0
  115. package/dist/vista/surfaces/FormSurface.d.ts +4 -0
  116. package/dist/vista/surfaces/FormSurface.d.ts.map +1 -0
  117. package/dist/vista/surfaces/FormSurface.js +97 -0
  118. package/dist/vista/surfaces/FormSurface.js.map +1 -0
  119. package/dist/vista/surfaces/HtmlSurface.d.ts +4 -0
  120. package/dist/vista/surfaces/HtmlSurface.d.ts.map +1 -0
  121. package/dist/vista/surfaces/HtmlSurface.js +11 -0
  122. package/dist/vista/surfaces/HtmlSurface.js.map +1 -0
  123. package/dist/vista/surfaces/TableSurface.d.ts +4 -0
  124. package/dist/vista/surfaces/TableSurface.d.ts.map +1 -0
  125. package/dist/vista/surfaces/TableSurface.js +42 -0
  126. package/dist/vista/surfaces/TableSurface.js.map +1 -0
  127. package/dist/vista/surfaces/UrlSurface.d.ts +4 -0
  128. package/dist/vista/surfaces/UrlSurface.d.ts.map +1 -0
  129. package/dist/vista/surfaces/UrlSurface.js +7 -0
  130. package/dist/vista/surfaces/UrlSurface.js.map +1 -0
  131. package/dist/vista/surfaces/blob-surfaces.d.ts +6 -0
  132. package/dist/vista/surfaces/blob-surfaces.d.ts.map +1 -0
  133. package/dist/vista/surfaces/blob-surfaces.js +38 -0
  134. package/dist/vista/surfaces/blob-surfaces.js.map +1 -0
  135. package/dist/vista/surfaces/elicitation-transport.d.ts +18 -0
  136. package/dist/vista/surfaces/elicitation-transport.d.ts.map +1 -0
  137. package/dist/vista/surfaces/elicitation-transport.js +100 -0
  138. package/dist/vista/surfaces/elicitation-transport.js.map +1 -0
  139. package/dist/vista/surfaces/index.d.ts +11 -0
  140. package/dist/vista/surfaces/index.d.ts.map +1 -0
  141. package/dist/vista/surfaces/index.js +89 -0
  142. package/dist/vista/surfaces/index.js.map +1 -0
  143. package/dist/vista/surfaces/text-surfaces.d.ts +8 -0
  144. package/dist/vista/surfaces/text-surfaces.d.ts.map +1 -0
  145. package/dist/vista/surfaces/text-surfaces.js +54 -0
  146. package/dist/vista/surfaces/text-surfaces.js.map +1 -0
  147. package/dist/vista/use-vista-tabs.d.ts +30 -0
  148. package/dist/vista/use-vista-tabs.d.ts.map +1 -0
  149. package/dist/vista/use-vista-tabs.js +77 -0
  150. package/dist/vista/use-vista-tabs.js.map +1 -0
  151. package/dist/vista/vista-code-renderer.d.ts +12 -0
  152. package/dist/vista/vista-code-renderer.d.ts.map +1 -0
  153. package/dist/vista/vista-code-renderer.js +10 -0
  154. package/dist/vista/vista-code-renderer.js.map +1 -0
  155. package/dist/vista/vista-file-source.d.ts +20 -0
  156. package/dist/vista/vista-file-source.d.ts.map +1 -0
  157. package/dist/vista/vista-file-source.js +69 -0
  158. package/dist/vista/vista-file-source.js.map +1 -0
  159. package/dist/vista/vista-form-host.d.ts +16 -0
  160. package/dist/vista/vista-form-host.d.ts.map +1 -0
  161. package/dist/vista/vista-form-host.js +10 -0
  162. package/dist/vista/vista-form-host.js.map +1 -0
  163. package/dist/vista/vista-model.d.ts +12 -0
  164. package/dist/vista/vista-model.d.ts.map +1 -0
  165. package/dist/vista/vista-model.js +72 -0
  166. package/dist/vista/vista-model.js.map +1 -0
  167. package/dist/vista/vista-open-context.d.ts +9 -0
  168. package/dist/vista/vista-open-context.d.ts.map +1 -0
  169. package/dist/vista/vista-open-context.js +10 -0
  170. package/dist/vista/vista-open-context.js.map +1 -0
  171. package/dist/vista/vista-payloads.d.ts +107 -0
  172. package/dist/vista/vista-payloads.d.ts.map +1 -0
  173. package/dist/vista/vista-payloads.js +305 -0
  174. package/dist/vista/vista-payloads.js.map +1 -0
  175. package/dist/vista/vista-tabs-manifest.d.ts +17 -0
  176. package/dist/vista/vista-tabs-manifest.d.ts.map +1 -0
  177. package/dist/vista/vista-tabs-manifest.js +60 -0
  178. package/dist/vista/vista-tabs-manifest.js.map +1 -0
  179. package/dist/vista/vista-tools.d.ts +41 -0
  180. package/dist/vista/vista-tools.d.ts.map +1 -0
  181. package/dist/vista/vista-tools.js +113 -0
  182. package/dist/vista/vista-tools.js.map +1 -0
  183. package/package.json +3 -3
  184. package/src/index.ts +5 -0
  185. package/src/lib/biome-host/biome-registry.ts +31 -11
  186. package/src/lib/contribution-registry/contribution-registry.spec.ts +141 -0
  187. package/src/lib/contribution-registry/contribution-registry.ts +202 -0
  188. package/src/lib/contribution-registry/index.ts +9 -0
  189. package/src/lib/contribution-registry/renderable-registry.ts +142 -0
  190. package/src/ui/capture/field-spec-to-zod.ts +22 -0
  191. package/src/ui/capture/field-spec-validate.ts +147 -0
  192. package/src/ui/capture/field-spec.ts +62 -0
  193. package/src/ui/capture/index.ts +9 -1
  194. package/src/ui/capture/schema-field-input.tsx +134 -14
  195. package/src/ui/capture/submit-values.test.ts +70 -0
  196. package/src/ui/capture/submit-values.ts +63 -0
  197. package/src/ui/index.ts +4 -0
  198. package/src/ui/primitives/overflow-tabs.tsx +24 -4
  199. package/src/ui/primitives/url-preview-chrome.tsx +102 -0
  200. package/src/vista/GenericCatalogueSurface.tsx +177 -0
  201. package/src/vista/SurfaceFallbackCard.tsx +109 -0
  202. package/src/vista/VistaPanel.tsx +155 -0
  203. package/src/vista/form-payload.spec.ts +93 -0
  204. package/src/vista/html/CustomUiFrame.spec.tsx +125 -0
  205. package/src/vista/html/CustomUiFrame.tsx +204 -0
  206. package/src/vista/html/custom-ui-frame-bridge.spec.ts +191 -0
  207. package/src/vista/html/custom-ui-frame-bridge.ts +92 -0
  208. package/src/vista/html/custom-ui-frame-contract.ts +88 -0
  209. package/src/vista/html/custom-ui-intents.spec.ts +133 -0
  210. package/src/vista/html/custom-ui-intents.ts +151 -0
  211. package/src/vista/html/custom-ui-srcdoc.spec.ts +151 -0
  212. package/src/vista/html/custom-ui-srcdoc.ts +193 -0
  213. package/src/vista/html/index.ts +13 -0
  214. package/src/vista/index.ts +48 -0
  215. package/src/vista/surface-catalogue.spec.ts +140 -0
  216. package/src/vista/surface-catalogue.ts +84 -0
  217. package/src/vista/surface-icons.ts +57 -0
  218. package/src/vista/surface-registry.ts +56 -0
  219. package/src/vista/surfaces/ChartSurface.tsx +34 -0
  220. package/src/vista/surfaces/FilesSurface.tsx +268 -0
  221. package/src/vista/surfaces/FormSurface.tsx +264 -0
  222. package/src/vista/surfaces/HtmlSurface.tsx +43 -0
  223. package/src/vista/surfaces/TableSurface.tsx +99 -0
  224. package/src/vista/surfaces/UrlSurface.tsx +40 -0
  225. package/src/vista/surfaces/blob-surfaces.tsx +129 -0
  226. package/src/vista/surfaces/elicitation-transport.spec.ts +187 -0
  227. package/src/vista/surfaces/elicitation-transport.ts +175 -0
  228. package/src/vista/surfaces/index.tsx +157 -0
  229. package/src/vista/surfaces/text-surfaces.tsx +119 -0
  230. package/src/vista/use-vista-tabs.ts +188 -0
  231. package/src/vista/vista-code-renderer.tsx +46 -0
  232. package/src/vista/vista-file-source.tsx +163 -0
  233. package/src/vista/vista-form-host.tsx +78 -0
  234. package/src/vista/vista-model.ts +130 -0
  235. package/src/vista/vista-open-context.tsx +42 -0
  236. package/src/vista/vista-payloads.ts +514 -0
  237. package/src/vista/vista-tabs-manifest.ts +123 -0
  238. package/src/vista/vista-tools.ts +220 -0
@@ -0,0 +1,72 @@
1
+ import { SurfaceKind } from '@xemahq/kernel-contracts/surface';
2
+ export const VISTA_FILES_TAB_ID = 'files';
3
+ export const VISTA_SURFACE_VERSION = 1;
4
+ const EXTENSION_KIND = {
5
+ html: SurfaceKind.Html,
6
+ htm: SurfaceKind.Html,
7
+ md: SurfaceKind.Markdown,
8
+ mdx: SurfaceKind.Markdown,
9
+ markdown: SurfaceKind.Markdown,
10
+ pdf: SurfaceKind.Pdf,
11
+ png: SurfaceKind.Image,
12
+ jpg: SurfaceKind.Image,
13
+ jpeg: SurfaceKind.Image,
14
+ gif: SurfaceKind.Image,
15
+ webp: SurfaceKind.Image,
16
+ svg: SurfaceKind.Image,
17
+ avif: SurfaceKind.Image,
18
+ mp4: SurfaceKind.Media,
19
+ webm: SurfaceKind.Media,
20
+ mov: SurfaceKind.Media,
21
+ mp3: SurfaceKind.Media,
22
+ wav: SurfaceKind.Media,
23
+ ogg: SurfaceKind.Media,
24
+ m4a: SurfaceKind.Media,
25
+ json: SurfaceKind.Json,
26
+ diff: SurfaceKind.Diff,
27
+ patch: SurfaceKind.Diff,
28
+ };
29
+ export function surfaceKindForPath(path) {
30
+ const dot = path.lastIndexOf('.');
31
+ if (dot === -1)
32
+ return SurfaceKind.Code;
33
+ const ext = path.slice(dot + 1).toLowerCase();
34
+ return EXTENSION_KIND[ext] ?? SurfaceKind.Code;
35
+ }
36
+ const EXTENSION_CONTENT_TYPE = {
37
+ png: 'image/png',
38
+ jpg: 'image/jpeg',
39
+ jpeg: 'image/jpeg',
40
+ gif: 'image/gif',
41
+ webp: 'image/webp',
42
+ svg: 'image/svg+xml',
43
+ avif: 'image/avif',
44
+ pdf: 'application/pdf',
45
+ mp4: 'video/mp4',
46
+ webm: 'video/webm',
47
+ mov: 'video/quicktime',
48
+ mp3: 'audio/mpeg',
49
+ wav: 'audio/wav',
50
+ ogg: 'audio/ogg',
51
+ m4a: 'audio/mp4',
52
+ };
53
+ export function contentTypeForPath(path) {
54
+ const dot = path.lastIndexOf('.');
55
+ if (dot === -1)
56
+ return null;
57
+ return EXTENSION_CONTENT_TYPE[path.slice(dot + 1).toLowerCase()] ?? null;
58
+ }
59
+ export function labelForPath(path) {
60
+ const segments = path.split('/');
61
+ return segments[segments.length - 1] || path;
62
+ }
63
+ export function fileSurface(path, overrides) {
64
+ return {
65
+ tabId: `file:${path}`,
66
+ kind: overrides?.kind ?? surfaceKindForPath(path),
67
+ version: VISTA_SURFACE_VERSION,
68
+ title: overrides?.title ?? labelForPath(path),
69
+ payload: { path },
70
+ };
71
+ }
72
+ //# sourceMappingURL=vista-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vista-model.js","sourceRoot":"","sources":["../../src/vista/vista-model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type ReactElement, type ReactNode } from 'react';
2
+ import type { VistaTab } from './vista-model';
3
+ export type VistaOpenFn = (surface: VistaTab) => string;
4
+ export declare function VistaOpenProvider({ open, children, }: Readonly<{
5
+ open: VistaOpenFn;
6
+ children: ReactNode;
7
+ }>): ReactElement;
8
+ export declare function useVistaOpen(): VistaOpenFn | null;
9
+ //# sourceMappingURL=vista-open-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vista-open-context.d.ts","sourceRoot":"","sources":["../../src/vista/vista-open-context.tsx"],"names":[],"mappings":"AAaA,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,QAAQ,KAAK,MAAM,CAAC;AAIxD,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,QAAQ,GACT,EAAE,QAAQ,CAAC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,CAAC,GAAG,YAAY,CAMrE;AAGD,wBAAgB,YAAY,IAAI,WAAW,GAAG,IAAI,CAEjD"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useContext, } from 'react';
3
+ const VistaOpenContext = createContext(null);
4
+ export function VistaOpenProvider({ open, children, }) {
5
+ return (_jsx(VistaOpenContext.Provider, { value: open, children: children }));
6
+ }
7
+ export function useVistaOpen() {
8
+ return useContext(VistaOpenContext);
9
+ }
10
+ //# sourceMappingURL=vista-open-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vista-open-context.js","sourceRoot":"","sources":["../../src/vista/vista-open-context.tsx"],"names":[],"mappings":";AAaA,OAAO,EACL,aAAa,EACb,UAAU,GAGX,MAAM,OAAO,CAAC;AAOf,MAAM,gBAAgB,GAAG,aAAa,CAAqB,IAAI,CAAC,CAAC;AAEjE,MAAM,UAAU,iBAAiB,CAAC,EAChC,IAAI,EACJ,QAAQ,GAC6C;IACrD,OAAO,CACL,KAAC,gBAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,IAAI,YACnC,QAAQ,GACiB,CAC7B,CAAC;AACJ,CAAC;AAGD,MAAM,UAAU,YAAY;IAC1B,OAAO,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACtC,CAAC"}
@@ -0,0 +1,107 @@
1
+ import type { CaptureFieldSpec } from '../ui/capture/field-spec';
2
+ import type { PreviewDevice } from '../ui/primitives/preview-device-frame';
3
+ export interface VistaTextPayload {
4
+ readonly content?: string;
5
+ readonly path?: string;
6
+ readonly language?: string;
7
+ }
8
+ export declare function validateTextPayload(raw: unknown): VistaTextPayload | null;
9
+ export interface VistaBlobPayload {
10
+ readonly url?: string;
11
+ readonly path?: string;
12
+ readonly alt?: string;
13
+ readonly contentType?: string;
14
+ }
15
+ export declare function validateBlobPayload(raw: unknown): VistaBlobPayload | null;
16
+ export interface VistaUrlPayload {
17
+ readonly url: string;
18
+ readonly device?: PreviewDevice;
19
+ readonly reloadNonce?: number;
20
+ }
21
+ export declare function validateUrlPayload(raw: unknown): VistaUrlPayload | null;
22
+ export type VistaHtmlPayload = {
23
+ readonly document: string;
24
+ } | {
25
+ readonly compiledOutput: string;
26
+ readonly integrity: string;
27
+ readonly styleCss?: string;
28
+ };
29
+ export declare function validateHtmlPayload(raw: unknown): VistaHtmlPayload | null;
30
+ export interface VistaJsonPayload {
31
+ readonly data: unknown;
32
+ }
33
+ export declare function validateJsonPayload(raw: unknown): VistaJsonPayload | null;
34
+ export interface VistaTablePayload {
35
+ readonly columns: readonly string[];
36
+ readonly rows: readonly (readonly unknown[])[];
37
+ }
38
+ export declare function validateTablePayload(raw: unknown): VistaTablePayload | null;
39
+ export declare enum VistaChartKind {
40
+ Bar = "bar",
41
+ Line = "line",
42
+ Donut = "donut"
43
+ }
44
+ export interface VistaChartDatum {
45
+ readonly label: string;
46
+ readonly value: number;
47
+ }
48
+ export interface VistaChartSeries {
49
+ readonly name: string;
50
+ readonly points: readonly VistaChartDatum[];
51
+ }
52
+ export interface VistaChartPayload {
53
+ readonly kind: VistaChartKind;
54
+ readonly title: string;
55
+ readonly series: readonly [VistaChartSeries, ...VistaChartSeries[]];
56
+ }
57
+ export declare function validateChartPayload(raw: unknown): VistaChartPayload | null;
58
+ export type VistaDiffPayload = VistaTextPayload;
59
+ export declare const validateDiffPayload: typeof validateTextPayload;
60
+ export interface VistaFileEntry {
61
+ readonly path: string;
62
+ readonly add?: number;
63
+ readonly del?: number;
64
+ }
65
+ export interface VistaFilesPayload {
66
+ readonly files: readonly VistaFileEntry[];
67
+ }
68
+ export declare function validateFilesPayload(raw: unknown): VistaFilesPayload | null;
69
+ export interface VistaBiomeRoutePayload {
70
+ readonly deeplink: string;
71
+ }
72
+ export declare function validateBiomeRoutePayload(raw: unknown): VistaBiomeRoutePayload | null;
73
+ export interface VistaObjectPayload {
74
+ readonly ref: string;
75
+ }
76
+ export declare function validateObjectPayload(raw: unknown): VistaObjectPayload | null;
77
+ export interface VistaGraphPayload {
78
+ readonly anchorRef?: string;
79
+ readonly depth?: number;
80
+ }
81
+ export declare function validateGraphPayload(raw: unknown): VistaGraphPayload | null;
82
+ export interface VistaWebPayload {
83
+ readonly href: string;
84
+ }
85
+ export declare function validateWebPayload(raw: unknown): VistaWebPayload | null;
86
+ export interface VistaFormLaunch {
87
+ readonly url: string;
88
+ readonly label: string;
89
+ readonly hint?: string;
90
+ }
91
+ export interface VistaFormPayload {
92
+ readonly ref: string;
93
+ readonly purpose: string;
94
+ readonly submitUrl: string;
95
+ readonly statusUrl: string;
96
+ readonly fields: readonly CaptureFieldSpec[];
97
+ readonly heading?: string;
98
+ readonly submitLabel?: string;
99
+ readonly launch?: VistaFormLaunch;
100
+ }
101
+ export declare function validateFormPayload(raw: unknown): VistaFormPayload | null;
102
+ export interface VistaAppPayload {
103
+ readonly appId: string;
104
+ readonly path?: string;
105
+ }
106
+ export declare function validateAppPayload(raw: unknown): VistaAppPayload | null;
107
+ //# sourceMappingURL=vista-payloads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vista-payloads.d.ts","sourceRoot":"","sources":["../../src/vista/vista-payloads.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,305 @@
1
+ import { validateCaptureFields } from '../ui/capture/field-spec-validate';
2
+ function asRecord(value) {
3
+ return value !== null && typeof value === 'object' && !Array.isArray(value)
4
+ ? value
5
+ : null;
6
+ }
7
+ function optionalString(value) {
8
+ if (value === undefined)
9
+ return undefined;
10
+ return typeof value === 'string' ? value : null;
11
+ }
12
+ function exactlyOne(a, b) {
13
+ const left = typeof a === 'string' ? a : undefined;
14
+ const right = typeof b === 'string' ? b : undefined;
15
+ if ((left === undefined) === (right === undefined))
16
+ return null;
17
+ return left === undefined ? { b: right } : { a: left };
18
+ }
19
+ export function validateTextPayload(raw) {
20
+ const record = asRecord(raw);
21
+ if (record === null)
22
+ return null;
23
+ const source = exactlyOne(record.content, record.path);
24
+ if (source === null)
25
+ return null;
26
+ const language = optionalString(record.language);
27
+ if (language === null)
28
+ return null;
29
+ const base = source.a === undefined ? { path: source.b } : { content: source.a };
30
+ return language === undefined ? base : { ...base, language };
31
+ }
32
+ export function validateBlobPayload(raw) {
33
+ const record = asRecord(raw);
34
+ if (record === null)
35
+ return null;
36
+ const source = exactlyOne(record.url, record.path);
37
+ if (source === null)
38
+ return null;
39
+ const alt = optionalString(record.alt);
40
+ if (alt === null)
41
+ return null;
42
+ const contentType = optionalString(record.contentType);
43
+ if (contentType === null)
44
+ return null;
45
+ const payload = source.a === undefined ? { path: source.b } : { url: source.a };
46
+ if (alt !== undefined)
47
+ payload.alt = alt;
48
+ if (contentType !== undefined)
49
+ payload.contentType = contentType;
50
+ return payload;
51
+ }
52
+ const PREVIEW_DEVICES = [
53
+ 'desktop',
54
+ 'tablet',
55
+ 'mobile',
56
+ 'presentation',
57
+ 'a4',
58
+ ];
59
+ export function validateUrlPayload(raw) {
60
+ const record = asRecord(raw);
61
+ if (record === null)
62
+ return null;
63
+ if (typeof record.url !== 'string' || record.url.length === 0)
64
+ return null;
65
+ const payload = { url: record.url };
66
+ if (record.device !== undefined) {
67
+ if (!PREVIEW_DEVICES.includes(record.device))
68
+ return null;
69
+ payload.device = record.device;
70
+ }
71
+ if (record.reloadNonce !== undefined) {
72
+ if (typeof record.reloadNonce !== 'number')
73
+ return null;
74
+ payload.reloadNonce = record.reloadNonce;
75
+ }
76
+ return payload;
77
+ }
78
+ const SRI_TOKEN = /^sha384-[A-Za-z0-9+/]+={0,2}$/;
79
+ export function validateHtmlPayload(raw) {
80
+ const record = asRecord(raw);
81
+ if (record === null)
82
+ return null;
83
+ const hasDocument = typeof record.document === 'string';
84
+ const hasChunk = typeof record.compiledOutput === 'string';
85
+ if (hasDocument === hasChunk)
86
+ return null;
87
+ if (hasDocument)
88
+ return { document: record.document };
89
+ if (typeof record.integrity !== 'string' || !SRI_TOKEN.test(record.integrity))
90
+ return null;
91
+ const styleCss = optionalString(record.styleCss);
92
+ if (styleCss === null)
93
+ return null;
94
+ const payload = {
95
+ compiledOutput: record.compiledOutput,
96
+ integrity: record.integrity,
97
+ };
98
+ return styleCss === undefined ? payload : { ...payload, styleCss };
99
+ }
100
+ export function validateJsonPayload(raw) {
101
+ const record = asRecord(raw);
102
+ if (record === null)
103
+ return null;
104
+ if (!('data' in record))
105
+ return null;
106
+ return { data: record.data };
107
+ }
108
+ export function validateTablePayload(raw) {
109
+ const record = asRecord(raw);
110
+ if (record === null)
111
+ return null;
112
+ if (!Array.isArray(record.columns) || !Array.isArray(record.rows))
113
+ return null;
114
+ if (!record.columns.every((c) => typeof c === 'string'))
115
+ return null;
116
+ if (!record.rows.every((r) => Array.isArray(r)))
117
+ return null;
118
+ return {
119
+ columns: record.columns,
120
+ rows: record.rows,
121
+ };
122
+ }
123
+ export var VistaChartKind;
124
+ (function (VistaChartKind) {
125
+ VistaChartKind["Bar"] = "bar";
126
+ VistaChartKind["Line"] = "line";
127
+ VistaChartKind["Donut"] = "donut";
128
+ })(VistaChartKind || (VistaChartKind = {}));
129
+ const CHART_KINDS = Object.values(VistaChartKind);
130
+ export function validateChartPayload(raw) {
131
+ const record = asRecord(raw);
132
+ if (record === null)
133
+ return null;
134
+ if (typeof record.kind !== 'string' || !CHART_KINDS.includes(record.kind))
135
+ return null;
136
+ if (typeof record.title !== 'string' || record.title.length === 0)
137
+ return null;
138
+ if (!Array.isArray(record.series) || record.series.length === 0)
139
+ return null;
140
+ const series = [];
141
+ for (const entry of record.series) {
142
+ const row = asRecord(entry);
143
+ if (row === null || typeof row.name !== 'string')
144
+ return null;
145
+ if (!Array.isArray(row.points))
146
+ return null;
147
+ const points = [];
148
+ for (const point of row.points) {
149
+ const p = asRecord(point);
150
+ if (p === null || typeof p.label !== 'string')
151
+ return null;
152
+ if (typeof p.value !== 'number')
153
+ return null;
154
+ points.push({ label: p.label, value: p.value });
155
+ }
156
+ series.push({ name: row.name, points });
157
+ }
158
+ return {
159
+ kind: record.kind,
160
+ title: record.title,
161
+ series: series,
162
+ };
163
+ }
164
+ export const validateDiffPayload = validateTextPayload;
165
+ export function validateFilesPayload(raw) {
166
+ const record = asRecord(raw);
167
+ if (record === null)
168
+ return null;
169
+ if (!Array.isArray(record.files))
170
+ return null;
171
+ const files = [];
172
+ for (const entry of record.files) {
173
+ const row = asRecord(entry);
174
+ if (row === null || typeof row.path !== 'string')
175
+ return null;
176
+ const file = {
177
+ path: row.path,
178
+ };
179
+ if (row.add !== undefined) {
180
+ if (typeof row.add !== 'number')
181
+ return null;
182
+ file.add = row.add;
183
+ }
184
+ if (row.del !== undefined) {
185
+ if (typeof row.del !== 'number')
186
+ return null;
187
+ file.del = row.del;
188
+ }
189
+ files.push(file);
190
+ }
191
+ return { files };
192
+ }
193
+ export function validateBiomeRoutePayload(raw) {
194
+ const record = asRecord(raw);
195
+ if (record === null)
196
+ return null;
197
+ return typeof record.deeplink === 'string' && record.deeplink.length > 0
198
+ ? { deeplink: record.deeplink }
199
+ : null;
200
+ }
201
+ export function validateObjectPayload(raw) {
202
+ const record = asRecord(raw);
203
+ if (record === null)
204
+ return null;
205
+ return typeof record.ref === 'string' && record.ref.length > 0
206
+ ? { ref: record.ref }
207
+ : null;
208
+ }
209
+ export function validateGraphPayload(raw) {
210
+ const record = asRecord(raw);
211
+ if (record === null)
212
+ return null;
213
+ const anchorRef = optionalString(record.anchorRef);
214
+ if (anchorRef === null)
215
+ return null;
216
+ if (record.depth !== undefined && typeof record.depth !== 'number')
217
+ return null;
218
+ const payload = {};
219
+ if (anchorRef !== undefined)
220
+ payload.anchorRef = anchorRef;
221
+ if (record.depth !== undefined)
222
+ payload.depth = record.depth;
223
+ return payload;
224
+ }
225
+ export function validateWebPayload(raw) {
226
+ const record = asRecord(raw);
227
+ if (record === null)
228
+ return null;
229
+ return typeof record.href === 'string' && record.href.startsWith('/')
230
+ ? { href: record.href }
231
+ : null;
232
+ }
233
+ function absoluteHttpUrl(value) {
234
+ if (typeof value !== 'string' || value.length === 0)
235
+ return null;
236
+ let parsed;
237
+ try {
238
+ parsed = new URL(value);
239
+ }
240
+ catch {
241
+ return null;
242
+ }
243
+ return parsed.protocol === 'https:' || parsed.protocol === 'http:' ? value : null;
244
+ }
245
+ export function validateFormPayload(raw) {
246
+ const record = asRecord(raw);
247
+ if (record === null)
248
+ return null;
249
+ if (typeof record.ref !== 'string' || record.ref.length === 0)
250
+ return null;
251
+ if (typeof record.purpose !== 'string')
252
+ return null;
253
+ const submitUrl = absoluteHttpUrl(record.submitUrl);
254
+ if (submitUrl === null)
255
+ return null;
256
+ const statusUrl = absoluteHttpUrl(record.statusUrl);
257
+ if (statusUrl === null)
258
+ return null;
259
+ const fields = validateCaptureFields(record.fields);
260
+ if (fields === null)
261
+ return null;
262
+ const heading = optionalString(record.heading);
263
+ if (heading === null)
264
+ return null;
265
+ const submitLabel = optionalString(record.submitLabel);
266
+ if (submitLabel === null)
267
+ return null;
268
+ let launch;
269
+ if (record.launch !== undefined) {
270
+ const raw_ = asRecord(record.launch);
271
+ if (raw_ === null)
272
+ return null;
273
+ const url = absoluteHttpUrl(raw_.url);
274
+ if (url === null)
275
+ return null;
276
+ if (typeof raw_.label !== 'string' || raw_.label.length === 0)
277
+ return null;
278
+ const hint = optionalString(raw_.hint);
279
+ if (hint === null)
280
+ return null;
281
+ launch = hint === undefined ? { url, label: raw_.label } : { url, label: raw_.label, hint };
282
+ }
283
+ const payload = { ref: record.ref, purpose: record.purpose, submitUrl, statusUrl, fields };
284
+ if (heading !== undefined)
285
+ payload.heading = heading;
286
+ if (submitLabel !== undefined)
287
+ payload.submitLabel = submitLabel;
288
+ if (launch !== undefined)
289
+ payload.launch = launch;
290
+ return payload;
291
+ }
292
+ export function validateAppPayload(raw) {
293
+ const record = asRecord(raw);
294
+ if (record === null)
295
+ return null;
296
+ if (typeof record.appId !== 'string' || record.appId.length === 0)
297
+ return null;
298
+ const path = optionalString(record.path);
299
+ if (path === null)
300
+ return null;
301
+ return path === undefined
302
+ ? { appId: record.appId }
303
+ : { appId: record.appId, path };
304
+ }
305
+ //# sourceMappingURL=vista-payloads.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vista-payloads.js","sourceRoot":"","sources":["../../src/vista/vista-payloads.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { SurfaceKind } from '@xemahq/kernel-contracts/surface';
2
+ export declare const DECLARABLE_SURFACE_KINDS: readonly SurfaceKind[];
3
+ export interface VistaTabSpec {
4
+ readonly path: string;
5
+ readonly kind: SurfaceKind;
6
+ readonly label?: string;
7
+ }
8
+ export interface VistaTabsManifest {
9
+ readonly version: 1;
10
+ readonly tabs: readonly VistaTabSpec[];
11
+ readonly selectedPath?: string;
12
+ }
13
+ export interface VistaTabsManifestOptions {
14
+ readonly pathPrefix: string;
15
+ }
16
+ export declare function parseVistaTabsManifest(raw: string, { pathPrefix }: VistaTabsManifestOptions): VistaTabsManifest | null;
17
+ //# sourceMappingURL=vista-tabs-manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vista-tabs-manifest.d.ts","sourceRoot":"","sources":["../../src/vista/vista-tabs-manifest.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAU/D,eAAO,MAAM,wBAAwB,EAAE,SAAS,WAAW,EAS1D,CAAC;AAGF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,SAAS,YAAY,EAAE,CAAC;IAEvC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAGD,MAAM,WAAW,wBAAwB;IAKvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AA8BD,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,EAAE,UAAU,EAAE,EAAE,wBAAwB,GACvC,iBAAiB,GAAG,IAAI,CAsB1B"}
@@ -0,0 +1,60 @@
1
+ import { SurfaceKind } from '@xemahq/kernel-contracts/surface';
2
+ import { surfaceKindForPath } from './vista-model';
3
+ export const DECLARABLE_SURFACE_KINDS = [
4
+ SurfaceKind.Html,
5
+ SurfaceKind.Markdown,
6
+ SurfaceKind.Code,
7
+ SurfaceKind.Json,
8
+ SurfaceKind.Diff,
9
+ SurfaceKind.Pdf,
10
+ SurfaceKind.Image,
11
+ SurfaceKind.Media,
12
+ ];
13
+ function parseEntry(entry, pathPrefix) {
14
+ if (!entry || typeof entry !== 'object')
15
+ return null;
16
+ const record = entry;
17
+ if (typeof record.path !== 'string')
18
+ return null;
19
+ if (!record.path.startsWith(pathPrefix))
20
+ return null;
21
+ if (record.path.includes('..'))
22
+ return null;
23
+ const kind = typeof record.kind === 'string'
24
+ ? record.kind
25
+ : surfaceKindForPath(record.path);
26
+ if (!DECLARABLE_SURFACE_KINDS.includes(kind))
27
+ return null;
28
+ const label = typeof record.label === 'string' ? record.label : undefined;
29
+ return label === undefined
30
+ ? { path: record.path, kind }
31
+ : { path: record.path, kind, label };
32
+ }
33
+ export function parseVistaTabsManifest(raw, { pathPrefix }) {
34
+ let parsed;
35
+ try {
36
+ parsed = JSON.parse(raw);
37
+ }
38
+ catch {
39
+ return null;
40
+ }
41
+ if (!parsed || typeof parsed !== 'object')
42
+ return null;
43
+ const record = parsed;
44
+ if (record.version !== 1)
45
+ return null;
46
+ if (!Array.isArray(record.tabs))
47
+ return null;
48
+ const tabs = [];
49
+ for (const entry of record.tabs) {
50
+ const tab = parseEntry(entry, pathPrefix);
51
+ if (tab === null)
52
+ return null;
53
+ tabs.push(tab);
54
+ }
55
+ const selectedPath = typeof record.selectedPath === 'string' ? record.selectedPath : undefined;
56
+ return selectedPath === undefined
57
+ ? { version: 1, tabs }
58
+ : { version: 1, tabs, selectedPath };
59
+ }
60
+ //# sourceMappingURL=vista-tabs-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vista-tabs-manifest.js","sourceRoot":"","sources":["../../src/vista/vista-tabs-manifest.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAQnD,MAAM,CAAC,MAAM,wBAAwB,GAA2B;IAC9D,WAAW,CAAC,IAAI;IAChB,WAAW,CAAC,QAAQ;IACpB,WAAW,CAAC,IAAI;IAChB,WAAW,CAAC,IAAI;IAChB,WAAW,CAAC,IAAI;IAChB,WAAW,CAAC,GAAG;IACf,WAAW,CAAC,KAAK;IACjB,WAAW,CAAC,KAAK;CAClB,CAAC;AA0BF,SAAS,UAAU,CACjB,KAAc,EACd,UAAkB;IAElB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACrD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAEjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACrD,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,MAAM,IAAI,GACR,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;QAC7B,CAAC,CAAE,MAAM,CAAC,IAAoB;QAC9B,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAGtC,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,OAAO,KAAK,KAAK,SAAS;QACxB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE;QAC7B,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzC,CAAC;AAOD,MAAM,UAAU,sBAAsB,CACpC,GAAW,EACX,EAAE,UAAU,EAA4B;IAExC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACvD,MAAM,MAAM,GAAG,MAAiC,CAAC;IACjD,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,IAAI,GAAmB,EAAE,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC1C,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IACD,MAAM,YAAY,GAChB,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,OAAO,YAAY,KAAK,SAAS;QAC/B,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE;QACtB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;AACzC,CAAC"}