@jobber/components 4.79.0 → 4.79.1-JOB-85851.2

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 (141) hide show
  1. package/StatusIndicator.d.ts +1 -0
  2. package/StatusIndicator.js +17 -0
  3. package/dist/AnimatedPresence/index.js +5 -99
  4. package/dist/AnimatedPresence-20a02aaa.js +104 -0
  5. package/dist/Autocomplete/Menu.d.ts +2 -2
  6. package/dist/Autocomplete/index.js +16 -11
  7. package/dist/Banner/index.js +8 -7
  8. package/dist/Button/index.js +2 -2
  9. package/dist/{Button-b73a5e01.js → Button-6b922fc1.js} +1 -1
  10. package/dist/ButtonDismiss/ButtonDismiss.d.ts +1 -1
  11. package/dist/ButtonDismiss/index.js +3 -3
  12. package/dist/{ButtonDismiss-350af163.js → ButtonDismiss-a3ba1de2.js} +1 -1
  13. package/dist/Card/CardClickable.d.ts +1 -1
  14. package/dist/Card/index.js +7 -7
  15. package/dist/{Card-426a68a8.js → Card-74f078a4.js} +4 -4
  16. package/dist/Checkbox/index.js +3 -4
  17. package/dist/{Checkbox-99f6297f.js → Checkbox-e481a4b1.js} +2 -3
  18. package/dist/Chip/index.js +5 -3
  19. package/dist/{Chip-c91fd6c8.js → Chip-76f18555.js} +2 -2
  20. package/dist/Chips/index.js +9 -8
  21. package/dist/Combobox/Combobox.types.d.ts +4 -0
  22. package/dist/Combobox/components/ComboboxOption/ComboboxOption.d.ts +2 -1
  23. package/dist/Combobox/hooks/useMakeComboboxHandlers.d.ts +1 -1
  24. package/dist/Combobox/index.js +12 -8
  25. package/dist/{Combobox-d4b84edf.js → Combobox-6d864202.js} +25 -20
  26. package/dist/ConfirmationModal/index.js +11 -10
  27. package/dist/{ConfirmationModal-f1a049fb.js → ConfirmationModal-387aa1b5.js} +2 -2
  28. package/dist/DataDump/index.js +8 -8
  29. package/dist/DataList/DataList.const.d.ts +1 -0
  30. package/dist/DataList/DataList.types.d.ts +0 -1
  31. package/dist/DataList/components/DataListActionsMenu/DataListActionsMenu.d.ts +2 -2
  32. package/dist/DataList/components/DataListTotalCount/DataListTotalCount.d.ts +2 -2
  33. package/dist/DataList/index.js +40 -40
  34. package/dist/DataTable/BodyLoading.d.ts +1 -1
  35. package/dist/DataTable/Footer.d.ts +2 -2
  36. package/dist/DataTable/SortIcon.d.ts +1 -1
  37. package/dist/DataTable/index.js +7 -8
  38. package/dist/DatePicker/index.js +3 -3
  39. package/dist/{DatePicker-64c5ab1a.js → DatePicker-dd9173c7.js} +2 -2
  40. package/dist/DescriptionList/DescriptionList.d.ts +1 -1
  41. package/dist/DescriptionList/index.js +2 -2
  42. package/dist/Disclosure/index.js +1 -1
  43. package/dist/Drawer/DrawerGrid.d.ts +1 -1
  44. package/dist/Drawer/index.js +11 -11
  45. package/dist/Emphasis/Emphasis.d.ts +2 -2
  46. package/dist/Emphasis/index.js +2 -2
  47. package/dist/{Emphasis-bda56d3b.js → Emphasis-a77d8ee9.js} +1 -1
  48. package/dist/FeatureSwitch/index.js +9 -8
  49. package/dist/Flex/index.js +5 -33
  50. package/dist/Flex-d490c4db.js +38 -0
  51. package/dist/FormField/FormFieldAffix.d.ts +2 -2
  52. package/dist/FormField/index.js +5 -6
  53. package/dist/{FormField-b4e6c549.js → FormField-3ec1c85d.js} +5 -6
  54. package/dist/FormatFile/FormatFileDeleteButton.d.ts +2 -2
  55. package/dist/FormatFile/index.js +13 -12
  56. package/dist/{FormatFile-652edda8.js → FormatFile-5ba4cf69.js} +7 -7
  57. package/dist/Gallery/index.js +15 -13
  58. package/dist/Glimmer/index.js +1 -1
  59. package/dist/{Glimmer-7c317864.js → Glimmer-84dee1ed.js} +1 -1
  60. package/dist/Heading/index.js +4 -3
  61. package/dist/{Heading-1e8e4bd3.js → Heading-bae3c69e.js} +3 -3
  62. package/dist/InlineLabel/InlineLabel.d.ts +3 -3
  63. package/dist/InlineLabel/index.js +2 -2
  64. package/dist/{InlineLabel-a6557829.js → InlineLabel-4d463bd6.js} +1 -1
  65. package/dist/InputAvatar/index.js +5 -6
  66. package/dist/InputDate/index.js +6 -7
  67. package/dist/InputEmail/index.js +5 -6
  68. package/dist/InputFile/InputFile.d.ts +1 -1
  69. package/dist/InputFile/index.js +5 -6
  70. package/dist/{InputFile-c9eeb04b.js → InputFile-20b9074a.js} +7 -5
  71. package/dist/InputNumber/InputNumber.d.ts +1 -1
  72. package/dist/InputNumber/index.js +6 -7
  73. package/dist/{InputNumber-ceae3872.js → InputNumber-75ae72b9.js} +1 -1
  74. package/dist/InputPassword/InputPassword.d.ts +2 -2
  75. package/dist/InputPassword/index.js +5 -6
  76. package/dist/InputPhoneNumber/index.js +5 -6
  77. package/dist/InputText/index.js +7 -7
  78. package/dist/{InputText-6e356985.js → InputText-de22af8c.js} +3 -2
  79. package/dist/InputTime/index.js +5 -6
  80. package/dist/InputValidation/index.js +3 -3
  81. package/dist/{InputValidation-05e839fa.js → InputValidation-a92bb519.js} +1 -1
  82. package/dist/LightBox/LightBox.d.ts +2 -2
  83. package/dist/LightBox/index.js +5 -4
  84. package/dist/{LightBox-a89d8863.js → LightBox-7efe8932.js} +7 -3
  85. package/dist/List/index.js +7 -6
  86. package/dist/Markdown/index.js +7 -6
  87. package/dist/{Markdown-f7c55304.js → Markdown-b1b65457.js} +3 -3
  88. package/dist/Menu/Menu.d.ts +4 -4
  89. package/dist/Menu/index.js +4 -4
  90. package/dist/{Menu-81b12936.js → Menu-d6dd673e.js} +6 -6
  91. package/dist/Modal/Modal.d.ts +2 -2
  92. package/dist/Modal/index.js +7 -6
  93. package/dist/{Modal-a0627c92.js → Modal-5b866c72.js} +7 -5
  94. package/dist/MultiSelect/index.js +3 -4
  95. package/dist/{Option-8565da71.js → Option-c4b05656.js} +1 -1
  96. package/dist/Page/index.js +9 -9
  97. package/dist/Popover/index.js +8 -4
  98. package/dist/RadioGroup/RadioGroup.d.ts +1 -1
  99. package/dist/RadioGroup/index.js +3 -4
  100. package/dist/{RadioGroup-ca7a5978.js → RadioGroup-678f4932.js} +3 -4
  101. package/dist/RecurringSelect/CurrentRecurrenceComponent.d.ts +2 -2
  102. package/dist/RecurringSelect/components/DayOfMonthSelect.d.ts +2 -2
  103. package/dist/RecurringSelect/components/MonthlyDayOfWeekSelect.d.ts +2 -2
  104. package/dist/RecurringSelect/components/MonthlySelect.d.ts +2 -2
  105. package/dist/RecurringSelect/components/WeeklySelect.d.ts +2 -2
  106. package/dist/RecurringSelect/index.js +10 -11
  107. package/dist/Select/index.js +6 -7
  108. package/dist/StatusIndicator/StatusIndicator.d.ts +7 -0
  109. package/dist/StatusIndicator/StatusIndicator.type.d.ts +1 -0
  110. package/dist/StatusIndicator/index.d.ts +2 -0
  111. package/dist/StatusIndicator/index.js +11 -0
  112. package/dist/StatusIndicator-7b5258ea.js +18 -0
  113. package/dist/StatusLabel/StatusLabel.d.ts +3 -3
  114. package/dist/StatusLabel/index.js +8 -10
  115. package/dist/Switch/index.js +2 -2
  116. package/dist/{Switch-7d4aa7c3.js → Switch-eac89586.js} +1 -1
  117. package/dist/Table/Body.d.ts +1 -1
  118. package/dist/Table/Cells/Cell.d.ts +2 -2
  119. package/dist/Table/Cells/CellCurrency.d.ts +2 -2
  120. package/dist/Table/Cells/CellNumeric.d.ts +1 -1
  121. package/dist/Table/Footer.d.ts +1 -1
  122. package/dist/Table/Header.d.ts +1 -1
  123. package/dist/Table/Row.d.ts +1 -1
  124. package/dist/Table/Table.d.ts +1 -1
  125. package/dist/Tabs/index.js +1 -1
  126. package/dist/Text/Text.d.ts +1 -1
  127. package/dist/Text/index.js +2 -2
  128. package/dist/{Text-259af966.js → Text-fbeaaca6.js} +1 -1
  129. package/dist/Toast/index.js +2 -2
  130. package/dist/Tooltip/index.js +3 -1
  131. package/dist/{Tooltip-27771182.js → Tooltip-b9de6e57.js} +6 -3
  132. package/dist/Typography/Typography.d.ts +1 -1
  133. package/dist/Typography/css/TextColors.css.d.ts +1 -0
  134. package/dist/Typography/index.js +1 -1
  135. package/dist/{Typography-c45bf216.js → Typography-e2a23b7e.js} +2 -2
  136. package/dist/useAtlantisConfig-ed0bee66.js +16 -0
  137. package/dist/utils/useAtlantisConfig.d.ts +3 -0
  138. package/package.json +8 -12
  139. package/rollup.config.js +0 -1
  140. package/dist/getAtlantisConfig-0f3e8af2.js +0 -13
  141. package/dist/utils/getAtlantisConfig.d.ts +0 -3
