Skip to content

3.x Changelog (2018–2020)

Adi Dahiya edited this page Jan 4, 2022 · 1 revision

This is the collection of change logs from 2018-2019. Newer changes are documented here.

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

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.

December 19, 2019

@blueprintjs/icons 3.13.0

  • #3878 add tractor, truck, and "bring in data" icons

image image

@blueprintjs/timezone 3.6.1

  • #3873 fix: upgrade moment-timezone to fix Brazilian timezones

December 17, 2019

@blueprintjs/core 3.22.3

  • #3876 fix: declare sideEffects properly in package.json to fix a tree shaking issue

December 9, 2019

@blueprintjs/core 3.22.2

  • #3885 fix: upgrade react-popper to fix an issue that would crash the page when zooming out in a web browser
  • #3886 fix: EditableText works inside @blueprintjs/table tables again (after a regression introduced in #3841)

December 5, 2019

@blueprintjs/core 3.22.1

  • #3879 fix: PanelStack properly updates when its props are changed (regression occurred in #3787)

November 27, 2019

@blueprintjs/core 3.22.0

  • #3862 feat: high contrast CSS with color adjustments to pass WCAG requirements
  • #3867 fix: explicitly declare dom4 import side effects

November 21, 2019

@blueprintjs/core 3.21.0

  • #3857 feat(Drawer): add Sass variables for background color
  • #3841 feat(EditableText): add alwaysRenderInput experimental feature
  • #3855 fix(TagInput): add intent styling when component is active

November 14, 2019

@blueprintjs/core 3.17.2

  • #3842 feat(EditableText): add alwaysRenderInput experimental feature

@blueprintjs/datetime 3.15.1

  • #3843 fix(Shortcuts): make shortcuts container focusable

November 11, 2019

@blueprintjs/core 3.20.0

  • #3770 feat(Toaster): ability to set max number of active toasts
  • #3786 feat(Breadcrumb): render icon if provided through props
  • #3828 fix(Switch): indicator background colors
  • #3831 fix(Collapse): simplify lifecycle, fix animation bugs
  • #3814 fix(NumericInput): do not trigger onValueChange if value is changed via props
  • #3813 fix(InputGroup): prevent infinite setState in componentDidUpda
  • #3811 fix(TagInput): prevent infinite setState in componentDidUpdate
  • #3787 fix(PanelStack): do not trigger unintended animations
  • #3809 fix(NumericInput): correct styles when placed inside label
  • #3784 fix(Toast): fix bottom toast animation

@blueprintjs/datetime 3.15.0

  • #3821 feat: export IDateRangeInputProps
  • #3777 feat(DateInput): add fill prop
  • #3818 feat(DatePicker): add shortcuts to single date picker

@blueprintjs/icons 3.12.0

  • #3816 feat: new icons
    • New drawing
    • Data lineage
    • Archive
    • Unarchive
    • Signal search

@blueprintjs/select 3.11.2

  • #3836 fix(MultiSelect): better handling of key events in TagInput remove buttons

@blueprintjs/table 3.8.2

  • #3764 fix: cell copy to clipboard works in IE11

@blueprintjs/test-commons 0.10.1

  • #3836 feat: new utility function dispatchTestKeyboardEventWithCode

October 13, 2019

@blueprintjs/select 3.11.1

  • #3776 fix(QueryList): re-render when controlled items change

October 9, 2019

@blueprintjs/core 3.19.1

  • #3771 fix: lifecycle methods in MultiSlider

@blueprintjs/table 3.8.1

  • #3771 fix: lifecycle methods in various Table components

October 5, 2019

@blueprintjs/core 3.19.0

  • 👍 #3702 Refactor components to use React 16.3+ lifecycle methods
    • This change removes usage of deprecated methods componentWillMount, componentWillReceiveProps, and componentWillUpdate. New lifecycle methods from React 16.3+ are now used, with a polyfill added to ensure support for previous React versions. See this React blog post for more information.
    • AbstractComponent and AbstractPureComponent have been marked as deprecated.
    • 🆙 New components AbstractComponent2 and AbstractPureComponent2 using the new lifecycle methods are now available. If you use these new components and need React 15 support, remember to apply the polyfill from react-lifecycles-compat.
  • #3657 docs(Toaster): fix position prop comment
  • #3733 fix(MultiSlider): fix minor rendering bug with track fill
  • #3766 feat(Tab): spread HTML props to rendered div
    • 🔥 usage of new Omit mapped type helper requires TypeScript users to compile with TS 3.5+

@blueprintjs/datetime 3.14.0

  • 👍 #3702 Refactor components to use React 16.3+ lifecycle methods
  • #3762 fix(TimePicker): allow more natural text entry

@blueprintjs/docs-theme 3.4.0

  • 👍 (needs link) Refactor components to use React 16.3+ lifecycle methods

@blueprintjs/icons 3.11.0

  • #3745 feat: add learning, new layer(s), stopwatch icons

    image image image

@blueprintjs/select 3.11.0

  • 👍 #3702 Refactor components to use React 16.3+ lifecycle methods
  • #3724 fix(Suggest): Default autoComplete for text input to "off"

@blueprintjs/table 3.8.0

  • 👍 #3702 Refactor components to use React 16.3+ lifecycle methods

@blueprintjs/timezone 3.6.0

  • 👍 #3702 Refactor components to use React 16.3+ lifecycle methods

September 9, 2019

@blueprintjs/core 3.18.1

  • #3716 👍 fix(Popover): click on target no longer affects hover behavior
  • #3713 fix(AnchorButton): left text alignment
  • #3691 fix: support create-react-app environment variable for Blueprint namespace
  • #3689 fix(Drawer): use Sass variable $drawer-padding
  • #3730 fix(MenuItem): avoid React warning for unknown attr labelClassName

