@jsonpages/core 1.0.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.
- package/dist/index.d.ts +455 -0
- package/dist/jsonpages-core.js +8056 -0
- package/dist/jsonpages-core.umd.cjs +173 -0
- package/package.json +45 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,455 @@
|
|
|
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
|
+
/** Trigger Export JSON (same as ControlBar). */
|
|
62
|
+
onExportJSON?: () => void;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* 🍞 BAKED STATE (Optimized subset for the static HTML artifact)
|
|
67
|
+
*/
|
|
68
|
+
export declare interface BakedState {
|
|
69
|
+
page: PageConfig;
|
|
70
|
+
site: Omit<SiteConfig, 'pages'>;
|
|
71
|
+
menu: MenuConfig;
|
|
72
|
+
theme: ThemeConfig;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export declare interface BaseSection<K extends keyof SectionDataRegistry> {
|
|
76
|
+
id: string;
|
|
77
|
+
type: K;
|
|
78
|
+
data: SectionDataRegistry[K];
|
|
79
|
+
settings?: K extends keyof SectionSettingsRegistry ? SectionSettingsRegistry[K] : BaseSectionSettings;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* 🛡️ KERNEL: The Base Contract (MTRP)
|
|
84
|
+
* Core is self-contained; structural types live here.
|
|
85
|
+
*/
|
|
86
|
+
export declare interface BaseSectionSettings {
|
|
87
|
+
[key: string]: unknown;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Shared types between Admin Engine and Input Registry.
|
|
92
|
+
*/
|
|
93
|
+
export declare interface BaseWidgetProps<T = unknown> {
|
|
94
|
+
label: string;
|
|
95
|
+
value: T;
|
|
96
|
+
onChange: (val: T) => void;
|
|
97
|
+
options?: string[];
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export declare function cn(...inputs: ClassValue[]): string;
|
|
101
|
+
|
|
102
|
+
export declare interface ConfigContextValue {
|
|
103
|
+
registry: Registry;
|
|
104
|
+
schemas: Schemas;
|
|
105
|
+
/** For asset resolution (e.g. image picker preview). */
|
|
106
|
+
tenantId?: string;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export declare const ConfigProvider: default_2.FC<{
|
|
110
|
+
config: Pick<JsonPagesConfig, 'registry' | 'schemas' | 'tenantId'>;
|
|
111
|
+
children: default_2.ReactNode;
|
|
112
|
+
}>;
|
|
113
|
+
|
|
114
|
+
export declare const ControlBar: default_2.FC<ControlBarProps>;
|
|
115
|
+
|
|
116
|
+
declare interface ControlBarProps {
|
|
117
|
+
hasChanges: boolean;
|
|
118
|
+
onExportJSON: () => void;
|
|
119
|
+
onExportHTML: () => void;
|
|
120
|
+
/** Optional: opens the Add section library. When provided, an "Add section" icon is shown. */
|
|
121
|
+
onAddSection?: () => void;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
export declare const DefaultNotFound: default_2.FC;
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* 🍞 BAKE HTML (The Single File Artifact)
|
|
128
|
+
*/
|
|
129
|
+
export declare const exportBakedHTML: (state: ProjectState, slug: string, cleanHtml: string) => void;
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* 💾 EXPORT JSON (The Developer Handover)
|
|
133
|
+
*/
|
|
134
|
+
export declare const exportProjectJSON: (state: ProjectState, slug: string) => Promise<void>;
|
|
135
|
+
|
|
136
|
+
/** Structural shape used when no tenant has augmented the registries. */
|
|
137
|
+
export declare interface FallbackSection {
|
|
138
|
+
id: string;
|
|
139
|
+
type: string;
|
|
140
|
+
data: Record<string, unknown>;
|
|
141
|
+
settings?: Record<string, unknown>;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
export declare const FormFactory: default_2.FC<FormFactoryProps>;
|
|
145
|
+
|
|
146
|
+
declare interface FormFactoryProps {
|
|
147
|
+
schema: z.ZodObject<z.ZodRawShape>;
|
|
148
|
+
data: Record<string, unknown>;
|
|
149
|
+
onChange: (newData: Record<string, unknown>) => void;
|
|
150
|
+
/** When set, only render fields whose key is in this array (e.g. Content vs Settings tabs). */
|
|
151
|
+
keys?: string[] | null;
|
|
152
|
+
/** Root-to-leaf path for deep focus (e.g. silos -> blocks). First segment applies to this level. */
|
|
153
|
+
expandedItemPath?: Array<{
|
|
154
|
+
fieldKey: string;
|
|
155
|
+
itemId?: string;
|
|
156
|
+
}> | null;
|
|
157
|
+
/** When user selects an item on the Stage, expand that array item (fieldKey -> itemId). */
|
|
158
|
+
expandedItemIdByField?: Record<string, string>;
|
|
159
|
+
/** When user clicks a field on the Stage, show it at top / scroll to it (simple field key). */
|
|
160
|
+
focusedFieldKey?: string | null;
|
|
161
|
+
/** Called when user expands/collapses an array item in the sidebar (so parent can drive fade). */
|
|
162
|
+
onSidebarExpandedItemChange?: (item: {
|
|
163
|
+
fieldKey: string;
|
|
164
|
+
itemId?: string;
|
|
165
|
+
} | null) => void;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
export declare const InputWidgets: {
|
|
169
|
+
readonly 'ui:text': ({ label, value, onChange }: BaseWidgetProps<string>) => JSX.Element;
|
|
170
|
+
readonly 'ui:textarea': ({ label, value, onChange }: BaseWidgetProps<string>) => JSX.Element;
|
|
171
|
+
readonly 'ui:select': ({ label, value, onChange, options }: BaseWidgetProps<string>) => JSX.Element;
|
|
172
|
+
readonly 'ui:checkbox': ({ label, value, onChange }: BaseWidgetProps<boolean>) => JSX.Element;
|
|
173
|
+
readonly 'ui:image-picker': ({ label, value, onChange }: BaseWidgetProps<string>) => JSX.Element;
|
|
174
|
+
readonly 'ui:icon-picker': ({ label, value, onChange }: BaseWidgetProps<string>) => JSX.Element;
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
/** Single entry point configuration for the JsonPages Engine. */
|
|
178
|
+
export declare interface JsonPagesConfig {
|
|
179
|
+
/** Unique identifier for the tenant (used for asset resolution) */
|
|
180
|
+
tenantId: string;
|
|
181
|
+
/** Component map: section type -> React component. */
|
|
182
|
+
registry: Record<string, default_2.ComponentType<unknown>>;
|
|
183
|
+
/** Zod schemas map: section type -> schema. */
|
|
184
|
+
schemas: Record<string, {
|
|
185
|
+
parse: (v: unknown) => unknown;
|
|
186
|
+
shape?: Record<string, unknown>;
|
|
187
|
+
}>;
|
|
188
|
+
/** Page slug -> page config. */
|
|
189
|
+
pages: Record<string, PageConfig>;
|
|
190
|
+
siteConfig: SiteConfig;
|
|
191
|
+
themeConfig: ThemeConfig;
|
|
192
|
+
menuConfig: MenuConfig;
|
|
193
|
+
/** Optional persistence; Core provides defaults if omitted. */
|
|
194
|
+
persistence?: Partial<PersistenceConfig>;
|
|
195
|
+
/** CSS strings for ThemeLoader. */
|
|
196
|
+
themeCss: ThemeCssConfig;
|
|
197
|
+
/** Optional 404 component. */
|
|
198
|
+
NotFoundComponent?: default_2.ComponentType;
|
|
199
|
+
/** Optional "Add section" library config (labels, addable types, default data). */
|
|
200
|
+
addSection?: AddSectionConfig;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
export declare function JsonPagesEngine({ config }: JsonPagesEngineProps): JSX.Element;
|
|
204
|
+
|
|
205
|
+
declare interface JsonPagesEngineProps {
|
|
206
|
+
config: JsonPagesConfig;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
export declare interface LayerItem {
|
|
210
|
+
id: string;
|
|
211
|
+
type: string;
|
|
212
|
+
scope: string;
|
|
213
|
+
title?: string;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
export declare interface MenuConfig {
|
|
217
|
+
main: MenuItem[];
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
export declare interface MenuItem {
|
|
221
|
+
label: string;
|
|
222
|
+
href: string;
|
|
223
|
+
icon?: string;
|
|
224
|
+
external?: boolean;
|
|
225
|
+
isCta?: boolean;
|
|
226
|
+
children?: MenuItem[];
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/** Used by the section-settings modal to update a section without changing Inspector selection. */
|
|
230
|
+
export declare type OnUpdateSection = (sectionId: string, scope: 'global' | 'local', sectionType: string, newData: Record<string, unknown>) => void;
|
|
231
|
+
|
|
232
|
+
export declare interface PageConfig {
|
|
233
|
+
id: string;
|
|
234
|
+
slug: string;
|
|
235
|
+
meta: PageMeta;
|
|
236
|
+
sections: Section[];
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
export declare interface PageMeta {
|
|
240
|
+
title: string;
|
|
241
|
+
description: string;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
export declare const PageRenderer: default_2.FC<Props>;
|
|
245
|
+
|
|
246
|
+
export declare interface PageRendererProps {
|
|
247
|
+
pageConfig: PageConfig;
|
|
248
|
+
siteConfig: SiteConfig;
|
|
249
|
+
menuConfig: MenuConfig;
|
|
250
|
+
selectedId?: string | null;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
/** Persistence API; defaults provided by Core, overridable by Tenant. */
|
|
254
|
+
export declare interface PersistenceConfig {
|
|
255
|
+
exportJSON: (state: ProjectState, slug: string) => Promise<void>;
|
|
256
|
+
exportHTML: (state: ProjectState, slug: string, cleanHtml: string) => void;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
export declare const PreviewEntry: default_2.FC;
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* 📦 PROJECT STATE (The Universal Data Bundle)
|
|
263
|
+
* Moved to Kernel to serve as SSOT for Engine and Persistence.
|
|
264
|
+
*/
|
|
265
|
+
export declare interface ProjectState {
|
|
266
|
+
page: PageConfig;
|
|
267
|
+
site: SiteConfig;
|
|
268
|
+
menu: MenuConfig;
|
|
269
|
+
theme: ThemeConfig;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
declare type Props = PageRendererProps & {
|
|
273
|
+
onReorder?: (sectionId: string, newIndex: number) => void;
|
|
274
|
+
/** When set, scroll this section into view (Studio full-page). */
|
|
275
|
+
scrollToSectionId?: string | null;
|
|
276
|
+
/** Report which section is most visible in viewport (Intersection Observer). */
|
|
277
|
+
onActiveSectionChange?: (sectionId: string | null) => void;
|
|
278
|
+
};
|
|
279
|
+
|
|
280
|
+
declare type Registry = JsonPagesConfig['registry'];
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* 🛡️ SOVEREIGN ASSET RESOLVER
|
|
284
|
+
* Centralized logic to distinguish between routes and static assets.
|
|
285
|
+
* Moved to Core to allow Standard Blocks to resolve assets consistently.
|
|
286
|
+
*/
|
|
287
|
+
export declare const resolveAssetUrl: (path: string, tenantId?: string) => string;
|
|
288
|
+
|
|
289
|
+
declare type Schemas = JsonPagesConfig['schemas'];
|
|
290
|
+
|
|
291
|
+
/** Computed union of all registered section types. */
|
|
292
|
+
export declare type Section = keyof SectionDataRegistry extends never ? FallbackSection : {
|
|
293
|
+
[K in keyof SectionDataRegistry]: BaseSection<K>;
|
|
294
|
+
}[keyof SectionDataRegistry];
|
|
295
|
+
|
|
296
|
+
export declare interface SectionDataRegistry {
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
export declare const SectionRenderer: default_2.FC<SectionRendererProps>;
|
|
300
|
+
|
|
301
|
+
declare interface SectionRendererProps {
|
|
302
|
+
section: Section;
|
|
303
|
+
menu?: MenuItem[];
|
|
304
|
+
selectedId?: string | null;
|
|
305
|
+
/** When true, show reorder (up/down) in overlay for local sections. */
|
|
306
|
+
reorderable?: boolean;
|
|
307
|
+
/** Section index in page (for reorder). Required when reorderable. */
|
|
308
|
+
sectionIndex?: number;
|
|
309
|
+
/** Total number of page sections (for disabling down at last). */
|
|
310
|
+
totalSections?: number;
|
|
311
|
+
/** Called when user triggers move up/down. newIndex is the target index for the engine. */
|
|
312
|
+
onReorder?: (sectionId: string, newIndex: number) => void;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
export declare interface SectionSettingsRegistry {
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
export declare type SectionType = keyof SectionDataRegistry extends never ? string : keyof SectionDataRegistry;
|
|
319
|
+
|
|
320
|
+
declare interface SelectedSectionInfo {
|
|
321
|
+
id: string;
|
|
322
|
+
type: string;
|
|
323
|
+
scope: string;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
export declare interface SiteConfig {
|
|
327
|
+
identity: SiteIdentity;
|
|
328
|
+
header?: Section;
|
|
329
|
+
footer?: Section;
|
|
330
|
+
pages: SitePageEntry[];
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
export declare interface SiteIdentity {
|
|
334
|
+
title: string;
|
|
335
|
+
logoUrl?: string;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
export declare interface SitePageEntry {
|
|
339
|
+
slug: string;
|
|
340
|
+
label: string;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
/**
|
|
344
|
+
* 📡 STUDIO EVENT PROTOCOL
|
|
345
|
+
* Single Source of Truth for cross-frame communication.
|
|
346
|
+
*/
|
|
347
|
+
export declare const STUDIO_EVENTS: {
|
|
348
|
+
readonly UPDATE_DRAFTS: "jsonpages:update-drafts";
|
|
349
|
+
readonly SYNC_SELECTION: "jsonpages:sync-selection";
|
|
350
|
+
readonly REQUEST_CLEAN_HTML: "jsonpages:request-clean-html";
|
|
351
|
+
readonly SEND_CLEAN_HTML: "jsonpages:send-clean-html";
|
|
352
|
+
readonly SECTION_SELECT: "jsonpages:section-select";
|
|
353
|
+
readonly REQUEST_SCROLL_TO_SECTION: "jsonpages:request-scroll-to-section";
|
|
354
|
+
readonly ACTIVE_SECTION_CHANGED: "jsonpages:active-section-changed";
|
|
355
|
+
readonly STAGE_READY: "jsonpages:stage-ready";
|
|
356
|
+
};
|
|
357
|
+
|
|
358
|
+
declare interface StudioContextType {
|
|
359
|
+
mode: StudioMode;
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
declare type StudioMode = 'visitor' | 'studio';
|
|
363
|
+
|
|
364
|
+
export declare const StudioProvider: default_2.FC<{
|
|
365
|
+
mode: StudioMode;
|
|
366
|
+
children: ReactNode;
|
|
367
|
+
}>;
|
|
368
|
+
|
|
369
|
+
/**
|
|
370
|
+
* 📺 STUDIO STAGE (Full Preview Mode)
|
|
371
|
+
* Manages the Iframe and the PostMessage protocol.
|
|
372
|
+
* NOW INCLUDES: Handshake Listener to fix the "Waiting..." race condition.
|
|
373
|
+
*/
|
|
374
|
+
export declare const StudioStage: default_2.FC<StudioStageProps>;
|
|
375
|
+
|
|
376
|
+
declare interface StudioStageProps {
|
|
377
|
+
draft: PageConfig;
|
|
378
|
+
globalDraft: SiteConfig;
|
|
379
|
+
themeConfig: ThemeConfig;
|
|
380
|
+
slug: string;
|
|
381
|
+
selectedId?: string | null;
|
|
382
|
+
scrollToSectionId?: string | null;
|
|
383
|
+
onScrollRequested?: () => void;
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
export declare interface ThemeBorderRadius {
|
|
387
|
+
sm: string;
|
|
388
|
+
md: string;
|
|
389
|
+
lg: string;
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
export declare interface ThemeColors {
|
|
393
|
+
primary: string;
|
|
394
|
+
secondary: string;
|
|
395
|
+
accent: string;
|
|
396
|
+
background: string;
|
|
397
|
+
surface: string;
|
|
398
|
+
surfaceAlt: string;
|
|
399
|
+
text: string;
|
|
400
|
+
textMuted: string;
|
|
401
|
+
border: string;
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
export declare interface ThemeConfig {
|
|
405
|
+
name: string;
|
|
406
|
+
tokens: ThemeTokens;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
/** Theme CSS: tenant (required), admin (optional). */
|
|
410
|
+
export declare interface ThemeCssConfig {
|
|
411
|
+
tenant: string;
|
|
412
|
+
admin?: string;
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
/**
|
|
416
|
+
* Theme Loader: injects the required CSS into the <head> and removes it on unmount.
|
|
417
|
+
* CSS strings are passed as props so the Engine controls injection; Tenant does not manage Admin CSS.
|
|
418
|
+
*/
|
|
419
|
+
export declare const ThemeLoader: default_2.FC<ThemeLoaderProps>;
|
|
420
|
+
|
|
421
|
+
declare interface ThemeLoaderProps {
|
|
422
|
+
/** Which mode is active; determines which CSS is injected. */
|
|
423
|
+
mode: 'tenant' | 'admin';
|
|
424
|
+
/** CSS string for tenant (visitor) mode. */
|
|
425
|
+
tenantCss: string;
|
|
426
|
+
/** CSS string for admin (studio) mode. Engine provides default if not passed. */
|
|
427
|
+
adminCss: string;
|
|
428
|
+
children: default_2.ReactNode;
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
export declare const themeManager: {
|
|
432
|
+
setTheme: (theme: ThemeConfig) => void;
|
|
433
|
+
};
|
|
434
|
+
|
|
435
|
+
export declare interface ThemeTokens {
|
|
436
|
+
colors: ThemeColors;
|
|
437
|
+
typography: ThemeTypography;
|
|
438
|
+
borderRadius: ThemeBorderRadius;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
export declare interface ThemeTypography {
|
|
442
|
+
fontFamily: {
|
|
443
|
+
primary: string;
|
|
444
|
+
mono: string;
|
|
445
|
+
display?: string;
|
|
446
|
+
};
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
export declare function useConfig(): ConfigContextValue;
|
|
450
|
+
|
|
451
|
+
export declare const useStudio: () => StudioContextType;
|
|
452
|
+
|
|
453
|
+
export declare type WidgetType = keyof typeof InputWidgets;
|
|
454
|
+
|
|
455
|
+
export { }
|