@@ -1,6 +1,7 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  export interface ComboboxOptionProps {
3
3
  readonly id: string | number;
4
4
  readonly label: string;
5
+ readonly prefix?: React.ReactNode;
5
6
  }
6
7
  export declare function ComboboxOption(props: ComboboxOptionProps): JSX.Element;
@@ -4,4 +4,4 @@ export interface UseMakeComboboxHandlersReturn {
4
4
  handleClose: () => void;
5
5
  handleSelection: (selection: ComboboxOption) => void;
6
6
  }
7
- export declare function useMakeComboboxHandlers(setOpen: (open: boolean) => void, setSearchValue: (searchValue: string) => void, selectedOptions: ComboboxOption[], shouldScroll: React.MutableRefObject<boolean>, selectedStateSetter: (selected: ComboboxOption[]) => void, multiSelect?: boolean, onClose?: () => void): UseMakeComboboxHandlersReturn;
7
+ export declare function useMakeComboboxHandlers(setOpen: (open: boolean) => void, setSearchValue: (searchValue: string) => void, selectedOptions: ComboboxOption[], shouldScroll: React.MutableRefObject<boolean>, selectedStateSetter: (selected: ComboboxOption[]) => void, multiSelect?: boolean, onClose?: () => void, onSearch?: (searchValue: string) => void): UseMakeComboboxHandlersReturn;
@@ -2,31 +2,35 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Combobox = require('../Combobox-d4b84edf.js');
5
+ var Combobox = require('../Combobox-6d864202.js');
6
6
  require('react');
7
7
  require('classnames');
8
8
  require('react-dom');
9
9
  require('../style-inject.es-9d2f5f4e.js');
10
10
  require('../Icon-405a216c.js');
11
11
  require('@jobber/design');
12
- require('../Text-259af966.js');
13
- require('../Typography-c45bf216.js');
14
- require('../Glimmer-7c317864.js');
12
+ require('../Text-fbeaaca6.js');
13
+ require('../Typography-e2a23b7e.js');
14
+ require('../Glimmer-84dee1ed.js');
15
15
  require('../tslib.es6-754e2961.js');
16
16
  require('../Content-e3f7b6fc.js');
17
17
  require('../Spinner-9d8fc7ff.js');
18
+ require('../AnimatedPresence-20a02aaa.js');
19
+ require('framer-motion');
20
+ require('../Flex-d490c4db.js');
18
21
  require('@jobber/hooks/useInView');
19
- require('../Button-b73a5e01.js');
22
+ require('../Button-6b922fc1.js');
20
23
  require('react-router-dom');
21
24
  require('@jobber/hooks/useRefocusOnActivator');
22
25
  require('@jobber/hooks/useFocusTrap');
23
26
  require('react-popper');
24
27
  require('@jobber/hooks/useOnKeyDown');
25
- require('../Chip-c91fd6c8.js');
28
+ require('../Chip-76f18555.js');
26
29
  require('../Avatar-76a799fa.js');
27
30
  require('color');
28
- require('../Tooltip-27771182.js');
29
- require('framer-motion');
31
+ require('../Tooltip-b9de6e57.js');
32
+ require('@jobber/hooks/useSafeLayoutEffect');
33
+ require('@jobber/hooks/useIsMounted');
30
34
  require('lodash/debounce');
31
35
  require('lodash/noop');
32
36
  require('@jobber/hooks/useAssert');
@@ -5,18 +5,20 @@ var classnames = require('classnames');
5
5
  var ReactDOM = require('react-dom');
6
6
  var styleInject_es = require('./style-inject.es-9d2f5f4e.js');
7
7
  var Icon = require('./Icon-405a216c.js');
8
- var Text = require('./Text-259af966.js');
9
- var Glimmer = require('./Glimmer-7c317864.js');
8
+ var Text = require('./Text-fbeaaca6.js');
9
+ var Glimmer = require('./Glimmer-84dee1ed.js');
10
10
  var Spinner = require('./Spinner-9d8fc7ff.js');
11
+ var AnimatedPresence = require('./AnimatedPresence-20a02aaa.js');
12
+ var Flex = require('./Flex-d490c4db.js');
11
13
  var tslib_es6 = require('./tslib.es6-754e2961.js');
12
14
  var useInView = require('@jobber/hooks/useInView');
13
- var Typography = require('./Typography-c45bf216.js');
14
- var Button = require('./Button-b73a5e01.js');
15
+ var Typography = require('./Typography-e2a23b7e.js');
16
+ var Button = require('./Button-6b922fc1.js');
15
17
  var useRefocusOnActivator = require('@jobber/hooks/useRefocusOnActivator');
16
18
  var useFocusTrap = require('@jobber/hooks/useFocusTrap');
17
19
  var reactPopper = require('react-popper');
18
20
  var useOnKeyDown = require('@jobber/hooks/useOnKeyDown');
19
- var Chip = require('./Chip-c91fd6c8.js');
21
+ var Chip = require('./Chip-76f18555.js');
20
22
  var debounce = require('lodash/debounce');
21
23
  var noop = require('lodash/noop');
22
24
  require('@jobber/design');
@@ -64,7 +66,7 @@ function ComboboxContentSearch(props) {
64
66
  }
65
67
  }
66
68
 
67
- var css_248z$5 = ".SgMzjOcdE-E- {\n position: relative;\n padding: calc(16px / 2) 0;\n padding: var(--space-small) 0;\n}\n\n.TwoTCjgcssc- {\n display: -ms-flexbox;\n display: flex;\n\n max-height: calc((16px / 2) * 33.33);\n\n max-height: calc(calc(16px / 2) * 33.33);\n\n max-height: calc(var(--space-small) * 33.33);\n margin: 0;\n padding: 0;\n overflow: auto;\n list-style: none;\n -ms-flex-direction: column;\n flex-direction: column;\n gap: calc(16px / 4);\n gap: var(--space-smaller);\n}\n\n._8T5M7MGwCRE-,\n._4y5NXkNeIQM- {\n padding: calc(16px / 2) calc(16px * 1);\n padding: var(--space-small) var(--space-base);\n}\n\n.SgMzjOcdE-E-::before,\n.SgMzjOcdE-E-::after {\n content: \"\";\n display: block;\n position: absolute;\n right: 0;\n left: 0;\n height: calc(16px * 1);\n height: var(--space-base);\n pointer-events: none;\n transition: opacity 0.3s ease-in-out;\n}\n\n.SgMzjOcdE-E-::after {\n bottom: calc(16px / 2);\n bottom: var(--space-small);\n background: linear-gradient(\n 180deg,\n rgba(255, 255, 255, 0) 0%,\n rgb(255, 255, 255) 100%\n );\n}\n\n.SgMzjOcdE-E-::before {\n top: calc(16px / 2);\n top: var(--space-small);\n background: linear-gradient(\n to bottom,\n rgba(255, 255, 255, 1),\n rgba(255, 255, 255, 0)\n );\n}\n\n.T6E3VwBGoQM-::before,\n._6HQzxMQkXnE-::before {\n opacity: 0;\n}\n\n._5YsJZyMDkbA-::after,\n._6HQzxMQkXnE-::after {\n opacity: 0;\n}\n\n.A6z4OI58xoE- {\n padding: calc(16px * 1) calc(16px * 1);\n padding: var(--space-base) var(--space-base);\n}\n\n.A6z4OI58xoE-.QqHBSf52fPk- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n\n position: fixed;\n bottom: 0;\n\n width: 100%;\n\n padding: calc(16px * 1) 0;\n\n padding: var(--space-base) 0;\n}\n";
69
+ var css_248z$5 = ".SgMzjOcdE-E- {\n position: relative;\n padding: calc(16px / 2) 0;\n padding: var(--space-small) 0;\n}\n\n.TwoTCjgcssc- {\n display: -ms-flexbox;\n display: flex;\n\n max-height: calc((16px / 2) * 33.33);\n\n max-height: calc(calc(16px / 2) * 33.33);\n\n max-height: calc(var(--space-small) * 33.33);\n margin: 0;\n padding: 0;\n overflow: auto;\n list-style: none;\n -ms-flex-direction: column;\n flex-direction: column;\n gap: calc(16px / 4);\n gap: var(--space-smaller);\n}\n\n._8T5M7MGwCRE-,\n._4y5NXkNeIQM- {\n padding: calc(16px / 2) calc(16px * 1);\n padding: var(--space-small) var(--space-base);\n}\n\n.SgMzjOcdE-E-::before,\n.SgMzjOcdE-E-::after {\n content: \"\";\n display: block;\n position: absolute;\n right: 0;\n left: 0;\n height: calc(16px * 1);\n height: var(--space-base);\n pointer-events: none;\n transition: opacity 0.3s ease-in-out;\n}\n\n.SgMzjOcdE-E-::after {\n bottom: calc(16px / 2);\n bottom: var(--space-small);\n background: linear-gradient(\n 180deg,\n rgba(255, 255, 255, 0) 0%,\n rgb(255, 255, 255) 100%\n );\n}\n\n.SgMzjOcdE-E-::before {\n top: calc(16px / 2);\n top: var(--space-small);\n background: linear-gradient(\n to bottom,\n rgba(255, 255, 255, 1),\n rgba(255, 255, 255, 0)\n );\n}\n\n.T6E3VwBGoQM-::before,\n._6HQzxMQkXnE-::before {\n opacity: 0;\n}\n\n._5YsJZyMDkbA-::after,\n._6HQzxMQkXnE-::after {\n opacity: 0;\n}\n\n.A6z4OI58xoE- {\n padding: calc(16px * 1) calc(16px * 1);\n padding: var(--space-base) var(--space-base);\n}\n\n.A6z4OI58xoE-.QqHBSf52fPk- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n position: sticky;\n bottom: 0;\n padding: calc(16px * 1) 0;\n padding: var(--space-base) 0;\n}\n\n.A6z4OI58xoE-.QqHBSf52fPk-:empty {\n display: none;\n}\n";
68
70
  var styles$5 = {"container":"SgMzjOcdE-E-","optionsList":"TwoTCjgcssc-","filterMessage":"_8T5M7MGwCRE-","emptyStateMessage":"_4y5NXkNeIQM-","scrollTop":"T6E3VwBGoQM-","scrollNone":"_6HQzxMQkXnE-","scrollBottom":"_5YsJZyMDkbA-","loadingContainer":"A6z4OI58xoE-","hasOptions":"QqHBSf52fPk-"};
