Skip to content

3.x Changelog

Adi Dahiya edited this page Oct 7, 2021 · 275 revisions

Legend

  • 🔥 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.

Unreleased

@blueprintjs/core

  • #4958 feat(colors): add aliases for cerulean
  • #4888 fix(Dialog): set dialog header z-index to 0
  • #4951 fix(Tabs): use tabIndex of -1 for non-active tabs for better accessibility UX

September 28, 2021

@blueprintjs/colors 4.0.0-alpha.1

  • #4932 feat: update modern colors (slight desaturation of grays and core colors, also updated secondary colors)

@blueprintjs/core 3.50.4

  • #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

@blueprintjs/datetime 3.23.14

  • #4925 fix(DateInput): make popover focusable via keyboard
  • #4931 feat: pre-release version of blueprint-datetime-modern.css stylesheet with modernized colors

@blueprintjs/table 3.9.8

  • #4931 feat: pre-release version of blueprint-table-modern.css stylesheet with modernized colors

September 20, 2021

@blueprintjs/core 3.50.2

  • #4907 fix(Overlay): capture focus when it returns to document
  • #4919 fix(Popover): disable shouldReturnFocusOnClose

@blueprintjs/popover2 0.12.2

  • #4919 fix(Popover2): disable shouldReturnFocusOnClose

September 16, 2021

@blueprintjs/colors 5.0.0-alpha.0

  • #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.

@blueprintjs/core 3.50.1

  • #4914 fix(Popover, Tooltip): disable shouldReturnFocusOnClose for hover interactions

@blueprintjs/popover2 0.12.1

  • #4914 fix(Popover2, Tooltip2): disable shouldReturnFocusOnClose for hover interactions

September 15, 2021

@blueprintjs/core 3.50.0

  • #4905 🔥 fix(Button): revert 12px font size change in small button
  • #4904 feat(Overlay): add shouldReturnFocusOnClose 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 fix enforceFocus behavior

@blueprintjs/icons 3.30.0

  • #4902 feat: new icons for weather

Screen Shot 2021-09-13 at 5 38 42 PM

@blueprintjs/popover2 0.12.0

  • #4898 feat(Popover2): allow enter/space key to open popover

September 3, 2021

@blueprintjs/colors 3.0.0

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.

@blueprintjs/core 3.49.1

  • #4891 fix: remove implicit dependency on colors package Sass

August 30, 2021

@blueprintjs/colors 1.0.1

  • #4883 chore: add missing README and LICENSE files

@blueprintjs/core 3.49.0

  • #4838 feat(Dialog): add standard accessibility attributes for dialogs (role="dialog", aria-labelledby, aria-describedby)
  • #4835 feat(Icon): add aria-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 with tsc --isolatedModules
  • #4877 fix(TagInput): correct type for inputRef prop

@blueprintjs/icons 3.29.0

  • #4881 feat: new icon "syringe"

    image

@blueprintjs/popover2 0.11.3

  • #4832 fix(Tooltip2): heading typography color in tooltip content in dark mode
  • #4877 fix(Popover2): correct type for popoverRef prop

@blueprintjs/select 3.18.0

  • #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}>)
  • #4877 fix(MultiSelect): more robust ref handling for tagInputProps.inputRef

@blueprintjs/table 3.9.2

  • #4884 fix issues with blank rows/columns on mount/resize

August 23, 2021

@blueprintjs/stylelint-plugin 0.2.1

  • #4867 fix(no-color-literal): use the correct variable name in the autofixer

August 19, 2021

@blueprintjs/colors 1.0.0

  • #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

@blueprintjs/core 3.48.0

  • #4821 feat(ProgressBar, Spinner): make progress indicators accessible with aria and role attributes
  • #4836 feat: add aria-label to some buttons for better accessibility support
    • This applies to: NumericInput, PanelView, PanelView2, Tag, Toast

@blueprintjs/datetime 3.23.7

  • #4845 fix(TimePicker): reset input fields when value={null}

@blueprintjs/icons 3.28.0

  • #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"

image image image image image image image image image

@blueprintjs/popover2 0.11.2

  • #4816 fix(ContextMenu2): remove obsolete context menu target CSS

@blueprintjs/select 3.17.0

  • #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 to popoverProps.onInteraction

