@jobber/components 4.79.2 → 4.80.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.
@@ -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 {};
@@ -145,6 +145,7 @@ const SEARCH_DEBOUNCE_DELAY = design.tokens["timing-slowest"];
145
145
  const DATA_LIST_FILTERING_SPINNER_TEST_ID = "ATL-DataList-filteringSpinner";
146
146
  const DATA_LIST_LOADING_MORE_SPINNER_TEST_ID = "ATL-DataList-loadingMoreSpinner";
147
147
  const DATA_LOAD_MORE_TEST_ID = "ATL-DataList-LoadMore-trigger";
148
+ const DATA_LIST_STICKY_HEADER_TEST_ID = "ATL-DataList-stickyHeader";
148
149
  const TRANSITION_DURATION_IN_SECONDS = design.tokens["timing-base"] / 1000;
149
150
  const TRANSITION_DELAY_IN_SECONDS = design.tokens["timing-quick"] / 1000;
150
151
 
@@ -1017,7 +1018,7 @@ function DataListStickyHeader({ children }) {
1017
1018
  ref.current && observer.unobserve(ref.current);
1018
1019
  };
1019
1020
  }, [handleObserver, ref.current]);
1020
- 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));
1021
1022
  }
1022
1023
 
1023
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";
@@ -1231,6 +1232,7 @@ function DataList(_a) {
1231
1232
  const emptyStateComponents = getCompoundComponents(props.children, DataListEmptyState);
1232
1233
  const itemActionComponent = getCompoundComponent(props.children, DataListItemActions);
1233
1234
  const bulkActionsComponent = getCompoundComponent(props.children, DataListBulkActions);
1235
+ const shouldRenderStickyHeader = !!filterComponent || !!searchComponent;
1234
1236
  return (React__default["default"].createElement(DataListContext.Provider, { value: Object.assign(Object.assign({ searchComponent,
1235
1237
  filterComponent,
1236
1238
  layoutComponents,
@@ -1243,7 +1245,7 @@ function DataList(_a) {
1243
1245
  registerLayout }, props), { selected,
1244
1246
  // T !== DataListObject
1245
1247
  sorting: sorting }) },
1246
- React__default["default"].createElement(InternalDataList, null)));
1248
+ React__default["default"].createElement(InternalDataList, { shouldRenderStickyHeader: shouldRenderStickyHeader })));
1247
1249
  function registerLayoutBreakpoints(size) {
1248
1250
  setLayoutBreakpoints(prev => sortBreakpoints([...prev, size]));
1249
1251
  }
@@ -1251,7 +1253,7 @@ function DataList(_a) {
1251
1253
  setLayouts(prev => (Object.assign(Object.assign({}, prev), { [size]: children })));
1252
1254
  }
1253
1255
  }
1254
- function InternalDataList() {
1256
+ function InternalDataList({ shouldRenderStickyHeader, }) {
1255
1257
  const { data, title, totalCount, loadingState = "none", layoutComponents, } = useDataListContext();
1256
1258
  const backToTopRef = React.useRef(null);
1257
1259
  const initialLoading = loadingState === "initial";
@@ -1262,12 +1264,12 @@ function InternalDataList() {
1262
1264
  title && React__default["default"].createElement(Heading.Heading, { level: 3 }, title),
1263
1265
  React__default["default"].createElement(DataListTotalCount, { totalCount: totalCount, loading: initialLoading })),
1264
1266
  React__default["default"].createElement("div", { ref: backToTopRef }),
1265
- React__default["default"].createElement(DataListStickyHeader, null,
1267
+ shouldRenderStickyHeader && (React__default["default"].createElement(DataListStickyHeader, null,
1266
1268
  React__default["default"].createElement("div", { className: styles$g.headerFilters },
1267
1269
  React__default["default"].createElement(InternalDataListFilters, null),
1268
1270
  React__default["default"].createElement(InternalDataListSearch, null)),
1269
1271
  React__default["default"].createElement(InternalDataListStatusBar, null),
1270
- React__default["default"].createElement(DataListHeader, null)),
1272
+ React__default["default"].createElement(DataListHeader, null))),
1271
1273
  initialLoading && React__default["default"].createElement(DataListLoadingState, null),
1272
1274
  showEmptyState && React__default["default"].createElement(InternalDataListEmptyState, null),
1273
1275
  layoutComponents,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jobber/components",
3
- "version": "4.79.2",
3
+ "version": "4.80.0",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -84,5 +84,5 @@
84
84
  "> 1%",
85
85
  "IE 10"
86
86
  ],
87
- "gitHead": "b3b38d3fbaad852f2a229909cb39f265bbbe2178"
87
+ "gitHead": "27d2f51f40be024878597b432bed1ce7602b1721"
88
88
  }