-
Notifications
You must be signed in to change notification settings - Fork 2.2k
5.x changelog
-
#6771 fix(
ControlCard
): Fix internal state consistency of control cards in controlled mode
-
#6764 fix: Remove non-existent
clip-path
from "playbook"
- #6738 feat: new icon "bullseye"
- #6731 feat: new icon "cloud-server"
- #6730 feat: new icon "clipboard-file"
- #6740 feat: new icons "backward-10" and "forward-10"
-
#6701 feat(Sass API): export compound tag styling mixins
-
#6724 feat(Sass API): export more app-level color aliases (these are intended to help with the transition to darker dark theme colors coming in the next minor version of @blueprintjs/core)
$pt-app-secondary-background-color
$pt-dark-app-secondary-background-color
$pt-app-elevated-background-color
$pt-dark-app-elevated-background-color
-
#6699 feat(
Tree
): compact styling variant & interactive hover styles on caret icon -
#6621 feat(
Tabs
): allowpanel
prop to be specified as a render function -
#6697 fix(
MenuItem
): prevent scrolling on space key press -
#6718 fix(
EditableText
): update dimensions onplaceholder
change
-
#6724 fix: slightly darker background color for docs content in dark theme, using the correct semantic color alias (
$pt-dark-app-background-color
) for better symmetry with the light theme
-
#6696 feat: new icons "binary-number", "curly-braces"
-
#6692 feat(
BlueprintProvider
): new composite context provider -
#6689 fix(
OverlayToaster
): correct type forcreateAsync()
domRenderer
callback -
#6690 fix(
TooltipContext
): stabilize context value to avoid unnecessary re-renders -
#6647 fix(
Popover
): set the default value ofaria-haspopup
to"menu"
for improved clarity (this is equivalent to the previous value oftrue
, see docs)
-
#6668 fix Sass variable values for
$cerulean
colors
-
#6686 feat: new
CompoundTag
component -
#6680
⚠️ break(Portal
): stop using legacy context API in React 18- This component was backwards-compatible with React's legacy context API. It continues to be so when used with React 16 or 17, but for React 18 consumers, who we assume are not using legacy APIs,
<Portal>
will no longer attempt to use the legacy API (this resolves a React development warning in strict mode)
- This component was backwards-compatible with React's legacy context API. It continues to be so when used with React 16 or 17, but for React 18 consumers, who we assume are not using legacy APIs,
-
#6656 feat: new
Overlay2
component, now compatible with React 18 strict mode- all overlay-based components have been migrated to use
Overlay2
, including:Dialog
Popover
Drawer
OverlayToaster
- see the new
Overlay2
migration guide
- all overlay-based components have been migrated to use
-
#6656 feat: new
Toast2
component which forwards its DOM ref and is compatible withOverlay2
-
#6592 feat(
Callout
): newcompact
modifier prop for reduced visual padding -
#6685 feat(
ContextMenuPopover
): support configuration of DOM mounting / unmounting methods in imperativeshowContextMenu
/hideContextMenu
APIs -
#6399 fix(
Overlay2
): compared toOverlay
, the new component correctly gains focus upon first render whenlazy={true}
-
#6656
⚠️ deprecation:Overlay
andToast
(use "v2" variants instead)
- #6656 feat: all overlay-based components now use Overlay2
- #6656 feat: all overlay-based components now use Overlay2
- #6671 feat: upgrade to prettier v3.2.x, sass v1.70.x
- #6656 feat: all overlay-based components now use Overlay2
- #6671 feat: upgrade dependencies
-
#6646 fix(
ControlGroup
): applyrole="group"
attribute by default for accessibility -
#6650 fix(
Drawer
): allow interacting with overlaid contents whenhasBackdrop={false}
⚠️ this fix comes with a small breaking change to<Dialog>
prop types:hasBackdrop
now is of typenever
, since this overlay prop is unsupported on the<Dialog>
component
-
#6651 fix(
Popover
): resolve React warning by persisting the synthetic event which triggers the popover to open/close when we defer the action (usually due to hoverOpenDelay or hoverCloseDelay) -
#6652 fix(
HotkeysProvider
): memoize context value to avoid unnecessary re-renders of subtree
-
#6653 fix(
MultiSelect
): avoid mutatingprops.tagInputProps
object
-
#6636 fix(
AnchorButton
): don't show text underline on hover- this fixes a regression introduced in core v5.8.0
-
#6638 chore: upgrade
@popperjs/core
dependency from v2.11.7 to v2.11.8
- #6635 feat: new icons "crop", "endnote", "bring-forward", "send-backward"
-
#6639 fix: restore
transform-origin
style in static component SVG markup- this fixes a regression introduced in icons v5.6.0 for users of static icon component modules which were not importing
blueprint-icons.css
- this fixes a regression introduced in icons v5.6.0 for users of static icon component modules which were not importing
-
#6590 feat: new
EntityTitle
component which encapsulates a common UI pattern consisting of a title, icon, subtitle, and tag -
#6599 feat: add new
OverlayToaster.createAsync()
to support React 18 -
#6611 feat(
NonIdealState
): newiconMuted
prop allows displaying non-muted icons when set tofalse
(it istrue
by default for backwards-compatibility) -
#5086 feat: allow dialog background color to be overridden as Sass variable
$dialog-background-color
-
#6634 feat: upgrade
@types/react
dependency to^16.14.41
-
#6600 fix(
Button
,AnchorButton
): omit 'ellipsizeText' prop from HTML attributes -
#6604 fix(
Popover
): applyaria-expanded
andaria-haspopup
a11y attributes to child target element instead of wrapper -
#6629 fix(
KeyComboTag
): use static icon component imports -
#6632
⚠️ deprecate PortalstopPropagationEvents
and OverlayportalStopPropagationEvents
- Note that the implementation for this feature does not work in React 17+
-
#6624 ❗ break: configure
react-hooks/exhaustive-deps
rule to report as "error" instead of "warn" -
#6631 feat: update copyright year in
header/header
rule template
-
#6620 feat: upgrade to typescript-eslint v6.18
⚠️ this may require a concurrent upgrade to TypeScript v5.3 due to https://github.com/typescript-eslint/typescript-eslint/issues/8172
-
#6625, #6227 feat: new icons "team", "trophy", "soccer-ball", "sports-stadium", "cloud-tick"
-
#6594 fix invalid DOM attribute warning for
transform-origin
- #6620 feat: upgrade to typescript v5.3
-
#6634 ❗ break: migrate package to ESM, add
"exports"
field in package.json
-
#6565 fix(
Popover
): addaria-expanded
attribute to target element -
#6579 fix(
Popover
): supportlazy
prop correctly by forwarding the value toOverlay
-
#6587 fix(
Popover
): improve keyboard a11y: always return focus to target element when an ESC keypress closes the popover -
#6567 fix(
Icon
): allowaria-hidden
to be overridden via props
-
#6568 fix(
TimePicker
): usetype="number"
input, improve markup a11y -
#6568 fix(
DateInput
): improve popover markup a11y by addingrole="combobox"
andaria-controls
attributes
-
#6568 fix(
DateInput3
): improve popover markup a11y by addingrole="combobox"
andaria-controls
attributes
-
#6589 feat: new icons "generate" and "explain"
-
#6573 feat: new icons "group-item" and "input"
-
#6567 fix(
SVGIconContainer
): allowaria-hidden
to be overridden via props
-
#6563 fix(
sass-compile
,css-dist
): add shebang to allow easier CLI usage
-
#6454 feat: new
SegmentedControl
componentLight theme Dark theme -
#6544 feat: new
RadioCard
component -
#6543 feat(
Button
,AnchorButton
): newellipsizeText
prop which truncates long text that does not fit into a single line- This feature utilizes the
<Text>
component to detect overflow and render a native HTML tooltip to display the full overflowing text upon hover interaction
- This feature utilizes the
-
#6516 feat(
Button
,AnchorButton
): newtextClassName
prop -
#6506 feat(
Section
): newtitleRenderer
prop allows custom title elements; added variousaria-*
HTML attributes for enhanced a11y -
#6525 fix(
Slider
,AnchorButton
,MultiStepDialog
,MenuItem
): addaria-disabled
attribute to improve a11y markup -
#6521 fix(
PanelStack2
): fix compatibility ofPanel
interface with latestReact.FC
return type- This was made necessary by this
@types/react
change published in v18.2.34
- This was made necessary by this
-
#6538 feat: migrate to
@twbs/fantasticon
v2.x- This migration & upgrade of icon build tooling is not expected to have any impact on end users, but please do flag regressions if they occur.
-
#6520
⚠️ break: migratecss-dist
andsass-compile
from shell to Node.js scripts to improve compatibility with latest Yarn package manager
-
#6548 fix(
DateRangePicker3
): display left/right calendars correctly when the selectable range of days is <2 months and the current day or the midpoint between min & max dates lands on the right calendar
Note: Blueprint's build system was upgraded to TypeScript v5.2 via #6476, which may have resulted in minor changes to transpiled JavaScript in the output modules. Please file an issue if you experience regressions in type definitions.
-
#6472 feat(
FormGroup
): add support for "fill" modifier prop -
#6472 docs(
FormGroup
): improve docs for "intent" prop
-
#6476
⚠️ feat: upgrade to@documentalist/client
v5.0.0
-
#6477 feat: new icons "phone-call", "phone-forward", "paste-variable"
-
#6502 feat: new icon "new-shield"
-
#6478
⚠️ break: enable@typescript-eslint/consistent-type-imports
and@typescript-eslint/consistent-type-exports
rules
-
#6474
⚠️ break(no-deprecated-components
): check usage of deprecated components from@blueprintjs/popover2@2.x
-
#6474
⚠️ break(no-deprecated-components
): check usage of deprecated components from@blueprintjs/select@5.x
-
#6479
⚠️ break(no-deprecated-components
): check usage of deprecated components from@blueprintjs/table@5.x
-
#6474 feat(
no-deprecated-popover2-components
): new lint rule -
#6475 feat(
no-deprecated-select-components
): check usage ofMultiSelect2
,Select2
, andSuggest2
components -
#6479 feat(
no-deprecated-table-components
): check usage ofColumnHeaderCell2
,JSONFormat2
, andRowHeaderCell2
, andTruncatedFormat2
components
- #6476 feat: upgrade to TypeScript v5.2
- #6476 feat: upgrade to TypeScript v5.2
- #6476 feat: upgrade to TypeScript v5.2
-
#6490 fix(
DateRangePicker3
): accept custom month/year formatters for non-contiguous pickers (contiguousCalendarMonths={false}
)
-
#6467 fix(API): restore
PopoverPosition
value export -
#6468 fix(
ResizeSensor
): restore feature detection forResizeObserver
API
-
#6444 feat(
Card
,ControlCard
): new "selected" modifier prop renders the card with a blue selection border (ControlCard
behavior may be modified with theshowAsSelectedWhenChecked
prop) -
#6455 feat: new
CheckboxCard
component -
#6455 feat(
ControlCard
): add support foralignIndicator
prop- Note: by default, this is set to
"left"
forCheckboxCard
and"right"
forSwitchCard
- Note: by default, this is set to
-
#6444 fix(
Checkbox
,Switch
,Radio
): use correct type foronChange
event handler prop- 🔥 warning: this fix can be a slight break for user code which expects the
onChange
event to explicitly be aReact.MouseEvent
instead of aReact.ChangeEvent
- 🔥 warning: this fix can be a slight break for user code which expects the
-
#6343 fix: reduce visual weight of input borders
Before After -
#6459 fix(
Popover
): adjust target element ref behavior to work around react-popperinnerRef
bug, fixing React 18 strict mode compatibility -
#6457 fix(
MenuDivider
): removetabIndex
attribute to resolve accessibility failure
-
#6453 feat: new prop
dateFnsLocaleLoader
on all "V3" components allows users to specify a custom date-fnsLocale
module loader function -
#6456 feat(
DateRangeInput3
):formatDate
andparseDate
props are now optional. The component will use a date-fns formatter & parser with a format string inferred from the time precision setting. -
#6456 feat(
DateRangeInput3
): newdateFnsFormat
prop allows users to easily customize the date formatter, parser, and input placeholder without having to write custom formatting & parsing functions -
#6456 fix(
DateInput3
): forwardlocale
toDatePicker3
correctly so that month & year dropdown labels are localized -
#6445 fix(
DateRangePicker3
): show both start & end time pickers whensingleMonthOnly={true}
- #6459 fix: remove unused, long-deprecated highlights.js code markup styles
-
#6453 feat: migrate webpack config from
ts-loader
toswc-loader
-
#6453 feat: migrate from
ts-loader
toswc-loader
- 🔥 the change to use SWC for TypeScript transpilation has some breaks due to limitations in SWC and adherence to a stricter module system which more closely resembles "standard" ES modules, see the linked PR for more details
-
#6250 feat: new
SwitchCard
component- This is the first of a series of "Control card" components: interactive Cards with embedded form controls
-
#6432 feat(
Card
): newcompact
modifier prop
-
#6434 feat: export
DayPickerProps
type- This type makes it convenient to attach a typedef to an object which is assignable to the
dayPickerProps
prop onDatePicker3
,DateInput3
,DateRangePicker3
, andDateRangeInput3
.
- This type makes it convenient to attach a typedef to an object which is assignable to the
-
#6435 fix(
DateRangeInput3
): minor styling issue when hovering on a date outside of the selected range
-
#6431 new icons "geotime" and "unlink"
-
#6436 chore: upgrade
sass
to v1.69.0,eslint
to v8.50.0
-
#6440 chore: upgrade
fork-ts-checker-webpack-plugin
to v9.0
-
#6410 fix(
Icon
): use correct CSS font-size when falling back to icon font implementation
-
#6421 fix: restore Webpack 4 compatibility by avoiding
export * as
syntax - #6427 fix: allow React 18 as a peer dependency
- #6424 feat: bump minimum version of typescript-eslint to v6.7.4
- #6424 feat: bump minimum version of typescript-eslint to v6.7.4
-
#6426 fix(
no-deprecated-datetime2-components
): export rule definition correctly
-
#6382 fix(
NumericInput
): fix increment/decrement behavior with very small step sizes by usingroundingPriority: "morePrecision"
inIntl.NumberFormat
options
-
#6402 deprecation(
DatePicker
,DateInput
,DateRangePicker
,DateRangeInput
): react-day-picker v7.x components are now deprecated in favor of the "v3" components available in @blueprintjs/datetime2 which use react-day-picker v8.x
🌟 Stable release with changes from v1.1.0-alpha.0
This release doesn't come with any breaking changes to component APIs, but there are small changes related to build tooling which warrant a major version bump:
- react-day-picker v8.x. type definitions require the
allowSyntheticDefaultImports
TypeScript compiler option to be enabled - there is now built-in support for dynamic loading of date-fns locale modules, which can produce bundle size inflation of the overall JS bundle (entry point size is unaffected)
In addition, there are some new features:
-
#6406 feat(
DatePicker3
,DateInput3
,DateRangePicker3
,DateRangeInput3
): widen type oflocale
prop to allow statically-imported date-fnsLocale
objects in addition to locale codes as strings
- feat: upgrade to @blueprintjs/eslint-plugin v5.0.0
-
#6402 break(
no-deprecated-components
): flag usage of deprecated react-day-picker v7.x components -
#6402 feat(
no-deprecated-datetime2-components
): new lint rule to flag usage of deprecated react-day-picker v7.x components
-
#6369 fix(
OverlayToaster
): declarechildren
prop explicitly to fix compatibility with @types/react v18.x
-
#6391 feat(
DateInput
): controlledtimezone
value support
-
#6370 feat(
DateUtils
): add utility functionshasTimeChanged
,hasMonthChanged
-
#6375 feat: export
Errors
,TimezoneNameUtils
,DatePickerShortcutMenu
in public API -
#6375 feat(
DatePickerUtils
): addmeasureTextWidth
utility function -
#6372 fix(
DateInput
): use CSS flex layout to displayrightElement
correctly -
#6360 chore: upgrade
date-fns-tz
dependency to v2.0.0
⭐ new components with react-day-picker v8.x support
allowSyntheticDefaultImports
to be enabled for TypeScript compilation.
-
#5935 feat: new
DatePicker3
component using react-day-picker v8.x- ℹ️ compared to
DatePicker
, the month navigation layout for this component has changed slightly to align with react-day-picker's native behavior: prev/next month buttons are now adjacent to each other at the top right of the picker
- ℹ️ compared to
-
#6370 feat: new
DateInput3
component using react-day-picker v8.x- ℹ️ compared to
DateInput
, the month navigation layout for this component has changed slightly to align with react-day-picker's native behavior: prev/next month buttons are now adjacent to each other at the top right of the picker
- ℹ️ compared to
-
#6375 feat: new
DateRangePicker3
component using react-day-picker v8.x -
#6398 feat(
DateInput3
): simpler date formatting & parsing API-
formatDate
andparseDate
props are now optional. The component will use a date-fns formatter & parser with a format string inferred from the time precision setting. - new
dateFnsFormat
prop allows users to easily customize the date formatter, parser, and input placeholder without having to write custom formatting & parsing functions.
-
-
#6393 fix(
IconLoader
): improve performance ofisValidIconName
check
-
#6384 chore: upgrade eslint-plugin-deprecation to v2.0.0
- Note that this upgrade drops support for TypeScript 3.7
- #6364 feat: allow stylelint v15 as peer dependency
-
#5935 feat: add utility functions
assertTimeIs
,createTimeObject
-
#6331 feat(
Text
): forward ref to DOM element -
#6328 feat(
Section
): add controlled mode support for collapse state -
#6312 feat(
TextArea
): addasyncControl
prop support (which behaves similarly to<InputGroup asyncControl>
) -
#6319 fix(
Popover
): pass alongportalStopPropagationEvents
to underlyingOverlay
component -
#6338 fix(
RangeSlider
): position the handle element correctly upon initial mount when a slider is rendered inside the contents of a<Popover>
- #6339 feat: upgrade to typescript-eslint v6.x
- #6339 feat: upgrade to typescript-eslint v6.x
- #6353 fix: remove unused dependency on ts-node
-
#6313 fix(
Tree
): ExportTreeNodeProps
-
#6321 fix(
Section
):Section
header should only render iftitle
is provided -
#6326 fix(
Section
):defaultIsOpen
should behave as expected- Previously, there was a bug where
defaultIsOpen
had the opposite behavior of what was intended
- Previously, there was a bug where
-
#6318 fix(
Select
,MultiSelect
): load icons statically
-
#6246 feat: new
CardList
component -
#6306 feat(
TextArea
): newautoResize
prop allows input to grow and shrink vertically based as contents change⚠️ thegrowVertically
prop has been deprecated in favor of this new feature which grows and shrinks the textarea.
-
#6290 feat(
InputGroup
): new proponValueChange
provides direct access to the changed text value- This helps avoid common bugs related to React 16 event pooling
-
#6304 feat(typography): muted text modifier class support for headings
-
#6301 fix(
HotkeyParser
): useevent.code
property to get physical keys- This fixes some regressions in hotkey behavior in v5.0 caused by #6106
-
#6232 fix(
Spinner
): add default value foraria-label
attribute
-
#6302 fix(
TimezoneSelect
): rename Ukraine timezone label from "Kiev" to "Kyiv"
-
#6297 fix(
Callout
): remove extra body element (this reverts a DOM breaking change introduced in v5.1.1 which broke some custom styles downstream) -
#6293 fix: export
IconComponent
type (previously namedGenericIcon
) in public API
-
#6295 fix(
DatePickerCaption
): increase caption dropdown CSS specificity- This makes
blueprint-datetime.css
more robust so that<DatePickerCaption>
is styled correctly even whenblueprint.css
is loaded afterwards on the page
- This makes
-
#6293 fix: export
SVGIconContainerComponent
type (previously namedGenericSVGIconContainer
) in public API
-
#6285 fix(
Icon
): add generic type param which can be used to specify the type of the root element rendered by this component, fixing a props compatibility regression in v5.1.x
-
#6283 fix(
IconProps
): widen type of HTML attributes (fixing a regression in v5.1.x) -
#6282 fix(
Section
): apply collapsed style when children are empty -
#6277 fix(
useHotkeys
): avoid using conditional hook (breaking React's Rules of Hooks)
-
#6277 feat: install eslint-plugin-react-hooks, enable additional lint rules:
- "react/self-closing-comp"
- "react-hooks/rules-of-hooks"
- "react-hooks/exhaustive-deps" (warn only)
-
#6245 feat(
Section
): new container component which provides a new way to structure information in a UI. A<Section>
may have a title, description, and icon in its header. Its contents may be collapsible and may contain one or moreSectionCard
children. -
#6269 Menu component visual design updates
- feat(
MenuItem
): newsmall
prop offers a more compact visual design - feat(
MenuDivider
): update visual design to make dividers take up full menu width
- feat(
-
#6260 feat(
Portal
): AddportalContainer
context option -
#6268 fix(
Icon
): avoid breaking rules against conditional React hooks -
#6273 fix(
Icon
): use loaded icon paths in initial state if available -
#6254 fix(
Callout
): load intent icons statically (avoid using dynamic icon loader whenintent
prop is defined) -
#6274 fix(
ContextMenu
): compatibility with @types/react v18.2.14 -
#6275 fix(
HTMLSelect
): align caret icon with ButtonrightIcon
-
#6276 fix(
Callout
): apply visual margin between title and body whenprops.children
is a simple string type
-
#6269 fix(
Navigator
): apply the defaultroleStructure="menuitem"
to navigator menu items to better reflect their behavior and disable "selectable" appearance
-
#6252 feat: new icon "microphone"
- #6261 chore: use non-deprecated syntax to import 'sass' package
-
#6253 fix(
Icon
): restore precedence oficonSize
prop oversize
prop (fixing a regression from v4.x) -
#6255 fix(
EditableText
): widen type ofelementRef
prop to allow ref callbacks (improving compatibility with forwarded refs)
-
#6255 fix(
Draggable
): improve resiliency of component by adding defensive checks that ensure that children have a valid DOM ref before attachingDragEvents
functionality -
#6255 fix(
EditableName
): improve compatibility with<Draggable>
by refactoring into a function component and addingref
prop support viaReact.forwardRef()
- react-day-picker v8 migration
- HotkeysTarget & useHotkeys migration
- PanelStack2 migration
- Table 6.0 changes