Skip to content

4.x Changelog

Adi Dahiya edited this page Jun 20, 2023 · 431 revisions

June 20, 2023

@blueprintjs/popover2 1.4.11

  • #6227 fix(ContextMenu2): disable native menu correctly when using content render prop function API

June 14, 2023

@blueprintjs/core 4.20.2

  • #6223 deprecation: IHotkeyProps

@blueprintjs/docs-theme 4.5.25

  • #6223 deprecation: IDocumentationProps, IExampleMap

June 5, 2023

@blueprintjs/docs-theme 4.5.25

  • #6201 fix: export DocsExampleProps type alias

June 1, 2023

@blueprintjs/core 4.20.1

  • #6195 deprecate IToastOptions in favor of ToastOptions

@blueprintjs/eslint-plugin 2.9.1

  • #6195, #6196 fix(no-deprecated-type-references): lint more deprecated I-prefixed interface names:
    • IToastOptions
    • IContextMenuRenderer

@blueprintjs/table 4.10.9

  • #6196 deprecate IMenuContext, IContextMenuRenderer in favor of MenuContext ContextMenuRenderer

May 30, 2023

@blueprintjs/core 4.20.0

  • #6185 feat(HTMLSelect): new prop iconName allows customizing icon shown on the right side of the component (either "double-caret-vertical" or "caret-down") 2023-05-26 13 16 50
  • #6189 feat: add SliderBaseProps, deprecate ISliderBaseProps

@blueprintjs/eslint-config 2.11.0

  • #6187 deps: upgrade ESLint & lint plugins

@blueprintjs/eslint-plugin 2.9.0

  • #6193 feat(@blueprintjs/no-deprecated-type-references): lint more deprecated I-prefixed interface names:
    • ISliderBaseProps
    • IDocsExampleProps
    • ICellProps
    • IColumnHeaderRenderer
    • IColumnProps
    • ICoordinateData
    • IFocusedCellCoordinates
    • IMenuContext

May 25, 2023

@blueprintjs/colors 4.2.1

  • #6179 fix: output /lib/cjs and /lib/esm modules with the same file layout as other @blueprintjs packages
  • #6183 fix: declare explicit dependency on tslib

@blueprintjs/icons 4.16.0

  • #6180 feat: new icons "lengthen-text", "shorten-text", "spell-check"

    image
  • #6168 feat: new icons "detection", "ammunition"

    image image

@blueprintjs/popover2 1.14.6

  • #6178 fix(ContextMenu2): allow native context menu if content render function returns undefined

May 23, 2023

@blueprintjs/core 4.19.3

  • #6170 fix(DialogBody): remove invalid aria role "dialogbody"

@blueprintjs/table 4.10.5

  • #6173 fix: hide frozen quadrant scrollbar when zoomed out

May 17, 2023

@blueprintjs/core 4.19.2

  • #6165 fix Toaster type regression, especially in <Toaster ref={...} /> usage pattern

May 16, 2023

@blueprintjs/popover2 1.14.3

  • #6092 fix(Popover2): don't react twice to simulated keyboard clicks

@blueprintjs/select 4.9.16

  • #6163 fix(Select2): fix regression caused by #6149 where pressing Enter key to select an item no longer closed the popover

May 15, 2023

@blueprintjs/core 4.19.0

  • #6093 feat(Overlay, Portal): allow portal to stop event propagation
  • #6143 ⚠️ deprecation: deprecate Toaster in favor of OverlayToaster (forwards-compatible with v5.0)
  • #6144 ⚠️ deprecation: deprecate KeyCombo in favor of KeyComboTag (forwards-compatible with v5.0)

@blueprintsj/eslint-plugin 2.8.0

  • #6144 feat(no-deprecated-components): flag usage of KeyCombo as a component (suggest newer name KeyComboTag instead)
  • #6143 feat(no-deprecated-type-references): flag IToasterProps, apply auto-fix to use OverlayToasterProps instead
  • #6145 feat(no-deprecated-type-references): flag IDatePickerShortcut, apply auto-fix to use non-prefixed symbol name

@blueprintjs/select 4.9.15

  • #6149 fix(Select2): dismiss popover when MenuItem elements are clicked (regression caused in #6070, which attempted to fix this interaction for MenuItem2)

April 20, 2023

@blueprintjs/datetime2 0.9.27

  • #6086 fix(TimezoneSelect): always display current timezone offsets, accounting for daylight saving

@blueprintjs/popover2 1.14.1

  • #6084 fix(ContextMenu2, showContextMenu): support placement, popoverClassName, and rootBoundary overrides correctly

April 19, 2023

@blueprintjs/core 4.18.0

  • #6044 fix(MenuItem): handle "Enter" and spacebar keypresses to trigger onClick handler

  • #6062 fix(MenuDivider): handle "Escape" key to close popover

  • #6046 feat(MultistepDialog): improve accessibility of steps list, treat steps as tabs

    2023-04-18 13 16 06

  • #6071 feat(NumericInput, FileInput): add support for "small" CSS modifier & prop

    image image
  • #6060 a11y(MenuItem): fix role structure when hasSubmenu (identical to #5934 change for MenuItem2)

@blueprintjs/datetime2 0.9.26

  • #6081 fix(DateInput2): handle defaultTimezone prop changes correctly
  • #6077 fix(DateInput2MigrationUtils): handle invalid dates in valueAdapter and defaultValueAdapter functions

@blueprintjs/icons 4.15.0

  • #6069, #6067, #6059 new icons: "model", "locomotive", "sensor", "subscript", "superscript"

    image image image image image

@blueprintjs/eslint-plugin 2.7.8

  • #6075 fix(no-deprecated-type-references): flag usage of IInputGroupProps2

@blueprintjs/popover2 1.14.0

  • #6039 chore: bump @popperjs/core dependency from v2.11.6 to v2.11.7
  • #6044 fix(MenuItem2): handle "Enter" and spacebar keypresses to trigger onClick handler

@blueprintjs/select 4.9.13

  • #6070 fix(Select2): check shouldDismissPopover prop on menu items, don't close popover if it is set to true

@blueprintjs/table 4.10.0

  • #6079 feat(ColumnHeaderCell2): new prop menuPopoverProps allows customizing menu popover behavior

March 24, 2023

@blueprintjs/node-build-scripts 7.1.0

  • #6037 feat: downgrade Node.js version requirement to v18
  • #6036 fix(sass-compile): relative path to sass-compile.mjs script

@blueprintjs/webpack-build-scripts 4.3.6

  • #6038 fix: ProvidePlugin module path for process/browser

March 17, 2023

@blueprintjs/core 4.17.7

  • #6017 fix(variables): revert unintended change to $pt-text-selection-color variable
  • #6014 fix(Tag): style .bp4-active modifier class correctly when intent is defined

@blueprintjs/datetime 4.4.26

  • #6007 fix(TimeInput): use disabled text color when disabled in dark theme

@blueprintjs/datetime2 0.9.24

  • #6016 fix(DateInput2): allow changing timezone before selecting date

@blueprintjs/docs-data 4.17.7

  • #6020 fix: handle line endings correctly in Windows dev environment

@blueprintjs/icons 4.14.4

  • #6020 fix: downgrade fantasticon dependency to fix compatibility with Windows dev environment

@blueprintjs/node-build-scripts 7.0.4

  • #6017 fix(generate-css-variables): handle rgba(r, g, b, a) color value syntax properly

March 7, 2023

@blueprintjs/core 4.17.6

  • #6004 fix(TagInput): disable new auto-resizing behavior (added in v4.17.0) by default

    • This behavior caused some regressions, so we are choosing to make it opt-in via a new autoResize prop
  • #6004 fix(TagInput): hide <ResizableInput> span element from screen readers using aria-hidden attribute

    2023-03-07 11 12 59

