Releases: palantir/blueprint
v1.23.0
π Highlights: New MultiSelect<T>
and Omnibox<T>
components, new Hotkey
props, new TimePicker
props
π Latest docs: blueprintjs.com/docs
@blueprintjs/core 1.23.0
- π NEW
Hotkey
AddallowInInput
,disabled
,preventDefault
,stopPropagation
props (#1304) - NEW
Menu
AddulRef
prop (#1319) - NEW Add eraser icon (#1326)
- Fixed
Tag
FixHTMLAttributes
type (#1342) - Fixed
NonIdealState
Improve title centering (#1329) - Fixed Fix
.pt-navbar
mention, add dom4 script to HTML example (#1337) - Fixed Improve
.pt-control
support within form groups (#1336) - Changed
Dialog
Reduce top position (#1338) - Updated
EditableText
Improve tests foronConfirm
andonCancel
behavior (#1310)
@blueprintjs/table 1.20.0
- Fixed Disable the
RoundSize
component wrapper (#1333) - Fixed
TruncatedFormat
Fix popover size issues leading to infinite loops (#1344)
@blueprintjs/datetime 1.19.0
- π NEW
TimePicker
AddedminTime
andmaxTime
props (#1272) (π© @jacekjagiello) - Fixed
DateRangePicker
Disable out-of-range shortcuts (#1311) - Fixed
DateInput
No longer defaults to Today with time precision enabled (#1349)
@blueprintjs/labs 0.4.0
v1.22.0
π Highlights: TS 2.4-compatible typings, Table
onVisibleCellsChange
prop
π Latest docs: blueprintjs.com/docs
@blueprintjs/core 1.22.0
- π Fixed TS 2.4-compatible typings for
React.HTMLAttributes
overflowY
inCollapse
(#1296) (π© @sandersn) - Updated
Keys
AddedkeyCode
value for "delete" (#1321) (π© @invliD)
@blueprintjs/table 1.19.0
- π NEW
onVisibleCellsChange
prop to know which cells to lazy load next (#1268) - Fixed
Utils.times
now uses a simple loop instead of a map (#1282) - Fixed
HeaderCell
Set proper deprecated package version formenu
prop (#1289)
@blueprintjs/datetime 1.18.0
- Fixed
TimePicker
Shownot-allowed
cursor whendisabled
(#1290) - Fixed
DateInput
Properly deselect date when time precision is enabled (#1300) - Fixed
DateRangeInput
Show empty fields whenvalue
is[undefined, undefined]
(#1302)
@blueprintjs/labs 0.3.0
- Changed Replicate
@blueprintjs/core
directory structure (#1316)
v1.21.0
π Highlights: TagInput
component, Table
column reorder handles, Tab/Enter to navigate Table
focus cell
π Latest docs: blueprintjs.com/docs
@blueprintjs/core 1.21.0
- NEW
Tag
onRemove
callback now receives full tag props as second argument (#1267) - NEW
Portal
now receivesblueprintPortalClassName
context property (#1244, #1245) (π© @jrafidi)- This is beneficial if you are displaying dialogs within a shared component/larger plugin and want to scope your styles.
@blueprintjs/labs 0.2.0
- π NEW
TagInput
component (#1232)- Renders
Tag
s inside an input, followed by an actual (ghosted) text input. - On
Enter
, the inputted text is displayed in a new tag. - This component is fully controlled, and all tags are individually customizable via
tagProps
.
- Renders
- Fixed
QueryList
(formerlyInputList
) no longer invokesonActiveItemChange
if list is empty oractiveItem
isundefined
(#1256) (π© @k-simons) - Changed
InputList
is nowQueryList
andΒ has a new directory structure for consistency with other packages (#1243)
@blueprintjs/table 1.18.0
- π NEW
Column
now has reorder handles when interaction bar enabled (#1250)
- π NEW
Table
now supports focus-cellTab
andEnter
microinteraction behavior (#1251) - Fixed
EditableCell
now updates text in response to controlledvalue
prop change (#1239)
Documentation
v1.20.0
π Highlights: Table
batch cell rendering and other performance improvements
π Latest docs: blueprintjs.com/docs
@blueprintjs/core 1.20.0
- NEW Added four UI icons (#1221)
- Bank account, IP address, cell tower, ID number
@blueprintjs/datetime 1.17.0
- NEW
TimePicker
disabled
prop (#1219) (π© @AlexMarvelo)
@blueprintjs/table 1.17.0
- π NEW
Table
cells are now batch-rendered within each frame when scrolling (#1201) - NEW
ColumnHeaderCell
/RowHeaderCell
index
prop, which is passed to callbacks if provided (#1210)- No more having to instantiate new anonymous callback functions when rendering either of these components; the
index
can be passed directly to a persistent callback function instance.
- No more having to instantiate new anonymous callback functions when rendering either of these components; the
- NEW
ColumnHeaderCell
/RowHeaderCell
renderMenu
proprenderMenu
is an example of a callback that henceforth can be instantiated only once, because it receives the row/columnindex
as a parameter.menu
is now deprecated in favor ofrenderMenu
(#1218)
- NEW
getShallowUnequalKeyValues
andgetDeepUnequalKeyValues
utility functions (#1222)- These functions streamline debugging of
shouldComponentUpdate
methods; they will thus be more useful for Blueprint contributors than for Blueprint consumers.
- These functions streamline debugging of
- Fixed
Table
componentWillReceiveProps
now responds to more prop changes and updates the component accordingly (#1165) - Fixed
ColumnHeader
/RowHeader
shouldComponentUpdate
issues (#1215) (#1217)
v1.19.0
π Highlights: Select
π± , Table
re-rendering performance refactors
π Latest docs: blueprintjs.com/docs
@blueprintjs/core 1.19.0
- NEW
Tabs2
onChange
handler now receivesevent
as its third argument #1156 - NEW
NumericInput
onButtonClick
prop is invoked when +/- buttons are clicked (either via mouse or keyboard) #607 (comment), #1178 - Fixed
.pt-card
hover transition flicker #1192
π @blueprintjs/labs 0.1.0
@blueprintjs/labs
is a new package for in-development and unstable React components owned by the Blueprint team. Each new release should be considered breaking, and we will promote components to core
once they reach a certain level of stability.
This first release provides two new components (see PR #1159):
-
InputList<T>
is a generic higher-order component for managing a queryable list of items<T>
is the type of one item in the array; all props are parameterized on this so it speaks your language, no translations required. this has the side effect of making more props required, as we can't provide even default implementations of filtering.- supports filtering items individually or on the entire array
- provides generic keyboard selection and interaction (
up
,down
andenter
keys) - defers all rendering logic to a
renderer
callback prop that receives a set of props that can be attached to elements to configure the above interactions
-
π
Select<T>
is a generic component for selecting a single item from a list
- again,
<T>
is the type of an item in the array and props are parameterized to use it - analogous to the HTML
<select>
element: query input and item list in aPopover
attached to the children, so you can render your own trigger - classic uncontrolled selection is supported out-of-the-box: click an item to invoke
onItemSelect
, then track the new value in your application state - controlled usage is not supported directly, but can be achieved by leveraging
inputProps
andpopoverProps
- if
Select
's interactions and appearance do not meet your needs, you can useInputList
directly to implement custom list behavior- internally,
Select
simply leveragesInputList
for most of the interactions; it just tracks state for query string and queried items. as such, its source code makes a great guide for how to useInputList
yourself.
- internally,
- again,
@blueprintjs/table 1.16.0
- π NEW Eliminate excessive re-renders throughout the codebase!
- Added custom
shouldComponentUpdate
implementations toTable
#1162 and toHeader
,HeaderCell
, andEditableCell
#1206. - Fixed
onSelection
is only invoked when selection actually changes #1185- previously, it was called every time the mouse moved within a cell, resulting in many unnecessary re-renders. see PR linked above for some sweet before/after GIFs.
- Changed
Utils.shallowCompareKeys
now accepts whitelist or blacklist of props #1181
- Added custom
- Changed pull shared header code into base component
Header
, used byColumnHeader
andRowHeader
#1109 - Changed pull shared header cell code into base component
HeaderCell
, used byColumnHeaderCell
andRowHeaderCell
#1109 - Fixed focus cell now moves with selection on drag #1171
- Fixed focus cell moves to top-left corner when full table is selected #1172
- Fixed header cells are ignored by
resizeByTallest
(only considers body cells) #1194 - Fixed added default fallback for tallest cell calculations (uses current cached cell height) #1200
- Fixed interaction bar cursor and background color #1163
Documentation
- NEW
Table
playground in our PR preview comments lets you toggle very single table feature in one convenient place! #1154- see it in action here: #1206 (comment)
v1.18.0
π Highlights: more ways to Popover
, Table
shift+click selection expansion, so many fixes!
π Latest docs: blueprintjs.com/docs
General
- π¨ Resolved all warnings and deprecation messages in our test suites #1088
- π‘ These are development-only changes so they do not affect library consumption.
- Replaced deprecated
react-addons-test-utils
package withreact-test-renderer
andreact-dom/test-utils
. - Updated to latest
enzyme
to make use of these new libraries. - Fixed isomorphic testing for some skipped components #781
@blueprintjs/core 1.18.0
- π NEW more ways to
Popover
: define content and target as props, children, or both #1118-
NEW Provide both the
content
andtarget
props, which accept a string or a JSX element.
Omitting thetarget
prop will produce an error.<Popover content={<Content />} target={<Button text="Open" />} />
-
NEW Provide one or two
children
. The first child will become thetarget
, the second thecontent
. Omitting atarget
element will produce an error.<Popover> <Button text="Open" /> <Content /> </Popover>
-
It is possible to mix the two (pre-existing usage): provide the
content
prop and one React child as the target. (Using thetarget
prop withchildren
is not supported and will produce a warning.)<Popover content={<Content />}> <Button text="Open" /> </Popover>
-
- NEW
Popover
exposespopoverElement
andtargetElement
instance properties #1123- both are refs to the underlying HTML elements and can be very useful for testing non-inline Popovers
- access these properties by getting a ref to a
Popover
instance:<Popover ref={(popover) => popover.popoverElement}>
- Fixed
NonIdealState
margins between items are more consistent and reliably support all combinations (as most props are optional) #994 - NEW
.pt-file-input
supports.pt-large
CSS modifier #1112 - Fixed
RadioGroup
onChange
event type is now correct forHTMLInputElement
#1128 - Fixed
Checkbox
indeterminate
docs have been clarified #1127 - Fixed
NumericInput
setsautoComplete="off"
#1146 - Fixed
Popover
with empty or whitespace content will not open and will log a warning #1094- this feature was added for
Tooltip
only in 1.14.0; in this release it now applies toPopover
directly soTooltip
inherits this behavior through composition.
- this feature was added for
- Fixed default font stack so CSS minifiers won't strip the final
"Icons16"
entry to support inline icons #1060 #1107 - Fixed
ContextMenu
usestetherOptions
to avoid deprecation warnings #1088 - Updated
bold
,italic
, andunderline
icons for consistent text baseline #1135 - Added
satellite
andparagraph
icons #1135
@blueprintjs/datetime 1.16.0
- Fixed
DateInput
withcloseOnSelection={true}
will no longer close when the time changes (only when date is chosen) #1092 - Fixed
DateInput
andDateRangeInput
setautoComplete="off"
#1146 - Fixed typo in
DateInput
popoverPosition
deprecation warning (π© @lucasray) #1139
@blueprintjs/docs 1.1.1
- Fixed
Navigator
setsautoComplete="off"
#1146
@blueprintjs/table 1.15.0
- π NEW
shift+click
to expand selection region #1071 - Fixed region selection stays anchored to original activation cell when scrolling #950 #1114
- Fixed row resize for truncated, non-word-wrapped cells #1100
- Fixed pure render logic on
Cell
to avoid unnecessary re-renders (π© @zerovox) #1104- first step in some significant performance improvements; see profile screenshot PR above
- Fixed
Table
children
type to support TS 2.3 (π© @cetra3) #1143 - Fixed hide regions that lie fully outside of the Table #1077 #1122
- Fixed
TruncatedFormat
uses width of ellipsis when calculating whether to show it #953
Documentation
- Fixed Popover example with nested Popover example content #1097
v1.17.1
π Highlights: Fixes a breaking change introduced in v1.17.0 (#1085)
π Latest docs: blueprintjs.com/docs
@blueprintjs/core 1.17.1
- β REVERT #1051 (reintroduces deprecated package
react-addons-css-transition-group
, because addingreact-transition-group
as a peer dependency is technically a breaking change that would drop React 0.14 support)
v1.17.0
π Highlights: clutch fixes, dependency upgrades, and smarter table rows
π Latest docs: blueprintjs.com/docs
General
- π¦ Peer dependency replaced
react-addons-css-transition-group
βreact-transition-group
per facebook/react#8125 (:tophat: @benhjames) #1051- π₯ this is an artifact of our recent peer dependency update to React 15.5, and requires that you manually install the new package:
npm install --save react-transition-group
- you can then remove
react-addons-css-transition-group
(after updating your own usages, if any):npm uninstall --save react-addons-css-transition-group
- don't forget to update
@types
packages accordingly! - π‘ while the only code change here is in
core
, every package is affected by this change, through the magic of peer dependencies
- π₯ this is an artifact of our recent peer dependency update to React 15.5, and requires that you manually install the new package:
@blueprintjs/core 1.17.0
- NEW
NumericInput
clampValueOnBlur
prop will restrict the value to betweenmin
andmax
when the input is blurred (defaultfalse
for compatibility) #1044 - NEW
NumericInput
large
prop applies.pt-large
modifier to use larger inputs and buttons #907- this was not as simple as adding
.pt-large
once to the container element, so we opted for a prop to ensure the correct classes are added correctly, see #1038
- this was not as simple as adding
- Fixed
EditableText
only setsdefaultValue
on initial render #987 - Fixed
Tabs2
clicking selected tab again firesonChange
#1067
@blueprintjs/datetime 1.15.0
- Fixed
DateRangePicker
withcontiguousCalendarMonths=false
now shows hovered range #1048 - π¦ Updated
react-day-picker
dependency to latestv5.3.0
#688 #1014react-day-picker
NPM module now includes its own typings, so we were able to remove some interfaces that were redefined locally to avoid adding an@types
dependency- nothing has changed in the
Date[Range]Picker
APIs, but they are no longer compatible with older versions ofreact-day-picker
@blueprintjs/docs 1.1.0
- NEW
Navigator
scrolls selected item into viewport #335
@blueprintjs/table 1.14.0
- π NEW
Table#resizeRowsByTallestCell
instance method now accepts an array of column indices to consider when computing tallest cell, or no arguments to consider all columns in the viewport (:tophat: @philcchen) #1070- it still accepts a single column index (not an array) for the one-column case
- Fixed divider appearance between headings and ghost cells #972
Documentation
Datetime v1.14.1
π Highlights: So many fixes for DateRangeInput
!
π Latest docs: blueprintjs.com/docs
@blueprintjs/datetime 1.14.1
This patch release contains a series of significant fixes to the behavior of DateRangeInput
including much improved support for controlled mode and better handling of hovered dates. All notes apply only to DateRangeInput
:
- Fixed Clicking a start date in controlled mode moves the focus to the end date #971
- Fixed Controlled mode now has the same UX as uncontrolled mode #1040
- Fixed Editing date with the keyboard overrides display of hovered date #1041
- Fixed After typing an invalid date into a field, hovering over a valid date will hide the error state for the duration of the hover #1041
- Changed Throw a descriptive error if
value === null
#1041undefined
triggers uncontrolled mode and[null, null]
empties the fields in a controlled fashion, but a strictlynull
value didn't have clear semantics. now it's an error!
Documentation
v1.16.0
π Highlights: colored icons, DateInput
inputProps
, Table
arrow key scrolling
π Latest docs: blueprintjs.com/docs
General
- We now develop against React 15.5.1 for the latest hotness! Peer dependency versions have not changed.
@blueprintjs/core 1.16.0
- π NEW support
.pt-intent-*
modifiers on the icon classes.pt-icon
,.pt-icon-standard
,.pt-icon-large
#1019
- NEW three UI icons:
blocked-person
,slash
,percentage
#1018 - Fixed
.pt-control-group
creates a new stacking context to isolate z-indices of its controls #700 - Fixed React PropTypes deprecation warning #991
@blueprintjs/datetime 1.14.0
- π NEW
DateInput
inputProps
prop just likeDateRangeInput
#387, #1010 β οΈ React PropTypes warning #991 is still present indatetime
package due toreact-day-picker
dependency being out-of-date. PR to fix this is blocked on typings #1014
@blueprintjs/table 1.13.0
- π NEW auto-scroll the viewport when moving focused cell with arrow keys! #915
- Fixed Truncated cell icons appear when expected (regression in 1.12.0) #1022
- Fixed
Table
auto-resize columns (by double-clicking on edge) correctly computes header width #952 - Fixed deprecation warning from
Popover
#1012
Documentation
- NEW Add
?examples
query string to URL to hide all text and tables, leaving only CSS and React examples #1020, #125- This is meant primarily for development and testing, not presentation, so text-heavy pages can look pretty awkward
- Try it out for the Buttons page