@blueprintjs/table 3.7.1

  • #3687 fix(EditableCell): support tabIndex prop correctly

@blueprintjs/datetime 3.13.0

  • #3688 feat(DateRangePicker): add active menu styles to shortcuts
  • #3725 fix: upgrade react-day-picker, clean up type imports

July 30, 2019

@blueprintjs/core 3.18.0

  • ⚠️ #3654 breaking: remove unused getShallowUnequalKeyValues utility function (we found that this was unused inside and outside Blueprint)
  • #3560 feat(FileInput): add buttonText prop
  • #3645 fix(HotkeysTarget): invoke user-defined key event handlers correctly
  • #3647 fix(TextArea): grow box vertically to show initial content
  • #3672 fix(EditableText): support selectAllOnFocus with type={number} in latest React
  • #3677 fix(Popover): only apply active class to target in uncontrolled mode
  • #3653, #3654 chore: upgrade to typescript 3.5
  • fix: restrict tslib dependency to minor version range

@blueprintjs/datetime 3.12.0

  • #3644 fix(DateRangeInput): maintain focus on time inputs during keyboard interactions
  • #3658 fix(DateRangeInput): do not close on selection when time inputs receive key presses
  • #3653, #3654 chore: upgrade to typescript 3.5
  • fix: restrict tslib dependency to minor version range

@blueprintjs/icons 3.10.0

  • #3653, #3654 chore: upgrade to typescript 3.5
  • fix: restrict tslib dependency to minor version range

@blueprintjs/select 3.10.0

  • #3653, #3654 chore: upgrade to typescript 3.5
  • fix: restrict tslib dependency to minor version range

@blueprintjs/table 3.7.0

  • #3649 fix EditableCell update cycle, improve EditableName docs
  • #3653, #3654 chore: upgrade to typescript 3.5
  • fix: restrict tslib dependency to minor version range

@blueprintjs/timezone 3.5.0

  • #3653, #3654 chore: upgrade to typescript 3.5
  • fix: restrict tslib dependency to minor version range

@blueprintjs/labs

  • ⚠️ This package has been removed from the development repository since it is no longer active (last change / publish was in Feb 2018).

@blueprintjs/tslint-config 1.9.0

  • #3679 upgrade prettier and tslint-react

@blueprintjs/webpack-build-scripts 0.9.0

  • #3679 upgrade autoprefixer, css-loader, file-loader, webpack

July 3, 2019

@blueprintjs/datetime 3.11.0

  • #3628 feat(DatePicker): add option to highlight current day

@blueprintjs/icons 3.9.1

  • Less/Sass variables are now correctly bundled into the NPM package (inside the lib/ folder)

July 1, 2019

@blueprintjs/core 3.17.1

  • ⭐️ #3636 feat(Popover): add fill prop to fill container width
  • #3637 fix(Switch): tweak dark theme hover/active colors
  • #3634 fix(Toast): long words in toast messages no longer break container layout

N.B. @blueprintjs/core@3.17.0 had an issue where Less/Sass variables were not bundled correctly into the NPM package.

@blueprintjs/datetime 3.10.1

  • 👍 #3613 fix(TimePicker): typing into minute input field works again

@blueprintjs/select 3.9.0

  • ⭐️ #3636 feat: add fill prop to Suggest and MultiSelect components
  • #3629 fix(Select): do not call itemRenderer when component is disabled
  • #3627 fix(Select): fix keyboard navigation when all filtered items are disabled

@blueprintjs/tslint-config 1.8.1

  • #3624 fix(blueprint-html-components): fix suggestion for <table> element replacement

June 19, 2019

@blueprintjs/core 3.16.2

  • #3611 Re-release of v3.16.0 with LESS & Sass variables correctly packaged

June 18, 2019

@blueprintjs/core 3.16.0

  • #3584 Typography: improve dark muted and disabled text contrast
  • #3568 HTMLSelect: Fix number of clicks required to use component inside ControlGroup in Firefox
  • #3591 TagInput: fix Tags overflowing the container
  • #3598 Tree: Fix intent color for nested Icon components in dark mode
  • #3600 PanelStack: Allow hiding header
  • #3601 PanelStack: Add support for controlled mode
  • #3608 AbstractButton, Button: Update button type prop to match React's latest typings

@blueprintjs/datetime 3.10.0

  • #3607 DateRangeInput: add support for disabling start or end input

@blueprintjs/table 3.6.0

  • #3350 EditableCell: add editableTextProps prop to allow adjusting cells during editing
  • #3447 RowHeaderCell: add nameRenderer prop to allow displaying custom headers

May 29, 2019

@blueprintjs/datetime 3.9.1

  • #3502 Hovering over date no longer clears time input
  • #3504 Render the correct month when DateRangePicker singleMonthOnly option is enabled
  • #3557 Fix DateRangePicker inconsistency with single day ranges and time precision enabled

@blueprintjs/icons 3.9.0

  • #3510 Added new UI icons
Screen Shot 2019-05-01 at 15 14 40 Screen Shot 2019-05-01 at 15 14 52 Screen Shot 2019-05-01 at 15 15 04 Screen Shot 2019-05-01 at 15 15 12

@blueprintjs/select 3.8.1

  • #3496 Fix <Select> to correctly change activeItem when items change

April 9, 2019

@blueprintjs/core 3.15.1

  • #3375 File input text styling for active selections

@blueprintjs/datetime 3.9.0

  • #3471 Fix DateInput IE11 bug when changing month/day
  • #3461 Upgrade react-day-picker, fix caption months support

@blueprintjs/icons 3.8.0

  • #3451 Added new inheritance icon

March 31, 2019

