@vitus-labs/core 1.2.2 → 1.2.3-alpha.3

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.
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/config.ts","../src/isEmpty.ts","../src/context.tsx","../src/compose.ts","../src/render.ts","../src/html/htmlTags.ts"],"sourcesContent":["import { styled, css, ThemeProvider } from 'styled-components'\nimport type { ComponentType } from 'react'\nimport type { HTMLTags } from '~/html'\n\ninterface Internal {\n css: typeof css\n styled: typeof styled\n provider: typeof ThemeProvider\n component: ComponentType | HTMLTags\n textComponent: ComponentType | HTMLTags\n}\n\nclass Configuration {\n css: Internal['css']\n\n styled: Internal['styled']\n\n ExternalProvider: Internal['provider']\n\n component: Internal['component'] = 'div'\n\n textComponent: Internal['textComponent'] = 'span'\n\n constructor(props: Internal) {\n this.css = props.css\n this.styled = props.styled\n this.ExternalProvider = props.provider\n this.component = props.component\n this.textComponent = props.textComponent\n }\n\n init = (props: Partial<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.ExternalProvider = 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 defaultParams = {\n css,\n styled,\n provider: ThemeProvider,\n component: 'div',\n textComponent: 'span',\n} as const\n\nconst config = new Configuration(defaultParams)\n\nconst { init } = config\n\nexport default config\nexport { init }\n","export type IsEmpty = <\n T extends Record<number | string, any> | any[] | null | undefined,\n>(\n param: T,\n) => T extends null | undefined\n ? true\n : keyof T extends never\n ? true\n : T extends T[]\n ? T[number] extends never\n ? true\n : false\n : false\n\nconst isEmpty: IsEmpty = (param) => {\n if (!param || param === null) return true\n\n if (typeof param !== 'object') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\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, useMemo } from 'react'\nimport type { FC, 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.ExternalProvider, [])\n const context = useMemo(() => ({ theme, ...props }), [theme, props])\n\n // eslint-disable-next-line react/jsx-no-useless-fragment\n if (isEmpty(theme) || !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","type 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\n\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 // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call\n fns.reduceRight((acc: any, cur: any) => cur(acc), p)\n\nexport default compose\n","import { createElement, isValidElement, cloneElement } from 'react'\nimport type { ReactNode } from 'react'\nimport { isValidElementType, isFragment } from 'react-is'\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 // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n if (!content) return null as any\n\n const isValidEl = isValidElement(content)\n\n const render = (child: Parameters<typeof createElement>[0]) =>\n attachProps ? createElement(child, attachProps) : createElement(child)\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 HTML_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 HTML_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 HTML_TAGS)[number]\n\nexport type HTMLTextTags = (typeof HTML_TEXT_TAGS)[number]\n\nexport { HTML_TAGS, HTML_TEXT_TAGS }\n"],"names":[],"mappings":";;;;;;AAYA,MAAM,aAAa,CAAA;AACjB,IAAA,GAAG;AAEH,IAAA,MAAM;AAEN,IAAA,gBAAgB;IAEhB,SAAS,GAA0B,KAAK;IAExC,aAAa,GAA8B,MAAM;AAEjD,IAAA,WAAA,CAAY,KAAe,EAAA;AACzB,QAAA,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,QAAQ;AACtC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;AAChC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa;IAC1C;AAEA,IAAA,IAAI,GAAG,CAAC,KAAwB,KAAI;AAClC,QAAA,IAAI,KAAK,CAAC,GAAG,EAAE;AACb,YAAA,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG;QACtB;AAEA,QAAA,IAAI,KAAK,CAAC,MAAM,EAAE;AAChB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;QAC5B;AAEA,QAAA,IAAI,KAAK,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,QAAQ;QACxC;AAEA,QAAA,IAAI,KAAK,CAAC,SAAS,EAAE;AACnB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;QAClC;AAEA,QAAA,IAAI,KAAK,CAAC,aAAa,EAAE;AACvB,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa;QAC1C;AACF,IAAA,CAAC;AACF;AAED,MAAM,aAAa,GAAG;IACpB,GAAG;IACH,MAAM;AACN,IAAA,QAAQ,EAAE,aAAa;AACvB,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,aAAa,EAAE,MAAM;CACb;AAEV,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,aAAa;AAE9C,MAAM,EAAE,IAAI,EAAE,GAAG;;AClDjB,MAAM,OAAO,GAAY,CAAC,KAAK,KAAI;AACjC,IAAA,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI;AAAE,QAAA,OAAO,IAAI;AAEzC,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;;AAE7B,QAAA,OAAO,IAAW;IACpB;AAEA,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9C,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,EAAE;AACtE,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,OAAO,KAAK;AACd;;ACzBA,MAAM,OAAO,GAAG,aAAa,CAAM,EAAE;AACrC,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ;AAgB1C,MAAM,QAAQ,GAAqB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,KAAI;AACnE,IAAA,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,MAAM,CAAC,gBAAgB,EAAE,EAAE,CAAC;IACnE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;;AAGpE,IAAA,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK;QAAE,OAAO,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,EAAG,QAAQ,CAAI;IAEpD,IAAI,gBAAgB,EAAE;AACpB,QAAA,QACE,KAAA,CAAA,aAAA,CAAC,iBAAiB,EAAA,EAAC,KAAK,EAAE,OAAO,EAAA;YAC/B,KAAA,CAAA,aAAA,CAAC,gBAAgB,EAAA,EAAC,KAAK,EAAE,KAAK,IAAG,QAAQ,CAAoB,CAC3C;IAExB;IAEA,OAAO,KAAA,CAAA,aAAA,CAAC,iBAAiB,EAAA,EAAC,KAAK,EAAE,OAAO,EAAA,EAAG,QAAQ,CAAqB;AAC1E;;AC3BA,MAAM,OAAO,GACX,CAAyB,GAAG,GAAM,KAClC,CAAC,CAA0B;AACzB;AACA,GAAG,CAAC,WAAW,CAAC,CAAC,GAAQ,EAAE,GAAQ,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;;ACAvD,MAAM,MAAM,GAAW,CAAC,OAAO,EAAE,WAAW,KAAI;;AAE9C,IAAA,IAAI,CAAC,OAAO;AAAE,QAAA,OAAO,IAAW;AAEhC,IAAA,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC;IAEzC,MAAM,MAAM,GAAG,CAAC,KAA0C,KACxD,WAAW,GAAG,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC;AAExE,IAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,SAAS,EAAE;AAC5C,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB;AAEA,IAAA,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,OAAO,CAAC,EAAE;AACtE,QAAA,OAAO,OAAO;IAChB;AAEA,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE;AACjD,QAAA,OAAO,OAAO;IAChB;AAEA,IAAA,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE;AAC/B,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB;IAEA,IAAI,SAAS,EAAE;AACb,QAAA,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE;AACxB,YAAA,OAAO,OAAO;QAChB;AAEA,QAAA,OAAO,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC;IAC3C;AAEA,IAAA,OAAO,OAAO;AAChB;;AClDA,MAAM,SAAS,GAAG;IAChB,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;;AAGP,MAAM,cAAc,GAAG;IACrB,MAAM;IACN,GAAG;IACH,KAAK;IACL,KAAK;IACL,KAAK;IACL,YAAY;IACZ,MAAM;IACN,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,YAAY;IACZ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,GAAG;IACH,KAAK;IACL,KAAK;IACL,OAAO;IACP,QAAQ;IACR,IAAI;IACJ,GAAG;IACH,KAAK;IACL,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,GAAG;IACH,OAAO;IACP,MAAM;IACN,QAAQ;IACR,KAAK;IACL,SAAS;IACT,KAAK;IACL,MAAM;IACN,GAAG;;;;;"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/compose.ts","../src/config.ts","../src/isEmpty.ts","../src/context.tsx","../src/hoistNonReactStatics.ts","../src/html/htmlTags.ts","../src/render.ts","../src/utils.ts"],"sourcesContent":["type ArityOneFn = (arg: any) => any\n\n/** Extracts the last function from a tuple type. */\ntype PickLastInTuple<T extends any[]> = T extends [\n ...rest: infer _U,\n argn: infer L,\n]\n ? L\n : any\n\n/** Parameter type of the rightmost (first-applied) function. */\ntype FirstFnParameterType<T extends any[]> = Parameters<PickLastInTuple<T>>[any]\n/** Return type of the leftmost (last-applied) function. */\ntype LastFnReturnType<T extends any[]> = ReturnType<T[0]>\n\n/**\n * Right-to-left function composition.\n * `compose(f, g, h)(x)` === `f(g(h(x)))`.\n *\n * Used throughout the system to build HOC chains —\n * `compose(attrsHoc, userHoc1, userHoc2)(Component)`.\n */\nconst compose =\n <T extends ArityOneFn[]>(...fns: T) =>\n (p: FirstFnParameterType<T>): LastFnReturnType<T> =>\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call\n fns.reduceRight((acc: any, cur: any) => cur(acc), p)\n\nexport default compose\n","import type { ComponentType } from 'react'\nimport { css, styled, ThemeProvider } from 'styled-components'\nimport type { HTMLTags } from '~/html'\n\n/**\n * Singleton configuration that bridges the UI system with styled-components.\n * All packages reference `config.css`, `config.styled`, etc. so the styling\n * engine can be swapped at runtime (e.g. for React Native) via `init()`.\n */\ninterface Internal {\n css: typeof css\n styled: typeof styled\n provider: typeof ThemeProvider\n component: ComponentType | HTMLTags\n textComponent: ComponentType | HTMLTags\n}\n\nclass Configuration {\n css: Internal['css']\n\n styled: Internal['styled']\n\n ExternalProvider: Internal['provider']\n\n component: Internal['component'] = 'div'\n\n textComponent: Internal['textComponent'] = 'span'\n\n constructor(props: Internal) {\n this.css = props.css\n this.styled = props.styled\n this.ExternalProvider = props.provider\n this.component = props.component\n this.textComponent = props.textComponent\n }\n\n init = (props: Partial<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.ExternalProvider = 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 defaultParams = {\n css,\n styled,\n provider: ThemeProvider,\n component: 'div',\n textComponent: 'span',\n} as const\n\nconst config = new Configuration(defaultParams)\n\nconst { init } = config\n\nexport default config\nexport { init }\n","/**\n * Type-safe emptiness check for objects, arrays, null, and undefined.\n * Returns `true` for null, undefined, empty objects `{}`, and empty arrays `[]`.\n * Non-object primitives (string, number) also return `true` as any.\n */\nexport type IsEmpty = <\n T extends Record<number | string, any> | any[] | null | undefined,\n>(\n param: T,\n) => T extends null | undefined\n ? true\n : keyof T extends never\n ? true\n : T extends T[]\n ? T[number] extends never\n ? true\n : false\n : false\n\nconst isEmpty: IsEmpty = (param) => {\n if (!param) return true\n\n if (typeof param !== 'object') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return true as any\n }\n\n if (Array.isArray(param)) {\n return param.length === 0\n }\n\n return Object.keys(param).length === 0\n}\n\nexport default isEmpty\n","import type { FC, ReactNode } from 'react'\nimport { createContext, useMemo } from 'react'\nimport config from '~/config'\nimport isEmpty from '~/isEmpty'\nimport type { Breakpoints } from '~/types'\n\n/**\n * Internal React context shared across all @vitus-labs packages.\n * Carries the theme object plus any extra provider props.\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\n/**\n * Dual-layer provider that feeds both the internal VitusLabs context\n * and an optional external styling provider (e.g. styled-components'\n * ThemeProvider). When no theme is supplied, renders children directly.\n */\nconst Provider: FC<ProviderType> = ({ theme, children, ...props }) => {\n const ExternalProvider = useMemo(() => config.ExternalProvider, [])\n const context = useMemo(\n () => ({ theme, ...props }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [theme, ...Object.values(props), props],\n )\n\n // eslint-disable-next-line react/jsx-no-useless-fragment\n if (isEmpty(theme) || !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","import { isMemo } from 'react-is'\n\nconst REACT_STATICS: Record<string, true> = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true,\n}\n\nconst KNOWN_STATICS: Record<string, true> = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true,\n}\n\nconst FORWARD_REF_STATICS: Record<string, true> = {\n $$typeof: true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n}\n\nconst MEMO_STATICS: Record<string, true> = {\n $$typeof: true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true,\n}\n\nconst TYPE_STATICS: Record<string | symbol, Record<string, true>> = {}\n\n// Symbol.for matches what react-is uses internally\nTYPE_STATICS[Symbol.for('react.forward_ref')] = FORWARD_REF_STATICS\nTYPE_STATICS[Symbol.for('react.memo')] = MEMO_STATICS\n\nconst getStatics = (component: any): Record<string, true> => {\n if (isMemo(component)) return MEMO_STATICS\n return TYPE_STATICS[component.$$typeof] || REACT_STATICS\n}\n\nconst hoistNonReactStatics = <T, S>(\n target: T,\n source: S,\n excludeList?: Record<string, true>,\n): T => {\n if (typeof source === 'string') return target\n\n const proto = Object.getPrototypeOf(source)\n if (proto && proto !== Object.prototype) {\n hoistNonReactStatics(target, proto, excludeList)\n }\n\n const keys: (string | symbol)[] = [\n ...Object.getOwnPropertyNames(source),\n ...Object.getOwnPropertySymbols(source),\n ]\n\n const targetStatics = getStatics(target)\n const sourceStatics = getStatics(source)\n\n for (const key of keys) {\n const k = key as string\n if (\n KNOWN_STATICS[k] ||\n excludeList?.[k] ||\n sourceStatics[k] ||\n targetStatics[k]\n ) {\n continue\n }\n\n const descriptor = Object.getOwnPropertyDescriptor(source, key)\n if (descriptor) {\n try {\n Object.defineProperty(target, key, descriptor)\n } catch {\n // Silently skip non-configurable properties\n }\n }\n }\n\n return target\n}\n\nexport default hoistNonReactStatics\n","const HTML_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 HTML_TEXT_TAGS = [\n 'abbr',\n 'b',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'cite',\n 'code',\n 'del',\n 'div',\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 HTML_TAGS)[number]\n\nexport type HTMLTextTags = (typeof HTML_TEXT_TAGS)[number]\n\nexport { HTML_TAGS, HTML_TEXT_TAGS }\n","import type { ReactNode } from 'react'\nimport { cloneElement, createElement, isValidElement } from 'react'\nimport { isFragment, isValidElementType } from 'react-is'\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\n/**\n * Flexible element renderer that handles multiple content types:\n * - Primitives (string, number) — returned as-is\n * - Arrays and fragments — returned as-is\n * - Component types (class/function) — created via `createElement`\n * - Valid elements — cloned with `attachProps` if provided\n * - Falsy values — return null\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 // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n if (!content) return null as any\n\n const render = (child: Parameters<typeof createElement>[0]) =>\n attachProps ? createElement(child, attachProps) : createElement(child)\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 (isValidElement(content)) {\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","// --------------------------------------------------------\n// omit — create a new object without the specified keys.\n// Accepts nullable input for convenience (returns `{}`).\n// Uses a Set for O(1) key lookup.\n// --------------------------------------------------------\nexport const omit = <T extends Record<string, any>>(\n obj: T | null | undefined,\n keys?: readonly (string | keyof T)[],\n): Partial<T> => {\n if (obj == null) return {} as Partial<T>\n if (!keys || keys.length === 0) return { ...obj }\n\n const result: Record<string, any> = {}\n const keysSet = new Set(keys as readonly string[])\n\n for (const key in obj) {\n if (Object.hasOwn(obj, key) && !keysSet.has(key)) {\n result[key] = obj[key]\n }\n }\n\n return result as Partial<T>\n}\n\n// --------------------------------------------------------\n// pick — create a new object with only the specified keys.\n// Accepts nullable input for convenience (returns `{}`).\n// When no keys given, returns a shallow copy of the whole object.\n// --------------------------------------------------------\nexport const pick = <T extends Record<string, any>>(\n obj: T | null | undefined,\n keys?: readonly (string | keyof T)[],\n): Partial<T> => {\n if (obj == null) return {} as Partial<T>\n if (!keys || keys.length === 0) return { ...obj }\n\n const result: Record<string, any> = {}\n\n for (const key of keys) {\n const k = key as string\n if (Object.hasOwn(obj, k)) {\n result[k] = obj[k]\n }\n }\n\n return result as Partial<T>\n}\n\n// --------------------------------------------------------\n// get — retrieve a nested value by dot/bracket path.\n// e.g. get(obj, 'a.b.c') or get(obj, 'a.children[0]')\n// Returns `defaultValue` when any segment is null/undefined.\n// --------------------------------------------------------\nconst PATH_RE = /[^.[\\]]+/g\n\n/** Split a dot/bracket path string into individual key tokens. */\nconst parsePath = (path: string | string[]): string[] => {\n if (Array.isArray(path)) return path\n const parts = path.match(PATH_RE)\n return parts ?? []\n}\n\nexport const get = (\n obj: any,\n path: string | string[],\n defaultValue?: any,\n): any => {\n const keys = parsePath(path)\n let result = obj\n\n for (const key of keys) {\n if (result == null) return defaultValue\n result = result[key]\n }\n\n return result === undefined ? defaultValue : result\n}\n\n// --------------------------------------------------------\n// set — set a nested value by path (mutates the object).\n// Auto-creates intermediate objects/arrays as needed.\n// Blocks prototype-pollution keys (__proto__, constructor, prototype).\n// --------------------------------------------------------\nconst UNSAFE_KEYS = new Set(['__proto__', 'prototype', 'constructor'])\n\nexport const set = (\n obj: Record<string, any>,\n path: string | string[],\n value: any,\n): Record<string, any> => {\n const keys = parsePath(path)\n if (keys.some((k) => UNSAFE_KEYS.has(k))) return obj\n\n let current = obj\n for (let i = 0; i < keys.length - 1; i++) {\n const key = keys[i]!\n const nextKey = keys[i + 1]!\n\n if (current[key] == null) {\n // create array if next key is numeric, otherwise object\n current[key] = /^\\d+$/.test(nextKey) ? [] : {}\n }\n\n current = current[key]\n }\n\n const lastKey = keys[keys.length - 1]\n if (lastKey != null) {\n current[lastKey] = value\n }\n\n return obj\n}\n\n// --------------------------------------------------------\n// throttle — limit function execution to at most once per `wait` ms.\n// Trailing calls are preserved: if called during the cooldown, the\n// last invocation fires after the remaining delay.\n// Returns a throttled function with a `.cancel()` method to clear\n// any pending trailing call.\n// --------------------------------------------------------\nexport const throttle = <T extends (...args: any[]) => any>(\n fn: T,\n wait: number = 0,\n): T & { cancel: () => void } => {\n let lastCallTime: number | undefined\n let timeoutId: ReturnType<typeof setTimeout> | undefined\n let lastArgs: any[] | undefined\n\n const throttled = (...args: any[]) => {\n const now = Date.now()\n\n if (lastCallTime === undefined || now - lastCallTime >= wait) {\n lastCallTime = now\n fn(...args)\n } else {\n lastArgs = args\n if (timeoutId === undefined) {\n const remaining = wait - (now - lastCallTime)\n timeoutId = setTimeout(() => {\n lastCallTime = Date.now()\n timeoutId = undefined\n if (lastArgs) {\n fn(...lastArgs)\n lastArgs = undefined\n }\n }, remaining)\n }\n }\n }\n\n throttled.cancel = () => {\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId)\n timeoutId = undefined\n }\n lastArgs = undefined\n lastCallTime = undefined\n }\n\n return throttled as T & { cancel: () => void }\n}\n\n// --------------------------------------------------------\n// merge — deep merge objects (source wins, arrays replaced wholesale).\n// Only plain objects are recursed into; class instances and arrays\n// are assigned by reference. Blocks prototype-pollution keys.\n// --------------------------------------------------------\nconst isPlainObject = (value: unknown): value is Record<string, any> =>\n value !== null &&\n typeof value === 'object' &&\n !Array.isArray(value) &&\n Object.getPrototypeOf(value) === Object.prototype\n\nexport const merge = <T extends Record<string, any>>(\n target: T,\n ...sources: Record<string, any>[]\n): T => {\n for (const source of sources) {\n if (source == null) continue\n\n for (const key of Object.keys(source)) {\n if (key === '__proto__' || key === 'constructor' || key === 'prototype')\n continue\n\n const targetVal = (target as any)[key]\n const sourceVal = source[key]\n\n if (isPlainObject(targetVal) && isPlainObject(sourceVal)) {\n ;(target as any)[key] = merge({ ...targetVal }, sourceVal)\n } else {\n ;(target as any)[key] = sourceVal\n }\n }\n }\n\n return target\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitus-labs/core",
3
- "version": "1.2.2",
3
+ "version": "1.2.3-alpha.3+75e10a0",
4
4
  "license": "MIT",
5
5
  "author": "Vit Bokisch <vit@bokisch.cz>",
6
6
  "maintainers": [
@@ -26,39 +26,34 @@
26
26
  },
27
27
  "repository": {
28
28
  "type": "git",
29
- "url": "git+https://github.com/vitus-labs/ui-system.git"
29
+ "url": "https://github.com/vitus-labs/ui-system",
30
+ "directory": "packages/core"
30
31
  },
31
32
  "bugs": {
32
33
  "url": "https://github.com/vitus-labs/ui-system/issues"
33
34
  },
34
35
  "scripts": {
35
- "dev": "yarn vl_stories",
36
- "prepublish": "yarn build",
37
- "build": "yarn vl_build",
38
- "build:watch": "yarn vl_build-watch",
39
- "lint:css": "stylelint src/*.ts src/*.tsx",
40
- "lint:ts": "eslint src/*",
41
- "lint": "yarn lint:ts",
42
- "test": "jest --runInBand",
43
- "test:coverage": "jest --runInBand --coverage",
44
- "test:watch": "jest --runInBand --watch",
45
- "cover": "coveralls < .coverage/lcov.info"
36
+ "dev": "bun run vl_stories",
37
+ "prepublish": "bun run build",
38
+ "build": "bun run vl_rolldown_build",
39
+ "build:watch": "bun run vl_rolldown_build-watch",
40
+ "lint": "biome check src/",
41
+ "test": "vitest run",
42
+ "test:coverage": "vitest run --coverage",
43
+ "test:watch": "vitest",
44
+ "cover": "coveralls < .coverage/lcov.info",
45
+ "typecheck": "tsc --noEmit"
46
46
  },
47
47
  "peerDependencies": {
48
- "react": ">= 18",
48
+ "react": ">= 19",
49
49
  "styled-components": ">= 6"
50
50
  },
51
51
  "dependencies": {
52
- "lodash-es": "^4.17.22",
53
- "moize": "^6.1.7",
54
52
  "react-is": "^19.2.3"
55
53
  },
56
54
  "devDependencies": {
57
- "@types/lodash-es": "^4.17.12",
58
- "@vitus-labs/tools-babel": "^1.5.1",
59
- "@vitus-labs/tools-rollup": "^1.5.1",
60
- "@vitus-labs/tools-typescript": "^1.5.1",
61
- "styled-components": "^6.2.0"
55
+ "@vitus-labs/tools-rolldown": "^1.6.0",
56
+ "@vitus-labs/tools-typescript": "^1.6.0"
62
57
  },
63
- "gitHead": "7a4d4d7560941675c866162c77a63218684ff850"
58
+ "gitHead": "75e10a00ccc5df2908d4d779e954606dd22aae13"
64
59
  }
@@ -1,10 +0,0 @@
1
- type ArityOneFn = (arg: any) => any;
2
- type PickLastInTuple<T extends any[]> = T extends [
3
- ...rest: infer U,
4
- argn: infer L
5
- ] ? L : any;
6
- type FirstFnParameterType<T extends any[]> = Parameters<PickLastInTuple<T>>[any];
7
- type LastFnReturnType<T extends any[]> = ReturnType<T[0]>;
8
- declare const compose: <T extends ArityOneFn[]>(...fns: T) => (p: FirstFnParameterType<T>) => LastFnReturnType<T>;
9
- export default compose;
10
- //# sourceMappingURL=compose.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/compose.ts"],"names":[],"mappings":"AAAA,KAAK,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAA;AACnC,KAAK,eAAe,CAAC,CAAC,SAAS,GAAG,EAAE,IAAI,CAAC,SAAS;IAEhD,GAAG,IAAI,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,GACG,CAAC,GACD,GAAG,CAAA;AAEP,KAAK,oBAAoB,CAAC,CAAC,SAAS,GAAG,EAAE,IAAI,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AAChF,KAAK,gBAAgB,CAAC,CAAC,SAAS,GAAG,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAEzD,QAAA,MAAM,OAAO,GACV,CAAC,SAAS,UAAU,EAAE,EAAE,GAAG,KAAK,CAAC,MACjC,GAAG,oBAAoB,CAAC,CAAC,CAAC,KAAG,gBAAgB,CAAC,CAAC,CAEM,CAAA;AAExD,eAAe,OAAO,CAAA"}
@@ -1,24 +0,0 @@
1
- import { styled, css, ThemeProvider } from 'styled-components';
2
- import type { ComponentType } from 'react';
3
- import type { HTMLTags } from "./html";
4
- interface Internal {
5
- css: typeof css;
6
- styled: typeof styled;
7
- provider: typeof ThemeProvider;
8
- component: ComponentType | HTMLTags;
9
- textComponent: ComponentType | HTMLTags;
10
- }
11
- declare class Configuration {
12
- css: Internal['css'];
13
- styled: Internal['styled'];
14
- ExternalProvider: Internal['provider'];
15
- component: Internal['component'];
16
- textComponent: Internal['textComponent'];
17
- constructor(props: Internal);
18
- init: (props: Partial<Internal>) => void;
19
- }
20
- declare const config: Configuration;
21
- declare const init: (props: Partial<Internal>) => void;
22
- export default config;
23
- export { init };
24
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAc;AAEtC,UAAU,QAAQ;IAChB,GAAG,EAAE,OAAO,GAAG,CAAA;IACf,MAAM,EAAE,OAAO,MAAM,CAAA;IACrB,QAAQ,EAAE,OAAO,aAAa,CAAA;IAC9B,SAAS,EAAE,aAAa,GAAG,QAAQ,CAAA;IACnC,aAAa,EAAE,aAAa,GAAG,QAAQ,CAAA;CACxC;AAED,cAAM,aAAa;IACjB,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEpB,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAE1B,gBAAgB,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAA;IAEtC,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAQ;IAExC,aAAa,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAS;gBAErC,KAAK,EAAE,QAAQ;IAQ3B,IAAI,GAAI,OAAO,OAAO,CAAC,QAAQ,CAAC,UAoB/B;CACF;AAUD,QAAA,MAAM,MAAM,eAAmC,CAAA;AAE/C,QAAA,MAAQ,IAAI,UAjCK,OAAO,CAAC,QAAQ,CAAC,SAiCX,CAAA;AAEvB,eAAe,MAAM,CAAA;AACrB,OAAO,EAAE,IAAI,EAAE,CAAA"}
@@ -1,16 +0,0 @@
1
- import React from 'react';
2
- import type { FC, ReactNode } from 'react';
3
- import type { Breakpoints } from "./types";
4
- declare const context: React.Context<any>;
5
- type Theme = Partial<{
6
- rootSize: number;
7
- breakpoints: Breakpoints;
8
- } & Record<string, any>>;
9
- type ProviderType = Partial<{
10
- theme: Theme;
11
- children: ReactNode;
12
- } & Record<string, any>>;
13
- declare const Provider: FC<ProviderType>;
14
- export { context };
15
- export default Provider;
16
- //# sourceMappingURL=context.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiC,MAAM,OAAO,CAAA;AACrD,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAG1C,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"}
@@ -1,108 +0,0 @@
1
- import * as React from 'react';
2
- type Base = React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>;
3
- export interface HTMLElementAttrs {
4
- a: React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>;
5
- abbr: Base;
6
- address: Base;
7
- area: React.DetailedHTMLProps<React.AreaHTMLAttributes<HTMLAreaElement>, HTMLAreaElement>;
8
- article: Base;
9
- aside: Base;
10
- audio: React.DetailedHTMLProps<React.AudioHTMLAttributes<HTMLAudioElement>, HTMLAudioElement>;
11
- b: Base;
12
- bdi: Base;
13
- bdo: Base;
14
- big: Base;
15
- blockquote: React.DetailedHTMLProps<React.BlockquoteHTMLAttributes<HTMLQuoteElement>, HTMLQuoteElement>;
16
- body: React.DetailedHTMLProps<React.HTMLAttributes<HTMLBodyElement>, HTMLBodyElement>;
17
- br: React.DetailedHTMLProps<React.HTMLAttributes<HTMLBRElement>, HTMLBRElement>;
18
- button: React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>;
19
- canvas: React.DetailedHTMLProps<React.CanvasHTMLAttributes<HTMLCanvasElement>, HTMLCanvasElement>;
20
- caption: Base;
21
- cite: React.DetailedHTMLProps<React.HTMLAttributes<HTMLQuoteElement>, HTMLQuoteElement>;
22
- code: Base;
23
- col: React.DetailedHTMLProps<React.ColHTMLAttributes<HTMLTableColElement>, HTMLTableColElement>;
24
- colgroup: React.DetailedHTMLProps<React.ColgroupHTMLAttributes<HTMLTableColElement>, HTMLTableColElement>;
25
- data: React.DetailedHTMLProps<React.DataHTMLAttributes<HTMLDataElement>, HTMLDataElement>;
26
- datalist: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDataListElement>, HTMLDataListElement>;
27
- dd: Base;
28
- del: React.DetailedHTMLProps<React.DelHTMLAttributes<HTMLModElement>, HTMLModElement>;
29
- details: Base;
30
- dfn: Base;
31
- dialog: React.DetailedHTMLProps<React.DialogHTMLAttributes<HTMLDialogElement>, HTMLDialogElement>;
32
- div: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>;
33
- dl: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDListElement>, HTMLDListElement>;
34
- dt: Base;
35
- em: Base;
36
- embed: React.DetailedHTMLProps<React.EmbedHTMLAttributes<HTMLEmbedElement>, HTMLEmbedElement>;
37
- fieldset: React.DetailedHTMLProps<React.FieldsetHTMLAttributes<HTMLFieldSetElement>, HTMLFieldSetElement>;
38
- figcaption: Base;
39
- figure: Base;
40
- footer: Base;
41
- form: React.DetailedHTMLProps<React.FormHTMLAttributes<HTMLFormElement>, HTMLFormElement>;
42
- h1: React.DetailedHTMLProps<React.HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>;
43
- h2: React.DetailedHTMLProps<React.HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>;
44
- h3: React.DetailedHTMLProps<React.HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>;
45
- h4: React.DetailedHTMLProps<React.HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>;
46
- h5: React.DetailedHTMLProps<React.HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>;
47
- h6: React.DetailedHTMLProps<React.HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>;
48
- header: Base;
49
- hr: React.DetailedHTMLProps<React.HTMLAttributes<HTMLHRElement>, HTMLHRElement>;
50
- html: React.DetailedHTMLProps<React.HtmlHTMLAttributes<HTMLHtmlElement>, HTMLHtmlElement>;
51
- i: Base;
52
- iframe: React.DetailedHTMLProps<React.IframeHTMLAttributes<HTMLIFrameElement>, HTMLIFrameElement>;
53
- img: React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>;
54
- input: React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>;
55
- ins: React.DetailedHTMLProps<React.InsHTMLAttributes<HTMLModElement>, HTMLModElement>;
56
- kbd: Base;
57
- label: React.DetailedHTMLProps<React.LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>;
58
- legend: React.DetailedHTMLProps<React.HTMLAttributes<HTMLLegendElement>, HTMLLegendElement>;
59
- li: React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>;
60
- main: Base;
61
- map: React.DetailedHTMLProps<React.MapHTMLAttributes<HTMLMapElement>, HTMLMapElement>;
62
- mark: Base;
63
- meter: Base;
64
- nav: Base;
65
- object: React.DetailedHTMLProps<React.ObjectHTMLAttributes<HTMLObjectElement>, HTMLObjectElement>;
66
- ol: React.DetailedHTMLProps<React.OlHTMLAttributes<HTMLOListElement>, HTMLOListElement>;
67
- optgroup: React.DetailedHTMLProps<React.OptgroupHTMLAttributes<HTMLOptGroupElement>, HTMLOptGroupElement>;
68
- option: React.DetailedHTMLProps<React.OptionHTMLAttributes<HTMLOptionElement>, HTMLOptionElement>;
69
- output: Base;
70
- p: React.DetailedHTMLProps<React.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>;
71
- picture: Base;
72
- pre: React.DetailedHTMLProps<React.HTMLAttributes<HTMLPreElement>, HTMLPreElement>;
73
- progress: React.DetailedHTMLProps<React.ProgressHTMLAttributes<HTMLProgressElement>, HTMLProgressElement>;
74
- q: React.DetailedHTMLProps<React.HTMLAttributes<HTMLQuoteElement>, HTMLQuoteElement>;
75
- rp: Base;
76
- rt: Base;
77
- ruby: Base;
78
- s: Base;
79
- samp: Base;
80
- section: Base;
81
- select: React.DetailedHTMLProps<React.SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement>;
82
- small: Base;
83
- source: React.DetailedHTMLProps<React.SourceHTMLAttributes<HTMLSourceElement>, HTMLSourceElement>;
84
- span: React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>;
85
- strong: Base;
86
- sub: Base;
87
- summary: Base;
88
- sup: Base;
89
- svg: React.SVGProps<SVGSVGElement>;
90
- table: React.DetailedHTMLProps<React.TableHTMLAttributes<HTMLTableElement>, HTMLTableElement>;
91
- tbody: React.DetailedHTMLProps<React.HTMLAttributes<HTMLTableSectionElement>, HTMLTableSectionElement>;
92
- td: React.DetailedHTMLProps<React.TdHTMLAttributes<HTMLTableCellElement>, HTMLTableCellElement>;
93
- template: React.DetailedHTMLProps<React.HTMLAttributes<HTMLTemplateElement>, HTMLTemplateElement>;
94
- textarea: React.DetailedHTMLProps<React.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>;
95
- tfoot: React.DetailedHTMLProps<React.HTMLAttributes<HTMLTableSectionElement>, HTMLTableSectionElement>;
96
- th: React.DetailedHTMLProps<React.ThHTMLAttributes<HTMLTableCellElement>, HTMLTableCellElement>;
97
- thead: React.DetailedHTMLProps<React.HTMLAttributes<HTMLTableSectionElement>, HTMLTableSectionElement>;
98
- time: Base;
99
- tr: React.DetailedHTMLProps<React.HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>;
100
- track: React.DetailedHTMLProps<React.TrackHTMLAttributes<HTMLTrackElement>, HTMLTrackElement>;
101
- u: Base;
102
- ul: React.DetailedHTMLProps<React.HTMLAttributes<HTMLUListElement>, HTMLUListElement>;
103
- var: Base;
104
- video: React.DetailedHTMLProps<React.VideoHTMLAttributes<HTMLVideoElement>, HTMLVideoElement>;
105
- wbr: Base;
106
- }
107
- export {};
108
- //# sourceMappingURL=htmlElementAttrs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"htmlElementAttrs.d.ts","sourceRoot":"","sources":["../../../src/html/htmlElementAttrs.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- declare const HTML_TAGS: readonly ["a", "abbr", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "big", "blockquote", "body", "br", "button", "canvas", "caption", "cite", "code", "col", "colgroup", "data", "datalist", "dd", "del", "details", "dfn", "dialog", "div", "dl", "dt", "em", "embed", "fieldset", "figcaption", "figure", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "header", "hr", "html", "i", "iframe", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "meter", "nav", "object", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "section", "select", "small", "source", "span", "strong", "sub", "summary", "sup", "svg", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "track", "u", "ul", "var", "video", "wbr"];
2
- declare const HTML_TEXT_TAGS: readonly ["abbr", "b", "bdi", "bdo", "big", "blockquote", "cite", "code", "dl", "dt", "em", "figcaption", "h1", "h2", "h3", "h4", "h5", "h6", "i", "ins", "kbd", "label", "legend", "li", "p", "pre", "q", "rp", "rt", "s", "small", "span", "strong", "sub", "summary", "sup", "time", "u"];
3
- export type HTMLTags = (typeof HTML_TAGS)[number];
4
- export type HTMLTextTags = (typeof HTML_TEXT_TAGS)[number];
5
- export { HTML_TAGS, HTML_TEXT_TAGS };
6
- //# sourceMappingURL=htmlTags.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"htmlTags.d.ts","sourceRoot":"","sources":["../../../src/html/htmlTags.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,SAAS,k1BA2HL,CAAA;AAEV,QAAA,MAAM,cAAc,8RAuCV,CAAA;AAEV,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAA;AAEjD,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAE1D,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAA"}
@@ -1,7 +0,0 @@
1
- import { HTML_TAGS, HTML_TEXT_TAGS } from './htmlTags';
2
- import type { HTMLTags, HTMLTextTags } from './htmlTags';
3
- import type { HTMLElementAttrs } from './htmlElementAttrs';
4
- type HTMLTagAttrsByTag<T extends HTMLTags> = T extends HTMLTags ? HTMLElementAttrs[T] : {};
5
- export type { HTMLTags, HTMLTextTags, HTMLElementAttrs, HTMLTagAttrsByTag };
6
- export { HTML_TAGS, HTML_TEXT_TAGS };
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/html/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAE1D,KAAK,iBAAiB,CAAC,CAAC,SAAS,QAAQ,IAAI,CAAC,SAAS,QAAQ,GAC3D,gBAAgB,CAAC,CAAC,CAAC,GACnB,EAAE,CAAA;AAEN,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,CAAA;AAE3E,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAA"}
@@ -1,15 +0,0 @@
1
- import { omit, pick, set, get, throttle, merge } from 'lodash-es';
2
- import memoize from 'moize';
3
- import config, { init } from "./config";
4
- import Provider, { context } from "./context";
5
- import compose from "./compose";
6
- import isEmpty from "./isEmpty";
7
- import render from "./render";
8
- import { HTML_TAGS, HTML_TEXT_TAGS } from "./html";
9
- import type { IsEmpty } from "./isEmpty";
10
- import type { Render } from "./render";
11
- import type { HTMLTags, HTMLTextTags, HTMLElementAttrs, HTMLTagAttrsByTag } from "./html";
12
- import type { Breakpoints, BreakpointKeys } from "./types";
13
- export type { Breakpoints, BreakpointKeys, IsEmpty, Render, HTMLTags, HTMLTextTags, HTMLElementAttrs, HTMLTagAttrsByTag, };
14
- export { Provider, context, init, config, compose, isEmpty, render, omit, pick, set, get, throttle, merge, memoize, HTML_TAGS, HTML_TEXT_TAGS, };
15
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AACjE,OAAO,OAAO,MAAM,OAAO,CAAA;AAC3B,OAAO,MAAM,EAAE,EAAE,IAAI,EAAE,iBAAgB;AACvC,OAAO,QAAQ,EAAE,EAAE,OAAO,EAAE,kBAAiB;AAC7C,OAAO,OAAO,kBAAiB;AAC/B,OAAO,OAAO,kBAAiB;AAC/B,OAAO,MAAM,iBAAgB;AAC7B,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,eAAc;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAiB;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,iBAAgB;AACtC,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EAClB,eAAc;AACf,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAe;AAE1D,YAAY,EACV,WAAW,EACX,cAAc,EACd,OAAO,EACP,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,GAClB,CAAA;AAED,OAAO,EACL,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,MAAM,EACN,OAAO,EACP,OAAO,EACP,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,GAAG,EACH,QAAQ,EACR,KAAK,EACL,OAAO,EACP,SAAS,EACT,cAAc,GACf,CAAA"}
@@ -1,4 +0,0 @@
1
- export type IsEmpty = <T extends Record<number | string, any> | any[] | null | undefined>(param: T) => T extends null | undefined ? true : keyof T extends never ? true : T extends T[] ? T[number] extends never ? true : false : false;
2
- declare const isEmpty: IsEmpty;
3
- export default isEmpty;
4
- //# sourceMappingURL=isEmpty.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isEmpty.d.ts","sourceRoot":"","sources":["../../src/isEmpty.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,CACpB,CAAC,SAAS,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,SAAS,EAEjE,KAAK,EAAE,CAAC,KACL,CAAC,SAAS,IAAI,GAAG,SAAS,GAC3B,IAAI,GACJ,MAAM,CAAC,SAAS,KAAK,GACrB,IAAI,GACJ,CAAC,SAAS,CAAC,EAAE,GACb,CAAC,CAAC,MAAM,CAAC,SAAS,KAAK,GACrB,IAAI,GACJ,KAAK,GACP,KAAK,CAAA;AAET,QAAA,MAAM,OAAO,EAAE,OAiBd,CAAA;AAED,eAAe,OAAO,CAAA"}
@@ -1,9 +0,0 @@
1
- import { createElement, cloneElement } from 'react';
2
- import type { ReactNode } from 'react';
3
- type CreateTypes = Parameters<typeof createElement>[0];
4
- type CloneTypes = Parameters<typeof cloneElement>[0];
5
- type RenderProps<T extends Record<string, unknown> | undefined> = (props: Partial<T>) => ReactNode;
6
- export type Render = <T extends Record<string, any> | undefined>(content?: CreateTypes | CloneTypes | ReactNode | ReactNode[] | RenderProps<T>, attachProps?: T) => ReturnType<typeof createElement> | ReturnType<typeof cloneElement> | null;
7
- declare const render: Render;
8
- export default render;
9
- //# sourceMappingURL=render.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,YAAY,EAAE,MAAM,OAAO,CAAA;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;AACtD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;AACpD,KAAK,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,IAAI,CAChE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KACd,SAAS,CAAA;AAEd,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,EAC7D,OAAO,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,EAC7E,WAAW,CAAC,EAAE,CAAC,KACZ,UAAU,CAAC,OAAO,aAAa,CAAC,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,GAAG,IAAI,CAAA;AAE9E,QAAA,MAAM,MAAM,EAAE,MAkCb,CAAA;AAED,eAAe,MAAM,CAAA"}
@@ -1,3 +0,0 @@
1
- export type Breakpoints = Record<string, number>;
2
- export type BreakpointKeys = keyof Breakpoints;
3
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAEhD,MAAM,MAAM,cAAc,GAAG,MAAM,WAAW,CAAA"}