A React-based UI toolkit for the web

Overview

Blueprint CircleCI

Blueprint is a React-based UI toolkit for the web.

It is optimized for building complex, data-dense web interfaces for desktop applications which run in modern browsers and IE11. This is not a mobile-first UI toolkit.

Read the introductory blog post ▸

View the full documentation ▸

Try it out on CodeSandbox ▸

Read frequently asked questions (FAQ) on the wiki ▸

Changelog

Blueprint's change log and migration guides for major versions live on the repo's Github wiki.

Packages

This repository contains multiple projects in the packages/ directory that fall into 3 categories:

Libraries

These are the component libraries we publish to NPM.

  • npm – Core styles & components.
  • npm – Components for interacting with dates and times.
  • npm – Components for generating and displaying icons.
  • npm – Popover2 and Tooltip2 components.
  • npm – Components for selecting items from a list.
  • npm – Scalable interactive table component.
  • npm – Components for picking timezones.

Applications

These are hosted on GitHub Pages as static web applications:

  • docs-app – Documentation site at blueprintjs.com/docs
  • landing-app – Landing page at blueprintjs.com

These are used as development playground environments:

  • table-dev-app – demo page that supports manual testing of all table features

Build tooling

These packages define development dependencies and contain build configuration. They adhere to the standard NPM package layout, which allows us to keep clear API boundaries for build configuration and isolate groups of devDependencies. They are published to NPM in order to allow other Blueprint-related projects to use this infrastructure outside this monorepo.

  • npm – Documentation theme for Documentalist data.
  • npm – ESLint configuration used in this repo and recommended for Blueprint-related projects
  • npm – implementations for custom ESLint rules which enforce best practices for Blueprint usage
  • npm
  • npm – various utility scripts for linting, working with CSS variables, and building icons
  • npm – various utility functions used in Blueprint test suites
  • npm – TSLint configuration used in this repo and recommended for Blueprint-related projects (should be installed by @blueprintjs/eslint-config, not directly)
  • npm

Contributing

Looking for places to contribute to the codebase? First read the contribution guidelines, then check out the "help wanted" label.

Development

Lerna manages inter-package dependencies in this monorepo. Builds are orchestrated via lerna run and NPM scripts.

Prerequisites: Node.js v12+, Yarn v1.22+

One-time setup

After cloning this repo, run:

  1. yarn to install all dependencies.
  2. If running on Windows:
    1. npm install -g windows-build-tools to install build tools globally
    2. Ensure bash is your configured script-shell by running:
      npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"
  3. yarn verify to ensure you have all the build tooling working properly.

Incorporating upstream changes

If you were previously in a working state and have just pulled new code from develop:

  • If there were package dependency changes, run yarn at the root.
    • This command is very quick if there are no new things to install.
  • Run yarn compile to get the latest built versions of the library packages in this repo.
    • This command is quicker than yarn verify since it doesn't build the application packages (docs-app, landing-app, etc.) or run tests

Developing libraries

Run yarn dev from the root directory to watch changes across all packages and run the docs application with webpack-dev-server.

Alternately, each library has its own dev script to run the docs app and watch changes to just that package (and its dependencies): yarn dev:core, yarn dev:datetime, etc. One exception is table: since it has its own dev application, the dev:table script runs table-dev-app instead of the docs.

Updating documentation

Much of Blueprint's documentation lives inside source code as JSDoc comments in .tsx files and KSS markup in .scss files. This documentation is extracted and converted into static JSON data using documentalist.

If you are updating documentation sources (not the docs UI code which lives in packages/docs-app or the docs theme in packages/docs-theme), you'll need to run yarn compile from packages/docs-data to see changes reflected in the application. For simplicity, an alias script yarn docs-data exists in the root to minimize directory hopping.

Updating icons

The One-time setup and Incorporating upstream changes steps should produce the generated source code in this repo used to build the icons documentation. This is sufficient for most development workflows.

If you are updating icons or adding new ones, you'll need to run yarn compile in packages/icons to see those changes reflected before running any of the dev scripts.

License

This project is made available under the Apache 2.0 License.