March 6, 2023

@blueprintjs/core 4.17.5

  • #5997 fix(TagInput): make sure <ResizableInput> span is invisible, which prevents the input text from being displayed twice in some styling situations
  • #6001 fix(TagInput): use correct left padding when there is no left icon or tags (match the appearance of <InputGroup>)
  • #5982 fix(Button, AnchorButton a11y): set aria-hidden="true" on <Icon> element when there is no button text, since the overall button should get an aria-label rather than the icon

@blueprintjs/eslint-config 2.9.0

  • #5994 feat: bump eslint-plugin-jsdoc to v40.0

@blueprintjs/table 4.9.0

  • #5968 feat(Table2): new 'scroll' instance method allows you to programmatically scroll the table by a specified relative offset in pixels

    2023-03-06 15 05 20

March 2, 2023

@blueprintjs/core 4.17.4

  • #5990, #5991 fix Less variable syntax in variables.less

@blueprintjs/node-build-scripts 7.0.3

  • #5990, #5991 fix(generate-css-variables): output Less variables correctly

March 1, 2023

@blueprintjs/core 4.17.2

  • #5989 fix CSS syntax in Sass & Less box-shadow variables
    • fixes a regression introduced in @blueprintjs/core v4.17.0

@blueprintjs/node-build-scripts 7.0.1

  • #5989 fix(generate-css-variables): output list type Sass variables correctly

February 28, 2023

@blueprintjs/core 4.17.1

  • #5979 feat(Icon): new prop svgProps allows passing attributes to <svg> element
  • #5985 fix(TagInput): remove extra element, allow input placeholder to fill width when fill={true} (fixing a regression caused by #5966)
  • #5984 fix(TagInput): remove extraneous id attribute in new <ResizableInput> sub-component
  • #5983 fix(DialogFooter): remove invalid a11y aria-role "dialogfooter"

@blueprintjs/popover 1.13.5

  • #5980 fix(showContextMenu): close on backdrop click, even when onClose prop is defined

@blueprintjs/select 4.9.5

  • #5978 fix(Select2, MultiSelect2): set aria-disabled attribute on combobox elements

February 27, 2023

@blueprintjs/core 4.17.0

  • #5966 feat(TagInput): use a resizable input which scales as you type
Before After
2023-02-27 08 56 07 2023-02-27 08 55 52
  • #5950 feat(Tab): add support for icons and tags inside tab titles with new icon, tagContent, and tagProps props
image
  • #5961 feat(Tabs): new fill prop to make the tab list fill the height of its container
    • ℹ️ this has no effect when vertical={true}, and is not recommended when <Tab> panelss are defined
  • #5955 feat(Icon): allow overriding aria-hidden attribute
  • #5967 feat(MenuDivider): add titleId prop
  • #5954 fix(MenuDivider): apply ARIA role="separator"
  • #5964 fix(Slider, MultiSlider): error if min/max bounds are not finite numbers
  • #5975 fix(TextArea): resize vertically in controlled mode

@blueprintjs/icons 4.14.0

  • #5962 feat: new icon "axle"

    image

@blueprintjs/node-build-scripts 7.0.0

  • #5837 break: upgrade to Node.js v19, set minimum engine to v19.3
  • #5904 feat: use non-legacy Sass compiler, remove node-sass completely
    • export new utilities for building a custom Sass compiler capable of importing Blueprint source files: sassNodeModulesLoadPaths and sassSvgInlinerFactory

@blueprintjs/table 4.8.0

  • #5956 feat(ColumnHeaderCell2): add new prop selectCellsOnMenuClick, which allows users to disable the default behavior of selecting a column's cells when clicking on its header menu

@blueprintjs/webpack-build-scripts 4.3.0

  • #5904 feat: add node_modules folders to sass-loader sassOptions.loadPaths

February 16, 2023

@blueprintjs/core 4.16.3

  • #5948 fix(Collapse): set aria-hidden correctly when keepChildrenMounted prop is enabled
  • #5917 fix(Tag): always set tabIndex on remove button, even when the overall Tag is non-interactive

@blueprintjs/popover2 1.13.3

  • #5952 fix(showContextMenu): unmount previous renders

February 14, 2023

@blueprintjs/core 4.16.2

  • #5944 fix(ActionProps): add generic type param to allow more specific types for DOM event handlers
  • #5945 fix(Breadcrumb): add onFocus event handler support; improve specificity of onClick typedef
  • #5945 fix(Button, AnchorButton): do not attach onFocus handler if disabled

@blueprintjs/select 4.9.2

  • #5944 fix(ItemRendererProps): make ref property optional, fixing a regression in v4.9.0 caused by #5815

February 13, 2023

@blueprintjs/core 4.16.0

  • #5927 feat(Utils): elementIsTextInput utility function
  • #5926 fix(Collapse): set aria-hidden attribute correctly

@blueprintjs/datetime2 0.9.13

  • #5941 fix(DateInput2): gracefully handle invalid values for the defaultTimezone prop and/or the inferred timezone returned from the browser's Intl.DateTimeFormat API

@blueprintjs/popover2 1.13.0

  • #5933 feat: new low-level context menu APIs:
    • <ContextMenu2Popover> encapsulates some of the opinionated popover implementation of <ContextMenu2> into a declarative component API. It's lower-level than <ContextMenu2> since users have to hook up onContextMenu handlers and cancel the default context menu themselves with e.preventDefault(), but this does offer a good declarative alternative to the deprecated ContextMenu.show() imperative API.
    • showContextMenu() + hideContextMenu() imperative APIs, provided as a convenience to make it easy to migrate to Blueprint v5. Note that these rely on ⚠️ global state ⚠️ stored in Blueprint library code.
  • #5933 feat(ContextMenu2): onClose prop behaves more like the closing callback API in ContextMenu.show(), and is simpler to access than popoverProps.onClosed
  • #5909 fix(Popover2): get correct click target in shadow DOM
  • #5934 fix(MenuItem2): improve accessibility by using the correct role structure when a menu item has a submenu

@blueprintjs/select 4.9.0

  • #5815 feat(QueryList): add ref to ItemRendererProps, which allows custom item lists (specified via itemListRenderer on components like Select2) to properly scroll to their active item using DOM calculations based on refs rather than DOM query indices

January 31, 2023

@blueprintjs/core 4.15.1

  • #5906 fix(Callout): link text color in primary intent callouts

@blueprintjs/eslint-config 2.8.0

  • #5911 chore: upgrade ESLint to v8.33.0 and @typescript-eslint/* packages to v5.50.0

@blueprintjs/eslint-plugin 2.7.0

  • #5911 chore: upgrade ESLint to v8.33.0 and @typescript-eslint/utils to v5.50.0

@blueprintjs/docs-theme 4.5.1

  • #5892 ⚠️ deprecation: textmate grammar syntax theme is now deprecated and will be removed in v5.0 (see #5895 for more information)

@blueprintjs/popover2 1.12.1

  • #5907 fix(Popover2): fix regression in renderTarget type definition; add default value for Popover2 and Tooltip2 component type param, which improves inferred types for renderTarget params

@blueprintjs/monaco-editor-theme 0.1.0

  • #5892 feat: new package provides minimal light and dark themes for monaco-editor
    • for now, it only has code syntax highlighting colors; in the future, this may be expanded to a full-fledged theme

@blueprintjs/node-build-scripts 6.0.6

  • #5911 chore: upgrade ESLint to v8.33.0

