strapi-plugin-magic-mark 3.2.5 → 3.2.7
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/package.json +1 -11
- package/dist/admin/src/components/AdvancedFilterButton.d.ts +0 -3
- package/dist/admin/src/components/AdvancedFilterModal.d.ts +0 -21
- package/dist/admin/src/components/CreateEditModal.d.ts +0 -11
- package/dist/admin/src/components/CreateViewModal.d.ts +0 -9
- package/dist/admin/src/components/CustomSelect.d.ts +0 -13
- package/dist/admin/src/components/FilterPreview.d.ts +0 -6
- package/dist/admin/src/components/HomePage.d.ts +0 -0
- package/dist/admin/src/components/Initializer.d.ts +0 -6
- package/dist/admin/src/components/LicenseGuard.d.ts +0 -6
- package/dist/admin/src/components/PluginIcon.d.ts +0 -3
- package/dist/admin/src/components/QueryBuilder.d.ts +0 -34
- package/dist/admin/src/components/RelationFieldSelector.d.ts +0 -24
- package/dist/admin/src/components/SimpleAdvancedFilterModal.d.ts +0 -17
- package/dist/admin/src/components/UpgradePrompt.d.ts +0 -22
- package/dist/admin/src/components/ViewsListPopover.d.ts +0 -2
- package/dist/admin/src/components/ViewsWidget.d.ts +0 -8
- package/dist/admin/src/hooks/useFeatureGate.d.ts +0 -88
- package/dist/admin/src/hooks/useRelationSchema.d.ts +0 -27
- package/dist/admin/src/index.d.ts +0 -15
- package/dist/admin/src/pages/App.d.ts +0 -3
- package/dist/admin/src/pages/HomePage.d.ts +0 -3
- package/dist/admin/src/pages/HomePageModern.d.ts +0 -3
- package/dist/admin/src/pages/License/index.d.ts +0 -3
- package/dist/admin/src/pages/UpgradePage.d.ts +0 -6
- package/dist/admin/src/permissions.d.ts +0 -15
- package/dist/admin/src/pluginId.d.ts +0 -2
- package/dist/admin/src/utils/queryGenerator.d.ts +0 -32
- package/dist/admin/src/utils/queryParser.d.ts +0 -25
- package/dist/admin/src/utils/queryToStructure.d.ts +0 -27
- package/dist/admin/src/utils/theme.d.ts +0 -95
- package/dist/server/src/bootstrap.d.ts +0 -5
- package/dist/server/src/config/index.d.ts +0 -7
- package/dist/server/src/content-types/index.d.ts +0 -92
- package/dist/server/src/controllers/controller.d.ts +0 -49
- package/dist/server/src/controllers/index.d.ts +0 -21
- package/dist/server/src/controllers/license.d.ts +0 -31
- package/dist/server/src/destroy.d.ts +0 -5
- package/dist/server/src/index.d.ts +0 -218
- package/dist/server/src/middlewares/index.d.ts +0 -4
- package/dist/server/src/middlewares/license-check.d.ts +0 -6
- package/dist/server/src/policies/index.d.ts +0 -4
- package/dist/server/src/policies/license-check.d.ts +0 -6
- package/dist/server/src/register.d.ts +0 -5
- package/dist/server/src/routes/admin.d.ts +0 -12
- package/dist/server/src/routes/content-api.d.ts +0 -5
- package/dist/server/src/routes/index.d.ts +0 -18
- package/dist/server/src/services/index.d.ts +0 -67
- package/dist/server/src/services/license-guard.d.ts +0 -149
- package/dist/server/src/services/service.d.ts +0 -78
- package/dist/server/src/utils/logger.d.ts +0 -15
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "3.2.
|
|
2
|
+
"version": "3.2.7",
|
|
3
3
|
"keywords": [
|
|
4
4
|
"strapi",
|
|
5
5
|
"strapi-plugin",
|
|
@@ -15,14 +15,12 @@
|
|
|
15
15
|
"exports": {
|
|
16
16
|
"./package.json": "./package.json",
|
|
17
17
|
"./strapi-admin": {
|
|
18
|
-
"types": "./dist/admin/src/index.d.ts",
|
|
19
18
|
"source": "./admin/src/index.ts",
|
|
20
19
|
"import": "./dist/admin/index.mjs",
|
|
21
20
|
"require": "./dist/admin/index.js",
|
|
22
21
|
"default": "./dist/admin/index.js"
|
|
23
22
|
},
|
|
24
23
|
"./strapi-server": {
|
|
25
|
-
"types": "./dist/server/src/index.d.ts",
|
|
26
24
|
"source": "./server/src/index.ts",
|
|
27
25
|
"import": "./dist/server/index.mjs",
|
|
28
26
|
"require": "./dist/server/index.js",
|
|
@@ -73,14 +71,6 @@
|
|
|
73
71
|
"styled-components": "^6.1.19",
|
|
74
72
|
"typescript": "^5.9.3"
|
|
75
73
|
},
|
|
76
|
-
"optionalDependencies": {
|
|
77
|
-
"@swc/core-darwin-arm64": "*",
|
|
78
|
-
"@swc/core-linux-x64-gnu": "*",
|
|
79
|
-
"@swc/core-linux-x64-musl": "*",
|
|
80
|
-
"@rollup/rollup-darwin-arm64": "*",
|
|
81
|
-
"@rollup/rollup-linux-x64-gnu": "*",
|
|
82
|
-
"@rollup/rollup-linux-x64-musl": "*"
|
|
83
|
-
},
|
|
84
74
|
"peerDependencies": {
|
|
85
75
|
"@strapi/sdk-plugin": "^5.3.2",
|
|
86
76
|
"@strapi/strapi": "^5.29.0",
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
interface FilterCondition {
|
|
3
|
-
id: string;
|
|
4
|
-
field: string;
|
|
5
|
-
operator: string;
|
|
6
|
-
value: string;
|
|
7
|
-
}
|
|
8
|
-
interface AdvancedFilterModalProps {
|
|
9
|
-
onClose: () => void;
|
|
10
|
-
onApply: (queryString: string) => void;
|
|
11
|
-
availableFields: Array<{
|
|
12
|
-
name: string;
|
|
13
|
-
type: string;
|
|
14
|
-
}>;
|
|
15
|
-
availableRelations?: Array<{
|
|
16
|
-
name: string;
|
|
17
|
-
}>;
|
|
18
|
-
currentFilters?: FilterCondition[];
|
|
19
|
-
}
|
|
20
|
-
declare const AdvancedFilterModal: React.FC<AdvancedFilterModalProps>;
|
|
21
|
-
export default AdvancedFilterModal;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
interface CreateEditModalProps {
|
|
3
|
-
bookmark: any | null;
|
|
4
|
-
onClose: () => void;
|
|
5
|
-
onSuccess: () => void;
|
|
6
|
-
pluginId: string;
|
|
7
|
-
currentPath?: string;
|
|
8
|
-
currentQuery?: string;
|
|
9
|
-
}
|
|
10
|
-
declare const CreateEditModal: React.FC<CreateEditModalProps>;
|
|
11
|
-
export default CreateEditModal;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
interface CustomSelectProps {
|
|
3
|
-
value: string;
|
|
4
|
-
onChange: (value: string) => void;
|
|
5
|
-
options: Array<{
|
|
6
|
-
value: string;
|
|
7
|
-
label: string;
|
|
8
|
-
}>;
|
|
9
|
-
placeholder?: string;
|
|
10
|
-
searchable?: boolean;
|
|
11
|
-
}
|
|
12
|
-
declare const CustomSelect: React.FC<CustomSelectProps>;
|
|
13
|
-
export default CustomSelect;
|
|
File without changes
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
interface Condition {
|
|
3
|
-
id: string;
|
|
4
|
-
field: string;
|
|
5
|
-
/** Field path for deep filtering (e.g., ['user', 'role', 'name']) */
|
|
6
|
-
fieldPath?: string[];
|
|
7
|
-
operator: string;
|
|
8
|
-
value: string;
|
|
9
|
-
}
|
|
10
|
-
interface ConditionGroup {
|
|
11
|
-
id: string;
|
|
12
|
-
logic: 'AND' | 'OR';
|
|
13
|
-
conditions: (Condition | ConditionGroup)[];
|
|
14
|
-
isGroup?: boolean;
|
|
15
|
-
}
|
|
16
|
-
interface RelationInfo {
|
|
17
|
-
name: string;
|
|
18
|
-
target?: string;
|
|
19
|
-
}
|
|
20
|
-
interface QueryBuilderProps {
|
|
21
|
-
availableFields: Array<{
|
|
22
|
-
name: string;
|
|
23
|
-
type: string;
|
|
24
|
-
}>;
|
|
25
|
-
/** Relations with their target UIDs for deep filtering */
|
|
26
|
-
availableRelations?: RelationInfo[];
|
|
27
|
-
onQueryChange: (query: ConditionGroup) => void;
|
|
28
|
-
initialStructure?: ConditionGroup | null;
|
|
29
|
-
isPremium?: boolean;
|
|
30
|
-
/** Enable deep relation filtering (requires Premium) */
|
|
31
|
-
enableDeepFiltering?: boolean;
|
|
32
|
-
}
|
|
33
|
-
declare const QueryBuilder: React.FC<QueryBuilderProps>;
|
|
34
|
-
export default QueryBuilder;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
interface Field {
|
|
3
|
-
name: string;
|
|
4
|
-
type: string;
|
|
5
|
-
isRelation?: boolean;
|
|
6
|
-
target?: string;
|
|
7
|
-
}
|
|
8
|
-
interface Props {
|
|
9
|
-
availableFields: Field[];
|
|
10
|
-
availableRelations: Array<{
|
|
11
|
-
name: string;
|
|
12
|
-
target?: string;
|
|
13
|
-
}>;
|
|
14
|
-
fieldPath: string[];
|
|
15
|
-
onChange: (fieldPath: string[]) => void;
|
|
16
|
-
maxDepth?: number;
|
|
17
|
-
showBreadcrumb?: boolean;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Horizontal cascading field selector for relation filtering
|
|
21
|
-
* Layout: [Field] > [Nested] > [Nested] in one row
|
|
22
|
-
*/
|
|
23
|
-
declare const RelationFieldSelector: React.FC<Props>;
|
|
24
|
-
export default RelationFieldSelector;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
interface SimpleAdvancedFilterModalProps {
|
|
3
|
-
onClose: () => void;
|
|
4
|
-
onApply: (queryString: string) => void;
|
|
5
|
-
availableFields: Array<{
|
|
6
|
-
name: string;
|
|
7
|
-
type: string;
|
|
8
|
-
}>;
|
|
9
|
-
/** Relations with their target UIDs for deep filtering */
|
|
10
|
-
availableRelations?: Array<{
|
|
11
|
-
name: string;
|
|
12
|
-
target?: string;
|
|
13
|
-
}>;
|
|
14
|
-
currentQuery?: string;
|
|
15
|
-
}
|
|
16
|
-
declare const SimpleAdvancedFilterModal: React.FC<SimpleAdvancedFilterModalProps>;
|
|
17
|
-
export default SimpleAdvancedFilterModal;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
interface UpgradePromptProps {
|
|
3
|
-
feature: string;
|
|
4
|
-
tier?: 'premium' | 'advanced';
|
|
5
|
-
variant?: 'inline' | 'banner' | 'modal';
|
|
6
|
-
title?: string;
|
|
7
|
-
description?: string;
|
|
8
|
-
showIcon?: boolean;
|
|
9
|
-
onUpgradeClick?: () => void;
|
|
10
|
-
}
|
|
11
|
-
declare const UpgradePrompt: React.FC<UpgradePromptProps>;
|
|
12
|
-
/**
|
|
13
|
-
* Higher-order component to wrap features with paywall
|
|
14
|
-
*/
|
|
15
|
-
export declare const withFeatureGate: <P extends object>(WrappedComponent: React.ComponentType<P>, feature: string, tier?: 'premium' | 'advanced') => (props: P & {
|
|
16
|
-
canUse?: boolean;
|
|
17
|
-
}) => import("react/jsx-runtime").JSX.Element;
|
|
18
|
-
/**
|
|
19
|
-
* Feature lock overlay for disabling UI elements
|
|
20
|
-
*/
|
|
21
|
-
export declare const FeatureLockOverlay: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
22
|
-
export default UpgradePrompt;
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Feature definitions for MagicMark
|
|
3
|
-
* Maps feature keys to their required tier
|
|
4
|
-
*/
|
|
5
|
-
export declare const FEATURES: {
|
|
6
|
-
readonly basicBookmarks: {
|
|
7
|
-
readonly tier: "free";
|
|
8
|
-
readonly limit: 10;
|
|
9
|
-
};
|
|
10
|
-
readonly basicFilters: {
|
|
11
|
-
readonly tier: "free";
|
|
12
|
-
};
|
|
13
|
-
readonly extendedBookmarks: {
|
|
14
|
-
readonly tier: "premium";
|
|
15
|
-
readonly limit: 50;
|
|
16
|
-
};
|
|
17
|
-
readonly queryHistory: {
|
|
18
|
-
readonly tier: "premium";
|
|
19
|
-
};
|
|
20
|
-
readonly exportBookmarks: {
|
|
21
|
-
readonly tier: "premium";
|
|
22
|
-
};
|
|
23
|
-
readonly sharedBookmarks: {
|
|
24
|
-
readonly tier: "premium";
|
|
25
|
-
};
|
|
26
|
-
readonly unlimitedBookmarks: {
|
|
27
|
-
readonly tier: "advanced";
|
|
28
|
-
readonly limit: -1;
|
|
29
|
-
};
|
|
30
|
-
readonly advancedFilters: {
|
|
31
|
-
readonly tier: "advanced";
|
|
32
|
-
};
|
|
33
|
-
readonly subGroups: {
|
|
34
|
-
readonly tier: "advanced";
|
|
35
|
-
};
|
|
36
|
-
readonly bulkOperations: {
|
|
37
|
-
readonly tier: "advanced";
|
|
38
|
-
};
|
|
39
|
-
readonly analytics: {
|
|
40
|
-
readonly tier: "advanced";
|
|
41
|
-
};
|
|
42
|
-
readonly customIntegrations: {
|
|
43
|
-
readonly tier: "advanced";
|
|
44
|
-
};
|
|
45
|
-
};
|
|
46
|
-
export type FeatureKey = keyof typeof FEATURES;
|
|
47
|
-
interface LicenseLimits {
|
|
48
|
-
maxBookmarks: number;
|
|
49
|
-
currentBookmarks: number;
|
|
50
|
-
canCreate: boolean;
|
|
51
|
-
tier: 'free' | 'premium' | 'advanced';
|
|
52
|
-
features: {
|
|
53
|
-
queryHistory: boolean;
|
|
54
|
-
export: boolean;
|
|
55
|
-
analytics: boolean;
|
|
56
|
-
bulkOperations: boolean;
|
|
57
|
-
customIntegrations: boolean;
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
interface UseFeatureGateResult {
|
|
61
|
-
canUse: boolean;
|
|
62
|
-
tier: string;
|
|
63
|
-
requiredTier: string;
|
|
64
|
-
isLoading: boolean;
|
|
65
|
-
showUpgrade: () => void;
|
|
66
|
-
limits: LicenseLimits | null;
|
|
67
|
-
isPremium: boolean;
|
|
68
|
-
isAdvanced: boolean;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Hook to check if a feature is available based on license
|
|
72
|
-
* @param feature - Feature key to check
|
|
73
|
-
* @returns Object with canUse boolean and upgrade function
|
|
74
|
-
*/
|
|
75
|
-
export declare const useFeatureGate: (feature: FeatureKey) => UseFeatureGateResult;
|
|
76
|
-
/**
|
|
77
|
-
* Simplified hook to get all license info
|
|
78
|
-
*/
|
|
79
|
-
export declare const useLicenseInfo: () => {
|
|
80
|
-
isLoading: boolean;
|
|
81
|
-
limits: LicenseLimits;
|
|
82
|
-
tier: "free" | "premium" | "advanced";
|
|
83
|
-
isFree: boolean;
|
|
84
|
-
isPremium: boolean;
|
|
85
|
-
isAdvanced: boolean;
|
|
86
|
-
canUseFeature: (feature: FeatureKey) => boolean;
|
|
87
|
-
};
|
|
88
|
-
export default useFeatureGate;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
interface SchemaAttribute {
|
|
2
|
-
type: string;
|
|
3
|
-
relation?: string;
|
|
4
|
-
target?: string;
|
|
5
|
-
required?: boolean;
|
|
6
|
-
[key: string]: any;
|
|
7
|
-
}
|
|
8
|
-
interface RelationField {
|
|
9
|
-
name: string;
|
|
10
|
-
type: string;
|
|
11
|
-
isRelation: boolean;
|
|
12
|
-
target?: string;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Hook to fetch and cache relation schemas from the content-type-builder API
|
|
16
|
-
* Used for deep filtering on relation fields (e.g., user.email, user.role.name)
|
|
17
|
-
*/
|
|
18
|
-
export declare const useRelationSchema: () => {
|
|
19
|
-
fetchSchema: (uid: string) => Promise<Record<string, SchemaAttribute> | null>;
|
|
20
|
-
getFilterableFields: (uid: string) => Promise<RelationField[]>;
|
|
21
|
-
getRelationFields: (relationTarget: string) => Promise<RelationField[]>;
|
|
22
|
-
clearCache: () => void;
|
|
23
|
-
getCachedSchema: (uid: string) => Record<string, SchemaAttribute> | null;
|
|
24
|
-
loading: Record<string, boolean>;
|
|
25
|
-
errors: Record<string, string>;
|
|
26
|
-
};
|
|
27
|
-
export default useRelationSchema;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { StrapiApp } from '@strapi/strapi/admin';
|
|
2
|
-
declare const _default: {
|
|
3
|
-
register(app: StrapiApp): void;
|
|
4
|
-
bootstrap(app: StrapiApp): Promise<void>;
|
|
5
|
-
registerTrads({ locales }: {
|
|
6
|
-
locales: string[];
|
|
7
|
-
}): Promise<({
|
|
8
|
-
data: Record<string, any>;
|
|
9
|
-
locale: string;
|
|
10
|
-
} | {
|
|
11
|
-
data: {};
|
|
12
|
-
locale: string;
|
|
13
|
-
})[]>;
|
|
14
|
-
};
|
|
15
|
-
export default _default;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
declare const pluginPermissions: {
|
|
2
|
-
accessSettings: {
|
|
3
|
-
action: string;
|
|
4
|
-
subject: any;
|
|
5
|
-
}[];
|
|
6
|
-
readSettings: {
|
|
7
|
-
action: string;
|
|
8
|
-
subject: any;
|
|
9
|
-
}[];
|
|
10
|
-
updateSettings: {
|
|
11
|
-
action: string;
|
|
12
|
-
subject: any;
|
|
13
|
-
}[];
|
|
14
|
-
};
|
|
15
|
-
export default pluginPermissions;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generates correct Strapi v5 filter query strings from QueryBuilder structure
|
|
3
|
-
* Based on: https://docs.strapi.io/cms/api/document-service/filters
|
|
4
|
-
* Supports deep relation filtering (e.g., user.role.name)
|
|
5
|
-
*/
|
|
6
|
-
export interface Condition {
|
|
7
|
-
id: string;
|
|
8
|
-
field: string;
|
|
9
|
-
/** Field path for deep filtering (e.g., ['user', 'role', 'name']) */
|
|
10
|
-
fieldPath?: string[];
|
|
11
|
-
operator: string;
|
|
12
|
-
value: string;
|
|
13
|
-
}
|
|
14
|
-
export interface ConditionGroup {
|
|
15
|
-
id: string;
|
|
16
|
-
logic: 'AND' | 'OR';
|
|
17
|
-
conditions: (Condition | ConditionGroup)[];
|
|
18
|
-
isGroup?: boolean;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Convert QueryBuilder structure to Strapi filter object
|
|
22
|
-
* Supports deep relation filtering via fieldPath
|
|
23
|
-
*/
|
|
24
|
-
export declare const structureToFilters: (group: ConditionGroup) => any;
|
|
25
|
-
/**
|
|
26
|
-
* Generate complete query string with filters, sort, and populate
|
|
27
|
-
*/
|
|
28
|
-
export declare const generateQueryString: (structure: ConditionGroup, sortField?: string, sortOrder?: 'ASC' | 'DESC', populateFields?: Array<{
|
|
29
|
-
name: string;
|
|
30
|
-
enabled: boolean;
|
|
31
|
-
deep: boolean;
|
|
32
|
-
}>) => string;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Parses URL query parameters and extracts filters, sorting, and population info
|
|
3
|
-
* into a human-readable format
|
|
4
|
-
*/
|
|
5
|
-
export interface ParsedFilter {
|
|
6
|
-
field: string;
|
|
7
|
-
operator: string;
|
|
8
|
-
value: string;
|
|
9
|
-
logic?: 'AND' | 'OR';
|
|
10
|
-
}
|
|
11
|
-
export interface ParsedQuery {
|
|
12
|
-
filters: ParsedFilter[];
|
|
13
|
-
sort: string[];
|
|
14
|
-
populate: string[];
|
|
15
|
-
page?: number;
|
|
16
|
-
pageSize?: number;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Parses query string into structured filter information
|
|
20
|
-
*/
|
|
21
|
-
export declare const parseQueryString: (queryString: string) => ParsedQuery;
|
|
22
|
-
/**
|
|
23
|
-
* Generates a human-readable summary of parsed query
|
|
24
|
-
*/
|
|
25
|
-
export declare const generateQuerySummary: (parsed: ParsedQuery) => string;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts URL query string back into QueryBuilder structure
|
|
3
|
-
* Supports deep relation filtering (e.g., filters[user][email][$contains]=admin)
|
|
4
|
-
*/
|
|
5
|
-
export interface Condition {
|
|
6
|
-
id: string;
|
|
7
|
-
field: string;
|
|
8
|
-
/** Field path for deep filtering (e.g., ['user', 'email']) */
|
|
9
|
-
fieldPath?: string[];
|
|
10
|
-
operator: string;
|
|
11
|
-
value: string;
|
|
12
|
-
}
|
|
13
|
-
export interface ConditionGroup {
|
|
14
|
-
id: string;
|
|
15
|
-
logic: 'AND' | 'OR';
|
|
16
|
-
conditions: (Condition | ConditionGroup)[];
|
|
17
|
-
isGroup?: boolean;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Parse URL query parameters into QueryBuilder structure
|
|
21
|
-
* Supports:
|
|
22
|
-
* - Simple filters: filters[$and][0][field][$eq]=value
|
|
23
|
-
* - Deep filters: filters[$and][0][user][email][$contains]=admin
|
|
24
|
-
* - Very deep filters: filters[$and][0][user][role][name][$eq]=Admin
|
|
25
|
-
* - Nested groups: filters[$and][1][$or][0][field][$eq]=value
|
|
26
|
-
*/
|
|
27
|
-
export declare const parseQueryToStructure: (queryString: string) => ConditionGroup;
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Dark Mode Compatible Theme
|
|
3
|
-
* Uses CSS variables from Strapi Design System
|
|
4
|
-
*/
|
|
5
|
-
export declare const theme: {
|
|
6
|
-
readonly colors: {
|
|
7
|
-
readonly primary: {
|
|
8
|
-
readonly 50: "var(--colors-primary100, #F0F9FF)";
|
|
9
|
-
readonly 100: "var(--colors-primary200, #E0F2FE)";
|
|
10
|
-
readonly 500: "var(--colors-primary600, #0EA5E9)";
|
|
11
|
-
readonly 600: "var(--colors-primary700, #0284C7)";
|
|
12
|
-
readonly 700: "var(--colors-primary700, #0369A1)";
|
|
13
|
-
};
|
|
14
|
-
readonly secondary: {
|
|
15
|
-
readonly 50: "var(--colors-secondary100, #F3E8FF)";
|
|
16
|
-
readonly 100: "var(--colors-secondary200, #E9D5FF)";
|
|
17
|
-
readonly 500: "var(--colors-secondary600, #A855F7)";
|
|
18
|
-
readonly 600: "var(--colors-secondary700, #9333EA)";
|
|
19
|
-
};
|
|
20
|
-
readonly success: {
|
|
21
|
-
readonly 50: "var(--colors-success100, #DCFCE7)";
|
|
22
|
-
readonly 100: "var(--colors-success100, #DCFCE7)";
|
|
23
|
-
readonly 500: "var(--colors-success600, #22C55E)";
|
|
24
|
-
readonly 600: "var(--colors-success700, #16A34A)";
|
|
25
|
-
readonly 700: "var(--colors-success700, #15803D)";
|
|
26
|
-
};
|
|
27
|
-
readonly warning: {
|
|
28
|
-
readonly 50: "var(--colors-warning100, #FEF3C7)";
|
|
29
|
-
readonly 100: "var(--colors-warning100, #FEF3C7)";
|
|
30
|
-
readonly 500: "var(--colors-warning600, #F59E0B)";
|
|
31
|
-
readonly 600: "var(--colors-warning700, #D97706)";
|
|
32
|
-
};
|
|
33
|
-
readonly danger: {
|
|
34
|
-
readonly 50: "var(--colors-danger100, #FEE2E2)";
|
|
35
|
-
readonly 100: "var(--colors-danger100, #FEE2E2)";
|
|
36
|
-
readonly 500: "var(--colors-danger600, #EF4444)";
|
|
37
|
-
readonly 600: "var(--colors-danger700, #DC2626)";
|
|
38
|
-
};
|
|
39
|
-
readonly neutral: {
|
|
40
|
-
readonly 0: "var(--colors-neutral0, #FFFFFF)";
|
|
41
|
-
readonly 50: "var(--colors-neutral100, #F9FAFB)";
|
|
42
|
-
readonly 100: "var(--colors-neutral150, #F3F4F6)";
|
|
43
|
-
readonly 200: "var(--colors-neutral200, #E5E7EB)";
|
|
44
|
-
readonly 400: "var(--colors-neutral400, #9CA3AF)";
|
|
45
|
-
readonly 500: "var(--colors-neutral500, #6B7280)";
|
|
46
|
-
readonly 600: "var(--colors-neutral600, #4B5563)";
|
|
47
|
-
readonly 700: "var(--colors-neutral700, #374151)";
|
|
48
|
-
readonly 800: "var(--colors-neutral800, #1F2937)";
|
|
49
|
-
readonly 900: "var(--colors-neutral900, #111827)";
|
|
50
|
-
};
|
|
51
|
-
};
|
|
52
|
-
readonly backgrounds: {
|
|
53
|
-
readonly primary: "var(--colors-neutral0, #FFFFFF)";
|
|
54
|
-
readonly secondary: "var(--colors-neutral100, #F9FAFB)";
|
|
55
|
-
readonly tertiary: "var(--colors-neutral150, #F3F4F6)";
|
|
56
|
-
readonly input: "var(--colors-neutral0, #FFFFFF)";
|
|
57
|
-
};
|
|
58
|
-
readonly text: {
|
|
59
|
-
readonly primary: "var(--colors-neutral800, #1F2937)";
|
|
60
|
-
readonly secondary: "var(--colors-neutral600, #4B5563)";
|
|
61
|
-
readonly muted: "var(--colors-neutral500, #6B7280)";
|
|
62
|
-
readonly inverse: "var(--colors-neutral0, #FFFFFF)";
|
|
63
|
-
};
|
|
64
|
-
readonly borders: {
|
|
65
|
-
readonly default: "var(--colors-neutral200, #E5E7EB)";
|
|
66
|
-
readonly strong: "var(--colors-neutral300, #D1D5DB)";
|
|
67
|
-
};
|
|
68
|
-
readonly shadows: {
|
|
69
|
-
readonly sm: "0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1)";
|
|
70
|
-
readonly md: "0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)";
|
|
71
|
-
readonly lg: "0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)";
|
|
72
|
-
readonly xl: "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1)";
|
|
73
|
-
};
|
|
74
|
-
readonly transitions: {
|
|
75
|
-
readonly fast: "150ms cubic-bezier(0.4, 0, 0.2, 1)";
|
|
76
|
-
readonly normal: "300ms cubic-bezier(0.4, 0, 0.2, 1)";
|
|
77
|
-
readonly slow: "500ms cubic-bezier(0.4, 0, 0.2, 1)";
|
|
78
|
-
};
|
|
79
|
-
readonly spacing: {
|
|
80
|
-
readonly xs: "4px";
|
|
81
|
-
readonly sm: "8px";
|
|
82
|
-
readonly md: "16px";
|
|
83
|
-
readonly lg: "24px";
|
|
84
|
-
readonly xl: "32px";
|
|
85
|
-
readonly '2xl': "48px";
|
|
86
|
-
};
|
|
87
|
-
readonly borderRadius: {
|
|
88
|
-
readonly sm: "4px";
|
|
89
|
-
readonly md: "8px";
|
|
90
|
-
readonly lg: "12px";
|
|
91
|
-
readonly xl: "16px";
|
|
92
|
-
};
|
|
93
|
-
};
|
|
94
|
-
export type Theme = typeof theme;
|
|
95
|
-
export default theme;
|