@nuasite/cms 0.1.2 → 0.3.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 (55) hide show
  1. package/README.md +96 -84
  2. package/dist/src/build-processor.d.ts.map +1 -1
  3. package/dist/src/component-registry.d.ts +6 -2
  4. package/dist/src/component-registry.d.ts.map +1 -1
  5. package/dist/src/dev-middleware.d.ts.map +1 -1
  6. package/dist/src/editor/api.d.ts +14 -0
  7. package/dist/src/editor/api.d.ts.map +1 -1
  8. package/dist/src/editor/components/ai-chat.d.ts.map +1 -1
  9. package/dist/src/editor/components/block-editor.d.ts.map +1 -1
  10. package/dist/src/editor/components/color-toolbar.d.ts.map +1 -1
  11. package/dist/src/editor/components/editable-highlights.d.ts.map +1 -1
  12. package/dist/src/editor/components/outline.d.ts.map +1 -1
  13. package/dist/src/editor/constants.d.ts +1 -0
  14. package/dist/src/editor/constants.d.ts.map +1 -1
  15. package/dist/src/editor/dom.d.ts +9 -0
  16. package/dist/src/editor/dom.d.ts.map +1 -1
  17. package/dist/src/editor/editor.d.ts.map +1 -1
  18. package/dist/src/editor/history.d.ts.map +1 -1
  19. package/dist/src/editor/hooks/useBlockEditorHandlers.d.ts.map +1 -1
  20. package/dist/src/editor/index.d.ts.map +1 -1
  21. package/dist/src/editor/storage.d.ts +2 -0
  22. package/dist/src/editor/storage.d.ts.map +1 -1
  23. package/dist/src/handlers/array-ops.d.ts +59 -0
  24. package/dist/src/handlers/array-ops.d.ts.map +1 -0
  25. package/dist/src/handlers/component-ops.d.ts +26 -0
  26. package/dist/src/handlers/component-ops.d.ts.map +1 -1
  27. package/dist/src/index.d.ts.map +1 -1
  28. package/dist/src/source-finder/cross-file-tracker.d.ts.map +1 -1
  29. package/dist/src/tsconfig.tsbuildinfo +1 -1
  30. package/package.json +1 -1
  31. package/src/build-processor.ts +27 -0
  32. package/src/component-registry.ts +125 -76
  33. package/src/dev-middleware.ts +85 -16
  34. package/src/editor/api.ts +72 -0
  35. package/src/editor/components/ai-chat.tsx +0 -1
  36. package/src/editor/components/block-editor.tsx +92 -17
  37. package/src/editor/components/color-toolbar.tsx +7 -1
  38. package/src/editor/components/editable-highlights.tsx +4 -1
  39. package/src/editor/components/outline.tsx +11 -6
  40. package/src/editor/constants.ts +1 -0
  41. package/src/editor/dom.ts +46 -1
  42. package/src/editor/editor.ts +5 -2
  43. package/src/editor/history.ts +1 -6
  44. package/src/editor/hooks/useBlockEditorHandlers.ts +86 -29
  45. package/src/editor/index.tsx +24 -8
  46. package/src/editor/storage.ts +24 -0
  47. package/src/handlers/array-ops.ts +452 -0
  48. package/src/handlers/component-ops.ts +269 -18
  49. package/src/handlers/markdown-ops.ts +7 -4
  50. package/src/handlers/request-utils.ts +1 -1
  51. package/src/handlers/source-writer.ts +4 -5
  52. package/src/index.ts +15 -10
  53. package/src/manifest-writer.ts +1 -1
  54. package/src/source-finder/cross-file-tracker.ts +1 -1
  55. package/src/source-finder/search-index.ts +1 -1
package/README.md CHANGED
@@ -1,7 +1,11 @@
1
- # @nuasite/astro-cms
1
+ # @nuasite/cms
2
2
 
3
3
  Astro integration that adds inline visual editing to any Astro site. Scans your components, marks editable elements with CMS IDs, and serves a live editor overlay during development. All write operations (text, images, colors, components, markdown) are handled locally via a built-in dev server — no external backend required.
4
4
 
5
+ ## Prerequisites
6
+
7
+ - **Tailwind CSS v4** — Your site must use Tailwind. The CMS color editor, text styling, and class-based editing features all operate on Tailwind utility classes. Without Tailwind, those features won't work.
8
+
5
9
  ## Quick Start
6
10
 
7
11
  ```typescript
@@ -9,11 +13,11 @@ Astro integration that adds inline visual editing to any Astro site. Scans your
9
13
  import nuaCms from '@nuasite/astro-cms'
10
14
 
11
15
  export default defineConfig({
12
- integrations: [nuaCms()],
16
+ integrations: [nuaCms()],
13
17
  })
14
18
  ```
15
19
 
16
- That's it. Run `astro dev` and the CMS editor loads automatically. Edits write directly to your source files, and Vite HMR picks up the changes instantly.
20
+ Run `astro dev` and the CMS editor loads automatically. Edits write directly to your source files, and Vite HMR picks up the changes instantly.
17
21
 
18
22
  ## How It Works
19
23
 
@@ -27,32 +31,32 @@ The integration operates in two phases:
27
31
 
28
32
  ```typescript
29
33
  nuaCms({
30
- // --- Editor ---
31
- src: undefined, // Custom editor script URL (default: built-in @app/cms bundle)
32
- cmsConfig: { // Passed to window.NuaCmsConfig
33
- apiBase: '/_nua/cms', // API endpoint base (auto-set when using local dev server)
34
- highlightColor: undefined,
35
- debug: false,
36
- theme: undefined,
37
- themePreset: undefined,
38
- },
39
-
40
- // --- Backend ---
41
- proxy: undefined, // Proxy /_nua requests to a remote backend (e.g. 'http://localhost:8787')
42
- // When set, the local dev server API is disabled
43
- media: undefined, // Media storage adapter (default: localMedia() when no proxy)
44
-
45
- // --- Marker ---
46
- attributeName: 'data-cms-id',
47
- includeTags: null, // null = all tags
48
- excludeTags: ['html', 'head', 'body', 'script', 'style'],
49
- includeEmptyText: false,
50
- generateManifest: true,
51
- manifestFile: 'cms-manifest.json',
52
- markComponents: true,
53
- componentDirs: ['src/components'],
54
- contentDir: 'src/content',
55
- seo: { trackSeo: true, markTitle: true, parseJsonLd: true },
34
+ // --- Editor ---
35
+ src: undefined, // Custom editor script URL (default: built-in @app/cms bundle)
36
+ cmsConfig: { // Passed to window.NuaCmsConfig
37
+ apiBase: '/_nua/cms', // API endpoint base (auto-set when using local dev server)
38
+ highlightColor: undefined,
39
+ debug: false,
40
+ theme: undefined,
41
+ themePreset: undefined,
42
+ },
43
+
44
+ // --- Backend ---
45
+ proxy: undefined, // Proxy /_nua requests to a remote backend (e.g. 'http://localhost:8787')
46
+ // When set, the local dev server API is disabled
47
+ media: undefined, // Media storage adapter (default: localMedia() when no proxy)
48
+
49
+ // --- Marker ---
50
+ attributeName: 'data-cms-id',
51
+ includeTags: null, // null = all tags
52
+ excludeTags: ['html', 'head', 'body', 'script', 'style'],
53
+ includeEmptyText: false,
54
+ generateManifest: true,
55
+ manifestFile: 'cms-manifest.json',
56
+ markComponents: true,
57
+ componentDirs: ['src/components'],
58
+ contentDir: 'src/content',
59
+ seo: { trackSeo: true, markTitle: true, parseJsonLd: true },
56
60
  })
57
61
  ```