@blueprintjs/webpack-build-scripts 4.2.0

  • #5892 feat: add support for loading .css files as modules in ES/JS in the base webpack configuration (this is required by libraries like monaco-editor)

January 23, 2023

@blueprintjs/core 4.15.0

  • #5840 feat(MenuItem): roleStructure="none" renders <li role="none"> (see ARIA: none role docs)

  • #5839 feat(InputGroup): readOnly prop

    Regular text input Read-only text input
    image image

@blueprintjs/icons 4.13.0

  • #5856 feat: "intel" icon

    image
  • #5855 fix: 16px hurricane icon SVG path

@blueprintjs/popover2 1.12.0

  • #5840 feat(MenuItem2): roleStructure="none" renders <li role="none"> (see ARIA: none role docs)
  • #5802 feat(Popover2): new prop targetProps allows forwarding some attributes to the generated target container element without using the renderTarget API
  • #5802 feat(Popover2): adjusted types for renderTarget API and new types added to the public API (Popover2ClickTargetHandlers and Popover2HoverTargetHandlers)
    • These allow users to clean up type definitions for target render functions, for example:
class MyComponent extends React.PureComponent {
    public render() {
        return (
-           <Popover2<React.HTMLProps<HTMLDivElement>>
+           <Popover2
                renderTarget={this.renderTarget}
                content="content"
            />
        );
    }

    private renderTarget = ({
        isOpen,
        ref,
        ...targetProps
-    }: Popover2TargetProps & React.HTMLProps<HTMLDivElement>) => {
+    }: Popover2TargetProps & Popover2ClickTargetHandlers) => {
        return (
            <div
                ref={ref}
                {...targetProps}
            />
        );
    };
}

January 20, 2023

@blueprintjs/core 4.14.3

  • #5858 fix(Dialog): dialog footer layout regression
    • Note: we're moving towards padding instead of margin on dialog footer elements, but making that change only in the new <DialogFooter> React component (via Classes.DIALOG_FOOTER_FIXED) rather than breaking the existing Classes.DIALOG_FOOTER CSS API.

January 17, 2023

@blueprintjs/core 4.14.2

  • #5852 fix(Dialog): fix regression in Classes.DIALOG_BODY element layout, restore margin style
    • Note: we're moving towards padding instead of margin on dialog body elements, but making that change only in the new <DialogBody> React component rather than breaking the existing Classes.DIALOG_BODY CSS API.
  • #5852 fix(MultistepDialog): fix regression in footer layout when there is no close button shown

January 10, 2023

@blueprintjs/core 4.14.0

  • #5753 feat(Dialog): small visual style update with reduced header size and (optional) scrollable body container; new <DialogBody> and <DialogFooter> components for structured layout of dialog contents
    • ⚠️ minor CSS breaking change: bottom padding on the container Classes.DIALOG element has been removed. This was an awkward style rule that made the layout of the dialog more complex than necessary. Its removal should not affect any usage where <DialogBody> or <div className={Classes.DIALOG_BODY}> is present a child of a dialog, which is the standard recommended approach for rendering Blueprint dialogs. If you have dialogs that do not use the "dialog body" class, you will need to audit your styles to ensure the removal of this bottom padding does not cause regressions.
Before After
image image
  • #5834 feat(Callout): small visual style update, reduced header size, intent colors on body text
Before After
Screenshot 2023-01-10 at 12 08 42 Screenshot 2023-01-10 at 12 08 23
Screenshot 2023-01-10 at 12 11 02 Screenshot 2023-01-10 at 12 10 51
  • #5807 feat(MenuItem): roleStructure="listitem" allows rendering <li> and <a> elements with no roles
  • #5820 feat(ButtonGroup, ControlGroup, MenuItem): elementRef prop allows access to HTML element ref
    • ⚠️ this prop name will change to ref in Blueprint v5.0
  • #5823 feat(HTMLTable): use 'compact' terminology instead of 'condensed'
    • ⚠️ condensed prop is now deprecated in favor of compact
  • #5800 fix(Label): apply proper margin on elements inside nested ControlGroups
  • #5824 docs: show fill and alignText interactive options for buttons; demonstrate recommended styling for dropdown menu buttons

@blueprintjs/datetime2 0.9.7

  • #5792 fix(DateRangeInput2): stale input value in controlled mode

@blueprintjs/icons 4.12.0

  • #5808 feat: build icon font with fantasticon v2.0, which may include some minor changes to output font file

@blueprintjs/popover2 1.11.0

  • #5822 feat(Tooltip): new compact prop allows for a compact appearance with less padding around content

    default compact
    image image
  • #5807 feat(MenuItem2): roleStructure="listitem" allows rendering <li> and <a> elements with no roles

  • #5820 feat(MenuItem2): elementRef prop allows access to HTML element ref

    • ⚠️ this prop name will change to ref in Blueprint v5.0
  • #5835 fix(MenuItem2): elide icon attribute from rendered DOM

@blueprintjs/select 4.8.13

  • #5806 fix(Suggest2): show non-empty query when popover is closed (this fixes as regression in Suggest2 which was not present in Suggest)

@blueprintjs/webpack-build-scripts 4.1.0

  • #5792 feat(karmaConfig): allow .scss source files in test code (sometimes useful for interactive debugging in a real browser)

December 1, 2022

@blueprintjs/core 4.13.0

  • #5762 feat(MultiStepDialog): allow showing close button in both header and footer of the dialog

@blueprintjs/eslint-config 2.7.0

  • #5764 chore(deps): bump eslint from 8.24.0 to 8.28.0

@blueprintjs/eslint-plugin 2.6.0

  • #5764 chore(deps): bump eslint from 8.24.0 to 8.28.0

@blueprintjs/icons 4.11.0

  • #5780 feat: new icon "cross-circle"

    image

@blueprintjs/stylelint-plugin 3.1.0

  • #5755 chore(deps): bump stylelint from 14.12.1 to 14.15.0

@blueprintjs/select 4.8.12

  • #5774 Fix QueryList when createNewItemPosition is first
  • #5776 fix(Select2, Suggest2, MultiSelect2): fix: allow popoverProps.disabled

November 9, 2022

@blueprintjs/datetime2 0.9.5

  • #5740 fix(DateInput2MigrationUtils): more specific non-nullable type for onChangeAdapter to support common usage patterns with React.useCallback

@blueprintjs/datetime2 0.9.4

November 8, 2022

@blueprintjs/datetime2 0.9.3

  • #5735 fix(DateInput2, DateRangeInput2): type definition of popoverRef prop is now usable in most cases without type casting

@blueprintjs/popover2 1.10.0

  • #5735 feat: export new type DefaultPopover2TargetHTMLProps

@blueprintjs/select 4.8.10

  • #5733 🔧 fix(MultiSelect2): restore tagInputProps.onChange support (regression introduced in v4.8.8 via #5730)
  • #5735 fix(Select2, Suggest2, MultiSelect2): popoverRef prop is now correctly typed as to access an instance of Popover2<React.HTMLProps<HTMLElement>>
    • ⚠️ this may be a slight breaking change if you expect the ref to be of type Popover2<React.HTMLProps<HTMLDivElement>> — you are recommended to use Popover2<DefaultPopover2TargetHTMLProps>> instead (available in @blueprintjs/popover2 v1.10.0)
    • Note: this fixes a regression introduced in v4.8.8 with #5713

November 7, 2022

@blueprintjs/core 4.12.0

  • #5713 🌟 feat(InputGroup): new prop tagName allows customizing the tag name of the HTML element that contains the input group

