@7shifts/sous-chef 3.73.0-beta.0 → 3.73.0-beta.1

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 (62) hide show
  1. package/dist/forms/TimeField/constants.d.ts +4 -0
  2. package/dist/forms/TimeField/domain.d.ts +1 -1
  3. package/dist/index.css +54 -40
  4. package/dist/index.css.map +1 -1
  5. package/dist/index.js +67 -38
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.modern.js +71 -41
  8. package/dist/index.modern.js.map +1 -1
  9. package/dist/lists/DataTable/DataTableCoverShadow/DataTableCoverShadow.d.ts +3 -3
  10. package/dist/lists/DataTable/DataTableEmptyState/DataTableEmptyState.d.ts +3 -2
  11. package/dist/lists/hooks/useDataTableScrollState.d.ts +0 -2
  12. package/dist/src/actions/Button/Button.d.ts +30 -0
  13. package/dist/src/actions/Button/types.d.ts +4 -0
  14. package/dist/src/actions/Link/types.d.ts +2 -0
  15. package/dist/src/controls/DateFilter/types.d.ts +3 -0
  16. package/dist/src/empty_states/EmptyStateContainer/types.d.ts +31 -0
  17. package/dist/src/feedback/InlineBanner/ButtonCTA/index.d.ts +1 -0
  18. package/dist/src/feedback/InlineBanner/types.d.ts +1 -0
  19. package/dist/src/feedback/PersistentBanner/types.d.ts +1 -0
  20. package/dist/src/feedback/Skeleton/types.d.ts +1 -0
  21. package/dist/src/feedback/Toast/types.d.ts +1 -0
  22. package/dist/src/forms/AsyncSelectField/types.d.ts +5 -0
  23. package/dist/src/forms/DateRangeField/DateRangeCalendar/index.d.ts +1 -0
  24. package/dist/src/forms/Form/types.d.ts +3 -0
  25. package/dist/src/forms/PasswordField/types.d.ts +5 -0
  26. package/dist/src/forms/PhoneField/CountrySelector/index.d.ts +1 -0
  27. package/dist/src/forms/PhoneField/types.d.ts +2 -0
  28. package/dist/src/forms/PillSelectField/types.d.ts +4 -0
  29. package/dist/src/forms/SelectField/domain.d.ts +5 -0
  30. package/dist/src/forms/SelectField/types.d.ts +30 -0
  31. package/dist/src/forms/TimeField/TimeFieldInput/index.d.ts +1 -0
  32. package/dist/src/forms/TimeRangeField/types.d.ts +10 -0
  33. package/dist/src/foundation/tokens/color/color-codes.d.ts +64 -0
  34. package/dist/src/foundation/tokens/color/color-types.d.ts +1 -0
  35. package/dist/src/foundation/tokens/zindex/z-index-types.d.ts +1 -0
  36. package/dist/src/foundation/tokens/zindex/z-index-values.d.ts +9 -0
  37. package/dist/src/foundation/types.d.ts +25 -0
  38. package/dist/src/i18n/types.d.ts +3 -0
  39. package/dist/src/icons/icon-typescript-template.d.ts +9 -0
  40. package/dist/src/icons/types.d.ts +1 -0
  41. package/dist/src/layout/Flex/types.d.ts +8 -0
  42. package/dist/src/layout/Page/types.d.ts +6 -0
  43. package/dist/src/lists/Accordion/types.d.ts +6 -0
  44. package/dist/src/lists/ActionList/type.d.ts +10 -0
  45. package/dist/src/lists/ActionListItem/type.d.ts +1 -0
  46. package/dist/src/lists/DataTable/DataTableHeader/types.d.ts +4 -0
  47. package/dist/src/lists/DataTable/types.d.ts +50 -0
  48. package/dist/src/media/Chip/types.d.ts +1 -0
  49. package/dist/src/media/Pill/types.d.ts +1 -0
  50. package/dist/src/overlay/Calendar/types.d.ts +2 -0
  51. package/dist/src/overlay/Dropdown/types.d.ts +2 -0
  52. package/dist/src/overlay/DropdownPane/index.d.ts +1 -0
  53. package/dist/src/overlay/KebabMenu/types.d.ts +7 -0
  54. package/dist/src/overlay/Tooltip/types.d.ts +6 -0
  55. package/dist/src/overlay/hooks/useListKeyboardNavigation/index.d.ts +2 -0
  56. package/dist/src/overlay/hooks/useListKeyboardNavigation/types.d.ts +6 -0
  57. package/dist/src/tests/utils/mockIntersectionObserver.d.ts +9 -0
  58. package/dist/src/typography/KeyboardKey/index.d.ts +1 -0
  59. package/dist/src/typography/Text/types.d.ts +3 -0
  60. package/dist/src/utils/storybookArgTypes.d.ts +89 -0
  61. package/dist/src/utils/types.d.ts +2 -0
  62. package/package.json +1 -1
