@faststore/components 2.0.16-alpha.0 → 2.0.17-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,15 @@
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.17-alpha.0](https://github.com/vtex/faststore/compare/v2.0.16-alpha.0...v2.0.17-alpha.0) (2022-12-15)
7
+
8
+
9
+ ### Features
10
+
11
+ * Create `LinkButton` component ([#1558](https://github.com/vtex/faststore/issues/1558)) ([bbbebdb](https://github.com/vtex/faststore/commit/bbbebdb081f9c40315d8b661461e3b09a34b84b6))
12
+
13
+
14
+
6
15
  ## [2.0.16-alpha.0](https://github.com/vtex/faststore/compare/v2.0.15-alpha.0...v2.0.16-alpha.0) (2022-12-15)
7
16
 
8
17
 
@@ -10,7 +10,7 @@ interface BaseProps {
10
10
  */
11
11
  marker?: boolean;
12
12
  }
13
- export declare type ListProps<T extends ElementType> = PolymorphicComponentPropsWithRef<T, BaseProps>;
13
+ export declare type ListProps<T extends ElementType = 'ul'> = PolymorphicComponentPropsWithRef<T, BaseProps>;
14
14
  declare type ListComponent = <T extends ElementType = 'ul'>(props: ListProps<T>) => ReactElement | null;
15
15
  declare const List: ListComponent;
16
16
  export default List;
@@ -1 +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"}
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;AA0BzC,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"}
package/dist/index.d.ts CHANGED
@@ -33,6 +33,8 @@ export { default as DiscountBadge } from './molecules/DiscountBadge';
33
33
  export type { DiscountBadgeProps } from './molecules/DiscountBadge';
34
34
  export { default as InputField } from './molecules/InputField';
35
35
  export type { InputFieldProps } from './molecules/InputField';
36
+ export { default as LinkButton } from './molecules/LinkButton';
37
+ export type { LinkButtonProps } from './molecules/LinkButton';
36
38
  export { default as RadioField } from './molecules/RadioField';
37
39
  export type { RadioFieldProps } from './molecules/RadioField';
38
40
  export { default as SelectField } from './molecules/SelectField';
package/dist/index.js CHANGED
@@ -20,6 +20,7 @@ export { default as CheckboxField } from './molecules/CheckboxField';
20
20
  export { default as IconButton } from './molecules/IconButton';
21
21
  export { default as DiscountBadge } from './molecules/DiscountBadge';
22
22
  export { default as InputField } from './molecules/InputField';
23
+ export { default as LinkButton } from './molecules/LinkButton';
23
24
  export { default as RadioField } from './molecules/RadioField';
24
25
  export { default as SelectField } from './molecules/SelectField';
25
26
  export { default as Tag } from './molecules/Tag';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
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;AAElD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAElD,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;AAEhD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,yBAAyB,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;AAElD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAElD,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,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;AAEhD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { AnchorHTMLAttributes } from 'react';
2
+ import type { ButtonProps } from '../..';
3
+ export declare type LinkButtonProps = AnchorHTMLAttributes<HTMLAnchorElement> & ButtonProps;
4
+ declare function LinkButton({ icon, inverse, children, disabled, iconPosition, size, variant, testId, ...otherProps }: LinkButtonProps): JSX.Element;
5
+ export default LinkButton;
@@ -0,0 +1,17 @@
1
+ import React, { useRef } from 'react';
2
+ import { Icon } from '../..';
3
+ function LinkButton({ icon, inverse, children, disabled, iconPosition, size = 'regular', variant = 'primary', testId = 'fs-link-button', ...otherProps }) {
4
+ const linkRef = useRef(null);
5
+ function onFocus(e) {
6
+ e.preventDefault();
7
+ if (disabled) {
8
+ linkRef.current?.blur();
9
+ }
10
+ }
11
+ return (React.createElement("a", { ref: linkRef, onFocus: onFocus, "data-fs-button": true, "data-fs-link-button": true, "data-testid": testId, "data-fs-button-size": size, "data-fs-button-variant": variant, "data-fs-button-inverse": inverse, "data-fs-button-disabled": disabled, ...otherProps },
12
+ iconPosition === 'left' && React.createElement(Icon, { component: icon }),
13
+ children,
14
+ iconPosition === 'right' && React.createElement(Icon, { component: icon })));
15
+ }
16
+ export default LinkButton;
17
+ //# sourceMappingURL=LinkButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkButton.js","sourceRoot":"","sources":["../../../src/molecules/LinkButton/LinkButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAGrC,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAM5B,SAAS,UAAU,CAAC,EAClB,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,IAAI,GAAG,SAAS,EAChB,OAAO,GAAG,SAAS,EACnB,MAAM,GAAG,gBAAgB,EACzB,GAAG,UAAU,EACG;IAChB,MAAM,OAAO,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAA;IAEtD,SAAS,OAAO,CAAC,CAAa;QAC5B,CAAC,CAAC,cAAc,EAAE,CAAA;QAElB,IAAI,QAAQ,EAAE;YACZ,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAA;SACxB;IACH,CAAC;IAED,OAAO,CACL,2BACE,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,OAAO,sEAGH,MAAM,yBACE,IAAI,4BACD,OAAO,4BACP,OAAO,6BACN,QAAQ,KAC7B,UAAU;QAEb,YAAY,KAAK,MAAM,IAAI,oBAAC,IAAI,IAAC,SAAS,EAAE,IAAI,GAAI;QACpD,QAAQ;QACR,YAAY,KAAK,OAAO,IAAI,oBAAC,IAAI,IAAC,SAAS,EAAE,IAAI,GAAI,CACpD,CACL,CAAA;AACH,CAAC;AAED,eAAe,UAAU,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { default } from './LinkButton';
2
+ export type { LinkButtonProps } from './LinkButton';
@@ -0,0 +1,2 @@
1
+ export { default } from './LinkButton';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/molecules/LinkButton/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/components",
3
- "version": "2.0.16-alpha.0",
3
+ "version": "2.0.17-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": "2aa7d4ac5f4c0ad30a900e0239f1bcb5b9ddaab8"
31
+ "gitHead": "63d93423c77df7aadbbd8ba8b5f9d39302e6fd3e"
32
32
  }
@@ -17,10 +17,8 @@ interface BaseProps {
17
17
  marker?: boolean
18
18
  }
19
19
 
20
- export type ListProps<T extends ElementType> = PolymorphicComponentPropsWithRef<
21
- T,
22
- BaseProps
23
- >
20
+ export type ListProps<T extends ElementType = 'ul'> =
21
+ PolymorphicComponentPropsWithRef<T, BaseProps>
24
22
 
25
23
  type ListComponent = <T extends ElementType = 'ul'>(
26
24
  props: ListProps<T>
package/src/index.ts CHANGED
@@ -38,6 +38,8 @@ export { default as DiscountBadge } from './molecules/DiscountBadge'
38
38
  export type { DiscountBadgeProps } from './molecules/DiscountBadge'
39
39
  export { default as InputField } from './molecules/InputField'
40
40
  export type { InputFieldProps } from './molecules/InputField'
41
+ export { default as LinkButton } from './molecules/LinkButton'
42
+ export type { LinkButtonProps } from './molecules/LinkButton'
41
43
  export { default as RadioField } from './molecules/RadioField'
42
44
  export type { RadioFieldProps } from './molecules/RadioField'
43
45
  export { default as SelectField } from './molecules/SelectField'
@@ -0,0 +1,51 @@
1
+ import React, { useRef } from 'react'
2
+ import type { FocusEvent, AnchorHTMLAttributes } from 'react'
3
+
4
+ import { Icon } from '../..'
5
+ import type { ButtonProps } from '../..'
6
+
7
+ export type LinkButtonProps = AnchorHTMLAttributes<HTMLAnchorElement> &
8
+ ButtonProps
9
+
10
+ function LinkButton({
11
+ icon,
12
+ inverse,
13
+ children,
14
+ disabled,
15
+ iconPosition,
16
+ size = 'regular',
17
+ variant = 'primary',
18
+ testId = 'fs-link-button',
19
+ ...otherProps
20
+ }: LinkButtonProps) {
21
+ const linkRef = useRef<HTMLAnchorElement | null>(null)
22
+
23
+ function onFocus(e: FocusEvent) {
24
+ e.preventDefault()
25
+
26
+ if (disabled) {
27
+ linkRef.current?.blur()
28
+ }
29
+ }
30
+
31
+ return (
32
+ <a
33
+ ref={linkRef}
34
+ onFocus={onFocus}
35
+ data-fs-button
36
+ data-fs-link-button
37
+ data-testid={testId}
38
+ data-fs-button-size={size}
39
+ data-fs-button-variant={variant}
40
+ data-fs-button-inverse={inverse}
41
+ data-fs-button-disabled={disabled}
42
+ {...otherProps}
43
+ >
44
+ {iconPosition === 'left' && <Icon component={icon} />}
45
+ {children}
46
+ {iconPosition === 'right' && <Icon component={icon} />}
47
+ </a>
48
+ )
49
+ }
50
+
51
+ export default LinkButton
@@ -0,0 +1,2 @@
1
+ export { default } from './LinkButton'
2
+ export type { LinkButtonProps } from './LinkButton'