Skip to content

Latest commit

 

History

History
204 lines (169 loc) · 6.4 KB

File metadata and controls

204 lines (169 loc) · 6.4 KB

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 @._.options in 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 check import/no-unresolved
  • Use fixtures (i.e. not body directly) 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.)?