@pingux/astro 2.163.1-alpha.1 → 2.163.1-alpha.3

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 (58) hide show
  1. package/lib/cjs/components/ComboBoxField/ComboBoxField.js +7 -3
  2. package/lib/cjs/components/ListBox/ListBox.js +15 -0
  3. package/lib/cjs/components/ListBox/ListBox.test.js +14 -1
  4. package/lib/cjs/components/MenuItem/MenuItem.js +22 -13
  5. package/lib/cjs/components/MenuItem/MenuItem.styles.d.ts +1 -1
  6. package/lib/cjs/components/MenuItem/MenuItem.styles.js +1 -1
  7. package/lib/cjs/components/MenuItem/MenuItem.test.js +217 -194
  8. package/lib/cjs/components/MenuSection/MenuSection.js +2 -1
  9. package/lib/cjs/components/PopoverMenu/PopoverMenu.stories.js +57 -33
  10. package/lib/cjs/components/TimeZonePicker/TimeZonePicker.js +117 -140
  11. package/lib/cjs/components/TimeZonePicker/TimeZonePicker.test.js +29 -2
  12. package/lib/cjs/components/TimeZonePicker/helper.d.ts +6 -0
  13. package/lib/cjs/components/TimeZonePicker/helper.js +59 -0
  14. package/lib/cjs/components/TimeZonePicker/helper.test.js +79 -0
  15. package/lib/cjs/hooks/useGetTheme/useGetTheme.d.ts +2 -0
  16. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/colors.d.ts +3 -0
  17. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/colors.js +3 -0
  18. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/customProperties/icons.d.ts +1 -0
  19. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/customProperties/index.d.ts +1 -0
  20. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/menu.d.ts +15 -2
  21. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/menu.js +20 -7
  22. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/variants.d.ts +15 -2
  23. package/lib/cjs/styles/themeOverrides/onyxSideNav.d.ts +1 -0
  24. package/lib/cjs/styles/themes/astro/customProperties/icons.d.ts +1 -0
  25. package/lib/cjs/styles/themes/astro/customProperties/icons.js +1 -1
  26. package/lib/cjs/styles/themes/astro/customProperties/index.d.ts +1 -0
  27. package/lib/cjs/styles/themes/next-gen/customProperties/icons.d.ts +1 -0
  28. package/lib/cjs/styles/themes/next-gen/customProperties/icons.js +1 -1
  29. package/lib/cjs/styles/themes/next-gen/customProperties/index.d.ts +1 -0
  30. package/lib/cjs/styles/themes/next-gen/next-gen.d.ts +34 -2
  31. package/lib/cjs/styles/themes/next-gen/variants/menu.d.ts +32 -2
  32. package/lib/cjs/styles/themes/next-gen/variants/menu.js +39 -9
  33. package/lib/cjs/styles/themes/next-gen/variants/popoverMenu.d.ts +1 -0
  34. package/lib/cjs/styles/themes/next-gen/variants/popoverMenu.js +1 -0
  35. package/lib/cjs/styles/themes/next-gen/variants/variants.d.ts +33 -2
  36. package/lib/cjs/styles/themes/next-gen/variants/variants.js +1 -0
  37. package/lib/cjs/types/listBox.d.ts +1 -1
  38. package/lib/components/ComboBoxField/ComboBoxField.js +7 -3
  39. package/lib/components/ListBox/ListBox.js +15 -0
  40. package/lib/components/ListBox/ListBox.test.js +14 -1
  41. package/lib/components/MenuItem/MenuItem.js +25 -16
  42. package/lib/components/MenuItem/MenuItem.styles.js +1 -1
  43. package/lib/components/MenuItem/MenuItem.test.js +224 -201
  44. package/lib/components/MenuSection/MenuSection.js +2 -1
  45. package/lib/components/PopoverMenu/PopoverMenu.stories.js +57 -33
  46. package/lib/components/TimeZonePicker/TimeZonePicker.js +122 -146
  47. package/lib/components/TimeZonePicker/TimeZonePicker.test.js +29 -2
  48. package/lib/components/TimeZonePicker/helper.js +51 -0
  49. package/lib/components/TimeZonePicker/helper.test.js +76 -0
  50. package/lib/styles/themeOverrides/nextGenDarkMode/colors.js +3 -0
  51. package/lib/styles/themeOverrides/nextGenDarkMode/variants/menu.js +20 -7
  52. package/lib/styles/themes/astro/customProperties/icons.js +1 -1
  53. package/lib/styles/themes/next-gen/customProperties/icons.js +1 -1
  54. package/lib/styles/themes/next-gen/variants/menu.js +38 -8
  55. package/lib/styles/themes/next-gen/variants/popoverMenu.js +1 -0
  56. package/lib/styles/themes/next-gen/variants/variants.js +2 -1
  57. package/lib/tsconfig.lib.tsbuildinfo +1 -1
  58. package/package.json +1 -1
