@nuasite/cms 0.1.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 (269) hide show
  1. package/README.md +237 -0
  2. package/dist/src/build-processor.d.ts +20 -0
  3. package/dist/src/build-processor.d.ts.map +1 -0
  4. package/dist/src/collection-scanner.d.ts +6 -0
  5. package/dist/src/collection-scanner.d.ts.map +1 -0
  6. package/dist/src/component-registry.d.ts +63 -0
  7. package/dist/src/component-registry.d.ts.map +1 -0
  8. package/dist/src/config.d.ts +24 -0
  9. package/dist/src/config.d.ts.map +1 -0
  10. package/dist/src/dev-middleware.d.ts +20 -0
  11. package/dist/src/dev-middleware.d.ts.map +1 -0
  12. package/dist/src/editor/ai.d.ts +60 -0
  13. package/dist/src/editor/ai.d.ts.map +1 -0
  14. package/dist/src/editor/api.d.ts +140 -0
  15. package/dist/src/editor/api.d.ts.map +1 -0
  16. package/dist/src/editor/color-utils.d.ts +106 -0
  17. package/dist/src/editor/color-utils.d.ts.map +1 -0
  18. package/dist/src/editor/components/ai-chat.d.ts +11 -0
  19. package/dist/src/editor/components/ai-chat.d.ts.map +1 -0
  20. package/dist/src/editor/components/ai-tooltip.d.ts +12 -0
  21. package/dist/src/editor/components/ai-tooltip.d.ts.map +1 -0
  22. package/dist/src/editor/components/attribute-editor.d.ts +5 -0
  23. package/dist/src/editor/components/attribute-editor.d.ts.map +1 -0
  24. package/dist/src/editor/components/block-editor.d.ts +12 -0
  25. package/dist/src/editor/components/block-editor.d.ts.map +1 -0
  26. package/dist/src/editor/components/collections-browser.d.ts +2 -0
  27. package/dist/src/editor/components/collections-browser.d.ts.map +1 -0
  28. package/dist/src/editor/components/color-toolbar.d.ts +12 -0
  29. package/dist/src/editor/components/color-toolbar.d.ts.map +1 -0
  30. package/dist/src/editor/components/confirm-dialog.d.ts +2 -0
  31. package/dist/src/editor/components/confirm-dialog.d.ts.map +1 -0
  32. package/dist/src/editor/components/create-page-modal.d.ts +2 -0
  33. package/dist/src/editor/components/create-page-modal.d.ts.map +1 -0
  34. package/dist/src/editor/components/editable-highlights.d.ts +9 -0
  35. package/dist/src/editor/components/editable-highlights.d.ts.map +1 -0
  36. package/dist/src/editor/components/error-boundary.d.ts +32 -0
  37. package/dist/src/editor/components/error-boundary.d.ts.map +1 -0
  38. package/dist/src/editor/components/fields.d.ts +75 -0
  39. package/dist/src/editor/components/fields.d.ts.map +1 -0
  40. package/dist/src/editor/components/frontmatter-fields.d.ts +29 -0
  41. package/dist/src/editor/components/frontmatter-fields.d.ts.map +1 -0
  42. package/dist/src/editor/components/highlight-overlay.d.ts +64 -0
  43. package/dist/src/editor/components/highlight-overlay.d.ts.map +1 -0
  44. package/dist/src/editor/components/image-overlay.d.ts +12 -0
  45. package/dist/src/editor/components/image-overlay.d.ts.map +1 -0
  46. package/dist/src/editor/components/markdown-editor-overlay.d.ts +6 -0
  47. package/dist/src/editor/components/markdown-editor-overlay.d.ts.map +1 -0
  48. package/dist/src/editor/components/markdown-inline-editor.d.ts +10 -0
  49. package/dist/src/editor/components/markdown-inline-editor.d.ts.map +1 -0
  50. package/dist/src/editor/components/media-library.d.ts +2 -0
  51. package/dist/src/editor/components/media-library.d.ts.map +1 -0
  52. package/dist/src/editor/components/outline.d.ts +21 -0
  53. package/dist/src/editor/components/outline.d.ts.map +1 -0
  54. package/dist/src/editor/components/redirect-countdown.d.ts +2 -0
  55. package/dist/src/editor/components/redirect-countdown.d.ts.map +1 -0
  56. package/dist/src/editor/components/seo-editor.d.ts +2 -0
  57. package/dist/src/editor/components/seo-editor.d.ts.map +1 -0
  58. package/dist/src/editor/components/text-style-toolbar.d.ts +8 -0
  59. package/dist/src/editor/components/text-style-toolbar.d.ts.map +1 -0
  60. package/dist/src/editor/components/toast/toast-container.d.ts +7 -0
  61. package/dist/src/editor/components/toast/toast-container.d.ts.map +1 -0
  62. package/dist/src/editor/components/toast/toast.d.ts +7 -0
  63. package/dist/src/editor/components/toast/toast.d.ts.map +1 -0
  64. package/dist/src/editor/components/toast/types.d.ts +7 -0
  65. package/dist/src/editor/components/toast/types.d.ts.map +1 -0
  66. package/dist/src/editor/components/toolbar.d.ts +21 -0
  67. package/dist/src/editor/components/toolbar.d.ts.map +1 -0
  68. package/dist/src/editor/config.d.ts +4 -0
  69. package/dist/src/editor/config.d.ts.map +1 -0
  70. package/dist/src/editor/constants.d.ts +101 -0
  71. package/dist/src/editor/constants.d.ts.map +1 -0
  72. package/dist/src/editor/context.d.ts +14 -0
  73. package/dist/src/editor/context.d.ts.map +1 -0
  74. package/dist/src/editor/dom.d.ts +77 -0
  75. package/dist/src/editor/dom.d.ts.map +1 -0
  76. package/dist/src/editor/editor.d.ts +64 -0
  77. package/dist/src/editor/editor.d.ts.map +1 -0
  78. package/dist/src/editor/history.d.ts +20 -0
  79. package/dist/src/editor/history.d.ts.map +1 -0
  80. package/dist/src/editor/hooks/index.d.ts +14 -0
  81. package/dist/src/editor/hooks/index.d.ts.map +1 -0
  82. package/dist/src/editor/hooks/useAIHandlers.d.ts +22 -0
  83. package/dist/src/editor/hooks/useAIHandlers.d.ts.map +1 -0
  84. package/dist/src/editor/hooks/useBlockEditorHandlers.d.ts +18 -0
  85. package/dist/src/editor/hooks/useBlockEditorHandlers.d.ts.map +1 -0
  86. package/dist/src/editor/hooks/useElementDetection.d.ts +26 -0
  87. package/dist/src/editor/hooks/useElementDetection.d.ts.map +1 -0
  88. package/dist/src/editor/hooks/useImageHoverDetection.d.ts +12 -0
  89. package/dist/src/editor/hooks/useImageHoverDetection.d.ts.map +1 -0
  90. package/dist/src/editor/hooks/useTextSelection.d.ts +23 -0
  91. package/dist/src/editor/hooks/useTextSelection.d.ts.map +1 -0
  92. package/dist/src/editor/hooks/useTooltipState.d.ts +19 -0
  93. package/dist/src/editor/hooks/useTooltipState.d.ts.map +1 -0
  94. package/dist/src/editor/hooks/utils.d.ts +32 -0
  95. package/dist/src/editor/hooks/utils.d.ts.map +1 -0
  96. package/dist/src/editor/index.d.ts +12 -0
  97. package/dist/src/editor/index.d.ts.map +1 -0
  98. package/dist/src/editor/lib/cn.d.ts +3 -0
  99. package/dist/src/editor/lib/cn.d.ts.map +1 -0
  100. package/dist/src/editor/manifest.d.ts +19 -0
  101. package/dist/src/editor/manifest.d.ts.map +1 -0
  102. package/dist/src/editor/markdown-api.d.ts +36 -0
  103. package/dist/src/editor/markdown-api.d.ts.map +1 -0
  104. package/dist/src/editor/signals.d.ts +242 -0
  105. package/dist/src/editor/signals.d.ts.map +1 -0
  106. package/dist/src/editor/storage.d.ts +27 -0
  107. package/dist/src/editor/storage.d.ts.map +1 -0
  108. package/dist/src/editor/text-styling.d.ts +350 -0
  109. package/dist/src/editor/text-styling.d.ts.map +1 -0
  110. package/dist/src/editor/themes.d.ts +38 -0
  111. package/dist/src/editor/themes.d.ts.map +1 -0
  112. package/dist/src/editor/types.d.ts +454 -0
  113. package/dist/src/editor/types.d.ts.map +1 -0
  114. package/dist/src/error-collector.d.ts +56 -0
  115. package/dist/src/error-collector.d.ts.map +1 -0
  116. package/dist/src/handlers/component-ops.d.ts +34 -0
  117. package/dist/src/handlers/component-ops.d.ts.map +1 -0
  118. package/dist/src/handlers/markdown-ops.d.ts +41 -0
  119. package/dist/src/handlers/markdown-ops.d.ts.map +1 -0
  120. package/dist/src/handlers/request-utils.d.ts +20 -0
  121. package/dist/src/handlers/request-utils.d.ts.map +1 -0
  122. package/dist/src/handlers/source-writer.d.ts +51 -0
  123. package/dist/src/handlers/source-writer.d.ts.map +1 -0
  124. package/dist/src/html-processor.d.ts +63 -0
  125. package/dist/src/html-processor.d.ts.map +1 -0
  126. package/dist/src/index.d.ts +41 -0
  127. package/dist/src/index.d.ts.map +1 -0
  128. package/dist/src/manifest-writer.d.ts +111 -0
  129. package/dist/src/manifest-writer.d.ts.map +1 -0
  130. package/dist/src/media/contember.d.ts +15 -0
  131. package/dist/src/media/contember.d.ts.map +1 -0
  132. package/dist/src/media/local.d.ts +9 -0
  133. package/dist/src/media/local.d.ts.map +1 -0
  134. package/dist/src/media/s3.d.ts +12 -0
  135. package/dist/src/media/s3.d.ts.map +1 -0
  136. package/dist/src/media/types.d.ts +40 -0
  137. package/dist/src/media/types.d.ts.map +1 -0
  138. package/dist/src/preview-generator.d.ts +19 -0
  139. package/dist/src/preview-generator.d.ts.map +1 -0
  140. package/dist/src/seo-processor.d.ts +23 -0
  141. package/dist/src/seo-processor.d.ts.map +1 -0
  142. package/dist/src/source-finder/ast-extractors.d.ts +35 -0
  143. package/dist/src/source-finder/ast-extractors.d.ts.map +1 -0
  144. package/dist/src/source-finder/ast-parser.d.ts +16 -0
  145. package/dist/src/source-finder/ast-parser.d.ts.map +1 -0
  146. package/dist/src/source-finder/cache.d.ts +18 -0
  147. package/dist/src/source-finder/cache.d.ts.map +1 -0
  148. package/dist/src/source-finder/collection-finder.d.ts +29 -0
  149. package/dist/src/source-finder/collection-finder.d.ts.map +1 -0
  150. package/dist/src/source-finder/cross-file-tracker.d.ts +39 -0
  151. package/dist/src/source-finder/cross-file-tracker.d.ts.map +1 -0
  152. package/dist/src/source-finder/element-finder.d.ts +42 -0
  153. package/dist/src/source-finder/element-finder.d.ts.map +1 -0
  154. package/dist/src/source-finder/image-finder.d.ts +24 -0
  155. package/dist/src/source-finder/image-finder.d.ts.map +1 -0
  156. package/dist/src/source-finder/index.d.ts +9 -0
  157. package/dist/src/source-finder/index.d.ts.map +1 -0
  158. package/dist/src/source-finder/search-index.d.ts +27 -0
  159. package/dist/src/source-finder/search-index.d.ts.map +1 -0
  160. package/dist/src/source-finder/snippet-utils.d.ts +90 -0
  161. package/dist/src/source-finder/snippet-utils.d.ts.map +1 -0
  162. package/dist/src/source-finder/source-lookup.d.ts +16 -0
  163. package/dist/src/source-finder/source-lookup.d.ts.map +1 -0
  164. package/dist/src/source-finder/types.d.ts +167 -0
  165. package/dist/src/source-finder/types.d.ts.map +1 -0
  166. package/dist/src/source-finder/variable-extraction.d.ts +37 -0
  167. package/dist/src/source-finder/variable-extraction.d.ts.map +1 -0
  168. package/dist/src/tailwind-colors.d.ts +54 -0
  169. package/dist/src/tailwind-colors.d.ts.map +1 -0
  170. package/dist/src/tsconfig.tsbuildinfo +1 -0
  171. package/dist/src/types.d.ts +367 -0
  172. package/dist/src/types.d.ts.map +1 -0
  173. package/dist/src/utils.d.ts +61 -0
  174. package/dist/src/utils.d.ts.map +1 -0
  175. package/dist/src/vite-plugin.d.ts +14 -0
  176. package/dist/src/vite-plugin.d.ts.map +1 -0
  177. package/dist/types/tsconfig.tsbuildinfo +1 -0
  178. package/package.json +80 -0
  179. package/src/build-processor.ts +784 -0
  180. package/src/collection-scanner.ts +304 -0
  181. package/src/component-registry.ts +393 -0
  182. package/src/config.ts +74 -0
  183. package/src/dev-middleware.ts +525 -0
  184. package/src/dist/src/tsconfig.tsbuildinfo +1 -0
  185. package/src/editor/ai.ts +185 -0
  186. package/src/editor/api.ts +513 -0
  187. package/src/editor/color-utils.ts +556 -0
  188. package/src/editor/components/ai-chat.tsx +632 -0
  189. package/src/editor/components/ai-tooltip.tsx +179 -0
  190. package/src/editor/components/attribute-editor.tsx +596 -0
  191. package/src/editor/components/block-editor.tsx +546 -0
  192. package/src/editor/components/collections-browser.tsx +248 -0
  193. package/src/editor/components/color-toolbar.tsx +314 -0
  194. package/src/editor/components/confirm-dialog.tsx +69 -0
  195. package/src/editor/components/create-page-modal.tsx +163 -0
  196. package/src/editor/components/editable-highlights.tsx +260 -0
  197. package/src/editor/components/error-boundary.tsx +87 -0
  198. package/src/editor/components/fields.tsx +387 -0
  199. package/src/editor/components/frontmatter-fields.tsx +469 -0
  200. package/src/editor/components/highlight-overlay.ts +229 -0
  201. package/src/editor/components/image-overlay.tsx +230 -0
  202. package/src/editor/components/markdown-editor-overlay.tsx +505 -0
  203. package/src/editor/components/markdown-inline-editor.tsx +780 -0
  204. package/src/editor/components/media-library.tsx +297 -0
  205. package/src/editor/components/outline.tsx +402 -0
  206. package/src/editor/components/redirect-countdown.tsx +45 -0
  207. package/src/editor/components/seo-editor.tsx +498 -0
  208. package/src/editor/components/text-style-toolbar.tsx +362 -0
  209. package/src/editor/components/toast/toast-container.tsx +15 -0
  210. package/src/editor/components/toast/toast.tsx +49 -0
  211. package/src/editor/components/toast/types.ts +7 -0
  212. package/src/editor/components/toolbar.tsx +366 -0
  213. package/src/editor/config.ts +12 -0
  214. package/src/editor/constants.ts +106 -0
  215. package/src/editor/context.tsx +38 -0
  216. package/src/editor/dom.ts +357 -0
  217. package/src/editor/editor.ts +1510 -0
  218. package/src/editor/env.d.ts +4 -0
  219. package/src/editor/history.ts +355 -0
  220. package/src/editor/hooks/index.ts +19 -0
  221. package/src/editor/hooks/useAIHandlers.ts +345 -0
  222. package/src/editor/hooks/useBlockEditorHandlers.ts +206 -0
  223. package/src/editor/hooks/useElementDetection.ts +284 -0
  224. package/src/editor/hooks/useImageHoverDetection.ts +102 -0
  225. package/src/editor/hooks/useTextSelection.ts +187 -0
  226. package/src/editor/hooks/useTooltipState.ts +126 -0
  227. package/src/editor/hooks/utils.ts +101 -0
  228. package/src/editor/index.tsx +481 -0
  229. package/src/editor/lib/cn.ts +4 -0
  230. package/src/editor/manifest.ts +25 -0
  231. package/src/editor/markdown-api.ts +209 -0
  232. package/src/editor/signals.ts +1351 -0
  233. package/src/editor/storage.ts +266 -0
  234. package/src/editor/styles.css +465 -0
  235. package/src/editor/text-styling.ts +773 -0
  236. package/src/editor/themes.ts +210 -0
  237. package/src/editor/types.ts +591 -0
  238. package/src/error-collector.ts +106 -0
  239. package/src/handlers/component-ops.ts +463 -0
  240. package/src/handlers/markdown-ops.ts +202 -0
  241. package/src/handlers/request-utils.ts +151 -0
  242. package/src/handlers/source-writer.ts +649 -0
  243. package/src/html-processor.ts +1108 -0
  244. package/src/index.ts +284 -0
  245. package/src/manifest-writer.ts +371 -0
  246. package/src/media/contember.ts +84 -0
  247. package/src/media/local.ts +114 -0
  248. package/src/media/s3.ts +133 -0
  249. package/src/media/types.ts +33 -0
  250. package/src/preview-generator.ts +293 -0
  251. package/src/seo-processor.ts +567 -0
  252. package/src/source-finder/ast-extractors.ts +185 -0
  253. package/src/source-finder/ast-parser.ts +150 -0
  254. package/src/source-finder/cache.ts +76 -0
  255. package/src/source-finder/collection-finder.ts +335 -0
  256. package/src/source-finder/cross-file-tracker.ts +741 -0
  257. package/src/source-finder/element-finder.ts +387 -0
  258. package/src/source-finder/image-finder.ts +283 -0
  259. package/src/source-finder/index.ts +37 -0
  260. package/src/source-finder/search-index.ts +525 -0
  261. package/src/source-finder/snippet-utils.ts +668 -0
  262. package/src/source-finder/source-lookup.ts +200 -0
  263. package/src/source-finder/types.ts +210 -0
  264. package/src/source-finder/variable-extraction.ts +406 -0
  265. package/src/tailwind-colors.ts +874 -0
  266. package/src/tsconfig.json +25 -0
  267. package/src/types.ts +406 -0
  268. package/src/utils.ts +186 -0
  269. package/src/vite-plugin.ts +42 -0
