@faststore/components 2.0.13-alpha.0 → 2.0.15-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,24 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [2.0.15-alpha.0](https://github.com/vtex/faststore/compare/v2.0.14-alpha.0...v2.0.15-alpha.0) (2022-12-14)
7
+
8
+
9
+ ### Features
10
+
11
+ * Adds `List` component ([#1549](https://github.com/vtex/faststore/issues/1549)) ([55858fe](https://github.com/vtex/faststore/commit/55858fe39c254786e7c7a1e1dd3da96ed3be0d16))
12
+
13
+
14
+
15
+ ## [2.0.14-alpha.0](https://github.com/vtex/faststore/compare/v2.0.13-alpha.0...v2.0.14-alpha.0) (2022-12-14)
16
+
17
+
18
+ ### Features
19
+
20
+ * Adds `Link` component ([#1543](https://github.com/vtex/faststore/issues/1543)) ([9c219eb](https://github.com/vtex/faststore/commit/9c219eba996fc6fec90edd1383a4abf8dbe0a7ef))
21
+
22
+
23
+
6
24
  ## [2.0.13-alpha.0](https://github.com/vtex/faststore/compare/v2.0.12-alpha.0...v2.0.13-alpha.0) (2022-12-14)
7
25
 
8
26
 
@@ -0,0 +1,25 @@
1
+ import type { ElementType, ReactElement } from 'react';
2
+ import { PolymorphicComponentPropsWithRef } from '../../typings';
3
+ declare type LinkBaseProps = {
4
+ /**
5
+ * ID to find this component in testing tools (e.g.: cypress, testing library, and jest).
6
+ */
7
+ testId?: string;
8
+ /**
9
+ * Specifies the component variant.
10
+ */
11
+ variant?: 'default' | 'display' | 'inline';
12
+ /**
13
+ * Defines use of inverted color.
14
+ */
15
+ inverse?: boolean;
16
+ /**
17
+ * Defines size os element
18
+ */
19
+ size?: 'small' | 'regular';
20
+ };
21
+ export declare type LinkElementType = ElementType;
22
+ export declare type LinkProps<C extends LinkElementType = 'a'> = PolymorphicComponentPropsWithRef<C, LinkBaseProps>;
23
+ declare type LinkComponent = <C extends LinkElementType = 'a'>(props: LinkProps<C>) => ReactElement | null;
24
+ declare const Link: LinkComponent;
25
+ export default Link;
@@ -0,0 +1,7 @@
1
+ import React, { forwardRef } from 'react';
2
+ const Link = forwardRef(function Link({ as, children, variant = 'default', size = "regular", inverse, testId = 'fs-link', ...otherProps }, ref) {
3
+ const Component = as ?? 'a';
4
+ return (React.createElement(Component, { ref: ref, "data-fs-link": true, "data-fs-link-variant": variant, "data-fs-link-inverse": inverse, "data-fs-link-size": size, "data-testid": testId, ...otherProps }, children));
5
+ });
6
+ export default Link;
7
+ //# sourceMappingURL=Link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Link.js","sourceRoot":"","sources":["../../../src/atoms/Link/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAkCzC,MAAM,IAAI,GAAkB,UAAU,CAAC,SAAS,IAAI,CAGlD,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,GAAC,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,UAAU,EAAgB,EAC/G,GAAuB;IAGvB,MAAM,SAAS,GAAG,EAAE,IAAI,GAAG,CAAA;IAE3B,OAAO,CACL,oBAAC,SAAS,IACR,GAAG,EAAE,GAAG,gDAEc,OAAO,0BACP,OAAO,uBACV,IAAI,iBACV,MAAM,KACf,UAAU,IAEb,QAAQ,CACC,CACb,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,IAAI,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { default } from './Link';
2
+ export type { LinkProps, LinkElementType } from './Link';
@@ -0,0 +1,2 @@
1
+ export { default } from './Link';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/atoms/Link/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA"}
@@ -0,0 +1,16 @@
1
+ import type { ElementType, ReactElement } from 'react';
2
+ import type { PolymorphicComponentPropsWithRef } from '../../typings';
3
+ interface BaseProps {
4
+ /**
5
+ * ID to find this component in testing tools (e.g.: cypress, testing library, and jest).
6
+ */
7
+ testId?: string;
8
+ /**
9
+ * Specify whether or not this component should display the list's markers (bullets or numbers).
10
+ */
11
+ marker?: boolean;
12
+ }
13
+ export declare type ListProps<T extends ElementType> = PolymorphicComponentPropsWithRef<T, BaseProps>;
14
+ declare type ListComponent = <T extends ElementType = 'ul'>(props: ListProps<T>) => ReactElement | null;
15
+ declare const List: ListComponent;
16
+ export default List;
@@ -0,0 +1,7 @@
1
+ import React, { forwardRef } from 'react';
2
+ const List = forwardRef(function List({ as, marker, testId = 'fs-list', ...otherProps }, ref) {
3
+ const Component = as ?? 'ul';
4
+ return (React.createElement(Component, { ref: ref, "data-fs-list": true, "data-testid": testId, "data-fs-list-marker": marker, ...otherProps }));
5
+ });
6
+ export default List;
7
+ //# sourceMappingURL=List.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"List.js","sourceRoot":"","sources":["../../../src/atoms/List/List.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AA4BzC,MAAM,IAAI,GAAkB,UAAU,CAAC,SAAS,IAAI,CAGlD,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,UAAU,EAAgB,EAC/D,GAAsB;IAEtB,MAAM,SAAS,GAAG,EAAE,IAAI,IAAI,CAAA;IAE5B,OAAO,CACL,oBAAC,SAAS,IACR,GAAG,EAAE,GAAG,uCAEK,MAAM,yBACE,MAAM,KACvB,UAAU,GACd,CACH,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,IAAI,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { default } from './List';
2
+ export type { ListProps } from './List';
@@ -0,0 +1,2 @@
1
+ export { default } from './List';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/atoms/List/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export * from './assets';
1
2
  export { default as Badge } from './atoms/Badge';
2
3
  export type { BadgeProps } from './atoms/Badge';
3
4
  export { default as Button } from './atoms/Button';
@@ -10,6 +11,10 @@ export { default as Input } from './atoms/Input';
10
11
  export type { InputProps } from './atoms/Input';
11
12
  export { default as Label } from './atoms/Label';
12
13
  export type { LabelProps } from './atoms/Label';
14
+ export { default as Link } from './atoms/Link';
15
+ export type { LinkProps, LinkElementType } from './atoms/Link';
16
+ export { default as List } from './atoms/List';
17
+ export type { ListProps } from './atoms/List';
13
18
  export { default as Overlay } from './atoms/Overlay';
14
19
  export type { OverlayProps } from './atoms/Overlay';
15
20
  export { default as Price } from './atoms/Price';
package/dist/index.js CHANGED
@@ -1,3 +1,5 @@
1
+ // Assets
2
+ export * from './assets';
1
3
  // Atoms
2
4
  export { default as Badge } from './atoms/Badge';
3
5
  export { default as Button } from './atoms/Button';
@@ -5,6 +7,8 @@ export { default as Checkbox } from './atoms/Checkbox';
5
7
  export { default as Icon } from './atoms/Icon';
6
8
  export { default as Input } from './atoms/Input';
7
9
  export { default as Label } from './atoms/Label';
10
+ export { default as Link } from './atoms/Link';
11
+ export { default as List } from './atoms/List';
8
12
  export { default as Overlay } from './atoms/Overlay';
9
13
  export { default as Price } from './atoms/Price';
10
14
  export { default as Radio } from './atoms/Radio';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAElD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAEpD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAGlD,YAAY;AACZ,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAEpE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAE9D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAEpE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAE9D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAE9D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAEhE,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,cAAc,UAAU,CAAA;AAExB,QAAQ;AACR,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAElD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAEpD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAGlD,YAAY;AACZ,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAEpE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAE9D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAEpE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAE9D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAE9D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAEhE,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * These were heavily inspired by "Forwarding refs for a polymorphic React
3
+ * component in TypeScript", written by Ben Ilegbodu.
4
+ *
5
+ * Article link: https://www.benmvp.com/blog/forwarding-refs-polymorphic-react-component-typescript/
6
+ */
7
+ import type { ComponentPropsWithoutRef, ComponentPropsWithRef, ElementType } from 'react';
8
+ declare type AsProp<C extends ElementType> = {
9
+ as?: C;
10
+ };
11
+ /**
12
+ * Allows for extending a set of props (`ExtendedProps`) by an overriding set of props
13
+ * (`OverrideProps`), ensuring that any duplicates are overridden by the overriding
14
+ * set of props.
15
+ */
16
+ declare type ExtendableProps<ExtendedProps = Record<string, never>, OverrideProps = Record<string, never>> = OverrideProps & Omit<ExtendedProps, keyof OverrideProps>;
17
+ /**
18
+ * Allows for inheriting the props from the specified element type so that
19
+ * props like children, className & style work, as well as element-specific
20
+ * attributes like aria roles. The component (`C`) must be passed in.
21
+ */
22
+ declare type InheritableElementProps<C extends ElementType, Props = Record<string, never>> = ExtendableProps<ComponentPropsWithoutRef<C>, Props>;
23
+ export declare type PolymorphicComponentProps<C extends ElementType, Props = Record<string, never>> = InheritableElementProps<C, Props & AsProp<C>>;
24
+ export declare type PolymorphicComponentPropsWithRef<C extends ElementType, P = Record<string, never>> = PolymorphicComponentProps<C, P> & {
25
+ ref?: ComponentPropsWithRef<C>['ref'];
26
+ };
27
+ export declare type PolymorphicRef<C extends ElementType> = PolymorphicComponentPropsWithRef<C>['ref'];
28
+ export {};
@@ -0,0 +1,8 @@
1
+ /**
2
+ * These were heavily inspired by "Forwarding refs for a polymorphic React
3
+ * component in TypeScript", written by Ben Ilegbodu.
4
+ *
5
+ * Article link: https://www.benmvp.com/blog/forwarding-refs-polymorphic-react-component-typescript/
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=PolymorphicGenerics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolymorphicGenerics.js","sourceRoot":"","sources":["../../src/typings/PolymorphicGenerics.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1 @@
1
+ export type { PolymorphicRef, PolymorphicComponentProps, PolymorphicComponentPropsWithRef, } from './PolymorphicGenerics';
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/typings/index.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/components",
3
- "version": "2.0.13-alpha.0",
3
+ "version": "2.0.15-alpha.0",
4
4
  "module": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
6
6
  "author": "Emerson Laurentino @emersonlaurentino",
@@ -28,5 +28,5 @@
28
28
  "node": "16.18.0",
29
29
  "yarn": "1.19.1"
30
30
  },
31
- "gitHead": "c513c94b5b36c43355224db4c179cbe4362117ea"
31
+ "gitHead": "9b72e9d993f45bf072144751654854a11e099d17"
32
32
  }
@@ -0,0 +1,59 @@
1
+ import React, { forwardRef } from 'react'
2
+ import type { ElementType, ReactElement } from 'react'
3
+ import { PolymorphicComponentPropsWithRef, PolymorphicRef } from '../../typings'
4
+
5
+ type LinkBaseProps = {
6
+ /**
7
+ * ID to find this component in testing tools (e.g.: cypress, testing library, and jest).
8
+ */
9
+ testId?: string
10
+ /**
11
+ * Specifies the component variant.
12
+ */
13
+ variant?: 'default' | 'display' | 'inline'
14
+ /**
15
+ * Defines use of inverted color.
16
+ */
17
+ inverse?: boolean
18
+ /**
19
+ * Defines size os element
20
+ */
21
+ size?: 'small' | 'regular'
22
+ }
23
+
24
+ export type LinkElementType = ElementType
25
+
26
+ export type LinkProps<C extends LinkElementType = 'a'> = PolymorphicComponentPropsWithRef<
27
+ C,
28
+ LinkBaseProps
29
+ >
30
+
31
+ type LinkComponent = <C extends LinkElementType = 'a'>(
32
+ props: LinkProps<C>
33
+ ) => ReactElement | null
34
+
35
+ const Link: LinkComponent = forwardRef(function Link<
36
+ C extends LinkElementType = 'a'
37
+ >(
38
+ { as, children, variant = 'default', size="regular", inverse, testId = 'fs-link', ...otherProps }: LinkProps<C>,
39
+ ref?: PolymorphicRef<C>
40
+ ) {
41
+
42
+ const Component = as ?? 'a'
43
+
44
+ return (
45
+ <Component
46
+ ref={ref}
47
+ data-fs-link
48
+ data-fs-link-variant={variant}
49
+ data-fs-link-inverse={inverse}
50
+ data-fs-link-size={size}
51
+ data-testid={testId}
52
+ {...otherProps}
53
+ >
54
+ {children}
55
+ </Component>
56
+ )
57
+ })
58
+
59
+ export default Link
@@ -0,0 +1,2 @@
1
+ export { default } from './Link'
2
+ export type { LinkProps, LinkElementType } from './Link'
@@ -0,0 +1,48 @@
1
+ import React, { forwardRef } from 'react'
2
+ import type { ElementType, ReactElement } from 'react'
3
+
4
+ import type {
5
+ PolymorphicRef,
6
+ PolymorphicComponentPropsWithRef,
7
+ } from '../../typings'
8
+
9
+ interface BaseProps {
10
+ /**
11
+ * ID to find this component in testing tools (e.g.: cypress, testing library, and jest).
12
+ */
13
+ testId?: string
14
+ /**
15
+ * Specify whether or not this component should display the list's markers (bullets or numbers).
16
+ */
17
+ marker?: boolean
18
+ }
19
+
20
+ export type ListProps<T extends ElementType> = PolymorphicComponentPropsWithRef<
21
+ T,
22
+ BaseProps
23
+ >
24
+
25
+ type ListComponent = <T extends ElementType = 'ul'>(
26
+ props: ListProps<T>
27
+ ) => ReactElement | null
28
+
29
+ const List: ListComponent = forwardRef(function List<
30
+ T extends ElementType = 'ul'
31
+ >(
32
+ { as, marker, testId = 'fs-list', ...otherProps }: ListProps<T>,
33
+ ref: PolymorphicRef<T>
34
+ ) {
35
+ const Component = as ?? 'ul'
36
+
37
+ return (
38
+ <Component
39
+ ref={ref}
40
+ data-fs-list
41
+ data-testid={testId}
42
+ data-fs-list-marker={marker}
43
+ {...otherProps}
44
+ />
45
+ )
46
+ })
47
+
48
+ export default List
@@ -0,0 +1,2 @@
1
+ export { default } from './List'
2
+ export type { ListProps } from './List'
package/src/index.ts CHANGED
@@ -1,3 +1,6 @@
1
+ // Assets
2
+ export * from './assets'
3
+
1
4
  // Atoms
2
5
  export { default as Badge } from './atoms/Badge'
3
6
  export type { BadgeProps } from './atoms/Badge'
@@ -11,6 +14,10 @@ export { default as Input } from './atoms/Input'
11
14
  export type { InputProps } from './atoms/Input'
12
15
  export { default as Label } from './atoms/Label'
13
16
  export type { LabelProps } from './atoms/Label'
17
+ export { default as Link } from './atoms/Link'
18
+ export type { LinkProps, LinkElementType } from './atoms/Link'
19
+ export { default as List } from './atoms/List'
20
+ export type { ListProps } from './atoms/List'
14
21
  export { default as Overlay } from './atoms/Overlay'
15
22
  export type { OverlayProps } from './atoms/Overlay'
16
23
  export { default as Price } from './atoms/Price'
@@ -0,0 +1,50 @@
1
+ /**
2
+ * These were heavily inspired by "Forwarding refs for a polymorphic React
3
+ * component in TypeScript", written by Ben Ilegbodu.
4
+ *
5
+ * Article link: https://www.benmvp.com/blog/forwarding-refs-polymorphic-react-component-typescript/
6
+ */
7
+
8
+ import type {
9
+ ComponentPropsWithoutRef,
10
+ ComponentPropsWithRef,
11
+ ElementType,
12
+ } from 'react'
13
+
14
+ type AsProp<C extends ElementType> = {
15
+ as?: C
16
+ }
17
+
18
+ /**
19
+ * Allows for extending a set of props (`ExtendedProps`) by an overriding set of props
20
+ * (`OverrideProps`), ensuring that any duplicates are overridden by the overriding
21
+ * set of props.
22
+ */
23
+ type ExtendableProps<
24
+ ExtendedProps = Record<string, never>,
25
+ OverrideProps = Record<string, never>
26
+ > = OverrideProps & Omit<ExtendedProps, keyof OverrideProps>
27
+
28
+ /**
29
+ * Allows for inheriting the props from the specified element type so that
30
+ * props like children, className & style work, as well as element-specific
31
+ * attributes like aria roles. The component (`C`) must be passed in.
32
+ */
33
+ type InheritableElementProps<
34
+ C extends ElementType,
35
+ Props = Record<string, never>
36
+ > = ExtendableProps<ComponentPropsWithoutRef<C>, Props>
37
+
38
+ export type PolymorphicComponentProps<
39
+ C extends ElementType,
40
+ Props = Record<string, never>
41
+ > = InheritableElementProps<C, Props & AsProp<C>>
42
+
43
+ export type PolymorphicComponentPropsWithRef<
44
+ C extends ElementType,
45
+ P = Record<string, never>
46
+ > = PolymorphicComponentProps<C, P> & { ref?: ComponentPropsWithRef<C>['ref'] }
47
+
48
+ // Extract the `ref` prop from a polymorphic component
49
+ export type PolymorphicRef<C extends ElementType> =
50
+ PolymorphicComponentPropsWithRef<C>['ref']
@@ -0,0 +1,5 @@
1
+ export type {
2
+ PolymorphicRef,
3
+ PolymorphicComponentProps,
4
+ PolymorphicComponentPropsWithRef,
5
+ } from './PolymorphicGenerics'