@zendeskgarden/react-pagination 8.53.1 → 8.54.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.
package/dist/index.cjs.js CHANGED
@@ -196,46 +196,10 @@ function _nonIterableRest() {
196
196
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
197
197
  }
198
198
 
199
- var _path$3;
200
-
201
- function _extends$3() { _extends$3 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3.apply(this, arguments); }
202
-
203
- var SvgChevronLeftStroke = function SvgChevronLeftStroke(props) {
204
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$3({
205
- xmlns: "http://www.w3.org/2000/svg",
206
- width: 16,
207
- height: 16,
208
- focusable: "false",
209
- viewBox: "0 0 16 16",
210
- "aria-hidden": "true"
211
- }, props), _path$3 || (_path$3 = /*#__PURE__*/React__namespace.createElement("path", {
212
- fill: "currentColor",
213
- d: "M10.39 12.688a.5.5 0 01-.718.69l-.062-.066-4-5a.5.5 0 01-.054-.542l.054-.082 4-5a.5.5 0 01.83.55l-.05.074L6.641 8l3.75 4.688z"
214
- })));
215
- };
216
-
217
- var _path$2;
218
-
219
- function _extends$2() { _extends$2 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); }
220
-
221
- var SvgChevronRightStroke = function SvgChevronRightStroke(props) {
222
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$2({
223
- xmlns: "http://www.w3.org/2000/svg",
224
- width: 16,
225
- height: 16,
226
- focusable: "false",
227
- viewBox: "0 0 16 16",
228
- "aria-hidden": "true"
229
- }, props), _path$2 || (_path$2 = /*#__PURE__*/React__namespace.createElement("path", {
230
- fill: "currentColor",
231
- d: "M5.61 3.312a.5.5 0 01.718-.69l.062.066 4 5a.5.5 0 01.054.542l-.054.082-4 5a.5.5 0 01-.83-.55l.05-.074L9.359 8l-3.75-4.688z"
232
- })));
233
- };
234
-
235
199
  var COMPONENT_ID$6 = 'pagination.pagination_view';
