flipper-ui 0.40.4 → 0.41.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 (78) hide show
  1. package/core/data-display/actions/actions.spec.d.ts +1 -1
  2. package/core/data-display/actions/actions.stories.d.ts +2 -1
  3. package/core/data-display/actions/index.d.ts +83 -3
  4. package/core/data-display/actions/index.js +46 -8
  5. package/core/data-display/actions/styles.d.ts +1 -1
  6. package/core/data-display/actions/styles.js +3 -3
  7. package/core/data-display/advertise/styles.d.ts +1 -1
  8. package/core/data-display/data-table/data-table.d.ts +5 -0
  9. package/core/data-display/data-table/data-table.js +18 -6
  10. package/core/data-display/data-table/data-table.stories.d.ts +110 -8
  11. package/core/data-display/data-table/rows.d.ts +7 -2
  12. package/core/data-display/data-table/rows.js +18 -6
  13. package/core/data-display/data-table/styles.d.ts +1 -1
  14. package/core/data-display/data-table/types.d.ts +2 -0
  15. package/core/data-display/list-item-dark/index.js +3 -4
  16. package/core/data-display/list-item-dark/styles.d.ts +1 -1
  17. package/core/data-display/table/index.js +34 -0
  18. package/core/data-display/table/styles.d.ts +42 -0
  19. package/core/data-display/table/styles.js +68 -0
  20. package/core/data-display/table/table-pagination.js +1 -1
  21. package/core/data-display/table-interactive/TableInteractive.d.ts +4 -0
  22. package/core/data-display/table-interactive/TableInteractive.js +18 -3
  23. package/core/data-display/table-interactive/TableInteractiveHead.d.ts +1 -1
  24. package/core/data-display/table-interactive/TableInteractiveHead.js +1 -1
  25. package/core/data-display/table-interactive/TableInteractiveHeader.js +1 -0
  26. package/core/data-display/table-interactive/index.d.ts +2 -0
  27. package/core/data-display/table-interactive/index.js +8 -1
  28. package/core/data-display/table-interactive/styles.js +1 -1
  29. package/core/data-display/table-interactive/table-interactive.stories.d.ts +2 -0
  30. package/core/data-display/table-interactive/utils.d.ts +1 -1
  31. package/core/data-display/table-interactive/utils.js +2 -1
  32. package/core/data-display/typography/index.d.ts +2 -1
  33. package/core/data-display/typography/index.js +18 -2
  34. package/core/data-display/view-mode/styles.d.ts +1 -1
  35. package/core/feedback/dialog-v2/dialog.js +6 -5
  36. package/core/feedback/nothing-found/index.d.ts +8 -1
  37. package/core/feedback/nothing-found/index.js +11 -2
  38. package/core/feedback/nothing-found/nothing-found.spec.d.ts +1 -1
  39. package/core/feedback/progress/index.d.ts +42 -2
  40. package/core/feedback/progress/index.js +79 -20
  41. package/core/feedback/progress/progress.spec.d.ts +1 -1
  42. package/core/feedback/progress/progress.stories.d.ts +4 -2
  43. package/core/feedback/progress/styles.d.ts +18 -0
  44. package/core/feedback/progress/styles.js +14 -0
  45. package/core/feedback/snackbar/index.js +1 -1
  46. package/core/inputs/checkbox/checkbox.spec.d.ts +1 -1
  47. package/core/inputs/checkbox/index.js +3 -1
  48. package/core/inputs/icon-button/icon-button.spec.d.ts +1 -1
  49. package/core/inputs/icon-button/index.d.ts +7 -0
  50. package/core/inputs/icon-button/index.js +11 -1
  51. package/core/inputs/select/index.js +2 -1
  52. package/core/inputs/text-field/index.d.ts +2 -2
  53. package/core/inputs/text-field/index.js +14 -4
  54. package/core/inputs/text-field/styles.js +1 -1
  55. package/core/inputs/text-field/text-field.spec.d.ts +1 -1
  56. package/core/navigation/menu/index.js +1 -1
  57. package/core/navigation/stepper/index.d.ts +38 -2
  58. package/core/navigation/stepper/index.js +36 -9
  59. package/core/navigation/stepper/stepper.stories.d.ts +2 -0
  60. package/core/surfaces/card/index.d.ts +13 -6
  61. package/core/surfaces/card/index.js +19 -12
  62. package/core/surfaces/card/styles.d.ts +3 -2
  63. package/core/surfaces/card/styles.js +2 -3
  64. package/core/surfaces/expansion-panel/index.d.ts +1 -0
  65. package/core/surfaces/expansion-panel/index.js +5 -3
  66. package/core/surfaces/step-card/index.d.ts +19 -9
  67. package/core/surfaces/step-card/index.js +2 -0
  68. package/core/surfaces/step-card/step-card-details.js +1 -0
  69. package/core/surfaces/step-card/step-card-panel.d.ts +1 -0
  70. package/core/surfaces/step-card/step-card-panel.js +2 -1
  71. package/core/surfaces/step-card/step-card.spec.d.ts +1 -1
  72. package/package.json +1 -1
  73. package/theme/index.d.ts +1 -0
  74. package/theme/index.js +1 -0
  75. package/theme/theme.d.ts +43 -0
  76. package/theme/theme.js +11 -1
  77. package/theme/typography.d.ts +96 -0
  78. package/theme/typography.js +59 -0
