@ledgerhq/react-ui 0.4.0 → 0.5.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.
Files changed (57) hide show
  1. package/assets/logos/LedgerLiveAltRegular.d.ts +0 -1
  2. package/assets/logos/LedgerLiveRegular.d.ts +0 -1
  3. package/components/Chart/index.d.ts +0 -1
  4. package/components/Table/Columns.d.ts +60 -11
  5. package/components/Table/Columns.js +6 -16
  6. package/components/Table/index.d.ts +44 -12
  7. package/components/Table/index.js +36 -16
  8. package/components/Table/stories.helper.js +13 -12
  9. package/components/animations/GlitchText/index.d.ts +0 -1
  10. package/components/asorted/Divider/index.d.ts +0 -1
  11. package/components/asorted/Icon/BoxedIcon.d.ts +48 -0
  12. package/components/asorted/Icon/BoxedIcon.js +58 -0
  13. package/components/asorted/Icon/Icon.d.ts +0 -2
  14. package/components/asorted/Icon/Icon.js +0 -7
  15. package/components/asorted/Icon/index.d.ts +3 -1
  16. package/components/asorted/Icon/index.js +3 -1
  17. package/components/cta/Link/index.d.ts +53 -4
  18. package/components/cta/Link/index.js +15 -11
  19. package/components/cta/Toggle/index.d.ts +0 -1
  20. package/components/form/BaseInput/index.d.ts +8 -14
  21. package/components/form/Dropdown/index.d.ts +0 -1
  22. package/components/form/LegendInput/index.d.ts +26 -2
  23. package/components/form/LegendInput/index.js +3 -2
  24. package/components/form/NumberInput/index.d.ts +25 -3
  25. package/components/form/NumberInput/index.js +3 -2
  26. package/components/form/QrCodeInput/index.d.ts +25 -3
  27. package/components/form/QrCodeInput/index.js +3 -2
  28. package/components/form/QuantityInput/index.d.ts +26 -4
  29. package/components/form/QuantityInput/index.js +3 -2
  30. package/components/form/SearchInput/index.d.ts +24 -2
  31. package/components/form/SearchInput/index.js +3 -2
  32. package/components/form/SelectInput/Control.d.ts +2 -2
  33. package/components/form/SelectInput/Control.js +3 -7
  34. package/components/form/SelectInput/DropdownIndicator.d.ts +0 -1
  35. package/components/form/SelectInput/IndicatorsContainer.d.ts +0 -1
  36. package/components/form/SelectInput/MenuList.d.ts +0 -1
  37. package/components/form/SelectInput/index.js +1 -1
  38. package/components/layout/Box/index.d.ts +1 -4
  39. package/components/layout/Flex/index.d.ts +2 -5
  40. package/components/layout/Popin/index.d.ts +4 -10
  41. package/components/layout/Side/index.d.ts +0 -1
  42. package/components/loaders/ProgressLoader/index.d.ts +0 -1
  43. package/components/message/Alert/index.d.ts +22 -3
  44. package/components/message/Alert/index.js +31 -23
  45. package/components/message/Tip/index.d.ts +0 -1
  46. package/components/message/Tooltip/index.d.ts +0 -1
  47. package/components/navigation/Aside/index.d.ts +2 -5
  48. package/components/navigation/Breadcrumb/index.js +1 -1
  49. package/components/navigation/progress/ProgressBar/Onboarding.d.ts +0 -1
  50. package/components/navigation/sideBar/Item/Item.d.ts +0 -1
  51. package/components/navigation/sideBar/Logo/Logo.d.ts +0 -1
  52. package/components/navigation/sideBar/SideBar/SideBar.d.ts +0 -1
  53. package/components/navigation/sideBar/Toggle/Toggle.d.ts +0 -1
  54. package/components/styled.d.ts +8 -5
  55. package/components/styled.js +2 -2
  56. package/package.json +2 -2
  57. package/styles/theme.js +1 -1
@@ -1,6 +1,7 @@
1
1
  import React from "react";
2
- import styled, { css } from "styled-components";
2
+ import styled, { useTheme } from "styled-components";
3
3
  import Text from "../../asorted/Text";