@@ -1,10 +1,10 @@
1
1
  import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
2
2
  import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
3
3
  import React, { useState } from 'react';
4
- import DotsVerticalIcon from '@pingux/mdi-react/DotsVerticalIcon';
5
4
  import { action } from '@storybook/addon-actions';
6
5
  import { withDesign } from 'storybook-addon-designs';
7
6
  import DocsLayout from '../../../.storybook/storybookDocsLayout';
7
+ import { useGetTheme } from '../../hooks';
8
8
  import { Icon, IconButton, Item, Menu, OverlayProvider, PopoverMenu, Section, Text } from '../../index';
9
9
  import { FIGMA_LINKS } from '../../utils/designUtils/figmaLinks';
10
10
  import PopoverMenuReadme from './PopoverMenu.mdx';
@@ -37,17 +37,20 @@ export default {
37
37
  }
38
38
  };
39
39
  export var Default = function Default(args) {
40
+ var _useGetTheme = useGetTheme(),
41
+ isOnyx = _useGetTheme.themeState.isOnyx,
42
+ popoverMenuIcon = _useGetTheme.icons.popoverMenuIcon;
40
43
  return (
41
44
  // Application must be wrapped in an OverlayProvider so that it can be hidden from screen
42
45
  // readers when an overlay opens.
43
46
  ___EmotionJSX(OverlayProvider, null, ___EmotionJSX(PopoverMenu, args, ___EmotionJSX(IconButton, {
44
47
  "aria-label": "more options",
45
- variant: "inverted"
48
+ variant: isOnyx ? undefined : 'inverted'
46
49
  }, ___EmotionJSX(Icon, {
47
- icon: DotsVerticalIcon,
50
+ icon: popoverMenuIcon,
48
51
  size: "md",
49
52
  title: {
50
- name: 'Dots Vertical Icon'
53
+ name: 'Dots Icon'
51
54
  }
52
55
  })), ___EmotionJSX(Menu, {
53
56
  onAction: action('onAction')
@@ -59,7 +62,7 @@ export var Default = function Default(args) {
59
62
  key: "delete",
60
63
  textValue: "delete"
61
64
  }, ___EmotionJSX(Text, {
62
- color: "critical.bright"
65
+ color: isOnyx ? 'critical.dark' : 'critical.bright'
63
66
  }, "Delete")))))
64
67
  );
65
68
  };
@@ -70,6 +73,9 @@ Default.parameters = {
70
73
  }
71
74
  };
72
75
  export var DefaultOpen = function DefaultOpen(args) {
76
+ var _useGetTheme2 = useGetTheme(),
77
+ isOnyx = _useGetTheme2.themeState.isOnyx,
78
+ popoverMenuIcon = _useGetTheme2.icons.popoverMenuIcon;
73
79
  return (
74
80
  // Application must be wrapped in an OverlayProvider so that it can be hidden from screen
75
81
  // readers when an overlay opens.
@@ -77,12 +83,12 @@ export var DefaultOpen = function DefaultOpen(args) {
77
83
  isDefaultOpen: true
78
84
  }), ___EmotionJSX(IconButton, {
79
85
  "aria-label": "more options",
80
- variant: "inverted"
86
+ variant: isOnyx ? undefined : 'inverted'
81
87
  }, ___EmotionJSX(Icon, {
82
- icon: DotsVerticalIcon,
88
+ icon: popoverMenuIcon,
83
89
  size: "md",
84
90
  title: {
85
- name: 'Dots Vertical Icon'
91
+ name: 'Dots Icon'
86
92
  }
87
93
  })), ___EmotionJSX(Menu, {
88
94
  onAction: action('onAction'),
@@ -95,7 +101,7 @@ export var DefaultOpen = function DefaultOpen(args) {
95
101
  key: "delete",
96
102
  textValue: "delete"
97
103
  }, ___EmotionJSX(Text, {
98
- color: "critical.bright"
104
+ color: isOnyx ? 'critical.dark' : 'critical.bright'
99
105
  }, "Delete")))))
