@7shifts/sous-chef 3.56.0-beta.0 → 3.56.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 (287) hide show
  1. package/dist/feedback/InlineBanner/InlineBanner.d.ts +1 -1
  2. package/dist/feedback/InlineBanner/InlineBannerCTA/InlineBannerCTA.d.ts +1 -1
  3. package/dist/forms/TimeField/TimeField.d.ts +4 -2
  4. package/dist/forms/TimeField/TimeFieldDropdown/TimeFieldDropdown.d.ts +3 -2
  5. package/dist/forms/TimeRangeField/TimeRangeEnd/TimeRangeEnd.d.ts +3 -1
  6. package/dist/forms/TimeRangeField/TimeRangeField.d.ts +2 -1
  7. package/dist/index.css +1 -0
  8. package/dist/index.js +37 -14
  9. package/dist/index.js.map +1 -1
  10. package/dist/index.modern.js +37 -14
  11. package/dist/index.modern.js.map +1 -1
  12. package/dist/overlay/DropdownListItem/DropdownListItem.d.ts +1 -1
  13. package/dist/overlay/Tooltip/Tooltip.d.ts +1 -1
  14. package/package.json +1 -1
  15. package/dist/controls/ToolbarSelect/ToolbarSelect.styles.d.ts +0 -5
  16. package/dist/flags/flags/ac.svg +0 -76
  17. package/dist/flags/flags/ad.svg +0 -150
  18. package/dist/flags/flags/ae.svg +0 -6
  19. package/dist/flags/flags/af.svg +0 -81
  20. package/dist/flags/flags/ag.svg +0 -14
  21. package/dist/flags/flags/ai.svg +0 -758
  22. package/dist/flags/flags/al.svg +0 -5
  23. package/dist/flags/flags/am.svg +0 -5
  24. package/dist/flags/flags/ao.svg +0 -13
  25. package/dist/flags/flags/ar.svg +0 -32
  26. package/dist/flags/flags/as.svg +0 -72
  27. package/dist/flags/flags/at.svg +0 -6
  28. package/dist/flags/flags/au.svg +0 -8
  29. package/dist/flags/flags/aw.svg +0 -186
  30. package/dist/flags/flags/ax.svg +0 -18
  31. package/dist/flags/flags/az.svg +0 -8
  32. package/dist/flags/flags/ba.svg +0 -12
  33. package/dist/flags/flags/bb.svg +0 -6
  34. package/dist/flags/flags/bd.svg +0 -4
  35. package/dist/flags/flags/be.svg +0 -7
  36. package/dist/flags/flags/bf.svg +0 -7
  37. package/dist/flags/flags/bg.svg +0 -7
  38. package/dist/flags/flags/bh.svg +0 -4
  39. package/dist/flags/flags/bi.svg +0 -15
  40. package/dist/flags/flags/bj.svg +0 -14
  41. package/dist/flags/flags/bl.svg +0 -5
  42. package/dist/flags/flags/bm.svg +0 -97
  43. package/dist/flags/flags/bn.svg +0 -36
  44. package/dist/flags/flags/bo.svg +0 -676
  45. package/dist/flags/flags/bq.svg +0 -5
  46. package/dist/flags/flags/br.svg +0 -45
  47. package/dist/flags/flags/bs.svg +0 -13
  48. package/dist/flags/flags/bt.svg +0 -89
  49. package/dist/flags/flags/bw.svg +0 -7
  50. package/dist/flags/flags/by.svg +0 -20
  51. package/dist/flags/flags/bz.svg +0 -145
  52. package/dist/flags/flags/ca.svg +0 -4
  53. package/dist/flags/flags/cc.svg +0 -19
  54. package/dist/flags/flags/cd.svg +0 -5
  55. package/dist/flags/flags/cf.svg +0 -15
  56. package/dist/flags/flags/cg.svg +0 -12
  57. package/dist/flags/flags/ch.svg +0 -9
  58. package/dist/flags/flags/ci.svg +0 -7
  59. package/dist/flags/flags/ck.svg +0 -9
  60. package/dist/flags/flags/cl.svg +0 -13
  61. package/dist/flags/flags/cm.svg +0 -15
  62. package/dist/flags/flags/cn.svg +0 -11
  63. package/dist/flags/flags/co.svg +0 -7
  64. package/dist/flags/flags/cr.svg +0 -7
  65. package/dist/flags/flags/cu.svg +0 -13
  66. package/dist/flags/flags/cv.svg +0 -13
  67. package/dist/flags/flags/cw.svg +0 -14
  68. package/dist/flags/flags/cx.svg +0 -15
  69. package/dist/flags/flags/cy.svg +0 -6
  70. package/dist/flags/flags/cz.svg +0 -5
  71. package/dist/flags/flags/de.svg +0 -5
  72. package/dist/flags/flags/dj.svg +0 -13
  73. package/dist/flags/flags/dk.svg +0 -5
  74. package/dist/flags/flags/dm.svg +0 -152
  75. package/dist/flags/flags/do.svg +0 -129
  76. package/dist/flags/flags/dz.svg +0 -5
  77. package/dist/flags/flags/ec.svg +0 -138
  78. package/dist/flags/flags/ee.svg +0 -7
  79. package/dist/flags/flags/eg.svg +0 -38
  80. package/dist/flags/flags/eh.svg +0 -16
  81. package/dist/flags/flags/er.svg +0 -8
  82. package/dist/flags/flags/es.svg +0 -544
  83. package/dist/flags/flags/et.svg +0 -14
  84. package/dist/flags/flags/fi.svg +0 -5
  85. package/dist/flags/flags/fj.svg +0 -120
  86. package/dist/flags/flags/fk.svg +0 -90
  87. package/dist/flags/flags/fm.svg +0 -11
  88. package/dist/flags/flags/fo.svg +0 -12
  89. package/dist/flags/flags/fr.svg +0 -5
  90. package/dist/flags/flags/ga.svg +0 -7
  91. package/dist/flags/flags/gb.svg +0 -7
  92. package/dist/flags/flags/gd.svg +0 -27
  93. package/dist/flags/flags/ge.svg +0 -6
  94. package/dist/flags/flags/gf.svg +0 -5
  95. package/dist/flags/flags/gg.svg +0 -9
  96. package/dist/flags/flags/gh.svg +0 -6
  97. package/dist/flags/flags/gi.svg +0 -32
  98. package/dist/flags/flags/gl.svg +0 -4
  99. package/dist/flags/flags/gm.svg +0 -14
  100. package/dist/flags/flags/gn.svg +0 -7
  101. package/dist/flags/flags/gp.svg +0 -5
  102. package/dist/flags/flags/gq.svg +0 -23
  103. package/dist/flags/flags/gr.svg +0 -16
  104. package/dist/flags/flags/gt.svg +0 -220
  105. package/dist/flags/flags/gu.svg +0 -23
  106. package/dist/flags/flags/gw.svg +0 -13
  107. package/dist/flags/flags/gy.svg +0 -9
  108. package/dist/flags/flags/hk.svg +0 -8
  109. package/dist/flags/flags/hn.svg +0 -18
  110. package/dist/flags/flags/hr.svg +0 -58
  111. package/dist/flags/flags/ht.svg +0 -116
  112. package/dist/flags/flags/hu.svg +0 -7
  113. package/dist/flags/flags/id.svg +0 -4
  114. package/dist/flags/flags/ie.svg +0 -7
  115. package/dist/flags/flags/il.svg +0 -14
  116. package/dist/flags/flags/im.svg +0 -36
  117. package/dist/flags/flags/in.svg +0 -25
  118. package/dist/flags/flags/io.svg +0 -130
  119. package/dist/flags/flags/iq.svg +0 -10
  120. package/dist/flags/flags/ir.svg +0 -219
  121. package/dist/flags/flags/is.svg +0 -12
  122. package/dist/flags/flags/it.svg +0 -7
  123. package/dist/flags/flags/je.svg +0 -45
  124. package/dist/flags/flags/jm.svg +0 -8
  125. package/dist/flags/flags/jo.svg +0 -16
  126. package/dist/flags/flags/jp.svg +0 -11
  127. package/dist/flags/flags/ke.svg +0 -23
  128. package/dist/flags/flags/kg.svg +0 -15
  129. package/dist/flags/flags/kh.svg +0 -61
  130. package/dist/flags/flags/ki.svg +0 -36
  131. package/dist/flags/flags/km.svg +0 -16
  132. package/dist/flags/flags/kn.svg +0 -14
  133. package/dist/flags/flags/kp.svg +0 -15
  134. package/dist/flags/flags/kr.svg +0 -24
  135. package/dist/flags/flags/kw.svg +0 -13
  136. package/dist/flags/flags/ky.svg +0 -109
  137. package/dist/flags/flags/kz.svg +0 -36
  138. package/dist/flags/flags/la.svg +0 -12
  139. package/dist/flags/flags/lb.svg +0 -15
  140. package/dist/flags/flags/lc.svg +0 -8
  141. package/dist/flags/flags/li.svg +0 -43
  142. package/dist/flags/flags/lk.svg +0 -22
  143. package/dist/flags/flags/lr.svg +0 -14
  144. package/dist/flags/flags/ls.svg +0 -8
  145. package/dist/flags/flags/lt.svg +0 -7
  146. package/dist/flags/flags/lu.svg +0 -5
  147. package/dist/flags/flags/lv.svg +0 -6
  148. package/dist/flags/flags/ly.svg +0 -13
  149. package/dist/flags/flags/ma.svg +0 -4
  150. package/dist/flags/flags/mc.svg +0 -6
  151. package/dist/flags/flags/md.svg +0 -70
  152. package/dist/flags/flags/me.svg +0 -116
  153. package/dist/flags/flags/mf.svg +0 -5
  154. package/dist/flags/flags/mg.svg +0 -7
  155. package/dist/flags/flags/mh.svg +0 -7
  156. package/dist/flags/flags/mk.svg +0 -5
  157. package/dist/flags/flags/ml.svg +0 -7
  158. package/dist/flags/flags/mm.svg +0 -12
  159. package/dist/flags/flags/mn.svg +0 -14
  160. package/dist/flags/flags/mo.svg +0 -9
  161. package/dist/flags/flags/mp.svg +0 -86
  162. package/dist/flags/flags/mq.svg +0 -5
  163. package/dist/flags/flags/mr.svg +0 -6
  164. package/dist/flags/flags/ms.svg +0 -33
  165. package/dist/flags/flags/mt.svg +0 -49
  166. package/dist/flags/flags/mu.svg +0 -8
  167. package/dist/flags/flags/mv.svg +0 -6
  168. package/dist/flags/flags/mw.svg +0 -10
  169. package/dist/flags/flags/mx.svg +0 -382
  170. package/dist/flags/flags/my.svg +0 -26
  171. package/dist/flags/flags/mz.svg +0 -21
  172. package/dist/flags/flags/na.svg +0 -16
  173. package/dist/flags/flags/nc.svg +0 -13
  174. package/dist/flags/flags/ne.svg +0 -6
  175. package/dist/flags/flags/nf.svg +0 -9
  176. package/dist/flags/flags/ng.svg +0 -6
  177. package/dist/flags/flags/ni.svg +0 -129
  178. package/dist/flags/flags/nl.svg +0 -5
  179. package/dist/flags/flags/no.svg +0 -7
  180. package/dist/flags/flags/np.svg +0 -13
  181. package/dist/flags/flags/nr.svg +0 -12
  182. package/dist/flags/flags/nu.svg +0 -10
  183. package/dist/flags/flags/nz.svg +0 -36
  184. package/dist/flags/flags/om.svg +0 -115
  185. package/dist/flags/flags/pa.svg +0 -14
  186. package/dist/flags/flags/pe.svg +0 -244
  187. package/dist/flags/flags/pf.svg +0 -19
  188. package/dist/flags/flags/pg.svg +0 -9
  189. package/dist/flags/flags/ph.svg +0 -6
  190. package/dist/flags/flags/pk.svg +0 -15
  191. package/dist/flags/flags/pl.svg +0 -6
  192. package/dist/flags/flags/pm.svg +0 -5
  193. package/dist/flags/flags/pr.svg +0 -13
  194. package/dist/flags/flags/ps.svg +0 -15
  195. package/dist/flags/flags/pt.svg +0 -57
  196. package/dist/flags/flags/pw.svg +0 -11
  197. package/dist/flags/flags/py.svg +0 -157
  198. package/dist/flags/flags/qa.svg +0 -4
  199. package/dist/flags/flags/re.svg +0 -5
  200. package/dist/flags/flags/ro.svg +0 -7
  201. package/dist/flags/flags/rs.svg +0 -292
  202. package/dist/flags/flags/ru.svg +0 -7
  203. package/dist/flags/flags/rw.svg +0 -13
  204. package/dist/flags/flags/sa.svg +0 -26
  205. package/dist/flags/flags/sb.svg +0 -13
  206. package/dist/flags/flags/sc.svg +0 -7
  207. package/dist/flags/flags/sd.svg +0 -13
  208. package/dist/flags/flags/se.svg +0 -4
  209. package/dist/flags/flags/sg.svg +0 -13
  210. package/dist/flags/flags/sh.svg +0 -76
  211. package/dist/flags/flags/si.svg +0 -18
  212. package/dist/flags/flags/sj.svg +0 -7
  213. package/dist/flags/flags/sk.svg +0 -9
  214. package/dist/flags/flags/sl.svg +0 -7
  215. package/dist/flags/flags/sm.svg +0 -75
  216. package/dist/flags/flags/sn.svg +0 -8
  217. package/dist/flags/flags/so.svg +0 -11
  218. package/dist/flags/flags/sr.svg +0 -6
  219. package/dist/flags/flags/ss.svg +0 -8
  220. package/dist/flags/flags/st.svg +0 -16
  221. package/dist/flags/flags/sv.svg +0 -594
  222. package/dist/flags/flags/sx.svg +0 -56
  223. package/dist/flags/flags/sy.svg +0 -6
  224. package/dist/flags/flags/sz.svg +0 -34
  225. package/dist/flags/flags/ta.svg +0 -76
  226. package/dist/flags/flags/tc.svg +0 -50
  227. package/dist/flags/flags/td.svg +0 -7
  228. package/dist/flags/flags/tg.svg +0 -14
  229. package/dist/flags/flags/th.svg +0 -7
  230. package/dist/flags/flags/tj.svg +0 -22
  231. package/dist/flags/flags/tk.svg +0 -5
  232. package/dist/flags/flags/tl.svg +0 -13
  233. package/dist/flags/flags/tm.svg +0 -205
  234. package/dist/flags/flags/tn.svg +0 -4
  235. package/dist/flags/flags/to.svg +0 -10
  236. package/dist/flags/flags/tr.svg +0 -8
  237. package/dist/flags/flags/tt.svg +0 -5
  238. package/dist/flags/flags/tv.svg +0 -9
  239. package/dist/flags/flags/tw.svg +0 -34
  240. package/dist/flags/flags/tz.svg +0 -13
  241. package/dist/flags/flags/ua.svg +0 -6
  242. package/dist/flags/flags/ug.svg +0 -30
  243. package/dist/flags/flags/us.svg +0 -9
  244. package/dist/flags/flags/uy.svg +0 -28
  245. package/dist/flags/flags/uz.svg +0 -30
  246. package/dist/flags/flags/va.svg +0 -479
  247. package/dist/flags/flags/vc.svg +0 -8
  248. package/dist/flags/flags/ve.svg +0 -26
  249. package/dist/flags/flags/vg.svg +0 -63
  250. package/dist/flags/flags/vi.svg +0 -28
  251. package/dist/flags/flags/vn.svg +0 -11
  252. package/dist/flags/flags/vu.svg +0 -21
  253. package/dist/flags/flags/wf.svg +0 -5
  254. package/dist/flags/flags/ws.svg +0 -7
  255. package/dist/flags/flags/xk.svg +0 -8
  256. package/dist/flags/flags/ye.svg +0 -7
  257. package/dist/flags/flags/yt.svg +0 -5
  258. package/dist/flags/flags/za.svg +0 -17
  259. package/dist/flags/flags/zm.svg +0 -27
  260. package/dist/flags/flags/zw.svg +0 -21
  261. package/dist/forms/DatePickerCalendar/DatePickerCalendar.d.ts +0 -15
  262. package/dist/forms/DatePickerCalendar/index.d.ts +0 -1
  263. package/dist/forms/hooks/useFieldMask.d.ts +0 -1
  264. package/dist/forms/hooks/useShouldScrollMenuIntoView.d.ts +0 -1
  265. package/dist/foundation/colors.d.ts +0 -53
  266. package/dist/i18n/locales/locales/en.json +0 -47
  267. package/dist/i18n/locales/locales/es.json +0 -47
  268. package/dist/i18n/locales/locales/fr.json +0 -47
  269. package/dist/lists/DataTable/DataTableCell/DataTableCell.d.ts +0 -7
  270. package/dist/lists/DataTable/DataTableCell/index.d.ts +0 -1
  271. package/dist/lists/DataTable/DataTableHeader.d.ts +0 -9
  272. package/dist/lists/ResourceTable/ResourceTable.d.ts +0 -28
  273. package/dist/lists/ResourceTable/ResourceTableContext.d.ts +0 -7
  274. package/dist/lists/ResourceTable/ResourceTableHeader.d.ts +0 -12
  275. package/dist/lists/ResourceTable/index.d.ts +0 -1
  276. package/dist/lists/ResourceTable/types.d.ts +0 -26
  277. package/dist/lists/ResourceTableRow/ResourceTableRow.d.ts +0 -13
  278. package/dist/lists/ResourceTableRow/index.d.ts +0 -1
  279. package/dist/overlay/Menu/Menu.d.ts +0 -10
  280. package/dist/overlay/Menu/MenuButton.d.ts +0 -8
  281. package/dist/overlay/Menu/MenuContext.d.ts +0 -9
  282. package/dist/overlay/Menu/MenuItem.d.ts +0 -7
  283. package/dist/overlay/Menu/MenuList.d.ts +0 -6
  284. package/dist/overlay/Menu/index.d.ts +0 -1
  285. package/dist/overlay/Menu/types.d.ts +0 -5
  286. package/dist/utils/i18n.d.ts +0 -1
  287. package/dist/utils/mask.d.ts +0 -18