@@ -0,0 +1,454 @@
1
+ import type { Attribute, CmsManifest, CollectionDefinition, ComponentInstance } from '../types';
2
+ export type { Attribute, AvailableColors, AvailableTextStyles, CanonicalUrl, CmsManifest, CollectionDefinition, CollectionEntry, CollectionEntryInfo, ComponentDefinition, ComponentInstance, FieldDefinition, FieldType, JsonLdEntry, ManifestEntry, OpenGraphData, PageSeoData, SeoFavicon, SeoKeywords, SeoMetaTag, SeoOptions, SeoSourceInfo, SeoTitle, TailwindColor, TextStyleValue, TwitterCardData, } from '../types';
3
+ export interface CmsThemeConfig {
4
+ primary?: string;
5
+ secondary?: string;
6
+ background?: string;
7
+ card?: string;
8
+ borderRadius?: 'sharp' | 'soft' | 'rounded';
9
+ shadowStyle?: 'none' | 'soft' | 'brutalist';
10
+ }
11
+ export type CmsThemePreset = 'soft' | 'brutalist' | 'minimal';
12
+ export interface CmsConfig {
13
+ apiBase: string;
14
+ highlightColor: string;
15
+ debug: boolean;
16
+ theme?: CmsThemeConfig;
17
+ themePreset?: CmsThemePreset;
18
+ }
19
+ export interface ComponentProp {
20
+ name: string;
21
+ type: string;
22
+ required: boolean;
23
+ defaultValue?: string;
24
+ description?: string;
25
+ }
26
+ export interface ChildCmsElement {
27
+ id: string;
28
+ placeholder: string;
29
+ currentHTML?: string;
30
+ }
31
+ export interface PendingChange {
32
+ element: HTMLElement;
33
+ originalHTML: string;
34
+ originalText: string;
35
+ newText: string;
36
+ currentHTML: string;
37
+ isDirty: boolean;
38
+ childCmsElements?: ChildCmsElement[];
39
+ hasStyledContent?: boolean;
40
+ }
41
+ export interface PendingImageChange {
42
+ element: HTMLImageElement;
43
+ originalSrc: string;
44
+ newSrc: string;
45
+ originalAlt: string;
46
+ newAlt: string;
47
+ originalSrcSet: string;
48
+ isDirty: boolean;
49
+ }
50
+ export interface PendingColorChange {
51
+ element: HTMLElement;
52
+ cmsId: string;
53
+ originalClasses: Record<string, Attribute>;
54
+ newClasses: Record<string, Attribute>;
55
+ isDirty: boolean;
56
+ }
57
+ export interface ColorEditorState {
58
+ isOpen: boolean;
59
+ targetElementId: string | null;
60
+ targetRect: DOMRect | null;
61
+ }
62
+ export interface SavedEdit {
63
+ originalText: string;
64
+ newText: string;
65
+ currentHTML: string;
66
+ hasStyledContent?: boolean;
67
+ }
68
+ export interface SavedEdits {
69
+ [cmsId: string]: SavedEdit;
70
+ }
71
+ export interface SavedImageEdit {
72
+ originalSrc: string;
73
+ newSrc: string;
74
+ originalAlt: string;
75
+ newAlt: string;
76
+ originalSrcSet: string;
77
+ }
78
+ export interface SavedImageEdits {
79
+ [cmsId: string]: SavedImageEdit;
80
+ }
81
+ export interface SavedColorEdit {
82
+ originalClasses: Record<string, Attribute>;
83
+ newClasses: Record<string, Attribute>;
84
+ }
85
+ export interface SavedColorEdits {
86
+ [cmsId: string]: SavedColorEdit;
87
+ }
88
+ /** Color change details for updating element color classes */
89
+ export interface ColorChangePayload {
90
+ /** The color class to replace (e.g., 'bg-blue-500') */
91
+ oldClass: string;
92
+ /** The new color class (e.g., 'bg-red-500') */
93
+ newClass: string;
94
+ /** Type of color change: 'bg' | 'text' | 'border' | 'hoverBg' | 'hoverText' */
95
+ type: 'bg' | 'text' | 'border' | 'hoverBg' | 'hoverText';
96
+ /** Path to the source file where the color class is defined */
97
+ sourcePath?: string;
98
+ /** Line number where the color class is defined */
99
+ sourceLine?: number;
100
+ /** The source code snippet containing the color class */
101
+ sourceSnippet?: string;
102
+ }
103
+ export interface ChangePayload {
104
+ cmsId: string;
105
+ newValue: string;
106
+ /** Original value to find and replace within the source snippet */
107
+ originalValue: string;
108
+ /** Path to the source file */
109
+ sourcePath: string;
110
+ /** Line number in the source file (for disambiguation) */
111
+ sourceLine: number;
112
+ /** The source code snippet containing the text to replace */
113
+ sourceSnippet: string;
114
+ /** HTML content when the element contains styled text (spans with Tailwind classes) */
115
+ htmlValue?: string;
116
+ childCmsIds?: string[];
117
+ /** Whether this change contains styled inline text */
118
+ hasStyledContent?: boolean;
119
+ /** Image change details when replacing an image */
120
+ imageChange?: {
121
+ newSrc: string;
122
+ newAlt?: string;
123
+ };
124
+ /** Color class change (for buttons, etc.) */
125
+ colorChange?: ColorChangePayload;
126
+ /** Attribute changes (for links, forms, etc.) */
127
+ attributeChanges?: AttributeChangePayload[];
128
+ }
129
+ export interface SaveBatchRequest {
130
+ changes: ChangePayload[];
131
+ meta: {
132
+ source: string;
133
+ url: string;
134
+ };
135
+ }
136
+ export interface SaveBatchResponse {
137
+ updated: number;
138
+ errors?: Array<{
139
+ cmsId: string;
140
+ error: string;
141
+ }>;
142
+ }
143
+ export interface ChatMessage {
144
+ id: string;
145
+ role: 'user' | 'assistant';
146
+ content: string;
147
+ elementId?: string;
148
+ timestamp: number;
149
+ }
150
+ export type AIStatusType = 'thinking' | 'coding' | 'building' | 'deploying' | 'complete' | null;
151
+ export interface AIState {
152
+ isPromptVisible: boolean;
153
+ isProcessing: boolean;
154
+ targetElementId: string | null;
155
+ streamingContent: string | null;
156
+ error: string | null;
157
+ isChatOpen: boolean;
158
+ chatMessages: ChatMessage[];
159
+ chatContextElementId: string | null;
160
+ currentStatus: AIStatusType;
161
+ statusMessage: string | null;
162
+ }
163
+ export interface BlockEditorState {
164
+ isOpen: boolean;
165
+ currentComponentId: string | null;
166
+ mode: 'edit' | 'add' | 'picker';
167
+ }
168
+ export type InsertPosition = 'before' | 'after';
169
+ export interface PendingComponentInsert {
170
+ id: string;
171
+ position: InsertPosition;
172
+ referenceComponentId: string;
173
+ componentName: string;
174
+ props: Record<string, any>;
175
+ previewElement?: HTMLElement;
176
+ }
177
+ export interface ComponentInsertRequest {
178
+ position: InsertPosition;
179
+ referenceComponentId: string;
180
+ componentName: string;
181
+ props: Record<string, any>;
182
+ }
183
+ export interface ComponentInsertResponse {
184
+ success: boolean;
185
+ insertedId?: string;
186
+ error?: string;
187
+ diff?: {
188
+ file: string;
189
+ before: string;
190
+ after: string;
191
+ };
192
+ }
193
+ export interface ComponentInsertOperation {
194
+ position: InsertPosition;
195
+ referenceComponentId: string;
196
+ componentName: string;
197
+ props: Record<string, any>;
198
+ }
199
+ export interface EditorState {
200
+ isEnabled: boolean;
201
+ isEditing: boolean;
202
+ showingOriginal: boolean;
203
+ currentEditingId: string | null;
204
+ currentComponentId: string | null;
205
+ pendingChanges: Map<string, PendingChange>;
206
+ pendingComponentChanges: Map<string, ComponentInstance>;
207
+ pendingInserts: Map<string, PendingComponentInsert>;
208
+ manifest: CmsManifest;
209
+ ai: AIState;
210
+ blockEditor: BlockEditorState;
211
+ }
212
+ export interface TextStyleDefinition {
213
+ class: string;
214
+ label: string;
215
+ }
216
+ export interface TextStyleCategory {
217
+ [key: string]: TextStyleDefinition;
218
+ }
219
+ export interface BlogFrontmatter {
220
+ title: string;
221
+ date: string;
222
+ author?: string;
223
+ categories?: string[];
224
+ excerpt?: string;
225
+ featuredImage?: string;
226
+ draft?: boolean;
227
+ [key: string]: unknown;
228
+ }
229
+ export interface MarkdownPageEntry {
230
+ filePath: string;
231
+ slug: string;
232
+ frontmatter: Record<string, unknown>;
233
+ content: string;
234
+ isDirty: boolean;
235
+ }
236
+ export interface MarkdownEditorState {
237
+ isOpen: boolean;
238
+ currentPage: MarkdownPageEntry | null;
239
+ activeElementId: string | null;
240
+ mode: 'edit' | 'create';
241
+ collectionDefinition?: CollectionDefinition;
242
+ createOptions?: {
243
+ collectionName: string;
244
+ collectionDefinition: CollectionDefinition;
245
+ };
246
+ }
247
+ export interface MediaItem {
248
+ id: string;
249
+ url: string;
250
+ filename: string;
251
+ annotation?: string;
252
+ contentType: string;
253
+ width?: number;
254
+ height?: number;
255
+ uploadedAt?: string;
256
+ }
257
+ export interface MediaLibraryState {
258
+ isOpen: boolean;
259
+ items: MediaItem[];
260
+ isLoading: boolean;
261
+ selectedItem: MediaItem | null;
262
+ insertCallback: ((url: string, alt: string) => void) | null;
263
+ }
264
+ export interface CreatePageState {
265
+ isOpen: boolean;
266
+ isCreating: boolean;
267
+ selectedCollection: string | null;
268
+ }
269
+ export interface CollectionsBrowserState {
270
+ isOpen: boolean;
271
+ selectedCollection: string | null;
272
+ }
273
+ export interface CreateMarkdownPageRequest {
274
+ /** Collection name (e.g., 'blog', 'services') */
275
+ collection: string;
276
+ /** URL-friendly slug for the page */
277
+ slug: string;
278
+ /** Page title */
279
+ title: string;
280
+ /** Optional frontmatter fields */
281
+ frontmatter?: Partial<BlogFrontmatter>;
282
+ /** Optional markdown content */
283
+ content?: string;
284
+ }
285
+ export interface CreateMarkdownPageResponse {
286
+ success: boolean;
287
+ filePath?: string;
288
+ slug?: string;
289
+ url?: string;
290
+ error?: string;
291
+ }
292
+ export interface UpdateMarkdownPageRequest {
293
+ filePath: string;
294
+ frontmatter?: Partial<BlogFrontmatter>;
295
+ content?: string;
296
+ }
297
+ export interface UpdateMarkdownPageResponse {
298
+ success: boolean;
299
+ commit?: string;
300
+ commitMessage?: string;
301
+ error?: string;
302
+ }
303
+ export interface MediaUploadResponse {
304
+ success: boolean;
305
+ url?: string;
306
+ filename?: string;
307
+ annotation?: string;
308
+ id?: string;
309
+ error?: string;
310
+ }
311
+ export type DeploymentStatusType = 'pending' | 'queued' | 'running' | 'completed' | 'failed' | 'cancelled';
312
+ export interface DeploymentStatusResponse {
313
+ currentDeployment: {
314
+ id: string;
315
+ status: DeploymentStatusType;
316
+ createdAt: string;
317
+ startedAt: string | null;
318
+ commitMessage: string | null;
319
+ } | null;
320
+ lastSuccessfulDeployment: {
321
+ completedAt: string;
322
+ publishedUrl: string;
323
+ } | null;
324
+ pendingCount: number;
325
+ }
326
+ export interface DeploymentState {
327
+ status: DeploymentStatusType | null;
328
+ lastDeployedAt: string | null;
329
+ isPolling: boolean;
330
+ error: string | null;
331
+ }
332
+ export interface ConfirmDialogState {
333
+ isOpen: boolean;
334
+ title: string;
335
+ message: string;
336
+ confirmLabel: string;
337
+ cancelLabel: string;
338
+ variant: 'danger' | 'warning' | 'info';
339
+ onConfirm: (() => void) | null;
340
+ onCancel: (() => void) | null;
341
+ }
342
+ export interface CmsSettings {
343
+ showEditableHighlights: boolean;
344
+ }
345
+ export interface SeoEditorState {
346
+ isOpen: boolean;
347
+ }
348
+ /** Represents a pending SEO field change */
349
+ export interface PendingSeoChange {
350
+ /** The SEO element's id */
351
+ id: string;
352
+ /** Original value */
353
+ originalValue: string;
354
+ /** New value */
355
+ newValue: string;
356
+ /** Whether this change is dirty (modified) */
357
+ isDirty: boolean;
358
+ }
359
+ /** Represents a pending attribute change */
360
+ export interface PendingAttributeChange {
361
+ element: HTMLElement;
362
+ cmsId: string;
363
+ /** Original attribute values from manifest */
364
+ originalAttributes: Record<string, Attribute>;
365
+ /** Current (possibly modified) attribute values */
366
+ newAttributes: Record<string, Attribute>;
367
+ /** Whether this change is dirty */
368
+ isDirty: boolean;
369
+ }
370
+ /** Attribute change payload for API */
371
+ export interface AttributeChangePayload {
372
+ /** The attribute name being changed */
373
+ attributeName: string;
374
+ /** Old value */
375
+ oldValue: string | undefined;
376
+ /** New value */
377
+ newValue: string | undefined;
378
+ /** Path to the source file where the attribute is defined */
379
+ sourcePath?: string;
380
+ /** Line number where the attribute is defined */
381
+ sourceLine?: number;
382
+ /** The source code snippet containing the attribute */
383
+ sourceSnippet?: string;
384
+ }
385
+ /** Editor state for attribute editor */
386
+ export interface AttributeEditorState {
387
+ isOpen: boolean;
388
+ targetElementId: string | null;
389
+ targetRect: DOMRect | null;
390
+ }
391
+ /** Saved attribute edit for storage persistence */
392
+ export interface SavedAttributeEdit {
393
+ originalAttributes: Record<string, Attribute>;
394
+ newAttributes: Record<string, Attribute>;
395
+ }
396
+ /** Saved attribute edits indexed by CMS ID */
397
+ export interface SavedAttributeEdits {
398
+ [cmsId: string]: SavedAttributeEdit;
399
+ }
400
+ export interface UndoTextAction {
401
+ type: 'text';
402
+ cmsId: string;
403
+ element: HTMLElement;
404
+ previousHTML: string;
405
+ previousText: string;
406
+ currentHTML: string;
407
+ currentText: string;
408
+ wasDirty: boolean;
409
+ }
410
+ export interface UndoImageAction {
411
+ type: 'image';
412
+ cmsId: string;
413
+ element: HTMLImageElement;
414
+ previousSrc: string;
415
+ previousAlt: string;
416
+ currentSrc: string;
417
+ currentAlt: string;
418
+ wasDirty: boolean;
419
+ }
420
+ export interface UndoColorAction {
421
+ type: 'color';
422
+ cmsId: string;
423
+ element: HTMLElement;
424
+ previousClassName: string;
425
+ currentClassName: string;
426
+ previousStyleCssText: string;
427
+ currentStyleCssText: string;
428
+ previousClasses: Record<string, Attribute>;
429
+ currentClasses: Record<string, Attribute>;
430
+ wasDirty: boolean;
431
+ }
432
+ export interface UndoAttributeAction {
433
+ type: 'attribute';
434
+ cmsId: string;
435
+ element: HTMLElement;
436
+ previousAttributes: Record<string, Attribute>;
437
+ currentAttributes: Record<string, Attribute>;
438
+ wasDirty: boolean;
439
+ }
440
+ export interface UndoSeoAction {
441
+ type: 'seo';
442
+ cmsId: string;
443
+ previousValue: string;
444
+ currentValue: string;
445
+ originalValue: string;
446
+ wasDirty: boolean;
447
+ }
448
+ export type UndoAction = UndoTextAction | UndoImageAction | UndoColorAction | UndoAttributeAction | UndoSeoAction;
449
+ declare global {
450
+ interface Window {
451
+ NuaCmsConfig?: Partial<CmsConfig>;
452
+ }
453
+ }
454
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/editor/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Collects errors during processing for aggregated reporting.
3
+ * This allows the build to continue while tracking what failed.
4
+ */
5
+ export declare class ErrorCollector {
6
+ private errors;
7
+ private warnings;
8
+ /**
9
+ * Record an error with context about where it occurred.
10
+ */
11
+ addError(context: string, error: Error): void;
12
+ /**
13
+ * Record a warning (non-fatal issue).
14
+ */
15
+ addWarning(context: string, message: string): void;
16
+ /**
17
+ * Check if any errors were recorded.
18
+ */
19
+ hasErrors(): boolean;
20
+ /**
21
+ * Check if any warnings were recorded.
22
+ */
23
+ hasWarnings(): boolean;
24
+ /**
25
+ * Get all recorded errors.
26
+ */
27
+ getErrors(): ReadonlyArray<{
28
+ context: string;
29
+ error: Error;
30
+ }>;
31
+ /**
32
+ * Get all recorded warnings.
33
+ */
34
+ getWarnings(): ReadonlyArray<{
35
+ context: string;
36
+ message: string;
37
+ }>;
38
+ /**
39
+ * Get a summary of all errors and warnings.
40
+ */
41
+ getSummary(): string;
42
+ /**
43
+ * Clear all recorded errors and warnings.
44
+ */
45
+ clear(): void;
46
+ }
47
+ /**
48
+ * Get the global error collector instance.
49
+ * Creates one if it doesn't exist.
50
+ */
51
+ export declare function getErrorCollector(): ErrorCollector;
52
+ /**
53
+ * Reset the global error collector (call at start of each build).
54
+ */
55
+ export declare function resetErrorCollector(): void;
56
+ //# sourceMappingURL=error-collector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-collector.d.ts","sourceRoot":"","sources":["../../src/error-collector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,cAAc;IAC1B,OAAO,CAAC,MAAM,CAA+C;IAC7D,OAAO,CAAC,QAAQ,CAAkD;IAElE;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAI7C;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAIlD;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,SAAS,IAAI,aAAa,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC;IAI7D;;OAEG;IACH,WAAW,IAAI,aAAa,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAIlE;;OAEG;IACH,UAAU,IAAI,MAAM;IAoBpB;;OAEG;IACH,KAAK,IAAI,IAAI;CAIb;AAKD;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,CAKlD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAM1C"}
@@ -0,0 +1,34 @@
1
+ import type { ManifestWriter } from '../manifest-writer';
2
+ export type InsertPosition = 'before' | 'after';
3
+ export interface InsertComponentRequest {
4
+ position: InsertPosition;
5
+ referenceComponentId: string;
6
+ componentName: string;
7
+ props: Record<string, unknown>;
8
+ meta?: {
9
+ source: string;
10
+ url: string;
11
+ };
12
+ }
13
+ export interface InsertComponentResponse {
14
+ success: boolean;
15
+ message?: string;
16
+ sourceFile?: string;
17
+ error?: string;
18
+ }
19
+ export interface RemoveComponentRequest {
20
+ componentId: string;
21
+ meta?: {
22
+ source: string;
23
+ url: string;
24
+ };
25
+ }
26
+ export interface RemoveComponentResponse {
27
+ success: boolean;
28
+ message?: string;
29
+ sourceFile?: string;
30
+ error?: string;
31
+ }
32
+ export declare function handleInsertComponent(request: InsertComponentRequest, manifestWriter: ManifestWriter): Promise<InsertComponentResponse>;
33
+ export declare function handleRemoveComponent(request: RemoveComponentRequest, manifestWriter: ManifestWriter): Promise<RemoveComponentResponse>;
34
+ //# sourceMappingURL=component-ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-ops.d.ts","sourceRoot":"","sources":["../../../src/handlers/component-ops.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAIxD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,CAAA;AAE/C,MAAM,WAAW,sBAAsB;IACtC,QAAQ,EAAE,cAAc,CAAA;IACxB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,IAAI,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CACtC;AAED,MAAM,WAAW,uBAAuB;IACvC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,sBAAsB;IACtC,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CACtC;AAED,MAAM,WAAW,uBAAuB;IACvC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,wBAAsB,qBAAqB,CAC1C,OAAO,EAAE,sBAAsB,EAC/B,cAAc,EAAE,cAAc,GAC5B,OAAO,CAAC,uBAAuB,CAAC,CAuGlC;AAED,wBAAsB,qBAAqB,CAC1C,OAAO,EAAE,sBAAsB,EAC/B,cAAc,EAAE,cAAc,GAC5B,OAAO,CAAC,uBAAuB,CAAC,CA0FlC"}
@@ -0,0 +1,41 @@
1
+ export interface BlogFrontmatter {
2
+ title: string;
3
+ date: string;
4
+ author?: string;
5
+ categories?: string[];
6
+ excerpt?: string;
7
+ featuredImage?: string;
8
+ draft?: boolean;
9
+ [key: string]: unknown;
10
+ }
11
+ export interface CreateMarkdownRequest {
12
+ collection: string;
13
+ title: string;
14
+ slug: string;
15
+ frontmatter?: Partial<BlogFrontmatter>;
16
+ content?: string;
17
+ }
18
+ export interface CreateMarkdownResponse {
19
+ success: boolean;
20
+ filePath?: string;
21
+ slug?: string;
22
+ error?: string;
23
+ }
24
+ export interface UpdateMarkdownRequest {
25
+ filePath: string;
26
+ frontmatter?: Partial<BlogFrontmatter>;
27
+ content?: string;
28
+ }
29
+ export interface UpdateMarkdownResponse {
30
+ success: boolean;
31
+ error?: string;
32
+ }
33
+ export interface GetMarkdownContentResponse {
34
+ content: string;
35
+ frontmatter: BlogFrontmatter;
36
+ filePath: string;
37
+ }
38
+ export declare function handleGetMarkdownContent(filePath: string): Promise<GetMarkdownContentResponse | null>;
39
+ export declare function handleUpdateMarkdown(request: UpdateMarkdownRequest): Promise<UpdateMarkdownResponse>;
40
+ export declare function handleCreateMarkdown(request: CreateMarkdownRequest): Promise<CreateMarkdownResponse>;
41
+ //# sourceMappingURL=markdown-ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-ops.d.ts","sourceRoot":"","sources":["../../../src/handlers/markdown-ops.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,qBAAqB;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACtC,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,sBAAsB;IACtC,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,qBAAqB;IACrC,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACtC,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,sBAAsB;IACtC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,0BAA0B;IAC1C,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,eAAe,CAAA;IAC5B,QAAQ,EAAE,MAAM,CAAA;CAChB;AAED,wBAAsB,wBAAwB,CAC7C,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAc5C;AAED,wBAAsB,oBAAoB,CACzC,OAAO,EAAE,qBAAqB,GAC5B,OAAO,CAAC,sBAAsB,CAAC,CA0BjC;AAED,wBAAsB,oBAAoB,CACzC,OAAO,EAAE,qBAAqB,GAC5B,OAAO,CAAC,sBAAsB,CAAC,CAoCjC"}
@@ -0,0 +1,20 @@
1
+ import type { IncomingMessage, ServerResponse } from 'node:http';
2
+ export declare function readBody(req: IncomingMessage, maxSize?: number): Promise<Buffer>;
3
+ export declare function parseJsonBody<T>(req: IncomingMessage): Promise<T>;
4
+ export interface ParsedFile {
5
+ buffer: Buffer;
6
+ filename: string;
7
+ contentType: string;
8
+ }
9
+ /**
10
+ * Minimal multipart/form-data parser.
11
+ * Extracts the first file part from the request body.
12
+ */
13
+ export declare function parseMultipartFile(body: Buffer, contentTypeHeader: string): ParsedFile | null;
14
+ export declare function sendJson(res: ServerResponse, data: unknown, status?: number, req?: IncomingMessage): void;
15
+ export declare function sendError(res: ServerResponse, message: string, status?: number, req?: IncomingMessage): void;
16
+ /**
17
+ * Handle CORS preflight. Returns true if the request was an OPTIONS request and was handled.
18
+ */
19
+ export declare function handleCors(req: IncomingMessage, res: ServerResponse): boolean;
20
+ //# sourceMappingURL=request-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-utils.d.ts","sourceRoot":"","sources":["../../../src/handlers/request-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAKhE,wBAAgB,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,GAAE,MAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgB/F;AAED,wBAAsB,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,CAOvE;AAED,MAAM,WAAW,UAAU;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACnB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAuE7F;AAQD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,SAAM,EAAE,GAAG,CAAC,EAAE,eAAe,GAAG,IAAI,CAQtG;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAM,EAAE,GAAG,CAAC,EAAE,eAAe,GAAG,IAAI,CAEzG;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAY7E"}