-
Notifications
You must be signed in to change notification settings - Fork 2.2k
3.x Changelog (2018–2020)
This is the collection of change logs from 2018-2019. Newer changes are documented here.
- 🔥 API Break – requires migration
⚠️ Warning – something to be aware of- ❌ Deprecation – stop using this bad thing
- 🌟 Awesome – check out this cool thing
- 👍 Nice – you're welcome
- 🔧 Tooling – build system changes
- 🔁 Rename – use the upgrade script
- 🆙 Upgrade – migration pro tips
-
#4403 feat: allow React 17 peer dependency
-
#4374 feat(
Tooltip): newminimalprop adds support for minimal styling
-
#4411 feat(
NumericInput): newasyncControlprop (passes through directly to the underlying<InputGroup>) -
#4388 feat(
NumericInput): newlocaleprop adds localization support
-
#4414 fix(
Tag): restore 30px height for removable tags (regression introduced in v3.26.1)
- #4403 feat: allow React 17 peer dependency
-
#4412 fix(
DateInput): more resilient popover blur interaction avoids a possible crash in dev mode
- #4403 feat: allow React 17 peer dependency
-
#4403 feat: allow React 17 peer dependency
-
#4379 feat: new icon "layer-outline"
-
#4410 feat: new icon "notifications-snooze"

- #4403 feat: allow React 17 peer dependency
-
#4401 feat:
createNewItemPositionprop allows placing the "Create new item" item at the beginning of a QueryList (Select, MultiSelect, etc.) -
#4413 feat(
MultiSelect): newonRemoveprop provides a more intuitive API for reacting to values removed from the selection -
#4368 fix(
Omnibar): handle initialContent undefined value correctly
- #4403 feat: allow React 17 peer dependency
-
#4356 refactor: replace
force-hardware-accelerationmixin with"will-change: transform"CSS rule
- #4403 feat: allow React 17 peer dependency
-
#4383 fix(
InputGroup): make async control optional- This change makes "asynchronous control" of
<InputGroup>opt-in behavior, after it was enabled across the board by default in #4266 (released in@blueprintjs/core3.31.0). -
asyncControl={true}should be used in places where applications expect that the state update to a controlled<InputGroup>will be asynchronous, either by explicit design in their state management logic, or through a library like redux-form. ⚠️ Note that this is a small breaking change for any consumers who have upgraded to@blueprintjs/core3.31.0-3.34.1 and were relying on the new behavior dealing with async control. You will need to enable this new prop to get that behavior back.
- This change makes "asynchronous control" of
-
#4377 fix(
Divider): simplifyrender()method signature
-
#4323 fix(
InputGroup): better support for async controlled updates through an improved implementation of the underlying<AsyncControllableInput>component. This fixes a bug (introduced in v3.31.0) which can occur in async controlled usage where the cursor may jump to the end of the input while typing.
⚠️ This feature was later made opt-in with theasyncControlprop in v3.35.0
-
#4308 feat: allow sliders to specify custom label values with
labelValuesprop -
#4372 fix(
TagInput): revert #4350, a commit which sought to smooth over a small breaking change in the type signature ofonRemove. This change ended up causing a runtime break because it changed the behavior of the event handler. Instead, we are reverting to the old behavior of the handler (value: React.ReactNodeis the first argument) and accepting the slight breaking change introduced in 3.32.0 because it makes the type signature align with runtime beavhior. -
#4371 fix: improve
iconClass,intentClass, andelevationClassfunction signatures to improve compatibility with strict null checks -
#4365 fix(
EditableText): respectdisabledprop whenalwaysRenderInput={true} -
⚠️ #4367 deprecations:Classes.ICON_STANDARD,Classes.ICON_LARGE,Classes.iconClass. Note that support for Blueprint icons through the icon font is deprecated and will be removed in the next major version. Users are recommended to use the<Icon>React component and built-in icon APIs across Blueprint components instead.
- #4357 feat: upgrade documentalist to v3.0
-
#4350 fix(
TagInput): restore type signature of the first parameter of theonRemovecallback prop, fixing a regression introduced in #4291 which broke existing usage of theonRemoveprop under strict TS compiler flags - #4346 chore: enable strict null checks compiler flag
-
#4343, #4354 feat(
Tag): addelementRefprop to access native HTML element with ref callback or ref object -
#4354 feat: add support for React 16 ref objects in
elementRefprop for HTML components (e.g.<H1>,<Blockquote>,<Label>)
-
#4349 fix: resolve stray references to
nameglobal which may cause errors in TS v4.1+
- fix(
createMouseEvent): setdetailArgparameter correctly
-
#4341 fix: restore
IResizeEntryexport
- #4331 chore: fix CSS import tree shaking "sideEffects" property for rollup builds
- #4339 chore: upgrade build dependencies, compile with TypeScript 4.0
⚠️ #4291 deprecatesafeInvoke,safeInvokeMember, andsafeInvokeOrValueutility functions. Use TypeScript 3.7+ optional chaining and optional call operators instead.-
#4291 fix(
TagInput): allowReact.ReactNodeinonRemovehandler, to match the type allowed in other value positions. -
#4290 fix: cancel all requested animation frames on unmount. This guards against components calling lifecycle methods like
this.setState()after they have been unmounted, which triggers warnings in React. -
#4310 fix(
AbstractButton): remove reliance ongetDerivedStateFromPropslifecycle method -
#4321 fix(
NumericInput): revert to renderingButtonunder the hood, improvehandleContinuousChangeimplementation -
#4325 fix(
ControlGroup): normalizefillstyle -
#4328 fix(
Popover): improvecaptureDismissmechanism -
#4309 fix(
Button): always exit active state if blurred -
#4338 fix(
TextArea): handle non-function refs -
#4334 feat(
Text): addtitleprop, supporthtmlTitlein various components which use<Text>
-
#4290 fix: cancel all requested animation frames on unmount. This guards against components calling lifecycle methods like
this.setState()after they have been unmounted, which triggers warnings in React. -
#4314 feat: support
highlightCurrentDayprop in more components -
#4316 fix(
DateInput): improve blur handling to avoid unexpected popover closures
⚠️ #4339 break: upgrade totypescript-eslint4.0
⚠️ #4339 break: upgrade totypescript-eslint4.0
-
#4336 feat: new
data-connectionicon
-
#4290 fix: cancel all requested animation frames on unmount. This guards against components calling lifecycle methods like
this.setState()after they have been unmounted, which triggers warnings in React. -
#4303 feat(
QueryList): pass "create new item" renderer to custom item list renderers
-
#4276 feat(
HotKey,RadioGroup): allowReactNodeinlabelprop -
#4268 fix(
EditableText): add small width buffer to prevent crash in component resizing implementation -
#4266 fix(
InputGroup): allow async controlled updates tovalueprop.InputGroupnow uses a new private component calledAsyncControllableInputwhich works around some problems in React dealing with async controlled updates to text inputs which arise during IME composition.⚠️ This feature was later made opt-in with theasyncControlprop in v3.35.0
-
#4275 fix(
Tabs): don't animate tab indicator on first render -
#4255 fix(
Tag): tag remove button renders with keyboard accessibletabIndexattribute if interactive. This is especially useful for theMultiSelectcomponent from the@blueprintjs/selectpackage.
-
#4254 fix(
DateRangeInput): check time boundaries (not just dates) when computing same day overlap. This is especially relevant whenallowSingleDayRange={true}. -
#4274 fix(
DatePicker,TimePicker): allowvalueprop to benull
-
#4261 chore!: upgrade dependencies
- BREAKING: upgrade to
eslint-plugin-jsdoc@30
- BREAKING: upgrade to
-
#4261 chore: upgrade dependencies, fix: move
jestto a devDependency
- #4261 chore: upgrade dependencies
- #4261 chore: upgrade dependencies
-
#4238 fix(
ControlGroup): border radius style and stacking layout for nestedNumericInput -
#4215 fix(
ControlGroup): improved margin around nested dividers
-
#4235 fix(
DateRangePicker): previous month button alignment -
#4240 fix(
DateInput): don't close popover after clicking TimePicker up/down arrows -
#4245 fix(
DatePicker): prevent crash in iOS Safari when selecting month/year from dropdowns
-
#4250 feat: backlink and geofence icons
-
#4186 fix(
Collapse): closing animation in Firefox -
#4198 fix(
TextArea): update ref when inputRef prop changes -
#4201 fix(
NumericInput): useAbstractButtoninstead ofButtonto improve click-and-hold behavior on increment/decrement buttons when you reach value bounds-
Note: this may cause a small break in the rendered DOM output of the component.
<a>anchor elements are now rendered in place of<button>elements, but they have the same class names attached as before, so querying by class name should work as expected.
-
Note: this may cause a small break in the rendered DOM output of the component.
-
#4211 fix(
NumericInput): more robust controlled mode wherevalueprop behaves like other controlled inputs and -
#4211 feat(
NumericInput): newdefaultValueprop allows setting a default value in uncontrolled mode upon component instantiation -
#4218 fix(
Overlay): handle document click/focus in Shadow DOM -
#4226 fix: use more inclusive terminology in code
-
IKeysBlacklistandIKeysWhitelistinterfaces are now deprecated.
-
-
#4205 fix(
DatePicker): apply min/max boundaries to time picker
- #4180 feat: spread data-* props to HTML elements
-
#4188 feat: send-message icon
- #4108 fix: handle new items same as selections in resetOnSelect behavior
- #4173 fix: ItemListRenderer return type may be null
-
#4160 fix(
NumericInput): enforce numeric chars only with IME (#4160)- This closes a loophole where IMEs could be used to inject invalid characters, and handle Japanese full-width number input.
-
#4153 chore: all packages are now built with TypeScript 3.9
- This is a backwards-compatible change which does not affect generated typings.
- #4154 feat!: upgrade to ESLint v7.0, typescript-eslint v3.0
-
#4158 feat!: migrate TSLint rules to ESLint equivalents
- BREAKING CHANGES: there are some semantic changes in the new rule config, see the PR for more details
-
#4166 feat!: enable eslint-plugin-deprecation to ban usage of deprecated APIs
- BREAKING CHANGE: usage of
/** @deprecated */APIs will now be flagged as lint errors
- BREAKING CHANGE: usage of
- #4154 feat!: upgrade to ESLint v7.0, typescript-eslint v3.0
-
#4153 chore: all packages are now built with TypeScript 3.9
- This is a backwards-compatible change which does not affect generated typings.
-
#4146 fix(
Alert): ensure text content does not overflow
- #4120 feat: add new "method" tag to render class methods
-
#4147 fix(
Suggest): dropdown works with inputRef set to ref hook
- #4120 docs: better formatting / layout of Table instance method documentation
-
#4130 feat(
MultiSlider): add trackStyleBefore and trackStyleAfter Handle props
-
#4123 feat(
TimePicker): add onFocus, onBlur, onKeyDown, onKeyUp props -
#4124 feat(
TimePicker): add autoFocus prop to focus the hour input
-
#4132 feat: add modal, drawers, and app header icons
-
#4137 fix(
MultiSelect): create new item behavior when entering text with IME (useful for languages like Japanese, Chinese)
- #4093 feat: add React 16 ref hook support to Button, AnchorButton, InputGroup components
- #4119 docs: fix popper v1 documentation links
- #4093 feat: add React 16 ref hook support to DateInput and DateRangeInput components
-
#4115 fix(
DatePicker): alignment of time picker arrows - docs(
DatePicker): clarify timePickerProps empty object
-
#4126 feat: added cycle and route icons
- #4093 feat: add React 16 ref hook support to Select and Suggest components
-
#4099 fix(Tag): fix vertical padding for large tag
before:

