mirror of
https://github.com/kusti8/proton-native.git
synced 2026-05-15 22:02:24 -06:00
* Proof of concept fonts * Inheirit font style * Use style prop * More font attributes * Reset demo * Fixes * Font example * Text transforms, integrate FontButton * Add docs * Add StyledText * Update package lock * Add StyledText to prop checking * Update documentation for StyledText * Add markdown prettier * Change default font size
83 lines
2.7 KiB
JavaScript
83 lines
2.7 KiB
JavaScript
import {
|
|
App,
|
|
Text,
|
|
Root,
|
|
Window,
|
|
Button,
|
|
VerticalBox,
|
|
HorizontalBox,
|
|
Entry,
|
|
PasswordEntry,
|
|
MultilineEntry,
|
|
ColorButton,
|
|
Form,
|
|
Tab,
|
|
Group,
|
|
Grid,
|
|
Checkbox,
|
|
Spinbox,
|
|
Slider,
|
|
Combobox,
|
|
RadioButton,
|
|
EditableCombobox,
|
|
HorizontalSeparator,
|
|
VerticalSeparator,
|
|
ProgressBar,
|
|
MenuBar,
|
|
FontButton,
|
|
Area,
|
|
} from '../components/';
|
|
import { ROOT_NODE } from '../render/';
|
|
|
|
function getHostContextNode(rootNode) {
|
|
return ROOT_NODE;
|
|
}
|
|
|
|
// Creates an element with an element type, props and a root instance
|
|
function createElement(type, props) {
|
|
const COMPONENTS = {
|
|
ROOT: () => new Root(),
|
|
TEXT: () => new Text(ROOT_NODE, props),
|
|
APP: () => new App(ROOT_NODE, props),
|
|
WINDOW: () => new Window(ROOT_NODE, props),
|
|
BUTTON: () => new Button(ROOT_NODE, props),
|
|
VERTICALBOX: () => new VerticalBox(ROOT_NODE, props),
|
|
HORIZONTALBOX: () => new HorizontalBox(ROOT_NODE, props),
|
|
ENTRY: () => new Entry(ROOT_NODE, props),
|
|
PASSWORDENTRY: () => new PasswordEntry(ROOT_NODE, props),
|
|
MULTILINEENTRY: () => new MultilineEntry(ROOT_NODE, props),
|
|
COLORBUTTON: () => new ColorButton(ROOT_NODE, props),
|
|
FORM: () => new Form(ROOT_NODE, props),
|
|
TAB: () => new Tab(ROOT_NODE, props),
|
|
GROUP: () => new Group(ROOT_NODE, props),
|
|
GRID: () => new Grid(ROOT_NODE, props),
|
|
CHECKBOX: () => new Checkbox(ROOT_NODE, props),
|
|
SPINBOX: () => new Spinbox(ROOT_NODE, props),
|
|
SLIDER: () => new Slider(ROOT_NODE, props),
|
|
COMBOBOX: () => new Combobox(ROOT_NODE, props),
|
|
COMBOBOXITEM: () => new Combobox.Item(ROOT_NODE, props),
|
|
RADIOBUTTON: () => new RadioButton(ROOT_NODE, props),
|
|
RADIOBUTTONITEM: () => new RadioButton.Item(ROOT_NODE, props),
|
|
EDITABLECOMBOBOX: () => new EditableCombobox(ROOT_NODE, props),
|
|
HORIZONTALSEPARATOR: () => new HorizontalSeparator(ROOT_NODE, props),
|
|
VERTICALSEPARATOR: () => new VerticalSeparator(ROOT_NODE, props),
|
|
PROGRESSBAR: () => new ProgressBar(ROOT_NODE, props),
|
|
MENUBAR: () => new MenuBar(ROOT_NODE, props),
|
|
MENUBARITEM: () => new MenuBar.Item(ROOT_NODE, props),
|
|
FONTBUTTON: () => new FontButton(ROOT_NODE, props),
|
|
AREA: () => new Area(ROOT_NODE, props),
|
|
AREARECTANGLE: () => new Area.Rectangle(ROOT_NODE, props),
|
|
AREALINE: () => new Area.Line(ROOT_NODE, props),
|
|
AREAARC: () => new Area.Arc(ROOT_NODE, props),
|
|
AREABEZIER: () => new Area.Bezier(ROOT_NODE, props),
|
|
AREAPATH: () => new Area.Path(ROOT_NODE, props),
|
|
AREAGROUP: () => new Area.Group(ROOT_NODE, props),
|
|
AREACIRCLE: () => new Area.Circle(ROOT_NODE, props),
|
|
AREATEXT: () => new Area.Text(ROOT_NODE, props),
|
|
default: undefined,
|
|
};
|
|
|
|
return COMPONENTS[type]() || COMPONENTS.default;
|
|
}
|
|
|
|
export { createElement, getHostContextNode };
|