7.1.0 (2024-04-12)
- pass down disabled prop in the rowComp Hoc (723ba8b)
- remove opacity style of disabled html attribute (c96eb64)
7.0.1 (2024-02-02)
- integrate storybook with chromatic (dd911b8)
7.0.0 (2024-01-26)
- Fix warning message in SelectRow.js (26f200f)
- upgrade react to v18 (f6366f4)
6.1.0 (2023-09-15)
6.0.0 (2023-06-27)
- replace create-react-context with the native React Context API (39b825c)
- upgrade react-textarea-autosize (58ac7b7)
5.3.0 (2023-03-10)
- fix export (399e9c6)
5.2.0 (2022-11-04)
- dont compute maxHeight of popover on horizontal placement (581fc6c)
- offset is different from client rect (15709f4)
- omit defaultPlacement (25447fd)
- should not consider another side arrow position (c8350f1)
- add left placement strategies (04cdd75)
- add right / left placement style (0c70168)
- add right placement strategy (80a851f)
- add top and bottom placement strategy (deadab0)
- make arrowPosition consider top and left (0998cce)
- make defaultPlacement changeable for anchored component (5e84517)
- move getPosition logic into placement strategy (51f4d62)
- simplify logic (ff78d60)
5.1.0 (2022-10-21)
- add test case (2c3e460)
5.0.1 (2022-05-26)
5.0.0 (2022-05-13)
- CI never stop running caused by watch mode (2da930d)
- clean code (d54c000)
- fix code review (830c305)
- fix props name (53f3719)
- fix scss file indentation (176bc6f)
- lint error (e1b1bb1)
- lint error (1262b03)
- lint issue (488503d)
- linter errors in Radio.scss (9cf2722)
- package.json: fix generate-icon-components script (7b95c83)
- remove build job (94dbe0d)
- scss stylelint errors (ff68819)
- should not asideControlClickableOnDisabled if not disabled (673ad51)
- add .nvmrc for node version (4c0a1b9)
- add "conventional-changelog-cli to package.json (ad22c1f)
- add
add-location
icon (39aa011) - add canary release workflow (fa17c3d)
- add ci workflow with codecov (5f56f15)
- add Location icon (d7a5cc3)
- add props for RadioSelectList (984dedc)
- add radio-empty.svg and radio-selected.svg (ad75ef6)
- add release workflow (6620403)
- add SvgRadioEmpty and SvgRadioSelected (cdfb6d4)
- change
fill
value to currentColor (b2e51ca) - change AddLocation icon (8ad1d7b)
- change Location icon (ad2600b)
- CheckboxEmpty: rename radio-empty with checkbox-empty (369a6b3)
- CheckboxHalf: rename to CheckboxHalf (33cf1da)
- CheckboxSelected: rename to CheckboxSelected (0883c8d)
- deleted unused deploy.sh (c06773e)
- deleted unused travis cd (c4a99b1)
- export RadioSelectList and RadioSelectOption (825d0b1)
- implement Radio component (df4e347)
- implement RadioSelectList and RadioSelectOption (d595eaf)
- remove fixed
fill
color (87ba9ce) - specify node maximum version in package.json (86aee36)
- update release workflow (00fba6d)
- update release workflow with
iCHEF/npm-install-with-cache-action@v1
(40cfe3a) - use ichef npm-install-with-cache-action to install packages (3ff5ed1)
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- [Core] Should not apply asideControlClickableOnDisabled if not disabled. (#332)
- [Core] Add new icon: Location. (#333)
- [Core] Add Radio component (#338, #339)
- [Form] Add RadioSelectList and RadioSelectOption (#340)
- [Core] Rename radio-empty.svg to checkbox-empty.svg (#337)
- [Core] Rename radio-half.svg to checkbox-half.svg (#337)
- [Core] Rename radio-selected.svg to checkbox-selected.svg (#337)
- [Core] Fix the svgr/cli version at v5.5.0(#347)
- [Core] Remove deprecated behavior in Popup, which will treat element of
buttons
as props to<PopupButton>
, ifelement.type
is not<PopupButton>
. (#276) - [Core]
<Popup>
is revised to match latest design spec: (#293)- no longer supports horizontal buttons.
takes a{ title, desc }
object format formessage
prop.- supports optional
title
prop. (from #300, dropping change from prev line.) - uses
size
prop instead oflarge
boolean prop. - drops the following props:
customMessageNode
,messageTitle
,messageDesc
,buttonsDirection
.
- [Core] when message prop of
<Popup>
is a string, pass it to<PopupMessage>
astitle
prop. (#279) - [Core] Change
<Icon>
implementaion from icon-font to inline-svg. (#280) - [Core] Upgrade
eslint-config-ichef
packages tov8.0.0
. (#290) - [Core] Use node 12 in travis CI. (#290)
- [Core] Add
titleRightArea
on<Section>
/<List>
. (#297) - [Core] Fix popover placement when there is no enough space on top or bottom of content. (#303)
- [Core] Change
<EditableTextLabel>
onTouchStart event handler to onTouchEnd event handler (#310) - [Core] Disable dropdown icon when
<SelectRow>
is ineditable. (#320) - [Core] Add
skip
prop onclosable
mixin. (#324) - [Core] Add
refreshOnWindowResize
anddistanceFromAnchor
prop onanchored
. (#324) - [Core] Add
postfix
prop on<TextInput>
/<TextInputRow>
. (#327) - [Core] Remove css property. (#329)
- [Core] Add
muted
prop on following component: (#278)<Button>
<Checkbox>
<SearchInput>
<Switch>
<TextInput>
<TextLabel>
<ListRow>
- [Core] Add new icons:
takeout
(#283),more
(#287),table
&order-sheet
(#323). - [Core] Add
topArea
prop to<List>
. (#311) - [Core] Add
people
in<Icon>
. (#313) - [Core] Add
asideClickableOnDisabled
prop to<RowComp>
. (#325)
- [Core] Allow passing remaining props to wrapper DOM element. (#267, #269)
- [Core] Add props for default popup UI layout and update tests. (#271)
- [Core] Reduce icon font to only WOFF and WOFF2 formats. (#266)
- [Core] Add sort icon. (#268)
- [Core] Add announce icon. (#272)
- [Core] Add
large
prop to<Popup>
. (#273) - [Core] Add
messageTitle
andmessageDesc
prop to<Popup>
.
- [Core] Fix that we have to click twice to close gyp-closable after click in wrapped component. (#262)
- [Build] Fix deploy script to push back converted tags; bump minor for canary builds. (#261)
- [Core] Update
<ListRow>
&<List>
styles for supporting nested list better. (#257) - [Core] Fix
rowProps
used to be replaced in mixinformRow
.(#258)
- [Storybook] Upgrade
@storybook
packages tov5.3.2
.
- [Storybook] Add and configure storybook docs addon.
- Add GitHub Action to auto assign reviews and assignee on PR opened and base on develop. (#243)
- [Core] Add new icon
mapping
. (#241)
- [Storybook] Revamp all storybook docs with new
addon-docs
. (#239, #246 - #249, #251 - #253) - [Core] Update
<List>
,<Section>
to supporttitleSize
option. (#242) - [Storybook] Update
getPropTables.js
to fix prop table on doc page. (#244) - [Storybook] Modify icon set source of
Basic icons set
page fromconfigs/fontello.config.json
. (#241) - [Storybook] Fix Icon props doc page. (#241)
- [Core] Fix centered modal width. (#254)
- [Core] Fix anchored popover top position when document is scrollable. (#250)
- [Core] [Form] [ImageEditor] Peer dependency changes:
- Change from
@babel/runtime-corejs2
to@babel/runtime-corejs3
.
- Change from
- [Core] [Form] [ImageEditor] now exports CommonJS modules via "main" and ES modules via "module" field in
package.json
. - [Core]
<ColumnView>
:- The
bottomPadding
prop is removed. Please usebodyPadding
prop and pass an object instead.
- The
- [Core]
<Modal>
:<Modal>
is refactored to render a<ColumnView>
as its inner layout.<Modal>
no longer takessize
andbodyClassName
props.- The
bodyPadding
prop now takes an object and is passed to<ColumnView>
.
- [Form]
<SelectList>
:- Rename prop
values
tovalue
, and it receive a single value directly when is notmultiple
, and receive an array whenmultiple
is true. - Rename prop
defaultValues
todefaultValue
, and it receive a single value directly when is notmultiple
, and receive an array whenmultiple
is true. - Rename prop
allOptionLabel
tocheckAllLabel
.
- Rename prop
- [Form]
<SelectRow>
:- Rename prop
values
tovalue
, and it receive a single value directly when is notmultiple
, and receive an array whenmultiple
is true. - Rename prop
defaultValues
todefaultValue
, and it receive a single value directly when is notmultiple
, and receive an array whenmultiple
is true. - Rename prop
asideAll
toasideAllLabel
. - Rename prop
asideNone
toasideNoneLabel
.
- Rename prop
- [ImageEditor] The instance method
getImageCanvas()
of<ImageEditor>
now returns a<canvas>
in the same dimension as the editor itself by default.
- [Core] [Form] [ImageEditor] setup
warning@4.0.3
. - [Core] Add the
inline-info
icon to the selections of<Icon>
. - [Core] Add
flexBody
prop for<ColumnView>
(and also<Modal>
) to render its body as a Flexbox.
- [Core] Update
<Section>
title style and increase bottom margin. - [Core] Remove the only test cases that uses
sinon
; removesinon
from dev dependencies. - [Form] Update
<SelectRow>
and<SwitchRow>
to adpat vertically-reversed appearance as<TextInputRow>
in v3.0. - [Form] Add
desc
prop to<SelectOption>
- [form]
<SelectRow>
now considers empty string''
as unset. - [Storybook] Update examples for refactord
<ColumnView>
and<Modal>
.
- [Build] Upgrade to Babel v7.4.4 +
core-js
v3 to provide better polyfilling. - [Build] Upgrade to Lerna v3.16.4; changes publish steps.
- [Build] Upgrade to
node-sass@4.12.0
for Node v10+ support. - [Build] Upgrade to
stylelint@^10.0
,autoprefixer@^9.6
andpostcss-loader@^3
for better CSS support. - [Build] Upgrade other dev dependencies to address security alerts.
- [Core] Add
verticalOrder
prop to<Text>
so you can swap the position ofbasic
andaside
. Also applied torowComp()
mixin. - [Core] Rewrite
<TextInput>
to match latest design, offering single-line<input>
, multi-line<textarea>
and supports custom rendering via render prop. - [Form]
<TextInputRow>
now renders the new<TextInput>
and forwards almost every prop to it, without a ref to its inner input. - [Core] Add
<Avatar>
to display an image.
- [ImageEditor] Add new instance method
getImageCanvas()
to get current image canvas element. - [ImageEditor] Add new props
scale
&onScaleChange
to make scale value of editor can be controlled. - [Core] Refactored
closable()
mixin to detect inside/outside clicks via React SyntheticEvent mechanism instead of listening native events from DOM. - [Storybook] Fix mangled component name in storybook build. (#203)
- [Storybook] Update examples for core
<TextInput>
and form<TextInputRow>
. (#203) - [Core] Change
rowComp()
to allow the appearance of<Avatar>
alongside the text. (#208) - [Core] Change
<Checkbox>
to display<Avatar>
. (#208) - [Form] Change
<SelectRow>
and<Checkbox>
to display<Avatar>
. (#208) - [Storybook] Add examples for
<Avatar>
and the list components with<Avatar>
s. (#208)
- [Core] Change
<SearchInput>
behavior:- Can be controlled now, via props
value
,onChange
andonReset
. - No longer trigger
onSearch
when input blur by default. You can enable this behavior by setting propsearchOnInputBlur
betrue
- New prop
searchOnInputChange
, when it istrue
,onSearch
will be triggered every time after input changed. The default value isfalse
. - New prop
blockDuplicateValueSearch
, when it istrue
,onSearch
will not be triggerd if input value is same with last time searching. - New prop
blockEmptyValueSearch
, when it istrue
,onSearch
will not be triggerd if input value is empty. - Rename prop
input
to beinputProps
.
- Can be controlled now, via props
- [Core] update
<SearchInput>
styles. - [Core] Add centered prop into Modal to make it on top of screen by default (#196)
- [Core] Shorten width for multiple modal. (#197)
- [Core] Adjust padding-bottom of modal and column view. (#198)
- [Core] Fix
closable()
mixin to or not to callonClose()
correctly on inside-clicks. (#193)
- [Core] [Form] [ImageEditor] Peer dependency changes:
- Switch from
babel-runtime
to@babel/runtime-corejs2
. (#185) - Upgrade to
react@^16.6.0
andreact-dom@^16.6.0
. (#187)
- Switch from
- [Core]
anchored()
HOC mixin no longer usesReactDOM.findDOMNode()
to find the actual node for you. You should now manually set ref to both anchor element and wrappred element instead. Please read #189 for more info.
- [Core] Remove flow type annotation. (#180)
- [Core] Adapt React Portal in
renderToLayer()
HOC mixin. (#188) - [Core] Refactor
anchored()
mixin to extrac its positioning logic, and adapt memoize approach to not rely on lifecycle methods. (#190) - [Core] Refacto
closable()
mixin to reduce useless render calls. (#192) - [Storybook] Upgrade to
@storybook/react@^4.0.0
to support Babel 7. (#187) - [Build] Upgrade to
enzyme@3.7.0
; fix tests for that. (#183) - [Build] Upgrade to Babel v7; switch to project-scope Babel config. (#185)
- [Build] Upgrade to
jest@23.6.0
to support Babel 7. (#185) - [Build] Upgrade to
eslint@5.8.0
,eslint-config-ichef@2.0.1
andeslint-config-airbnb@17.1.0
. (#186) - [Build] Upgrade to
react@16.6.1
andprop-types@15.6.2
. (#187)
- [Core] Add new
<SplitView>
and<SplitViewColumn>
. (#178) - [Storybook] Add examples for
<SplitView>
and its usage with<ColumView>
. (#178)
- [Core]
closable()
mixin is now triggered ontouchend
events on touch devices. (#176) - [Core] Update
<ColumnView>
layout styles; allow overriding bottom padding. (#178) - [Storybook] Update examples for
<Popover>
to add a row of hyperlink<Button>
. (#176) - [Storybook] Split stories into different package-based sections. (#177)
- [Core] Add new
<Section>
as a general content wrapper with optional title and description text. (#166) - [Form] Add the
showCheckAll
prop to disablecheckAll
option in<SelectList>
. (#170) - [Form] Let
<SelectList>
accept thetitle
anddesc
props. (#171)
- [Core] Update
<List>
to wrap its own body with<Section>
. (#166) [Core] Update<ListRow>
to remove vertical margin from nested<List>
. (#166)- [Core] Remove vertical margin from
<List>
by context when placed inside<ListRow>
or<Popover>
. (#169) - [Storybook] Add examples for
<Section>
. (#166) - [Core] Removed padding in
<ColumnView>
body. (#167) - [Core]
<HeaderRow>
can now disable an area by settingfalse
to it. Styles updated. (#167) - [Core] Update colors for
<ListRow>
. Add v3 color plates. (#172) - [Storybook] Upgrade
@storybook/react
and its addons to3.4.11
. (#173)
- [Core] Fix
anchored()
mixin horizontal alignment when anchor is larger than component applying the mixin. (#168) - [Storybook] Fix prop tables for each component. (#173)
- [Form] Add new
SelectOption.typeSymbol
for element type comparison. (#157) - [Form] Add
getElementTypeSymbol
helper for getting type symbol from React Element. (#157)
- [Core] Update styles to match design for:
<List>
. (#159) - [Core]
<Button>
s are nowbold
by default. (#159) - [Core] The following components now preserve white spaces: (#160)
<Text>
(which is in most row-components)<List>
(in title and desc)<ListRow>
(in desc)<Tag>
<Tooltip>
- [Core] Input inside
<EditableBasicRow>
does not blur on component status change anymore. (#161) - [Build] Update deploy steps. (#164)
- [Form] Fix Popover inside
<SelectRow>
should not auto-close under multiple selection mode. (#158) - [Core] Fix
<ListRow>
footer should not render empty<p>
tags. (#159) - [Core] Fix the bug that the bottom border of the title in the normal
<List>
lacks a right margin. (#163)
- [ImageEditor] Add new package
@ichef/gypcrete-imageeditor
. (#148, #149, #150, #151) This new component supports:- Creating a cropping rectangle from an image in given dimension
- Adjust image scaling with a slider
- Customizable scaling range
- Display a placeholder when image isn't specified
- Display a loading animation when
loading
is set
- [Storybook] Add examples for
<ImageEditor>
. (#150) - [Form] New
multiLine
mode for<TextInputRow>
. It renders a<textarea>
instead,and auto-grows as user types. (#155) - [Storybook] Add examples for multi-line usage of
<TextInputRow>
. (#155)
- Refactor to reuse shared webpack configs between packages. (#148)
- Allow React 16.x as peer dependency. (#153)
- [Core] Fix some content might exceed
<Popover>
container. (#147) - [Form] Fix
<Popover>
inside<SelectRow>
should not be closed until user clicks on the checkbox. (#147)
- [Core] Add a function to close the
<Modal>
when users click<Overlay>
and the onClose prop exists. (#140)
- [Core] Update styles for
<ListRow>
to match design in nested lists. (#141) - [Core] Update
<Button>
to support rendering into custom HTML tags. (#144) - [Storybook] Add the showcase of two overlaying
<Modal>
. (#140) - [Storybook] Add examples for nested
<List>
. (#141)
- [Core] Fix
<Modal>
not rendering its content (#139) - [Core] Remove the
Closable
HOC from<Modal>
to prevent unexpected closing behaviors occur when more than one modals are open. (#139)
- [Storybook] Refine the showcase of
<Modal>
component. (#139)
- [Core] Migrate
<Modal>
from ic-framework-react and ic-framework. (#137)
- [Core]
<HeaderRow>
now acceptschildren
and renders. (#136) - [Form]
<SelectOption>
now accepts and passes unknown props to its inner<Checkbox>
. (#136)
- [Core] Add new
<PopupButton>
which renders a pre-configured<Button>
that should be used inside a<Popup>
. (#127) - [Core] Add
buttonsDirection
prop to<Popup>
to align its buttons either vertically (as default) or horizontally. (#127)
- [Core] Update styles for
<Popup>
to better match design. (#127) - [Core] Refactor
<Popup>
to simplify codes. (#127) - [Storybook] Update examples for
<Popup>
. (#127) - [Core] Remove
z-index
from components withrenderToLayer()
HOC mixin. They will now be stack based on the stacking context on the base layers. (#128) - [Storybook] Fix the showcase of
<Tooltip>
component. (#129) - [Core] Change aside label of
<Text>
to inherit parent color but with 70% opacity. (#131) - [Storybook] Update examples for
<Button>
(#131) - Fix CI not aware of failing tests with
--bail
workaround. (#132) - Upgrade dependency packages. (#133)
- [Core]
<Popup>
is no longer wrapped withclosable()
mixin, will not respond to ESC key now. (#127) - [Core] Default color for
<Button>
is now black. (#131) - [Core] Remove
primary
prop from<Button>
in favor of cross-componentbold
prop onrowComp()
. (#131)
- [Form] The popover inside a single-value
<SelectRow>
should now close automatically after click on any option. (#125) - [Form] Update examples for
<SelectRow>
. (#125)
- [Core] Fix
<Popover>
should only scroll its container. (#125)
- [Form] Update
<SelectRow>
to use newdropdown
icon. (#124)
- [Core] Fix
<Checkbox>
not displaying correct icons. (#124)
- [Core] Added 7 new icons: (#121)
- dropdown
- remove-element
- inline-question
- first-page
- prev-page
- next-page
- last-page
- [Core]
closable()
HOC mixin now takes runtime options via props. (#118) - [Form]
formRow()
HOC mixin now takeswithRef
option to maintain a ref to its wrapped component. (#118) - [Form]
<TextInputRow>
and<SwitchRow>
now acceptschildren
prop, will render inside<ListRow>
. (#118) - [Form]
<TextInputRow>
now exposes ref to inner<input>
viagetInputNode()
method. (#118) - [Core] Updated 3 icons: (#121)
- radio-empty
- radio-half
- radio-selected
- [Core] Fix classNames injected by
<IconButton>
will be overridden with customclassName
. (#117) - [Core] Fix
<Popover>
should havemax-height
while making its content scrollable. (#120) - [Form] Fix unset
<SelectRow>
showing 'All' when it has no option. (#120) - [Form] Fix unset
<SelectRow>
label should be tinted. (#120) - [Form] Fix a non-multiple
<SelectRow>
with only one<Option>
showing All when the only option is checked. (#122)
- [Form] Add transition to text in
<TextInputRow>
when being focused. - [Core] Add
tinted
prop for<IconButton>
for a half-transparent icon.
- [Form]
<SelectList>
now passes sorted values viaonChange()
- [Form]
<SelectRow>
now caches values internally, and use that to control<SelectList>
- [Form] Customize display labels for
<SelectRow>
withasideAll
,asideNone
andasideSeparator
. - [Form] Extract
parseSelectOptions()
helper to read from children of<SelectOption>
s. - [Core]
<ListRow>
stops forwarding status props to children via context. This is changed againstv1.2.0
.
- [Form] Fix input inside
<TextInputRow>
should take up whole space. - [Form] Fix input inside
<TextInputRow>
should not have background. - [Core] Fix click events are ignored if fire from components inside
closable()
HOC mixin configured to close on inside click.
- Fix
@ichef/gypcrete
not publishing anything. (#110)
- Fixed CSS bundle requesting font files from broken path. (#108)
- Upgrade webpack to v3 (#101)
- [Core] Fix aside label for
<Text>
should turn white inside a highlighted<ListRow>
. (#104) - [Core] Adds hover background for
<ListRow>
. (#104) - [Core] Fix vertical padding for
<HeaderRow>
. (#104) - [Form] Add
<SelectRow>
which lets user to pick options from a<SelectList>
rendered inside a<Popover>
. (#107)
- Migrate and refactor
<Popover>
, exporting an anchored one by default. - Add new
closable()
HOC mixin to determine when to “close” on Esc key or on any key/touch on document. - Add new
<SelectList>
to handle single or multiple selects by rendering a check list. - Add new
<SelectOption>
to provide options for<SelectList>
.
- Gypcrete is now a multi-package mono-repo built on Lerna.
It's currently split into:
- core (publishes to
@ichef/gypcrete
) - storybook (publishes to gh-pages of this repository) But this should not affect the existing package, as the codes are untouched with this change. Please refers to README for details.
- core (publishes to
- Upgrade storybook libraries to v3.2.12, also fix the API changes of
storybook-addon-info
. (#93)(#95) - Deprecate
escapable()
mixin in favor of newclosable()
. - The
padding
option foranchored()
is renamed toedgePadding
for better understanding. - Upgrade webpack of main package to v3. (#101)
- Upgrade jest to v21.2. (#103)
- [InfiniteScroll] Attach scroll listener when the
scrollNode
is existing. - [storybook] Fix stories.
<Tooltip>
now default-exports an anchored version.<AnchoredTooltip>
is removed from bundle.
<EditableBasicRow>
now passes all unknown props to its underlying input.
- Fix
<body>
to usesystem-ui
font family. <List>
title is now bold.<ListRow>
now has 4px padding vertically and the same 16px horizontally.- Minimal height for a row component is removed, while the minimal row height is maintained at 48px by:
- 32px minimal height for visual element
- 4px + 4px vertical padding of
<rowComp(Component)>
- 4px + 4px vertical padding of
<ListRow>
<EditableTextLabel>
filters outstatus
from its inner<TextLabel>
when it's in edit mode.<Text>
adds abold
prop to render its basic text in bolder font.<ListRow>
now has its owndesc
anderrorMsg
. It also takes status props, but mostly pass to children via context for now.- Refactors
prefixState
intogetStateClassnames
so the state logic can be shared. - Deprecates the
row-padding
utility icon.
<Button>
now renders a<div>
instead of<button>
to address a Safari bug where applies faulty Flexbox rendering to<button>
tags.
- API changes to
<EditableTextLabel>
:inEdit
prop now defaults toundefined
, which means the component is uncontrolled.- When
inEdit
is set eithertrue
orfalse
, the component is controlled prop is removed in favor of newonEditRequest
onDblClick
callback. Users can decide when to update the edit state.
- Behavior changes to
<EditableTextLabel>
:- Custom element passed via
icon
now renders correctly under edit mode - Double touch on mobile devices also triggers
onDblClick
callback. - If component is uncontrolled, it auto enters edit mode on double clicks/touches and leaves on edit ends.
- Custom element passed via
- Add
<HeaderRow>
which is split intoleft
,center
andright
tiers. - Add
<List>
section that supports a title and a description block. - Add simple
<ListRow>
with a Flexbox body for row components. - Add
<ColumnView>
which holds aheader
above and afooter
below its main body area. - Add z-index
z()
sass helper. (Migrate from iC-framework) - Add
escapable()
mixin, listeningEsc
key to triggeronEscape
prop. - Add page overlay component,
<Overlay>
. - Add
<Popup>
component. - Add 3 new icons for menu page purpose.
- Improved tests coverage. (especially mixins & utils)
- Font weight of
<body>
is now set as 400 by default. <Button>
active/hover colors are slightly darken.<Button>
now takes aprimary
prop to make it bolder.<EditableTextLabel>
only getsautofocus
when it's alsoinEdit
.
- Set publish registry with
publishConfig
option.
- [deploy] Fix git auth while pushing new tag.
- [deploy] Commit files with
--all
option.
- Add Apache License 2.0 for open-source.
- Add
Installation
andUsage
contents in README. - A new
<EditableBasicRow>
containing input logics is split from<EditableText>
. (#63) Also supports choosing frominput
ortextarea
for its inner tag. (#64) - Add shields on README. (#66)
- Add
Installation
andUsage
contents in README. <EditableText>
is simplified to only hold status-related logic. (#63)<TextInput>
now passes all unknown props to<EditableText>
for convenience. (#63)<EditableTextLabel>
is now the only component which manages the input value change withonEditEnd
callback, as well asEnter
/Esc
key presses and input blurs. (#63)- Flow type annotations for
<Editable-*>
components and<TextInput>
. (#63) - Turn CI service to TravisCI. (#66)
- Update
deloy.sh
andghpages.sh
scripts to fit TravisCI. - Upgrade
node-sass
to v4.5.3 to fix error on Node 8. - Replace
jest-junit
reporter by Coveralls, send coverage data to Coveralls after CI build.
<Text>
now displaysbasic
label in multiple lines. If you want to truncate it to single line with ellipsis, pass<TextEllipsis>
instead. (#60)
- Add vscode workspace settings, included
search.exclude
option. (#48) - Add Flow type configs.
- Change jest
testRegex
pattern, run test files in any__tests__
folder with.test
or.spec
suffix only. (#48) - Rename webpack config from
webpack.prod
towebpack.dist
. (#48) - The following config files are moved to
configs/
folder: (#48, #55).babelrc
.eslintrc.yml
.eslintignore
.stylelintrc.yml
fontello.config.json
- Add
fillSpace
prop in<InfiniteScroll>
, auto fill spaces withonLoadMore
callback if its height is smaller than 2 times of container's height. (#57) - Remove
disabled
prop in<InfiniteScroll>
. (#57) - The
basic
prop of<BasicRow>
is no longer required. (#58) - The following modules are now type-annotated by Flow: (#39, #58)
- All helpers under
/utils
- Visual elements of
<BasicRow>
,<Icon>
,<StatusIcon>
,<Tag>
,<Text>
.
- All helpers under
- Use
>=
for versioning inengines
fields.
- Migrate
@kadira/storybook
to@storybook/react
. (#52) - Add
<InfiniteScroll>
to perform an action when scrolls a specified distance from the bottom of page. (#45)
- Support react element in
rowComp()
's icon prop. (#45)
- Add new
download
icon.
- Add
<SwitchIcon>
to be used as a 64x32 icon. - Add
<Switch>
row component. - Add
<EditableText>
visual element which has an<input type="text" />
inside. - Add
<TextInput>
which contains<EditableText>
and ignores normal text props likebasic
,tag
andaside
. - Add
sinon
testing package to handling stub tests. (#38) - Add
EnhancedPropTypes
helper. (#38) - Add
<EditableTextLabel>
which can be turned into edit mode withinEdit
prop.
<IconLayout>
can now be tooltip-free by turning it off.- Fix tests in
<Checkbox>
. <BasicRow>
can now takechildren
to render extra content.- Lighten hover & active background color of row components. (#38)
- Filter out color and solid props in
<IconButton>
, they should be empty. (#38) - Non-minified row components now take equal space in a flex row.
withStatus()
mixin now takeswithRef
option to hold ref to rendered component.
- Add
fontello.config.json
at project root. - Add inventory icons(
iventory-category
andinventory-item
). - Add @kadira/storybook to replace
demo/
. - Create
examples/
folder and migrate component docs to stories. - Create
addPropsTable()
custom addon to show component's propTypes in table, which modified fromaddon-info
. - Add
storybook
env in babelrc, which included cjs transpiler. - Deploy built storybook to
gh-pages
branch with runningnpm run ghpages
. (#35) - Add demo link in README.
- Ignore
public/
path in eslint.
- Remove
demo/
folder, all examples migrated toexamples/
. - Remove webpack base & demo config, only leave
config/webpack.prod
. - Remove demo related dev dependencies and
react-hot-loader
.
- Vertical padding for row components are now
8px
instead of4px
. - Padding for
<SearchInput>
is8px
both vertically and horizontally.
<RowCompBody>
is removed due to padding change. [ref].
- Add
<Checkbox>
withindeterminate
prop support. - Add
<IconCheckbox>
for icon-only checkbox. - Add test of
/index.js
to check if every component undersrc/
is exported.
<SearchInput>
now caches last-notified search value inside to prevent duplicated notifications.<SearchInput>
now tries to notify search upon reset button click.- Fix reversed flex alignment for
<RowComp>
. - Fix
<Tooltip>
not showing its content.
- Fix
<SearchInput>
was not included in distribution bundle.
- Root
font-size
is changed to 16px to maintain compatibility with iC-framework.
- Install
prop-types
package independencies
as official recommended. - Add new search and CRM icons.
- Add new
<SearchInput>
. - Prefix component class names with
prefixClass()
helper.
- Upgrade
react
&react-dom
to v15.5. - Migrate
PropTypes
toprop-types
package instead of import it from mainReact
object. - Migrate
React.createClass
tocreateReactClass
fromcreate-react-class
package. - Upgrade
enzyme
to 2.8.2 to support React v15.5, also installreact-test-renderer
. icState()
is renamed toprefixState()
and add prefix withprefixClass()
helper.- ClassName and component prefixes are now
gyp-
- Remove deprecated
react-addons-test-utils
package.
- Fix deploy script that affects
npm publish
- Deprecates
0.6.0
on npm, since that was published with wrong contents by accident.
-
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 bydocument-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.
- Improve interaction on Jenkins:
- Generate jUnit test report.
- Generate Cobertura coverage report.
- Run
npm publish
withNPM_TOKEN
env variables indeploy.sh
.
<Tag>
now adapts to the color of its parent more actively.- Fix
<Button>
should turn red on error state wrapIfNotElement()
helper now takes an extravia
param to change howcontent
is passed to theWrapper
component.- You can now strip the BEM block from output by calling
bem.toString({ stripBlock: true })
.
- Add html-webpack-plugin to serve demo bundles.
- Add webpack
ProgressPlugin
to show build progress.
src/Text/*
is moved out to justsrc/
to maintain a simple, flat directory structure and prevent import confusion. (See 542c7b9)- Babel-transformed files in
lib/
andes5/
no longer contain comments. <BasicRow>
no longer handles the null-basic-prop situation, asbasic
prop was marked as required.- Fixes Jest running on environments under a dot-directory.
- Renaming
doc/
folder ->demo/
.config/webpack.doc.js
->config/webpack.demo.js
.- BABEL-ENV,
server
->demo
. - bundled assets in dist,
bundle.(js|css)
->gypcrete.(js|css)
.
- Start the demo server with
npm run demo
, now thestart
script is an alias ofdemo
.
-
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 withwithStatus()
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 anBEMFactory
instance. -
Add
babel-plugin-module-resolver
andeslint-import-resolver-babel-module
to config module alias.
- Move
babel-runtime
(required bybabel-plugin-tranform-runtime
) topeerDependencies
instead ofdevDependencies
. Because our Babel-transformed ES2015 modules does require it.
- Add deploy script to work with Jenkins. It'll deploy to:
- New commits in
develop
-->dist
branch - New commits in
master
--> npm
- New commits in
- Add Jest for running tests.
- Add first test file for
src/index.js
- Update
.babelrc
to ignore test files on build and transform modules on test. - Switch Babel preset to
babel-preset-env
frombabel-preset-latest
, since Babel recommends the former.
- Add
eslint
andeslint-config-ichef
rules for linting JS codes. - Setup
.eslintrc.yml
to sepecify ESLint env and source type. - Add
eslint-loader
to show linter results ASAP during development. - Add
.sublimelinterrc
to exclude folders from being linted in SublimeText.
-
Basic Webpack 2 configs, working with the following loaders:
- Babel (ES2015, 2016, 2017 & Stage-2)
- Sass
- Postcss + Autoprefixer
-
npm run build
should compilesrc/
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/
andes5/
modules. -
Add
webpack-dev-server
hosting documents fromdoc/
folder, manually sepecifydoc/index.html
as dev server root. -
Add
react-hot-loader
to enable HOT on React components.