flarecms 0.2.2 → 0.2.4
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/api/lib/cache.d.ts +18 -0
- package/dist/api/lib/response.d.ts +44 -0
- package/dist/api/middlewares/auth.d.ts +10 -0
- package/dist/api/middlewares/cors.d.ts +1 -0
- package/dist/api/middlewares/rbac.d.ts +21 -0
- package/dist/api/routes/auth.d.ts +6 -0
- package/dist/api/routes/collections.d.ts +6 -0
- package/dist/api/routes/content.d.ts +6 -0
- package/dist/api/routes/device.d.ts +6 -0
- package/dist/api/routes/magic.d.ts +6 -0
- package/dist/api/routes/mcp.d.ts +6 -0
- package/dist/api/routes/oauth.d.ts +6 -0
- package/dist/api/routes/plugins.d.ts +6 -0
- package/dist/api/routes/settings.d.ts +6 -0
- package/dist/api/routes/setup.d.ts +6 -0
- package/dist/api/routes/tokens.d.ts +6 -0
- package/dist/api/schemas/auth.d.ts +12 -0
- package/dist/api/schemas/index.d.ts +43 -0
- package/dist/api/schemas/tokens.d.ts +20 -0
- package/dist/auth/index.d.ts +11 -0
- package/dist/cli/commands.d.ts +3 -0
- package/dist/cli/commands.js +19 -2
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +19 -2
- package/dist/cli/mcp.d.ts +9 -0
- package/dist/cli/tests/cli.test.d.ts +1 -0
- package/dist/cli/tests/create-plugin-template.test.d.ts +1 -0
- package/dist/cli/tests/create.test.d.ts +1 -0
- package/dist/cli/tests/plugin.test.d.ts +1 -0
- package/dist/cli/tests/publish.test.d.ts +1 -0
- package/dist/client/FlareAdminRouter.d.ts +20 -0
- package/dist/client/app.d.ts +1 -0
- package/dist/client/components/app-sidebar.d.ts +5 -0
- package/dist/client/components/blocks/block-card.d.ts +7 -0
- package/dist/client/components/blocks/block-form.d.ts +7 -0
- package/dist/client/components/blocks/block-renderer.d.ts +10 -0
- package/dist/client/components/blocks/block-table.d.ts +7 -0
- package/dist/client/components/collection-modal.d.ts +6 -0
- package/dist/client/components/content-list.d.ts +3 -0
- package/dist/client/components/dynamic-form.d.ts +9 -0
- package/dist/client/components/field-modal.d.ts +8 -0
- package/dist/client/components/plugin-widget.d.ts +6 -0
- package/dist/client/components/settings/api-token-section.d.ts +1 -0
- package/dist/client/components/settings/general-section.d.ts +1 -0
- package/dist/client/components/settings/security-section.d.ts +1 -0
- package/dist/client/components/settings/seo-section.d.ts +1 -0
- package/dist/client/components/settings/signup-section.d.ts +1 -0
- package/dist/client/components/ui/accordion.d.ts +6 -0
- package/dist/client/components/ui/avatar.d.ts +11 -0
- package/dist/client/components/ui/badge.d.ts +7 -0
- package/dist/client/components/ui/button.d.ts +11 -0
- package/dist/client/components/ui/card.d.ts +11 -0
- package/dist/client/components/ui/checkbox.d.ts +3 -0
- package/dist/client/components/ui/collapsible.d.ts +5 -0
- package/dist/client/components/ui/dialog.d.ts +17 -0
- package/dist/client/components/ui/icon-picker.d.ts +27 -0
- package/dist/client/components/ui/icons-data.d.ts +5 -0
- package/dist/client/components/ui/input.d.ts +3 -0
- package/dist/client/components/ui/label.d.ts +3 -0
- package/dist/client/components/ui/popover.d.ts +10 -0
- package/dist/client/components/ui/select.d.ts +15 -0
- package/dist/client/components/ui/separator.d.ts +3 -0
- package/dist/client/components/ui/sheet.d.ts +14 -0
- package/dist/client/components/ui/sidebar.d.ts +63 -0
- package/dist/client/components/ui/skeleton.d.ts +2 -0
- package/dist/client/components/ui/sonner.d.ts +3 -0
- package/dist/client/components/ui/switch.d.ts +5 -0
- package/dist/client/components/ui/table.d.ts +10 -0
- package/dist/client/components/ui/tabs.d.ts +10 -0
- package/dist/client/components/ui/textarea.d.ts +3 -0
- package/dist/client/components/ui/tooltip.d.ts +6 -0
- package/dist/client/hooks/use-mobile.d.ts +1 -0
- package/dist/client/index.d.ts +8 -0
- package/dist/client/layouts/admin-layout.d.ts +6 -0
- package/dist/client/layouts/settings-layout.d.ts +6 -0
- package/dist/client/lib/api.d.ts +18 -0
- package/dist/client/lib/block-registry.d.ts +24 -0
- package/dist/client/lib/block-types.d.ts +132 -0
- package/dist/client/lib/utils.d.ts +2 -0
- package/dist/client/main.d.ts +1 -0
- package/dist/client/pages/collection-detail.d.ts +7 -0
- package/dist/client/pages/collections.d.ts +1 -0
- package/dist/client/pages/dashboard.d.ts +1 -0
- package/dist/client/pages/device.d.ts +1 -0
- package/dist/client/pages/document-detail-page.d.ts +1 -0
- package/dist/client/pages/documents-page.d.ts +1 -0
- package/dist/client/pages/login.d.ts +1 -0
- package/dist/client/pages/plugin-manager.d.ts +1 -0
- package/dist/client/pages/plugin-page.d.ts +6 -0
- package/dist/client/pages/settings.d.ts +1 -0
- package/dist/client/pages/setup.d.ts +1 -0
- package/dist/client/pages/signup.d.ts +1 -0
- package/dist/client/store/auth.d.ts +10 -0
- package/dist/client/store/collections.d.ts +3 -0
- package/dist/client/store/config.d.ts +4 -0
- package/dist/client/store/fetcher.d.ts +4 -0
- package/dist/client/store/plugins.d.ts +21 -0
- package/dist/client/store/router.d.ts +84 -0
- package/dist/client/store/schema.d.ts +7 -0
- package/dist/client/store/settings.d.ts +7 -0
- package/dist/client/types.d.ts +31 -0
- package/dist/db/dynamic.d.ts +5 -0
- package/dist/db/index.d.ts +8 -0
- package/dist/db/migrations/001_initial_schema.d.ts +3 -0
- package/dist/db/migrations/002_auth_tables.d.ts +3 -0
- package/dist/db/migrations/003_plugins.d.ts +3 -0
- package/dist/db/migrator.d.ts +10 -0
- package/dist/db/schema.d.ts +151 -0
- package/dist/index.d.ts +11 -0
- package/dist/plugins/adapt-entry.d.ts +5 -0
- package/dist/plugins/context.d.ts +21 -0
- package/dist/plugins/define-plugin.d.ts +22 -0
- package/dist/plugins/hooks.d.ts +37 -0
- package/dist/plugins/index.d.ts +7 -0
- package/dist/plugins/manager.d.ts +41 -0
- package/dist/plugins/middleware.d.ts +8 -0
- package/dist/plugins/noop-sandbox.d.ts +18 -0
- package/dist/plugins/routes.d.ts +32 -0
- package/dist/plugins/sandbox/bridge.d.ts +45 -0
- package/dist/plugins/sandbox/runner.d.ts +14 -0
- package/dist/plugins/sandbox/types.d.ts +71 -0
- package/dist/plugins/sandbox/wrapper.d.ts +6 -0
- package/dist/plugins/types.d.ts +725 -0
- package/dist/server/index.d.ts +18 -0
- package/dist/types.d.ts +19 -0
- package/package.json +1 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { KVNamespace } from "@cloudflare/workers-types";
|
|
2
|
+
export interface SchemaCache {
|
|
3
|
+
id: string;
|
|
4
|
+
slug: string;
|
|
5
|
+
label: string;
|
|
6
|
+
is_public: number;
|
|
7
|
+
features: string[];
|
|
8
|
+
url_pattern: string | null;
|
|
9
|
+
fields: any[];
|
|
10
|
+
}
|
|
11
|
+
export declare const cache: {
|
|
12
|
+
getSchema(kv: KVNamespace, slug: string): Promise<SchemaCache | null>;
|
|
13
|
+
setSchema(kv: KVNamespace, slug: string, schema: SchemaCache): Promise<void>;
|
|
14
|
+
invalidateSchema(kv: KVNamespace, slug: string): Promise<void>;
|
|
15
|
+
getCollectionList(kv: KVNamespace): Promise<any[] | null>;
|
|
16
|
+
setCollectionList(kv: KVNamespace, collections: any[]): Promise<void>;
|
|
17
|
+
invalidateCollectionList(kv: KVNamespace): Promise<void>;
|
|
18
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Context } from 'hono';
|
|
2
|
+
export interface PaginationMeta {
|
|
3
|
+
page: number;
|
|
4
|
+
limit: number;
|
|
5
|
+
total: number;
|
|
6
|
+
totalPages: number;
|
|
7
|
+
hasNextPage: boolean;
|
|
8
|
+
hasPrevPage: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare const apiResponse: {
|
|
11
|
+
/**
|
|
12
|
+
* Send a successful response with data and optional metadata
|
|
13
|
+
*/
|
|
14
|
+
ok: (c: Context, data: any, meta?: any, status?: number) => Response & import("hono").TypedResponse<{
|
|
15
|
+
data: any;
|
|
16
|
+
meta: any;
|
|
17
|
+
}, any, "json">;
|
|
18
|
+
/**
|
|
19
|
+
* Send a paginated response
|
|
20
|
+
*/
|
|
21
|
+
paginated: (c: Context, data: any[], meta: PaginationMeta, status?: number) => Response & import("hono").TypedResponse<{
|
|
22
|
+
data: any[];
|
|
23
|
+
meta: {
|
|
24
|
+
page: number;
|
|
25
|
+
limit: number;
|
|
26
|
+
total: number;
|
|
27
|
+
totalPages: number;
|
|
28
|
+
hasNextPage: boolean;
|
|
29
|
+
hasPrevPage: boolean;
|
|
30
|
+
};
|
|
31
|
+
}, any, "json">;
|
|
32
|
+
/**
|
|
33
|
+
* Send an error response
|
|
34
|
+
*/
|
|
35
|
+
error: (c: Context, message: string | any, status?: number) => Response & import("hono").TypedResponse<{
|
|
36
|
+
error: any;
|
|
37
|
+
}, any, "json">;
|
|
38
|
+
/**
|
|
39
|
+
* Specialized success response for creations
|
|
40
|
+
*/
|
|
41
|
+
created: (c: Context, data: any) => Response & import("hono").TypedResponse<{
|
|
42
|
+
data: any;
|
|
43
|
+
}, 201, "json">;
|
|
44
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Context, Next } from 'hono';
|
|
2
|
+
export declare const authMiddleware: (c: Context, next: Next) => Promise<void | (Response & import("hono").TypedResponse<{
|
|
3
|
+
error: string;
|
|
4
|
+
}, 401, "json">) | (Response & import("hono").TypedResponse<{
|
|
5
|
+
error: string;
|
|
6
|
+
}, 403, "json">)>;
|
|
7
|
+
export declare const setupMiddleware: (c: Context, next: Next) => Promise<void | (Response & import("hono").TypedResponse<{
|
|
8
|
+
error: string;
|
|
9
|
+
code: string;
|
|
10
|
+
}, 403, "json">)>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const corsMiddleware: import("hono").MiddlewareHandler;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Context, Next } from 'hono';
|
|
2
|
+
/**
|
|
3
|
+
* Ensures the authenticated user has one of the allowed roles.
|
|
4
|
+
* Must be used AFTER authMiddleware.
|
|
5
|
+
*/
|
|
6
|
+
export declare const requireRole: (allowedRoles: string[]) => (c: Context, next: Next) => Promise<void | (Response & import("hono").TypedResponse<{
|
|
7
|
+
error: string;
|
|
8
|
+
}, 401, "json">) | (Response & import("hono").TypedResponse<{
|
|
9
|
+
error: string;
|
|
10
|
+
requiredRoles: string[];
|
|
11
|
+
}, 403, "json">)>;
|
|
12
|
+
export declare const requireScope: (action: string, resourceOrParamName?: string) => (c: Context, next: Next) => Promise<void | (Response & import("hono").TypedResponse<{
|
|
13
|
+
error: string;
|
|
14
|
+
code: string;
|
|
15
|
+
}, 401, "json">) | (Response & import("hono").TypedResponse<{
|
|
16
|
+
error: string;
|
|
17
|
+
required: {
|
|
18
|
+
action: string;
|
|
19
|
+
resource: string | undefined;
|
|
20
|
+
};
|
|
21
|
+
}, 403, "json">)>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const magicLinkRequestSchema: z.ZodObject<{
|
|
3
|
+
email: z.ZodString;
|
|
4
|
+
}, z.core.$strip>;
|
|
5
|
+
export declare const magicLinkVerifySchema: z.ZodObject<{
|
|
6
|
+
email: z.ZodString;
|
|
7
|
+
token: z.ZodString;
|
|
8
|
+
}, z.core.$strip>;
|
|
9
|
+
export declare const oauthCallbackSchema: z.ZodObject<{
|
|
10
|
+
code: z.ZodString;
|
|
11
|
+
state: z.ZodOptional<z.ZodString>;
|
|
12
|
+
}, z.core.$strip>;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const loginSchema: z.ZodObject<{
|
|
3
|
+
email: z.ZodEmail;
|
|
4
|
+
password: z.ZodString;
|
|
5
|
+
}, z.core.$strip>;
|
|
6
|
+
export declare const signupSchema: z.ZodObject<{
|
|
7
|
+
email: z.ZodEmail;
|
|
8
|
+
password: z.ZodString;
|
|
9
|
+
}, z.core.$strip>;
|
|
10
|
+
export declare const collectionSchema: z.ZodObject<{
|
|
11
|
+
slug: z.ZodString;
|
|
12
|
+
label: z.ZodString;
|
|
13
|
+
labelSingular: z.ZodOptional<z.ZodString>;
|
|
14
|
+
description: z.ZodOptional<z.ZodString>;
|
|
15
|
+
icon: z.ZodOptional<z.ZodString>;
|
|
16
|
+
isPublic: z.ZodOptional<z.ZodBoolean>;
|
|
17
|
+
features: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
18
|
+
urlPattern: z.ZodOptional<z.ZodString>;
|
|
19
|
+
}, z.core.$strip>;
|
|
20
|
+
export declare const fieldSchema: z.ZodObject<{
|
|
21
|
+
slug: z.ZodString;
|
|
22
|
+
label: z.ZodString;
|
|
23
|
+
type: z.ZodString;
|
|
24
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
25
|
+
}, z.core.$strip>;
|
|
26
|
+
export declare const setupSchema: z.ZodObject<{
|
|
27
|
+
title: z.ZodString;
|
|
28
|
+
email: z.ZodEmail;
|
|
29
|
+
password: z.ZodString;
|
|
30
|
+
name: z.ZodOptional<z.ZodString>;
|
|
31
|
+
}, z.core.$strip>;
|
|
32
|
+
export declare const dynamicContentSchema: z.ZodObject<{
|
|
33
|
+
slug: z.ZodOptional<z.ZodString>;
|
|
34
|
+
status: z.ZodOptional<z.ZodString>;
|
|
35
|
+
title: z.ZodOptional<z.ZodString>;
|
|
36
|
+
}, z.core.$loose>;
|
|
37
|
+
export declare const webauthnOptionsSchema: z.ZodObject<{
|
|
38
|
+
email: z.ZodString;
|
|
39
|
+
}, z.core.$strip>;
|
|
40
|
+
export declare const webauthnVerifySchema: z.ZodObject<{
|
|
41
|
+
email: z.ZodString;
|
|
42
|
+
response: z.ZodAny;
|
|
43
|
+
}, z.core.$strip>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const tokenCreateSchema: z.ZodObject<{
|
|
3
|
+
name: z.ZodString;
|
|
4
|
+
scopes: z.ZodArray<z.ZodObject<{
|
|
5
|
+
resource: z.ZodString;
|
|
6
|
+
actions: z.ZodArray<z.ZodString>;
|
|
7
|
+
}, z.core.$strip>>;
|
|
8
|
+
}, z.core.$strip>;
|
|
9
|
+
export declare const deviceCodeRequestSchema: z.ZodObject<{
|
|
10
|
+
client_id: z.ZodString;
|
|
11
|
+
scope: z.ZodOptional<z.ZodString>;
|
|
12
|
+
}, z.core.$strip>;
|
|
13
|
+
export declare const deviceTokenRequestSchema: z.ZodObject<{
|
|
14
|
+
client_id: z.ZodString;
|
|
15
|
+
device_code: z.ZodString;
|
|
16
|
+
grant_type: z.ZodLiteral<"urn:ietf:params:oauth:grant-type:device_code">;
|
|
17
|
+
}, z.core.$strip>;
|
|
18
|
+
export declare const deviceApproveSchema: z.ZodObject<{
|
|
19
|
+
user_code: z.ZodString;
|
|
20
|
+
}, z.core.$strip>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generate a random token for sessions
|
|
3
|
+
*/
|
|
4
|
+
export declare function generateSessionToken(): string;
|
|
5
|
+
/**
|
|
6
|
+
* Hash a password using SHA-256 (for ultra-lightweight worker usage)
|
|
7
|
+
* Note: In a real production app, you might want Scrypt or Argon2id,
|
|
8
|
+
* but those can be slow on the Edge. SHA-256 + Salt is a light starting point.
|
|
9
|
+
*/
|
|
10
|
+
export declare function hashPassword(password: string): Promise<string>;
|
|
11
|
+
export declare function verifyPassword(password: string, hash: string): Promise<boolean>;
|
package/dist/cli/commands.js
CHANGED
|
@@ -6506,8 +6506,25 @@ async function createProjectCommand() {
|
|
|
6506
6506
|
};
|
|
6507
6507
|
mkdirSync(resolve(projectDir, "plugins"), { recursive: true });
|
|
6508
6508
|
mkdirSync(resolve(projectDir, "apps"), { recursive: true });
|
|
6509
|
-
|
|
6510
|
-
|
|
6509
|
+
const localPluginPath = resolve(localTemplatesRoot, "plugin-development", "starter-plugin");
|
|
6510
|
+
const localPlaygroundPath = resolve(localTemplatesRoot, "plugin-development", "starter-playground");
|
|
6511
|
+
if (existsSync2(localPluginPath) && existsSync2(localPlaygroundPath)) {
|
|
6512
|
+
cpSync(localPluginPath, resolve(projectDir, "plugins", "starter-plugin"), { recursive: true });
|
|
6513
|
+
cpSync(localPlaygroundPath, resolve(projectDir, "apps", "playground"), { recursive: true });
|
|
6514
|
+
} else {
|
|
6515
|
+
try {
|
|
6516
|
+
await downloadTemplate("github:fhorray/flarecms/templates/plugin-development/starter-plugin", {
|
|
6517
|
+
dir: resolve(projectDir, "plugins/starter-plugin"),
|
|
6518
|
+
force: true
|
|
6519
|
+
});
|
|
6520
|
+
await downloadTemplate("github:fhorray/flarecms/templates/plugin-development/starter-playground", {
|
|
6521
|
+
dir: resolve(projectDir, "apps/playground"),
|
|
6522
|
+
force: true
|
|
6523
|
+
});
|
|
6524
|
+
} catch (err) {
|
|
6525
|
+
throw new Error(`Failed to download plugin templates: ${err instanceof Error ? err.message : String(err)}`);
|
|
6526
|
+
}
|
|
6527
|
+
}
|
|
6511
6528
|
writeFileSync(pkgPath, JSON.stringify(rootPkg, null, 2));
|
|
6512
6529
|
} else {
|
|
6513
6530
|
const template = TEMPLATES[templateKey];
|
package/dist/cli/index.js
CHANGED
|
@@ -6507,8 +6507,25 @@ async function createProjectCommand() {
|
|
|
6507
6507
|
};
|
|
6508
6508
|
mkdirSync(resolve(projectDir, "plugins"), { recursive: true });
|
|
6509
6509
|
mkdirSync(resolve(projectDir, "apps"), { recursive: true });
|
|
6510
|
-
|
|
6511
|
-
|
|
6510
|
+
const localPluginPath = resolve(localTemplatesRoot, "plugin-development", "starter-plugin");
|
|
6511
|
+
const localPlaygroundPath = resolve(localTemplatesRoot, "plugin-development", "starter-playground");
|
|
6512
|
+
if (existsSync2(localPluginPath) && existsSync2(localPlaygroundPath)) {
|
|
6513
|
+
cpSync(localPluginPath, resolve(projectDir, "plugins", "starter-plugin"), { recursive: true });
|
|
6514
|
+
cpSync(localPlaygroundPath, resolve(projectDir, "apps", "playground"), { recursive: true });
|
|
6515
|
+
} else {
|
|
6516
|
+
try {
|
|
6517
|
+
await downloadTemplate("github:fhorray/flarecms/templates/plugin-development/starter-plugin", {
|
|
6518
|
+
dir: resolve(projectDir, "plugins/starter-plugin"),
|
|
6519
|
+
force: true
|
|
6520
|
+
});
|
|
6521
|
+
await downloadTemplate("github:fhorray/flarecms/templates/plugin-development/starter-playground", {
|
|
6522
|
+
dir: resolve(projectDir, "apps/playground"),
|
|
6523
|
+
force: true
|
|
6524
|
+
});
|
|
6525
|
+
} catch (err) {
|
|
6526
|
+
throw new Error(`Failed to download plugin templates: ${err instanceof Error ? err.message : String(err)}`);
|
|
6527
|
+
}
|
|
6528
|
+
}
|
|
6512
6529
|
writeFileSync(pkgPath, JSON.stringify(rootPkg, null, 2));
|
|
6513
6530
|
} else {
|
|
6514
6531
|
const template = TEMPLATES[templateKey];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface FlareAdminProps {
|
|
2
|
+
/**
|
|
3
|
+
* The base path where the admin UI is mounted.
|
|
4
|
+
* @default "/admin"
|
|
5
|
+
*/
|
|
6
|
+
basePath?: string;
|
|
7
|
+
/**
|
|
8
|
+
* The base URL for FlareCMS API calls.
|
|
9
|
+
* @default "/api"
|
|
10
|
+
*/
|
|
11
|
+
apiBaseUrl?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* FlareAdminRouter is the main entry point for the FlareCMS Admin UI.
|
|
15
|
+
* It manages the routing and state for the entire administrative dashboard.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* <FlareAdminRouter basePath="/admin" apiBaseUrl="/api/flarecms" />
|
|
19
|
+
*/
|
|
20
|
+
export declare function FlareAdminRouter({ basePath, apiBaseUrl }: FlareAdminProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function App(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CardBlock } from '../../lib/block-types';
|
|
2
|
+
interface BlockCardProps {
|
|
3
|
+
block: CardBlock;
|
|
4
|
+
onAction: (interaction: any) => void;
|
|
5
|
+
}
|
|
6
|
+
export declare function BlockCard({ block, onAction }: BlockCardProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { FormBlock, BlockInteraction } from '../../lib/block-types';
|
|
2
|
+
interface BlockFormProps {
|
|
3
|
+
block: FormBlock;
|
|
4
|
+
onAction: (interaction: BlockInteraction) => void;
|
|
5
|
+
}
|
|
6
|
+
export declare function BlockForm({ block, onAction }: BlockFormProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Block, BlockInteraction } from '../../lib/block-types';
|
|
2
|
+
interface BlockRendererProps {
|
|
3
|
+
blocks: Block[];
|
|
4
|
+
onAction: (interaction: BlockInteraction) => void;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Renders a list of blocks.
|
|
8
|
+
*/
|
|
9
|
+
export declare function BlockRenderer({ blocks, onAction }: BlockRendererProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { BlockInteraction, TableBlock } from '../../lib/block-types';
|
|
2
|
+
interface BlockTableProps {
|
|
3
|
+
block: TableBlock;
|
|
4
|
+
onAction: (interaction: BlockInteraction) => void;
|
|
5
|
+
}
|
|
6
|
+
export declare function BlockTable({ block, onAction }: BlockTableProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
interface DynamicFormProps {
|
|
2
|
+
slug: string;
|
|
3
|
+
onSubmit: (data: Record<string, any>) => void;
|
|
4
|
+
onCancel: () => void;
|
|
5
|
+
initialData?: Record<string, any> | null;
|
|
6
|
+
isSubmitting?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function DynamicForm({ slug, onSubmit, onCancel, initialData, isSubmitting, }: DynamicFormProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface FieldModalProps {
|
|
3
|
+
children: React.ReactElement;
|
|
4
|
+
collectionId: string;
|
|
5
|
+
collectionSlug: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function FieldModal({ children, collectionId, collectionSlug, }: FieldModalProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function APITokenSection(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function GeneralSection(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function SecuritySection(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function SEOSection(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function SignupSection(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Accordion as AccordionPrimitive } from '@base-ui/react/accordion';
|
|
2
|
+
declare function Accordion({ className, ...props }: AccordionPrimitive.Root.Props): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
declare function AccordionItem({ className, ...props }: AccordionPrimitive.Item.Props): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
declare function AccordionTrigger({ className, children, ...props }: AccordionPrimitive.Trigger.Props): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
declare function AccordionContent({ className, children, ...props }: AccordionPrimitive.Panel.Props): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Avatar as AvatarPrimitive } from "@base-ui/react/avatar";
|
|
3
|
+
declare const Avatar: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").AvatarRootProps & {
|
|
4
|
+
size?: "default" | "sm" | "lg";
|
|
5
|
+
}, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
6
|
+
declare function AvatarImage({ className, ...props }: AvatarPrimitive.Image.Props): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
declare function AvatarFallback({ className, ...props }: AvatarPrimitive.Fallback.Props): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
declare function AvatarBadge({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
declare function AvatarGroup({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
declare function AvatarGroupCount({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export { Avatar, AvatarImage, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarBadge, };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { useRender } from '@base-ui/react/use-render';
|
|
2
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
3
|
+
declare const badgeVariants: (props?: ({
|
|
4
|
+
variant?: "default" | "link" | "outline" | "secondary" | "ghost" | "destructive" | null | undefined;
|
|
5
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
6
|
+
declare function Badge({ className, variant, render, ...props }: useRender.ComponentProps<'span'> & VariantProps<typeof badgeVariants>): import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
|
7
|
+
export { Badge, badgeVariants };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
3
|
+
declare const buttonVariants: (props?: ({
|
|
4
|
+
variant?: "default" | "link" | "outline" | "secondary" | "ghost" | "destructive" | null | undefined;
|
|
5
|
+
size?: "default" | "icon" | "xs" | "sm" | "lg" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
+
declare const Button: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").ButtonProps & VariantProps<(props?: ({
|
|
8
|
+
variant?: "default" | "link" | "outline" | "secondary" | "ghost" | "destructive" | null | undefined;
|
|
9
|
+
size?: "default" | "icon" | "xs" | "sm" | "lg" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
|
|
10
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
11
|
+
export { Button, buttonVariants };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
declare function Card({ className, size, ...props }: React.ComponentProps<"div"> & {
|
|
3
|
+
size?: "default" | "sm";
|
|
4
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
declare function CardHeader({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
declare function CardTitle({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
declare function CardDescription({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
declare function CardAction({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
declare function CardContent({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
declare function CardFooter({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent, };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Collapsible as CollapsiblePrimitive } from "@base-ui/react/collapsible";
|
|
2
|
+
declare function Collapsible({ ...props }: CollapsiblePrimitive.Root.Props): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
declare function CollapsibleTrigger({ ...props }: CollapsiblePrimitive.Trigger.Props): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
declare function CollapsibleContent({ ...props }: CollapsiblePrimitive.Panel.Props): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export { Collapsible, CollapsibleTrigger, CollapsibleContent };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Dialog as DialogPrimitive } from "@base-ui/react/dialog";
|
|
3
|
+
declare function Dialog({ ...props }: DialogPrimitive.Root.Props): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
declare function DialogTrigger({ ...props }: DialogPrimitive.Trigger.Props): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
declare function DialogPortal({ children, ...props }: DialogPrimitive.Portal.Props): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
declare function DialogClose({ ...props }: DialogPrimitive.Close.Props): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
declare function DialogOverlay({ className, ...props }: DialogPrimitive.Backdrop.Props): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
declare function DialogContent({ className, children, showCloseButton, ...props }: DialogPrimitive.Popup.Props & {
|
|
9
|
+
showCloseButton?: boolean;
|
|
10
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
declare function DialogHeader({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
declare function DialogFooter({ className, showCloseButton, children, ...props }: React.ComponentProps<"div"> & {
|
|
13
|
+
showCloseButton?: boolean;
|
|
14
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
declare function DialogTitle({ className, ...props }: DialogPrimitive.Title.Props): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
declare function DialogDescription({ className, ...props }: DialogPrimitive.Description.Props): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { PopoverTrigger } from './popover';
|
|
3
|
+
import type { LucideProps } from 'lucide-react';
|
|
4
|
+
import { type IconName } from 'lucide-react/dynamic';
|
|
5
|
+
import { iconsData } from './icons-data';
|
|
6
|
+
export type IconData = (typeof iconsData)[number];
|
|
7
|
+
interface IconPickerProps extends Omit<React.ComponentPropsWithoutRef<typeof PopoverTrigger>, 'onSelect' | 'onOpenChange'> {
|
|
8
|
+
value?: IconName;
|
|
9
|
+
defaultValue?: IconName;
|
|
10
|
+
onValueChange?: (value: IconName) => void;
|
|
11
|
+
open?: boolean;
|
|
12
|
+
defaultOpen?: boolean;
|
|
13
|
+
onOpenChange?: (open: boolean) => void;
|
|
14
|
+
searchable?: boolean;
|
|
15
|
+
searchPlaceholder?: string;
|
|
16
|
+
triggerPlaceholder?: string;
|
|
17
|
+
iconsList?: IconData[];
|
|
18
|
+
categorized?: boolean;
|
|
19
|
+
modal?: boolean;
|
|
20
|
+
children?: React.ReactNode;
|
|
21
|
+
}
|
|
22
|
+
declare const IconPicker: React.ForwardRefExoticComponent<IconPickerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
23
|
+
interface IconProps extends Omit<LucideProps, 'ref'> {
|
|
24
|
+
name: IconName;
|
|
25
|
+
}
|
|
26
|
+
declare const Icon: React.ForwardRefExoticComponent<IconProps & React.RefAttributes<SVGSVGElement>>;
|
|
27
|
+
export { IconPicker, Icon, type IconName };
|