@meonode/ui 0.1.21 → 0.1.23
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 +195 -169
- 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
|
@@ -208,17 +208,18 @@ const LoginForm = Component(() =>
|
|
|
208
208
|
```tsx
|
|
209
209
|
'use client'
|
|
210
210
|
/**
|
|
211
|
-
* This file showcases the integration of React hooks with
|
|
211
|
+
* This file showcases the integration of React hooks with `@meonode/ui` components
|
|
212
212
|
* for building declarative user interfaces. It demonstrates different rendering
|
|
213
213
|
* approaches, the use of Higher-Order Components (HOCs), and how theme context
|
|
214
214
|
* is managed and propagated within the @meonode/ui component tree.
|
|
215
215
|
*/
|
|
216
|
-
import {
|
|
216
|
+
import { Button, Center, Column, Component, Fixed, Node, type NodeInstance, P, Portal, Row, type Theme } from '@meonode/ui'
|
|
217
217
|
import { useState, useEffect, ReactElement, ReactNode } from 'react'
|
|
218
218
|
import { CssBaseline, FormControlLabel, TextField } from '@meonode/mui'
|
|
219
219
|
import { Switch as MUISwitch } from '@mui/material'
|
|
220
220
|
import { styled } from '@mui/material'
|
|
221
221
|
|
|
222
|
+
// Styled Material UI Switch component for theme toggling
|
|
222
223
|
const MaterialUISwitch = styled(MUISwitch)(({ theme }) => ({
|
|
223
224
|
width: 62,
|
|
224
225
|
height: 34,
|
|
@@ -276,10 +277,8 @@ const MaterialUISwitch = styled(MUISwitch)(({ theme }) => ({
|
|
|
276
277
|
}))
|
|
277
278
|
|
|
278
279
|
/**
|
|
279
|
-
*
|
|
280
|
-
*
|
|
281
|
-
* theme string references (e.g., 'theme.primary') and the current theme mode is 'light'.
|
|
282
|
-
* 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.
|
|
283
282
|
*/
|
|
284
283
|
const lightTheme: Theme = {
|
|
285
284
|
mode: 'light',
|
|
@@ -298,10 +297,8 @@ const lightTheme: Theme = {
|
|
|
298
297
|
}
|
|
299
298
|
|
|
300
299
|
/**
|
|
301
|
-
*
|
|
302
|
-
*
|
|
303
|
-
* when resolving theme string references, but specifically when the current theme
|
|
304
|
-
* mode is 'dark'.
|
|
300
|
+
* Dark theme configuration containing color palette values.
|
|
301
|
+
* Used by `@meonode/ui` components when resolving theme references in dark mode.
|
|
305
302
|
*/
|
|
306
303
|
const darkTheme: Theme = {
|
|
307
304
|
mode: 'dark',
|
|
@@ -320,29 +317,15 @@ const darkTheme: Theme = {
|
|
|
320
317
|
}
|
|
321
318
|
|
|
322
319
|
/**
|
|
323
|
-
*
|
|
324
|
-
*
|
|
325
|
-
*
|
|
326
|
-
* This function is wrapped by the `Component` HOC from `@meonode/ui`. The `Component`
|
|
327
|
-
* HOC transforms the function into a standard React component that returns a `ReactNode`,
|
|
328
|
-
* 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.
|
|
329
323
|
*/
|
|
330
324
|
export default Component(() => {
|
|
331
|
-
// State hook to control the visibility of additional content sections.
|
|
332
325
|
const [showMore, setShowDetails] = useState(false)
|
|
333
326
|
const [mode, setMode] = useState<'dark' | 'light'>('light')
|
|
334
327
|
const theme = mode === 'dark' ? darkTheme : lightTheme
|
|
335
328
|
|
|
336
|
-
/**
|
|
337
|
-
* The root of the UI tree is a `Column` component from `@meonode/ui`.
|
|
338
|
-
* This `Column` sets the theme context for its children.
|
|
339
|
-
* Its children include:
|
|
340
|
-
* - A theme toggle switch using MUI components wrapped in `@meonode/ui`'s `Node`.
|
|
341
|
-
* - A button to toggle the visibility of the detail sections.
|
|
342
|
-
* - Various examples demonstrating how to render components that return either
|
|
343
|
-
* `@meonode/ui` `Node` instances or `ReactNode`s, illustrating theme propagation
|
|
344
|
-
* both unconditionally and conditionally, highlighting theme propagation.
|
|
345
|
-
*/
|
|
346
329
|
return Column({
|
|
347
330
|
theme: theme.colors,
|
|
348
331
|
padding: 20,
|
|
@@ -351,8 +334,7 @@ export default Component(() => {
|
|
|
351
334
|
backgroundColor: 'theme.background',
|
|
352
335
|
color: 'theme.foreground',
|
|
353
336
|
children: [
|
|
354
|
-
CssBaseline,
|
|
355
|
-
// Theme toggle switch using MUI components wrapped with @meonode/ui's Node HOC.
|
|
337
|
+
CssBaseline,
|
|
356
338
|
Center({
|
|
357
339
|
children: FormControlLabel({
|
|
358
340
|
control: Node(MaterialUISwitch).render() as ReactElement,
|
|
@@ -363,165 +345,195 @@ export default Component(() => {
|
|
|
363
345
|
onChange: () => setMode(prev => (prev === 'dark' ? 'light' : 'dark')),
|
|
364
346
|
}),
|
|
365
347
|
}),
|
|
366
|
-
// Button to show modal.
|
|
367
348
|
Button('Show Modal', {
|
|
368
|
-
onClick: () => Modal({ theme }),
|
|
369
|
-
cursor: 'pointer',
|
|
370
|
-
userSelect: 'none',
|
|
349
|
+
onClick: () => Modal({ theme: theme.colors }),
|
|
350
|
+
cursor: 'pointer',
|
|
351
|
+
userSelect: 'none',
|
|
371
352
|
padding: '10px 20px',
|
|
372
|
-
backgroundColor: 'theme.primary',
|
|
353
|
+
backgroundColor: 'theme.primary',
|
|
373
354
|
borderRadius: 5,
|
|
374
355
|
fontWeight: 'bold',
|
|
375
356
|
color: 'white',
|
|
376
357
|
}),
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
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',
|
|
382
362
|
padding: '10px 20px',
|
|
383
|
-
backgroundColor: 'theme.accent',
|
|
363
|
+
backgroundColor: 'theme.accent',
|
|
384
364
|
borderRadius: 5,
|
|
385
365
|
fontWeight: 'bold',
|
|
386
366
|
color: 'white',
|
|
387
367
|
}),
|
|
388
368
|
|
|
389
369
|
/**
|
|
390
|
-
*
|
|
391
|
-
*
|
|
392
|
-
*
|
|
393
|
-
*
|
|
394
|
-
*
|
|
370
|
+
* Component rendering examples demonstrating theme context propagation:
|
|
371
|
+
* - Direct Node instance rendering
|
|
372
|
+
* - Rendered Node instances
|
|
373
|
+
* - ReactNode components
|
|
374
|
+
* - HOC usage patterns
|
|
395
375
|
*/
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
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(),
|
|
399
383
|
|
|
400
|
-
//
|
|
401
|
-
//
|
|
402
|
-
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.' }),
|
|
403
386
|
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
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
|
+
}),
|
|
407
390
|
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
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
|
+
}),
|
|
411
394
|
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
395
|
+
Node(ReturnRenderedDetailComponent, {
|
|
396
|
+
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.',
|
|
397
|
+
}).render(),
|
|
415
398
|
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
399
|
+
WrappedDetailComponent({
|
|
400
|
+
info: 'Detail 7: Using Component HOC with Node instance returns. Theme context is correctly propagated.',
|
|
401
|
+
}),
|
|
419
402
|
|
|
420
403
|
/**
|
|
421
|
-
* Conditional rendering examples (
|
|
422
|
-
*
|
|
423
|
-
*
|
|
404
|
+
* Conditional rendering examples (visible when showMore is true)
|
|
405
|
+
* Demonstrates:
|
|
406
|
+
* - Inline function wrappers
|
|
407
|
+
* - Component HOC usage
|
|
408
|
+
* - Theme context propagation patterns
|
|
424
409
|
*/
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
showMore &&
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
410
|
+
showMore &&
|
|
411
|
+
(() =>
|
|
412
|
+
DetailComponent({
|
|
413
|
+
info: 'Detail 8: Conditional rendering of a Node instance component using inline function wrapper. Theme context is correctly received.',
|
|
414
|
+
})),
|
|
415
|
+
|
|
416
|
+
showMore &&
|
|
417
|
+
(() =>
|
|
418
|
+
DetailComponent({
|
|
419
|
+
info: 'Detail 9: Conditional rendering of a Node instance component with .render() call. Theme context is correctly propagated.',
|
|
420
|
+
}).render()),
|
|
421
|
+
|
|
422
|
+
showMore &&
|
|
423
|
+
WrappedDetailComponent({
|
|
424
|
+
info: 'Detail 10: Conditional rendering using Component HOC with Node instance. Theme context is correctly propagated.',
|
|
425
|
+
}),
|
|
426
|
+
|
|
427
|
+
showMore &&
|
|
428
|
+
(() =>
|
|
429
|
+
ReturnRenderedDetailComponent({
|
|
430
|
+
info: 'Detail 11: Conditional rendering of ReactNode component using inline function. Theme context is properly propagated.',
|
|
431
|
+
})),
|
|
432
|
+
|
|
433
|
+
showMore &&
|
|
434
|
+
Component(() =>
|
|
435
|
+
ReturnRenderedDetailComponent({
|
|
436
|
+
info: 'Detail 12: Conditional rendering with Component HOC wrapping ReactNode component. Note that theme context is not propagated in this case.',
|
|
437
|
+
}),
|
|
438
|
+
),
|
|
439
|
+
|
|
440
|
+
// showMore && ReturnRenderedDetailComponent({
|
|
441
|
+
// info: 'Detail 15: Direct component call violates Rules of Hooks!'
|
|
442
|
+
// }), // ❌ Fails: Direct call to a component function using hooks inside render logic without a React-aware wrapper.
|
|
445
443
|
],
|
|
446
444
|
})
|
|
447
445
|
})
|
|
448
446
|
|
|
449
447
|
/**
|
|
450
|
-
*
|
|
451
|
-
*
|
|
452
|
-
*
|
|
453
|
-
* component (like the main `Column` in this page).
|
|
454
|
-
*
|
|
455
|
-
* This component returns a @meonode/ui `Row` Node instance.
|
|
456
|
-
* This type of component is suitable for direct inclusion as a child within other
|
|
457
|
-
* `@meonode/ui` components that expect `Node` instances or arrays of `Node` instances.
|
|
458
|
-
* @param {object} props - Component properties.
|
|
459
|
-
* @param {string} props.info - Text content to display in the detail section.
|
|
460
|
-
* @returns {NodeInstance} A @meonode/ui Row Node instance.
|
|
448
|
+
* Styled detail section component returning a Node instance.
|
|
449
|
+
* Uses useEffect for lifecycle logging.
|
|
450
|
+
* Theme context is received from parent @meonode/ui components.
|
|
461
451
|
*/
|
|
462
452
|
const DetailComponent = ({ info }: { info: string }): NodeInstance => {
|
|
463
|
-
// useEffect hook for logging component mount and unmount phases (for debugging).
|
|
464
453
|
useEffect(() => {
|
|
465
|
-
console.log('DetailComponent mounted:', info)
|
|
454
|
+
console.log('DetailComponent mounted:', info)
|
|
466
455
|
return () => {
|
|
467
|
-
console.log('DetailComponent unmounted:', info)
|
|
456
|
+
console.log('DetailComponent unmounted:', info)
|
|
468
457
|
}
|
|
469
|
-
}, [info])
|
|
458
|
+
}, [info])
|
|
470
459
|
|
|
471
|
-
// Returns a @meonode/ui Row Node instance configured with props and children.
|
|
472
|
-
// Its styling (e.g., backgroundColor) will resolve theme strings from React context.
|
|
473
460
|
return Row({
|
|
474
461
|
alignItems: 'center',
|
|
475
462
|
gap: 10,
|
|
476
463
|
padding: 4,
|
|
477
464
|
border: '2px solid theme.accent',
|
|
478
465
|
borderRadius: 6,
|
|
479
|
-
backgroundColor: 'theme.warning',
|
|
466
|
+
backgroundColor: 'theme.warning',
|
|
480
467
|
color: 'theme.danger',
|
|
481
468
|
children: [P(info, { flex: 1, padding: '0 20px' }), TextField({ flex: 1, sx: { background: 'theme.primary' } })],
|
|
482
469
|
})
|
|
483
470
|
}
|
|
484
471
|
|
|
485
472
|
/**
|
|
486
|
-
*
|
|
487
|
-
* to
|
|
488
|
-
*
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
473
|
+
* Styled detail section component wrapped with Component HOC.
|
|
474
|
+
* Similar to DetailComponent but demonstrates HOC pattern.
|
|
475
|
+
* Theme context is correctly propagated through the HOC.
|
|
476
|
+
*/
|
|
477
|
+
const WrappedDetailComponent = Component(({ info }): NodeInstance => {
|
|
478
|
+
useEffect(() => {
|
|
479
|
+
console.log('DetailComponent mounted')
|
|
480
|
+
return () => {
|
|
481
|
+
console.log('DetailComponent unmounted')
|
|
482
|
+
}
|
|
483
|
+
}, [info])
|
|
484
|
+
|
|
485
|
+
return Row({
|
|
486
|
+
alignItems: 'center',
|
|
487
|
+
gap: 10,
|
|
488
|
+
padding: 4,
|
|
489
|
+
border: '2px solid theme.accent',
|
|
490
|
+
borderRadius: 6,
|
|
491
|
+
backgroundColor: 'theme.warning',
|
|
492
|
+
color: 'theme.danger',
|
|
493
|
+
children: [P(info, { flex: 1, padding: '0 20px' }), TextField({ flex: 1, sx: { background: 'theme.primary' } })],
|
|
494
|
+
})
|
|
495
|
+
})
|
|
496
|
+
|
|
497
|
+
/**
|
|
498
|
+
* Alternative detail component implementation returning ReactNode.
|
|
499
|
+
* Explicitly calls .render() for React compatibility.
|
|
500
|
+
* Demonstrates theme context usage with standard React patterns.
|
|
497
501
|
*/
|
|
498
502
|
const ReturnRenderedDetailComponent = ({ info }: { info: string }): ReactNode => {
|
|
499
|
-
// useEffect hook for logging component mount and unmount phases (for debugging).
|
|
500
503
|
useEffect(() => {
|
|
501
|
-
console.log('ReturnRenderedDetailComponent mounted
|
|
504
|
+
console.log('ReturnRenderedDetailComponent mounted')
|
|
502
505
|
return () => {
|
|
503
|
-
console.log('ReturnRenderedDetailComponent unmounted
|
|
506
|
+
console.log('ReturnRenderedDetailComponent unmounted')
|
|
504
507
|
}
|
|
505
|
-
}, [info])
|
|
508
|
+
}, [info])
|
|
506
509
|
|
|
507
|
-
// Constructs a @meonode/ui Row and immediately calls .render() on it.
|
|
508
|
-
// The Row itself will attempt to resolve theme strings (e.g., 'theme.background.secondary')
|
|
509
|
-
// from the React context provided by an ancestor @meonode/ui component (like the main Column).
|
|
510
510
|
return Row({
|
|
511
511
|
alignItems: 'center',
|
|
512
512
|
gap: 10,
|
|
513
513
|
padding: 4,
|
|
514
514
|
border: '2px solid theme.accent',
|
|
515
515
|
borderRadius: 6,
|
|
516
|
-
backgroundColor: 'theme.warning',
|
|
516
|
+
backgroundColor: 'theme.warning',
|
|
517
517
|
color: 'theme.danger',
|
|
518
518
|
children: [P(info, { flex: 1, padding: '0 20px' }), TextField({ flex: 1, sx: { background: 'theme.primary' } })],
|
|
519
|
-
}).render()
|
|
519
|
+
}).render()
|
|
520
520
|
}
|
|
521
521
|
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
522
|
+
/**
|
|
523
|
+
* Modal component using Portal HOC for DOM placement.
|
|
524
|
+
* Demonstrates theme-aware content rendering outside main hierarchy.
|
|
525
|
+
* Includes nested modal support and Material UI integration.
|
|
526
|
+
*/
|
|
527
|
+
const Modal = Portal(({ theme, portal }) => {
|
|
528
|
+
useEffect(() => {
|
|
529
|
+
console.log('Modal mounted')
|
|
530
|
+
return () => {
|
|
531
|
+
console.log('Modal unmounted')
|
|
532
|
+
}
|
|
533
|
+
}, [])
|
|
534
|
+
|
|
535
|
+
return Fixed({
|
|
536
|
+
theme,
|
|
525
537
|
top: 0,
|
|
526
538
|
left: 0,
|
|
527
539
|
right: 0,
|
|
@@ -532,50 +544,62 @@ const Modal = ({ theme }: { theme: Theme }) => {
|
|
|
532
544
|
alignItems: 'center',
|
|
533
545
|
onClick: e => {
|
|
534
546
|
if (e.target === e.currentTarget) {
|
|
535
|
-
|
|
547
|
+
portal.unmount()
|
|
536
548
|
}
|
|
537
549
|
},
|
|
538
|
-
children:
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
550
|
+
children: [
|
|
551
|
+
Column({
|
|
552
|
+
width: '50%',
|
|
553
|
+
height: '80%',
|
|
554
|
+
backgroundColor: 'theme.background',
|
|
555
|
+
borderRadius: '8px',
|
|
556
|
+
boxShadow: '0 4px 6px rgba(0, 0, 0, 0.1)',
|
|
557
|
+
padding: 10,
|
|
558
|
+
gap: 10,
|
|
559
|
+
color: 'theme.foreground',
|
|
560
|
+
children: [
|
|
561
|
+
Button('More Modal', {
|
|
562
|
+
onClick: () => Modal({ theme }),
|
|
563
|
+
cursor: 'pointer',
|
|
564
|
+
userSelect: 'none',
|
|
565
|
+
padding: '10px 20px',
|
|
566
|
+
backgroundColor: 'theme.primary',
|
|
567
|
+
borderRadius: 5,
|
|
568
|
+
fontWeight: 'bold',
|
|
569
|
+
color: 'white',
|
|
570
|
+
}),
|
|
571
|
+
Center({ fontWeight: 'bold', children: 'Modal' }),
|
|
572
|
+
Center({ children: Math.random() * 1000 }),
|
|
573
|
+
TextField({
|
|
574
|
+
sx: {
|
|
575
|
+
'& .MuiFormLabel-root': {
|
|
555
576
|
color: 'theme.foreground',
|
|
577
|
+
'&.Mui-focused': {
|
|
578
|
+
color: 'theme.foreground',
|
|
579
|
+
},
|
|
556
580
|
},
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
581
|
+
'& .MuiOutlinedInput-root': {
|
|
582
|
+
color: 'theme.foreground',
|
|
583
|
+
'& fieldset': {
|
|
584
|
+
borderColor: 'theme.foreground',
|
|
585
|
+
},
|
|
586
|
+
'&:hover fieldset': {
|
|
587
|
+
borderColor: 'theme.foreground',
|
|
588
|
+
},
|
|
589
|
+
'&.Mui-focused fieldset': {
|
|
590
|
+
borderColor: 'theme.foreground',
|
|
591
|
+
},
|
|
592
|
+
borderRadius: 2,
|
|
568
593
|
},
|
|
569
|
-
borderRadius: 2,
|
|
570
594
|
},
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
})
|
|
578
|
-
}
|
|
595
|
+
label: 'Hello',
|
|
596
|
+
fullWidth: true,
|
|
597
|
+
}),
|
|
598
|
+
],
|
|
599
|
+
}),
|
|
600
|
+
],
|
|
601
|
+
})
|
|
602
|
+
})
|
|
579
603
|
```
|
|
580
604
|
|
|
581
605
|
---
|
|
@@ -584,10 +608,12 @@ const Modal = ({ theme }: { theme: Theme }) => {
|
|
|
584
608
|
|
|
585
609
|
### Core Functions
|
|
586
610
|
|
|
587
|
-
| Function | Parameters
|
|
588
|
-
|
|
589
|
-
| `Node` | `element:
|
|
590
|
-
| `Component` | `(props: P) =>
|
|
611
|
+
| Function | Parameters | Description |
|
|
612
|
+
|-------------|--------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|
|
|
613
|
+
| `Node` | `element: NodeElement \| React.ComponentType`, `baseProps: object` | Constructs a configurable UI node that supports flexible properties and dynamic styling. |
|
|
614
|
+
| `Component` | `(props: P) => ComponentNode` | Transforms node trees into reusable React components with built-in type safety and seamless integration. |
|
|
615
|
+
| `Portal` | `(props: P) => ComponentNode` | Converts node trees to React components and renders them in a React Portal with advanced DOM placement. |
|
|
616
|
+
|
|
|
591
617
|
|
|
592
618
|
---
|
|
593
619
|
|
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.23",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/main.js",
|
|
7
7
|
"types": "./dist/main.d.ts",
|