@coveord/plasma-react
TypeScript icon, indicating that this package has built-in type declarations

53.1.3 • Public • Published

Plasma React

Npm total downloads badge npm license

Coveo Administration Console's design system.

Have a look at the demo page!

Getting started

Prerequisites

This repository uses some external libraries defined as peer dependencies. You must install those libraries in you own project in order for @coveord/plasma-react to work properly. All peer dependencies are listed in the package.json file along with their respective version requirements.

Install

npm install @coveord/plasma-react

If you want to use @coveord/plasma-react in a TypeScript context, the package already includes its types.

Usage

In a .jsx context:

const React = require('react');
const createRoot = require('react-dom/client').createRoot;
const Badge = require('@coveord/plasma-react').Badge;

const root = createRoot(document.getElementById('SomewhereInYourApp'));
root.render(<Badge label="Hello Plasma!" />);

In a .tsx context:

import {createRoot} from 'react-dom/client';
import {Badge} from '@coveord/plasma-react';

const root = createRoot(document.getElementById('SomewhereInYourApp'));
root.render(<Badge label="Hello Plasma!" />);

Dropdowns

All components that implement a dropdown behaviour like the SingleSelect or the MultiSelect will render their content outside the normal DOM hierachy using react portals to avoid some overlapping issues.

The target of that portal is given by the Defaults.DROP_ROOT selector, but you can change this value to something else if you need.

Defaults.DROP_ROOT = '#plasma-dropdowns'; // default

If no DOM element match the specified selector an error will be thrown, so make sure this selector points to an element that always exists in the DOM. Preferably, that element should be outside the hierarchy of the whole app.

Example of a working DOM structure:

<html>
    <head>
        <!-- ... -->
    </head>
    <body className="coveo-styleguide">
        <div id="App"><!-- Your app renders here --></div>
        <div id="plasma-dropdowns"></div>
    </body>
</html>

Contributing

See our main page.

License

@coveord/plasma-react is distributed under Apache 2.0 license.

Package Sidebar

Install

npm i @coveord/plasma-react

Weekly Downloads

4,308

Version

53.1.3

License

Apache-2.0

Unpacked Size

8.56 MB

Total Files

4664

Last publish

Collaborators

  • coveoit
  • germainbergeron
  • npmcoveord