@blueprintjs/datetime2 0.9.0

  • #5711 feat(DateInput2MigrationUtils): defaultValueAdapter
  • #5713 🌟 feat(DateInput2, DateRangeInput2): new prop popoverRef allows access to the Popover2 instance, sometimes useful for repositioning the popover
  • #5715 🌟 feat(DateRangeInput2): new prop fill makes control group take up full width of its container
  • #5713 🔧 fix(DateInput2, DateRangeInput2): restore support for popoverProps={{ targetTagName }}, which was previously available in the v1 components which used <Popover>
  • #5718 🔧 fix(DateInput2): display updated timezone immediately after selecting a new item from the timezone list

@blueprintjs/popover2 1.9.0

  • #5712 feat: export PopperCustomModifier type

@blueprintjs/select 4.8.8

  • #5730 🔧 fix(Select2, Suggest2, MultiSelect2): restore support for popoverProps={{ targetTagName }}, which was previously available in the v1 components which used <Popover>
  • #5730 🔧 fix(MultiSelect2): invoke popoverTargetProps onKeyDown and oKeyUp event handlers if provided
  • #5730 🔧 fix(Suggest2): fix support for inputProps={{ className }}

October 31, 2022

@blueprintjs/datetime 4.4.6

  • #5700 fix: reduce react peer dependency range to ^16 || ^17
    • react-day-picker v7 is not compatible with React 18, so we can't declare compatibility until we upgrade to v8

@blueprintjs/datetime2 0.8.2

  • fix: reduce react peer dependency range to ^16 || ^17
    • Same as #5700, this package transitively depends on react-day-picker v7 types through @blueprintjs/datetime

@blueprintjs/eslint-plugin 2.5.2

  • #5708 fix(no-deprecated-type-references): handle name conflicts by adding import aliases for new types
    • For example, while migrating IPropsProps, if Props already exists as a locally declared or imported symbol in the file, the rule fixer will use an import alias to avoid conflicts: { Props as BlueprintProps } from "@blueprintjs/core"

@blueprintjs/icons 4.10.0

  • #5696 feat: new icon "aimpoints-target"

    image

October 24, 2022

All library packages

  • #5687 fix: downgrade classnames dependency requirement to ^2.3.1, allowing users to work around a breaking change in classnames types added in v2.3.2

@blueprintjs/core 4.11.5

  • #5681 fix(Omnibar): smoothen fadeout transition

@blueprintjs/icons 4.9.0

  • #5682 feat: new icons for low & high voltage power poles

    image
  • #5686 feat: new icon "small-info-sign"

    image

@blueprintjs/popover2 1.8.0

  • #5685 feat: export PopperModifierOverrides type, equivalent to Popover2Props["modifiers"]

October 18, 2022

@blueprintjs/core 4.11.4

  • #5668 fix(Tabs, Switch): improve Windows High Contrast Mode support, dark theme styles

@blueprintjs/datetime2 0.8.0

image
  • #5678 feat(TimezoneSelect): support valueDisplayFormat to achieve feature parity with TimezonePicker
    • ⚠️ This prop now has slightly different semantics, see the migration guide for full details
  • #5678 feat: add TimezoneMetadata and getTimezoneMetadata to the public API to achieve partial API parity with @blueprintjs/timezone
    • ⚠️ the available metadata has changed slightly to reflect the shift from moment-timezone to date-fns-tz, see the migration guide for full details

@blueprintjs/icons 4.8.0

  • #5670 feat: new icon "at"

    image

October 13, 2022

@blueprintjs/datetime2 0.7.0

  • #5669 feat: add DateInput2MigrationUtils adapter functions to help with automated code migrations from DateInput → DateInput2
  • #5669 fix(DateInput2): fix onChange prop callback type to match DateInput

October 10, 2022

@blueprintjs/core 4.11.3

  • #5665 fix: declare @types/react peer dependency range correctly

@blueprintjs/datetime2 0.6.6

  • #5666 fix: migrate from lodash-es to lodash to restore CommonJS support

@blueprintjs/eslint-config 2.6.0

  • #5666 feat: allow submodule imports from lodash in TSLint no-submodule-imports configuration

@blueprintjs/icons 4.7.0

  • #5649 feat: new icon "regex"

    image
  • #5653 feat: new icon "anchor"

    image

@blueprintjs/select 4.8.3

  • #5667 fix(Suggest2): popover max height & overflow styles

@blueprintjs/stylelint-plugin 3.0.0

  • #5640 ⚠️ feat(no-color-literal, no-prefix-literal): migrate from @import to @use statements to import Sass variables
  • #5655 feat(no-color-literal, no-prefix-literal): improve copyright header syntax detection to insert imports more accurately when fixing rule violations

October 5, 2022 - component packages

@blueprintjs/core 4.11.0

  • #5524 feat: support Windows High Contrast mode
    • This change fixes border styles and colors for most components to improve their appearance when High Contrast mode is enabled
  • #5621 feat: upgrade @types/react dependency
    • ⚠️ this may require you to upgrade your version of @types/react
  • #5641 fix: improve contrast for disabled text inputs in iOS
  • #5638 ❌ deprecation: TreeNode.ofType<T>() is no longer necessary
    • we recommend specifying the type parameter in JSX syntax directly, e.g. <TreeNode<T>>

@blueprintjs/datetime 4.4.0

  • #5524 feat(TimePicker): support Windows High Contrast mode

@blueprintjs/datetime2 0.6.3

  • #5637 fix: remove errant whitespace in timezones list

@blueprintjs/popover2 1.7.0

  • #5524 feat: support Windows High Contrast mode
  • #5636 chore: upgrade popper.js dependency

@blueprintjs/select 4.8.0

  • #5638 ❌ deprecation: Select2.ofType<T>(), Suggest2.ofType<T>(), and MultiSelect2.ofType<T>() are no longer necessary
    • we recommend specifying the type parameter in JSX syntax directly, e.g. <Select2<T>>

October 5, 2022 - tooling packages

@blueprintjs/eslint-config 2.5.0

  • #5644 fix: while linting .js or .mjs files, assume ES 2022 syntax in parser and allow ES default exports by disabling import/no-default-export rule
  • #5631 chore: upgrade typescript-eslint, eslint-plugin-jsdoc, eslint-plugin-react

@blueprintjs/eslint-plugin 2.5.0

  • #5631 chore: upgrade typescript-eslint

@blueprintjs/karma-build-scripts 4.0.0

  • #5644 🔥 break: migrate config scripts to ES modules
    • 🆙 this package's API has not changed in shape, but it can no longer be imported using require() - you must use await import() or an ESM import instead

@blueprintjs/node-build-scripts 6.0.0

  • #5630 🔥 break: refactor into ES modules
    • ⚠️ The script file names have changed to use the .mjs extension and are now only compatible with Node.js v16+ (previously, this was kind of an implicit constraint, but it is now explicit with "engines" in package.json)
    • 🆙 Note that this package's API has not changed (the binary scripts are the same), but individual scripts can no longer be imported using require() - you must use await import() or an ESM import instead
  • #5643 feat: upgrade stylelint peer dependency to ^14.12.1

@blueprintjs/stylelint-plugin 2.1.0

  • #5643 feat: upgrade stylelint peer dependency to ^14.12.1

@blueprintjs/webpack-build-scripts 4.0.0

  • #5644 🔥 break: migrate config scripts to ES modules
    • 🆙 this package's API has not changed in shape, but it can no longer be imported using require() - you must use await import() or an ESM import instead
  • #5644 🔥 break: changed default server port to 9001
  • #5643 👍 feat: upgrade webpack-dev-server to v4 (updating configuration as necessary), along with various other build dependencies
  • #5644 fix(dev-server): add host: "0.0.0.0" option by default to obviate need for --host 0.0.0.0 CLI argument
  • #5644, #5633, #5642 fix(dev-server): improve HMR by upgrading react-refresh + react-refresh-webpack-plugin and adding react-refresh-typescript middleware