@@ -6441,10 +6441,16 @@ const ToastContainer = ({
6441
6441
  enableMultiContainer: true
6442
6442
  });
6443
6443
 
6444
+ const TIME_FORMAT = {
6445
+ FORMAT_24H: '24h',
6446
+ FORMAT_AMPM: 'ampm'
6447
+ };
6448
+
6444
6449
  const initialValue$1 = {
6445
- // This is currently used to configure the phone number field
6450
+ // This country prop is currently used to configure the phone number field
6446
6451
  country: 'US',
6447
- timeFormat: 'ampm'
6452
+ // This timeFormat prop is currently used to configure the time format for time fields
6453
+ timeFormat: TIME_FORMAT.FORMAT_AMPM
6448
6454
  };
6449
6455
  const ProviderConfigContext = createContext(initialValue$1);
6450
6456
  const useProviderConfig = () => {
@@ -6459,7 +6465,7 @@ const SousChefProvider = ({
6459
6465
  children,
6460
6466
  i18n: _i18n = en,
6461
6467
  country: _country = 'US',
6462
- timeFormat: _timeFormat = 'ampm'
6468
+ timeFormat: _timeFormat = TIME_FORMAT.FORMAT_AMPM
6463
6469
  }) => {
6464
6470
  return React__default.createElement(ProviderConfigContext.Provider, {
6465
6471
  value: {
@@ -7569,7 +7575,7 @@ const TimeFieldInput = ({
7569
7575
  duration,
7570
7576
  timeFormat
7571
7577
  }) => {
7572
- const format = timeFormat === 'ampm' ? 'g:i A' : 'H:i';
7578
+ const format = timeFormat === TIME_FORMAT.FORMAT_AMPM ? 'g:i A' : 'H:i';
7573
7579
  return React__default.createElement(AffixContainer, {
7574
7580
  prefix: prefix ? prefix : React__default.createElement(IconClock, {
7575
7581
  size: "medium",
@@ -7611,7 +7617,7 @@ const TimeFieldDropdownElement = (_ref, ref) => {
7611
7617
  timeFormat
7612
7618
  } = _ref,
7613
7619
  allOtherProps = _objectWithoutPropertiesLoose(_ref, _excluded$l);
7614
- const defaultPlaceholder = timeFormat === 'ampm' ? '9:00 AM' : '09:00';
7620
+ const defaultPlaceholder = timeFormat === TIME_FORMAT.FORMAT_AMPM ? '9:00 AM' : '09:00';
7615
7621
  const {
7616
7622
  inputProps,
7617
7623
  fieldProps
@@ -9494,8 +9500,6 @@ const useDataTableScrollState = stickyColumns => {
9494
9500
  const hasScrollOnRight = scrollState === DATA_TABLE_SCROLL_STATES.SCROLLABLE_CONTENT_ON_RIGHT || scrollState === DATA_TABLE_SCROLL_STATES.SCROLLABLE_CONTENT_ON_BOTH_SIDES;
9495
9501
  const hasRightColumnSticky = stickyColumns === 'right' || stickyColumns === 'both';
9496
9502
  const hasLeftColumnSticky = stickyColumns === 'left' || stickyColumns === 'both';
9497
- const showCoverShadowOnRight = stickyColumns === 'left' && hasScrollOnRight;
9498
- const showCoverShadowOnLeft = stickyColumns === 'right' && hasScrollOnLeft;
9499
9503
  return {
9500
9504
  scrollState,
9501
9505
  onScroll,
@@ -9503,22 +9507,21 @@ const useDataTableScrollState = stickyColumns => {
9503
9507
  hasScrollOnLeft,
9504
9508
  hasScrollOnRight,
9505
9509
  hasRightColumnSticky,
9506
- hasLeftColumnSticky,
9507
- showCoverShadowOnRight,
9508
- showCoverShadowOnLeft
9510
+ hasLeftColumnSticky
9509
9511
  };
9510
9512
  };
9511
9513
 
9512
- var styles$C = {"data-table-cover-shadow":"_4XrxW","data-table-cover-shadow--left":"_k704p","fadeinshadowleft":"_Fr-av","data-table-cover-shadow--right":"_wOust","fadeinshadowright":"_KgJaq"};
9514
+ var styles$C = {"data-table-cover-shadow":"_4XrxW","data-table-cover-shadow--left":"_k704p","data-table-cover-shadow--left-shadow":"_VXlf0","fadeinshadowleft":"_Fr-av","data-table-cover-shadow--right":"_wOust","data-table-cover-shadow--right-shadow":"_b3Rzx","fadeinshadowright":"_KgJaq"};
9513
9515
 
9514
9516
  const DataTableCoverShadow = ({
9515
- showShadowOnLeft,
9516
- showShadowOnRight,
9517
- isShowingColumns
9517
+ isShowingColumns,
9518
+ direction,
9519
+ showShadow
9518
9520
  }) => {
9519
9521
  const headerHeight = useTableHeaderHeight(isShowingColumns);
9520
9522
  const [hasFixedScroll] = useState(detectAlwaysShowScrollbars);
9521
9523
  const SCROLL_SIZE = '15px';
9524
+ const backgroundColor = useBackgroundColor();
9522
9525
  const getHeaderHeight = () => {
9523
9526
  if (hasFixedScroll) {
9524
9527
  return `calc(100% - ${headerHeight} - ${SCROLL_SIZE})`;
@@ -9527,10 +9530,14 @@ const DataTableCoverShadow = ({
9527
9530
  };
9528
9531
  return React__default.createElement("div", {
9529
9532
  className: classnames(styles$C['data-table-cover-shadow'], {
9530
- [styles$C['data-table-cover-shadow--left']]: showShadowOnLeft,
9531
- [styles$C['data-table-cover-shadow--right']]: showShadowOnRight
9533
+ [styles$C['data-table-cover-shadow--left']]: direction === 'left',
9534
+ [styles$C['data-table-cover-shadow--left-shadow']]: direction === 'left' && showShadow,
9535
+ [styles$C['data-table-cover-shadow--right']]: direction === 'right',
9536
+ [styles$C['data-table-cover-shadow--right-shadow']]: direction === 'right' && showShadow
9532
9537
  }),
9533
9538
  style: {
9539
+ // @ts-expect-error This difines a custom CSS variable
9540
+ '--corner-background-color': backgroundColor,
9534
9541
  height: !isShowingColumns ? '100%' : getHeaderHeight(),
9535
9542
  bottom: isShowingColumns && hasFixedScroll ? SCROLL_SIZE : 0
9536
9543
  }
@@ -9560,15 +9567,16 @@ const DataTableStickyColumnsContainer = ({
9560
9567
  isShowingColumns,
9561
9568
  isShowingFooter
9562
9569
  }) => {
9570
+ const {
9571
+ state
9572
+ } = useDataTableContext();
9563
9573
  const {
9564
9574
  scrollContainerRef,
9565
9575
  onScroll,
9566
9576
  hasScrollOnLeft,
9567
9577
  hasScrollOnRight,
9568
9578
  hasRightColumnSticky,
9569
- hasLeftColumnSticky,
9570
- showCoverShadowOnRight,
9571
- showCoverShadowOnLeft
9579
+ hasLeftColumnSticky
9572
9580
  } = useDataTableScrollState(stickyColumns);
9573
9581
  const [browserVersion] = useState(() => {
9574
9582
  return getBrowserVersion();
@@ -9578,17 +9586,21 @@ const DataTableStickyColumnsContainer = ({
9578
9586
  }
9579
9587
  const noShadow = browserVersion.includes('Safari');
9580
9588
  const containerClassName = 'data-table-sticky-columns-container';
9581
- return React__default.createElement(Fragment, null, (showCoverShadowOnRight || showCoverShadowOnLeft) && React__default.createElement(DataTableCoverShadow, {
9582
- showShadowOnLeft: hasScrollOnLeft && stickyColumns === 'right',
9583
- showShadowOnRight: hasScrollOnRight && stickyColumns === 'left',
9584
- isShowingColumns: !!isShowingColumns
9585
- }), React__default.createElement("div", {
9589
+ return React__default.createElement(Fragment, null, (hasScrollOnLeft || hasScrollOnRight) && React__default.createElement(Fragment, null, React__default.createElement(DataTableCoverShadow, {
9590
+ direction: "left",
9591
+ isShowingColumns: !!isShowingColumns,
9592
+ showShadow: state === 'EMPTY' ? false : stickyColumns === 'right'
9593
+ }), React__default.createElement(DataTableCoverShadow, {
9594
+ direction: "right",
9595
+ isShowingColumns: !!isShowingColumns,
9596
+ showShadow: state === 'EMPTY' ? false : stickyColumns === 'left'
9597
+ })), React__default.createElement("div", {
9586
9598
  className: classnames(styles$D[containerClassName], {
9587
9599
  [styles$D[`${containerClassName}--with-footer`]]: isShowingFooter,
9588
9600
  [styles$D[`${containerClassName}--with-left-sticky-columns`]]: hasLeftColumnSticky,
9589
- [styles$D[`${containerClassName}--with-left-sticky-columns-and-shadow`]]: hasLeftColumnSticky && hasScrollOnLeft,
9601
+ [styles$D[`${containerClassName}--with-left-sticky-columns-and-shadow`]]: state !== 'EMPTY' ? hasLeftColumnSticky && hasScrollOnLeft : false,
9590
9602
  [styles$D[`${containerClassName}--with-right-sticky-columns`]]: hasRightColumnSticky,
9591
- [styles$D[`${containerClassName}--with-right-sticky-columns-and-shadow`]]: hasRightColumnSticky && hasScrollOnRight,
9603
+ [styles$D[`${containerClassName}--with-right-sticky-columns-and-shadow`]]: state !== 'EMPTY' ? hasRightColumnSticky && hasScrollOnRight : false,
9592
9604
  [styles$D[`${containerClassName}--no-shadow`]]: noShadow
9593
9605
  }),
9594
9606
  onScroll: onScroll,
@@ -9743,13 +9755,26 @@ const MagnifyingGlassIllustration = () => {
9743
9755
 
9744
9756
  const DataTableEmptyState = ({
9745
9757
  columns,
9746
- customEmptyState
9758
+ customEmptyState,
9759
+ stickyColumns
9747
9760
  }) => {
9748
9761
  const translate = useTranslation('DataTable');
9749
9762
  const customImage = customEmptyState && customEmptyState.image ? customEmptyState.image : '';
9750
- return React__default.createElement(DataTableRow, null, React__default.createElement(DataTableCell, {
9751
- columnIndex: 0,
9752
- colSpan: (columns == null ? void 0 : columns.length) || undefined
9763
+ const shouldRenderStickyLeftCell = stickyColumns && (stickyColumns === 'left' || stickyColumns === 'both');
9764
+ const shouldRenderStickyRightCell = stickyColumns && (stickyColumns === 'right' || stickyColumns === 'both');
9765
+ let colSpan = undefined;
9766
+ if (columns) {
9767
+ if (stickyColumns) {
9768
+ colSpan = stickyColumns === 'both' ? columns.length - 2 : columns.length - 1;
9769
+ } else {
9770
+ colSpan = columns.length;
9771
+ }
9772
+ }
9773
+ return React__default.createElement(DataTableRow, null, shouldRenderStickyLeftCell && React__default.createElement(DataTableCell, {
9774
+ columnIndex: 0
9775
+ }, ''), React__default.createElement(DataTableCell, {
9776
+ columnIndex: shouldRenderStickyLeftCell ? 1 : 0,
9777
+ colSpan: colSpan
9753
9778
  }, React__default.createElement("div", {
9754
9779
  className: styles$B['data-table-empty-state']
9755
9780
  }, React__default.createElement(EmptyStateContainerStack, {
@@ -9758,7 +9783,9 @@ const DataTableEmptyState = ({
9758
9783
  title: customEmptyState ? customEmptyState.title : translate('emptyStateTitle'),
9759
9784
  actions: customEmptyState && customEmptyState.actions,
9760
9785
  size: "small"
9761
- }, customEmptyState ? customEmptyState.caption : translate('emptyStateCaption')))));
9786
+ }, customEmptyState ? customEmptyState.caption : translate('emptyStateCaption')))), shouldRenderStickyRightCell && React__default.createElement(DataTableCell, {
9787
+ columnIndex: shouldRenderStickyLeftCell ? 2 : 1
9788
+ }, ''));
9762
9789
  };
9763
9790
 
9764
9791
  const _excluded$e = ["items", "columns", "itemComponent", "maxHeight", "hasPrevious", "hasNext", "onPreviousClick", "onNextClick", "onSort", "isLoading", "showActionMenu", "footerComponent", "hasVerticalBorders", "testId", "skeletonRowLayout", "stickyColumns", "emptyState"];
@@ -9892,7 +9919,8 @@ const DataTable = _ref => {
9892
9919
  });
9893
9920
  }), state === DATA_TABLE_STATES.EMPTY && React__default.createElement(DataTableEmptyState, {
9894
9921
  columns: columns,
9895
- customEmptyState: emptyState
9922
+ customEmptyState: emptyState,
9923
+ stickyColumns: stickyColumns
9896
9924
  }), state === DATA_TABLE_STATES.SKELETON_LOADING && React__default.createElement(React__default.Fragment, null, skeletonRows.map((_, index) => React__default.createElement(SkeletonRow, {
9897
9925
  key: index
9898
9926
  })))), isShowingFooter && isShowingContent && React__default.createElement("tfoot", {
@@ -12468,22 +12496,24 @@ const WeekField = ({
12468
12496
  }));
12469
12497
  };
12470
12498
 
12471
- const getTimeOptions = (interval, startTime = setToMidnight(new Date()), skipStartTime = false, timeFormat) => {
12499
+ const getTimeOptions = (interval, startTime = setToMidnight(new Date()), skipStartTime = false, timeFormat = TIME_FORMAT.FORMAT_AMPM) => {
12472
12500
  const intervalCoeffecient = 1000 * 60 * interval;
12473
12501
  const optionsCount = 60 * 24 / interval;
12474
12502
  const timeOptions = [];
12475
12503
  const rounded = new Date(Math.ceil(startTime.getTime() / intervalCoeffecient) * intervalCoeffecient);
12476
12504
  const skipFirstInterval = skipStartTime && startTime.getTime() === rounded.getTime();
12505
+ const isUsingAmPmFormat = timeFormat === TIME_FORMAT.FORMAT_AMPM;
12477
12506
  for (let i = skipFirstInterval ? 1 : 0; i < optionsCount; i++) {
12478
12507
  const newDate = new Date(rounded.getTime());
12479
12508
  newDate.setMinutes(rounded.getMinutes() + interval * i);
12480
- const hours = timeFormat === 'ampm' ? formatHours(newDate.getHours()) : newDate.getHours();
12509
+ const hours = isUsingAmPmFormat ? formatHours(newDate.getHours()) : newDate.getHours();
12481
12510
  const minutes = newDate.getMinutes();
12482
- const timeString = `${hours.toString().padStart(2, '0')}:${minutes === 0 ? '00' : minutes}`;
12483
- if (timeFormat === 'ampm') {
12511
+ if (isUsingAmPmFormat) {
12512
+ const timeString = `${hours}:${minutes === 0 ? '00' : minutes}`;
12484
12513
  const period = newDate.getHours() < 12 ? 'AM' : 'PM';
12485
12514
  timeOptions.push(`${timeString} ${period}`);
12486
12515
  } else {
12516
+ const timeString = `${hours.toString().padStart(2, '0')}:${minutes === 0 ? '00' : minutes}`;
12487
12517
  timeOptions.push(timeString);
12488
12518
  }
12489
12519
  }
@@ -12664,7 +12694,7 @@ const TimeRangeEnd = ({
12664
12694
  calculateDuration,
12665
12695
  timeFormat
12666
12696
  }) => {
12667
- const defaultPlaceholder = timeFormat === 'ampm' ? '2:00 PM' : '14:00';
12697
+ const defaultPlaceholder = timeFormat === TIME_FORMAT.FORMAT_AMPM ? '2:00 PM' : '14:00';
12668
12698
  return React__default.createElement(TimeRangeSelector, {
12669
12699
  name: "end-time",
12670
12700
  startTime: startTime,
@@ -12697,7 +12727,7 @@ const TimeRangeStart = ({
12697
12727
  value,
12698
12728
  timeFormat
12699
12729
  }) => {
12700
- const defaultPlaceholder = timeFormat === 'ampm' ? '9:00 AM' : '09:00';
12730
+ const defaultPlaceholder = timeFormat === TIME_FORMAT.FORMAT_AMPM ? '9:00 AM' : '09:00';
12701
12731
  return React__default.createElement(TimeRangeSelector, {
12702
12732
  name: "start-time",
12703
12733
  startTime: startTime,
@@ -12728,7 +12758,7 @@ const TimeRangeField = ({
12728
12758
  testId,
12729
12759
  subtractDuration,
12730
12760
  calculateDuration,
12731
- timeFormat: _timeFormat = '24h'
12761
+ timeFormat
12732
12762
  }) => {
12733
12763
  const {
12734
12764
  timeFormat: globalTimeFormat
@@ -12784,7 +12814,7 @@ const TimeRangeField = ({
12784
12814
  id: controllers.id,
12785
12815
  disabled: disabled,
12786
12816
  value: controllers.value.start,
12787
- timeFormat: _timeFormat || globalTimeFormat
12817
+ timeFormat: timeFormat || globalTimeFormat
12788
12818
  }), React__default.createElement(TimeRangeEnd, {
12789
12819
  startTime: start,
12790
12820
  interval: _interval,
@@ -12796,7 +12826,7 @@ const TimeRangeField = ({
12796
12826
  value: controllers.value.end,
12797
12827
  subtractDuration: subtractDuration,
12798
12828
  calculateDuration: calculateDuration,
12799
- timeFormat: _timeFormat || globalTimeFormat
12829
+ timeFormat: timeFormat || globalTimeFormat
12800
12830
  })));
12801
12831
  };
12802
12832