@@ -18,6 +18,7 @@ export interface ExpansionPanelProps extends Omit<IPaperProps, 'onChange'> {
18
18
  editable?: boolean;
19
19
  editing?: boolean;
20
20
  role?: string;
21
+ 'data-testid'?: string;
21
22
  helperButtonPosition?: 'left' | 'right';
22
23
  onHelperClick?: () => void;
23
24
  onEditClick?: () => void;
@@ -76,16 +76,18 @@ var ExpansionPanel = function ExpansionPanel(_ref) {
76
76
  style: summaryStyle,
77
77
  onClick: onClick
78
78
  }, /*#__PURE__*/_react["default"].createElement(_styles.ExpansionPanelHeaderWrapper, headerProps, helperButtonPosition === 'left' && renderHelper, summary, editable && /*#__PURE__*/_react["default"].createElement("div", {
79
- role: "edit-box"
79
+ "data-testid": "edit-box"
80
80
  }, editing ? /*#__PURE__*/_react["default"].createElement(_iconButton["default"], {
81
- role: "save-button",
81
+ "aria-label": "Salvar",
82
+ "data-testid": "save-button",
82
83
  padding: "2px",
83
84
  margin: "4px",
84
85
  onClick: handleSaveClick
85
86
  }, /*#__PURE__*/_react["default"].createElement(_mui.IconSave, {
86
87
  fontSize: "small"
87
88
  })) : /*#__PURE__*/_react["default"].createElement(_iconButton["default"], {
88
- role: "save-button",
89
+ "aria-label": "Editar",
90
+ "data-testid": "save-button",
89
91
  padding: "2px",
90
92
  margin: "4px",
91
93
  onClick: handleEditClick
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
2
  import type { CSSProperties, ChangeEvent, HTMLAttributes, SyntheticEvent } from 'react';
3
- import type Typography from '@/core/data-display/typography';
4
- import type MuiAccordionDetails from '@mui/material/Accordion';
5
- import type LinearProgress from '@mui/material/LinearProgress';
3
+ import type { ITypographyProps } from '@/core/data-display/typography';
4
+ import type { AccordionDetailsProps } from '@mui/material/AccordionDetails';
5
+ import type { LinearProgressProps } from '@mui/material/LinearProgress';
6
6
  export interface IStepCardProps {
7
7
  expanded?: boolean;
8
8
  onChange?: (event?: ChangeEvent<Record<string, unknown>> | SyntheticEvent<Element, Event>, expanded?: boolean) => void;
@@ -22,11 +22,21 @@ export interface IStepCardProps {
22
22
  url?: string;
23
23
  }[];
24
24
  rootProps?: HTMLAttributes<HTMLDivElement>;
25
- titleProps?: typeof Typography;
26
- summaryProps?: typeof Typography;
27
- expansionPanelDetailsProps?: typeof MuiAccordionDetails;
28
- linearProgressBarProps?: typeof LinearProgress;
29
- summaryLinearProgressBarProps?: typeof LinearProgress;
25
+ /**
26
+ * Merged over the title defaults — `variant='h5'`, `align='center'`.
27
+ * `variant` also sets the heading level, so `{ component: 'h2' }` keeps
28
+ * the `h5` type scale on an `<h2>` tag.
29
+ */
30
+ titleProps?: Partial<ITypographyProps>;
31
+ /**
32
+ * Merged over the subtitle defaults — `variant='h6'`, `align='center'`.
33
+ * Same heading-level behaviour as `titleProps`.
34
+ */
35
+ subTitleProps?: Partial<ITypographyProps>;
36
+ summaryProps?: Partial<ITypographyProps>;
37
+ expansionPanelDetailsProps?: Partial<AccordionDetailsProps>;
38
+ linearProgressBarProps?: Partial<LinearProgressProps>;
39
+ summaryLinearProgressBarProps?: Partial<LinearProgressProps>;
30
40
  expandable?: boolean;
31
41
  showIcon?: boolean;
32
42
  padding?: CSSProperties['padding'];
@@ -34,5 +44,5 @@ export interface IStepCardProps {
34
44
  showSubTitleSkeleton?: boolean;
35
45
  onStepUrlClick?: (url: string) => void;
36
46
  }
37
- declare const StepCard: ({ expanded, loading, percentage, time, steps, remainingSteps, title, titleProps, subTitle, image, showBottomPercentage, expandable, showIcon, summary, summaryProps, expansionPanelDetailsProps, linearProgressBarProps, summaryLinearProgressBarProps, rootProps, onStepUrlClick, fullWidth, padding, margin, showSubTitleSkeleton, onChange }: IStepCardProps) => React.JSX.Element;
47
+ declare const StepCard: ({ expanded, loading, percentage, time, steps, remainingSteps, title, titleProps, subTitle, subTitleProps, image, showBottomPercentage, expandable, showIcon, summary, summaryProps, expansionPanelDetailsProps, linearProgressBarProps, summaryLinearProgressBarProps, rootProps, onStepUrlClick, fullWidth, padding, margin, showSubTitleSkeleton, onChange }: IStepCardProps) => React.JSX.Element;
38
48
  export default StepCard;
@@ -25,6 +25,7 @@ var StepCard = function StepCard(_ref) {
25
25
  title = _ref.title,
26
26
  titleProps = _ref.titleProps,
27
27
  subTitle = _ref.subTitle,
28
+ subTitleProps = _ref.subTitleProps,
28
29
  image = _ref.image,
29
30
  _ref$showBottomPercen = _ref.showBottomPercentage,
30
31
  showBottomPercentage = _ref$showBottomPercen === void 0 ? true : _ref$showBottomPercen,
@@ -71,6 +72,7 @@ var StepCard = function StepCard(_ref) {
71
72
  subTitle: subTitle,
72
73
  percentage: percentage,
73
74
  titleProps: titleProps,
75
+ subTitleProps: subTitleProps,
74
76
  summaryProps: summaryProps,
75
77
  summaryLinearProgressBarProps: summaryLinearProgressBarProps,
76
78
  linearProgressBarProps: linearProgressBarProps
@@ -35,6 +35,7 @@ var StepsList = function StepsList(_ref) {
35
35
  }
36
36
  }, step.title), step.url && onStepUrlClick && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_iconButton["default"], {
37
37
  "data-testid": "step-card-button-".concat(index),
38
+ "aria-label": "Ajuda sobre ".concat(step.title),
38
39
  style: {
39
40
  backgroundColor: 'unset'
40
41
  },
@@ -9,6 +9,7 @@ interface IStepCardPanelProps {
9
9
  summaryProps: IStepCardProps['summaryProps'];
10
10
  summaryLinearProgressBarProps: IStepCardProps['summaryLinearProgressBarProps'];
11
11
  titleProps: IStepCardProps['titleProps'];
12
+ subTitleProps: IStepCardProps['subTitleProps'];
12
13
  percentage: number;
13
14
  summary: string;
14
15
  remainingSteps: number;
@@ -30,6 +30,7 @@ var StepCardPanel = exports.StepCardPanel = function StepCardPanel(props) {
30
30
  showIcon = props.showIcon,
31
31
  subTitle = props.subTitle,
32
32
  titleProps = props.titleProps,
33
+ subTitleProps = props.subTitleProps,
33
34
  fullWidth = props.fullWidth,
34
35
  padding = props.padding;
35
36
  return /*#__PURE__*/_react["default"].createElement(_styles.StepContainer, {
@@ -58,7 +59,7 @@ var StepCardPanel = exports.StepCardPanel = function StepCardPanel(props) {
58
59
  sx: {
59
60
  color: gray[600]
60
61
  }
61
- }, titleProps), subTitle))), /*#__PURE__*/_react["default"].createElement(_styles.StepCardColumn, {
62
+ }, subTitleProps), subTitle))), /*#__PURE__*/_react["default"].createElement(_styles.StepCardColumn, {
62
63
  justifyContent: "end"
63
64
  }, expandable ? /*#__PURE__*/_react["default"].createElement(_AccordionSummary["default"], {
64
65
  style: {
@@ -1 +1 @@
1
- export {};
1
+ import '@testing-library/jest-dom';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flipper-ui",
3
- "version": "0.40.4",
3
+ "version": "0.41.0",
4
4
  "author": "NG",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
package/theme/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
+ import './typography';
1
2
  export * from './theme';
2
3
  export { default as ThemeProviderFlipper } from './ThemeProvider';
package/theme/index.js CHANGED
@@ -13,6 +13,7 @@ Object.defineProperty(exports, "ThemeProviderFlipper", {
13
13
  return _ThemeProvider["default"];
14
14
  }
15
15
  });
16
+ require("./typography");
16
17
  var _theme = require("./theme");
17
18
  Object.keys(_theme).forEach(function (key) {
18
19
  if (key === "default" || key === "__esModule") return;
package/theme/theme.d.ts CHANGED
@@ -63,6 +63,12 @@ export declare const theme: {
63
63
  info: string;
64
64
  };
65
65
  };
66
+ fontSize: {
67
+ readonly micro: "0.625rem";
68
+ readonly footnote: "0.6875rem";
69
+ readonly dense: "0.8125rem";
70
+ readonly display: "1.75rem";
71
+ };
66
72
  };
67
73
  export declare const muiThemeOptions: {
68
74
  palette: {
@@ -82,4 +88,41 @@ export declare const muiThemeOptions: {
82
88
  primary: string;
83
89
  };
84
90
  };
91
+ typography: {
92
+ micro: {
93
+ fontFamily: string;
94
+ fontSize: "0.625rem";
95
+ lineHeight: number;
96
+ letterSpacing: string;
97
+ };
98
+ footnote: {
99
+ fontFamily: string;
100
+ fontSize: "0.6875rem";
101
+ lineHeight: number;
102
+ letterSpacing: string;
103
+ };
104
+ dense: {
105
+ fontFamily: string;
106
+ fontSize: "0.8125rem";
107
+ lineHeight: number;
108
+ letterSpacing: string;
109
+ };
110
+ display: {
111
+ fontFamily: string;
112
+ fontSize: "1.75rem";
113
+ lineHeight: number;
114
+ letterSpacing: string;
115
+ fontWeight: number;
116
+ };
117
+ fontFamily: string;
118
+ };
119
+ components: {
120
+ MuiTypography: {
121
+ defaultProps: {
122
+ variantMapping: {
123
+ readonly display: "p";
124
+ };
125
+ };
126
+ };
127
+ };
85
128
  };
package/theme/theme.js CHANGED
@@ -6,8 +6,10 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.theme = exports.muiThemeOptions = void 0;
8
8
  var _colors = _interopRequireDefault(require("./colors"));
9
+ var _typography = require("./typography");
9
10
  var theme = exports.theme = {
10
- colors: _colors["default"]
11
+ colors: _colors["default"],
12
+ fontSize: _typography.fontSize
11
13
  };
12
14
  var muiThemeOptions = exports.muiThemeOptions = {
13
15
  palette: {
@@ -26,5 +28,13 @@ var muiThemeOptions = exports.muiThemeOptions = {
26
28
  text: {
27
29
  primary: _colors["default"].gray[900]
28
30
  }
31
+ },
32
+ typography: _typography.typographyOptions,
33
+ components: {
34
+ MuiTypography: {
35
+ defaultProps: {
36
+ variantMapping: _typography.variantMapping
37
+ }
38
+ }
29
39
  }
30
40
  };
@@ -0,0 +1,96 @@
1
+ import type { CSSProperties } from 'react';
2
+ export declare const fontFamily = "\"Roboto\", \"Helvetica\", \"Arial\", sans-serif";
3
+ export declare const fontSize: {
4
+ readonly micro: "0.625rem";
5
+ readonly footnote: "0.6875rem";
6
+ readonly dense: "0.8125rem";
7
+ readonly display: "1.75rem";
8
+ };
9
+ /**
10
+ * NG size tokens. They live in the MUI theme, so they only reach the DOM when
11
+ * the theme is built with `muiThemeOptions` — either through
12
+ * `<ThemeProviderFlipper options={muiThemeOptions}>` or by merging the options
13
+ * into the consumer own `ThemeProvider`. The `Typography` component falls back
14
+ * to these values when the theme does not carry them, so the size is never
15
+ * lost — but a consumer theme can only override a token that it declares.
16
+ */
17
+ export declare const typographyVariants: {
18
+ micro: {
19
+ fontFamily: string;
20
+ fontSize: "0.625rem";
21
+ lineHeight: number;
22
+ letterSpacing: string;
23
+ };
24
+ footnote: {
25
+ fontFamily: string;
26
+ fontSize: "0.6875rem";
27
+ lineHeight: number;
28
+ letterSpacing: string;
29
+ };
30
+ dense: {
31
+ fontFamily: string;
32
+ fontSize: "0.8125rem";
33
+ lineHeight: number;
34
+ letterSpacing: string;
35
+ };
36
+ display: {
37
+ fontFamily: string;
38
+ fontSize: "1.75rem";
39
+ lineHeight: number;
40
+ letterSpacing: string;
41
+ fontWeight: number;
42
+ };
43
+ };
44
+ export declare const variantMapping: {
45
+ readonly display: "p";
46
+ };
47
+ export declare const typographyOptions: {
48
+ micro: {
49
+ fontFamily: string;
50
+ fontSize: "0.625rem";
51
+ lineHeight: number;
52
+ letterSpacing: string;
53
+ };
54
+ footnote: {
55
+ fontFamily: string;
56
+ fontSize: "0.6875rem";
57
+ lineHeight: number;
58
+ letterSpacing: string;
59
+ };
60
+ dense: {
61
+ fontFamily: string;
62
+ fontSize: "0.8125rem";
63
+ lineHeight: number;
64
+ letterSpacing: string;
65
+ };
66
+ display: {
67
+ fontFamily: string;
68
+ fontSize: "1.75rem";
69
+ lineHeight: number;
70
+ letterSpacing: string;
71
+ fontWeight: number;
72
+ };
73
+ fontFamily: string;
74
+ };
75
+ declare module '@mui/material/styles' {
76
+ interface TypographyVariants {
77
+ micro: CSSProperties;
78
+ footnote: CSSProperties;
79
+ dense: CSSProperties;
80
+ display: CSSProperties;
81
+ }
82
+ interface TypographyVariantsOptions {
83
+ micro?: CSSProperties;
84
+ footnote?: CSSProperties;
85
+ dense?: CSSProperties;
86
+ display?: CSSProperties;
87
+ }
88
+ }
89
+ declare module '@mui/material/Typography' {
90
+ interface TypographyPropsVariantOverrides {
91
+ micro: true;
92
+ footnote: true;
93
+ dense: true;
94
+ display: true;
95
+ }
96
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.variantMapping = exports.typographyVariants = exports.typographyOptions = exports.fontSize = exports.fontFamily = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
+ var fontFamily = exports.fontFamily = '"Roboto", "Helvetica", "Arial", sans-serif';
12
+ var fontSize = exports.fontSize = {
13
+ micro: '0.625rem',
14
+ footnote: '0.6875rem',
15
+ dense: '0.8125rem',
16
+ display: '1.75rem'
17
+ };
18
+
19
+ /**
20
+ * NG size tokens. They live in the MUI theme, so they only reach the DOM when
21
+ * the theme is built with `muiThemeOptions` — either through
22
+ * `<ThemeProviderFlipper options={muiThemeOptions}>` or by merging the options
23
+ * into the consumer own `ThemeProvider`. The `Typography` component falls back
24
+ * to these values when the theme does not carry them, so the size is never
25
+ * lost — but a consumer theme can only override a token that it declares.
26
+ */
27
+ var typographyVariants = exports.typographyVariants = {
28
+ micro: {
29
+ fontFamily: fontFamily,
30
+ fontSize: fontSize.micro,
31
+ lineHeight: 1.6,
32
+ letterSpacing: '0.04em'
33
+ },
34
+ footnote: {
35
+ fontFamily: fontFamily,
36
+ fontSize: fontSize.footnote,
37
+ lineHeight: 1.55,
38
+ letterSpacing: '0.03em'
39
+ },
40
+ dense: {
41
+ fontFamily: fontFamily,
42
+ fontSize: fontSize.dense,
43
+ lineHeight: 1.45,
44
+ letterSpacing: '0.01em'
45
+ },
46
+ display: {
47
+ fontFamily: fontFamily,
48
+ fontSize: fontSize.display,
49
+ lineHeight: 1.2,
50
+ letterSpacing: 'normal',
51
+ fontWeight: 500
52
+ }
53
+ };
54
+ var variantMapping = exports.variantMapping = {
55
+ display: 'p'
56
+ };
57
+ var typographyOptions = exports.typographyOptions = _objectSpread({
58
+ fontFamily: fontFamily
59
+ }, typographyVariants);