How harcicyang/neony works
Neony is a Python reactive desktop UI framework: application code composes a Page from components, launches it in a LumiView native webview, and user interaction updates reactive state and the rendered DOM. Its runtime spans component/widgets, DOM and reactivity, rendering/bridge, app/window services, and the bundled gallery. The excerpts and index establish key calls and capabilities; unsampled subsystems are included only where README or index supports their existence, with uncertain links omitted.
Main entry points: app.py Window launcher · base.py Component base · bridge.py Patch bridge · core.py Gallery shell
Components 24
Application runtime
- Page composition
src/neony/application/page.py - Window launcher
src/neony/application/app.py
UI components
- Component base
src/neony/application/elements/base.py - Controls and layouts
src/neony/application/elements - Data views
src/neony/application/elements/datatable.py - Chat widgets
src/neony/application/elements/chat.py - Menus and overlays
src/neony/application/elements/menu.py
DOM and reactivity
- DOM elements
src/neony/dom/base.py - Reactive primitives
src/neony/dom/reactive.py - CSS values
src/neony/dom/css/_values.py - Node descriptors
src/neony/dom/nodes.py - Patch bridge
src/neony/dom/bridge.py - Browser runtime
src/neony/javascript/index.js
Themes and services
- Theme presets
src/neony/application/theme.py - Icon catalog
src/neony/application/icons.py - Localization
src/neony/application/i18n.py - Custom protocols
src/neony/application/protocols/base.py - Positioned layers
src/neony/application/layers.py - System tray
src/neony/application/tray.py
Component gallery
- Gallery shell
src/neony/gallery/core.py - Gallery sections
src/neony/gallery/sections - Gallery translations
src/neony/gallery/i18n.py
Other components
- Python app author
- LumiView webview
Connections 30
- Python app author → Page composition: composes
- Page composition → Component base: contains
- Python app author → Window launcher: launches
- Window launcher → Page composition: renders
src/neony/application/app.py - Window launcher → LumiView webview: creates windows
- Window launcher → Patch bridge: configures
src/neony/application/app.py - Component base → DOM elements: builds
src/neony/application/elements/base.py - Component base → Reactive primitives: binds state
src/neony/application/elements/base.py - Controls and layouts → Component base: extends
src/neony/application/elements/datatable.py - Data views → Component base: extends
src/neony/application/elements/datatable.py - Chat widgets → Component base: extends
src/neony/application/elements/chat.py - Chat widgets → Menus and overlays: opens
src/neony/application/elements/chat.py - DOM elements → Node descriptors: serializes
src/neony/dom/base.py - DOM elements → CSS values: uses values
src/neony/dom/base.py - Patch bridge → DOM elements: diffs tree
src/neony/dom/bridge.py - Patch bridge → LumiView webview: sends patches
- Patch bridge → Browser runtime: dispatches commands
- Browser runtime → LumiView webview: updates web DOM
- Window launcher → Theme presets: injects theme
src/neony/application/app.py - Theme presets → CSS values: defines tokens
src/neony/application/theme.py - Window launcher → Positioned layers: configures
src/neony/application/app.py - Window launcher → System tray: sets up
src/neony/application/app.py - Python app author → Custom protocols: registers handlers
- Controls and layouts → Theme presets: uses tokens
src/neony/application/elements/datatable.py - Icon catalog → Controls and layouts: supplies icons
src/neony/application/icons.py - Gallery shell → Window launcher: creates app
src/neony/gallery/core.py - Gallery shell → Gallery translations: uses catalog
src/neony/gallery/core.py - Gallery sections → Gallery shell: uses shared shell
src/neony/gallery/sections/interaction.py - Gallery sections → Gallery translations: uses translations
src/neony/gallery/sections/interaction.py - Gallery shell → Theme presets: switches theme
src/neony/gallery/core.py