September 26, 2022

@blueprintjs/datetime 4.3.13

  • #5544 fix(TimePicker): fix layout of component when used with second/ms precision inside date input or date range input popover (regression introduced in @blueprintjs/datetime v4.3.11)

@blueprintjs/icons 4.6.0

  • #5543 feat: new icon "bug"

    image

@blueprintjs/select 4.7.0

  • #5424 feat(MultiSelect2): allow creating multiple items

    2022-09-22 11 53 59

September 14, 2022

@blueprintjs/core 4.10.0

  • #5535 feat(Toast): new prop isCloseButtonShown (default true) allows hiding the close button, similar to Dialog components

  • #5534 feat(MultistepDialog): support tooltips on navigation buttons, often useful for explaining why a button is disabled

    image

@blueprintjs/datetime 4.3.11

  • #5539 fix(DateRangePicker): render custom footer element in popover if footerElement is provided

@blueprintjs/datetime2 0.6.0

  • #5532 feat(TimezoneSelect): allow filtering timezone list by short names (abbreviations like "EDT", "GMT")

  • #5539 fix(DateRangeInput2): render custom footer element in popover if footerElement is provided

    image

@blueprintjs/icons 4.5.0

  • #5442 docs: add many new tags and word associations to icons metadata in icons.json

September 7, 2022

@blueprintjs/eslint-plugin 2.4.2

  • #5528 fix(no-deprecated-type-references): fix false positive: do not lint IPanel interface
  • #5528 fix(no-deprecated-type-references): fix false negative: lint IQueryListRendererProps interface
  • #5530 fix(no-deprecated-type-references): no overlapping fixes in import statements, which allows the rule to properly fix files where the same deprecated type is referenced multiple times

@blueprintjs/node-build-scripts 5.2.0

  • #5522 feat: upgrade ts-node (used in sass-compile script) to v10.x

@blueprintjs/table 4.6.5

  • #5528 fix: export ColumnHeaderCellProps type (replacement for deprecated interface IColumnHeaderCellProps)

August 26, 2022

@blueprintjs/eslint-plugin 2.4.1

  • #5517 fix(no-deprecated-type-references): lint syntax MultiSelect.ofType<T>() correctly in component deprecation rules

August 25, 2022

@blueprintjs/core 4.9.2, @blueprintjs/datetime 4.3.8, @blueprintjs/datetime2 0.5.4, @blueprintjs/popover2 1.6.2, @blueprintjs/select 4.6.2, @blueprintjs/table 4.6.3, @blueprintjs/timezone 4.4.8

  • #5515 fix: declare @types/react as an optional peer dependency

@blueprintjs/eslint-plugin 2.4.0

  • #5509 feat: @blueprintjs/no-deprecated-type-references rule

August 24, 2022

@blueprintjs/core 4.9.1

  • #5512 fix(Portal): partially revert #5493, restoring implementation to a React class component

@blueprintjs/select 4.6.1

  • #5513 Revert "fix(QueryList): index is always defined in itemRenderer"
    • This caused an unintentional breaking change in typings. We're going to punt it to v5.0.

August 22, 2022

@blueprintjs/core 4.9.0

  • #5506 feat: forward-compatible interfaces without the "I" prefix, deprecation of old types
    • IToaster -> ToasterInstance
    • IToastProps -> ToastProps
  • #5507 feat: deprecate ref types, use React.Ref instead
    • ❌ DEPRECATION of IRef, IRefObject, and IRefCallback types
      • use React.Ref, React.RefObject, and React.RefCallback types instead
  • #5495 fix(MenuItem): un-deprecate component in the overwhelming majority use case, since it is not necessary to migrate to MenuItem2 unless you are customizing popoverProps
    • this matches the new semantics of the @blueprintjs/no-deprecated-core-components ESLint rule, which you should enable to enforce constraints for a smooth migration to Blueprint v5.0
  • #5497 fix(Sass API): allow extended color palette to be overriden
  • #5486 fix(OverflowList): edge case in shouldComponentUpdate

@blueprintjs/docs-theme 4.4.0

  • #5506 feat: forward-compatible interfaces without the "I" prefix, deprecation of old types
    • IExampleProps -> ExampleProps

@blueprintjs/eslint-plugin 2.3.0

  • #5495 feat: only lint deprecated <MenuItem> usage when popoverProps is used

@blueprintjs/popover2 1.6.0

  • #5423 feat(ContextMenu2): support popoverProps={ rootBoundary } customization

@blueprintjs/select 4.6.0

  • #5506 feat: forward-compatible interfaces without the "I" prefix, deprecation of old types
    • IItemRendererProps -> ItemRendererProps
    • IItemListRendererProps -> ItemListRendererProps
    • IListItemsProps -> ListItemsProps
    • ICreateNewItem -> CreateNewItem
  • #5501 fix(QueryList): index is always defined in itemRenderer

August 9, 2022

@blueprintjs/core 4.8.0

  • #5493 feat(Portal): add support for new context API via <PortalProvider> component
    • ❌ deprecation: setting blueprintPortalClassName via legacy context API is now deprecated
  • #5475 fix(Tag): remove aria-labelledby attribute, which is not allowed when an element has no role defined

@blueprintjs/eslint-config 2.2.0

  • #5487 chore: upgrade typescript-eslint

@blueprintjs/eslint-plugin 2.2.0

  • #5477 feat(no-deprecated-components): ⚠️ [BREAKING] add DateInput, DateTimePicker, and MenuItem to list of deprecated components checked by the lint rule
  • #5484 feat(no-deprecated-components): ⚠️ [BREAKING] add Table, ColumnHeaderCell, EditableCell, JSONFormat, and TruncatedFormat to list of deprecated components checked by the lint rule
  • #5478 feat: new rules which split out the functionality of no-deprecated-components into separate rules which makes it easier to make incremental migration progress in large code bases (see README for more info)
    • @blueprintjs/no-deprecated-core-components
    • @blueprintjs/no-deprecated-datetime-components
    • @blueprintjs/no-deprecated-select-components
    • @blueprintjs/no-deprecated-table-components
    • @blueprintjs/no-deprecated-timezone-components
  • #5487 chore: upgrade typescript-eslint

@blueprintjs/icons 4.4.1

  • #5488: fix: align 16px "layers" icon to pixel grid

@blueprintjs/node-build-scripts 5.1.0

  • #5487 chore: upgrade Prettier to v2.7

@blueprintjs/popover2 1.5.1

  • #5489 fix(ContextMenu2): properly open menu and provide the mouse event to consumers using the content function prop API

@blueprintjs/table 4.6.0

  • #5481 feat: new components ColumnHeaderCell2, TruncatedFormat2, and JSONFormat2 which use Popover2 instead of Popover
    • ❌ deprecation: ColumnHeaderCell, TruncatedFormat, and JSONFormat are now deprecated
  • #5489 feat: new component RowHeaderCell2 which uses Popover2 instead of Popover
    • ❌ deprecation: RowHeaderCell is now deprecated
  • #5489 fix(Table2): migrate to ContextMenu2
    • ⚠️ additional CSS required, you must import @blueprintjs/popover2/lib/css/blueprint-popover2.css in addition to table.css
  • #5491 fix(Table2): migrate away from legacy React context API (when used with ColumnHeaderCell2)

August 1, 2022

@blueprintjs/datetime2 0.5.0