@blueprintjs/table 3.9.1

  • #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 the I prefix. It also exports those type aliases from the package root.

@blueprintjs/stylelint-plugin 0.2.0

  • #4853 feat: add no-color-literal rule to encourage using color variables ($blue3) instead of color literals (#137CBD)

July 15, 2021

@blueprintjs/core 3.47.0

  • #4798 feat(Text): allow passing HTML props to rendered element
  • #4805 fix(Popover): add aria-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 where window does not exist
  • #4806 fix(HTMLSelect): clarify CSS API markup, add styling for .bp3-icon child element

@blueprintjs/popover2 0.11.1

  • #4805 fix(Popover2): add aria-haspopup attribute for accessibility

@blueprintjs/table 3.9.0

  • #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.

June 22, 2021

@blueprintjs/core 3.46.0

  • #4767 feat(HotkeysProvider): support advanced nesting use cases
  • #4773 feat(useHotkeys): accept custom document for global hotkey handlers
  • #4771 fix(ControlGroup): leftElement inside InputGroup no longer hidden

@blueprintjs/icons 3.27.0

  • #4761 feat: new object relation icons image

@blueprintjs/popover2 0.11.0

  • #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 to Classes.CONTEXT_MENU2_VIRTUAL_TARGET
    • 🔥 BREAKING CHANGE: add ref property back to ContextMenu2ChildrenProps 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.

June 3, 2021

@blueprintjs/popover2 0.10.1

  • #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.

May 27, 2021

@blueprintjs/core 3.45.0

  • #4730 feat(MultiStepDialog): new initialStepIndex prop allows skipping to a specific step in the dialog
  • #4729 fix(Portal): handle more className 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

@blueprintjs/popover2 0.10.0

  • #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 from ContextMenu2ChildrenProps
  • #4735 fix(Popover2): close popovers/tooltips on <ContextMenu2> opening

May 19, 2021

@blueprintjs/core 3.44.3

  • #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

@blueprintjs/popover2 0.9.0

  • #4717 feat(ContextMenu2): support ref prop using React.forwardRef
  • #4718 fix(ContextMenu2): allow content function to return undefined

@blueprintjs/stylelint-plugin 0.1.3

  • #4715 fix: don't lint the "bp-" prefix

May 11, 2021

@blueprintjs/popover2 0.8.0

  • #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 the popoverProps 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
  • #4712 feat(ContextMenu2): better disabled behavior, so users don't have to worry about setting disabled={true} when they set content={undefined}; that API can now be reserved for more rare use cases

  • #4709 feat(ContextMenu2): allow specifying custom wrapper tag with tagName prop

May 6, 2021

@blueprintjs/popover2 0.7.3

  • #4701 fix(ContextMenu2): allow content prop to be undefined

@blueprintjs/stylelint-plugin

  • #4699 fix(no-prefix-literal): handle less import references correctly (e.g. import (reference) "some/path/to/file.less")

May 4, 2021

@blueprintjs/core 3.44.2

  • #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

@blueprintjs/stylelint-plugin 0.1.1

  • #4692 fix(no-prefix-literal): handle selectors with multiple bp classes

April 29, 2021

@blueprintjs/core 3.44.1

  • #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, and SpinnerSize, respectively, instead
  • #4674 feat(HTMLTable): add styling for <tfoot> elements

@blueprintjs/stylelint-plugin 0.1.0

🌟 New package!

  • #4683 feat: no-prefix-literal lint rule warns on usage of the bp3- or bp4- prefix in Sass / Less / CSS code, autofixer replaces string literal with the new $bp-ns variable available in @blueprintjs/core v3.44.1

April 27, 2021

@blueprintjs/popover2 0.7.0

  • #4673 feat: use ResizeSensor2 to match behavior in v4.0

April 19, 2021

@blueprintjs/core 3.44.0

  • 🆙 #4644 Add type aliases for interfaces renamed in v4.0
  • #4648 feat(OverflowList): add alwaysRenderOverflow prop
  • #4647 fix(MultistepDialog): fix step title color in dark mode

@blueprintjs/datetime 3.23.0

  • 🆙 #4644 Add type aliases for interfaces renamed in v4.0

@blueprintjs/popover2 0.6.0

  • 🆙 #4644 Add type aliases for interfaces renamed in v4.0