4
+ import Flex from "../../layout/Flex";
4
5
  import ShieldSecurityMedium from "@ledgerhq/icons-ui/react/ShieldSecurityMedium";
5
6
  import CircledCrossMedium from "@ledgerhq/icons-ui/react/CircledCrossMedium";
6
7
  import CircledAlertMedium from "@ledgerhq/icons-ui/react/CircledAlertMedium";
@@ -14,35 +15,42 @@ const icons = {
14
15
  warning: React.createElement(CircledAlertMedium, { size: 20 }),
15
16
  error: React.createElement(CircledCrossMedium, { size: 20 }),
16
17
  };
17
- const StyledAlertContainer = styled.div `
18
- ${(p) => {
19
- switch (p.type) {
18
+ const getColors = ({ theme, type }) => {
19
+ switch (type) {
20
20
  case "warning":
21
- return css `
22
- background: ${p.theme.colors.warning.c30};
23
- color: ${p.theme.colors.warning.c100};
24
- `;
21
+ return {
22
+ background: theme.colors.warning.c30,
23
+ color: theme.colors.warning.c100,
24
+ };
25
25
  case "error":
26
- return css `
27
- background: ${p.theme.colors.error.c30};
28
- color: ${p.theme.colors.error.c100};
29
- `;
26
+ return {
27
+ background: theme.colors.error.c30,
28
+ color: theme.colors.error.c100,
29
+ };
30
30
  case "info":
31
31
  default:
32
- return css `
33
- background: ${p.theme.colors.primary.c20};
34
- color: ${p.theme.colors.primary.c90};
35
- `;
32
+ return {
33
+ background: theme.colors.primary.c20,
34
+ color: theme.colors.primary.c90,
35
+ };
36
36
  }
37
- }}
38
-
37
+ };
38
+ const StyledAlertContainer = styled(Flex).attrs(() => ({
39
+ padding: 6,
40
+ })) `
39
41
  border-radius: ${(p) => `${p.theme.radii[1]}px`};
40
- padding: 16px;
41
- display: flex;
42
42
  align-items: center;