⚠️ [BREAKING] this release contains small breaking change to the rendered DOM for DateInput and DateRangeInput2: these components no longer render a wrapper element around the popover target as a result of migrating to the renderTarget Popover2 API. See the linked PRs for detailed markup diffs caused by these changes.

  • #5474 feat(DateRangeInput2): remove popover target wrapper element to simplify DOM
  • #5473 feat(DateInput2): remove popover target wrapper element to simplify DOM
  • #5473 fix(DateInput2): fix fill prop behavior

July 28, 2022

@blueprintjs/core 4.7.0

  • #5471 ❌ deprecation(MenuItem): use { MenuItem2 } from "@blueprintjs/popover2" instead
  • #5432 fix(MenuItem): un-deprecate active prop and update its documentation to define its purpose (to indicate keyboard focus)

@blueprintjs/datetime2 0.4.2

  • #5463 fix(DateInput2, DateRangeInput2): minor compatibility issues when rendered in shadow DOM

@blueprintjs/popover2 1.5.0

Two new components, the last remaining APIs which allow Blueprint users to migrate completely from Popover to Popover2:

  • #5471 ⭐ feat: new MenuItem2 component

  • #5460 ⭐ feat: new Breadcrumbs2 component

  • #5432 feat(MenuItem2): add support for undefined | true | false values for the selected prop, allowing it to display more consistent visual indicators (tick icons) inside <Select2> and <MultiSelect2> components. See the updated @blueprintjs/select component examples for demos

    image image

@blueprintjs/select 4.5.2

  • #5462 fix(Suggest2): get root node correctly when component is used inside Shadow DOM

@blueprintjs/stylelint-plugin 2.0.9

  • #5465 fix(no-prefix-literal): replace selectors correctly in auto-fixer, don't cut off the last character of a selector string (fixes a regression introduced in v0.4.4)

@blueprintjs/table 4.5.0

  • #5471 feat(CopyCellsMenuItem): migrate from MenuItemProps -> MenuItem2Props
    • ⚠️ this is a small breaking change, but in practice it should be a transparent upgrade with no compile breaks (it is extremely rare for consumers to be using the popoverProps API whose type changed from PopoverProps -> Popover2Props here)

July 22, 2022

@blueprintjs/select 4.5.1

  • #5455 fix(Select2, Suggest2, MultiSelect2): use React.HTMLAttributes in menuProps type instead of React.HTMLProps, for consistency with other component APIs

@blueprintjs/table 4.4.1

  • #5456 fix(Table, Table2): do not scroll to ghost rows when grid size == viewport size (similar to previous issue #5027)

July 20, 2022

@blueprintjs/core 4.6.1

  • #5445 fix(Button, AnchorButton): restore button loading prop precedence over disabled prop
    • ⚠️ Important: this fixes an unintentional API break introduced in #5360, released in @blueprintjs/core v4.6.0
  • #5420 fix(NumericInput): don't apply role="textbox" attribute when allowNumericCharactersOnly={false}
  • #5430 ❌ deprecation: IPopoverProps, TooltipProps
  • #5437 fix(Tag): improve a11y label, exclude remove button from being read by screen readers
  • #5446 fix(Collapse, CollapsibleList, MultistepDialog): make props.children optional again
  • #5438 fix(Slider, MultiSlider): improve a11y markup, apply role="slider", allow setting aria-label or aria-labelledby for accessible labels

@blueprintjs/datetime 4.3.3

  • #5390 ❌ deprecation(DateRangeInput): use DateRangeInput2 from @blueprintjs/datetime2 instead
  • #5429 fix(DatePicker, DateRangePicker): improve time picker & footer layout, use more compact styling
  • #5434 fix(TimePicker): improve a11y, set aria-label attribute on input

@blueprintjs/datetime2 0.4.0

  • #5390 🌟 feat: new DateRangeInput2 component, replacement for DateRangeInput, uses Popover2 instead of Popover
  • #5440 feat(DateInput2): use Popover2 instead of Popover, ditch dependency on deprecated DateInput component
    • previous releases of this component incorrectly stated that it used Popover2, when it actually used Popover via DateInput

@blueprintjs/icons 4.4.0

  • #5410 feat: new icon "array-floating-point"

    image

@blueprintjs/select 4.5.0

  • #5435 feat(Select2, Suggest2, MultiSelect2): menuProps allows forwarding aria-label and aria-labelledby props to Menu

@blueprintjs/table 4.4.0

  • #5421 feat(EditableCell2): new placeholder prop to display text when the cell is empty
  • #5449 ❌ deprecation(EditableCell): use EditableCell2 with Table2 instead
  • #5446 fix(ContextMenuTargetWrapper, Reorderable, Selectable): make props.children optional again

July 8, 2022

@blueprintjs/core 4.6.0

  • #5377 feat(MenuItem): new prop 'roleStructure' sets proper a11y roles for different contexts in menu, select, multiselect, etc.
  • #5383 feat(NumericInput): add leftElement prop, which forwards to InputGroup
  • #5396 fix(NumericInput): improve a11y markup, add spinbutton ARIA role
  • #5355 fix(OverflowList): improve performance, allow more than 50 items
  • #5365 fix(Icon): improve a11, reference accessible name with aria-labelledby attribute
  • #5406 fix(Menu): remove extraneous submenu icon title, decluttering screen reader output
  • #5349 fix(Overlay): escape key closing behavior

@blueprintjs/datetime 4.3.2

  • #5409 ⚠️ [TYPESCRIPT BREAK] fix(DateInput): fix type of onChange argument to include | null, which is passed to the callback at runtime in some cases when the date is invalid or the text input has been cleared
  • #5397 fix(TimePicker): improve a11y markup

@blueprintjs/datetime2 0.3.0

  • #5409 ⚠️ [TYPESCRIPT BREAK] fix(DateInput2): clearing the input field now calls onChange with null
    • this restores the ability to clear the value as a user could do with DateInput

@blueprintjs/eslint-plugin 2.1.2

  • #5385 fix(no-deprecated-components): add TimezonePicker to list of deprecated components

@blueprintjs/node-build-scripts

  • #5415 fix(sass-compile): source map file paths are now relative, not absolute

@blueprintjs/popover2 1.4.2

  • #5349 fix(Popover2): escape key closes popovers as expected when canEscapeKeyClose={true} (default)

@blueprintjs/select 4.4.2

  • #5414 fix(Select2): add a11y label to filter clear button inside popover

June 15, 2022

@blueprintjs/core 4.5.1

  • #5366 fix(HTMLSelect): DOM attribute warning on <option> elements

@blueprintjs/datetime2 0.2.0

  • #5370 ⚠️ [BREAKING] fix(Classes): remove unused TIMEZONE_SELECT_TARGET class
  • #5370 ⚠️ [BREAKING] fix(TimezoneSelect): narrow type of popoverProps to those which are actually supported by the underlying Select2
  • #5370 ⚠️ [BREAKING] fix(DateInput2): rename hideTimezone to showTimezoneSelect to better match Blueprint naming conventions
  • #5371 fix: loosen version range constraint on "date-fns" and "date-fns-tz" dependencies, allowing upgrades to latest versions with important bugfixes

@blueprintjs/eslint-config 2.1.1

  • #5371 fix: allow submodule imports from "date-fns" package

@blueprintjs/eslint-plugin 2.1.1

  • #5368 fix(no-deprecated-components): export the new ESLint rule

@blueprintjs/select 4.4.1

  • #5380 fix(Select): fix regression in matchTargetWidth prop behavior
  • #5375 fix(MultiSelect2): add accessibility labels to clear button
  • #5376 fix(QueryList): pass menuProps to itemListRenderer, which allows custom renderers to get the generated id for proper a11y markup

@blueprintjs/timezone 4.4.0

  • #5370 ❌ deprecation(TimezonePicker)

