@jsonpages/core 1.0.64 → 1.0.69

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.
package/index.cjs ADDED
@@ -0,0 +1 @@
1
+ module.exports = require("@olonjs/core");
package/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "@olonjs/core";
package/index.js ADDED
@@ -0,0 +1 @@
1
+ export * from "@olonjs/core";
package/package.json CHANGED
@@ -1,71 +1,28 @@
1
1
  {
2
2
  "name": "@jsonpages/core",
3
- "version": "1.0.64",
3
+ "version": "1.0.69",
4
4
  "private": false,
5
5
  "type": "module",
6
- "main": "./dist/jsonpages-core.umd.cjs",
7
- "module": "./dist/jsonpages-core.js",
8
- "types": "./dist/index.d.ts",
6
+ "description": "Compatibility bridge package. Use @olonjs/core instead.",
7
+ "main": "./index.cjs",
8
+ "module": "./index.js",
9
+ "types": "./index.d.ts",
9
10
  "exports": {
10
11
  ".": {
11
- "types": "./dist/index.d.ts",
12
- "import": "./dist/jsonpages-core.js",
13
- "require": "./dist/jsonpages-core.umd.cjs"
12
+ "types": "./index.d.ts",
13
+ "import": "./index.js",
14
+ "require": "./index.cjs"
14
15
  }
15
16
  },
16
17
  "files": [
17
- "dist"
18
+ "index.js",
19
+ "index.cjs",
20
+ "index.d.ts"
18
21
  ],
19
- "description": "The Sovereign Core Engine for JsonPages.",
20
- "author": "JsonPages Team",
21
- "license": "MIT",
22
- "homepage": "https://github.com/jsonpages/npm-jpcore#readme",
23
- "repository": {
24
- "type": "git",
25
- "url": "git+https://github.com/jsonpages/npm-jpcore.git",
26
- "directory": "packages/core"
27
- },
28
- "bugs": {
29
- "url": "https://github.com/jsonpages/npm-jpcore/issues"
22
+ "dependencies": {
23
+ "@olonjs/core": "^1.0.69"
30
24
  },
31
25
  "publishConfig": {
32
26
  "access": "public"
33
- },
34
- "scripts": {
35
- "build": "vite build",
36
- "prepack": "node scripts/sync-peers-from-stack.js"
37
- },
38
- "peerDependencies": {
39
- "react": "^19.0.0",
40
- "react-dom": "^19.0.0",
41
- "react-router-dom": "^6.29.0",
42
- "zod": "^3.24.1"
43
- },
44
- "dependencies": {
45
- "@dnd-kit/core": "^6.3.0",
46
- "@dnd-kit/modifiers": "^7.0.0",
47
- "@dnd-kit/sortable": "^9.0.0",
48
- "@dnd-kit/utilities": "^3.2.2",
49
- "@radix-ui/react-popover": "^1.1.4",
50
- "@radix-ui/react-slot": "^1.1.0",
51
- "@radix-ui/react-scroll-area": "^1.2.2",
52
- "@radix-ui/react-select": "^2.1.6",
53
- "@radix-ui/react-tooltip": "^1.1.6",
54
- "lucide-react": "^0.474.0",
55
- "radix-ui": "^1.4.3",
56
- "file-saver": "^2.0.5",
57
- "jszip": "^3.10.1",
58
- "tailwind-merge": "^3.0.1",
59
- "clsx": "^2.1.1"
60
- },
61
- "devDependencies": {
62
- "@jsonpages/stack": "^1.0.0",
63
- "vite": "^6.0.0",
64
- "@vitejs/plugin-react": "^4.0.0",
65
- "vite-plugin-dts": "^4.0.0",
66
- "typescript": "^5.7.3",
67
- "@types/react": "^19.0.0",
68
- "@types/react-dom": "^19.0.0",
69
- "@tailwindcss/vite": "^4.0.0"
70
27
  }
71
28
  }
package/dist/index.d.ts DELETED
@@ -1,530 +0,0 @@
1
- import { ClassValue } from 'clsx';
2
- import { default as default_2 } from 'react';
3
- import { JSX } from 'react/jsx-runtime';
4
- import { ReactNode } from 'react';
5
- import { z } from 'zod';
6
-
7
- /**
8
- * Optional config for the "Add section" library (tenant-agnostic).
9
- * Section types are derived from registry/schemas; tenant can customize labels and defaults.
10
- */
11
- export declare interface AddSectionConfig {
12
- /** Section types that can be added to a page (order preserved). If omitted, derived from schemas excluding header/footer. */
13
- addableSectionTypes?: string[];
14
- /** Display label per section type. If omitted, type id is humanized (e.g. "feature-grid" → "Feature grid"). */
15
- sectionTypeLabels?: Record<string, string>;
16
- /** Default data for a new section of the given type. Required for add-section to produce valid sections. */
17
- getDefaultSectionData?: (sectionType: string) => Record<string, unknown>;
18
- }
19
-
20
- export declare const AddSectionLibrary: default_2.FC<AddSectionLibraryProps>;
21
-
22
- declare interface AddSectionLibraryProps {
23
- open: boolean;
24
- onClose: () => void;
25
- /** Section type ids that can be added (e.g. from config.addSection.addableSectionTypes or derived). */
26
- sectionTypes: string[];
27
- /** Optional display label per type; falls back to humanized type id. */
28
- sectionTypeLabels?: Record<string, string>;
29
- onSelect: (sectionType: string) => void;
30
- }
31
-
32
- export declare const AdminSidebar: default_2.FC<AdminSidebarProps>;
33
-
34
- declare interface AdminSidebarProps {
35
- selectedSection: SelectedSectionInfo | null;
36
- pageData: PageConfig | {
37
- sections: Section[];
38
- };
39
- /** All sections (header + page sections + footer) for resolving modal section data. */
40
- allSectionsData?: Section[];
41
- onUpdate: (newData: Record<string, unknown>) => void;
42
- /** Update a section by id/scope (e.g. from settings modal). When provided with allSectionsData, gear opens modal. */
43
- onUpdateSection?: OnUpdateSection;
44
- onClose: () => void;
45
- /** Root-to-leaf path for deep focus (e.g. silos -> blocks). When null, no canvas selection. */
46
- expandedItemPath?: Array<{
47
- fieldKey: string;
48
- itemId?: string;
49
- }> | null;
50
- onReorderSection?: (sectionId: string, newIndex: number) => void;
51
- allLayers?: LayerItem[];
52
- activeSectionId?: string | null;
53
- onRequestScrollToSection?: (sectionId: string) => void;
54
- onDeleteSection?: (sectionId: string) => void;
55
- /** When provided, shows an "Add section" button in the inspector header that opens the section library. */
56
- onAddSection?: () => void;
57
- /** Whether there are unsaved changes (disables Bake HTML / Export JSON when false). */
58
- hasChanges?: boolean;
59
- /** Trigger Bake HTML (same as ControlBar). */
60
- onExportHTML?: () => void;
61
- /** Save to file (writes JSON to repo via server). Replaces Export JSON in sidebar when provided. */
62
- onSaveToFile?: () => void;
63
- /** Hot Save callback (typically cloud save2edge). */
64
- onHotSave?: () => void;
65
- /** When true, show "Salvato" in the status bar (e.g. for 2s after save-to-file succeeds). */
66
- saveSuccessFeedback?: boolean;
67
- /** When true, show "Saved" feedback for hot save (e.g. for 2s after success). */
68
- hotSaveSuccessFeedback?: boolean;
69
- /** When true, hot save action is currently running. */
70
- hotSaveInProgress?: boolean;
71
- /** Controls visibility of legacy Save button. */
72
- showLegacySave?: boolean;
73
- /** Controls visibility of Hot Save button. */
74
- showHotSave?: boolean;
75
- /** Restore page from file (resets in-memory draft for current slug). Hidden by default; set showResetToFile to display. */
76
- onResetToFile?: () => void;
77
- /** When true, shows the "Ripristina da file" button (default false = hidden). */
78
- showResetToFile?: boolean;
79
- /** Available page slugs. When length > 0 and onPageChange set, shows page selector under Inspector header. */
80
- pageSlugs?: string[];
81
- /** Current page slug. */
82
- currentSlug?: string;
83
- /** Called when user selects another page; engine should navigate to /admin/:slug. */
84
- onPageChange?: (slug: string) => void;
85
- }
86
-
87
- /** Optional config for the Image Picker (gallery from assets, save to assets). */
88
- export declare interface AssetsConfig {
89
- /** Base URL for assets (e.g. "/assets"). Used to resolve library image URLs and display gallery. */
90
- assetsBaseUrl?: string;
91
- /** Library images for the picker "Libreria" tab. Tenant can build from public/assets or provide a static list. */
92
- assetsManifest?: LibraryImageEntry[];
93
- /** Optional: upload file to tenant assets and return the public URL. If omitted, upload tab uses data URL. */
94
- onAssetUpload?: (file: File) => Promise<string>;
95
- }
96
-
97
- /**
98
- * 🍞 BAKED STATE (Optimized subset for the static HTML artifact)
99
- */
100
- export declare interface BakedState {
101
- page: PageConfig;
102
- site: Omit<SiteConfig, 'pages'>;
103
- menu: MenuConfig;
104
- theme: ThemeConfig;
105
- }
106
-
107
- export declare interface BaseSection<K extends keyof SectionDataRegistry> {
108
- id: string;
109
- type: K;
110
- data: SectionDataRegistry[K];
111
- settings?: K extends keyof SectionSettingsRegistry ? SectionSettingsRegistry[K] : BaseSectionSettings;
112
- }
113
-
114
- /**
115
- * 🛡️ KERNEL: The Base Contract (MTRP)
116
- * Core is self-contained; structural types live here.
117
- */
118
- export declare interface BaseSectionSettings {
119
- [key: string]: unknown;
120
- }
121
-
122
- /**
123
- * Shared types between Admin Engine and Input Registry.
124
- */
125
- export declare interface BaseWidgetProps<T = unknown> {
126
- label: string;
127
- value: T;
128
- onChange: (val: T) => void;
129
- options?: string[];
130
- }
131
-
132
- export declare function cn(...inputs: ClassValue[]): string;
133
-
134
- export declare interface ConfigContextValue {
135
- registry: Registry;
136
- schemas: Schemas;
137
- /** For asset resolution (e.g. image picker preview). */
138
- tenantId?: string;
139
- /** Optional assets config for Image Picker (gallery, upload). */
140
- assets?: AssetsConfig;
141
- /** Optional list of section types where Studio overlay should be disabled. */
142
- overlayDisabledSectionTypes?: string[];
143
- }
144
-
145
- export declare const ConfigProvider: default_2.FC<{
146
- config: Pick<JsonPagesConfig, 'registry' | 'schemas' | 'tenantId' | 'assets' | 'overlayDisabledSectionTypes'>;
147
- children: default_2.ReactNode;
148
- }>;
149
-
150
- export declare const ControlBar: default_2.FC<ControlBarProps>;
151
-
152
- declare interface ControlBarProps {
153
- hasChanges: boolean;
154
- onExportJSON: () => void;
155
- onExportHTML: () => void;
156
- /** Optional: opens the Add section library. When provided, an "Add section" icon is shown. */
157
- onAddSection?: () => void;
158
- }
159
-
160
- export declare const DefaultNotFound: default_2.FC;
161
-
162
- /**
163
- * 🍞 BAKE HTML (The Single File Artifact)
164
- */
165
- export declare const exportBakedHTML: (state: ProjectState, slug: string, cleanHtml: string) => void;
166
-
167
- /**
168
- * 💾 EXPORT JSON (The Developer Handover)
169
- */
170
- export declare const exportProjectJSON: (state: ProjectState, slug: string) => Promise<void>;
171
-
172
- /** Structural shape used when no tenant has augmented the registries. */
173
- export declare interface FallbackSection {
174
- id: string;
175
- type: string;
176
- data: Record<string, unknown>;
177
- settings?: Record<string, unknown>;
178
- }
179
-
180
- export declare const FormFactory: default_2.FC<FormFactoryProps>;
181
-
182
- declare interface FormFactoryProps {
183
- schema: z.ZodObject<z.ZodRawShape>;
184
- data: Record<string, unknown>;
185
- onChange: (newData: Record<string, unknown>) => void;
186
- /** When set, only render fields whose key is in this array (e.g. Content vs Settings tabs). */
187
- keys?: string[] | null;
188
- /** Root-to-leaf path for deep focus (e.g. silos -> blocks). First segment applies to this level. */
189
- expandedItemPath?: Array<{
190
- fieldKey: string;
191
- itemId?: string;
192
- }> | null;
193
- /** Called when user expands/collapses an array item in the sidebar (so parent can drive fade). */
194
- onSidebarExpandedItemChange?: (item: {
195
- fieldKey: string;
196
- itemId?: string;
197
- } | null) => void;
198
- }
199
-
200
- export declare const InputWidgets: {
201
- readonly 'ui:text': ({ label, value, onChange }: BaseWidgetProps<string>) => JSX.Element;
202
- readonly 'ui:textarea': ({ label, value, onChange }: BaseWidgetProps<string>) => JSX.Element;
203
- readonly 'ui:select': ({ label, value, onChange, options }: BaseWidgetProps<string>) => JSX.Element;
204
- readonly 'ui:checkbox': ({ label, value, onChange }: BaseWidgetProps<boolean>) => JSX.Element;
205
- readonly 'ui:image-picker': ({ label, value, onChange }: BaseWidgetProps<unknown>) => JSX.Element;
206
- readonly 'ui:icon-picker': ({ label, value, onChange }: BaseWidgetProps<string>) => JSX.Element;
207
- };
208
-
209
- /** Single entry point configuration for the JsonPages Engine. */
210
- export declare interface JsonPagesConfig {
211
- /** Unique identifier for the tenant (used for asset resolution) */
212
- tenantId: string;
213
- /** Component map: section type -> React component. */
214
- registry: Record<string, default_2.ComponentType<unknown>>;
215
- /** Zod schemas map: section type -> schema. */
216
- schemas: Record<string, {
217
- parse: (v: unknown) => unknown;
218
- shape?: Record<string, unknown>;
219
- }>;
220
- /** Page slug -> page config. */
221
- pages: Record<string, PageConfig>;
222
- siteConfig: SiteConfig;
223
- themeConfig: ThemeConfig;
224
- menuConfig: MenuConfig;
225
- /** Optional persistence; Core provides defaults if omitted. */
226
- persistence?: Partial<PersistenceConfig>;
227
- /** CSS strings for ThemeLoader. */
228
- themeCss: ThemeCssConfig;
229
- /** Optional 404 component. */
230
- NotFoundComponent?: default_2.ComponentType;
231
- /** Optional "Add section" library config (labels, addable types, default data). */
232
- addSection?: AddSectionConfig;
233
- /** Optional assets config for Image Picker (gallery, upload target). */
234
- assets?: AssetsConfig;
235
- /** Optional list of section types where Studio overlay should be disabled. */
236
- overlayDisabledSectionTypes?: string[];
237
- }
238
-
239
- export declare function JsonPagesEngine({ config }: JsonPagesEngineProps): JSX.Element;
240
-
241
- declare interface JsonPagesEngineProps {
242
- config: JsonPagesConfig;
243
- }
244
-
245
- export declare interface LayerItem {
246
- id: string;
247
- type: string;
248
- scope: string;
249
- title?: string;
250
- }
251
-
252
- /** Image entry for the Image Picker Library tab (from tenant assets or manifest). */
253
- export declare interface LibraryImageEntry {
254
- id: string;
255
- url: string;
256
- alt: string;
257
- tags?: string[];
258
- }
259
-
260
- export declare interface MenuConfig {
261
- main: MenuItem[];
262
- }
263
-
264
- export declare interface MenuItem {
265
- label: string;
266
- href: string;
267
- icon?: string;
268
- external?: boolean;
269
- isCta?: boolean;
270
- children?: MenuItem[];
271
- }
272
-
273
- /** Used by the section-settings modal to update a section without changing Inspector selection. */
274
- export declare type OnUpdateSection = (sectionId: string, scope: 'global' | 'local', sectionType: string, newData: Record<string, unknown>) => void;
275
-
276
- export declare interface PageConfig {
277
- id: string;
278
- slug: string;
279
- meta: PageMeta;
280
- sections: Section[];
281
- }
282
-
283
- export declare interface PageMeta {
284
- title: string;
285
- description: string;
286
- }
287
-
288
- export declare const PageRenderer: default_2.FC<Props>;
289
-
290
- export declare interface PageRendererProps {
291
- pageConfig: PageConfig;
292
- siteConfig: SiteConfig;
293
- menuConfig: MenuConfig;
294
- selectedId?: string | null;
295
- }
296
-
297
- /** Persistence API; defaults provided by Core, overridable by Tenant. */
298
- export declare interface PersistenceConfig {
299
- exportJSON: (state: ProjectState, slug: string) => Promise<void>;
300
- exportHTML: (state: ProjectState, slug: string, cleanHtml: string) => void;
301
- /**
302
- * Optional. Save current state to repo files (e.g. POST to /api/save-to-file); server writes
303
- * src/data/config/*.json and src/data/pages/<slug>.json. No git push.
304
- */
305
- saveToFile?: (state: ProjectState, slug: string) => Promise<void>;
306
- /**
307
- * Optional. Hot save path (e.g. POST to /api/v1/save2edge).
308
- * Core only triggers this callback; tenant decides transport and endpoint.
309
- */
310
- hotSave?: (state: ProjectState, slug: string) => Promise<void>;
311
- /** Controls legacy Save button visibility in sidebar. Default true. */
312
- showLegacySave?: boolean;
313
- /** Controls Hot Save button visibility in sidebar. Default false. */
314
- showHotSave?: boolean;
315
- /**
316
- * Optional. If provided, flushes in-memory /uploaded-assets/ blobs to disk and returns oldUrl -> newUrl map.
317
- * Omit when uploads write directly to disk (e.g. public/assets/images) and section data already stores final URLs.
318
- */
319
- flushUploadedAssets?: (urls: string[]) => Promise<Record<string, string>>;
320
- }
321
-
322
- export declare const PreviewEntry: default_2.FC;
323
-
324
- /**
325
- * 📦 PROJECT STATE (The Universal Data Bundle)
326
- * Moved to Kernel to serve as SSOT for Engine and Persistence.
327
- */
328
- export declare interface ProjectState {
329
- page: PageConfig;
330
- site: SiteConfig;
331
- menu: MenuConfig;
332
- theme: ThemeConfig;
333
- }
334
-
335
- declare type Props = PageRendererProps & {
336
- onReorder?: (sectionId: string, newIndex: number) => void;
337
- /** When set, scroll this section into view (Studio full-page). */
338
- scrollToSectionId?: string | null;
339
- /** Report which section is most visible in viewport (Intersection Observer). */
340
- onActiveSectionChange?: (sectionId: string | null) => void;
341
- };
342
-
343
- declare type Registry = JsonPagesConfig['registry'];
344
-
345
- /**
346
- * 🛡️ SOVEREIGN ASSET RESOLVER
347
- * Centralized logic to distinguish between routes and static assets.
348
- * Moved to Core to allow Standard Blocks to resolve assets consistently.
349
- */
350
- export declare const resolveAssetUrl: (path: string, tenantId?: string) => string;
351
-
352
- declare type Schemas = JsonPagesConfig['schemas'];
353
-
354
- /** Computed union of all registered section types. */
355
- export declare type Section = keyof SectionDataRegistry extends never ? FallbackSection : {
356
- [K in keyof SectionDataRegistry]: BaseSection<K>;
357
- }[keyof SectionDataRegistry];
358
-
359
- export declare interface SectionDataRegistry {
360
- }
361
-
362
- export declare const SectionRenderer: default_2.FC<SectionRendererProps>;
363
-
364
- declare interface SectionRendererProps {
365
- section: Section;
366
- menu?: MenuItem[];
367
- selectedId?: string | null;
368
- /** When true, show reorder (up/down) in overlay for local sections. */
369
- reorderable?: boolean;
370
- /** Section index in page (for reorder). Required when reorderable. */
371
- sectionIndex?: number;
372
- /** Total number of page sections (for disabling down at last). */
373
- totalSections?: number;
374
- /** Called when user triggers move up/down. newIndex is the target index for the engine. */
375
- onReorder?: (sectionId: string, newIndex: number) => void;
376
- }
377
-
378
- export declare interface SectionSettingsRegistry {
379
- }
380
-
381
- export declare type SectionType = keyof SectionDataRegistry extends never ? string : keyof SectionDataRegistry;
382
-
383
- declare interface SelectedSectionInfo {
384
- id: string;
385
- type: string;
386
- scope: string;
387
- }
388
-
389
- /** v1.3 strict Studio path for field/item focus synchronization. */
390
- export declare type SelectionPath = SelectionPathSegment[];
391
-
392
- /** v1.3 strict Studio path segment (root -> leaf). */
393
- export declare interface SelectionPathSegment {
394
- fieldKey: string;
395
- itemId?: string;
396
- }
397
-
398
- export declare interface SiteConfig {
399
- identity: SiteIdentity;
400
- header?: Section;
401
- footer?: Section;
402
- pages: SitePageEntry[];
403
- }
404
-
405
- export declare interface SiteIdentity {
406
- title: string;
407
- logoUrl?: string;
408
- }
409
-
410
- export declare interface SitePageEntry {
411
- slug: string;
412
- label: string;
413
- }
414
-
415
- /**
416
- * 📡 STUDIO EVENT PROTOCOL
417
- * Single Source of Truth for cross-frame communication.
418
- */
419
- export declare const STUDIO_EVENTS: {
420
- readonly UPDATE_DRAFTS: "jsonpages:update-drafts";
421
- readonly SYNC_SELECTION: "jsonpages:sync-selection";
422
- readonly REQUEST_CLEAN_HTML: "jsonpages:request-clean-html";
423
- readonly SEND_CLEAN_HTML: "jsonpages:send-clean-html";
424
- readonly SECTION_SELECT: "jsonpages:section-select";
425
- readonly INLINE_FIELD_UPDATE: "jsonpages:inline-field-update";
426
- readonly INLINE_FLUSHED: "jsonpages:inline-flushed";
427
- readonly REQUEST_SCROLL_TO_SECTION: "jsonpages:request-scroll-to-section";
428
- readonly REQUEST_INLINE_FLUSH: "jsonpages:request-inline-flush";
429
- readonly ACTIVE_SECTION_CHANGED: "jsonpages:active-section-changed";
430
- readonly STAGE_READY: "jsonpages:stage-ready";
431
- };
432
-
433
- declare interface StudioContextType {
434
- mode: StudioMode;
435
- }
436
-
437
- declare type StudioMode = 'visitor' | 'studio';
438
-
439
- export declare const StudioProvider: default_2.FC<{
440
- mode: StudioMode;
441
- children: ReactNode;
442
- }>;
443
-
444
- /**
445
- * 📺 STUDIO STAGE (Full Preview Mode)
446
- * Manages the Iframe and the PostMessage protocol.
447
- * NOW INCLUDES: Handshake Listener to fix the "Waiting..." race condition.
448
- */
449
- export declare const StudioStage: default_2.FC<StudioStageProps>;
450
-
451
- declare interface StudioStageProps {
452
- draft: PageConfig;
453
- globalDraft: SiteConfig;
454
- themeConfig: ThemeConfig;
455
- slug: string;
456
- selectedId?: string | null;
457
- scrollToSectionId?: string | null;
458
- onScrollRequested?: () => void;
459
- }
460
-
461
- export declare interface ThemeBorderRadius {
462
- sm: string;
463
- md: string;
464
- lg: string;
465
- }
466
-
467
- export declare interface ThemeColors {
468
- primary: string;
469
- secondary: string;
470
- accent: string;
471
- background: string;
472
- surface: string;
473
- surfaceAlt: string;
474
- text: string;
475
- textMuted: string;
476
- border: string;
477
- }
478
-
479
- export declare interface ThemeConfig {
480
- name: string;
481
- tokens: ThemeTokens;
482
- }
483
-
484
- /** Theme CSS: tenant (required), admin (optional). */
485
- export declare interface ThemeCssConfig {
486
- tenant: string;
487
- admin?: string;
488
- }
489
-
490
- /**
491
- * Theme Loader: injects the required CSS into the <head> and removes it on unmount.
492
- * CSS strings are passed as props so the Engine controls injection; Tenant does not manage Admin CSS.
493
- */
494
- export declare const ThemeLoader: default_2.FC<ThemeLoaderProps>;
495
-
496
- declare interface ThemeLoaderProps {
497
- /** Which mode is active; determines which CSS is injected. */
498
- mode: 'tenant' | 'admin';
499
- /** CSS string for tenant (visitor) mode. */
500
- tenantCss: string;
501
- /** CSS string for admin (studio) mode. Engine provides default if not passed. */
502
- adminCss: string;
503
- children: default_2.ReactNode;
504
- }
505
-
506
- export declare const themeManager: {
507
- setTheme: (theme: ThemeConfig) => void;
508
- };
509
-
510
- export declare interface ThemeTokens {
511
- colors: ThemeColors;
512
- typography: ThemeTypography;
513
- borderRadius: ThemeBorderRadius;
514
- }
515
-
516
- export declare interface ThemeTypography {
517
- fontFamily: {
518
- primary: string;
519
- mono: string;
520
- display?: string;
521
- };
522
- }
523
-
524
- export declare function useConfig(): ConfigContextValue;
525
-
526
- export declare const useStudio: () => StudioContextType;
527
-
528
- export declare type WidgetType = keyof typeof InputWidgets;
529
-
530
- export { }