@kiwicom/orbit-components
Version:
Orbit-components is a React component library which provides developers with the easiest possible way of building Kiwi.com’s products.
53 lines (50 loc) • 1.64 kB
JavaScript
;
"use client";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
exports.__esModule = true;
exports.default = void 0;
var React = _interopRequireWildcard(require("react"));
var _styledComponents = require("styled-components");
var _orbitDesignTokens = require("@kiwicom/orbit-design-tokens");
var _Provider = _interopRequireDefault(require("./QueryContext/Provider"));
var _Provider2 = _interopRequireDefault(require("./RandomId/Provider"));
// we need only palette tokens for whitelables
const getCssVarsForWL = theme => Object.keys(theme).reduce((acc, key) => {
if (key.startsWith("palette")) {
acc[key] = theme[key];
}
return acc;
}, {});
/**
*
* Use OrbitProvider with useId prop as follows to still use `react-uid`:
* ```jsx
<UIDReset>
<UIDFork>
<OrbitProvider theme={theme} useId={useUID}>
{children}
</OrbitProvider>
</UIDFork>
</UIDReset>
* ```
*
*/
const OrbitProvider = ({
theme,
children,
useId
}) => {
return /*#__PURE__*/React.createElement(_Provider2.default, {
useId: useId
}, /*#__PURE__*/React.createElement("style", {
id: "orbit-theme-css-vars"
}, (0, _orbitDesignTokens.tokensToCssVars)({
tokens: getCssVarsForWL(theme.orbit),
cssClass: ":root"
})), /*#__PURE__*/React.createElement(_styledComponents.ThemeProvider, {
theme: theme
}, /*#__PURE__*/React.createElement(_Provider.default, null, children)));
};
var _default = OrbitProvider;
exports.default = _default;