100
106
  );
101
107
  };
@@ -104,6 +110,9 @@ export var Controlled = function Controlled() {
104
110
  _useState2 = _slicedToArray(_useState, 2),
105
111
  isOpen = _useState2[0],
106
112
  setIsOpen = _useState2[1];
113
+ var _useGetTheme3 = useGetTheme(),
114
+ isOnyx = _useGetTheme3.themeState.isOnyx,
115
+ popoverMenuIcon = _useGetTheme3.icons.popoverMenuIcon;
107
116
  return (
108
117
  // Application must be wrapped in an OverlayProvider so that it can be hidden from screen
109
118
  // readers when an overlay opens.
@@ -112,12 +121,12 @@ export var Controlled = function Controlled() {
112
121
  onOpenChange: setIsOpen
113
122
  }, ___EmotionJSX(IconButton, {
114
123
  "aria-label": "more options",
115
- variant: "inverted"
124
+ variant: isOnyx ? undefined : 'inverted'
116
125
  }, ___EmotionJSX(Icon, {
117
- icon: DotsVerticalIcon,
126
+ icon: popoverMenuIcon,
118
127
  size: "md",
119
128
  title: {
120
- name: 'Dots Vertical Icon'
129
+ name: 'Dots Icon'
121
130
  }
122
131
  })), ___EmotionJSX(Menu, {
123
132
  onAction: action('onAction')
@@ -129,11 +138,14 @@ export var Controlled = function Controlled() {
129
138
  key: "delete",
130
139
  textValue: "delete"
131
140
  }, ___EmotionJSX(Text, {
132
- color: "critical.bright"
141
+ color: isOnyx ? 'critical.dark' : 'critical.bright'
133
142
  }, "Delete")))))
134
143
  );
135
144
  };
136
145
  export var Placement = function Placement(args) {
146
+ var _useGetTheme4 = useGetTheme(),
147
+ isOnyx = _useGetTheme4.themeState.isOnyx,
148
+ popoverMenuIcon = _useGetTheme4.icons.popoverMenuIcon;
137
149
  return (
138
150
  // Application must be wrapped in an OverlayProvider so that it can be hidden from screen
139
151
  // readers when an overlay opens.
@@ -141,12 +153,12 @@ export var Placement = function Placement(args) {
141
153
  direction: "left"
142
154
  }), ___EmotionJSX(IconButton, {
143
155
  "aria-label": "more options",
144
- variant: "inverted"
156
+ variant: isOnyx ? undefined : 'inverted'
145
157
  }, ___EmotionJSX(Icon, {
146
- icon: DotsVerticalIcon,
158
+ icon: popoverMenuIcon,
147
159
  size: "md",
148
160
  title: {
149
- name: 'Dots Vertical Icon'
161
+ name: 'Dots Icon'
150
162
  }
151
163
  })), ___EmotionJSX(Menu, {
152
164
  onAction: action('onAction')
@@ -158,11 +170,14 @@ export var Placement = function Placement(args) {
158
170
  key: "delete",
159
171
  textValue: "delete"
160
172
  }, ___EmotionJSX(Text, {
161
- color: "critical.bright"
173
+ color: isOnyx ? 'critical.dark' : 'critical.bright'
162
174
  }, "Delete")))))
163
175
  );
164
176
  };
