Package Exports
- @coveord/plasma-react
Readme
Plasma React
Coveo Administration Console's design system.
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-reactIf 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'; // defaultIf 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.