@meonode/ui 0.2.13 → 0.2.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +103 -39
- package/README.md +51 -1468
- package/dist/components/html.node.d.ts +22 -3
- package/dist/components/html.node.d.ts.map +1 -1
- package/dist/components/html.node.js +18 -3
- package/dist/components/styled-renderer.client.js +1 -1
- package/dist/core.node.d.ts +66 -12
- package/dist/core.node.d.ts.map +1 -1
- package/dist/core.node.js +78 -25
- package/dist/helper/common.helper.d.ts +0 -2
- package/dist/helper/common.helper.d.ts.map +1 -1
- package/dist/helper/common.helper.js +1 -2
- package/dist/helper/node.helper.d.ts +6 -17
- package/dist/helper/node.helper.d.ts.map +1 -1
- package/dist/helper/node.helper.js +18 -18
- package/dist/helper/obj.helper.d.ts +11 -0
- package/dist/helper/obj.helper.d.ts.map +1 -1
- package/dist/helper/obj.helper.js +19 -1
- package/dist/hoc/component.hoc.d.ts.map +1 -1
- package/dist/hoc/component.hoc.js +2 -2
- package/dist/node.type.d.ts +14 -11
- package/dist/node.type.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,59 +5,107 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.2.15] - 2025-09-12
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **feat(cache)**: implement hybrid caching strategy for processed children using WeakMap and Map to improve performance
|
|
13
|
+
and memory management
|
|
14
|
+
- **feat(helper)**: implement nodeSignature for stable signatures and improve createStableHash with bounded traversal
|
|
15
|
+
- **feat(helper)**: enhance ObjHelper.stringify method for deterministic serialization with sorted keys and special type
|
|
16
|
+
handling
|
|
17
|
+
|
|
18
|
+
### Refactor
|
|
19
|
+
|
|
20
|
+
- **refactor**: improve type definitions and error handling in rendering methods
|
|
21
|
+
|
|
22
|
+
### Test
|
|
23
|
+
|
|
24
|
+
- **test(tests)**: add performance tests for rendering a single-page layout in React
|
|
25
|
+
- **test**: add cleanup after each test and verify component display names for debugging
|
|
26
|
+
|
|
27
|
+
## [0.2.14] - 2025-09-12
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
|
|
31
|
+
- **feat**: Add `Container` alias for `Div` to simplify general-purpose container usage.
|
|
32
|
+
- **feat**: Add caching for processed children to optimize performance in `BaseNode` class.
|
|
33
|
+
|
|
34
|
+
### Removed
|
|
35
|
+
|
|
36
|
+
- **feat**: Remove `shallowEqual` utility function from `common.helper.ts`.
|
|
37
|
+
|
|
38
|
+
### Fixed
|
|
39
|
+
|
|
40
|
+
- **feat**: Improve performance by optimizing existing key checks and handling null values in rendering functions.
|
|
41
|
+
|
|
8
42
|
## [0.2.13] - 2025-09-11
|
|
9
43
|
|
|
10
44
|
### Added
|
|
45
|
+
|
|
11
46
|
- **feat**: Add pre-commit hook for linting and testing, update package.json scripts.
|
|
12
47
|
- **feat**: Add Jest configuration and setup for testing with TypeScript.
|
|
13
48
|
- **test**: Add comprehensive tests for BaseNode core functionality.
|
|
14
49
|
|
|
15
50
|
### Fixed
|
|
16
|
-
|
|
51
|
+
|
|
52
|
+
- **core**: Remove stylable elements from NO_STYLE_TAGS to ensure only non-visual/metadata tags are excluded from CSS
|
|
53
|
+
styling.
|
|
17
54
|
|
|
18
55
|
## [0.2.12] - 2025-09-11
|
|
19
56
|
|
|
20
57
|
### Fixed
|
|
21
|
-
|
|
58
|
+
|
|
59
|
+
- **core.node**: Removed the child processing cache to fix a critical bug that caused infinite page loads in server-side
|
|
60
|
+
rendering environments.
|
|
22
61
|
- **helper**: Corrected the element type retrieval logic within the hashing function used for child node processing.
|
|
23
62
|
|
|
24
63
|
## [0.2.11] - 2025-09-11
|
|
25
64
|
|
|
26
65
|
### Enhanced
|
|
27
|
-
|
|
28
|
-
- **core.node**:
|
|
66
|
+
|
|
67
|
+
- **core.node**: Significantly improved JSDoc documentation for the `BaseNode` class, providing better clarity on prop
|
|
68
|
+
processing, child handling, and rendering logic.
|
|
69
|
+
- **core.node**: Overhauled the child processing and caching mechanism to improve server-side performance and resolve a
|
|
70
|
+
memory leak. This includes a move from object stringification to a more performant hashing strategy for cache keys and
|
|
71
|
+
the introduction of a cache management policy.
|
|
29
72
|
|
|
30
73
|
### Fixed
|
|
74
|
+
|
|
31
75
|
- **helper**: Corrected an issue in flexbox style processing where an unnecessary string check was performed.
|
|
32
76
|
- **core.node**: Updated a function placeholder to adhere to the unused parameter naming convention.
|
|
33
77
|
|
|
34
78
|
## [0.2.10] - 2025-09-10
|
|
35
79
|
|
|
36
80
|
### Added
|
|
37
|
-
- **core**: add top-level `render` function for a cleaner and simpler API when mounting a Meonode instance to the DOM. This abstracts away the need to manually use `react-dom/client`.
|
|
38
|
-
- **Before**:
|
|
39
|
-
```typescript
|
|
40
|
-
import { createRoot } from 'react-dom/client';
|
|
41
|
-
import { Div } from '@meonode/ui';
|
|
42
|
-
|
|
43
|
-
const container = document.getElementById('root');
|
|
44
|
-
const root = createRoot(container);
|
|
45
|
-
root.render(Div({ children: 'Hello' }).render());
|
|
46
|
-
```
|
|
47
|
-
- **After**:
|
|
48
|
-
```typescript
|
|
49
|
-
import { Div } from '@meonode/ui';
|
|
50
|
-
import { render } from '@meonode/ui/client';
|
|
51
81
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
82
|
+
- **core**: add top-level `render` function for a cleaner and simpler API when mounting a Meonode instance to the DOM.
|
|
83
|
+
This abstracts away the need to manually use `react-dom/client`.
|
|
84
|
+
- **Before**:
|
|
85
|
+
```typescript
|
|
86
|
+
import { createRoot } from 'react-dom/client';
|
|
87
|
+
import { Div } from '@meonode/ui';
|
|
88
|
+
|
|
89
|
+
const container = document.getElementById('root');
|
|
90
|
+
const root = createRoot(container);
|
|
91
|
+
root.render(Div({ children: 'Hello' }).render());
|
|
92
|
+
```
|
|
93
|
+
- **After**:
|
|
94
|
+
```typescript
|
|
95
|
+
import { Div } from '@meonode/ui';
|
|
96
|
+
import { render } from '@meonode/ui/client';
|
|
97
|
+
|
|
98
|
+
const container = document.getElementById('root');
|
|
99
|
+
render(Div({ children: 'Hello' }), container);
|
|
100
|
+
```
|
|
55
101
|
- **constants**: add `NO_STYLE_TAGS` array and `noStyleTagsSet` for quick lookup of tags that should not receive styles
|
|
56
102
|
|
|
57
103
|
### Enhanced
|
|
104
|
+
|
|
58
105
|
- **core**: enhance `StyledRenderer` integration to check for no-style tags
|
|
59
106
|
|
|
60
107
|
### Changed
|
|
108
|
+
|
|
61
109
|
- **helper**: update CSS property set to use constants and add no-style tag check
|
|
62
110
|
- **package**: update dependencies to latest versions
|
|
63
111
|
- **directory**: rename `data` directory to `constants` for clarity
|
|
@@ -66,14 +114,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
66
114
|
## [0.2.9] - 2025-09-05
|
|
67
115
|
|
|
68
116
|
### Fixed
|
|
117
|
+
|
|
69
118
|
- **core.types**: corrected `MergedProps` definition to restore proper TypeScript inference and props autocomplete
|
|
70
|
-
- Fixes regression from v0.2.8 where `createNode` and `createChildrenFirstNode` lost autocomplete for props due to
|
|
119
|
+
- Fixes regression from v0.2.8 where `createNode` and `createChildrenFirstNode` lost autocomplete for props due to
|
|
120
|
+
incorrect `MergedProps` typing
|
|
71
121
|
|
|
72
122
|
## [0.2.8] - 2025-09-05
|
|
73
123
|
|
|
74
124
|
### Changed
|
|
125
|
+
|
|
75
126
|
- **core.node**: refactor props handling to use a single utility type:
|
|
76
|
-
- `MergedProps<E, AdditionalProps>` — merges `NodeProps<E>` with custom props, giving precedence to overlapping keys
|
|
127
|
+
- `MergedProps<E, AdditionalProps>` — merges `NodeProps<E>` with custom props, giving precedence to overlapping keys
|
|
128
|
+
from `AdditionalProps`.
|
|
77
129
|
- Simplifies and unifies the typing system for node factories (`createNode`, `createChildrenFirstNode`).
|
|
78
130
|
- Improves developer experience when working with prebuilt components:
|
|
79
131
|
- Example:
|
|
@@ -88,11 +140,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
88
140
|
onChange: ({ target }) => console.log(target.value),
|
|
89
141
|
})
|
|
90
142
|
```
|
|
91
|
-
Extending prebuilt components is now safer and more predictable, with generic props always taking precedence when keys
|
|
143
|
+
Extending prebuilt components is now safer and more predictable, with generic props always taking precedence when keys
|
|
144
|
+
overlap.
|
|
92
145
|
|
|
93
146
|
- **helpers**: reorganize helper files and update import paths
|
|
94
147
|
|
|
95
148
|
### Fixed
|
|
149
|
+
|
|
96
150
|
- **styled-renderer**: make `children` prop optional in `StyledRendererProps`
|
|
97
151
|
|
|
98
152
|
## [0.2.7] - 2025-09-04
|
|
@@ -104,7 +158,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
104
158
|
## [0.2.6] - 2025-09-04
|
|
105
159
|
|
|
106
160
|
- **deps**: update TypeScript ESLint, native-preview, and jsdoc to latest versions
|
|
107
|
-
- **core.node**: improve generateIndexedKeyIfNeeded to accept object parameters and enhance key uniqueness with children
|
|
161
|
+
- **core.node**: improve generateIndexedKeyIfNeeded to accept object parameters and enhance key uniqueness with children
|
|
162
|
+
count
|
|
108
163
|
- **imports**: update import paths to include file extensions for compatibility
|
|
109
164
|
|
|
110
165
|
## [0.2.5] - 2025-09-03
|
|
@@ -114,6 +169,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
114
169
|
## [0.2.4] - 2025-09-02
|
|
115
170
|
|
|
116
171
|
### Added
|
|
172
|
+
|
|
117
173
|
- **core**: Exposed the original element via the created Node for easier access and debugging.
|
|
118
174
|
```typescript
|
|
119
175
|
import { createNode } from "@meonode/ui";
|
|
@@ -128,49 +184,61 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
128
184
|
## [0.2.3] - 2025-09-01
|
|
129
185
|
|
|
130
186
|
### Fixed
|
|
187
|
+
|
|
131
188
|
- **types**: Remove forbidden css import to resolve RSC error
|
|
132
189
|
|
|
133
190
|
### Changed
|
|
191
|
+
|
|
134
192
|
- **package**: Bump version to 0.2.3
|
|
135
193
|
|
|
136
194
|
## [0.2.2] - 2025-09-01
|
|
137
195
|
|
|
138
196
|
### Added
|
|
197
|
+
|
|
139
198
|
- **core**: Include nativeProps in props extraction for improved component flexibility
|
|
140
199
|
|
|
141
200
|
### Enhanced
|
|
201
|
+
|
|
142
202
|
- **types**: Enhance StyledRendererProps and FinalNodeProps for improved type safety
|
|
143
203
|
|
|
144
204
|
### Changed
|
|
205
|
+
|
|
145
206
|
- **package**: Bump version to 0.2.2
|
|
146
207
|
|
|
147
208
|
## [0.2.1] - 2025-09-01
|
|
148
209
|
|
|
149
210
|
### Changed
|
|
211
|
+
|
|
150
212
|
- **types**: Update CSS type from CSSObject to CSSInterpolation for better compatibility
|
|
151
213
|
- **package**: Bump version to 0.2.1
|
|
152
214
|
|
|
153
215
|
## [0.2.0] - 2025-08-31
|
|
154
216
|
|
|
155
217
|
### Added
|
|
218
|
+
|
|
156
219
|
- **docs**: Add badges for NPM version, license, and bundle size to README
|
|
157
220
|
|
|
158
221
|
### Enhanced
|
|
222
|
+
|
|
159
223
|
- **docs**: Update installation instructions and enhance clarity in core concepts
|
|
160
224
|
- **docs**: Enhance documentation with new examples and improved clarity
|
|
161
225
|
|
|
162
226
|
### Removed
|
|
227
|
+
|
|
163
228
|
- **package**: Remove deprecated hook entry from package.json
|
|
164
229
|
|
|
165
230
|
### Fixed
|
|
231
|
+
|
|
166
232
|
- **core.node**: Add suppressHydrationWarning to propsForCreateElement
|
|
167
233
|
|
|
168
234
|
### Changed
|
|
235
|
+
|
|
169
236
|
- **package**: Bump version to 0.2.0
|
|
170
237
|
|
|
171
238
|
## [0.1.121] - 2025-08-30
|
|
172
239
|
|
|
173
240
|
### Changed
|
|
241
|
+
|
|
174
242
|
- **core.node**: Simplify style resolution and improve prop handling
|
|
175
243
|
- **StyledRenderer**: Remove unused style prop and simplify component
|
|
176
244
|
- **package**: Bump version to 0.1.121
|
|
@@ -178,6 +246,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
178
246
|
## [0.1.120] - 2025-08-30
|
|
179
247
|
|
|
180
248
|
### Added
|
|
249
|
+
|
|
181
250
|
- **styles**: Add Emotion support and Next.js style registry integration
|
|
182
251
|
- Add @emotion/react and @emotion/cache dependencies
|
|
183
252
|
- Add StyledRenderer and StyleRegistry components for Emotion
|
|
@@ -185,37 +254,45 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
185
254
|
- Add nextjs-registry export for Next.js style registry
|
|
186
255
|
|
|
187
256
|
### Enhanced
|
|
257
|
+
|
|
188
258
|
- **core**: Enhance style handling with StyledRenderer for Emotion support
|
|
189
259
|
|
|
190
260
|
### Fixed
|
|
261
|
+
|
|
191
262
|
- **deps**: Update peerDependencies for Emotion and React to use version constraints
|
|
192
263
|
- **deps**: Update @types/react and @types/react-dom to latest versions
|
|
193
264
|
|
|
194
265
|
### Changed
|
|
266
|
+
|
|
195
267
|
- **package**: Update peerDependencies for @emotion/cache
|
|
196
268
|
- **package**: Bump version to 0.1.120
|
|
197
269
|
|
|
198
270
|
## [0.1.118] - 2025-08-30
|
|
199
271
|
|
|
200
272
|
### Fixed
|
|
273
|
+
|
|
201
274
|
- **deps**: Update peerDependencies for Emotion and React to use version constraints
|
|
202
275
|
|
|
203
276
|
### Changed
|
|
277
|
+
|
|
204
278
|
- **package**: Bump version to 0.1.118
|
|
205
279
|
|
|
206
280
|
## [0.1.117] - 2025-08-30
|
|
207
281
|
|
|
208
282
|
### Added
|
|
283
|
+
|
|
209
284
|
- **flexbox**: Improve default style resolution and add flex shorthand parser
|
|
210
285
|
- Add parseFlexShorthand to extract flex-grow, shrink, and basis
|
|
211
286
|
- Enhance resolveDefaultStyle to respect explicit flex/flexShrink values
|
|
212
287
|
- Improve handling of minHeight, minWidth, and flexShrink for flex items
|
|
213
288
|
|
|
214
289
|
### Enhanced
|
|
290
|
+
|
|
215
291
|
- **core**: Refine type of finalChildren for improved type safety
|
|
216
292
|
- **docs**: Update documentation for clarity on flexbox scrolling fixes
|
|
217
293
|
|
|
218
294
|
### Changed
|
|
295
|
+
|
|
219
296
|
- **core**: Move comments position for better readability
|
|
220
297
|
- **imports**: Remove .js extensions from internal imports
|
|
221
298
|
- **package**: Bump version to 0.1.117
|
|
@@ -223,6 +300,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
223
300
|
## [0.1.116] - 2025-08-27
|
|
224
301
|
|
|
225
302
|
### Changed
|
|
303
|
+
|
|
226
304
|
- **package**: Bump version to 0.1.116
|
|
227
305
|
|
|
228
306
|
---
|
|
@@ -233,17 +311,3 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
233
311
|
- The project focuses on building React UIs with type-safe fluency without JSX syntax
|
|
234
312
|
- Recent development has emphasized Emotion integration, type safety improvements, and enhanced flexbox support
|
|
235
313
|
- For a complete history, view all commits on GitHub: [View all commits](https://github.com/l7aromeo/meonode-ui/commits)
|
|
236
|
-
|
|
237
|
-
## Development Highlights
|
|
238
|
-
|
|
239
|
-
### Major Features Added
|
|
240
|
-
- **Emotion Support**: Complete integration with @emotion/react for CSS-in-JS styling
|
|
241
|
-
- **Next.js Integration**: Style registry support for server-side rendering
|
|
242
|
-
- **Enhanced Type Safety**: Improved TypeScript definitions and prop handling
|
|
243
|
-
- **Flexbox Enhancements**: Advanced flex shorthand parsing and default style resolution
|
|
244
|
-
|
|
245
|
-
### Core Improvements
|
|
246
|
-
- Better component flexibility with native props extraction
|
|
247
|
-
- Simplified style resolution and prop handling
|
|
248
|
-
- Enhanced documentation and examples
|
|
249
|
-
- Improved dependency management and version constraints
|