@crowdin/app-project-module 3.0.0 → 3.0.1
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/out/app-test/integration/index.js +3 -3
- package/out/app-test/integration/mocks/mock-axios.js +5 -4
- package/out/app-test/integration/mocks/mock-crowdin-api-client.js +6 -6
- package/out/app-test/integration/update-crowdin.js +5 -5
- package/out/app-test/integration/update-integration.js +5 -5
- package/out/static/ui/error.bundle.js +286 -91
- package/out/static/ui/error.bundle.js.map +1 -1
- package/out/static/ui/form.bundle.js +398 -289
- package/out/static/ui/form.bundle.js.map +1 -1
- package/out/static/ui/login.bundle.js +351 -121
- package/out/static/ui/login.bundle.js.map +1 -1
- package/out/static/ui/main.bundle.js +716 -331
- package/out/static/ui/main.bundle.js.map +1 -1
- package/out/static/ui/subscription.bundle.js +277 -88
- package/out/static/ui/subscription.bundle.js.map +1 -1
- package/out/storage/drizzle/postgresql/config.d.ts +3 -2
- package/out/storage/drizzle/postgresql/config.js +2 -1
- package/out/storage/drizzle/sqlite/config.d.ts +3 -2
- package/out/storage/drizzle/sqlite/config.js +2 -1
- package/package.json +12 -11
|
@@ -21,15 +21,15 @@ exports.mockProjectId = 1;
|
|
|
21
21
|
exports.mockStoragesById = {};
|
|
22
22
|
exports.mockFiles = [];
|
|
23
23
|
exports.mockDirectories = [];
|
|
24
|
-
jest.mock('axios', () => mock_axios_1.mockAxios);
|
|
25
|
-
jest.mock('@crowdin/crowdin-api-client', () => jest.fn().mockImplementation(() => mock_crowdin_api_client_1.mockCrowdinApiClient));
|
|
24
|
+
globals_1.jest.mock('axios', () => mock_axios_1.mockAxios);
|
|
25
|
+
globals_1.jest.mock('@crowdin/crowdin-api-client', () => globals_1.jest.fn().mockImplementation(() => mock_crowdin_api_client_1.mockCrowdinApiClient));
|
|
26
26
|
const runProjectIntegrationTests = ({ getAppConfig, integrationTestConfig, }) => {
|
|
27
27
|
(0, globals_1.describe)('Run integration module tests', () => {
|
|
28
28
|
var _a, _b, _c;
|
|
29
29
|
if (!((_a = integrationTestConfig.getIntegrationFiles) === null || _a === void 0 ? void 0 : _a.expected.length)) {
|
|
30
30
|
throw new Error('Please provide a valid expected files');
|
|
31
31
|
}
|
|
32
|
-
beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
32
|
+
(0, globals_1.beforeAll)(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
33
33
|
if (integrationTestConfig === null || integrationTestConfig === void 0 ? void 0 : integrationTestConfig.beforeAll) {
|
|
34
34
|
yield integrationTestConfig.beforeAll();
|
|
35
35
|
}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.mockAxios = void 0;
|
|
4
|
+
const globals_1 = require("@jest/globals");
|
|
4
5
|
const index_1 = require("../index");
|
|
5
|
-
const mockOriginalAxios = jest.requireActual('axios');
|
|
6
|
-
const mock = Object.assign(Object.assign({}, mockOriginalAxios), { get: jest.fn((url) => {
|
|
7
|
-
expect(url).toMatch(/^file-id:(\d+)$/);
|
|
6
|
+
const mockOriginalAxios = globals_1.jest.requireActual('axios');
|
|
7
|
+
const mock = Object.assign(Object.assign({}, mockOriginalAxios), { get: globals_1.jest.fn((url) => {
|
|
8
|
+
(0, globals_1.expect)(url).toMatch(/^file-id:(\d+)$/);
|
|
8
9
|
const fileId = Number(url.replace('file-id:', ''));
|
|
9
10
|
const file = index_1.mockFiles.find(({ id }) => id === fileId);
|
|
10
11
|
const storageId = file === null || file === void 0 ? void 0 : file.storageId;
|
|
11
|
-
expect(storageId).not.toBeUndefined();
|
|
12
|
+
(0, globals_1.expect)(storageId).not.toBeUndefined();
|
|
12
13
|
return {
|
|
13
14
|
// @ts-ignore
|
|
14
15
|
data: index_1.mockStoragesById[storageId].data,
|
|
@@ -57,7 +57,7 @@ const sleep = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
57
57
|
}, Math.floor(Math.random() * (max - min) + min));
|
|
58
58
|
});
|
|
59
59
|
});
|
|
60
|
-
const mockBuildProjectFileTranslation = jest.fn((projectId, fileId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
60
|
+
const mockBuildProjectFileTranslation = globals_1.jest.fn((projectId, fileId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
61
61
|
(0, globals_1.expect)(projectId).toBe(index_1.mockProjectId);
|
|
62
62
|
yield sleep();
|
|
63
63
|
return {
|
|
@@ -98,17 +98,17 @@ const mockProjectsGroupsApi = {
|
|
|
98
98
|
return getProjectResponse;
|
|
99
99
|
},
|
|
100
100
|
};
|
|
101
|
-
const mockCreateDirectory = jest.fn((projectId, params) => __awaiter(void 0, void 0, void 0, function* () {
|
|
101
|
+
const mockCreateDirectory = globals_1.jest.fn((projectId, params) => __awaiter(void 0, void 0, void 0, function* () {
|
|
102
102
|
(0, globals_1.expect)(projectId).toBe(index_1.mockProjectId);
|
|
103
103
|
yield sleep();
|
|
104
104
|
return crowdin_storage_1.crowdinFolders.create(params);
|
|
105
105
|
}));
|
|
106
|
-
const mockCreateFile = jest.fn((projectId, params) => __awaiter(void 0, void 0, void 0, function* () {
|
|
106
|
+
const mockCreateFile = globals_1.jest.fn((projectId, params) => __awaiter(void 0, void 0, void 0, function* () {
|
|
107
107
|
(0, globals_1.expect)(projectId).toBe(index_1.mockProjectId);
|
|
108
108
|
yield sleep();
|
|
109
109
|
return crowdin_storage_1.crowdinFiles.create(params);
|
|
110
110
|
}));
|
|
111
|
-
const mockListProjectDirectories = jest.fn((projectId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
111
|
+
const mockListProjectDirectories = globals_1.jest.fn((projectId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
112
112
|
(0, globals_1.expect)(projectId).toBe(index_1.mockProjectId);
|
|
113
113
|
return {
|
|
114
114
|
// data: options ? [] : mockDirectories.map((d: SourceFilesModel.Directory) => ({ data: d })),
|
|
@@ -119,7 +119,7 @@ const mockListProjectDirectories = jest.fn((projectId) => __awaiter(void 0, void
|
|
|
119
119
|
},
|
|
120
120
|
};
|
|
121
121
|
}));
|
|
122
|
-
const mockListProjectFiles = jest.fn((projectId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
122
|
+
const mockListProjectFiles = globals_1.jest.fn((projectId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
123
123
|
(0, globals_1.expect)(projectId).toBe(index_1.mockProjectId);
|
|
124
124
|
return {
|
|
125
125
|
data: index_1.mockFiles.map((d) => ({ data: d })),
|
|
@@ -129,7 +129,7 @@ const mockListProjectFiles = jest.fn((projectId) => __awaiter(void 0, void 0, vo
|
|
|
129
129
|
},
|
|
130
130
|
};
|
|
131
131
|
}));
|
|
132
|
-
const mockOriginalClient = jest.requireActual('@crowdin/crowdin-api-client');
|
|
132
|
+
const mockOriginalClient = globals_1.jest.requireActual('@crowdin/crowdin-api-client');
|
|
133
133
|
exports.mockCrowdinApiClient = Object.assign(Object.assign({}, mockOriginalClient), { sourceFilesApi: {
|
|
134
134
|
withFetchAll: () => {
|
|
135
135
|
return {
|
|
@@ -72,7 +72,7 @@ const updateCrowdinTest = (_a) => __awaiter(void 0, [_a], void 0, function* ({ a
|
|
|
72
72
|
}
|
|
73
73
|
const client = new crowdin_api_client_1.default({ token: 'fakeToken' });
|
|
74
74
|
const request = getFilesFromTree(expectedTree);
|
|
75
|
-
const updateProgressMock = jest.fn(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
75
|
+
const updateProgressMock = globals_1.jest.fn(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
76
76
|
return { isCanceled: false };
|
|
77
77
|
}));
|
|
78
78
|
const rootFolder = (0, crowdin_storage_1.getRootFolder)(appConfig);
|
|
@@ -106,10 +106,10 @@ const updateCrowdinTest = (_a) => __awaiter(void 0, [_a], void 0, function* ({ a
|
|
|
106
106
|
},
|
|
107
107
|
update: updateProgressMock,
|
|
108
108
|
type: types_1.JobClientType.MANUAL,
|
|
109
|
-
fetchTranslation: jest.fn(),
|
|
110
|
-
translationUploaded: jest.fn(),
|
|
111
|
-
markFilesAsUnsynced: jest.fn(),
|
|
112
|
-
unmarkFilesAsUnsynced: jest.fn(),
|
|
109
|
+
fetchTranslation: globals_1.jest.fn(),
|
|
110
|
+
translationUploaded: globals_1.jest.fn(),
|
|
111
|
+
markFilesAsUnsynced: globals_1.jest.fn(),
|
|
112
|
+
unmarkFilesAsUnsynced: globals_1.jest.fn(),
|
|
113
113
|
},
|
|
114
114
|
});
|
|
115
115
|
}, 'Fail to run method updateCrowdin()');
|
|
@@ -33,7 +33,7 @@ const updateIntegrationTest = (_a) => __awaiter(void 0, [_a], void 0, function*
|
|
|
33
33
|
}
|
|
34
34
|
const { updateIntegration, settings, integrationCredentials } = integrationTestConfig;
|
|
35
35
|
const client = new crowdin_api_client_1.default({ token: 'fakeToken' });
|
|
36
|
-
const updateProgressMock = jest.fn(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
36
|
+
const updateProgressMock = globals_1.jest.fn(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
37
37
|
return { isCanceled: false };
|
|
38
38
|
}));
|
|
39
39
|
const request = (0, exports.getUpdateIntegrationRequest)();
|
|
@@ -63,10 +63,10 @@ const updateIntegrationTest = (_a) => __awaiter(void 0, [_a], void 0, function*
|
|
|
63
63
|
},
|
|
64
64
|
update: updateProgressMock,
|
|
65
65
|
type: types_1.JobClientType.MANUAL,
|
|
66
|
-
fetchTranslation: jest.fn(),
|
|
67
|
-
translationUploaded: jest.fn(),
|
|
68
|
-
markFilesAsUnsynced: jest.fn(),
|
|
69
|
-
unmarkFilesAsUnsynced: jest.fn(),
|
|
66
|
+
fetchTranslation: globals_1.jest.fn(),
|
|
67
|
+
translationUploaded: globals_1.jest.fn(),
|
|
68
|
+
markFilesAsUnsynced: globals_1.jest.fn(),
|
|
69
|
+
unmarkFilesAsUnsynced: globals_1.jest.fn(),
|
|
70
70
|
},
|
|
71
71
|
});
|
|
72
72
|
}, 'Fail to run method updateIntegration()');
|
|
@@ -18765,195 +18765,390 @@
|
|
|
18765
18765
|
}
|
|
18766
18766
|
|
|
18767
18767
|
/**
|
|
18768
|
-
* @license lucide-react
|
|
18768
|
+
* @license lucide-react v1.44.0 - ISC
|
|
18769
18769
|
*
|
|
18770
18770
|
* This source code is licensed under the ISC license.
|
|
18771
18771
|
* See the LICENSE file in the root directory of this source tree.
|
|
18772
18772
|
*/
|
|
18773
18773
|
|
|
18774
|
-
const toKebabCase = (string) => string
|
|
18775
|
-
|
|
18776
|
-
|
|
18777
|
-
|
|
18778
|
-
|
|
18774
|
+
const toKebabCase = (string) => string?.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
|
|
18775
|
+
|
|
18776
|
+
/**
|
|
18777
|
+
* @license lucide-react v1.44.0 - ISC
|
|
18778
|
+
*
|
|
18779
|
+
* This source code is licensed under the ISC license.
|
|
18780
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
18781
|
+
*/
|
|
18782
|
+
|
|
18783
|
+
|
|
18784
|
+
function toLucideIconData(iconName, iconNode, aliases = []) {
|
|
18785
|
+
if (iconNode == null) {
|
|
18786
|
+
throw new Error("[lucide]: iconNode is required when icon name is used");
|
|
18787
|
+
}
|
|
18788
|
+
return {
|
|
18789
|
+
name: toKebabCase(iconName),
|
|
18790
|
+
size: 24,
|
|
18791
|
+
node: iconNode,
|
|
18792
|
+
...aliases.length > 0 ? { aliases } : {}
|
|
18793
|
+
};
|
|
18794
|
+
}
|
|
18795
|
+
|
|
18796
|
+
/**
|
|
18797
|
+
* @license lucide-react v1.44.0 - ISC
|
|
18798
|
+
*
|
|
18799
|
+
* This source code is licensed under the ISC license.
|
|
18800
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
18801
|
+
*/
|
|
18802
|
+
|
|
18803
|
+
const toCamelCase = (string) => {
|
|
18804
|
+
let out = "";
|
|
18805
|
+
let upperNext = false;
|
|
18806
|
+
for (const ch of string) {
|
|
18807
|
+
if (ch === "-" || ch === "_" || ch <= " ") {
|
|
18808
|
+
upperNext = out.length > 0;
|
|
18809
|
+
continue;
|
|
18810
|
+
}
|
|
18811
|
+
if (out.length === 0) {
|
|
18812
|
+
out += ch.toLowerCase();
|
|
18813
|
+
} else {
|
|
18814
|
+
out += upperNext ? ch.toUpperCase() : ch;
|
|
18815
|
+
}
|
|
18816
|
+
upperNext = false;
|
|
18817
|
+
}
|
|
18818
|
+
return out;
|
|
18819
|
+
};
|
|
18820
|
+
|
|
18821
|
+
/**
|
|
18822
|
+
* @license lucide-react v1.44.0 - ISC
|
|
18823
|
+
*
|
|
18824
|
+
* This source code is licensed under the ISC license.
|
|
18825
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
18826
|
+
*/
|
|
18827
|
+
|
|
18828
|
+
|
|
18779
18829
|
const toPascalCase = (string) => {
|
|
18780
18830
|
const camelCase = toCamelCase(string);
|
|
18781
18831
|
return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);
|
|
18782
18832
|
};
|
|
18833
|
+
|
|
18834
|
+
/**
|
|
18835
|
+
* @license lucide-react v1.44.0 - ISC
|
|
18836
|
+
*
|
|
18837
|
+
* This source code is licensed under the ISC license.
|
|
18838
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
18839
|
+
*/
|
|
18840
|
+
|
|
18783
18841
|
const mergeClasses = (...classes) => classes.filter((className, index, array) => {
|
|
18784
18842
|
return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index;
|
|
18785
18843
|
}).join(" ").trim();
|
|
18786
|
-
const hasA11yProp = (props) => {
|
|
18787
|
-
for (const prop in props) {
|
|
18788
|
-
if (prop.startsWith("aria-") || prop === "role" || prop === "title") {
|
|
18789
|
-
return true;
|
|
18790
|
-
}
|
|
18791
|
-
}
|
|
18792
|
-
};
|
|
18793
18844
|
|
|
18794
18845
|
/**
|
|
18795
|
-
* @license lucide-react
|
|
18846
|
+
* @license lucide-react v1.44.0 - ISC
|
|
18796
18847
|
*
|
|
18797
18848
|
* This source code is licensed under the ISC license.
|
|
18798
18849
|
* See the LICENSE file in the root directory of this source tree.
|
|
18799
18850
|
*/
|
|
18800
18851
|
|
|
18801
|
-
|
|
18852
|
+
const defaultAttributes = {
|
|
18802
18853
|
xmlns: "http://www.w3.org/2000/svg",
|
|
18803
18854
|
width: 24,
|
|
18804
18855
|
height: 24,
|
|
18805
18856
|
viewBox: "0 0 24 24",
|
|
18806
18857
|
fill: "none",
|
|
18807
18858
|
stroke: "currentColor",
|
|
18808
|
-
|
|
18809
|
-
|
|
18810
|
-
|
|
18859
|
+
"stroke-width": 2,
|
|
18860
|
+
"stroke-linecap": "round",
|
|
18861
|
+
"stroke-linejoin": "round"
|
|
18811
18862
|
};
|
|
18812
18863
|
|
|
18813
18864
|
/**
|
|
18814
|
-
* @license lucide-react
|
|
18865
|
+
* @license lucide-react v1.44.0 - ISC
|
|
18866
|
+
*
|
|
18867
|
+
* This source code is licensed under the ISC license.
|
|
18868
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
18869
|
+
*/
|
|
18870
|
+
|
|
18871
|
+
|
|
18872
|
+
function isDefined(value) {
|
|
18873
|
+
return value !== null && value !== void 0;
|
|
18874
|
+
}
|
|
18875
|
+
function buildLucideIconNode(icon, params = {}) {
|
|
18876
|
+
const attributeNames = params.attributeNames ?? {};
|
|
18877
|
+
const getAttributeName = (attributeName) => attributeNames[attributeName] ?? attributeName;
|
|
18878
|
+
const viewBoxWidth = icon.size ?? icon.width ?? defaultAttributes["width"];
|
|
18879
|
+
const viewBoxHeight = icon.size ?? icon.height ?? defaultAttributes["height"];
|
|
18880
|
+
const aliasClassNames = icon.aliases?.filter((alias) => typeof alias === "string" && alias.trim() !== "").map((alias) => `lucide-${alias}`) ?? [];
|
|
18881
|
+
const iconClassNames = [...icon.name ? [`lucide-${icon.name}`] : [], ...aliasClassNames];
|
|
18882
|
+
const classNamesFromClassName = params.className?.split(" ").filter(Boolean) ?? [];
|
|
18883
|
+
const className = params.includeDefaultClasses === false ? mergeClasses(...classNamesFromClassName) : mergeClasses("lucide", ...iconClassNames, ...classNamesFromClassName);
|
|
18884
|
+
const calculatedStrokeWidth = params.absoluteStrokeWidth ? Number(params.strokeWidth ?? defaultAttributes["stroke-width"]) * Number(icon.size ?? icon.width ?? defaultAttributes["width"]) / Number(params.size ?? params.width ?? defaultAttributes["width"]) : params.strokeWidth ?? defaultAttributes["stroke-width"];
|
|
18885
|
+
const attributes = {
|
|
18886
|
+
...Object.entries(defaultAttributes).reduce((attrs, [attrName, value]) => {
|
|
18887
|
+
attrs[getAttributeName(attrName)] = value;
|
|
18888
|
+
return attrs;
|
|
18889
|
+
}, {}),
|
|
18890
|
+
..."color" in params && params.color && {
|
|
18891
|
+
[getAttributeName("stroke")]: params.color
|
|
18892
|
+
},
|
|
18893
|
+
..."size" in params && isDefined(params.size) && {
|
|
18894
|
+
[getAttributeName("width")]: params.size,
|
|
18895
|
+
[getAttributeName("height")]: params.size
|
|
18896
|
+
},
|
|
18897
|
+
..."width" in params && isDefined(params.width) && {
|
|
18898
|
+
[getAttributeName("width")]: params.width
|
|
18899
|
+
},
|
|
18900
|
+
..."height" in params && isDefined(params.height) && {
|
|
18901
|
+
[getAttributeName("height")]: params.height
|
|
18902
|
+
},
|
|
18903
|
+
[getAttributeName("stroke-width")]: calculatedStrokeWidth,
|
|
18904
|
+
...className && {
|
|
18905
|
+
[getAttributeName("class")]: className
|
|
18906
|
+
},
|
|
18907
|
+
[getAttributeName("viewBox")]: `0 0 ${viewBoxWidth} ${viewBoxHeight}`,
|
|
18908
|
+
...params.hasA11yProp === false ? {
|
|
18909
|
+
[getAttributeName("aria-hidden")]: "true"
|
|
18910
|
+
} : {},
|
|
18911
|
+
..."attributes" in params && params.attributes
|
|
18912
|
+
};
|
|
18913
|
+
return [
|
|
18914
|
+
"svg",
|
|
18915
|
+
attributes,
|
|
18916
|
+
icon.node.map((child) => {
|
|
18917
|
+
const [name, attrs, children] = child;
|
|
18918
|
+
const nextAttrs = params.nonScalingStroke ? { [getAttributeName("vector-effect")]: "non-scaling-stroke", ...attrs } : attrs;
|
|
18919
|
+
return children ? [name, nextAttrs, children] : [name, nextAttrs];
|
|
18920
|
+
})
|
|
18921
|
+
];
|
|
18922
|
+
}
|
|
18923
|
+
|
|
18924
|
+
/**
|
|
18925
|
+
* @license lucide-react v1.44.0 - ISC
|
|
18815
18926
|
*
|
|
18816
18927
|
* This source code is licensed under the ISC license.
|
|
18817
18928
|
* See the LICENSE file in the root directory of this source tree.
|
|
18818
18929
|
*/
|
|
18819
18930
|
|
|
18820
18931
|
|
|
18932
|
+
function buildLucideIconForReact(icon, params = {}) {
|
|
18933
|
+
return buildLucideIconNode(icon, {
|
|
18934
|
+
...params,
|
|
18935
|
+
attributeNames: {
|
|
18936
|
+
...params.attributeNames,
|
|
18937
|
+
class: "className",
|
|
18938
|
+
"stroke-width": "strokeWidth",
|
|
18939
|
+
"stroke-linecap": "strokeLinecap",
|
|
18940
|
+
"stroke-linejoin": "strokeLinejoin",
|
|
18941
|
+
"vector-effect": "vectorEffect"
|
|
18942
|
+
}
|
|
18943
|
+
});
|
|
18944
|
+
}
|
|
18945
|
+
|
|
18946
|
+
/**
|
|
18947
|
+
* @license lucide-react v1.44.0 - ISC
|
|
18948
|
+
*
|
|
18949
|
+
* This source code is licensed under the ISC license.
|
|
18950
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
18951
|
+
*/
|
|
18952
|
+
|
|
18953
|
+
const hasA11yProp = (props) => {
|
|
18954
|
+
for (const prop in props) {
|
|
18955
|
+
if (prop.startsWith("aria-") || prop === "role" || prop === "title") {
|
|
18956
|
+
return true;
|
|
18957
|
+
}
|
|
18958
|
+
}
|
|
18959
|
+
return false;
|
|
18960
|
+
};
|
|
18961
|
+
|
|
18962
|
+
const LucideContext = reactExports.createContext({});
|
|
18963
|
+
const useLucideContext = () => reactExports.useContext(LucideContext);
|
|
18964
|
+
|
|
18821
18965
|
const Icon = reactExports.forwardRef(
|
|
18822
18966
|
({
|
|
18823
|
-
color
|
|
18824
|
-
size
|
|
18825
|
-
|
|
18967
|
+
color,
|
|
18968
|
+
size,
|
|
18969
|
+
width,
|
|
18970
|
+
height,
|
|
18971
|
+
strokeWidth,
|
|
18826
18972
|
absoluteStrokeWidth,
|
|
18973
|
+
nonScalingStroke,
|
|
18827
18974
|
className = "",
|
|
18828
18975
|
children,
|
|
18829
|
-
iconNode,
|
|
18830
|
-
|
|
18831
|
-
|
|
18832
|
-
|
|
18833
|
-
|
|
18834
|
-
ref,
|
|
18835
|
-
...defaultAttributes,
|
|
18836
|
-
width: size,
|
|
18837
|
-
height: size,
|
|
18838
|
-
stroke: color,
|
|
18839
|
-
strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,
|
|
18840
|
-
className: mergeClasses("lucide", className),
|
|
18841
|
-
...!children && !hasA11yProp(rest) && { "aria-hidden": "true" },
|
|
18842
|
-
...rest
|
|
18976
|
+
iconNode = [],
|
|
18977
|
+
icon = {
|
|
18978
|
+
node: iconNode,
|
|
18979
|
+
aliases: [],
|
|
18980
|
+
size: 24
|
|
18843
18981
|
},
|
|
18844
|
-
|
|
18845
|
-
|
|
18846
|
-
|
|
18847
|
-
|
|
18848
|
-
|
|
18982
|
+
...rest
|
|
18983
|
+
}, ref) => {
|
|
18984
|
+
const {
|
|
18985
|
+
size: contextSize = 24,
|
|
18986
|
+
strokeWidth: contextStrokeWidth = 2,
|
|
18987
|
+
absoluteStrokeWidth: contextAbsoluteStrokeWidth = false,
|
|
18988
|
+
nonScalingStroke: contextNonScalingStroke = false,
|
|
18989
|
+
color: contextColor = "currentColor",
|
|
18990
|
+
className: contextClass = ""
|
|
18991
|
+
} = useLucideContext() ?? {};
|
|
18992
|
+
const hasAccessibleProp = Boolean(children) || hasA11yProp(rest);
|
|
18993
|
+
const [name, svgAttributes, builtIconNode = []] = buildLucideIconForReact(icon, {
|
|
18994
|
+
color: color ?? contextColor,
|
|
18995
|
+
width: width ?? size ?? contextSize,
|
|
18996
|
+
height: height ?? size ?? contextSize,
|
|
18997
|
+
strokeWidth: strokeWidth ?? contextStrokeWidth,
|
|
18998
|
+
absoluteStrokeWidth: absoluteStrokeWidth ?? contextAbsoluteStrokeWidth,
|
|
18999
|
+
nonScalingStroke: nonScalingStroke ?? contextNonScalingStroke,
|
|
19000
|
+
className: mergeClasses(contextClass, className),
|
|
19001
|
+
hasA11yProp: hasAccessibleProp,
|
|
19002
|
+
attributes: rest
|
|
19003
|
+
});
|
|
19004
|
+
return reactExports.createElement(
|
|
19005
|
+
name,
|
|
19006
|
+
{
|
|
19007
|
+
ref,
|
|
19008
|
+
...svgAttributes
|
|
19009
|
+
},
|
|
19010
|
+
[
|
|
19011
|
+
...builtIconNode.map(([tag, attrs]) => reactExports.createElement(tag, attrs)),
|
|
19012
|
+
...Array.isArray(children) ? children : [children]
|
|
19013
|
+
]
|
|
19014
|
+
);
|
|
19015
|
+
}
|
|
18849
19016
|
);
|
|
18850
19017
|
|
|
18851
19018
|
/**
|
|
18852
|
-
* @license lucide-react
|
|
19019
|
+
* @license lucide-react v1.44.0 - ISC
|
|
18853
19020
|
*
|
|
18854
19021
|
* This source code is licensed under the ISC license.
|
|
18855
19022
|
* See the LICENSE file in the root directory of this source tree.
|
|
18856
19023
|
*/
|
|
18857
19024
|
|
|
18858
19025
|
|
|
18859
|
-
|
|
19026
|
+
function createLucideIcon(iconDataOrName, iconNode = [], aliases = []) {
|
|
19027
|
+
const iconData = typeof iconDataOrName === "string" ? toLucideIconData(iconDataOrName, iconNode, aliases) : iconDataOrName;
|
|
18860
19028
|
const Component = reactExports.forwardRef(
|
|
18861
19029
|
({ className, ...props }, ref) => reactExports.createElement(Icon, {
|
|
18862
19030
|
ref,
|
|
18863
|
-
|
|
18864
|
-
className
|
|
18865
|
-
`lucide-${toKebabCase(toPascalCase(iconName))}`,
|
|
18866
|
-
`lucide-${iconName}`,
|
|
18867
|
-
className
|
|
18868
|
-
),
|
|
19031
|
+
icon: iconData,
|
|
19032
|
+
className,
|
|
18869
19033
|
...props
|
|
18870
19034
|
})
|
|
18871
19035
|
);
|
|
18872
|
-
|
|
19036
|
+
if (iconData.name) {
|
|
19037
|
+
Component.displayName = toPascalCase(iconData.name);
|
|
19038
|
+
}
|
|
18873
19039
|
return Component;
|
|
18874
|
-
}
|
|
19040
|
+
}
|
|
18875
19041
|
|
|
18876
19042
|
/**
|
|
18877
|
-
* @license lucide-react
|
|
19043
|
+
* @license lucide-react v1.44.0 - ISC
|
|
18878
19044
|
*
|
|
18879
19045
|
* This source code is licensed under the ISC license.
|
|
18880
19046
|
* See the LICENSE file in the root directory of this source tree.
|
|
18881
19047
|
*/
|
|
18882
19048
|
|
|
18883
19049
|
|
|
18884
|
-
const
|
|
18885
|
-
|
|
18886
|
-
|
|
18887
|
-
|
|
18888
|
-
|
|
19050
|
+
const __iconData$4 = {
|
|
19051
|
+
name: "circle-check",
|
|
19052
|
+
size: 24,
|
|
19053
|
+
node: [
|
|
19054
|
+
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
19055
|
+
["path", { d: "m16 9-5.5 5.5L8 12", key: "xofnsj" }]
|
|
19056
|
+
],
|
|
19057
|
+
aliases: ["check-circle-2"]
|
|
19058
|
+
};
|
|
19059
|
+
__iconData$4.node;
|
|
19060
|
+
const CircleCheck = createLucideIcon(__iconData$4);
|
|
18889
19061
|
|
|
18890
19062
|
/**
|
|
18891
|
-
* @license lucide-react
|
|
19063
|
+
* @license lucide-react v1.44.0 - ISC
|
|
18892
19064
|
*
|
|
18893
19065
|
* This source code is licensed under the ISC license.
|
|
18894
19066
|
* See the LICENSE file in the root directory of this source tree.
|
|
18895
19067
|
*/
|
|
18896
19068
|
|
|
18897
19069
|
|
|
18898
|
-
const
|
|
18899
|
-
|
|
18900
|
-
|
|
18901
|
-
|
|
18902
|
-
|
|
18903
|
-
|
|
19070
|
+
const __iconData$3 = {
|
|
19071
|
+
name: "info",
|
|
19072
|
+
size: 24,
|
|
19073
|
+
node: [
|
|
19074
|
+
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
19075
|
+
["path", { d: "M12 16v-4", key: "1dtifu" }],
|
|
19076
|
+
["path", { d: "M12 8h.01", key: "e9boi3" }]
|
|
19077
|
+
]
|
|
19078
|
+
};
|
|
19079
|
+
__iconData$3.node;
|
|
19080
|
+
const Info = createLucideIcon(__iconData$3);
|
|
18904
19081
|
|
|
18905
19082
|
/**
|
|
18906
|
-
* @license lucide-react
|
|
19083
|
+
* @license lucide-react v1.44.0 - ISC
|
|
18907
19084
|
*
|
|
18908
19085
|
* This source code is licensed under the ISC license.
|
|
18909
19086
|
* See the LICENSE file in the root directory of this source tree.
|
|
18910
19087
|
*/
|
|
18911
19088
|
|
|
18912
19089
|
|
|
18913
|
-
const
|
|
18914
|
-
|
|
19090
|
+
const __iconData$2 = {
|
|
19091
|
+
name: "loader-circle",
|
|
19092
|
+
size: 24,
|
|
19093
|
+
node: [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]],
|
|
19094
|
+
aliases: ["loader-2"]
|
|
19095
|
+
};
|
|
19096
|
+
__iconData$2.node;
|
|
19097
|
+
const LoaderCircle = createLucideIcon(__iconData$2);
|
|
18915
19098
|
|
|
18916
19099
|
/**
|
|
18917
|
-
* @license lucide-react
|
|
19100
|
+
* @license lucide-react v1.44.0 - ISC
|
|
18918
19101
|
*
|
|
18919
19102
|
* This source code is licensed under the ISC license.
|
|
18920
19103
|
* See the LICENSE file in the root directory of this source tree.
|
|
18921
19104
|
*/
|
|
18922
19105
|
|
|
18923
19106
|
|
|
18924
|
-
const
|
|
18925
|
-
|
|
18926
|
-
|
|
18927
|
-
|
|
18928
|
-
{
|
|
18929
|
-
|
|
18930
|
-
|
|
18931
|
-
|
|
19107
|
+
const __iconData$1 = {
|
|
19108
|
+
name: "octagon-x",
|
|
19109
|
+
size: 24,
|
|
19110
|
+
node: [
|
|
19111
|
+
["path", { d: "m15 9-6 6", key: "1uzhvr" }],
|
|
19112
|
+
[
|
|
19113
|
+
"path",
|
|
19114
|
+
{
|
|
19115
|
+
d: "M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",
|
|
19116
|
+
key: "2d38gg"
|
|
19117
|
+
}
|
|
19118
|
+
],
|
|
19119
|
+
["path", { d: "m9 9 6 6", key: "z0biqf" }]
|
|
18932
19120
|
],
|
|
18933
|
-
|
|
18934
|
-
|
|
18935
|
-
|
|
19121
|
+
aliases: ["x-octagon"]
|
|
19122
|
+
};
|
|
19123
|
+
__iconData$1.node;
|
|
19124
|
+
const OctagonX = createLucideIcon(__iconData$1);
|
|
18936
19125
|
|
|
18937
19126
|
/**
|
|
18938
|
-
* @license lucide-react
|
|
19127
|
+
* @license lucide-react v1.44.0 - ISC
|
|
18939
19128
|
*
|
|
18940
19129
|
* This source code is licensed under the ISC license.
|
|
18941
19130
|
* See the LICENSE file in the root directory of this source tree.
|
|
18942
19131
|
*/
|
|
18943
19132
|
|
|
18944
19133
|
|
|
18945
|
-
const
|
|
18946
|
-
|
|
18947
|
-
|
|
18948
|
-
|
|
18949
|
-
|
|
18950
|
-
|
|
18951
|
-
|
|
19134
|
+
const __iconData = {
|
|
19135
|
+
name: "triangle-alert",
|
|
19136
|
+
size: 24,
|
|
19137
|
+
node: [
|
|
19138
|
+
[
|
|
19139
|
+
"path",
|
|
19140
|
+
{
|
|
19141
|
+
d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",
|
|
19142
|
+
key: "wmoenq"
|
|
19143
|
+
}
|
|
19144
|
+
],
|
|
19145
|
+
["path", { d: "M12 9v4", key: "juzpu7" }],
|
|
19146
|
+
["path", { d: "M12 17h.01", key: "p32p05" }]
|
|
18952
19147
|
],
|
|
18953
|
-
|
|
18954
|
-
|
|
18955
|
-
|
|
18956
|
-
const TriangleAlert = createLucideIcon(
|
|
19148
|
+
aliases: ["alert-triangle"]
|
|
19149
|
+
};
|
|
19150
|
+
__iconData.node;
|
|
19151
|
+
const TriangleAlert = createLucideIcon(__iconData);
|
|
18957
19152
|
|
|
18958
19153
|
function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f);}else for(f in e)e[f]&&(n&&(n+=" "),n+=f);return n}function clsx(){for(var e,t,f=0,n="",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}
|
|
18959
19154
|
|