@ai-matrx/alchemy 0.1.0
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/CHANGELOG.md +9 -0
- package/LICENSE +21 -0
- package/README.md +58 -0
- package/dist/alchemy.svg +1 -0
- package/dist/core.cjs +21 -0
- package/dist/core.cjs.map +1 -0
- package/dist/core.d.cts +1 -0
- package/dist/core.d.ts +1 -0
- package/dist/core.js +3 -0
- package/dist/core.js.map +1 -0
- package/dist/index.cjs +21 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/matrx-react.cjs +23 -0
- package/dist/matrx-react.cjs.map +1 -0
- package/dist/matrx-react.d.cts +1 -0
- package/dist/matrx-react.d.ts +1 -0
- package/dist/matrx-react.js +6 -0
- package/dist/matrx-react.js.map +1 -0
- package/dist/matrx.cjs +21 -0
- package/dist/matrx.cjs.map +1 -0
- package/dist/matrx.d.cts +1 -0
- package/dist/matrx.d.ts +1 -0
- package/dist/matrx.js +3 -0
- package/dist/matrx.js.map +1 -0
- package/dist/react.cjs +31 -0
- package/dist/react.cjs.map +1 -0
- package/dist/react.d.cts +2 -0
- package/dist/react.d.ts +2 -0
- package/dist/react.js +10 -0
- package/dist/react.js.map +1 -0
- package/dist/styles.css +382 -0
- package/package.json +139 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.1.0 — Unreleased
|
|
4
|
+
|
|
5
|
+
Initial `@ai-matrx/alchemy` distribution package. It exports the existing kit core, design-system React surface and assets, and agents Matrx adapter without duplicating their behavior.
|
|
6
|
+
|
|
7
|
+
### Consumer action
|
|
8
|
+
|
|
9
|
+
Wait for the initial npm publish and the required sibling package releases. Then install `@ai-matrx/alchemy` and replace multiple Alchemy package imports with the matching distribution subpath.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 AI Matrix Engine
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# @ai-matrx/alchemy
|
|
2
|
+
|
|
3
|
+
Alchemy is Matrx’s content-to-AI toolkit. **Alchemy Menu** is its small, reusable copy, preparation and export control. This distribution ships the canonical core, React controls, Matrx service adapter, CSS and SVG; it contains no parallel implementation.
|
|
4
|
+
|
|
5
|
+
## One menu, ready to use
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { AlchemyMenu } from "@ai-matrx/alchemy/react";
|
|
9
|
+
import "@ai-matrx/alchemy/styles.css";
|
|
10
|
+
|
|
11
|
+
export function TaskActions({ task }: { task: { id: string; title: string; description: string } }) {
|
|
12
|
+
return <AlchemyMenu
|
|
13
|
+
sourceId={`task:${task.id}`}
|
|
14
|
+
label={task.title}
|
|
15
|
+
human={() => task.description}
|
|
16
|
+
json={() => task}
|
|
17
|
+
agent={() => ({
|
|
18
|
+
kind: "task",
|
|
19
|
+
location: "Task detail",
|
|
20
|
+
description: "Current task, including unsaved changes",
|
|
21
|
+
data: task,
|
|
22
|
+
})}
|
|
23
|
+
/>;
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
The transparent icon opens ordinary copy, Markdown, formatted HTML with plain-text fallback, JSON, direct AI context, preparation, and downloads. No chevron, icon library or Tailwind build is required. Semantic HSL tokens inherit the host’s Matrx theme; neutral defaults work without one. Set `sourceId` from the record identity when a mounted control can switch records. Lazy getters run when content is captured.
|
|
28
|
+
|
|
29
|
+
Preparation supports editable drafts, detail presets, structural reductions, omissions and undo. Supplying table rows adds relevant spreadsheet formats; registered exporters and page actions retain the same captured-source boundary. An absent AI provider leaves manual preparation available without showing dead AI controls.
|
|
30
|
+
|
|
31
|
+
## Integrate Matrx services once
|
|
32
|
+
|
|
33
|
+
`MatrxContentTransferProvider` from `@ai-matrx/alchemy/matrx/react` accepts the canonical transport, authenticated database read port, current organization getter and source application. It supplies the declared durable AI preparation job to descendant menus. The host supplies identity and its existing live-run renderer; the package owns preparation, cancellation, exact request recovery and provenance. Mount the provider at an identity boundary so changing user or organization cannot reuse another identity’s prepared run.
|
|
34
|
+
|
|
35
|
+
For an exact mounted declared surface, use `createSurfaceTransferHandle` from `/core` and `ContentTransferSurfaceProvider` from `/react`. Bind its scope getter and mounted predicate to that instance. Never look up a same-named surface globally. Standard Matrx table row and toolbar adoption is being completed alongside initial publication. Custom tables can use the lower-level `ContentTransferMenu` source/table contract.
|
|
36
|
+
|
|
37
|
+
## Framework-neutral use
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
import { capture, createDraft, serialize } from "@ai-matrx/alchemy/core";
|
|
41
|
+
|
|
42
|
+
const { snapshot } = await capture(
|
|
43
|
+
{ kind: "text", text: "Hello" },
|
|
44
|
+
new AbortController().signal,
|
|
45
|
+
);
|
|
46
|
+
const artifact = serialize(createDraft(snapshot), "plain");
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
| Entry | Exports |
|
|
50
|
+
|---|---|
|
|
51
|
+
| `/core` (also package root) | Capture, projection, preparation, serializers, artifacts and transport. |
|
|
52
|
+
| `/react` | `AlchemyMenu`, lower-level `ContentTransferMenu`, surface/provider bindings and React glyph. |
|
|
53
|
+
| `/matrx` | Durable Matrx AI preparation adapter. |
|
|
54
|
+
| `/matrx/react` | React bindings for that adapter. |
|
|
55
|
+
| `/styles.css` | Self-contained menu and workspace styling. |
|
|
56
|
+
| `/alchemy.svg` | The standalone glyph asset. |
|
|
57
|
+
|
|
58
|
+
Initial publication is pending. Its registry installation canary requires the sibling kit, design-system and agents releases first.
|
package/dist/alchemy.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4.5 5.5h8v11h-8z"/><path d="M8.5 9.5h8v9h-8z"/><path d="m18.5 3 .65 1.85L21 5.5l-1.85.65L18.5 8l-.65-1.85L16 5.5l1.85-.65z"/></svg>
|
package/dist/core.cjs
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
+
|
|
17
|
+
// src/core.ts
|
|
18
|
+
var core_exports = {};
|
|
19
|
+
module.exports = __toCommonJS(core_exports);
|
|
20
|
+
__reExport(core_exports, require("@ai-matrx/kit/content-transfer"), module.exports);
|
|
21
|
+
//# sourceMappingURL=core.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core.ts"],"sourcesContent":["export * from \"@ai-matrx/kit/content-transfer\";\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,yBAAc,2CAAd;","names":[]}
|
package/dist/core.d.cts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@ai-matrx/kit/content-transfer';
|
package/dist/core.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@ai-matrx/kit/content-transfer';
|
package/dist/core.js
ADDED
package/dist/core.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core.ts"],"sourcesContent":["export * from \"@ai-matrx/kit/content-transfer\";\n"],"mappings":";AAAA,cAAc;","names":[]}
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
+
|
|
17
|
+
// src/index.ts
|
|
18
|
+
var src_exports = {};
|
|
19
|
+
module.exports = __toCommonJS(src_exports);
|
|
20
|
+
__reExport(src_exports, require("@ai-matrx/kit/content-transfer"), module.exports);
|
|
21
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from \"@ai-matrx/kit/content-transfer\";\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,wBAAc,2CAAd;","names":[]}
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@ai-matrx/kit/content-transfer';
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@ai-matrx/kit/content-transfer';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from \"@ai-matrx/kit/content-transfer\";\n"],"mappings":";AAAA,cAAc;","names":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";
|
|
3
|
+
"use client";
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
10
|
+
for (let key of __getOwnPropNames(from))
|
|
11
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
12
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
13
|
+
}
|
|
14
|
+
return to;
|
|
15
|
+
};
|
|
16
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
|
|
19
|
+
// src/matrx-react.ts
|
|
20
|
+
var matrx_react_exports = {};
|
|
21
|
+
module.exports = __toCommonJS(matrx_react_exports);
|
|
22
|
+
__reExport(matrx_react_exports, require("@ai-matrx/agents/content-transfer/react"), module.exports);
|
|
23
|
+
//# sourceMappingURL=matrx-react.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/matrx-react.ts"],"sourcesContent":["\"use client\";\n\nexport * from \"@ai-matrx/agents/content-transfer/react\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAEA,gCAAc,oDAFd;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@ai-matrx/agents/content-transfer/react';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@ai-matrx/agents/content-transfer/react';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/matrx-react.ts"],"sourcesContent":["\"use client\";\n\nexport * from \"@ai-matrx/agents/content-transfer/react\";\n"],"mappings":";;;;AAEA,cAAc;","names":[]}
|
package/dist/matrx.cjs
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
+
|
|
17
|
+
// src/matrx.ts
|
|
18
|
+
var matrx_exports = {};
|
|
19
|
+
module.exports = __toCommonJS(matrx_exports);
|
|
20
|
+
__reExport(matrx_exports, require("@ai-matrx/agents/content-transfer"), module.exports);
|
|
21
|
+
//# sourceMappingURL=matrx.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/matrx.ts"],"sourcesContent":["export * from \"@ai-matrx/agents/content-transfer\";\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,8CAAd;","names":[]}
|
package/dist/matrx.d.cts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@ai-matrx/agents/content-transfer';
|
package/dist/matrx.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@ai-matrx/agents/content-transfer';
|
package/dist/matrx.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/matrx.ts"],"sourcesContent":["export * from \"@ai-matrx/agents/content-transfer\";\n"],"mappings":";AAAA,cAAc;","names":[]}
|
package/dist/react.cjs
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";
|
|
3
|
+
"use client";
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
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 __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
21
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
22
|
+
|
|
23
|
+
// src/react.ts
|
|
24
|
+
var react_exports = {};
|
|
25
|
+
__export(react_exports, {
|
|
26
|
+
AlchemyMenu: () => import_content_transfer.MatrxCopyMenu
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(react_exports);
|
|
29
|
+
__reExport(react_exports, require("@ai-matrx/design-system/content-transfer"), module.exports);
|
|
30
|
+
var import_content_transfer = require("@ai-matrx/design-system/content-transfer");
|
|
31
|
+
//# sourceMappingURL=react.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/react.ts"],"sourcesContent":["\"use client\";\n\nexport * from \"@ai-matrx/design-system/content-transfer\";\n\n/** The Matrx-opinionated control, named for the Alchemy toolkit. */\nexport { MatrxCopyMenu as AlchemyMenu } from \"@ai-matrx/design-system/content-transfer\";\nexport type { MatrxCopyMenuProps as AlchemyMenuProps } from \"@ai-matrx/design-system/content-transfer\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,0BAAc,qDAFd;AAKA,8BAA6C;","names":[]}
|
package/dist/react.d.cts
ADDED
package/dist/react.d.ts
ADDED
package/dist/react.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use client";
|
|
3
|
+
|
|
4
|
+
// src/react.ts
|
|
5
|
+
export * from "@ai-matrx/design-system/content-transfer";
|
|
6
|
+
import { MatrxCopyMenu } from "@ai-matrx/design-system/content-transfer";
|
|
7
|
+
export {
|
|
8
|
+
MatrxCopyMenu as AlchemyMenu
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=react.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/react.ts"],"sourcesContent":["\"use client\";\n\nexport * from \"@ai-matrx/design-system/content-transfer\";\n\n/** The Matrx-opinionated control, named for the Alchemy toolkit. */\nexport { MatrxCopyMenu as AlchemyMenu } from \"@ai-matrx/design-system/content-transfer\";\nexport type { MatrxCopyMenuProps as AlchemyMenuProps } from \"@ai-matrx/design-system/content-transfer\";\n"],"mappings":";;;;AAEA,cAAc;AAGd,SAA0B,qBAAmB;","names":[]}
|
package/dist/styles.css
ADDED
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
/* Structural Alchemy rules. Hosts own token values; Tailwind is never required. */
|
|
2
|
+
.matrx-alchemy {
|
|
3
|
+
display: inline-flex;
|
|
4
|
+
align-items: center;
|
|
5
|
+
gap: 0.375rem;
|
|
6
|
+
}
|
|
7
|
+
.matrx-alchemy-trigger {
|
|
8
|
+
display: inline-flex;
|
|
9
|
+
align-items: center;
|
|
10
|
+
justify-content: center;
|
|
11
|
+
width: 2rem;
|
|
12
|
+
height: 2rem;
|
|
13
|
+
padding: 0.375rem;
|
|
14
|
+
border: 0;
|
|
15
|
+
border-radius: 0.375rem;
|
|
16
|
+
background: transparent;
|
|
17
|
+
color: hsl(var(--foreground, 240 10% 4%));
|
|
18
|
+
cursor: pointer;
|
|
19
|
+
}
|
|
20
|
+
.matrx-alchemy-trigger svg {
|
|
21
|
+
width: 1.125rem;
|
|
22
|
+
height: 1.125rem;
|
|
23
|
+
}
|
|
24
|
+
.matrx-alchemy-trigger:hover {
|
|
25
|
+
background: hsl(var(--accent, 240 5% 96%));
|
|
26
|
+
}
|
|
27
|
+
.matrx-alchemy-trigger:focus-visible {
|
|
28
|
+
outline: 2px solid hsl(var(--ring, 240 5% 65%));
|
|
29
|
+
outline-offset: 2px;
|
|
30
|
+
}
|
|
31
|
+
.matrx-alchemy-trigger:disabled {
|
|
32
|
+
opacity: 0.5;
|
|
33
|
+
cursor: not-allowed;
|
|
34
|
+
}
|
|
35
|
+
.matrx-alchemy-menu {
|
|
36
|
+
min-width: 18rem;
|
|
37
|
+
max-width: min(24rem, calc(100vw - 2rem));
|
|
38
|
+
}
|
|
39
|
+
.matrx-alchemy-notice,
|
|
40
|
+
.matrx-alchemy-meta {
|
|
41
|
+
font-size: 0.75rem;
|
|
42
|
+
color: hsl(var(--muted-foreground, 240 4% 46%));
|
|
43
|
+
}
|
|
44
|
+
.matrx-alchemy-workspace {
|
|
45
|
+
max-height: min(90dvh, 56rem);
|
|
46
|
+
overflow: auto;
|
|
47
|
+
}
|
|
48
|
+
.matrx-alchemy-workspace-grid {
|
|
49
|
+
display: grid;
|
|
50
|
+
grid-template-columns: minmax(0, 2fr) minmax(14rem, 1fr);
|
|
51
|
+
gap: 1rem;
|
|
52
|
+
min-height: 0;
|
|
53
|
+
}
|
|
54
|
+
.matrx-alchemy-main {
|
|
55
|
+
display: grid;
|
|
56
|
+
gap: 0.75rem;
|
|
57
|
+
min-width: 0;
|
|
58
|
+
}
|
|
59
|
+
.matrx-alchemy-toolbar {
|
|
60
|
+
display: flex;
|
|
61
|
+
flex-wrap: wrap;
|
|
62
|
+
gap: 0.5rem;
|
|
63
|
+
align-items: end;
|
|
64
|
+
}
|
|
65
|
+
.matrx-alchemy-toolbar label,
|
|
66
|
+
.matrx-alchemy-preview-label,
|
|
67
|
+
.matrx-alchemy-workspace aside label,
|
|
68
|
+
.matrx-alchemy-options label {
|
|
69
|
+
display: grid;
|
|
70
|
+
gap: 0.25rem;
|
|
71
|
+
font-size: 0.8125rem;
|
|
72
|
+
}
|
|
73
|
+
.matrx-alchemy-toolbar input,
|
|
74
|
+
.matrx-alchemy-toolbar select,
|
|
75
|
+
.matrx-alchemy-preview-label select,
|
|
76
|
+
.matrx-alchemy-workspace aside textarea,
|
|
77
|
+
.matrx-alchemy-options input {
|
|
78
|
+
min-height: 2.25rem;
|
|
79
|
+
border: 1px solid hsl(var(--border, 240 6% 90%));
|
|
80
|
+
border-radius: 0.25rem;
|
|
81
|
+
background: hsl(var(--background, 0 0% 100%));
|
|
82
|
+
color: inherit;
|
|
83
|
+
padding: 0.35rem 0.5rem;
|
|
84
|
+
}
|
|
85
|
+
.matrx-alchemy-options {
|
|
86
|
+
display: grid;
|
|
87
|
+
gap: 0.5rem;
|
|
88
|
+
max-height: 13rem;
|
|
89
|
+
overflow: auto;
|
|
90
|
+
border: 1px solid hsl(var(--border, 240 6% 90%));
|
|
91
|
+
border-radius: 0.375rem;
|
|
92
|
+
padding: 0.625rem;
|
|
93
|
+
}
|
|
94
|
+
.matrx-alchemy-options legend {
|
|
95
|
+
padding: 0 0.25rem;
|
|
96
|
+
font-size: 0.8125rem;
|
|
97
|
+
font-weight: 600;
|
|
98
|
+
}
|
|
99
|
+
.matrx-alchemy-column {
|
|
100
|
+
display: grid;
|
|
101
|
+
grid-template-columns: minmax(8rem, 1fr) minmax(8rem, 1fr);
|
|
102
|
+
gap: 0.5rem;
|
|
103
|
+
align-items: end;
|
|
104
|
+
}
|
|
105
|
+
.matrx-alchemy-row-list {
|
|
106
|
+
display: grid;
|
|
107
|
+
gap: 0.375rem;
|
|
108
|
+
max-height: 9rem;
|
|
109
|
+
overflow: auto;
|
|
110
|
+
padding: 0.25rem;
|
|
111
|
+
}
|
|
112
|
+
.matrx-alchemy-row-list label {
|
|
113
|
+
display: block;
|
|
114
|
+
overflow: hidden;
|
|
115
|
+
text-overflow: ellipsis;
|
|
116
|
+
white-space: nowrap;
|
|
117
|
+
}
|
|
118
|
+
.matrx-alchemy-coverage {
|
|
119
|
+
display: grid;
|
|
120
|
+
gap: 0.25rem;
|
|
121
|
+
font-size: 0.75rem;
|
|
122
|
+
color: hsl(var(--muted-foreground, 240 4% 46%));
|
|
123
|
+
}
|
|
124
|
+
.matrx-alchemy-coverage details {
|
|
125
|
+
max-height: 8rem;
|
|
126
|
+
overflow: auto;
|
|
127
|
+
}
|
|
128
|
+
.matrx-alchemy-coverage ul {
|
|
129
|
+
margin: 0.35rem 0 0;
|
|
130
|
+
padding-left: 1.25rem;
|
|
131
|
+
}
|
|
132
|
+
.matrx-alchemy-preview {
|
|
133
|
+
display: block;
|
|
134
|
+
width: 100%;
|
|
135
|
+
min-height: 20rem;
|
|
136
|
+
padding: 0.75rem;
|
|
137
|
+
border: 1px solid hsl(var(--border, 240 6% 90%));
|
|
138
|
+
border-radius: 0.375rem;
|
|
139
|
+
background: hsl(var(--muted, 240 5% 96%));
|
|
140
|
+
color: inherit;
|
|
141
|
+
font:
|
|
142
|
+
12px/1.45 ui-monospace,
|
|
143
|
+
SFMono-Regular,
|
|
144
|
+
Menlo,
|
|
145
|
+
monospace;
|
|
146
|
+
resize: vertical;
|
|
147
|
+
}
|
|
148
|
+
.matrx-alchemy-preview[aria-invalid="true"] {
|
|
149
|
+
border-color: hsl(var(--destructive, 0 84% 60%));
|
|
150
|
+
}
|
|
151
|
+
.matrx-alchemy-workspace aside {
|
|
152
|
+
display: grid;
|
|
153
|
+
align-content: start;
|
|
154
|
+
gap: 0.75rem;
|
|
155
|
+
}
|
|
156
|
+
.matrx-alchemy-workspace aside textarea {
|
|
157
|
+
min-height: 8rem;
|
|
158
|
+
resize: vertical;
|
|
159
|
+
}
|
|
160
|
+
.matrx-alchemy-decision {
|
|
161
|
+
display: flex;
|
|
162
|
+
flex-wrap: wrap;
|
|
163
|
+
align-items: center;
|
|
164
|
+
gap: 0.5rem;
|
|
165
|
+
padding: 0.75rem;
|
|
166
|
+
border: 1px solid hsl(var(--border, 240 6% 90%));
|
|
167
|
+
border-radius: 0.375rem;
|
|
168
|
+
background: hsl(var(--muted, 240 5% 96%));
|
|
169
|
+
}
|
|
170
|
+
.matrx-alchemy-decision p {
|
|
171
|
+
flex: 1 1 16rem;
|
|
172
|
+
margin: 0;
|
|
173
|
+
}
|
|
174
|
+
.matrx-alchemy-error {
|
|
175
|
+
font-size: 0.8125rem;
|
|
176
|
+
color: hsl(var(--destructive, 0 84% 60%));
|
|
177
|
+
}
|
|
178
|
+
@media (max-width: 640px) {
|
|
179
|
+
.matrx-alchemy-workspace-grid {
|
|
180
|
+
grid-template-columns: 1fr;
|
|
181
|
+
}
|
|
182
|
+
.matrx-alchemy-preview {
|
|
183
|
+
min-height: 14rem;
|
|
184
|
+
}
|
|
185
|
+
.matrx-alchemy-column {
|
|
186
|
+
grid-template-columns: 1fr;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.matrx-alchemy-xs .matrx-alchemy-trigger {
|
|
191
|
+
width: 1.75rem;
|
|
192
|
+
height: 1.75rem;
|
|
193
|
+
padding: 0.375rem;
|
|
194
|
+
}
|
|
195
|
+
.matrx-alchemy-xs .matrx-alchemy-trigger svg {
|
|
196
|
+
width: 1rem;
|
|
197
|
+
height: 1rem;
|
|
198
|
+
}
|
|
199
|
+
.matrx-alchemy-sm .matrx-alchemy-trigger {
|
|
200
|
+
width: 2.25rem;
|
|
201
|
+
height: 2.25rem;
|
|
202
|
+
}
|
|
203
|
+
@media (pointer: coarse) {
|
|
204
|
+
.matrx-alchemy .matrx-alchemy-trigger {
|
|
205
|
+
width: 2.75rem;
|
|
206
|
+
height: 2.75rem;
|
|
207
|
+
padding: 0.625rem;
|
|
208
|
+
}
|
|
209
|
+
.matrx-alchemy-workspace input,
|
|
210
|
+
.matrx-alchemy-workspace select,
|
|
211
|
+
.matrx-alchemy-workspace textarea {
|
|
212
|
+
font-size: max(1rem, 1em);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
.matrx-alchemy-menu-icon {
|
|
217
|
+
width: 1rem;
|
|
218
|
+
height: 1rem;
|
|
219
|
+
flex-shrink: 0;
|
|
220
|
+
}
|
|
221
|
+
.matrx-alchemy-menu-hint {
|
|
222
|
+
display: block;
|
|
223
|
+
color: hsl(var(--muted-foreground, 240 4% 46%));
|
|
224
|
+
font-size: 0.75rem;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/* Primitive chrome is scoped here so a plain React consumer needs no Tailwind build. */
|
|
228
|
+
.matrx-alchemy-menu,
|
|
229
|
+
.matrx-alchemy-workspace {
|
|
230
|
+
box-sizing: border-box;
|
|
231
|
+
font-family: inherit;
|
|
232
|
+
color: hsl(var(--foreground, 240 10% 4%));
|
|
233
|
+
background: hsl(var(--background, 0 0% 100%));
|
|
234
|
+
border: 1px solid hsl(var(--border, 240 6% 90%));
|
|
235
|
+
border-radius: 0.5rem;
|
|
236
|
+
box-shadow: 0 8px 28px hsl(var(--foreground, 240 10% 4%) / 0.12);
|
|
237
|
+
}
|
|
238
|
+
.matrx-alchemy-menu {
|
|
239
|
+
z-index: 10001;
|
|
240
|
+
padding: 0.25rem;
|
|
241
|
+
max-height: var(--radix-dropdown-menu-content-available-height, 80dvh);
|
|
242
|
+
overflow: auto;
|
|
243
|
+
overscroll-behavior: contain;
|
|
244
|
+
}
|
|
245
|
+
.matrx-alchemy-menu [role="menuitem"] {
|
|
246
|
+
display: flex;
|
|
247
|
+
align-items: center;
|
|
248
|
+
gap: 0.5rem;
|
|
249
|
+
min-height: 2rem;
|
|
250
|
+
padding: 0.375rem 0.5rem;
|
|
251
|
+
border-radius: 0.25rem;
|
|
252
|
+
font-size: 0.875rem;
|
|
253
|
+
cursor: default;
|
|
254
|
+
outline: none;
|
|
255
|
+
user-select: none;
|
|
256
|
+
}
|
|
257
|
+
.matrx-alchemy-menu [role="menuitem"][data-highlighted] {
|
|
258
|
+
background: hsl(var(--accent, 240 5% 96%));
|
|
259
|
+
}
|
|
260
|
+
.matrx-alchemy-menu [data-disabled] {
|
|
261
|
+
opacity: 0.5;
|
|
262
|
+
pointer-events: none;
|
|
263
|
+
}
|
|
264
|
+
.matrx-alchemy-menu [data-slot="dropdown-menu-label"] {
|
|
265
|
+
padding: 0.375rem 0.5rem;
|
|
266
|
+
font-size: 0.75rem;
|
|
267
|
+
font-weight: 600;
|
|
268
|
+
}
|
|
269
|
+
.matrx-alchemy-menu [role="separator"] {
|
|
270
|
+
height: 1px;
|
|
271
|
+
margin: 0.25rem 0;
|
|
272
|
+
background: hsl(var(--border, 240 6% 90%));
|
|
273
|
+
}
|
|
274
|
+
.matrx-alchemy-workspace {
|
|
275
|
+
position: fixed;
|
|
276
|
+
z-index: 10001;
|
|
277
|
+
top: 50%;
|
|
278
|
+
left: 50%;
|
|
279
|
+
right: auto;
|
|
280
|
+
bottom: auto;
|
|
281
|
+
margin: 0;
|
|
282
|
+
translate: -50% -50%;
|
|
283
|
+
width: min(64rem, calc(100vw - 2rem));
|
|
284
|
+
max-width: calc(100vw - 2rem);
|
|
285
|
+
padding: 1.5rem;
|
|
286
|
+
display: grid;
|
|
287
|
+
gap: 1rem;
|
|
288
|
+
}
|
|
289
|
+
[data-slot="dialog-overlay"]:has(+ .matrx-alchemy-workspace) {
|
|
290
|
+
position: fixed;
|
|
291
|
+
inset: 0;
|
|
292
|
+
z-index: 10000;
|
|
293
|
+
background: hsl(var(--foreground, 240 10% 4%) / 0.18);
|
|
294
|
+
}
|
|
295
|
+
.matrx-alchemy-workspace [data-slot="dialog-header"] {
|
|
296
|
+
display: grid;
|
|
297
|
+
gap: 0.375rem;
|
|
298
|
+
padding-right: 2.25rem;
|
|
299
|
+
}
|
|
300
|
+
.matrx-alchemy-workspace [data-slot="dialog-title"] {
|
|
301
|
+
margin: 0;
|
|
302
|
+
font-size: 1.125rem;
|
|
303
|
+
font-weight: 600;
|
|
304
|
+
}
|
|
305
|
+
.matrx-alchemy-workspace [data-slot="dialog-description"] {
|
|
306
|
+
margin: 0;
|
|
307
|
+
font-size: 0.875rem;
|
|
308
|
+
color: hsl(var(--muted-foreground, 240 4% 46%));
|
|
309
|
+
}
|
|
310
|
+
.matrx-alchemy-workspace [data-slot="dialog-footer"] {
|
|
311
|
+
display: flex;
|
|
312
|
+
flex-wrap: wrap;
|
|
313
|
+
justify-content: flex-end;
|
|
314
|
+
gap: 0.5rem;
|
|
315
|
+
align-items: center;
|
|
316
|
+
}
|
|
317
|
+
.matrx-alchemy-workspace button {
|
|
318
|
+
display: inline-flex;
|
|
319
|
+
align-items: center;
|
|
320
|
+
justify-content: center;
|
|
321
|
+
gap: 0.375rem;
|
|
322
|
+
min-height: 2rem;
|
|
323
|
+
padding: 0.375rem 0.75rem;
|
|
324
|
+
border: 1px solid hsl(var(--border, 240 6% 90%));
|
|
325
|
+
border-radius: 0.375rem;
|
|
326
|
+
background: hsl(var(--background, 0 0% 100%));
|
|
327
|
+
color: inherit;
|
|
328
|
+
font: inherit;
|
|
329
|
+
font-size: 0.8125rem;
|
|
330
|
+
cursor: pointer;
|
|
331
|
+
}
|
|
332
|
+
.matrx-alchemy-workspace button:hover {
|
|
333
|
+
background: hsl(var(--accent, 240 5% 96%));
|
|
334
|
+
}
|
|
335
|
+
.matrx-alchemy-workspace button:disabled {
|
|
336
|
+
opacity: 0.5;
|
|
337
|
+
cursor: not-allowed;
|
|
338
|
+
}
|
|
339
|
+
.matrx-alchemy-workspace button:focus-visible,
|
|
340
|
+
.matrx-alchemy-workspace :is(input, textarea, select):focus-visible {
|
|
341
|
+
outline: 2px solid hsl(var(--ring, 240 5% 65%));
|
|
342
|
+
outline-offset: 2px;
|
|
343
|
+
}
|
|
344
|
+
.matrx-alchemy-workspace [data-slot="dialog-close"] {
|
|
345
|
+
position: absolute;
|
|
346
|
+
top: 0.5rem;
|
|
347
|
+
right: 0.5rem;
|
|
348
|
+
width: 2.5rem;
|
|
349
|
+
height: 2.5rem;
|
|
350
|
+
padding: 0.5rem;
|
|
351
|
+
border: 0;
|
|
352
|
+
background: transparent;
|
|
353
|
+
}
|
|
354
|
+
.matrx-alchemy-workspace [data-slot="dialog-close"] svg {
|
|
355
|
+
width: 1rem;
|
|
356
|
+
height: 1rem;
|
|
357
|
+
}
|
|
358
|
+
.matrx-alchemy-workspace [data-slot="dialog-close"] .sr-only {
|
|
359
|
+
position: absolute;
|
|
360
|
+
width: 1px;
|
|
361
|
+
height: 1px;
|
|
362
|
+
padding: 0;
|
|
363
|
+
overflow: hidden;
|
|
364
|
+
clip: rect(0, 0, 0, 0);
|
|
365
|
+
white-space: nowrap;
|
|
366
|
+
}
|
|
367
|
+
@media (max-width: 767px) {
|
|
368
|
+
.matrx-alchemy-workspace {
|
|
369
|
+
top: auto;
|
|
370
|
+
bottom: 0;
|
|
371
|
+
left: 0;
|
|
372
|
+
translate: none;
|
|
373
|
+
width: 100%;
|
|
374
|
+
max-width: 100%;
|
|
375
|
+
max-height: 92dvh;
|
|
376
|
+
padding: 1rem 1rem max(1rem, env(safe-area-inset-bottom));
|
|
377
|
+
border-radius: 0.75rem 0.75rem 0 0;
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
.matrx-alchemy-menu *, .matrx-alchemy-workspace * { box-sizing: border-box; }
|
|
382
|
+
.matrx-alchemy-workspace-grid:not(:has(aside)) { grid-template-columns: minmax(0, 1fr); }
|
package/package.json
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ai-matrx/alchemy",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Matrx Alchemy: the complete Matrx copy, prepare-for-AI, and export experience, with framework-neutral core, React menu, glyph, styles and Matrx integration.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.cjs",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"keywords": [
|
|
11
|
+
"alchemy",
|
|
12
|
+
"clipboard",
|
|
13
|
+
"copy",
|
|
14
|
+
"export",
|
|
15
|
+
"markdown",
|
|
16
|
+
"json",
|
|
17
|
+
"react",
|
|
18
|
+
"ai-matrx"
|
|
19
|
+
],
|
|
20
|
+
"repository": {
|
|
21
|
+
"type": "git",
|
|
22
|
+
"url": "git+https://github.com/AI-Matrix-Engine/aidream.git",
|
|
23
|
+
"directory": "apps/shared/alchemy"
|
|
24
|
+
},
|
|
25
|
+
"homepage": "https://github.com/AI-Matrix-Engine/aidream/tree/main/apps/shared/alchemy#readme",
|
|
26
|
+
"bugs": {
|
|
27
|
+
"url": "https://github.com/AI-Matrix-Engine/aidream/issues"
|
|
28
|
+
},
|
|
29
|
+
"files": [
|
|
30
|
+
"dist",
|
|
31
|
+
"README.md",
|
|
32
|
+
"LICENSE",
|
|
33
|
+
"CHANGELOG.md"
|
|
34
|
+
],
|
|
35
|
+
"exports": {
|
|
36
|
+
".": {
|
|
37
|
+
"import": {
|
|
38
|
+
"types": "./dist/index.d.ts",
|
|
39
|
+
"default": "./dist/index.js"
|
|
40
|
+
},
|
|
41
|
+
"require": {
|
|
42
|
+
"types": "./dist/index.d.cts",
|
|
43
|
+
"default": "./dist/index.cjs"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"./core": {
|
|
47
|
+
"import": {
|
|
48
|
+
"types": "./dist/core.d.ts",
|
|
49
|
+
"default": "./dist/core.js"
|
|
50
|
+
},
|
|
51
|
+
"require": {
|
|
52
|
+
"types": "./dist/core.d.cts",
|
|
53
|
+
"default": "./dist/core.cjs"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"./react": {
|
|
57
|
+
"import": {
|
|
58
|
+
"types": "./dist/react.d.ts",
|
|
59
|
+
"default": "./dist/react.js"
|
|
60
|
+
},
|
|
61
|
+
"require": {
|
|
62
|
+
"types": "./dist/react.d.cts",
|
|
63
|
+
"default": "./dist/react.cjs"
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"./matrx": {
|
|
67
|
+
"import": {
|
|
68
|
+
"types": "./dist/matrx.d.ts",
|
|
69
|
+
"default": "./dist/matrx.js"
|
|
70
|
+
},
|
|
71
|
+
"require": {
|
|
72
|
+
"types": "./dist/matrx.d.cts",
|
|
73
|
+
"default": "./dist/matrx.cjs"
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"./matrx/react": {
|
|
77
|
+
"import": {
|
|
78
|
+
"types": "./dist/matrx-react.d.ts",
|
|
79
|
+
"default": "./dist/matrx-react.js"
|
|
80
|
+
},
|
|
81
|
+
"require": {
|
|
82
|
+
"types": "./dist/matrx-react.d.cts",
|
|
83
|
+
"default": "./dist/matrx-react.cjs"
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"./styles.css": "./dist/styles.css",
|
|
87
|
+
"./alchemy.svg": "./dist/alchemy.svg",
|
|
88
|
+
"./package.json": "./package.json"
|
|
89
|
+
},
|
|
90
|
+
"peerDependencies": {
|
|
91
|
+
"react": ">=18.0.0",
|
|
92
|
+
"react-dom": ">=18.0.0"
|
|
93
|
+
},
|
|
94
|
+
"peerDependenciesMeta": {
|
|
95
|
+
"react": {
|
|
96
|
+
"optional": true
|
|
97
|
+
},
|
|
98
|
+
"react-dom": {
|
|
99
|
+
"optional": true
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
"devDependencies": {
|
|
103
|
+
"@arethetypeswrong/cli": "^0.18.5",
|
|
104
|
+
"@testing-library/react": "^16.3.0",
|
|
105
|
+
"@types/node": "^24.10.1",
|
|
106
|
+
"@types/react": "^19.1.0",
|
|
107
|
+
"@types/react-dom": "^19.1.0",
|
|
108
|
+
"jsdom": "^26.1.0",
|
|
109
|
+
"publint": "^0.3.24",
|
|
110
|
+
"react": "^19.1.0",
|
|
111
|
+
"react-dom": "^19.1.0",
|
|
112
|
+
"tsup": "^8.5.1",
|
|
113
|
+
"typescript": "^5.9.3",
|
|
114
|
+
"vitest": "^4.1.6"
|
|
115
|
+
},
|
|
116
|
+
"publishConfig": {
|
|
117
|
+
"access": "public",
|
|
118
|
+
"registry": "https://registry.npmjs.org/"
|
|
119
|
+
},
|
|
120
|
+
"engines": {
|
|
121
|
+
"node": ">=20"
|
|
122
|
+
},
|
|
123
|
+
"sideEffects": [
|
|
124
|
+
"*.css"
|
|
125
|
+
],
|
|
126
|
+
"dependencies": {
|
|
127
|
+
"@ai-matrx/design-system": "latest",
|
|
128
|
+
"@ai-matrx/kit": "latest",
|
|
129
|
+
"@ai-matrx/agents": "latest"
|
|
130
|
+
},
|
|
131
|
+
"scripts": {
|
|
132
|
+
"build": "pnpm clean && tsup && node ./scripts/copy-assets.mjs && node ./scripts/assert-distribution-artifacts.mjs",
|
|
133
|
+
"clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
|
|
134
|
+
"check:package": "pnpm build && publint && pnpm verify:tarball",
|
|
135
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
136
|
+
"test": "vitest run",
|
|
137
|
+
"verify:tarball": "node ./scripts/verify-tarball.mjs"
|
|
138
|
+
}
|
|
139
|
+
}
|