@eventcatalog/core 3.48.4 → 4.0.0-beta.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/dist/analytics/analytics.cjs +1 -1
- package/dist/analytics/analytics.js +2 -2
- package/dist/analytics/log-build.cjs +1 -1
- package/dist/analytics/log-build.js +3 -3
- package/dist/catalog-to-astro-content-directory.cjs +1 -1
- package/dist/chunk-BWN544LB.js +73 -0
- package/dist/{chunk-XNVSSL4W.js → chunk-JTZT2SDF.js} +1 -1
- package/dist/{chunk-JY4H7A4S.js → chunk-M2ZRT7KQ.js} +1 -1
- package/dist/{chunk-SY4XL6OQ.js → chunk-MBVTS76Q.js} +1 -1
- package/dist/{chunk-KDLSBQRP.js → chunk-TZTPGQGL.js} +1 -1
- package/dist/{chunk-FNDSHOV2.js → chunk-U5OTNDVQ.js} +1 -1
- package/dist/constants.cjs +1 -1
- package/dist/constants.js +1 -1
- package/dist/core-node-modules.cjs +108 -0
- package/dist/core-node-modules.d.cts +7 -0
- package/dist/core-node-modules.d.ts +7 -0
- package/dist/core-node-modules.js +8 -0
- package/dist/docs/development/components/components/15-prompt.md +5 -1
- package/dist/eventcatalog.cjs +124 -48
- package/dist/eventcatalog.js +26 -15
- package/dist/generate.cjs +1 -1
- package/dist/generate.js +3 -3
- package/dist/utils/cli-logger.cjs +1 -1
- package/dist/utils/cli-logger.js +2 -2
- package/eventcatalog/astro.config.mjs +27 -23
- package/eventcatalog/public/icons/languages/java.svg +1 -0
- package/eventcatalog/public/icons/payments/stripe.svg +1 -0
- package/eventcatalog/src/components/Badge.astro +10 -10
- package/eventcatalog/src/components/CopyAsMarkdown.tsx +154 -0
- package/eventcatalog/src/components/Grids/DomainGrid.tsx +207 -44
- package/eventcatalog/src/components/Grids/MessageGrid.tsx +0 -20
- package/eventcatalog/src/components/Grids/SystemGrid.tsx +185 -0
- package/eventcatalog/src/components/MDX/ADRTable/ADRTable.astro +99 -0
- package/eventcatalog/src/components/MDX/ADRTable/ADRTable.client.tsx +400 -0
- package/eventcatalog/src/components/MDX/ContextDiagram/ContextDiagramPortal.tsx +21 -0
- package/eventcatalog/src/components/MDX/NodeGraph/AstroNodeGraph.tsx +1 -0
- package/eventcatalog/src/components/MDX/NodeGraph/NodeGraph.astro +42 -6
- package/eventcatalog/src/components/MDX/Prompt/Prompt.astro +62 -9
- package/eventcatalog/src/components/MDX/ResourceRef/ResourceRef.astro +8 -1
- package/eventcatalog/src/components/MDX/SystemContextMap/SystemContextMapPortal.tsx +22 -0
- package/eventcatalog/src/components/MDX/components.tsx +7 -0
- package/eventcatalog/src/components/SchemaExplorer/SchemaExplorer.tsx +1 -1
- package/eventcatalog/src/components/SideNav/NestedSideBar/index.tsx +67 -37
- package/eventcatalog/src/components/Tables/Discover/DiscoverTable.tsx +47 -0
- package/eventcatalog/src/components/Tables/Discover/FilterComponents.tsx +10 -2
- package/eventcatalog/src/components/Tables/Discover/columns.tsx +115 -27
- package/eventcatalog/src/components/Tables/Discover/index.ts +7 -1
- package/eventcatalog/src/components/Tables/SystemResources/SystemResourcesTable.tsx +267 -0
- package/eventcatalog/src/content.config.ts +96 -8
- package/eventcatalog/src/enterprise/collections/resource-docs-utils.ts +4 -1
- package/eventcatalog/src/enterprise/custom-documentation/pages/docs/custom/index.astro +12 -13
- package/eventcatalog/src/enterprise/custom-documentation/utils/custom-docs.ts +6 -0
- package/eventcatalog/src/enterprise/feature.ts +3 -1
- package/eventcatalog/src/layouts/VerticalSideBarLayout.astro +96 -140
- package/eventcatalog/src/layouts/VisualiserLayout.astro +66 -0
- package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/_index.data.ts +4 -2
- package/eventcatalog/src/pages/architecture/[type]/[id]/[version]/index.astro +2 -0
- package/eventcatalog/src/pages/diagrams/[id]/[version]/index.astro +15 -15
- package/eventcatalog/src/pages/discover/[type]/_index.data.ts +1 -0
- package/eventcatalog/src/pages/discover/[type]/index.astro +47 -2
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/[docVersion]/index.astro +15 -14
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/[docType]/[docId]/index.astro +13 -14
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/_index.data.ts +1 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/changelog/_index.data.ts +11 -1
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/index.astro +81 -26
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/resources/_index.data.ts +89 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version]/resources/index.astro +85 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version].md.ts +2 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/[version].mdx.ts +2 -0
- package/eventcatalog/src/pages/docs/[type]/[id]/_index.data.ts +1 -0
- package/eventcatalog/src/pages/docs/teams/[id]/index.astro +24 -1
- package/eventcatalog/src/pages/docs/users/[id]/index.astro +24 -1
- package/eventcatalog/src/pages/index.astro +30 -7
- package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/_index.data.ts +1 -0
- package/eventcatalog/src/pages/visualiser/[type]/[id]/[version]/index.astro +1 -1
- package/eventcatalog/src/pages/visualiser/[type]/[id]/[version].mermaid.ts +3 -0
- package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/systems-context/_index.data.ts +94 -0
- package/eventcatalog/src/pages/visualiser/domains/[id]/[version]/systems-context/index.astro +51 -0
- package/eventcatalog/src/pages/visualiser/system-context-map/index.astro +41 -0
- package/eventcatalog/src/pages/visualiser/systems/[id]/[version]/context/_index.data.ts +91 -0
- package/eventcatalog/src/pages/visualiser/systems/[id]/[version]/context/index.astro +51 -0
- package/eventcatalog/src/stores/sidebar-store/builders/adr.ts +3 -1
- package/eventcatalog/src/stores/sidebar-store/builders/agent.ts +3 -1
- package/eventcatalog/src/stores/sidebar-store/builders/container.ts +1 -1
- package/eventcatalog/src/stores/sidebar-store/builders/data-product.ts +1 -1
- package/eventcatalog/src/stores/sidebar-store/builders/domain.ts +127 -49
- package/eventcatalog/src/stores/sidebar-store/builders/message.ts +1 -1
- package/eventcatalog/src/stores/sidebar-store/builders/service.ts +4 -2
- package/eventcatalog/src/stores/sidebar-store/builders/shared.ts +2 -1
- package/eventcatalog/src/stores/sidebar-store/builders/system.ts +166 -0
- package/eventcatalog/src/stores/sidebar-store/state.ts +99 -6
- package/eventcatalog/src/types/index.ts +2 -0
- package/eventcatalog/src/utils/collection-colors.ts +6 -1
- package/eventcatalog/src/utils/collections/domains.ts +35 -0
- package/eventcatalog/src/utils/collections/icons.ts +4 -5
- package/eventcatalog/src/utils/collections/systems.ts +110 -0
- package/eventcatalog/src/utils/collections/teams.ts +15 -10
- package/eventcatalog/src/utils/collections/users.ts +7 -4
- package/eventcatalog/src/utils/collections/util.ts +2 -0
- package/eventcatalog/src/utils/icon-map.ts +20 -0
- package/eventcatalog/src/utils/icon.ts +11 -0
- package/eventcatalog/src/utils/node-graphs/container-node-graph.ts +12 -2
- package/eventcatalog/src/utils/node-graphs/domains-node-graph.ts +0 -170
- package/eventcatalog/src/utils/node-graphs/system-context-node-graph.ts +400 -0
- package/eventcatalog/src/utils/node-graphs/systems-node-graph.ts +208 -0
- package/eventcatalog/src/utils/node-graphs/utils/utils.ts +12 -0
- package/eventcatalog/src/utils/page-loaders/page-data-loader.ts +2 -0
- package/package.json +17 -14
- package/eventcatalog/src/pages/visualiser/context-map/index.astro +0 -30
|
@@ -140,7 +140,7 @@ var verifyRequiredFieldsAreInCatalogConfigFile = async (projectDirectory) => {
|
|
|
140
140
|
var import_os = __toESM(require("os"), 1);
|
|
141
141
|
|
|
142
142
|
// package.json
|
|
143
|
-
var version = "
|
|
143
|
+
var version = "4.0.0-beta.1";
|
|
144
144
|
|
|
145
145
|
// src/constants.ts
|
|
146
146
|
var VERSION = version;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
log_build_default
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-MBVTS76Q.js";
|
|
4
|
+
import "../chunk-U5OTNDVQ.js";
|
|
5
5
|
import "../chunk-DAOXTQVS.js";
|
|
6
|
-
import "../chunk-
|
|
6
|
+
import "../chunk-M2ZRT7KQ.js";
|
|
7
7
|
import "../chunk-6QENHZZP.js";
|
|
8
8
|
export {
|
|
9
9
|
log_build_default as default
|
|
@@ -34,7 +34,7 @@ __export(catalog_to_astro_content_directory_exports, {
|
|
|
34
34
|
});
|
|
35
35
|
module.exports = __toCommonJS(catalog_to_astro_content_directory_exports);
|
|
36
36
|
|
|
37
|
-
// ../../node_modules/.pnpm/tsup@8.5.0_jiti@2.
|
|
37
|
+
// ../../node_modules/.pnpm/tsup@8.5.0_jiti@2.7.0_postcss@8.5.15_tsx@4.21.0_typescript@5.9.3_yaml@2.9.0/node_modules/tsup/assets/cjs_shims.js
|
|
38
38
|
var getImportMetaUrl = () => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.src || new URL("main.js", document.baseURI).href;
|
|
39
39
|
var importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
|
|
40
40
|
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// src/core-node-modules.ts
|
|
2
|
+
import fs from "fs";
|
|
3
|
+
import path from "path";
|
|
4
|
+
var isDirectory = (directory) => {
|
|
5
|
+
try {
|
|
6
|
+
return fs.statSync(directory).isDirectory();
|
|
7
|
+
} catch (error) {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
var hasAstroDependency = (nodeModulesDirectory) => {
|
|
12
|
+
const astroBin = process.platform === "win32" ? "astro.cmd" : "astro";
|
|
13
|
+
return fs.existsSync(path.join(nodeModulesDirectory, "astro", "package.json")) || fs.existsSync(path.join(nodeModulesDirectory, ".bin", astroBin));
|
|
14
|
+
};
|
|
15
|
+
var isSymbolicLink = (targetPath) => {
|
|
16
|
+
try {
|
|
17
|
+
return fs.lstatSync(targetPath).isSymbolicLink();
|
|
18
|
+
} catch (error) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
var isSameDirectory = (a, b) => {
|
|
23
|
+
try {
|
|
24
|
+
return fs.realpathSync.native(a) === fs.realpathSync.native(b);
|
|
25
|
+
} catch (error) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
var resolveInstalledCoreNodeModules = (currentDir) => {
|
|
30
|
+
const candidates = [];
|
|
31
|
+
const seen = /* @__PURE__ */ new Set();
|
|
32
|
+
const addCandidate = (candidate) => {
|
|
33
|
+
const resolvedCandidate = path.resolve(candidate);
|
|
34
|
+
if (!seen.has(resolvedCandidate)) {
|
|
35
|
+
candidates.push(resolvedCandidate);
|
|
36
|
+
seen.add(resolvedCandidate);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
addCandidate(path.resolve(currentDir, "..", "node_modules"));
|
|
40
|
+
let directory = path.resolve(currentDir);
|
|
41
|
+
while (true) {
|
|
42
|
+
if (path.basename(directory) === "node_modules") {
|
|
43
|
+
addCandidate(directory);
|
|
44
|
+
}
|
|
45
|
+
addCandidate(path.join(directory, "node_modules"));
|
|
46
|
+
const parentDirectory = path.dirname(directory);
|
|
47
|
+
if (parentDirectory === directory) {
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
directory = parentDirectory;
|
|
51
|
+
}
|
|
52
|
+
return candidates.find((candidate) => isDirectory(candidate) && hasAstroDependency(candidate)) ?? candidates.find(isDirectory);
|
|
53
|
+
};
|
|
54
|
+
var linkCoreNodeModules = ({
|
|
55
|
+
coreNodeModules,
|
|
56
|
+
installedCoreNodeModules
|
|
57
|
+
}) => {
|
|
58
|
+
if (!installedCoreNodeModules) return;
|
|
59
|
+
if (isSymbolicLink(coreNodeModules)) {
|
|
60
|
+
if (isSameDirectory(coreNodeModules, installedCoreNodeModules)) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
fs.unlinkSync(coreNodeModules);
|
|
64
|
+
} else if (fs.existsSync(coreNodeModules)) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
fs.symlinkSync(installedCoreNodeModules, coreNodeModules, process.platform === "win32" ? "junction" : "dir");
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
export {
|
|
71
|
+
resolveInstalledCoreNodeModules,
|
|
72
|
+
linkCoreNodeModules
|
|
73
|
+
};
|
package/dist/constants.cjs
CHANGED
package/dist/constants.js
CHANGED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/core-node-modules.ts
|
|
31
|
+
var core_node_modules_exports = {};
|
|
32
|
+
__export(core_node_modules_exports, {
|
|
33
|
+
linkCoreNodeModules: () => linkCoreNodeModules,
|
|
34
|
+
resolveInstalledCoreNodeModules: () => resolveInstalledCoreNodeModules
|
|
35
|
+
});
|
|
36
|
+
module.exports = __toCommonJS(core_node_modules_exports);
|
|
37
|
+
var import_fs = __toESM(require("fs"), 1);
|
|
38
|
+
var import_node_path = __toESM(require("path"), 1);
|
|
39
|
+
var isDirectory = (directory) => {
|
|
40
|
+
try {
|
|
41
|
+
return import_fs.default.statSync(directory).isDirectory();
|
|
42
|
+
} catch (error) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
var hasAstroDependency = (nodeModulesDirectory) => {
|
|
47
|
+
const astroBin = process.platform === "win32" ? "astro.cmd" : "astro";
|
|
48
|
+
return import_fs.default.existsSync(import_node_path.default.join(nodeModulesDirectory, "astro", "package.json")) || import_fs.default.existsSync(import_node_path.default.join(nodeModulesDirectory, ".bin", astroBin));
|
|
49
|
+
};
|
|
50
|
+
var isSymbolicLink = (targetPath) => {
|
|
51
|
+
try {
|
|
52
|
+
return import_fs.default.lstatSync(targetPath).isSymbolicLink();
|
|
53
|
+
} catch (error) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
var isSameDirectory = (a, b) => {
|
|
58
|
+
try {
|
|
59
|
+
return import_fs.default.realpathSync.native(a) === import_fs.default.realpathSync.native(b);
|
|
60
|
+
} catch (error) {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
var resolveInstalledCoreNodeModules = (currentDir) => {
|
|
65
|
+
const candidates = [];
|
|
66
|
+
const seen = /* @__PURE__ */ new Set();
|
|
67
|
+
const addCandidate = (candidate) => {
|
|
68
|
+
const resolvedCandidate = import_node_path.default.resolve(candidate);
|
|
69
|
+
if (!seen.has(resolvedCandidate)) {
|
|
70
|
+
candidates.push(resolvedCandidate);
|
|
71
|
+
seen.add(resolvedCandidate);
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
addCandidate(import_node_path.default.resolve(currentDir, "..", "node_modules"));
|
|
75
|
+
let directory = import_node_path.default.resolve(currentDir);
|
|
76
|
+
while (true) {
|
|
77
|
+
if (import_node_path.default.basename(directory) === "node_modules") {
|
|
78
|
+
addCandidate(directory);
|
|
79
|
+
}
|
|
80
|
+
addCandidate(import_node_path.default.join(directory, "node_modules"));
|
|
81
|
+
const parentDirectory = import_node_path.default.dirname(directory);
|
|
82
|
+
if (parentDirectory === directory) {
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
directory = parentDirectory;
|
|
86
|
+
}
|
|
87
|
+
return candidates.find((candidate) => isDirectory(candidate) && hasAstroDependency(candidate)) ?? candidates.find(isDirectory);
|
|
88
|
+
};
|
|
89
|
+
var linkCoreNodeModules = ({
|
|
90
|
+
coreNodeModules,
|
|
91
|
+
installedCoreNodeModules
|
|
92
|
+
}) => {
|
|
93
|
+
if (!installedCoreNodeModules) return;
|
|
94
|
+
if (isSymbolicLink(coreNodeModules)) {
|
|
95
|
+
if (isSameDirectory(coreNodeModules, installedCoreNodeModules)) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
import_fs.default.unlinkSync(coreNodeModules);
|
|
99
|
+
} else if (import_fs.default.existsSync(coreNodeModules)) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
import_fs.default.symlinkSync(installedCoreNodeModules, coreNodeModules, process.platform === "win32" ? "junction" : "dir");
|
|
103
|
+
};
|
|
104
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
105
|
+
0 && (module.exports = {
|
|
106
|
+
linkCoreNodeModules,
|
|
107
|
+
resolveInstalledCoreNodeModules
|
|
108
|
+
});
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
declare const resolveInstalledCoreNodeModules: (currentDir: string) => string | undefined;
|
|
2
|
+
declare const linkCoreNodeModules: ({ coreNodeModules, installedCoreNodeModules, }: {
|
|
3
|
+
coreNodeModules: string;
|
|
4
|
+
installedCoreNodeModules?: string;
|
|
5
|
+
}) => void;
|
|
6
|
+
|
|
7
|
+
export { linkCoreNodeModules, resolveInstalledCoreNodeModules };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
declare const resolveInstalledCoreNodeModules: (currentDir: string) => string | undefined;
|
|
2
|
+
declare const linkCoreNodeModules: ({ coreNodeModules, installedCoreNodeModules, }: {
|
|
3
|
+
coreNodeModules: string;
|
|
4
|
+
installedCoreNodeModules?: string;
|
|
5
|
+
}) => void;
|
|
6
|
+
|
|
7
|
+
export { linkCoreNodeModules, resolveInstalledCoreNodeModules };
|
|
@@ -15,7 +15,7 @@ import AddedIn from '@site/src/components/MDX/AddedIn';
|
|
|
15
15
|
|
|
16
16
|
<AddedIn version="3.32.2" />
|
|
17
17
|
|
|
18
|
-
`<Prompt />` lets you embed ready-to-use AI prompts directly in your documentation pages. Readers can
|
|
18
|
+
`<Prompt />` lets you embed ready-to-use AI prompts directly in your documentation pages. Readers can expand the card to inspect the prompt, copy it to their clipboard, or open it straight in Cursor with one click.
|
|
19
19
|
|
|
20
20
|
Place the prompt text as the slot content and configure the label and actions via props.
|
|
21
21
|
|
|
@@ -58,6 +58,10 @@ Use `actions={["copy"]}` (the default) when you only need clipboard support. Add
|
|
|
58
58
|
|
|
59
59
|
Both actions derive their text from the slot content. HTML tags are stripped automatically, so plain text is always passed to the clipboard and the Cursor deep-link.
|
|
60
60
|
|
|
61
|
+
### Inspect the prompt
|
|
62
|
+
|
|
63
|
+
Every prompt card includes a **Show prompt** control. Expanding the card reveals the exact prompt text that will be copied or sent to Cursor.
|
|
64
|
+
|
|
61
65
|
### Use the icon prop
|
|
62
66
|
|
|
63
67
|
Pass any [Lucide](https://lucide.dev/icons/) icon name to the `icon` prop. The component normalises the value to PascalCase internally, so `"bot-message-square"`, `"bot_message_square"`, and `"Bot Message Square"` all resolve to the same icon.
|