Comments
  • [Sketch] provide Symbols for components

    [Sketch] provide Symbols for components

    Continuing from #2668.
    Sketch file does not represent UI as symbols. Symbols in Sketch are like components in React.

    Imagine if controls in Blueprint were developed as functions in one monolithic javascript file. Then in order to use a component the developer had to open a large javascript file, copy relevant code and paste into their application.

    Domain: design 
    opened by romanr 67
  • First-class support for @import'ing blueprint scss files

    First-class support for @import'ing blueprint scss files

    Given this import:

    @import "node_modules/@blueprintjs/core/src/blueprint.scss";
    

    Webpack is throwing an error

    ERROR in ./~/css-loader!./~/postcss-loader!./~/resolve-url-loader!./~/sass-loader?sourceMap!./src/styles/app.scss
    Module build failed: 
    @import "../node_modules/bourbon/app/assets/stylesheets/bourbon";
    ^
          File to import not found or unreadable: ../node_modules/bourbon/app/assets/stylesheets/bourbon
    Parent style sheet: /Users/dave/www/portalv3/node_modules/@blueprintjs/core/src/common/_font-imports.scss
          in /Users/dave/www/portalv3/node_modules/@blueprintjs/core/src/common/_font-imports.scss (line 4, column 1)
    ...
    

    The path to ../node_modules/bourbon/app/assets/stylesheets/bourbon is invalid, as bourbon isn't installed as a dependency because it's listed under devDependencies. Is this library not intended to allow users to override the variables?

    Type: enhancement Domain: documentation Resolution: fixed P1 Package: core 
    opened by dmackerman 46
  • Support for client-side routing on href props

    Support for client-side routing on href props

    Many components (such as Menu) can take an href prop. This prop maps to the href value of an <a> tag. For many react projects that use client-side routing, anchor tags are replaced by <Link> (e.g. in react-router) components that ensure the routing happens client-side.

    If the <Link> component is placed inside the text prop, everything behaves as expected, but React throws a warning for having nested <a> tags.

    Perhaps we could supply our own component to be used in place of the <a> tag in these situations.

    Type: enhancement Status: needs proposal P2 Package: core 
    opened by isTravis 45
  • @HotkeysTarget TypeError: class constructors must be invoked with |new|

    @HotkeysTarget TypeError: class constructors must be invoked with |new|

    Environment

    • Package version(s): "@blueprintjs/core": "^3.15.1", "typescript": "3.5.1"
    • Browser and OS versions: Ubuntu 18.04, FireFox 67.0.2

    Steps to reproduce

    import { Hotkey, Hotkeys, HotkeysTarget } from "@blueprintjs/core";
    @HotkeysTarget
    export class MyComponent extends React.PureComponent<{}> {
         public render () { return <div>Hello there</div> };
         public renderHotkeys() {
            return <Hotkeys>
                <Hotkey
                    combo="up"
                    label="Up"
                    onKeyDown={() => { alert('Need to go up'); } }
                />
            </Hotkeys>;
        }    
    }
    

    Actual behavior

    The component cannot be rendered. I get an error that starts with this:

    
    TypeError: class constructors must be invoked with |new|
    HotkeysTargetClass
    node_modules/@blueprintjs/core/lib/esm/components/hotkeys/hotkeysTarget.js:32
    
      29 | tslib_1.__extends(HotkeysTargetClass, _super);
      30 | 
      31 | function HotkeysTargetClass() {
    > 32 |   return _super !== null && _super.apply(this, arguments) || this;
         | ^  33 | }
      34 | 
      35 | HotkeysTargetClass.prototype.componentWillMount = function () {
    
    

    Full traceback available, but probably not needed.

    Expected behavior

    The component should be rendered and the hotkey should be working.

    Type: bug Domain: tooling Package: core 
    opened by nagylzs 34
  • SVG Icons!

    SVG Icons!

    Fixes #365

    Checklist

    • [x] 🔥 Update documentation
    • [x] how to handle the CSS API now?
      • Buttons, all the way down
      • Input Group CSS API examples
    • [x] improve example
    • [x] Callout still uses icon classes because it relies on ::before and position trickery
      • ~~can't resolve this without an API break~~ totally did it #2060
    • [x] MenuItem icon color

    Changes proposed in this pull request:

    • generate-icons-source script now generates iconSvgPaths.tsx file with export const IconSvgPaths{16,20}: Record<IconName, string[]> where value is array of <path d="..." /> strings
    • 🔥 IconName only includes short names. LegacyIconName extends it with long names.
      • I made this change for the Record type above to support indexing
      • open to a less-breaking approach, but i'd also love to drop support for the long names.
    • 🔥 core Icon component now renders SVG content instead of span.pt-icon...
      • removed iconSize prop, replaced with width/height. this isn't totally ideal, I could use some help figuring out the ideal API here.

    Reviewers should focus on:

    • [x] what to do with the CSS icon API?
    • [x] how to support 16px / 20px switch?

    Follow-up work

    • 🔥 refactor iconName?: IconName prop ⇒ icon?: IconName | JSX.Element? #2067
      • bunch of breaking changes here
      • necessary to support custom SVG icon components
    • 🔥 IconName or LegacyIconName #2066
      • can we drop support for the long names pt-icon-time?
    • download links in Icons list should use large icon for 20px download. requires #2066 so I can pass <Icon iconSize={20} ... /> in that case
    Type: breaking change 
    opened by giladgray 34
  • TypeError: moment is not a function

    TypeError: moment is not a function

    It seems that [email protected] exports moment as a function by default but it's being imported with the syntax import * as moment from 'moment', yet this file https://github.com/palantir/blueprint/blob/master/packages/datetime/src/common/dateUtils.ts #calls moment as a function in multiple places, which leads to this error. Has anyone seen this or been able to reproduce? Might be missing something here...

    Also obligatory shoutout for the awesome lib, thanks for all your hard work.

    Bug report

    • Package version(s): 1.14
    • Browser and OS versions: OSX El Capitan

    Steps to reproduce

    1. Import DateRangeInput and pass in valid dates

    Actual behavior

    TypeError: moment is not a function is thrown

    Expected behavior

    Should not throw an error.

    Type: question Package: datetime 
    opened by zsherman 34
  • [Table] Support for column and row reordering

    [Table] Support for column and row reordering

    Fixes #213

    Checklist

    • [x] Include tests
    • [x] ~Update documentation~ (will add language in a separate PR if we want it)
    • [x] Add new example
    • [x] Fix interaction regression w/ TruncatedPopover

    Changes proposed in this pull request:

    Behold: column and row reordering in Table.

    Basic points:

    • Reordering works only if selection is also enabled. If this assumption is bad, let me know.
    • Reordering is performed by mousing down within a selected column header, then dragging. If reordering is enabled, it is no longer possible to deselect a column by clicking on its header. LMK how that feels; I don't love it yet.
    • You can enable reordering for columns, rows, or both via Table props.
    • You can reorder a single entity or a region of multiple entities (having FULL_COLUMNS or FULL_ROWS cardinality).
    • You CANNOT reorder anything if there are multiple regions selected. It's too much of a pain for a v1 implementation, plus initial feedback suggested that no user will be able to predict what will happen anyway. We can revisit this later if we want.
    • The Table does not handle the actual reordering! It simply emits (oldIndex, newIndex, length) and lets the caller pass in updated data.

    Reviewers should focus on:

    • High-level architecture. Does it look reasonable?
    • One thing that felt a little gross was the introduction of a "reordering cursor overlay" that displays invisibly over the whole table while you're dragging to reorder. I couldn't think of a better way to guarantee that the cursor would appear as grabbing no matter where your mouse moved during the drag. LMK what you think.

    Screenshot

    2017-04-07 12 38 28

    opened by cmslewis 33
  • Form groups: label + input + helper text

    Form groups: label + input + helper text

    Fixes #413

    Checklist

    • [x] Update documentation

    @llorca @thisisalessandro

    Reviewers should focus on:

    • Wording in documentation - is this enough to show the variants of controls that we provide?
    • Class naming

    screen shot 2017-02-01 at 11 35 19

    screen shot 2017-02-01 at 12 01 29

    with .pt-inline

    screen shot 2017-02-01 at 11 37 08

    screen shot 2017-02-01 at 12 01 33

    P0 
    opened by leebyp 29
  • Support loading prop on header cells

    Support loading prop on header cells

    Checklist

    • [x] Works with EditableName
    • [x] Works with children content (spacing only)
      • Users will be responsible with using the pt-skeleton class on their header cell children
    • [x] Update documentation
    • [x] Includes tests
    Type: feature request Package: table 
    opened by michael-yx-wu 29
  • [Table] Change header menu icon to chevron and add a bounding box for better affordance

    [Table] Change header menu icon to chevron and add a bounding box for better affordance

    Changes proposed in this pull request:

    Quick little thing. In the spirit of aggressively opening PRs and then asking for feedback, I propose that we change the default header-menu icon from pt-icon-more (···) to pt-icon-chevron-down (⌄), which looks and feels much more intuitive to me.

    Also, I found it annoying that the icon looked the same whether you were hovering inside or outside of it within the header cell. This PR shows the icon with $pt-icon-color when you hover in the header cell but NOT within the icon, showing $pt-icon-color-hover only when you mouse over the clickable icon area.

    Before: 2017-03-27 14 41 22

    After (Light theme): 2017-03-27 14 29 16

    After (Dark theme): 2017-03-27 14 30 31

    For what it's worth, these changes seem consistent with the original mocks for the Table from way back when (although the chevron in the mocks feels too big): image

    Reviewers should focus on:

    • I think the second piece (the hover/non-hover color) should merge regardless—do you agree?
    • Do you like the icon change?
    Type: enhancement P3 Package: table 
    opened by cmslewis 28
  • MultiRangeSlider component

    MultiRangeSlider component

    Checklist


    Changes proposed in this pull request:

    This adds a very general MultiRangeSlider component that ultimately should be able to subsume the Slider and RangeSlider components.

    Notes about the component API:

    • Instead of taking a value/values the component takes a list of handles specified by props. Each handle has:
    • value - where it gets placed on the slider
    • type - specifies how the slider handle should be displayed
      • "full" - handle appears like it does in a Slider (default)
      • "lower" - handle appears like the first slider in a RangeSlider
      • "upper" - handle appears like the second slider in a RangeSlider
    • trackIntent{Above,Below} specifies the color of the track fill above and below (numerically) of the given handle.

    Handles are always displayed in ascending numeric order and the values that are returned by onChange and onRelease are always sorted.

    In addition, MultiRangeSlider takes a defaultTrackIntent prop which is used in the resolution of how to render the color of the track between two given handles. The way that this is resolved is as follows (and is one of my concerns about the API).

    • If the left handle has an above intent, use that
    • If the right handle has a below intent, use that
    • If the component has a default intent, use that
    • Otherwise don't color that section

    Important: Note that there is a difference between the NONE intent and the absence of an intent entirely (undefined). The former will render a gray track between the two handles and the latter will fall-through to the next color in the hierarchy above.

    I previously allowed the specification of colors instead of intents but that didn't seem very blueprint-y.


    Reviewers should focus on:

    I have explicitly not written tests/docs for this yet, as I would first like to iterate on the API as I'm not convinced what I've written is particularly nice (worked for our use case but don't know if it generalizes well). Once we've iterated and nailed down an API I will gladly write tests and docs for this component.

    I've written some questions in the code, but one additional question I have is should this component live in labs first to incubate before moving into core?


    Not addressed in this PR (requires follow-up):

    To keep this PR simple(r) and easy(er) to review, I have not made many changes to the existing slider components but in 1-2 follow up PRs I would like to:

    1. Refactor Slider and RangeSlider to be simple wrappers around MultiRangeSlider
    2. Remove CoreSlider and refactor into MultiRangeSlider

    The second one is questionable, especially if there are plans to add a slider that does not fit into the multi range slider model.


    Screenshots

    Two tailed slider:

    screen shot 2018-04-19 at 10 43 24 am

    Disabled:

    screen shot 2018-04-19 at 11 09 44 am

    One tailed:

    screen shot 2018-04-19 at 11 10 39 am

    Weird:

    screen shot 2018-04-19 at 11 12 27 am

    Vertical:

    screen shot 2018-04-19 at 11 14 13 am

    In action:

    mulit-range-slider

    opened by jscheiny 26
  • feat(QueryList): add `getActiveElement` prop

    feat(QueryList): add `getActiveElement` prop

    Fixes #3369

    Checklist

    • [x] Includes tests
    • [x] Update documentation

    Changes proposed in this pull request:

    See https://github.com/palantir/blueprint/issues/3369#issuecomment-469887277

    I didn't add any tests because it seems like there's no tests for scrolling, and I wasn't sure how to best write such a test:

    https://github.com/palantir/blueprint/blob/b6c1518ea2f524accfba8045ce6f22cac7c5b56e/packages/select/test/queryListTests.tsx#L215-L217

    Reviewers should focus on:

    getActiveElement being exposed as desired

    Screenshot

    opened by shim-flounce 0
  • `auto` option for light/dark theme (CSS, media-queries)

    `auto` option for light/dark theme (CSS, media-queries)

    Problem

    If you change body class on client-side with JS, to determine theme automatically, you'll get flickering.

    Something like this, as an example:

    GIF

    dark-mode-flash

    Which means: white by default, dark only when page will let JS do its work.

    Instead of JS, it should be done with CSS media queries. This will remove flickering forever.

    Solution

    Good example how it's done is Github Primer CSS, look here:

    https://primer.style/css/support/theming

    They have options: dark, light, and auto, – first two forcing the style, say, when you need to set it from user preferences. The last one will let browser determine it automatically... FROM CSS, using media queries, – that's important one again, because it will save you from getting flickering bug when browser tries to automatically set proper theme. Automatic theming shouldn't be done JS-way. Should be done CSS-way.

    Similar issues

    Another similar issue (solving this one will solve his use-case too):

    • https://github.com/palantir/blueprint/issues/4164
    opened by jerrygreen 1
  • Month and year not focusable using tab in firefox

    Month and year not focusable using tab in firefox

    Environment

    • Package version(s): ^3.15.1
    • Operating System: macOS Ventura 13.0.1
    • Browser name and version: Firefox 108.0.1

    Code Sandbox

    Link to a minimal repro: https://codesandbox.io/s/jolly-nash-tyt67e?file=/src/index.tsx

    Steps to reproduce

    1. Press TAB until month / year is focused

    Actual behavior

    On Firefox, focus never reaches month/year

    Expected behavior

    Month/Year should be focusable by pressing Tab

    Possible solution

    Make it focusable?

    Bug preview

    opened by akzhy 0
  • chore(deps): bump react-day-picker from 7.4.9 to 8.4.1

    chore(deps): bump react-day-picker from 7.4.9 to 8.4.1

    Bumps react-day-picker from 7.4.9 to 8.4.1.

    Release notes

    Sourced from react-day-picker's releases.

    v8.4.1

    What's Changed

    New Contributors

    Full Changelog: https://github.com/gpbl/react-day-picker/compare/v8.3.7...v8.4.1

    v8.3.7

    What's Changed

    New Contributors

    Full Changelog: https://github.com/gpbl/react-day-picker/compare/v8.3.6...v8.3.7

    v8.3.6

    What's Changed

    Full Changelog: https://github.com/gpbl/react-day-picker/compare/v8.3.5...v8.3.6

    v8.3.5

    What's Changed

    Full Changelog: https://github.com/gpbl/react-day-picker/compare/v8.3.4...v8.3.5

    v8.3.4

    What's Changed

    New Contributors

    Full Changelog: https://github.com/gpbl/react-day-picker/compare/v8.3.1...v8.3.2

    v8.3.1

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • chore(deps): bump postcss-loader from 7.0.1 to 7.0.2

    chore(deps): bump postcss-loader from 7.0.1 to 7.0.2

    Bumps postcss-loader from 7.0.1 to 7.0.2.

    Release notes

    Sourced from postcss-loader's releases.

    v7.0.2

    7.0.2 (2022-11-29)

    Bug Fixes

    • support ESM version of postcss.config.js and postcss.config.mjs (#614) (955085f)
    Changelog

    Sourced from postcss-loader's changelog.

    7.0.2 (2022-11-29)

    Bug Fixes

    • support ESM version of postcss.config.js and postcss.config.mjs (#614) (955085f)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump ts-loader from 9.4.1 to 9.4.2

    chore(deps): bump ts-loader from 9.4.1 to 9.4.2

    Bumps ts-loader from 9.4.1 to 9.4.2.

    Release notes

    Sourced from ts-loader's releases.

    v9.4.2

    Changelog

    Sourced from ts-loader's changelog.

    9.4.2

    Commits
    • 5e7220b Use custom transformer when building solution references (#1550)
    • 87a9fff add missing comma in README.md (#1551)
    • 620ee79 Typescript 4 9 (#1547)
    • 3319b91 chore(deps): bump minimatch in /examples/project-references-example (#1530)
    • 60e5784 Fix anchor jumping in README.md (#1521)
    • 5c66d2b Update outdated LICENSE year (#1513)
    • 64a4136 Bump terser from 4.8.0 to 4.8.1 in /examples/project-references-example (#1489)
    • cf1d227 Bump lodash in /test/execution-tests/babel-codeSplitting (#1435)
    • e76abb0 Add Tests and Remarks Concerning the New .cts And .mts File Extensions (#...
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
Releases(@blueprintjs/[email protected])
  • @blueprintjs/[email protected](Jun 11, 2018)

  • @blueprintjs/[email protected](Jun 11, 2018)

  • @blueprintjs/[email protected](May 29, 2018)

    • fix TS compiler issue in IHotkeysTarget with latest @types/[email protected]
      lerna ERR! ERROR in [at-loader] ../../node_modules/@blueprintjs/core/dist/esm/components/hotkeys/hotkeysTarget.d.ts:4:18
      lerna ERR!     TS2320: Interface 'IHotkeysTarget' cannot simultaneously extend types 'Component<any, any, any>' and 'ComponentLifecycle<any, any, never>
      
    Source code(tar.gz)
    Source code(zip)
  • @blueprintjs/[email protected](May 19, 2018)

    • new Example frame! #2489
      • Example component is now composed in render() instead of extend BaseExample
      • examples are clearly separated from surrounding text with structure for example/options/source
      • completely rewrite CSS examples so they're more similar to React examples, with checkboxes for each modifier
      • deprecate BaseExample; will remove in next beta release
    • upgrade Documentalist, fix React key warnings #2510
    Source code(tar.gz)
    Source code(zip)
  • @blueprintjs/[email protected](May 19, 2018)

    • :package: move react-transition-group from peer to standard dependency #2511
    • :package: new 3.0 upgrade script, improve 2.0 upgrade script #2488
    • new icons: crown and tree-diagram #2507
    • fix typings of HTML Table component #2509
    • fix upgrade script's treatment of removed props #2486
    • Button fix button width with large CSS icon only #2497
    • Tabs fix vertical style #2495
    • Tag improve outline behavior #2428
    • Spinner adjust stroke width #2491
    • Switch fix align-right style #2494
    • Toaster.create() throws error if used within lifecycle method #2522
    • ensureElement utility supports React.Fragment #2499
    Source code(tar.gz)
    Source code(zip)
  • @blueprintjs/[email protected](May 18, 2018)

    • new icons: crown, shield, tree-diagram (#2519, #2448)
    • Toaster.create() throws an error if ReactDOM.render() returns null (#2523)
      • React 16 has a breaking change where ReactDOM.render() returns null if invoked within a lifecycle method, which breaks the Toaster.create() contract of returning a Toaster instance
      • we handle this by throwing an error, forcing you to refactor your usage of the Toaster to either an element ref or a singleton module
    Source code(tar.gz)
    Source code(zip)
  • @blueprintjs/[email protected](Apr 20, 2018)

  • @blueprintjs/[email protected](Apr 19, 2018)

    • ⭐️ #2394 Add a new lint rule blueprint-classes-constants to enforce use of Classes.* constants instead of "pt-prefixed-strings". This rule is enabled by default.
      • Also added blueprint-icon-components rule to enforce JSX component or string literal usage for icon props. This rule is disabled by default and has little practical purpose until we ship individual components for the icons #2193
    • removed file-header configuration as it mentioned Palantir
    Source code(tar.gz)
    Source code(zip)
  • @blueprintjs/[email protected](Apr 19, 2018)

    • ⭐️ #2325 Support for customizing the CSS class namespace pt-
      • in the upcoming 3.0 release, we will change this namespace to bp3- to avoid style conflicts with previous versions of Blueprint on the same page
      • added a new docs page about Classes to encourage use of the forward-compatible Classes constants
    • #2390 Fix hot reload support (🎩 @dan-katz)
    • #2118 Fix scroll syncing when widths/heights change (🎩 @mcintyret)
    Source code(tar.gz)
    Source code(zip)
  • @blueprintjs/[email protected](Apr 19, 2018)

    • ⭐️ #2325 Support for customizing the CSS class namespace pt-
      • in the upcoming 3.0 release, we will change this namespace to bp3- to avoid style conflicts with previous versions of Blueprint on the same page
      • added a new docs page about Classes to encourage use of the forward-compatible Classes constants
    • ⭐️ #2341 Slider now uses percentages instead of pixels for layout, resulting in effortless resizes! (🎩 @reiv) 2018-03-30_18-58-56
    • 📦 #2362 Upgrade to Normalize.css 8.0.0 to fix font-family issues on some components (🎩 @reiv)
    • 🔨 #2328 Fix Webpack externals so *.bundle.js files are as light as possible
    • 🔨 #2367 Fix TypeScript bundling with at-loader on Windows (🎩 @reiv
    • #2399 Added Overlay didClose and Popover popoverDidClose lifecycle props!
      • now possible with react-transition-group onExited method (did not exist in 1.0)
    • #2131 ContextMenu now re-creates its DOM element when it closes, allowing it to be used in other overlays like Dialog
    • #2344 InputGroup now supports .pt-fill modifier (🎩 @qcz)
    • #1861 InputGroup now has default right padding when rightElement is omitted
    • #2382 Popover improved focus event handling, particularly when switching tabs (🎩 @reiv)
    • #2400 Fix Callout icon positioning
    • #2377 Fix Checkbox onChange 😨 (🎩 @js-um)
    • #803 Fix ContextMenu so it will remain inside the viewport
    • #1188 Fix Overlay outside click logic when hasBackdrop=false
    • #2401 Fix Portal onChildrenMount so it is invoked after children mount
    • #2365 Fix large TagInput tag-remove button size
    • #2409 File input Sass variables now have !default
    Source code(tar.gz)
    Source code(zip)
  • @blueprintjs/[email protected](Apr 5, 2018)

  • @blueprintjs/[email protected](Apr 5, 2018)

  • @blueprintjs/[email protected](Apr 5, 2018)

  • @blueprintjs/[email protected](Apr 5, 2018)

    • #2329, #2333 Add props for common modifier classes
      • Button: fill, large, minimal, small
      • Checkbox etc: alignIndicator, large
      • InputGroup: large, round
      • Label: inline
      • Menu: large
      • MenuItem: active
      • Navbar: fixedToTop
      • NumericInput: fill
      • ProgressBar: animate, stripes
      • Spinner: large, small
      • Tag: large, minimal, round
      • TagInput: fill, large
    • #2330 Add more Classes constants
    • #2323 Checkbox renders SVG icons
    • #2346 .pt-html-table supports th cells in tbody (🎩 @VictorHom)
    • #2343 Fix invalid prop warning (🎩 @CPyle)
    Source code(tar.gz)
    Source code(zip)
  • @blueprintjs/[email protected](Apr 4, 2018)

  • @blueprintjs/[email protected](Mar 26, 2018)

    • #2316 Bump react peerDependency to 16.2.0 for fragment support
      • release notes for 2.0.0 declared this minimum version but it was not enforced in core's package.json
    Source code(tar.gz)
    Source code(zip)
  • @blueprintjs/[email protected](Mar 22, 2018)

  • @blueprintjs/[email protected](Mar 22, 2018)

    General

    • 🌟 #2241 Run published CSS files through postcss to remove comments and run Autoprefixer.
    • #2268 Copyright comments in files use /* comments only.
    • #2269 Use React.HTMLAttributes instead of React.HTMLProps in components that support arbitrary HTML props.

    @blueprintjs/timezone 2.0.0-rc.4

    • No changes since RC 3, just bumping version.
    Source code(tar.gz)
    Source code(zip)
  • @blueprintjs/[email protected](Mar 22, 2018)

    General

    • 🌟 #2241 Run published CSS files through postcss to remove comments and run Autoprefixer.
    • #2268 Copyright comments in files use /* comments only.
    • #2269 Use React.HTMLAttributes instead of React.HTMLProps in components that support arbitrary HTML props.

    @blueprintjs/table 2.0.0-rc.4

    • #2228 EditableCell fix controlled mode to allow edits to be rejected
    • #2267 Fix onVisibleCellsChange on scroll in React 16 (:tophat: @mmoutenot)
    Source code(tar.gz)
    Source code(zip)
  • @blueprintjs/[email protected](Mar 22, 2018)

    General

    • 🌟 #2241 Run published CSS files through postcss to remove comments and run Autoprefixer.

    @blueprintjs/select 2.0.0-rc.4

    • :star2: #2252 Add itemListRenderer prop to all select components
      • Pull initialContent, noResults, itemListRenderer up to QueryList props (other components extend this shared interface)
      • QueryList renderer receives rendered itemList ReactNode.
      • itemListRenderer is now the only one with access to items/itemsParentRef/renderItem props.
      • The default itemListRenderer produces a Menu using filteredItems (to preserve arrow keys order).
      • New utility function renderFilteredItems() exported from package.
    • #2213 Add filteredItems to renderer props
    • #2245 Add query to itemRenderer props (:tophat: @reiv)
    Source code(tar.gz)
    Source code(zip)
  • @blueprintjs/[email protected](Mar 22, 2018)

  • @blueprintjs/[email protected](Mar 22, 2018)

    General

    • 🌟 #2241 Run published CSS files through postcss to remove comments and run Autoprefixer.

    @blueprintjs/datetime 2.0.0-rc.4

    • :star2: #2151 TimePicker new useAmPm prop adds support for 12-hour format (:tophat: @colinbr96)
    • #2271 Remove TimePicker outside padding
    Source code(tar.gz)
    Source code(zip)
  • @blueprintjs/[email protected](Mar 22, 2018)

    General

    • 🌟 #2241 Run published CSS files through postcss to remove comments and run Autoprefixer.
    • #2268 Copyright comments in files use /* comments only.
    • #2269 Use React.HTMLAttributes instead of React.HTMLProps in components that support arbitrary HTML props.

    @blueprintjs/core 2.0.0-rc.4

    • #2230 Publish the 2.0.0 upgrade script which renames most symbols.
      # the following script will now appear in your `npm bin` directory.
      # run it for full usage instructions.
      ./upgrade-blueprint-2.0.0-rename
      
    • #2256 Add KeyCombo minimal prop to render icon and text only
    • #2251 Add Tag interactive modifier support (through .pt-interactive class)
    • #2276 Add Popover targetElementTag prop a la rootElementTag (:tophat: @tgreen7)
    • #2174 NumericInput supports continuous value change by holding down the button (:tophat: @reiv)
    • #2255 blueprintPortalClassName context key supports multiple classes
    • #2231 Tag uses SVG Icon for remove button
    • #2233 Fix Toaster layout regression (:tophat: @reiv)
    • #2275 Fix FileInput default button shadow
    • #2262 Fix Overlay React unique key warning
    • #2280 Fix Label helperText to accept React nodes (:tophat: @will-stone)
    • #2282 Fix input shadow clipping by removing .pt-popover-target styles
    • #2265, #2285 Fix MenuItem text clipping with alternate fonts and icon alignment (:tophat: @reiv)
    • #2284 Hide .pt-skeleton nested content such as items (:tophat: @univerio)
    • #2247 Upgrade Popper.js and react-popper for latest typings
    Source code(tar.gz)
    Source code(zip)
  • @blueprintjs/[email protected](Mar 16, 2018)

Owner
Palantir Technologies
Palantir Technologies
A web application to search all the different countries in the world and get details about them which can include languages, currencies, population, domain e.t.c This application is built with CSS, React, Redux-Toolkit and React-Router.

A web application to search all the different countries in the world and get details about them which can include languages, currencies, population, domain e.t.c This application is built with CSS, React, Redux-Toolkit and React-Router. It also includes a theme switcher from light to dark mode.

Franklin Okolie 4 Jun 5, 2022
Boilerplate for Truffle, Web3.js, React, Redux Toolkit

Truffle, React, Redux Toolkit, Web3.js boilerplate What it's for Currently, it's a nightmare and takes forever trying to get React working with Truffl

Adrian Delgado Ξ 29 Jun 9, 2022
Redux-Toolkit example with React Hooks CRUD Application, Axios, Rest API, Bootstrap

Redux-Toolkit CRUD example with React Hooks, Axios & Web API Build Redux-Toolkit CRUD application with React Hooks and Rest API calls in that: Each it

null 69 Dec 27, 2022
A React Native starter template project with built-in navigation & redux toolkit.

react-native-template A React Native starter template project with built-in navigation & redux toolkit. What's included? @react-native-async-storage/a

Manish Bista 8 Oct 29, 2022
Your toolkit for financially sustainable open source development

Your toolkit for financially sustainable open source development. Getting Started · Why? · Plans · Documentation · Contributing Description Open sourc

KickJump 4 Feb 12, 2022
A zero-config toolkit for creating fine Forge apps

A zero-config toolkit for creating fine Forge apps. Background The Forge Dev Kit (FDK) is a preconfigured set of libraries and frameworks for developi

Fine Software 17 Aug 10, 2022
Free Open Source High Quality Dashboard based on Bootstrap 4 & React 16: http://dashboards.webkom.co/react/airframe

Airframe React High Quality Dashboard / Admin / Analytics template that works great on any smartphone, tablet or desktop. Available as Open Source as

Mustafa Nabavi 6 Jun 5, 2022
Recoil is an experimental state management library for React apps. It provides several capabilities that are difficult to achieve with React alone, while being compatible with the newest features of React.

Recoil · Recoil is an experimental set of utilities for state management with React. Please see the website: https://recoiljs.org Installation The Rec

Facebook Experimental 18.2k Jan 8, 2023
Mobile app development framework and SDK using HTML5 and JavaScript. Create beautiful and performant cross-platform mobile apps. Based on Web Components, and provides bindings for Angular 1, 2, React and Vue.js.

Onsen UI - Cross-Platform Hybrid App and PWA Framework Onsen UI is an open source framework that makes it easy to create native-feeling Progressive We

null 8.7k Jan 8, 2023
Edvora App is a web application based on an external API, showing data about different types of products and the user can filter these data by choosing a specific state, city or product name. Build with React.js

Edvora App is a web application based on an external API, showing data about different types of products and the user can filter these data by choosing a specific state, city or product name. Build with React.js

Kyrillos Hany 5 Mar 11, 2022
React Starter Kit — isomorphic web app boilerplate (Node.js, Express, GraphQL, React.js, Babel, PostCSS, Webpack, Browsersync)

React Starter Kit — "isomorphic" web app boilerplate React Starter Kit is an opinionated boilerplate for web development built on top of Node.js, Expr

Kriasoft 21.7k Dec 30, 2022
📋 React Hooks for forms validation (Web + React Native)

English | 繁中 | 简中 | 日本語 | 한국어 | Français | Italiano | Português | Español | Русский | Deutsch | Türkçe Features Built with performance and DX in mind

React Hook Form 32.4k Dec 29, 2022
React-app - Building volume rendering web app with VTK.js,react & HTML Using datasets provided in vtk examples (head for surface rendering and chest for ray casting)

SBE306 Assignment 4 (VTK) data : Directory containing Head and Ankle datasets Description A 3D medical viewer built with vtk-js Team Team Name : team-

Mustafa Megahed  2 Jul 19, 2022
✌️ A spring physics based React animation library

react-spring is a spring-physics based animation library that should cover most of your UI related animation needs. It gives you tools flexible enough

Poimandres 24.7k Dec 28, 2022
♠️ React MDX-based presentation decks

MDX Deck Award-winning React MDX-based presentation decks ?? Write presentations in markdown ⚛️ Import and use React components ?? Customizable themes

Brent Jackson 11k Jan 2, 2023
Next-gen, highly customizable content editor for the browser - based on React and Redux and written in TypeScript. WYSIWYG on steroids.

ReactPage ReactPage is a smart, extensible and modern editor ("WYSIWYG") for the web written in React. If you are fed up with the limitations of conte

null 9.1k Jan 6, 2023
a react-based framework that provides accessibility, modularity, responsiveness, and theming in a tidy package

Grommet: focus on the essential experience Documentation Visit the Grommet website for more information. Support / Contributing Before opening an issu

grommet 8.1k Jan 5, 2023
🏁 High performance subscription-based form state management for React

You build great forms, but do you know HOW users use your forms? Find out with Form Nerd! Professional analytics from the creator of React Final Form.

Final Form 7.2k Jan 7, 2023
Further split the React Native code based on Metro build to improve performance, providing `Dll` and `Dynamic Imports` features

React-Native Code Splitting Further split the React Native code based on Metro build to improve performance, providing Dll and Dynamic Imports feature

Wuba 126 Dec 29, 2022