@atlaskit/progress-tracker 8.0.4 → 8.1.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 (64) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/cjs/constants.js +4 -2
  3. package/dist/cjs/index.js +2 -2
  4. package/dist/cjs/internal/bar.js +48 -0
  5. package/dist/cjs/internal/constants.js +38 -0
  6. package/dist/cjs/internal/link.js +35 -0
  7. package/dist/cjs/internal/marker.js +53 -0
  8. package/dist/cjs/{ProgressTrackerStage/index.js → internal/stage.js} +70 -95
  9. package/dist/cjs/internal/types.js +5 -0
  10. package/dist/cjs/internal/utils.js +65 -0
  11. package/dist/cjs/{ProgressTracker/index.js → progress-tracker.js} +44 -42
  12. package/dist/cjs/version.json +1 -1
  13. package/dist/es2019/constants.js +6 -4
  14. package/dist/es2019/index.js +1 -1
  15. package/dist/es2019/internal/bar.js +35 -0
  16. package/dist/es2019/internal/constants.js +16 -0
  17. package/dist/es2019/internal/link.js +24 -0
  18. package/dist/es2019/internal/marker.js +42 -0
  19. package/dist/es2019/internal/stage.js +130 -0
  20. package/dist/es2019/internal/types.js +1 -0
  21. package/dist/es2019/internal/utils.js +48 -0
  22. package/dist/es2019/{ProgressTracker/index.js → progress-tracker.js} +47 -32
  23. package/dist/es2019/version.json +1 -1
  24. package/dist/esm/constants.js +6 -4
  25. package/dist/esm/index.js +1 -1
  26. package/dist/esm/internal/bar.js +36 -0
  27. package/dist/esm/internal/constants.js +16 -0
  28. package/dist/esm/internal/link.js +25 -0
  29. package/dist/esm/internal/marker.js +43 -0
  30. package/dist/esm/{ProgressTrackerStage/index.js → internal/stage.js} +70 -89
  31. package/dist/esm/internal/types.js +1 -0
  32. package/dist/esm/internal/utils.js +48 -0
  33. package/dist/esm/{ProgressTracker/index.js → progress-tracker.js} +46 -36
  34. package/dist/esm/version.json +1 -1
  35. package/dist/types/constants.d.ts +9 -2
  36. package/dist/types/index.d.ts +2 -2
  37. package/dist/types/internal/bar.d.ts +12 -0
  38. package/dist/types/internal/constants.d.ts +14 -0
  39. package/dist/types/internal/link.d.ts +10 -0
  40. package/dist/types/internal/marker.d.ts +11 -0
  41. package/dist/types/internal/stage.d.ts +17 -0
  42. package/dist/types/internal/types.d.ts +27 -0
  43. package/dist/types/internal/utils.d.ts +4 -0
  44. package/dist/types/{ProgressTracker/index.d.ts → progress-tracker.d.ts} +22 -13
  45. package/dist/types/types.d.ts +10 -4
  46. package/package.json +15 -6
  47. package/dist/cjs/ProgressTracker/styled.js +0 -20
  48. package/dist/cjs/ProgressTrackerLink/index.js +0 -60
  49. package/dist/cjs/ProgressTrackerLink/styled.js +0 -22
  50. package/dist/cjs/ProgressTrackerStage/styled.js +0 -133
  51. package/dist/es2019/ProgressTracker/styled.js +0 -13
  52. package/dist/es2019/ProgressTrackerLink/index.js +0 -16
  53. package/dist/es2019/ProgressTrackerLink/styled.js +0 -7
  54. package/dist/es2019/ProgressTrackerStage/index.js +0 -143
  55. package/dist/es2019/ProgressTrackerStage/styled.js +0 -140
  56. package/dist/esm/ProgressTracker/styled.js +0 -7
  57. package/dist/esm/ProgressTrackerLink/index.js +0 -42
  58. package/dist/esm/ProgressTrackerLink/styled.js +0 -8
  59. package/dist/esm/ProgressTrackerStage/styled.js +0 -107
  60. package/dist/types/ProgressTracker/styled.d.ts +0 -3
  61. package/dist/types/ProgressTrackerLink/index.d.ts +0 -10
  62. package/dist/types/ProgressTrackerLink/styled.d.ts +0 -3
  63. package/dist/types/ProgressTrackerStage/index.d.ts +0 -27
  64. package/dist/types/ProgressTrackerStage/styled.d.ts +0 -28
