@onbeam/ui
Advanced tools
Comparing version 1.0.0-0 to 1.0.0-1
@@ -6,24 +6,9 @@ import * as react from 'react'; | ||
// ---------------------------------------------- | ||
// utility types | ||
// ---------------------------------------------- | ||
type DistributiveOmit<T, K extends keyof any> = T extends any | ||
? Omit<T, K> | ||
: never; | ||
type DistributiveOmit<T, K extends keyof any> = T extends any ? Omit<T, K> : never; | ||
type Merge<A, B> = Omit<A, keyof B> & B; | ||
type DistributiveMerge<A, B> = DistributiveOmit<A, keyof B> & B; | ||
type OnlyAs<T extends React.ElementType> = | ||
| T | ||
// makes sure `ComponentProps<T>` are unknown | ||
| (() => React.ReactElement<never>); | ||
type AsProps< | ||
Component extends React.ElementType, | ||
PermanentProps extends object, | ||
ComponentProps extends object, | ||
> = DistributiveMerge<ComponentProps, PermanentProps & { as?: Component }>; | ||
type OnlyAs<T extends React.ElementType> = T | (() => React.ReactElement<never>); | ||
type AsProps<Component extends React.ElementType, PermanentProps extends object, ComponentProps extends object> = DistributiveMerge<ComponentProps, PermanentProps & { | ||
as?: Component; | ||
}>; | ||
/** | ||
@@ -33,43 +18,11 @@ * make typescript not check PropsWithRef<P> individually. | ||
*/ | ||
type FastComponentPropsWithRef<T extends React.ElementType> = | ||
React.PropsWithRef< | ||
T extends new ( | ||
_props: infer P, | ||
) => React.Component<any, any> | ||
? React.PropsWithoutRef<P> & React.RefAttributes<InstanceType<T>> | ||
: React.ComponentProps<T> | ||
>; | ||
type FastComponentPropsWithRef<T extends React.ElementType> = React.PropsWithRef<T extends new (_props: infer P) => React.Component<any, any> ? React.PropsWithoutRef<P> & React.RefAttributes<InstanceType<T>> : React.ComponentProps<T>>; | ||
type PolymorphicWithRef<Default extends OnlyAs, Props extends object = {}, OnlyAs extends React.ElementType = React.ElementType> = <T extends OnlyAs = Default>(props: AsProps<T, Props, FastComponentPropsWithRef<T>>) => React.ReactElement | null; | ||
type PolyForwardComponent<Default extends OnlyAs, Props extends object = {}, OnlyAs extends React.ElementType = React.ElementType> = Merge<React.ForwardRefExoticComponent<Merge<FastComponentPropsWithRef<Default>, Props & { | ||
as?: Default; | ||
}>>, PolymorphicWithRef<Default, Props, OnlyAs>>; | ||
type PolyRefFunction = <Default extends OnlyAs, Props extends object = {}, OnlyAs extends React.ElementType = React.ElementType>(Component: React.ForwardRefRenderFunction<any, Props & { | ||
as?: OnlyAs; | ||
}>) => PolyForwardComponent<Default, Props, OnlyAs>; | ||
type PolymorphicWithRef< | ||
Default extends OnlyAs, | ||
Props extends object = {}, | ||
OnlyAs extends React.ElementType = React.ElementType, | ||
> = <T extends OnlyAs = Default>( | ||
props: AsProps<T, Props, FastComponentPropsWithRef<T>>, | ||
) => React.ReactElement | null; | ||
type PolyForwardComponent< | ||
Default extends OnlyAs, | ||
Props extends object = {}, | ||
OnlyAs extends React.ElementType = React.ElementType, | ||
> = Merge< | ||
React.ForwardRefExoticComponent< | ||
Merge<FastComponentPropsWithRef<Default>, Props & { as?: Default }> | ||
>, | ||
PolymorphicWithRef<Default, Props, OnlyAs> | ||
>; | ||
// ---------------------------------------------- | ||
// function types | ||
// - got the idea from chakra-ui, cast at your own risk. | ||
// ---------------------------------------------- | ||
type PolyRefFunction = < | ||
Default extends OnlyAs, | ||
Props extends object = {}, | ||
OnlyAs extends React.ElementType = React.ElementType, | ||
>( | ||
Component: React.ForwardRefRenderFunction<any, Props & { as?: OnlyAs }>, | ||
) => PolyForwardComponent<Default, Props, OnlyAs>; | ||
declare const buttonStyle: _onbeam_styled_system_types.SlotRecipeRuntimeFn<"root" | "iconLeft" | "iconRight" | "led", { | ||
@@ -76,0 +29,0 @@ variant: { |
{ | ||
"name": "@onbeam/ui", | ||
"version": "1.0.0-0", | ||
"version": "1.0.0-1", | ||
"sideEffects": false, | ||
@@ -9,7 +9,6 @@ "license": "MIT", | ||
"types": "./dist/index.d.ts", | ||
"files": [ | ||
"dist" | ||
], | ||
"files": ["dist"], | ||
"scripts": { | ||
"build": "tsup src/index.ts --format esm,cjs --dts --external react", | ||
"postbuild": "cp -rv fonts dist/fonts", | ||
"dev": "tsup src/index.ts --format esm,cjs --watch --dts --external react", | ||
@@ -16,0 +15,0 @@ "generate": "pnpm generate:barrels", |
Sorry, the diff of this file is not supported yet
1903192
25
682