@blueprintjs/core 3.15.0

  • Switch to standard Apache-2.0 license (#3457)
  • Checkbox: fix indeterminate state update (#3409)
  • TagInput: use undefined instead of null to hide clearButton (#3436)
  • PanelStack: Add z-index to panel stack header to fix layout issue (#3414)
  • TextArea: Add growVertically prop to allow component to grow height with input text (#3398)
  • Drawer: Add position prop, deprecate vertical prop (#3386)

@blueprintjs/datetime 3.8.0

  • Switch to standard Apache-2.0 license (#3457)
  • Fix react-day-picker API hyperlink in documentation (#3435)

@blueprintjs/icons 3.7.0

  • Switch to standard Apache-2.0 license (#3457)

@blueprintjs/select 3.8.0

  • Switch to standard Apache-2.0 license (#3457)
  • Select: hide QueryList item list when menuContent and createItemView are both null (#3426)
  • MultiSelect: Enable pasting of multiple values (same as TagInput) (#3428)

@blueprintjs/table 3.5.0

  • Switch to standard Apache-2.0 license (#3457)
  • Fix resizable props documentation (#3400)

@blueprintjs/timezone 3.4.0

  • Switch to standard Apache-2.0 license (#3457)

@blueprintjs/docs-theme 3.1.0

  • Switch to standard Apache-2.0 license (#3457)

@blueprintjs/karma-build-scripts 0.10.0

  • Switch to standard Apache-2.0 license (#3457)

@blueprintjs/node-build-scripts 0.9.0

  • Switch to standard Apache-2.0 license (#3457)

@blueprintjs/test-commons 0.9.0

  • Switch to standard Apache-2.0 license (#3457)

@blueprintjs/tslint-config 1.8.0

  • Switch to standard Apache-2.0 license (#3457)

@blueprintjs/webpack-build-scripts 0.8.0

  • Switch to standard Apache-2.0 license (#3457)

March 5, 2019

@blueprintjs/datetime 3.7.2

  • #3356 Fix shortcuts.tsx react import typings

March 4, 2019

@blueprintjs/core 3.14.1

  • #3390 Fix react types regression
  • #3391 Overlay: fix transitionDuration documentation

February 28, 2019

@blueprintjs/core 3.14.0

  • #3348 Popover: Fix the type of onInteraction prop
  • #3347 ButtonGroup: supports fill prop when Buttons are wrapped in Popovers
  • #3351 Tabs: add panelClassName prop
  • #3355 TreeNode: Icons with intents inside this component are now colored properly
  • #3354 TreeNode: add disabled prop
  • #3382 Drawer: fix prop validation warning when using default props

@blueprintjs/select 3.7.0

  • #3381 Components now allow users to create new items not found in the items list

    2019-02-28 10 56 06

February 7, 2019

📢 Dear Blueprint users,
This is my (@giladgray) final release as the leader of this project. It's been my greatest pleasure to steward Blueprint and I am leaving it in the very capable hands of @adidahiya who, like me, has been on this project since its earliest days. Remember, I'm always only an at-mention away 👋☂️.

@blueprintjs/core 3.13.0

  • 🌟 #2957 New Drawer component!
    drawer
    • This is exactly the same as Dialog but it slides it from the right edge of the screen.
    • Use the size prop to control the width or height (based on vertical prop).
  • 🌟 #3327 New Switch innerLabel and innerLabelChecked props.
    checked-text unchecked-text
  • #3314 New NumericInput rightElement prop (a la InputGroup).
  • #3296 NumericInput allows min === max.
  • #3342 Spinner SIZE_SMALL is now 20px instead of 24px (to match other components).
  • #3337 Fix NumericInput handling of arbitrarily small step sizes (>6 decimal places).

@blueprintjs/datetime 3.7.1

  • #3343 Fix DatePicker onChange on month change after initial day selection.
  • #3311 Merge the two definitions of IDateRangeShortcut (only one was actually exported so this is not an API break).

@blueprintjs/icons 3.6.0

  • #3335 New icons: inbox-filtered, inbox-geo, inbox-search, inbox-update. screen shot 2019-02-04 at 4 09 23 pm

@blueprintjs/select 3.6.1

  • #3305 Small refactors for internal code consistency.

Docs

  • #3334 Click to download Sketch files from Resources page.
  • #3318, #3319 Small edits & typo fixes.

January 21, 2019

General

  • #3301 Add directory details to package.json repository entries to allow third party tools to provide better support when working with monorepos.
    • Patch versions of all public packages not mentioned below have been published to benefit from this.

@blueprintjs/core 3.12.0

  • #3237 New Tag fill prop and styles.
  • #3237 New TagInput intent prop.
  • #3278 OverflowList is now a regular Component (not pure) so it always re-renders.
    • This is necessary because renderer behavior can change in ways that would not cause organic re-renders.
  • #3295 PanelStack initialPanel supports arbitrary user props.
  • #3275 Toast always clears existing timeout when restarting.
  • #3291 Tooltip supports hover interactions via new interactionKind: HOVER | HOVER_TARGET_ONLY prop.
  • #3283 🎨 Add !default to $headings Sass map variable.

@blueprintjs/datetime 3.7.0

  • #3223, #3293 DateRangePicker shortcuts can now change time via includeTime: true.
    <DateRangePicker shortcuts={[{ label: "With time", dateRange: [...], includeTime: true }]}>
    • Also add a "Shortcuts" section to the documentation.

@blueprintjs/select 3.6.0

  • 🌟 #3285 New itemsEqual prop on all package components to customize item equality check.
    • The default implementation simply uses === to test strict equality, but this requires careful management of object instances.
    • Use itemsEqual="id" as a shorthand to compare the id prop of two items to test equality.
    • Use itemsEqual={(a, b) => boolean} to implement more advanced custom logic.
  • #3292 New Suggest disabled and resetOnClose props.
  • #3290 QueryList initialize activeItem state correctly when controlled.
  • #3289 Suggest query remains visible when closed if no item is selected.
    suggest-query

@blueprintjs/timezone 3.3.0

  • #3287 TimezonePicker supports custom target via children prop.
    • Only one child is supported; providing more than one will print a console warning in dev mode.
    • If a custom child is provided, all button-specific props will be ignored (i.e., buttonProps, disabled, placeholder, valueDisplayFormat).
  • #3287 Export getTimezoneMetadata() from package root to easily support arbitrary timezone formatting in custom targets.

January 10, 2019

General

  • 🌟 #3230 Add esnext build target and package entry.
    • lib/esnext/ is a third compile target using the latest supported ES features (pretty much TypeScript without the types).
    • This will prevent bugs with incompatibility between ES5 and ES6+ features. Additionally, when targeting newer browsers, being able the use esnext will reduce bundle size.
    • Use this by configuring your build to read the esnext entry in package.json.
  • ⚠️ #3276 Fix externals in *.bundle.js files.
    • Properly mark all listed package dependencies as externals.
    • Specifically: add popper.js, react-popper, resize-observer-polyfill to the list.
    • Fix tslib global variable name.
    • Update documentation example in Getting Started guide.
  • 🔧 #3252 Upgrade to Webpack 4 in development.

@blueprintjs/core 3.11.0

  • #3235 Add EditableText type prop.
  • #3251 Add MenuItem labelClassName and textClassName props.
  • #3236 ResizeSensor handles fatal error state if findDOMNode fails.

@blueprintjs/datetime 3.6.0

@blueprintjs/icons 3.5.0

@blueprintjs/select 3.5.0

@blueprintjs/table 3.4.0

@blueprintjs/timezone 3.2.0

  • See "General" notes above: add esnext target and fix *.bundle.js externals.

December 7, 2018

⚠️ DO NOT enable CircleCI for your fork. (If you've already done so, you should disable it from the Circle UI.)

  • Our build runs on forked PRs and provides a better experience for OSS contributors than configuring your own Circle instance and setting up the preview comment.
  • Preview comments will no longer post from forked PRs, but the artifact URLs will be logged directly to the Circle console for easy access (example here, expand last step).

@blueprintjs/core 3.10.0

  • #3213 Add Popover/Tooltip targetProps prop to add attributes to Classes.POPOVER_TARGET element.
    • This provides much improved support for an advanced use case of positioning the target manually using style attributes: targetProps={{ style: { left, top } }}
  • #3215 Add Popover/Tooltip reposition() instance method to manually trigger a Popper update.
    • Use ref to get an instance: <Popover ref={ref => ref.reposition()} />
    • This method should be used rarely when the default behavior does not detect changes, such as changing position without changing size (this can happen when using targetProps.style as suggested above).
  • #3216 Add Icon htmlTitle prop to set title attribute on DOM element for browser tooltips.
    • Icon's existing title prop explicitly does not render a browser tooltip, so we had to add a new prop for this.
    • These two props will be refactored for consistency in Blueprint 4 (eventually).
  • #3211 Add Tree onNodeMouseEnter and onNodeMouseLeave callback props.
  • #3170 Fix HTMLTable props type to support <table>-specific HTML props like cellPadding.
  • #3190 Fix Icon render() return type (for React 15 consumers).
  • #3204 Fix NumericInput continuous keyboard click (holding space/enter on one of the buttons) and tenderly refactor the internal render and event logic.
  • #3164 Fix Toast to support changing timeout after it has been shown for the first time.
  • #3200 Fix Popover to support tabIndex on target element.

@blueprintjs/datetime 3.5.0

  • #3182 Months enum is now a regular TypeScript enum (not a const enum), so you can use it in JS code.
  • #3200 Fix DateInput inputRef support.
  • #3198 Fix DateRangePicker right caption behavior in contiguous month mode.
    • DateRangePicker now always renders the two months in separate calendars (as opposed to one two-month calendar).
  • #3199 Remove unused DateRangePicker styles.

@blueprintjs/icons 3.4.0

  • #3222 New icons: cube, cube-add, cube-remove, lifesaver, table-filtered.

@blueprintjs/select 3.4.0

  • #3180 Fix QueryList activeItem change when query and items props change.
  • #3167 Standardize inputProps docs across components.

November 16, 2018

@blueprintjs/core 3.9.0

  • 🌟 #3148 Add Overlay portalClassName prop to set CSS class on element created by Portal.
    • Supported on Overlay, Dialog, Popover, and Tooltip.
  • #3061 Add MenuItem tagName prop to change HTML element.
  • #3149 Add Popover boundary prop to quickly set Popper boundary element (and PopperBoundary exported type).
  • #3156 New PopoverPosition enum for the allowed values in <Popover position>.
    • 👍 No API change, just a new type that includes the "auto" options and provides constants for them.
  • #3118 New MaybeElement type represents "JSX element or empty render," used in icon props.
    • Now supported: icon={endorsed && "tick"}, icon={condition ? null : "cross"}
  • #3150 Fix HTMLSelect disappearing caret on focus inside ControlGroup.
  • #3147 Classes.CONDENSED (added in #2904) renamed to Classes.HTML_TABLE_CONDENSED to match other <table> modifiers.
    • 👍 This actually reverts a 2.0->3.0 API break where the CONDENSED class was simply removed.
  • #3137 Fix TagInput inputValue respects controlled mode (no more auto-clear) when adding new items.
  • #3157 Fix Callout styles to support title-only usage.

@blueprintjs/datetime 3.4.0

  • #3142 Add DateRangePicker singleMonthOnly prop to show only one month calendar.

@blueprintjs/select 3.3.0

  • #3096 Add scrollToActiveItem prop to all components. Defaults to true.

    When activeItem is controlled, whether the active item should always be scrolled into view when the prop changes. If false, only changes that result from built-in interactions (clicking, querying, or using arrow keys) will scroll the active item into view. Ignored if the activeItem prop is omitted (uncontrolled behavior).

  • #3130 Fix Omnibar to allow browsing items when query is empty.

@blueprintjs/tslint-config 1.7.0

  • #3162 Add fixer for blueprint-html-components rule.

November 2, 2018

@blueprintjs/core 3.8.0

  • 🌟 #3106 New Breadcrumbs component composes Breadcrumb items with an OverflowList container.
    • #3104 Add Breadcrumb current prop.
    • #3105 Breadcrumb renders children (in addition to text prop).
  • #3120 Add FormGroup contentClassName and style props.
  • #3045 Add Portal container prop to attach to things other than document.body.
  • #3113 Fix Checkbox indicator display edge case.
  • #3102 Fix Icon vertical alignment with inline text
  • #3117 Fix Tag text centering with other fonts.
  • #3115 Set default font-family only on body tag.
  • #3123 Remove some unused CSS rules.

@blueprintjs/icons 3.3.0

  • #3052 Add "clean" icon ✨

@blueprintjs/table 3.3.0

  • #2005 Add Table forceRerenderOnSelectionChange prop (defaults to false) which provides a noticeable performance improvement in selection.

October 5, 2018

@blueprintjs/core 3.7.0

  • #2951 🔧 Support for the latest version of @types/react (16.4.14).
  • #2953, #2992 🌟 InputGroup, TextArea, and Classes.INPUT now support small modifier!
  • #2975 Add OverflowList onOverflow callback prop, invoked once per resize and only if the overflowed items have changed.
  • #2964 Dialog close button is now a minimal Button (instead of custom styles).
  • #2960 FormGroup hides label element when the prop is omitted.
  • #2970 Spinner track now always exactly fills the frame and never overflows.
  • #2971 Utils.isElementOfType now compares displayName instead of element type to support equality checks across multiple instances of Blueprint.
    • ⚠️ If you use this method in your code, you must set a displayName on the components being compared or it will always fail.
    • Multiple instances can be brought in through transitive dependencies.
  • #2938 Fix Hotkeys sorting of labeled global groups.
  • #2994 Fix Tag extra margin with icons only.
  • #2466 Fix Tree small visual issues.

@blueprintjs/datetime 3.3.0

  • #2939 Add DatePicker todayButtonText and clearButtonText props to customize the text of those buttons.

@blueprintjs/icons 3.2.0

  • #2967 Added new icons list-columns, flow-linear, flow-branch, flow-review, flow-review-branch, flow-end

@blueprintjs/table 3.2.0

  • #2988 Invoke selectedRegionTransform after keyboard navigation (in addition to existing mouse interactions).
    • ⚠️ The second argument to this method is now MouseEvent | KeyboardEvent, which may require small code migration if you depended on mouse event properties.

@blueprintjs/tslint-config 1.6.0

  • #2969 🌟 Add a fixer to the blueprint-classes-constants rule!
    • The fixer replaces literals with Classes.* references and adds the appropriate import to the file!
  • #2996 The blueprint-classes-constants rule now also bans the bp3- prefix (in addition to the v1 pt- prefix).

September 14, 2018

@blueprintjs/core 3.6.1

  • #2945 Fix Tag remove button centering.

September 12, 2018

@blueprintjs/core 3.6.0

  • #2928 👍 Unknown icon names are now rendered as blank icons instead of as null to avoid interrupting flow
  • #2904 Add HTMLTable condensed prop for more compact appearance without cascade to other components
  • #2911 Fix Collapse initial opening animation
  • #2912 Fix Switch dark theme variables
  • #2929 Fix Switch indicator sensitivity to line-height
  • #2900 Fix TagInput left padding when empty for consistency with InputGroup
  • #2927 (IE11) Fix font icons to prevent double vision

@blueprintjs/datetime 3.2.0

  • #2895 🌟 Time support in DatePicker #2856 and DateRangePicker
    • Enable via new timePrecision shorthand or timePickerProps for advanced control.
    • ❌ Deprecate DateTimePicker since DatePicker can do it all now.
  • #2792 Replace custom styles with existing Blueprint components
    • Use minimal HTMLSelect for month/year dropdowns.
    • Use minimal Button for next/previous buttons.
    • Use Divider for the internal separators.
    • Upgrade react-day-picker dependency and leverage some new features like navbarElement.
  • #2795 Fix TimePicker to prevent typing time that exceeds bounds
  • Freshen up the implementations of DatePicker (#2789) and DateRangePicker (#2858, #2859) with some gentle yet significant refactors; no outward changes.
  • Refactor test suite for DateRangePicker (#2793) to use Enzyme and a hand-built DRY harness

@blueprintjs/select 3.2.0

  • #2894 Add resetOnQuery prop to all components
    • Whether the active item should be reset to the first matching item every time the query changes (via prop or by user input).
    • This behavior is enabled by default.
  • #2923 Add MultiSelect placeholder prop shorthand for inputProps.placeholder
  • #2874 Add Suggest controlled selectedItem prop
  • #2920 Add Suggest uncontrolled defaultSelectedItem prop
  • #2916 Fix QueryList reset behavior when active item becomes invalid so active state rarely disappears
    • Also fix viewport scrolling so the active item is always visible.

@blueprintjs/webpack-build-scripts 0.6.1

  • #2930 Enable webpack-dev-server port configuration via PORT environment variable

August 30, 2018

@blueprintjs/core 3.5.0

  • 🌟 #2884 Icon now renders an HTML element wrapper around the SVG image
    • Also brought back the icon CSS class to mitigate migration pain (it has no associated styles when using SVG icons)
  • #2881 Remove quotes on $ns/@ns style variable, for consumers of variables.less.
    • Less emits the quotes when interpolating in class names, leading to invalid syntax in selectors.
  • #2890 Spinner properly isolates the animation from surrounding styles.
  • #2886 Fix OverflowList collapsing all when zoomed.
  • #2887 Fix Skeleton animation in Firefox!
  • #2885 Increase Skeleton animation contrast

August 23, 2018

@blueprintjs/core 3.4.0

  • 🌟 #2854 New Divider component!
  • #2804 TagInput only adds on paste if pasted text includes separator.
  • #2868 Restore Spinner support for IE and Edge.
  • #2862 Update Sketch file.

August 13, 2018

@blueprintjs/core 3.3.0

  • #2783 RadioGroup and HTMLSelect options support className and disabled.
  • #2772 Popover now supports "auto-start" and "auto-end" positions.
  • #2776 Popover captureDismiss defaults to false.
  • #2775 Fix Button icon-only appearance.
  • #2761 Fix Tabs rendering fail in jsdom.

August 3, 2018

@blueprintjs/core 3.2.0

  • #2758 NEW Popover captureDismiss prop for better uncontrolled click-to-close behavior, especially with nested Popovers (defaults to true).
    • When prop is enabled, Popover invokes preventDefault() on Classes.POPOVER_DISMISS clicks. Popover now ignores dismiss clicks if default is prevented, so popovers around a <Popover captureDismiss> will not close when an inner popover is dismissed.
    • MenuItem disables captureDismiss (can override via popoverProps) to preserve existing desired behavior where clicking a nested submenu closes the entire hierarchy.
  • #2756 Fix Dialog eagerly closing when child Popover closes.
  • #2757 Menu supports arbitrary HTML attributes.

3.1.0 - August 1, 2018

🎆 Highlights: new PanelStack and ResizeSensor components, major Checkbox improvements, select components support controlled query and activeItem.

General

  • 📦 #2741 Fix all component displayNames to be Blueprint3.<name>. (Oops!)
  • 🔧 #2710 Fixed Sass compilation so source map remains external (major reduction in size of NPM package CSS files).

@blueprintjs/core 3.1.0

  • 🌟 #2642 NEW PanelStack component!
  • 🌟 #2745 NEW ResizeSensor component is a React wrapper around ResizeObserver.
  • 🌟 #2709 Checkbox now embeds the small-tick and small-minus SVG images into the CSS so states are CSS-only again.
    • Checkbox suffered greatly in the switch to SVG icons because its implementation no longer relied purely on CSS: React state was necessary to ensure the correct icon was rendered at the correct time. This introduced a bunch of subtle bugs where the DOM and the state could get out of sync (due to an incorrect implementation of un/controlled state).
    • Inlining the two icons results in an insignificant <1kB increase in size of blueprint.css and allowed the removal of much state logic from the Checkbox component.
  • 🌟 Major improvements to Checkbox, Switch, and Radio:
    • #2708 Add tagName prop to wrap in something other than <label>, which can cause event problems when listening for click on a parent element.
    • #2716 The control indicator is now an inline element, and line height restriction has been removed.
      • The indicator used to be absolutely positioned, which resulted in a small vertical misalignment.
      • Controls now assume the default line-height so they fit better with other text and react to changes in this property.
    • #2721 Refactor indicator styles to share as much as possible across the three control types.
  • 🌟 #2718 Popover position updates automatically when content or target change size!
  • #2707 Use IOptionProps instead of IHTMLOptionProps.
    • The latter was added in 3.0.0 without realizing we already had the former, so this is a simple correction.
    • RadioGroup options prop now supports optional label.
  • #2742 Breadcrumbs now embeds its SVG icons just like Checkbox above.
    • This was the final user of the icon fonts. They're now officially legacy!
  • #2727 Button now renders text={0}.
  • #2734 ControlGroup sets correct border-radius on only child.
  • #2744 ControlGroup supports HTMLSelect components.
  • #2731 Popover targets in ControlGroup now correctly inherit border-radius.

@blueprintjs/datetime 3.1.0

  • #2724 DateInput remove null from signature of formatDate as null values are handled by the component itself.
  • #2751 DateInput supports showActionsBar prop from DatePicker.

@blueprintjs/select 3.1.0

  • 🌟 #2747 activeItem (keyboard focus) and query (predicate string) can now be controlled via props or uncontrolled.
    • Optional query/onQueryChange and activeItem/onActiveItemChange props supported in all 4 components.
      • Supply query or activeItem to control that feature. Listen to changes using the associated event prop.
    • resetOnSelect is also a "common" prop, supported by all 4 components and implemented in QueryList.
    • Refactor: most state has been pushed into QueryList, which is now responsible for this behavior.
  • #2748 Suggest now shows the selected item as the placeholder text when the popover is open.
  • #2723 Ensure the active item is always an enabled item.
  • #2646 Added a common test suite for all components to assert common functionality works identically.

@blueprintjs/table 3.1.0

  • #2701 EditableCell correctly passes wrapText prop.

@blueprintjs/timezone 3.1.0

  • #2747 Updated TimezonePicker for latest Select behavior.

Documentation

  • #2740 Added new tags to pages with new content.
  • #2746 Navigator limits to 10 results and has more helpful placeholder text.
  • #2419 Omnibar example hotkey is now shift+o to avoid Firefox conflict.
  • Improved checkbox/switch/radio examples to include some props options.

Contributors

@badams @face @kadhirvelm @ntrinquier

3.0.1 - July 11, 2018

@blueprintjs/core 3.0.1

💎 New features

  • #2667 Spinner accepts Classes.LARGE/SMALL to set large/small size (instead of size prop).
    • A warning is logged if both Classes.LARGE/SMALL and size are provided to a Spinner.
    • 🆙 This undoes a breaking change from 3.0.0 where we removed support for these CSS classes.
  • #2671 Icon uses <desc> element for title (no browser tootltip, still a11y).

🐛 Bug fixes

  • #2666 Fix Button loading spinner size.
  • #2670 Fix Button dark+minimal style.
  • #2681 Fix ButtonGroup vertical style.
  • #2681 Fix ContextMenu behavior when right-clicking on backdrop.
  • #2681 Fix HTMLSelect option label rendering.
  • #2681 Fix MenuItem submenu behavior with usePortal={false}.
    • This prop was removed erroneously in #2539 in 3.0.0-rc.0, so we're bringing it back.
  • #2629 Fix Tree generic types support on node callbacks.
  • #2676 Fix MenuItem submenu styles.
  • #2672 Disabled Buttons now have tabIndex={-1}.

Documentation

  • Fix broken links.
  • Update v1 and v2 docs sites.

3.0.0 - July 9, 2018

🆙 Migration guide is at the bottom of this document.

📦 General changes to all component packages

  • 🔥 #2638 Relicense all packages to "Blueprint License based on Apache 2.0"
    • When we originally licensed to Apache 2.0 in #1751, we added a section 10 to prohibit impersonating Palantir.
    • It was brought to our attention that this modification makes the license no longer Apache 2.0, so we have decided to declare our own license based on Apache 2.0.
    • ⚠️ The only modification is this addition of section 10.
  • 🔥 #2441 Change CSS namespace to bp3- to avoid conflicts with previous major versions.
    • If you use Classes constants instead of hardcoded string literals then this upgrade is essentially free (except for your own CSS rules).
    • The best practice for CSS is to style your own classes instead of Blueprint classes, but in the short term you can replace all pt- prefixes in Sass code with #{$ns}- (exactly like our own source code).
    • 🆙 Use the blueprint-classes-constants TSLint rule to aid in this migration.
    • ⚠️ SCSS/Less variables are unchanged and continue to use the $pt- prefix: $pt-grid-size, etc.
  • 🌟 #2426 Restore support for React 15 (in addition to 16).
  • #2462 Declare sideEffects: ["*.css"] in package.json to preserve CSS imports during tree shaking.
  • #2562 Add tslib to webpack externals so it is not included in *.bundle.js.
  • #2608 Publish TypeScript source maps alongside compiled output: add *.js.map next to *.js and *.d.ts.

@blueprintjs/core 3.0.0

📦 Package changes

  • 👍 #2511 Move react-transition-group from peer to standard dependency.
  • #2488 New 3.0 upgrade script upgrade-blueprint-3.0.0-rename, improvements to 2.0 upgrade script.

🔥 Breaking changes

🔁 These changes can be replaced by the 🆙 upgrade script.

  • 🔥 #2441 Change CSS namespace to bp3- to avoid conflicts with previous major versions.
    • 🆙 Use the blueprint-classes-constants TSLint rule to aid in this migration.
  • 🔥 #2366 Move styles attached to global selectors to their own CSS classes.
    • Global resets remain for <body>, <p>, <small>, <strong> tags.
    • ⚠️ The following HTML elements now require CSS classes to apply Blueprint styles:
      • <h1>-<h6><H1>-<H6> or Classes.HEADING
      • <blockquote><Blockquote> or Classes.BLOCKQUOTE
      • <code><Code> or Classes.CODE
      • <pre><Pre> or Classes.CODE_BLOCK
      • <ol> & <ul><OL> & <UL> or Classes.LIST
        • Not linted by new blueprint-html-components rule as there are legit un-classed uses of list elements.
      • <hr> (no class yet; Divider coming soon)
    • 👍 The above elements do not require classes when used inside a container element with Classes.RUNNING_TEXT.
    • #2456 Add React components for elements above (and HTMLTable for Classes.HTML_TABLE).
    • 🆙 Use the blueprint-html-components TSLint rule to aid in this migration.
  • 🔥 Refactors to base typography styles: Classes.RUNNING_TEXT now uses the default font-size and Classes.TEXT_LARGE can be applied anywhere to use the large font-size.
  • 🌟 #2484 Allow string literals for enums!
    • Most former string enums are now const/type pairs, the official TypeScript solution for non-opaque string enumerations.
    • Affects Alignment, CollapseFrom, Elevation, Intent, Position, PopoverInteractionKind
    • 🔁 CollapseFromBoundary
  • 🔥 #2579 Spinner size prop replaces small/large props.
    • 🆙 @blueprintjs/core 3.0.1 reverts this breaking change by restoring support for Classes.SMALL/LARGE as size shorthands.
  • #2581 Overlay lifecycle props for all overlay components.
    • IOverlayLifecycleProps defines onOpening, onOpened, onClosing, onClosed tied to CSS transition timing.
      • onOpening and onClosing fire before the enter or exit transition (respectively) begins and onOpened and onClosed fire after it ends.
      • Overlay content is always mounted in the DOM during these lifecycles, but it is not visible during onOpening and onClosed.
    • These new props are supported by Overlay, Dialog, Popover and Tooltip.
    • 🔁 Overlay didOpenonOpened, didCloseonClosed
    • 🔁 Popover popoverDidCloseonClosed, popoverDidOpenonOpened, popoverWillCloseonClosing, popoverWillOpenonOpening
  • 🔥 #2601 Delete SVGPopover and SVGTooltip.
    -<SVGPopover content="..." target="..." />
    +<Popover targetTagName="g" wrapperTagName="g" content="..." target="..." />
  • 🔥 #2477 Delete SVGSpinner component as the normal Spinner can now safely be used inside another SVG.
    • Delete Classes.SPINNER_SVG_CONTAINER and Classes.SVG_SPINNER.
  • #2571 Label is now a simple HTML tag wrapper like Code or H1.
    • 🔥 Removed required text prop. Pass content as children now.
    • 🔥 No support for inline or helperText, just basic HTML props.
    • Prefer FormGroup for your labeling needs. The complexity of two approaches was unnecessary, and FormGroup can handle any use case you throw at it (not true of Label).
  • 🔁 #2570 FormGroup requiredLabellabelInfo and remove boolean shorthand.
    -<FormGroup label="Name" requiredLabel={true}>
    +<FormGroup label="Name" labelInfo="(required)">
  • 🔁 #2443 Classes.HEADING replaces the following constants:
    • Classes.CALLOUT_TITLE
    • Classes.DIALOG_TITLE
    • Classes.HOTKEY_GROUP
    • Classes.NON_IDEAL_STATE_TITLE
  • #2617 Popover and Tooltip now extend a shared props interface for consistency.
    • 🔁 rootElementTagwrapperTagName
    • 🔁 targetElementTagtargetTagName
    • 🔁 tooltipClassNamepopoverClassName

💎 New features

  • 🌟 #2537 New OverflowList component is like CollapsibleList with auto-collapse behavior!
    • Renders as many items as can fit inside itself, then collapses the rest into a single element.
    • Accepts generic items: T[] with props to render visible and overflowed items.
    • Uses resize-observer-polyfill (new dependency) to intelligently detect element resizing.
    • #2616 Deprecate CollapsibleList in favor of OverflowList.
  • 🌟 #2536 New MultiSlider component provides a low-level API for manipulating number lines. screen shot 2018-04-19 at 10 43 24 am
    • 👍 Slider and RangeSlider each render a MultiSlider, making them little more than convenience wrappers for single values or ranges.
    • Handles are configured as <MultiSlider.Handle> children and support multiple appearances and interaction types.
  • #2605 New HTMLSelect component for <select> tag.
    • Named thusly to avoid conflict with @blueprintjs/select package.
    • Supports <option> tags as children or options: IHTMLOption[] prop shorthand.
    • ❌ Deprecate Classes.SELECT in favor of this component, which uses Classes.HTML_SELECT to support the SVG icon.
    • The CSS-only API for <select> tags was one of the last holdouts of the icon font.
  • #2609 Upgrade to react-popper@1.0.0
  • #2583 Static aliases for Menu child components: Menu.Item, Menu.Divider
  • #2477 Spinner markup refactor: remove all wrapping <div> elements so the root is the <svg> itself!
  • #2431 New Tag icon and rightIcon props.
    • Tag styles now work similarly to Button: a flex row with children wrapped in a span.
  • #2592 TagInput support for pasting in new items with addOnPaste prop.
  • #2522 Toaster.create() throws error if used within lifecycle method
  • #2499 ensureElement utility supports React.Fragment (React 16 only)
  • #2475 Improve <kbd> element styles and allow un-classed usage inside Classes.RUNNING_TEXT

🐛 Bug fixes

  • #2540 Fix Button alignment in Navbar.
  • #2561 Fix Button alignment without icon.
  • #2497 Fix Button width with large CSS icon only
  • #2538 Fix Callout icon color.
  • #2541 Fix Icon dark intent colors.
  • #2527 Fix InputGroup React warning about round prop.
  • #2491 Fix Spinner stroke width
  • #2494 Fix Switch align-right style
  • #2495 Fix Tabs vertical style
  • #2428 Fix Tag outline behavior
  • #2582 Fix TagInput React warning.
  • #2509 Fix typings of HTMLTable component
  • #2554 Add default type parameters for decorator APIs.
  • #2593 Monospace typography uses relative font-size: smaller.
  • #2544 Move NonIdealState width styles to child elements.

@blueprintjs/icons 3.0.0

  • 🔥 #2441 Change CSS namespace to bp3-.
  • #2584 New icons: globe-network, snowflake, tree.

@blueprintjs/datetime 3.0.0

  • 🔥 #2441 Change CSS namespace to bp3-.
  • #2539 Components use default usePortal value (true).
  • #2573 DateInput onChange now has second argument isUserChange (like DatePicker).
  • #2484 Allow string literals for enums, and rename a few:
    • 🔁 TimePickerPrecisionTimePrecision
    • 🔁 DateRangeBoundaryBoundary (from @blueprintjs/core)

@blueprintjs/select 3.0.0

  • 🔥 #2441 Change CSS namespace to bp3-.
  • #2580 New itemDisabled prop on all components allows disabling individual items.
    • Keyboard controls intelligently skip disabled items.

@blueprintjs/table 3.0.0

  • 🔥 #2441 Change CSS namespace to bp3-.
  • #2556 Table without data can now scroll horizontally.
  • #2586 Fix React unknown prop warning.

@blueprintjs/tslint-config 1.4.1

  • 🌟 #2456 Add blueprint-html-components rule to enforce usage of Blueprint components over JSX intrinsic elements.
    • Marks as errors HTML elements for which Blueprint provides wrappers. See list in core breaking changes above.
  • #2589 Fix blueprint-classes-constants prefix detection.
  • #2457 Improve error messages in blueprint-icon-components lint rule.

📖 Documentation

  • 🌟 #2574 Complete refactor of documentation content to focus on React usage and de-emphasize CSS/HTML usage.
  • 🌟 #2489 New design for examples visually separates them from content.
    • CSS examples now provide checkboxes for each modifier, instead of re-rendering the same markup for each modifier. This allows more than one modifier to be set at a time to demonstrate interactions between them.
  • 🔥 #2545 New docs site URL scheme: /docs/(versions/:v).
  • #2546 Split core components into several subsections.
  • #2591 New Documentation navigatorExclude prop to exclude items from the search results.
  • #2615 New Documentation renderPageActions prop to add custom actions on each page.
    • Add "Edit this page" links at the top of each documentation page.
  • #2459 Fix content width due to code blocks.

Contributors

@badams @devinhalladay @invliD @jaamison @JKillian @jscheiny @mcintyret @PrincipalsOffice @qcz @Que3216 @rafeememon @rosscourt

Clone this wiki locally