@siddh-dev/fabric 0.1.1 → 0.1.2
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 +20 -20
- package/README.md +240 -205
- package/dist/core/jsx/JSXTypes.d.ts +63 -0
- package/dist/core/jsx/JSXTypes.js +2 -0
- package/dist/core/jsx/JSXTypes.js.map +1 -0
- package/dist/core/jsx/jsx-dev-runtime.d.ts +3 -1
- package/dist/core/jsx/jsx-dev-runtime.js +8 -2
- package/dist/core/jsx/jsx-dev-runtime.js.map +1 -1
- package/dist/core/jsx/jsx-runtime.d.ts +4 -2
- package/dist/core/jsx/jsx-runtime.js +13 -4
- package/dist/core/jsx/jsx-runtime.js.map +1 -1
- package/dist/core/jsx/jsx.js +15 -11
- package/dist/core/jsx/jsx.js.map +1 -1
- package/dist/dom/Reconciler.js +6 -12
- package/dist/dom/Reconciler.js.map +1 -1
- package/package.json +9 -1
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 Siddhant Mul
|
|
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
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Siddhant Mul
|
|
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
21
|
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -2,15 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
A lightweight frontend UI runtime built from scratch with TypeScript.
|
|
4
4
|
|
|
5
|
-
Fabric is an experimental frontend runtime focused on understanding and implementing the core concepts behind modern UI libraries, including
|
|
6
|
-
|
|
7
|
-
- Virtual DOM.
|
|
8
|
-
- Components.
|
|
9
|
-
- State.
|
|
10
|
-
- Effects.
|
|
11
|
-
- Reconciliation.
|
|
12
|
-
- Scheduling.
|
|
13
|
-
- DOM updates.
|
|
5
|
+
Fabric is an experimental frontend runtime focused on understanding and implementing the core concepts behind modern UI libraries, including virtual DOM, components, state, effects, reconciliation, scheduling, and DOM updates.
|
|
14
6
|
|
|
15
7
|
> Fabric is not a React clone. It is an independent runtime built from first principles.
|
|
16
8
|
|
|
@@ -20,165 +12,202 @@ Fabric is an experimental frontend runtime focused on understanding and implemen
|
|
|
20
12
|
|
|
21
13
|
Fabric currently supports:
|
|
22
14
|
|
|
23
|
-
- Virtual DOM
|
|
24
|
-
- `createElement()
|
|
25
|
-
- JSX
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
- Keyed reconciliation
|
|
35
|
-
-
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
|
|
39
|
-
|
|
15
|
+
- Virtual DOM (VNode)
|
|
16
|
+
- `createElement()`
|
|
17
|
+
- JSX and automatic JSX runtime
|
|
18
|
+
- Function components and props
|
|
19
|
+
- `useState()`
|
|
20
|
+
- `useEffect()`
|
|
21
|
+
- Effect cleanup
|
|
22
|
+
- DOM event handling
|
|
23
|
+
- DOM property updates
|
|
24
|
+
- Component mount, update, and unmount
|
|
25
|
+
- Virtual DOM reconciliation
|
|
26
|
+
- Keyed reconciliation
|
|
27
|
+
- Update scheduling and batching
|
|
28
|
+
- TypeScript declarations
|
|
29
|
+
- Automated tests
|
|
30
|
+
|
|
31
|
+
Fabric is intentionally small and focused on core runtime behavior rather than providing every feature found in mature UI libraries.
|
|
40
32
|
|
|
41
33
|
---
|
|
42
34
|
|
|
43
|
-
##
|
|
44
|
-
|
|
45
|
-
At a high level, Fabric works like this:
|
|
35
|
+
## Installation
|
|
46
36
|
|
|
47
|
-
|
|
48
|
-
JSX / createElement()
|
|
49
|
-
↓
|
|
50
|
-
JSX Runtime
|
|
51
|
-
↓
|
|
52
|
-
VNode
|
|
53
|
-
↓
|
|
54
|
-
Components
|
|
55
|
-
↓
|
|
56
|
-
State / Effects
|
|
57
|
-
↓
|
|
58
|
-
Scheduler
|
|
59
|
-
↓
|
|
60
|
-
Reconciliation
|
|
61
|
-
↓
|
|
62
|
-
DOM
|
|
63
|
-
```
|
|
37
|
+
Install Fabric using your preferred package manager.
|
|
64
38
|
|
|
65
|
-
|
|
39
|
+
### pnpm
|
|
66
40
|
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
↓
|
|
70
|
-
TypeScript JSX transform
|
|
71
|
-
↓
|
|
72
|
-
@siddh-dev/fabric/jsx-runtime
|
|
73
|
-
↓
|
|
74
|
-
createElement()
|
|
75
|
-
↓
|
|
76
|
-
VNode
|
|
77
|
-
↓
|
|
78
|
-
Reconciliation
|
|
79
|
-
↓
|
|
80
|
-
DOM
|
|
41
|
+
```bash
|
|
42
|
+
pnpm add @siddh-dev/fabric
|
|
81
43
|
```
|
|
82
44
|
|
|
83
|
-
|
|
45
|
+
### npm
|
|
84
46
|
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
↓
|
|
88
|
-
schedule update
|
|
89
|
-
↓
|
|
90
|
-
component re-renders
|
|
91
|
-
↓
|
|
92
|
-
new VNode
|
|
93
|
-
↓
|
|
94
|
-
reconciliation
|
|
95
|
-
↓
|
|
96
|
-
DOM update
|
|
47
|
+
```bash
|
|
48
|
+
npm install @siddh-dev/fabric
|
|
97
49
|
```
|
|
98
50
|
|
|
99
51
|
---
|
|
100
52
|
|
|
101
|
-
## Quick
|
|
53
|
+
## Quick Start
|
|
54
|
+
|
|
55
|
+
Create a TypeScript JSX file, such as `src/main.tsx`.
|
|
102
56
|
|
|
103
57
|
```tsx
|
|
104
|
-
import {
|
|
105
|
-
createRoot,
|
|
106
|
-
useState
|
|
107
|
-
} from "@siddh-dev/fabric";
|
|
58
|
+
import { createRoot, useState } from "@siddh-dev/fabric";
|
|
108
59
|
|
|
109
60
|
function Counter() {
|
|
110
61
|
const [count, setCount] = useState(0);
|
|
111
62
|
|
|
112
63
|
return (
|
|
113
|
-
<
|
|
114
|
-
<h1>Fabric</h1>
|
|
64
|
+
<main>
|
|
65
|
+
<h1>Fabric Counter</h1>
|
|
66
|
+
<p>Count: {count}</p>
|
|
115
67
|
|
|
116
|
-
<
|
|
117
|
-
Count: {count}
|
|
118
|
-
</p>
|
|
119
|
-
|
|
120
|
-
<button onClick={() => setCount(count + 1)}>
|
|
68
|
+
<button onClick={() => setCount(previous => previous + 1)}>
|
|
121
69
|
Increment
|
|
122
70
|
</button>
|
|
123
|
-
</
|
|
71
|
+
</main>
|
|
124
72
|
);
|
|
125
73
|
}
|
|
126
74
|
|
|
127
75
|
const container = document.getElementById("app");
|
|
128
76
|
|
|
129
|
-
if (container
|
|
77
|
+
if (!(container instanceof HTMLElement)) {
|
|
130
78
|
throw new Error("App container not found.");
|
|
131
79
|
}
|
|
132
80
|
|
|
133
|
-
createRoot(container).render(
|
|
134
|
-
<Counter />
|
|
135
|
-
);
|
|
81
|
+
createRoot(container).render(<Counter />);
|
|
136
82
|
```
|
|
137
83
|
|
|
138
|
-
|
|
84
|
+
Your HTML must contain a matching mount element:
|
|
139
85
|
|
|
140
|
-
|
|
86
|
+
```html
|
|
87
|
+
<div id="app"></div>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### TypeScript JSX Configuration
|
|
91
|
+
|
|
92
|
+
Configure the automatic JSX runtime in your `tsconfig.json`:
|
|
141
93
|
|
|
142
94
|
```json
|
|
143
95
|
{
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
96
|
+
"compilerOptions": {
|
|
97
|
+
"jsx": "react-jsx",
|
|
98
|
+
"jsxImportSource": "@siddh-dev/fabric"
|
|
99
|
+
}
|
|
148
100
|
}
|
|
149
101
|
```
|
|
150
102
|
|
|
151
|
-
The `
|
|
103
|
+
The `jsxImportSource` option tells TypeScript to use Fabric's JSX runtime.
|
|
152
104
|
|
|
153
|
-
|
|
105
|
+
You do not need to manually import `jsx()` or `jsxs()` in application code.
|
|
154
106
|
|
|
155
107
|
---
|
|
156
108
|
|
|
157
|
-
##
|
|
109
|
+
## Runtime Overview
|
|
158
110
|
|
|
159
|
-
|
|
111
|
+
Fabric converts JSX into virtual nodes, renders components, manages state and effects, and reconciles changes with the DOM.
|
|
160
112
|
|
|
161
|
-
```
|
|
162
|
-
|
|
113
|
+
```text
|
|
114
|
+
JSX / createElement()
|
|
115
|
+
|
|
|
116
|
+
v
|
|
117
|
+
TypeScript JSX Transform
|
|
118
|
+
|
|
|
119
|
+
v
|
|
120
|
+
Fabric JSX Runtime
|
|
121
|
+
|
|
|
122
|
+
v
|
|
123
|
+
VNode
|
|
124
|
+
|
|
|
125
|
+
v
|
|
126
|
+
Components / Hooks
|
|
127
|
+
|
|
|
128
|
+
v
|
|
129
|
+
Scheduler
|
|
130
|
+
|
|
|
131
|
+
v
|
|
132
|
+
Reconciliation
|
|
133
|
+
|
|
|
134
|
+
v
|
|
135
|
+
DOM
|
|
163
136
|
```
|
|
164
137
|
|
|
165
|
-
|
|
138
|
+
### Automatic JSX Runtime
|
|
166
139
|
|
|
167
|
-
|
|
168
|
-
|
|
140
|
+
For JSX written in TypeScript, the automatic transform uses Fabric's runtime entry points:
|
|
141
|
+
|
|
142
|
+
```text
|
|
143
|
+
JSX
|
|
144
|
+
|
|
|
145
|
+
v
|
|
146
|
+
TypeScript JSX Transform
|
|
147
|
+
|
|
|
148
|
+
v
|
|
149
|
+
@siddh-dev/fabric/jsx-runtime
|
|
150
|
+
|
|
|
151
|
+
v
|
|
152
|
+
jsx() / jsxs()
|
|
153
|
+
|
|
|
154
|
+
v
|
|
155
|
+
VNode
|
|
156
|
+
|
|
|
157
|
+
v
|
|
158
|
+
Reconciliation
|
|
159
|
+
|
|
|
160
|
+
v
|
|
161
|
+
DOM
|
|
169
162
|
```
|
|
170
163
|
|
|
171
|
-
|
|
164
|
+
### State Updates
|
|
165
|
+
|
|
166
|
+
When a component's state changes, Fabric schedules an update and reconciles the resulting virtual tree.
|
|
167
|
+
|
|
168
|
+
```text
|
|
169
|
+
setState()
|
|
170
|
+
|
|
|
171
|
+
v
|
|
172
|
+
Schedule Update
|
|
173
|
+
|
|
|
174
|
+
v
|
|
175
|
+
Component Re-render
|
|
176
|
+
|
|
|
177
|
+
v
|
|
178
|
+
New VNode
|
|
179
|
+
|
|
|
180
|
+
v
|
|
181
|
+
Reconciliation
|
|
182
|
+
|
|
|
183
|
+
v
|
|
184
|
+
DOM Update
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## Public API
|
|
190
|
+
|
|
191
|
+
Fabric's public entry point provides the core APIs exported by the package.
|
|
192
|
+
|
|
193
|
+
The main APIs used in the Quick Start example are:
|
|
194
|
+
|
|
195
|
+
- `createRoot()` — creates a root for rendering into a DOM container.
|
|
196
|
+
- `createElement()` — creates virtual nodes.
|
|
197
|
+
- `useState()` — manages component state.
|
|
198
|
+
- `useEffect()` — runs effects and supports cleanup.
|
|
199
|
+
|
|
200
|
+
For the exact exports and API details, see the [Public API Reference](./docs/api/public-api.md).
|
|
172
201
|
|
|
173
202
|
---
|
|
174
203
|
|
|
175
204
|
## Documentation
|
|
176
205
|
|
|
177
|
-
The
|
|
206
|
+
The documentation is organized by topic.
|
|
178
207
|
|
|
179
208
|
### Getting Started
|
|
180
209
|
|
|
181
|
-
- [Installation](./docs/getting-started/installation.md)
|
|
210
|
+
- [Installation Guide](./docs/getting-started/installation.md)
|
|
182
211
|
- [Quick Start](./docs/getting-started/quick-start.md)
|
|
183
212
|
|
|
184
213
|
### Concepts
|
|
@@ -193,15 +222,15 @@ The complete documentation is available in the [`docs/`](./docs/) directory.
|
|
|
193
222
|
### Runtime
|
|
194
223
|
|
|
195
224
|
- [JSX](./docs/runtime/jsx.md)
|
|
225
|
+
- [DOM](./docs/runtime/dom.md)
|
|
196
226
|
- [Events](./docs/runtime/events.md)
|
|
197
227
|
- [Reconciliation](./docs/runtime/reconciliation.md)
|
|
198
228
|
- [Keyed Reconciliation](./docs/runtime/keyed-reconciliation.md)
|
|
199
229
|
- [Scheduler](./docs/runtime/scheduler.md)
|
|
200
|
-
- [DOM](./docs/runtime/dom.md)
|
|
201
230
|
|
|
202
231
|
### API
|
|
203
232
|
|
|
204
|
-
- [Public API](./docs/api/public-api.md)
|
|
233
|
+
- [Public API Reference](./docs/api/public-api.md)
|
|
205
234
|
|
|
206
235
|
### Development
|
|
207
236
|
|
|
@@ -217,10 +246,15 @@ The complete documentation is available in the [`docs/`](./docs/) directory.
|
|
|
217
246
|
|
|
218
247
|
## Development
|
|
219
248
|
|
|
249
|
+
### Prerequisites
|
|
250
|
+
|
|
251
|
+
- Node.js
|
|
252
|
+
- pnpm
|
|
253
|
+
|
|
220
254
|
Clone the repository:
|
|
221
255
|
|
|
222
256
|
```bash
|
|
223
|
-
git clone
|
|
257
|
+
git clone https://github.com/SiddhCodes/Fabric.git
|
|
224
258
|
cd Fabric
|
|
225
259
|
```
|
|
226
260
|
|
|
@@ -230,7 +264,7 @@ Install dependencies:
|
|
|
230
264
|
pnpm install
|
|
231
265
|
```
|
|
232
266
|
|
|
233
|
-
Start
|
|
267
|
+
Start TypeScript watch mode:
|
|
234
268
|
|
|
235
269
|
```bash
|
|
236
270
|
pnpm dev
|
|
@@ -242,13 +276,13 @@ Run tests in watch mode:
|
|
|
242
276
|
pnpm test
|
|
243
277
|
```
|
|
244
278
|
|
|
245
|
-
Run the test suite once:
|
|
279
|
+
Run the complete test suite once:
|
|
246
280
|
|
|
247
281
|
```bash
|
|
248
282
|
pnpm test:run
|
|
249
283
|
```
|
|
250
284
|
|
|
251
|
-
Run
|
|
285
|
+
Run TypeScript checks:
|
|
252
286
|
|
|
253
287
|
```bash
|
|
254
288
|
pnpm check
|
|
@@ -272,9 +306,9 @@ pnpm clean
|
|
|
272
306
|
|
|
273
307
|
Fabric uses:
|
|
274
308
|
|
|
275
|
-
- Vitest
|
|
276
|
-
- jsdom
|
|
277
|
-
- TypeScript
|
|
309
|
+
- Vitest
|
|
310
|
+
- jsdom
|
|
311
|
+
- TypeScript
|
|
278
312
|
|
|
279
313
|
Run the complete test suite:
|
|
280
314
|
|
|
@@ -282,21 +316,18 @@ Run the complete test suite:
|
|
|
282
316
|
pnpm test:run
|
|
283
317
|
```
|
|
284
318
|
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
- VNode creation
|
|
288
|
-
- JSX
|
|
289
|
-
- Components
|
|
290
|
-
-
|
|
291
|
-
-
|
|
292
|
-
-
|
|
293
|
-
-
|
|
294
|
-
-
|
|
295
|
-
-
|
|
296
|
-
-
|
|
297
|
-
- Scheduler behavior.
|
|
298
|
-
- Root rendering.
|
|
299
|
-
- DOM updates.
|
|
319
|
+
The existing test suite covers areas including:
|
|
320
|
+
|
|
321
|
+
- VNode creation
|
|
322
|
+
- JSX and JSX syntax
|
|
323
|
+
- Components
|
|
324
|
+
- State and effects
|
|
325
|
+
- Effect cleanup
|
|
326
|
+
- Event handling
|
|
327
|
+
- Reconciliation and keyed reconciliation
|
|
328
|
+
- Scheduler behavior
|
|
329
|
+
- Root rendering
|
|
330
|
+
- DOM updates
|
|
300
331
|
|
|
301
332
|
---
|
|
302
333
|
|
|
@@ -307,93 +338,103 @@ Fabric/
|
|
|
307
338
|
├── src/
|
|
308
339
|
│ ├── core/
|
|
309
340
|
│ │ ├── component/
|
|
341
|
+
│ │ │ ├── ComponentInstance.ts
|
|
342
|
+
│ │ │ └── ComponentRuntime.ts
|
|
310
343
|
│ │ ├── hooks/
|
|
344
|
+
│ │ │ ├── HookRuntime.ts
|
|
345
|
+
│ │ │ ├── useEffect.ts
|
|
346
|
+
│ │ │ └── useState.ts
|
|
311
347
|
│ │ ├── jsx/
|
|
348
|
+
│ │ │ ├── jsx.ts
|
|
349
|
+
│ │ │ ├── jsx-runtime.ts
|
|
350
|
+
│ │ │ ├── jsx-dev-runtime.ts
|
|
351
|
+
│ │ │ └── JSXTypes.ts
|
|
312
352
|
│ │ ├── scheduler/
|
|
353
|
+
│ │ │ └── Scheduler.ts
|
|
313
354
|
│ │ └── vnode/
|
|
314
|
-
│ │
|
|
355
|
+
│ │ ├── createElement.ts
|
|
356
|
+
│ │ └── VNode.ts
|
|
315
357
|
│ ├── dom/
|
|
316
358
|
│ │ ├── DOMProperties.ts
|
|
317
359
|
│ │ ├── EventSystem.ts
|
|
318
360
|
│ │ └── Reconciler.ts
|
|
319
|
-
│ │
|
|
320
361
|
│ ├── runtime/
|
|
321
362
|
│ │ └── createRoot.ts
|
|
322
|
-
│ │
|
|
323
363
|
│ └── index.ts
|
|
324
|
-
│
|
|
325
364
|
├── tests/
|
|
365
|
+
│ ├── core/
|
|
366
|
+
│ ├── component/
|
|
367
|
+
│ ├── dom/
|
|
368
|
+
│ ├── runtime/
|
|
369
|
+
│ └── tsconfig.json
|
|
326
370
|
├── docs/
|
|
371
|
+
│ ├── api/
|
|
372
|
+
│ ├── concepts/
|
|
373
|
+
│ ├── development/
|
|
374
|
+
│ ├── getting-started/
|
|
375
|
+
│ ├── project/
|
|
376
|
+
│ └── runtime/
|
|
327
377
|
├── index.html
|
|
328
378
|
├── package.json
|
|
329
379
|
├── tsconfig.json
|
|
330
|
-
├──
|
|
331
|
-
└──
|
|
380
|
+
├── vitest.config.ts
|
|
381
|
+
└── README.md
|
|
332
382
|
```
|
|
333
383
|
|
|
334
|
-
The
|
|
384
|
+
The source code is organized into three main areas:
|
|
335
385
|
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
Scheduler
|
|
342
|
-
↓
|
|
343
|
-
Reconciler
|
|
344
|
-
↓
|
|
345
|
-
DOM
|
|
346
|
-
```
|
|
386
|
+
- **Core:** Virtual nodes, components, hooks, JSX runtime, and scheduling.
|
|
387
|
+
- **DOM:** DOM property handling, event handling, and reconciliation.
|
|
388
|
+
- **Runtime:** Root creation and rendering.
|
|
389
|
+
|
|
390
|
+
The `tests/` directory contains automated tests, while `docs/` contains user and contributor documentation.
|
|
347
391
|
|
|
348
392
|
---
|
|
349
393
|
|
|
350
|
-
## V0.1
|
|
394
|
+
## V0.1 Scope
|
|
351
395
|
|
|
352
396
|
The initial goal of Fabric is to establish a small but functional frontend runtime.
|
|
353
397
|
|
|
354
|
-
V0.1
|
|
355
|
-
|
|
356
|
-
-
|
|
357
|
-
- JSX
|
|
358
|
-
-
|
|
359
|
-
-
|
|
360
|
-
-
|
|
361
|
-
-
|
|
362
|
-
-
|
|
363
|
-
-
|
|
364
|
-
-
|
|
365
|
-
-
|
|
366
|
-
-
|
|
367
|
-
-
|
|
368
|
-
-
|
|
369
|
-
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
- Documentation.
|
|
373
|
-
|
|
374
|
-
The V0.1 scope is intentionally limited. The goal is to establish a reliable foundation rather than implement every possible framework feature.
|
|
398
|
+
The V0.1 scope includes:
|
|
399
|
+
|
|
400
|
+
- Virtual nodes
|
|
401
|
+
- JSX and automatic JSX runtime
|
|
402
|
+
- Function components and props
|
|
403
|
+
- State and effects
|
|
404
|
+
- Effect cleanup
|
|
405
|
+
- DOM event handling
|
|
406
|
+
- Reconciliation and keyed reconciliation
|
|
407
|
+
- Scheduling and batching
|
|
408
|
+
- Basic DOM operations
|
|
409
|
+
- Public API
|
|
410
|
+
- Automated tests
|
|
411
|
+
- Package configuration
|
|
412
|
+
- Documentation
|
|
413
|
+
- Consumer application integration
|
|
414
|
+
|
|
415
|
+
The scope is intentionally limited. The goal is to establish a reliable foundation before introducing more advanced features.
|
|
375
416
|
|
|
376
417
|
---
|
|
377
418
|
|
|
378
|
-
## Future
|
|
419
|
+
## Future Directions
|
|
379
420
|
|
|
380
421
|
Possible future areas include:
|
|
381
422
|
|
|
382
|
-
- Context
|
|
383
|
-
- Additional hooks
|
|
384
|
-
- Refs
|
|
385
|
-
- Fragments
|
|
386
|
-
- Memoization
|
|
387
|
-
- Portals
|
|
388
|
-
- Error boundaries
|
|
389
|
-
- Suspense-like rendering
|
|
390
|
-
- Advanced scheduling
|
|
391
|
-
- Concurrent rendering
|
|
392
|
-
- Server-side rendering
|
|
393
|
-
- Hydration
|
|
394
|
-
- Developer tools
|
|
395
|
-
|
|
396
|
-
These are future
|
|
423
|
+
- Context
|
|
424
|
+
- Additional hooks
|
|
425
|
+
- Refs
|
|
426
|
+
- Fragments
|
|
427
|
+
- Memoization
|
|
428
|
+
- Portals
|
|
429
|
+
- Error boundaries
|
|
430
|
+
- Suspense-like rendering
|
|
431
|
+
- Advanced scheduling
|
|
432
|
+
- Concurrent rendering
|
|
433
|
+
- Server-side rendering
|
|
434
|
+
- Hydration
|
|
435
|
+
- Developer tools
|
|
436
|
+
|
|
437
|
+
These are possible future directions, not promises of support in V0.1.
|
|
397
438
|
|
|
398
439
|
See the [Roadmap](./docs/project/roadmap.md) for more information.
|
|
399
440
|
|
|
@@ -405,26 +446,20 @@ Contributions are welcome.
|
|
|
405
446
|
|
|
406
447
|
Before contributing, read the [Contributing Guide](./docs/development/contributing.md).
|
|
407
448
|
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
- [Testing](./docs/development/testing.md)
|
|
411
|
-
- [Packaging](./docs/development/packaging.md)
|
|
412
|
-
- [Architecture](./docs/concepts/architecture.md)
|
|
413
|
-
|
|
414
|
-
Good contributions can include:
|
|
449
|
+
Useful areas for contributions include:
|
|
415
450
|
|
|
416
|
-
- Bug fixes
|
|
417
|
-
- Regression tests
|
|
418
|
-
- Documentation improvements
|
|
419
|
-
- Runtime improvements
|
|
420
|
-
-
|
|
421
|
-
- Performance improvements
|
|
422
|
-
-
|
|
451
|
+
- Bug fixes
|
|
452
|
+
- Regression tests
|
|
453
|
+
- Documentation improvements
|
|
454
|
+
- Runtime improvements
|
|
455
|
+
- Refactoring for clarity
|
|
456
|
+
- Performance improvements backed by measurements
|
|
457
|
+
- Package validation
|
|
423
458
|
|
|
424
|
-
Please keep
|
|
459
|
+
Please keep contributions focused and aligned with Fabric's architecture and current scope.
|
|
425
460
|
|
|
426
461
|
---
|
|
427
462
|
|
|
428
463
|
## License
|
|
429
464
|
|
|
430
|
-
MIT
|
|
465
|
+
MIT. See the [LICENSE](./LICENSE) file for details.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { VNode } from "../vnode/VNode.js";
|
|
2
|
+
interface IJSXEventProps {
|
|
3
|
+
onClick?: (event: MouseEvent) => void;
|
|
4
|
+
onDblClick?: (event: MouseEvent) => void;
|
|
5
|
+
onMouseDown?: (event: MouseEvent) => void;
|
|
6
|
+
onMouseUp?: (event: MouseEvent) => void;
|
|
7
|
+
onMouseMove?: (event: MouseEvent) => void;
|
|
8
|
+
onMouseEnter?: (event: MouseEvent) => void;
|
|
9
|
+
onMouseLeave?: (event: MouseEvent) => void;
|
|
10
|
+
onInput?: (event: Event) => void;
|
|
11
|
+
onChange?: (event: Event) => void;
|
|
12
|
+
onSubmit?: (event: SubmitEvent) => void;
|
|
13
|
+
onKeyDown?: (event: KeyboardEvent) => void;
|
|
14
|
+
onKeyUp?: (event: KeyboardEvent) => void;
|
|
15
|
+
onFocus?: (event: FocusEvent) => void;
|
|
16
|
+
onBlur?: (event: FocusEvent) => void;
|
|
17
|
+
}
|
|
18
|
+
interface IJSXElementProps extends IJSXEventProps {
|
|
19
|
+
[property: string]: unknown;
|
|
20
|
+
}
|
|
21
|
+
interface IJSXInputProps extends IJSXElementProps {
|
|
22
|
+
onInput?: (event: Event) => void;
|
|
23
|
+
onChange?: (event: Event) => void;
|
|
24
|
+
onKeyDown?: (event: KeyboardEvent) => void;
|
|
25
|
+
onKeyUp?: (event: KeyboardEvent) => void;
|
|
26
|
+
}
|
|
27
|
+
interface IJSXFormProps extends IJSXElementProps {
|
|
28
|
+
onSubmit?: (event: SubmitEvent) => void;
|
|
29
|
+
}
|
|
30
|
+
export declare namespace JSX {
|
|
31
|
+
interface Element extends VNode {
|
|
32
|
+
}
|
|
33
|
+
interface IntrinsicAttributes {
|
|
34
|
+
key?: string | number;
|
|
35
|
+
}
|
|
36
|
+
interface IntrinsicElements {
|
|
37
|
+
button: IJSXElementProps;
|
|
38
|
+
input: IJSXInputProps;
|
|
39
|
+
form: IJSXFormProps;
|
|
40
|
+
div: IJSXElementProps;
|
|
41
|
+
span: IJSXElementProps;
|
|
42
|
+
p: IJSXElementProps;
|
|
43
|
+
strong: IJSXElementProps;
|
|
44
|
+
br: IJSXElementProps;
|
|
45
|
+
hr: IJSXElementProps;
|
|
46
|
+
h1: IJSXElementProps;
|
|
47
|
+
h2: IJSXElementProps;
|
|
48
|
+
h3: IJSXElementProps;
|
|
49
|
+
h4: IJSXElementProps;
|
|
50
|
+
h5: IJSXElementProps;
|
|
51
|
+
h6: IJSXElementProps;
|
|
52
|
+
ul: IJSXElementProps;
|
|
53
|
+
ol: IJSXElementProps;
|
|
54
|
+
li: IJSXElementProps;
|
|
55
|
+
section: IJSXElementProps;
|
|
56
|
+
main: IJSXElementProps;
|
|
57
|
+
label: IJSXElementProps;
|
|
58
|
+
textarea: IJSXInputProps;
|
|
59
|
+
select: IJSXInputProps;
|
|
60
|
+
option: IJSXElementProps;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JSXTypes.js","sourceRoot":"","sources":["../../../src/core/jsx/JSXTypes.ts"],"names":[],"mappings":""}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
import type { IProps, TVNodeType, VNode } from "../vnode/VNode.js";
|
|
2
|
-
export
|
|
2
|
+
export type { JSX } from "./JSXTypes.js";
|
|
3
|
+
type TJSXKey = string | number;
|
|
4
|
+
export declare function jsxDEV(type: TVNodeType, props: IProps | null, key?: TJSXKey): VNode;
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { createAutomaticJSXVNode } from "./jsx.js";
|
|
2
|
-
export function jsxDEV(type, props) {
|
|
3
|
-
|
|
2
|
+
export function jsxDEV(type, props, key) {
|
|
3
|
+
const nextProps = key === undefined
|
|
4
|
+
? props
|
|
5
|
+
: {
|
|
6
|
+
...(props ?? {}),
|
|
7
|
+
key
|
|
8
|
+
};
|
|
9
|
+
return createAutomaticJSXVNode(type, nextProps);
|
|
4
10
|
}
|
|
5
11
|
//# sourceMappingURL=jsx-dev-runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsx-dev-runtime.js","sourceRoot":"","sources":["../../../src/core/jsx/jsx-dev-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,uBAAuB,EAC1B,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"jsx-dev-runtime.js","sourceRoot":"","sources":["../../../src/core/jsx/jsx-dev-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,uBAAuB,EAC1B,MAAM,UAAU,CAAC;AAclB,MAAM,UAAU,MAAM,CAClB,IAAgB,EAChB,KAAoB,EACpB,GAAa;IAEb,MAAM,SAAS,GACX,GAAG,KAAK,SAAS;QACb,CAAC,CAAC,KAAK;QACP,CAAC,CAAC;YACE,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;YAChB,GAAG;SACN,CAAC;IAEV,OAAO,uBAAuB,CAC1B,IAAI,EACJ,SAAS,CACZ,CAAC;AACN,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { IProps, TVNodeType, VNode } from "../vnode/VNode.js";
|
|
2
|
-
export
|
|
3
|
-
|
|
2
|
+
export type { JSX } from "./JSXTypes.js";
|
|
3
|
+
type TJSXKey = string | number;
|
|
4
|
+
export declare function jsx(type: TVNodeType, props: IProps | null, key?: TJSXKey): VNode;
|
|
5
|
+
export declare function jsxs(type: TVNodeType, props: IProps | null, key?: TJSXKey): VNode;
|
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
import { createAutomaticJSXVNode } from "./jsx.js";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
function createJSXWithKey(type, props, key) {
|
|
3
|
+
const nextProps = key === undefined
|
|
4
|
+
? props
|
|
5
|
+
: {
|
|
6
|
+
...(props ?? {}),
|
|
7
|
+
key,
|
|
8
|
+
};
|
|
9
|
+
return createAutomaticJSXVNode(type, nextProps);
|
|
4
10
|
}
|
|
5
|
-
export function
|
|
6
|
-
return
|
|
11
|
+
export function jsx(type, props, key) {
|
|
12
|
+
return createJSXWithKey(type, props, key);
|
|
13
|
+
}
|
|
14
|
+
export function jsxs(type, props, key) {
|
|
15
|
+
return createJSXWithKey(type, props, key);
|
|
7
16
|
}
|
|
8
17
|
//# sourceMappingURL=jsx-runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsx-runtime.js","sourceRoot":"","sources":["../../../src/core/jsx/jsx-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"jsx-runtime.js","sourceRoot":"","sources":["../../../src/core/jsx/jsx-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAWnD,SAAS,gBAAgB,CACrB,IAAgB,EAChB,KAAoB,EACpB,GAAa;IAEb,MAAM,SAAS,GACX,GAAG,KAAK,SAAS;QACb,CAAC,CAAC,KAAK;QACP,CAAC,CAAC;YACE,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;YAChB,GAAG;SACN,CAAC;IAEV,OAAO,uBAAuB,CAC1B,IAAI,EACJ,SAAS,CACZ,CAAC;AACN,CAAC;AAED,MAAM,UAAU,GAAG,CACf,IAAgB,EAChB,KAAoB,EACpB,GAAa;IAEb,OAAO,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,IAAI,CAChB,IAAgB,EAChB,KAAoB,EACpB,GAAa;IAEb,OAAO,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC9C,CAAC"}
|
package/dist/core/jsx/jsx.js
CHANGED
|
@@ -5,18 +5,22 @@ function getChildren(props) {
|
|
|
5
5
|
!("children" in props)) {
|
|
6
6
|
return [];
|
|
7
7
|
}
|
|
8
|
-
const children =
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
const children = [];
|
|
9
|
+
function collectChildren(value) {
|
|
10
|
+
if (Array.isArray(value)) {
|
|
11
|
+
for (const child of value) {
|
|
12
|
+
collectChildren(child);
|
|
13
|
+
}
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
if (typeof value === "string" ||
|
|
17
|
+
typeof value === "number" ||
|
|
18
|
+
value instanceof VNode) {
|
|
19
|
+
children.push(value);
|
|
20
|
+
}
|
|
13
21
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
children instanceof VNode) {
|
|
17
|
-
return [children];
|
|
18
|
-
}
|
|
19
|
-
return [];
|
|
22
|
+
collectChildren(props.children);
|
|
23
|
+
return children;
|
|
20
24
|
}
|
|
21
25
|
function createJSXVNode(type, props) {
|
|
22
26
|
const children = getChildren(props);
|
package/dist/core/jsx/jsx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsx.js","sourceRoot":"","sources":["../../../src/core/jsx/jsx.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EAChB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACH,KAAK,EACR,MAAM,mBAAmB,CAAC;AAgK3B,SAAS,WAAW,CAChB,KAAoB;IAEpB,IACI,KAAK,KAAK,IAAI;QACd,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,EACxB,CAAC;QACC,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"jsx.js","sourceRoot":"","sources":["../../../src/core/jsx/jsx.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EAChB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACH,KAAK,EACR,MAAM,mBAAmB,CAAC;AAgK3B,SAAS,WAAW,CAChB,KAAoB;IAEpB,IACI,KAAK,KAAK,IAAI;QACd,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,EACxB,CAAC;QACC,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAkB,EAAE,CAAC;IAEnC,SAAS,eAAe,CACpB,KAAc;QAEd,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;gBACxB,eAAe,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YAED,OAAO;QACX,CAAC;QAED,IACI,OAAO,KAAK,KAAK,QAAQ;YACzB,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,YAAY,KAAK,EACxB,CAAC;YACC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACL,CAAC;IAED,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEhC,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,cAAc,CACnB,IAAgB,EAChB,KAAoB;IAEpB,MAAM,QAAQ,GACV,WAAW,CAAC,KAAK,CAAC,CAAC;IAEvB,MAAM,SAAS,GACX,KAAK,KAAK,IAAI;QACV,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,EAAC,GAAG,KAAK,EAAC,CAAC;IAErB,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,OAAO,aAAa,CAChB,IAAI,EACJ,SAAS,EACT,GAAG,QAAQ,CACd,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,GAAG,CACf,IAAgB,EAChB,KAAoB,EACpB,GAAG,QAAuB;IAE1B,OAAO,aAAa,CAChB,IAAI,EACJ,KAAK,EACL,GAAG,QAAQ,CACd,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACnC,IAAgB,EAChB,KAAoB;IAEpB,OAAO,cAAc,CACjB,IAAI,EACJ,KAAK,CACR,CAAC;AACN,CAAC"}
|
package/dist/dom/Reconciler.js
CHANGED
|
@@ -172,33 +172,27 @@ export class Reconciler {
|
|
|
172
172
|
const newChildren = this.normalizeChildren(newVNode);
|
|
173
173
|
const oldRecords = oldChildren.map(child => ({
|
|
174
174
|
vnode: child,
|
|
175
|
-
dom: child.dom ??
|
|
176
|
-
document.createTextNode("")
|
|
175
|
+
dom: child.dom ?? document.createTextNode("")
|
|
177
176
|
}));
|
|
178
177
|
const used = new Set();
|
|
179
178
|
let unkeyedCursor = 0;
|
|
180
|
-
for (let newIndex = 0; newIndex <
|
|
181
|
-
newChildren.length; newIndex++) {
|
|
179
|
+
for (let newIndex = 0; newIndex < newChildren.length; newIndex++) {
|
|
182
180
|
const newChild = newChildren[newIndex];
|
|
183
181
|
let matched = null;
|
|
184
182
|
if (newChild.key !== null) {
|
|
185
183
|
matched =
|
|
186
184
|
oldRecords.find(record => !used.has(record) &&
|
|
187
|
-
record.vnode.key ===
|
|
188
|
-
newChild.key) ?? null;
|
|
185
|
+
record.vnode.key === newChild.key) ?? null;
|
|
189
186
|
}
|
|
190
187
|
else {
|
|
191
|
-
while (unkeyedCursor <
|
|
192
|
-
oldRecords.length) {
|
|
188
|
+
while (unkeyedCursor < oldRecords.length) {
|
|
193
189
|
const candidate = oldRecords[unkeyedCursor];
|
|
194
190
|
unkeyedCursor++;
|
|
195
191
|
if (used.has(candidate)) {
|
|
196
192
|
continue;
|
|
197
193
|
}
|
|
198
|
-
if (candidate.vnode.key ===
|
|
199
|
-
|
|
200
|
-
matched =
|
|
201
|
-
candidate;
|
|
194
|
+
if (candidate.vnode.key === null) {
|
|
195
|
+
matched = candidate;
|
|
202
196
|
break;
|
|
203
197
|
}
|
|
204
198
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Reconciler.js","sourceRoot":"","sources":["../../src/dom/Reconciler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Reconciler.js","sourceRoot":"","sources":["../../src/dom/Reconciler.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@siddh-dev/fabric",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "A lightweight frontend UI runtime built from scratch with TypeScript.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -33,6 +33,14 @@
|
|
|
33
33
|
],
|
|
34
34
|
"author": "Siddhant Mul",
|
|
35
35
|
"license": "MIT",
|
|
36
|
+
"repository": {
|
|
37
|
+
"type": "git",
|
|
38
|
+
"url": "https://github.com/SiddhCodes/Fabric.git"
|
|
39
|
+
},
|
|
40
|
+
"homepage": "https://github.com/SiddhCodes/Fabric#readme",
|
|
41
|
+
"bugs": {
|
|
42
|
+
"url": "https://github.com/SiddhCodes/Fabric/issues"
|
|
43
|
+
},
|
|
36
44
|
"devEngines": {
|
|
37
45
|
"packageManager": {
|
|
38
46
|
"name": "pnpm",
|