after:

-
#4098 fix(
PanelStack): fix header z-index regression
- #4079 feat: export DateUtils
-
#4069 feat(
NumericInput): disable buttons when value at min/max -
#4063 feat(
InputGroup): add leftElement prop
-
#4066 fix(
DateRangePicker): right calendar shows the correct month when clicking shortcuts whenshowContiguousMonths={false}
-
#3630 fix(
Cell): only modify props for specific child elements,TruncatedFormatandJSONFormat. This fixes a React console warning aboutparentCellWidthnot being a DOM attribute.
- #4075 chore: upgrade eslint, typescript-eslint
-
#4080 feat: add configuration for linting node script modules written as
.jssource files - Upgrade
@blueprintjs/tslint-configto 3.0, which removes prettier formatting enforced as a lint rule.- Why? This config package should not be enforcing prettier formatting, that should be done by other non-Blueprint-related tooling.
- We recommend using prettier through ESLint for editor plugins like VSCode, as we have configured in the
.eslintrc.jsof the blueprint monorepo witheslint-plugin-prettier. In lint tasks initiated from the command line (including CI), prefer using theprettierCLI directly.
- This package was renamed from
@blueprintjs/eslint-plugin-blueprintfor brevity. The last part of the name was redundant, and ESLint will resolve the package correctly without it. This rename requires changing some inline enable/disable code flags.
-
#4078 BREAKING: remove
tslint-plugin-prettier, so prettier formatting is no longer enforced through this package. - #4083 BREAKING: upgrade to TSLint 6.0
- #4085 chore: upgrade dependencies, including major rev bump of stylelint to v13
-
#4085 feat(
sass-lint): add support for--fixoption as CLI flag
- Stabilized API. No significant API breaks in this release, it just seems like time to make the version bumps for this package easier by declaring 1.0.
- #4085 upgrade karma to v5.0
- Stabilized API. No significant API breaks in this release, it just seems like time to make the version bumps for this package easier by declaring 1.0.
- #4084 chore: upgrade dependencies, including major revs:
-
#3982 feat(
NumericInput): supply input element inonValueChangecallback -
#3993 feat(
TagInput): handle delete to remove items -
#3998 fix(
Button): remove invalid HTML attr"outlined" - #4033 docs: Add example to import variables into Less file
-
#4012 feat(
DatePicker): add support fordayPickerProps.renderDay -
#3983 fix(
DateRange): values are possibly null, not undefined- 🔥 note that this may cause a minor break if you are compiling TypeScript with
strictNullChecksenabled, but it is a necessary fix which makes the type definition align with Blueprint's runtime behavior.
- 🔥 note that this may cause a minor break if you are compiling TypeScript with
- #4003 docs: improved localization code example
-
#4050 feat: Added virus icon

