-
Notifications
You must be signed in to change notification settings - Fork 2.2k
3.x Changelog
- 🔥 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
Note: since we started using Lerna 3.x, packages are sometimes released without any real changes themselves, but instead because they depend on a package (like blueprint core) which has been changed since the last release. These kinds of "no change" releases are not explicitly listed below.
- #4958 feat(colors): add aliases for cerulean
-
#4888 fix(
Dialog
): set dialog headerz-index
to 0 -
#4951 fix(
Tabs
): usetabIndex
of -1 for non-active tabs for better accessibility UX
- #4932 feat: update modern colors (slight desaturation of grays and core colors, also updated secondary colors)
-
#4935 feat(
EditableText
): new HTML prop "contentId" -
#4924 fix(
PanelStack2
):renderActivePanelOnly={false}
keeps panels mounted -
#4934 fix(
classes.ts
): compatibility with non-Node environments -
#4915 feat: pre-release version of
blueprint-modern.css
stylesheet with modernized colors
-
#4925 fix(
DateInput
): make popover focusable via keyboard -
#4931 feat: pre-release version of
blueprint-datetime-modern.css
stylesheet with modernized colors
-
#4931 feat: pre-release version of
blueprint-table-modern.css
stylesheet with modernized colors
-
#4907 fix(
Overlay
): capture focus when it returns to document -
#4919 fix(
Popover
): disableshouldReturnFocusOnClose
-
#4919 fix(
Popover2
): disableshouldReturnFocusOnClose
- #4906 Initial release of the new modernized Blueprint 5.x colors. This is an incomplete color palette and should not be used in production yet.
-
#4914 fix(
Popover
,Tooltip
): disableshouldReturnFocusOnClose
for hover interactions
-
#4914 fix(
Popover2
,Tooltip2
): disableshouldReturnFocusOnClose
for hover interactions
-
#4905 🔥 fix(
Button
): revert 12px font size change in small button -
#4904 feat(
Overlay
): addshouldReturnFocusOnClose
prop, enabled by default- Focus should now return to the previously active element when a popover, tooltip, dialog, or drawer closes
-
#4900 feat(
Overlay
): set aria-live attribute for better accessibility of Tooltips and Popovers (screen readers can now read their contents) -
#4892 fix(
MenuItem
): make items focusable for a11y consistency -
#4894 fix(
Overlay
): use focus traps to fixenforceFocus
behavior
- #4902 feat: new icons for weather
-
#4898 feat(
Popover2
): allow enter/space key to open popover
This version is being released in the 3.x range to match with the rest of the Blueprint packages.
-
#4891 🔥 break: remove Sass variables for color definitions
- These were getting duplicated from
@blueprintjsj/core
(we couldn't move them from there, because it caused an implicit breaking change due to the Sass dependency), and we don't currently see a use case for Blueprint consumers to use these variables in the standalone package.@blueprints/core/lib/variables
should be sufficient, at least for now.
- These were getting duplicated from
- #4891 fix: remove implicit dependency on colors package Sass
- #4883 chore: add missing README and LICENSE files
-
#4838 feat(
Dialog
): add standard accessibility attributes for dialogs (role="dialog"
,aria-labelledby
,aria-describedby
) -
#4835 feat(
Icon
): addaria-hidden
attribute for unlabeled icons -
#4885 🔥 fix(
Button
): use 12px font size in small buttons -
#4834 fix(
Button
): do not override icon intent color in dark mode -
#4832 fix(
Tooltip
): heading typography color in tooltip content in dark mode -
#4880 fix: make
configureDom4.ts
an ES module, which allows the source file to be compatible withtsc --isolatedModules
-
#4877 fix(
TagInput
): correct type forinputRef
prop
-
#4881 feat: new icon "syringe"
-
#4832 fix(
Tooltip2
): heading typography color in tooltip content in dark mode -
#4877 fix(
Popover2
): correct type forpopoverRef
prop
-
#4843 feat(
Select
): new prop "fill" makes the component take up the width of its container- N.B. when using this prop, you are required to ensure that the Select child you render also fills its container width (for example, use
<Button fill={true}>
)
- N.B. when using this prop, you are required to ensure that the Select child you render also fills its container width (for example, use
-
#4877 fix(
MultiSelect
): more robust ref handling fortagInputProps.inputRef
- #4884 fix issues with blank rows/columns on mount/resize
-
#4867 fix(
no-color-literal
): use the correct variable name in the autofixer
-
#4858 feat: new package!
-
@blueprintjs/colors
contains color palette definitions in a separate package without any dependencies, useful in build tooling like@blueprintjs/stylelint-plugin
-
-
#4821 feat(
ProgressBar
,Spinner
): make progress indicators accessible witharia
androle
attributes -
#4836 feat: add
aria-label
to some buttons for better accessibility support- This applies to:
NumericInput
,PanelView
,PanelView2
,Tag
,Toast
- This applies to:
-
#4845 fix(
TimePicker
): reset input fields whenvalue={null}
-
#4824, #4848, #4851, #4856, #4840, #4859, #4861 new icons
- "stadium-geometry", "area-of-interest", "buggy", "antenna", "tank", "helicopter", "third-party", "rocket", "rocket-slant", "header-three"
-
#4816 fix(
ContextMenu2
): remove obsolete context menu target CSS
-
#4841 feat(
Select
): new prop "matchTargetWidth" that will make the<Select>
component's popover have the same width as the target -
#4826 fix(
MultiSelect
,Select
,Suggest
): pass event topopoverProps.onInteraction
-
#4854 chore: add migration path for more 4.x renamed types
- This change deprecates
ICellRenderer
,IColumnHeaderRenderer
,IRowHeaderRenderer
,IStyledRegionGroup
,ICellInterval
,ICellCoordinate
,IRegion
in favor of the respective type alias without theI
prefix. It also exports those type aliases from the package root.
- This change deprecates
-
#4853 feat: add
no-color-literal
rule to encourage using color variables ($blue3
) instead of color literals (#137CBD
)
-
#4798 feat(
Text
): allow passing HTML props to rendered element -
#4805 fix(
Popover
): addaria-haspopup
attribute for accessibility -
#4800 fix(
PanelStack2
): fix animation direction in controlled mode -
#4808 fix(
PanelStack2
): more stable controlled mode -
#4790 fix(
HotkeysProvider
): de-duplicate hotkeys so that only unique ones are registered with the global dialog -
#4790 fix(
useHotkeys
): add guard to make the hook (and, transitively,HotkeysTarget2
) compatible with SSR and other environments wherewindow
does not exist -
#4806 fix(
HTMLSelect
): clarify CSS API markup, add styling for.bp3-icon
child element
-
#4805 fix(
Popover2
): addaria-haspopup
attribute for accessibility
-
#4790 feat: add
<Table2>
and<EditableCell2>
components which use the new hotkeys API- These are provided as new components because they require that a
<HotkeysProvider>
is configured somewhere in the application for them to work correctly. Otherwise, they are functionally the same as their counterparts<Table>
and<EditableCell2>
. - The 3.9.0 version number does not signify that the issues listed in the table 3.8.x milestone are fixed, unfortunately. Fixes for those issues will come in v3.9.x.
- These are provided as new components because they require that a
-
#4767 feat(
HotkeysProvider
): support advanced nesting use cases -
#4773 feat(
useHotkeys
): accept customdocument
for global hotkey handlers -
#4771 fix(
ControlGroup
): leftElement insideInputGroup
no longer hidden
- #4761 feat: new object relation icons
-
#4756 fix(
ContextMenu2
): detect dark theme correctly- This fixes ContextMenu2 dark theme detection by restoring an inline
<div>
rendered as the popover target, so that we can attach a ref to it and properly query for dark theme. - 🔥 BREAKING CHANGE: rename
Classes.CONTEXT_MENU2_POPOVER2_TARGET
toClasses.CONTEXT_MENU2_VIRTUAL_TARGET
- 🔥 BREAKING CHANGE: add
ref
property back toContextMenu2ChildrenProps
after it was removed in #4740 (sorry for the API whiplash). If upgrading from popover2> 0.8.0 < 0.11.0
and you are using the advanced children render function API, you'll need to attach this ref to whatever you return from the children render function.
- This fixes ContextMenu2 dark theme detection by restoring an inline
-
#4744 fix(
ContextMenu2
):Tooltip2
and autofocus interactions- This fixes #4719 (close tooltips on elements when a context menu is triggered) while avoiding the regression described in #4742. ContextMenu2 now dismisses as expected with the ESC key.
-
#4730 feat(
MultiStepDialog
): newinitialStepIndex
prop allows skipping to a specific step in the dialog -
#4729 fix(
Portal
): handle moreclassName
edge cases, so the component no longer crashes on multiple class names or empty strings -
#4736 fix (
Popover2
): handle popover v1 dismiss API correctly so that Popover2 content which includes select or datetime components which render<Popover captureDismiss={true}>
behave as expected -
#4740 ❌ deprecation:
Classes.FIXED_POSITIONING_CONTAINING_BLOCK
-
#4740 fix(
ContextMenu2
): simpler target positioning logic utilizing<Portal>
- This fixes a bug where the offset calculation was wrong in cases where the context menu child scrolled around in its container and/or the developer was not able to attach
- 🔥 BREAKING CHANGE: Removed
ref
fromContextMenu2ChildrenProps
-
#4735 fix(
Popover2
): close popovers/tooltips on<ContextMenu2>
opening
-
#4723 fix(
EditableText
): optimize component so that it no longer updates the DOM unnecessarily when callback props change-
updateInputDimensions
is expensive since it touches the DOM; it is now only called when the props/state which it depends on are changed
-
-
#4717 feat(
ContextMenu2
): supportref
prop usingReact.forwardRef
-
#4718 fix(
ContextMenu2
): allow content function to returnundefined
-
#4715 fix: don't lint the
"bp-"
prefix
-
#4713 feat(
ContextMenu2
): forward more props to wrapper element- 🔥 BREAKING CHANGE: the popover props which were supported directly on
<ContextMenu2>
(overlay lifecycle handlers,popoverClassName
,transitionDuration
) are now moved to an object in thepopoverProps
prop.
- <ContextMenu2 popoverClassName="foo"> + <ContextMenu2 popoverProps={ popoverClassName: "foo" }}>`
-
<ContextMenu2>
now forwards extra HTML props down to the generated wrapper element; consumers can mostly treat it like a<div>
now
- 🔥 BREAKING CHANGE: the popover props which were supported directly on
-
#4712 feat(
ContextMenu2
): betterdisabled
behavior, so users don't have to worry about settingdisabled={true}
when they setcontent={undefined}
; that API can now be reserved for more rare use cases -
#4709 feat(
ContextMenu2
): allow specifying custom wrapper tag withtagName
prop
-
#4701 fix(
ContextMenu2
): allowcontent
prop to be undefined
-
#4699 fix(
no-prefix-literal
): handle less import references correctly (e.g.import (reference) "some/path/to/file.less"
)
-
#4698 fix(
Tag
): restore removable tag height using standard icon size- regression was introduced in #4688 which made the "small-cross" remove icon large, when it should have been standard size
-
#4692 fix(
no-prefix-literal
): handle selectors with multiple bp classes
-
#4683 feat: add
$bp-ns
variable as an alias for$ns
, useful for consumers to target Blueprint component element CSS selectors with a legible variable name⚠️ This variable is used in the autofixer for the@blueprintjs/no-prefix-literal
stylelint rule, so you must be using this minimum version of the core package for that fixer to work
-
#4688 ❌ deprecate Icon, Drawer, Spinner size constant static members
- use
IconSize
,DrawerSize
, andSpinnerSize
, respectively, instead
- use
-
#4674 feat(
HTMLTable
): add styling for<tfoot>
elements
🌟 New package!
-
#4683 feat:
no-prefix-literal
lint rule warns on usage of thebp3-
orbp4-
prefix in Sass / Less / CSS code, autofixer replaces string literal with the new$bp-ns
variable available in@blueprintjs/core
v3.44.1
-
#4673 feat: use
ResizeSensor2
to match behavior in v4.0- This component now includes the breaking changes coming in v4.0 for
<ResizeSensor>
as a result of no longer usingReactDOM.findDOMNode
. These breaks only affect you if you use the more advancedrenderTarget
API of Popover2 / Tooltip2.
- This component now includes the breaking changes coming in v4.0 for
- 🆙 #4644 Add type aliases for interfaces renamed in v4.0
-
#4648 feat(
OverflowList
): addalwaysRenderOverflow
prop -
#4647 fix(
MultistepDialog
): fix step title color in dark mode
- 🆙 #4644 Add type aliases for interfaces renamed in v4.0
- 🆙 #4644 Add type aliases for interfaces renamed in v4.0
- 🆙 #4644 Add type aliases for interfaces renamed in v4.0
- 🆙 #4644 Add type aliases for interfaces renamed in v4.0
- 🆙 #4644 Add type aliases for interfaces renamed in v4.0
-
#4620 feat(
Drawer
): addshouldReturnFocusOnClose
prop to provide a way to disable the component's default behavior of returning focus to the previous active element after closing -
#4610 feat(
MultistepDialog
): allow custom next & back button props for each dialog step -
#4630 feat(
MultiStepDialog
): improve step styling - #4612 fix unsafe ref usage across various components
- ❌ #4638 deprecate various APIs which we intend to remove in v4.0:
IConstructor
IElementRefProps
createReactRef
getDisplayName
LifecycleCompatPolyfill
- #4612 fix unsafe ref usage across various components
-
#4640 feat(
ContextMenu2
): new children render prop allows omitting wrapper element -
#4621 fix(
Popover2
): use more specific overlay backdrop selector
- #4612 fix unsafe ref usage across various components
-
#4603 feat(
Popover
): restore support forposition
prop (un-deprecate it) to make the transition to Popover2 easier -
#4591 fix(
useHotkeys
): remove synthetic default import of React -
#4601 fix(
Tree
): fixed compatibility withContextMenu2
, which is now positioned correctly when applied to node labels
- #4599 chore: upgrade react-day-picker to 7.4.9
- #4602 docs: update browser support docs to list polyfills required for IE11
-
#4603 feat(
Popover2
): newposition
prop, same as inPopover
, allows specifying popper.js placement using a familiar API which requires no migration when switching fromPopover
toPopover2
-
#4601 feat(
Popover2
): newpositioningStrategy
prop allows customizing popper.js positioning strategy -
#4592 fix(
Popover2
): applytabIndex
to target correctly -
#4601 feat(
ContextMenu2
): various fixes and enhancements- New props (
className
,disabled
, andonContextMenu
) for<ContextMenu2>
-
ContextMenu2RenderProps
has been updated to include the mouse event likeContextMenuTarget
did, to improve compatibility with existing usage patterns
- New props (
-
#4602 fix IE11 support by adding
String.prototype.startsWith
polyfill
-
#4602 fix IE11 support by upgrading
@pmmmwh/react-refresh-webpack-plugin
and configuring webpack target correctly
The patch release two days ago still included bug #4544 in some places. That has been completely fixed in today's release.
-
#4567 feat(
MultiStepDialog
):backButtonProps
allows customization of back button text anddisabled
state - #4576 fix: revert all React imports to namespace import syntax (regression introduced in core 3.40.0)
-
#4577 fix(
Toaster
): fix layout for toasts rendered in portals (regression introduced in core 3.40.0) -
#4570 fix(
PanelStack2
): improve types for common use cases involving heterogenous panel types in a panel stack⚠️ this is a breaking change if you are already usingPanelStack2
.
- #4576 fix: revert all React imports to namespace import syntax
@blueprintjs/[email protected]
, @blueprintjs/[email protected]
, @blueprintjs/[email protected]
, @blueprintjs/[email protected]
, @blueprintjs/[email protected]
, @blueprintjs/[email protected]
- Patch versions were released for all packages to revert a breaking change introduced by #4544 which forced TypeScript consumers to enable
allowSyntheticDefaultImports
in order to compile the libraries.
-
#4541
- feat: new
<PanelStack2>
component, see migration guide here ⚠️ deprecation:<PanelStack>
is deprecated in favor of<PanelStack2>
- feat: new
- #4558 feat: convert validation errors to console logs
-
#4555 fix(
Toaster
): use absolute positioning when inline (usePortal={false}
)⚠️ This is a small CSS breaking change for users of this option, but also clearly a bugfix (the layout would have been broken or required custom positioning before this change).
-
#4556 fix(
Icon
): accept standard HTML attributes (e.g.role="..."
)
- #4558 feat: convert validation errors to console logs
-
#4550 feat: new icons "shapes", "add-location"
-
#4524
⚠️ deprecation:ContextMenu
andContextMenuTarget
are now deprecated in favor of{ ContextMenu2 } from "@blueprintjs/popover2"
-
#4532
⚠️ deprecation:HotkeysTarget
is now deprecated in favor ofHotkeysTarget2
oruseHotkeys
-
#4532 feat: new
useHotkeys
hook,<HotkeysProvider>
and<HotkeysTarget2>
components -
#4524 feat: newly exported utility function
isDarkTheme
tests whether an element in the DOM is inside a Blueprint dark theme subtree
-
#4524 🌟 feat: new
<ContextMenu2>
component replacesContextMenu
andContextMenuTarget
, which are now deprecated.
- Upgrade to webpack v5
- Switch to ts-loader instead of awesome-typescript-loader
- Upgrade to karma v6
- Switch to helpful-reporter instead of mocha-reporter
-
#4512 fix(
Overlay
): don't make container focussable unless relevant props are enabled- this fixes an issue where tooltips would remain open on the page if opened by keyboard navigation
-
#4512 feat: add
rootBoundary
prop - #4512 fix: don't apply duplicate tabIndex to target container
-
#4512 fix: add support for dismissal by
MenuItem
-
#4512 fix: apply
portalClassName
correctly to thePortal
container, not its childOverlay
-
#4494 fix: add
IAnchorButtonProps
; exportsetRef
utility-
Utils.setRef
is newly exported, useful when you want to support multiple kinds of refs (objects or callbacks) as props, just like many Blueprint components -
IAnchorButtonProps
is a newly exported shorthand forIButtonProps<HTMLAnchorElement>
, helps with the now stricter prop types for buttons
-
🌟 New package added in #4488
- This package contains two new components,
Popover2
andTooltip2
, which are replacements forPopover
andTooltip
(from@blueprintjs/core
) respectively. You are encouraged to migrate to these new APIs as they will be come the standard popover and tooltip components in Blueprint core v4.0. - This package depends on React 16.8+ and Popper.js 2.0.
- View the migration guide on the wiki.
-
#4492 ❌ deprecation:
Popover
andTooltip
are now deprecated in favor ofPopover2
andTooltip2
, available in the@blueprintjs/popover2
package.- Note that components across the core, datetime, select, and table packages still use these deprecated components and will continue to do so until v4.0.
-
#4488 feat(
Popover
): newplacement
prop replaces the newly deprecatedposition
prop- "placement" is similar to "position", with a direct mapping that involves changing some keywords.
- Use this prop going forward to make the transition to
Popover2
easier in the future.
-
#3829 ❌
Menu.Item
andMenu.Divider
are now deprecated because they can be undefined at runtime due to a module import cycle. UseMenuItem
andMenuDivider
instead.
@blueprintjs/select
or @blueprintjs/datetime
and you reference the following types directly: IPopoverProps
, IInputGroupProps
. You can solve this by upgrading to the latest versions of all Blueprint packages.
-
#4462 🌟 feat: new
<MultistepDialog>
component provides a standard UI for multi-step processes -
#4483 🌟 feat(
Alert
): newloading
prop- an Alert in a "loading" state renders its button with
loading={true}
(showing a spinner) and disables its cancel button (if visible)
- an Alert in a "loading" state renders its button with
-
#4422 feat(
Drawer
): return focus to active element after closing -
#4438 feat: normalize ref handling on all components
- Added support for React ref objects (created by
React.createRef()
) to all components which did not yet have support:<Switch>
,<Checkbox>
,<Radio>
,<NumericInput>
,<Menu>
,<Popover>
- Added support for React ref objects (created by
-
#4441 feat(
InputGroup
): improve props interface- Prop interface type union with
React.InputHTMLAttributes
is no longer required, inferred type of event inonChange
is more specific -
IInputGroupProps
is now deprecated in favor ofIInputGroupProps2
-
IControlledProps
is now deprecated in favor ofIControlledProps2
- Prop interface type union with
-
#4442 fix(
MultiSlider
): render HandleclassName
correctly
- #4441 chore: use new InputGroup props interface
- #4448 🔧 chore: upgrade typescript-eslint and eslint dependencies
-
#4449 🔧 feat: enable lint rule
@typescript-eslint/unbound-method
- #4448 🔧 chore: upgrade typescript-eslint and eslint dependencies
-
#4469 feat: new icons "high priority" and "emoji"
- #4448 🔧 feat: upgrade typescript to 4.1
- #4441 chore: use new InputGroup props interface
-
#4438 feat: normalize ref handling on all components
- Added support for React ref objects (created by
React.createRef()
) to all components which did not yet have support:<Cell>
,<ColumnHeader>
,<TableQuadrant>
,<TableQuadrantStack>
- Added support for React ref objects (created by
- #4448 🔧 feat: upgrade css-loader, mini-css-extract-plugin, style-loader, and webpack-bundle-analyzer to latest major versions
-
#4403 feat: allow React 17 peer dependency
-
#4374 feat(
Tooltip
): newminimal
prop adds support for minimal styling -
#4411 feat(
NumericInput
): newasyncControl
prop (passes through directly to the underlying<InputGroup>
) -
#4388 feat(
NumericInput
): newlocale
prop 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:
createNewItemPosition
prop allows placing the "Create new item" item at the beginning of a QueryList (Select, MultiSelect, etc.) -
#4413 feat(
MultiSelect
): newonRemove
prop 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-acceleration
mixin 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/core
3.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/core
3.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 theasyncControl
prop in v3.35.0
-
#4308 feat: allow sliders to specify custom label values with
labelValues
prop -
#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.ReactNode
is 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
, andelevationClass
function signatures to improve compatibility with strict null checks -
#4365 fix(
EditableText
): respectdisabled
prop 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 theonRemove
callback prop, fixing a regression introduced in #4291 which broke existing usage of theonRemove
prop under strict TS compiler flags - #4346 chore: enable strict null checks compiler flag
-
#4343, #4354 feat(
Tag
): addelementRef
prop to access native HTML element with ref callback or ref object -
#4354 feat: add support for React 16 ref objects in
elementRef
prop for HTML components (e.g.<H1>
,<Blockquote>
,<Label>
)
-
#4349 fix: resolve stray references to
name
global which may cause errors in TS v4.1+
- fix(
createMouseEvent
): setdetailArg
parameter correctly
-
#4341 fix: restore
IResizeEntry
export
- #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
, andsafeInvokeOrValue
utility functions. Use TypeScript 3.7+ optional chaining and optional call operators instead.-
#4291 fix(
TagInput
): allowReact.ReactNode
inonRemove
handler, 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 ongetDerivedStateFromProps
lifecycle method -
#4321 fix(
NumericInput
): revert to renderingButton
under the hood, improvehandleContinuousChange
implementation -
#4325 fix(
ControlGroup
): normalizefill
style -
#4328 fix(
Popover
): improvecaptureDismiss
mechanism -
#4309 fix(
Button
): always exit active state if blurred -
#4338 fix(
TextArea
): handle non-function refs -
#4334 feat(
Text
): addtitle
prop, supporthtmlTitle
in 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
highlightCurrentDay
prop in more components -
#4316 fix(
DateInput
): improve blur handling to avoid unexpected popover closures
⚠️ #4339 break: upgrade totypescript-eslint
4.0
⚠️ #4339 break: upgrade totypescript-eslint
4.0
-
#4336 feat: new
data-connection
icon
-
#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
): allowReactNode
inlabel
prop -
#4268 fix(
EditableText
): add small width buffer to prevent crash in component resizing implementation -
#4266 fix(
InputGroup
): allow async controlled updates tovalue
prop.InputGroup
now uses a new private component calledAsyncControllableInput
which 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 theasyncControl
prop in v3.35.0
-
#4275 fix(
Tabs
): don't animate tab indicator on first render -
#4255 fix(
Tag
): tag remove button renders with keyboard accessibletabIndex
attribute if interactive. This is especially useful for theMultiSelect
component from the@blueprintjs/select
package.
-
#4254 fix(
DateRangeInput
): check time boundaries (not just dates) when computing same day overlap. This is especially relevant whenallowSingleDayRange={true}
. -
#4274 fix(
DatePicker
,TimePicker
): allowvalue
prop to benull
-
#4261 chore!: upgrade dependencies
- BREAKING: upgrade to
eslint-plugin-jsdoc@30
- BREAKING: upgrade to
-
#4261 chore: upgrade dependencies, fix: move
jest
to 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
): useAbstractButton
instead ofButton
to 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 wherevalue
prop behaves like other controlled inputs and -
#4211 feat(
NumericInput
): newdefaultValue
prop 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
-
IKeysBlacklist
andIKeysWhitelist
interfaces 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,TruncatedFormat
andJSONFormat
. This fixes a React console warning aboutparentCellWidth
not being a DOM attribute.
- #4075 chore: upgrade eslint, typescript-eslint
-
#4080 feat: add configuration for linting node script modules written as
.js
source files - Upgrade
@blueprintjs/tslint-config
to 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.js
of the blueprint monorepo witheslint-plugin-prettier
. In lint tasks initiated from the command line (including CI), prefer using theprettier
CLI directly.
- This package was renamed from
@blueprintjs/eslint-plugin-blueprint
for 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--fix
option 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 inonValueChange
callback -
#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
strictNullChecks
enabled, 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
.eslintignore
file at the root of a git repo (useful for monorepos like Blueprint's) - feat(es-lint): support arbitrary additional arguments to
eslint
CLI
- 🔧 #3917 Use new
@blueprintjs/eslint-plugin-blueprint
lint 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-lint
script withes-lint
script
- #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.
Older changes are documented here.
- react-day-picker v8 migration
- HotkeysTarget & useHotkeys migration
- PanelStack2 migration
- Table 6.0 changes