-
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.
-
#4963 fix(
Overlay): improve focus management
- #4958 feat(colors): add aliases for cerulean
-
#4888 fix(
Dialog): set dialog headerz-indexto 0 -
#4951 fix(
Tabs): usetabIndexof -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.cssstylesheet with modernized colors
-
#4925 fix(
DateInput): make popover focusable via keyboard -
#4931 feat: pre-release version of
blueprint-datetime-modern.cssstylesheet with modernized colors
-
#4931 feat: pre-release version of
blueprint-table-modern.cssstylesheet 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): disableshouldReturnFocusOnClosefor hover interactions
-
#4914 fix(
Popover2,Tooltip2): disableshouldReturnFocusOnClosefor hover interactions
-
#4905 🔥 fix(
Button): revert 12px font size change in small button -
#4904 feat(
Overlay): addshouldReturnFocusOnCloseprop, 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 fixenforceFocusbehavior
- #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/variablesshould 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-hiddenattribute 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.tsan ES module, which allows the source file to be compatible withtsc --isolatedModules -
#4877 fix(
TagInput): correct type forinputRefprop
-
#4881 feat: new icon "syringe"

-
#4832 fix(
Tooltip2): heading typography color in tooltip content in dark mode -
#4877 fix(
Popover2): correct type forpopoverRefprop
-
#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/colorscontains 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 withariaandroleattributes -
#4836 feat: add
aria-labelto 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,IRegionin favor of the respective type alias without theIprefix. It also exports those type aliases from the package root.
- This change deprecates
-
#4853 feat: add
no-color-literalrule 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-haspopupattribute 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 wherewindowdoes not exist -
#4806 fix(
HTMLSelect): clarify CSS API markup, add styling for.bp3-iconchild element
-
#4805 fix(
Popover2): addaria-haspopupattribute 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 customdocumentfor global hotkey handlers -
#4771 fix(
ControlGroup): leftElement insideInputGroupno 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_TARGETtoClasses.CONTEXT_MENU2_VIRTUAL_TARGET - 🔥 BREAKING CHANGE: add
refproperty back toContextMenu2ChildrenPropsafter it was removed in #4740 (sorry for the API whiplash). If upgrading from popover2> 0.8.0 < 0.11.0and 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):Tooltip2and 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): newinitialStepIndexprop allows skipping to a specific step in the dialog -
#4729 fix(
Portal): handle moreclassNameedge 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
reffromContextMenu2ChildrenProps
-
#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-
updateInputDimensionsis expensive since it touches the DOM; it is now only called when the props/state which it depends on are changed
-
-
#4717 feat(
ContextMenu2): supportrefprop 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 thepopoverPropsprop.
- <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): betterdisabledbehavior, 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 withtagNameprop
-
#4701 fix(
ContextMenu2): allowcontentprop 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-nsvariable 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-literalstylelint 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-literallint rule warns on usage of thebp3-orbp4-prefix in Sass / Less / CSS code, autofixer replaces string literal with the new$bp-nsvariable available in@blueprintjs/corev3.44.1
-
#4673 feat: use
ResizeSensor2to 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 advancedrenderTargetAPI 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): addalwaysRenderOverflowprop -
#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): addshouldReturnFocusOnCloseprop 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:
IConstructorIElementRefPropscreateReactRefgetDisplayNameLifecycleCompatPolyfill
- #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 forpositionprop (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): newpositionprop, same as inPopover, allows specifying popper.js placement using a familiar API which requires no migration when switching fromPopovertoPopover2 -
#4601 feat(
Popover2): newpositioningStrategyprop allows customizing popper.js positioning strategy -
#4592 fix(
Popover2): applytabIndexto target correctly -
#4601 feat(
ContextMenu2): various fixes and enhancements- New props (
className,disabled, andonContextMenu) for<ContextMenu2> -
ContextMenu2RenderPropshas been updated to include the mouse event likeContextMenuTargetdid, to improve compatibility with existing usage patterns
- New props (
-
#4602 fix IE11 support by adding
String.prototype.startsWithpolyfill
-
#4602 fix IE11 support by upgrading
@pmmmwh/react-refresh-webpack-pluginand 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):backButtonPropsallows customization of back button text anddisabledstate - #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
allowSyntheticDefaultImportsin 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:ContextMenuandContextMenuTargetare now deprecated in favor of{ ContextMenu2 } from "@blueprintjs/popover2" -
#4532
⚠️ deprecation:HotkeysTargetis now deprecated in favor ofHotkeysTarget2oruseHotkeys -
#4532 feat: new
useHotkeyshook,<HotkeysProvider>and<HotkeysTarget2>components -
#4524 feat: newly exported utility function
isDarkThemetests whether an element in the DOM is inside a Blueprint dark theme subtree
-
#4524 🌟 feat: new
<ContextMenu2>component replacesContextMenuandContextMenuTarget, 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
rootBoundaryprop - #4512 fix: don't apply duplicate tabIndex to target container
-
#4512 fix: add support for dismissal by
MenuItem -
#4512 fix: apply
portalClassNamecorrectly to thePortalcontainer, not its childOverlay
-
#4494 fix: add
IAnchorButtonProps; exportsetRefutility-
Utils.setRefis newly exported, useful when you want to support multiple kinds of refs (objects or callbacks) as props, just like many Blueprint components -
IAnchorButtonPropsis 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,
Popover2andTooltip2, which are replacements forPopoverandTooltip(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:
PopoverandTooltipare now deprecated in favor ofPopover2andTooltip2, available in the@blueprintjs/popover2package.- 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): newplacementprop replaces the newly deprecatedpositionprop- "placement" is similar to "position", with a direct mapping that involves changing some keywords.
- Use this prop going forward to make the transition to
Popover2easier in the future.
-
#3829 ❌
Menu.ItemandMenu.Dividerare now deprecated because they can be undefined at runtime due to a module import cycle. UseMenuItemandMenuDividerinstead.
@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): newloadingprop- 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.InputHTMLAttributesis no longer required, inferred type of event inonChangeis more specific -
IInputGroupPropsis now deprecated in favor ofIInputGroupProps2 -
IControlledPropsis now deprecated in favor ofIControlledProps2
- Prop interface type union with
-
#4442 fix(
MultiSlider): render HandleclassNamecorrectly
- #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): 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.
Older changes are documented here.
- 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

