@geneui/components
Version:
The Gene UI components library designed for BI tools
283 lines (278 loc) • 17.2 kB
JavaScript
import React__default, { createContext, useRef, useState, useEffect } from 'react';
import PropTypes from 'prop-types';
import { s as styleInject } from '../style-inject.es-746bb8ed.js';
var name = "@geneui/components";
var description = "The Gene UI components library designed for BI tools";
var version = "2.16.5";
var author = "SoftConstruct";
var homepage = "https://github.com/softconstruct/gene-ui-components#readme";
var repository = {
type: "git",
url: "https://github.com/softconstruct/gene-ui-components"
};
var bugs = {
url: "https://github.com/softconstruct/gene-ui-components/issues"
};
var keywords = [
"react",
"gene-ui",
"design-system",
"component-library"
];
var main = "index.js";
var typings = "index.d.ts";
var scripts = {
start: "npm run test && storybook dev -p 6006",
dev: "concurrently --kill-others -g \"npm:test:watch\" \"npm:start\"",
test: "jest --silent --config ./configs/jest.config.js --rootDir ./ --coverage --json --outputFile=./coverage/.jest-test-results.json",
"test:watch": "npm run test -- --watchAll --json",
"test-report": "babel-node --config-file ./configs/.babelrc ./scripts/testReport.js",
build: "babel-node --config-file ./configs/.babelrc ./scripts/build.js",
"copy-build-statics-files": "babel-node --config-file ./configs/.babelrc ./scripts/copyFiles.js",
"bump-up-commit": "babel-node --config-file ./configs/.babelrc ./scripts/postPublish.js",
"build:watch": "watch 'npm run build' ./src",
commit: "cross-env DISABLE_SCOPE_LOWERCASE=true git-cz",
changelog: "conventional-changelog -i CHANGELOG.md -s",
"build-storybook": "npm run test && storybook build",
"semantic-release": "semantic-release --extends ./configs/.releaserc.json --no-ci",
"create-component": "babel-node --config-file ./configs/.babelrc ./scripts/createComponent.js",
"find-component-usage": "babel-node --config-file ./configs/.babelrc ./scripts/findComponentUsage.js",
"format-code": "prettier --config ./configs/.prettierrc --write . --ignore-path ./configs/.prettierignore",
"lint-styles": "stylelint **/*.{css,scss,sass} --config ./configs/.stylelintrc.json --fix",
"lint-scripts": "eslint --config ./configs/.eslintrc.json src --ignore-path ./configs/.eslintignore --fix",
"fix-code-style": "npm run format-code && npm run lint-styles && npm run lint-scripts",
"analyze-bundle-size": "babel-node --config-file ./configs/.babelrc ./scripts/analyzeBundleSize.js"
};
var peerDependencies = {
"prop-types": "^15.8.1",
react: "^16.8.1",
"react-dom": "^16.8.1"
};
var devDependencies = {
"@babel/cli": "^7.19.3",
"@babel/core": "^7.20.2",
"@babel/eslint-parser": "^7.19.1",
"@babel/node": "^7.20.2",
"@babel/plugin-proposal-class-properties": "^7.18.6",
"@babel/plugin-proposal-export-default-from": "^7.18.10",
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
"@babel/plugin-proposal-optional-chaining": "^7.18.9",
"@babel/plugin-syntax-jsx": "^7.18.6",
"@babel/preset-env": "^7.23.6",
"@babel/preset-react": "^7.23.3",
"@babel/preset-typescript": "^7.23.3",
"@commitlint/cli": "^17.1.2",
"@commitlint/config-conventional": "^17.1.0",
"@faker-js/faker": "^7.6.0",
"@rollup/plugin-alias": "^4.0.2",
"@rollup/plugin-babel": "^6.0.0",
"@rollup/plugin-commonjs": "^23.0.0",
"@rollup/plugin-image": "^3.0.1",
"@rollup/plugin-json": "^6.0.0",
"@rollup/plugin-node-resolve": "^15.0.0",
"@rollup/plugin-typescript": "^11.1.5",
"@semantic-release/changelog": "^6.0.2",
"@semantic-release/commit-analyzer": "^9.0.2",
"@semantic-release/git": "^10.0.1",
"@semantic-release/npm": "^9.0.1",
"@semantic-release/release-notes-generator": "^10.0.3",
"@storybook/addon-a11y": "^7.6.15",
"@storybook/addon-essentials": "^7.6.15",
"@storybook/addon-jest": "^7.6.15",
"@storybook/addon-viewport": "^7.6.15",
"@storybook/addons": "^7.6.15",
"@storybook/blocks": "^7.6.15",
"@storybook/preset-scss": "^1.0.3",
"@storybook/react": "^7.6.15",
"@storybook/react-docgen-typescript-plugin": "^1.0.6--canary.9.0c3f3b7.0",
"@storybook/react-webpack5": "^7.6.15",
"@storybook/theming": "^7.6.15",
"@types/enzyme-adapter-react-16": "^1.0.9",
"@types/jest": "^29.5.11",
autoprefixer: "^10.4.13",
"babel-jest": "^29.7.0",
"babel-loader": "^8.2.5",
chalk: "^4.1.2",
commitizen: "^4.2.5",
concurrently: "^8.2.2",
"conventional-changelog-cli": "^2.2.2",
"cross-env": "^7.0.3",
"css-loader": "^6.7.3",
"cz-conventional-changelog": "^3.3.0",
enzyme: "^3.11.0",
"enzyme-adapter-react-16": "^1.15.7",
"enzyme-to-json": "^3.6.2",
eslint: "^8.25.0",
"eslint-config-airbnb": "^19.0.4",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-jsx-a11y": "^6.6.1",
"eslint-plugin-react": "^7.31.11",
"eslint-plugin-react-hooks": "^4.6.0",
figlet: "^1.5.2",
"file-loader": "^6.2.0",
"git-cz": "^4.9.0",
husky: "^1.3.1",
"identity-obj-proxy": "^3.0.0",
"immutability-helper": "^3.0.1",
inquirer: "^8.2.4",
jest: "^29.7.0",
"jest-environment-jsdom": "^29.7.0",
"jest-fetch-mock": "^3.0.3",
"lint-staged": "^13.0.3",
"lucide-react": "^0.378.0",
"metro-react-native-babel-preset": "^0.51.1",
"open-cli": "^7.1.0",
ora: "^5.4.1",
postcss: "^8.4.31",
"postcss-prefix-selector": "^1.16.0",
"postcss-url": "^10.1.3",
prettier: "^2.7.1",
react: "^16.8.1",
"react-dom": "^16.8.1",
"react-test-renderer": "^16.12.0",
rollup: "^3.1.0",
"rollup-plugin-peer-deps-external": "^2.2.0",
"rollup-plugin-postcss": "^4.0.0",
"rollup-plugin-scss": "^4.0.0",
"rollup-plugin-svg": "^1.0.1",
"rollup-plugin-visualizer": "^5.8.3",
sass: "^1.55.0",
"sass-loader": "^13.2.0",
"semantic-release": "^19.0.5",
storybook: "^7.6.15",
"storybook-dark-mode": "^3.0.3",
"style-loader": "^3.3.1",
stylelint: "^14.14.0",
"stylelint-config-prettier": "^9.0.3",
"stylelint-config-standard-scss": "^5.0.0",
treeify: "^1.1.0",
"ts-jest": "^29.1.1",
typescript: "^5.3.2",
watch: "^1.0.2",
webpack: "^5.74.0",
"webpack-cli": "^4.10.0",
"webpack-dev-server": "^3.1.14",
"webpack-node-externals": "^1.7.2",
yargs: "^17.7.2"
};
var dependencies = {
"@floating-ui/react": "^0.26.16",
classnames: "^2.3.2",
dayjs: "^1.11.5",
"draft-js": "^0.11.7",
"draftjs-to-html": "^0.9.1",
"file-saver": "^2.0.5",
highcharts: "^10.2.1",
"highcharts-react-official": "^3.1.0",
"html-to-draftjs": "^1.5.0",
i: "^0.3.7",
immer: "^9.0.18",
"jodit-react": "^1.3.23",
"pure-react-carousel": "^1.30.1",
"qrcode.react": "^3.1.0",
"rc-slider": "^8.6.9",
"react-beautiful-dnd": "^13.1.1",
"react-colorful": "^5.6.1",
"react-custom-scrollbars": "^4.2.1",
"react-dnd": "^16.0.1",
"react-dnd-html5-backend": "^16.0.1",
"react-draft-wysiwyg": "^1.15.0",
"react-fast-compare": "^3.2.0",
"react-is": "^17.0.2",
"react-loading-skeleton": "^1.1.1",
"react-swipeable": "^7.0.0",
"react-tiny-popover": "^3.4.5",
"react-tiny-popover-latest": "npm:react-tiny-popover@^6.0.4",
"react-virtualized": "^9.21.1",
"resize-observer-polyfill": "^1.5.1",
xlsx: "^0.18.5"
};
var husky = {
hooks: {
"pre-commit": "lint-staged --config ./configs/.lintstagedrc.json",
"commit-msg": "commitlint --config ./configs/commitlint.config.js -E HUSKY_GIT_PARAMS"
}
};
var browserslist = [
">0.2%",
"not dead",
"not ie <= 11",
"not op_mini all"
];
var config = {
commitizen: {
path: "./node_modules/cz-conventional-changelog"
}
};
var license = "MIT";
var pgk = {
name: name,
description: description,
version: version,
author: author,
homepage: homepage,
repository: repository,
bugs: bugs,
keywords: keywords,
main: main,
typings: typings,
scripts: scripts,
peerDependencies: peerDependencies,
devDependencies: devDependencies,
dependencies: dependencies,
husky: husky,
browserslist: browserslist,
config: config,
license: license
};
var css_248z = "@import \"https://fonts.googleapis.com/css?family=Open+Sans:400,600,700&display=swap\";:root{--font-family:\"Open Sans\",\"Arial\",\"Helvetica Neue\",sans-serif;--hero:#1473e6;--confirm:#2bc784;--warning:#e6af57;--danger:#e64e48;--note:#fdc625;--message:#8bd779;--background:#fff;--foreground:#3d3d5f;--hero-hover:#1267cf;--hero-sc:#fff;--hero-rgb:20,115,230;--hero-sc-rgb:255,255,255;--confirm-hover:#26b276;--confirm-sc:#fff;--confirm-rgb:43,199,132;--confirm-sc-rgb:255,255,255;--warning-hover:#e3a441;--warning-sc:#fff;--warning-rgb:230,175,87;--warning-sc-rgb:255,255,255;--danger-hover:#e33832;--danger-sc:#fff;--danger-rgb:230,78,72;--danger-sc-rgb:255,255,255;--note-hover:#fdbf0c;--note-sc:#000;--note-rgb:253,198,37;--note-sc-rgb:0,0,0;--message-hover:#7ad165;--message-sc:#000;--message-rgb:139,215,121;--message-sc-rgb:0,0,0;--background-hover:#f2f2f2;--background-sc:#000;--background-rgb:255,255,255;--background-sc-rgb:0,0,0;--foreground-hover:#33334f;--foreground-sc:#fff;--foreground-rgb:61,61,95;--foreground-sc-rgb:255,255,255}.invert-colors{--background:var(--foreground);--background-hover:var(--foreground-hover);--background-sc:var(--foreground-sc);--background-rgb:var(--foreground-rgb);--background-sc-rgb:var(--foreground-sc-rgb)}*{-webkit-font-smoothing:subpixel-antialiased;-webkit-tap-highlight-color:transparent;background:none;border:0;border-radius:0;margin:0;outline:0;padding:0;vertical-align:top}*,:after,:before{box-sizing:border-box}@media screen and (min-width:1024px){:not(main)::-webkit-scrollbar{height:var(--scrollbar-size,16px);width:var(--scrollbar-size,16px)}:not(main)::-webkit-scrollbar-button,:not(main)::-webkit-scrollbar-corner{display:none}:not(main)::-webkit-scrollbar-thumb{background:rgba(var(--background-sc-rgb),.05) content-box;border:var(--scrollbar-space,4px) solid #0000;border-radius:var(--scrollbar-size,16px)}:not(main)::-webkit-scrollbar-thumb:active,:not(main)::-webkit-scrollbar-thumb:hover{background-color:rgba(var(--background-sc-rgb),.1)}:not(main)::-webkit-scrollbar-track{background:#0000}}a{color:inherit;text-decoration:none;transition:color .3s,background .3s}table{border-collapse:collapse;border-spacing:0;width:100%}img,svg{display:block;max-width:100%}button,input,optgroup,select,textarea{-webkit-appearance:none;appearance:none;color:inherit;display:block;font:inherit}button::input-placeholder,input::input-placeholder,optgroup::input-placeholder,select::input-placeholder,textarea::input-placeholder{font-family:inherit;opacity:1}button:placeholder,input:placeholder,optgroup:placeholder,select:placeholder,textarea:placeholder{font-family:inherit;opacity:1}button::placeholder,input::placeholder,optgroup::placeholder,select::placeholder,textarea::placeholder{font-family:inherit;opacity:1}button:input-placeholder,input:input-placeholder,optgroup:input-placeholder,select:input-placeholder,textarea:input-placeholder{font-family:inherit;opacity:1}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;background:var(--page-background,#f0f2f5);color:rgba(var(--background-sc-rgb),.75);font:10px/1.15 var(--font-family);height:100%;max-width:100vw}html.view-small{font-size:8.12px}html.view-normal{font-size:9.12px}html #root,html body{width:100%}body{font-size:1.4rem}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:normal}h1{font-size:3.2rem}h1.large{font-size:3.8rem}h2{font-size:2.8rem}h3{font-size:1.8rem}h4{font-size:1.6rem}h5{font-size:1.4rem}h6{font-size:1.2rem}li{display:block}.ellipsis-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.capitalize-text{text-transform:capitalize}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}input::-ms-clear{display:none}.pointer-events-none{pointer-events:none}.cursor-pointer,[data-react-beautiful-dnd-drag-handle=\"0\"]{cursor:pointer}.color-danger{color:var(--danger)!important}.color-confirm{color:var(--confirm)!important}.color-hero{color:var(--hero)!important}::selection{background:rgba(var(--hero-rgb),.15);color:var(--hero)}.vertical-resizing-cursor *{cursor:col-resize!important}.vertical-resizing-cursor :not(:active){pointer-events:none}.cursor-grab{cursor:grab}.cursor-grab:active{cursor:grabbing}.m-rl-2{margin:0 .2rem}.m-tb-2{margin:.2rem 0}.m-t-2{margin-top:.2rem}.m-r-2{margin-inline-end:.2rem}.m-l-2{margin-inline-start:.2rem}.m-b-2{margin-bottom:.2rem}.m-rl-4{margin:0 .4rem}.m-tb-4{margin:.4rem 0}.m-t-4{margin-top:.4rem}.m-r-4{margin-inline-end:.4rem}.m-l-4{margin-inline-start:.4rem}.m-b-4{margin-bottom:.4rem}.m-rl-6{margin:0 .6rem}.m-tb-6{margin:.6rem 0}.m-t-6{margin-top:.6rem}.m-r-6{margin-inline-end:.6rem}.m-l-6{margin-inline-start:.6rem}.m-b-6{margin-bottom:.6rem}.m-rl-8{margin:0 .8rem}.m-tb-8{margin:.8rem 0}.m-t-8{margin-top:.8rem}.m-r-8{margin-inline-end:.8rem}.m-l-8{margin-inline-start:.8rem}.m-b-8{margin-bottom:.8rem}.m-rl-10{margin:0 1rem}.m-tb-10{margin:1rem 0}.m-t-10{margin-top:1rem}.m-r-10{margin-inline-end:1rem}.m-l-10{margin-inline-start:1rem}.m-b-10{margin-bottom:1rem}.m-rl-12{margin:0 1.2rem}.m-tb-12{margin:1.2rem 0}.m-t-12{margin-top:1.2rem}.m-r-12{margin-inline-end:1.2rem}.m-l-12{margin-inline-start:1.2rem}.m-b-12{margin-bottom:1.2rem}.m-rl-14{margin:0 1.4rem}.m-tb-14{margin:1.4rem 0}.m-t-14{margin-top:1.4rem}.m-r-14{margin-inline-end:1.4rem}.m-l-14{margin-inline-start:1.4rem}.m-b-14{margin-bottom:1.4rem}.m-rl-16{margin:0 1.6rem}.m-tb-16{margin:1.6rem 0}.m-t-16{margin-top:1.6rem}.m-r-16{margin-inline-end:1.6rem}.m-l-16{margin-inline-start:1.6rem}.m-b-16{margin-bottom:1.6rem}.m-rl-18{margin:0 1.8rem}.m-tb-18{margin:1.8rem 0}.m-t-18{margin-top:1.8rem}.m-r-18{margin-inline-end:1.8rem}.m-l-18{margin-inline-start:1.8rem}.m-b-18{margin-bottom:1.8rem}.m-rl-20{margin:0 2rem}.m-tb-20{margin:2rem 0}.m-t-20{margin-top:2rem}.m-r-20{margin-inline-end:2rem}.m-l-20{margin-inline-start:2rem}.m-b-20{margin-bottom:2rem}.m-rl-22{margin:0 2.2rem}.m-tb-22{margin:2.2rem 0}.m-t-22{margin-top:2.2rem}.m-r-22{margin-inline-end:2.2rem}.m-l-22{margin-inline-start:2.2rem}.m-b-22{margin-bottom:2.2rem}.m-rl-24{margin:0 2.4rem}.m-tb-24{margin:2.4rem 0}.m-t-24{margin-top:2.4rem}.m-r-24{margin-inline-end:2.4rem}.m-l-24{margin-inline-start:2.4rem}.m-b-24{margin-bottom:2.4rem}.m-rl-26{margin:0 2.6rem}.m-tb-26{margin:2.6rem 0}.m-t-26{margin-top:2.6rem}.m-r-26{margin-inline-end:2.6rem}.m-l-26{margin-inline-start:2.6rem}.m-b-26{margin-bottom:2.6rem}.m-rl-28{margin:0 2.8rem}.m-tb-28{margin:2.8rem 0}.m-t-28{margin-top:2.8rem}.m-r-28{margin-inline-end:2.8rem}.m-l-28{margin-inline-start:2.8rem}.m-b-28{margin-bottom:2.8rem}.m-rl-30{margin:0 3rem}.m-tb-30{margin:3rem 0}.m-t-30{margin-top:3rem}.m-r-30{margin-inline-end:3rem}.m-l-30{margin-inline-start:3rem}.m-b-30{margin-bottom:3rem}.m-rl-32{margin:0 3.2rem}.m-tb-32{margin:3.2rem 0}.m-t-32{margin-top:3.2rem}.m-r-32{margin-inline-end:3.2rem}.m-l-32{margin-inline-start:3.2rem}.m-b-32{margin-bottom:3.2rem}.m-rl-34{margin:0 3.4rem}.m-tb-34{margin:3.4rem 0}.m-t-34{margin-top:3.4rem}.m-r-34{margin-inline-end:3.4rem}.m-l-34{margin-inline-start:3.4rem}.m-b-34{margin-bottom:3.4rem}.m-rl-36{margin:0 3.6rem}.m-tb-36{margin:3.6rem 0}.m-t-36{margin-top:3.6rem}.m-r-36{margin-inline-end:3.6rem}.m-l-36{margin-inline-start:3.6rem}.m-b-36{margin-bottom:3.6rem}.m-rl-38{margin:0 3.8rem}.m-tb-38{margin:3.8rem 0}.m-t-38{margin-top:3.8rem}.m-r-38{margin-inline-end:3.8rem}.m-l-38{margin-inline-start:3.8rem}.m-b-38{margin-bottom:3.8rem}.m-rl-40{margin:0 4rem}.m-tb-40{margin:4rem 0}.m-t-40{margin-top:4rem}.m-r-40{margin-inline-end:4rem}.m-l-40{margin-inline-start:4rem}.m-b-40{margin-bottom:4rem}.m-rl-42{margin:0 4.2rem}.m-tb-42{margin:4.2rem 0}.m-t-42{margin-top:4.2rem}.m-r-42{margin-inline-end:4.2rem}.m-l-42{margin-inline-start:4.2rem}.m-b-42{margin-bottom:4.2rem}.m-rl-44{margin:0 4.4rem}.m-tb-44{margin:4.4rem 0}.m-t-44{margin-top:4.4rem}.m-r-44{margin-inline-end:4.4rem}.m-l-44{margin-inline-start:4.4rem}.m-b-44{margin-bottom:4.4rem}.m-rl-46{margin:0 4.6rem}.m-tb-46{margin:4.6rem 0}.m-t-46{margin-top:4.6rem}.m-r-46{margin-inline-end:4.6rem}.m-l-46{margin-inline-start:4.6rem}.m-b-46{margin-bottom:4.6rem}";
styleInject(css_248z);
const GeneUIDesignSystemContext = /*#__PURE__*/createContext();
function GeneUIProvider(_ref) {
let {
children,
tokens,
theme
} = _ref;
const geneUIProviderRef = useRef(null);
const [isRefExist, setIsRefExist] = useState(false);
const contextValue = {
theme,
tokens,
geneUIProviderRef
};
useEffect(() => {
geneUIProviderRef.current && !isRefExist && setIsRefExist(true);
}, [geneUIProviderRef.current]);
return /*#__PURE__*/React__default.createElement(GeneUIDesignSystemContext.Provider, {
value: contextValue
}, /*#__PURE__*/React__default.createElement("div", {
"data-gene-ui-version": pgk.version,
ref: geneUIProviderRef,
style: {
height: '100%'
}
}, isRefExist && children));
}
GeneUIProvider.propTypes = {
/**
* Any valid React node
*/
children: PropTypes.node,
/**
* Tokens library object defined by style-dictionary standard,
* and GeneUI tokens package rules
*/
tokens: PropTypes.object,
/**
* Theme which will follow all nested GeneUI components
*/
theme: PropTypes.oneOf(['light', 'dark'])
};
GeneUIProvider.defaultProps = {
tokens: {},
theme: 'light'
};
GeneUIProvider.displayName = 'GeneUIProvider';
export { GeneUIDesignSystemContext, GeneUIProvider as default };