165
177
  export var NotFlippable = function NotFlippable(args) {
178
+ var _useGetTheme5 = useGetTheme(),
179
+ isOnyx = _useGetTheme5.themeState.isOnyx,
180
+ popoverMenuIcon = _useGetTheme5.icons.popoverMenuIcon;
166
181
  return (
167
182
  // Application must be wrapped in an OverlayProvider so that it can be hidden from screen
168
183
  // readers when an overlay opens.
@@ -171,12 +186,12 @@ export var NotFlippable = function NotFlippable(args) {
171
186
  isNotFlippable: true
172
187
  }), ___EmotionJSX(IconButton, {
173
188
  "aria-label": "more options",
174
- variant: "inverted"
189
+ variant: isOnyx ? undefined : 'inverted'
175
190
  }, ___EmotionJSX(Icon, {
176
- icon: DotsVerticalIcon,
191
+ icon: popoverMenuIcon,
177
192
  size: "md",
178
193
  title: {
179
- name: 'Dots Vertical Icon'
194
+ name: 'Dots Icon'
180
195
  }
181
196
  })), ___EmotionJSX(Menu, {
182
197
  onAction: action('onAction')
@@ -188,11 +203,14 @@ export var NotFlippable = function NotFlippable(args) {
188
203
  key: "delete",
189
204
  textValue: "delete"
190
205
  }, ___EmotionJSX(Text, {
191
- color: "critical.bright"
206
+ color: isOnyx ? 'critical.dark' : 'critical.bright'
192
207
  }, "Delete")))))
193
208
  );
194
209
  };
195
210
  export var NotClosedOnSelect = function NotClosedOnSelect(args) {
211
+ var _useGetTheme6 = useGetTheme(),
212
+ isOnyx = _useGetTheme6.themeState.isOnyx,
213
+ popoverMenuIcon = _useGetTheme6.icons.popoverMenuIcon;
196
214
  return (
197
215
  // Application must be wrapped in an OverlayProvider so that it can be hidden from screen
198
216
  // readers when an overlay opens.
@@ -200,12 +218,12 @@ export var NotClosedOnSelect = function NotClosedOnSelect(args) {
200
218
  isNotClosedOnSelect: true
201
219
  }), ___EmotionJSX(IconButton, {
202
220
  "aria-label": "more options",
203
- variant: "inverted"
221
+ variant: isOnyx ? undefined : 'inverted'
204
222
  }, ___EmotionJSX(Icon, {
205
- icon: DotsVerticalIcon,
223
+ icon: popoverMenuIcon,
206
224
  size: "md",
207
225
  title: {
208
- name: 'Dots Vertical Icon'
226
+ name: 'Dots Icon'
209
227
  }
210
228
  })), ___EmotionJSX(Menu, {
211
229
  onAction: action('onAction')
@@ -217,22 +235,25 @@ export var NotClosedOnSelect = function NotClosedOnSelect(args) {
217
235
  key: "delete",
218
236
  textValue: "delete"
219
237
  }, ___EmotionJSX(Text, {
220
- color: "critical.bright"
238
+ color: isOnyx ? 'critical.dark' : 'critical.bright'
221
239
  }, "Delete")))))
222
240
  );
223
241
  };
224
242
  export var WithSeparator = function WithSeparator(args) {
243
+ var _useGetTheme7 = useGetTheme(),
244
+ isOnyx = _useGetTheme7.themeState.isOnyx,
245
+ popoverMenuIcon = _useGetTheme7.icons.popoverMenuIcon;
225
246
  return (
226
247
  // Application must be wrapped in an OverlayProvider so that it can be hidden from screen
227
248
  // readers when an overlay opens.
228
249
  ___EmotionJSX(OverlayProvider, null, ___EmotionJSX(PopoverMenu, args, ___EmotionJSX(IconButton, {
229
250
  "aria-label": "more options",
230
- variant: "inverted"
251
+ variant: isOnyx ? undefined : 'inverted'
231
252
  }, ___EmotionJSX(Icon, {
232
- icon: DotsVerticalIcon,
253
+ icon: popoverMenuIcon,
233
254
  size: "md",
234
255
  title: {
235
- name: 'Dots Vertical Icon'
256
+ name: 'Dots Icon'
236
257
  }
237
258
  })), ___EmotionJSX(Menu, {
238
259
  onAction: action('onAction'),
@@ -245,22 +266,25 @@ export var WithSeparator = function WithSeparator(args) {
245
266
  key: "delete",
246
267
  textValue: "delete"
247
268
  }, ___EmotionJSX(Text, {
248
- color: "critical.bright"
269
+ color: isOnyx ? 'critical.dark' : 'critical.bright'
249
270
  }, "Delete"))))))
250
271
  );
251
272
  };