69
71
  styleInject_es.styleInject(css_248z$5);
70
72
 
@@ -83,7 +85,9 @@ function ComboboxOption(props) {
83
85
  const isSelected = selected.some(selection => selection.id.toString() === props.id.toString());
84
86
  return (React__default["default"].createElement("li", { key: props.id, tabIndex: -1, "data-selected": isSelected, role: "option", "aria-selected": isSelected, onClick: () => selectionHandler &&
85
87
  selectionHandler({ id: props.id, label: props.label }), className: classnames__default["default"](styles$4.option) },
86
- props.label,
88
+ React__default["default"].createElement(Flex.Flex, { template: props.prefix ? ["shrink", "grow"] : ["grow"] },
89
+ props.prefix,
90
+ props.label),
87
91
  React__default["default"].createElement("div", null, isSelected && React__default["default"].createElement(Icon.Icon, { name: "checkmark", color: "blue" }))));
88
92
  }
89
93
 
@@ -106,13 +110,10 @@ function ComboboxContentList(props) {
106
110
  return (React__default["default"].createElement("div", { className: classnames__default["default"](styles$5.container, styles$5[listScrollState]) },
107
111
  optionsExist && (React__default["default"].createElement("ul", { className: styles$5.optionsList, role: "listbox", "aria-multiselectable": props.multiselect, ref: props.optionsListRef },
108
112
  props.options.map(option => {
109
- return (React__default["default"].createElement(ComboboxOption, { key: option.id, id: option.id, label: option.label }));
113
+ return (React__default["default"].createElement(ComboboxOption, { key: option.id, id: option.id, label: option.label, prefix: option.prefix }));
110
114
  }),
111
- props.loading && optionsExist && (React__default["default"].createElement("div", { className: classnames__default["default"]([
112
- styles$5.loadingContainer,
113
- styles$5.hasOptions,
114
- ]) },
115
- React__default["default"].createElement(Spinner.Spinner, { size: "small" }))),
115
+ React__default["default"].createElement("div", { className: classnames__default["default"]([styles$5.loadingContainer, styles$5.hasOptions]) },
116
+ React__default["default"].createElement(AnimatedPresence.AnimatedPresence, { transition: "fromBottom" }, Boolean(props.loading && optionsExist) && (React__default["default"].createElement(Spinner.Spinner, { size: "small" })))),
116
117
  props.onLoadMore && (React__default["default"].createElement(ComboboxLoadMore, { onLoadMore: props.onLoadMore })))),
117
118
  props.loading && !optionsExist && (React__default["default"].createElement(React__default["default"].Fragment, null, Array.from({ length: 5 }).map((_, index) => (React__default["default"].createElement("div", { className: styles$5.loadingContainer, key: index },
118
119
  React__default["default"].createElement(Glimmer.Glimmer, { shape: "rectangle", size: "small" })))))),
@@ -165,7 +166,7 @@ function useScrollState(optionsListRef, options) {
165
166
  return { listScrollState };
166
167
  }
167
168
 
168
- var css_248z$2 = ".Q-mwo-g5Fi8- {\n display: -ms-flexbox;\n display: flex;\n padding: calc(16px * 1) calc(16px / 2) 0 calc(16px * 1);\n padding: var(--space-base) var(--space-small) 0 var(--space-base);\n -ms-flex-pack: justify;\n justify-content: space-between;\n gap: calc(16px / 4);\n gap: var(--space-smaller);\n}\n";
169
+ var css_248z$2 = ".Q-mwo-g5Fi8- {\n display: -ms-flexbox;\n display: flex;\n padding: calc(16px * 1) calc(16px / 2) 0 calc(16px * 1);\n padding: var(--space-base) var(--space-small) 0 var(--space-base);\n -ms-flex-pack: justify;\n justify-content: space-between;\n -ms-flex-align: baseline;\n align-items: baseline;\n gap: calc(16px / 4);\n gap: var(--space-smaller);\n}\n";
169
170
  var styles$2 = {"header":"Q-mwo-g5Fi8-"};
170
171
  styleInject_es.styleInject(css_248z$2);
171
172
 
@@ -303,7 +304,7 @@ function ComboboxContent(props) {
303
304
  const { popperRef, popperStyles, attributes } = useComboboxAccessibility(props.handleSelection, props.options, optionsListRef, props.open, props.wrapperRef);
304
305
  const template = (React__default["default"].createElement("div", Object.assign({ ref: popperRef, id: "ATL-Combobox-Content", "data-testid": "ATL-Combobox-Content", tabIndex: 0, className: classnames__default["default"](styles$7.content, { [styles$7.hidden]: !props.open }), style: popperStyles.popper }, attributes.popper),
305
306
  React__default["default"].createElement(ComboboxContentSearch, { open: props.open, placeholder: props.subjectNoun, searchValue: props.searchValue, setSearchValue: props.setSearchValue, handleSearchChange: props.handleSearchChange }),
306
- props.multiselect && optionsExist && (React__default["default"].createElement(ComboboxContentHeader, { hasOptionsVisible: optionsExist, subjectNoun: props.subjectNoun, selectedCount: props.selected.length, onClearAll: () => {
307
+ props.multiselect && (optionsExist || props.selected.length > 0) && (React__default["default"].createElement(ComboboxContentHeader, { hasOptionsVisible: optionsExist, subjectNoun: props.subjectNoun, selectedCount: props.selected.length, onClearAll: () => {
307
308
  props.selectedStateSetter([]);
308
309
  }, onSelectAll: () => {
309
310
  props.selectedStateSetter(props.options);
@@ -312,7 +313,9 @@ function ComboboxContent(props) {
312
313
  props.actionElements && (React__default["default"].createElement("div", { className: styles$7.actions, role: "group" }, props.actionElements.map((child, index, childrenArray) => (React__default["default"].createElement("div", { key: index, className: classnames__default["default"]({
313
314
  [styles$7.actionPadding]: index === childrenArray.length - 1,
314
315
  }) }, child)))))));
315
- return ReactDOM__default["default"].createPortal(template, document.body);
316
+ return (globalThis === null || globalThis === void 0 ? void 0 : globalThis.document)
317
+ ? ReactDOM__default["default"].createPortal(template, document.body)
318
+ : template;
316
319
  }
317
320
 
318
321
  var css_248z$1 = ".Ow9wSNnGP-g- {\n width: 100%;\n box-sizing: border-box;\n padding: 0 calc(16px / 2);\n padding: 0 var(--space-small);\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n}\n\n.ncp0nKHQ7d8- {\n position: relative;\n width: 100%;\n min-height: calc((calc(16px * 3) - calc(16px / 2)));\n min-height: calc((var(--space-largest) - var(--space-small)));\n padding: calc(16px / 2) 0;\n padding: var(--space-small) 0;\n border: none;\n border-radius: calc(16px / 4);\n border-radius: var(--radius-large);\n text-align: left;\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n cursor: pointer;\n transition: all 200ms;\n transition: all var(--timing-base);\n}\n\n.jobber-retheme .ncp0nKHQ7d8- {\n border-radius: calc(16px / 8);\n border-radius: var(--radius-base);\n}\n\n.ncp0nKHQ7d8-:focus {\n outline: none;\n}\n\n.ncp0nKHQ7d8-:hover,\n.ncp0nKHQ7d8-:focus-visible {\n outline: none;\n background-color: rgb(244, 246, 250);\n background-color: var(--color-surface--hover);\n}\n\n.ncp0nKHQ7d8-:focus-visible {\n box-shadow: 0px 0px 0px calc(16px / 8) rgba(255, 255, 255, 1),\n 0px 0px 0px calc(16px / 4) rgb(147, 161, 169);\n box-shadow: var(--shadow-focus);\n}\n\n.ncp0nKHQ7d8- span {\n margin-left: calc(16px / 2);\n margin-left: var(--space-small);\n}\n";
@@ -338,7 +341,7 @@ function ComboboxTrigger({ label = "Select", selected, }) {
338
341
  const { handleClose, open, setOpen } = React__default["default"].useContext(ComboboxContext);
339
342
  const hasSelection = selected.length;
340
343
  const selectedLabel = selected.map(option => option.label).join(", ");
341
- return (React__default["default"].createElement(Chip.Chip, { variation: hasSelection ? "base" : "subtle", label: hasSelection ? selectedLabel : "", heading: label, onClick: () => {
344
+ return (React__default["default"].createElement(Chip.Chip, { variation: hasSelection ? "base" : "subtle", label: hasSelection ? selectedLabel : "", ariaLabel: label, heading: label, onClick: () => {
342
345
  if (open) {
343
346
  handleClose();
344
347
  }
@@ -353,15 +356,16 @@ var css_248z = ".W8qMZnORYxI- {\n position: fixed;\n top: 0;\n right: 0;\n b
353
356
  var styles = {"overlay":"W8qMZnORYxI-","wrapper":"_-0dkolvLF-Y-"};
354
357
  styleInject_es.styleInject(css_248z);
355
358
 
356
- function useMakeComboboxHandlers(setOpen, setSearchValue, selectedOptions, shouldScroll, selectedStateSetter, multiSelect, onClose) {
359
+ function useMakeComboboxHandlers(setOpen, setSearchValue, selectedOptions, shouldScroll, selectedStateSetter, multiSelect, onClose, onSearch) {
357
360
  const handleClose = React.useCallback(() => {
358
361
  setOpen(false);
359
362
  setSearchValue("");
363
+ onSearch && onSearch("");
360
364
  onClose && onClose();
361
365
  if (selectedOptions.length > 0) {
362
366
  shouldScroll.current = true;
363
367
  }
364
- }, [setOpen, setSearchValue, onClose, selectedOptions.length]);
368
+ }, [setOpen, setSearchValue, onClose, onSearch, selectedOptions.length]);
365
369
  const handleSelection = React.useCallback((selection) => {
366
370
  if (multiSelect) {
367
371
  handleMultiSelect(selectedStateSetter, selectedOptions, selection);
@@ -394,7 +398,7 @@ function useCombobox(selected, onSelect, options, onClose, multiSelect, onSearch
394
398
  const [open, setOpen] = React.useState(false);
395
399
  const [searchValue, setSearchValue] = React.useState("");
396
400
  const searchCallback = React.useCallback(debounce__default["default"]((value) => onSearch === null || onSearch === void 0 ? void 0 : onSearch(value), debounceTime), [onSearch, debounceTime]);
397
- const { handleClose, handleSelection } = useMakeComboboxHandlers(setOpen, setSearchValue, selected, shouldScroll, onSelect, multiSelect, onClose);
401
+ const { handleClose, handleSelection } = useMakeComboboxHandlers(setOpen, setSearchValue, selected, shouldScroll, onSelect, multiSelect, onClose, onSearch);
398
402
  const internalFilteredOptions = options.filter(option => option.label.toLowerCase().includes(searchValue.toLowerCase()));
399
403
  return {
400
404
  wrapperRef,
@@ -460,6 +464,7 @@ function Combobox(props) {
460
464
  const options = React.useMemo(() => (optionElements === null || optionElements === void 0 ? void 0 : optionElements.map(option => ({
461
465
  id: option.props.id,
462
466
  label: option.props.label,
467
+ prefix: option.props.prefix,
463
468
  }))) || [], [optionElements]);
464
469
  const { selectedOptions, selectedStateSetter, shouldScroll, wrapperRef, searchValue, setSearchValue, open, setOpen, handleClose, handleSelection, internalFilteredOptions, handleSearchChange, } = useCombobox(props.selected, props.onSelect, options, props.onClose, props.multiSelect, props.onSearch, props.onSearchDebounce);
465
470
  return (React__default["default"].createElement(ComboboxContextProvider, { selected: selectedOptions, selectionHandler: handleSelection, open: open, setOpen: setOpen, handleClose: handleClose, shouldScroll: shouldScroll, searchValue: searchValue },
@@ -2,29 +2,30 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var ConfirmationModal = require('../ConfirmationModal-f1a049fb.js');
5
+ var ConfirmationModal = require('../ConfirmationModal-387aa1b5.js');
6
6
  require('react');
7
7
  require('@jobber/hooks/useOnKeyDown');
8
- require('../Modal-a0627c92.js');
8
+ require('../Modal-5b866c72.js');
9
9
  require('react-dom');
10
10
  require('classnames');
11
11
  require('framer-motion');
12
12
  require('@jobber/hooks/useRefocusOnActivator');
13
13
  require('@jobber/hooks/useFocusTrap');
14
14
  require('../style-inject.es-9d2f5f4e.js');
15
- require('../Heading-1e8e4bd3.js');
16
- require('../Typography-c45bf216.js');
17
- require('../getAtlantisConfig-0f3e8af2.js');
18
- require('../Button-b73a5e01.js');
15
+ require('../Heading-bae3c69e.js');
16
+ require('../Typography-e2a23b7e.js');
17
+ require('../useAtlantisConfig-ed0bee66.js');
18
+ require('@jobber/hooks/useSafeLayoutEffect');
19
+ require('../Button-6b922fc1.js');
19
20
  require('react-router-dom');
20
21
  require('../Icon-405a216c.js');
21
22
  require('@jobber/design');
22
- require('../ButtonDismiss-350af163.js');
23
+ require('../ButtonDismiss-a3ba1de2.js');
23
24
  require('../Content-e3f7b6fc.js');
24
- require('../Markdown-f7c55304.js');
25
+ require('../Markdown-b1b65457.js');
25
26
  require('react-markdown');
26
- require('../Text-259af966.js');
27
- require('../Emphasis-bda56d3b.js');
27
+ require('../Text-fbeaaca6.js');
28
+ require('../Emphasis-a77d8ee9.js');
28
29
 
29
30
 
30
31
 
@@ -2,9 +2,9 @@
2
2
 
3
3
  var React = require('react');
4
4
  var useOnKeyDown = require('@jobber/hooks/useOnKeyDown');
5
- var Modal = require('./Modal-a0627c92.js');
5
+ var Modal = require('./Modal-5b866c72.js');
6
6
  var Content = require('./Content-e3f7b6fc.js');
7
- var Markdown = require('./Markdown-f7c55304.js');
7
+ var Markdown = require('./Markdown-b1b65457.js');
8
8
 
9
9
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
10
 
@@ -3,20 +3,20 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
- var Card = require('../Card-426a68a8.js');
6
+ var Card = require('../Card-74f078a4.js');
7
7
  var Content = require('../Content-e3f7b6fc.js');
8
- var Emphasis = require('../Emphasis-bda56d3b.js');
8
+ var Emphasis = require('../Emphasis-a77d8ee9.js');
9
9
  require('classnames');
10
10
  require('../style-inject.es-9d2f5f4e.js');
11
- require('../Heading-1e8e4bd3.js');
12
- require('../Typography-c45bf216.js');
13
- require('../getAtlantisConfig-0f3e8af2.js');
14
- require('../Button-b73a5e01.js');
11
+ require('../Heading-bae3c69e.js');
12
+ require('../Typography-e2a23b7e.js');
13
+ require('../useAtlantisConfig-ed0bee66.js');
14
+ require('@jobber/hooks/useSafeLayoutEffect');
15
+ require('../Button-6b922fc1.js');
15
16
  require('react-router-dom');
16
17
  require('../Icon-405a216c.js');
17
18
  require('@jobber/design');
18
- require('../Menu-81b12936.js');
19
- require('uuid');
19
+ require('../Menu-d6dd673e.js');
20
20
  require('framer-motion');
21
21
  require('@jobber/hooks/useOnKeyDown');
22
22
  require('@jobber/hooks/useRefocusOnActivator');
@@ -15,6 +15,7 @@ export declare const SEARCH_DEBOUNCE_DELAY: number;
15
15
  export declare const DATA_LIST_FILTERING_SPINNER_TEST_ID = "ATL-DataList-filteringSpinner";
16
16
  export declare const DATA_LIST_LOADING_MORE_SPINNER_TEST_ID = "ATL-DataList-loadingMoreSpinner";
17
17
  export declare const DATA_LOAD_MORE_TEST_ID = "ATL-DataList-LoadMore-trigger";
18
+ export declare const DATA_LIST_STICKY_HEADER_TEST_ID = "ATL-DataList-stickyHeader";
18
19
  export declare const TRANSITION_DURATION_IN_SECONDS: number;
19
20
  export declare const TRANSITION_DELAY_IN_SECONDS: number;
20
21
  export {};
@@ -189,7 +189,6 @@ export interface DataListContextProps<T extends DataListObject> extends DataList
189
189
  readonly itemActionComponent?: ReactElement<DataListItemActionsProps<T>>;
190
190
  readonly bulkActionsComponent?: ReactElement<DataListItemActionsProps<T>>;
191
191
  readonly layoutBreakpoints: Breakpoints[];
192
- readonly registerLayoutBreakpoints: (breakpoint: Breakpoints) => void;
193
192
  readonly layouts: {
194
193
  readonly [Breakpoint in Breakpoints]?: LayoutRenderer<T>;
195
194
  };
@@ -1,4 +1,4 @@
1
- import React, { PropsWithChildren } from "react";
1
+ import { PropsWithChildren } from "react";
2
2
  interface DataListActionsMenuProps {
3
3
  readonly visible: boolean;
4
4
  readonly position: {
@@ -7,5 +7,5 @@ interface DataListActionsMenuProps {
7
7
  };
8
8
  readonly onRequestClose: () => void;
9
9
  }
10
- export declare function DataListActionsMenu({ visible, position, onRequestClose, children, }: PropsWithChildren<DataListActionsMenuProps>): React.ReactPortal;
10
+ export declare function DataListActionsMenu({ visible, position, onRequestClose, children, }: PropsWithChildren<DataListActionsMenuProps>): JSX.Element;
11
11
  export {};
@@ -1,8 +1,8 @@
1
1
  /// <reference types="react" />
2
2
  export declare const DATALIST_TOTALCOUNT_TEST_ID = "ATL-DataList-TotalCount";
3
3
  interface DataListTotalCountProps {
4
- totalCount?: number | null;
5
- loading?: boolean;
4
+ readonly totalCount?: number | null;
5
+ readonly loading?: boolean;
6
6
  }
7
7
  export declare function DataListTotalCount({ totalCount, loading, }: DataListTotalCountProps): JSX.Element | null;
8
8
  export {};
@@ -5,44 +5,47 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var tslib_es6 = require('../tslib.es6-754e2961.js');
6
6
  var React = require('react');
7
7
  var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
8
- var Text = require('../Text-259af966.js');
9
- var Glimmer = require('../Glimmer-7c317864.js');
8
+ var Text = require('../Text-fbeaaca6.js');
9
+ var Glimmer = require('../Glimmer-84dee1ed.js');
10
10
  var noop = require('lodash/noop');
11
11
  var design = require('@jobber/design');
12
12
  var framerMotion = require('framer-motion');
13
13
  var classnames = require('classnames');
14
- var Tooltip = require('../Tooltip-27771182.js');
15
- var Button = require('../Button-b73a5e01.js');
14
+ var Tooltip = require('../Tooltip-b9de6e57.js');
15
+ var Button = require('../Button-6b922fc1.js');
16
16
  var useInView = require('@jobber/hooks/useInView');
17
17
  var isEmpty = require('lodash/isEmpty');
18
- var InlineLabel = require('../InlineLabel-a6557829.js');
18
+ var InlineLabel = require('../InlineLabel-4d463bd6.js');
19
19
  var useFocusTrap = require('@jobber/hooks/useFocusTrap');
20
20
  var useRefocusOnActivator = require('@jobber/hooks/useRefocusOnActivator');
21
21
  var useOnKeyDown = require('@jobber/hooks/useOnKeyDown');
22
22
  var Icon = require('../Icon-405a216c.js');
23
23
  var FormatDate = require('../FormatDate-70ea5b43.js');
24
- var Heading = require('../Heading-1e8e4bd3.js');
24
+ var Heading = require('../Heading-bae3c69e.js');
25
25
  var ReactDOM = require('react-dom');
26
- var Checkbox = require('../Checkbox-99f6297f.js');
26
+ var useIsMounted = require('@jobber/hooks/useIsMounted');
27
+ var Checkbox = require('../Checkbox-e481a4b1.js');
27
28
  var reactRouterDom = require('react-router-dom');
28
29
  var AnimatedSwitcher = require('../AnimatedSwitcher-3d45ec5d.js');
29
- var Combobox = require('../Combobox-d4b84edf.js');
30
- var Chip = require('../Chip-c91fd6c8.js');
30
+ var Combobox = require('../Combobox-6d864202.js');
31
+ var Chip = require('../Chip-76f18555.js');
31
32
  var debounce = require('lodash/debounce');
32
- var InputText = require('../InputText-6e356985.js');
33
+ var InputText = require('../InputText-de22af8c.js');
33
34
  var Spinner = require('../Spinner-9d8fc7ff.js');
34
- var Typography = require('../Typography-c45bf216.js');
35
+ var Typography = require('../Typography-e2a23b7e.js');
35
36
  require('../Content-e3f7b6fc.js');
37
+ require('@jobber/hooks/useSafeLayoutEffect');
36
38
  require('react-popper');
37
- require('../getAtlantisConfig-0f3e8af2.js');
38
- require('uuid');
39
+ require('../useAtlantisConfig-ed0bee66.js');
39
40
  require('react-hook-form');
41
+ require('../AnimatedPresence-20a02aaa.js');
42
+ require('../Flex-d490c4db.js');
40
43
  require('@jobber/hooks/useAssert');
41
44
  require('../Avatar-76a799fa.js');
42
45
  require('color');
43
- require('../FormField-b4e6c549.js');
46
+ require('../FormField-3ec1c85d.js');
44
47
  require('@jobber/hooks/useShowClear');
45
- require('../InputValidation-05e839fa.js');
48
+ require('../InputValidation-a92bb519.js');
46
49
 
47
50
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
48
51
 
@@ -52,7 +55,7 @@ var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
52
55
  var isEmpty__default = /*#__PURE__*/_interopDefaultLegacy(isEmpty);
53
56
  var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
54
57
 
55
- var css_248z$g = ".TkdrExYnvcY-,\n.TkdrExYnvcY- * {\n box-sizing: border-box;\n}\n\n.TkdrExYnvcY- {\n --data-list--minimum-item-height: calc(var(--base-unit) * 3.5);\n\n display: -ms-flexbox;\n\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n position: relative;\n z-index: 0;\n z-index: var(--elevation-default);\n -ms-flex: 1;\n flex: 1;\n}\n\n/*\n * Header\n */\n\n.IcAlZHoB4LI- {\n display: -ms-flexbox;\n display: flex;\n position: relative;\n z-index: 1;\n z-index: var(--elevation-base);\n margin-bottom: calc(16px / 2);\n margin-bottom: var(--space-small);\n -ms-flex-align: center;\n align-items: center;\n}\n\n.TFO76ysivmg- {\n display: grid;\n padding: calc((16px / 2) + (16px / 4)) 0;\n padding: calc(calc(16px / 2) + calc(16px / 4)) 0;\n padding: calc(var(--space-small) + var(--space-smaller)) 0;\n gap: calc(16px / 2);\n grid-gap: calc(16px / 2);\n grid-gap: var(--space-small);\n gap: var(--space-small);\n grid-template-columns: auto fit-content(calc(16px * 14));\n grid-template-columns: auto fit-content(calc(var(--base-unit) * 14));\n}\n\n.jGHZZYZm1ZY- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n min-height: calc(16px * 3);\n min-height: var(--space-largest);\n padding: calc(16px / 2);\n padding: var(--space-small);\n border-bottom: calc(16px / 8) solid rgb(217, 223, 225);\n border-bottom: var(--border-thick) solid var(--color-border);\n}\n\n.GiD7MjZJbcw- {\n --data-list--header-actions-gap: var(--space-small);\n display: -ms-flexbox;\n display: flex;\n gap: calc(16px / 2);\n gap: var(--data-list--header-actions-gap);\n}\n\n@media (max-width: 489px) {\n\n.GiD7MjZJbcw- {\n -ms-flex-pack: justify;\n justify-content: space-between;\n width: 100%;\n}\n }\n\n@media (--small-screens-and-below) {\n\n.GiD7MjZJbcw- {\n -ms-flex-pack: justify;\n justify-content: space-between;\n width: 100%;\n}\n }\n\n.jMSVGIAr5tk- > p {\n font-weight: 500;\n white-space: nowrap;\n}\n\n.jMSVGIAr5tk- {\n display: -ms-flexbox;\n display: flex;\n margin: calc((16px / 2) * -1) 0;\n margin: calc(calc(16px / 2) * -1) 0;\n margin: calc(var(--space-small) * -1) 0;\n -ms-flex-align: center;\n align-items: center;\n gap: var(--data-list--header-actions-gap);\n}\n\n/*\n * List Item\n */\n\n.ise8kHCfhCY- {\n position: relative;\n padding: calc(16px / 2);\n padding: var(--space-small);\n border-bottom: calc(16px / 16) solid rgb(217, 223, 225);\n border-bottom: var(--border-base) solid var(--color-border);\n transition: all 200ms;\n transition: all var(--timing-base);\n}\n\n.ise8kHCfhCY-,\n.Tq6e0BGwcSM- {\n display: grid;\n grid-template-columns: minmax(0px, auto);\n min-height: var(--data-list--minimum-item-height);\n -ms-flex-align: center;\n align-items: center;\n}\n\n.ise8kHCfhCY-.Pc0JGX6jCD4-,\n.ise8kHCfhCY-:hover,\n.ise8kHCfhCY-:focus-within {\n --data-list-item-active-color: var(--color-surface--hover);\n background-color: rgb(244, 246, 250);\n background-color: var(--data-list-item-active-color);\n}\n\n.Tq6e0BGwcSM- {\n margin: calc((16px / 2) * -1) 0;\n margin: calc(calc(16px / 2) * -1) 0;\n margin: calc(var(--space-small) * -1) 0;\n padding: calc(16px / 2) 0;\n padding: var(--space-small) 0;\n border: none;\n text-align: left;\n -webkit-text-decoration: none;\n text-decoration: none;\n background-color: transparent;\n cursor: pointer;\n}\n\n/**\n * Reset CSS properties on focus to ensure we only have the focus state on the\n * parent .listItem\n */\n\n.Tq6e0BGwcSM-:focus {\n outline: none;\n background-color: transparent;\n}\n\n/**\n * Enable a better hover and focus experience when :has() is supported.\n * This is a workaround for Firefox where the :has() selector is not supported.\n */\n\n@supports selector(*:has(*)) {\n .ise8kHCfhCY-:hover,\n .ise8kHCfhCY-:focus-within {\n background-color: transparent;\n }\n\n .ise8kHCfhCY-:has(.Tq6e0BGwcSM-:hover, .Tq6e0BGwcSM-:focus) {\n background-color: var(--data-list-item-active-color);\n }\n}\n\n/*\n * List Item Selection\n */\n\n.d-79rkMqufg- {\n display: grid;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n@media (min-width: 768px) {\n\n.d-79rkMqufg- {\n -ms-flex-align: center;\n align-items: center;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n.d-79rkMqufg- {\n -ms-flex-align: center;\n align-items: center;\n}\n }\n\n.d-79rkMqufg-,\n.jGHZZYZm1ZY- .d-79rkMqufg- {\n grid-template-columns: -webkit-max-content minmax(0px, auto);\n grid-template-columns: max-content minmax(0px, auto);\n -webkit-column-gap: calc(16px / 2);\n -webkit-column-gap: var(--space-small);\n -moz-column-gap: calc(16px / 2);\n -moz-column-gap: var(--space-small);\n column-gap: calc(16px / 2);\n column-gap: var(--space-small);\n}\n\n.jGHZZYZm1ZY- .d-79rkMqufg- {\n display: grid;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.qm-SSuWTXkI- {\n display: -ms-flexbox;\n display: flex;\n visibility: hidden;\n\n /* To compensate the Checkbox's label margin that we are using for screen-readers */\n margin-right: calc((16px * 1) * -1);\n margin-right: calc(calc(16px * 1) * -1);\n margin-right: calc(var(--space-base) * -1);\n}\n\n.qm-SSuWTXkI-.VA9RnQp6nbI- {\n visibility: visible;\n}\n\n.ise8kHCfhCY- .d-79rkMqufg- > :first-child {\n -ms-flex-order: 2;\n order: 2;\n}\n\n.ise8kHCfhCY- .d-79rkMqufg- > :last-child {\n -ms-flex-order: 1;\n order: 1;\n padding-top: calc(16px / 4);\n padding-top: var(--space-smaller);\n opacity: 1;\n transition: opacity 100ms ease-in-out;\n transition: opacity var(--transition-properties);\n --transition-properties: var(--timing-quick) ease-in-out;\n}\n\n@media (min-width: 768px) {\n\n.ise8kHCfhCY- .d-79rkMqufg- > :last-child {\n padding-top: 0;\n opacity: 0;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n.ise8kHCfhCY- .d-79rkMqufg- > :last-child {\n padding-top: 0;\n opacity: 0;\n}\n }\n\n.ise8kHCfhCY-:hover .d-79rkMqufg- > :last-child,\n.ise8kHCfhCY-:focus-within .d-79rkMqufg- > :last-child,\n.ise8kHCfhCY- .d-79rkMqufg-._4L7iXXzLr5k- > :last-child {\n opacity: 1;\n}\n\n/*\n * Filters\n */\n\n.Kkp-IYmwq-s- {\n display: -ms-flexbox;\n display: flex;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: rgba(255, 255, 255, 0.6);\n background-color: var(--color-overlay--dimmed);\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: center;\n justify-content: center;\n}\n\n.m-eCShL7TU4- {\n position: sticky;\n top: 50vh;\n}\n\n/* This hides the text from the UI but not from the screen readers */\n\n.esUiRgWabYw- {\n position: absolute;\n top: auto;\n left: -10000px;\n width: 1px;\n height: 1px;\n overflow: hidden;\n text-indent: -10000px;\n}\n";
58
+ var css_248z$g = ".TkdrExYnvcY-,\n.TkdrExYnvcY- * {\n box-sizing: border-box;\n}\n\n.TkdrExYnvcY- {\n --data-list--minimum-item-height: calc(var(--base-unit) * 3.5);\n\n display: -ms-flexbox;\n\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n position: relative;\n z-index: 0;\n z-index: var(--elevation-default);\n -ms-flex: 1;\n flex: 1;\n}\n\n/*\n * Header\n */\n\n.IcAlZHoB4LI- {\n display: -ms-flexbox;\n display: flex;\n position: relative;\n z-index: 1;\n z-index: var(--elevation-base);\n margin-bottom: calc(16px / 2);\n margin-bottom: var(--space-small);\n -ms-flex-align: center;\n align-items: center;\n}\n\n.TFO76ysivmg- {\n display: grid;\n padding: calc((16px / 2) + (16px / 4)) 0;\n padding: calc(calc(16px / 2) + calc(16px / 4)) 0;\n padding: calc(var(--space-small) + var(--space-smaller)) 0;\n gap: calc(16px / 2);\n grid-gap: calc(16px / 2);\n grid-gap: var(--space-small);\n gap: var(--space-small);\n grid-template-columns: auto fit-content(calc(16px * 14));\n grid-template-columns: auto fit-content(calc(var(--base-unit) * 14));\n}\n\n.TFO76ysivmg-:empty {\n display: none;\n}\n\n.jGHZZYZm1ZY- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n min-height: calc(16px * 3);\n min-height: var(--space-largest);\n padding: calc(16px / 2);\n padding: var(--space-small);\n border-bottom: calc(16px / 8) solid rgb(217, 223, 225);\n border-bottom: var(--border-thick) solid var(--color-border);\n}\n\n.GiD7MjZJbcw- {\n --data-list--header-actions-gap: var(--space-small);\n display: -ms-flexbox;\n display: flex;\n gap: calc(16px / 2);\n gap: var(--data-list--header-actions-gap);\n}\n\n@media (max-width: 489px) {\n\n.GiD7MjZJbcw- {\n -ms-flex-pack: justify;\n justify-content: space-between;\n width: 100%;\n}\n }\n\n@media (--small-screens-and-below) {\n\n.GiD7MjZJbcw- {\n -ms-flex-pack: justify;\n justify-content: space-between;\n width: 100%;\n}\n }\n\n.jMSVGIAr5tk- > p {\n font-weight: 500;\n white-space: nowrap;\n}\n\n.jMSVGIAr5tk- {\n display: -ms-flexbox;\n display: flex;\n margin: calc((16px / 2) * -1) 0;\n margin: calc(calc(16px / 2) * -1) 0;\n margin: calc(var(--space-small) * -1) 0;\n -ms-flex-align: center;\n align-items: center;\n gap: var(--data-list--header-actions-gap);\n}\n\n/*\n * List Item\n */\n\n.ise8kHCfhCY- {\n position: relative;\n padding: calc(16px / 2);\n padding: var(--space-small);\n border-bottom: calc(16px / 16) solid rgb(217, 223, 225);\n border-bottom: var(--border-base) solid var(--color-border);\n transition: all 200ms;\n transition: all var(--timing-base);\n}\n\n.ise8kHCfhCY-,\n.Tq6e0BGwcSM- {\n display: grid;\n grid-template-columns: minmax(0px, auto);\n min-height: var(--data-list--minimum-item-height);\n -ms-flex-align: center;\n align-items: center;\n}\n\n.ise8kHCfhCY-.Pc0JGX6jCD4-,\n.ise8kHCfhCY-:hover,\n.ise8kHCfhCY-:focus-within {\n --data-list-item-active-color: var(--color-surface--hover);\n background-color: rgb(244, 246, 250);\n background-color: var(--data-list-item-active-color);\n}\n\n.Tq6e0BGwcSM- {\n margin: calc((16px / 2) * -1) 0;\n margin: calc(calc(16px / 2) * -1) 0;\n margin: calc(var(--space-small) * -1) 0;\n padding: calc(16px / 2) 0;\n padding: var(--space-small) 0;\n border: none;\n text-align: left;\n -webkit-text-decoration: none;\n text-decoration: none;\n background-color: transparent;\n cursor: pointer;\n}\n\n/**\n * Reset CSS properties on focus to ensure we only have the focus state on the\n * parent .listItem\n */\n\n.Tq6e0BGwcSM-:focus {\n outline: none;\n background-color: transparent;\n}\n\n/**\n * Enable a better hover and focus experience when :has() is supported.\n * This is a workaround for Firefox where the :has() selector is not supported.\n */\n\n@supports selector(*:has(*)) {\n .ise8kHCfhCY-:hover,\n .ise8kHCfhCY-:focus-within {\n background-color: transparent;\n }\n\n .ise8kHCfhCY-:has(.Tq6e0BGwcSM-:hover, .Tq6e0BGwcSM-:focus) {\n background-color: var(--data-list-item-active-color);\n }\n}\n\n/*\n * List Item Selection\n */\n\n.d-79rkMqufg- {\n display: grid;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n@media (min-width: 768px) {\n\n.d-79rkMqufg- {\n -ms-flex-align: center;\n align-items: center;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n.d-79rkMqufg- {\n -ms-flex-align: center;\n align-items: center;\n}\n }\n\n.d-79rkMqufg-,\n.jGHZZYZm1ZY- .d-79rkMqufg- {\n grid-template-columns: -webkit-max-content minmax(0px, auto);\n grid-template-columns: max-content minmax(0px, auto);\n -webkit-column-gap: calc(16px / 2);\n -webkit-column-gap: var(--space-small);\n -moz-column-gap: calc(16px / 2);\n -moz-column-gap: var(--space-small);\n column-gap: calc(16px / 2);\n column-gap: var(--space-small);\n}\n\n.jGHZZYZm1ZY- .d-79rkMqufg- {\n display: grid;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.qm-SSuWTXkI- {\n display: -ms-flexbox;\n display: flex;\n visibility: hidden;\n\n /* To compensate the Checkbox's label margin that we are using for screen-readers */\n margin-right: calc((16px * 1) * -1);\n margin-right: calc(calc(16px * 1) * -1);\n margin-right: calc(var(--space-base) * -1);\n}\n\n.qm-SSuWTXkI-.VA9RnQp6nbI- {\n visibility: visible;\n}\n\n.ise8kHCfhCY- .d-79rkMqufg- > :first-child {\n -ms-flex-order: 2;\n order: 2;\n}\n\n.ise8kHCfhCY- .d-79rkMqufg- > :last-child {\n -ms-flex-order: 1;\n order: 1;\n padding-top: calc(16px / 4);\n padding-top: var(--space-smaller);\n opacity: 1;\n transition: opacity 100ms ease-in-out;\n transition: opacity var(--transition-properties);\n --transition-properties: var(--timing-quick) ease-in-out;\n}\n\n@media (min-width: 768px) {\n\n.ise8kHCfhCY- .d-79rkMqufg- > :last-child {\n padding-top: 0;\n opacity: 0;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n.ise8kHCfhCY- .d-79rkMqufg- > :last-child {\n padding-top: 0;\n opacity: 0;\n}\n }\n\n.ise8kHCfhCY-:hover .d-79rkMqufg- > :last-child,\n.ise8kHCfhCY-:focus-within .d-79rkMqufg- > :last-child,\n.ise8kHCfhCY- .d-79rkMqufg-._4L7iXXzLr5k- > :last-child {\n opacity: 1;\n}\n\n/*\n * Filters\n */\n\n.Kkp-IYmwq-s- {\n display: -ms-flexbox;\n display: flex;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: rgba(255, 255, 255, 0.6);\n background-color: var(--color-overlay--dimmed);\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: center;\n justify-content: center;\n}\n\n.m-eCShL7TU4- {\n position: sticky;\n top: 50vh;\n}\n\n/* This hides the text from the UI but not from the screen readers */\n\n.esUiRgWabYw- {\n position: absolute;\n top: auto;\n left: -10000px;\n width: 1px;\n height: 1px;\n overflow: hidden;\n text-indent: -10000px;\n}\n";
56
59
  var styles$g = {"wrapper":"TkdrExYnvcY-","titleContainer":"IcAlZHoB4LI-","headerFilters":"TFO76ysivmg-","headerTitles":"jGHZZYZm1ZY-","batchSelectContainer":"GiD7MjZJbcw-","headerBatchSelect":"jMSVGIAr5tk-","listItem":"ise8kHCfhCY-","listItemClickable":"Tq6e0BGwcSM-","active":"Pc0JGX6jCD4-","selectable":"d-79rkMqufg-","selectAllCheckbox":"qm-SSuWTXkI-","visible":"VA9RnQp6nbI-","selected":"_4L7iXXzLr5k-","filtering":"Kkp-IYmwq-s-","filteringSpinner":"m-eCShL7TU4-","srOnly":"esUiRgWabYw-"};
57
60
  styleInject_es.styleInject(css_248z$g);
58
61
 
@@ -84,7 +87,6 @@ const defaultValues$1 = {
84
87
  children: [],
85
88
  selected: [],
86
89
  layoutBreakpoints: [],
87
- registerLayoutBreakpoints: noop__default["default"],
88
90
  layouts: {
89
91
  xs: children => React__default["default"].createElement(React__default["default"].Fragment, null, children),
90
92
  sm: children => React__default["default"].createElement(React__default["default"].Fragment, null, children),
@@ -144,6 +146,7 @@ const SEARCH_DEBOUNCE_DELAY = design.tokens["timing-slowest"];
144
146
  const DATA_LIST_FILTERING_SPINNER_TEST_ID = "ATL-DataList-filteringSpinner";
145
147
  const DATA_LIST_LOADING_MORE_SPINNER_TEST_ID = "ATL-DataList-loadingMoreSpinner";
146
148
  const DATA_LOAD_MORE_TEST_ID = "ATL-DataList-LoadMore-trigger";
149
+ const DATA_LIST_STICKY_HEADER_TEST_ID = "ATL-DataList-stickyHeader";
147
150
  const TRANSITION_DURATION_IN_SECONDS = design.tokens["timing-base"] / 1000;
148
151
  const TRANSITION_DELAY_IN_SECONDS = design.tokens["timing-quick"] / 1000;
149
152
 
@@ -310,7 +313,7 @@ function DataListSortingOptions({ options, selectedOption, onSelectChange, onClo
310
313
  document.removeEventListener("mousedown", handleClickOutside);
311
314
  };
312
315
  }, [optionsListRef, dataListHeaderTileRef, onClose]);
313
- return (React__default["default"].createElement("ul", { className: styles$8.optionsList, ref: optionsListRef }, options.map(option => (React__default["default"].createElement("li", { className: styles$8.option, key: option.id, onClick: () => onSelectChange(option), onKeyDown: event => handleKeyDown(event, option), tabIndex: 0, "data-value": option.id },
316
+ return (React__default["default"].createElement("ul", { className: styles$8.optionsList, ref: optionsListRef }, options.map(option => (React__default["default"].createElement("li", { className: styles$8.option, key: `${option.id}${option.order}`, onClick: () => onSelectChange(option), onKeyDown: event => handleKeyDown(event, option), tabIndex: 0, "data-value": option.id },
314
317
  option.label,
315
318
  option.label === (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.label) && (React__default["default"].createElement(Icon.Icon, { name: "checkmark", color: "blue" })))))));
316
319
  function handleKeyDown(event, option) {
@@ -419,11 +422,11 @@ function generateListItemElement(item) {
419
422
  acc[key] = currentItem;
420
423
  }
421
424
  else if (currentItem instanceof Date) {
422
- acc[key] = (React__default["default"].createElement(Text.Text, { variation: "subdued" },
425
+ acc[key] = (React__default["default"].createElement(Text.Text, null,
423
426
  React__default["default"].createElement(FormatDate.FormatDate, { date: currentItem })));
424
427
  }
425
428
  else {
426
- acc[key] = React__default["default"].createElement(Text.Text, { variation: "subdued" }, currentItem);
429
+ acc[key] = React__default["default"].createElement(Text.Text, null, currentItem);
427
430
  }
428
431
  return acc;
429
432
  }, {});
@@ -468,12 +471,16 @@ const variants$1 = {
468
471
  };
469
472
  function DataListActionsMenu({ visible = false, position, onRequestClose, children, }) {
470
473
  const [ref, setRef] = React.useState();
474
+ const mounted = useIsMounted.useIsMounted();
471
475
  useRefocusOnActivator.useRefocusOnActivator(visible);
472
476
  const focusTrapRef = useFocusTrap.useFocusTrap(visible);
473
477
  useOnKeyDown.useOnKeyDown(onRequestClose, "Escape");
474
- return ReactDOM.createPortal(React__default["default"].createElement(framerMotion.AnimatePresence, null, visible && (React__default["default"].createElement("div", { ref: focusTrapRef, onClick: handleClick },
478
+ const actionsMenu = (React__default["default"].createElement(framerMotion.AnimatePresence, null, visible && (React__default["default"].createElement("div", { ref: focusTrapRef, onClick: handleClick },
475
479
  React__default["default"].createElement(framerMotion.motion.div, { role: "menu", ref: setRef, variants: variants$1, initial: "hidden", animate: "visible", exit: "hidden", transition: { duration: TRANSITION_DELAY_IN_SECONDS }, className: styles$7.menu, style: getPositionCssVars(), onClick: onRequestClose }, children),
476
- React__default["default"].createElement("button", { type: "button", className: styles$7.overlay, onClick: onRequestClose, "aria-label": "Close menu" })))), document.body);
480
+ React__default["default"].createElement("button", { type: "button", className: styles$7.overlay, onClick: onRequestClose, "aria-label": "Close menu" })))));
481
+ return mounted.current
482
+ ? ReactDOM.createPortal(actionsMenu, document.body)
483
+ : actionsMenu;
477
484
  function handleClick(event) {
478
485
  // Prevent menu from firing the parent's onClick event when it is nested
479
486
  // within a clickable list item
@@ -764,17 +771,12 @@ function DataListItems({ size = "xs", }) {
764
771
  }
765
772
 
766
773
  function DataListLayout({ children, size = "xs", }) {
767
- const { layoutBreakpoints, registerLayout, registerLayoutBreakpoints, loadingState, } = useDataListContext();
768
- const breakpoints = useResponsiveSizing();
769
- React.useEffect(() => {
770
- registerLayoutBreakpoints(size);
771
- }, [size]);
774
+ const { registerLayout, loadingState } = useDataListContext();
775
+ const { activeBreakpoint } = useActiveLayout();
772
776
  React.useEffect(() => {
773
777
  registerLayout(size, children);
774
778
  }, [size, children]);
775
- const sizeIndex = layoutBreakpoints.indexOf(size);
776
- const nextAvailableSize = layoutBreakpoints[sizeIndex + 1];
777
- const shouldRenderList = breakpoints[size] && !breakpoints[nextAvailableSize];
779
+ const shouldRenderList = size === activeBreakpoint;
778
780
  if (loadingState !== "initial" && shouldRenderList) {
779
781
  return React__default["default"].createElement(DataListItems, { size: size });
780
782
  }
@@ -1016,7 +1018,7 @@ function DataListStickyHeader({ children }) {
1016
1018
  ref.current && observer.unobserve(ref.current);
1017
1019
  };
1018
1020
  }, [handleObserver, ref.current]);
1019
- return (React__default["default"].createElement("div", { ref: ref, className: classnames__default["default"](styles$5.header, { [styles$5.stuck]: isStuck }) }, children));
1021
+ return (React__default["default"].createElement("div", { "data-testid": DATA_LIST_STICKY_HEADER_TEST_ID, ref: ref, className: classnames__default["default"](styles$5.header, { [styles$5.stuck]: isStuck }) }, children));
1020
1022
  }
1021
1023
 
1022
1024
  var css_248z$4 = ".tj0MOMhLEEY- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.SaPMOnvw-3c- {\n --transition-properties: var(--timing-base) ease-in-out;\n --button-offset: calc(var(--space-largest) - var(--space-smaller));\n\n position: absolute;\n top: 50%;\n right: calc((16px * 3) - (16px / 4));\n right: calc(calc(16px * 3) - calc(16px / 4));\n right: var(--button-offset);\n visibility: hidden;\n width: 0;\n padding: calc(16px / 4) 0;\n padding: var(--space-smaller) 0;\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n opacity: 0;\n -webkit-transform: translateY(-50%);\n transform: translateY(-50%);\n transition: opacity 200ms ease-in-out,\n width 200ms ease-in-out, visibility 200ms ease-in-out;\n transition: opacity var(--transition-properties),\n width var(--transition-properties), visibility var(--transition-properties);\n}\n\n._3S1-91v2SYI- {\n visibility: visible;\n width: calc(100% - var(--button-offset));\n opacity: 1;\n}\n\n@media (min-width: 768px) {\n\n.SaPMOnvw-3c-,\n._3S1-91v2SYI- {\n position: static;\n visibility: visible;\n width: auto;\n padding: 0;\n background-color: transparent;\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n transition: none;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n.SaPMOnvw-3c-,\n._3S1-91v2SYI- {\n position: static;\n visibility: visible;\n width: auto;\n padding: 0;\n background-color: transparent;\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n transition: none;\n}\n }\n\n._9GlBktsUALw- {\n display: block;\n}\n\n@media (min-width: 768px) {\n\n._9GlBktsUALw- {\n display: none;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n._9GlBktsUALw- {\n display: none;\n}\n }\n\n/*\n * No Filters Styling\n *\n * When there are no filters, the search input is always visible.\n * ------------------------------------------------------------------------- */\n\n._3Pjrt42x454- .SaPMOnvw-3c- {\n position: static;\n visibility: visible;\n width: auto;\n opacity: 1;\n transition: none;\n}\n\n@media (min-width: 768px) {\n\n._3Pjrt42x454- .SaPMOnvw-3c- {\n max-width: 30%;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n._3Pjrt42x454- .SaPMOnvw-3c- {\n max-width: 30%;\n}\n }\n\n._3Pjrt42x454- ._9GlBktsUALw- {\n display: none;\n}\n";
@@ -1222,14 +1224,16 @@ function InternalDataListStatusBar() {
1222
1224
 
1223
1225
  function DataList(_a) {
1224
1226
  var { selected = [], sorting } = _a, props = tslib_es6.__rest(_a, ["selected", "sorting"]);
1225
- const [layoutBreakpoints, setLayoutBreakpoints] = React.useState([]);
1226
1227
  const [layouts, setLayouts] = React.useState({});
1228
+ const layoutBreakpoints = React.useMemo(() => sortBreakpoints(Object.keys(layouts)), [layouts]);
1227
1229
  const searchComponent = getCompoundComponent(props.children, DataListSearch);
1228
1230
  const filterComponent = getCompoundComponent(props.children, DataListFilters);
1229
1231
  const layoutComponents = getCompoundComponents(props.children, DataListLayout);
1230
1232
  const emptyStateComponents = getCompoundComponents(props.children, DataListEmptyState);
1231
1233
  const itemActionComponent = getCompoundComponent(props.children, DataListItemActions);
1232
1234
  const bulkActionsComponent = getCompoundComponent(props.children, DataListBulkActions);
1235
+ const headerCount = Object.keys(props.headers).length;
1236
+ const shouldRenderStickyHeader = !!filterComponent || !!searchComponent || headerCount > 0;
1233
1237
  return (React__default["default"].createElement(DataListContext.Provider, { value: Object.assign(Object.assign({ searchComponent,
1234
1238
  filterComponent,
1235
1239
  layoutComponents,
@@ -1237,20 +1241,16 @@ function DataList(_a) {
1237
1241
  itemActionComponent,
1238
1242
  bulkActionsComponent,
1239
1243
  layoutBreakpoints,
1240
- registerLayoutBreakpoints,
1241
1244
  layouts,
1242
1245
  registerLayout }, props), { selected,
1243
1246
  // T !== DataListObject
1244
1247
  sorting: sorting }) },
1245
- React__default["default"].createElement(InternalDataList, null)));
1246
- function registerLayoutBreakpoints(size) {
1247
- setLayoutBreakpoints(prev => sortBreakpoints([...prev, size]));
1248
- }
1248
+ React__default["default"].createElement(InternalDataList, { shouldRenderStickyHeader: shouldRenderStickyHeader })));
1249
1249
  function registerLayout(size, children) {
1250
1250
  setLayouts(prev => (Object.assign(Object.assign({}, prev), { [size]: children })));
1251
1251
  }
1252
1252
  }
1253
- function InternalDataList() {
1253
+ function InternalDataList({ shouldRenderStickyHeader, }) {
1254
1254
  const { data, title, totalCount, loadingState = "none", layoutComponents, } = useDataListContext();
1255
1255
  const backToTopRef = React.useRef(null);
1256
1256
  const initialLoading = loadingState === "initial";
@@ -1261,12 +1261,12 @@ function InternalDataList() {
1261
1261
  title && React__default["default"].createElement(Heading.Heading, { level: 3 }, title),
1262
1262
  React__default["default"].createElement(DataListTotalCount, { totalCount: totalCount, loading: initialLoading })),
1263
1263
  React__default["default"].createElement("div", { ref: backToTopRef }),
1264
- React__default["default"].createElement(DataListStickyHeader, null,
1264
+ shouldRenderStickyHeader && (React__default["default"].createElement(DataListStickyHeader, null,
1265
1265
  React__default["default"].createElement("div", { className: styles$g.headerFilters },
1266
1266
  React__default["default"].createElement(InternalDataListFilters, null),
1267
1267
  React__default["default"].createElement(InternalDataListSearch, null)),
1268
1268
  React__default["default"].createElement(InternalDataListStatusBar, null),
1269
- React__default["default"].createElement(DataListHeader, null)),
1269
+ React__default["default"].createElement(DataListHeader, null))),
1270
1270
  initialLoading && React__default["default"].createElement(DataListLoadingState, null),
1271
1271
  showEmptyState && React__default["default"].createElement(InternalDataListEmptyState, null),
1272
1272
  layoutComponents,
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import { Table } from "@tanstack/react-table";
3
3
  interface BodyLoadingProps<T> {
4
- table: Table<T>;
4
+ readonly table: Table<T>;
5
5
  }
6
6
  export declare function BodyLoading<T extends object>({ table }: BodyLoadingProps<T>): JSX.Element;
7
7
  export {};
@@ -1,7 +1,7 @@
1
1
  import { Table } from "@tanstack/react-table";
2
2
  export type ViewType = "desktop" | "handheld";
3
3
  export interface FooterProps<T> {
4
- table: Table<T>;
5
- viewType?: ViewType;
4
+ readonly table: Table<T>;
5
+ readonly viewType?: ViewType;
6
6
  }
7
7
  export declare const Footer: <T extends object>({ table, viewType, }: FooterProps<T>) => JSX.Element | null;
@@ -5,7 +5,7 @@ export declare enum SortDirection {
5
5
  equilibrium = 2
6
6
  }
7
7
  interface SortIconProps {
8
- direction: SortDirection;
8
+ readonly direction: SortDirection;
9
9
  }
10
10
  export declare function SortIcon({ direction }: SortIconProps): JSX.Element;
11
11
  export {};