@meonode/ui 0.1.20 → 0.1.22
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 +196 -171
- package/dist/core.node.d.ts +34 -4
- package/dist/core.node.d.ts.map +1 -1
- package/dist/core.node.js +57 -41
- package/dist/html.node.d.ts +6 -0
- package/dist/html.node.d.ts.map +1 -1
- package/dist/html.node.js +4 -0
- package/dist/node.type.d.ts +3 -3
- package/dist/react-is.helper.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
[file name]: README.md
|
|
2
|
-
[file content begin]
|
|
3
1
|
# @meonode/ui
|
|
4
2
|
|
|
5
3
|
[](https://www.npmjs.com/package/@meonode/ui)
|
|
@@ -210,17 +208,18 @@ const LoginForm = Component(() =>
|
|
|
210
208
|
```tsx
|
|
211
209
|
'use client'
|
|
212
210
|
/**
|
|
213
|
-
* This file showcases the integration of React hooks with
|
|
211
|
+
* This file showcases the integration of React hooks with `@meonode/ui` components
|
|
214
212
|
* for building declarative user interfaces. It demonstrates different rendering
|
|
215
213
|
* approaches, the use of Higher-Order Components (HOCs), and how theme context
|
|
216
214
|
* is managed and propagated within the @meonode/ui component tree.
|
|
217
215
|
*/
|
|
218
|
-
import {
|
|
216
|
+
import { Button, Center, Column, Component, Fixed, Node, type NodeInstance, P, Portal, Row, type Theme } from '@meonode/ui'
|
|
219
217
|
import { useState, useEffect, ReactElement, ReactNode } from 'react'
|
|
220
218
|
import { CssBaseline, FormControlLabel, TextField } from '@meonode/mui'
|
|
221
219
|
import { Switch as MUISwitch } from '@mui/material'
|
|
222
220
|
import { styled } from '@mui/material'
|
|
223
221
|
|
|
222
|
+
// Styled Material UI Switch component for theme toggling
|
|
224
223
|
const MaterialUISwitch = styled(MUISwitch)(({ theme }) => ({
|
|
225
224
|
width: 62,
|
|
226
225
|
height: 34,
|
|
@@ -278,10 +277,8 @@ const MaterialUISwitch = styled(MUISwitch)(({ theme }) => ({
|
|
|
278
277
|
}))
|
|
279
278
|
|
|
280
279
|
/**
|
|
281
|
-
*
|
|
282
|
-
*
|
|
283
|
-
* theme string references (e.g., 'theme.primary') and the current theme mode is 'light'.
|
|
284
|
-
* In a larger application, this theme object would typically reside in a dedicated theme file.
|
|
280
|
+
* Light theme configuration containing color palette values.
|
|
281
|
+
* Used by `@meonode/ui` components when resolving theme references in light mode.
|
|
285
282
|
*/
|
|
286
283
|
const lightTheme: Theme = {
|
|
287
284
|
mode: 'light',
|
|
@@ -300,10 +297,8 @@ const lightTheme: Theme = {
|
|
|
300
297
|
}
|
|
301
298
|
|
|
302
299
|
/**
|
|
303
|
-
*
|
|
304
|
-
*
|
|
305
|
-
* when resolving theme string references, but specifically when the current theme
|
|
306
|
-
* mode is 'dark'.
|
|
300
|
+
* Dark theme configuration containing color palette values.
|
|
301
|
+
* Used by `@meonode/ui` components when resolving theme references in dark mode.
|
|
307
302
|
*/
|
|
308
303
|
const darkTheme: Theme = {
|
|
309
304
|
mode: 'dark',
|
|
@@ -322,29 +317,15 @@ const darkTheme: Theme = {
|
|
|
322
317
|
}
|
|
323
318
|
|
|
324
319
|
/**
|
|
325
|
-
*
|
|
326
|
-
*
|
|
327
|
-
*
|
|
328
|
-
* This function is wrapped by the `Component` HOC from `@meonode/ui`. The `Component`
|
|
329
|
-
* HOC transforms the function into a standard React component that returns a `ReactNode`,
|
|
330
|
-
* making it compatible with React's rendering lifecycle and enabling SSR/CSR.
|
|
320
|
+
* Main page component using React hooks for state management.
|
|
321
|
+
* Manages theme mode and visibility of additional content sections.
|
|
322
|
+
* Wrapped by `Component` HOC to ensure React compatibility and SSR/CSR support.
|
|
331
323
|
*/
|
|
332
324
|
export default Component(() => {
|
|
333
|
-
// State hook to control the visibility of additional content sections.
|
|
334
325
|
const [showMore, setShowDetails] = useState(false)
|
|
335
326
|
const [mode, setMode] = useState<'dark' | 'light'>('light')
|
|
336
327
|
const theme = mode === 'dark' ? darkTheme : lightTheme
|
|
337
328
|
|
|
338
|
-
/**
|
|
339
|
-
* The root of the UI tree is a `Column` component from `@meonode/ui`.
|
|
340
|
-
* This `Column` sets the theme context for its children.
|
|
341
|
-
* Its children include:
|
|
342
|
-
* - A theme toggle switch using MUI components wrapped in `@meonode/ui`'s `Node`.
|
|
343
|
-
* - A button to toggle the visibility of the detail sections.
|
|
344
|
-
* - Various examples demonstrating how to render components that return either
|
|
345
|
-
* `@meonode/ui` `Node` instances or `ReactNode`s, illustrating theme propagation
|
|
346
|
-
* both unconditionally and conditionally, highlighting theme propagation.
|
|
347
|
-
*/
|
|
348
329
|
return Column({
|
|
349
330
|
theme: theme.colors,
|
|
350
331
|
padding: 20,
|
|
@@ -353,8 +334,7 @@ export default Component(() => {
|
|
|
353
334
|
backgroundColor: 'theme.background',
|
|
354
335
|
color: 'theme.foreground',
|
|
355
336
|
children: [
|
|
356
|
-
CssBaseline,
|
|
357
|
-
// Theme toggle switch using MUI components wrapped with @meonode/ui's Node HOC.
|
|
337
|
+
CssBaseline,
|
|
358
338
|
Center({
|
|
359
339
|
children: FormControlLabel({
|
|
360
340
|
control: Node(MaterialUISwitch).render() as ReactElement,
|
|
@@ -365,165 +345,196 @@ export default Component(() => {
|
|
|
365
345
|
onChange: () => setMode(prev => (prev === 'dark' ? 'light' : 'dark')),
|
|
366
346
|
}),
|
|
367
347
|
}),
|
|
368
|
-
// Button to show modal.
|
|
369
348
|
Button('Show Modal', {
|
|
370
|
-
onClick: () => Modal({ theme }),
|
|
371
|
-
cursor: 'pointer',
|
|
372
|
-
userSelect: 'none',
|
|
349
|
+
onClick: () => Modal({ theme: theme.colors }),
|
|
350
|
+
cursor: 'pointer',
|
|
351
|
+
userSelect: 'none',
|
|
373
352
|
padding: '10px 20px',
|
|
374
|
-
backgroundColor: 'theme.primary',
|
|
353
|
+
backgroundColor: 'theme.primary',
|
|
375
354
|
borderRadius: 5,
|
|
376
355
|
fontWeight: 'bold',
|
|
377
356
|
color: 'white',
|
|
378
357
|
}),
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
userSelect: 'none', // Prevents text selection on the button.
|
|
358
|
+
Button(showMore ? 'Hide Details' : 'Show More Details', {
|
|
359
|
+
onClick: () => setShowDetails(prev => !prev),
|
|
360
|
+
cursor: 'pointer',
|
|
361
|
+
userSelect: 'none',
|
|
384
362
|
padding: '10px 20px',
|
|
385
|
-
backgroundColor: 'theme.accent',
|
|
363
|
+
backgroundColor: 'theme.accent',
|
|
386
364
|
borderRadius: 5,
|
|
387
365
|
fontWeight: 'bold',
|
|
388
366
|
color: 'white',
|
|
389
367
|
}),
|
|
390
368
|
|
|
391
369
|
/**
|
|
392
|
-
*
|
|
393
|
-
*
|
|
394
|
-
*
|
|
395
|
-
*
|
|
396
|
-
*
|
|
370
|
+
* Component rendering examples demonstrating theme context propagation:
|
|
371
|
+
* - Direct Node instance rendering
|
|
372
|
+
* - Rendered Node instances
|
|
373
|
+
* - ReactNode components
|
|
374
|
+
* - HOC usage patterns
|
|
397
375
|
*/
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
376
|
+
DetailComponent({
|
|
377
|
+
info: 'Detail 1: Rendering a component that returns a @meonode/ui Node instance directly. The internal Row component correctly receives theme context from the parent Column.',
|
|
378
|
+
}),
|
|
379
|
+
|
|
380
|
+
DetailComponent({
|
|
381
|
+
info: 'Detail 2: Rendering a component that returns a @meonode/ui Node instance, then calling .render(). The internal Row component also correctly receives theme context.',
|
|
382
|
+
}).render(),
|
|
401
383
|
|
|
402
|
-
//
|
|
403
|
-
//
|
|
404
|
-
DetailComponent({ info: 'Detail 2 (Node instance + .render())' }).render(),
|
|
384
|
+
// ❌ Fails: The Node HOC expects the wrapped function to return a ReactNode, not a @meonode/ui Node instance.
|
|
385
|
+
// Node(DetailComponent, { info: 'Detail 3: Attempting to wrap a component returning a Node instance with Node HOC.' }),
|
|
405
386
|
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
387
|
+
ReturnRenderedDetailComponent({
|
|
388
|
+
info: 'Detail 4: Rendering a component that explicitly returns a ReactNode (.render() is called internally). The internal Row component correctly receives theme context from the parent Column.',
|
|
389
|
+
}),
|
|
409
390
|
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
391
|
+
Node(ReturnRenderedDetailComponent, {
|
|
392
|
+
info: "Detail 5: Wrapping a component returning ReactNode with Node HOC (without .render()). Renders successfully. However, the Node HOC does NOT propagate theme context to the wrapped component's children.",
|
|
393
|
+
}),
|
|
413
394
|
|
|
414
|
-
// 5.
|
|
415
|
-
|
|
416
|
-
|
|
395
|
+
// TODO: This case seems redundant with #5. Re-evaluate if needed or if the description needs refinement.
|
|
396
|
+
Node(ReturnRenderedDetailComponent, {
|
|
397
|
+
info: 'Detail 6: Wrapping a component returning ReactNode with Node HOC, then calling .render(). Renders successfully. Theme context is NOT propagated by the Node HOC.',
|
|
398
|
+
}).render(),
|
|
417
399
|
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
400
|
+
WrappedDetailComponent({
|
|
401
|
+
info: 'Detail 7: Using Component HOC with Node instance returns. Theme context is correctly propagated.',
|
|
402
|
+
}),
|
|
421
403
|
|
|
422
404
|
/**
|
|
423
|
-
* Conditional rendering examples (
|
|
424
|
-
*
|
|
425
|
-
*
|
|
405
|
+
* Conditional rendering examples (visible when showMore is true)
|
|
406
|
+
* Demonstrates:
|
|
407
|
+
* - Inline function wrappers
|
|
408
|
+
* - Component HOC usage
|
|
409
|
+
* - Theme context propagation patterns
|
|
426
410
|
*/
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
showMore &&
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
411
|
+
showMore &&
|
|
412
|
+
(() =>
|
|
413
|
+
DetailComponent({
|
|
414
|
+
info: 'Detail 8: Conditional rendering of a Node instance component using inline function wrapper. Theme context is correctly received.',
|
|
415
|
+
})),
|
|
416
|
+
|
|
417
|
+
showMore &&
|
|
418
|
+
(() =>
|
|
419
|
+
DetailComponent({
|
|
420
|
+
info: 'Detail 9: Conditional rendering of a Node instance component with .render() call. Theme context is correctly propagated.',
|
|
421
|
+
}).render()),
|
|
422
|
+
|
|
423
|
+
showMore &&
|
|
424
|
+
WrappedDetailComponent({
|
|
425
|
+
info: 'Detail 10: Conditional rendering using Component HOC with Node instance. Theme context is correctly propagated.',
|
|
426
|
+
}),
|
|
427
|
+
|
|
428
|
+
showMore &&
|
|
429
|
+
(() =>
|
|
430
|
+
ReturnRenderedDetailComponent({
|
|
431
|
+
info: 'Detail 11: Conditional rendering of ReactNode component using inline function. Theme context is properly propagated.',
|
|
432
|
+
})),
|
|
433
|
+
|
|
434
|
+
showMore &&
|
|
435
|
+
Component(() =>
|
|
436
|
+
ReturnRenderedDetailComponent({
|
|
437
|
+
info: 'Detail 12: Conditional rendering with Component HOC wrapping ReactNode component. Note that theme context is not propagated in this case.',
|
|
438
|
+
}),
|
|
439
|
+
),
|
|
440
|
+
|
|
441
|
+
// showMore && ReturnRenderedDetailComponent({
|
|
442
|
+
// info: 'Detail 15: Direct component call violates Rules of Hooks!'
|
|
443
|
+
// }), // ❌ Fails: Direct call to a component function using hooks inside render logic without a React-aware wrapper.
|
|
447
444
|
],
|
|
448
445
|
})
|
|
449
446
|
})
|
|
450
447
|
|
|
451
448
|
/**
|
|
452
|
-
*
|
|
453
|
-
*
|
|
454
|
-
*
|
|
455
|
-
* component (like the main `Column` in this page).
|
|
456
|
-
*
|
|
457
|
-
* This component returns a @meonode/ui `Row` Node instance.
|
|
458
|
-
* This type of component is suitable for direct inclusion as a child within other
|
|
459
|
-
* `@meonode/ui` components that expect `Node` instances or arrays of `Node` instances.
|
|
460
|
-
* @param {object} props - Component properties.
|
|
461
|
-
* @param {string} props.info - Text content to display in the detail section.
|
|
462
|
-
* @returns {NodeInstance} A @meonode/ui Row Node instance.
|
|
449
|
+
* Styled detail section component returning a Node instance.
|
|
450
|
+
* Uses useEffect for lifecycle logging.
|
|
451
|
+
* Theme context is received from parent @meonode/ui components.
|
|
463
452
|
*/
|
|
464
453
|
const DetailComponent = ({ info }: { info: string }): NodeInstance => {
|
|
465
|
-
// useEffect hook for logging component mount and unmount phases (for debugging).
|
|
466
454
|
useEffect(() => {
|
|
467
|
-
console.log('DetailComponent mounted:', info)
|
|
455
|
+
console.log('DetailComponent mounted:', info)
|
|
468
456
|
return () => {
|
|
469
|
-
console.log('DetailComponent unmounted:', info)
|
|
457
|
+
console.log('DetailComponent unmounted:', info)
|
|
470
458
|
}
|
|
471
|
-
}, [info])
|
|
459
|
+
}, [info])
|
|
472
460
|
|
|
473
|
-
// Returns a @meonode/ui Row Node instance configured with props and children.
|
|
474
|
-
// Its styling (e.g., backgroundColor) will resolve theme strings from React context.
|
|
475
461
|
return Row({
|
|
476
462
|
alignItems: 'center',
|
|
477
463
|
gap: 10,
|
|
478
464
|
padding: 4,
|
|
479
465
|
border: '2px solid theme.accent',
|
|
480
466
|
borderRadius: 6,
|
|
481
|
-
backgroundColor: 'theme.warning',
|
|
467
|
+
backgroundColor: 'theme.warning',
|
|
482
468
|
color: 'theme.danger',
|
|
483
469
|
children: [P(info, { flex: 1, padding: '0 20px' }), TextField({ flex: 1, sx: { background: 'theme.primary' } })],
|
|
484
470
|
})
|
|
485
471
|
}
|
|
486
472
|
|
|
487
473
|
/**
|
|
488
|
-
*
|
|
489
|
-
* to
|
|
490
|
-
*
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
474
|
+
* Styled detail section component wrapped with Component HOC.
|
|
475
|
+
* Similar to DetailComponent but demonstrates HOC pattern.
|
|
476
|
+
* Theme context is correctly propagated through the HOC.
|
|
477
|
+
*/
|
|
478
|
+
const WrappedDetailComponent = Component(({ info }): NodeInstance => {
|
|
479
|
+
useEffect(() => {
|
|
480
|
+
console.log('DetailComponent mounted')
|
|
481
|
+
return () => {
|
|
482
|
+
console.log('DetailComponent unmounted')
|
|
483
|
+
}
|
|
484
|
+
}, [info])
|
|
485
|
+
|
|
486
|
+
return Row({
|
|
487
|
+
alignItems: 'center',
|
|
488
|
+
gap: 10,
|
|
489
|
+
padding: 4,
|
|
490
|
+
border: '2px solid theme.accent',
|
|
491
|
+
borderRadius: 6,
|
|
492
|
+
backgroundColor: 'theme.warning',
|
|
493
|
+
color: 'theme.danger',
|
|
494
|
+
children: [P(info, { flex: 1, padding: '0 20px' }), TextField({ flex: 1, sx: { background: 'theme.primary' } })],
|
|
495
|
+
})
|
|
496
|
+
})
|
|
497
|
+
|
|
498
|
+
/**
|
|
499
|
+
* Alternative detail component implementation returning ReactNode.
|
|
500
|
+
* Explicitly calls .render() for React compatibility.
|
|
501
|
+
* Demonstrates theme context usage with standard React patterns.
|
|
499
502
|
*/
|
|
500
503
|
const ReturnRenderedDetailComponent = ({ info }: { info: string }): ReactNode => {
|
|
501
|
-
// useEffect hook for logging component mount and unmount phases (for debugging).
|
|
502
504
|
useEffect(() => {
|
|
503
|
-
console.log('ReturnRenderedDetailComponent mounted
|
|
505
|
+
console.log('ReturnRenderedDetailComponent mounted')
|
|
504
506
|
return () => {
|
|
505
|
-
console.log('ReturnRenderedDetailComponent unmounted
|
|
507
|
+
console.log('ReturnRenderedDetailComponent unmounted')
|
|
506
508
|
}
|
|
507
|
-
}, [info])
|
|
509
|
+
}, [info])
|
|
508
510
|
|
|
509
|
-
// Constructs a @meonode/ui Row and immediately calls .render() on it.
|
|
510
|
-
// The Row itself will attempt to resolve theme strings (e.g., 'theme.background.secondary')
|
|
511
|
-
// from the React context provided by an ancestor @meonode/ui component (like the main Column).
|
|
512
511
|
return Row({
|
|
513
512
|
alignItems: 'center',
|
|
514
513
|
gap: 10,
|
|
515
514
|
padding: 4,
|
|
516
515
|
border: '2px solid theme.accent',
|
|
517
516
|
borderRadius: 6,
|
|
518
|
-
backgroundColor: 'theme.warning',
|
|
517
|
+
backgroundColor: 'theme.warning',
|
|
519
518
|
color: 'theme.danger',
|
|
520
519
|
children: [P(info, { flex: 1, padding: '0 20px' }), TextField({ flex: 1, sx: { background: 'theme.primary' } })],
|
|
521
|
-
}).render()
|
|
520
|
+
}).render()
|
|
522
521
|
}
|
|
523
522
|
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
523
|
+
/**
|
|
524
|
+
* Modal component using Portal HOC for DOM placement.
|
|
525
|
+
* Demonstrates theme-aware content rendering outside main hierarchy.
|
|
526
|
+
* Includes nested modal support and Material UI integration.
|
|
527
|
+
*/
|
|
528
|
+
const Modal = Portal(({ theme, portal }) => {
|
|
529
|
+
useEffect(() => {
|
|
530
|
+
console.log('Modal mounted')
|
|
531
|
+
return () => {
|
|
532
|
+
console.log('Modal unmounted')
|
|
533
|
+
}
|
|
534
|
+
}, [])
|
|
535
|
+
|
|
536
|
+
return Fixed({
|
|
537
|
+
theme,
|
|
527
538
|
top: 0,
|
|
528
539
|
left: 0,
|
|
529
540
|
right: 0,
|
|
@@ -534,50 +545,62 @@ const Modal = ({ theme }: { theme: Theme }) => {
|
|
|
534
545
|
alignItems: 'center',
|
|
535
546
|
onClick: e => {
|
|
536
547
|
if (e.target === e.currentTarget) {
|
|
537
|
-
|
|
548
|
+
portal.unmount()
|
|
538
549
|
}
|
|
539
550
|
},
|
|
540
|
-
children:
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
551
|
+
children: [
|
|
552
|
+
Column({
|
|
553
|
+
width: '50%',
|
|
554
|
+
height: '80%',
|
|
555
|
+
backgroundColor: 'theme.background',
|
|
556
|
+
borderRadius: '8px',
|
|
557
|
+
boxShadow: '0 4px 6px rgba(0, 0, 0, 0.1)',
|
|
558
|
+
padding: 10,
|
|
559
|
+
gap: 10,
|
|
560
|
+
color: 'theme.foreground',
|
|
561
|
+
children: [
|
|
562
|
+
Button('More Modal', {
|
|
563
|
+
onClick: () => Modal({ theme }),
|
|
564
|
+
cursor: 'pointer',
|
|
565
|
+
userSelect: 'none',
|
|
566
|
+
padding: '10px 20px',
|
|
567
|
+
backgroundColor: 'theme.primary',
|
|
568
|
+
borderRadius: 5,
|
|
569
|
+
fontWeight: 'bold',
|
|
570
|
+
color: 'white',
|
|
571
|
+
}),
|
|
572
|
+
Center({ fontWeight: 'bold', children: 'Modal' }),
|
|
573
|
+
Center({ children: Math.random() * 1000 }),
|
|
574
|
+
TextField({
|
|
575
|
+
sx: {
|
|
576
|
+
'& .MuiFormLabel-root': {
|
|
557
577
|
color: 'theme.foreground',
|
|
578
|
+
'&.Mui-focused': {
|
|
579
|
+
color: 'theme.foreground',
|
|
580
|
+
},
|
|
558
581
|
},
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
582
|
+
'& .MuiOutlinedInput-root': {
|
|
583
|
+
color: 'theme.foreground',
|
|
584
|
+
'& fieldset': {
|
|
585
|
+
borderColor: 'theme.foreground',
|
|
586
|
+
},
|
|
587
|
+
'&:hover fieldset': {
|
|
588
|
+
borderColor: 'theme.foreground',
|
|
589
|
+
},
|
|
590
|
+
'&.Mui-focused fieldset': {
|
|
591
|
+
borderColor: 'theme.foreground',
|
|
592
|
+
},
|
|
593
|
+
borderRadius: 2,
|
|
570
594
|
},
|
|
571
|
-
borderRadius: 2,
|
|
572
595
|
},
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
})
|
|
580
|
-
}
|
|
596
|
+
label: 'Hello',
|
|
597
|
+
fullWidth: true,
|
|
598
|
+
}),
|
|
599
|
+
],
|
|
600
|
+
}),
|
|
601
|
+
],
|
|
602
|
+
})
|
|
603
|
+
})
|
|
581
604
|
```
|
|
582
605
|
|
|
583
606
|
---
|
|
@@ -586,10 +609,12 @@ const Modal = ({ theme }: { theme: Theme }) => {
|
|
|
586
609
|
|
|
587
610
|
### Core Functions
|
|
588
611
|
|
|
589
|
-
| Function | Parameters
|
|
590
|
-
|
|
591
|
-
| `Node` | `element:
|
|
592
|
-
| `Component` | `(props: P) =>
|
|
612
|
+
| Function | Parameters | Description |
|
|
613
|
+
|-------------|--------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|
|
|
614
|
+
| `Node` | `element: NodeElement \| React.ComponentType`, `baseProps: object` | Constructs a configurable UI node that supports flexible properties and dynamic styling. |
|
|
615
|
+
| `Component` | `(props: P) => ComponentNode` | Transforms node trees into reusable React components with built-in type safety and seamless integration. |
|
|
616
|
+
| `Portal` | `(props: P) => ComponentNode` | Converts node trees to React components and renders them in a React Portal with advanced DOM placement. |
|
|
617
|
+
|
|
|
593
618
|
|
|
594
619
|
---
|
|
595
620
|
|
package/dist/core.node.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import type { ComponentNode, NodeElement, NodeInstance, NodeProps, Theme } from './node.type.js';
|
|
3
|
+
import { type Root as ReactDOMRoot } from 'react-dom/client';
|
|
3
4
|
/**
|
|
4
5
|
* Factory function to create a BaseNode instance.
|
|
5
6
|
* @param element The React element type.
|
|
@@ -16,7 +17,7 @@ export declare function Node<E extends NodeElement>(element: E, props?: Partial<
|
|
|
16
17
|
* - Handles theme inheritance and merging
|
|
17
18
|
* - Preserves component props
|
|
18
19
|
* - Type-safe with generic prop types
|
|
19
|
-
* @template
|
|
20
|
+
* @template P - The props type for the wrapped component
|
|
20
21
|
* @param component Component function that returns a BaseNode or ReactNode
|
|
21
22
|
* @returns A React function component that handles BaseNode conversion and theme propagation
|
|
22
23
|
* @example
|
|
@@ -29,7 +30,36 @@ export declare function Node<E extends NodeElement>(element: E, props?: Partial<
|
|
|
29
30
|
* })
|
|
30
31
|
* ```
|
|
31
32
|
*/
|
|
32
|
-
export declare function Component<
|
|
33
|
+
export declare function Component<P extends Record<string, any> & {
|
|
33
34
|
theme?: Theme;
|
|
34
|
-
}>(component: (props:
|
|
35
|
+
}>(component: (props: P) => ComponentNode): (props?: any) => React.ReactNode;
|
|
36
|
+
/**
|
|
37
|
+
* Creates a portal wrapper component for rendering content outside the normal DOM hierarchy.
|
|
38
|
+
* Portals are useful for rendering modals, tooltips, and other overlays that need to break out
|
|
39
|
+
* of their parent container's DOM structure while maintaining React context and event bubbling.
|
|
40
|
+
*
|
|
41
|
+
* Key features:
|
|
42
|
+
* - Renders content to a separate DOM node outside the parent hierarchy
|
|
43
|
+
* - Maintains theme inheritance through the portal
|
|
44
|
+
* - Provides portal instance with unmount control
|
|
45
|
+
* - Automatically cleans up DOM nodes on unmount
|
|
46
|
+
* @template P Props type for the wrapped component including theme and portal instance
|
|
47
|
+
* @param component Component function that returns portal content
|
|
48
|
+
* @returns Function that creates and manages the portal instance
|
|
49
|
+
* @example
|
|
50
|
+
* ```ts
|
|
51
|
+
* const Modal = Portal(({ portal }) => {
|
|
52
|
+
* return Div({
|
|
53
|
+
* onClick: () => portal.unmount(),
|
|
54
|
+
* children: "Click to close"
|
|
55
|
+
* })
|
|
56
|
+
* })
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export declare function Portal<P extends Record<string, any> & {
|
|
60
|
+
theme?: Theme;
|
|
61
|
+
portal: {
|
|
62
|
+
unmount: () => void;
|
|
63
|
+
};
|
|
64
|
+
}>(component: (props: P) => ComponentNode): (props?: any) => ReactDOMRoot | null;
|
|
35
65
|
//# sourceMappingURL=core.node.d.ts.map
|
package/dist/core.node.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.node.d.ts","sourceRoot":"","sources":["../src/core.node.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"core.node.d.ts","sourceRoot":"","sources":["../src/core.node.ts"],"names":[],"mappings":"AACA,OAAO,KAAyG,MAAM,OAAO,CAAA;AAC7H,OAAO,KAAK,EAAE,aAAa,EAAyC,WAAW,EAAE,YAAY,EAAE,SAAS,EAAgB,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAGxJ,OAAO,EAAc,KAAK,IAAI,IAAI,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAqbxE;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,GAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAU1G;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,aAAa,IAiBzG,QAAO,GAAQ,qBACxB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,MAAM,CACpB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;IAC9B,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAA;CAChC,EACD,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,aAAa,IAe9B,QAAO,GAAQ,yBAIxB"}
|
package/dist/core.node.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var _excluded=["children","
|
|
1
|
+
"use strict";var _excluded=["children","nodetheme","theme"],_excluded2=["style"],_excluded3=["children","key"];function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function _objectWithoutProperties(a,b){if(null==a)return{};var c,d,e=_objectWithoutPropertiesLoose(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],-1===b.indexOf(c)&&{}.propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}function _objectWithoutPropertiesLoose(a,b){if(null==a)return{};var c={};for(var d in a)if({}.hasOwnProperty.call(a,d)){if(-1!==b.indexOf(d))continue;c[d]=a[d]}return c}function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _classCallCheck(b,a){if(!(b instanceof a))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,_toPropertyKey(c.key),c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),Object.defineProperty(a,"prototype",{writable:!1}),a}function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==_typeof(b)?b:b+""}function _toPrimitive(a,b){if("object"!=_typeof(a)||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=_typeof(d))return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}import React,{createElement,isValidElement}from"react";import{getComponentType,getCSSProps,getDOMProps,getElementTypeName,getValueByPath}from"./node.helper.js";import{isForwardRef,isMemo,isReactClassComponent,isValidElementType}from"./react-is.helper.js";import{createRoot}from"react-dom/client";/**
|
|
2
2
|
* Represents a node in a React component tree with theme and styling capabilities.
|
|
3
3
|
* This class wraps React elements and handles:
|
|
4
4
|
* - Props processing and normalization
|
|
@@ -14,30 +14,31 @@
|
|
|
14
14
|
* - Normalizing children with theme inheritance
|
|
15
15
|
* @param element The React element/component to wrap
|
|
16
16
|
* @param rawProps Initial props including theme, styles, and children
|
|
17
|
-
*/function BaseNode(a){var b=this,c=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};_classCallCheck(this,BaseNode),_defineProperty(this,"_portalDOMElement",null),_defineProperty(this,"_portalReactRoot",null),_defineProperty(this,"_normalizeChild",function(a){var c,d;if(!a)return a;var e=(null===(c=b.rawProps)||void 0===c?void 0:c.
|
|
18
|
-
if(a instanceof BaseNode){var f;return null!==(f=a.rawProps)&&void 0!==f&&f.
|
|
19
|
-
if(a instanceof React.Component)return a.props.
|
|
17
|
+
*/function BaseNode(a){var b=this,c=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};_classCallCheck(this,BaseNode),_defineProperty(this,"_portalDOMElement",null),_defineProperty(this,"_portalReactRoot",null),_defineProperty(this,"_normalizeChild",function(a){var c,d;if(!a)return a;var e=(null===(c=b.rawProps)||void 0===c?void 0:c.nodetheme)||(null===(d=b.rawProps)||void 0===d?void 0:d.theme)||b.props.nodetheme||b.props.theme;// For BaseNode instances, apply current theme if child has no theme
|
|
18
|
+
if(a instanceof BaseNode){var f;return null!==(f=a.rawProps)&&void 0!==f&&f.nodetheme||void 0===e?a.render():new BaseNode(a.element,_objectSpread(_objectSpread({},a.rawProps),{},{nodetheme:e})).render()}// For React.Component instances, wrap in BaseNode with theme if needed
|
|
19
|
+
if(a instanceof React.Component)return a.props.nodetheme||void 0===e?a.render():new BaseNode(a.render(),_objectSpread(_objectSpread({},a.props),{},{nodetheme:e})).render();// Validate element type before returning
|
|
20
20
|
if(!isValidElementType(a)){var g=getComponentType(a);throw new Error("Invalid element type: ".concat(g," provided!"))}// Return valid React elements as-is
|
|
21
21
|
return a}),this.element=a,this.rawProps=c;// Destructure raw props into relevant parts
|
|
22
|
-
var d=c.children,e=c.
|
|
22
|
+
var d=c.children,e=c.nodetheme,f=c.theme,g=_objectWithoutProperties(c,_excluded),h=f||e,i=this._resolveObjWithTheme(g,h),j=getCSSProps(i),k=getDOMProps(i),l=void 0;// Resolve any theme variables in the remaining props
|
|
23
23
|
// Extract style-related props that match valid CSS properties
|
|
24
24
|
// Extract remaining props that are valid DOM attributes
|
|
25
25
|
// Process children while maintaining theme inheritance
|
|
26
26
|
// Combine processed props into final normalized form
|
|
27
|
-
d&&(Array.isArray(d)?
|
|
27
|
+
d&&(Array.isArray(d)?l=d.map(function(a,c){return b._processRawNode(a,h,c)}):l=this._processRawNode(d,h)),this.props=_objectSpread(_objectSpread({},k),{},{style:j,nodetheme:h,theme:f,children:l})}/**
|
|
28
28
|
* Resolves obj properties by replacing theme path placeholders with actual theme values.
|
|
29
29
|
* Handles complex strings like '1px solid theme.background.primary' and nested objects.
|
|
30
30
|
* @param obj The initial obj properties object.
|
|
31
31
|
* @param theme The theme object to use for resolving paths.
|
|
32
32
|
* @returns A new CSSProperties object with theme values resolved.
|
|
33
33
|
*/return _createClass(BaseNode,[{key:"_resolveObjWithTheme",value:function _resolveObjWithTheme(a,b){var c;// Return early if no theme or empty object
|
|
34
|
-
if(!b||0===Object.keys(a).length)return a;// Merge raw
|
|
35
|
-
var d=_objectSpread(_objectSpread({},null===(c=this.rawProps)||void 0===c?void 0:c.
|
|
36
|
-
for(var c in a){var f=a[c];if(c.startsWith("_"))return a;//
|
|
34
|
+
if(!b||0===Object.keys(a).length)return a;// Merge raw nodetheme with passed theme for resolution
|
|
35
|
+
var d=_objectSpread(_objectSpread({},null===(c=this.rawProps)||void 0===c?void 0:c.nodetheme),b),e=function resolveRecursively(a){var b={};// Process each property in the current object
|
|
36
|
+
for(var c in a){var f=a[c];if(c.startsWith("_"))return a;// Hack to pass Next.js shitty error caused by Turbopack development thingy
|
|
37
|
+
// Handle string values containing theme references
|
|
37
38
|
if("string"==typeof f&&f.includes("theme.")){var g=f;// Replace theme path placeholders with actual theme values
|
|
38
39
|
g=g.replace(/theme\.([a-zA-Z0-9_.-]+)/g,function(a,b){var c=getValueByPath(d,b);// Convert the theme value to string if it exists and is a valid type
|
|
39
40
|
return null!=c&&["string","number"].includes(_typeof(c))?c+"":a}),b[c]=g}// Recursively process nested objects (excluding arrays)
|
|
40
|
-
else b[c]=f&&"object"===_typeof(f)?e(f):f}return b};/**
|
|
41
|
+
else b[c]=f&&"object"===_typeof(f)&&!Array.isArray(f)?e(f):f}return b};/**
|
|
41
42
|
* Recursively resolves theme values in an object
|
|
42
43
|
* @param currentObj The current object level being processed
|
|
43
44
|
* @returns New object with resolved theme values
|
|
@@ -52,11 +53,11 @@ else b[c]=f&&"object"===_typeof(f)?e(f):f}return b};/**
|
|
|
52
53
|
* @param props.passedTheme The theme to provide to the child, if applicable.
|
|
53
54
|
* @returns The rendered ReactNode, with theme applied if necessary.
|
|
54
55
|
*/},{key:"_functionRenderer",value:function _functionRenderer(a){var b=a.render,c=a.passedTheme,d=a.passedKey,e=a.processRawNode,f=b();// Call the user-provided render function to get the child.
|
|
55
|
-
if(f instanceof React.Component){var g=f.render(),h=e(g,c);
|
|
56
|
+
if(f instanceof React.Component){var g=f.render(),h=e(g,c);if(h instanceof BaseNode){var i,j;if(((null===(i=h.rawProps)||void 0===i?void 0:i.theme)||(null===(j=h.rawProps)||void 0===j?void 0:j.nodetheme))===void 0&&c!==void 0){var k,l,m;return new BaseNode(h.element,_objectSpread(_objectSpread({},h.rawProps),{},{nodetheme:(null===(k=h.rawProps)||void 0===k?void 0:k.theme)||(null===(l=h.rawProps)||void 0===l?void 0:l.nodetheme)||c,key:(null===(m=h.rawProps)||void 0===m?void 0:m.key)||d})).render()}}return h}if(f instanceof BaseNode){var n,o=f;// If the returned BaseNode does not have its own theme, but a theme is provided,
|
|
56
57
|
// re-create the node with the provided theme to ensure correct theme propagation.
|
|
57
|
-
return void 0===(null===(
|
|
58
|
+
return void 0===(null===(n=o.rawProps)||void 0===n?void 0:n.nodetheme)&&void 0!==c?new BaseNode(o.element,_objectSpread(_objectSpread({},o.rawProps||{}),{},{nodetheme:c,key:d})).render():o.render();// If the node already has a theme or no theme is provided, render as-is.
|
|
58
59
|
}// Process the result if it's not a React.Component or BaseNode
|
|
59
|
-
var
|
|
60
|
+
var p=e(f,c);if(p instanceof BaseNode){var q,r,s;return new BaseNode(p.element,_objectSpread(_objectSpread({},p.rawProps),{},{nodetheme:(null===(q=p.rawProps)||void 0===q?void 0:q.theme)||(null===(r=p.rawProps)||void 0===r?void 0:r.nodetheme)||c,key:(null===(s=p.rawProps)||void 0===s?void 0:s.key)||d})).render()}// If the result is not a BaseNode (e.g., JSX, string, etc.), return it directly.
|
|
60
61
|
// Note: Non-BaseNode results will not automatically receive the theme.
|
|
61
62
|
return f}/**
|
|
62
63
|
* Processes a single raw child element, converting it into a ProcessedChild.
|
|
@@ -72,9 +73,9 @@ return"".concat(d,"-").concat(c)}// No explicit key, and not an array child, so
|
|
|
72
73
|
};// Determine the type of the raw node
|
|
73
74
|
// Helper to generate an indexed key if no explicit key is present and an index is available.
|
|
74
75
|
// Case 1: Child is already a BaseNode instance
|
|
75
|
-
if(a instanceof BaseNode){var f=a,g=f.rawProps||{},h=g.
|
|
76
|
+
if(a instanceof BaseNode){var f=a,g=f.rawProps||{},h=g.theme||g.nodetheme||b,i=e(f.element,g.key);// Get initial raw props of the child
|
|
76
77
|
// Prefer child's own theme
|
|
77
|
-
return new BaseNode(f.element,_objectSpread(_objectSpread({},g),{},{
|
|
78
|
+
return new BaseNode(f.element,_objectSpread(_objectSpread({},g),{},{nodetheme:h,// Use the determined theme for the new node
|
|
78
79
|
key:i}));// Create a new BaseNode with merged props and theme
|
|
79
80
|
}// Case 2: Child is a primitive (string, number, boolean, null, undefined)
|
|
80
81
|
if("string"===d||"number"===d||"boolean"===d||null===a||void 0===a)return a;// Case 3: Child is a function that needs to be called during render (FunctionRenderer).
|
|
@@ -83,18 +84,14 @@ if("function"===d&&!isReactClassComponent(a)&&!isMemo(a)&&!isForwardRef(a)){// T
|
|
|
83
84
|
var j=e(this._functionRenderer,void 0);// Generate key for function renderer
|
|
84
85
|
return new BaseNode(this._functionRenderer,{processRawNode:this._processRawNode.bind(this),render:a,passedTheme:b,key:j// Assign the generated key
|
|
85
86
|
})}// Case 4: Child is a React Element (JSX element like <div> or <MyComponent>)
|
|
86
|
-
if(isValidElement(a)){var k,l=_objectSpread({},a.
|
|
87
|
-
|
|
88
|
-
//
|
|
89
|
-
var m=(null===(k=l)||void 0===k?void 0:k.nodeTheme)||b,n=e(a.type,a.key);// For array children without keys, generate a stable key from element type and index
|
|
90
|
-
// Create a new BaseNode instance with processed props and theme
|
|
91
|
-
return new BaseNode(a.type,_objectSpread(_objectSpread({},l),{},{nodeTheme:m,key:n// Assign the generated key
|
|
92
|
-
}))}// Case 5: Child is an ElementType (string tag, class component, Memo/ForwardRef)
|
|
87
|
+
if(isValidElement(a)){var k=a.props,l=k.style,m=_objectWithoutProperties(k,_excluded2),n=_objectSpread(_objectSpread({},m),l||{}),o=n.theme||n.nodetheme||b,p=e(a.type,a.key);// Combine top-level props from the element with its flattened style object properties
|
|
88
|
+
return new BaseNode(a.type,_objectSpread(_objectSpread({},n),{},{// Pass the combined props
|
|
89
|
+
nodetheme:o,key:p}))}// Case 5: Child is an ElementType (string tag, class component, Memo/ForwardRef)
|
|
93
90
|
if(isReactClassComponent(a)||"object"===d&&(isMemo(a)||isForwardRef(a))){// ElementTypes don't have an intrinsic key from the rawNode itself.
|
|
94
|
-
var
|
|
95
|
-
key:
|
|
96
|
-
if(a instanceof React.Component){var
|
|
97
|
-
return this._processRawNode(
|
|
91
|
+
var q=e(a,void 0);return new BaseNode(a,{nodetheme:b,// Apply parent theme
|
|
92
|
+
key:q})}// Case 6: Handle instances of React.Component
|
|
93
|
+
if(a instanceof React.Component){var r=a.render();// Recursively process the rendered element with a parent theme and index if available
|
|
94
|
+
return this._processRawNode(r,b,c)}// Case 7: Fallback for other ReactNode types (e.g., Fragments, Portals if not caught by isValidElement)
|
|
98
95
|
// These are returned as-is. If they are elements within an array, React expects them to have keys.
|
|
99
96
|
// This logic primarily adds keys to BaseNode instances we create, other ReactNodes are returned as-is.
|
|
100
97
|
return a}/**
|
|
@@ -114,24 +111,24 @@ return a}/**
|
|
|
114
111
|
* Converts this BaseNode instance into a renderable React node.
|
|
115
112
|
* Recursively processes child nodes and uses `React.createElement` to construct the final React element.
|
|
116
113
|
* @returns A ReactNode representing the rendered element.
|
|
117
|
-
*/function render(){if(!isValidElementType(this.element)){var
|
|
114
|
+
*/function render(){var a=this;if(!isValidElementType(this.element)){var b=getComponentType(this.element);throw new Error("Invalid element type: ".concat(b," provided!"))}var c=this.props,d=c.children,e=c.key,f=_objectWithoutProperties(c,_excluded3),g=void 0;// Extract children and key
|
|
118
115
|
// More accurate type
|
|
119
|
-
if(void 0
|
|
116
|
+
if(d!==void 0&&null!==d)if(!Array.isArray(d))// Single child
|
|
117
|
+
g=this._normalizeChild(d);else if(0<d.length){var h=d.map(function(b){return a._normalizeChild(b)});// Normalize each child in the array
|
|
120
118
|
// Check if all children are null/undefined (e.g., conditional rendering resulted in nothing)
|
|
121
|
-
|
|
122
|
-
var
|
|
123
|
-
key:
|
|
119
|
+
g=h.every(function(a){return null===a||void 0===a})?void 0:h}else g=void 0;// Prepare props for React.createElement
|
|
120
|
+
var i=_objectSpread(_objectSpread({},f),{},{// Cast otherProps
|
|
121
|
+
key:e// This is the key of the current BaseNode itself
|
|
124
122
|
});// Prepare props for React.createElement
|
|
125
|
-
|
|
126
|
-
return delete h.nodeTheme,createElement(this.element,h,f)}},{key:"_ensurePortalInfrastructure",value:function _ensurePortalInfrastructure(){if("undefined"==typeof window)return!1;if(this._portalDOMElement&&this._portalReactRoot)return!0;if(this._portalDOMElement&&!this._portalDOMElement.isConnected&&(this._portalDOMElement=null,this._portalDOMElement=null),this._portalDOMElement||(this._portalDOMElement=document.createElement("div"),document.body.appendChild(this._portalDOMElement)),!this._portalReactRoot){if(!this._portalDOMElement)return!1;this._portalReactRoot=createRoot(this._portalDOMElement)}return!0}},{key:"toPortal",value:function toPortal(){var a=this;if(!this._ensurePortalInfrastructure()||!this._portalReactRoot)return null;var b=this.render();return this._portalReactRoot.render(b),_objectSpread(_objectSpread({},this._portalReactRoot),{},{unmount:function unmount(){a._portalReactRoot&&(a._portalReactRoot.unmount(),a._portalReactRoot=null),a._portalDOMElement&&(a._portalDOMElement.parentNode&&a._portalDOMElement.parentNode.removeChild(a._portalDOMElement),a._portalDOMElement=null)}})}}])}();/**
|
|
123
|
+
return createElement(this.element,i,g)}},{key:"_ensurePortalInfrastructure",value:function _ensurePortalInfrastructure(){if("undefined"==typeof window)return!1;if(this._portalDOMElement&&this._portalReactRoot)return!0;if(this._portalDOMElement&&!this._portalDOMElement.isConnected&&(this._portalDOMElement=null,this._portalDOMElement=null),this._portalDOMElement||(this._portalDOMElement=document.createElement("div"),document.body.appendChild(this._portalDOMElement)),!this._portalReactRoot){if(!this._portalDOMElement)return!1;this._portalReactRoot=createRoot(this._portalDOMElement)}return!0}},{key:"toPortal",value:function toPortal(){var a=this;if(!this._ensurePortalInfrastructure()||!this._portalReactRoot)return null;var b=this.render();return this._portalReactRoot.render(b),_objectSpread(_objectSpread({},this._portalReactRoot),{},{unmount:function unmount(){a._portalReactRoot&&(a._portalReactRoot.unmount(),a._portalReactRoot=null),a._portalDOMElement&&(a._portalDOMElement.parentNode&&a._portalDOMElement.parentNode.removeChild(a._portalDOMElement),a._portalDOMElement=null)}})}}])}();/**
|
|
127
124
|
* Factory function to create a BaseNode instance.
|
|
128
125
|
* @param element The React element type.
|
|
129
126
|
* @param props The props for the node.
|
|
130
127
|
* @returns NodeInstance<E> - A new BaseNode instance.
|
|
131
128
|
*/export function Node(a){var b=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},c=_objectSpread({},b);// Ensure we are working with a mutable copy
|
|
132
|
-
// 'theme' prop itself is not directly used by BaseNode after this,
|
|
129
|
+
// 'theme' prop itself is not directly used by BaseNode after this, nodetheme is used.
|
|
133
130
|
// We can keep `theme` in rawProps if needed for cloning or inspection.
|
|
134
|
-
return c.theme
|
|
131
|
+
return c.theme&&!c.nodetheme&&(c.nodetheme=c.theme),new BaseNode(a,c)}/**
|
|
135
132
|
* Higher-order component wrapper that converts BaseNode components into React components.
|
|
136
133
|
* This wrapper ensures proper theme propagation and component rendering in the React ecosystem.
|
|
137
134
|
*
|
|
@@ -140,7 +137,7 @@ return c.theme&&void 0===c.nodeTheme&&(c.nodeTheme=c.theme),new BaseNode(a,c)}/*
|
|
|
140
137
|
* - Handles theme inheritance and merging
|
|
141
138
|
* - Preserves component props
|
|
142
139
|
* - Type-safe with generic prop types
|
|
143
|
-
* @template
|
|
140
|
+
* @template P - The props type for the wrapped component
|
|
144
141
|
* @param component Component function that returns a BaseNode or ReactNode
|
|
145
142
|
* @returns A React function component that handles BaseNode conversion and theme propagation
|
|
146
143
|
* @example
|
|
@@ -153,9 +150,28 @@ return c.theme&&void 0===c.nodeTheme&&(c.nodeTheme=c.theme),new BaseNode(a,c)}/*
|
|
|
153
150
|
* })
|
|
154
151
|
* ```
|
|
155
152
|
*/export function Component(a){// Create a wrapper component that handles theme and rendering
|
|
156
|
-
|
|
153
|
+
var b=function renderer(){var b=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{},c=a(b);// Execute wrapped component
|
|
157
154
|
// Handle BaseNode results - requires special processing
|
|
158
|
-
if(c instanceof BaseNode){var d,e
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
155
|
+
if(c instanceof BaseNode){var d,e,f=(null===(d=c.rawProps)||void 0===d?void 0:d.nodetheme)||(null===(e=c.rawProps)||void 0===e?void 0:e.theme)||b.nodetheme||b.theme;return Node(c.element,_objectSpread(_objectSpread({},c.rawProps),{},{nodetheme:f})).render()}return c};return function(){var a=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};return Node(b,a).render()}}/**
|
|
156
|
+
* Creates a portal wrapper component for rendering content outside the normal DOM hierarchy.
|
|
157
|
+
* Portals are useful for rendering modals, tooltips, and other overlays that need to break out
|
|
158
|
+
* of their parent container's DOM structure while maintaining React context and event bubbling.
|
|
159
|
+
*
|
|
160
|
+
* Key features:
|
|
161
|
+
* - Renders content to a separate DOM node outside the parent hierarchy
|
|
162
|
+
* - Maintains theme inheritance through the portal
|
|
163
|
+
* - Provides portal instance with unmount control
|
|
164
|
+
* - Automatically cleans up DOM nodes on unmount
|
|
165
|
+
* @template P Props type for the wrapped component including theme and portal instance
|
|
166
|
+
* @param component Component function that returns portal content
|
|
167
|
+
* @returns Function that creates and manages the portal instance
|
|
168
|
+
* @example
|
|
169
|
+
* ```ts
|
|
170
|
+
* const Modal = Portal(({ portal }) => {
|
|
171
|
+
* return Div({
|
|
172
|
+
* onClick: () => portal.unmount(),
|
|
173
|
+
* children: "Click to close"
|
|
174
|
+
* })
|
|
175
|
+
* })
|
|
176
|
+
* ```
|
|
177
|
+
*/export function Portal(a){var b=null,c=function renderer(){var c=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{},d=a(_objectSpread(_objectSpread({},c),{},{portal:b}));if(d instanceof BaseNode){var e,f,g=(null===(e=d.rawProps)||void 0===e?void 0:e.nodetheme)||(null===(f=d.rawProps)||void 0===f?void 0:f.theme)||c.nodetheme||c.theme;return Node(d.element,_objectSpread(_objectSpread({},d.rawProps),{},{nodetheme:g})).render()}return d};return function(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return b=Node(c,a).toPortal(),b}}
|
package/dist/html.node.d.ts
CHANGED
|
@@ -29,6 +29,12 @@ export declare const Grid: (props?: NodeProps<"div">) => import("./node.type.js"
|
|
|
29
29
|
* @returns A div element node with centered flexbox layout.
|
|
30
30
|
*/
|
|
31
31
|
export declare const Center: (props?: NodeProps<"div">) => import("./node.type.js").NodeInstance<"div">;
|
|
32
|
+
/**
|
|
33
|
+
* Represents a fixed positioned element.
|
|
34
|
+
* @param props Optional properties for the fixed positioned element.
|
|
35
|
+
* @returns A div element node with fixed positioning.
|
|
36
|
+
*/
|
|
37
|
+
export declare const Fixed: (props?: NodeProps<"div">) => import("./node.type.js").NodeInstance<"div">;
|
|
32
38
|
/**
|
|
33
39
|
* Represents a relatively positioned element.
|
|
34
40
|
* @param props Optional properties for the relatively positioned element.
|
package/dist/html.node.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.node.d.ts","sourceRoot":"","sources":["../src/html.node.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"html.node.d.ts","sourceRoot":"","sources":["../src/html.node.ts"],"names":[],"mappings":"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"}
|
package/dist/html.node.js
CHANGED
|
@@ -20,6 +20,10 @@
|
|
|
20
20
|
* @param props Optional properties for the centered layout.
|
|
21
21
|
* @returns A div element node with centered flexbox layout.
|
|
22
22
|
*/export var Center=function Center(a){return Div(_objectSpread({display:"flex",alignItems:"center",justifyContent:"center",textAlign:"center",verticalAlign:"middle",alignSelf:"center",justifySelf:"center"},a))};/**
|
|
23
|
+
* Represents a fixed positioned element.
|
|
24
|
+
* @param props Optional properties for the fixed positioned element.
|
|
25
|
+
* @returns A div element node with fixed positioning.
|
|
26
|
+
*/export var Fixed=function Fixed(a){return Div(_objectSpread({position:"fixed"},a))};/**
|
|
23
27
|
* Represents a relatively positioned element.
|
|
24
28
|
* @param props Optional properties for the relatively positioned element.
|
|
25
29
|
* @returns A div element node with relative positioning.
|
package/dist/node.type.d.ts
CHANGED
|
@@ -54,7 +54,7 @@ export type FinalNodeProps = ReactAttributes & {
|
|
|
54
54
|
style?: CSSProperties;
|
|
55
55
|
children?: Children | Children[];
|
|
56
56
|
theme?: Theme;
|
|
57
|
-
|
|
57
|
+
nodetheme?: Theme;
|
|
58
58
|
};
|
|
59
59
|
/**
|
|
60
60
|
* Helper type to determine if the props P have a 'style' property
|
|
@@ -79,12 +79,12 @@ export type NodeProps<E extends NodeElement> = Omit<PropsOf<E>, 'style' | 'child
|
|
|
79
79
|
/**
|
|
80
80
|
* BaseNode's internal props type, extending NodeProps:
|
|
81
81
|
* - Makes all properties optional for flexible node creation
|
|
82
|
-
* - Adds
|
|
82
|
+
* - Adds nodetheme for theme context handling
|
|
83
83
|
* - Used for both initial construction and internal state
|
|
84
84
|
* @template E - The element type these props apply to
|
|
85
85
|
*/
|
|
86
86
|
export type RawNodeProps<E extends NodeElement> = Partial<NodeProps<E>> & {
|
|
87
|
-
|
|
87
|
+
nodetheme?: Theme;
|
|
88
88
|
};
|
|
89
89
|
/**
|
|
90
90
|
* Props interface for the internal FunctionRenderer component.
|
package/dist/react-is.helper.js
CHANGED
|
@@ -75,7 +75,7 @@ function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof
|
|
|
75
75
|
* and various React-specific types like Fragment, Context, etc.
|
|
76
76
|
* @param {any} type The type to validate
|
|
77
77
|
* @returns {boolean} - True if the type can be rendered as a React element
|
|
78
|
-
*/export var isValidElementType=function isValidElementType(a){if("string"==typeof a||"function"==typeof a)return!0;if(knownValidSymbols.has(a))return!0;if("object"===_typeof(a)&&null!==a){var b=a.$$typeof;return b===REACT_LAZY_TYPE||b===REACT_MEMO_TYPE||b===REACT_CONTEXT_TYPE||b===REACT_CONSUMER_TYPE||b===REACT_FORWARD_REF_TYPE||b===REACT_CLIENT_REFERENCE||"function"==typeof a.getModuleId}return!1};/**
|
|
78
|
+
*/export var isValidElementType=function isValidElementType(a){if("string"==typeof a||"number"==typeof a||"bigint"==typeof a||"function"==typeof a)return!0;if(knownValidSymbols.has(a))return!0;if("object"===_typeof(a)&&null!==a){var b=a.$$typeof;return b===REACT_LAZY_TYPE||b===REACT_MEMO_TYPE||b===REACT_CONTEXT_TYPE||b===REACT_CONSUMER_TYPE||b===REACT_FORWARD_REF_TYPE||b===REACT_CLIENT_REFERENCE||"function"==typeof a.getModuleId}return!1};/**
|
|
79
79
|
* Type guard that checks if a component is a React class component.
|
|
80
80
|
* Examines the component's prototype for the isReactComponent marker property
|
|
81
81
|
* that React adds to all class components.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meonode/ui",
|
|
3
3
|
"description": "A structured approach to component composition with built-in theming, prop separation, and dynamic children handling.",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.22",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/main.js",
|
|
7
7
|
"types": "./dist/main.d.ts",
|