58
62
 
@@ -60,19 +64,19 @@ nuaCms({
60
64
 
61
65
  When no `proxy` is configured, the integration spins up a local API at `/_nua/cms/`. This handles all CMS operations without needing the Cloudflare Worker backend.
62
66
 
63
- | Method | Path | Description |
64
- |--------|------|-------------|
65
- | POST | `/_nua/cms/update` | Save text, image, color, and attribute changes |
66
- | POST | `/_nua/cms/insert-component` | Insert a component before/after a reference |
67
- | POST | `/_nua/cms/remove-component` | Remove a component from the page |
68
- | GET | `/_nua/cms/markdown/content` | Read markdown file content + frontmatter |
69
- | POST | `/_nua/cms/markdown/update` | Update markdown file (partial frontmatter merge) |
70
- | POST | `/_nua/cms/markdown/create` | Create a new markdown file in a collection |
71
- | GET | `/_nua/cms/media/list` | List uploaded media files |
72
- | POST | `/_nua/cms/media/upload` | Upload a file (multipart/form-data) |
73
- | DELETE | `/_nua/cms/media/:id` | Delete an uploaded file |
74
- | GET | `/_nua/cms/deployment/status` | Returns `{ currentDeployment: null, pendingCount: 0 }` |
75
- | OPTIONS | `/_nua/cms/*` | CORS preflight |
67
+ | Method | Path | Description |
68
+ | ------- | ----------------------------- | ------------------------------------------------------ |
69
+ | POST | `/_nua/cms/update` | Save text, image, color, and attribute changes |
70
+ | POST | `/_nua/cms/insert-component` | Insert a component before/after a reference |
71
+ | POST | `/_nua/cms/remove-component` | Remove a component from the page |
72
+ | GET | `/_nua/cms/markdown/content` | Read markdown file content + frontmatter |
73
+ | POST | `/_nua/cms/markdown/update` | Update markdown file (partial frontmatter merge) |
74
+ | POST | `/_nua/cms/markdown/create` | Create a new markdown file in a collection |
75
+ | GET | `/_nua/cms/media/list` | List uploaded media files |
76
+ | POST | `/_nua/cms/media/upload` | Upload a file (multipart/form-data) |
77
+ | DELETE | `/_nua/cms/media/:id` | Delete an uploaded file |
78
+ | GET | `/_nua/cms/deployment/status` | Returns `{ currentDeployment: null, pendingCount: 0 }` |
79
+ | OPTIONS | `/_nua/cms/*` | CORS preflight |
76
80
 
77
81
  ### Update Payload
78
82
 
@@ -104,59 +108,59 @@ Changes are grouped by source file, sorted by line number (descending to avoid o
104
108
 
105
109
  Media uploads use a pluggable adapter pattern. Three adapters are included:
106
110
 
107
- ### Local Filesystem (default)
111
+ ### Contember (R2 + Database) — Recommended
108
112
 
109
- Stores files in `public/uploads/`. Served directly by Vite's static file server. Zero configuration needed.
113
+ Files are stored in Cloudflare R2 with metadata tracked in the Contember database. This is the only adapter that gives you proper asset IDs, metadata, and AI-powered image annotation. Use this for production sites.
110
114
 
111
115
  ```typescript
112
- import nuaCms, { localMedia } from '@nuasite/astro-cms'
116
+ import nuaCms, { contemberMedia } from '@nuasite/astro-cms'
113
117
 
114
118
  nuaCms({
115
- media: localMedia({
116
- dir: 'public/uploads', // default
117
- urlPrefix: '/uploads', // default
118
- }),
119
+ media: contemberMedia({
120
+ apiBaseUrl: 'https://api.example.com',
121
+ projectSlug: 'my-project',
122
+ sessionToken: process.env.NUA_SESSION_TOKEN,
123
+ }),
119
124
  })
120
125
  ```
121
126
 
122
- Files are named with UUIDs to avoid collisions. Listed by modification time (newest first).
127
+ This adapter calls the worker's `/cms/:projectSlug/media/*` endpoints, which handle R2 upload, Asset record creation, and image annotation. Authentication uses the `NUA_SITE_SESSION_TOKEN` cookie.
123
128
 
124
- ### Contember (R2 + Database)
129
+ ### Local Filesystem (default)
125
130
 
126
- Proxies to the existing Contember worker API. Files are stored in Cloudflare R2, metadata in the Contember database. Includes AI-powered image annotation.
131
+ Stores files in `public/uploads/`. Served directly by Vite's static file server. Zero configuration needed. Files are committed to your repo alongside your source code.
127
132
 
128
133
  ```typescript
129
- import nuaCms, { contemberMedia } from '@nuasite/astro-cms'
134
+ import nuaCms, { localMedia } from '@nuasite/astro-cms'
130
135
 
131
136
  nuaCms({
132
- media: contemberMedia({
133
- apiBaseUrl: 'https://api.example.com',
134
- projectSlug: 'my-project',
135
- sessionToken: process.env.NUA_SESSION_TOKEN,
136
- }),
137
+ media: localMedia({
138
+ dir: 'public/uploads', // default
139
+ urlPrefix: '/uploads', // default
140
+ }),
137
141
  })
138
142
  ```
139
143
 
140
- This adapter calls the worker's `/cms/:projectSlug/media/*` endpoints, which handle R2 upload, Asset record creation, and image annotation. Authentication uses the `NUA_SITE_SESSION_TOKEN` cookie.
144
+ Files are named with UUIDs to avoid collisions. Listed by modification time (newest first).
141
145
 
142
146
  ### S3 / R2 Direct
143
147
 
144
- Direct S3-compatible storage. Works with AWS S3, Cloudflare R2, MinIO, or any S3-compatible provider. Requires `@aws-sdk/client-s3` as a peer dependency.
148
+ Direct S3-compatible object storage. Works with AWS S3, Cloudflare R2, MinIO, or any S3-compatible provider. Listing, uploading, and deleting all work, but there is no database layer — content types are not preserved on list, and there are no image dimensions or annotations. Requires `@aws-sdk/client-s3` as a peer dependency.
145
149
 
146
150
  ```typescript
147
151
  import nuaCms, { s3Media } from '@nuasite/astro-cms'
148
152
 
149
153
  nuaCms({
150
- media: s3Media({
151
- bucket: 'my-bucket',
152
- region: 'us-east-1',
153
- // Optional:
154
- accessKeyId: process.env.AWS_ACCESS_KEY_ID,
155
- secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
156
- endpoint: 'https://account.r2.cloudflarestorage.com', // for R2
157
- cdnPrefix: 'https://cdn.example.com', // public URL prefix
158
- prefix: 'uploads', // key prefix in bucket
159
- }),
154
+ media: s3Media({
155
+ bucket: 'my-bucket',
156
+ region: 'us-east-1',
157
+ // Optional:
158
+ accessKeyId: process.env.AWS_ACCESS_KEY_ID,
159
+ secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
160
+ endpoint: 'https://account.r2.cloudflarestorage.com', // for R2
161
+ cdnPrefix: 'https://cdn.example.com', // public URL prefix
162
+ prefix: 'uploads', // key prefix in bucket
163
+ }),
160
164
  })
161
165
  ```
162
166
 
@@ -174,15 +178,15 @@ Implement the `MediaStorageAdapter` interface to use any storage backend:
174
178
  import type { MediaStorageAdapter } from '@nuasite/astro-cms'
175
179
 
176
180
  const myAdapter: MediaStorageAdapter = {
177
- async list(options) {
178
- // Return { items: MediaItem[], hasMore: boolean, cursor?: string }
179
- },
180
- async upload(file: Buffer, filename: string, contentType: string) {
181
- // Return { success: boolean, url?: string, filename?: string, id?: string, error?: string }
182
- },
183
- async delete(id: string) {
184
- // Return { success: boolean, error?: string }
185
- },
181
+ async list(options) {
182
+ // Return { items: MediaItem[], hasMore: boolean, cursor?: string }
183
+ },
184
+ async upload(file: Buffer, filename: string, contentType: string) {
185
+ // Return { success: boolean, url?: string, filename?: string, id?: string, error?: string }
186
+ },
187
+ async delete(id: string) {
188
+ // Return { success: boolean, error?: string }
189
+ },
186
190
  }
187
191
 
188
192
  nuaCms({ media: myAdapter })
@@ -194,7 +198,7 @@ To use the Contember worker backend for all CMS operations (not just media), set
194
198
 
195
199
  ```typescript
196
200
  nuaCms({
197
- proxy: 'http://localhost:8787', // Worker dev server
201
+ proxy: 'http://localhost:8787', // Worker dev server
198
202
  })
199
203
  ```
200
204
 
@@ -225,13 +229,21 @@ Both operations find the invocation site (the page file, not the component file
225
229
  import nuaCms from '@nuasite/astro-cms'
226
230
 
227
231
  // Media adapters
228
- import { localMedia, s3Media, contemberMedia } from '@nuasite/astro-cms'
232
+ import { contemberMedia, localMedia, s3Media } from '@nuasite/astro-cms'
229
233
 
230
234
  // Types
231
- import type { MediaStorageAdapter, MediaItem } from '@nuasite/astro-cms'
232
- import type { CmsManifest, ManifestEntry, ComponentDefinition } from '@nuasite/astro-cms'
235
+ import type { MediaItem, MediaStorageAdapter } from '@nuasite/astro-cms'
236
+ import type {
237
+ CmsManifest,
238
+ ComponentDefinition,
239
+ ManifestEntry,
240
+ } from '@nuasite/astro-cms'
233
241
 
234
242
  // Utilities
235
- import { scanCollections, getProjectRoot, setProjectRoot } from '@nuasite/astro-cms'
243
+ import {
244
+ getProjectRoot,
245
+ scanCollections,
246
+ setProjectRoot,
247
+ } from '@nuasite/astro-cms'
236
248
  import { findCollectionSource, parseMarkdownContent } from '@nuasite/astro-cms'
237
249
  ```
@@ -1 +1 @@
1
- {"version":3,"file":"build-processor.d.ts","sourceRoot":"","sources":["../../src/build-processor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,OAAO,CAAA;AAOnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAcvD,OAAO,KAAK,EAAE,gBAAgB,EAAmB,MAAM,SAAS,CAAA;AA6BhE;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EACxC,QAAQ,EAAE,CAAC,EAAE,EACb,QAAQ,EAAE,MAAM,EAAE,EAClB,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,GAC7B,KAAK,CAAC;IAAE,eAAe,EAAE,MAAM,EAAE,CAAC;IAAC,eAAe,EAAE,CAAC,EAAE,CAAA;CAAE,CAAC,CAkD5D;AAwkBD;;;GAGG;AACH,wBAAsB,kBAAkB,CACvC,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EAC5B,MAAM,CAAC,EAAE,sBAAsB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAyDf"}
1
+ {"version":3,"file":"build-processor.d.ts","sourceRoot":"","sources":["../../src/build-processor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,OAAO,CAAA;AAQnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAcvD,OAAO,KAAK,EAAE,gBAAgB,EAAmB,MAAM,SAAS,CAAA;AA6BhE;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EACxC,QAAQ,EAAE,CAAC,EAAE,EACb,QAAQ,EAAE,MAAM,EAAE,EAClB,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,GAC7B,KAAK,CAAC;IAAE,eAAe,EAAE,MAAM,EAAE,CAAC;IAAC,eAAe,EAAE,CAAC,EAAE,CAAA;CAAE,CAAC,CAkD5D;AAkmBD;;;GAGG;AACH,wBAAsB,kBAAkB,CACvC,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EAC5B,MAAM,CAAC,EAAE,sBAAsB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAyDf"}
@@ -27,10 +27,14 @@ export declare class ComponentRegistry {
27
27
  */
28
28
  private parseComponent;
29
29
  /**
30
- * Parse Props content and extract individual property definitions
31
- * Handles multi-line properties with nested types
30
+ * Parse Props content using @babel/parser AST for correct TypeScript handling.
31
+ * Wraps the content in a synthetic interface and walks TSPropertySignature nodes.
32
32
  */
33
33
  private parsePropsContent;
34
+ /**
35
+ * Fallback: convert a Babel TSType node to a human-readable string
36
+ */
37
+ private typeAnnotationToString;
34
38
  /**
35
39
  * Extract content between balanced braces after a pattern match
36
40
  * Properly handles nested objects
@@ -1 +1 @@
1
- {"version":3,"file":"component-registry.d.ts","sourceRoot":"","sources":["../../src/component-registry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAiB,MAAM,SAAS,CAAA;AAEjE;;GAEG;AACH,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,aAAa,CAAU;gBAEnB,aAAa,GAAE,MAAM,EAAuB;IAIxD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B;;OAEG;IACH,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC;IAIpD;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAI3D;;OAEG;YACW,aAAa;IAe3B;;OAEG;YACW,cAAc;IAuB5B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA2FzB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAyB7B;;OAEG;YACW,YAAY;IA2C1B;;OAEG;IACH,OAAO,CAAC,YAAY;IA2BpB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAU3B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GACnB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC,CA0BxD"}
1
+ {"version":3,"file":"component-registry.d.ts","sourceRoot":"","sources":["../../src/component-registry.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAiB,MAAM,SAAS,CAAA;AAEjE;;GAEG;AACH,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,aAAa,CAAU;gBAEnB,aAAa,GAAE,MAAM,EAAuB;IAIxD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B;;OAEG;IACH,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC;IAIpD;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAI3D;;OAEG;YACW,aAAa;IAe3B;;OAEG;YACW,cAAc;IAuB5B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA+FzB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAyC9B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAyB7B;;OAEG;YACW,YAAY;IA2C1B;;OAEG;IACH,OAAO,CAAC,YAAY;IA2BpB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAU3B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GACnB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC,CA0BxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"dev-middleware.d.ts","sourceRoot":"","sources":["../../src/dev-middleware.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAkBhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAExD,OAAO,KAAK,EAAE,gBAAgB,EAAmB,mBAAmB,EAAe,MAAM,SAAS,CAAA;AAGlG,4GAA4G;AAC5G,UAAU,iBAAiB;IAC1B,WAAW,EAAE;QACZ,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,CAAA;KAChG,CAAA;IACD,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CAClE;AAED,MAAM,WAAW,oBAAoB;IACpC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,YAAY,CAAC,EAAE,mBAAmB,CAAA;CAClC;AAED,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,cAAc,EAAE,cAAc,EAC9B,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,EACzD,SAAS,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EAC5B,OAAO,GAAE,oBAAyB,QAoMlC"}
1
+ {"version":3,"file":"dev-middleware.d.ts","sourceRoot":"","sources":["../../src/dev-middleware.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAgBhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAExD,OAAO,KAAK,EAAE,gBAAgB,EAAmB,mBAAmB,EAAe,MAAM,SAAS,CAAA;AAGlG,4GAA4G;AAC5G,UAAU,iBAAiB;IAC1B,WAAW,EAAE;QACZ,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,CAAA;KAChG,CAAA;IACD,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CAClE;AAED,MAAM,WAAW,oBAAoB;IACpC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,YAAY,CAAC,EAAE,mBAAmB,CAAA;CAClC;AAED,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,cAAc,EAAE,cAAc,EAC9B,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,EACzD,SAAS,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EAC5B,OAAO,GAAE,oBAAyB,QAsMlC"}
@@ -96,6 +96,20 @@ export interface RemoveComponentResponse {
96
96
  commitMessage?: string;
97
97
  error?: string;
98
98
  }
99
+ export interface AddArrayItemResponse {
100
+ success: boolean;
101
+ message?: string;
102
+ sourceFile?: string;
103
+ error?: string;
104
+ }
105
+ export declare function addArrayItem(apiBase: string, referenceComponentId: string, position: 'before' | 'after', props: Record<string, unknown>): Promise<AddArrayItemResponse>;
106
+ export interface RemoveArrayItemResponse {
107
+ success: boolean;
108
+ message?: string;
109
+ sourceFile?: string;
110
+ error?: string;
111
+ }
112
+ export declare function removeArrayItem(apiBase: string, componentId: string): Promise<RemoveArrayItemResponse>;
99
113
  export declare function removeComponent(apiBase: string, componentId: string): Promise<RemoveComponentResponse>;
100
114
  /**
101
115
  * Parse SSE data line to event
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/editor/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/editor/api.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,WAAW,EACX,wBAAwB,EACxB,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,0BAA0B,EAC1B,MAAM,SAAS,CAAA;AAEhB;;GAEG;AACH,MAAM,WAAW,0BAA0B;IAC1C,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,QAAQ,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,UAAU,GACnB,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,eAAe,GACf,cAAc,CAAA;AAEjB,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,QAAQ,CAAA;IACd,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,CAAA;IACrE,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,QAAQ,CAAA;IACd,MAAM,EAAE,WAAW,CAAA;CACnB;AAED,MAAM,MAAM,WAAW,GACpB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnF,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,oBAAoB;IACpC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACzE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAA;IACxC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAChD,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC;AAwBD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAY3D;AAED;;;;GAIG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC,CAgD1D;AAED,wBAAsB,gBAAgB,CACrC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,gBAAgB,GACvB,OAAO,CAAC,iBAAiB,CAAC,CAgB5B;AAED,MAAM,WAAW,uBAAuB;IACvC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,wBAAsB,eAAe,CACpC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,wBAAwB,GACjC,OAAO,CAAC,uBAAuB,CAAC,CAyBlC;AAED,MAAM,WAAW,uBAAuB;IACvC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,oBAAoB;IACpC,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,YAAY,CACjC,OAAO,EAAE,MAAM,EACf,oBAAoB,EAAE,MAAM,EAC5B,QAAQ,EAAE,QAAQ,GAAG,OAAO,EAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAwB/B;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,eAAe,CACpC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC,uBAAuB,CAAC,CAsBlC;AAED,wBAAsB,eAAe,CACpC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC,uBAAuB,CAAC,CAsBlC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAS7D;AAED;;;GAGG;AACH,wBAAsB,YAAY,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,gBAAgB,EACzB,SAAS,EAAE,oBAAoB,EAC/B,WAAW,CAAC,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CA2Gf;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,CAAA;IACnC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB;IACnC,QAAQ,EAAE,kBAAkB,EAAE,CAAA;IAC9B,OAAO,EAAE,OAAO,CAAA;CAChB;AAED;;GAEG;AACH,wBAAsB,cAAc,CACnC,OAAO,EAAE,MAAM,EACf,KAAK,SAAK,GACR,OAAO,CAAC,mBAAmB,CAAC,CAY9B;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACxC,OAAO,EAAE,MAAM,GACb,OAAO,CAAC,wBAAwB,CAAC,CAYnC;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACvC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAkB5C;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACvC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,yBAAyB,GAChC,OAAO,CAAC,0BAA0B,CAAC,CAgBrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ai-chat.d.ts","sourceRoot":"","sources":["../../../../src/editor/components/ai-chat.tsx"],"names":[],"mappings":"AAwDA,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9D;AAED,MAAM,WAAW,WAAW;IAC3B,SAAS,EAAE,eAAe,CAAA;CAC1B;AAcD,eAAO,MAAM,MAAM,GAAI,eAAe,WAAW,wCAsbhD,CAAA"}
1
+ {"version":3,"file":"ai-chat.d.ts","sourceRoot":"","sources":["../../../../src/editor/components/ai-chat.tsx"],"names":[],"mappings":"AAwDA,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9D;AAED,MAAM,WAAW,WAAW;IAC3B,SAAS,EAAE,eAAe,CAAA;CAC1B;AAcD,eAAO,MAAM,MAAM,GAAI,eAAe,WAAW,wCAqbhD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"block-editor.d.ts","sourceRoot":"","sources":["../../../../src/editor/components/block-editor.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,UAAU,CAAA;AAE7D,MAAM,WAAW,gBAAgB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IACpB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,aAAa,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAA;IACxE,iBAAiB,EAAE,CAClB,QAAQ,EAAE,cAAc,EACxB,oBAAoB,EAAE,MAAM,EAC5B,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KACtB,IAAI,CAAA;IACT,aAAa,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAA;CAC5C;AAID,wBAAgB,WAAW,CAAC,EAC3B,OAAO,EACP,WAAW,EACX,IAAI,EACJ,OAAO,EACP,aAAa,EACb,iBAAiB,EACjB,aAAa,GACb,EAAE,gBAAgB,uCA+clB"}
1
+ {"version":3,"file":"block-editor.d.ts","sourceRoot":"","sources":["../../../../src/editor/components/block-editor.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,UAAU,CAAA;AAE7D,MAAM,WAAW,gBAAgB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IACpB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,aAAa,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAA;IACxE,iBAAiB,EAAE,CAClB,QAAQ,EAAE,cAAc,EACxB,oBAAoB,EAAE,MAAM,EAC5B,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KACtB,IAAI,CAAA;IACT,aAAa,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAA;CAC5C;AAID,wBAAgB,WAAW,CAAC,EAC3B,OAAO,EACP,WAAW,EACX,IAAI,EACJ,OAAO,EACP,aAAa,EACb,iBAAiB,EACjB,aAAa,GACb,EAAE,gBAAgB,uCA0hBlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"color-toolbar.d.ts","sourceRoot":"","sources":["../../../../src/editor/components/color-toolbar.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE1D,MAAM,WAAW,iBAAiB;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IACpB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;IAC3B,eAAe,EAAE,eAAe,GAAG,SAAS,CAAA;IAC5C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS,CAAA;IACrD,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/K,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACpB;AAyJD,wBAAgB,YAAY,CAAC,EAC5B,OAAO,EACP,IAAI,EACJ,OAAO,EACP,eAAe,EACf,cAAc,EACd,aAAa,EACb,OAAO,GACP,EAAE,iBAAiB,uCAiInB"}
1
+ {"version":3,"file":"color-toolbar.d.ts","sourceRoot":"","sources":["../../../../src/editor/components/color-toolbar.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE1D,MAAM,WAAW,iBAAiB;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IACpB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;IAC3B,eAAe,EAAE,eAAe,GAAG,SAAS,CAAA;IAC5C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS,CAAA;IACrD,aAAa,CAAC,EAAE,CACf,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,EACxD,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,MAAM,EACzB,oBAAoB,EAAE,MAAM,KACxB,IAAI,CAAA;IACT,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACpB;AAyJD,wBAAgB,YAAY,CAAC,EAC5B,OAAO,EACP,IAAI,EACJ,OAAO,EACP,eAAe,EACf,cAAc,EACd,aAAa,EACb,OAAO,GACP,EAAE,iBAAiB,uCAiInB"}
@@ -1 +1 @@
1
- {"version":3,"file":"editable-highlights.d.ts","sourceRoot":"","sources":["../../../../src/editor/components/editable-highlights.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,uBAAuB;IACvC,OAAO,EAAE,OAAO,CAAA;CAChB;AAQD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,OAAO,EAAE,EAAE,uBAAuB,gCA0ItE"}
1
+ {"version":3,"file":"editable-highlights.d.ts","sourceRoot":"","sources":["../../../../src/editor/components/editable-highlights.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,uBAAuB;IACvC,OAAO,EAAE,OAAO,CAAA;CAChB;AAQD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,OAAO,EAAE,EAAE,uBAAuB,gCA0ItE"}
@@ -1 +1 @@
1
- {"version":3,"file":"outline.d.ts","sourceRoot":"","sources":["../../../../src/editor/components/outline.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,YAAY;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mEAAmE;IACnE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC5B,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrD,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;CACzD;AAOD;;;GAGG;AACH,wBAAgB,OAAO,CACtB,EAAE,OAAO,EAAE,IAAI,EAAE,WAAmB,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,EAAE,YAAY,gCAkX5H"}
1
+ {"version":3,"file":"outline.d.ts","sourceRoot":"","sources":["../../../../src/editor/components/outline.tsx"],"names":[],"mappings":"AAMA,MAAM,WAAW,YAAY;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mEAAmE;IACnE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC5B,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrD,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;CACzD;AAOD;;;GAGG;AACH,wBAAgB,OAAO,CACtB,EAAE,OAAO,EAAE,IAAI,EAAE,WAAmB,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,EAAE,YAAY,gCAsX5H"}
@@ -84,6 +84,7 @@ export declare const STORAGE_KEYS: {
84
84
  readonly PENDING_ATTRIBUTE_EDITS: "cms-pending-attribute-edits";
85
85
  readonly SETTINGS: "cms-settings";
86
86
  readonly PENDING_ENTRY_NAVIGATION: "cms-pending-entry-navigation";
87
+ readonly IS_EDITING: "cms-is-editing";
87
88
  };
88
89
  /**
89
90
  * CSS class prefixes and identifiers
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/editor/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,eAAO,MAAM,OAAO;IACnB,6CAA6C;;IAE7C,kCAAkC;;IAElC,2CAA2C;;IAE3C,0CAA0C;;CAEjC,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,MAAM;IAClB,qEAAqE;;IAErE,qDAAqD;;IAErD,mDAAmD;;IAEnD,gDAAgD;;IAEhD,uEAAuE;;IAEvE,yDAAyD;;IAEzD,uDAAuD;;CAE9C,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,MAAM;IAClB,kEAAkE;;IAElE,6DAA6D;;IAE7D,mDAAmD;;IAEnD,0CAA0C;;IAE1C,4BAA4B;;IAE5B,qCAAqC;;IAErC,qCAAqC;;IAErC,+BAA+B;;IAE/B,sDAAsD;;IAEtD,0BAA0B;;CAEjB,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,GAAG;IACf,8CAA8C;;IAE9C,mDAAmD;;IAEnD,iDAAiD;;IAEjD,8CAA8C;;CAErC,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;CAOf,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,GAAG;IACf,wEAAwE;;IAExE,yCAAyC;;IAEzC,uCAAuC;;IAEvC,+CAA+C;;CAEtC,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/editor/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,eAAO,MAAM,OAAO;IACnB,6CAA6C;;IAE7C,kCAAkC;;IAElC,2CAA2C;;IAE3C,0CAA0C;;CAEjC,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,MAAM;IAClB,qEAAqE;;IAErE,qDAAqD;;IAErD,mDAAmD;;IAEnD,gDAAgD;;IAEhD,uEAAuE;;IAEvE,yDAAyD;;IAEzD,uDAAuD;;CAE9C,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,MAAM;IAClB,kEAAkE;;IAElE,6DAA6D;;IAE7D,mDAAmD;;IAEnD,0CAA0C;;IAE1C,4BAA4B;;IAE5B,qCAAqC;;IAErC,qCAAqC;;IAErC,+BAA+B;;IAE/B,sDAAsD;;IAEtD,0BAA0B;;CAEjB,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,GAAG;IACf,8CAA8C;;IAE9C,mDAAmD;;IAEnD,iDAAiD;;IAEjD,8CAA8C;;CAErC,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;CAQf,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,GAAG;IACf,wEAAwE;;IAExE,yCAAyC;;IAEzC,uCAAuC;;IAEvC,+CAA+C;;CAEtC,CAAA"}
@@ -1,4 +1,13 @@
1
1
  import type { ChildCmsElement } from './types';
2
+ /**
3
+ * Detect whether the page has a dark background by checking the computed
4
+ * background color of the body and html elements.
5
+ */
6
+ export declare function isPageDark(): boolean;
7
+ /**
8
+ * Get an outline color that contrasts with the page background.
9
+ */
10
+ export declare function getOutlineColor(): string;
2
11
  /**
3
12
  * Get the best CMS element at a specific position using elementsFromPoint.
4
13
  * This is more reliable than using event.target for nested elements.
@@ -1 +1 @@
1
- {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../../src/editor/dom.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAK9C;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACtC,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACnC,WAAW,GAAG,IAAI,CAyCpB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAW/E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,GAAE,MAAW,GAAG,OAAO,CAatG;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,UAAU,GAAG,WAAW,GAAG,IAAI,CAMzE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAE1D;AAsCD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM,CAElE;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM,CAYlE;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,WAAW,GAAG,eAAe,EAAE,CAKtE;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,WAAW,GAAG,IAAI,CAatF;AAED,wBAAgB,iBAAiB,IAAI,UAAU,CAAC,WAAW,CAAC,CAE3D;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,CAEzD;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,CAE5D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,OAAO,GAAG,QAAkB,GAAG,IAAI,CAE3G;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,CAEzD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAI7C;AA+BD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAG7D;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,IAAI,IAAI,CAqBpD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAqBnD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
1
+ {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../../src/editor/dom.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAsB9C;;;GAGG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAUpC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAKD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACtC,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACnC,WAAW,GAAG,IAAI,CAyCpB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAW/E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,GAAE,MAAW,GAAG,OAAO,CAatG;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,UAAU,GAAG,WAAW,GAAG,IAAI,CAMzE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAE1D;AAsCD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM,CAElE;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM,CAYlE;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,WAAW,GAAG,eAAe,EAAE,CAKtE;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,WAAW,GAAG,IAAI,CAatF;AAED,wBAAgB,iBAAiB,IAAI,UAAU,CAAC,WAAW,CAAC,CAE3D;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,CAEzD;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,CAE5D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,OAAO,GAAG,QAAkB,GAAG,IAAI,CAE3G;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,CAEzD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAI7C;AAiCD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAG7D;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,IAAI,IAAI,CAqBpD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAqBnD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
@@ -1 +1 @@
1
- {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../src/editor/editor.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAyC,SAAS,EAA+D,MAAM,SAAS,CAAA;AAqD5I;;;GAGG;AACH,wBAAsB,aAAa,CAClC,MAAM,EAAE,SAAS,EACjB,aAAa,CAAC,EAAE,MAAM,IAAI,GACxB,OAAO,CAAC,IAAI,CAAC,CAqNf;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,aAAa,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAkB7D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,WAAW,EACf,aAAa,CAAC,EAAE,MAAM,IAAI,GACxB,IAAI,CAkEN;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CACjC,MAAM,EAAE,SAAS,EACjB,aAAa,CAAC,EAAE,MAAM,IAAI,GACxB,IAAI,CAkCN;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAqDlE;AA8BD;;GAEG;AACH,wBAAsB,cAAc,CACnC,MAAM,EAAE,SAAS,EACjB,aAAa,CAAC,EAAE,MAAM,IAAI,GACxB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAqPlG;AA2OD;;;GAGG;AACH,wBAAgB,iBAAiB,CAChC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,EAC7D,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,MAAM,IAAI,EAC1B,iBAAiB,CAAC,EAAE,MAAM,EAC1B,oBAAoB,CAAC,EAAE,MAAM,GAC3B,IAAI,CA6DN;AAiBD,MAAM,WAAW,wBAAwB;IACxC,4DAA4D;IAC5D,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,KAAK,IAAI,CAAA;CACjE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,IAAI,CAgHlG;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAS5C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAO9C;AAkFD;;;GAGG;AACH,wBAAgB,qBAAqB,CACpC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,EAC/C,aAAa,CAAC,EAAE,MAAM,IAAI,GACxB,IAAI,CAuDN"}
1
+ {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../src/editor/editor.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAyC,SAAS,EAA+D,MAAM,SAAS,CAAA;AAqD5I;;;GAGG;AACH,wBAAsB,aAAa,CAClC,MAAM,EAAE,SAAS,EACjB,aAAa,CAAC,EAAE,MAAM,IAAI,GACxB,OAAO,CAAC,IAAI,CAAC,CAsNf;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,aAAa,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAmB7D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,WAAW,EACf,aAAa,CAAC,EAAE,MAAM,IAAI,GACxB,IAAI,CAkEN;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CACjC,MAAM,EAAE,SAAS,EACjB,aAAa,CAAC,EAAE,MAAM,IAAI,GACxB,IAAI,CAkCN;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAqDlE;AA8BD;;GAEG;AACH,wBAAsB,cAAc,CACnC,MAAM,EAAE,SAAS,EACjB,aAAa,CAAC,EAAE,MAAM,IAAI,GACxB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAqPlG;AA2OD;;;GAGG;AACH,wBAAgB,iBAAiB,CAChC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,EAC7D,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,MAAM,IAAI,EAC1B,iBAAiB,CAAC,EAAE,MAAM,EAC1B,oBAAoB,CAAC,EAAE,MAAM,GAC3B,IAAI,CA6DN;AAiBD,MAAM,WAAW,wBAAwB;IACxC,4DAA4D;IAC5D,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,KAAK,IAAI,CAAA;CACjE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,IAAI,CAgHlG;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAS5C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAO9C;AAkFD;;;GAGG;AACH,wBAAgB,qBAAqB,CACpC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,EAC/C,aAAa,CAAC,EAAE,MAAM,IAAI,GACxB,IAAI,CAuDN"}
@@ -1 +1 @@
1
- {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../../src/editor/history.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAa,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AASpE,eAAO,MAAM,SAAS,qDAA2B,CAAA;AACjD,eAAO,MAAM,SAAS,qDAA2B,CAAA;AAEjD,eAAO,MAAM,OAAO,wDAA2E,CAAA;AAC/F,eAAO,MAAM,OAAO,wDAA6C,CAAA;AAEjE,sEAAsE;AACtE,eAAO,IAAI,kBAAkB,SAAQ,CAAA;AAoBrC;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAwB/D;AAMD;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAUrD;AA0BD,wBAAgB,WAAW,IAAI,IAAI,CAiBlC;AAED,wBAAgB,WAAW,IAAI,IAAI,CAclC;AAwLD,wBAAgB,YAAY,IAAI,IAAI,CAQnC"}
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../../src/editor/history.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAa,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AASpE,eAAO,MAAM,SAAS,qDAA2B,CAAA;AACjD,eAAO,MAAM,SAAS,qDAA2B,CAAA;AAEjD,eAAO,MAAM,OAAO,wDAA2E,CAAA;AAC/F,eAAO,MAAM,OAAO,wDAA6C,CAAA;AAEjE,sEAAsE;AACtE,eAAO,IAAI,kBAAkB,SAAQ,CAAA;AAoBrC;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAwB/D;AAMD;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAUrD;AA0BD,wBAAgB,WAAW,IAAI,IAAI,CAiBlC;AAED,wBAAgB,WAAW,IAAI,IAAI,CAclC;AAwLD,wBAAgB,YAAY,IAAI,IAAI,CAQnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useBlockEditorHandlers.d.ts","sourceRoot":"","sources":["../../../../src/editor/hooks/useBlockEditorHandlers.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAczD,MAAM,WAAW,0BAA0B;IAC1C,MAAM,EAAE,SAAS,CAAA;IACjB,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,KAAK,IAAI,CAAA;CACzE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,EACtC,MAAM,EACN,SAAS,GACT,EAAE,0BAA0B;;yCAOb,MAAM,QAAQ,OAAO;;qCAqBrB,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;sCAarC,cAAc,wBACF,MAAM,iBACb,MAAM,SACd,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;qCAmEP,MAAM;EAgE3B"}
1
+ {"version":3,"file":"useBlockEditorHandlers.d.ts","sourceRoot":"","sources":["../../../../src/editor/hooks/useBlockEditorHandlers.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAkC,cAAc,EAAE,MAAM,UAAU,CAAA;AAkCzF,MAAM,WAAW,0BAA0B;IAC1C,MAAM,EAAE,SAAS,CAAA;IACjB,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,KAAK,IAAI,CAAA;CACzE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,EACtC,MAAM,EACN,SAAS,GACT,EAAE,0BAA0B;;yCAOb,MAAM,QAAQ,OAAO;;qCAqBrB,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;sCAarC,cAAc,wBACF,MAAM,iBACb,MAAM,SACd,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;qCAiGP,MAAM;EAsE3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/editor/index.tsx"],"names":[],"mappings":"AAkXA,cAAM,SAAS;IACd,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,MAAM,CAAc;IAEtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3B,OAAO,CAAC,OAAO;IA2Bf,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,sBAAsB;IAgC9B,OAAO,CAAC,gBAAgB;CASxB;AAgBD,OAAO,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/editor/index.tsx"],"names":[],"mappings":"AAkYA,cAAM,SAAS;IACd,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,MAAM,CAAc;IAEtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3B,OAAO,CAAC,OAAO;IA2Bf,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,sBAAsB;IAgC9B,OAAO,CAAC,gBAAgB;CASxB;AAgBD,OAAO,EAAE,SAAS,EAAE,CAAA"}
@@ -23,5 +23,7 @@ export interface PendingEntryNavigation {
23
23
  export declare function savePendingEntryNavigation(entry: PendingEntryNavigation): void;
24
24
  export declare function hasPendingEntryNavigation(): boolean;
25
25
  export declare function loadPendingEntryNavigation(): PendingEntryNavigation | null;
26
+ export declare function saveEditingState(isEditing: boolean): void;
27
+ export declare function loadEditingState(): boolean;
26
28
  export declare function clearAllEditsFromStorage(): void;
27
29
  //# sourceMappingURL=storage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/editor/storage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,WAAW,EACX,sBAAsB,EACtB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,UAAU,EACV,eAAe,EACf,MAAM,SAAS,CAAA;AAMhB,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,IAAI,CAmBnF;AAED,wBAAgB,oBAAoB,IAAI,UAAU,CAQjD;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAM5C;AAMD,wBAAgB,uBAAuB,CAAC,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAoBlG;AAED,wBAAgB,yBAAyB,IAAI,eAAe,CAQ3D;AAED,wBAAgB,0BAA0B,IAAI,IAAI,CAMjD;AAMD,wBAAgB,uBAAuB,CAAC,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAiBlG;AAED,wBAAgB,yBAAyB,IAAI,eAAe,CAQ3D;AAED,wBAAgB,0BAA0B,IAAI,IAAI,CAMjD;AAMD,wBAAgB,2BAA2B,CAAC,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,GAAG,IAAI,CAiB9G;AAED,wBAAgB,6BAA6B,IAAI,mBAAmB,CAQnE;AAED,wBAAgB,8BAA8B,IAAI,IAAI,CAMrD;AAMD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAMjE;AAED,wBAAgB,uBAAuB,IAAI,WAAW,GAAG,IAAI,CAQ5D;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAM/C;AAMD,MAAM,WAAW,sBAAsB;IACtC,cAAc,EAAE,MAAM,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI,CAM9E;AAED,wBAAgB,yBAAyB,IAAI,OAAO,CASnD;AAED,wBAAgB,0BAA0B,IAAI,sBAAsB,GAAG,IAAI,CAY1E;AAMD,wBAAgB,wBAAwB,IAAI,IAAI,CAK/C"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/editor/storage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,WAAW,EACX,sBAAsB,EACtB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,UAAU,EACV,eAAe,EACf,MAAM,SAAS,CAAA;AAMhB,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,IAAI,CAmBnF;AAED,wBAAgB,oBAAoB,IAAI,UAAU,CAQjD;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAM5C;AAMD,wBAAgB,uBAAuB,CAAC,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAoBlG;AAED,wBAAgB,yBAAyB,IAAI,eAAe,CAQ3D;AAED,wBAAgB,0BAA0B,IAAI,IAAI,CAMjD;AAMD,wBAAgB,uBAAuB,CAAC,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAiBlG;AAED,wBAAgB,yBAAyB,IAAI,eAAe,CAQ3D;AAED,wBAAgB,0BAA0B,IAAI,IAAI,CAMjD;AAMD,wBAAgB,2BAA2B,CAAC,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,GAAG,IAAI,CAiB9G;AAED,wBAAgB,6BAA6B,IAAI,mBAAmB,CAQnE;AAED,wBAAgB,8BAA8B,IAAI,IAAI,CAMrD;AAMD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAMjE;AAED,wBAAgB,uBAAuB,IAAI,WAAW,GAAG,IAAI,CAQ5D;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAM/C;AAMD,MAAM,WAAW,sBAAsB;IACtC,cAAc,EAAE,MAAM,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI,CAM9E;AAED,wBAAgB,yBAAyB,IAAI,OAAO,CASnD;AAED,wBAAgB,0BAA0B,IAAI,sBAAsB,GAAG,IAAI,CAY1E;AAMD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAUzD;AAED,wBAAgB,gBAAgB,IAAI,OAAO,CAM1C;AAMD,wBAAgB,wBAAwB,IAAI,IAAI,CAK/C"}
@@ -0,0 +1,59 @@
1
+ import type { ManifestWriter } from '../manifest-writer';
2
+ export interface AddArrayItemRequest {
3
+ referenceComponentId: string;
4
+ position: 'before' | 'after';
5
+ props: Record<string, unknown>;
6
+ meta?: {
7
+ source: string;
8
+ url: string;
9
+ };
10
+ }
11
+ export interface AddArrayItemResponse {
12
+ success: boolean;
13
+ message?: string;
14
+ sourceFile?: string;
15
+ error?: string;
16
+ }
17
+ export interface RemoveArrayItemRequest {
18
+ componentId: string;
19
+ meta?: {
20
+ source: string;
21
+ url: string;
22
+ };
23
+ }
24
+ export interface RemoveArrayItemResponse {
25
+ success: boolean;
26
+ message?: string;
27
+ sourceFile?: string;
28
+ error?: string;
29
+ }
30
+ /**
31
+ * Scan backwards from a component invocation line to find a `.map(` pattern
32
+ * and extract the array variable name.
33
+ *
34
+ * Looks for patterns like:
35
+ * {packages.map((pkg) => <PackageCard {...pkg} />)}
36
+ * {items.map(item => (
37
+ */
38
+ export declare function detectArrayPattern(lines: string[], invocationLineIndex: number): {
39
+ arrayVarName: string;
40
+ mapLineIndex: number;
41
+ } | null;
42
+ interface ArrayElementBounds {
43
+ startLine: number;
44
+ endLine: number;
45
+ }
46
+ /**
47
+ * Parse frontmatter with Babel, walk the AST to find the array variable declaration,
48
+ * and return the line bounds of each element.
49
+ *
50
+ * @param frontmatterContent - The raw frontmatter code (between --- delimiters)
51
+ * @param frontmatterStartLine - The 0-indexed line where frontmatter content starts in the file
52
+ * (line after the opening `---`)
53
+ * @param arrayVarName - The variable name of the array to find
54
+ */
55
+ export declare function findArrayDeclaration(frontmatterContent: string, frontmatterStartLine: number, arrayVarName: string): ArrayElementBounds[] | null;
56
+ export declare function handleRemoveArrayItem(request: RemoveArrayItemRequest, manifestWriter: ManifestWriter): Promise<RemoveArrayItemResponse>;
57
+ export declare function handleAddArrayItem(request: AddArrayItemRequest, manifestWriter: ManifestWriter): Promise<AddArrayItemResponse>;
58
+ export {};
59
+ //# sourceMappingURL=array-ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-ops.d.ts","sourceRoot":"","sources":["../../../src/handlers/array-ops.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAYxD,MAAM,WAAW,mBAAmB;IACnC,oBAAoB,EAAE,MAAM,CAAA;IAC5B,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAA;IAC5B,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,oBAAoB;IACpC,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;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,MAAM,EAAE,EACf,mBAAmB,EAAE,MAAM,GACzB;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAYvD;AAED,UAAU,kBAAkB;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CACnC,kBAAkB,EAAE,MAAM,EAC1B,oBAAoB,EAAE,MAAM,EAC5B,YAAY,EAAE,MAAM,GAClB,kBAAkB,EAAE,GAAG,IAAI,CAyC7B;AA4GD,wBAAsB,qBAAqB,CAC1C,OAAO,EAAE,sBAAsB,EAC/B,cAAc,EAAE,cAAc,GAC5B,OAAO,CAAC,uBAAuB,CAAC,CAmFlC;AAED,wBAAsB,kBAAkB,CACvC,OAAO,EAAE,mBAAmB,EAC5B,cAAc,EAAE,cAAc,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAkG/B"}
@@ -1,4 +1,5 @@
1
1
  import type { ManifestWriter } from '../manifest-writer';
2
+ import type { CmsManifest, ComponentInstance } from '../types';
2
3
  export type InsertPosition = 'before' | 'after';
3
4
  export interface InsertComponentRequest {
4
5
  position: InsertPosition;
@@ -31,4 +32,29 @@ export interface RemoveComponentResponse {
31
32
  }
32
33
  export declare function handleInsertComponent(request: InsertComponentRequest, manifestWriter: ManifestWriter): Promise<InsertComponentResponse>;
33
34
  export declare function handleRemoveComponent(request: RemoveComponentRequest, manifestWriter: ManifestWriter): Promise<RemoveComponentResponse>;
35
+ export declare function getPageFileCandidates(pageUrl: string): string[];
36
+ export declare function getComponentOccurrenceIndex(manifest: CmsManifest, referenceComponent: ComponentInstance): number;
37
+ export declare function findComponentInvocationFile(projectRoot: string, pageUrl: string, manifest: CmsManifest, referenceComponent: ComponentInstance): Promise<{
38
+ filePath: string;
39
+ lineIndex: number;
40
+ } | null>;
41
+ export declare function findComponentInvocationLine(lines: string[], componentName: string, occurrenceIndex: number): number;
42
+ /**
43
+ * Find the line index after the frontmatter block (--- ... ---).
44
+ * Returns 0 if no frontmatter is found.
45
+ */
46
+ export declare function findFrontmatterEnd(lines: string[]): number;
47
+ export declare function getIndentation(line: string): string;
48
+ export declare function normalizeFilePath(p: string): string;
49
+ /**
50
+ * Extract prop values from a component invocation in source code.
51
+ * Parses the opening JSX tag starting at `lineIndex` and returns a map of prop names to values.
52
+ */
53
+ export declare function extractPropsFromSource(lines: string[], lineIndex: number, componentName: string): Record<string, any>;
54
+ /**
55
+ * Ensure the component has an import statement in the file's frontmatter.
56
+ * If the component is already imported, this is a no-op.
57
+ * Mutates the `lines` array in place.
58
+ */
59
+ export declare function ensureComponentImport(lines: string[], componentName: string, componentFile: string, targetFile: string): void;
34
60
  //# sourceMappingURL=component-ops.d.ts.map
@@ -1 +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"}
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;AACxD,OAAO,KAAK,EAAE,WAAW,EAAuB,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAGnF,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,CAwGlC;AAED,wBAAsB,qBAAqB,CAC1C,OAAO,EAAE,sBAAsB,EAC/B,cAAc,EAAE,cAAc,GAC5B,OAAO,CAAC,uBAAuB,CAAC,CAuFlC;AAqED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAwB/D;AAED,wBAAgB,2BAA2B,CAC1C,QAAQ,EAAE,WAAW,EACrB,kBAAkB,EAAE,iBAAiB,GACnC,MAAM,CAeR;AAED,wBAAsB,2BAA2B,CAChD,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,WAAW,EACrB,kBAAkB,EAAE,iBAAiB,GACnC,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CA4CzD;AAED,wBAAgB,2BAA2B,CAC1C,KAAK,EAAE,MAAM,EAAE,EACf,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,MAAM,GACrB,MAAM,CAYR;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAM1D;AAqCD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAOnD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACrC,KAAK,EAAE,MAAM,EAAE,EACf,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GACnB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAQrB;AAyKD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACpC,KAAK,EAAE,MAAM,EAAE,EACf,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GAChB,IAAI,CAsCN"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AAa7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAuB,MAAM,SAAS,CAAA;AAGpE,MAAM,WAAW,aAAc,SAAQ,gBAAgB;IACtD;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,SAAS,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,KAAK,CAAC,EAAE,OAAO,CAAA;QACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC9B,WAAW,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;IACD;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,KAAK,CAAC,EAAE,mBAAmB,CAAA;CAC3B;AAID,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,gBAAgB,CAmM5E;AAED,OAAO,EAAE,6BAA6B,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACnF,OAAO,EAAE,yBAAyB,IAAI,UAAU,EAAE,MAAM,eAAe,CAAA;AACvE,OAAO,EAAE,sBAAsB,IAAI,OAAO,EAAE,MAAM,YAAY,CAAA;AAC9D,YAAY,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC3E,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACzG,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAC5E,YAAY,EACX,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,SAAS,EACT,aAAa,EACb,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,WAAW,EACX,WAAW,EACX,UAAU,EACV,UAAU,EACV,aAAa,EACb,QAAQ,EACR,aAAa,EACb,cAAc,EACd,eAAe,GACf,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AAY7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAuB,MAAM,SAAS,CAAA;AAGpE,MAAM,WAAW,aAAc,SAAQ,gBAAgB;IACtD;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,SAAS,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,KAAK,CAAC,EAAE,OAAO,CAAA;QACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC9B,WAAW,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;IACD;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,KAAK,CAAC,EAAE,mBAAmB,CAAA;CAC3B;AAID,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,gBAAgB,CAwM5E;AAED,OAAO,EAAE,6BAA6B,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACnF,OAAO,EAAE,yBAAyB,IAAI,UAAU,EAAE,MAAM,eAAe,CAAA;AACvE,OAAO,EAAE,sBAAsB,IAAI,OAAO,EAAE,MAAM,YAAY,CAAA;AAC9D,YAAY,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC3E,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACzG,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAC5E,YAAY,EACX,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,SAAS,EACT,aAAa,EACb,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,WAAW,EACX,WAAW,EACX,UAAU,EACV,UAAU,EACV,aAAa,EACb,QAAQ,EACR,aAAa,EACb,cAAc,EACd,eAAe,GACf,MAAM,SAAS,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"cross-file-tracker.d.ts","sourceRoot":"","sources":["../../../src/source-finder/cross-file-tracker.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAsB,MAAM,SAAS,CAAA;AAQ7E;;;;;;;;;;;;GAYG;AACH,wBAAsB,uBAAuB,CAC5C,iBAAiB,EAAE,MAAM,EACzB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,MAAU,GACf,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAiCrC;AAwID;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC3C,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAkDrC;AAMD;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CA6DlH;AAMD;;;;;;;;GAQG;AACH,wBAAsB,2BAA2B,CAChD,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,GACpB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAuFrC"}
1
+ {"version":3,"file":"cross-file-tracker.d.ts","sourceRoot":"","sources":["../../../src/source-finder/cross-file-tracker.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAsB,MAAM,SAAS,CAAA;AAO7E;;;;;;;;;;;;GAYG;AACH,wBAAsB,uBAAuB,CAC5C,iBAAiB,EAAE,MAAM,EACzB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,MAAU,GACf,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAiCrC;AAwID;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC3C,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAkDrC;AAMD;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CA6DlH;AAMD;;;;;;;;GAQG;AACH,wBAAsB,2BAA2B,CAChD,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,GACpB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAuFrC"}