UNPKG

@geneui/components

Version:

The Gene UI components library designed for BI tools

283 lines (278 loc) 17.2 kB
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 };