@meonode/ui 0.1.21 → 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 -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,196 @@ 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
|
-
// 5.
|
|
413
|
-
|
|
414
|
-
|
|
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(),
|
|
415
399
|
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
400
|
+
WrappedDetailComponent({
|
|
401
|
+
info: 'Detail 7: Using Component HOC with Node instance returns. Theme context is correctly propagated.',
|
|
402
|
+
}),
|
|
419
403
|
|
|
420
404
|
/**
|
|
421
|
-
* Conditional rendering examples (
|
|
422
|
-
*
|
|
423
|
-
*
|
|
405
|
+
* Conditional rendering examples (visible when showMore is true)
|
|
406
|
+
* Demonstrates:
|
|
407
|
+
* - Inline function wrappers
|
|
408
|
+
* - Component HOC usage
|
|
409
|
+
* - Theme context propagation patterns
|
|
424
410
|
*/
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
showMore &&
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
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.
|
|
445
444
|
],
|
|
446
445
|
})
|
|
447
446
|
})
|
|
448
447
|
|
|
449
448
|
/**
|
|
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.
|
|
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.
|
|
461
452
|
*/
|
|
462
453
|
const DetailComponent = ({ info }: { info: string }): NodeInstance => {
|
|
463
|
-
// useEffect hook for logging component mount and unmount phases (for debugging).
|
|
464
454
|
useEffect(() => {
|
|
465
|
-
console.log('DetailComponent mounted:', info)
|
|
455
|
+
console.log('DetailComponent mounted:', info)
|
|
466
456
|
return () => {
|
|
467
|
-
console.log('DetailComponent unmounted:', info)
|
|
457
|
+
console.log('DetailComponent unmounted:', info)
|
|
468
458
|
}
|
|
469
|
-
}, [info])
|
|
459
|
+
}, [info])
|
|
470
460
|
|
|
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
461
|
return Row({
|
|
474
462
|
alignItems: 'center',
|
|
475
463
|
gap: 10,
|
|
476
464
|
padding: 4,
|
|
477
465
|
border: '2px solid theme.accent',
|
|
478
466
|
borderRadius: 6,
|
|
479
|
-
backgroundColor: 'theme.warning',
|
|
467
|
+
backgroundColor: 'theme.warning',
|
|
480
468
|
color: 'theme.danger',
|
|
481
469
|
children: [P(info, { flex: 1, padding: '0 20px' }), TextField({ flex: 1, sx: { background: 'theme.primary' } })],
|
|
482
470
|
})
|
|
483
471
|
}
|
|
484
472
|
|
|
485
473
|
/**
|
|
486
|
-
*
|
|
487
|
-
* to
|
|
488
|
-
*
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
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.
|
|
497
502
|
*/
|
|
498
503
|
const ReturnRenderedDetailComponent = ({ info }: { info: string }): ReactNode => {
|
|
499
|
-
// useEffect hook for logging component mount and unmount phases (for debugging).
|
|
500
504
|
useEffect(() => {
|
|
501
|
-
console.log('ReturnRenderedDetailComponent mounted
|
|
505
|
+
console.log('ReturnRenderedDetailComponent mounted')
|
|
502
506
|
return () => {
|
|
503
|
-
console.log('ReturnRenderedDetailComponent unmounted
|
|
507
|
+
console.log('ReturnRenderedDetailComponent unmounted')
|
|
504
508
|
}
|
|
505
|
-
}, [info])
|
|
509
|
+
}, [info])
|
|
506
510
|
|
|
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
511
|
return Row({
|
|
511
512
|
alignItems: 'center',
|
|
512
513
|
gap: 10,
|
|
513
514
|
padding: 4,
|
|
514
515
|
border: '2px solid theme.accent',
|
|
515
516
|
borderRadius: 6,
|
|
516
|
-
backgroundColor: 'theme.warning',
|
|
517
|
+
backgroundColor: 'theme.warning',
|
|
517
518
|
color: 'theme.danger',
|
|
518
519
|
children: [P(info, { flex: 1, padding: '0 20px' }), TextField({ flex: 1, sx: { background: 'theme.primary' } })],
|
|
519
|
-
}).render()
|
|
520
|
+
}).render()
|
|
520
521
|
}
|
|
521
522
|
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
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,
|
|
525
538
|
top: 0,
|
|
526
539
|
left: 0,
|
|
527
540
|
right: 0,
|
|
@@ -532,50 +545,62 @@ const Modal = ({ theme }: { theme: Theme }) => {
|
|
|
532
545
|
alignItems: 'center',
|
|
533
546
|
onClick: e => {
|
|
534
547
|
if (e.target === e.currentTarget) {
|
|
535
|
-
|
|
548
|
+
portal.unmount()
|
|
536
549
|
}
|
|
537
550
|
},
|
|
538
|
-
children:
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
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': {
|
|
555
577
|
color: 'theme.foreground',
|
|
578
|
+
'&.Mui-focused': {
|
|
579
|
+
color: 'theme.foreground',
|
|
580
|
+
},
|
|
556
581
|
},
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
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,
|
|
568
594
|
},
|
|
569
|
-
borderRadius: 2,
|
|
570
595
|
},
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
})
|
|
578
|
-
}
|
|
596
|
+
label: 'Hello',
|
|
597
|
+
fullWidth: true,
|
|
598
|
+
}),
|
|
599
|
+
],
|
|
600
|
+
}),
|
|
601
|
+
],
|
|
602
|
+
})
|
|
603
|
+
})
|
|
579
604
|
```
|
|
580
605
|
|
|
581
606
|
---
|
|
@@ -584,10 +609,12 @@ const Modal = ({ theme }: { theme: Theme }) => {
|
|
|
584
609
|
|
|
585
610
|
### Core Functions
|
|
586
611
|
|
|
587
|
-
| Function | Parameters
|
|
588
|
-
|
|
589
|
-
| `Node` | `element:
|
|
590
|
-
| `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
|
+
|
|
|
591
618
|
|
|
592
619
|
---
|
|
593
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",
|