-
#3832 fix(
QueryList): trim whitespace when creating new items - #4051 fix: avoid props mutation and duplicate CSS classnames
-
#4050 feat(
generate-icons-source): allow icons without icon font support
-
#3947 feat(Button): add "outlined" visual modifier
-
#3768, #3950 feat(PanelStack): add renderActivePanelOnly prop
-
#3956 fix(
Breadcrumbs): remove non-HTML attributes in overflow menu items, removing an unnecessary console warning produced by React -
#3968 fix(
HtmlSelect): text color for disabled options in dark mode -
#3973 fix(
InputGroup): right element padding adjusting on update
-
#3966 feat: add diagnosis and lab test icons

-
#3934 feat(
Suggest): sync activeItem with selectedItem on popover close
- 🔧 fix package reference to
@blueprintjs/tslint-config, allowing this package to be used outside the Blueprint monorepo
- 🔧 fix(es-lint): use default ESLint resolution to find config file
- feat(es-lint): support resolution of
.eslintignorefile at the root of a git repo (useful for monorepos like Blueprint's) - feat(es-lint): support arbitrary additional arguments to
eslintCLI
- 🔧 #3917 Use new
@blueprintjs/eslint-plugin-blueprintlint rule implementations
-
#3917 Initial release of ESLint plugin which includes implementations of rules previously found in
@blueprintjs/tslint-config
Note: Bump major version just to make it easier to deal with internal repo dependencies
- 🔥 #3887 Replace
ts-lintscript withes-lintscript
- #3732 fix: column resize calculation on header double click when column resizing and/or header menu are enabled
- 🔥 Blueprint-specific custom lint rules have been disabled in this configuration as we transition to ESLint
- #3913 feat: add intent prop to Slider and RangeSlider
- #3911 fix(Toast): bottom toasts exit in the correct direction
- #3912 fix(Toast): bottom shadow is no longer clipped
- #3894 fix(NumericInput): correct rounding of default value
- #3924 fix(EditableText): allow setting value to null in controlled mode
- #3920 pin react-day-picker dependency version to avoid ambient typings errors
- Initial release of our ESLint configuration. For now it is just a wrapper for running TSLint rules.
- #3878 add tractor, truck, and "bring in data" icons

- #3873 fix: upgrade moment-timezone to fix Brazilian timezones
- #3876 fix: declare sideEffects properly in package.json to fix a tree shaking issue
- #3885 fix: upgrade react-popper to fix an issue that would crash the page when zooming out in a web browser
-
#3886 fix: EditableText works inside
@blueprintjs/tabletables again (after a regression introduced in #3841)
- #3862 feat: high contrast CSS with color adjustments to pass WCAG requirements
-
#3867 fix: explicitly declare
dom4import side effects
- #3857 feat(Drawer): add Sass variables for background color
-
#3841 feat(
EditableText): addalwaysRenderInputexperimental feature -
#3855 fix(
TagInput): add intent styling when component is active
-
#3842 feat(
EditableText): addalwaysRenderInputexperimental feature
-
#3843 fix(
Shortcuts): make shortcuts container focusable
-
#3770 feat(
Toaster): ability to set max number of active toasts -
#3786 feat(
Breadcrumb): render icon if provided through props -
#3828 fix(
Switch): indicator background colors -
#3831 fix(
Collapse): simplify lifecycle, fix animation bugs -
#3814 fix(
NumericInput): do not trigger onValueChange if value is changed via props -
#3813 fix(
InputGroup): prevent infinite setState in componentDidUpda -
#3811 fix(
TagInput): prevent infinite setState in componentDidUpdate -
#3787 fix(
PanelStack): do not trigger unintended animations -
#3809 fix(
NumericInput): correct styles when placed inside label -
#3784 fix(
Toast): fix bottom toast animation
-
#3821 feat: export
IDateRangeInputProps -
#3777 feat(
DateInput): add fill prop -
#3818 feat(
DatePicker): add shortcuts to single date picker
-
#3816 feat: new icons
- New drawing
- Data lineage
- Archive
- Unarchive
- Signal search
-
#3836 fix(
MultiSelect): better handling of key events in TagInput remove buttons
- #3764 fix: cell copy to clipboard works in IE11
-
#3836 feat: new utility function
dispatchTestKeyboardEventWithCode
-
#3776 fix(
QueryList): re-render when controlled items change
-
#3771 fix: lifecycle methods in
MultiSlider
- #3771 fix: lifecycle methods in various Table components
- 👍 #3702 Refactor components to use React 16.3+ lifecycle methods
- This change removes usage of deprecated methods
componentWillMount,componentWillReceiveProps, andcomponentWillUpdate. New lifecycle methods from React 16.3+ are now used, with a polyfill added to ensure support for previous React versions. See this React blog post for more information. - ❌
AbstractComponentandAbstractPureComponenthave been marked as deprecated. - 🆙 New components
AbstractComponent2andAbstractPureComponent2using the new lifecycle methods are now available. If you use these new components and need React 15 support, remember to apply the polyfill fromreact-lifecycles-compat.
- This change removes usage of deprecated methods
-
#3657 docs(
Toaster): fix position prop comment -
#3733 fix(
MultiSlider): fix minor rendering bug with track fill -
#3766 feat(
Tab): spread HTML props to rendered div- 🔥 usage of new
Omitmapped type helper requires TypeScript users to compile with TS 3.5+
- 🔥 usage of new
- 👍 #3702 Refactor components to use React 16.3+ lifecycle methods
-
#3762 fix(
TimePicker): allow more natural text entry
- 👍 (needs link) Refactor components to use React 16.3+ lifecycle methods
-
#3745 feat: add learning, new layer(s), stopwatch icons