@@ -0,0 +1,36 @@
1
+ /** @jsx jsx */
2
+ import { css, jsx } from '@emotion/core';
3
+ import { B300 } from '@atlaskit/theme/colors';
4
+ import { spacing } from '../constants';
5
+ import { HALF_GRID_SIZE, LABEL_TOP_SPACING, PROGRESS_BAR_HEIGHT, varSpacing, varTransitionDelay, varTransitionEasing, varTransitionSpeed } from './constants';
6
+ var progressBarStyles = css({
7
+ height: PROGRESS_BAR_HEIGHT,
8
+ position: 'absolute',
9
+ left: '50%',
10
+ backgroundColor: B300,
11
+ borderBottomRightRadius: PROGRESS_BAR_HEIGHT,
12
+ borderTopRightRadius: PROGRESS_BAR_HEIGHT,
13
+ transform: "translate(0, -".concat(LABEL_TOP_SPACING, "px)"),
14
+ transition: "width var(".concat(varTransitionSpeed, ") var(").concat(varTransitionEasing, ")"),
15
+ transitionDelay: "var(".concat(varTransitionDelay, ")")
16
+ });
17
+ /**
18
+ * __Progress bar__
19
+ *
20
+ * A progress bar describes the horizontal tracking bar that traverses each individual step.
21
+ *
22
+ */
23
+
24
+ var ProgressBar = function ProgressBar(_ref) {
25
+ var percentageComplete = _ref.percentageComplete,
26
+ testId = _ref.testId;
27
+ return jsx("div", {
28
+ "data-testid": testId,
29
+ style: {
30
+ width: "calc(".concat(percentageComplete, "% + ").concat(percentageComplete / 100, " * calc(var(").concat(varSpacing, ", ").concat(spacing.cosy, "px) + ").concat(HALF_GRID_SIZE, "px))")
31
+ },
32
+ css: progressBarStyles
33
+ });
34
+ };
35
+
36
+ export default ProgressBar;
@@ -0,0 +1,16 @@
1
+ import { defaultGridSize } from '../constants';
2
+ export var TRANSITION_SPEED = 300;
3
+ export var LINEAR_TRANSITION_SPEED = 50;
4
+ export var ANIMATION_EASE_OUT = 'cubic-bezier(0.15,1,0.3,1)';
5
+ export var varSpacing = '--ds--pt--sp';
6
+ export var varTransitionSpeed = '--ds--pt--ts';
7
+ export var varTransitionDelay = '--ds--pt--td';
8
+ export var varTransitionEasing = '--ds--pt--te';
9
+ export var varMarkerColor = '--ds--pt--mc';
10
+ export var varBackgroundColor = '--ds--pt--bg';
11
+ export var SEMI_BOLD_FONT_WEIGHT = '600';
12
+ export var REGULAR_FONT_WEIGHT = '400';
13
+ export var HALF_GRID_SIZE = defaultGridSize / 2;
14
+ export var PROGRESS_BAR_HEIGHT = defaultGridSize; // Labels sit 20px from bottom of progress bar.
15
+
16
+ export var LABEL_TOP_SPACING = defaultGridSize + 20;
@@ -0,0 +1,25 @@
1
+ /** @jsx jsx */
2
+ import { css, jsx } from '@emotion/core';
3
+ import { N800 } from '@atlaskit/theme/colors';
4
+ var linkStyles = css({
5
+ color: N800,
6
+ cursor: 'pointer'
7
+ });
8
+ /**
9
+ * __Progress tracker link__
10
+ */
11
+
12
+ var Link = function Link(_ref) {
13
+ var href = _ref.href,
14
+ onClick = _ref.onClick,
15
+ label = _ref.label,
16
+ testId = _ref.testId;
17
+ return jsx("a", {
18
+ css: linkStyles,
19
+ href: href,
20
+ onClick: onClick,
21
+ "data-testid": testId
22
+ }, label);
23
+ };
24
+
25
+ export default Link;
@@ -0,0 +1,43 @@
1
+ /* eslint-disable @repo/internal/styles/no-nested-styles */
2
+
3
+ /** @jsx jsx */
4
+ import { css, jsx } from '@emotion/core';
5
+ import { LABEL_TOP_SPACING, PROGRESS_BAR_HEIGHT, varBackgroundColor, varMarkerColor, varTransitionDelay, varTransitionEasing, varTransitionSpeed } from './constants';
6
+ var progressMarkerStyles = css({
7
+ width: PROGRESS_BAR_HEIGHT,
8
+ height: PROGRESS_BAR_HEIGHT,
9
+ position: 'absolute',
10
+ left: '50%',
11
+ backgroundColor: "var(".concat(varBackgroundColor, ")"),
12
+ borderRadius: PROGRESS_BAR_HEIGHT,
13
+ transform: "translate(-50%, -".concat(LABEL_TOP_SPACING, "px)"),
14
+ transition: "opacity var(".concat(varTransitionSpeed, ") var(").concat(varTransitionEasing, "), background-color var(").concat(varTransitionSpeed, ") var(").concat(varTransitionEasing, ")"),
15
+ transitionDelay: "var(".concat(varTransitionDelay, ")"),
16
+ '&.fade-appear': {
17
+ opacity: 0.01
18
+ },
19
+ '&.fade-appear.fade-appear-active': {
20
+ opacity: 1
21
+ },
22
+ '&.fade-enter': {
23
+ backgroundColor: "var(".concat(varMarkerColor, ")")
24
+ },
25
+ '&.fade-enter.fade-enter-active': {
26
+ backgroundColor: "var(".concat(varBackgroundColor, ")")
27
+ }
28
+ });
29
+ /**
30
+ * __Progress marker__
31
+ *
32
+ * Similar to `@atlaskit/progress-indicator`, a small visual circle marker
33
+ */
34
+
35
+ var ProgressMarker = function ProgressMarker(_ref) {
36
+ var testId = _ref.testId;
37
+ return jsx("div", {
38
+ "data-testid": testId,
39
+ css: progressMarkerStyles
40
+ });
41
+ };
42
+
43
+ export default ProgressMarker;
@@ -1,9 +1,10 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
1
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
3
2
  import _createClass from "@babel/runtime/helpers/createClass";
