@telus-uds/components-web 1.11.0 → 1.12.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 (41) hide show
  1. package/CHANGELOG.md +23 -2
  2. package/lib/DatePicker/CalendarContainer.js +60 -71
  3. package/lib/DatePicker/DatePicker.js +66 -22
  4. package/lib/List/List.js +11 -0
  5. package/lib/List/ListItem.js +48 -0
  6. package/lib/List/index.js +16 -0
  7. package/lib/PriceLockup/PriceLockup.js +27 -13
  8. package/lib/SkeletonProvider/SkeletonImage.js +55 -0
  9. package/lib/SkeletonProvider/SkeletonProvider.js +84 -0
  10. package/lib/SkeletonProvider/SkeletonTypography.js +54 -0
  11. package/lib/SkeletonProvider/index.js +13 -0
  12. package/lib/Table/Table.js +14 -5
  13. package/lib/Toast/Toast.js +1 -1
  14. package/lib/index.js +19 -1
  15. package/lib-module/DatePicker/CalendarContainer.js +61 -72
  16. package/lib-module/DatePicker/DatePicker.js +67 -23
  17. package/lib-module/List/List.js +2 -0
  18. package/lib-module/List/ListItem.js +31 -0
  19. package/lib-module/List/index.js +4 -0
  20. package/lib-module/PriceLockup/PriceLockup.js +27 -13
  21. package/lib-module/SkeletonProvider/SkeletonImage.js +42 -0
  22. package/lib-module/SkeletonProvider/SkeletonProvider.js +65 -0
  23. package/lib-module/SkeletonProvider/SkeletonTypography.js +41 -0
  24. package/lib-module/SkeletonProvider/index.js +2 -0
  25. package/lib-module/Table/Table.js +14 -5
  26. package/lib-module/Toast/Toast.js +1 -1
  27. package/lib-module/index.js +2 -0
  28. package/package.json +3 -3
  29. package/src/DatePicker/CalendarContainer.jsx +61 -71
  30. package/src/DatePicker/DatePicker.jsx +47 -19
  31. package/src/List/List.jsx +3 -0
  32. package/src/List/ListItem.jsx +21 -0
  33. package/src/List/index.js +6 -0
  34. package/src/PriceLockup/PriceLockup.jsx +13 -7
  35. package/src/SkeletonProvider/SkeletonImage.jsx +33 -0
  36. package/src/SkeletonProvider/SkeletonProvider.jsx +62 -0
  37. package/src/SkeletonProvider/SkeletonTypography.jsx +31 -0
  38. package/src/SkeletonProvider/index.js +3 -0
  39. package/src/Table/Table.jsx +7 -4
  40. package/src/Toast/Toast.jsx +1 -0
  41. package/src/index.js +2 -0
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _componentsBase = require("@telus-uds/components-base");
13
+
14
+ var _Image = _interopRequireDefault(require("../Image"));
15
+
16
+ var _SkeletonTypography = _interopRequireDefault(require("./SkeletonTypography"));
17
+
18
+ var _SkeletonImage = _interopRequireDefault(require("./SkeletonImage"));
19
+
20
+ var _jsxRuntime = require("react/jsx-runtime");
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
24
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
+
26
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+
28
+ const SkeletonProvider = _ref => {
29
+ let {
30
+ children,
31
+ show
32
+ } = _ref;
33
+
34
+ if (!show) {
35
+ return children;
36
+ }
37
+
38
+ const mapChild = child => {
39
+ if (!child) {
40
+ return null;
41
+ }
42
+
43
+ let childElement = child;
44
+
45
+ if (childElement.props && 'children' in childElement.props) {
46
+ const {
47
+ children: elementChildren
48
+ } = childElement.props;
49
+ const mappedChildren = Array.isArray(elementChildren) ? elementChildren.map(mapChild) : mapChild(elementChildren);
50
+ childElement = /*#__PURE__*/(0, _react.cloneElement)(childElement, {
51
+ children: mappedChildren
52
+ });
53
+ }
54
+
55
+ if (childElement.type === _componentsBase.Typography) {
56
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_SkeletonTypography.default, { ...childElement.props.skeleton,
57
+ show: show,
58
+ children: childElement
59
+ });
60
+ }
61
+
62
+ if (childElement.type === _Image.default) {
63
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_SkeletonImage.default, { ...childElement.props.skeleton,
64
+ imgHeight: childElement.props.height,
65
+ rounded: childElement.props.rounded,
66
+ show: show,
67
+ children: childElement
68
+ });
69
+ }
70
+
71
+ return childElement;
72
+ };
73
+
74
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
75
+ children: _react.Children.map(children, mapChild)
76
+ });
77
+ };
78
+
79
+ SkeletonProvider.propTypes = {
80
+ show: _propTypes.default.bool.isRequired,
81
+ children: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.arrayOf(_propTypes.default.node)]).isRequired
82
+ };
83
+ var _default = SkeletonProvider;
84
+ exports.default = _default;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _componentsBase = require("@telus-uds/components-base");
13
+
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+
16
+ var _Skeleton$propTypes, _Skeleton$propTypes2, _Skeleton$propTypes3, _Skeleton$propTypes4, _Skeleton$propTypes5;
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ const SkeletonTypography = _ref => {
21
+ let {
22
+ show,
23
+ size,
24
+ sizeIndex,
25
+ sizePixels,
26
+ characters,
27
+ lines,
28
+ children
29
+ } = _ref;
30
+
31
+ if (!show) {
32
+ return children;
33
+ }
34
+
35
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_componentsBase.Skeleton, {
36
+ size: size,
37
+ sizeIndex: sizeIndex,
38
+ sizePixels: sizePixels,
39
+ characters: characters,
40
+ lines: lines
41
+ });
42
+ };
43
+
44
+ SkeletonTypography.propTypes = {
45
+ show: _propTypes.default.bool.isRequired,
46
+ children: _propTypes.default.node,
47
+ size: (_Skeleton$propTypes = _componentsBase.Skeleton.propTypes) === null || _Skeleton$propTypes === void 0 ? void 0 : _Skeleton$propTypes.size,
48
+ sizeIndex: (_Skeleton$propTypes2 = _componentsBase.Skeleton.propTypes) === null || _Skeleton$propTypes2 === void 0 ? void 0 : _Skeleton$propTypes2.sizeIndex,
49
+ sizePixels: (_Skeleton$propTypes3 = _componentsBase.Skeleton.propTypes) === null || _Skeleton$propTypes3 === void 0 ? void 0 : _Skeleton$propTypes3.sizePixels,
50
+ characters: (_Skeleton$propTypes4 = _componentsBase.Skeleton.propTypes) === null || _Skeleton$propTypes4 === void 0 ? void 0 : _Skeleton$propTypes4.characters,
51
+ lines: (_Skeleton$propTypes5 = _componentsBase.Skeleton.propTypes) === null || _Skeleton$propTypes5 === void 0 ? void 0 : _Skeleton$propTypes5.lines
52
+ };
53
+ var _default = SkeletonTypography;
54
+ exports.default = _default;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _SkeletonProvider = _interopRequireDefault(require("./SkeletonProvider"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ var _default = _SkeletonProvider.default;
13
+ exports.default = _default;
@@ -35,7 +35,12 @@ const StyledContainer = /*#__PURE__*/_styledComponents.default.div.withConfig({
35
35
  const StyledTable = /*#__PURE__*/_styledComponents.default.table.withConfig({
36
36
  displayName: "Table__StyledTable",
37
37
  componentId: "components-web__sc-10d9q3m-1"
38
- })(["margin:0;padding:0;"]);
38
+ })(["margin:0;padding:0;width:", ";"], _ref => {
39
+ let {
40
+ tableWidth
41
+ } = _ref;
42
+ return `${tableWidth}px`;
43
+ });
39
44
 
40
45
  const TableContext = /*#__PURE__*/_react.default.createContext({});
41
46
 
@@ -58,14 +63,15 @@ const useTableContext = () => (0, _react.useContext)(TableContext);
58
63
 
59
64
  exports.useTableContext = useTableContext;
60
65
 
61
- const Table = _ref => {
66
+ const Table = _ref2 => {
62
67
  let {
63
68
  children,
69
+ fullWidth = false,
64
70
  text = 'medium',
65
71
  tokens,
66
72
  variant,
67
73
  ...rest
68
- } = _ref;
74
+ } = _ref2;
69
75
  const {
70
76
  tablePaddingBottom
71
77
  } = (0, _componentsBase.useThemeTokens)('Table', tokens, variant);
@@ -75,8 +81,10 @@ const Table = _ref => {
75
81
  const [tableWidth, setTableWidth] = (0, _react.useState)(0);
76
82
  (0, _componentsBase.useSafeLayoutEffect)(() => {
77
83
  const updateDimensions = () => {
78
- setContainerWidth(containerRef.current.clientWidth);
79
- setTableWidth(tableRef.current.clientWidth);
84
+ const containerClientWidth = containerRef.current.clientWidth;
85
+ const responsiveTableWidth = fullWidth ? containerClientWidth : tableRef.current.clientWidth;
86
+ setContainerWidth(containerClientWidth);
87
+ setTableWidth(responsiveTableWidth);
80
88
  };
81
89
 
82
90
  const throttledUpdateDimensions = (0, _lodash.default)(updateDimensions, 100, {
@@ -105,6 +113,7 @@ const Table = _ref => {
105
113
  variant
106
114
  },
107
115
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledTable, {
116
+ tableWidth: tableWidth,
108
117
  cellSpacing: 0,
109
118
  ref: tableRef,
110
119
  children: children
@@ -39,7 +39,7 @@ const animation = props => (0, _styledComponents.css)(["", " 1s ease-in-out 2s f
39
39
  const ToastContainer = /*#__PURE__*/_styledComponents.default.div.withConfig({
40
40
  displayName: "Toast__ToastContainer",
41
41
  componentId: "components-web__sc-p78jdh-0"
42
- })(["display:flex;justify-content:center;align-items:center;background:", ";gap:", ";height:0;overflow:hidden;animation:", ";"], _ref => {
42
+ })(["display:flex;justify-content:center;align-items:center;flex-wrap:wrap;background:", ";gap:", ";height:0;overflow:hidden;animation:", ";"], _ref => {
43
43
  let {
44
44
  containerBackgroundColor
45
45
  } = _ref;
package/lib/index.js CHANGED
@@ -38,9 +38,11 @@ var _exportNames = {
38
38
  StoryCard: true,
39
39
  Disclaimer: true,
40
40
  Card: true,
41
+ List: true,
41
42
  TermsAndConditions: true,
42
43
  NavigationBar: true,
43
- Progress: true
44
+ Progress: true,
45
+ SkeletonProvider: true
44
46
  };
45
47
  Object.defineProperty(exports, "Autocomplete", {
46
48
  enumerable: true,
@@ -120,6 +122,12 @@ Object.defineProperty(exports, "Image", {
120
122
  return _Image.default;
121
123
  }
122
124
  });
125
+ Object.defineProperty(exports, "List", {
126
+ enumerable: true,
127
+ get: function () {
128
+ return _List.default;
129
+ }
130
+ });
123
131
  Object.defineProperty(exports, "Listbox", {
124
132
  enumerable: true,
125
133
  get: function () {
@@ -192,6 +200,12 @@ Object.defineProperty(exports, "Ribbon", {
192
200
  return _Ribbon.default;
193
201
  }
194
202
  });
203
+ Object.defineProperty(exports, "SkeletonProvider", {
204
+ enumerable: true,
205
+ get: function () {
206
+ return _SkeletonProvider.default;
207
+ }
208
+ });
195
209
  Object.defineProperty(exports, "Span", {
196
210
  enumerable: true,
197
211
  get: function () {
@@ -333,12 +347,16 @@ var _Disclaimer = _interopRequireDefault(require("./Disclaimer"));
333
347
 
334
348
  var _Card = _interopRequireDefault(require("./Card"));
335
349
 
350
+ var _List = _interopRequireDefault(require("./List"));
351
+
336
352
  var _TermsAndConditions = _interopRequireDefault(require("./TermsAndConditions"));
337
353
 
338
354
  var _NavigationBar = _interopRequireDefault(require("./NavigationBar"));
339
355
 
340
356
  var _Progress = _interopRequireDefault(require("./Progress"));
341
357
 
358
+ var _SkeletonProvider = _interopRequireDefault(require("./SkeletonProvider"));
359
+
342
360
  var _baseExports = require("./baseExports");
343
361
 
344
362
  Object.keys(_baseExports).forEach(function (key) {
@@ -1,5 +1,7 @@
1
1
  import styled from 'styled-components';
2
- import defaultReactDatesCss from './reactDatesCss';
2
+ import defaultReactDatesCss from './reactDatesCss'; // calendarDayDefaultHeight and calendarDayDefaultWidth
3
+ // refer to circle size when selected, focused, or hovered and is passed with getResponsiveCircleSize in DatePicker
4
+
3
5
  const CalendarContainer = /*#__PURE__*/styled.div.withConfig({
4
6
  displayName: "CalendarContainer",
5
7
  componentId: "components-web__sc-qdc1tg-0"
@@ -9,7 +11,9 @@ const CalendarContainer = /*#__PURE__*/styled.div.withConfig({
9
11
  validation,
10
12
  remainingTokens,
11
13
  calendarMonthFontTokens,
12
- dayPickerNavigationButtonTokens,
14
+ calendarDayDefaultHeight,
15
+ calendarDayDefaultWidth,
16
+ calendarWeekFontTokens,
13
17
  defaultFontTokens
14
18
  } = _ref;
15
19
  return `
@@ -22,24 +26,25 @@ const CalendarContainer = /*#__PURE__*/styled.div.withConfig({
22
26
  display: block;
23
27
  }
24
28
  .SingleDatePicker_picker {
29
+ background-color: ${remainingTokens.calendarBackgroundColor};
25
30
  box-shadow: none;
26
31
  border: 1px solid ${remainingTokens.singleDatePickerBorderColor};
27
- border-radius: ${remainingTokens.singleDatePickerRadius};
32
+ border-radius: ${remainingTokens.singleDatePickerRadius}px;
28
33
  padding: ${remainingTokens.singleDatePickerPaddingTopBottom}px ${remainingTokens.singleDatePickerLeftRight}px;
29
34
  z-index: 3;
30
35
  }
31
36
  .DateInput {
32
37
  width: 100%;
33
38
  border: 2px solid ${remainingTokens.dateInputBorderColor};
34
- border-radius: ${remainingTokens.dateInputBorderRadius};
35
39
  ${validation === 'error' && `input { border-color: ${remainingTokens.invalidInputMixin}; }`};
36
40
  ${validation === 'success' && `input { border-color: ${remainingTokens.validInputMixin}; }`};
37
41
  }
38
42
  .DateInput:hover {
43
+ border-radius: ${remainingTokens.dateInputBorderRadius}px;
39
44
  border: 2px solid ${remainingTokens.dateInputHoverBorderColor};
40
45
  }
41
- .DateInput:focus {
42
- border: 2px solid ${remainingTokens.dateInputFocusBorderColor};
46
+ .DateInput_input:focus {
47
+ border: 3px solid ${remainingTokens.dateInputFocusBorderColor};
43
48
  }
44
49
  .SingleDatePickerInput__withBorder {
45
50
  border: 0 !important;
@@ -60,94 +65,63 @@ const CalendarContainer = /*#__PURE__*/styled.div.withConfig({
60
65
  z-index: 4;
61
66
  left: ${(daySize * 8.5 - 20) / 2}px;
62
67
  }
68
+ .DateInput_fangShape {
69
+ fill: ${remainingTokens.calendarBackgroundColor}
70
+ }
63
71
  .DateInput_fangStroke {
64
72
  stroke: ${remainingTokens.dateInputStrokeColor};
65
73
  }
66
74
  .CalendarMonth_caption {
67
75
  color: ${remainingTokens.calendarMonthCaptionColor};
68
76
  font-family: ${calendarMonthFontTokens.fontFamily};
69
- font-size: ${remainingTokens.calendarMonthCaptionFontSize};
77
+ font-size: ${remainingTokens.calendarMonthCaptionFontSize}px;
70
78
  font-weight: ${calendarMonthFontTokens.fontWeight};
71
79
  line-height: ${remainingTokens.calendarMonthCaptionLineHeight};
72
80
  padding-bottom: ${remainingTokens.calendarMonthCaptionPaddingBottom}px;
73
81
  }
82
+ .DayPicker{
83
+ background-color: ${remainingTokens.calendarBackgroundColor};
84
+ }
74
85
  .DayPicker__withBorder {
75
86
  box-shadow: none;
76
87
  }
77
- .DayPickerNavigation_button {
78
- align-items: center;
88
+ .DayPickerNavigation {
79
89
  display: flex;
80
- justify-content: center;
81
- border: 1px solid ${remainingTokens.dayPickerNavigationButtonBorderColor};
82
- background-color: ${remainingTokens.dayPickerNavigationButtonBackgroundColor};
83
- border-radius: 50%;
84
- box-shadow: 0 2px 2px rgba(0, 0, 0, 0.1);
85
- max-height: ${remainingTokens.dayPickerNavigationButtonMaxHeight}px;
86
- max-width: ${remainingTokens.dayPickerNavigationButtonMaxWidth}px;
87
- position: absolute;
88
- top: 18px;
89
- line-height: 0.78;
90
- padding: ${remainingTokens.dayPickerNavigationButtonPadding}px;
91
- cursor: pointer;
92
- user-select: none;
93
- &:nth-child(1) {
94
- left: ${remainingTokens.dayPickerNavigationButtonChildLeft}px;
95
- }
96
- &:nth-child(2) {
97
- right: ${remainingTokens.dayPickerNavigationButtonChildRight}px;
98
- i {
99
- font-family: 'TELUS Core Icons';
100
- display: inline-block;
101
- font-weight: normal;
102
- font-style: normal;
103
- speak: none;
104
- text-decoration: inherit;
105
- text-transform: none;
106
- text-rendering: auto;
107
- -webkit-font-smoothing: antialiased;
108
- -moz-osx-font-smoothing: grayscale;
109
- line-height: 1;
110
- vertical-align: middle;
111
- &:before {
112
- content: '\\F107';
113
- display: inline-block;
114
- }
115
- }
116
- }
117
- & svg {
118
- fill: ${remainingTokens.dayPickerNavigationButtonChildSvgFill};
119
- }
90
+ justify-content: space-between;
91
+ align-self: center;
92
+ top: 23px;
93
+ padding: 0px ${remainingTokens.dayPickerNavigationButtonPadding}px;
120
94
  }
121
95
  .DayPickerNavigation_button__default:focus,
122
- .DayPickerNavigation_button__default:hover {
123
- border: 1px solid ${remainingTokens.dayPickerNavigationButtonDefaultHoverBorderColor};
124
- }
125
- .DayPickerNavigation_svg__horizontal {
126
- fill: ${remainingTokens.dayPickerNavigationSVGHorizontalFill};
127
- }
96
+ .DayPickerNavigation_button:hover,
97
+ .DayPickerNavigation_svg__horizontal,
128
98
  .DayPicker_weekHeader {
129
99
  color: ${remainingTokens.dayPickerWeekHeaderColor};
130
- font-family: ${dayPickerNavigationButtonTokens.fontFamily};
131
- font-weight: ${dayPickerNavigationButtonTokens.fontWeight};
100
+ font-family: ${calendarWeekFontTokens.fontFamily};
132
101
  font-feature-settings: 'ss01' on, 'ss03' on, 'ss08' on;
133
102
  line-height: ${remainingTokens.dayPickerWeekHeaderLineHeight};
134
- & small {
135
- font-size: ${remainingTokens.dayPickerWeekHeaderSmall};
136
- }
137
103
  & li {
104
+ font-size: ${remainingTokens.dayPickerWeekHeaderSmall}px;
138
105
  max-width: ${daySize}px !important;
139
106
  }
140
107
  }
108
+ .CalendarMonthGrid {
109
+ background-color: ${remainingTokens.calendarBackgroundColor};
110
+ }
111
+ .CalendarMonth {
112
+ background-color: ${remainingTokens.calendarBackgroundColor};
113
+ }
141
114
  .CalendarDay__default {
142
115
  padding: 0px;
143
116
  position: relative;
117
+ background: ${remainingTokens.calendarDayDefaultBackgroundColor};
144
118
  background-clip: padding-box;
145
- border: ${remainingTokens.calendarDayDefaultBorder} solid ${remainingTokens.calendarDayDefaultBorderColor};
119
+ border: ${remainingTokens.calendarDayDefaultBorder}px solid ${remainingTokens.calendarDayDefaultBorderColor};
146
120
  vertical-align: middle;
147
121
  font-family: ${defaultFontTokens.fontFamily};
148
122
  font-weight: ${defaultFontTokens.fontWeight}
149
123
  font-feature-settings: 'ss01' on, 'ss03' on, 'ss08' on;
150
- font-size: ${remainingTokens.calendarDayDefaultFontSize};
124
+ font-size: ${remainingTokens.calendarDayDefaultFontSize}px;
151
125
  line-height: ${daySize - 3}px !important;
152
126
  color: ${remainingTokens.calendarDayDefaultColor};
153
127
  text-decoration: none;
@@ -158,36 +132,51 @@ const CalendarContainer = /*#__PURE__*/styled.div.withConfig({
158
132
  top: 50%;
159
133
  left: 50%;
160
134
  transform: translate(-50%, -50%);
161
- height: ${remainingTokens.calendarDayDefaultBeforeHeight}px;
162
- width: ${remainingTokens.calendarDayDefaultBeforeWidth}px;
135
+ height: ${calendarDayDefaultHeight}px;
136
+ width: ${calendarDayDefaultWidth}px;
163
137
  border-radius: 50%;
164
138
  background: transparent;
165
139
  transition: all 0.3s;
166
140
  z-index: -1;
167
141
  }
168
142
  }
169
- .CalendarDay__default:hover,
170
- .CalendarDay__selected,
171
- .CalendarDay__selected:active,
172
- .CalendarDay__selected:hover {
173
- background: none;
143
+ .CalendarDay__default:hover {
144
+ background: ${remainingTokens.calendarDaySelectedHoverBackground};
174
145
  border: 1px solid ${remainingTokens.calendarDaySelectedHoverBorderColor};
175
146
  color: ${remainingTokens.calendarDaySelectedHoverColor};
176
147
  text-decoration: none;
177
148
  z-index: 0;
178
149
  &:before {
150
+ border: 1px solid ${remainingTokens.calendarDaySelectedHoverBeforeBorderColor};
179
151
  background: ${remainingTokens.calendarDaySelectedHoverBeforeBackground};
180
152
  }
181
153
  }
154
+ .CalendarDay__default:focus{
155
+ background: ${remainingTokens.calendarDaySelectedHoverBackground};
156
+ border: 1px solid ${remainingTokens.calendarDaySelectedHoverBorderColor};
157
+ color: ${remainingTokens.calendarDaySelectedHoverColor};
158
+ text-decoration: none;
159
+ z-index: 0;
160
+ &:before {
161
+ border: 1px solid ${remainingTokens.calendarDaySelectedHoverBeforeBorderColor};
162
+ background: ${remainingTokens.calendarDaySelectedFocusBeforeBackground};
163
+ }
164
+ }
165
+ .CalendarDay__selected,
166
+ .CalendarDay__selected:active,
167
+ .CalendarDay__selected:hover
182
168
  .CalendarDay__default.CalendarDay__selected,
183
169
  .CalendarDay__default.CalendarDay__selected:active
184
- .CalendarDay__default.CalendarDay__selected:hover {
170
+ .CalendarDay__default.CalendarDay__selected:hover{
171
+ background: ${remainingTokens.calendarDayDefaultCalendarDaySelectedHoverBackground};
172
+ border: 1px solid ${remainingTokens.calendarDaySelectedHoverBorderColor};
185
173
  color: ${remainingTokens.calendarDayDefaultCalendarDaySelectedHoverColor};
186
174
  text-decoration: none;
175
+ z-index: 0;
187
176
  &:before {
188
- background: ${remainingTokens.calendarDayDefaultCalendarDaySelectedHoverBackground};
189
- }
177
+ background: ${remainingTokens.calendarDayDefaultCalendarDaySelectedHoverBeforeBackground};
190
178
  }
179
+ }
191
180
  .CalendarDay__blocked_out_of_range,
192
181
  .CalendarDay__blocked_out_of_range:active,
193
182
  .CalendarDay__blocked_out_of_range:hover,
@@ -5,7 +5,7 @@ import momentPropTypes from 'react-moment-proptypes';
5
5
  import 'react-dates/initialize';
6
6
  import SingleDatePicker from 'react-dates/lib/components/SingleDatePicker';
7
7
  import DayPickerSingleDateController from 'react-dates/lib/components/DayPickerSingleDateController';
8
- import { Icon, InputSupports, selectSystemProps, useCopy, useViewport, useThemeTokens, applyTextStyles } from '@telus-uds/components-base';
8
+ import { IconButton, InputSupports, selectSystemProps, useCopy, useViewport, useThemeTokens, applyTextStyles } from '@telus-uds/components-base';
9
9
  import CalendarContainer from './CalendarContainer';
10
10
  import dictionary from './dictionary';
11
11
  import { htmlAttrs } from '../utils';
@@ -28,12 +28,19 @@ const getResponsiveDaySize = function () {
28
28
  return responsiveDaySize;
29
29
  };
30
30
 
31
- const getIcon = icon => /*#__PURE__*/_jsx(Icon, {
32
- icon: icon,
33
- variant: {
34
- size: 'small'
31
+ const getResponsiveCircleSize = function () {
32
+ let inline = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
33
+ let viewport = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'md';
34
+ let responsiveCircleSize;
35
+
36
+ if (viewport === 'xs') {
37
+ responsiveCircleSize = 26;
38
+ } else {
39
+ responsiveCircleSize = inline ? 44 : 26;
35
40
  }
36
- });
41
+
42
+ return responsiveCircleSize;
43
+ };
37
44
 
38
45
  const MonthCenterContainer = /*#__PURE__*/styled.div.withConfig({
39
46
  displayName: "DatePicker__MonthCenterContainer",
@@ -105,6 +112,7 @@ const DatePicker = /*#__PURE__*/forwardRef((_ref, ref) => {
105
112
 
106
113
  const viewport = useViewport();
107
114
  const daySize = getResponsiveDaySize(inline, viewport);
115
+ const circleSize = getResponsiveCircleSize(inline, viewport);
108
116
  const value = date ?? inputDate;
109
117
  const HiddenInputFieldContainer = /*#__PURE__*/styled.div.withConfig({
110
118
  displayName: "DatePicker__HiddenInputFieldContainer",
@@ -116,7 +124,9 @@ const DatePicker = /*#__PURE__*/forwardRef((_ref, ref) => {
116
124
  previousIcon,
117
125
  nextIcon,
118
126
  ...remainingTokens
119
- } = useThemeTokens('DatePicker', tokens, variant, {
127
+ } = useThemeTokens('DatePicker', tokens, { ...variant,
128
+ inline
129
+ }, {
120
130
  viewport
121
131
  });
122
132
  const defaultFontTokens = applyTextStyles({
@@ -127,16 +137,50 @@ const DatePicker = /*#__PURE__*/forwardRef((_ref, ref) => {
127
137
  fontName: remainingTokens.calendarMonthCaptionFontName,
128
138
  fontWeight: remainingTokens.calendarMonthCaptionFontWeight
129
139
  });
130
- const dayPickerNavigationButtonTokens = applyTextStyles({
140
+ const calendarWeekFontTokens = applyTextStyles({
131
141
  fontName: remainingTokens.dayPickerWeekHeaderFontName,
132
142
  fontWeight: remainingTokens.dayPickerWeekHeaderFontWeight
133
143
  });
144
+
145
+ const renderPrevButton = _ref3 => {
146
+ let {
147
+ onClick
148
+ } = _ref3;
149
+ return /*#__PURE__*/_jsx(IconButton, {
150
+ onPress: () => {
151
+ onClick();
152
+ },
153
+ icon: previousIcon,
154
+ variant: {
155
+ size: 'small'
156
+ }
157
+ });
158
+ };
159
+
160
+ const renderNextButton = _ref4 => {
161
+ let {
162
+ onClick
163
+ } = _ref4;
164
+ return /*#__PURE__*/_jsx(IconButton, {
165
+ onPress: () => {
166
+ onClick();
167
+ },
168
+ icon: nextIcon,
169
+ variant: {
170
+ size: 'small'
171
+ }
172
+ });
173
+ };
174
+
134
175
  return /*#__PURE__*/_jsx(CalendarContainer, { ...selectProps(rest),
135
176
  daySize: daySize,
136
177
  validation: validation,
137
- remainingTokens: remainingTokens,
178
+ remainingTokens: { ...remainingTokens
179
+ },
180
+ calendarDayDefaultHeight: circleSize,
181
+ calendarDayDefaultWidth: circleSize,
138
182
  calendarMonthFontTokens: calendarMonthFontTokens,
139
- dayPickerNavigationButtonTokens: dayPickerNavigationButtonTokens,
183
+ calendarWeekFontTokens: calendarWeekFontTokens,
140
184
  defaultFontTokens: defaultFontTokens,
141
185
  children: /*#__PURE__*/_jsx(InputSupports, {
142
186
  copy: copy,
@@ -167,14 +211,14 @@ const DatePicker = /*#__PURE__*/forwardRef((_ref, ref) => {
167
211
  hideKeyboardShortcutsPanel: true,
168
212
  keepOpenOnDateSelect: false,
169
213
  daySize: daySize,
170
- navPrev: getIcon(previousIcon),
171
- navNext: getIcon(nextIcon),
214
+ renderNavPrevButton: renderPrevButton,
215
+ renderNavNextButton: renderNextButton,
172
216
  isOutsideRange: isDayDisabled,
173
217
  phrases: getCopy(),
174
- renderMonthElement: _ref3 => {
218
+ renderMonthElement: _ref5 => {
175
219
  let {
176
220
  month
177
- } = _ref3;
221
+ } = _ref5;
178
222
  return /*#__PURE__*/_jsx(MonthCenterContainer, {
179
223
  children: /*#__PURE__*/_jsxs("div", {
180
224
  children: [dictionary[copy] ? dictionary[copy].months[month.month()] : month.format('MMMM'), ' ', month.year()]
@@ -186,26 +230,26 @@ const DatePicker = /*#__PURE__*/forwardRef((_ref, ref) => {
186
230
  })
187
231
  })]
188
232
  }) : /*#__PURE__*/_jsx(SingleDatePicker, {
189
- ref: ref,
190
- id: id,
191
233
  date: value,
192
234
  onDateChange: onChange,
193
235
  focused: isFocused,
194
236
  onFocusChange: onFocusChange,
195
237
  numberOfMonths: 1,
196
238
  hideKeyboardShortcutsPanel: true,
197
- displayFormat: "DD / MM / YYYY",
198
- placeholder: "DD / MM / YYYY",
199
- keepOpenOnDateSelect: false,
239
+ keepOpenOnDateSelect: true,
200
240
  daySize: daySize,
201
- navPrev: getIcon(previousIcon),
202
- navNext: getIcon(nextIcon),
241
+ ref: ref,
242
+ renderNavPrevButton: renderPrevButton,
203
243
  isOutsideRange: isDayDisabled,
204
244
  phrases: getCopy(),
205
- renderMonthElement: _ref4 => {
245
+ id: id,
246
+ displayFormat: "DD / MM / YYYY",
247
+ placeholder: "DD / MM / YYYY",
248
+ renderNavNextButton: renderNextButton,
249
+ renderMonthElement: _ref6 => {
206
250
  let {
207
251
  month
208
- } = _ref4;
252
+ } = _ref6;
209
253
  return /*#__PURE__*/_jsx(MonthCenterContainer, {
210
254
  children: /*#__PURE__*/_jsxs("div", {
211
255
  children: [dictionary[copy] ? dictionary[copy].months[month.month()] : month.format('MMMM'), ' ', month.year()]
@@ -0,0 +1,2 @@
1
+ import { ListBase as List } from '@telus-uds/components-base';
2
+ export default List;