Remove the following modules:
- animate
- morphs
- component
- fluid
- list
- set
- map
- meter
- morph-section
- request
- dom utils?
- color-picker
- inline-select/picker/editable
Combine
- form + form-builder
- transition -> utils
- merge table and data table? (rename DataTable to Table?)
Simplify
-
view? replace with the ideas in hexagon-rx?~
-
format (make plain functions instead of curried functions)
-
make event augmentors opt in and useable as 'middlewares' on selections
-
give userFacingText properties more consistent names and api
-
themes (just use a json file + css variables)
-
folder structure (bump everything in main up a folder? Or improve how rollup resolves)
- src/utils
- src/components
-
Flatten out the file structure a bit
- move module/main/index.coffee to module/index.coffee
- move module/main/index.css to module/index.css
- move module/main/theme.css to module/theme.css
- move module/test/index.js to module/test.js
-
make the print code a standard module
-
change all renderers to only accept detached dom as return type - the element to attach to should no longer be provided
-
introduce getter/setter factories that emit events automatically to make the api more consistent and the code more concise
-
Figure out a consistent way to set classes / context classes for all components
-
Simplify card.x.x.x to card(options)
Other
-
Add better selection class support
class({name: boolean, ...}) class([class1, class2, class3])
classed() // returns an object classed({name: boolean}) // only toggles the provided classes
-
de-deprecate ::locale methods; using the global method should not be the only way?
-
Change the btn-invert classes to btn-outline
-
Simplify Picker / AutocompletePicker (replace them with one thing with a cleaner implementation) Picker: items: (Array, function[String => Array], Promise[Array], Function[String => Promise[Array]]), renderer: (item) => selection - the item renderer, searchBoxVisible: (true/false) => sets / get the search box visiblility, filterer: (function(searchTerm, item) => true/false), disabled: (true/false) => sets / gets the disabled state groupBy: (function(item) => string) - sets / gets the groupby function that allows one level of grouping in the picker items. If set to undefined, no grouping is performed value: (value) => sets/gets the value hide: () => hides the dropdown, on: (event) => emits events when things happen in the picker change - the value changes showstart - the dropdown starts to be shown show - the dropdown is shown showend - the dropdown starts to be shown hidestart - the dropdown starts to be hidden hide - the dropdown is hidden hideend - the dropdown starts to be hidden
-
Simplify the dateTime localization module, by making use of https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString
-
Update renderers to new format ((item) => detached)
- Slider
- PivotTable
What's been done: [commonjs][es modules][css][demo]
-
[x][x][x][-] set
-
[x][x][x][-] map
-
[x][x][x][-] list
-
[x][x][x][-] util
-
[x][x][x][-] event-emitter
-
[x][x][x][-] color
-
[x][x][x][-] selection
-
[x][x][x][-] transition
-
[x][x][x][-] interpolate
-
[x][x][x][-] animate
-
[x][x][x][-] pointer-events
-
[x][x][x][x] icon
-
[x][x][x][x] spinner
-
[x][x][x][-] view
-
[x][x][x][-] sort
-
[x][x][x][-] morphs
-
[x][x][x][-] click-detector
-
[x][x][x][x] base
-
[x][x][x][x] modal
-
[x][x][x][x] notify
-
[x][x][x][-] filter
-
[x][x][x][-] user-facing-text
-
[x][x][x][x] form
-
[x][x][x][x] dropdown
-
[x][x][x][x] collapsible
-
[x][x][x][x] palette
-
[x][x][x][-] format
-
[x][x][x][x] button
-
[x][x][x][x] number-picker
-
[x][x][x][x] autocomplete
-
[x][x][x][x] picker
-
[x][x][x][-] menu
-
[-][-][-][-] component
-
[-][-][-][-] morph-section
-
[-][-][-][-] request
-
[-][-][-][-] drawing
-
[-][-][-][-] meter
-
[-][-][-][-] fluid
-
[x][x][x][-] preferences
-
[x][x][x][x] input-group
-
[x][x][x][x] titlebar
-
[x][x][x][-] date-localizer
-
[x][x][x][-] resize-events
-
[x][x][x][x] layout
-
[x][x][x][x] drag-container
-
[x][x][-][-] fast-click
-
[x][x][-][-] autocomplete-feed
-
[x][x][x][x] progress-bar
-
[x][x][x][x] error-pages
-
[x][x][x][-] color-scale
-
[x][x][x][-] logo
-
[x][x][x][x] table
-
[x][x][x][x] toggle
-
[x][x][x][x] button-group
-
[x][x][x][x] notice
-
[x][x][x][x] sticky-table-headers
-
[x][x][x][x] plot
-
[x][x][x][x] label
-
[x][x][x][x] crumbtrail
-
[x][x][x][x] color-picker
-
[x][x][x][x] slider
-
[x][x][x][x] time-slider
-
[x][x][x][x] card
-
[x][x][x][x] paginator
-
[x][x][x][x] side-collapsible
-
[x][x][x][x] date-picker
-
[x][x][-][x] pivot-table
-
[x][x][x][x] time-picker
-
[x][x][x][x] tag-input
-
[x][x][x][x] date-time-picker
-
[x][x][x][x] sidebar
-
[x][x][x][x] tabs
-
[x][x][x][x] tree
-
[x][x][x][x] data-table
-
[x][x][x][x] file-input
-
[x][x][x][x] form-builder
-
add stylelint to postcss configs
-
check if it is possible to enforce standardization of css variable names via stylelint
-
standardize the css variable names (-color instead of -col)
-
sort css variables in hexagon.css lexigraphically
-
config for hexagon.es5.es.js
-
config for hexagon.es5.umd.js
-
config for hexagon.es6.es.js
-
get the demo up to date with the current demo page in master
-
Convert to ES6? (decaffeinate + lebab does 90% of the work)
-
Add named apis for all components
- Dropdown
- Menu
- AutocompletePicker
- ColorPicker
- ...
-
Make constructor arguments consistent
- use @selector
- use opts and create @options or
@._.optionsin the constructor
-
Use
.api('module', this).api(this)in every constructor -
Use consistent (and widely used) pattern for 'private' variables (
@._.?this[Symbol()]?) -
Use AirBnB styleguide as it is generally used in Open Source packages
- work out how to make eslint read
import x from 'module/main'style imports to checkimport/no-unresolved
- work out how to make eslint read
-
Use fixtures (i.e. not
bodydirectly) and clean them up in all module tests to prevent issues with modules polluting other tests -
Add theme variables for everything that isn't layout based (border width, style, radius, box-shadow offsets etc.)?