@vitus-labs/core 0.57.0-alpha.1 → 0.57.0-alpha.4

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.
@@ -6424,7 +6424,7 @@ var drawChart = (function (exports) {
6424
6424
  </script>
6425
6425
  <script>
6426
6426
  /*<!--*/
6427
- const data = {"version":2,"tree":{"name":"root","children":[{"name":"vitus-labs-core.js","children":[{"name":"src","children":[{"uid":"2537-1","name":"config.ts"},{"uid":"2537-3","name":"isEmpty.ts"},{"uid":"2537-5","name":"context.tsx"},{"uid":"2537-7","name":"compose.ts"},{"uid":"2537-9","name":"render.ts"},{"name":"html/htmlTags.ts","uid":"2537-11"},{"uid":"2537-13","name":"index.ts"}]}]}],"isRoot":true},"nodeParts":{"2537-1":{"renderedLength":708,"gzipLength":248,"brotliLength":0,"mainUid":"2537-0"},"2537-3":{"renderedLength":349,"gzipLength":177,"brotliLength":0,"mainUid":"2537-2"},"2537-5":{"renderedLength":785,"gzipLength":330,"brotliLength":0,"mainUid":"2537-4"},"2537-7":{"renderedLength":207,"gzipLength":153,"brotliLength":0,"mainUid":"2537-6"},"2537-9":{"renderedLength":837,"gzipLength":301,"brotliLength":0,"mainUid":"2537-8"},"2537-11":{"renderedLength":1715,"gzipLength":502,"brotliLength":0,"mainUid":"2537-10"},"2537-13":{"renderedLength":0,"gzipLength":0,"brotliLength":0,"mainUid":"2537-12"}},"nodeMetas":{"2537-0":{"id":"/src/config.ts","moduleParts":{"vitus-labs-core.js":"2537-1"},"imported":[{"uid":"2537-17"}],"importedBy":[{"uid":"2537-12"},{"uid":"2537-4"}]},"2537-2":{"id":"/src/isEmpty.ts","moduleParts":{"vitus-labs-core.js":"2537-3"},"imported":[],"importedBy":[{"uid":"2537-12"},{"uid":"2537-4"},{"uid":"2537-8"}]},"2537-4":{"id":"/src/context.tsx","moduleParts":{"vitus-labs-core.js":"2537-5"},"imported":[{"uid":"2537-18"},{"uid":"2537-0"},{"uid":"2537-2"}],"importedBy":[{"uid":"2537-12"}]},"2537-6":{"id":"/src/compose.ts","moduleParts":{"vitus-labs-core.js":"2537-7"},"imported":[],"importedBy":[{"uid":"2537-12"}]},"2537-8":{"id":"/src/render.ts","moduleParts":{"vitus-labs-core.js":"2537-9"},"imported":[{"uid":"2537-19"},{"uid":"2537-18"},{"uid":"2537-2"}],"importedBy":[{"uid":"2537-12"}]},"2537-10":{"id":"/src/html/htmlTags.ts","moduleParts":{"vitus-labs-core.js":"2537-11"},"imported":[],"importedBy":[{"uid":"2537-16"}]},"2537-12":{"id":"/src/index.ts","moduleParts":{"vitus-labs-core.js":"2537-13"},"imported":[{"uid":"2537-14"},{"uid":"2537-15"},{"uid":"2537-0"},{"uid":"2537-4"},{"uid":"2537-6"},{"uid":"2537-2"},{"uid":"2537-8"},{"uid":"2537-16"}],"importedBy":[],"isEntry":true},"2537-14":{"id":"lodash","moduleParts":{},"imported":[],"importedBy":[{"uid":"2537-12"}],"isExternal":true},"2537-15":{"id":"moize","moduleParts":{},"imported":[],"importedBy":[{"uid":"2537-12"}],"isExternal":true},"2537-16":{"id":"/src/html/index.ts","moduleParts":{},"imported":[{"uid":"2537-10"}],"importedBy":[{"uid":"2537-12"}]},"2537-17":{"id":"styled-components","moduleParts":{},"imported":[],"importedBy":[{"uid":"2537-0"}],"isExternal":true},"2537-18":{"id":"react","moduleParts":{},"imported":[],"importedBy":[{"uid":"2537-4"},{"uid":"2537-8"}],"isExternal":true},"2537-19":{"id":"react-is","moduleParts":{},"imported":[],"importedBy":[{"uid":"2537-8"}],"isExternal":true}},"env":{"rollup":"2.72.0"},"options":{"gzip":true,"brotli":false,"sourcemap":false}};
6427
+ const data = {"version":2,"tree":{"name":"root","children":[{"name":"vitus-labs-core.js","children":[{"name":"src","children":[{"uid":"33bb-1","name":"config.ts"},{"uid":"33bb-3","name":"isEmpty.ts"},{"uid":"33bb-5","name":"context.tsx"},{"uid":"33bb-7","name":"compose.ts"},{"uid":"33bb-9","name":"render.ts"},{"name":"html/htmlTags.ts","uid":"33bb-11"},{"uid":"33bb-13","name":"index.ts"}]}]}],"isRoot":true},"nodeParts":{"33bb-1":{"renderedLength":708,"gzipLength":248,"brotliLength":0,"mainUid":"33bb-0"},"33bb-3":{"renderedLength":349,"gzipLength":177,"brotliLength":0,"mainUid":"33bb-2"},"33bb-5":{"renderedLength":785,"gzipLength":330,"brotliLength":0,"mainUid":"33bb-4"},"33bb-7":{"renderedLength":207,"gzipLength":153,"brotliLength":0,"mainUid":"33bb-6"},"33bb-9":{"renderedLength":837,"gzipLength":301,"brotliLength":0,"mainUid":"33bb-8"},"33bb-11":{"renderedLength":1715,"gzipLength":502,"brotliLength":0,"mainUid":"33bb-10"},"33bb-13":{"renderedLength":0,"gzipLength":0,"brotliLength":0,"mainUid":"33bb-12"}},"nodeMetas":{"33bb-0":{"id":"/src/config.ts","moduleParts":{"vitus-labs-core.js":"33bb-1"},"imported":[{"uid":"33bb-17"}],"importedBy":[{"uid":"33bb-12"},{"uid":"33bb-4"}]},"33bb-2":{"id":"/src/isEmpty.ts","moduleParts":{"vitus-labs-core.js":"33bb-3"},"imported":[],"importedBy":[{"uid":"33bb-12"},{"uid":"33bb-4"},{"uid":"33bb-8"}]},"33bb-4":{"id":"/src/context.tsx","moduleParts":{"vitus-labs-core.js":"33bb-5"},"imported":[{"uid":"33bb-18"},{"uid":"33bb-0"},{"uid":"33bb-2"}],"importedBy":[{"uid":"33bb-12"}]},"33bb-6":{"id":"/src/compose.ts","moduleParts":{"vitus-labs-core.js":"33bb-7"},"imported":[],"importedBy":[{"uid":"33bb-12"}]},"33bb-8":{"id":"/src/render.ts","moduleParts":{"vitus-labs-core.js":"33bb-9"},"imported":[{"uid":"33bb-19"},{"uid":"33bb-18"},{"uid":"33bb-2"}],"importedBy":[{"uid":"33bb-12"}]},"33bb-10":{"id":"/src/html/htmlTags.ts","moduleParts":{"vitus-labs-core.js":"33bb-11"},"imported":[],"importedBy":[{"uid":"33bb-16"}]},"33bb-12":{"id":"/src/index.ts","moduleParts":{"vitus-labs-core.js":"33bb-13"},"imported":[{"uid":"33bb-14"},{"uid":"33bb-15"},{"uid":"33bb-0"},{"uid":"33bb-4"},{"uid":"33bb-6"},{"uid":"33bb-2"},{"uid":"33bb-8"},{"uid":"33bb-16"}],"importedBy":[],"isEntry":true},"33bb-14":{"id":"lodash","moduleParts":{},"imported":[],"importedBy":[{"uid":"33bb-12"}],"isExternal":true},"33bb-15":{"id":"moize","moduleParts":{},"imported":[],"importedBy":[{"uid":"33bb-12"}],"isExternal":true},"33bb-16":{"id":"/src/html/index.ts","moduleParts":{},"imported":[{"uid":"33bb-10"}],"importedBy":[{"uid":"33bb-12"}]},"33bb-17":{"id":"styled-components","moduleParts":{},"imported":[],"importedBy":[{"uid":"33bb-0"}],"isExternal":true},"33bb-18":{"id":"react","moduleParts":{},"imported":[],"importedBy":[{"uid":"33bb-4"},{"uid":"33bb-8"}],"isExternal":true},"33bb-19":{"id":"react-is","moduleParts":{},"imported":[],"importedBy":[{"uid":"33bb-8"}],"isExternal":true}},"env":{"rollup":"2.72.0"},"options":{"gzip":true,"brotli":false,"sourcemap":false}};
6428
6428
 
6429
6429
  const run = () => {
6430
6430
  const width = window.innerWidth;
@@ -6424,7 +6424,7 @@ var drawChart = (function (exports) {
6424
6424
  </script>
6425
6425
  <script>
6426
6426
  /*<!--*/
6427
- const data = {"version":2,"tree":{"name":"root","children":[{"name":"vitus-labs-core.module.js","children":[{"name":"src","children":[{"uid":"2537-21","name":"config.ts"},{"uid":"2537-23","name":"isEmpty.ts"},{"uid":"2537-25","name":"context.tsx"},{"uid":"2537-27","name":"compose.ts"},{"uid":"2537-29","name":"render.ts"},{"name":"html/htmlTags.ts","uid":"2537-31"},{"uid":"2537-33","name":"index.ts"}]}]}],"isRoot":true},"nodeParts":{"2537-21":{"renderedLength":674,"gzipLength":232,"brotliLength":0,"mainUid":"2537-20"},"2537-23":{"renderedLength":349,"gzipLength":177,"brotliLength":0,"mainUid":"2537-22"},"2537-25":{"renderedLength":673,"gzipLength":312,"brotliLength":0,"mainUid":"2537-24"},"2537-27":{"renderedLength":207,"gzipLength":153,"brotliLength":0,"mainUid":"2537-26"},"2537-29":{"renderedLength":797,"gzipLength":284,"brotliLength":0,"mainUid":"2537-28"},"2537-31":{"renderedLength":1715,"gzipLength":502,"brotliLength":0,"mainUid":"2537-30"},"2537-33":{"renderedLength":0,"gzipLength":0,"brotliLength":0,"mainUid":"2537-32"}},"nodeMetas":{"2537-20":{"id":"/src/config.ts","moduleParts":{"vitus-labs-core.module.js":"2537-21"},"imported":[{"uid":"2537-37"}],"importedBy":[{"uid":"2537-32"},{"uid":"2537-24"}]},"2537-22":{"id":"/src/isEmpty.ts","moduleParts":{"vitus-labs-core.module.js":"2537-23"},"imported":[],"importedBy":[{"uid":"2537-32"},{"uid":"2537-24"},{"uid":"2537-28"}]},"2537-24":{"id":"/src/context.tsx","moduleParts":{"vitus-labs-core.module.js":"2537-25"},"imported":[{"uid":"2537-38"},{"uid":"2537-20"},{"uid":"2537-22"}],"importedBy":[{"uid":"2537-32"}]},"2537-26":{"id":"/src/compose.ts","moduleParts":{"vitus-labs-core.module.js":"2537-27"},"imported":[],"importedBy":[{"uid":"2537-32"}]},"2537-28":{"id":"/src/render.ts","moduleParts":{"vitus-labs-core.module.js":"2537-29"},"imported":[{"uid":"2537-39"},{"uid":"2537-38"},{"uid":"2537-22"}],"importedBy":[{"uid":"2537-32"}]},"2537-30":{"id":"/src/html/htmlTags.ts","moduleParts":{"vitus-labs-core.module.js":"2537-31"},"imported":[],"importedBy":[{"uid":"2537-36"}]},"2537-32":{"id":"/src/index.ts","moduleParts":{"vitus-labs-core.module.js":"2537-33"},"imported":[{"uid":"2537-34"},{"uid":"2537-35"},{"uid":"2537-20"},{"uid":"2537-24"},{"uid":"2537-26"},{"uid":"2537-22"},{"uid":"2537-28"},{"uid":"2537-36"}],"importedBy":[],"isEntry":true},"2537-34":{"id":"lodash","moduleParts":{},"imported":[],"importedBy":[{"uid":"2537-32"}],"isExternal":true},"2537-35":{"id":"moize","moduleParts":{},"imported":[],"importedBy":[{"uid":"2537-32"}],"isExternal":true},"2537-36":{"id":"/src/html/index.ts","moduleParts":{},"imported":[{"uid":"2537-30"}],"importedBy":[{"uid":"2537-32"}]},"2537-37":{"id":"styled-components","moduleParts":{},"imported":[],"importedBy":[{"uid":"2537-20"}],"isExternal":true},"2537-38":{"id":"react","moduleParts":{},"imported":[],"importedBy":[{"uid":"2537-24"},{"uid":"2537-28"}],"isExternal":true},"2537-39":{"id":"react-is","moduleParts":{},"imported":[],"importedBy":[{"uid":"2537-28"}],"isExternal":true}},"env":{"rollup":"2.72.0"},"options":{"gzip":true,"brotli":false,"sourcemap":false}};
6427
+ const data = {"version":2,"tree":{"name":"root","children":[{"name":"vitus-labs-core.module.js","children":[{"name":"src","children":[{"uid":"33bb-21","name":"config.ts"},{"uid":"33bb-23","name":"isEmpty.ts"},{"uid":"33bb-25","name":"context.tsx"},{"uid":"33bb-27","name":"compose.ts"},{"uid":"33bb-29","name":"render.ts"},{"name":"html/htmlTags.ts","uid":"33bb-31"},{"uid":"33bb-33","name":"index.ts"}]}]}],"isRoot":true},"nodeParts":{"33bb-21":{"renderedLength":674,"gzipLength":232,"brotliLength":0,"mainUid":"33bb-20"},"33bb-23":{"renderedLength":349,"gzipLength":177,"brotliLength":0,"mainUid":"33bb-22"},"33bb-25":{"renderedLength":673,"gzipLength":312,"brotliLength":0,"mainUid":"33bb-24"},"33bb-27":{"renderedLength":207,"gzipLength":153,"brotliLength":0,"mainUid":"33bb-26"},"33bb-29":{"renderedLength":797,"gzipLength":284,"brotliLength":0,"mainUid":"33bb-28"},"33bb-31":{"renderedLength":1715,"gzipLength":502,"brotliLength":0,"mainUid":"33bb-30"},"33bb-33":{"renderedLength":0,"gzipLength":0,"brotliLength":0,"mainUid":"33bb-32"}},"nodeMetas":{"33bb-20":{"id":"/src/config.ts","moduleParts":{"vitus-labs-core.module.js":"33bb-21"},"imported":[{"uid":"33bb-37"}],"importedBy":[{"uid":"33bb-32"},{"uid":"33bb-24"}]},"33bb-22":{"id":"/src/isEmpty.ts","moduleParts":{"vitus-labs-core.module.js":"33bb-23"},"imported":[],"importedBy":[{"uid":"33bb-32"},{"uid":"33bb-24"},{"uid":"33bb-28"}]},"33bb-24":{"id":"/src/context.tsx","moduleParts":{"vitus-labs-core.module.js":"33bb-25"},"imported":[{"uid":"33bb-38"},{"uid":"33bb-20"},{"uid":"33bb-22"}],"importedBy":[{"uid":"33bb-32"}]},"33bb-26":{"id":"/src/compose.ts","moduleParts":{"vitus-labs-core.module.js":"33bb-27"},"imported":[],"importedBy":[{"uid":"33bb-32"}]},"33bb-28":{"id":"/src/render.ts","moduleParts":{"vitus-labs-core.module.js":"33bb-29"},"imported":[{"uid":"33bb-39"},{"uid":"33bb-38"},{"uid":"33bb-22"}],"importedBy":[{"uid":"33bb-32"}]},"33bb-30":{"id":"/src/html/htmlTags.ts","moduleParts":{"vitus-labs-core.module.js":"33bb-31"},"imported":[],"importedBy":[{"uid":"33bb-36"}]},"33bb-32":{"id":"/src/index.ts","moduleParts":{"vitus-labs-core.module.js":"33bb-33"},"imported":[{"uid":"33bb-34"},{"uid":"33bb-35"},{"uid":"33bb-20"},{"uid":"33bb-24"},{"uid":"33bb-26"},{"uid":"33bb-22"},{"uid":"33bb-28"},{"uid":"33bb-36"}],"importedBy":[],"isEntry":true},"33bb-34":{"id":"lodash","moduleParts":{},"imported":[],"importedBy":[{"uid":"33bb-32"}],"isExternal":true},"33bb-35":{"id":"moize","moduleParts":{},"imported":[],"importedBy":[{"uid":"33bb-32"}],"isExternal":true},"33bb-36":{"id":"/src/html/index.ts","moduleParts":{},"imported":[{"uid":"33bb-30"}],"importedBy":[{"uid":"33bb-32"}]},"33bb-37":{"id":"styled-components","moduleParts":{},"imported":[],"importedBy":[{"uid":"33bb-20"}],"isExternal":true},"33bb-38":{"id":"react","moduleParts":{},"imported":[],"importedBy":[{"uid":"33bb-24"},{"uid":"33bb-28"}],"isExternal":true},"33bb-39":{"id":"react-is","moduleParts":{},"imported":[],"importedBy":[{"uid":"33bb-28"}],"isExternal":true}},"env":{"rollup":"2.72.0"},"options":{"gzip":true,"brotli":false,"sourcemap":false}};
6428
6428
 
6429
6429
  const run = () => {
6430
6430
  const width = window.innerWidth;
package/lib/index.d.ts CHANGED
@@ -120,9 +120,9 @@ declare type HTMLTagAttrsByTag<T extends HTMLTags> = T extends unknown ? {} : HT
120
120
  interface Internal {
121
121
  css: ThemedCssFunction<DefaultTheme>;
122
122
  styled: StyledInterface;
123
- provider: ThemeProviderComponent<any, any>;
124
- component: ComponentType | HTMLTags;
125
- textComponent: ComponentType | HTMLTags;
123
+ provider?: ThemeProviderComponent<any, any>;
124
+ component?: ComponentType | HTMLTags;
125
+ textComponent?: ComponentType | HTMLTags;
126
126
  }
127
127
  declare class Configuration {
128
128
  css: ThemedCssFunction<DefaultTheme>;
@@ -4,9 +4,9 @@ import { ThemedCssFunction, StyledInterface, DefaultTheme, ThemeProviderComponen
4
4
  interface Internal {
5
5
  css: ThemedCssFunction<DefaultTheme>;
6
6
  styled: StyledInterface;
7
- provider: ThemeProviderComponent<any, any>;
8
- component: ComponentType | HTMLTags;
9
- textComponent: ComponentType | HTMLTags;
7
+ provider?: ThemeProviderComponent<any, any>;
8
+ component?: ComponentType | HTMLTags;
9
+ textComponent?: ComponentType | HTMLTags;
10
10
  }
11
11
  declare class Configuration {
12
12
  css: ThemedCssFunction<DefaultTheme>;
@@ -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":";;;;;;;;;;;;;;;;AAmBA,MAAM,aAAa,CAAA;IACjB,GAAG,GAAGA,UAAG,CAAA;IAET,MAAM,GAAGC,0BAAM,CAAA;IAEf,QAAQ,GAAGC,oBAAa,CAAA;IAExB,SAAS,GAA6B,KAAK,CAAA;IAE3C,aAAa,GAA6B,MAAM,CAAA;AAEhD,IAAA,IAAI,GAAG,CAAC,KAAe,KAAI;QACzB,IAAI,KAAK,CAAC,GAAG,EAAE;AACb,YAAA,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAA;AACrB,SAAA;QAED,IAAI,KAAK,CAAC,MAAM,EAAE;AAChB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;AAC3B,SAAA;QAED,IAAI,KAAK,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;AAC/B,SAAA;QAED,IAAI,KAAK,CAAC,SAAS,EAAE;AACnB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;AACjC,SAAA;QAED,IAAI,KAAK,CAAC,aAAa,EAAE;AACvB,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAA;AACzC,SAAA;AACH,KAAC,CAAA;AACF,CAAA;AAED,MAAM,MAAM,GAAG,IAAI,aAAa,GAAE;AAElC,MAAM,EAAE,IAAI,EAAE,GAAG;;ACnDjB,MAAM,OAAO,GAAY,CAAC,KAAK,KAAI;AACjC,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,IAAI,CAAA;AAEvB,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,OAAO,IAAW,CAAA;AACnB,KAAA;AAED,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9C,QAAA,OAAO,IAAI,CAAA;AACZ,KAAA;AAED,IAAA,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,EAAE;AACtE,QAAA,OAAO,IAAI,CAAA;AACZ,KAAA;AAED,IAAA,OAAO,KAAK,CAAA;AACd;;ACfA,MAAM,OAAO,GAAGC,mBAAa,CAAM,EAAE,EAAC;AACtC,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAA;AAgB1C,MAAM,QAAQ,GAAqB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,KAAI;AACnE,IAAA,MAAM,gBAAgB,GAAGC,aAAO,CAAC,MAAM,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;;AAG3D,IAAA,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,OAAOC,yBAAA,CAAA,aAAA,CAAAA,yBAAA,CAAA,QAAA,EAAA,IAAA,EAAG,QAAQ,CAAI,CAAA;AAEpD,IAAA,IAAI,gBAAgB,EAAE;QACpB,QACEA,yBAAC,CAAA,aAAA,CAAA,iBAAiB,EAAC,EAAA,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAA;YAC3CA,yBAAC,CAAA,aAAA,CAAA,gBAAgB,EAAC,EAAA,KAAK,EAAE,KAAK,IAAG,QAAQ,CAAoB,CAC3C,EACrB;AACF,KAAA;AAED,IAAA,QACEA,yBAAC,CAAA,aAAA,CAAA,iBAAiB,EAAC,EAAA,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAA,EAC1C,QAAQ,CACS,EACrB;AACH;;ACzCA;AACA;AAmBA,MAAM,OAAO,GACX,CAAyB,GAAG,GAAM,KAClC,CAAC,CAA0B,KACzB,GAAG,CAAC,WAAW,CAAC,CAAC,GAAQ,EAAE,GAAQ,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;;ACRvD,MAAM,MAAM,GAAW,CAAC,OAAO,EAAE,WAAW,KAAI;AAC9C,IAAA,IAAI,CAAC,OAAO;AAAE,QAAA,OAAO,IAAW,CAAA;AAEhC,IAAA,MAAM,SAAS,GAAGC,oBAAc,CAAC,OAAO,CAAC,CAAA;IACzC,MAAM,MAAM,GAAG,CAAC,OAAO,KACrB,WAAW,GAAGC,mBAAa,CAAC,OAAO,EAAE,WAAW,CAAC,GAAGA,mBAAa,CAAC,OAAO,CAAC,CAAA;AAE5E,IAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,SAAS,EAAE;AAC5C,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;AACvB,KAAA;AAED,IAAA,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,OAAO,CAAC,EAAE;AACtE,QAAA,OAAO,OAAO,CAAA;AACf,KAAA;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAIC,kBAAU,CAAC,OAAO,CAAC,EAAE;AACjD,QAAA,OAAO,OAAO,CAAA;AACf,KAAA;AAED,IAAA,IAAIC,0BAAkB,CAAC,OAAO,CAAC,EAAE;AAC/B,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;AACvB,KAAA;AAED,IAAA,IAAI,SAAS,EAAE;AACb,QAAA,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE;AACxB,YAAA,OAAO,OAAO,CAAA;AACf,SAAA;AAED,QAAA,OAAOC,kBAAY,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;AAC1C,KAAA;AAED,IAAA,OAAO,OAAO,CAAA;AAChB;;AC/CA,MAAM,IAAI,GAAG;IACX,GAAG;IACH,MAAM;;IAEN,SAAS;;IAET,MAAM;IACN,SAAS;IACT,OAAO;IACP,OAAO;IACP,GAAG;;;IAGH,KAAK;IACL,KAAK;IACL,KAAK;IACL,YAAY;IACZ,MAAM;IACN,IAAI;IACJ,QAAQ;IACR,QAAQ;IACR,SAAS;;IAET,MAAM;IACN,MAAM;IACN,KAAK;IACL,UAAU;IACV,MAAM;IACN,UAAU;IACV,IAAI;IACJ,KAAK;IACL,SAAS;IACT,KAAK;IACL,QAAQ;;IAER,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,OAAO;IACP,UAAU;IACV,YAAY;IACZ,QAAQ;;IAER,QAAQ;IACR,MAAM;;;IAGN,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;;IAEJ,QAAQ;IACR,IAAI;IACJ,MAAM;IACN,GAAG;IACH,QAAQ;IACR,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,OAAO;IACP,QAAQ;IACR,IAAI;;IAEJ,MAAM;IACN,KAAK;IACL,MAAM;;IAEN,OAAO;IACP,KAAK;;;IAGL,QAAQ;IACR,IAAI;IACJ,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,GAAG;;IAEH,SAAS;IACT,KAAK;IACL,UAAU;IACV,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,GAAG;IACH,MAAM;;IAEN,SAAS;IACT,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,MAAM;;IAEN,QAAQ;;IAER,KAAK;IACL,SAAS;IACT,KAAK;IACL,KAAK;IACL,OAAO;IACP,OAAO;IACP,IAAI;IACJ,UAAU;IACV,UAAU;IACV,OAAO;IACP,IAAI;IACJ,OAAO;IACP,MAAM;;IAEN,IAAI;IACJ,OAAO;;IAEP,GAAG;IACH,IAAI;IACJ,KAAK;IACL,OAAO;IACP,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
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 +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\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":";;;;;;AAmBA,MAAM,aAAa,CAAA;IACjB,GAAG,GAAG,GAAG,CAAA;IAET,MAAM,GAAG,MAAM,CAAA;IAEf,QAAQ,GAAG,aAAa,CAAA;IAExB,SAAS,GAA6B,KAAK,CAAA;IAE3C,aAAa,GAA6B,MAAM,CAAA;AAEhD,IAAA,IAAI,GAAG,CAAC,KAAe,KAAI;QACzB,IAAI,KAAK,CAAC,GAAG,EAAE;AACb,YAAA,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAA;AACrB,SAAA;QAED,IAAI,KAAK,CAAC,MAAM,EAAE;AAChB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;AAC3B,SAAA;QAED,IAAI,KAAK,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;AAC/B,SAAA;QAED,IAAI,KAAK,CAAC,SAAS,EAAE;AACnB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;AACjC,SAAA;QAED,IAAI,KAAK,CAAC,aAAa,EAAE;AACvB,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAA;AACzC,SAAA;AACH,KAAC,CAAA;AACF,CAAA;AAED,MAAM,MAAM,GAAG,IAAI,aAAa,GAAE;AAElC,MAAM,EAAE,IAAI,EAAE,GAAG;;ACnDjB,MAAM,OAAO,GAAY,CAAC,KAAK,KAAI;AACjC,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,IAAI,CAAA;AAEvB,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,OAAO,IAAW,CAAA;AACnB,KAAA;AAED,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9C,QAAA,OAAO,IAAI,CAAA;AACZ,KAAA;AAED,IAAA,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,EAAE;AACtE,QAAA,OAAO,IAAI,CAAA;AACZ,KAAA;AAED,IAAA,OAAO,KAAK,CAAA;AACd;;ACfA,MAAM,OAAO,GAAG,aAAa,CAAM,EAAE,EAAC;AACtC,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAA;AAgB1C,MAAM,QAAQ,GAAqB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,KAAI;AACnE,IAAA,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;;AAG3D,IAAA,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,EAAG,QAAQ,CAAI,CAAA;AAEpD,IAAA,IAAI,gBAAgB,EAAE;QACpB,QACE,KAAC,CAAA,aAAA,CAAA,iBAAiB,EAAC,EAAA,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAA;YAC3C,KAAC,CAAA,aAAA,CAAA,gBAAgB,EAAC,EAAA,KAAK,EAAE,KAAK,IAAG,QAAQ,CAAoB,CAC3C,EACrB;AACF,KAAA;AAED,IAAA,QACE,KAAC,CAAA,aAAA,CAAA,iBAAiB,EAAC,EAAA,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAA,EAC1C,QAAQ,CACS,EACrB;AACH;;ACzCA;AACA;AAmBA,MAAM,OAAO,GACX,CAAyB,GAAG,GAAM,KAClC,CAAC,CAA0B,KACzB,GAAG,CAAC,WAAW,CAAC,CAAC,GAAQ,EAAE,GAAQ,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;;ACRvD,MAAM,MAAM,GAAW,CAAC,OAAO,EAAE,WAAW,KAAI;AAC9C,IAAA,IAAI,CAAC,OAAO;AAAE,QAAA,OAAO,IAAW,CAAA;AAEhC,IAAA,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACzC,MAAM,MAAM,GAAG,CAAC,OAAO,KACrB,WAAW,GAAG,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;AAE5E,IAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,SAAS,EAAE;AAC5C,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;AACvB,KAAA;AAED,IAAA,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,OAAO,CAAC,EAAE;AACtE,QAAA,OAAO,OAAO,CAAA;AACf,KAAA;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE;AACjD,QAAA,OAAO,OAAO,CAAA;AACf,KAAA;AAED,IAAA,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE;AAC/B,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;AACvB,KAAA;AAED,IAAA,IAAI,SAAS,EAAE;AACb,QAAA,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE;AACxB,YAAA,OAAO,OAAO,CAAA;AACf,SAAA;AAED,QAAA,OAAO,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;AAC1C,KAAA;AAED,IAAA,OAAO,OAAO,CAAA;AAChB;;AC/CA,MAAM,IAAI,GAAG;IACX,GAAG;IACH,MAAM;;IAEN,SAAS;;IAET,MAAM;IACN,SAAS;IACT,OAAO;IACP,OAAO;IACP,GAAG;;;IAGH,KAAK;IACL,KAAK;IACL,KAAK;IACL,YAAY;IACZ,MAAM;IACN,IAAI;IACJ,QAAQ;IACR,QAAQ;IACR,SAAS;;IAET,MAAM;IACN,MAAM;IACN,KAAK;IACL,UAAU;IACV,MAAM;IACN,UAAU;IACV,IAAI;IACJ,KAAK;IACL,SAAS;IACT,KAAK;IACL,QAAQ;;IAER,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,OAAO;IACP,UAAU;IACV,YAAY;IACZ,QAAQ;;IAER,QAAQ;IACR,MAAM;;;IAGN,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;;IAEJ,QAAQ;IACR,IAAI;IACJ,MAAM;IACN,GAAG;IACH,QAAQ;IACR,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,OAAO;IACP,QAAQ;IACR,IAAI;;IAEJ,MAAM;IACN,KAAK;IACL,MAAM;;IAEN,OAAO;IACP,KAAK;;;IAGL,QAAQ;IACR,IAAI;IACJ,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,GAAG;;IAEH,SAAS;IACT,KAAK;IACL,UAAU;IACV,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,GAAG;IACH,MAAM;;IAEN,SAAS;IACT,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,MAAM;;IAEN,QAAQ;;IAER,KAAK;IACL,SAAS;IACT,KAAK;IACL,KAAK;IACL,OAAO;IACP,OAAO;IACP,IAAI;IACJ,UAAU;IACV,UAAU;IACV,OAAO;IACP,IAAI;IACJ,OAAO;IACP,MAAM;;IAEN,IAAI;IACJ,OAAO;;IAEP,GAAG;IACH,IAAI;IACJ,KAAK;IACL,OAAO;IACP,KAAK;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitus-labs/core",
3
- "version": "0.57.0-alpha.1",
3
+ "version": "0.57.0-alpha.4",
4
4
  "license": "MIT",
5
5
  "author": "Vit Bokisch <vit@bokisch.cz>",
6
6
  "maintainers": [
@@ -58,5 +58,5 @@
58
58
  "@vitus-labs/tools-typescript": "^0.33.0",
59
59
  "styled-components": "^5.3.5"
60
60
  },
61
- "gitHead": "03d796adb63679864933e0259c7c48613602dc78"
61
+ "gitHead": "58e9bb76fd291cf07540b6159fbf6427709a7bfd"
62
62
  }