- 👍 #3702 Refactor components to use React 16.3+ lifecycle methods
-
#3724 fix(
Suggest): Default autoComplete for text input to "off"
- 👍 #3702 Refactor components to use React 16.3+ lifecycle methods
- 👍 #3702 Refactor components to use React 16.3+ lifecycle methods
-
#3716 👍 fix(
Popover): click on target no longer affects hover behavior -
#3713 fix(
AnchorButton): left text alignment - #3691 fix: support create-react-app environment variable for Blueprint namespace
-
#3689 fix(
Drawer): use Sass variable$drawer-padding -
#3730 fix(
MenuItem): avoid React warning for unknown attr labelClassName
-
#3687 fix(
EditableCell): supporttabIndexprop correctly
-
#3688 feat(
DateRangePicker): add active menu styles to shortcuts - #3725 fix: upgrade react-day-picker, clean up type imports
⚠️ #3654 breaking: remove unusedgetShallowUnequalKeyValuesutility function (we found that this was unused inside and outside Blueprint)-
#3560 feat(
FileInput): addbuttonTextprop -
#3645 fix(
HotkeysTarget): invoke user-defined key event handlers correctly -
#3647 fix(
TextArea): grow box vertically to show initial content -
#3672 fix(
EditableText): supportselectAllOnFocuswithtype={number}in latest React -
#3677 fix(
Popover): only apply active class to target in uncontrolled mode - #3653, #3654 chore: upgrade to typescript 3.5
- fix: restrict
tslibdependency to minor version range
-
#3644 fix(
DateRangeInput): maintain focus on time inputs during keyboard interactions -
#3658 fix(
DateRangeInput): do not close on selection when time inputs receive key presses - #3653, #3654 chore: upgrade to typescript 3.5
- fix: restrict
tslibdependency to minor version range
-
#3649 fix
EditableCellupdate cycle, improveEditableNamedocs - #3653, #3654 chore: upgrade to typescript 3.5
- fix: restrict
tslibdependency to minor version range
⚠️ This package has been removed from the development repository since it is no longer active (last change / publish was in Feb 2018).
-
#3679 upgrade
prettierandtslint-react
-
#3679 upgrade
autoprefixer,css-loader,file-loader,webpack
- #3628 feat(DatePicker): add option to highlight current day
- Less/Sass variables are now correctly bundled into the NPM package (inside the
lib/folder)
- ⭐️ #3636 feat(Popover): add
fillprop to fill container width - #3637 fix(Switch): tweak dark theme hover/active colors
- #3634 fix(Toast): long words in toast messages no longer break container layout
N.B. @blueprintjs/[email protected] had an issue where Less/Sass variables were not bundled correctly into the NPM package.
- 👍 #3613 fix(TimePicker): typing into minute input field works again
- ⭐️ #3636 feat: add
fillprop toSuggestandMultiSelectcomponents - #3629 fix(Select): do not call itemRenderer when component is disabled
- #3627 fix(Select): fix keyboard navigation when all filtered items are disabled
-
#3624 fix(blueprint-html-components): fix suggestion for
<table>element replacement
- #3611 Re-release of v3.16.0 with LESS & Sass variables correctly packaged
- #3584 Typography: improve dark muted and disabled text contrast
-
#3568
HTMLSelect: Fix number of clicks required to use component insideControlGroupin Firefox -
#3591
TagInput: fix Tags overflowing the container -
#3598
Tree: Fix intent color for nestedIconcomponents in dark mode -
#3600
PanelStack: Allow hiding header -
#3601
PanelStack: Add support for controlled mode -
#3608
AbstractButton,Button: Update buttontypeprop to match React's latest typings
-
#3607
DateRangeInput: add support for disabling start or end input
-
#3350
EditableCell: addeditableTextPropsprop to allow adjusting cells during editing -
#3447
RowHeaderCell: addnameRendererprop to allow displaying custom headers
- #3502 Hovering over date no longer clears time input
-
#3504 Render the correct month when
DateRangePickersingleMonthOnlyoption is enabled -
#3557 Fix
DateRangePickerinconsistency with single day ranges and time precision enabled
- #3510 Added new UI icons
-
#3496 Fix
<Select>to correctly changeactiveItemwhen items change
- #3375 File input text styling for active selections
- #3471 Fix DateInput IE11 bug when changing month/day
- #3461 Upgrade react-day-picker, fix caption months support
- #3451 Added new inheritance icon
- Switch to standard Apache-2.0 license (#3457)
- Checkbox: fix indeterminate state update (#3409)
- TagInput: use undefined instead of null to hide clearButton (#3436)
- PanelStack: Add z-index to panel stack header to fix layout issue (#3414)
- TextArea: Add
growVerticallyprop to allow component to grow height with input text (#3398) - Drawer: Add
positionprop, deprecateverticalprop (#3386)
- Switch to standard Apache-2.0 license (#3457)
- Fix react-day-picker API hyperlink in documentation (#3435)
- Switch to standard Apache-2.0 license (#3457)
- Switch to standard Apache-2.0 license (#3457)
- Select: hide QueryList item list when menuContent and createItemView are both null (#3426)
- MultiSelect: Enable pasting of multiple values (same as TagInput) (#3428)
- Switch to standard Apache-2.0 license (#3457)
- Fix resizable props documentation (#3400)
- Switch to standard Apache-2.0 license (#3457)
- Switch to standard Apache-2.0 license (#3457)
- Switch to standard Apache-2.0 license (#3457)
- Switch to standard Apache-2.0 license (#3457)
- Switch to standard Apache-2.0 license (#3457)
- Switch to standard Apache-2.0 license (#3457)
- Switch to standard Apache-2.0 license (#3457)
-
#3356 Fix
shortcuts.tsxreact import typings
-
#3348 Popover: Fix the type of
onInteractionprop -
#3347 ButtonGroup: supports
fillprop when Buttons are wrapped in Popovers -
#3351 Tabs: add
panelClassNameprop - #3355 TreeNode: Icons with intents inside this component are now colored properly
-
#3354 TreeNode: add
disabledprop - #3382 Drawer: fix prop validation warning when using default props
-
#3381 Components now allow users to create new items not found in the items list

📢 Dear Blueprint users,
This is my (@giladgray) final release as the leader of this project. It's been my greatest pleasure to steward Blueprint and I am leaving it in the very capable hands of @adidahiya who, like me, has been on this project since its earliest days. Remember, I'm always only an at-mention away 👋☂️.
- 🌟 #2957 New
Drawercomponent!
- This is exactly the same as
Dialogbut it slides it from the right edge of the screen. - Use the
sizeprop to control the width or height (based onverticalprop).
- This is exactly the same as
- 🌟 #3327 New
SwitchinnerLabelandinnerLabelCheckedprops.
-
#3314 New
NumericInputrightElementprop (a laInputGroup). -
#3296
NumericInputallowsmin === max. -
#3342
SpinnerSIZE_SMALLis now 20px instead of 24px (to match other components). -
#3337 Fix
NumericInputhandling of arbitrarily small step sizes (>6 decimal places).
-
#3343 Fix
DatePickeronChangeon month change after initial day selection. -
#3311 Merge the two definitions of
IDateRangeShortcut(only one was actually exported so this is not an API break).
-
#3335 New icons:
inbox-filtered,inbox-geo,inbox-search,inbox-update.
- #3305 Small refactors for internal code consistency.
-
#3301 Add
directorydetails to package.json repository entries to allow third party tools to provide better support when working with monorepos.- Patch versions of all public packages not mentioned below have been published to benefit from this.
-
#3237 New
Tagfillprop and styles. -
#3237 New
TagInputintentprop. -
#3278
OverflowListis now a regularComponent(not pure) so it always re-renders.- This is necessary because renderer behavior can change in ways that would not cause organic re-renders.
-
#3295
PanelStackinitialPanelsupports arbitrary user props. -
#3275
Toastalways clears existing timeout when restarting. -
#3291
Tooltipsupports hover interactions via newinteractionKind: HOVER | HOVER_TARGET_ONLYprop. -
#3283 🎨 Add
!defaultto$headingsSass map variable.
-
#3223, #3293
DateRangePickershortcutscan now change time viaincludeTime: true.<DateRangePicker shortcuts={[{ label: "With time", dateRange: [...], includeTime: true }]}>
- Also add a "Shortcuts" section to the documentation.
- 🌟 #3285 New
itemsEqualprop on all package components to customize item equality check.- The default implementation simply uses
===to test strict equality, but this requires careful management of object instances. - Use
itemsEqual="id"as a shorthand to compare theidprop of two items to test equality. - Use
itemsEqual={(a, b) => boolean}to implement more advanced custom logic.
- The default implementation simply uses
-
#3292 New
SuggestdisabledandresetOnCloseprops. -
#3290
QueryListinitializeactiveItemstate correctly when controlled. -
#3289
Suggestquery remains visible when closed if no item is selected.
-
#3287
TimezonePickersupports custom target viachildrenprop.- Only one child is supported; providing more than one will print a console warning in dev mode.
- If a custom child is provided, all button-specific props will be ignored (i.e.,
buttonProps,disabled,placeholder,valueDisplayFormat).
-
#3287 Export
getTimezoneMetadata()from package root to easily support arbitrary timezone formatting in custom targets.
- 🌟 #3230 Add
esnextbuild target and package entry.-
lib/esnext/is a third compile target using the latest supported ES features (pretty much TypeScript without the types). - This will prevent bugs with incompatibility between ES5 and ES6+ features. Additionally, when targeting newer browsers, being able the use esnext will reduce bundle size.
- Use this by configuring your build to read the
esnextentry in package.json.
-
⚠️ #3276 Fix externals in*.bundle.jsfiles.- Properly mark all listed package dependencies as externals.
- Specifically: add
popper.js,react-popper,resize-observer-polyfillto the list. - Fix
tslibglobal variable name. - Update documentation example in Getting Started guide.
- 🔧 #3252 Upgrade to Webpack 4 in development.
-
#3235 Add
EditableTexttypeprop. -
#3251 Add
MenuItemlabelClassNameandtextClassNameprops. -
#3236
ResizeSensorhandles fatal error state iffindDOMNodefails.
- See "General" notes above: add
esnexttarget and fix*.bundle.jsexternals.
⚠️ DO NOT enable CircleCI for your fork. (If you've already done so, you should disable it from the Circle UI.)
- Our build runs on forked PRs and provides a better experience for OSS contributors than configuring your own Circle instance and setting up the preview comment.
- Preview comments will no longer post from forked PRs, but the artifact URLs will be logged directly to the Circle console for easy access (example here, expand last step).
-
#3213 Add
Popover/TooltiptargetPropsprop to add attributes toClasses.POPOVER_TARGETelement.- This provides much improved support for an advanced use case of
positioning the target manually using style attributes:
targetProps={{ style: { left, top } }}
- This provides much improved support for an advanced use case of
positioning the target manually using style attributes:
-
#3215 Add
Popover/Tooltipreposition()instance method to manually trigger a Popper update.- Use
refto get an instance:<Popover ref={ref => ref.reposition()} /> - This method should be used rarely when the default behavior does not detect changes, such as changing position without changing size (this can happen when using
targetProps.styleas suggested above).
- Use
-
#3216 Add
IconhtmlTitleprop to settitleattribute on DOM element for browser tooltips.-
Icon's existingtitleprop explicitly does not render a browser tooltip, so we had to add a new prop for this. - These two props will be refactored for consistency in Blueprint 4 (eventually).
-
-
#3211 Add
TreeonNodeMouseEnterandonNodeMouseLeavecallback props. -
#3170 Fix
HTMLTableprops type to support<table>-specific HTML props likecellPadding. -
#3190 Fix
Iconrender()return type (for React 15 consumers). -
#3204 Fix
NumericInputcontinuous keyboard click (holding space/enter on one of the buttons) and tenderly refactor the internal render and event logic. -
#3164 Fix
Toastto support changingtimeoutafter it has been shown for the first time. -
#3200 Fix
Popoverto supporttabIndexon target element.
-
#3182
Monthsenum is now a regular TypeScript enum (not aconst enum), so you can use it in JS code. -
#3200 Fix
DateInputinputRefsupport. -
#3198 Fix
DateRangePickerright caption behavior in contiguous month mode.-
DateRangePickernow always renders the two months in separate calendars (as opposed to one two-month calendar).
-
-
#3199 Remove unused
DateRangePickerstyles.
-
#3222 New icons:
cube,cube-add,cube-remove,lifesaver,table-filtered.
-
#3180 Fix
QueryListactiveItemchange whenqueryanditemsprops change. -
#3167 Standardize
inputPropsdocs across components.
- 🌟 #3148 Add
OverlayportalClassNameprop to set CSS class on element created byPortal.- Supported on
Overlay,Dialog,Popover, andTooltip.
- Supported on
-
#3061 Add
MenuItemtagNameprop to change HTML element. -
#3149 Add
Popoverboundaryprop to quickly set Popper boundary element (andPopperBoundaryexported type). -
#3156 New
PopoverPositionenum for the allowed values in<Popover position>.- 👍 No API change, just a new type that includes the
"auto"options and provides constants for them.
- 👍 No API change, just a new type that includes the
-
#3118 New
MaybeElementtype represents "JSX element or empty render," used iniconprops.- Now supported:
icon={endorsed && "tick"},icon={condition ? null : "cross"}
- Now supported:
-
#3150 Fix
HTMLSelectdisappearing caret on focus insideControlGroup. -
#3147
Classes.CONDENSED(added in #2904) renamed toClasses.HTML_TABLE_CONDENSEDto match other<table>modifiers.- 👍 This actually reverts a 2.0->3.0 API break where the
CONDENSEDclass was simply removed.
- 👍 This actually reverts a 2.0->3.0 API break where the
-
#3137 Fix
TagInputinputValuerespects controlled mode (no more auto-clear) when adding new items. -
#3157 Fix
Calloutstyles to support title-only usage.
-
#3142 Add
DateRangePickersingleMonthOnlyprop to show only one month calendar.
-
#3096 Add
scrollToActiveItemprop to all components. Defaults totrue.When
activeItemis controlled, whether the active item should always be scrolled into view when the prop changes. Iffalse, only changes that result from built-in interactions (clicking, querying, or using arrow keys) will scroll the active item into view. Ignored if theactiveItemprop is omitted (uncontrolled behavior). -
#3130 Fix
Omnibarto allow browsing items when query is empty.
-
#3162 Add fixer for
blueprint-html-componentsrule.
- 🌟 #3106 New
Breadcrumbscomponent composesBreadcrumbitems with anOverflowListcontainer. -
#3120 Add
FormGroupcontentClassNameandstyleprops. -
#3045 Add
Portalcontainerprop to attach to things other thandocument.body. -
#3113 Fix
Checkboxindicator display edge case. -
#3102 Fix
Iconvertical alignment with inline text -
#3117 Fix
Tagtext centering with other fonts. -
#3115 Set default
font-familyonly onbodytag. - #3123 Remove some unused CSS rules.
-
#3052 Add
"clean"icon ✨
-
#2005 Add
TableforceRerenderOnSelectionChangeprop (defaults tofalse) which provides a noticeable performance improvement in selection.
-
#2951 🔧 Support for the latest version of
@types/react(16.4.14). -
#2953, #2992 🌟
InputGroup,TextArea, andClasses.INPUTnow supportsmallmodifier! -
#2975 Add
OverflowListonOverflowcallback prop, invoked once per resize and only if the overflowed items have changed. -
#2964
Dialogclose button is now a minimalButton(instead of custom styles). -
#2960
FormGrouphides label element when the prop is omitted. -
#2970
Spinnertrack now always exactly fills the frame and never overflows. -
#2971
Utils.isElementOfTypenow comparesdisplayNameinstead of element type to support equality checks across multiple instances of Blueprint.⚠️ If you use this method in your code, you must set adisplayNameon the components being compared or it will always fail.- Multiple instances can be brought in through transitive dependencies.
-
#2938 Fix
Hotkeyssorting of labeled global groups. -
#2994 Fix
Tagextra margin with icons only. -
#2466 Fix
Treesmall visual issues.
-
#2939 Add
DatePickertodayButtonTextandclearButtonTextprops to customize the text of those buttons.
-
#2967 Added new icons
list-columns,flow-linear,flow-branch,flow-review,flow-review-branch,flow-end
-
#2988 Invoke
selectedRegionTransformafter keyboard navigation (in addition to existing mouse interactions).⚠️ The second argument to this method is nowMouseEvent | KeyboardEvent, which may require small code migration if you depended on mouse event properties.
-
#2969 🌟 Add a fixer to the
blueprint-classes-constantsrule!- The fixer replaces literals with
Classes.*references and adds the appropriate import to the file!
- The fixer replaces literals with
-
#2996 The
blueprint-classes-constantsrule now also bans thebp3-prefix (in addition to the v1pt-prefix).
-
#2945 Fix
Tagremove button centering.
-
#2928 👍 Unknown icon names are now rendered as blank icons instead of as
nullto avoid interrupting flow -
#2904 Add
HTMLTablecondensedprop for more compact appearance without cascade to other components -
#2911 Fix
Collapseinitial opening animation -
#2912 Fix
Switchdark theme variables -
#2929 Fix
Switchindicator sensitivity toline-height -
#2900 Fix
TagInputleft padding when empty for consistency withInputGroup - #2927 (IE11) Fix font icons to prevent double vision
-
#2895 🌟 Time support in
DatePicker#2856 andDateRangePicker- Enable via new
timePrecisionshorthand ortimePickerPropsfor advanced control. - ❌ Deprecate
DateTimePickersinceDatePickercan do it all now.
- Enable via new
-
#2792 Replace custom styles with existing Blueprint components
- Use minimal
HTMLSelectfor month/year dropdowns. - Use minimal
Buttonfor next/previous buttons. - Use
Dividerfor the internal separators. - Upgrade
react-day-pickerdependency and leverage some new features likenavbarElement.
- Use minimal
-
#2795 Fix
TimePickerto prevent typing time that exceeds bounds - Freshen up the implementations of
DatePicker(#2789) andDateRangePicker(#2858, #2859) with some gentle yet significant refactors; no outward changes. - Refactor test suite for
DateRangePicker(#2793) to use Enzyme and a hand-built DRY harness
-
#2894 Add
resetOnQueryprop to all components- Whether the active item should be reset to the first matching item every time the query changes (via prop or by user input).
- This behavior is enabled by default.
-
#2923 Add
MultiSelectplaceholderprop shorthand forinputProps.placeholder -
#2874 Add
SuggestcontrolledselectedItemprop -
#2920 Add
SuggestuncontrolleddefaultSelectedItemprop -
#2916 Fix
QueryListreset behavior when active item becomes invalid so active state rarely disappears- Also fix viewport scrolling so the active item is always visible.
-
#2930 Enable webpack-dev-server port configuration via
PORTenvironment variable
- 🌟 #2884
Iconnow renders an HTML element wrapper around the SVG image- Also brought back the icon CSS class to mitigate migration pain (it has no associated styles when using SVG icons)
-
#2881 Remove quotes on
$ns/@nsstyle variable, for consumers ofvariables.less.- Less emits the quotes when interpolating in class names, leading to invalid syntax in selectors.
-
#2890
Spinnerproperly isolates the animation from surrounding styles. -
#2886 Fix
OverflowListcollapsing all when zoomed. -
#2887 Fix
Skeletonanimation in Firefox! -
#2885 Increase
Skeletonanimation contrast
- 🌟 #2854 New
Dividercomponent! -
#2804
TagInputonly adds on paste if pasted text includes separator. -
#2868 Restore
Spinnersupport for IE and Edge. - #2862 Update Sketch file.
-
#2783
RadioGroupandHTMLSelectoptions supportclassNameanddisabled. -
#2772
Popovernow supports"auto-start"and"auto-end"positions. -
#2776
PopovercaptureDismissdefaults tofalse. -
#2775 Fix
Buttonicon-only appearance. -
#2761 Fix
Tabsrendering fail injsdom.
-
#2758 NEW
PopovercaptureDismissprop for better uncontrolled click-to-close behavior, especially with nestedPopovers (defaults totrue).- When prop is enabled,
PopoverinvokespreventDefault()onClasses.POPOVER_DISMISSclicks.Popovernow ignores dismiss clicks if default is prevented, so popovers around a<Popover captureDismiss>will not close when an inner popover is dismissed. -
MenuItemdisablescaptureDismiss(can override viapopoverProps) to preserve existing desired behavior where clicking a nested submenu closes the entire hierarchy.
- When prop is enabled,
-
#2756 Fix
Dialogeagerly closing when childPopovercloses. -
#2757
Menusupports arbitrary HTML attributes.
🎆 Highlights: new PanelStack and ResizeSensor components, major Checkbox improvements, select components support controlled query and activeItem.
- 📦 #2741 Fix all component
displayNames to beBlueprint3.<name>. (Oops!) - 🔧 #2710 Fixed Sass compilation so source map remains external (major reduction in size of NPM package CSS files).
- 🌟 #2642 NEW
PanelStackcomponent! - 🌟 #2745 NEW
ResizeSensorcomponent is a React wrapper aroundResizeObserver. - 🌟 #2709
Checkboxnow embeds thesmall-tickandsmall-minusSVG images into the CSS so states are CSS-only again.- Checkbox suffered greatly in the switch to SVG icons because its implementation no longer relied purely on CSS: React state was necessary to ensure the correct icon was rendered at the correct time. This introduced a bunch of subtle bugs where the DOM and the state could get out of sync (due to an incorrect implementation of un/controlled state).
- Inlining the two icons results in an insignificant <1kB increase in size of
blueprint.cssand allowed the removal of much state logic from theCheckboxcomponent.
- 🌟 Major improvements to
Checkbox,Switch, andRadio:-
#2708 Add
tagNameprop to wrap in something other than<label>, which can cause event problems when listening for click on a parent element. -
#2716 The control indicator is now an inline element, and line height restriction has been removed.
- The indicator used to be absolutely positioned, which resulted in a small vertical misalignment.
- Controls now assume the default
line-heightso they fit better with other text and react to changes in this property.
- #2721 Refactor indicator styles to share as much as possible across the three control types.
-
#2708 Add
- 🌟 #2718
Popoverposition updates automatically when content or target change size! -
#2707 Use
IOptionPropsinstead ofIHTMLOptionProps.- The latter was added in 3.0.0 without realizing we already had the former, so this is a simple correction.
-
RadioGroupoptionsprop now supports optionallabel.
-
#2742
Breadcrumbsnow embeds its SVG icons just likeCheckboxabove.- This was the final user of the icon fonts. They're now officially legacy!
-
#2727
Buttonnow renderstext={0}. -
#2734
ControlGroupsets correct border-radius on only child. -
#2744
ControlGroupsupportsHTMLSelectcomponents. -
#2731
Popovertargets inControlGroupnow correctly inherit border-radius.
-
#2724
DateInputremovenullfrom signature offormatDateasnullvalues are handled by the component itself. -
#2751
DateInputsupportsshowActionsBarprop fromDatePicker.
- 🌟 #2747
activeItem(keyboard focus) andquery(predicate string) can now be controlled via props or uncontrolled.- Optional
query/onQueryChangeandactiveItem/onActiveItemChangeprops supported in all 4 components.- Supply
queryoractiveItemto control that feature. Listen to changes using the associated event prop.
- Supply
-
resetOnSelectis also a "common" prop, supported by all 4 components and implemented inQueryList. - Refactor: most state has been pushed into
QueryList, which is now responsible for this behavior.
- Optional
-
#2748
Suggestnow shows the selected item as the placeholder text when the popover is open. - #2723 Ensure the active item is always an enabled item.
- #2646 Added a common test suite for all components to assert common functionality works identically.
-
#2701
EditableCellcorrectly passeswrapTextprop.
-
#2747 Updated
TimezonePickerfor latestSelectbehavior.
-
#2740 Added
newtags to pages with new content. - #2746 Navigator limits to 10 results and has more helpful placeholder text.
-
#2419 Omnibar example hotkey is now
shift+oto avoid Firefox conflict. - Improved checkbox/switch/radio examples to include some props options.
@badams @face @kadhirvelm @ntrinquier
-
#2667
SpinneracceptsClasses.LARGE/SMALLto set large/small size (instead ofsizeprop).- A warning is logged if both
Classes.LARGE/SMALLandsizeare provided to aSpinner. - 🆙 This undoes a breaking change from 3.0.0 where we removed support for these CSS classes.
- A warning is logged if both
-
#2671
Iconuses<desc>element for title (no browser tootltip, still a11y).
-
#2666 Fix
Buttonloadingspinner size. -
#2670 Fix
Buttondark+minimal style. -
#2681 Fix
ButtonGroupvertical style. -
#2681 Fix
ContextMenubehavior when right-clicking on backdrop. -
#2681 Fix
HTMLSelectoption label rendering. -
#2681 Fix
MenuItemsubmenu behavior withusePortal={false}.- This prop was removed erroneously in #2539 in 3.0.0-rc.0, so we're bringing it back.
-
#2629 Fix
Treegeneric types support on node callbacks. -
#2676 Fix
MenuItemsubmenu styles. -
#2672 Disabled Buttons now have
tabIndex={-1}.
- Fix broken links.
- Update v1 and v2 docs sites.
🆙 Migration guide is at the bottom of this document.
- 🔥 #2638 Relicense all packages to "Blueprint License based on Apache 2.0"
- When we originally licensed to Apache 2.0 in #1751, we added a section 10 to prohibit impersonating Palantir.
- It was brought to our attention that this modification makes the license no longer Apache 2.0, so we have decided to declare our own license based on Apache 2.0.
⚠️ The only modification is this addition of section 10.
- 🔥 #2441 Change CSS namespace to
bp3-to avoid conflicts with previous major versions.- If you use
Classesconstants instead of hardcoded string literals then this upgrade is essentially free (except for your own CSS rules). - The best practice for CSS is to style your own classes instead of Blueprint classes, but in the short term you can replace all
pt-prefixes in Sass code with#{$ns}-(exactly like our own source code). - 🆙 Use the
blueprint-classes-constantsTSLint rule to aid in this migration. ⚠️ SCSS/Less variables are unchanged and continue to use the$pt-prefix:$pt-grid-size, etc.
- If you use
- 🌟 #2426 Restore support for React 15 (in addition to 16).
-
#2462 Declare
sideEffects: ["*.css"]in package.json to preserve CSS imports during tree shaking. -
#2562 Add
tslibto webpack externals so it is not included in*.bundle.js. -
#2608 Publish TypeScript source maps alongside compiled output: add
*.js.mapnext to*.jsand*.d.ts.
- 👍 #2511 Move
react-transition-groupfrom peer to standard dependency. -
#2488 New 3.0 upgrade script
upgrade-blueprint-3.0.0-rename, improvements to 2.0 upgrade script.
🔁 These changes can be replaced by the 🆙 upgrade script.
- 🔥 #2441 Change CSS namespace to
bp3-to avoid conflicts with previous major versions.- 🆙 Use the
blueprint-classes-constantsTSLint rule to aid in this migration.
- 🆙 Use the
- 🔥 #2366 Move styles attached to global selectors to their own CSS classes.
- Global resets remain for
<body>,<p>,<small>,<strong>tags. ⚠️ The following HTML elements now require CSS classes to apply Blueprint styles:-
<h1>-<h6>⇒<H1>-<H6>orClasses.HEADING -
<blockquote>⇒<Blockquote>orClasses.BLOCKQUOTE -
<code>⇒<Code>orClasses.CODE -
<pre>⇒<Pre>orClasses.CODE_BLOCK -
<ol>&<ul>⇒<OL>&<UL>orClasses.LIST-
Not linted by new
blueprint-html-componentsrule as there are legit un-classed uses of list elements.
-
Not linted by new
-
<hr>(no class yet;Dividercoming soon)
-
- 👍 The above elements do not require classes when used inside a container element with
Classes.RUNNING_TEXT. -
#2456 Add React components for elements above (and
HTMLTableforClasses.HTML_TABLE). - 🆙 Use the
blueprint-html-componentsTSLint rule to aid in this migration.
- Global resets remain for
- 🔥 Refactors to base typography styles:
Classes.RUNNING_TEXTnow uses the default font-size andClasses.TEXT_LARGEcan be applied anywhere to use the large font-size.- Try it out in the new interactive Typography example!
- 🌟 #2484 Allow string literals for enums!
- Most former string enums are now
const/typepairs, the official TypeScript solution for non-opaque string enumerations. - Affects
Alignment,CollapseFrom,Elevation,Intent,Position,PopoverInteractionKind - 🔁
CollapseFrom⇒Boundary
- Most former string enums are now
- 🔥 #2579
Spinnersizeprop replacessmall/largeprops.- 🆙 @blueprintjs/core 3.0.1 reverts this breaking change by restoring support for
Classes.SMALL/LARGEassizeshorthands.
- 🆙 @blueprintjs/core 3.0.1 reverts this breaking change by restoring support for
-
#2581
Overlaylifecycle props for all overlay components.-
IOverlayLifecyclePropsdefinesonOpening,onOpened,onClosing,onClosedtied to CSS transition timing.-
onOpeningandonClosingfire before the enter or exit transition (respectively) begins andonOpenedandonClosedfire after it ends. - Overlay content is always mounted in the DOM during these lifecycles, but it is not visible during
onOpeningandonClosed.
-
- These new props are supported by
Overlay,Dialog,PopoverandTooltip. - 🔁
OverlaydidOpen⇒onOpened,didClose⇒onClosed - 🔁
PopoverpopoverDidClose⇒onClosed,popoverDidOpen⇒onOpened,popoverWillClose⇒onClosing,popoverWillOpen⇒onOpening
-
- 🔥 #2601 Delete
SVGPopoverandSVGTooltip.-<SVGPopover content="..." target="..." /> +<Popover targetTagName="g" wrapperTagName="g" content="..." target="..." />
- 🔥 #2477 Delete
SVGSpinnercomponent as the normalSpinnercan now safely be used inside another SVG.- Delete
Classes.SPINNER_SVG_CONTAINERandClasses.SVG_SPINNER.
- Delete
-
#2571
Labelis now a simple HTML tag wrapper likeCodeorH1.- 🔥 Removed required
textprop. Pass content aschildrennow. - 🔥 No support for
inlineorhelperText, just basic HTML props. - Prefer
FormGroupfor your labeling needs. The complexity of two approaches was unnecessary, andFormGroupcan handle any use case you throw at it (not true ofLabel).
- 🔥 Removed required
- 🔁 #2570
FormGrouprequiredLabel⇒labelInfoand removebooleanshorthand.-<FormGroup label="Name" requiredLabel={true}> +<FormGroup label="Name" labelInfo="(required)">
- 🔁 #2443
Classes.HEADINGreplaces the following constants:Classes.CALLOUT_TITLEClasses.DIALOG_TITLEClasses.HOTKEY_GROUPClasses.NON_IDEAL_STATE_TITLE
-
#2617
PopoverandTooltipnow extend a shared props interface for consistency.- 🔁
rootElementTag⇒wrapperTagName - 🔁
targetElementTag⇒targetTagName - 🔁
tooltipClassName⇒popoverClassName
- 🔁
- 🌟 #2537 New
OverflowListcomponent is likeCollapsibleListwith auto-collapse behavior!- Renders as many items as can fit inside itself, then collapses the rest into a single element.
- Accepts generic
items: T[]with props to render visible and overflowed items. - Uses resize-observer-polyfill (new dependency) to intelligently detect element resizing.
- ❌ #2616 Deprecate
CollapsibleListin favor ofOverflowList.
- 🌟 #2536 New
MultiSlidercomponent provides a low-level API for manipulating number lines.
- 👍
SliderandRangeSlidereach render aMultiSlider, making them little more than convenience wrappers for single values or ranges. - Handles are configured as
<MultiSlider.Handle>children and support multiple appearances and interaction types.
- 👍
-
#2605 New
HTMLSelectcomponent for<select>tag.- Named thusly to avoid conflict with
@blueprintjs/selectpackage. - Supports
<option>tags as children oroptions: IHTMLOption[]prop shorthand. - ❌ Deprecate
Classes.SELECTin favor of this component, which usesClasses.HTML_SELECTto support the SVG icon. - The CSS-only API for
<select>tags was one of the last holdouts of the icon font.
- Named thusly to avoid conflict with
-
#2609 Upgrade to
[email protected] -
#2583 Static aliases for
Menuchild components:Menu.Item,Menu.Divider -
#2477
Spinnermarkup refactor: remove all wrapping<div>elements so the root is the<svg>itself! -
#2431 New
TagiconandrightIconprops.-
Tagstyles now work similarly toButton: a flex row with children wrapped in a span.
-
-
#2592
TagInputsupport for pasting in new items withaddOnPasteprop. -
#2522
Toaster.create()throws error if used within lifecycle method -
#2499
ensureElementutility supportsReact.Fragment(React 16 only) -
#2475 Improve
<kbd>element styles and allow un-classed usage insideClasses.RUNNING_TEXT
-
#2540 Fix
Buttonalignment inNavbar. -
#2561 Fix
Buttonalignment without icon. -
#2497 Fix
Buttonwidth with large CSS icon only -
#2538 Fix
Callouticon color. -
#2541 Fix
Icondark intent colors. -
#2527 Fix
InputGroupReact warning aboutroundprop. -
#2491 Fix
Spinnerstroke width -
#2494 Fix
Switchalign-right style -
#2495 Fix
Tabsvertical style -
#2428 Fix
Tagoutline behavior -
#2582 Fix
TagInputReact warning. -
#2509 Fix typings of
HTMLTablecomponent - #2554 Add default type parameters for decorator APIs.
-
#2593 Monospace typography uses relative
font-size: smaller. -
#2544 Move
NonIdealStatewidth styles to child elements.
- 🔥 #2441 Change CSS namespace to
bp3-. -
#2539 Components use default
usePortalvalue (true). -
#2573
DateInputonChangenow has second argumentisUserChange(likeDatePicker). -
#2484 Allow string literals for enums, and rename a few:
- 🔁
TimePickerPrecision⇒TimePrecision - 🔁
DateRangeBoundary⇒Boundary(from@blueprintjs/core)
- 🔁
- 🔥 #2441 Change CSS namespace to
bp3-. -
#2580 New
itemDisabledprop on all components allows disabling individual items.- Keyboard controls intelligently skip disabled items.
- 🔥 #2441 Change CSS namespace to
bp3-. -
#2556
Tablewithout data can now scroll horizontally. - #2586 Fix React unknown prop warning.
- 🌟 #2456 Add
blueprint-html-componentsrule to enforce usage of Blueprint components over JSX intrinsic elements.- Marks as errors HTML elements for which Blueprint provides wrappers. See list in
corebreaking changes above.
- Marks as errors HTML elements for which Blueprint provides wrappers. See list in
-
#2589 Fix
blueprint-classes-constantsprefix detection. -
#2457 Improve error messages in
blueprint-icon-componentslint rule.
- 🌟 #2574 Complete refactor of documentation content to focus on React usage and de-emphasize CSS/HTML usage.
- 🌟 #2489 New design for examples visually separates them from content.
- CSS examples now provide checkboxes for each modifier, instead of re-rendering the same markup for each modifier. This allows more than one modifier to be set at a time to demonstrate interactions between them.
- 🔥 #2545 New docs site URL scheme:
/docs/(versions/:v). - #2546 Split core components into several subsections.
-
#2591 New
DocumentationnavigatorExcludeprop to exclude items from the search results. -
#2615 New
DocumentationrenderPageActionsprop to add custom actions on each page.- Add "Edit this page" links at the top of each documentation page.
- #2459 Fix content width due to code blocks.
@badams @devinhalladay @invliD @jaamison @JKillian @jscheiny @mcintyret @PrincipalsOffice @qcz @Que3216 @rafeememon @rosscourt
- FAQ
- 6.x Changelog
- 5.x Changelog
- 5.0 pre-release changelog
- 4.x Changelog
- v4.0 & v5.0 major version semantic swap
- v6.0 changes
- Spacing System Migration: 10px to 4px
- react-day-picker v8 migration
- HotkeysTarget & useHotkeys migration
- PanelStack2 migration
- Table 6.0 changes