@blueprintjs/select 3.16.0

  • 🆙 #4644 Add type aliases for interfaces renamed in v4.0

@blueprintjs/table 3.8.29

  • 🆙 #4644 Add type aliases for interfaces renamed in v4.0

@blueprintjs/timezone 3.9.0

  • 🆙 #4644 Add type aliases for interfaces renamed in v4.0

April 15, 2021

@blueprintjs/core 3.43.0

  • #4620 feat(Drawer): add shouldReturnFocusOnClose 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

@blueprintjs/datetime 3.22.1

  • #4612 fix unsafe ref usage across various components

@blueprintjs/popover2 0.5.0

  • #4640 feat(ContextMenu2): new children render prop allows omitting wrapper element
  • #4621 fix(Popover2): use more specific overlay backdrop selector

@blueprintjs/select 3.15.10

  • #4612 fix unsafe ref usage across various components

March 24, 2021

@blueprintjs/core 3.42.0

  • #4603 feat(Popover): restore support for position 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 with ContextMenu2, which is now positioned correctly when applied to node labels

@blueprintjs/datetime 3.22.0

  • #4599 chore: upgrade react-day-picker to 7.4.9

@blueprintjs/icons 3.26.0

  • #4596 feat: new icon "shared-filter"

    image

  • #4590 fix: remove whitespace from icon contents

@blueprintjs/popover2 0.4.0

  • #4602 docs: update browser support docs to list polyfills required for IE11
  • #4603 feat(Popover2): new position prop, same as in Popover, allows specifying popper.js placement using a familiar API which requires no migration when switching from Popover to Popover2
  • #4601 feat(Popover2): new positioningStrategy prop allows customizing popper.js positioning strategy
  • #4592 fix(Popover2): apply tabIndex to target correctly
  • #4601 feat(ContextMenu2): various fixes and enhancements
    • New props (className, disabled, and onContextMenu) for <ContextMenu2>
    • ContextMenu2RenderProps has been updated to include the mouse event like ContextMenuTarget did, to improve compatibility with existing usage patterns

@blueprintjs/test-commons 0.10.11

  • #4602 fix IE11 support by adding String.prototype.startsWith polyfill

@blueprintjs/webpack-build-scripts 2.0.2

  • #4602 fix IE11 support by upgrading @pmmmwh/react-refresh-webpack-plugin and configuring webpack target correctly

March 10, 2021

The patch release two days ago still included bug #4544 in some places. That has been completely fixed in today's release.

@blueprintjs/core 3.41.0

  • #4567 feat(MultiStepDialog): backButtonProps allows customization of back button text and disabled 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 using PanelStack2.

@blueprintjs/popover 0.3.3

  • #4576 fix: revert all React imports to namespace import syntax

March 8, 2021

@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.

March 4, 2021

@blueprintjs/core 3.40.0

  • #4541
    • feat: new <PanelStack2> component, see migration guide here
    • ⚠️ deprecation: <PanelStack> is deprecated in favor of <PanelStack2>
  • #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="...")

@blueprintjs/datetime 3.21.0

  • #4558 feat: convert validation errors to console logs

@blueprintjs/icons 3.25.0

  • #4550 feat: new icons "shapes", "add-location"

    image image

February 18, 2021

@blueprintjs/core 3.39.0

  • #4524 ⚠️ deprecation: ContextMenu and ContextMenuTarget are now deprecated in favor of { ContextMenu2 } from "@blueprintjs/popover2"
  • #4532 ⚠️ deprecation: HotkeysTarget is now deprecated in favor of HotkeysTarget2 or useHotkeys
  • #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

@blueprintjs/popover2 0.3.0

  • #4524 🌟 feat: new <ContextMenu2> component replaces ContextMenu and ContextMenuTarget, which are now deprecated.

@blueprintjs/webpack-build-scripts 2.0.0

  • Upgrade to webpack v5
  • Switch to ts-loader instead of awesome-typescript-loader

@blueprintjs/karma-build-scripts 2.0.0

  • Upgrade to karma v6
  • Switch to helpful-reporter instead of mocha-reporter

February 1, 2021

@blueprintjs/core 3.38.2

  • #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