@@ -6,7 +6,7 @@ type Props = {
6
6
  theme?: InlineBannerTheme;
7
7
  title?: string;
8
8
  onClose?: () => void;
9
- caption?: string;
9
+ caption?: React.ReactNode;
10
10
  primaryButton?: React.ReactElement;
11
11
  secondaryButton?: React.ReactElement;
12
12
  testId?: string;
@@ -3,7 +3,7 @@ import { InlineBannerTheme } from '../types';
3
3
  type Props = {
4
4
  primaryButton: React.ReactElement;
5
5
  secondaryButton?: React.ReactElement;
6
- caption?: string;
6
+ caption?: React.ReactNode;
7
7
  multiLine: boolean;
8
8
  bannerTheme: InlineBannerTheme;
9
9
  };
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { Props as TextFieldProps } from '../TextField/TextField';
3
- import { StartTime, TimeInterval } from '../../utils/date';
3
+ import { StartTime, TimeInterval, TimeRange } from '../../utils/date';
4
4
  type Props = TextFieldProps & {
5
5
  onClick?: () => void;
6
6
  interval?: TimeInterval;
@@ -9,6 +9,7 @@ type Props = TextFieldProps & {
9
9
  endField?: boolean;
10
10
  duration?: string;
11
11
  subtractDuration?: number;
12
+ calculateDuration?: (e: TimeRange) => string;
12
13
  };
13
14
  export declare const TimeRangeSelector: React.ForwardRefExoticComponent<{
14
15
  autoComplete?: ("on" | "off") | undefined;
@@ -38,11 +39,12 @@ export declare const TimeRangeSelector: React.ForwardRefExoticComponent<{
38
39
  endField?: boolean | undefined;
39
40
  duration?: string | undefined;
40
41
  subtractDuration?: number | undefined;
42
+ calculateDuration?: ((e: TimeRange) => string) | undefined;
41
43
  } & React.RefAttributes<HTMLInputElement>>;
42
44
  /**
43
45
  * `TimeField` are like `TextField` but it auto-format the value when the user leaves the field.
44
46
  *
45
47
  * At the end, it is just a string formatted nicely. **You are in charge of validating the value and parsing it back to a value that you can use on your application**.
46
48
  */
47
- declare const TimeField: React.ForwardRefExoticComponent<Omit<Props, "prefix" | "suffix" | "subtractDuration"> & React.RefAttributes<HTMLInputElement>>;
49
+ declare const TimeField: React.ForwardRefExoticComponent<Omit<Props, "prefix" | "suffix" | "subtractDuration" | "calculateDuration"> & React.RefAttributes<HTMLInputElement>>;
48
50
  export default TimeField;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { StartTime, TimeInterval } from '../../../utils/date';
2
+ import { StartTime, TimeInterval, TimeRange } from '../../../utils/date';
3
3
  type TimeFieldDropdownProps = {
4
4
  trigger: React.ReactElement;
5
5
  interval: TimeInterval;
@@ -9,6 +9,7 @@ type TimeFieldDropdownProps = {
9
9
  width?: number;
10
10
  endField: boolean;
11
11
  subtractDuration?: number;
12
+ calculateDuration?: (e: TimeRange) => string;
12
13
  };
13
- declare const TimeFieldDropdown: ({ trigger, interval, startTime, onOptionClick, inputValue, width, endField, subtractDuration }: TimeFieldDropdownProps) => React.JSX.Element;
14
+ declare const TimeFieldDropdown: ({ trigger, interval, startTime, onOptionClick, inputValue, width, endField, subtractDuration, calculateDuration }: TimeFieldDropdownProps) => React.JSX.Element;
14
15
  export default TimeFieldDropdown;
@@ -1,7 +1,9 @@
1
1
  import React from 'react';
2
2
  import { TimeRangeInputProps } from '../types';
3
- declare const TimeRangeEnd: ({ startTime, onChange, interval, placeholder, duration, disabled, testId, value, subtractDuration }: TimeRangeInputProps & {
3
+ import { TimeRange } from '../../../utils/date';
4
+ declare const TimeRangeEnd: ({ startTime, onChange, interval, placeholder, duration, disabled, testId, value, subtractDuration, calculateDuration }: TimeRangeInputProps & {
4
5
  duration?: string | undefined;
5
6
  subtractDuration?: number | undefined;
7
+ calculateDuration?: ((e: TimeRange) => string) | undefined;
6
8
  }) => React.JSX.Element;
7
9
  export default TimeRangeEnd;
@@ -17,6 +17,7 @@ type Props = {
17
17
  testId?: string;
18
18
  /** Subtract this time(in minutes) from total duration*/
19
19
  subtractDuration?: number;
20
+ calculateDuration?: (e: TimeRange) => string;
20
21
  };
21
- declare const TimeRangeField: ({ name, id: inputId, value, interval, startTime, onChange, onBlur, label, caption, error, placeholder, disabled, testId, subtractDuration }: Props) => React.JSX.Element;
22
+ declare const TimeRangeField: ({ name, id: inputId, value, interval, startTime, onChange, onBlur, label, caption, error, placeholder, disabled, testId, subtractDuration, calculateDuration }: Props) => React.JSX.Element;
22
23
  export default TimeRangeField;
package/dist/index.css CHANGED
@@ -2638,6 +2638,7 @@ input:disabled + ._2W10t::after {
2638
2638
  font-weight: var(--p-font-weight-normal);
2639
2639
  color: var(--color-grey-500);
2640
2640
  text-align: center;
2641
+ white-space: pre-line;
2641
2642
  }
2642
2643
  ._3q5OJ {
2643
2644
  display: flex;
package/dist/index.js CHANGED
@@ -829,7 +829,8 @@ var ButtonComponent = function ButtonComponent(_ref, ref) {
829
829
  var childrenArr = React.Children.toArray(children);
830
830
  var isIconOnly = childrenArr.length === 1 && typeof childrenArr[0] != 'string';
831
831
  return React__default.createElement(Tooltip, {
832
- overlay: title
832
+ overlay: title,
833
+ ref: ref
833
834
  }, React__default.createElement(ButtonElement, {
834
835
  id: id,
835
836
  onClick: onClick,
@@ -7274,7 +7275,7 @@ var Italic = function Italic(_ref) {
7274
7275
  }, children);
7275
7276
  };
7276
7277
 
7277
- var DropdownListItemComponent = function DropdownListItemComponent(_ref, ref) {
7278
+ var DropdownListItem = function DropdownListItem(_ref) {
7278
7279
  var _classNames;
7279
7280
  var onClick = _ref.onClick,
7280
7281
  prefix = _ref.prefix,
@@ -7344,11 +7345,9 @@ var DropdownListItemComponent = function DropdownListItemComponent(_ref, ref) {
7344
7345
  },
7345
7346
  onClick: handleClick,
7346
7347
  onKeyPress: handleClick,
7347
- "data-testid": testId,
7348
- ref: ref
7348
+ "data-testid": testId
7349
7349
  }, href ? linkItem : childrenContainer);
7350
7350
  };
7351
- var DropdownListItem = React.forwardRef(DropdownListItemComponent);
7352
7351
 
7353
7352
  var canInteractWithItem = function canInteractWithItem(child) {
7354
7353
  var itemType = getItemType(child);
@@ -11766,7 +11765,8 @@ var TimeFieldDropdown = function TimeFieldDropdown(_ref) {
11766
11765
  width = _ref.width,
11767
11766
  _ref$endField = _ref.endField,
11768
11767
  endField = _ref$endField === void 0 ? false : _ref$endField,
11769
- subtractDuration = _ref.subtractDuration;
11768
+ subtractDuration = _ref.subtractDuration,
11769
+ calculateDuration = _ref.calculateDuration;
11770
11770
  var startTimeParsed = startTime ? getDateWithStartTime(startTime) : setToMidnight(new Date());
11771
11771
  var timeOptions = React.useMemo(function () {
11772
11772
  return getTimeOptions(interval, startTimeParsed, endField && !!startTime);
@@ -11790,6 +11790,20 @@ var TimeFieldDropdown = function TimeFieldDropdown(_ref) {
11790
11790
  }, React__default.createElement(DropdownList, {
11791
11791
  highlightItemIndex: index
11792
11792
  }, timeOptions.map(function (option) {
11793
+ var duration = function duration() {
11794
+ if (endField && startTime) {
11795
+ if (calculateDuration) {
11796
+ return calculateDuration({
11797
+ start: startTime,
11798
+ end: option
11799
+ });
11800
+ } else {
11801
+ return getDuration(option, startTime, subtractDuration);
11802
+ }
11803
+ } else {
11804
+ return '';
11805
+ }
11806
+ };
11793
11807
  return React__default.createElement(DropdownListItem, {
11794
11808
  key: option,
11795
11809
  onClick: function onClick() {
@@ -11797,11 +11811,11 @@ var TimeFieldDropdown = function TimeFieldDropdown(_ref) {
11797
11811
  }
11798
11812
  }, React__default.createElement(Inline, {
11799
11813
  space: 4
11800
- }, option, endField && startTime && getDuration(option, startTime, subtractDuration)));
11814
+ }, option, duration()));
11801
11815
  })));
11802
11816
  };
11803
11817
 
11804
- var _excluded$2K = ["interval", "startTime", "prefix", "endField", "duration", "subtractDuration"];
11818
+ var _excluded$2K = ["interval", "startTime", "prefix", "endField", "duration", "subtractDuration", "calculateDuration"];
11805
11819
  var TimeFieldElement = function TimeFieldElement(_ref, forwardedRef) {
11806
11820
  var _ref$interval = _ref.interval,
11807
11821
  interval = _ref$interval === void 0 ? 15 : _ref$interval,
@@ -11811,6 +11825,7 @@ var TimeFieldElement = function TimeFieldElement(_ref, forwardedRef) {
11811
11825
  endField = _ref$endField === void 0 ? false : _ref$endField,
11812
11826
  duration = _ref.duration,
11813
11827
  subtractDuration = _ref.subtractDuration,
11828
+ calculateDuration = _ref.calculateDuration,
11814
11829
  allOtherProps = _objectWithoutPropertiesLoose(_ref, _excluded$2K);
11815
11830
  var internalRef = React.useRef(null);
11816
11831
  var ref = forwardedRef || internalRef;
@@ -11856,7 +11871,8 @@ var TimeFieldElement = function TimeFieldElement(_ref, forwardedRef) {
11856
11871
  inputValue: selectedDropdownValue,
11857
11872
  width: width,
11858
11873
  endField: endField,
11859
- subtractDuration: subtractDuration
11874
+ subtractDuration: subtractDuration,
11875
+ calculateDuration: calculateDuration
11860
11876
  });
11861
11877
  };
11862
11878
  var TimeRangeSelector = React.forwardRef(TimeFieldElement);
@@ -11874,7 +11890,8 @@ var TimeRangeEnd = function TimeRangeEnd(_ref) {
11874
11890
  disabled = _ref.disabled,
11875
11891
  testId = _ref.testId,
11876
11892
  value = _ref.value,
11877
- subtractDuration = _ref.subtractDuration;
11893
+ subtractDuration = _ref.subtractDuration,
11894
+ calculateDuration = _ref.calculateDuration;
11878
11895
  return React__default.createElement(TimeRangeSelector, {
11879
11896
  name: "end-time",
11880
11897
  startTime: startTime,
@@ -11890,7 +11907,8 @@ var TimeRangeEnd = function TimeRangeEnd(_ref) {
11890
11907
  testId: testId && testId + "-end-time",
11891
11908
  disabled: disabled,
11892
11909
  value: value,
11893
- subtractDuration: subtractDuration
11910
+ subtractDuration: subtractDuration,
11911
+ calculateDuration: calculateDuration
11894
11912
  });
11895
11913
  };
11896
11914
 
@@ -11933,7 +11951,8 @@ var TimeRangeField = function TimeRangeField(_ref) {
11933
11951
  placeholder = _ref.placeholder,
11934
11952
  disabled = _ref.disabled,
11935
11953
  testId = _ref.testId,
11936
- subtractDuration = _ref.subtractDuration;
11954
+ subtractDuration = _ref.subtractDuration,
11955
+ calculateDuration = _ref.calculateDuration;
11937
11956
  var controllers = useRangeFieldControllers({
11938
11957
  name: name,
11939
11958
  id: inputId,
@@ -11965,7 +11984,10 @@ var TimeRangeField = function TimeRangeField(_ref) {
11965
11984
  end: inputValue === '' ? undefined : inputValue
11966
11985
  });
11967
11986
  };
11968
- var timeRangeDuration = getDuration(end, start, subtractDuration);
11987
+ var timeRangeDuration = calculateDuration ? calculateDuration({
11988
+ start: start,
11989
+ end: end
11990
+ }) : getDuration(end, start, subtractDuration);
11969
11991
  return React__default.createElement(Field, _extends({}, fieldProps), React__default.createElement("div", {
11970
11992
  className: classnames(styles$1a['time-range-field'], (_classnames = {}, _classnames[styles$1a['time-range-field--invalid']] = hasError, _classnames[styles$1a['time-range-field--disabled']] = disabled, _classnames)),
11971
11993
  "data-testid": testId
@@ -11991,7 +12013,8 @@ var TimeRangeField = function TimeRangeField(_ref) {
11991
12013
  testId: testId,
11992
12014
  disabled: disabled,
11993
12015
  value: controllers.value.end,
11994
- subtractDuration: subtractDuration
12016
+ subtractDuration: subtractDuration,
12017
+ calculateDuration: calculateDuration
11995
12018
  })));
11996
12019
  };
11997
12020