UNPKG

@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.

47 lines (44 loc) 1.28 kB
"use client"; import * as React from "react"; import { ThemeProvider as StyledThemeProvider } from "styled-components"; import { tokensToCssVars } from "@kiwicom/orbit-design-tokens"; import QueryContextProvider from "./QueryContext/Provider"; import RandomIdProvider from "./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(RandomIdProvider, { useId: useId }, /*#__PURE__*/React.createElement("style", { id: "orbit-theme-css-vars" }, tokensToCssVars({ tokens: getCssVarsForWL(theme.orbit), cssClass: ":root" })), /*#__PURE__*/React.createElement(StyledThemeProvider, { theme: theme }, /*#__PURE__*/React.createElement(QueryContextProvider, null, children))); }; export default OrbitProvider;