@vitus-labs/core 0.76.0 → 0.77.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6618,7 +6618,7 @@ var drawChart = (function (exports) {
6618
6618
  </script>
6619
6619
  <script>
6620
6620
  /*<!--*/
6621
- const data = {"version":2,"tree":{"name":"root","children":[{"name":"vitus-labs-core.js","children":[{"name":"src","children":[{"uid":"a6e4-1","name":"config.ts"},{"uid":"a6e4-3","name":"isEmpty.ts"},{"uid":"a6e4-5","name":"context.tsx"},{"uid":"a6e4-7","name":"compose.ts"},{"uid":"a6e4-9","name":"render.ts"},{"name":"html/htmlTags.ts","uid":"a6e4-11"},{"uid":"a6e4-13","name":"index.ts"}]}]}],"isRoot":true},"nodeParts":{"a6e4-1":{"renderedLength":708,"gzipLength":248,"brotliLength":0,"metaUid":"a6e4-0"},"a6e4-3":{"renderedLength":349,"gzipLength":177,"brotliLength":0,"metaUid":"a6e4-2"},"a6e4-5":{"renderedLength":785,"gzipLength":330,"brotliLength":0,"metaUid":"a6e4-4"},"a6e4-7":{"renderedLength":207,"gzipLength":153,"brotliLength":0,"metaUid":"a6e4-6"},"a6e4-9":{"renderedLength":837,"gzipLength":301,"brotliLength":0,"metaUid":"a6e4-8"},"a6e4-11":{"renderedLength":1715,"gzipLength":502,"brotliLength":0,"metaUid":"a6e4-10"},"a6e4-13":{"renderedLength":0,"gzipLength":0,"brotliLength":0,"metaUid":"a6e4-12"}},"nodeMetas":{"a6e4-0":{"id":"/src/config.ts","moduleParts":{"vitus-labs-core.js":"a6e4-1"},"imported":[{"uid":"a6e4-17"}],"importedBy":[{"uid":"a6e4-12"},{"uid":"a6e4-4"}]},"a6e4-2":{"id":"/src/isEmpty.ts","moduleParts":{"vitus-labs-core.js":"a6e4-3"},"imported":[],"importedBy":[{"uid":"a6e4-12"},{"uid":"a6e4-4"},{"uid":"a6e4-8"}]},"a6e4-4":{"id":"/src/context.tsx","moduleParts":{"vitus-labs-core.js":"a6e4-5"},"imported":[{"uid":"a6e4-18"},{"uid":"a6e4-0"},{"uid":"a6e4-2"}],"importedBy":[{"uid":"a6e4-12"}]},"a6e4-6":{"id":"/src/compose.ts","moduleParts":{"vitus-labs-core.js":"a6e4-7"},"imported":[],"importedBy":[{"uid":"a6e4-12"}]},"a6e4-8":{"id":"/src/render.ts","moduleParts":{"vitus-labs-core.js":"a6e4-9"},"imported":[{"uid":"a6e4-19"},{"uid":"a6e4-18"},{"uid":"a6e4-2"}],"importedBy":[{"uid":"a6e4-12"}]},"a6e4-10":{"id":"/src/html/htmlTags.ts","moduleParts":{"vitus-labs-core.js":"a6e4-11"},"imported":[],"importedBy":[{"uid":"a6e4-16"}]},"a6e4-12":{"id":"/src/index.ts","moduleParts":{"vitus-labs-core.js":"a6e4-13"},"imported":[{"uid":"a6e4-14"},{"uid":"a6e4-15"},{"uid":"a6e4-0"},{"uid":"a6e4-4"},{"uid":"a6e4-6"},{"uid":"a6e4-2"},{"uid":"a6e4-8"},{"uid":"a6e4-16"}],"importedBy":[],"isEntry":true},"a6e4-14":{"id":"lodash","moduleParts":{},"imported":[],"importedBy":[{"uid":"a6e4-12"}],"isExternal":true},"a6e4-15":{"id":"moize","moduleParts":{},"imported":[],"importedBy":[{"uid":"a6e4-12"}],"isExternal":true},"a6e4-16":{"id":"/src/html/index.ts","moduleParts":{},"imported":[{"uid":"a6e4-10"}],"importedBy":[{"uid":"a6e4-12"}]},"a6e4-17":{"id":"styled-components","moduleParts":{},"imported":[],"importedBy":[{"uid":"a6e4-0"}],"isExternal":true},"a6e4-18":{"id":"react","moduleParts":{},"imported":[],"importedBy":[{"uid":"a6e4-4"},{"uid":"a6e4-8"}],"isExternal":true},"a6e4-19":{"id":"react-is","moduleParts":{},"imported":[],"importedBy":[{"uid":"a6e4-8"}],"isExternal":true}},"env":{"rollup":"3.10.0"},"options":{"gzip":true,"brotli":false,"sourcemap":false}};
6621
+ const data = {"version":2,"tree":{"name":"root","children":[{"name":"vitus-labs-core.js","children":[{"name":"src","children":[{"uid":"5e47-1","name":"config.ts"},{"uid":"5e47-3","name":"isEmpty.ts"},{"uid":"5e47-5","name":"context.tsx"},{"uid":"5e47-7","name":"compose.ts"},{"uid":"5e47-9","name":"render.ts"},{"name":"html/htmlTags.ts","uid":"5e47-11"},{"uid":"5e47-13","name":"index.ts"}]}]}],"isRoot":true},"nodeParts":{"5e47-1":{"renderedLength":708,"gzipLength":248,"brotliLength":0,"metaUid":"5e47-0"},"5e47-3":{"renderedLength":349,"gzipLength":177,"brotliLength":0,"metaUid":"5e47-2"},"5e47-5":{"renderedLength":840,"gzipLength":346,"brotliLength":0,"metaUid":"5e47-4"},"5e47-7":{"renderedLength":207,"gzipLength":153,"brotliLength":0,"metaUid":"5e47-6"},"5e47-9":{"renderedLength":837,"gzipLength":301,"brotliLength":0,"metaUid":"5e47-8"},"5e47-11":{"renderedLength":1715,"gzipLength":502,"brotliLength":0,"metaUid":"5e47-10"},"5e47-13":{"renderedLength":0,"gzipLength":0,"brotliLength":0,"metaUid":"5e47-12"}},"nodeMetas":{"5e47-0":{"id":"/src/config.ts","moduleParts":{"vitus-labs-core.js":"5e47-1"},"imported":[{"uid":"5e47-17"}],"importedBy":[{"uid":"5e47-12"},{"uid":"5e47-4"}]},"5e47-2":{"id":"/src/isEmpty.ts","moduleParts":{"vitus-labs-core.js":"5e47-3"},"imported":[],"importedBy":[{"uid":"5e47-12"},{"uid":"5e47-4"},{"uid":"5e47-8"}]},"5e47-4":{"id":"/src/context.tsx","moduleParts":{"vitus-labs-core.js":"5e47-5"},"imported":[{"uid":"5e47-18"},{"uid":"5e47-0"},{"uid":"5e47-2"}],"importedBy":[{"uid":"5e47-12"}]},"5e47-6":{"id":"/src/compose.ts","moduleParts":{"vitus-labs-core.js":"5e47-7"},"imported":[],"importedBy":[{"uid":"5e47-12"}]},"5e47-8":{"id":"/src/render.ts","moduleParts":{"vitus-labs-core.js":"5e47-9"},"imported":[{"uid":"5e47-19"},{"uid":"5e47-18"},{"uid":"5e47-2"}],"importedBy":[{"uid":"5e47-12"}]},"5e47-10":{"id":"/src/html/htmlTags.ts","moduleParts":{"vitus-labs-core.js":"5e47-11"},"imported":[],"importedBy":[{"uid":"5e47-16"}]},"5e47-12":{"id":"/src/index.ts","moduleParts":{"vitus-labs-core.js":"5e47-13"},"imported":[{"uid":"5e47-14"},{"uid":"5e47-15"},{"uid":"5e47-0"},{"uid":"5e47-4"},{"uid":"5e47-6"},{"uid":"5e47-2"},{"uid":"5e47-8"},{"uid":"5e47-16"}],"importedBy":[],"isEntry":true},"5e47-14":{"id":"lodash","moduleParts":{},"imported":[],"importedBy":[{"uid":"5e47-12"}],"isExternal":true},"5e47-15":{"id":"moize","moduleParts":{},"imported":[],"importedBy":[{"uid":"5e47-12"}],"isExternal":true},"5e47-16":{"id":"/src/html/index.ts","moduleParts":{},"imported":[{"uid":"5e47-10"}],"importedBy":[{"uid":"5e47-12"}]},"5e47-17":{"id":"styled-components","moduleParts":{},"imported":[],"importedBy":[{"uid":"5e47-0"}],"isExternal":true},"5e47-18":{"id":"react","moduleParts":{},"imported":[],"importedBy":[{"uid":"5e47-4"},{"uid":"5e47-8"}],"isExternal":true},"5e47-19":{"id":"react-is","moduleParts":{},"imported":[],"importedBy":[{"uid":"5e47-8"}],"isExternal":true}},"env":{"rollup":"3.10.0"},"options":{"gzip":true,"brotli":false,"sourcemap":false}};
6622
6622
 
6623
6623
  const run = () => {
6624
6624
  const width = window.innerWidth;
@@ -6618,7 +6618,7 @@ var drawChart = (function (exports) {
6618
6618
  </script>
6619
6619
  <script>
6620
6620
  /*<!--*/
6621
- const data = {"version":2,"tree":{"name":"root","children":[{"name":"vitus-labs-core.module.js","children":[{"name":"src","children":[{"uid":"a6e4-41","name":"config.ts"},{"uid":"a6e4-43","name":"isEmpty.ts"},{"uid":"a6e4-45","name":"context.tsx"},{"uid":"a6e4-47","name":"compose.ts"},{"uid":"a6e4-49","name":"render.ts"},{"name":"html/htmlTags.ts","uid":"a6e4-51"},{"uid":"a6e4-53","name":"index.ts"}]}]}],"isRoot":true},"nodeParts":{"a6e4-41":{"renderedLength":674,"gzipLength":232,"brotliLength":0,"metaUid":"a6e4-40"},"a6e4-43":{"renderedLength":349,"gzipLength":177,"brotliLength":0,"metaUid":"a6e4-42"},"a6e4-45":{"renderedLength":673,"gzipLength":312,"brotliLength":0,"metaUid":"a6e4-44"},"a6e4-47":{"renderedLength":207,"gzipLength":153,"brotliLength":0,"metaUid":"a6e4-46"},"a6e4-49":{"renderedLength":797,"gzipLength":284,"brotliLength":0,"metaUid":"a6e4-48"},"a6e4-51":{"renderedLength":1715,"gzipLength":502,"brotliLength":0,"metaUid":"a6e4-50"},"a6e4-53":{"renderedLength":0,"gzipLength":0,"brotliLength":0,"metaUid":"a6e4-52"}},"nodeMetas":{"a6e4-40":{"id":"/src/config.ts","moduleParts":{"vitus-labs-core.module.js":"a6e4-41"},"imported":[{"uid":"a6e4-57"}],"importedBy":[{"uid":"a6e4-52"},{"uid":"a6e4-44"}]},"a6e4-42":{"id":"/src/isEmpty.ts","moduleParts":{"vitus-labs-core.module.js":"a6e4-43"},"imported":[],"importedBy":[{"uid":"a6e4-52"},{"uid":"a6e4-44"},{"uid":"a6e4-48"}]},"a6e4-44":{"id":"/src/context.tsx","moduleParts":{"vitus-labs-core.module.js":"a6e4-45"},"imported":[{"uid":"a6e4-58"},{"uid":"a6e4-40"},{"uid":"a6e4-42"}],"importedBy":[{"uid":"a6e4-52"}]},"a6e4-46":{"id":"/src/compose.ts","moduleParts":{"vitus-labs-core.module.js":"a6e4-47"},"imported":[],"importedBy":[{"uid":"a6e4-52"}]},"a6e4-48":{"id":"/src/render.ts","moduleParts":{"vitus-labs-core.module.js":"a6e4-49"},"imported":[{"uid":"a6e4-59"},{"uid":"a6e4-58"},{"uid":"a6e4-42"}],"importedBy":[{"uid":"a6e4-52"}]},"a6e4-50":{"id":"/src/html/htmlTags.ts","moduleParts":{"vitus-labs-core.module.js":"a6e4-51"},"imported":[],"importedBy":[{"uid":"a6e4-56"}]},"a6e4-52":{"id":"/src/index.ts","moduleParts":{"vitus-labs-core.module.js":"a6e4-53"},"imported":[{"uid":"a6e4-54"},{"uid":"a6e4-55"},{"uid":"a6e4-40"},{"uid":"a6e4-44"},{"uid":"a6e4-46"},{"uid":"a6e4-42"},{"uid":"a6e4-48"},{"uid":"a6e4-56"}],"importedBy":[],"isEntry":true},"a6e4-54":{"id":"lodash","moduleParts":{},"imported":[],"importedBy":[{"uid":"a6e4-52"}],"isExternal":true},"a6e4-55":{"id":"moize","moduleParts":{},"imported":[],"importedBy":[{"uid":"a6e4-52"}],"isExternal":true},"a6e4-56":{"id":"/src/html/index.ts","moduleParts":{},"imported":[{"uid":"a6e4-50"}],"importedBy":[{"uid":"a6e4-52"}]},"a6e4-57":{"id":"styled-components","moduleParts":{},"imported":[],"importedBy":[{"uid":"a6e4-40"}],"isExternal":true},"a6e4-58":{"id":"react","moduleParts":{},"imported":[],"importedBy":[{"uid":"a6e4-44"},{"uid":"a6e4-48"}],"isExternal":true},"a6e4-59":{"id":"react-is","moduleParts":{},"imported":[],"importedBy":[{"uid":"a6e4-48"}],"isExternal":true}},"env":{"rollup":"3.10.0"},"options":{"gzip":true,"brotli":false,"sourcemap":false}};
6621
+ const data = {"version":2,"tree":{"name":"root","children":[{"name":"vitus-labs-core.module.js","children":[{"name":"src","children":[{"uid":"5e47-21","name":"config.ts"},{"uid":"5e47-23","name":"isEmpty.ts"},{"uid":"5e47-25","name":"context.tsx"},{"uid":"5e47-27","name":"compose.ts"},{"uid":"5e47-29","name":"render.ts"},{"name":"html/htmlTags.ts","uid":"5e47-31"},{"uid":"5e47-33","name":"index.ts"}]}]}],"isRoot":true},"nodeParts":{"5e47-21":{"renderedLength":674,"gzipLength":232,"brotliLength":0,"metaUid":"5e47-20"},"5e47-23":{"renderedLength":349,"gzipLength":177,"brotliLength":0,"metaUid":"5e47-22"},"5e47-25":{"renderedLength":722,"gzipLength":327,"brotliLength":0,"metaUid":"5e47-24"},"5e47-27":{"renderedLength":207,"gzipLength":153,"brotliLength":0,"metaUid":"5e47-26"},"5e47-29":{"renderedLength":797,"gzipLength":284,"brotliLength":0,"metaUid":"5e47-28"},"5e47-31":{"renderedLength":1715,"gzipLength":502,"brotliLength":0,"metaUid":"5e47-30"},"5e47-33":{"renderedLength":0,"gzipLength":0,"brotliLength":0,"metaUid":"5e47-32"}},"nodeMetas":{"5e47-20":{"id":"/src/config.ts","moduleParts":{"vitus-labs-core.module.js":"5e47-21"},"imported":[{"uid":"5e47-37"}],"importedBy":[{"uid":"5e47-32"},{"uid":"5e47-24"}]},"5e47-22":{"id":"/src/isEmpty.ts","moduleParts":{"vitus-labs-core.module.js":"5e47-23"},"imported":[],"importedBy":[{"uid":"5e47-32"},{"uid":"5e47-24"},{"uid":"5e47-28"}]},"5e47-24":{"id":"/src/context.tsx","moduleParts":{"vitus-labs-core.module.js":"5e47-25"},"imported":[{"uid":"5e47-38"},{"uid":"5e47-20"},{"uid":"5e47-22"}],"importedBy":[{"uid":"5e47-32"}]},"5e47-26":{"id":"/src/compose.ts","moduleParts":{"vitus-labs-core.module.js":"5e47-27"},"imported":[],"importedBy":[{"uid":"5e47-32"}]},"5e47-28":{"id":"/src/render.ts","moduleParts":{"vitus-labs-core.module.js":"5e47-29"},"imported":[{"uid":"5e47-39"},{"uid":"5e47-38"},{"uid":"5e47-22"}],"importedBy":[{"uid":"5e47-32"}]},"5e47-30":{"id":"/src/html/htmlTags.ts","moduleParts":{"vitus-labs-core.module.js":"5e47-31"},"imported":[],"importedBy":[{"uid":"5e47-36"}]},"5e47-32":{"id":"/src/index.ts","moduleParts":{"vitus-labs-core.module.js":"5e47-33"},"imported":[{"uid":"5e47-34"},{"uid":"5e47-35"},{"uid":"5e47-20"},{"uid":"5e47-24"},{"uid":"5e47-26"},{"uid":"5e47-22"},{"uid":"5e47-28"},{"uid":"5e47-36"}],"importedBy":[],"isEntry":true},"5e47-34":{"id":"lodash","moduleParts":{},"imported":[],"importedBy":[{"uid":"5e47-32"}],"isExternal":true},"5e47-35":{"id":"moize","moduleParts":{},"imported":[],"importedBy":[{"uid":"5e47-32"}],"isExternal":true},"5e47-36":{"id":"/src/html/index.ts","moduleParts":{},"imported":[{"uid":"5e47-30"}],"importedBy":[{"uid":"5e47-32"}]},"5e47-37":{"id":"styled-components","moduleParts":{},"imported":[],"importedBy":[{"uid":"5e47-20"}],"isExternal":true},"5e47-38":{"id":"react","moduleParts":{},"imported":[],"importedBy":[{"uid":"5e47-24"},{"uid":"5e47-28"}],"isExternal":true},"5e47-39":{"id":"react-is","moduleParts":{},"imported":[],"importedBy":[{"uid":"5e47-28"}],"isExternal":true}},"env":{"rollup":"3.10.0"},"options":{"gzip":true,"brotli":false,"sourcemap":false}};
6622
6622
 
6623
6623
  const run = () => {
6624
6624
  const width = window.innerWidth;
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAiB,EAAE,EAAW,SAAS,EAAE,MAAM,OAAO,CAAA;AAGpE,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAe;AAE1C,QAAA,MAAM,OAAO,oBAAyB,CAAA;AAGtC,KAAK,KAAK,GAAG,OAAO,CAClB;IACE,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,WAAW,CAAA;CACzB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACxB,CAAA;AAED,KAAK,YAAY,GAAG,OAAO,CACzB;IACE,KAAK,EAAE,KAAK,CAAA;IACZ,QAAQ,EAAE,SAAS,CAAA;CACpB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACxB,CAAA;AAED,QAAA,MAAM,QAAQ,EAAE,EAAE,CAAC,YAAY,CAmB9B,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,CAAA;AAElB,eAAe,QAAQ,CAAA"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAiB,EAAE,EAAW,SAAS,EAAE,MAAM,OAAO,CAAA;AAGpE,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAe;AAE1C,QAAA,MAAM,OAAO,oBAAyB,CAAA;AAGtC,KAAK,KAAK,GAAG,OAAO,CAClB;IACE,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,WAAW,CAAA;CACzB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACxB,CAAA;AAED,KAAK,YAAY,GAAG,OAAO,CACzB;IACE,KAAK,EAAE,KAAK,CAAA;IACZ,QAAQ,EAAE,SAAS,CAAA;CACpB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACxB,CAAA;AAED,QAAA,MAAM,QAAQ,EAAE,EAAE,CAAC,YAAY,CAgB9B,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,CAAA;AAElB,eAAe,QAAQ,CAAA"}
@@ -60,14 +60,15 @@ const context = React.createContext({});
60
60
  const VitusLabsProvider = context.Provider;
61
61
  const Provider = ({ theme, children, ...props }) => {
62
62
  const ExternalProvider = React.useMemo(() => config.provider, []);
63
+ const context = React.useMemo(() => ({ theme, ...props }), [theme, props]);
63
64
  // eslint-disable-next-line react/jsx-no-useless-fragment
64
65
  if (!theme || isEmpty(theme))
65
66
  return React__default["default"].createElement(React__default["default"].Fragment, null, children);
66
67
  if (ExternalProvider) {
67
- return (React__default["default"].createElement(VitusLabsProvider, { value: { theme, ...props } },
68
+ return (React__default["default"].createElement(VitusLabsProvider, { value: context },
68
69
  React__default["default"].createElement(ExternalProvider, { theme: theme }, children)));
69
70
  }
70
- return (React__default["default"].createElement(VitusLabsProvider, { value: { theme, ...props } }, children));
71
+ return React__default["default"].createElement(VitusLabsProvider, { value: context }, children);
71
72
  };
72
73
 
73
74
  // const compose = <R>(fn1: (a: R) => R, ...fns: Array<(a: R) => R>) =>
@@ -1 +1 @@
1
- {"version":3,"file":"vitus-labs-core.js","sources":["../src/config.ts","../src/isEmpty.ts","../src/context.tsx","../src/compose.ts","../src/render.ts","../src/html/htmlTags.ts"],"sourcesContent":["import { ComponentType } from 'react'\nimport type { HTMLTags } from '~/html'\nimport styled, {\n css,\n ThemeProvider,\n ThemedCssFunction,\n StyledInterface,\n DefaultTheme,\n ThemeProviderComponent,\n} from 'styled-components'\n\ninterface Internal {\n css: ThemedCssFunction<DefaultTheme>\n styled: StyledInterface\n provider?: ThemeProviderComponent<any, any>\n component?: ComponentType | HTMLTags\n textComponent?: ComponentType | HTMLTags\n}\n\nclass Configuration {\n css = css\n\n styled = styled\n\n provider = ThemeProvider\n\n component: ComponentType | HTMLTags = 'div'\n\n textComponent: ComponentType | HTMLTags = 'span'\n\n init = (props: Internal) => {\n if (props.css) {\n this.css = props.css\n }\n\n if (props.styled) {\n this.styled = props.styled\n }\n\n if (props.provider) {\n this.provider = props.provider\n }\n\n if (props.component) {\n this.component = props.component\n }\n\n if (props.textComponent) {\n this.textComponent = props.textComponent\n }\n }\n}\n\nconst config = new Configuration()\n\nconst { init } = config\n\nexport default config\nexport { init }\n","export type IsEmpty = <T extends Record<string, unknown> | unknown[] | null>(\n param?: T\n) => null | undefined extends T ? true : keyof T extends never ? true : false\n\nconst isEmpty: IsEmpty = (param) => {\n if (!param) return true\n\n if (typeof param !== 'object') {\n return true as any\n }\n\n if (Array.isArray(param) && param.length === 0) {\n return true\n }\n\n if (Object.entries(param).length === 0 && param.constructor === Object) {\n return true\n }\n\n return false\n}\n\nexport default isEmpty\n","import React, { createContext, FC, useMemo, ReactNode } from 'react'\nimport config from '~/config'\nimport isEmpty from '~/isEmpty'\nimport type { Breakpoints } from '~/types'\n\nconst context = createContext<any>({})\nconst VitusLabsProvider = context.Provider\n\ntype Theme = Partial<\n {\n rootSize: number\n breakpoints: Breakpoints\n } & Record<string, any>\n>\n\ntype ProviderType = Partial<\n {\n theme: Theme\n children: ReactNode\n } & Record<string, any>\n>\n\nconst Provider: FC<ProviderType> = ({ theme, children, ...props }) => {\n const ExternalProvider = useMemo(() => config.provider, [])\n\n // eslint-disable-next-line react/jsx-no-useless-fragment\n if (!theme || isEmpty(theme)) return <>{children}</>\n\n if (ExternalProvider) {\n return (\n <VitusLabsProvider value={{ theme, ...props }}>\n <ExternalProvider theme={theme}>{children}</ExternalProvider>\n </VitusLabsProvider>\n )\n }\n\n return (\n <VitusLabsProvider value={{ theme, ...props }}>\n {children}\n </VitusLabsProvider>\n )\n}\n\nexport { context }\n\nexport default Provider\n","// const compose = <R>(fn1: (a: R) => R, ...fns: Array<(a: R) => R>) =>\n// fns.reduce((a, b) => (value) => a(b(value)), fn1)\n\n// const compose = (funcs) =>\n// funcs.reduce(\n// (a, b) => (...args) => a(b(...args)),\n// (arg) => arg\n// )\n\ntype ArityOneFn = (arg: any) => any\ntype PickLastInTuple<T extends any[]> = T extends [\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ...rest: infer U,\n argn: infer L\n]\n ? L\n : any\ntype FirstFnParameterType<T extends any[]> = Parameters<PickLastInTuple<T>>[any]\ntype LastFnReturnType<T extends any[]> = ReturnType<T[0]>\n\nconst compose =\n <T extends ArityOneFn[]>(...fns: T) =>\n (p: FirstFnParameterType<T>): LastFnReturnType<T> =>\n fns.reduceRight((acc: any, cur: any) => cur(acc), p)\n\nexport default compose\n","import { isValidElementType, isFragment } from 'react-is'\nimport { createElement, isValidElement, cloneElement, ReactNode } from 'react'\nimport isEmpty from './isEmpty'\n\ntype CreateTypes = Parameters<typeof createElement>[0]\ntype CloneTypes = Parameters<typeof cloneElement>[0]\ntype RenderProps<T extends Record<string, unknown> | undefined> = (\n props: Partial<T>\n) => ReactNode\n\nexport type Render = <T extends Record<string, any> | undefined>(\n content?: CreateTypes | CloneTypes | ReactNode | ReactNode[] | RenderProps<T>,\n attachProps?: T\n) => ReturnType<typeof createElement> | ReturnType<typeof cloneElement> | null\n\nconst render: Render = (content, attachProps) => {\n if (!content) return null as any\n\n const isValidEl = isValidElement(content)\n const render = (content) =>\n attachProps ? createElement(content, attachProps) : createElement(content)\n\n if (typeof content === 'string' && isValidEl) {\n return render(content)\n }\n\n if (['number', 'boolean', 'bigint', 'string'].includes(typeof content)) {\n return content\n }\n\n if (Array.isArray(content) || isFragment(content)) {\n return content\n }\n\n if (isValidElementType(content)) {\n return render(content)\n }\n\n if (isValidEl) {\n if (isEmpty(attachProps)) {\n return content\n }\n\n return cloneElement(content, attachProps)\n }\n\n return content\n}\n\nexport default render\n","const TAGS = [\n 'a',\n 'abbr',\n // 'acronym',\n 'address',\n // 'applet',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n // 'base',\n // 'basefont',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n // 'center',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'data',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n // 'dir',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n // 'font',\n 'footer',\n 'form',\n // 'frame',\n // 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n // 'head',\n 'header',\n 'hr',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n // 'link',\n 'main',\n 'map',\n 'mark',\n // 'meta',\n 'meter',\n 'nav',\n // 'noframes',\n // 'noscript',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n // 'param',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n // 'script',\n 'section',\n 'select',\n 'small',\n 'source',\n 'span',\n // 'strike',\n 'strong',\n // 'style',\n 'sub',\n 'summary',\n 'sup',\n 'svg',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n // 'title',\n 'tr',\n 'track',\n // 'tt',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n] as const\n\nconst TEXT_TAGS = [\n 'abbr',\n 'b',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'cite',\n 'code',\n 'dl',\n 'dt',\n 'em',\n 'figcaption',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'i',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'p',\n 'pre',\n 'q',\n 'rp',\n 'rt',\n 's',\n 'small',\n 'span',\n 'strong',\n 'sub',\n 'summary',\n 'sup',\n 'time',\n 'u',\n] as const\n\nexport type HTMLTags = typeof TAGS[number]\n\nexport type HTMLTagsText = typeof TEXT_TAGS[number]\n\nexport default TAGS\n"],"names":["css","styled","ThemeProvider","createContext","useMemo","React","isValidElement","createElement","isFragment","isValidElementType","cloneElement"],"mappings":"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"}
1
+ {"version":3,"file":"vitus-labs-core.js","sources":["../src/config.ts","../src/isEmpty.ts","../src/context.tsx","../src/compose.ts","../src/render.ts","../src/html/htmlTags.ts"],"sourcesContent":["import { ComponentType } from 'react'\nimport type { HTMLTags } from '~/html'\nimport styled, {\n css,\n ThemeProvider,\n ThemedCssFunction,\n StyledInterface,\n DefaultTheme,\n ThemeProviderComponent,\n} from 'styled-components'\n\ninterface Internal {\n css: ThemedCssFunction<DefaultTheme>\n styled: StyledInterface\n provider?: ThemeProviderComponent<any, any>\n component?: ComponentType | HTMLTags\n textComponent?: ComponentType | HTMLTags\n}\n\nclass Configuration {\n css = css\n\n styled = styled\n\n provider = ThemeProvider\n\n component: ComponentType | HTMLTags = 'div'\n\n textComponent: ComponentType | HTMLTags = 'span'\n\n init = (props: Internal) => {\n if (props.css) {\n this.css = props.css\n }\n\n if (props.styled) {\n this.styled = props.styled\n }\n\n if (props.provider) {\n this.provider = props.provider\n }\n\n if (props.component) {\n this.component = props.component\n }\n\n if (props.textComponent) {\n this.textComponent = props.textComponent\n }\n }\n}\n\nconst config = new Configuration()\n\nconst { init } = config\n\nexport default config\nexport { init }\n","export type IsEmpty = <T extends Record<string, unknown> | unknown[] | null>(\n param?: T\n) => null | undefined extends T ? true : keyof T extends never ? true : false\n\nconst isEmpty: IsEmpty = (param) => {\n if (!param) return true\n\n if (typeof param !== 'object') {\n return true as any\n }\n\n if (Array.isArray(param) && param.length === 0) {\n return true\n }\n\n if (Object.entries(param).length === 0 && param.constructor === Object) {\n return true\n }\n\n return false\n}\n\nexport default isEmpty\n","import React, { createContext, FC, useMemo, ReactNode } from 'react'\nimport config from '~/config'\nimport isEmpty from '~/isEmpty'\nimport type { Breakpoints } from '~/types'\n\nconst context = createContext<any>({})\nconst VitusLabsProvider = context.Provider\n\ntype Theme = Partial<\n {\n rootSize: number\n breakpoints: Breakpoints\n } & Record<string, any>\n>\n\ntype ProviderType = Partial<\n {\n theme: Theme\n children: ReactNode\n } & Record<string, any>\n>\n\nconst Provider: FC<ProviderType> = ({ theme, children, ...props }) => {\n const ExternalProvider = useMemo(() => config.provider, [])\n const context = useMemo(() => ({ theme, ...props }), [theme, props])\n\n // eslint-disable-next-line react/jsx-no-useless-fragment\n if (!theme || isEmpty(theme)) return <>{children}</>\n\n if (ExternalProvider) {\n return (\n <VitusLabsProvider value={context}>\n <ExternalProvider theme={theme}>{children}</ExternalProvider>\n </VitusLabsProvider>\n )\n }\n\n return <VitusLabsProvider value={context}>{children}</VitusLabsProvider>\n}\n\nexport { context }\n\nexport default Provider\n","// const compose = <R>(fn1: (a: R) => R, ...fns: Array<(a: R) => R>) =>\n// fns.reduce((a, b) => (value) => a(b(value)), fn1)\n\n// const compose = (funcs) =>\n// funcs.reduce(\n// (a, b) => (...args) => a(b(...args)),\n// (arg) => arg\n// )\n\ntype ArityOneFn = (arg: any) => any\ntype PickLastInTuple<T extends any[]> = T extends [\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ...rest: infer U,\n argn: infer L\n]\n ? L\n : any\ntype FirstFnParameterType<T extends any[]> = Parameters<PickLastInTuple<T>>[any]\ntype LastFnReturnType<T extends any[]> = ReturnType<T[0]>\n\nconst compose =\n <T extends ArityOneFn[]>(...fns: T) =>\n (p: FirstFnParameterType<T>): LastFnReturnType<T> =>\n fns.reduceRight((acc: any, cur: any) => cur(acc), p)\n\nexport default compose\n","import { isValidElementType, isFragment } from 'react-is'\nimport { createElement, isValidElement, cloneElement, ReactNode } from 'react'\nimport isEmpty from './isEmpty'\n\ntype CreateTypes = Parameters<typeof createElement>[0]\ntype CloneTypes = Parameters<typeof cloneElement>[0]\ntype RenderProps<T extends Record<string, unknown> | undefined> = (\n props: Partial<T>\n) => ReactNode\n\nexport type Render = <T extends Record<string, any> | undefined>(\n content?: CreateTypes | CloneTypes | ReactNode | ReactNode[] | RenderProps<T>,\n attachProps?: T\n) => ReturnType<typeof createElement> | ReturnType<typeof cloneElement> | null\n\nconst render: Render = (content, attachProps) => {\n if (!content) return null as any\n\n const isValidEl = isValidElement(content)\n const render = (content) =>\n attachProps ? createElement(content, attachProps) : createElement(content)\n\n if (typeof content === 'string' && isValidEl) {\n return render(content)\n }\n\n if (['number', 'boolean', 'bigint', 'string'].includes(typeof content)) {\n return content\n }\n\n if (Array.isArray(content) || isFragment(content)) {\n return content\n }\n\n if (isValidElementType(content)) {\n return render(content)\n }\n\n if (isValidEl) {\n if (isEmpty(attachProps)) {\n return content\n }\n\n return cloneElement(content, attachProps)\n }\n\n return content\n}\n\nexport default render\n","const TAGS = [\n 'a',\n 'abbr',\n // 'acronym',\n 'address',\n // 'applet',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n // 'base',\n // 'basefont',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n // 'center',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'data',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n // 'dir',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n // 'font',\n 'footer',\n 'form',\n // 'frame',\n // 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n // 'head',\n 'header',\n 'hr',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n // 'link',\n 'main',\n 'map',\n 'mark',\n // 'meta',\n 'meter',\n 'nav',\n // 'noframes',\n // 'noscript',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n // 'param',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n // 'script',\n 'section',\n 'select',\n 'small',\n 'source',\n 'span',\n // 'strike',\n 'strong',\n // 'style',\n 'sub',\n 'summary',\n 'sup',\n 'svg',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n // 'title',\n 'tr',\n 'track',\n // 'tt',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n] as const\n\nconst TEXT_TAGS = [\n 'abbr',\n 'b',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'cite',\n 'code',\n 'dl',\n 'dt',\n 'em',\n 'figcaption',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'i',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'p',\n 'pre',\n 'q',\n 'rp',\n 'rt',\n 's',\n 'small',\n 'span',\n 'strong',\n 'sub',\n 'summary',\n 'sup',\n 'time',\n 'u',\n] as const\n\nexport type HTMLTags = typeof TAGS[number]\n\nexport type HTMLTagsText = typeof TEXT_TAGS[number]\n\nexport default TAGS\n"],"names":["css","styled","ThemeProvider","createContext","useMemo","React","isValidElement","createElement","isFragment","isValidElementType","cloneElement"],"mappings":"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"}
@@ -50,14 +50,15 @@ const context = createContext({});
50
50
  const VitusLabsProvider = context.Provider;
51
51
  const Provider = ({ theme, children, ...props }) => {
52
52
  const ExternalProvider = useMemo(() => config.provider, []);
53
+ const context = useMemo(() => ({ theme, ...props }), [theme, props]);
53
54
  // eslint-disable-next-line react/jsx-no-useless-fragment
54
55
  if (!theme || isEmpty(theme))
55
56
  return React.createElement(React.Fragment, null, children);
56
57
  if (ExternalProvider) {
57
- return (React.createElement(VitusLabsProvider, { value: { theme, ...props } },
58
+ return (React.createElement(VitusLabsProvider, { value: context },
58
59
  React.createElement(ExternalProvider, { theme: theme }, children)));
59
60
  }
60
- return (React.createElement(VitusLabsProvider, { value: { theme, ...props } }, children));
61
+ return React.createElement(VitusLabsProvider, { value: context }, children);
61
62
  };
62
63
 
63
64
  // const compose = <R>(fn1: (a: R) => R, ...fns: Array<(a: R) => R>) =>
@@ -1 +1 @@
1
- {"version":3,"file":"vitus-labs-core.module.js","sources":["../src/config.ts","../src/isEmpty.ts","../src/context.tsx","../src/compose.ts","../src/render.ts","../src/html/htmlTags.ts"],"sourcesContent":["import { ComponentType } from 'react'\nimport type { HTMLTags } from '~/html'\nimport styled, {\n css,\n ThemeProvider,\n ThemedCssFunction,\n StyledInterface,\n DefaultTheme,\n ThemeProviderComponent,\n} from 'styled-components'\n\ninterface Internal {\n css: ThemedCssFunction<DefaultTheme>\n styled: StyledInterface\n provider?: ThemeProviderComponent<any, any>\n component?: ComponentType | HTMLTags\n textComponent?: ComponentType | HTMLTags\n}\n\nclass Configuration {\n css = css\n\n styled = styled\n\n provider = ThemeProvider\n\n component: ComponentType | HTMLTags = 'div'\n\n textComponent: ComponentType | HTMLTags = 'span'\n\n init = (props: Internal) => {\n if (props.css) {\n this.css = props.css\n }\n\n if (props.styled) {\n this.styled = props.styled\n }\n\n if (props.provider) {\n this.provider = props.provider\n }\n\n if (props.component) {\n this.component = props.component\n }\n\n if (props.textComponent) {\n this.textComponent = props.textComponent\n }\n }\n}\n\nconst config = new Configuration()\n\nconst { init } = config\n\nexport default config\nexport { init }\n","export type IsEmpty = <T extends Record<string, unknown> | unknown[] | null>(\n param?: T\n) => null | undefined extends T ? true : keyof T extends never ? true : false\n\nconst isEmpty: IsEmpty = (param) => {\n if (!param) return true\n\n if (typeof param !== 'object') {\n return true as any\n }\n\n if (Array.isArray(param) && param.length === 0) {\n return true\n }\n\n if (Object.entries(param).length === 0 && param.constructor === Object) {\n return true\n }\n\n return false\n}\n\nexport default isEmpty\n","import React, { createContext, FC, useMemo, ReactNode } from 'react'\nimport config from '~/config'\nimport isEmpty from '~/isEmpty'\nimport type { Breakpoints } from '~/types'\n\nconst context = createContext<any>({})\nconst VitusLabsProvider = context.Provider\n\ntype Theme = Partial<\n {\n rootSize: number\n breakpoints: Breakpoints\n } & Record<string, any>\n>\n\ntype ProviderType = Partial<\n {\n theme: Theme\n children: ReactNode\n } & Record<string, any>\n>\n\nconst Provider: FC<ProviderType> = ({ theme, children, ...props }) => {\n const ExternalProvider = useMemo(() => config.provider, [])\n\n // eslint-disable-next-line react/jsx-no-useless-fragment\n if (!theme || isEmpty(theme)) return <>{children}</>\n\n if (ExternalProvider) {\n return (\n <VitusLabsProvider value={{ theme, ...props }}>\n <ExternalProvider theme={theme}>{children}</ExternalProvider>\n </VitusLabsProvider>\n )\n }\n\n return (\n <VitusLabsProvider value={{ theme, ...props }}>\n {children}\n </VitusLabsProvider>\n )\n}\n\nexport { context }\n\nexport default Provider\n","// const compose = <R>(fn1: (a: R) => R, ...fns: Array<(a: R) => R>) =>\n// fns.reduce((a, b) => (value) => a(b(value)), fn1)\n\n// const compose = (funcs) =>\n// funcs.reduce(\n// (a, b) => (...args) => a(b(...args)),\n// (arg) => arg\n// )\n\ntype ArityOneFn = (arg: any) => any\ntype PickLastInTuple<T extends any[]> = T extends [\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ...rest: infer U,\n argn: infer L\n]\n ? L\n : any\ntype FirstFnParameterType<T extends any[]> = Parameters<PickLastInTuple<T>>[any]\ntype LastFnReturnType<T extends any[]> = ReturnType<T[0]>\n\nconst compose =\n <T extends ArityOneFn[]>(...fns: T) =>\n (p: FirstFnParameterType<T>): LastFnReturnType<T> =>\n fns.reduceRight((acc: any, cur: any) => cur(acc), p)\n\nexport default compose\n","import { isValidElementType, isFragment } from 'react-is'\nimport { createElement, isValidElement, cloneElement, ReactNode } from 'react'\nimport isEmpty from './isEmpty'\n\ntype CreateTypes = Parameters<typeof createElement>[0]\ntype CloneTypes = Parameters<typeof cloneElement>[0]\ntype RenderProps<T extends Record<string, unknown> | undefined> = (\n props: Partial<T>\n) => ReactNode\n\nexport type Render = <T extends Record<string, any> | undefined>(\n content?: CreateTypes | CloneTypes | ReactNode | ReactNode[] | RenderProps<T>,\n attachProps?: T\n) => ReturnType<typeof createElement> | ReturnType<typeof cloneElement> | null\n\nconst render: Render = (content, attachProps) => {\n if (!content) return null as any\n\n const isValidEl = isValidElement(content)\n const render = (content) =>\n attachProps ? createElement(content, attachProps) : createElement(content)\n\n if (typeof content === 'string' && isValidEl) {\n return render(content)\n }\n\n if (['number', 'boolean', 'bigint', 'string'].includes(typeof content)) {\n return content\n }\n\n if (Array.isArray(content) || isFragment(content)) {\n return content\n }\n\n if (isValidElementType(content)) {\n return render(content)\n }\n\n if (isValidEl) {\n if (isEmpty(attachProps)) {\n return content\n }\n\n return cloneElement(content, attachProps)\n }\n\n return content\n}\n\nexport default render\n","const TAGS = [\n 'a',\n 'abbr',\n // 'acronym',\n 'address',\n // 'applet',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n // 'base',\n // 'basefont',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n // 'center',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'data',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n // 'dir',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n // 'font',\n 'footer',\n 'form',\n // 'frame',\n // 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n // 'head',\n 'header',\n 'hr',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n // 'link',\n 'main',\n 'map',\n 'mark',\n // 'meta',\n 'meter',\n 'nav',\n // 'noframes',\n // 'noscript',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n // 'param',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n // 'script',\n 'section',\n 'select',\n 'small',\n 'source',\n 'span',\n // 'strike',\n 'strong',\n // 'style',\n 'sub',\n 'summary',\n 'sup',\n 'svg',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n // 'title',\n 'tr',\n 'track',\n // 'tt',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n] as const\n\nconst TEXT_TAGS = [\n 'abbr',\n 'b',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'cite',\n 'code',\n 'dl',\n 'dt',\n 'em',\n 'figcaption',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'i',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'p',\n 'pre',\n 'q',\n 'rp',\n 'rt',\n 's',\n 'small',\n 'span',\n 'strong',\n 'sub',\n 'summary',\n 'sup',\n 'time',\n 'u',\n] as const\n\nexport type HTMLTags = typeof TAGS[number]\n\nexport type HTMLTagsText = typeof TEXT_TAGS[number]\n\nexport default TAGS\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vitus-labs-core.module.js","sources":["../src/config.ts","../src/isEmpty.ts","../src/context.tsx","../src/compose.ts","../src/render.ts","../src/html/htmlTags.ts"],"sourcesContent":["import { ComponentType } from 'react'\nimport type { HTMLTags } from '~/html'\nimport styled, {\n css,\n ThemeProvider,\n ThemedCssFunction,\n StyledInterface,\n DefaultTheme,\n ThemeProviderComponent,\n} from 'styled-components'\n\ninterface Internal {\n css: ThemedCssFunction<DefaultTheme>\n styled: StyledInterface\n provider?: ThemeProviderComponent<any, any>\n component?: ComponentType | HTMLTags\n textComponent?: ComponentType | HTMLTags\n}\n\nclass Configuration {\n css = css\n\n styled = styled\n\n provider = ThemeProvider\n\n component: ComponentType | HTMLTags = 'div'\n\n textComponent: ComponentType | HTMLTags = 'span'\n\n init = (props: Internal) => {\n if (props.css) {\n this.css = props.css\n }\n\n if (props.styled) {\n this.styled = props.styled\n }\n\n if (props.provider) {\n this.provider = props.provider\n }\n\n if (props.component) {\n this.component = props.component\n }\n\n if (props.textComponent) {\n this.textComponent = props.textComponent\n }\n }\n}\n\nconst config = new Configuration()\n\nconst { init } = config\n\nexport default config\nexport { init }\n","export type IsEmpty = <T extends Record<string, unknown> | unknown[] | null>(\n param?: T\n) => null | undefined extends T ? true : keyof T extends never ? true : false\n\nconst isEmpty: IsEmpty = (param) => {\n if (!param) return true\n\n if (typeof param !== 'object') {\n return true as any\n }\n\n if (Array.isArray(param) && param.length === 0) {\n return true\n }\n\n if (Object.entries(param).length === 0 && param.constructor === Object) {\n return true\n }\n\n return false\n}\n\nexport default isEmpty\n","import React, { createContext, FC, useMemo, ReactNode } from 'react'\nimport config from '~/config'\nimport isEmpty from '~/isEmpty'\nimport type { Breakpoints } from '~/types'\n\nconst context = createContext<any>({})\nconst VitusLabsProvider = context.Provider\n\ntype Theme = Partial<\n {\n rootSize: number\n breakpoints: Breakpoints\n } & Record<string, any>\n>\n\ntype ProviderType = Partial<\n {\n theme: Theme\n children: ReactNode\n } & Record<string, any>\n>\n\nconst Provider: FC<ProviderType> = ({ theme, children, ...props }) => {\n const ExternalProvider = useMemo(() => config.provider, [])\n const context = useMemo(() => ({ theme, ...props }), [theme, props])\n\n // eslint-disable-next-line react/jsx-no-useless-fragment\n if (!theme || isEmpty(theme)) return <>{children}</>\n\n if (ExternalProvider) {\n return (\n <VitusLabsProvider value={context}>\n <ExternalProvider theme={theme}>{children}</ExternalProvider>\n </VitusLabsProvider>\n )\n }\n\n return <VitusLabsProvider value={context}>{children}</VitusLabsProvider>\n}\n\nexport { context }\n\nexport default Provider\n","// const compose = <R>(fn1: (a: R) => R, ...fns: Array<(a: R) => R>) =>\n// fns.reduce((a, b) => (value) => a(b(value)), fn1)\n\n// const compose = (funcs) =>\n// funcs.reduce(\n// (a, b) => (...args) => a(b(...args)),\n// (arg) => arg\n// )\n\ntype ArityOneFn = (arg: any) => any\ntype PickLastInTuple<T extends any[]> = T extends [\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ...rest: infer U,\n argn: infer L\n]\n ? L\n : any\ntype FirstFnParameterType<T extends any[]> = Parameters<PickLastInTuple<T>>[any]\ntype LastFnReturnType<T extends any[]> = ReturnType<T[0]>\n\nconst compose =\n <T extends ArityOneFn[]>(...fns: T) =>\n (p: FirstFnParameterType<T>): LastFnReturnType<T> =>\n fns.reduceRight((acc: any, cur: any) => cur(acc), p)\n\nexport default compose\n","import { isValidElementType, isFragment } from 'react-is'\nimport { createElement, isValidElement, cloneElement, ReactNode } from 'react'\nimport isEmpty from './isEmpty'\n\ntype CreateTypes = Parameters<typeof createElement>[0]\ntype CloneTypes = Parameters<typeof cloneElement>[0]\ntype RenderProps<T extends Record<string, unknown> | undefined> = (\n props: Partial<T>\n) => ReactNode\n\nexport type Render = <T extends Record<string, any> | undefined>(\n content?: CreateTypes | CloneTypes | ReactNode | ReactNode[] | RenderProps<T>,\n attachProps?: T\n) => ReturnType<typeof createElement> | ReturnType<typeof cloneElement> | null\n\nconst render: Render = (content, attachProps) => {\n if (!content) return null as any\n\n const isValidEl = isValidElement(content)\n const render = (content) =>\n attachProps ? createElement(content, attachProps) : createElement(content)\n\n if (typeof content === 'string' && isValidEl) {\n return render(content)\n }\n\n if (['number', 'boolean', 'bigint', 'string'].includes(typeof content)) {\n return content\n }\n\n if (Array.isArray(content) || isFragment(content)) {\n return content\n }\n\n if (isValidElementType(content)) {\n return render(content)\n }\n\n if (isValidEl) {\n if (isEmpty(attachProps)) {\n return content\n }\n\n return cloneElement(content, attachProps)\n }\n\n return content\n}\n\nexport default render\n","const TAGS = [\n 'a',\n 'abbr',\n // 'acronym',\n 'address',\n // 'applet',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n // 'base',\n // 'basefont',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n // 'center',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'data',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n // 'dir',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n // 'font',\n 'footer',\n 'form',\n // 'frame',\n // 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n // 'head',\n 'header',\n 'hr',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n // 'link',\n 'main',\n 'map',\n 'mark',\n // 'meta',\n 'meter',\n 'nav',\n // 'noframes',\n // 'noscript',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n // 'param',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n // 'script',\n 'section',\n 'select',\n 'small',\n 'source',\n 'span',\n // 'strike',\n 'strong',\n // 'style',\n 'sub',\n 'summary',\n 'sup',\n 'svg',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n // 'title',\n 'tr',\n 'track',\n // 'tt',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n] as const\n\nconst TEXT_TAGS = [\n 'abbr',\n 'b',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'cite',\n 'code',\n 'dl',\n 'dt',\n 'em',\n 'figcaption',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'i',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'p',\n 'pre',\n 'q',\n 'rp',\n 'rt',\n 's',\n 'small',\n 'span',\n 'strong',\n 'sub',\n 'summary',\n 'sup',\n 'time',\n 'u',\n] as const\n\nexport type HTMLTags = typeof TAGS[number]\n\nexport type HTMLTagsText = typeof TEXT_TAGS[number]\n\nexport default TAGS\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitus-labs/core",
3
- "version": "0.76.0",
3
+ "version": "0.77.0",
4
4
  "license": "MIT",
5
5
  "author": "Vit Bokisch <vit@bokisch.cz>",
6
6
  "maintainers": [
@@ -8,7 +8,6 @@
8
8
  ],
9
9
  "main": "lib/vitus-labs-core.js",
10
10
  "module": "lib/vitus-labs-core.module.js",
11
- "react-native": "lib/vitus-labs-core.module.js",
12
11
  "types": "lib/index.d.ts",
13
12
  "files": [
14
13
  "lib/"
@@ -53,10 +52,10 @@
53
52
  },
54
53
  "devDependencies": {
55
54
  "@types/lodash": "^4.14.191",
56
- "@vitus-labs/tools-babel": "^0.43.0",
57
- "@vitus-labs/tools-rollup": "^0.43.0",
58
- "@vitus-labs/tools-typescript": "^0.43.0",
55
+ "@vitus-labs/tools-babel": "^0.44.0",
56
+ "@vitus-labs/tools-rollup": "^0.44.0",
57
+ "@vitus-labs/tools-typescript": "^0.44.0",
59
58
  "styled-components": "^5.3.6"
60
59
  },
61
- "gitHead": "183f53352a6bba2d71ea72ec3f07a8f2f96ae0df"
60
+ "gitHead": "a5a7971c54fd1ff4fea5bd3f177fb558340cdf3d"
62
61
  }