iCHEF web components library, built with React.
APACHE-2.0 License
Bot releases are visible (Hide)
Published by cjies over 7 years ago
search.exclude
option. (#48)testRegex
pattern, run test files in any __tests__
folder with .test
or .spec
suffix only. (#48)webpack.prod
to webpack.dist
. (#48)configs/
folder: (#48, #55)
.babelrc
.eslintrc.yml
.eslintignore
.stylelintrc.yml
fontello.config.json
fillSpace
prop in <InfiniteScroll>
, auto fill spaces with onLoadMore
callback if its height is smaller than 2 times of container's height. (#57)disabled
prop in <InfiniteScroll>
. (#57)basic
prop of <BasicRow>
is no longer required. (#58)/utils
<BasicRow>
, <Icon>
, <StatusIcon>
, <Tag>
, <Text>
.Published by cjies over 7 years ago
@kadira/storybook
to @storybook/react
. (#52)<InfiniteScroll>
to perform an action when scrolls a specified distance from the bottom of page. (#45)rowComp()
's icon prop. (#45)<SwitchIcon>
to be used as a 64x32 icon.<Switch>
row component.<EditableText>
visual element which has an <input type="text" />
inside.<TextInput>
which contains <EditableText>
and ignores normal text props like basic
, tag
and aside
.sinon
testing package to handling stub tests. (#38)EnhancedPropTypes
helper. (#38)<EditableTextLabel>
which can be turned into edit mode with inEdit
prop.<IconLayout>
can now be tooltip-free by turning it off.<Checkbox>
.<BasicRow>
can now take children
to render extra content.<IconButton>
, they should be empty. (#38)withStatus()
mixin now takes withRef
option to hold ref to rendered component.Published by cjies over 7 years ago
fontello.config.json
at project root. (#34)iventory-category
and inventory-item
).demo/
.examples/
folder and migrate component docs to stories.addPropsTable()
custom addon to show component's propTypes in table, which modified from addon-info
.storybook
env in babelrc, which included cjs transpiler.gh-pages
branch with running npm run ghpages
. (#35)public/
path in eslint.demo/
folder, all examples migrated to examples/
.config/webpack.prod
.react-hot-loader
.develop
--> dist
branchmaster
--> npmsrc/index.js
.babelrc
to ignore test files on build and transform modules on test.babel-preset-env
from babel-preset-latest
, since Babel recommends the former.Migrate the following components:
<Icon>
<Tag>
<TextEllipsis>
<FlexCell>
(with modifications)<StatusIcon>
(with modifications)Add new components:
<Text>
: the text part of a row component, pre-wrapped with withStatus()
mixin.<TextLabel>
: the very basic row component containing an <Icon>
and a <Text>
.<RowCompBody>
: a layout wrapper.Add Helpers:
icState()
for prefixing state class names.getComponentName()
for reading name of a React Component.wrapIfNotElement()
to ensure output will always be an HTML tag.Add HOC mixins:
rowComp()
: handle shared appearance and behaviors for row components.withStatus()
: render <StatusIcon>
and error msgs from context.Migrate icBEM()
helper, but now it doesn't take an BEMFactory
instance.
Add babel-plugin-module-resolver
and eslint-import-resolver-babel-module
to config module alias.
babel-runtime
(required by babel-plugin-tranform-runtime
) to peerDependencies
instead of devDependencies
. Because our Babel-transformed ES2015 modules does require it.ProgressPlugin
to show build progress.src/Text/*
is moved out to just src/
to maintain a simple, flat directory structure and prevent import confusion. (See 542c7b9)lib/
and es5/
no longer contain comments.<BasicRow>
no longer handles the null-basic-prop situation, as basic
prop was marked as required.doc/
folder -> demo/
.config/webpack.doc.js
-> config/webpack.demo.js
.server
-> demo
.bundle.(js|css)
-> gypcrete.(js|css)
.npm run demo
, now the start
script is an alias of demo
.Migrate row components:
<Button>
Migrate visual elements:
<Tooltip>
(now limits to top and bottom placements only)<AnchoredToolip>
(simplified to be more passive)Migrate HOC mixins:
anchored()
: place Component near a given anchor. DOM offset calculated by document-offset
package.renderToLayer()
: renders Component to another DOM node outside of React root.<IconLayout>
for displaying status on an <Icon>
.
<IconButton>
as an icon-only variant of <Button>
.
randId()
helper for generating a random String to used on DOM nodes.
Add stylelint to enforce consistent conventions and avoid errors in our stylesheets.
npm publish
with NPM_TOKEN
env variables in deploy.sh
.<Tag>
now adapts to the color of its parent more actively.<Button>
should turn red on error statewrapIfNotElement()
helper now takes an extra via
param to change how content
is passed to the Wrapper
component.bem.toString({ stripBlock: true })
.prop-types
package in dependencies
as official recommended.<SearchInput>
.prefixClass()
helper.react
& react-dom
to v15.5.PropTypes
to prop-types
package instead of import it from main React
object.React.createClass
to createReactClass
from create-react-class
package.enzyme
to 2.8.2 to support React v15.5, also install react-test-renderer
.icState()
is renamed to prefixState()
and add prefix with prefixClass()
helper.gyp-
react-addons-test-utils
package.<Checkbox>
with indeterminate
prop support.<IconCheckbox>
for icon-only checkbox./index.js
to check if every component under src/
is exported.<SearchInput>
now caches last-notified search value inside to prevent duplicated notifications.<SearchInput>
now tries to notify search upon reset button click.<RowComp>
.<Tooltip>
not showing its content.8px
instead of 4px
.<SearchInput>
is 8px
both vertically and horizontally.<RowCompBody>
is removed due to padding change. [ref].Published by zhusee2 over 7 years ago
eslint
and eslint-config-ichef
rules for linting JS codes..eslintrc.yml
to sepecify ESLint env and source type.eslint-loader
to show linter results ASAP during development..sublimelinterrc
to exclude folders from being linted in SublimeText.Published by zhusee2 over 7 years ago
Basic Webpack 2 configs, working with the following loaders:
npm run build
should compile src/
to 3 different targets:
dist/
: bundled & minified production JS library + CSS file.lib/
: Babel-transformed ES2015 JS modules (excluding CSS).es5/
: Babel-transformed CommonJS JS modules (excluding CSS).Add Babel plugin to strip CSS import lines from lib/
and es5/
modules.
Add webpack-dev-server
hosting documents from doc/
folder, manually sepecify doc/index.html
as dev server root.
Add react-hot-loader
to enable HOT on React components.