3
+ import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
4
4
  import _inherits from "@babel/runtime/helpers/inherits";
5
5
  import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
6
6
  import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
7
8
 
8
9
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
9
10
 
@@ -13,61 +14,40 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
13
14
 
14
15
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
15
16
 
16
- import React, { PureComponent } from 'react';
17
- import { CSSTransition } from 'react-transition-group';
18
- import * as colors from '@atlaskit/theme/colors';
19
- import { ProgressTrackerListItem, ProgressTrackerStageBar, ProgressTrackerStageContainer, ProgressTrackerStageMarker, ProgressTrackerStageTitle } from './styled';
20
- var semibold = '600';
21
- var regular = '400';
22
-
23
- var getMarkerColor = function getMarkerColor(status) {
24
- switch (status) {
25
- case 'unvisited':
26
- return colors.N70;
27
-
28
- case 'current':
29
- case 'visited':
30
- case 'disabled':
31
- return colors.B300;
32
-
33
- default:
34
- return;
35
- }
36
- };
37
-
38
- var getTextColor = function getTextColor(status) {
39
- switch (status) {
40
- case 'unvisited':
41
- return colors.N300;
17
+ /* eslint-disable @repo/internal/styles/no-nested-styles */
42
18
 
43
- case 'current':
44
- return colors.B300;
45
-
46
- case 'visited':
47
- return colors.N800;
48
-
49
- case 'disabled':
50
- return colors.N70;
51
-
52
- default:
53
- return;
54
- }
55
- };
56
-
57
- var getFontWeight = function getFontWeight(status) {
58
- switch (status) {
59
- case 'unvisited':
60
- return regular;
61
-
62
- case 'current':
63
- case 'visited':
64
- case 'disabled':
65
- return semibold;
66
-
67
- default:
68
- return;
19
+ /** @jsx jsx */
20
+ import { PureComponent } from 'react';
21
+ import { css, jsx } from '@emotion/core';
22
+ import { CSSTransition } from 'react-transition-group';
23
+ import { fontSize } from '@atlaskit/theme/constants';
24
+ import ProgressBar from './bar';
25
+ import { LABEL_TOP_SPACING, varBackgroundColor, varMarkerColor, varTransitionDelay, varTransitionEasing, varTransitionSpeed } from './constants';
26
+ import ProgressMarker from './marker';
27
+ import { getFontWeight, getMarkerColor, getTextColor } from './utils';
28
+ var containerStyles = css({
29
+ width: '100%',
30
+ position: 'relative'
31
+ });
32
+ var listItemStyles = css({
33
+ margin: 0,
34
+ overflowWrap: 'break-word'
35
+ });
36
+ var titleStyles = css({
37
+ marginTop: LABEL_TOP_SPACING,
38
+ marginRight: 'auto',
39
+ marginLeft: 'auto',
40
+ fontSize: fontSize(),
41
+ lineHeight: '16px',
42
+ textAlign: 'center',
43
+ '&.fade-appear': {
44
+ opacity: 0.01
45
+ },
46
+ '&.fade-appear.fade-appear-active': {
47
+ opacity: 1,
48
+ transition: "opacity var(".concat(varTransitionSpeed, ") cubic-bezier(0.2, 0, 0, 1)")
69
49
  }
70
- };
50
+ });
71
51
 
72
52
  var ProgressTrackerStage = /*#__PURE__*/function (_PureComponent) {
73
53
  _inherits(ProgressTrackerStage, _PureComponent);
@@ -80,6 +60,15 @@ var ProgressTrackerStage = /*#__PURE__*/function (_PureComponent) {
80
60
  _classCallCheck(this, ProgressTrackerStage);
81
61
 
82
62
  _this = _super.call(this, props);
63
+
64
+ _defineProperty(_assertThisInitialized(_this), "onEntered", function () {
65
+ _this.setState({
66
+ transitioning: false,
67
+ oldMarkerColor: getMarkerColor(_this.props.item.status),
68
+ oldPercentageComplete: _this.props.item.percentageComplete
69
+ });
70
+ });
71
+
83
72
  _this.state = {
84
73
  transitioning: false,
85
74
  oldMarkerColor: getMarkerColor(_this.props.item.status),
@@ -110,61 +99,53 @@ var ProgressTrackerStage = /*#__PURE__*/function (_PureComponent) {
110
99
  }, {
111
100
  key: "render",
112
101
  value: function render() {
113
- var _this2 = this;
102
+ var _ref;
114
103
 
115
104
  var _this$props = this.props,
116
105
  item = _this$props.item,
117
106
  render = _this$props.render,
118
107
  transitionDelay = _this$props.transitionDelay,
119
108
  transitionSpeed = _this$props.transitionSpeed,
120
- transitionEasing = _this$props.transitionEasing;
121
-
122
- var onEntered = function onEntered() {
123
- _this2.setState({
124
- transitioning: false,
125
- oldMarkerColor: getMarkerColor(item.status),
126
- oldPercentageComplete: item.percentageComplete
127
- });
128
- };
129
-
109
+ transitionEasing = _this$props.transitionEasing,
110
+ testId = _this$props.testId;
130
111
  var ariaCurrent = item.status === 'current' ? 'step' : 'false';
131
- return /*#__PURE__*/React.createElement(ProgressTrackerListItem, {
112
+ return jsx("li", {
113
+ "data-testid": testId,
114
+ style: (_ref = {}, _defineProperty(_ref, varTransitionSpeed, "".concat(transitionSpeed, "ms")), _defineProperty(_ref, varTransitionDelay, "".concat(transitionDelay, "ms")), _defineProperty(_ref, varTransitionEasing, transitionEasing), _defineProperty(_ref, varMarkerColor, this.state.oldMarkerColor), _defineProperty(_ref, varBackgroundColor, getMarkerColor(item.status)), _ref),
115
+ css: listItemStyles,
132
116
  "aria-current": ariaCurrent
133
- }, /*#__PURE__*/React.createElement(ProgressTrackerStageContainer, null, /*#__PURE__*/React.createElement(CSSTransition, {
117
+ }, jsx("div", {
118
+ css: containerStyles
119
+ }, jsx(CSSTransition, {
134
120
  appear: true,
135
121
  in: this.state.transitioning,
136
- onEntered: onEntered,
122
+ onEntered: this.onEntered,
137
123
  timeout: transitionDelay + transitionSpeed,
138
124
  classNames: "fade"
139
- }, /*#__PURE__*/React.createElement(ProgressTrackerStageMarker, {
140
- oldMarkerColor: this.state.oldMarkerColor,
141
- color: getMarkerColor(item.status),
142
- transitionSpeed: transitionSpeed,
143
- transitionDelay: transitionDelay,
144
- transitionEasing: transitionEasing
145
- })), /*#__PURE__*/React.createElement(CSSTransition, {
125
+ }, jsx(ProgressMarker, {
126
+ testId: testId && "".concat(testId, "-marker")
127
+ })), jsx(CSSTransition, {
146
128
  appear: true,
147
129
  in: this.state.transitioning,
148
- onEntered: onEntered,
130
+ onEntered: this.onEntered,
149
131
  timeout: transitionDelay + transitionSpeed,
150
132
  classNames: "fade"
151
- }, /*#__PURE__*/React.createElement(ProgressTrackerStageBar, {
152
- oldPercentageComplete: this.state.oldPercentageComplete,
153
- percentageComplete: item.percentageComplete,
154
- transitionSpeed: transitionSpeed,
155
- transitionDelay: transitionDelay,
156
- transitionEasing: transitionEasing
157
- })), /*#__PURE__*/React.createElement(CSSTransition, {
133
+ }, jsx(ProgressBar, {
134
+ testId: testId && "".concat(testId, "-bar"),
135
+ percentageComplete: item.percentageComplete
136
+ })), jsx(CSSTransition, {
158
137
  appear: true,
159
138
  in: this.state.transitioning,
160
- onEntered: onEntered,
139
+ onEntered: this.onEntered,
161
140
  timeout: transitionDelay + transitionSpeed,
162
141
  classNames: "fade"
163
- }, /*#__PURE__*/React.createElement(ProgressTrackerStageTitle, {
164
- color: getTextColor(item.status),
165
- fontweight: getFontWeight(item.status),
166
- transitionSpeed: transitionSpeed,
167
- transitionDelay: transitionDelay
142
+ }, jsx("div", {
143
+ css: titleStyles,
144
+ "data-testid": testId && "".concat(testId, "-title"),
145
+ style: {
146
+ color: getTextColor(item.status),
147
+ fontWeight: getFontWeight(item.status)
148
+ }
168
149
  }, this.shouldShowLink() ? render.link({
169
150
  item: item
170
151
  }) : item.label))));
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,48 @@
1
+ import { B300, N300, N70, N800 } from '@atlaskit/theme/colors';
2
+ import { REGULAR_FONT_WEIGHT, SEMI_BOLD_FONT_WEIGHT } from './constants';
3
+ export var getMarkerColor = function getMarkerColor(status) {
4
+ switch (status) {
5
+ case 'unvisited':
6
+ return N70;
7
+
8
+ case 'current':
9
+ case 'visited':
10
+ case 'disabled':
11
+ return B300;
12
+
13
+ default:
14
+ return;
15
+ }
16
+ };
17
+ export var getTextColor = function getTextColor(status) {
18
+ switch (status) {
19
+ case 'unvisited':
20
+ return N300;
21
+
22
+ case 'current':
23
+ return B300;
24
+
25
+ case 'visited':
26
+ return N800;
27
+
28
+ case 'disabled':
29
+ return N70;
30
+
31
+ default:
32
+ return;
33
+ }
34
+ };
35
+ export var getFontWeight = function getFontWeight(status) {
36
+ switch (status) {
37
+ case 'unvisited':
38
+ return REGULAR_FONT_WEIGHT;
39
+
40
+ case 'current':
41
+ case 'visited':
42
+ case 'disabled':
43
+ return SEMI_BOLD_FONT_WEIGHT;
44
+
45
+ default:
46
+ return undefined;
47
+ }
48
+ };
@@ -14,16 +14,26 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
14
14
 
15
15
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
16
16
 
17
- import React, { PureComponent } from 'react';
18
- import { ThemeProvider } from 'styled-components';
19
- import { Grid } from '@atlaskit/page';
20
- import ProgressTrackerLink from '../ProgressTrackerLink';
21
- import ProgressTrackerStage from '../ProgressTrackerStage';
22
- import { ProgressTrackerContainer } from './styled';
23
- var TRANSITION_SPEED = 300;
24
- var LINEAR_TRANSITION_SPEED = 50;
25
- var easeOut = 'cubic-bezier(0.15,1,0.3,1)';
26
- var defaultLabel = 'Progress';
17
+ /* eslint-disable @repo/internal/styles/no-nested-styles */
18
+
19
+ /** @jsx jsx */
20
+ import { PureComponent } from 'react';
21
+ import { css, jsx } from '@emotion/core';
22
+ import { defaultGridSize, spacing } from './constants';
23
+ import { ANIMATION_EASE_OUT, LINEAR_TRANSITION_SPEED, TRANSITION_SPEED, varSpacing } from './internal/constants';
24
+ import Link from './internal/link';
25
+ import Stage from './internal/stage';
26
+ var containerStyles = css({
27
+ display: 'grid',
28
+ width: '100%',
29
+ margin: '0 auto',
30
+ padding: 0,
31
+ gap: "var(".concat(varSpacing, ")"),
32
+ listStyleType: 'none',
33
+ '&&': {
34
+ marginTop: 40
35
+ }
36
+ });
27
37
 
28
38
  var ProgressTracker = /*#__PURE__*/function (_PureComponent) {
29
39
  _inherits(ProgressTracker, _PureComponent);
@@ -41,15 +51,8 @@ var ProgressTracker = /*#__PURE__*/function (_PureComponent) {
41
51
 
42
52
  _this = _super.call.apply(_super, [this].concat(args));
43
53
 
44
- _defineProperty(_assertThisInitialized(_this), "createTheme", function () {
45
- return {
46
- spacing: _this.props.spacing,
47
- columns: _this.props.items.length * 2
48
- };
49
- });
50
-
51
54
  _defineProperty(_assertThisInitialized(_this), "state", {
52
- prevStages: _this.props.items.map(function (stage, index) {
55
+ prevStages: _this.props.items.map(function (stage) {
53
56
  return _objectSpread(_objectSpread({}, stage), {}, {
54
57
  percentageComplete: 0
55
58
  });
@@ -78,7 +81,8 @@ var ProgressTracker = /*#__PURE__*/function (_PureComponent) {
78
81
  }, {
79
82
  key: "render",
80
83
  value: function render() {
81
- var _this3 = this;
84
+ var _this3 = this,
85
+ _ref;
82
86
 
83
87
  var _this$props = this.props,
84
88
  testId = _this$props.testId,
@@ -97,38 +101,43 @@ var ProgressTracker = /*#__PURE__*/function (_PureComponent) {
97
101
  var items = this.props.items.map(function (stage, index) {
98
102
  var transitionSpeed = 0;
99
103
  var transitionDelay = 0;
100
- var transitionEasing = progressChanges > 1 ? 'linear' : easeOut;
104
+ var transitionEasing = progressChanges > 1 ? 'linear' : ANIMATION_EASE_OUT;
101
105
 
102
106
  if (_this3.props.animated) {
103
107
  transitionSpeed = progressChanges > 1 ? LINEAR_TRANSITION_SPEED : TRANSITION_SPEED;
104
108
 
105
109
  if (stage.percentageComplete < _this3.state.prevStages[index].percentageComplete) {
106
- /** load each transition sequentially in reverse */
110
+ /**
111
+ * load each transition sequentially in reverse
112
+ */
107
113
  transitionDelay = (stepsBack - 1) * transitionSpeed;
108
114
  stepsBack -= 1;
109
115
  } else if (stage.percentageComplete > _this3.state.prevStages[index].percentageComplete) {
110
- /** load each transition sequentially */
116
+ /**
117
+ * load each transition sequentially
118
+ */
111
119
  transitionDelay = (totalStepsForward - stepsForward) * transitionSpeed;
112
120
  stepsForward -= 1;
113
121
  }
114
122
  }
115
123
 
116
- return /*#__PURE__*/React.createElement(ProgressTrackerStage, {
117
- key: stage.id,
118
- item: stage,
119
- render: _this3.props.render,
124
+ return jsx(Stage, {
120
125
  transitionSpeed: transitionSpeed,
121
126
  transitionDelay: transitionDelay,
122
- transitionEasing: transitionEasing
127
+ transitionEasing: transitionEasing,
128
+ key: stage.id,
129
+ item: stage,
130
+ render: _this3.props.render
123
131
  });
124
132
  });
125
- return /*#__PURE__*/React.createElement(ThemeProvider, {
126
- theme: this.createTheme()
127
- }, /*#__PURE__*/React.createElement(Grid, {
128
- testId: testId
129
- }, /*#__PURE__*/React.createElement(ProgressTrackerContainer, {
133
+ return jsx("ul", {
134
+ "data-testid": testId,
135
+ style: (_ref = {
136
+ gridTemplateColumns: "repeat(".concat(items.length, ", 1fr)")
137
+ }, _defineProperty(_ref, varSpacing, "".concat(spacing[this.props.spacing], "px")), _defineProperty(_ref, "maxWidth", defaultGridSize * 10 * items.length * 2), _ref),
138
+ css: containerStyles,
130
139
  "aria-label": label
131
- }, items)));
140
+ }, items);
132
141
  }
133
142
  }]);
134
143
 
@@ -139,12 +148,13 @@ _defineProperty(ProgressTracker, "defaultProps", {
139
148
  items: [],
140
149
  spacing: 'cosy',
141
150
  render: {
142
- link: function link(props) {
143
- return /*#__PURE__*/React.createElement(ProgressTrackerLink, props);
151
+ link: function link(_ref2) {
152
+ var item = _ref2.item;
153
+ return jsx(Link, item);
144
154
  }
145
155
  },
146
156
  animated: true,
147
- label: defaultLabel
157
+ label: 'Progress'
148
158
  });
149
159
 
150
160
  export { ProgressTracker as default };
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/progress-tracker",
3
- "version": "8.0.4",
3
+ "version": "8.1.0",
4
4
  "sideEffects": false
5
5
  }
@@ -1,3 +1,10 @@
1
1
  export declare const defaultGridSize: number;
2
- /** Ideally these are exported by @atlaskit/page */
3
- export declare const spacing: Record<string, number>;
2
+ /**
3
+ * Ideally these are exported by @atlaskit/page
4
+ */
5
+ export declare const spacing: {
6
+ readonly comfortable: number;
7
+ readonly cosy: number;
8
+ readonly compact: number;
9
+ };
10
+ export declare type Spacing = keyof typeof spacing;
@@ -1,3 +1,3 @@
1
- export { default as ProgressTracker } from './ProgressTracker';
2
- export type { ProgressTrackerProps } from './ProgressTracker';
1
+ export { default as ProgressTracker } from './progress-tracker';
2
+ export type { ProgressTrackerProps } from './progress-tracker';
3
3
  export type { Stages, Stage } from './types';
@@ -0,0 +1,12 @@
1
+ interface StageBarProps {
2
+ testId?: string;
3
+ percentageComplete: number;
4
+ }
5
+ /**
6
+ * __Progress bar__
7
+ *
8
+ * A progress bar describes the horizontal tracking bar that traverses each individual step.
9
+ *
10
+ */
11
+ declare const ProgressBar: ({ percentageComplete, testId }: StageBarProps) => JSX.Element;
12
+ export default ProgressBar;
@@ -0,0 +1,14 @@
1
+ export declare const TRANSITION_SPEED = 300;
2
+ export declare const LINEAR_TRANSITION_SPEED = 50;
3
+ export declare const ANIMATION_EASE_OUT = "cubic-bezier(0.15,1,0.3,1)";
4
+ export declare const varSpacing = "--ds--pt--sp";
5
+ export declare const varTransitionSpeed = "--ds--pt--ts";
6
+ export declare const varTransitionDelay = "--ds--pt--td";
7
+ export declare const varTransitionEasing = "--ds--pt--te";
8
+ export declare const varMarkerColor = "--ds--pt--mc";
9
+ export declare const varBackgroundColor = "--ds--pt--bg";
10
+ export declare const SEMI_BOLD_FONT_WEIGHT = "600";
11
+ export declare const REGULAR_FONT_WEIGHT = "400";
12
+ export declare const HALF_GRID_SIZE: number;
13
+ export declare const PROGRESS_BAR_HEIGHT: number;
14
+ export declare const LABEL_TOP_SPACING: number;
@@ -0,0 +1,10 @@
1
+ /** @jsx jsx */
2
+ import { FC } from 'react';
3
+ import { Stage } from '../types';
4
+ /**
5
+ * __Progress tracker link__
6
+ */
7
+ declare const Link: FC<Stage & {
8
+ testId?: string;
9
+ }>;
10
+ export default Link;
@@ -0,0 +1,11 @@
1
+ /** @jsx jsx */
2
+ import { FC } from 'react';
3
+ /**
4
+ * __Progress marker__
5
+ *
6
+ * Similar to `@atlaskit/progress-indicator`, a small visual circle marker
7
+ */
8
+ declare const ProgressMarker: FC<{
9
+ testId?: string;
10
+ }>;
11
+ export default ProgressMarker;
@@ -0,0 +1,17 @@
1
+ /** @jsx jsx */
2
+ import { PureComponent } from 'react';
3
+ import type { ProgressTrackerStageProps } from './types';
4
+ interface State {
5
+ transitioning: boolean;
6
+ oldMarkerColor?: string;
7
+ oldPercentageComplete: number;
8
+ }
9
+ export type { ProgressTrackerStageProps };
10
+ export default class ProgressTrackerStage extends PureComponent<ProgressTrackerStageProps, State> {
11
+ constructor(props: ProgressTrackerStageProps);
12
+ UNSAFE_componentWillMount(): void;
13
+ UNSAFE_componentWillReceiveProps(): void;
14
+ shouldShowLink(): boolean;
15
+ onEntered: () => void;
16
+ render(): JSX.Element;
17
+ }
@@ -0,0 +1,27 @@
1
+ import type { ProgressTrackerStageRenderProp, Stage } from '../types';
2
+ export interface ProgressTrackerStageProps {
3
+ /**
4
+ * stage data passed to each `ProgressTrackerStage` component
5
+ */
6
+ item: Stage;
7
+ /**
8
+ * render prop to specify how to render components
9
+ */
10
+ render: ProgressTrackerStageRenderProp;
11
+ /**
12
+ * An internal hook applied to key elements for automated testing
13
+ */
14
+ testId?: string;
15
+ /**
16
+ * delay before transitioning in ms
17
+ */
18
+ transitionDelay: number;
19
+ /**
20
+ * speed at which to transition in ms
21
+ */
22
+ transitionSpeed: number;
23
+ /**
24
+ * interface of easing for transition
25
+ */
26
+ transitionEasing: string;
27
+ }
@@ -0,0 +1,4 @@
1
+ import type { Status } from '../types';
2
+ export declare const getMarkerColor: (status: Status) => "#0065FF" | "#A5ADBA" | undefined;
3
+ export declare const getTextColor: (status: Status) => "#172B4D" | "#0065FF" | "#A5ADBA" | "#5E6C84" | undefined;
4
+ export declare const getFontWeight: (status: Status) => "600" | "400" | undefined;