43
43
  `;
44
- export default function Alert({ type = "info", title, showIcon = true }) {
45
- return (React.createElement(StyledAlertContainer, { type: type },
44
+ export default function Alert({ type = "info", title, showIcon = true, renderContent, }) {
45
+ const theme = useTheme();
46
+ const { color, background } = getColors({ theme, type });
47
+ const textProps = {
48
+ variant: "paragraph",
49
+ fontWeight: "medium",
50
+ };
51
+ return (React.createElement(StyledAlertContainer, { color: color, backgroundColor: background },
46
52
  showIcon && !!icons[type] && React.createElement(StyledIconContainer, null, icons[type]),
47
- React.createElement(Text, { variant: "body", color: "inherit" }, title)));
53
+ React.createElement(Flex, { flexDirection: "column", alignItems: "flex-start", rowGap: "6px" },
54
+ title && (React.createElement(Text, Object.assign({}, textProps, { color: "inherit" }), title)),
55
+ renderContent && renderContent({ color, textProps }))));
48
56
  }
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  declare type TipType = "success" | "warning" | "error";
3
2
  export interface TipProps {
4
3
  type?: TipType;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { TippyProps } from "@tippyjs/react";
3
2
  declare type Placement = "top" | "top-start" | "top-end" | "right" | "right-start" | "right-end" | "bottom" | "bottom-start" | "bottom-end" | "left" | "left-start" | "left-end" | "auto" | "auto-start" | "auto-end";
4
3
  export interface Props extends TippyProps {
@@ -6,13 +6,10 @@ export declare type Props = React.PropsWithChildren<{
6
6
  }> & React.ComponentProps<typeof Wrapper>;
7
7
  interface ExtraWrapperProps extends ColorProps, LayoutProps, TypographyProps {
8
8
  }
9
- declare const Wrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("styled-system").SpaceProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>, string | number | symbol> & import("styled-system").FlexboxProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> & import("styled-system").PositionProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> & ColorProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>, string | number | symbol> & LayoutProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> & import("styled-system").OverflowProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> & {
9
+ declare const Wrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("styled-system").SpaceProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>, string | number | symbol> & import("styled-system").FlexboxProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> & import("styled-system").PositionProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> & ColorProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>, string | number | symbol> & LayoutProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> & import("styled-system").BorderProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>, import("csstype").Property.Border<import("styled-system").TLengthStyledSystem>> & import("styled-system").OverflowProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> & {
10
10
  columnGap?: string | number | undefined;
11
11
  rowGap?: string | number | undefined;
12
12
  color?: string | undefined;
13
- display?: string | undefined;
14
- position?: string | undefined;
15
- maxHeight?: number | undefined;
16
- } & ExtraWrapperProps, "overflow" | "p" | "color" | "left" | "right" | "bottom" | "top" | "size" | "flex" | "padding" | "rowGap" | "alignContent" | "alignItems" | "alignSelf" | "backgroundColor" | "columnGap" | "display" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "height" | "justifyContent" | "justifyItems" | "justifySelf" | "marginBottom" | "marginLeft" | "marginRight" | "marginTop" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "opacity" | "order" | "overflowX" | "overflowY" | "paddingBottom" | "paddingLeft" | "paddingRight" | "paddingTop" | "position" | "verticalAlign" | "width" | "zIndex" | "margin" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "marginX" | "my" | "marginY" | "pt" | "pr" | "pb" | "pl" | "px" | "paddingX" | "py" | "paddingY" | "bg">;
13
+ } & ExtraWrapperProps, "overflow" | "p" | "color" | "size" | "rowGap" | "alignContent" | "alignItems" | "alignSelf" | "backgroundColor" | "borderBottomColor" | "borderBottomLeftRadius" | "borderBottomRightRadius" | "borderBottomStyle" | "borderBottomWidth" | "borderLeftColor" | "borderLeftStyle" | "borderLeftWidth" | "borderRightColor" | "borderRightStyle" | "borderRightWidth" | "borderTopColor" | "borderTopLeftRadius" | "borderTopRightRadius" | "borderTopStyle" | "borderTopWidth" | "bottom" | "columnGap" | "display" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "height" | "justifyContent" | "justifyItems" | "justifySelf" | "left" | "marginBottom" | "marginLeft" | "marginRight" | "marginTop" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "opacity" | "order" | "overflowX" | "overflowY" | "paddingBottom" | "paddingLeft" | "paddingRight" | "paddingTop" | "position" | "right" | "top" | "verticalAlign" | "width" | "zIndex" | "border" | "borderBottom" | "borderColor" | "borderLeft" | "borderRadius" | "borderRight" | "borderStyle" | "borderTop" | "borderWidth" | "flex" | "margin" | "padding" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "marginX" | "my" | "marginY" | "pt" | "pr" | "pb" | "pl" | "px" | "paddingX" | "py" | "paddingY" | "bg" | "borderX" | "borderY">;
17
14
  export default function Aside({ header, footer, children, ...props }: Props): JSX.Element;
18
15
  export {};
@@ -28,7 +28,7 @@ export default memo(function Breadcrumb({ segments, onChange }) {
28
28
  renderArray.push(React.createElement(React.Fragment, null,
29
29
  index > 0 ? (React.createElement(Text, { fontWeight: "semiBold", color: "neutral.c40", variant: "paragraph" }, "/")) : null,
30
30
  isMultiSegment(segment) ? (React.createElement(Dropdown, { label: "", options: segment.options, value: segment.value, onChange: (elt) => elt && onChange([...values, elt.value]), styles: {
31
- control: (provided, state) => (Object.assign(Object.assign({}, ControlModule.getStyles()(provided, state)), { cursor: "pointer" })),
31
+ control: (provided, state) => (Object.assign(Object.assign({}, ControlModule.getStyles(theme)(provided, state)), { cursor: "pointer" })),
32
32
  singleValue: (provided) => (Object.assign(Object.assign({}, provided), { margin: 0, top: undefined, position: undefined, overflow: undefined, maxWidth: undefined, transform: undefined, color: theme.colors.neutral.c80, ":hover": {
33
33
  color: theme.colors.neutral.c100,
34
34
  textDecoration: "underline",
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  interface Step {
3
2
  key: string;
4
3
  label: string;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare const ItemLabel: import("styled-components").StyledComponent<"span", import("styled-components").DefaultTheme, import("../../../asorted/Text").TextProps, keyof import("../../../asorted/Text").TextProps>;
3
2
  export declare type ItemType = {
4
3
  label: string;
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  declare const Logo: () => JSX.Element;
3
2
  export default Logo;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare type SideBarProps = {
3
2
  children: Array<JSX.Element>;
4
3
  onToggle: () => void;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  declare type ToggleButtonProps = {
3
2
  isDisplayed: boolean;
4
3
  };
@@ -1,12 +1,15 @@
1
1
  import { StyledInterface, InterpolationFunction } from "styled-components";
2
- import { FlexboxProps, SpaceProps, PositionProps, ColorProps, LayoutProps, OverflowProps } from "styled-system";
3
- export declare type BaseStyledProps = SpaceProps & FlexboxProps & PositionProps & ColorProps & LayoutProps & OverflowProps & {
2
+ import { FlexboxProps, SpaceProps, PositionProps, ColorProps, LayoutProps, OverflowProps, BorderProps } from "styled-system";
3
+ export declare type BaseStyledProps = SpaceProps & FlexboxProps & PositionProps & ColorProps & LayoutProps & BorderProps & OverflowProps & {
4
+ /**
5
+ * The columnGap CSS property sets the size of the gap (gutter) between an element's grid columns.
6
+ */
4
7
  columnGap?: string | number;
8
+ /**
9
+ * The rowGap CSS property sets the size of the gap (gutter) between an element's grid rows.
10
+ */
5
11
  rowGap?: string | number;
6
12
  color?: string;
7
- display?: string;
8
- position?: string;
9
- maxHeight?: number;
10
13
  };
11
14
  export declare const baseStyles: InterpolationFunction<unknown>;
12
15
  declare const _default: StyledInterface;
@@ -1,7 +1,7 @@
1
1
  import gaps from "../styles/system/gaps";
2
2
  import styled from "styled-components";
3
- import { compose, flexbox, space, position, color, layout, overflow, } from "styled-system";
4
- export const baseStyles = compose(flexbox, space, position, color, layout, overflow, gaps);
3
+ import { compose, flexbox, space, position, color, layout, overflow, border, } from "styled-system";
4
+ export const baseStyles = compose(flexbox, space, position, color, layout, overflow, gaps, border);
5
5
  const proxyStyled = new Proxy(styled, {
6
6
  apply(target, thisArg, argumentsList) {
7
7
  return styled(target.apply(thisArg, argumentsList)(baseStyles));
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ledgerhq/react-ui",
3
3
  "description": "Ledger Live - Desktop UI",
4
- "version": "0.4.0",
4
+ "version": "0.5.0",
5
5
  "author": "Ledger Live Team <team-live@ledger.fr>",
6
6
  "repository": "https://github.com/LedgerHQ/ui",
7
7
  "license": "MIT",
@@ -31,7 +31,7 @@
31
31
  "@ledgerhq/ui-shared": "^0.1.3",
32
32
  "@tippyjs/react": "^4.2.6",
33
33
  "@types/color": "^3.0.2",
34
- "@types/react": "~17.0.34",
34
+ "@types/react": "~17.0.37",
35
35
  "@types/react-dom": "^17.0.11",
36
36
  "@types/react-select": "^4.0.18",
37
37
  "@types/react-transition-group": "^4.4.2",
package/styles/theme.js CHANGED
@@ -34,7 +34,7 @@ const fontWeights = {
34
34
  bold: "700",
35
35
  extraBold: "800",
36
36
  };
37
- export const radii = [0, 4, 8, 12];
37
+ export const radii = [0, 4, 8, 12, 16, 20];
38
38
  export const shadows = ["0 4px 8px 0 rgba(0, 0, 0, 0.03)"];
39
39
  export const zIndexes = [-1, 0, 1, 9, 10, 90, 100, 900, 1000];
40
40
  // Those fonts are now defined in global.css, this is just a mapping for styled-system