252
273
  export var WithSections = function WithSections(args) {
274
+ var _useGetTheme8 = useGetTheme(),
275
+ isOnyx = _useGetTheme8.themeState.isOnyx,
276
+ popoverMenuIcon = _useGetTheme8.icons.popoverMenuIcon;
253
277
  return (
254
278
  // Application must be wrapped in an OverlayProvider so that it can be hidden from screen
255
279
  // readers when an overlay opens.
256
280
  ___EmotionJSX(OverlayProvider, null, ___EmotionJSX(PopoverMenu, args, ___EmotionJSX(IconButton, {
257
281
  "aria-label": "more options",
258
- variant: "inverted"
282
+ variant: isOnyx ? undefined : 'inverted'
259
283
  }, ___EmotionJSX(Icon, {
260
- icon: DotsVerticalIcon,
284
+ icon: popoverMenuIcon,
261
285
  size: "md",
262
286
  title: {
263
- name: 'Dots Vertical Icon'
287
+ name: 'Dots Icon'
264
288
  }
265
289
  })), ___EmotionJSX(Menu, {
266
290
  onAction: action('onAction'),
@@ -283,7 +307,7 @@ export var WithSections = function WithSections(args) {
283
307
  key: "delete",
284
308
  textValue: "delete"
285
309
  }, ___EmotionJSX(Text, {
286
- color: "critical.bright"
310
+ color: isOnyx ? 'critical.dark' : 'critical.bright'
287
311
  }, "Delete"))))))
288
312
  );
289
313
  };
@@ -1,62 +1,45 @@
1
- import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
2
- import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
3
- import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
4
- import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
5
- import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
6
- import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
7
- import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
8
1
  import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
2
+ import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
9
3
  import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
10
4
  import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/esm/objectWithoutProperties";
11
- import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
12
5
  var _excluded = ["additionalTimeZones", "emptySearchText", "locales", "localeOptions"];
13
6
  function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
