golem-ui 0.1.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/LICENSE +21 -0
- package/README.md +165 -0
- package/dist/abi/define-component.d.ts +28 -0
- package/dist/abi/define-component.d.ts.map +1 -0
- package/dist/abi/docs.d.ts +104 -0
- package/dist/abi/docs.d.ts.map +1 -0
- package/dist/abi/error-card.d.ts +18 -0
- package/dist/abi/error-card.d.ts.map +1 -0
- package/dist/abi/fields.d.ts +71 -0
- package/dist/abi/fields.d.ts.map +1 -0
- package/dist/abi/index.d.ts +8 -0
- package/dist/abi/index.d.ts.map +1 -0
- package/dist/adapters/chat.d.ts +28 -0
- package/dist/adapters/chat.d.ts.map +1 -0
- package/dist/adapters/chat.docs.d.ts +3 -0
- package/dist/adapters/chat.docs.d.ts.map +1 -0
- package/dist/adapters/clock.d.ts +5 -0
- package/dist/adapters/clock.d.ts.map +1 -0
- package/dist/adapters/clock.docs.d.ts +3 -0
- package/dist/adapters/clock.docs.d.ts.map +1 -0
- package/dist/adapters/common.d.ts +3 -0
- package/dist/adapters/common.d.ts.map +1 -0
- package/dist/adapters/fake/chat.d.ts +13 -0
- package/dist/adapters/fake/chat.d.ts.map +1 -0
- package/dist/adapters/fake/clock.d.ts +4 -0
- package/dist/adapters/fake/clock.d.ts.map +1 -0
- package/dist/adapters/fake/emitter.d.ts +7 -0
- package/dist/adapters/fake/emitter.d.ts.map +1 -0
- package/dist/adapters/fake/files.d.ts +42 -0
- package/dist/adapters/fake/files.d.ts.map +1 -0
- package/dist/adapters/fake/identity.d.ts +24 -0
- package/dist/adapters/fake/identity.d.ts.map +1 -0
- package/dist/adapters/fake/index.d.ts +11 -0
- package/dist/adapters/fake/index.d.ts.map +1 -0
- package/dist/adapters/fake/navigation.d.ts +3 -0
- package/dist/adapters/fake/navigation.d.ts.map +1 -0
- package/dist/adapters/fake/records.d.ts +32 -0
- package/dist/adapters/fake/records.d.ts.map +1 -0
- package/dist/adapters/files.d.ts +59 -0
- package/dist/adapters/files.d.ts.map +1 -0
- package/dist/adapters/files.docs.d.ts +3 -0
- package/dist/adapters/files.docs.d.ts.map +1 -0
- package/dist/adapters/identity.d.ts +41 -0
- package/dist/adapters/identity.d.ts.map +1 -0
- package/dist/adapters/identity.docs.d.ts +3 -0
- package/dist/adapters/identity.docs.d.ts.map +1 -0
- package/dist/adapters/index.d.ts +10 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/navigation.d.ts +11 -0
- package/dist/adapters/navigation.d.ts.map +1 -0
- package/dist/adapters/navigation.docs.d.ts +3 -0
- package/dist/adapters/navigation.docs.d.ts.map +1 -0
- package/dist/adapters/records.d.ts +99 -0
- package/dist/adapters/records.d.ts.map +1 -0
- package/dist/adapters/records.docs.d.ts +3 -0
- package/dist/adapters/records.docs.d.ts.map +1 -0
- package/dist/components/Auth/Auth.config.d.ts +33 -0
- package/dist/components/Auth/Auth.config.d.ts.map +1 -0
- package/dist/components/Auth/Auth.d.ts +146 -0
- package/dist/components/Auth/Auth.d.ts.map +1 -0
- package/dist/components/Auth/Auth.docs.d.ts +3 -0
- package/dist/components/Auth/Auth.docs.d.ts.map +1 -0
- package/dist/components/Auth/index.d.ts +6 -0
- package/dist/components/Auth/index.d.ts.map +1 -0
- package/dist/components/Chat/Chat.config.d.ts +13 -0
- package/dist/components/Chat/Chat.config.d.ts.map +1 -0
- package/dist/components/Chat/Chat.d.ts +34 -0
- package/dist/components/Chat/Chat.d.ts.map +1 -0
- package/dist/components/Chat/Chat.docs.d.ts +3 -0
- package/dist/components/Chat/Chat.docs.d.ts.map +1 -0
- package/dist/components/Chat/index.d.ts +6 -0
- package/dist/components/Chat/index.d.ts.map +1 -0
- package/dist/components/Editor/Editor.config.d.ts +21 -0
- package/dist/components/Editor/Editor.config.d.ts.map +1 -0
- package/dist/components/Editor/Editor.d.ts +46 -0
- package/dist/components/Editor/Editor.d.ts.map +1 -0
- package/dist/components/Editor/Editor.docs.d.ts +3 -0
- package/dist/components/Editor/Editor.docs.d.ts.map +1 -0
- package/dist/components/Editor/index.d.ts +6 -0
- package/dist/components/Editor/index.d.ts.map +1 -0
- package/dist/components/Editor/source.d.ts +29 -0
- package/dist/components/Editor/source.d.ts.map +1 -0
- package/dist/components/RecordForm/RecordForm.config.d.ts +52 -0
- package/dist/components/RecordForm/RecordForm.config.d.ts.map +1 -0
- package/dist/components/RecordForm/RecordForm.d.ts +96 -0
- package/dist/components/RecordForm/RecordForm.d.ts.map +1 -0
- package/dist/components/RecordForm/RecordForm.docs.d.ts +3 -0
- package/dist/components/RecordForm/RecordForm.docs.d.ts.map +1 -0
- package/dist/components/RecordForm/index.d.ts +6 -0
- package/dist/components/RecordForm/index.d.ts.map +1 -0
- package/dist/components/RecordForm/values.d.ts +26 -0
- package/dist/components/RecordForm/values.d.ts.map +1 -0
- package/dist/components/RecordList/RecordList.config.d.ts +43 -0
- package/dist/components/RecordList/RecordList.config.d.ts.map +1 -0
- package/dist/components/RecordList/RecordList.d.ts +76 -0
- package/dist/components/RecordList/RecordList.d.ts.map +1 -0
- package/dist/components/RecordList/RecordList.docs.d.ts +3 -0
- package/dist/components/RecordList/RecordList.docs.d.ts.map +1 -0
- package/dist/components/RecordList/index.d.ts +6 -0
- package/dist/components/RecordList/index.d.ts.map +1 -0
- package/dist/components/Report/Report.config.d.ts +23 -0
- package/dist/components/Report/Report.config.d.ts.map +1 -0
- package/dist/components/Report/Report.d.ts +53 -0
- package/dist/components/Report/Report.d.ts.map +1 -0
- package/dist/components/Report/Report.docs.d.ts +3 -0
- package/dist/components/Report/Report.docs.d.ts.map +1 -0
- package/dist/components/Report/index.d.ts +6 -0
- package/dist/components/Report/index.d.ts.map +1 -0
- package/dist/components/Shell/Shell.config.d.ts +13 -0
- package/dist/components/Shell/Shell.config.d.ts.map +1 -0
- package/dist/components/Shell/Shell.d.ts +35 -0
- package/dist/components/Shell/Shell.d.ts.map +1 -0
- package/dist/components/Shell/Shell.docs.d.ts +3 -0
- package/dist/components/Shell/Shell.docs.d.ts.map +1 -0
- package/dist/components/Shell/index.d.ts +6 -0
- package/dist/components/Shell/index.d.ts.map +1 -0
- package/dist/components/Timeline/Timeline.config.d.ts +48 -0
- package/dist/components/Timeline/Timeline.config.d.ts.map +1 -0
- package/dist/components/Timeline/Timeline.d.ts +62 -0
- package/dist/components/Timeline/Timeline.d.ts.map +1 -0
- package/dist/components/Timeline/Timeline.docs.d.ts +3 -0
- package/dist/components/Timeline/Timeline.docs.d.ts.map +1 -0
- package/dist/components/Timeline/index.d.ts +6 -0
- package/dist/components/Timeline/index.d.ts.map +1 -0
- package/dist/components/Upload/Upload.config.d.ts +47 -0
- package/dist/components/Upload/Upload.config.d.ts.map +1 -0
- package/dist/components/Upload/Upload.d.ts +80 -0
- package/dist/components/Upload/Upload.d.ts.map +1 -0
- package/dist/components/Upload/Upload.docs.d.ts +3 -0
- package/dist/components/Upload/Upload.docs.d.ts.map +1 -0
- package/dist/components/Upload/index.d.ts +6 -0
- package/dist/components/Upload/index.d.ts.map +1 -0
- package/dist/docs.d.ts +23 -0
- package/dist/docs.d.ts.map +1 -0
- package/dist/golem-ui.css +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5237 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/diff3.d.ts +41 -0
- package/dist/lib/diff3.d.ts.map +1 -0
- package/dist/lib/format.d.ts +19 -0
- package/dist/lib/format.d.ts.map +1 -0
- package/dist/lib/locale.d.ts +13 -0
- package/dist/lib/locale.d.ts.map +1 -0
- package/dist/lib/markdown.d.ts +15 -0
- package/dist/lib/markdown.d.ts.map +1 -0
- package/dist/lib/use-container-width.d.ts +11 -0
- package/dist/lib/use-container-width.d.ts.map +1 -0
- package/package.json +103 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A three-way merge over lines, which is what lets a person and an agent write the same document at
|
|
3
|
+
* the same time without either one flattening the other. `base` is the version both started from,
|
|
4
|
+
* `mine` is the local draft, `theirs` is what arrived; the result is the chunks a merged document is
|
|
5
|
+
* made of, each one saying where its lines came from.
|
|
6
|
+
*
|
|
7
|
+
* Lines, not characters: a merge that resolves inside a sentence produces text neither writer wrote.
|
|
8
|
+
* A whole line is the smallest unit a person can look at and say "that one, not that one".
|
|
9
|
+
*/
|
|
10
|
+
export type Merge3Chunk = {
|
|
11
|
+
kind: 'clean';
|
|
12
|
+
lines: string[];
|
|
13
|
+
/** `both` is untouched, `mine` is the local edit, `theirs` is what the agent just wrote. */
|
|
14
|
+
from: 'both' | 'mine' | 'theirs';
|
|
15
|
+
} | {
|
|
16
|
+
kind: 'conflict';
|
|
17
|
+
mine: string[];
|
|
18
|
+
theirs: string[];
|
|
19
|
+
};
|
|
20
|
+
export interface Merge3 {
|
|
21
|
+
chunks: Merge3Chunk[];
|
|
22
|
+
/** True when at least one chunk is a conflict, so the reader has to choose. */
|
|
23
|
+
conflicted: boolean;
|
|
24
|
+
}
|
|
25
|
+
export declare function merge3(baseText: string, mineText: string, theirsText: string): Merge3;
|
|
26
|
+
/**
|
|
27
|
+
* The merged document as text, plus the line ranges the other side wrote — what the editor paints a
|
|
28
|
+
* gutter down so the person can see what the agent just changed. `choose` settles any conflict; a
|
|
29
|
+
* merge with none never calls it.
|
|
30
|
+
*/
|
|
31
|
+
export declare function mergedText(chunks: Merge3Chunk[], choose?: (chunk: {
|
|
32
|
+
mine: string[];
|
|
33
|
+
theirs: string[];
|
|
34
|
+
}, index: number) => 'mine' | 'theirs'): {
|
|
35
|
+
text: string;
|
|
36
|
+
theirLines: {
|
|
37
|
+
start: number;
|
|
38
|
+
end: number;
|
|
39
|
+
}[];
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=diff3.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff3.d.ts","sourceRoot":"","sources":["../../src/lib/diff3.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,WAAW,GACnB;IACE,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,4FAA4F;IAC5F,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAA;CACjC,GACD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAE1D,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,+EAA+E;IAC/E,UAAU,EAAE,OAAO,CAAA;CACpB;AA4ED,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAyFrF;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,WAAW,EAAE,EACrB,MAAM,GAAE,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,QACzE,GACP;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,CAmBhE"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { RenderedField } from '../abi/fields';
|
|
2
|
+
/**
|
|
3
|
+
* A `user` value is either the name as a string or a record with one on it, because a records
|
|
4
|
+
* adapter may hand back either and the list should not care which.
|
|
5
|
+
*/
|
|
6
|
+
export declare function userName(value: unknown): string;
|
|
7
|
+
export declare function initials(name: string): string;
|
|
8
|
+
/**
|
|
9
|
+
* Every value is formatted in UTC, so a row reads the same in every timezone — for a local reading,
|
|
10
|
+
* put local time in the record. An unparseable date falls back to the raw string rather than to
|
|
11
|
+
* `Invalid Date`: the reader should see what the record actually holds.
|
|
12
|
+
*/
|
|
13
|
+
export declare function formatValue(value: unknown, field: RenderedField): string;
|
|
14
|
+
/**
|
|
15
|
+
* An enum chip's colour is derived from the value itself, so the same status is the same colour on
|
|
16
|
+
* every screen and no config has to name a palette.
|
|
17
|
+
*/
|
|
18
|
+
export declare function chipTone(value: string): string;
|
|
19
|
+
//# sourceMappingURL=format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/lib/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AASlD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQ/C;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO7C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,GAAG,MAAM,CAiCxE;AAWD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAI9C"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A locale the platform can actually format with. `en_GB` and `english` are the two an agent
|
|
3
|
+
* writes by mistake, and both would otherwise throw inside `Intl` at render time rather than land
|
|
4
|
+
* on the error card.
|
|
5
|
+
*/
|
|
6
|
+
export declare function isFormattableLocale(locale: string): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* A time zone `Intl` accepts, or UTC. The zone comes from the `Clock` adapter rather than from the
|
|
9
|
+
* config, so there is no field to name on an error card — a zone the platform does not know falls
|
|
10
|
+
* back rather than throwing mid-render.
|
|
11
|
+
*/
|
|
12
|
+
export declare function formattableZone(timeZone: string): string;
|
|
13
|
+
//# sourceMappingURL=locale.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../src/lib/locale.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAO3D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOxD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A heading's slug, so something outside this file can find it — a report's contents list scrolls
|
|
3
|
+
* to `[data-golem-heading="closed-today"]`. It is a data attribute rather than an `id` because two
|
|
4
|
+
* documents on one page would otherwise mint the same id twice.
|
|
5
|
+
*/
|
|
6
|
+
export declare function headingSlug(text: string): string;
|
|
7
|
+
/**
|
|
8
|
+
* `hardWraps` is the difference between the readers. A chat bubble keeps a single newline the
|
|
9
|
+
* person typed; a docs paragraph wrapped at the source's column width must not show those wraps.
|
|
10
|
+
*/
|
|
11
|
+
export declare function Markdown({ text, hardWraps }: {
|
|
12
|
+
text: string;
|
|
13
|
+
hardWraps?: boolean;
|
|
14
|
+
}): import("react").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=markdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/lib/markdown.tsx"],"names":[],"mappings":"AAuDA;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKhD;AAoGD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAgB,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,+BAkFzF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type RefObject } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* The breakpoint is a config value, not a stylesheet constant, so the layout cannot be picked by a
|
|
4
|
+
* CSS media query — the frame measures itself instead. Measuring the element rather than the
|
|
5
|
+
* viewport means an embedded Shell in a narrow column gets the mobile layout too.
|
|
6
|
+
*
|
|
7
|
+
* Falls back to the viewport where there is no ResizeObserver, or before the first measurement
|
|
8
|
+
* (jsdom, server rendering, the first paint).
|
|
9
|
+
*/
|
|
10
|
+
export declare function useContainerWidth(ref: RefObject<HTMLElement | null>): number;
|
|
11
|
+
//# sourceMappingURL=use-container-width.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-container-width.d.ts","sourceRoot":"","sources":["../../src/lib/use-container-width.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAK3D;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,MAAM,CAwB5E"}
|
package/package.json
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "golem-ui",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"private": false,
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"description": "UI components with one ABI — config + adapters — built so an agent can assemble a screen correctly the first time.",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"react",
|
|
9
|
+
"react-components",
|
|
10
|
+
"ui",
|
|
11
|
+
"component-library",
|
|
12
|
+
"design-system",
|
|
13
|
+
"agent",
|
|
14
|
+
"ai-agent",
|
|
15
|
+
"zod",
|
|
16
|
+
"tailwind"
|
|
17
|
+
],
|
|
18
|
+
"type": "module",
|
|
19
|
+
"sideEffects": [
|
|
20
|
+
"*.css"
|
|
21
|
+
],
|
|
22
|
+
"files": [
|
|
23
|
+
"dist"
|
|
24
|
+
],
|
|
25
|
+
"main": "./dist/index.js",
|
|
26
|
+
"module": "./dist/index.js",
|
|
27
|
+
"types": "./dist/index.d.ts",
|
|
28
|
+
"exports": {
|
|
29
|
+
".": {
|
|
30
|
+
"types": "./dist/index.d.ts",
|
|
31
|
+
"import": "./dist/index.js"
|
|
32
|
+
},
|
|
33
|
+
"./styles.css": "./dist/golem-ui.css"
|
|
34
|
+
},
|
|
35
|
+
"engines": {
|
|
36
|
+
"node": ">=20"
|
|
37
|
+
},
|
|
38
|
+
"repository": {
|
|
39
|
+
"type": "git",
|
|
40
|
+
"url": "git+https://github.com/tonylampada/golem-ui.git"
|
|
41
|
+
},
|
|
42
|
+
"homepage": "https://tonylampada.github.io/golem-ui/",
|
|
43
|
+
"bugs": {
|
|
44
|
+
"url": "https://github.com/tonylampada/golem-ui/issues"
|
|
45
|
+
},
|
|
46
|
+
"scripts": {
|
|
47
|
+
"dev": "storybook dev -p 6006",
|
|
48
|
+
"dev-showcase": "vite --config showcase/vite.config.ts",
|
|
49
|
+
"dev-site": "vite --config site/vite.config.ts",
|
|
50
|
+
"lint": "eslint .",
|
|
51
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
52
|
+
"test": "vitest run",
|
|
53
|
+
"test:watch": "vitest",
|
|
54
|
+
"build": "vite build && tsc -p tsconfig.build.json",
|
|
55
|
+
"build-site": "vite build --config site/vite.config.ts",
|
|
56
|
+
"build-storybook": "storybook build -o dist-site/storybook",
|
|
57
|
+
"build-showcase": "vite build --config showcase/vite.config.ts",
|
|
58
|
+
"format": "prettier --write ."
|
|
59
|
+
},
|
|
60
|
+
"peerDependencies": {
|
|
61
|
+
"react": "^19.0.0",
|
|
62
|
+
"react-dom": "^19.0.0"
|
|
63
|
+
},
|
|
64
|
+
"dependencies": {
|
|
65
|
+
"zod": "^4.1.12"
|
|
66
|
+
},
|
|
67
|
+
"devDependencies": {
|
|
68
|
+
"@eslint/js": "^9.39.0",
|
|
69
|
+
"@storybook/addon-docs": "^10.6.0",
|
|
70
|
+
"@storybook/react-vite": "^10.6.0",
|
|
71
|
+
"@tailwindcss/vite": "^4.1.14",
|
|
72
|
+
"@testing-library/dom": "^10.4.1",
|
|
73
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
74
|
+
"@testing-library/react": "^16.3.0",
|
|
75
|
+
"@testing-library/user-event": "^14.6.1",
|
|
76
|
+
"@types/node": "^26.4.1",
|
|
77
|
+
"@types/react": "^19.2.2",
|
|
78
|
+
"@types/react-dom": "^19.2.1",
|
|
79
|
+
"@vitejs/plugin-react": "^5.0.4",
|
|
80
|
+
"eslint": "^9.39.0",
|
|
81
|
+
"eslint-config-prettier": "^10.1.8",
|
|
82
|
+
"eslint-plugin-react-hooks": "^7.0.1",
|
|
83
|
+
"eslint-plugin-storybook": "^10.6.0",
|
|
84
|
+
"globals": "^16.4.0",
|
|
85
|
+
"jsdom": "^27.0.0",
|
|
86
|
+
"prettier": "^3.6.2",
|
|
87
|
+
"react": "^19.2.0",
|
|
88
|
+
"react-dom": "^19.2.0",
|
|
89
|
+
"remark-gfm": "^4.0.1",
|
|
90
|
+
"storybook": "^10.6.0",
|
|
91
|
+
"tailwindcss": "^4.1.14",
|
|
92
|
+
"typescript": "^5.9.3",
|
|
93
|
+
"typescript-eslint": "^8.46.0",
|
|
94
|
+
"vite": "^7.1.9",
|
|
95
|
+
"vitest": "^3.2.4"
|
|
96
|
+
},
|
|
97
|
+
"packageManager": "pnpm@10.28.2",
|
|
98
|
+
"pnpm": {
|
|
99
|
+
"onlyBuiltDependencies": [
|
|
100
|
+
"esbuild"
|
|
101
|
+
]
|
|
102
|
+
}
|
|
103
|
+
}
|