236
200
  var StyledPagination = styled__default["default"].ul.attrs({
237
201
  'data-garden-id': COMPONENT_ID$6,
238
- 'data-garden-version': '8.53.1'
202
+ 'data-garden-version': '8.54.0'
239
203
  }).withConfig({
240
204
  displayName: "StyledPagination",
241
205
  componentId: "sc-1b7nye9-0"
@@ -273,7 +237,7 @@ var sizeStyles$2 = function sizeStyles(props) {
273
237
  };
274
238
  var StyledPageBase = styled__default["default"].li.attrs({
275
239
  'data-garden-id': COMPONENT_ID$5,
276
- 'data-garden-version': '8.53.1'
240
+ 'data-garden-version': '8.54.0'
277
241
  }).withConfig({
278
242
  displayName: "StyledPageBase",
279
243
  componentId: "sc-lw1w9j-0"
@@ -301,7 +265,7 @@ var sizeStyles$1 = function sizeStyles(props) {
301
265
  };
302
266
  var StyledPage = styled__default["default"](StyledPageBase).attrs({
303
267
  'data-garden-id': COMPONENT_ID$4,
304
- 'data-garden-version': '8.53.1'
268
+ 'data-garden-version': '8.54.0'
305
269
  }).withConfig({
306
270
  displayName: "StyledPage",
307
271
  componentId: "sc-1k0een3-0"
@@ -323,7 +287,7 @@ StyledPage.defaultProps = {
323
287
  var COMPONENT_ID$3 = 'cursor_pagination';
324
288
  var StyledCursorPagination = styled__default["default"].nav.attrs({
325
289
  'data-garden-id': COMPONENT_ID$3,
326
- 'data-garden-version': '8.53.1'
290
+ 'data-garden-version': '8.54.0'
327
291
  }).withConfig({
328
292
  displayName: "StyledCursorPagination",
329
293
  componentId: "sc-qmfecg-0"
@@ -337,7 +301,7 @@ StyledCursorPagination.defaultProps = {
337
301
  var COMPONENT_ID$2 = 'cursor_pagination.cursor';
338
302
  var StyledCursor = styled__default["default"](StyledPageBase).attrs({
339
303
  'data-garden-id': COMPONENT_ID$2,
340
- 'data-garden-version': '8.53.1',
304
+ 'data-garden-version': '8.54.0',
341
305
  as: 'button'
342
306
  }).withConfig({
343
307
  displayName: "StyledCursor",
@@ -388,7 +352,7 @@ var sizeStyles = function sizeStyles(props) {
388
352
  };
389
353
  var StyledGap = styled__default["default"](StyledPage).attrs({
390
354
  'data-garden-id': COMPONENT_ID$1,
391
- 'data-garden-version': '8.53.1'
355
+ 'data-garden-version': '8.54.0'
392
356
  }).withConfig({
393
357
  displayName: "StyledGap",
394
358
  componentId: "sc-1hqjltf-0"
@@ -404,7 +368,7 @@ StyledGap.defaultProps = {
404
368
  var COMPONENT_ID = 'pagination.navigation';
405
369
  var StyledNavigation = styled__default["default"](StyledPage).attrs({
406
370
  'data-garden-id': COMPONENT_ID,
407
- 'data-garden-version': '8.53.1'
371
+ 'data-garden-version': '8.54.0'
408
372
  }).withConfig({
409
373
  displayName: "StyledNavigation",
410
374
  componentId: "sc-184uuwe-0"
@@ -415,6 +379,83 @@ StyledNavigation.defaultProps = {
415
379
  theme: reactTheming.DEFAULT_THEME
416
380
  };
417
381
 
382
+ var _path$3;
383
+
384
+ function _extends$3() { _extends$3 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3.apply(this, arguments); }
385
+
386
+ var SvgChevronLeftStroke = function SvgChevronLeftStroke(props) {
387
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$3({
388
+ xmlns: "http://www.w3.org/2000/svg",
389
+ width: 16,
390
+ height: 16,
391
+ focusable: "false",
392
+ viewBox: "0 0 16 16",
393
+ "aria-hidden": "true"
394
+ }, props), _path$3 || (_path$3 = /*#__PURE__*/React__namespace.createElement("path", {
395
+ fill: "currentColor",
396
+ d: "M10.39 12.688a.5.5 0 01-.718.69l-.062-.066-4-5a.5.5 0 01-.054-.542l.054-.082 4-5a.5.5 0 01.83.55l-.05.074L6.641 8l3.75 4.688z"
397
+ })));
398
+ };
399
+
400
+ var _path$2;
401
+
402
+ function _extends$2() { _extends$2 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); }
403
+
404
+ var SvgChevronRightStroke = function SvgChevronRightStroke(props) {
405
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$2({
406
+ xmlns: "http://www.w3.org/2000/svg",
407
+ width: 16,
408
+ height: 16,
409
+ focusable: "false",
410
+ viewBox: "0 0 16 16",
411
+ "aria-hidden": "true"
412
+ }, props), _path$2 || (_path$2 = /*#__PURE__*/React__namespace.createElement("path", {
413
+ fill: "currentColor",
414
+ d: "M5.61 3.312a.5.5 0 01.718-.69l.062.066 4 5a.5.5 0 01.054.542l-.054.082-4 5a.5.5 0 01-.83-.55l.05-.074L9.359 8l-3.75-4.688z"
415
+ })));
416
+ };
417
+
418
+ var PreviousComponent$1 = React.forwardRef(function (props, ref) {
419
+ var ariaLabel = reactTheming.useText(PreviousComponent$1, props, 'aria-label', 'Previous page');
420
+ var theme = React.useContext(styled.ThemeContext);
421
+ return React__default["default"].createElement(StyledNavigation, _extends$4({}, props, {
422
+ "aria-label": ariaLabel,
423
+ ref: ref
424
+ }), theme.rtl ? React__default["default"].createElement(SvgChevronRightStroke, null) : React__default["default"].createElement(SvgChevronLeftStroke, null));
425
+ });
426
+ PreviousComponent$1.displayName = 'Pagination.Previous';
427
+ var Previous$1 = PreviousComponent$1;
428
+
429
+ var NextComponent$1 = React.forwardRef(function (props, ref) {
430
+ var ariaLabel = reactTheming.useText(NextComponent$1, props, 'aria-label', 'Next page');
431
+ var theme = React.useContext(styled.ThemeContext);
432
+ return React__default["default"].createElement(StyledNavigation, _extends$4({}, props, {
433
+ "aria-label": ariaLabel,
434
+ ref: ref
435
+ }), theme.rtl ? React__default["default"].createElement(SvgChevronLeftStroke, null) : React__default["default"].createElement(SvgChevronRightStroke, null));
436
+ });
437
+ NextComponent$1.displayName = 'Pagination.Next';
438
+ var Next$1 = NextComponent$1;
439
+
440
+ var PageComponent = React.forwardRef(function (props, ref) {
441
+ var text = props['aria-current'] ? "Current page, page ".concat(props.children) : "Page ".concat(props.children);
442
+ var ariaLabel = reactTheming.useText(PageComponent, props, 'aria-label', text);
443
+ return React__default["default"].createElement(StyledPage, _extends$4({}, props, {
444
+ "aria-label": ariaLabel,
445
+ ref: ref
446
+ }));
447
+ });
448
+ PageComponent.displayName = 'Pagination.Page';
449
+ var Page = PageComponent;
450
+
451
+ var GapComponent = React.forwardRef(function (props, ref) {
452
+ return React__default["default"].createElement(StyledGap, _extends$4({}, props, {
453
+ ref: ref
454
+ }), "\u2026");
455
+ });
456
+ GapComponent.displayName = 'Pagination.Gap';
457
+ var Gap = GapComponent;
458
+
418
459
  var _excluded$4 = ["currentPage", "transformPageProps", "totalPages", "pagePadding", "pageGap", "onChange"];
419
460
  var PREVIOUS_KEY = 'previous';
420
461
  var NEXT_KEY = 'next';
@@ -470,58 +511,73 @@ var Pagination = React.forwardRef(function (_ref, ref) {
470
511
  getNextPageProps = _usePagination.getNextPageProps;
471
512
  var getTransformedProps = function getTransformedProps(pageType) {
472
513
  var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
514
+ var pageNumber = arguments.length > 2 ? arguments[2] : undefined;
473
515
  if (transformPageProps) {
474
- return transformPageProps(pageType, props);
516
+ return transformPageProps(pageType, props, pageNumber);
475
517
  }
476
518
  return props;
477
519
  };
478
- var renderPreviousPage = function renderPreviousPage(rtl) {
520
+ var renderPreviousPage = function renderPreviousPage() {
479
521
  var isFirstPageSelected = totalPages > 0 && currentPage === 1;
480
522
  var focusRef = React__default["default"].createRef();
481
- return React__default["default"].createElement(StyledNavigation, getTransformedProps('previous',
482
- isFirstPageSelected ? {
523
+ var props = isFirstPageSelected ?
524
+ {
483
525
  hidden: true
484
- } : getPreviousPageProps({
526
+ } : _objectSpread2(_objectSpread2({}, getPreviousPageProps({
527
+ 'aria-label': '',
485
528
  role: null,
486
- key: PREVIOUS_KEY,
487
- isFocused: focusedItem === PREVIOUS_KEY,
488
529
  item: PREVIOUS_KEY,
489
- ref: focusRef,
490
530
  focusRef: focusRef
491
- })), rtl ? React__default["default"].createElement(SvgChevronRightStroke, null) : React__default["default"].createElement(SvgChevronLeftStroke, null));
531
+ })), {}, {
532
+ 'aria-label': undefined
533
+ });
534
+ return React__default["default"].createElement(Previous$1, _extends$4({
535
+ isFocused: focusedItem === PREVIOUS_KEY
536
+ }, getTransformedProps('previous', props), {
537
+ ref: focusRef
538
+ }));
492
539
  };
493
- var renderNextPage = function renderNextPage(rtl) {
540
+ var renderNextPage = function renderNextPage() {
494
541
  var isLastPageSelected = currentPage === totalPages;
495
542
  var focusRef = React__default["default"].createRef();
496
- return React__default["default"].createElement(StyledNavigation, getTransformedProps('next',
497
- isLastPageSelected ? {
543
+ var props = isLastPageSelected ?
544
+ {
498
545
  hidden: true
499
- } : getNextPageProps({
546
+ } : _objectSpread2(_objectSpread2({}, getNextPageProps({
547
+ 'aria-label': '',
500
548
  role: null,
501
549
  item: NEXT_KEY,
502
- key: NEXT_KEY,
503
- isFocused: focusedItem === NEXT_KEY,
504
- ref: focusRef,
505
550
  focusRef: focusRef
506
- })), rtl ? React__default["default"].createElement(SvgChevronLeftStroke, null) : React__default["default"].createElement(SvgChevronRightStroke, null));
551
+ })), {}, {
552
+ 'aria-label': undefined
553
+ });
554
+ return React__default["default"].createElement(Next$1, _extends$4({
555
+ isFocused: focusedItem === NEXT_KEY
556
+ }, getTransformedProps('next', props), {
557
+ ref: focusRef
558
+ }));
507
559
  };
508
560
  var createGap = function createGap(pageIndex) {
509
- return React__default["default"].createElement(StyledGap, getTransformedProps('gap', {
561
+ return React__default["default"].createElement(Gap, _extends$4({
510
562
  key: "gap-".concat(pageIndex)
511
- }), "\u2026");
563
+ }, getTransformedProps('gap')));
512
564
  };
513
565
  var createPage = function createPage(pageIndex) {
514
566
  var focusRef = React__default["default"].createRef();
515
- return React__default["default"].createElement(StyledPage, getTransformedProps('page', getPageProps({
567
+ var props = _objectSpread2(_objectSpread2({}, getPageProps({
568
+ 'aria-label': '',
516
569
  role: null,
517
- key: pageIndex,
518
570
  item: pageIndex,
519
- page: pageIndex,
520
- title: pageIndex.toString(),
521
- current: currentPage === pageIndex,
522
- ref: focusRef,
523
571
  focusRef: focusRef
524
- })), pageIndex);
572
+ })), {}, {
573
+ 'aria-label': undefined,
574
+ title: pageIndex
575
+ });
576
+ return React__default["default"].createElement(Page, _extends$4({
577
+ key: pageIndex
578
+ }, getTransformedProps('page', props, pageIndex), {
579
+ ref: focusRef
580
+ }), pageIndex);
525
581
  };
526
582
  var renderPages = function renderPages() {
527
583
  var pages = [];
@@ -567,11 +623,11 @@ var Pagination = React.forwardRef(function (_ref, ref) {
567
623
  }
568
624
  return pages;
569
625
  };
570
- return React__default["default"].createElement(StyledPagination, _extends$4({}, getContainerProps(_objectSpread2({
626
+ return React__default["default"].createElement(StyledPagination, _extends$4({}, getContainerProps({
571
627
  role: null
572
- }, otherProps)), {
628
+ }), otherProps, {
573
629
  ref: ref
574
- }), renderPreviousPage(theme.rtl), totalPages > 0 && renderPages(), renderNextPage(theme.rtl));
630
+ }), renderPreviousPage(), totalPages > 0 && renderPages(), renderNextPage());
575
631
  });
576
632
  Pagination.propTypes = {
577
633
  currentPage: PropTypes__default["default"].number.isRequired,
package/dist/index.esm.js CHANGED
@@ -6,12 +6,12 @@
6
6
  */
7
7
 
8
8
  import * as React from 'react';
9
- import React__default, { cloneElement, Children, forwardRef, useState, useContext } from 'react';
9
+ import React__default, { cloneElement, Children, forwardRef, useContext, useState } from 'react';
10
10
  import PropTypes from 'prop-types';
11
11
  import styled, { css, ThemeContext } from 'styled-components';
12
12
  import { usePagination } from '@zendeskgarden/container-pagination';
13
13
  import { getControlledValue } from '@zendeskgarden/container-utilities';
14
- import { getColor, retrieveComponentStyles, DEFAULT_THEME, getLineHeight } from '@zendeskgarden/react-theming';
14
+ import { getColor, retrieveComponentStyles, DEFAULT_THEME, getLineHeight, useText } from '@zendeskgarden/react-theming';
15
15
  import { math } from 'polished';
16
16
 
17
17
  function ownKeys(object, enumerableOnly) {
@@ -168,46 +168,10 @@ function _nonIterableRest() {
168
168
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
169
169
  }
170
170
 
171
- var _path$3;
172
-
173
- function _extends$3() { _extends$3 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3.apply(this, arguments); }
174
-
175
- var SvgChevronLeftStroke = function SvgChevronLeftStroke(props) {
176
- return /*#__PURE__*/React.createElement("svg", _extends$3({
177
- xmlns: "http://www.w3.org/2000/svg",
178
- width: 16,
179
- height: 16,
180
- focusable: "false",
181
- viewBox: "0 0 16 16",
182
- "aria-hidden": "true"
183
- }, props), _path$3 || (_path$3 = /*#__PURE__*/React.createElement("path", {
184
- fill: "currentColor",
185
- d: "M10.39 12.688a.5.5 0 01-.718.69l-.062-.066-4-5a.5.5 0 01-.054-.542l.054-.082 4-5a.5.5 0 01.83.55l-.05.074L6.641 8l3.75 4.688z"
186
- })));
187
- };
188
-
189
- var _path$2;
190
-
191
- function _extends$2() { _extends$2 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); }
192
-
193
- var SvgChevronRightStroke = function SvgChevronRightStroke(props) {
194
- return /*#__PURE__*/React.createElement("svg", _extends$2({
195
- xmlns: "http://www.w3.org/2000/svg",
196
- width: 16,
197
- height: 16,
198
- focusable: "false",
199
- viewBox: "0 0 16 16",
200
- "aria-hidden": "true"
201
- }, props), _path$2 || (_path$2 = /*#__PURE__*/React.createElement("path", {
202
- fill: "currentColor",
203
- d: "M5.61 3.312a.5.5 0 01.718-.69l.062.066 4 5a.5.5 0 01.054.542l-.054.082-4 5a.5.5 0 01-.83-.55l.05-.074L9.359 8l-3.75-4.688z"
204
- })));
205
- };
206
-
207
171
  var COMPONENT_ID$6 = 'pagination.pagination_view';
208
172
  var StyledPagination = styled.ul.attrs({
209
173
  'data-garden-id': COMPONENT_ID$6,
210
- 'data-garden-version': '8.53.1'
174
+ 'data-garden-version': '8.54.0'
211
175
  }).withConfig({
212
176
  displayName: "StyledPagination",
213
177
  componentId: "sc-1b7nye9-0"
@@ -245,7 +209,7 @@ var sizeStyles$2 = function sizeStyles(props) {
245
209
  };
246
210
  var StyledPageBase = styled.li.attrs({
247
211
  'data-garden-id': COMPONENT_ID$5,
248
- 'data-garden-version': '8.53.1'
212
+ 'data-garden-version': '8.54.0'
249
213
  }).withConfig({
250
214
  displayName: "StyledPageBase",
251
215
  componentId: "sc-lw1w9j-0"
@@ -273,7 +237,7 @@ var sizeStyles$1 = function sizeStyles(props) {
273
237
  };
274
238
  var StyledPage = styled(StyledPageBase).attrs({
275
239
  'data-garden-id': COMPONENT_ID$4,
276
- 'data-garden-version': '8.53.1'
240
+ 'data-garden-version': '8.54.0'
277
241
  }).withConfig({
278
242
  displayName: "StyledPage",
279
243
  componentId: "sc-1k0een3-0"
@@ -295,7 +259,7 @@ StyledPage.defaultProps = {
295
259
  var COMPONENT_ID$3 = 'cursor_pagination';
296
260
  var StyledCursorPagination = styled.nav.attrs({
297
261
  'data-garden-id': COMPONENT_ID$3,
298
- 'data-garden-version': '8.53.1'
262
+ 'data-garden-version': '8.54.0'
299
263
  }).withConfig({
300
264
  displayName: "StyledCursorPagination",
301
265
  componentId: "sc-qmfecg-0"
@@ -309,7 +273,7 @@ StyledCursorPagination.defaultProps = {
309
273
  var COMPONENT_ID$2 = 'cursor_pagination.cursor';
310
274
  var StyledCursor = styled(StyledPageBase).attrs({
311
275
  'data-garden-id': COMPONENT_ID$2,
312
- 'data-garden-version': '8.53.1',
276
+ 'data-garden-version': '8.54.0',
313
277
  as: 'button'
314
278
  }).withConfig({
315
279
  displayName: "StyledCursor",
@@ -360,7 +324,7 @@ var sizeStyles = function sizeStyles(props) {
360
324
  };
361
325
  var StyledGap = styled(StyledPage).attrs({
362
326
  'data-garden-id': COMPONENT_ID$1,
363
- 'data-garden-version': '8.53.1'
327
+ 'data-garden-version': '8.54.0'
364
328
  }).withConfig({
365
329
  displayName: "StyledGap",
366
330
  componentId: "sc-1hqjltf-0"
@@ -376,7 +340,7 @@ StyledGap.defaultProps = {
376
340
  var COMPONENT_ID = 'pagination.navigation';
377
341
  var StyledNavigation = styled(StyledPage).attrs({
378
342
  'data-garden-id': COMPONENT_ID,
379
- 'data-garden-version': '8.53.1'
343
+ 'data-garden-version': '8.54.0'
380
344
  }).withConfig({
381
345
  displayName: "StyledNavigation",
382
346
  componentId: "sc-184uuwe-0"
@@ -387,6 +351,83 @@ StyledNavigation.defaultProps = {
387
351
  theme: DEFAULT_THEME
388
352
  };
389
353
 
354
+ var _path$3;
355
+
356
+ function _extends$3() { _extends$3 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3.apply(this, arguments); }
357
+
358
+ var SvgChevronLeftStroke = function SvgChevronLeftStroke(props) {
359
+ return /*#__PURE__*/React.createElement("svg", _extends$3({
360
+ xmlns: "http://www.w3.org/2000/svg",
361
+ width: 16,
362
+ height: 16,
363
+ focusable: "false",
364
+ viewBox: "0 0 16 16",
365
+ "aria-hidden": "true"
366
+ }, props), _path$3 || (_path$3 = /*#__PURE__*/React.createElement("path", {
367
+ fill: "currentColor",
368
+ d: "M10.39 12.688a.5.5 0 01-.718.69l-.062-.066-4-5a.5.5 0 01-.054-.542l.054-.082 4-5a.5.5 0 01.83.55l-.05.074L6.641 8l3.75 4.688z"
369
+ })));
370
+ };
371
+
372
+ var _path$2;
373
+
374
+ function _extends$2() { _extends$2 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); }
375
+
376
+ var SvgChevronRightStroke = function SvgChevronRightStroke(props) {
377
+ return /*#__PURE__*/React.createElement("svg", _extends$2({
378
+ xmlns: "http://www.w3.org/2000/svg",
379
+ width: 16,
380
+ height: 16,
381
+ focusable: "false",
382
+ viewBox: "0 0 16 16",
383
+ "aria-hidden": "true"
384
+ }, props), _path$2 || (_path$2 = /*#__PURE__*/React.createElement("path", {
385
+ fill: "currentColor",
386
+ d: "M5.61 3.312a.5.5 0 01.718-.69l.062.066 4 5a.5.5 0 01.054.542l-.054.082-4 5a.5.5 0 01-.83-.55l.05-.074L9.359 8l-3.75-4.688z"
387
+ })));
388
+ };
389
+
390
+ var PreviousComponent$1 = forwardRef(function (props, ref) {
391
+ var ariaLabel = useText(PreviousComponent$1, props, 'aria-label', 'Previous page');
392
+ var theme = useContext(ThemeContext);
393
+ return React__default.createElement(StyledNavigation, _extends$4({}, props, {
394
+ "aria-label": ariaLabel,
395
+ ref: ref
396
+ }), theme.rtl ? React__default.createElement(SvgChevronRightStroke, null) : React__default.createElement(SvgChevronLeftStroke, null));
397
+ });
398
+ PreviousComponent$1.displayName = 'Pagination.Previous';
399
+ var Previous$1 = PreviousComponent$1;
400
+
401
+ var NextComponent$1 = forwardRef(function (props, ref) {
402
+ var ariaLabel = useText(NextComponent$1, props, 'aria-label', 'Next page');
403
+ var theme = useContext(ThemeContext);
404
+ return React__default.createElement(StyledNavigation, _extends$4({}, props, {
405
+ "aria-label": ariaLabel,
406
+ ref: ref
407
+ }), theme.rtl ? React__default.createElement(SvgChevronLeftStroke, null) : React__default.createElement(SvgChevronRightStroke, null));
408
+ });
409
+ NextComponent$1.displayName = 'Pagination.Next';
410
+ var Next$1 = NextComponent$1;
411
+
412
+ var PageComponent = forwardRef(function (props, ref) {
413
+ var text = props['aria-current'] ? "Current page, page ".concat(props.children) : "Page ".concat(props.children);
414
+ var ariaLabel = useText(PageComponent, props, 'aria-label', text);
415
+ return React__default.createElement(StyledPage, _extends$4({}, props, {
416
+ "aria-label": ariaLabel,
417
+ ref: ref
418
+ }));
419
+ });
420
+ PageComponent.displayName = 'Pagination.Page';
421
+ var Page = PageComponent;
422
+
423
+ var GapComponent = forwardRef(function (props, ref) {
424
+ return React__default.createElement(StyledGap, _extends$4({}, props, {
425
+ ref: ref
426
+ }), "\u2026");
427
+ });
428
+ GapComponent.displayName = 'Pagination.Gap';
429
+ var Gap = GapComponent;
430
+
390
431
  var _excluded$4 = ["currentPage", "transformPageProps", "totalPages", "pagePadding", "pageGap", "onChange"];
391
432
  var PREVIOUS_KEY = 'previous';
392
433
  var NEXT_KEY = 'next';
@@ -442,58 +483,73 @@ var Pagination = forwardRef(function (_ref, ref) {
442
483
  getNextPageProps = _usePagination.getNextPageProps;
443
484
  var getTransformedProps = function getTransformedProps(pageType) {
444
485
  var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
486
+ var pageNumber = arguments.length > 2 ? arguments[2] : undefined;
445
487
  if (transformPageProps) {
446
- return transformPageProps(pageType, props);
488
+ return transformPageProps(pageType, props, pageNumber);
447
489
  }
448
490
  return props;
449
491
  };
450
- var renderPreviousPage = function renderPreviousPage(rtl) {
492
+ var renderPreviousPage = function renderPreviousPage() {
451
493
  var isFirstPageSelected = totalPages > 0 && currentPage === 1;
452
494
  var focusRef = React__default.createRef();
453
- return React__default.createElement(StyledNavigation, getTransformedProps('previous',
454
- isFirstPageSelected ? {
495
+ var props = isFirstPageSelected ?
496
+ {
455
497
  hidden: true
456
- } : getPreviousPageProps({
498
+ } : _objectSpread2(_objectSpread2({}, getPreviousPageProps({
499
+ 'aria-label': '',
457
500
  role: null,
458
- key: PREVIOUS_KEY,
459
- isFocused: focusedItem === PREVIOUS_KEY,
460
501
  item: PREVIOUS_KEY,
461
- ref: focusRef,
462
502
  focusRef: focusRef
463
- })), rtl ? React__default.createElement(SvgChevronRightStroke, null) : React__default.createElement(SvgChevronLeftStroke, null));
503
+ })), {}, {
504
+ 'aria-label': undefined
505
+ });
506
+ return React__default.createElement(Previous$1, _extends$4({
507
+ isFocused: focusedItem === PREVIOUS_KEY
508
+ }, getTransformedProps('previous', props), {
509
+ ref: focusRef
510
+ }));
464
511
  };
465
- var renderNextPage = function renderNextPage(rtl) {
512
+ var renderNextPage = function renderNextPage() {
466
513
  var isLastPageSelected = currentPage === totalPages;
467
514
  var focusRef = React__default.createRef();
468
- return React__default.createElement(StyledNavigation, getTransformedProps('next',
469
- isLastPageSelected ? {
515
+ var props = isLastPageSelected ?
516
+ {
470
517
  hidden: true
471
- } : getNextPageProps({
518
+ } : _objectSpread2(_objectSpread2({}, getNextPageProps({
519
+ 'aria-label': '',
472
520
  role: null,
473
521
  item: NEXT_KEY,
474
- key: NEXT_KEY,
475
- isFocused: focusedItem === NEXT_KEY,
476
- ref: focusRef,
477
522
  focusRef: focusRef
478
- })), rtl ? React__default.createElement(SvgChevronLeftStroke, null) : React__default.createElement(SvgChevronRightStroke, null));
523
+ })), {}, {
524
+ 'aria-label': undefined
525
+ });
526
+ return React__default.createElement(Next$1, _extends$4({
527
+ isFocused: focusedItem === NEXT_KEY
528
+ }, getTransformedProps('next', props), {
529
+ ref: focusRef
530
+ }));
479
531
  };
480
532
  var createGap = function createGap(pageIndex) {
481
- return React__default.createElement(StyledGap, getTransformedProps('gap', {
533
+ return React__default.createElement(Gap, _extends$4({
482
534
  key: "gap-".concat(pageIndex)
483
- }), "\u2026");
535
+ }, getTransformedProps('gap')));
484
536
  };
485
537
  var createPage = function createPage(pageIndex) {
486
538
  var focusRef = React__default.createRef();
487
- return React__default.createElement(StyledPage, getTransformedProps('page', getPageProps({
539
+ var props = _objectSpread2(_objectSpread2({}, getPageProps({
540
+ 'aria-label': '',
488
541
  role: null,
489
- key: pageIndex,
490
542
  item: pageIndex,
491
- page: pageIndex,
492
- title: pageIndex.toString(),
493
- current: currentPage === pageIndex,
494
- ref: focusRef,
495
543
  focusRef: focusRef
496
- })), pageIndex);
544
+ })), {}, {
545
+ 'aria-label': undefined,
546
+ title: pageIndex
547
+ });
548
+ return React__default.createElement(Page, _extends$4({
549
+ key: pageIndex
550
+ }, getTransformedProps('page', props, pageIndex), {
551
+ ref: focusRef
552
+ }), pageIndex);
497
553
  };
498
554
  var renderPages = function renderPages() {
499
555
  var pages = [];
@@ -539,11 +595,11 @@ var Pagination = forwardRef(function (_ref, ref) {
539
595
  }
540
596
  return pages;
541
597
  };
542
- return React__default.createElement(StyledPagination, _extends$4({}, getContainerProps(_objectSpread2({
598
+ return React__default.createElement(StyledPagination, _extends$4({}, getContainerProps({
543
599
  role: null
544
- }, otherProps)), {
600
+ }), otherProps, {
545
601
  ref: ref
546
- }), renderPreviousPage(theme.rtl), totalPages > 0 && renderPages(), renderNextPage(theme.rtl));
602
+ }), renderPreviousPage(), totalPages > 0 && renderPages(), renderNextPage());
547
603
  });
548
604
  Pagination.propTypes = {
549
605
  currentPage: PropTypes.number.isRequired,
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Copyright Zendesk, Inc.
3
+ *
4
+ * Use of this source code is governed under the Apache License, Version 2.0
5
+ * found at http://www.apache.org/licenses/LICENSE-2.0.
6
+ */
7
+ import React from 'react';
8
+ /**
9
+ * @extends LiHTMLAttributes<HTMLLIElement>
10
+ */
11
+ export declare const Gap: React.ForwardRefExoticComponent<React.LiHTMLAttributes<HTMLLIElement> & React.RefAttributes<HTMLLIElement>>;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Copyright Zendesk, Inc.
3
+ *
4
+ * Use of this source code is governed under the Apache License, Version 2.0
5
+ * found at http://www.apache.org/licenses/LICENSE-2.0.
6
+ */
7
+ import React from 'react';
8
+ /**
9
+ * @extends LiHTMLAttributes<HTMLLIElement>
10
+ */
11
+ export declare const Next: React.ForwardRefExoticComponent<React.LiHTMLAttributes<HTMLLIElement> & React.RefAttributes<HTMLLIElement>>;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Copyright Zendesk, Inc.
3
+ *
4
+ * Use of this source code is governed under the Apache License, Version 2.0
5
+ * found at http://www.apache.org/licenses/LICENSE-2.0.
6
+ */
7
+ import React from 'react';
8
+ /**
9
+ * @extends LiHTMLAttributes<HTMLLIElement>
10
+ */
11
+ export declare const Page: React.ForwardRefExoticComponent<React.LiHTMLAttributes<HTMLLIElement> & React.RefAttributes<HTMLLIElement>>;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Copyright Zendesk, Inc.
3
+ *
4
+ * Use of this source code is governed under the Apache License, Version 2.0
5
+ * found at http://www.apache.org/licenses/LICENSE-2.0.
6
+ */
7
+ import React from 'react';
8
+ /**
9
+ * @extends LiHTMLAttributes<HTMLLIElement>
10
+ */
11
+ export declare const Previous: React.ForwardRefExoticComponent<React.LiHTMLAttributes<HTMLLIElement> & React.RefAttributes<HTMLLIElement>>;
@@ -28,7 +28,7 @@ export interface IPaginationProps extends Omit<HTMLAttributes<HTMLUListElement>,
28
28
  /**
29
29
  * Handles page change events
30
30
  *
31
- * @param {any} currentPage The current page
31
+ * @param {number} currentPage The current page
32
32
  */
33
33
  onChange?: (currentPage: number) => void;
34
34
  /**
@@ -36,6 +36,7 @@ export interface IPaginationProps extends Omit<HTMLAttributes<HTMLUListElement>,
36
36
  *
37
37
  * @param {string} pageType The type of the page accepting the props
38
38
  * @param {any} props Default page props to transform
39
+ * @param {number} pageNumber The page number
39
40
  */
40
- transformPageProps?: (pageType: PageType, props: any) => any;
41
+ transformPageProps?: (pageType: PageType, props: any, pageNumber?: number) => any;
41
42
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zendeskgarden/react-pagination",
3
- "version": "8.53.1",
3
+ "version": "8.54.0",
4
4
  "description": "Components relating to pagination in the Garden Design System",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Zendesk Garden <garden@zendesk.com>",
@@ -21,8 +21,8 @@
21
21
  "sideEffects": false,
22
22
  "types": "dist/typings/index.d.ts",
23
23
  "dependencies": {
24
- "@zendeskgarden/container-pagination": "^0.3.8",
25
- "@zendeskgarden/container-utilities": "^0.7.0",
24
+ "@zendeskgarden/container-pagination": "^1.0.0",
25
+ "@zendeskgarden/container-utilities": "^1.0.0",
26
26
  "polished": "^4.0.0",
27
27
  "prop-types": "^15.5.7"
28
28
  },
@@ -33,8 +33,8 @@
33
33
  "styled-components": "^4.2.0 || ^5.0.0"
34
34
  },
35
35
  "devDependencies": {
36
- "@zendeskgarden/react-theming": "^8.53.1",
37
- "@zendeskgarden/svg-icons": "6.32.0"
36
+ "@zendeskgarden/react-theming": "^8.54.0",
37
+ "@zendeskgarden/svg-icons": "6.33.0"
38
38
  },
39
39
  "keywords": [
40
40
  "components",
@@ -46,5 +46,5 @@
46
46
  "access": "public"
47
47
  },
48
48
  "zendeskgarden:src": "src/index.ts",
49
- "gitHead": "79dee8e82b6f082e8d4a72ba95a5fb3982d63040"
49
+ "gitHead": "b3da3dce431c006759d20f8a2ae68716577f6839"
50
50
  }