@blueprintjs/popover2 0.2.0

  • #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 the Portal container, not its child Overlay

January 25, 2021

@blueprintjs/core 3.38.1

  • #4494 fix: add IAnchorButtonProps; export setRef 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 for IButtonProps<HTMLAnchorElement>, helps with the now stricter prop types for buttons

January 21, 2021

@blueprintjs/popover2 0.1.0

🌟 New package added in #4488

  • This package contains two new components, Popover2 and Tooltip2, which are replacements for Popover and Tooltip (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.

@blueprintjs/core 3.38.0

  • #4492 ❌ deprecation: Popover and Tooltip are now deprecated in favor of Popover2 and Tooltip2, 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): new placement prop replaces the newly deprecated position 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.
  • #3829Menu.Item and Menu.Divider are now deprecated because they can be undefined at runtime due to a module import cycle. Use MenuItem and MenuDivider instead.

January 19, 2021

@blueprintjs/core 3.37.0

⚠️ Upgrading to this version may cause a small type incompatibility if you continue to use old versions of @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

    image

  • #4483 🌟 feat(Alert): new loading prop

    • an Alert in a "loading" state renders its button with loading={true} (showing a spinner) and disables its cancel button (if visible)

    alert loading state

  • #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>
  • #4441 feat(InputGroup): improve props interface

    • Prop interface type union with React.InputHTMLAttributes is no longer required, inferred type of event in onChange is more specific
    • IInputGroupProps is now deprecated in favor of IInputGroupProps2
    • IControlledProps is now deprecated in favor of IControlledProps2
  • #4442 fix(MultiSlider): render Handle className correctly

@blueprintjs/datetime 3.20.1

  • #4441 chore: use new InputGroup props interface

@blueprintjs/eslint-config 0.7.0

  • #4448 🔧 chore: upgrade typescript-eslint and eslint dependencies
  • #4449 🔧 feat: enable lint rule @typescript-eslint/unbound-method

@blueprintjs/eslint-plugin 0.3.2

  • #4448 🔧 chore: upgrade typescript-eslint and eslint dependencies

@blueprintjs/icons 3.24.0

  • #4469 feat: new icons "high priority" and "emoji"

    image image

@blueprintjs/node-build-scripts 1.5.0

  • #4448 🔧 feat: upgrade typescript to 4.1

@blueprintjs/select 3.15.1

  • #4441 chore: use new InputGroup props interface

@blueprintjs/table 3.8.19

  • #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>

@blueprintjs/webpack-build-scripts 1.2.0

  • #4448 🔧 feat: upgrade css-loader, mini-css-extract-plugin, style-loader, and webpack-bundle-analyzer to latest major versions

November 16, 2020

@blueprintjs/core 3.36.0

  • #4403 feat: allow React 17 peer dependency

  • #4374 feat(Tooltip): new minimal prop adds support for minimal styling

    image

  • #4411 feat(NumericInput): new asyncControl prop (passes through directly to the underlying <InputGroup>)

  • #4388 feat(NumericInput): new locale prop adds localization support

    2020-11-16 17 23 42

  • #4414 fix(Tag): restore 30px height for removable tags (regression introduced in v3.26.1)

@blueprintjs/datetime 3.20.0

  • #4403 feat: allow React 17 peer dependency
  • #4412 fix(DateInput): more resilient popover blur interaction avoids a possible crash in dev mode

@blueprintjs/docs-theme 3.9.0

  • #4403 feat: allow React 17 peer dependency

@blueprintjs/icons 3.23.0

  • #4403 feat: allow React 17 peer dependency

  • #4379 feat: new icon "layer-outline"

    image
  • #4410 feat: new icon "notifications-snooze"

    image

@blueprintjs/select 3.15.0

  • #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): new onRemove prop provides a more intuitive API for reacting to values removed from the selection
  • #4368 fix(Omnibar): handle initialContent undefined value correctly

@blueprintjs/table 3.8.18

  • #4403 feat: allow React 17 peer dependency
  • #4356 refactor: replace force-hardware-acceleration mixin with "will-change: transform" CSS rule

@blueprintjs/timezone 3.8.0

  • #4403 feat: allow React 17 peer dependency

October 22, 2020

@blueprintjs/core 3.35.0

  • #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.

October 20, 2020

@blueprintjs/core 3.34.1

  • #4377 fix(Divider): simplify render() method signature

October 15, 2020

@blueprintjs/core 3.34.0

  • #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.

    Oct-15-2020 14-05-23

    • ⚠️ This feature was later made opt-in with the asyncControl prop in v3.35.0
  • #4308 feat: allow sliders to specify custom label values with labelValues prop

    custom label values screenshot

  • #4372 fix(TagInput): revert #4350, a commit which sought to smooth over a small breaking change in the type signature of onRemove. 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, and elevationClass function signatures to improve compatibility with strict null checks

  • #4365 fix(EditableText): respect disabled prop when alwaysRenderInput={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.

October 5, 2020

@blueprintjs/docs-theme 3.8.0

  • #4357 feat: upgrade documentalist to v3.0

October 1, 2020

@blueprintjs/core 3.33.0

  • #4350 fix(TagInput): restore type signature of the first parameter of the onRemove callback prop, fixing a regression introduced in #4291 which broke existing usage of the onRemove prop under strict TS compiler flags
  • #4346 chore: enable strict null checks compiler flag
  • #4343, #4354 feat(Tag): add elementRef 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>)

@blueprintjs/docs-theme 3.7.2

  • #4349 fix: resolve stray references to name global which may cause errors in TS v4.1+

@blueprintjs/icons 3.22.0

  • #4352 feat: new "array" icons

    image
  • #4345 feat: new "switch" icon

    image

@blueprintjs/test-commons 0.10.7

  • fix(createMouseEvent): set detailArg parameter correctly

September 22, 2020

@blueprintjs/core 3.32.1

  • #4341 fix: restore IResizeEntry export

All packages

  • #4331 chore: fix CSS import tree shaking "sideEffects" property for rollup builds
  • #4339 chore: upgrade build dependencies, compile with TypeScript 4.0

@blueprintjs/core 3.32.0

  • ⚠️ #4291 deprecate safeInvoke, safeInvokeMember, and safeInvokeOrValue utility functions. Use TypeScript 3.7+ optional chaining and optional call operators instead.
  • #4291 fix(TagInput): allow React.ReactNode in onRemove 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 on getDerivedStateFromProps lifecycle method
  • #4321 fix(NumericInput): revert to rendering Button under the hood, improve handleContinuousChange implementation
  • #4325 fix(ControlGroup): normalize fill style
  • #4328 fix(Popover): improve captureDismiss mechanism
  • #4309 fix(Button): always exit active state if blurred
  • #4338 fix(TextArea): handle non-function refs
  • #4334 feat(Text): add title prop, support htmlTitle in various components which use <Text>

@blueprintjs/datetime 3.19.0

  • #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

@blueprintjs/eslint-config 0.6.0

  • ⚠️ #4339 break: upgrade to typescript-eslint 4.0

@blueprintjs/eslint-plugin 0.3.0

  • ⚠️ #4339 break: upgrade to typescript-eslint 4.0

@blueprintjs/icons 3.21.0

  • #4336 feat: new data-connection icon

    image

@blueprintjs/select 3.14.0

  • #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

August 11, 2020

@blueprintjs/core 3.31.0

  • #4276 feat(HotKey, RadioGroup): allow ReactNode in label prop
  • #4268 fix(EditableText): add small width buffer to prevent crash in component resizing implementation
  • #4266 fix(InputGroup): allow async controlled updates to value prop. InputGroup now uses a new private component called AsyncControllableInput 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 the asyncControl 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 accessible tabIndex attribute if interactive. This is especially useful for the MultiSelect component from the @blueprintjs/select package.

@blueprintjs/datetime 3.18.6

  • #4254 fix(DateRangeInput): check time boundaries (not just dates) when computing same day overlap. This is especially relevant when allowSingleDayRange={true}.
  • #4274 fix(DatePicker, TimePicker): allow value prop to be null

@blueprintjs/eslint-config 0.5.0

  • #4261 chore!: upgrade dependencies
    • BREAKING: upgrade to eslint-plugin-jsdoc@30

@blueprintjs/eslint-plugin 0.2.2

  • #4261 chore: upgrade dependencies, fix: move jest to a devDependency

@blueprintjs/webpack-build-scripts 1.0.2

  • #4261 chore: upgrade dependencies

@blueprintjs/karma-build-scripts 1.0.2

  • #4261 chore: upgrade dependencies

July 28, 2020

@blueprintjs/core 3.30.1

  • #4238 fix(ControlGroup): border radius style and stacking layout for nested NumericInput
  • #4215 fix(ControlGroup): improved margin around nested dividers

@blueprintjs/datetime 3.18.5

  • #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

@blueprintjs/icons 3.20.0

  • #4250 feat: backlink and geofence icons

    image image

July 16, 2020

@blueprintjs/core 3.30.0

  • #4186 fix(Collapse): closing animation in Firefox
  • #4198 fix(TextArea): update ref when inputRef prop changes
  • #4201 fix(NumericInput): use AbstractButton instead of Button 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.
  • #4211 fix(NumericInput): more robust controlled mode where value prop behaves like other controlled inputs and
  • #4211 feat(NumericInput): new defaultValue 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 and IKeysWhitelist interfaces are now deprecated.

@blueprintjs/datetime 3.18.4

  • #4205 fix(DatePicker): apply min/max boundaries to time picker

June 24, 2020

@blueprintjs/core 3.29.0

  • #4180 feat: spread data-* props to HTML elements

@blueprintjs/icons 3.19.0

  • #4188 feat: send-message icon

    image

@blueprintjs/select 3.13.4

  • #4108 fix: handle new items same as selections in resetOnSelect behavior
  • #4173 fix: ItemListRenderer return type may be null

June 10, 2020

@blueprintjs/core 3.28.2

  • #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.

@blueprintjs/eslint-config 0.4.0

  • #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

@blueprintjs/eslint-plugin 0.2.0

  • #4154 feat!: upgrade to ESLint v7.0, typescript-eslint v3.0

@blueprintjs/datetime, @blueprintjs/select, @blueprintjs/table, and others

  • #4153 chore: all packages are now built with TypeScript 3.9
    • This is a backwards-compatible change which does not affect generated typings.

May 25, 2020

@blueprintjs/core 3.28.1

  • #4146 fix(Alert): ensure text content does not overflow

@blueprintjs/docs-theme 3.6.0

  • #4120 feat: add new "method" tag to render class methods

@blueprintjs/select 3.13.2

  • #4147 fix(Suggest): dropdown works with inputRef set to ref hook

@blueprintjs/table 3.8.8

  • #4120 docs: better formatting / layout of Table instance method documentation

May 21, 2020

@blueprintjs/core 3.28.0

  • #4130 feat(MultiSlider): add trackStyleBefore and trackStyleAfter Handle props

    image

@blueprintjs/datetime 3.18.0

  • #4123 feat(TimePicker): add onFocus, onBlur, onKeyDown, onKeyUp props
  • #4124 feat(TimePicker): add autoFocus prop to focus the hour input

@blueprintjs/icons 3.18.0

  • #4132 feat: add modal, drawers, and app header icons

@blueprintjs/select

  • #4137 fix(MultiSelect): create new item behavior when entering text with IME (useful for languages like Japanese, Chinese)

    fixed-japanese-input

May 19, 2020

@blueprintjs/core 3.27.0

  • #4093 feat: add React 16 ref hook support to Button, AnchorButton, InputGroup components
  • #4119 docs: fix popper v1 documentation links

@blueprintjs/datetime 3.17.1

  • #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

@blueprintjs/icons 3.17.0

  • #4126 feat: added cycle and route icons

    image image

@blueprintjs/select 3.13.0

  • #4093 feat: add React 16 ref hook support to Select and Suggest components

May 4, 2020

@blueprintjs/core 3.26.1

  • #4099 fix(Tag): fix vertical padding for large tag

    before: image

    after: image

  • #4098 fix(PanelStack): fix header z-index regression

@blueprintjs/icons 3.16.0

image image
  • #4101 feat: add hat icon
  • #4097 feat: add inherited group membership icon

@blueprintjs/datetime 3.17.0

  • #4079 feat: export DateUtils

April 22, 2020

@blueprintjs/core 3.26.0

  • #4069 feat(NumericInput): disable buttons when value at min/max
  • #4063 feat(InputGroup): add leftElement prop

@blueprintjs/datetime 3.16.1

  • #4066 fix(DateRangePicker): right calendar shows the correct month when clicking shortcuts when showContiguousMonths={false}

@blueprintjs/table 3.8.4

  • #3630 fix(Cell): only modify props for specific child elements, TruncatedFormat and JSONFormat. This fixes a React console warning about parentCellWidth not being a DOM attribute.

@blueprintjs/eslint-config 0.3.0

  • #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 with eslint-plugin-prettier. In lint tasks initiated from the command line (including CI), prefer using the prettier CLI directly.

@blueprintjs/eslint-plugin 0.1.0

  • 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.

@blueprintjs/tslint-config 3.0.0

  • #4078 BREAKING: remove tslint-plugin-prettier, so prettier formatting is no longer enforced through this package.
  • #4083 BREAKING: upgrade to TSLint 6.0

@blueprintjs/node-build-scripts 1.3.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

@blueprintjs/karma-build-scripts 1.0.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.
  • #4085 upgrade karma to v5.0

@blueprintjs/webpack-build-scripts 1.0.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:
    • file-loader 6.0
    • sass-loader 8.0
    • style-loader 1.1
    • mini-css-extract-plugin 0.9
      • enabled the new esModule option

Sketch resources

  • #4007 feat: update core sketch kit with symbols for components
  • #3933 feat: add icons sketch library

April 9, 2020

@blueprintjs/core 3.25.0

  • #3982 feat(NumericInput): supply input element in onValueChange 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

@blueprintjs/datetime 3.16.0

  • #4012 feat(DatePicker): add support for dayPickerProps.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.
  • #4003 docs: improved localization code example

@blueprintjs/icons 3.15.0

  • #4050 feat: Added virus icon

    image

@blueprintjs/select 3.12.1

  • #3832 fix(QueryList): trim whitespace when creating new items
  • #4051 fix: avoid props mutation and duplicate CSS classnames

@blueprintjs/node-build-scripts 1.2.0

  • #4050 feat(generate-icons-source): allow icons without icon font support

February 25, 2020

@blueprintjs/core 3.24.0

  • #3947 feat(Button): add "outlined" visual modifier

    Screenshot 2020-01-29 at 18 43 15 Screenshot 2020-01-29 at 18 43 27
  • #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

@blueprintjs/icons 3.14.0

  • #3966 feat: add diagnosis and lab test icons

    Screen Shot 2020-02-16 at 8 55 54 PM Screen Shot 2020-02-16 at 8 55 48 PM

@blueprintjs/select 3.12.0

  • #3934 feat(Suggest): sync activeItem with selectedItem on popover close

January 24, 2020

@blueprintjs/eslint-config 0.2.1

  • 🔧 fix package reference to @blueprintjs/tslint-config, allowing this package to be used outside the Blueprint monorepo

@blueprintjs/node-build-scripts 1.1.0

  • 🔧 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

January 23, 2020

@blueprintjs/core 3.23.1

  • #3936 fix(Overlay): avoid rare crash in focus handling logic
  • #3929 fix(Collapse): closing animation

@blueprintjs/eslint-config 0.2.0

  • 🔧 #3917 Use new @blueprintjs/eslint-plugin-blueprint lint rule implementations

@blueprintjs/eslint-plugin-blueprint 0.1.0

  • #3917 Initial release of ESLint plugin which includes implementations of rules previously found in @blueprintjs/tslint-config

@blueprintjs/node-build-scripts 1.0.0

Note: Bump major version just to make it easier to deal with internal repo dependencies

  • 🔥 #3887 Replace ts-lint script with es-lint script

@blueprintjs/table 3.8.3

  • #3732 fix: column resize calculation on header double click when column resizing and/or header menu are enabled

@blueprintjs/tslint-config 2.0.0

  • 🔥 Blueprint-specific custom lint rules have been disabled in this configuration as we transition to ESLint

January 17, 2020

@blueprintjs/core 3.23.0

  • #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

@blueprintjs/datetime 3.15.2

  • #3920 pin react-day-picker dependency version to avoid ambient typings errors

@blueprintjs/eslint-config 0.1.0

  • Initial release of our ESLint configuration. For now it is just a wrapper for running TSLint rules.

Older change logs (2018-2019)

Older changes are documented here.

Clone this wiki locally