I think component packages should changed from what we're used to. It's common practice to organize the world of components into two packages,
controls and
containers. A component's behavior determines whether or not it's a control, and it seems the skin would influence the component's ability to be a container. Both behaviors and skins are naturally flexible and change depending on context.
Since a component in the reflex framework is truly a model of its domain we should break out components based on that model. Following is a sketch of some proposed package structure:
- simple - very simple or no model
- Button
- CheckBox
- Divider
- Link
- Panel
- text - dealing with text
- progress - dealing with range
- Stepper
- ScrollBar
- Slider
- ProgressBar
- list - repetitive in one dimension
- ButtonGroup
- RadioGroup
- ListBox
- Accordian
- ButtonBar
- TabBar
- BreadCrumbs
- grid - repetitive in two dimensions
- DataGrid
- SpreadSheet
- Calendar
- Form
- complex - composition of many models
- ComboBox
- Alert
- FileMenu
- TreeExplorer
- Window
Because we intend to have quite a few components, it will be nice to divide them out between more than just two packages.
Tyler