7
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context8, _context9; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context8 = ownKeys(Object(t), !0)).call(_context8, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context9 = ownKeys(Object(t))).call(_context9, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
15
8
  import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
16
9
  import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
10
+ import _sortInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/sort";
17
11
  import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
18
12
  import _Object$entries from "@babel/runtime-corejs3/core-js-stable/object/entries";
13
+ import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
19
14
  import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
20
- import _indexOfInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/index-of";
21
- import _parseFloat from "@babel/runtime-corejs3/core-js-stable/parse-float";
22
- import _sortInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/sort";
23
- import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
15
+ import _Map from "@babel/runtime-corejs3/core-js-stable/map";
16
+ import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
17
+ import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
18
+ import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
19
+ import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
20
+ import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
21
+ import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
22
+ import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
23
+ import React, { forwardRef, useImperativeHandle, useMemo, useRef, useState } from 'react';
24
24
  import PropTypes from 'prop-types';
25
25
  import { Box, ComboBoxField, Item, Text } from '../../index';
26
26
  import { getPendoID } from '../../utils/devUtils/constants/pendoID';
27
+ import { getGmtAndOffset } from './helper';
27
28
  import defaultTimezones, { usCities } from './timezones';
28
29
  import { jsx as ___EmotionJSX } from "@emotion/react";
29
30
  var createSearchTags = function createSearchTags(_ref) {
30
- var _context, _context2, _context3, _context4;
31
+ var _context, _context2, _context3;
31
32
  var gmt = _ref.gmt,
32
- gmtLabel = _ref.gmtLabel,
33
33
  timeZone = _ref.timeZone;
34
+ var normalizedTz = timeZone.replace(/_/g, ' ');
34
35
  var additionalTags = '';
35
- var americaTimeZone = _includesInstanceProperty(timeZone).call(timeZone, 'America') && timeZone.substring(8);
36
- if (_includesInstanceProperty(usCities).call(usCities, americaTimeZone)) {
37
- additionalTags = "US ".concat(americaTimeZone);
36
+ if (_includesInstanceProperty(timeZone).call(timeZone, 'America')) {
37
+ var city = timeZone.split('/')[1];
38
+ if (_includesInstanceProperty(usCities).call(usCities, city)) {
39
+ additionalTags = "US ".concat(city);
40
+ }
38
41
  }
39
- return _concatInstanceProperty(_context = _concatInstanceProperty(_context2 = _concatInstanceProperty(_context3 = _concatInstanceProperty(_context4 = "".concat(gmt, " ")).call(_context4, gmtLabel, " ")).call(_context3, timeZone, " ")).call(_context2, timeZone === null || timeZone === void 0 ? void 0 : timeZone.replace(/_/g, ' '), " ")).call(_context, additionalTags);
40
- };
41
- var getLocaleTime = function getLocaleTime(_ref2) {
42
- var timeZone = _ref2.timeZone,
43
- locales = _ref2.locales,
44
- localeOptions = _ref2.localeOptions;
45
- var date = new Date();
46
- return date.toLocaleTimeString(locales, _objectSpread({
47
- timeZone: timeZone
48
- }, localeOptions));
49
- };
50
- var getTimezoneOffset = function getTimezoneOffset(timeZone) {
51
- var now = new Date();
52
- var tzString = now.toLocaleString('en-US', {
53
- timeZone: timeZone
54
- });
55
- var localString = now.toLocaleString('en-US');
56
- var diff = (Date.parse(localString) - Date.parse(tzString)) / 3600000;
57
- var offset = -(diff + now.getTimezoneOffset() / 60);
58
- var formattedString = "".concat(offset, ":00");
59
- return offset > 0 ? "+".concat(formattedString) : formattedString;
42
+ return _concatInstanceProperty(_context = _concatInstanceProperty(_context2 = _concatInstanceProperty(_context3 = "".concat(gmt, " ")).call(_context3, timeZone, " ")).call(_context2, normalizedTz, " ")).call(_context, additionalTags).toUpperCase();
60
43
  };
61
44
  var TimeZonePicker = /*#__PURE__*/forwardRef(function (props, ref) {
62
45
  var additionalTimeZones = props.additionalTimeZones,
@@ -68,127 +51,120 @@ var TimeZonePicker = /*#__PURE__*/forwardRef(function (props, ref) {
68
51
  _useState2 = _slicedToArray(_useState, 2),
69
52
  search = _useState2[0],
70
53
  setSearch = _useState2[1];
71
- var _useState3 = useState(true),
54
+ var _useState3 = useState(''),
72
55
  _useState4 = _slicedToArray(_useState3, 2),
73
- timeUpdate = _useState4[0],
74
- setTimeUpdate = _useState4[1];
75
- var _useState5 = useState([]),
76
- _useState6 = _slicedToArray(_useState5, 2),
77
- timeZones = _useState6[0],
78
- setTimeZones = _useState6[1];
79
- var extendedTimeZonesList = additionalTimeZones ? _objectSpread(_objectSpread({}, defaultTimezones), additionalTimeZones) : defaultTimezones;
56
+ selectedKey = _useState4[0],
57
+ setSelectedKey = _useState4[1];
80
58
  var timeZonePickerRef = useRef();
81
59
  /* istanbul ignore next */
82
60
  useImperativeHandle(ref, function () {
83
61
  return timeZonePickerRef.current;
84
62
  });
85
- useEffect(function () {
86
- if (timeUpdate) {
87
- var createTimeZoneTimes = function createTimeZoneTimes() {
88
- var _context5;
89
- return _mapInstanceProperty(_context5 = _Object$entries(extendedTimeZonesList)).call(_context5, function (item) {
90
- var _item$;
91
- var gmt = "GMT".concat(getTimezoneOffset(item[1]));
92
- var gmtLabel = item[0].substring(12);
93
- var timeZone = (_item$ = item[1]) === null || _item$ === void 0 ? void 0 : _item$.replace(/_/g, ' ');
94
- var time = getLocaleTime({
95
- timeZone: item[1],
96
- locales: locales,
97
- localeOptions: localeOptions
98
- });
99
- var searchTags = createSearchTags({
100
- gmt: gmt,
101
- gmtLabel: gmtLabel,
102
- timeZone: timeZone
103
- });
104
- return {
105
- gmt: gmt,
106
- timeZone: timeZone,
107
- time: time,
108
- searchTags: searchTags
109
- };
110
- });
63
+ var allTimeZones = useMemo(function () {
64
+ var _context4, _context5;
65
+ var sourceList = additionalTimeZones ? _objectSpread(_objectSpread({}, defaultTimezones), additionalTimeZones) : defaultTimezones;
66
+ return _sortInstanceProperty(_context4 = _mapInstanceProperty(_context5 = _Object$entries(sourceList)).call(_context5, function (_ref2) {
67
+ var _context6;
68
+ var _ref3 = _slicedToArray(_ref2, 2),
69
+ label = _ref3[0],
70
+ tzValue = _ref3[1];
71
+ var _getGmtAndOffset = getGmtAndOffset(tzValue),
72
+ gmt = _getGmtAndOffset.gmt,
73
+ numericOffset = _getGmtAndOffset.numericOffset;
74
+ var displayTz = tzValue.replace(/_/g, ' ');
75
+ return {
76
+ key: _concatInstanceProperty(_context6 = "".concat(displayTz, " ")).call(_context6, gmt),
77
+ id: tzValue,
78
+ label: label,
79
+ timeZone: displayTz,
80
+ gmt: gmt,
81
+ numericOffset: numericOffset,
82
+ searchTags: createSearchTags({
83
+ gmt: gmt,
84
+ timeZone: tzValue
85
+ })
111
86
  };
112
- setTimeZones(createTimeZoneTimes());
113
- setTimeUpdate(false);
87
+ })).call(_context4, function (a, b) {
88
+ return a.numericOffset - b.numericOffset;
89
+ });
90
+ }, [additionalTimeZones]);
91
+ var filteredItems = useMemo(function () {
92
+ var selectedItem = _findInstanceProperty(allTimeZones).call(allTimeZones, function (tz) {
93
+ return tz.key === selectedKey;
94
+ });
95
+ var isExactMatch = selectedItem && selectedItem.key === search;
96
+ if (!search || isExactMatch) {
97
+ return allTimeZones;
114
98
  }
115
- }, [extendedTimeZonesList, locales, localeOptions, timeUpdate]);
116
- var filterTimezones = useCallback(function (timeZonesList) {
117
- return _filterInstanceProperty(timeZonesList).call(timeZonesList, function (_ref3) {
118
- var _context6;
119
- var searchTags = _ref3.searchTags;
120
- return _indexOfInstanceProperty(_context6 = searchTags.toUpperCase()).call(_context6, search.toUpperCase()) > -1;
99
+ var upperSearch = search.toUpperCase();
100
+ return _filterInstanceProperty(allTimeZones).call(allTimeZones, function (tz) {
101
+ var _context7;
102
+ return _includesInstanceProperty(_context7 = tz.searchTags).call(_context7, upperSearch);
121
103
  });
122
- }, [search]);
123
- var filteredTimezones = useMemo(function () {
124
- return filterTimezones(timeZones);
125
- }, [filterTimezones, timeZones]);
126
- var sortByGMT = function sortByGMT(a, b) {
127
- var aNum = _parseFloat(a.gmt.split('GMT')[1].split(':')[0]);
128
- var bNum = _parseFloat(b.gmt.split('GMT')[1].split(')')[0]);
129
- return aNum - bNum;
130
- };
131
- var checkIsSelectedItem = function checkIsSelectedItem() {
132
- return _filterInstanceProperty(timeZones).call(timeZones, function (tz) {
133
- return tz.timeZone === search;
134
- }).length > 0;
135
- };
136
- var renderTimeZones = function renderTimeZones(timeZonesToRender) {
137
- var _context7;
138
- return _mapInstanceProperty(_context7 = _sortInstanceProperty(timeZonesToRender).call(timeZonesToRender, sortByGMT)).call(_context7, function (_ref4) {
139
- var gmt = _ref4.gmt,
140
- time = _ref4.time,
141
- timeZone = _ref4.timeZone;
142
- return ___EmotionJSX(Item, {
143
- key: timeZone,
144
- "data-id": timeZone,
145
- textValue: timeZone
146
- }, ___EmotionJSX(Box, {
147
- flexDirection: "row",
148
- justifyContent: "space-between",
149
- width: "100%"
150
- }, ___EmotionJSX(Box, {
151
- flexDirection: "row"
152
- }, ___EmotionJSX(Text, {
153
- variant: "variants.timeZone.item.title"
154
- }, timeZone), ___EmotionJSX(Text, {
155
- variant: "variants.timeZone.item.subTitle"
156
- }, gmt)), ___EmotionJSX(Box, null, ___EmotionJSX(Text, {
157
- variant: "variants.timeZone.item.time"
158
- }, time))));
104
+ }, [search, selectedKey, allTimeZones]);
105
+ var timeData = useMemo(function () {
106
+ var now = new Date();
107
+ var map = new _Map();
108
+ _forEachInstanceProperty(allTimeZones).call(allTimeZones, function (tz) {
109
+ map.set(tz.id, now.toLocaleTimeString(locales, _objectSpread({
110
+ timeZone: tz.id
111
+ }, localeOptions)));
159
112
  });
113
+ return map;
114
+ }, [allTimeZones, locales, localeOptions]);
115
+ var onInputChange = function onInputChange(value) {
116
+ setSearch(value);
117
+ if (value === '') {
118
+ setSelectedKey(null);
119
+ }
160
120
  };
161
- var items = useMemo(function () {
162
- if (filteredTimezones.length === 0) {
163
- return ___EmotionJSX(Item, {
164
- key: emptySearchText
165
- }, emptySearchText);
121
+ var onSelectionChange = function onSelectionChange(key) {
122
+ if (!key) return;
123
+ var selectedItem = _findInstanceProperty(allTimeZones).call(allTimeZones, function (item) {
124
+ return item.key === key;
125
+ });
126
+ if (selectedItem) {
127
+ setSearch(selectedItem.key);
128
+ setSelectedKey(key);
166
129
  }
167
- return renderTimeZones(checkIsSelectedItem() ? timeZones : filteredTimezones);
168
- }, [emptySearchText, filteredTimezones, search, timeZones]);
169
- var comboBoxFieldProps = useMemo(function () {
170
- return _objectSpread({
171
- containerProps: {
172
- sx: {
173
- width: 400,
174
- fontSize: 'md'
175
- }
176
- },
177
- onInputChange: setSearch,
178
- items: filteredTimezones,
179
- ref: timeZonePickerRef,
180
- onOpenChange: function onOpenChange(isOpen) {
181
- return setTimeUpdate(isOpen);
182
- },
183
- disabledKeys: [{
184
- emptySearchText: emptySearchText
185
- }]
186
- }, otherProps);
187
- }, [emptySearchText, filteredTimezones, otherProps]);
188
- return ___EmotionJSX(ComboBoxField, _extends({}, getPendoID('TimeZonePicker'), comboBoxFieldProps, {
130
+ };
131
+ return ___EmotionJSX(ComboBoxField, _extends({}, getPendoID('TimeZonePicker'), otherProps, {
132
+ ref: timeZonePickerRef,
133
+ items: filteredItems,
134
+ inputValue: search,
135
+ selectedKey: selectedKey,
136
+ onInputChange: onInputChange,
137
+ onSelectionChange: onSelectionChange,
138
+ menuTrigger: "input",
189
139
  disabledKeys: [emptySearchText],
190
- menuTrigger: "input"
191
- }), items);
140
+ containerProps: {
141
+ sx: {
142
+ width: 400,
143
+ fontSize: 'md'
144
+ }
145
+ },
146
+ allowsEmptyCollection: true,
147
+ renderEmptyState: function renderEmptyState() {
148
+ return ___EmotionJSX("span", null, emptySearchText);
149
+ }
150
+ }), function (item) {
151
+ return ___EmotionJSX(Item, {
152
+ key: "".concat(item.key),
153
+ textValue: "".concat(item.key)
154
+ }, ___EmotionJSX(Box, {
155
+ flexDirection: "row",
156
+ justifyContent: "space-between",
157
+ width: "100%"
158
+ }, ___EmotionJSX(Box, {
159
+ flexDirection: "row"
160
+ }, ___EmotionJSX(Text, {
161
+ variant: "variants.timeZone.item.title"
162
+ }, item.timeZone), ___EmotionJSX(Text, {
163
+ variant: "variants.timeZone.item.subTitle"
164
+ }, item.gmt)), ___EmotionJSX(Box, null, ___EmotionJSX(Text, {
165
+ variant: "variants.timeZone.item.time"
166
+ }, timeData.get(item.id)))));
167
+ });
192
168
  });
193
169
  TimeZonePicker.propTypes = {
194
170
  /**