@blueprintjs/tslint-config 3.3.1

  • #5371 fix: allow submodule imports from "date-fns" package

June 9, 2022

@blueprintjs/core 4.5.0

  • #5336 feat(MenuItem): new prop submenuProps forwards MenuProps to submenu
  • #5358 fix(HTMLSelect): set selected attribute on <option> elements for a11y
  • #5360 fix(Button, AnchorButton): preserve non-null disabled prop value
  • #5362 fix(ResizeSensor): compatibility with React 18 types

@blueprintjs/datetime 4.3.0

  • #5358 fix(a11y): add aria-labels for various controls

@blueprintjs/datetime2 0.1.0

  • #5322 feat: new package with timezone-aware components TimezoneSelect and DateInput2

TimezoneSelect is a replacement for TimezonePicker. It uses Popover2 instead of Popover and includes the list of available timezones as a built-in module instead of relying on the moment-timezone dependency.

image

DateInput2 is a replacement for DateInput. It uses Popover2 instead of Popover and optionally embeds a TimezoneSelect, allowing users to change the timezone of the selected date. This is part of our ongoing work to make our components better at handling timezones — any & all feedback is welcome here via GitHub issues.

image

@blueprintjs/eslint-plugin 2.1.0

  • #5343 feat: new rule no-deprecated-components reports on usage of deprecated Blueprint components
    • Note that this does not rely on type information or reading the @deprecated JSDoc annotation, and is thus distinct/very different from the deprecated rule from eslint-plugin-deprecation

@blueprintjs/popover2 1.4.0

  • #5300 feat(Popover2): new popupKind prop allows specifying the kind of popover content being displayed, for accessibility purposes
    • The possible values are those supported by aria-haspopup: menu, listbox, tree, grid, dialog.

@blueprintjs/select 4.4.0

  • #5347 ⚠️ [BREAKING] feat(MultiSelect2) the popover ref prop API as moved slightly
    • before: <MultiSelect2 popoverProps={ ref: ... }>
    • after: <MultiSelect2 popoverRef={...}>
  • #5347 feat(Select2, Suggest2): new prop popoverRef forwards ref to Popover2 component instance
  • #5346, #5347 feat(Select2, MultiSelect2, Suggest2): new prop popoverContentProps forwards arbitrary props to popover content wrapper element
  • #5348 feat(QueryList): new prop menuProps allows forwarding arbitrary props to the <Menu>
  • #5354 feat(MultiSelect2): new prop disabled
  • #5361 feat(MultiSelect2): new prop onClear renders a clear button which clears the current selection
  • #5354 fix(Select2, Suggest2, MultiSelect2): fix fill prop, which was a regression from the V1 variants of these components
    • ⚠️ [BREAKING] this is a slightly breaking change to the rendered DOM, as we no longer generate a wrapper element around the popover target as a result of migrating to the renderTarget Popover2 API
  • #5348 fix(Select2, MultiSelect2, Suggest2): treat these components as "comboboxes" for accessibility, applying the appropriate accessibility roles and ARIA attributes:
    • aria-controls, aria-expanded, and role="combobox" on the popover target
    • aria-haspopup="listbox" on the popover target
    • role="listbox" on the menu
  • #5340 fix(MultiSelect2): avoid popoverProps placement prop warning
  • #5354 fix(Select2, MultiSelect2): fix popover styling when matchTargetWidth={true}
  • #5357 fix(a11y): add aria-multiselectable and aria-autocomplete attributes where appropriate

@blueprintjs/table 4.3.0

  • #5127 feat: add default implementation for getCellClipboardData
    • ⚠️ NOTE: this may require you to add an NPM devDependency on @types/react, as that is now a transitive peer dependency of this package with the addition of the "react-innertext" dependency

June 3, 2022

@blueprintjs/core 4.4.1

  • #5354 fix(MultiStepDialog): dark theme dialogs now use white borders to match the visual design updates in @blueprintjs/core v4.3.x

    Screen Shot 2022-06-03 at 11 07 53 AM

@blueprintjs/table 4.2.4

  • #5344 fix column layout when columnWidths prop has sparse (undefined) values

May 27, 2022

@blueprintjs/core 4.4.0

  • #5314 feat(Dialog): add containerRef prop
  • #5321 fix(Spinner): add more accessibility markup, support arbitrary HTML attributes
  • #5325 fix(Toast): add role="alert" attribute to toast message for improved accessibility
  • #5326 fix(Menu): add accessibility roles and ARIA attributes
  • #5305 fix: use solid focus outline style
  • #5329 fix: ref utility function types no longer assume you are only working with DOM elements; they work with React class components as well
    • APIs affected: mergeRefs, getRef, setRef, isRefObject, isRefCallback

@blueprintjs/icons 4.3.0

  • #5309 feat: new icon "floating-point"

    image

@blueprintjs/popover2 1.3.0

  • #5307 feat(Popover2): new props matchTargetWidth, modifiersCustom
  • #5302 fix(Popover2): hide popover arrow from accessibility API using ARIA attribute

@blueprintjs/select 4.3.0

This release features new "v2" variants of Select, Suggest, and MultiSelect components which use Popover2 instead of Popover. These provide a smooth migration path to Popover2. Users should migrate to these components from their v1 counterparts across their application before upgrading to Blueprint v5.0 in order to avoid surprises in DOM layout changes as a result of using Popover2 under the hood.

  • #5306 🌟 feat: new Select2 component
  • #5310 🌟 feat: new Suggest2 component
  • #5329 🌟 feat: new MultiSelect2 component
  • #5330 ❌ deprecation: Select, Suggest, and MultiSelect are now deprecated

May 16, 2022

@blueprintjs/node-build-scripts 5.0.1

  • #5303, #5304 fix(generate-css-variables): preserve string quotes in generated variables to avoid downstream Sass syntax parsing errors

May 12, 2022

@blueprintjs/core 4.3.1

  • #5299 fix(NonIdealState): fix some minor layout and visual styling bugs introduced in v4.3.0
  • #5290 fix: ItemRenderer type backwards compatibility
  • #5298 fix: allow $pt-outline-color Sass variable to be overridden

May 9, 2022

@blueprintjs/core 4.2.3

  • #5290 fix: ItemRenderer type backwards compatibility

May 5, 2022

BPM  2022 T1 Updates demo comp

This release features a number of visual design updates to core components which cascade through the entire design system. Most of these changes affect the dark theme, with the goal of improving clarity across the UI. Dark theme styles have shifted one step darker on the color palette, so the default background color is now $dark-gray2 instead of $dark-gray3. This darker background allows us to more consistently use white borders across our components; you'll notice this change in Cards, Dialogs, Buttons (default intent), and Popovers. The border radius for rounded corners across all components has been reduced from 3px to 2px; this along with the flattening of Button backgrounds creates a more modern look & feel.

See the full PR description in #5278 for UI design considerations to take into account when upgrading to this version.

@blueprintjs/core 4.3.0

  • #5278 feat: visual design updates, cleaner dark theme styles
  • #5278 feat(Dialog): smaller header text size (<h5> instead of <h4>)
  • #5278 feat(NonIdealState): new layout prop allows you to render a non-ideal state with horizontal layout
  • #5287 fix(Tooltip): fix typography and icon colors inside tooltip content
  • #5282 fix(EditableText): fix text and hover styles for disabled state and intent variants with alwaysRenderInput={true}
  • 562fd14 fix(Tabs): make children prop optional again

@blueprintjs/datetime 4.2.0

  • #5278 feat: visual design updates, cleaner dark theme styles

@blueprintjs/popover2 1.2.0

  • #5278 feat: visual design updates, cleaner dark theme styles
  • #5280 feat(ContextMenu2): add popoverRef to popoverProps
  • #5287 fix(Tooltip2): fix typography and icon colors inside tooltip content

