@dyrected/admin 2.6.0 → 2.6.2
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/admin.css +221 -32
- package/dist/components/forms/field-renderer.d.ts +3 -9
- package/dist/components/forms/fields/date-picker.d.ts +4 -1
- package/dist/components/forms/fields/format-aware-inputs.test.d.ts +1 -0
- package/dist/components/forms/fields/text-field.d.ts +1 -1
- package/dist/components/forms/fields/url-field.d.ts +1 -1
- package/dist/components/forms/form-engine.d.ts +13 -2
- package/dist/components/media/__tests__/media-library-dialog.test.d.ts +1 -0
- package/dist/components/media/storage-notice.d.ts +7 -0
- package/dist/components/workflow/WorkflowPanel.d.ts +8 -1
- package/dist/components/workflow/draft-live-compare-sheet.d.ts +6 -0
- package/dist/components/workflow/workflow-transition-controls.d.ts +60 -0
- package/dist/controllers/__tests__/field.test.d.ts +1 -0
- package/dist/controllers/__tests__/form.test.d.ts +1 -0
- package/dist/controllers/__tests__/media.test.d.ts +1 -0
- package/dist/controllers/__tests__/theme.test.d.ts +1 -0
- package/dist/controllers/field.d.ts +13 -0
- package/dist/controllers/form.d.ts +102 -0
- package/dist/controllers/media.d.ts +119 -0
- package/dist/controllers/theme.d.ts +28 -0
- package/dist/favicon.ico +0 -0
- package/dist/favicon.svg +85 -1
- package/dist/hooks/__tests__/use-add-media-from-url.test.d.ts +1 -0
- package/dist/hooks/__tests__/use-field.test.d.ts +1 -0
- package/dist/hooks/admin-theme-context.d.ts +2 -8
- package/dist/hooks/admin-theme-provider.d.ts +3 -1
- package/dist/hooks/admin-theme.d.ts +1 -0
- package/dist/hooks/use-add-media-from-url.d.ts +8 -17
- package/dist/hooks/use-admin-theme.d.ts +2 -1
- package/dist/hooks/use-dyrected-form.d.ts +2 -0
- package/dist/hooks/use-field.d.ts +2 -0
- package/dist/hooks/use-media-library.d.ts +26 -0
- package/dist/hooks/use-media-upload.d.ts +20 -0
- package/dist/hooks/use-media-url.d.ts +20 -0
- package/dist/index.d.ts +30 -3
- package/dist/index.mjs +2878 -1827
- package/dist/lib/__tests__/external-media.test.d.ts +1 -0
- package/dist/lib/__tests__/media-utils.test.d.ts +1 -0
- package/dist/lib/compress-image.d.ts +9 -0
- package/dist/lib/draft-live-compare.d.ts +38 -0
- package/dist/lib/draft-live-compare.test.d.ts +1 -0
- package/dist/lib/external-media.d.ts +9 -4
- package/dist/lib/media-utils.d.ts +26 -0
- package/dist/lib/workflow-autosave.d.ts +18 -0
- package/dist/lib/workflow-autosave.test.d.ts +1 -0
- package/dist/lib/workflow-ui.d.ts +22 -0
- package/dist/lib/workflow-ui.test.d.ts +1 -0
- package/dist/providers/dyrected-form-context.d.ts +14 -0
- package/dist/public/contracts.d.ts +230 -0
- package/dist/public/index.d.ts +26 -0
- package/dist/public/index.js +2 -0
- package/dist/public.d.ts +2 -0
- package/dist/types/admin-components.d.ts +17 -2
- package/dist/use-add-media-from-url-DHGAAVLY.js +1604 -0
- package/package.json +10 -4
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { WorkflowConfig, WorkflowMetadata, WorkflowTransition } from '@dyrected/core';
|
|
2
|
+
import { TransitionOptions } from '@dyrected/sdk';
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
export interface WorkflowCapableClient {
|
|
5
|
+
transition<T = unknown>(collection: string, id: string, transitionName: string, opts?: TransitionOptions): Promise<T>;
|
|
6
|
+
}
|
|
7
|
+
export type PreparedWorkflowTransitionContext = {
|
|
8
|
+
documentIds: string[];
|
|
9
|
+
documentLabels?: Record<string, string | undefined>;
|
|
10
|
+
expectedRevisions?: Record<string, number | undefined>;
|
|
11
|
+
invalidateQueryKeys?: Array<readonly unknown[]>;
|
|
12
|
+
};
|
|
13
|
+
export type PrepareWorkflowTransition = (transition: WorkflowTransition) => Promise<PreparedWorkflowTransitionContext | null>;
|
|
14
|
+
type TransitionExecutionResult = {
|
|
15
|
+
transition: WorkflowTransition;
|
|
16
|
+
successCount: number;
|
|
17
|
+
failureCount: number;
|
|
18
|
+
firstError?: Error;
|
|
19
|
+
};
|
|
20
|
+
export declare function WorkflowTransitionSplitButton({ collection, documentId, workflowConfig, workflowMeta, invalidateQueryKeys, onComplete, onPendingChange, onSaveDraft, saveDraftPending, documentLabel, className, prepareTransition, }: {
|
|
21
|
+
collection: string;
|
|
22
|
+
documentId: string;
|
|
23
|
+
workflowConfig: WorkflowConfig;
|
|
24
|
+
workflowMeta: WorkflowMetadata;
|
|
25
|
+
invalidateQueryKeys?: Array<readonly unknown[]>;
|
|
26
|
+
onComplete?: (result: TransitionExecutionResult) => void;
|
|
27
|
+
onPendingChange?: (pending: boolean) => void;
|
|
28
|
+
onSaveDraft?: () => Promise<void> | void;
|
|
29
|
+
saveDraftPending?: boolean;
|
|
30
|
+
documentLabel?: string;
|
|
31
|
+
className?: string;
|
|
32
|
+
prepareTransition?: PrepareWorkflowTransition;
|
|
33
|
+
}): React.JSX.Element;
|
|
34
|
+
export declare function WorkflowTransitionMenu({ collection, documentIds, workflowConfig, transitions, expectedRevisions, invalidateQueryKeys, onComplete, trigger, documentLabels, align, sideOffset, disabled, }: {
|
|
35
|
+
collection: string;
|
|
36
|
+
documentIds: string[];
|
|
37
|
+
workflowConfig: WorkflowConfig;
|
|
38
|
+
transitions: WorkflowTransition[];
|
|
39
|
+
expectedRevisions?: Record<string, number | undefined>;
|
|
40
|
+
invalidateQueryKeys?: Array<readonly unknown[]>;
|
|
41
|
+
onComplete?: (result: TransitionExecutionResult) => void;
|
|
42
|
+
trigger: React.ReactNode;
|
|
43
|
+
documentLabels?: Record<string, string | undefined>;
|
|
44
|
+
align?: "start" | "center" | "end";
|
|
45
|
+
sideOffset?: number;
|
|
46
|
+
disabled?: boolean;
|
|
47
|
+
}): React.JSX.Element;
|
|
48
|
+
export declare function WorkflowTransitionPanelActions({ collection, documentId, workflowConfig, workflowMeta, onSaveDraft, saveDraftPending, prepareTransition, }: {
|
|
49
|
+
collection: string;
|
|
50
|
+
documentId: string;
|
|
51
|
+
workflowConfig: WorkflowConfig;
|
|
52
|
+
workflowMeta: WorkflowMetadata;
|
|
53
|
+
onSaveDraft?: () => Promise<void> | void;
|
|
54
|
+
saveDraftPending?: boolean;
|
|
55
|
+
prepareTransition?: PrepareWorkflowTransition;
|
|
56
|
+
}): React.JSX.Element;
|
|
57
|
+
export declare function WorkflowDetailsMenuItem({ onSelect, }: {
|
|
58
|
+
onSelect: () => void;
|
|
59
|
+
}): React.JSX.Element;
|
|
60
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { DyrectedFieldState, DyrectedFormController, DyrectedSetValueOptions } from './form';
|
|
2
|
+
type Listener = () => void;
|
|
3
|
+
export interface DyrectedFieldController {
|
|
4
|
+
getState(): DyrectedFieldState;
|
|
5
|
+
subscribe(listener: Listener): () => void;
|
|
6
|
+
setValue(value: unknown, options?: DyrectedSetValueOptions): void;
|
|
7
|
+
validate(): Promise<boolean>;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Creates a field-scoped controller from a Dyrected form controller and a path.
|
|
11
|
+
*/
|
|
12
|
+
export declare function createDyrectedFieldController(formController: DyrectedFormController, path: string): DyrectedFieldController;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { Field as FieldSchema } from '@dyrected/sdk';
|
|
2
|
+
type Listener = () => void;
|
|
3
|
+
export type DyrectedFieldPathPart = string | number | null | undefined | false;
|
|
4
|
+
export interface DyrectedFormValues {
|
|
5
|
+
[key: string]: unknown;
|
|
6
|
+
}
|
|
7
|
+
export interface DyrectedFormState {
|
|
8
|
+
collection: string;
|
|
9
|
+
fields: FieldSchema[];
|
|
10
|
+
values: DyrectedFormValues;
|
|
11
|
+
errors: Record<string, string>;
|
|
12
|
+
dirtyFields: Record<string, boolean>;
|
|
13
|
+
touchedFields: Record<string, boolean>;
|
|
14
|
+
isDirty: boolean;
|
|
15
|
+
isSubmitting: boolean;
|
|
16
|
+
isValid: boolean;
|
|
17
|
+
submitCount: number;
|
|
18
|
+
readOnly: boolean;
|
|
19
|
+
documentId?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface DyrectedSetValueOptions {
|
|
22
|
+
shouldDirty?: boolean;
|
|
23
|
+
shouldTouch?: boolean;
|
|
24
|
+
shouldValidate?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface DyrectedFormControllerAdapters {
|
|
27
|
+
setValue?: (path: string, value: unknown, options?: DyrectedSetValueOptions) => void;
|
|
28
|
+
reset?: (values?: DyrectedFormValues) => void;
|
|
29
|
+
validate?: (paths?: string | string[]) => Promise<boolean>;
|
|
30
|
+
submit?: () => Promise<unknown>;
|
|
31
|
+
}
|
|
32
|
+
export interface DyrectedFormControllerOptions {
|
|
33
|
+
collection: string;
|
|
34
|
+
fields: FieldSchema[];
|
|
35
|
+
documentId?: string;
|
|
36
|
+
readOnly?: boolean;
|
|
37
|
+
initialValues?: DyrectedFormValues;
|
|
38
|
+
initialErrors?: Record<string, string>;
|
|
39
|
+
initialDirtyFields?: Record<string, boolean>;
|
|
40
|
+
initialTouchedFields?: Record<string, boolean>;
|
|
41
|
+
initialIsDirty?: boolean;
|
|
42
|
+
initialIsSubmitting?: boolean;
|
|
43
|
+
initialIsValid?: boolean;
|
|
44
|
+
initialSubmitCount?: number;
|
|
45
|
+
adapters?: DyrectedFormControllerAdapters;
|
|
46
|
+
}
|
|
47
|
+
export interface DyrectedFieldState {
|
|
48
|
+
path: string;
|
|
49
|
+
schema: FieldSchema | null;
|
|
50
|
+
value: unknown;
|
|
51
|
+
error?: string;
|
|
52
|
+
isDirty: boolean;
|
|
53
|
+
isTouched: boolean;
|
|
54
|
+
invalid: boolean;
|
|
55
|
+
setValue: (value: unknown, options?: DyrectedSetValueOptions) => void;
|
|
56
|
+
validate: () => Promise<boolean>;
|
|
57
|
+
}
|
|
58
|
+
export interface DyrectedFormController {
|
|
59
|
+
getState(): DyrectedFormState;
|
|
60
|
+
subscribe(listener: Listener): () => void;
|
|
61
|
+
setAdapters(adapters?: DyrectedFormControllerAdapters): void;
|
|
62
|
+
setState(nextState: Partial<DyrectedFormState> | ((currentState: DyrectedFormState) => DyrectedFormState)): void;
|
|
63
|
+
getValue(path: string): unknown;
|
|
64
|
+
getValues(): DyrectedFormValues;
|
|
65
|
+
setValue(path: string, value: unknown, options?: DyrectedSetValueOptions): void;
|
|
66
|
+
getFieldSchema(path: string): FieldSchema | null;
|
|
67
|
+
getFieldState(path: string): DyrectedFieldState;
|
|
68
|
+
reset(values?: DyrectedFormValues): void;
|
|
69
|
+
validate(paths?: string | string[]): Promise<boolean>;
|
|
70
|
+
submit(): Promise<unknown>;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Normalizes a dotted field path into path segments.
|
|
74
|
+
*/
|
|
75
|
+
export declare function normalizeFieldPath(path: string): string[];
|
|
76
|
+
/**
|
|
77
|
+
* Alias for `normalizeFieldPath` used in public field/path helpers.
|
|
78
|
+
*/
|
|
79
|
+
export declare function getFieldPathSegments(path: string): string[];
|
|
80
|
+
/**
|
|
81
|
+
* Joins path parts into one dotted Dyrected field path.
|
|
82
|
+
*/
|
|
83
|
+
export declare function joinFieldPath(...parts: DyrectedFieldPathPart[]): string;
|
|
84
|
+
/**
|
|
85
|
+
* Returns the parent path for a given dotted field path.
|
|
86
|
+
*/
|
|
87
|
+
export declare function getParentFieldPath(path: string): string;
|
|
88
|
+
/**
|
|
89
|
+
* Reads a nested value using a dotted Dyrected field path.
|
|
90
|
+
*/
|
|
91
|
+
export declare function getValueAtPath(value: unknown, path: string): unknown;
|
|
92
|
+
/**
|
|
93
|
+
* Writes a nested value immutably using a dotted Dyrected field path.
|
|
94
|
+
*/
|
|
95
|
+
export declare function setValueAtPath<T>(value: T, path: string, nextValue: unknown): T;
|
|
96
|
+
/**
|
|
97
|
+
* Creates a framework-agnostic Dyrected form controller.
|
|
98
|
+
*
|
|
99
|
+
* This is the low-level state contract behind the React and Vue form APIs.
|
|
100
|
+
*/
|
|
101
|
+
export declare function createDyrectedFormController({ collection, fields, documentId, readOnly, initialValues, initialErrors, initialDirtyFields, initialTouchedFields, initialIsDirty, initialIsSubmitting, initialIsValid, initialSubmitCount, adapters, }: DyrectedFormControllerOptions): DyrectedFormController;
|
|
102
|
+
export {};
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { buildExternalMediaPayload } from '../lib/external-media';
|
|
2
|
+
import { DyrectedClient, Media } from '@dyrected/sdk';
|
|
3
|
+
type Listener = () => void;
|
|
4
|
+
type MaybePromise<T> = T | Promise<T>;
|
|
5
|
+
export interface MediaControllerSchemas {
|
|
6
|
+
collections?: Array<{
|
|
7
|
+
slug: string;
|
|
8
|
+
upload?: unknown;
|
|
9
|
+
}>;
|
|
10
|
+
}
|
|
11
|
+
export interface MediaRecord extends Media {
|
|
12
|
+
id: string;
|
|
13
|
+
}
|
|
14
|
+
export interface MediaUploadQueueItem {
|
|
15
|
+
id: string;
|
|
16
|
+
file: File;
|
|
17
|
+
originalSize: number;
|
|
18
|
+
compressedSize: number;
|
|
19
|
+
progress: number;
|
|
20
|
+
status: "queued" | "uploading" | "completed" | "error";
|
|
21
|
+
error?: string;
|
|
22
|
+
result?: MediaRecord;
|
|
23
|
+
}
|
|
24
|
+
export interface MediaUploadControllerState {
|
|
25
|
+
activeCollection: string;
|
|
26
|
+
isUploading: boolean;
|
|
27
|
+
queue: MediaUploadQueueItem[];
|
|
28
|
+
}
|
|
29
|
+
export interface MediaUploadControllerOptions {
|
|
30
|
+
client: DyrectedClient | null;
|
|
31
|
+
schemas?: MediaControllerSchemas | null;
|
|
32
|
+
collection: string;
|
|
33
|
+
compressImages?: boolean;
|
|
34
|
+
maxDimension?: number;
|
|
35
|
+
quality?: number;
|
|
36
|
+
onCompletedItem?: (item: MediaRecord) => MaybePromise<void>;
|
|
37
|
+
onAllCompleted?: (items: MediaRecord[]) => MaybePromise<void>;
|
|
38
|
+
onError?: (error: Error, file: File) => void;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Creates a framework-agnostic media upload controller.
|
|
42
|
+
*
|
|
43
|
+
* This is the low-level engine behind the React and Vue media upload APIs. Use
|
|
44
|
+
* it directly only when you need to build your own adapter layer outside the
|
|
45
|
+
* shipped framework packages.
|
|
46
|
+
*/
|
|
47
|
+
export interface MediaUploadController {
|
|
48
|
+
getState(): MediaUploadControllerState;
|
|
49
|
+
subscribe(listener: Listener): () => void;
|
|
50
|
+
uploadFiles(files: File[]): Promise<MediaRecord[]>;
|
|
51
|
+
retryUpload(id: string): Promise<MediaRecord | null>;
|
|
52
|
+
removeQueueItem(id: string): void;
|
|
53
|
+
clearCompleted(): void;
|
|
54
|
+
}
|
|
55
|
+
export interface MediaURLClassification {
|
|
56
|
+
kind: "youtube" | "vimeo" | "direct-image" | "direct-video" | "generic-file" | "unknown";
|
|
57
|
+
payload: ReturnType<typeof buildExternalMediaPayload>;
|
|
58
|
+
}
|
|
59
|
+
export interface MediaURLControllerState {
|
|
60
|
+
activeCollection: string;
|
|
61
|
+
isSubmitting: boolean;
|
|
62
|
+
}
|
|
63
|
+
export interface MediaURLControllerOptions {
|
|
64
|
+
client: DyrectedClient | null;
|
|
65
|
+
schemas?: MediaControllerSchemas | null;
|
|
66
|
+
collection: string;
|
|
67
|
+
compressImages?: boolean;
|
|
68
|
+
maxDimension?: number;
|
|
69
|
+
quality?: number;
|
|
70
|
+
onAdded?: (item: MediaRecord) => MaybePromise<void>;
|
|
71
|
+
onError?: (error: Error) => void;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Creates a framework-agnostic media URL ingestion controller.
|
|
75
|
+
*/
|
|
76
|
+
export interface MediaURLController {
|
|
77
|
+
getState(): MediaURLControllerState;
|
|
78
|
+
subscribe(listener: Listener): () => void;
|
|
79
|
+
classifyURL(url: string): MediaURLClassification;
|
|
80
|
+
importURL(url: string): Promise<MediaRecord>;
|
|
81
|
+
}
|
|
82
|
+
export interface MediaLibraryControllerState {
|
|
83
|
+
activeCollection: string;
|
|
84
|
+
items: MediaRecord[];
|
|
85
|
+
selectedIds: string[];
|
|
86
|
+
searchQuery: string;
|
|
87
|
+
page: number;
|
|
88
|
+
hasNextPage: boolean;
|
|
89
|
+
isLoading: boolean;
|
|
90
|
+
error: Error | null;
|
|
91
|
+
}
|
|
92
|
+
export interface MediaLibraryControllerOptions {
|
|
93
|
+
client: DyrectedClient | null;
|
|
94
|
+
schemas?: MediaControllerSchemas | null;
|
|
95
|
+
collection: string;
|
|
96
|
+
pageSize?: number;
|
|
97
|
+
initialSearchQuery?: string;
|
|
98
|
+
initialSelectedIds?: string[];
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Creates a framework-agnostic media library controller for search, pagination,
|
|
102
|
+
* and selection state.
|
|
103
|
+
*/
|
|
104
|
+
export interface MediaLibraryController {
|
|
105
|
+
getState(): MediaLibraryControllerState;
|
|
106
|
+
subscribe(listener: Listener): () => void;
|
|
107
|
+
load(): Promise<MediaRecord[]>;
|
|
108
|
+
search(query: string): Promise<MediaRecord[]>;
|
|
109
|
+
loadNextPage(): Promise<MediaRecord[]>;
|
|
110
|
+
setSelectedIds(ids: string[]): void;
|
|
111
|
+
select(id: string): void;
|
|
112
|
+
deselect(id: string): void;
|
|
113
|
+
toggle(id: string): void;
|
|
114
|
+
clearSelection(): void;
|
|
115
|
+
}
|
|
116
|
+
export declare function createMediaUploadController({ client, schemas, collection, compressImages, maxDimension, quality, onCompletedItem, onAllCompleted, onError, }: MediaUploadControllerOptions): MediaUploadController;
|
|
117
|
+
export declare function createMediaURLController({ client, schemas, collection, compressImages, maxDimension, quality, onAdded, onError, }: MediaURLControllerOptions): MediaURLController;
|
|
118
|
+
export declare function createMediaLibraryController({ client, schemas, collection, pageSize, initialSearchQuery, initialSelectedIds, }: MediaLibraryControllerOptions): MediaLibraryController;
|
|
119
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AdminThemePreference, ResolvedAdminTheme } from '../hooks/admin-theme';
|
|
2
|
+
type Listener = () => void;
|
|
3
|
+
export interface AdminThemeControllerState {
|
|
4
|
+
theme: AdminThemePreference;
|
|
5
|
+
systemTheme: ResolvedAdminTheme;
|
|
6
|
+
resolvedTheme: ResolvedAdminTheme;
|
|
7
|
+
themeClassName: string;
|
|
8
|
+
}
|
|
9
|
+
export interface AdminThemeController {
|
|
10
|
+
getState(): AdminThemeControllerState;
|
|
11
|
+
subscribe(listener: Listener): () => void;
|
|
12
|
+
setTheme(theme: AdminThemePreference): void;
|
|
13
|
+
setSystemTheme(theme: ResolvedAdminTheme): void;
|
|
14
|
+
setState(nextState: Partial<AdminThemeControllerState> | ((currentState: AdminThemeControllerState) => AdminThemeControllerState)): void;
|
|
15
|
+
}
|
|
16
|
+
export interface AdminThemeControllerOptions {
|
|
17
|
+
theme?: AdminThemePreference;
|
|
18
|
+
systemTheme?: ResolvedAdminTheme;
|
|
19
|
+
onThemeChange?: (theme: AdminThemePreference) => void;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Creates a framework-agnostic admin theme controller.
|
|
23
|
+
*
|
|
24
|
+
* This controller is the shared theme engine used by the React and Vue public
|
|
25
|
+
* APIs, and can also be used directly by other framework adapters.
|
|
26
|
+
*/
|
|
27
|
+
export declare function createAdminThemeController({ theme, systemTheme, onThemeChange, }?: AdminThemeControllerOptions): AdminThemeController;
|
|
28
|
+
export {};
|
package/dist/favicon.ico
ADDED
|
Binary file
|
package/dist/favicon.svg
CHANGED
|
@@ -1 +1,85 @@
|
|
|
1
|
-
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
3
|
+
<!-- Creator: CorelDRAW 2020 (64-Bit) -->
|
|
4
|
+
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="512" height="512" version="1.1" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
|
|
5
|
+
viewBox="2871.23 1161.44 5949.65 5949.65"
|
|
6
|
+
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
7
|
+
xmlns:xodm="http://www.corel.com/coreldraw/odm/2003">
|
|
8
|
+
<defs>
|
|
9
|
+
<style type="text/css">
|
|
10
|
+
<![CDATA[
|
|
11
|
+
.bg {fill:#31106F}
|
|
12
|
+
.str0 {stroke:#F8F7F2;stroke-width:6.94;stroke-miterlimit:2.61313}
|
|
13
|
+
.fil0 {fill:none}
|
|
14
|
+
.fil2 {fill:#F8F7F2}
|
|
15
|
+
.fil1 {fill:#F8F7F2}
|
|
16
|
+
.fil3 {fill:#BCFF2E}
|
|
17
|
+
@media (prefers-color-scheme: dark) {
|
|
18
|
+
.bg {fill:#31106f}
|
|
19
|
+
.str0 {stroke:#F8F7F2}
|
|
20
|
+
}
|
|
21
|
+
]]>
|
|
22
|
+
</style>
|
|
23
|
+
<clipPath id="id0">
|
|
24
|
+
<path d="M6112.57 3128.73c-14.76,21.66 -64.98,89.76 -67.68,108.99l331.68 1.15 -0.59 542.04c-121.35,-48.77 -145.85,-100.05 -360.87,-143.92 -1044.28,-213.08 -1790.7,1031.07 -1034.68,1851.73 140.35,152.35 374.13,305.87 670.59,343.11 324.68,40.78 583.4,-63.4 789.16,-206.96 99,-69.07 181.35,-156.72 252.76,-253.09 193.39,-261.02 206.15,-500.15 206,-808.62 -0.09,-163.72 5.83,-338.16 -0.27,-500.44l-12.15 12.5c-1.1,1.26 -2.52,2.89 -3.6,4.2l-63.76 88.39c-147.3,180.46 -313.49,250.43 -401.69,480.41 -34.56,90.13 -34.66,188.58 -68.36,278.48 -234.55,625.75 -1116.9,466.02 -1157.45,-160.94 -6.85,-105.99 15.51,-212.45 57.29,-295.74 203.72,-406.21 736.04,-456.04 1006.65,-111.88 23.54,29.95 45.26,76.2 69.75,105.61l27.05 -32.61c27.43,-43.07 101.06,-128.11 132.59,-156.44l173.41 -159c255,-291.62 229.88,-511.28 241.86,-877.89l334.64 0.96c-7.57,-26.85 -54.16,-83.21 -73.19,-112.04l-223.79 -332.67c-53.89,-76.28 -101.29,-149.25 -150.69,-225.38 -24.36,-37.54 -130.37,-198.76 -152.5,-216.82l-522.17 776.88z"/>
|
|
25
|
+
</clipPath>
|
|
26
|
+
</defs>
|
|
27
|
+
<g id="Layer_x0020_1">
|
|
28
|
+
<metadata id="CorelCorpID_0Corel-Layer"/>
|
|
29
|
+
<rect class="bg" x="2871.23" y="1161.44" width="5949.65" height="5949.65" rx="950" ry="950"/>
|
|
30
|
+
<g transform="translate(5846.05 4136.27) scale(1.16) translate(-5846.05 -4136.27)">
|
|
31
|
+
<rect class="fil0" x="-0.21" y="2.81" width="11692.91" height="8267.72"/>
|
|
32
|
+
<g id="_2489102217344">
|
|
33
|
+
<g>
|
|
34
|
+
<path class="fil1 str0" d="M5245.73 1985.39c-403.57,6 -838.7,0.41 -1245.91,0.4 -373.46,-0.01 -688.24,240.39 -745.02,620.87 -12.55,84.1 -5.65,559.58 -5.64,682.38 0.01,167.54 7.45,549.44 -1.06,690.4 -23.43,18.19 -47.01,26.73 -47.48,65.1 -0.42,33.96 21.13,61.06 57.67,62.64 50.25,2.17 110.25,-69.17 17.3,-125.1 -4.37,-327.5 -0.09,-658.26 -0.09,-986.13 0,-155.6 -13.85,-323.89 23.01,-466.31 32.06,-123.88 110.59,-249.44 181.75,-313.83 243.98,-220.83 390.88,-203.73 780.09,-203.73 328.56,0 658.74,-3.24 987.1,0.19 36.8,85.32 127.16,49.2 121.28,-18.66 -2.36,-27.22 -56.49,-113.16 -123,-8.21z"/>
|
|
35
|
+
<path class="fil1 str0" d="M5220.04 6287.94c-403.57,-6 -838.7,-0.41 -1245.91,-0.4 -373.46,0.01 -688.24,-240.39 -745.02,-620.87 -12.55,-84.1 -5.65,-559.58 -5.64,-682.38 0,-167.54 7.45,-549.44 -1.06,-690.4 -23.44,-18.19 -47.01,-26.73 -47.48,-65.1 -0.42,-33.96 21.13,-61.06 57.67,-62.64 50.25,-2.17 110.25,69.17 17.3,125.1 -4.37,327.5 -0.09,658.27 -0.09,986.13 0,155.6 -13.85,323.89 23.01,466.31 32.06,123.89 110.59,249.44 181.75,313.83 243.98,220.82 390.88,203.73 780.09,203.73 328.56,0 658.74,3.24 987.09,-0.19 36.81,-85.33 127.16,-49.21 121.28,18.65 -2.36,27.22 -56.49,113.16 -123,8.21z"/>
|
|
36
|
+
<path class="fil1 str0" d="M6472.46 1985.39c403.57,6 838.69,0.41 1245.9,0.4 373.46,-0.01 688.24,240.39 745.02,620.87 12.56,84.1 5.65,559.58 5.64,682.38 -0,167.54 -7.45,549.44 1.06,690.4 23.44,18.19 47.01,26.73 47.48,65.1 0.42,33.96 -21.13,61.06 -57.67,62.64 -50.25,2.17 -110.25,-69.17 -17.29,-125.1 4.37,-327.5 0.08,-658.26 0.08,-986.13 0,-155.6 13.85,-323.89 -23.01,-466.31 -32.06,-123.88 -110.59,-249.44 -181.75,-313.83 -243.98,-220.83 -390.88,-203.73 -780.09,-203.73 -328.56,0 -658.74,-3.24 -987.09,0.19 -36.81,85.32 -127.16,49.2 -121.28,-18.66 2.36,-27.22 56.48,-113.16 123,-8.21z"/>
|
|
37
|
+
<path class="fil1 str0" d="M6472.46 6287.94c403.57,-6 838.69,-0.41 1245.9,-0.4 373.46,0.01 688.24,-240.39 745.02,-620.87 12.56,-84.1 5.65,-559.58 5.64,-682.38 -0,-167.54 -7.45,-549.44 1.06,-690.4 23.44,-18.19 47.01,-26.73 47.48,-65.1 0.42,-33.96 -21.13,-61.06 -57.67,-62.64 -50.25,-2.17 -110.25,69.17 -17.29,125.1 4.37,327.5 0.08,658.27 0.08,986.13 0,155.6 13.85,323.89 -23.01,466.31 -32.06,123.89 -110.59,249.44 -181.75,313.83 -243.98,220.82 -390.88,203.73 -780.09,203.73 -328.56,0 -658.74,3.24 -987.09,-0.19 -36.81,-85.33 -127.16,-49.21 -121.28,18.65 2.36,27.22 56.48,113.16 123,8.21z"/>
|
|
38
|
+
<path class="fil1 str0" d="M5686.06 1519.39c-403.57,6 -838.69,0.41 -1245.9,0.4 -373.46,-0.01 -688.24,240.4 -745.02,620.87 -12.56,84.1 -5.65,559.58 -5.64,682.38 0,167.54 7.45,549.45 -1.06,690.41 -23.44,18.18 -47.01,26.73 -47.48,65.1 -0.42,33.96 21.13,61.06 57.67,62.64 50.25,2.17 110.25,-69.17 17.29,-125.1 -4.37,-327.5 -0.08,-658.26 -0.08,-986.13 0,-155.6 -13.85,-323.89 23.01,-466.31 32.06,-123.89 110.59,-249.44 181.75,-313.83 243.98,-220.83 390.88,-203.74 780.09,-203.74 328.56,0 658.74,-3.24 987.09,0.19 36.81,85.33 127.16,49.21 121.28,-18.65 -2.36,-27.22 -56.48,-113.16 -123,-8.21z"/>
|
|
39
|
+
<path class="fil1 str0" d="M5660.36 6753.94c-403.57,-6 -838.69,-0.41 -1245.9,-0.4 -373.46,0.01 -688.24,-240.39 -745.02,-620.87 -12.56,-84.1 -5.65,-559.58 -5.64,-682.38 0,-167.54 7.45,-549.44 -1.06,-690.4 -23.43,-18.19 -47.01,-26.73 -47.48,-65.1 -0.42,-33.96 21.13,-61.06 57.67,-62.64 50.25,-2.17 110.25,69.17 17.29,125.1 -4.37,327.5 -0.08,658.26 -0.08,986.13 0,155.59 -13.85,323.89 23.01,466.31 32.06,123.88 110.59,249.43 181.75,313.83 243.98,220.83 390.88,203.73 780.09,203.73 328.56,0 658.74,3.24 987.09,-0.19 36.8,-85.32 127.16,-49.21 121.28,18.65 -2.36,27.23 -56.48,113.16 -123,8.21z"/>
|
|
40
|
+
<path class="fil1 str0" d="M6032.14 1519.39c403.57,6 838.69,0.41 1245.91,0.4 373.46,-0.01 688.24,240.4 745.02,620.87 12.55,84.1 5.65,559.58 5.64,682.38 -0.01,167.54 -7.45,549.45 1.06,690.41 23.43,18.18 47.01,26.73 47.48,65.1 0.42,33.96 -21.13,61.06 -57.67,62.64 -50.25,2.17 -110.25,-69.17 -17.3,-125.1 4.37,-327.5 0.09,-658.26 0.09,-986.13 0,-155.6 13.85,-323.89 -23.01,-466.31 -32.06,-123.89 -110.59,-249.44 -181.75,-313.83 -243.98,-220.83 -390.88,-203.74 -780.09,-203.74 -328.56,0 -658.74,-3.24 -987.1,0.19 -36.8,85.33 -127.16,49.21 -121.28,-18.65 2.36,-27.22 56.49,-113.16 123,-8.21z"/>
|
|
41
|
+
<path class="fil1 str0" d="M6006.44 6753.94c403.57,-6 838.69,-0.41 1245.91,-0.4 373.46,0.01 688.24,-240.39 745.02,-620.87 12.56,-84.1 5.65,-559.58 5.64,-682.38 -0.01,-167.54 -7.45,-549.44 1.06,-690.4 23.43,-18.19 47.01,-26.73 47.48,-65.1 0.42,-33.96 -21.13,-61.06 -57.67,-62.64 -50.25,-2.17 -110.25,69.17 -17.3,125.1 4.37,327.5 0.09,658.26 0.09,986.13 0,155.59 13.85,323.89 -23.01,466.31 -32.06,123.88 -110.59,249.43 -181.75,313.83 -243.98,220.83 -390.88,203.73 -780.09,203.73 -328.56,0 -658.74,3.24 -987.1,-0.19 -36.8,-85.32 -127.16,-49.21 -121.28,18.65 2.36,27.23 56.48,113.16 123,8.21z"/>
|
|
42
|
+
<g>
|
|
43
|
+
<path class="fil1 str0" d="M5299.06 1898.16c2.08,0.61 37.97,22.87 40.8,24.59 9.16,5.58 116.45,70.48 121.57,74.45 -1.26,1.96 -35.61,24.56 -40.4,27.84 -13.62,9.33 -26.66,18.07 -40.27,27.28 -19.03,12.86 -42.03,29.02 -60.91,41.21 -3.39,2.19 -6.49,4.38 -10.01,6.75 -2.5,1.69 -7.77,5.71 -10.49,6.67l-0.04 -30.69c1.27,-2.27 5.05,-4.11 7.17,-5.55l108.26 -73.52 -3.69 -2.67c-1.13,-0.68 -2.38,-1.44 -3.6,-2.19 -2.65,-1.61 -4.68,-2.84 -7.15,-4.35l-101.23 -61.96 -0.02 -27.87zm-4.16 202.72c0.01,7.86 -1.72,16.14 5.37,11.28 3.71,-2.54 7.44,-5 11.25,-7.59l67.77 -45.85c25.2,-16.5 53.7,-36.24 79.01,-53.46 5.43,-3.69 9.97,-5.31 9.7,-9.23l-150.37 -91.86c-3.83,-2.33 -6.96,-4.34 -10.69,-6.59 -4.13,-2.49 -8.62,-6.14 -11.49,-5.43 -1.47,2.54 -0.86,26.91 -0.87,31.06 -2.28,-0.74 -22.34,-13.39 -26.3,-15.8l-25.76 -15.78 0.07 221.63c3.54,-0.2 46.94,-32.2 52.27,-34.33l0.04 21.97z"/>
|
|
44
|
+
<path class="fil1 str0" d="M5299.07 1926.03l101.23 61.96c2.47,1.52 4.5,2.74 7.15,4.35 1.22,0.75 2.48,1.5 3.6,2.19l3.69 2.67 -108.26 73.52c-2.12,1.44 -5.9,3.28 -7.17,5.55l0.04 30.69c2.72,-0.96 8,-4.99 10.49,-6.67 3.52,-2.37 6.62,-4.57 10.01,-6.75 18.88,-12.19 41.88,-28.35 60.91,-41.21 13.61,-9.2 26.65,-17.95 40.27,-27.28 4.78,-3.28 39.14,-25.88 40.4,-27.84 -5.11,-3.98 -112.41,-68.87 -121.57,-74.45 -2.83,-1.72 -38.71,-23.97 -40.8,-24.59l0.02 27.87z"/>
|
|
45
|
+
</g>
|
|
46
|
+
<g>
|
|
47
|
+
<path class="fil1 str0" d="M5257.85 6149.01c2.08,0.61 37.97,22.87 40.79,24.59 9.17,5.58 116.45,70.48 121.57,74.45 -1.26,1.96 -35.61,24.56 -40.4,27.84 -13.62,9.33 -26.66,18.07 -40.27,27.28 -19.03,12.86 -42.02,29.03 -60.91,41.21 -3.39,2.19 -6.49,4.38 -10,6.75 -2.5,1.69 -7.78,5.71 -10.5,6.67l-0.04 -30.68c1.27,-2.27 5.05,-4.11 7.17,-5.55l108.26 -73.52 -3.69 -2.67c-1.13,-0.68 -2.38,-1.44 -3.61,-2.19 -2.65,-1.61 -4.67,-2.84 -7.14,-4.36l-101.23 -61.96 -0.01 -27.87zm-4.16 202.72c0.01,7.86 -1.72,16.13 5.36,11.28 3.71,-2.54 7.44,-5 11.25,-7.6l67.77 -45.85c25.21,-16.5 53.7,-36.23 79.02,-53.46 5.42,-3.69 9.97,-5.32 9.7,-9.23l-150.37 -91.86c-3.83,-2.33 -6.96,-4.34 -10.69,-6.59 -4.13,-2.49 -8.61,-6.14 -11.49,-5.43 -1.47,2.53 -0.86,26.91 -0.87,31.06 -2.28,-0.74 -22.34,-13.39 -26.3,-15.8l-25.76 -15.78 0.07 221.63c3.54,-0.2 46.93,-32.2 52.27,-34.33l0.04 21.97z"/>
|
|
48
|
+
<path class="fil1 str0" d="M5257.86 6176.88l101.23 61.96c2.47,1.52 4.49,2.74 7.14,4.36 1.22,0.75 2.48,1.5 3.61,2.19l3.69 2.67 -108.26 73.52c-2.13,1.44 -5.91,3.28 -7.17,5.55l0.04 30.68c2.72,-0.96 8,-4.98 10.5,-6.67 3.52,-2.37 6.62,-4.56 10,-6.75 18.89,-12.19 41.88,-28.35 60.91,-41.21 13.61,-9.2 26.65,-17.94 40.27,-27.28 4.79,-3.28 39.14,-25.87 40.4,-27.84 -5.11,-3.97 -112.4,-68.87 -121.57,-74.45 -2.82,-1.72 -38.71,-23.97 -40.79,-24.59l0.01 27.87z"/>
|
|
49
|
+
</g>
|
|
50
|
+
<g>
|
|
51
|
+
<path class="fil1 str0" d="M7914.31 3545.21c0.61,2.08 22.87,37.97 24.59,40.8 5.58,9.16 70.48,116.45 74.45,121.56 1.96,-1.26 24.56,-35.61 27.84,-40.39 9.33,-13.62 18.07,-26.66 27.28,-40.28 12.86,-19.03 29.03,-42.02 41.21,-60.91 2.19,-3.39 4.38,-6.49 6.75,-10.01 1.69,-2.5 5.71,-7.77 6.67,-10.49l-30.68 -0.04c-2.27,1.27 -4.11,5.05 -5.55,7.17l-73.52 108.26 -2.67 -3.69c-0.68,-1.13 -1.44,-2.38 -2.19,-3.61 -1.61,-2.65 -2.84,-4.67 -4.36,-7.14l-61.96 -101.23 -27.87 -0.02zm202.72 -4.16c7.86,0.01 16.13,-1.72 11.28,5.37 -2.54,3.71 -5,7.44 -7.6,11.25l-45.85 67.78c-16.5,25.2 -36.23,53.7 -53.46,79.01 -3.69,5.43 -5.31,9.97 -9.22,9.7l-91.86 -150.37c-2.33,-3.83 -4.34,-6.96 -6.59,-10.69 -2.49,-4.13 -6.14,-8.62 -5.43,-11.49 2.53,-1.47 26.91,-0.86 31.06,-0.87 -0.74,-2.28 -13.39,-22.34 -15.8,-26.3l-15.78 -25.76 221.63 0.07c-0.2,3.54 -32.2,46.93 -34.33,52.27l21.97 0.04z"/>
|
|
52
|
+
<path class="fil1 str0" d="M7942.18 3545.23l61.96 101.23c1.52,2.47 2.74,4.5 4.36,7.14 0.75,1.23 1.5,2.48 2.19,3.61l2.67 3.69 73.52 -108.26c1.44,-2.12 3.28,-5.9 5.55,-7.17l30.68 0.04c-0.96,2.72 -4.98,8 -6.67,10.49 -2.37,3.52 -4.57,6.62 -6.75,10.01 -12.19,18.88 -28.35,41.88 -41.21,60.91 -9.2,13.62 -17.94,26.66 -27.28,40.28 -3.28,4.78 -25.87,39.14 -27.84,40.39 -3.97,-5.11 -68.87,-112.4 -74.45,-121.56 -1.72,-2.83 -23.98,-38.71 -24.59,-40.8l27.87 0.02z"/>
|
|
53
|
+
</g>
|
|
54
|
+
<g>
|
|
55
|
+
<path class="fil1 str0" d="M7893.48 4722.13c0.61,-2.08 22.87,-37.97 24.59,-40.79 5.58,-9.17 70.48,-116.45 74.45,-121.57 1.96,1.26 24.56,35.61 27.84,40.4 9.33,13.62 18.07,26.66 27.28,40.27 12.86,19.03 29.03,42.02 41.21,60.91 2.19,3.39 4.38,6.49 6.75,10 1.69,2.5 5.71,7.78 6.67,10.5l-30.69 0.04c-2.27,-1.27 -4.1,-5.05 -5.55,-7.17l-73.52 -108.26 -2.67 3.69c-0.68,1.13 -1.44,2.38 -2.19,3.6 -1.61,2.65 -2.84,4.67 -4.36,7.14l-61.96 101.23 -27.87 0.01zm202.72 4.17c7.86,-0.01 16.14,1.72 11.28,-5.37 -2.54,-3.71 -5,-7.44 -7.59,-11.25l-45.85 -67.77c-16.5,-25.2 -36.23,-53.7 -53.46,-79.02 -3.69,-5.42 -5.31,-9.97 -9.22,-9.7l-91.86 150.37c-2.33,3.83 -4.34,6.96 -6.59,10.69 -2.49,4.13 -6.14,8.61 -5.43,11.49 2.54,1.47 26.91,0.86 31.06,0.88 -0.74,2.28 -13.39,22.33 -15.8,26.3l-15.78 25.76 221.63 -0.07c-0.2,-3.53 -32.2,-46.93 -34.33,-52.27l21.97 -0.04z"/>
|
|
56
|
+
<path class="fil1 str0" d="M7921.35 4722.12l61.96 -101.23c1.52,-2.47 2.74,-4.49 4.36,-7.14 0.74,-1.22 1.5,-2.48 2.19,-3.6l2.67 -3.69 73.52 108.26c1.44,2.12 3.28,5.9 5.55,7.17l30.69 -0.04c-0.96,-2.72 -4.99,-8 -6.67,-10.5 -2.37,-3.52 -4.57,-6.62 -6.75,-10 -12.19,-18.89 -28.35,-41.88 -41.21,-60.91 -9.2,-13.61 -17.95,-26.65 -27.28,-40.27 -3.28,-4.78 -25.87,-39.14 -27.84,-40.4 -3.97,5.11 -68.87,112.4 -74.45,121.57 -1.72,2.82 -23.97,38.71 -24.59,40.79l27.87 -0.01z"/>
|
|
57
|
+
</g>
|
|
58
|
+
<g>
|
|
59
|
+
<path class="fil1 str0" d="M3601.32 3545.21c0.61,2.08 22.87,37.97 24.59,40.8 5.58,9.16 70.48,116.45 74.45,121.56 1.96,-1.26 24.56,-35.61 27.84,-40.39 9.33,-13.62 18.07,-26.66 27.28,-40.28 12.86,-19.03 29.03,-42.02 41.21,-60.91 2.19,-3.39 4.38,-6.49 6.76,-10.01 1.69,-2.5 5.7,-7.77 6.67,-10.49l-30.68 -0.04c-2.27,1.27 -4.11,5.05 -5.55,7.17l-73.52 108.26 -2.67 -3.69c-0.68,-1.13 -1.44,-2.38 -2.19,-3.61 -1.61,-2.65 -2.84,-4.67 -4.35,-7.14l-61.96 -101.23 -27.87 -0.02zm202.72 -4.16c7.86,0.01 16.13,-1.72 11.28,5.37 -2.54,3.71 -5,7.44 -7.6,11.25l-45.85 67.78c-16.5,25.2 -36.23,53.7 -53.46,79.01 -3.69,5.43 -5.32,9.97 -9.23,9.7l-91.86 -150.37c-2.33,-3.83 -4.34,-6.96 -6.59,-10.69 -2.49,-4.13 -6.14,-8.62 -5.43,-11.49 2.53,-1.47 26.91,-0.86 31.06,-0.87 -0.74,-2.28 -13.39,-22.34 -15.8,-26.3l-15.78 -25.76 221.63 0.07c-0.2,3.54 -32.2,46.93 -34.33,52.27l21.97 0.04z"/>
|
|
60
|
+
<path class="fil1 str0" d="M3629.19 3545.23l61.96 101.23c1.52,2.47 2.74,4.5 4.35,7.14 0.75,1.23 1.5,2.48 2.19,3.61l2.67 3.69 73.52 -108.26c1.44,-2.12 3.28,-5.9 5.55,-7.17l30.68 0.04c-0.96,2.72 -4.98,8 -6.67,10.49 -2.37,3.52 -4.57,6.62 -6.76,10.01 -12.19,18.88 -28.35,41.88 -41.21,60.91 -9.2,13.62 -17.94,26.66 -27.28,40.28 -3.28,4.78 -25.87,39.14 -27.84,40.39 -3.97,-5.11 -68.87,-112.4 -74.45,-121.56 -1.72,-2.83 -23.97,-38.71 -24.59,-40.8l27.87 0.02z"/>
|
|
61
|
+
</g>
|
|
62
|
+
<g>
|
|
63
|
+
<path class="fil1 str0" d="M3575.63 4724.07c0.61,-2.08 22.87,-37.97 24.59,-40.79 5.58,-9.17 70.48,-116.45 74.45,-121.57 1.96,1.26 24.56,35.61 27.84,40.4 9.33,13.62 18.07,26.66 27.28,40.27 12.86,19.03 29.03,42.02 41.21,60.91 2.19,3.39 4.38,6.49 6.76,10 1.69,2.5 5.7,7.78 6.67,10.5l-30.68 0.04c-2.27,-1.27 -4.11,-5.05 -5.55,-7.17l-73.52 -108.26 -2.67 3.69c-0.68,1.13 -1.44,2.38 -2.19,3.6 -1.61,2.65 -2.84,4.68 -4.35,7.14l-61.96 101.23 -27.87 0.01zm202.72 4.17c7.86,-0.01 16.14,1.72 11.28,-5.37 -2.54,-3.71 -5,-7.44 -7.6,-11.25l-45.85 -67.77c-16.5,-25.2 -36.23,-53.7 -53.46,-79.02 -3.69,-5.42 -5.32,-9.97 -9.23,-9.7l-91.86 150.37c-2.33,3.83 -4.34,6.96 -6.59,10.69 -2.49,4.13 -6.14,8.61 -5.43,11.49 2.53,1.47 26.91,0.86 31.06,0.88 -0.74,2.28 -13.39,22.33 -15.8,26.3l-15.78 25.76 221.63 -0.07c-0.2,-3.53 -32.2,-46.93 -34.33,-52.26l21.97 -0.04z"/>
|
|
64
|
+
<path class="fil1 str0" d="M3603.5 4724.06l61.96 -101.23c1.52,-2.46 2.74,-4.49 4.35,-7.14 0.75,-1.22 1.5,-2.48 2.19,-3.6l2.67 -3.69 73.52 108.26c1.44,2.12 3.28,5.9 5.55,7.17l30.68 -0.04c-0.96,-2.72 -4.98,-8 -6.67,-10.5 -2.37,-3.52 -4.57,-6.61 -6.76,-10 -12.19,-18.89 -28.35,-41.88 -41.21,-60.91 -9.2,-13.61 -17.94,-26.65 -27.28,-40.27 -3.28,-4.78 -25.87,-39.14 -27.84,-40.4 -3.97,5.11 -68.87,112.4 -74.45,121.57 -1.72,2.82 -23.97,38.71 -24.59,40.79l27.87 -0.01z"/>
|
|
65
|
+
</g>
|
|
66
|
+
<g>
|
|
67
|
+
<path class="fil1 str0" d="M6455.66 1898.16c-2.08,0.61 -37.97,22.87 -40.79,24.59 -9.16,5.58 -116.45,70.48 -121.57,74.45 1.26,1.96 35.61,24.56 40.4,27.84 13.62,9.33 26.66,18.07 40.27,27.28 19.03,12.86 42.03,29.02 60.91,41.21 3.39,2.19 6.49,4.38 10.01,6.75 2.5,1.69 7.77,5.71 10.49,6.67l0.04 -30.69c-1.27,-2.27 -5.05,-4.11 -7.17,-5.55l-108.26 -73.52 3.69 -2.67c1.13,-0.68 2.38,-1.44 3.6,-2.19 2.65,-1.61 4.68,-2.84 7.15,-4.35l101.23 -61.96 0.01 -27.87zm4.17 202.72c-0.01,7.86 1.72,16.14 -5.37,11.28 -3.71,-2.54 -7.44,-5 -11.25,-7.59l-67.77 -45.85c-25.2,-16.5 -53.7,-36.24 -79.02,-53.46 -5.42,-3.69 -9.97,-5.31 -9.7,-9.23l150.37 -91.86c3.83,-2.33 6.96,-4.34 10.69,-6.59 4.13,-2.49 8.62,-6.14 11.49,-5.43 1.47,2.54 0.86,26.91 0.88,31.06 2.28,-0.74 22.33,-13.39 26.3,-15.8l25.76 -15.78 -0.06 221.63c-3.54,-0.2 -46.94,-32.2 -52.27,-34.33l-0.04 21.97z"/>
|
|
68
|
+
<path class="fil1 str0" d="M6455.65 1926.03l-101.23 61.96c-2.47,1.52 -4.5,2.74 -7.15,4.35 -1.22,0.75 -2.48,1.5 -3.6,2.19l-3.69 2.67 108.26 73.52c2.12,1.44 5.9,3.28 7.17,5.55l-0.04 30.69c-2.72,-0.96 -8,-4.99 -10.49,-6.67 -3.52,-2.37 -6.62,-4.57 -10.01,-6.75 -18.88,-12.19 -41.88,-28.35 -60.91,-41.21 -13.61,-9.2 -26.65,-17.95 -40.27,-27.28 -4.78,-3.28 -39.14,-25.88 -40.4,-27.84 5.11,-3.98 112.41,-68.87 121.57,-74.45 2.82,-1.72 38.71,-23.97 40.79,-24.59l-0.01 27.87z"/>
|
|
69
|
+
</g>
|
|
70
|
+
<g>
|
|
71
|
+
<path class="fil1 str0" d="M6414.45 6149.01c-2.08,0.61 -37.97,22.87 -40.79,24.59 -9.17,5.58 -116.45,70.48 -121.57,74.45 1.26,1.96 35.61,24.56 40.4,27.84 13.62,9.33 26.66,18.07 40.27,27.28 19.03,12.86 42.02,29.03 60.91,41.21 3.39,2.19 6.49,4.38 10,6.75 2.5,1.69 7.78,5.71 10.5,6.67l0.04 -30.68c-1.27,-2.27 -5.05,-4.11 -7.17,-5.55l-108.26 -73.52 3.69 -2.67c1.13,-0.68 2.38,-1.44 3.61,-2.19 2.65,-1.61 4.67,-2.84 7.14,-4.36l101.23 -61.96 0.01 -27.87zm4.16 202.72c-0.01,7.86 1.72,16.13 -5.37,11.28 -3.7,-2.54 -7.44,-5 -11.25,-7.6l-67.77 -45.85c-25.21,-16.5 -53.7,-36.23 -79.02,-53.46 -5.42,-3.69 -9.97,-5.32 -9.7,-9.23l150.37 -91.86c3.83,-2.33 6.96,-4.34 10.69,-6.59 4.13,-2.49 8.61,-6.14 11.49,-5.43 1.47,2.53 0.86,26.91 0.87,31.06 2.28,-0.74 22.34,-13.39 26.3,-15.8l25.76 -15.78 -0.07 221.63c-3.54,-0.2 -46.93,-32.2 -52.27,-34.33l-0.04 21.97z"/>
|
|
72
|
+
<path class="fil1 str0" d="M6414.44 6176.88l-101.23 61.96c-2.47,1.52 -4.49,2.74 -7.14,4.36 -1.22,0.75 -2.48,1.5 -3.61,2.19l-3.69 2.67 108.26 73.52c2.13,1.44 5.91,3.28 7.17,5.55l-0.04 30.68c-2.72,-0.96 -8,-4.98 -10.5,-6.67 -3.52,-2.37 -6.62,-4.56 -10,-6.75 -18.89,-12.19 -41.88,-28.35 -60.91,-41.21 -13.61,-9.2 -26.65,-17.94 -40.27,-27.28 -4.79,-3.28 -39.14,-25.87 -40.4,-27.84 5.11,-3.97 112.4,-68.87 121.57,-74.45 2.82,-1.72 38.71,-23.97 40.79,-24.59l-0.01 27.87z"/>
|
|
73
|
+
</g>
|
|
74
|
+
</g>
|
|
75
|
+
<path class="fil2" d="M6112.57 3128.73c-14.76,21.66 -64.98,89.76 -67.68,108.99l331.68 1.15 -0.59 542.04c-121.35,-48.77 -145.85,-100.05 -360.87,-143.92 -1044.28,-213.08 -1790.7,1031.07 -1034.68,1851.73 140.35,152.35 374.13,305.87 670.59,343.11 324.68,40.78 583.4,-63.4 789.16,-206.96 99,-69.07 181.35,-156.72 252.76,-253.09 193.39,-261.02 206.15,-500.15 206,-808.62 -0.09,-163.72 5.83,-338.16 -0.27,-500.44l-12.15 12.5c-1.1,1.26 -2.52,2.89 -3.6,4.2l-63.76 88.39c-147.3,180.46 -313.49,250.43 -401.69,480.41 -34.56,90.13 -34.66,188.58 -68.36,278.48 -234.55,625.75 -1116.9,466.02 -1157.45,-160.94 -6.85,-105.99 15.51,-212.45 57.29,-295.74 203.72,-406.21 736.04,-456.04 1006.65,-111.88 23.54,29.95 45.26,76.2 69.75,105.61l27.05 -32.61c27.43,-43.07 101.06,-128.11 132.59,-156.44l173.41 -159c255,-291.62 229.88,-511.28 241.86,-877.89l334.64 0.96c-7.57,-26.85 -54.16,-83.21 -73.19,-112.04l-223.79 -332.67c-53.89,-76.28 -101.29,-149.25 -150.69,-225.38 -24.36,-37.54 -130.37,-198.76 -152.5,-216.82l-522.17 776.88z"/>
|
|
76
|
+
<g style="clip-path:url(#id0)">
|
|
77
|
+
<g>
|
|
78
|
+
<circle class="fil3" transform="matrix(2.68397 -0.91885 0.741946 2.05676 5231.11 3048.95)" r="807.29"/>
|
|
79
|
+
</g>
|
|
80
|
+
</g>
|
|
81
|
+
<path class="fil0" d="M6112.57 3128.73c-14.76,21.66 -64.98,89.76 -67.68,108.99l331.68 1.15 -0.59 542.04c-121.35,-48.77 -145.85,-100.05 -360.87,-143.92 -1044.28,-213.08 -1790.7,1031.07 -1034.68,1851.73 140.35,152.35 374.13,305.87 670.59,343.11 324.68,40.78 583.4,-63.4 789.16,-206.96 99,-69.07 181.35,-156.72 252.76,-253.09 193.39,-261.02 206.15,-500.15 206,-808.62 -0.09,-163.72 5.83,-338.16 -0.27,-500.44l-12.15 12.5c-1.1,1.26 -2.52,2.89 -3.6,4.2l-63.76 88.39c-147.3,180.46 -313.49,250.43 -401.69,480.41 -34.56,90.13 -34.66,188.58 -68.36,278.48 -234.55,625.75 -1116.9,466.02 -1157.45,-160.94 -6.85,-105.99 15.51,-212.45 57.29,-295.74 203.72,-406.21 736.04,-456.04 1006.65,-111.88 23.54,29.95 45.26,76.2 69.75,105.61l27.05 -32.61c27.43,-43.07 101.06,-128.11 132.59,-156.44l173.41 -159c255,-291.62 229.88,-511.28 241.86,-877.89l334.64 0.96c-7.57,-26.85 -54.16,-83.21 -73.19,-112.04l-223.79 -332.67c-53.89,-76.28 -101.29,-149.25 -150.69,-225.38 -24.36,-37.54 -130.37,-198.76 -152.5,-216.82l-522.17 776.88z"/>
|
|
82
|
+
</g>
|
|
83
|
+
</g>
|
|
84
|
+
</g>
|
|
85
|
+
</svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AdminThemeController } from '../controllers/theme';
|
|
2
2
|
import * as React from "react";
|
|
3
|
-
export
|
|
4
|
-
theme: AdminThemePreference;
|
|
5
|
-
resolvedTheme: ResolvedAdminTheme;
|
|
6
|
-
setTheme: (theme: AdminThemePreference) => void;
|
|
7
|
-
themeClassName: string;
|
|
8
|
-
}
|
|
9
|
-
export declare const AdminThemeContext: React.Context<AdminThemeContextValue>;
|
|
3
|
+
export declare const AdminThemeContext: React.Context<AdminThemeController>;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { AdminThemeController } from '../controllers/theme';
|
|
1
2
|
import * as React from "react";
|
|
2
|
-
export declare function AdminThemeProvider({ children }: {
|
|
3
|
+
export declare function AdminThemeProvider({ children, controller, }: {
|
|
3
4
|
children: React.ReactNode;
|
|
5
|
+
controller?: AdminThemeController;
|
|
4
6
|
}): React.JSX.Element;
|
|
5
7
|
export declare function AdminThemedRoot({ children }: {
|
|
6
8
|
children: React.ReactNode;
|
|
@@ -2,3 +2,4 @@ export type AdminThemePreference = "system" | "light" | "dark";
|
|
|
2
2
|
export type ResolvedAdminTheme = "light" | "dark";
|
|
3
3
|
export declare function resolveAdminTheme(preference: AdminThemePreference, systemTheme: ResolvedAdminTheme): ResolvedAdminTheme;
|
|
4
4
|
export declare function adminThemeClassName(resolvedTheme: ResolvedAdminTheme): "dy-admin-ui dark" | "dy-admin-ui";
|
|
5
|
+
export declare function getSystemAdminTheme(): ResolvedAdminTheme;
|
|
@@ -1,25 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export interface UseAddMediaFromUrlOptions {
|
|
4
|
-
/** Collection slug to create the external media record in. */
|
|
5
|
-
collection: string;
|
|
6
|
-
/** Called with the created media record after a successful add. */
|
|
7
|
-
onAdded: (media: Media & {
|
|
8
|
-
id: string;
|
|
9
|
-
}) => void | Promise<void>;
|
|
10
|
-
/** Called if the create request fails. */
|
|
11
|
-
onError?: (error: Error) => void;
|
|
1
|
+
import { UseMediaURLOptions } from './use-media-url';
|
|
2
|
+
export interface UseAddMediaFromUrlOptions extends UseMediaURLOptions {
|
|
12
3
|
}
|
|
13
4
|
/**
|
|
14
|
-
*
|
|
15
|
-
* upload dialog and the media library picker dialog. Owns the URL input state and
|
|
16
|
-
* the detect → create → callback pipeline so every surface behaves identically for
|
|
17
|
-
* YouTube, Vimeo, external images, and generic files.
|
|
5
|
+
* @deprecated Use `useMediaURL` for new code. This alias exists for backwards compatibility.
|
|
18
6
|
*/
|
|
19
|
-
export declare function useAddMediaFromUrl(
|
|
7
|
+
export declare function useAddMediaFromUrl(options: UseAddMediaFromUrlOptions): {
|
|
20
8
|
url: string;
|
|
21
|
-
setUrl:
|
|
9
|
+
setUrl: import('react').Dispatch<import('react').SetStateAction<string>>;
|
|
22
10
|
submit: () => Promise<void>;
|
|
11
|
+
importURL: (url: string) => Promise<import('..').MediaRecord>;
|
|
12
|
+
classifyURL: (nextUrl: string) => import('..').MediaURLClassification;
|
|
23
13
|
isSubmitting: boolean;
|
|
24
14
|
canSubmit: boolean;
|
|
15
|
+
activeCollection: string;
|
|
25
16
|
};
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
import { AdminThemeHookResult } from '../public/contracts';
|
|
1
2
|
export type { AdminThemePreference, ResolvedAdminTheme } from './admin-theme';
|
|
2
|
-
export declare function useAdminTheme():
|
|
3
|
+
export declare function useAdminTheme(): AdminThemeHookResult;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { MediaRecord } from '../controllers/media';
|
|
2
|
+
export interface UseMediaLibraryOptions {
|
|
3
|
+
collection: string;
|
|
4
|
+
pageSize?: number;
|
|
5
|
+
initialSearchQuery?: string;
|
|
6
|
+
initialSelectedIds?: string[];
|
|
7
|
+
}
|
|
8
|
+
export declare function useMediaLibrary({ collection, pageSize, initialSearchQuery, initialSelectedIds, }: UseMediaLibraryOptions): {
|
|
9
|
+
load: () => Promise<MediaRecord[]>;
|
|
10
|
+
search: (query: string) => Promise<MediaRecord[]>;
|
|
11
|
+
loadNextPage: () => Promise<MediaRecord[]>;
|
|
12
|
+
setSelectedIds: (ids: string[]) => void;
|
|
13
|
+
select: (id: string) => void;
|
|
14
|
+
deselect: (id: string) => void;
|
|
15
|
+
toggle: (id: string) => void;
|
|
16
|
+
clearSelection: () => void;
|
|
17
|
+
selectedItems: MediaRecord[];
|
|
18
|
+
activeCollection: string;
|
|
19
|
+
items: MediaRecord[];
|
|
20
|
+
selectedIds: string[];
|
|
21
|
+
searchQuery: string;
|
|
22
|
+
page: number;
|
|
23
|
+
hasNextPage: boolean;
|
|
24
|
+
isLoading: boolean;
|
|
25
|
+
error: Error | null;
|
|
26
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { MediaRecord } from '../controllers/media';
|
|
2
|
+
export interface UseMediaUploadOptions {
|
|
3
|
+
collectionSlug?: string;
|
|
4
|
+
compressImages?: boolean;
|
|
5
|
+
maxDimension?: number;
|
|
6
|
+
quality?: number;
|
|
7
|
+
onCompletedItem?: (item: MediaRecord) => void | Promise<void>;
|
|
8
|
+
onAllCompleted?: (items: MediaRecord[]) => void | Promise<void>;
|
|
9
|
+
onError?: (error: Error, file: File) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare function useMediaUpload({ collectionSlug, compressImages, maxDimension, quality, onCompletedItem, onAllCompleted, onError, }?: UseMediaUploadOptions): {
|
|
12
|
+
queue: import('..').MediaUploadQueueItem[];
|
|
13
|
+
isUploading: boolean;
|
|
14
|
+
activeCollection: string;
|
|
15
|
+
uploadFiles: (files: File[]) => Promise<MediaRecord[]>;
|
|
16
|
+
retryUpload: (id: string) => Promise<MediaRecord | null>;
|
|
17
|
+
removeQueueItem: (id: string) => void;
|
|
18
|
+
clearCompleted: () => void;
|
|
19
|
+
clearQueue: () => void;
|
|
20
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { MediaRecord, MediaURLClassification } from '../controllers/media';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
export interface UseMediaURLOptions {
|
|
4
|
+
collection: string;
|
|
5
|
+
compressImages?: boolean;
|
|
6
|
+
maxDimension?: number;
|
|
7
|
+
quality?: number;
|
|
8
|
+
onAdded?: (media: MediaRecord) => void | Promise<void>;
|
|
9
|
+
onError?: (error: Error) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare function useMediaURL({ collection, compressImages, maxDimension, quality, onAdded, onError, }: UseMediaURLOptions): {
|
|
12
|
+
url: string;
|
|
13
|
+
setUrl: React.Dispatch<React.SetStateAction<string>>;
|
|
14
|
+
submit: () => Promise<void>;
|
|
15
|
+
importURL: (url: string) => Promise<MediaRecord>;
|
|
16
|
+
classifyURL: (nextUrl: string) => MediaURLClassification;
|
|
17
|
+
isSubmitting: boolean;
|
|
18
|
+
canSubmit: boolean;
|
|
19
|
+
activeCollection: string;
|
|
20
|
+
};
|