@rezi-ui/jsx 0.1.0-alpha.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/README.md +14 -0
- package/dist/__tests__/advanced.test.d.ts +3 -0
- package/dist/__tests__/advanced.test.d.ts.map +1 -0
- package/dist/__tests__/advanced.test.js +146 -0
- package/dist/__tests__/advanced.test.js.map +1 -0
- package/dist/__tests__/children.test.d.ts +2 -0
- package/dist/__tests__/children.test.d.ts.map +1 -0
- package/dist/__tests__/children.test.js +31 -0
- package/dist/__tests__/children.test.js.map +1 -0
- package/dist/__tests__/containers.test.d.ts +3 -0
- package/dist/__tests__/containers.test.d.ts.map +1 -0
- package/dist/__tests__/containers.test.js +30 -0
- package/dist/__tests__/containers.test.js.map +1 -0
- package/dist/__tests__/data.test.d.ts +3 -0
- package/dist/__tests__/data.test.d.ts.map +1 -0
- package/dist/__tests__/data.test.js +30 -0
- package/dist/__tests__/data.test.js.map +1 -0
- package/dist/__tests__/fragment.test.d.ts +3 -0
- package/dist/__tests__/fragment.test.d.ts.map +1 -0
- package/dist/__tests__/fragment.test.js +21 -0
- package/dist/__tests__/fragment.test.js.map +1 -0
- package/dist/__tests__/function-components.test.d.ts +3 -0
- package/dist/__tests__/function-components.test.d.ts.map +1 -0
- package/dist/__tests__/function-components.test.js +42 -0
- package/dist/__tests__/function-components.test.js.map +1 -0
- package/dist/__tests__/integration.test.d.ts +3 -0
- package/dist/__tests__/integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration.test.js +23 -0
- package/dist/__tests__/integration.test.js.map +1 -0
- package/dist/__tests__/interactive.test.d.ts +3 -0
- package/dist/__tests__/interactive.test.d.ts.map +1 -0
- package/dist/__tests__/interactive.test.js +23 -0
- package/dist/__tests__/interactive.test.js.map +1 -0
- package/dist/__tests__/jsx-runtime.test.d.ts +3 -0
- package/dist/__tests__/jsx-runtime.test.d.ts.map +1 -0
- package/dist/__tests__/jsx-runtime.test.js +50 -0
- package/dist/__tests__/jsx-runtime.test.js.map +1 -0
- package/dist/__tests__/layout.test.d.ts +3 -0
- package/dist/__tests__/layout.test.d.ts.map +1 -0
- package/dist/__tests__/layout.test.js +44 -0
- package/dist/__tests__/layout.test.js.map +1 -0
- package/dist/__tests__/text.test.d.ts +3 -0
- package/dist/__tests__/text.test.d.ts.map +1 -0
- package/dist/__tests__/text.test.js +39 -0
- package/dist/__tests__/text.test.js.map +1 -0
- package/dist/children.d.ts +28 -0
- package/dist/children.d.ts.map +1 -0
- package/dist/children.js +61 -0
- package/dist/children.js.map +1 -0
- package/dist/components.d.ts +55 -0
- package/dist/components.d.ts.map +1 -0
- package/dist/components.js +363 -0
- package/dist/components.js.map +1 -0
- package/dist/createElement.d.ts +11 -0
- package/dist/createElement.d.ts.map +1 -0
- package/dist/createElement.js +85 -0
- package/dist/createElement.js.map +1 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -0
- package/dist/jsx-dev-runtime.d.ts +16 -0
- package/dist/jsx-dev-runtime.d.ts.map +1 -0
- package/dist/jsx-dev-runtime.js +7 -0
- package/dist/jsx-dev-runtime.js.map +1 -0
- package/dist/jsx-runtime.d.ts +17 -0
- package/dist/jsx-runtime.d.ts.map +1 -0
- package/dist/jsx-runtime.js +6 -0
- package/dist/jsx-runtime.js.map +1 -0
- package/dist/types.d.ts +152 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +44 -0
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advanced.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/advanced.test.tsx"],"names":[],"mappings":"AAAA,oCAAoC"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@rezi-ui/jsx/jsx-runtime";
|
|
2
|
+
/** @jsxImportSource @rezi-ui/jsx */
|
|
3
|
+
import { ui, } from "@rezi-ui/core";
|
|
4
|
+
import { assert, describe, test } from "@rezi-ui/testkit";
|
|
5
|
+
import { CodeEditor, CommandPalette, DiffViewer, FilePicker, FileTreeExplorer, LogsConsole, PanelGroup, ResizablePanel, SplitPane, Table, ToastContainer, ToolApprovalDialog, Tree, VirtualList, } from "../index.js";
|
|
6
|
+
describe("advanced widgets", () => {
|
|
7
|
+
test("Table, Tree, VirtualList map to matching VNodes", () => {
|
|
8
|
+
const getRowKey = (row) => row.name;
|
|
9
|
+
const table = (_jsx(Table, { id: "files", columns: [{ key: "name", header: "Name" }], data: [{ name: "a.txt" }], getRowKey: getRowKey }));
|
|
10
|
+
assert.deepEqual(table, ui.table({
|
|
11
|
+
id: "files",
|
|
12
|
+
columns: [{ key: "name", header: "Name" }],
|
|
13
|
+
data: [{ name: "a.txt" }],
|
|
14
|
+
getRowKey,
|
|
15
|
+
}));
|
|
16
|
+
const renderNode = (node, _depth, _state) => ui.text(node.id);
|
|
17
|
+
const getKey = (node) => node.id;
|
|
18
|
+
const onToggle = () => { };
|
|
19
|
+
const tree = (_jsx(Tree, { id: "tree", data: [{ id: "root" }], getKey: getKey, expanded: [], onToggle: onToggle, renderNode: renderNode }));
|
|
20
|
+
assert.deepEqual(tree, ui.tree({
|
|
21
|
+
id: "tree",
|
|
22
|
+
data: [{ id: "root" }],
|
|
23
|
+
getKey,
|
|
24
|
+
expanded: [],
|
|
25
|
+
onToggle,
|
|
26
|
+
renderNode,
|
|
27
|
+
}));
|
|
28
|
+
const renderItem = (item) => ui.text(item);
|
|
29
|
+
const renderVirtualItem = (item) => renderItem(item);
|
|
30
|
+
const list = (_jsx(VirtualList, { id: "list", items: ["a", "b"], itemHeight: 1, renderItem: renderVirtualItem }));
|
|
31
|
+
assert.deepEqual(list, ui.virtualList({
|
|
32
|
+
id: "list",
|
|
33
|
+
items: ["a", "b"],
|
|
34
|
+
itemHeight: 1,
|
|
35
|
+
renderItem: renderVirtualItem,
|
|
36
|
+
}));
|
|
37
|
+
});
|
|
38
|
+
test("SplitPane, PanelGroup, ResizablePanel map to matching VNodes", () => {
|
|
39
|
+
const onResize = () => { };
|
|
40
|
+
const split = (_jsx(SplitPane, { id: "split", direction: "horizontal", sizes: [50, 50], onResize: onResize, children: _jsx(ResizablePanel, { defaultSize: 30, children: _jsx(ResizablePanel, { defaultSize: 100 }) }) }));
|
|
41
|
+
assert.deepEqual(split, ui.splitPane({ id: "split", direction: "horizontal", sizes: [50, 50], onResize }, [
|
|
42
|
+
ui.resizablePanel({ defaultSize: 30 }, [ui.resizablePanel({ defaultSize: 100 }, [])]),
|
|
43
|
+
]));
|
|
44
|
+
const panels = (_jsxs(PanelGroup, { id: "pg", direction: "vertical", children: [_jsx(ResizablePanel, { defaultSize: 40 }), _jsx(ResizablePanel, { defaultSize: 60 })] }));
|
|
45
|
+
assert.deepEqual(panels, ui.panelGroup({ id: "pg", direction: "vertical" }, [
|
|
46
|
+
ui.resizablePanel({ defaultSize: 40 }, []),
|
|
47
|
+
ui.resizablePanel({ defaultSize: 60 }, []),
|
|
48
|
+
]));
|
|
49
|
+
});
|
|
50
|
+
test("editor and diff widgets map to matching VNodes", () => {
|
|
51
|
+
const cursor = { line: 0, column: 0 };
|
|
52
|
+
const selection = null;
|
|
53
|
+
const onEditorChange = () => { };
|
|
54
|
+
const onSelectionChange = () => { };
|
|
55
|
+
const onEditorScroll = () => { };
|
|
56
|
+
const editor = (_jsx(CodeEditor, { id: "editor", lines: ["hello"], cursor: cursor, selection: selection, scrollTop: 0, scrollLeft: 0, onChange: onEditorChange, onSelectionChange: onSelectionChange, onScroll: onEditorScroll }));
|
|
57
|
+
assert.deepEqual(editor, ui.codeEditor({
|
|
58
|
+
id: "editor",
|
|
59
|
+
lines: ["hello"],
|
|
60
|
+
cursor,
|
|
61
|
+
selection,
|
|
62
|
+
scrollTop: 0,
|
|
63
|
+
scrollLeft: 0,
|
|
64
|
+
onChange: onEditorChange,
|
|
65
|
+
onSelectionChange,
|
|
66
|
+
onScroll: onEditorScroll,
|
|
67
|
+
}));
|
|
68
|
+
const diff = {
|
|
69
|
+
oldPath: "a.txt",
|
|
70
|
+
newPath: "a.txt",
|
|
71
|
+
status: "modified",
|
|
72
|
+
hunks: [{ oldStart: 1, oldCount: 1, newStart: 1, newCount: 1, lines: [] }],
|
|
73
|
+
};
|
|
74
|
+
const onDiffScroll = () => { };
|
|
75
|
+
const viewer = (_jsx(DiffViewer, { id: "diff", diff: diff, mode: "unified", scrollTop: 0, onScroll: onDiffScroll }));
|
|
76
|
+
assert.deepEqual(viewer, ui.diffViewer({ id: "diff", diff, mode: "unified", scrollTop: 0, onScroll: onDiffScroll }));
|
|
77
|
+
});
|
|
78
|
+
test("tooling widgets map to matching VNodes", () => {
|
|
79
|
+
const cmdSources = [
|
|
80
|
+
{
|
|
81
|
+
id: "cmds",
|
|
82
|
+
name: "Commands",
|
|
83
|
+
getItems: async (_query) => [],
|
|
84
|
+
},
|
|
85
|
+
];
|
|
86
|
+
const onQueryChange = () => { };
|
|
87
|
+
const onCommandSelect = () => { };
|
|
88
|
+
const onPaletteClose = () => { };
|
|
89
|
+
const palette = (_jsx(CommandPalette, { id: "cmd", open: true, query: "", sources: cmdSources, selectedIndex: 0, onQueryChange: onQueryChange, onSelect: onCommandSelect, onClose: onPaletteClose }));
|
|
90
|
+
assert.deepEqual(palette, ui.commandPalette({
|
|
91
|
+
id: "cmd",
|
|
92
|
+
open: true,
|
|
93
|
+
query: "",
|
|
94
|
+
sources: cmdSources,
|
|
95
|
+
selectedIndex: 0,
|
|
96
|
+
onQueryChange,
|
|
97
|
+
onSelect: onCommandSelect,
|
|
98
|
+
onClose: onPaletteClose,
|
|
99
|
+
}));
|
|
100
|
+
const rootNode = { name: "src", path: "/src", type: "directory", children: [] };
|
|
101
|
+
const onPickerSelect = () => { };
|
|
102
|
+
const onPickerToggle = () => { };
|
|
103
|
+
const onPickerOpen = () => { };
|
|
104
|
+
const picker = (_jsx(FilePicker, { id: "picker", rootPath: "/", data: rootNode, expandedPaths: [], onSelect: onPickerSelect, onToggle: onPickerToggle, onOpen: onPickerOpen }));
|
|
105
|
+
assert.deepEqual(picker, ui.filePicker({
|
|
106
|
+
id: "picker",
|
|
107
|
+
rootPath: "/",
|
|
108
|
+
data: rootNode,
|
|
109
|
+
expandedPaths: [],
|
|
110
|
+
onSelect: onPickerSelect,
|
|
111
|
+
onToggle: onPickerToggle,
|
|
112
|
+
onOpen: onPickerOpen,
|
|
113
|
+
}));
|
|
114
|
+
const onExplorerToggle = () => { };
|
|
115
|
+
const onExplorerSelect = () => { };
|
|
116
|
+
const onExplorerActivate = () => { };
|
|
117
|
+
const explorer = (_jsx(FileTreeExplorer, { id: "explorer", data: rootNode, expanded: [], onToggle: onExplorerToggle, onSelect: onExplorerSelect, onActivate: onExplorerActivate }));
|
|
118
|
+
assert.deepEqual(explorer, ui.fileTreeExplorer({
|
|
119
|
+
id: "explorer",
|
|
120
|
+
data: rootNode,
|
|
121
|
+
expanded: [],
|
|
122
|
+
onToggle: onExplorerToggle,
|
|
123
|
+
onSelect: onExplorerSelect,
|
|
124
|
+
onActivate: onExplorerActivate,
|
|
125
|
+
}));
|
|
126
|
+
const onAllow = () => { };
|
|
127
|
+
const onDeny = () => { };
|
|
128
|
+
const onApprovalClose = () => { };
|
|
129
|
+
const approval = (_jsx(ToolApprovalDialog, { id: "approval", open: true, request: { toolId: "run", toolName: "run", riskLevel: "low" }, onAllow: onAllow, onDeny: onDeny, onClose: onApprovalClose }));
|
|
130
|
+
assert.deepEqual(approval, ui.toolApprovalDialog({
|
|
131
|
+
id: "approval",
|
|
132
|
+
open: true,
|
|
133
|
+
request: { toolId: "run", toolName: "run", riskLevel: "low" },
|
|
134
|
+
onAllow,
|
|
135
|
+
onDeny,
|
|
136
|
+
onClose: onApprovalClose,
|
|
137
|
+
}));
|
|
138
|
+
const onLogsScroll = () => { };
|
|
139
|
+
const logs = _jsx(LogsConsole, { id: "logs", entries: [], scrollTop: 0, onScroll: onLogsScroll });
|
|
140
|
+
assert.deepEqual(logs, ui.logsConsole({ id: "logs", entries: [], scrollTop: 0, onScroll: onLogsScroll }));
|
|
141
|
+
const onDismiss = () => { };
|
|
142
|
+
const toasts = (_jsx(ToastContainer, { toasts: [{ id: "1", message: "Saved", type: "success" }], onDismiss: onDismiss }));
|
|
143
|
+
assert.deepEqual(toasts, ui.toastContainer({ toasts: [{ id: "1", message: "Saved", type: "success" }], onDismiss }));
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
//# sourceMappingURL=advanced.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advanced.test.js","sourceRoot":"","sources":["../../src/__tests__/advanced.test.tsx"],"names":[],"mappings":";AAAA,oCAAoC;AAEpC,OAAO,EAOL,EAAE,GACH,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EACL,UAAU,EACV,cAAc,EACd,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,cAAc,EACd,SAAS,EACT,KAAK,EACL,cAAc,EACd,kBAAkB,EAClB,IAAI,EACJ,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;QAC3D,MAAM,SAAS,GAAG,CAAC,GAAqB,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;QACtD,MAAM,KAAK,GAAG,CACZ,KAAC,KAAK,IACJ,EAAE,EAAC,OAAO,EACV,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAC1C,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EACzB,SAAS,EAAE,SAAS,GACpB,CACH,CAAC;QACF,MAAM,CAAC,SAAS,CACd,KAAK,EACL,EAAE,CAAC,KAAK,CAAC;YACP,EAAE,EAAE,OAAO;YACX,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YAC1C,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YACzB,SAAS;SACV,CAAC,CACH,CAAC;QAEF,MAAM,UAAU,GAAG,CAAC,IAAoB,EAAE,MAAc,EAAE,MAAiB,EAAE,EAAE,CAC7E,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,MAAM,MAAM,GAAG,CAAC,IAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,CACX,KAAC,IAAI,IACH,EAAE,EAAC,MAAM,EACT,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EACtB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,EAAE,EACZ,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,GACtB,CACH,CAAC;QACF,MAAM,CAAC,SAAS,CACd,IAAI,EACJ,EAAE,CAAC,IAAI,CAAC;YACN,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;YACtB,MAAM;YACN,QAAQ,EAAE,EAAE;YACZ,QAAQ;YACR,UAAU;SACX,CAAC,CACH,CAAC;QAEF,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,CACX,KAAC,WAAW,IAAC,EAAE,EAAC,MAAM,EAAC,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,iBAAiB,GAAI,CAC3F,CAAC;QACF,MAAM,CAAC,SAAS,CACd,IAAI,EACJ,EAAE,CAAC,WAAW,CAAC;YACb,EAAE,EAAE,MAAM;YACV,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;YACjB,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,iBAAiB;SAC9B,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACxE,MAAM,QAAQ,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,CACZ,KAAC,SAAS,IAAC,EAAE,EAAC,OAAO,EAAC,SAAS,EAAC,YAAY,EAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,YAC9E,KAAC,cAAc,IAAC,WAAW,EAAE,EAAE,YAC7B,KAAC,cAAc,IAAC,WAAW,EAAE,GAAG,GAAI,GACrB,GACP,CACb,CAAC;QAEF,MAAM,CAAC,SAAS,CACd,KAAK,EACL,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE;YAChF,EAAE,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;SACtF,CAAC,CACH,CAAC;QAEF,MAAM,MAAM,GAAG,CACb,MAAC,UAAU,IAAC,EAAE,EAAC,IAAI,EAAC,SAAS,EAAC,UAAU,aACtC,KAAC,cAAc,IAAC,WAAW,EAAE,EAAE,GAAI,EACnC,KAAC,cAAc,IAAC,WAAW,EAAE,EAAE,GAAI,IACxB,CACd,CAAC;QACF,MAAM,CAAC,SAAS,CACd,MAAM,EACN,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE;YACjD,EAAE,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAC1C,EAAE,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;SAC3C,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;QAC1D,MAAM,MAAM,GAAmB,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QACtD,MAAM,SAAS,GAA2B,IAAI,CAAC;QAC/C,MAAM,cAAc,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QAChC,MAAM,iBAAiB,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QACnC,MAAM,cAAc,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QAEhC,MAAM,MAAM,GAAG,CACb,KAAC,UAAU,IACT,EAAE,EAAC,QAAQ,EACX,KAAK,EAAE,CAAC,OAAO,CAAC,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,CAAC,EACZ,UAAU,EAAE,CAAC,EACb,QAAQ,EAAE,cAAc,EACxB,iBAAiB,EAAE,iBAAiB,EACpC,QAAQ,EAAE,cAAc,GACxB,CACH,CAAC;QAEF,MAAM,CAAC,SAAS,CACd,MAAM,EACN,EAAE,CAAC,UAAU,CAAC;YACZ,EAAE,EAAE,QAAQ;YACZ,KAAK,EAAE,CAAC,OAAO,CAAC;YAChB,MAAM;YACN,SAAS;YACT,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,CAAC;YACb,QAAQ,EAAE,cAAc;YACxB,iBAAiB;YACjB,QAAQ,EAAE,cAAc;SACzB,CAAC,CACH,CAAC;QAEF,MAAM,IAAI,GAAa;YACrB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;SAC3E,CAAC;QAEF,MAAM,YAAY,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,CACb,KAAC,UAAU,IAAC,EAAE,EAAC,MAAM,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,SAAS,EAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,GAAI,CAC1F,CAAC;QACF,MAAM,CAAC,SAAS,CACd,MAAM,EACN,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAC3F,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAClD,MAAM,UAAU,GAAG;YACjB;gBACE,EAAE,EAAE,MAAM;gBACV,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,KAAK,EAAE,MAAc,EAAmC,EAAE,CAAC,EAAE;aACxE;SACO,CAAC;QACX,MAAM,aAAa,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QAC/B,MAAM,eAAe,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QACjC,MAAM,cAAc,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QAEhC,MAAM,OAAO,GAAG,CACd,KAAC,cAAc,IACb,EAAE,EAAC,KAAK,EACR,IAAI,QACJ,KAAK,EAAC,EAAE,EACR,OAAO,EAAE,UAAU,EACnB,aAAa,EAAE,CAAC,EAChB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,cAAc,GACvB,CACH,CAAC;QACF,MAAM,CAAC,SAAS,CACd,OAAO,EACP,EAAE,CAAC,cAAc,CAAC;YAChB,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,UAAU;YACnB,aAAa,EAAE,CAAC;YAChB,aAAa;YACb,QAAQ,EAAE,eAAe;YACzB,OAAO,EAAE,cAAc;SACxB,CAAC,CACH,CAAC;QAEF,MAAM,QAAQ,GAAa,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC1F,MAAM,cAAc,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QAChC,MAAM,cAAc,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QAChC,MAAM,YAAY,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,CACb,KAAC,UAAU,IACT,EAAE,EAAC,QAAQ,EACX,QAAQ,EAAC,GAAG,EACZ,IAAI,EAAE,QAAQ,EACd,aAAa,EAAE,EAAE,EACjB,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,YAAY,GACpB,CACH,CAAC;QACF,MAAM,CAAC,SAAS,CACd,MAAM,EACN,EAAE,CAAC,UAAU,CAAC;YACZ,EAAE,EAAE,QAAQ;YACZ,QAAQ,EAAE,GAAG;YACb,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,EAAE;YACjB,QAAQ,EAAE,cAAc;YACxB,QAAQ,EAAE,cAAc;YACxB,MAAM,EAAE,YAAY;SACrB,CAAC,CACH,CAAC;QAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QAClC,MAAM,gBAAgB,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QAClC,MAAM,kBAAkB,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,CACf,KAAC,gBAAgB,IACf,EAAE,EAAC,UAAU,EACb,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,EAAE,EACZ,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,EAAE,kBAAkB,GAC9B,CACH,CAAC;QACF,MAAM,CAAC,SAAS,CACd,QAAQ,EACR,EAAE,CAAC,gBAAgB,CAAC;YAClB,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,gBAAgB;YAC1B,QAAQ,EAAE,gBAAgB;YAC1B,UAAU,EAAE,kBAAkB;SAC/B,CAAC,CACH,CAAC;QAEF,MAAM,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QACzB,MAAM,MAAM,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QACxB,MAAM,eAAe,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,CACf,KAAC,kBAAkB,IACjB,EAAE,EAAC,UAAU,EACb,IAAI,QACJ,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAC7D,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,eAAe,GACxB,CACH,CAAC;QACF,MAAM,CAAC,SAAS,CACd,QAAQ,EACR,EAAE,CAAC,kBAAkB,CAAC;YACpB,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;YAC7D,OAAO;YACP,MAAM;YACN,OAAO,EAAE,eAAe;SACzB,CAAC,CACH,CAAC;QAEF,MAAM,YAAY,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,KAAC,WAAW,IAAC,EAAE,EAAC,MAAM,EAAC,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,GAAI,CAAC;QAC1F,MAAM,CAAC,SAAS,CACd,IAAI,EACJ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAClF,CAAC;QAEF,MAAM,SAAS,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,CACb,KAAC,cAAc,IACb,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EACxD,SAAS,EAAE,SAAS,GACpB,CACH,CAAC;QACF,MAAM,CAAC,SAAS,CACd,MAAM,EACN,EAAE,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAC3F,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"children.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/children.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ui } from "@rezi-ui/core";
|
|
2
|
+
import { assert, describe, test } from "@rezi-ui/testkit";
|
|
3
|
+
import { normalizeContainerChildren, normalizeTextChildren, } from "../children.js";
|
|
4
|
+
describe("children normalization", () => {
|
|
5
|
+
test("container children normalize undefined and a single vnode", () => {
|
|
6
|
+
assert.deepEqual(normalizeContainerChildren(undefined), []);
|
|
7
|
+
const child = ui.text("only");
|
|
8
|
+
assert.deepEqual(normalizeContainerChildren(child), [child]);
|
|
9
|
+
});
|
|
10
|
+
test("container children filter booleans/null/undefined and flatten arrays", () => {
|
|
11
|
+
const a = ui.text("a");
|
|
12
|
+
const b = ui.text("b");
|
|
13
|
+
const mixed = [a, false, null, undefined, true, [b]];
|
|
14
|
+
assert.deepEqual(normalizeContainerChildren(mixed), [a, b]);
|
|
15
|
+
});
|
|
16
|
+
test("container children preserve 0 and empty string as text nodes", () => {
|
|
17
|
+
assert.deepEqual(normalizeContainerChildren([0, ""]), [ui.text("0"), ui.text("")]);
|
|
18
|
+
});
|
|
19
|
+
test("container children wrap strings/numbers and flatten deeply nested arrays", () => {
|
|
20
|
+
const child = ui.text("vnode");
|
|
21
|
+
const nested = [[[["hello"]]], child, [42]];
|
|
22
|
+
assert.deepEqual(normalizeContainerChildren(nested), [ui.text("hello"), child, ui.text("42")]);
|
|
23
|
+
});
|
|
24
|
+
test("text children normalize to a concatenated string", () => {
|
|
25
|
+
assert.equal(normalizeTextChildren(undefined), "");
|
|
26
|
+
assert.equal(normalizeTextChildren(["Count: ", 5]), "Count: 5");
|
|
27
|
+
assert.equal(normalizeTextChildren(["A", ["B", ["C"]]]), "ABC");
|
|
28
|
+
assert.equal(normalizeTextChildren([true, false, null, undefined, "x", 0]), "x0");
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=children.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"children.test.js","sourceRoot":"","sources":["../../src/__tests__/children.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAEL,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,IAAI,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACrE,MAAM,CAAC,SAAS,CAAC,0BAA0B,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QAE5D,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,MAAM,CAAC,SAAS,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAChF,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,KAAK,GAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAElE,MAAM,CAAC,SAAS,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACxE,MAAM,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,0EAA0E,EAAE,GAAG,EAAE;QACpF,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAEzD,MAAM,CAAC,SAAS,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjG,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC5D,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAChE,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAChE,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"containers.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/containers.test.tsx"],"names":[],"mappings":"AAAA,oCAAoC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@rezi-ui/jsx/jsx-runtime";
|
|
2
|
+
/** @jsxImportSource @rezi-ui/jsx */
|
|
3
|
+
import { ui } from "@rezi-ui/core";
|
|
4
|
+
import { assert, describe, test } from "@rezi-ui/testkit";
|
|
5
|
+
import { Dropdown, Field, FocusTrap, FocusZone, Layer, Modal, Text } from "../index.js";
|
|
6
|
+
describe("container and overlay widgets", () => {
|
|
7
|
+
test("Modal, Dropdown, Layer map to matching VNodes", () => {
|
|
8
|
+
const content = ui.text("Are you sure?");
|
|
9
|
+
const close = () => { };
|
|
10
|
+
assert.deepEqual(_jsx(Modal, { id: "confirm", content: content, onClose: close }), ui.modal({ id: "confirm", content, onClose: close }));
|
|
11
|
+
const items = [
|
|
12
|
+
{ id: "open", label: "Open" },
|
|
13
|
+
{ id: "close", label: "Close" },
|
|
14
|
+
];
|
|
15
|
+
assert.deepEqual(_jsx(Dropdown, { id: "menu", anchorId: "btn", items: items }), ui.dropdown({ id: "menu", anchorId: "btn", items }));
|
|
16
|
+
assert.deepEqual(_jsx(Layer, { id: "tooltip", content: ui.text("tip") }), ui.layer({ id: "tooltip", content: ui.text("tip") }));
|
|
17
|
+
});
|
|
18
|
+
test("FocusZone and FocusTrap normalize children", () => {
|
|
19
|
+
const vnode = (_jsxs(FocusZone, { id: "nav", navigation: "linear", children: [_jsx(Text, { children: "one" }), _jsx(Text, { children: "two" })] }));
|
|
20
|
+
assert.deepEqual(vnode, ui.focusZone({ id: "nav", navigation: "linear" }, [ui.text("one"), ui.text("two")]));
|
|
21
|
+
const trapped = (_jsx(FocusTrap, { id: "dialog", active: true, children: _jsx(Text, { children: "inside" }) }));
|
|
22
|
+
assert.deepEqual(trapped, ui.focusTrap({ id: "dialog", active: true }, [ui.text("inside")]));
|
|
23
|
+
});
|
|
24
|
+
test("Field uses a single vnode child", () => {
|
|
25
|
+
const child = _jsx(Text, { children: "value" });
|
|
26
|
+
const vnode = (_jsx(Field, { label: "Name", required: true, children: child }));
|
|
27
|
+
assert.deepEqual(vnode, ui.field({ label: "Name", required: true, children: child }));
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=containers.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"containers.test.js","sourceRoot":"","sources":["../../src/__tests__/containers.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/data.test.tsx"],"names":[],"mappings":"AAAA,oCAAoC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx as _jsx } from "@rezi-ui/jsx/jsx-runtime";
|
|
2
|
+
/** @jsxImportSource @rezi-ui/jsx */
|
|
3
|
+
import { ui } from "@rezi-ui/core";
|
|
4
|
+
import { assert, describe, test } from "@rezi-ui/testkit";
|
|
5
|
+
import { BarChart, Gauge, MiniChart, Progress, Skeleton, Sparkline, Spinner } from "../index.js";
|
|
6
|
+
describe("data visualization widgets", () => {
|
|
7
|
+
test("Progress and Gauge map to matching VNodes", () => {
|
|
8
|
+
assert.deepEqual(_jsx(Progress, { value: 0.5, variant: "blocks", showPercent: true, label: "Download", width: 30 }), ui.progress(0.5, { variant: "blocks", showPercent: true, label: "Download", width: 30 }));
|
|
9
|
+
assert.deepEqual(_jsx(Gauge, { value: 0.42, label: "CPU" }), ui.gauge(0.42, { label: "CPU" }));
|
|
10
|
+
});
|
|
11
|
+
test("Sparkline, BarChart, MiniChart map to matching VNodes", () => {
|
|
12
|
+
assert.deepEqual(_jsx(Sparkline, { data: [1, 2, 3, 4, 5] }), ui.sparkline([1, 2, 3, 4, 5]));
|
|
13
|
+
const bars = [
|
|
14
|
+
{ label: "A", value: 10 },
|
|
15
|
+
{ label: "B", value: 20, variant: "success" },
|
|
16
|
+
];
|
|
17
|
+
assert.deepEqual(_jsx(BarChart, { data: bars, orientation: "vertical", showValues: true }), ui.barChart(bars, { orientation: "vertical", showValues: true }));
|
|
18
|
+
const values = [
|
|
19
|
+
{ label: "CPU", value: 40, max: 100 },
|
|
20
|
+
{ label: "MEM", value: 70, max: 100 },
|
|
21
|
+
];
|
|
22
|
+
assert.deepEqual(_jsx(MiniChart, { values: values }), ui.miniChart(values));
|
|
23
|
+
});
|
|
24
|
+
test("Skeleton and Spinner map to matching VNodes", () => {
|
|
25
|
+
assert.deepEqual(_jsx(Skeleton, { width: 20 }), ui.skeleton(20));
|
|
26
|
+
assert.deepEqual(_jsx(Skeleton, { width: 10, height: 3, variant: "rect" }), ui.skeleton(10, { height: 3, variant: "rect" }));
|
|
27
|
+
assert.deepEqual(_jsx(Spinner, { variant: "dots", label: "Loading" }), ui.spinner({ variant: "dots", label: "Loading" }));
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=data.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.test.js","sourceRoot":"","sources":["../../src/__tests__/data.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fragment.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/fragment.test.tsx"],"names":[],"mappings":"AAAA,oCAAoC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@rezi-ui/jsx/jsx-runtime";
|
|
2
|
+
/** @jsxImportSource @rezi-ui/jsx */
|
|
3
|
+
import { ui } from "@rezi-ui/core";
|
|
4
|
+
import { assert, describe, test } from "@rezi-ui/testkit";
|
|
5
|
+
import { Fragment, Text } from "../index.js";
|
|
6
|
+
describe("Fragment", () => {
|
|
7
|
+
test("Fragment wraps children in a column vnode", () => {
|
|
8
|
+
const vnode = (_jsxs(Fragment, { children: [_jsx(Text, { children: "A" }), _jsx(Text, { children: "B" })] }));
|
|
9
|
+
assert.deepEqual(vnode, ui.column({}, [ui.text("A"), ui.text("B")]));
|
|
10
|
+
});
|
|
11
|
+
test("Fragment shorthand works", () => {
|
|
12
|
+
const vnode = (_jsxs(_Fragment, { children: [_jsx(Text, { children: "one" }), _jsx(Text, { children: "two" })] }));
|
|
13
|
+
assert.deepEqual(vnode, ui.column({}, [ui.text("one"), ui.text("two")]));
|
|
14
|
+
});
|
|
15
|
+
test("Fragment handles single/no/nested children", () => {
|
|
16
|
+
assert.deepEqual(_jsx(Fragment, { children: _jsx(Text, { children: "single" }) }), ui.column({}, [ui.text("single")]));
|
|
17
|
+
assert.deepEqual(_jsx(Fragment, {}), ui.column({}, []));
|
|
18
|
+
assert.deepEqual(_jsx(Fragment, { children: _jsx(Fragment, { children: _jsx(Text, { children: "nested" }) }) }), ui.column({}, [ui.column({}, [ui.text("nested")])]));
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=fragment.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fragment.test.js","sourceRoot":"","sources":["../../src/__tests__/fragment.test.tsx"],"names":[],"mappings":";AAAA,oCAAoC;AAEpC,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAE7C,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACrD,MAAM,KAAK,GAAG,CACZ,MAAC,QAAQ,eACP,KAAC,IAAI,oBAAS,EACd,KAAC,IAAI,oBAAS,IACL,CACZ,CAAC;QAEF,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACpC,MAAM,KAAK,GAAG,CACZ,8BACE,KAAC,IAAI,sBAAW,EAChB,KAAC,IAAI,sBAAW,IACf,CACJ,CAAC;QAEF,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,SAAS,CACd,KAAC,QAAQ,cACP,KAAC,IAAI,yBAAc,GACV,EACX,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CACnC,CAAC;QAEF,MAAM,CAAC,SAAS,CAAC,KAAC,QAAQ,KAAG,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAElD,MAAM,CAAC,SAAS,CACd,KAAC,QAAQ,cACP,KAAC,QAAQ,cACP,KAAC,IAAI,yBAAc,GACV,GACF,EACX,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"function-components.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/function-components.test.tsx"],"names":[],"mappings":"AAAA,oCAAoC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@rezi-ui/jsx/jsx-runtime";
|
|
2
|
+
/** @jsxImportSource @rezi-ui/jsx */
|
|
3
|
+
import { ui } from "@rezi-ui/core";
|
|
4
|
+
import { assert, describe, test } from "@rezi-ui/testkit";
|
|
5
|
+
import { Column, Text } from "../index.js";
|
|
6
|
+
describe("function components", () => {
|
|
7
|
+
test("simple component returning a VNode", () => {
|
|
8
|
+
function Label() {
|
|
9
|
+
return _jsx(Text, { children: "ready" });
|
|
10
|
+
}
|
|
11
|
+
assert.deepEqual(_jsx(Label, {}), ui.text("ready"));
|
|
12
|
+
});
|
|
13
|
+
test("typed props are passed correctly", () => {
|
|
14
|
+
function StatusLine(props) {
|
|
15
|
+
return (_jsxs(Text, { children: [props.level, ": ", props.message] }));
|
|
16
|
+
}
|
|
17
|
+
assert.deepEqual(_jsx(StatusLine, { message: "ok", level: "info" }), ui.text("info: ok"));
|
|
18
|
+
});
|
|
19
|
+
test("nested function components compose correctly", () => {
|
|
20
|
+
function Item(props) {
|
|
21
|
+
return _jsx(Text, { children: props.value });
|
|
22
|
+
}
|
|
23
|
+
function List() {
|
|
24
|
+
return (_jsxs(Column, { children: [_jsx(Item, { value: "A" }), _jsx(Item, { value: "B" })] }));
|
|
25
|
+
}
|
|
26
|
+
assert.deepEqual(_jsx(List, {}), ui.column({}, [ui.text("A"), ui.text("B")]));
|
|
27
|
+
});
|
|
28
|
+
test("components can receive and render children", () => {
|
|
29
|
+
function Frame(props) {
|
|
30
|
+
return (_jsxs(Column, { children: [_jsx(Text, { children: props.title }), props.children] }));
|
|
31
|
+
}
|
|
32
|
+
assert.deepEqual(_jsx(Frame, { title: "T", children: _jsx(Text, { children: "A" }) }), ui.column({}, [ui.text("T"), ui.text("A")]));
|
|
33
|
+
});
|
|
34
|
+
test("components can render conditionally", () => {
|
|
35
|
+
function Maybe(props) {
|
|
36
|
+
return _jsx(Column, { children: props.show && _jsx(Text, { children: "shown" }) });
|
|
37
|
+
}
|
|
38
|
+
assert.deepEqual(_jsx(Maybe, { show: true }), ui.column({}, [ui.text("shown")]));
|
|
39
|
+
assert.deepEqual(_jsx(Maybe, { show: false }), ui.column({}, []));
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=function-components.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"function-components.test.js","sourceRoot":"","sources":["../../src/__tests__/function-components.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integration.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/integration.test.tsx"],"names":[],"mappings":"AAAA,oCAAoC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@rezi-ui/jsx/jsx-runtime";
|
|
2
|
+
/** @jsxImportSource @rezi-ui/jsx */
|
|
3
|
+
import { ui } from "@rezi-ui/core";
|
|
4
|
+
import { assert, describe, test } from "@rezi-ui/testkit";
|
|
5
|
+
import { Badge, Box, Button, Column, Divider, Row, Spacer, Text } from "../index.js";
|
|
6
|
+
describe("integration", () => {
|
|
7
|
+
test("complex layout matches ui.* output", () => {
|
|
8
|
+
const vnode = (_jsxs(Column, { p: 1, gap: 1, children: [_jsxs(Row, { gap: 2, children: [_jsx(Text, { style: { bold: true }, children: "Title" }), _jsx(Spacer, { flex: 1 }), _jsx(Badge, { text: "v1.0", variant: "info" })] }), _jsx(Divider, {}), _jsx(Box, { border: "rounded", p: 1, children: _jsxs(Column, { gap: 1, children: [_jsx(Button, { id: "a", label: "Action A" }), _jsx(Button, { id: "b", label: "Action B" })] }) })] }));
|
|
9
|
+
const factory = ui.column({ p: 1, gap: 1 }, [
|
|
10
|
+
ui.row({ gap: 2 }, [
|
|
11
|
+
ui.text("Title", { style: { bold: true } }),
|
|
12
|
+
ui.spacer({ flex: 1 }),
|
|
13
|
+
ui.badge("v1.0", { variant: "info" }),
|
|
14
|
+
]),
|
|
15
|
+
ui.divider(),
|
|
16
|
+
ui.box({ border: "rounded", p: 1 }, [
|
|
17
|
+
ui.column({ gap: 1 }, [ui.button("a", "Action A"), ui.button("b", "Action B")]),
|
|
18
|
+
]),
|
|
19
|
+
]);
|
|
20
|
+
assert.deepEqual(vnode, factory);
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=integration.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integration.test.js","sourceRoot":"","sources":["../../src/__tests__/integration.test.tsx"],"names":[],"mappings":";AAAA,oCAAoC;AAEpC,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAErF,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC9C,MAAM,KAAK,GAAG,CACZ,MAAC,MAAM,IAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,aAClB,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,aACT,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,sBAAc,EACzC,KAAC,MAAM,IAAC,IAAI,EAAE,CAAC,GAAI,EACnB,KAAC,KAAK,IAAC,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,GAAG,IAChC,EACN,KAAC,OAAO,KAAG,EACX,KAAC,GAAG,IAAC,MAAM,EAAC,SAAS,EAAC,CAAC,EAAE,CAAC,YACxB,MAAC,MAAM,IAAC,GAAG,EAAE,CAAC,aACZ,KAAC,MAAM,IAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,UAAU,GAAG,EAClC,KAAC,MAAM,IAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,UAAU,GAAG,IAC3B,GACL,IACC,CACV,CAAC;QAEF,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;YAC1C,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;gBACjB,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;gBAC3C,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;gBACtB,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;aACtC,CAAC;YACF,EAAE,CAAC,OAAO,EAAE;YACZ,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;gBAClC,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;aAChF,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/interactive.test.tsx"],"names":[],"mappings":"AAAA,oCAAoC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx as _jsx } from "@rezi-ui/jsx/jsx-runtime";
|
|
2
|
+
/** @jsxImportSource @rezi-ui/jsx */
|
|
3
|
+
import { ui } from "@rezi-ui/core";
|
|
4
|
+
import { assert, describe, test } from "@rezi-ui/testkit";
|
|
5
|
+
import { Button, Checkbox, Input, RadioGroup, Select } from "../index.js";
|
|
6
|
+
describe("interactive widgets", () => {
|
|
7
|
+
test("Button and Input map to matching VNodes", () => {
|
|
8
|
+
assert.deepEqual(_jsx(Button, { id: "ok", label: "OK" }), ui.button("ok", "OK"));
|
|
9
|
+
assert.deepEqual(_jsx(Button, { id: "ok", label: "OK", disabled: true }), ui.button("ok", "OK", { disabled: true }));
|
|
10
|
+
assert.deepEqual(_jsx(Input, { id: "name", value: "Alice" }), ui.input("name", "Alice"));
|
|
11
|
+
assert.deepEqual(_jsx(Input, { id: "name", value: "", disabled: true }), ui.input("name", "", { disabled: true }));
|
|
12
|
+
});
|
|
13
|
+
test("Select, Checkbox, RadioGroup map to matching VNodes", () => {
|
|
14
|
+
const options = [
|
|
15
|
+
{ value: "us", label: "United States" },
|
|
16
|
+
{ value: "ca", label: "Canada" },
|
|
17
|
+
];
|
|
18
|
+
assert.deepEqual(_jsx(Select, { id: "country", value: "us", options: options }), ui.select({ id: "country", value: "us", options }));
|
|
19
|
+
assert.deepEqual(_jsx(Checkbox, { id: "agree", checked: true, label: "I agree" }), ui.checkbox({ id: "agree", checked: true, label: "I agree" }));
|
|
20
|
+
assert.deepEqual(_jsx(RadioGroup, { id: "plan", value: "pro", options: options, direction: "vertical" }), ui.radioGroup({ id: "plan", value: "pro", options, direction: "vertical" }));
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=interactive.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive.test.js","sourceRoot":"","sources":["../../src/__tests__/interactive.test.tsx"],"names":[],"mappings":";AAAA,oCAAoC;AAEpC,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1E,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,SAAS,CAAC,KAAC,MAAM,IAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,SAAS,CACd,KAAC,MAAM,IAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,QAAQ,SAAG,EACtC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAC1C,CAAC;QAEF,MAAM,CAAC,SAAS,CAAC,KAAC,KAAK,IAAC,EAAE,EAAC,MAAM,EAAC,KAAK,EAAC,OAAO,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAC/E,MAAM,CAAC,SAAS,CACd,KAAC,KAAK,IAAC,EAAE,EAAC,MAAM,EAAC,KAAK,EAAC,EAAE,EAAC,QAAQ,SAAG,EACrC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CACzC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC/D,MAAM,OAAO,GAAG;YACd,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE;YACvC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;SACxB,CAAC;QAEX,MAAM,CAAC,SAAS,CACd,KAAC,MAAM,IAAC,EAAE,EAAC,SAAS,EAAC,KAAK,EAAC,IAAI,EAAC,OAAO,EAAE,OAAO,GAAI,EACpD,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CACnD,CAAC;QAEF,MAAM,CAAC,SAAS,CACd,KAAC,QAAQ,IAAC,EAAE,EAAC,OAAO,EAAC,OAAO,QAAC,KAAK,EAAC,SAAS,GAAG,EAC/C,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAC9D,CAAC;QAEF,MAAM,CAAC,SAAS,CACd,KAAC,UAAU,IAAC,EAAE,EAAC,MAAM,EAAC,KAAK,EAAC,KAAK,EAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAC,UAAU,GAAG,EAC3E,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAC5E,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsx-runtime.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/jsx-runtime.test.tsx"],"names":[],"mappings":"AAAA,oCAAoC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { jsxs as _jsxs } from "@rezi-ui/jsx/jsx-runtime";
|
|
2
|
+
/** @jsxImportSource @rezi-ui/jsx */
|
|
3
|
+
import { ui } from "@rezi-ui/core";
|
|
4
|
+
import { assert, describe, test } from "@rezi-ui/testkit";
|
|
5
|
+
import { Button, Column, Text } from "../index.js";
|
|
6
|
+
import { jsxDEV } from "../jsx-dev-runtime.js";
|
|
7
|
+
import { jsx, jsxs } from "../jsx-runtime.js";
|
|
8
|
+
describe("jsx runtime", () => {
|
|
9
|
+
test("jsx() supports function components", () => {
|
|
10
|
+
function Greeting(props) {
|
|
11
|
+
return _jsxs(Text, { children: ["Hello ", props.name] });
|
|
12
|
+
}
|
|
13
|
+
const vnode = jsx(Greeting, { name: "Rezi" });
|
|
14
|
+
assert.deepEqual(vnode, ui.text("Hello Rezi"));
|
|
15
|
+
});
|
|
16
|
+
test("jsx() supports intrinsic string elements", () => {
|
|
17
|
+
const vnode = jsx("button", { id: "ok", label: "OK" });
|
|
18
|
+
assert.deepEqual(vnode, ui.button("ok", "OK"));
|
|
19
|
+
});
|
|
20
|
+
test("jsxs() handles multiple children", () => {
|
|
21
|
+
const vnode = jsxs(Column, {
|
|
22
|
+
gap: 1,
|
|
23
|
+
children: [jsx(Text, { children: "A" }), jsx(Button, { id: "x", label: "X" })],
|
|
24
|
+
});
|
|
25
|
+
assert.deepEqual(vnode, ui.column({ gap: 1 }, [ui.text("A"), ui.button("x", "X")]));
|
|
26
|
+
});
|
|
27
|
+
test("key argument is injected into component props", () => {
|
|
28
|
+
const vnode = jsx(Button, { id: "ok", label: "OK" }, "btn-key");
|
|
29
|
+
assert.deepEqual(vnode, { kind: "button", props: { id: "ok", label: "OK", key: "btn-key" } });
|
|
30
|
+
const keyedFn = jsx((props) => ui.text(props.key ?? ""), {}, "fn-key");
|
|
31
|
+
assert.deepEqual(keyedFn, ui.text("fn-key"));
|
|
32
|
+
});
|
|
33
|
+
test("key argument takes precedence over props.key", () => {
|
|
34
|
+
const intrinsicFromProps = jsx("button", { id: "ok", label: "OK", key: "props-key" });
|
|
35
|
+
assert.deepEqual(intrinsicFromProps, ui.button("ok", "OK", { key: "props-key" }));
|
|
36
|
+
const intrinsicFromArg = jsx("button", { id: "ok", label: "OK", key: "props-key" }, "arg-key");
|
|
37
|
+
assert.deepEqual(intrinsicFromArg, ui.button("ok", "OK", { key: "arg-key" }));
|
|
38
|
+
const functionFromArg = jsx((props) => ui.text(props.key ?? ""), { key: "props-key" }, "arg-key");
|
|
39
|
+
assert.deepEqual(functionFromArg, ui.text("arg-key"));
|
|
40
|
+
});
|
|
41
|
+
test("unknown intrinsic element type throws", () => {
|
|
42
|
+
assert.throws(() => jsx("does-not-exist", {}));
|
|
43
|
+
});
|
|
44
|
+
test("jsxDEV() matches jsx() behavior", () => {
|
|
45
|
+
const fromJsx = jsx(Text, { children: "dev" }, "k1");
|
|
46
|
+
const fromDev = jsxDEV(Text, { children: "dev" }, "k1", false, undefined, undefined);
|
|
47
|
+
assert.deepEqual(fromDev, fromJsx);
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=jsx-runtime.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsx-runtime.test.js","sourceRoot":"","sources":["../../src/__tests__/jsx-runtime.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/layout.test.tsx"],"names":[],"mappings":"AAAA,oCAAoC"}
|