@blueprintjs/select 4.2.0

  • #5278 feat: visual design updates, cleaner dark theme styles

@blueprintjs/table 4.2.0

  • #5278 feat: visual design updates, cleaner dark theme styles
  • #5283 feat: new prop enableColumnHeader allows hiding the column header
  • #5284 fix: re-render immediately on changes in batched mode

@blueprintjs/timezone 4.2.0

  • #5278 feat: visual design updates, cleaner dark theme styles

@blueprintjs/eslint-config 2.0.0

  • #5270 break: upgrade to ESLint v8
  • #5272 feat: update config, migrate some rules away from TSLint

@blueprintjs/eslint-plugin 2.0.0

  • #5270 break: upgrade to ESLint v8

@blueprintjs/node-build-scripts 5.0.0

  • #5270 break: upgrade to ESLint v8
  • #5271 chore: upgrade to prettier v2.6
    • Note: prettier is only used in generate-css-variables to format the output Sass/Less files

May 4, 2022

@blueprintjs/core 4.2.2

  • 562fd14 fix(Tabs): make children prop optional again

@blueprintjs/table 4.1.5

  • #5284 fix: re-render immediately on changes in batched mode

April 21, 2022

@blueprintjs/colors 4.1.1

  • #5265 fix: restore ! default modifier in Sass variables (again)

@blueprintjs/colors 4.2.1

  • #5265 fix: restore ! default modifier in Sass variables (again)
  • #5266 fix: declare children prop explicitly for components for compatibility with @types/react@18

@blueprintjs/select 4.1.4

  • #5266 fix: declare children prop explicitly for components for compatibility with @types/react@18

@blueprintjs/table 4.1.4

  • #5266 fix: declare children prop explicitly for components for compatibility with @types/react@18

@blueprintjs/timezone

  • #5266 fix: declare children prop explicitly for components for compatibility with @types/react@18

April 15, 2022

@blueprintjs/colors 4.1.0

  • #5260 fix: restore ! default modifier in Sass variables

@blueprintjs/core 4.2.0

  • #5254 feat(useHotkeys): warn when used outside of <HotkeysProvider>
  • #5235 feat(FocusStyleManager): add escape hatch, Classes.FOCUS_STYLE_MANAGER_IGNORE, which allows some elements to continue using default focus styles even when "only show focus on tabs" is enabled
  • #5260 fix: restore ! default modifier in Sass variables
  • #5259 fix: remove invalid compound selector in output CSS
  • #5258 fix: declare children prop explicitly for FCs for compatibility with @types/react@18

@blueprintjs/datetime 4.1.3

  • #5247 fix(DatePicker): disable today button in actions bar when out of min/max date bounds
  • #5249 fix(DatePicker): disable clear button in actions bar when canClearSelection is false

@blueprintjs/popover2 1.1.3

  • #5255 chore: fix peer dependency, allow React 18

@blueprintjs/select 4.1.3

  • #5252 fix(a11y): update active item on focus changes

@blueprintjs/table 4.1.3

  • #5251 fix: vertical scroll bug when ghost cells are enabled (again)

April 7, 2022

@blueprintjs/core 4.1.2

  • #5246 fix variables.scss syntax and backwards compatibility with node-sass / LibSass

@blueprintjs/node-build-scripts 4.0.2

  • #5246 fix(generate-css-variables): fix backwards compatibility with node-sass / LibSass

April 6, 2022

@blueprintjs/core 4.1.1

  • #5238 fix variables.less syntax

@blueprintjs/node-build-scripts 4.0.1

  • #5238 fix(generate-css-variables): Less variables conversion creates valid syntax

@blueprintjs/webpack-build-scripts 3.2.1

  • #5241 fix url() file paths in production CSS by upgrading webpack

April 5, 2022

@blueprintjs/core 4.1.0

  • #5216 feat: migrate from node-sass to dart-sass
    • ⚠️ this can be a breaking change if you are importing and compiling Blueprint's Sass source code with node-sass, see this comment for more details. Note that importing from @blueprintjs/*/src/**/* files is considered private API usage and is therefore not protected from breaking changes under semantic versioning.
  • #5226 feat: allow React 18 peer dependency
  • #4970 feat(MultistepDialog): new navigationPosition prop allows placing navigation steps at the left, top, or right of dialog

image

  • #5231 fix: left icons in buttons no longer get tab focus

@blueprintjs/datetime 4.1.0

  • #5216 feat: migrate from node-sass to dart-sass
  • #5226 feat: allow React 18 peer dependency

@blueprintjs/docs-theme 4.1.0

  • #5216 feat: migrate from node-sass to dart-sass
  • #5226 feat: allow React 18 peer dependency

@blueprintjs/node-build-scripts 4.0.0

  • #5216 ⚠️ feat: migrate from node-sass to dart-sass

@blueprintjs/popover2 1.1.0

  • #5216 feat: migrate from node-sass to dart-sass
  • #5226 feat: allow React 18 peer dependency
  • #5233 feat(Tooltip2): add popoverRef to shared props

@blueprintjs/select 4.1.0

  • #5216 feat: migrate from node-sass to dart-sass
  • #5226 feat: allow React 18 peer dependency

@blueprintjs/table 4.1.0

  • #5216 feat: migrate from node-sass to dart-sass
  • #5226 feat: allow React 18 peer dependency

@blueprintjs/timezone 4.1.0

  • #5216 feat: migrate from node-sass to dart-sass
  • #5226 feat: allow React 18 peer dependency

April 1, 2022

@blueprintjs/datetime 4.0.4

  • #5219 fix: clicking shortcuts no longer dismisses popovers

@blueprintjs/icons 4.1.0

  • #5213 feat: new icons "color-fill", "divide", "rect-height", "rect-width", "vertical-inbetween", "horizontal-inbetween", "open-application"
image image image image image

@blueprintjs/node-build-scripts 3.0.0

  • #5217 ⚠️ [BREAKING] feat: upgrade to stylelint v14
  • #5211 feat: upgrade to node-sass v6

@blueprintjs/stylelint-plugin 2.0.0

  • #5217 ⚠️ [BREAKING] feat: upgrade to stylelint v14 and postcss v8

@blueprintjs/webpack-build-scripts 3.1.2

  • #5211 fix: polyfill "stream" module so that enzyme can load properly in karma webpack bundles

March 30, 2022

@blueprintjs/webpack-build-scripts 3.1.1

  • #5206 fix: migrate from file-loader to webpack asset modules

March 29, 2022

@blueprintjs/table 4.0.2

  • #5202 fix(Table2): update column / row sizes immediately with uncontrolled resizing API

@blueprintjs/karma-build-scripts 3.0.1

  • #5204 Fix createKarmaConfig() to load stylesheets properly outside this repo, loading the core stylesheet from node_modules as necessary

@blueprintjs/webpack-build-scripts 3.1.0

  • #5204 Upgrade many loaders and plugins, including:
    • ts-loader
    • style-loader
    • sass-loader
    • react-refresh-webpack-plugin
    • css-loader
    • fork-ts-checker-webpack-plugin
    • mini-css-extract-plugin
    • postcss-loader

March 25, 2022

@blueprintjs/icons 4.1.0

  • #5192 feat: new icons "fuel", "playbook"

    image image

@blueprintjs/node-build-scripts 2.0.1

  • #5198 fix: remove extraneous dependencies

March 22, 2022

All packages were released as stable v4.0.0.

See overview of 4.0 changes here and a more granular set of changes for 4.0 beta and RC releases here.

Clone this wiki locally