@razorpay/blade 12.65.1 → 12.67.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/build/lib/native/components/Pagination/Pagination.native.js +12 -0
  2. package/build/lib/native/components/Pagination/Pagination.native.js.map +1 -0
  3. package/build/lib/native/components/Popover/Popover.native.js +1 -1
  4. package/build/lib/native/components/Popover/Popover.native.js.map +1 -1
  5. package/build/lib/native/components/Popover/PopoverContent.js +1 -1
  6. package/build/lib/native/components/Popover/PopoverContent.js.map +1 -1
  7. package/build/lib/native/components/Popover/PopoverContext.js.map +1 -1
  8. package/build/lib/native/components/Table/tokens.js.map +1 -1
  9. package/build/lib/native/components/index.js +1 -0
  10. package/build/lib/native/components/index.js.map +1 -1
  11. package/build/lib/native/utils/metaAttribute/metaConstants.js +1 -1
  12. package/build/lib/native/utils/metaAttribute/metaConstants.js.map +1 -1
  13. package/build/lib/web/development/components/Pagination/Pagination.web.js +466 -0
  14. package/build/lib/web/development/components/Pagination/Pagination.web.js.map +1 -0
  15. package/build/lib/web/development/components/Pagination/index.js +2 -0
  16. package/build/lib/web/development/components/Pagination/index.js.map +1 -0
  17. package/build/lib/web/development/components/Pagination/tokens.js +25 -0
  18. package/build/lib/web/development/components/Pagination/tokens.js.map +1 -0
  19. package/build/lib/web/development/components/Popover/Popover.web.js +13 -7
  20. package/build/lib/web/development/components/Popover/Popover.web.js.map +1 -1
  21. package/build/lib/web/development/components/Popover/PopoverContent.js +8 -3
  22. package/build/lib/web/development/components/Popover/PopoverContent.js.map +1 -1
  23. package/build/lib/web/development/components/Popover/PopoverContext.js.map +1 -1
  24. package/build/lib/web/development/components/SpotlightPopoverTour/TourPopover.web.js +2 -1
  25. package/build/lib/web/development/components/SpotlightPopoverTour/TourPopover.web.js.map +1 -1
  26. package/build/lib/web/development/components/Table/TablePagination.web.js +128 -395
  27. package/build/lib/web/development/components/Table/TablePagination.web.js.map +1 -1
  28. package/build/lib/web/development/components/Table/tokens.js +0 -16
  29. package/build/lib/web/development/components/Table/tokens.js.map +1 -1
  30. package/build/lib/web/development/components/Toast/ToastContainer.web.js +15 -5
  31. package/build/lib/web/development/components/Toast/ToastContainer.web.js.map +1 -1
  32. package/build/lib/web/development/components/Toast/constants.js +1 -1
  33. package/build/lib/web/development/components/Toast/constants.js.map +1 -1
  34. package/build/lib/web/development/components/index.js +2 -0
  35. package/build/lib/web/development/components/index.js.map +1 -1
  36. package/build/lib/web/development/utils/metaAttribute/metaConstants.js +1 -0
  37. package/build/lib/web/development/utils/metaAttribute/metaConstants.js.map +1 -1
  38. package/build/lib/web/production/components/Pagination/Pagination.web.js +466 -0
  39. package/build/lib/web/production/components/Pagination/Pagination.web.js.map +1 -0
  40. package/build/lib/web/production/components/Pagination/index.js +2 -0
  41. package/build/lib/web/production/components/Pagination/index.js.map +1 -0
  42. package/build/lib/web/production/components/Pagination/tokens.js +25 -0
  43. package/build/lib/web/production/components/Pagination/tokens.js.map +1 -0
  44. package/build/lib/web/production/components/Popover/Popover.web.js +13 -7
  45. package/build/lib/web/production/components/Popover/Popover.web.js.map +1 -1
  46. package/build/lib/web/production/components/Popover/PopoverContent.js +8 -3
  47. package/build/lib/web/production/components/Popover/PopoverContent.js.map +1 -1
  48. package/build/lib/web/production/components/Popover/PopoverContext.js.map +1 -1
  49. package/build/lib/web/production/components/SpotlightPopoverTour/TourPopover.web.js +2 -1
  50. package/build/lib/web/production/components/SpotlightPopoverTour/TourPopover.web.js.map +1 -1
  51. package/build/lib/web/production/components/Table/TablePagination.web.js +128 -395
  52. package/build/lib/web/production/components/Table/TablePagination.web.js.map +1 -1
  53. package/build/lib/web/production/components/Table/tokens.js +0 -16
  54. package/build/lib/web/production/components/Table/tokens.js.map +1 -1
  55. package/build/lib/web/production/components/Toast/ToastContainer.web.js +15 -5
  56. package/build/lib/web/production/components/Toast/ToastContainer.web.js.map +1 -1
  57. package/build/lib/web/production/components/Toast/constants.js +1 -1
  58. package/build/lib/web/production/components/Toast/constants.js.map +1 -1
  59. package/build/lib/web/production/components/index.js +2 -0
  60. package/build/lib/web/production/components/index.js.map +1 -1
  61. package/build/lib/web/production/utils/metaAttribute/metaConstants.js +1 -0
  62. package/build/lib/web/production/utils/metaAttribute/metaConstants.js.map +1 -1
  63. package/build/types/components/index.d.ts +99 -3
  64. package/build/types/components/index.native.d.ts +90 -1
  65. package/package.json +2 -2
@@ -0,0 +1,466 @@
1
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
+ import { useMemo, useState, useCallback } from 'react';
5
+ import styled from 'styled-components';
6
+ import { pagination } from './tokens.js';
7
+ import isUndefined from '../../utils/lodashButBetter/isUndefined.js';
8
+ import getIn from '../../utils/lodashButBetter/get.js';
9
+ import '../Box/BaseBox/index.js';
10
+ import '../Icons/index.js';
11
+ import '../Dropdown/index.js';
12
+ import '../Input/DropdownInputTriggers/index.js';
13
+ import '../ActionList/index.js';
14
+ import '../Typography/index.js';
15
+ import '../../utils/index.js';
16
+ import '../Button/index.js';
17
+ import '../../utils/makeAccessible/index.js';
18
+ import '../../utils/assignWithoutSideEffects/index.js';
19
+ import '../BladeProvider/index.js';
20
+ import '../../utils/getFocusRingStyles/index.js';
21
+ import '../../utils/makeAnalyticsAttribute/index.js';
22
+ import '../../utils/metaAttribute/index.js';
23
+ import { useControllableState } from '../../utils/useControllable.js';
24
+ import '../Box/styledProps/index.js';
25
+ import { jsxs, jsx } from 'react/jsx-runtime';
26
+ import { metaAttribute } from '../../utils/metaAttribute/metaAttribute.web.js';
27
+ import { MetaConstants } from '../../utils/metaAttribute/metaConstants.js';
28
+ import { makeSize } from '../../utils/makeSize/makeSize.js';
29
+ import { getFocusRingStyles } from '../../utils/getFocusRingStyles/getFocusRingStyles.web.js';
30
+ import useTheme from '../BladeProvider/useTheme.js';
31
+ import { BaseBox } from '../Box/BaseBox/BaseBox.web.js';
32
+ import { getStyledProps } from '../Box/styledProps/getStyledProps.js';
33
+ import { makeAnalyticsAttribute } from '../../utils/makeAnalyticsAttribute/makeAnalyticsAttribute.js';
34
+ import { Text } from '../Typography/Text/Text.js';
35
+ import { Dropdown } from '../Dropdown/Dropdown.js';
36
+ import { SelectInput } from '../Input/DropdownInputTriggers/SelectInput.js';
37
+ import { DropdownOverlay } from '../Dropdown/DropdownOverlay.web.js';
38
+ import { ActionList } from '../ActionList/ActionList.js';
39
+ import { ActionListItem } from '../ActionList/ActionListItem.js';
40
+ import Button from '../Button/Button/Button.js';
41
+ import ChevronLeftIcon from '../Icons/ChevronLeftIcon/ChevronLeftIcon.js';
42
+ import { makeAccessible } from '../../utils/makeAccessible/makeAccessible.web.js';
43
+ import ChevronsLeftIcon from '../Icons/ChevronsLeftIcon/ChevronsLeftIcon.js';
44
+ import MoreHorizontalIcon from '../Icons/MoreHorizontalIcon/MoreHorizontalIcon.js';
45
+ import ChevronsRightIcon from '../Icons/ChevronsRightIcon/ChevronsRightIcon.js';
46
+ import ChevronRightIcon from '../Icons/ChevronRightIcon/ChevronRightIcon.js';
47
+ import { assignWithoutSideEffects } from '../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
48
+
49
+ var _excluded = ["totalPages", "selectedPage", "defaultSelectedPage", "onSelectedPageChange", "defaultPageSize", "pageSize", "pageSizeLabel", "onPageSizeChange", "showPageSizePicker", "showPageNumberSelector", "showLabel", "label", "isDisabled"];
50
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
51
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
52
+ var pageSizeOptions = [10, 25, 50];
53
+ var PageSelectionButton = /*#__PURE__*/styled.button.attrs(function () {
54
+ return _objectSpread({}, metaAttribute({
55
+ name: MetaConstants.TablePageSelectionButton
56
+ }));
57
+ }).withConfig({
58
+ displayName: "Paginationweb__PageSelectionButton",
59
+ componentId: "m9qfda-0"
60
+ })(function (_ref) {
61
+ var theme = _ref.theme,
62
+ isSelected = _ref.isSelected,
63
+ isDisabled = _ref.isDisabled;
64
+ return {
65
+ backgroundColor: isSelected ? getIn(theme.colors, pagination.pageSelectionButton.backgroundColorSelected) : 'transparent',
66
+ border: 'none',
67
+ cursor: isDisabled ? 'not-allowed' : 'pointer',
68
+ height: makeSize(pagination.pageSelectionButton.height),
69
+ width: makeSize(pagination.pageSelectionButton.width),
70
+ display: 'flex',
71
+ alignItems: 'center',
72
+ justifyContent: 'center',
73
+ borderRadius: getIn(theme.border.radius, pagination.pageSelectionButton.borderRadius),
74
+ opacity: isDisabled ? 0.5 : 1,
75
+ '&:hover': {
76
+ backgroundColor: isDisabled ? 'transparent' : isSelected ? getIn(theme.colors, pagination.pageSelectionButton.backgroundColorSelectedHover) : getIn(theme.colors, pagination.pageSelectionButton.backgroundColorHover)
77
+ },
78
+ '&:focus-visible': _objectSpread(_objectSpread({
79
+ backgroundColor: isDisabled ? 'transparent' : isSelected ? getIn(theme.colors, pagination.pageSelectionButton.backgroundColorSelectedActive) : getIn(theme.colors, pagination.pageSelectionButton.backgroundColorActive)
80
+ }, getFocusRingStyles({
81
+ theme: theme
82
+ })), {}, {
83
+ outline: 'none',
84
+ '&:focus-visible': getFocusRingStyles({
85
+ theme: theme
86
+ })
87
+ }),
88
+ '&:active': {
89
+ backgroundColor: isDisabled ? 'transparent' : isSelected ? getIn(theme.colors, pagination.pageSelectionButton.backgroundColorSelectedActive) : getIn(theme.colors, pagination.pageSelectionButton.backgroundColorActive)
90
+ }
91
+ };
92
+ });
93
+ var getPaginationButtons = function getPaginationButtons(_ref2) {
94
+ var currentSelection = _ref2.currentSelection,
95
+ totalPages = _ref2.totalPages;
96
+ var halfRange = 2;
97
+ var minMiddleItems = 5;
98
+
99
+ // return if totalPages is less than minMiddleItems
100
+ if (totalPages <= minMiddleItems) {
101
+ return {
102
+ middleItems: Array.from({
103
+ length: totalPages - 2
104
+ }, function (_, index) {
105
+ return index + 2;
106
+ }),
107
+ showStartEllipsis: false,
108
+ showEndEllipsis: false,
109
+ firstItem: 1,
110
+ lastItem: totalPages
111
+ };
112
+ }
113
+ var start = Math.max(1, currentSelection - halfRange);
114
+ var end = Math.min(totalPages, start + 2 * halfRange);
115
+
116
+ // Ensure at least minMiddleItems items in middleItems
117
+ while (end - start + 1 < minMiddleItems && (start > 1 || end < totalPages)) {
118
+ if (start > 1) {
119
+ start--;
120
+ }
121
+ if (end < totalPages) {
122
+ end++;
123
+ }
124
+ }
125
+ var showStartEllipsis = false;
126
+ var showEndEllipsis = false;
127
+ var paginationButtons = [];
128
+ for (var i = start; i <= end; i++) {
129
+ paginationButtons.push(i);
130
+ }
131
+
132
+ // if paginationButtons contains 1, remove it
133
+ if (paginationButtons.includes(1)) {
134
+ paginationButtons.shift();
135
+ // add an extra item at the end if length of total pages is greater than minMiddleItems+1
136
+ if (totalPages > minMiddleItems + 1) paginationButtons.push(end + 1);
137
+ }
138
+
139
+ // if paginationButtons contains totalPages, remove it
140
+ if (paginationButtons.includes(totalPages)) {
141
+ paginationButtons.pop();
142
+ // add an extra item at the beginning if length of total pages is greater than minMiddleItems+1
143
+ if (totalPages > minMiddleItems + 1) paginationButtons.unshift(start - 1);
144
+ }
145
+ if (paginationButtons[0] > 2) {
146
+ showStartEllipsis = true;
147
+ }
148
+ if (paginationButtons[paginationButtons.length - 1] + 1 < totalPages) {
149
+ showEndEllipsis = true;
150
+ }
151
+ return {
152
+ middleItems: paginationButtons,
153
+ showStartEllipsis: showStartEllipsis,
154
+ showEndEllipsis: showEndEllipsis,
155
+ firstItem: 1,
156
+ lastItem: totalPages
157
+ };
158
+ };
159
+ var _Pagination = function _Pagination(_ref3) {
160
+ var controlledTotalPages = _ref3.totalPages,
161
+ controlledSelectedPage = _ref3.selectedPage,
162
+ _ref3$defaultSelected = _ref3.defaultSelectedPage,
163
+ defaultSelectedPage = _ref3$defaultSelected === void 0 ? 1 : _ref3$defaultSelected,
164
+ onSelectedPageChange = _ref3.onSelectedPageChange,
165
+ _ref3$defaultPageSize = _ref3.defaultPageSize,
166
+ defaultPageSize = _ref3$defaultPageSize === void 0 ? pagination.defaultPageSize : _ref3$defaultPageSize,
167
+ controlledPageSize = _ref3.pageSize,
168
+ _ref3$pageSizeLabel = _ref3.pageSizeLabel,
169
+ pageSizeLabel = _ref3$pageSizeLabel === void 0 ? 'items / page' : _ref3$pageSizeLabel,
170
+ onPageSizeChange = _ref3.onPageSizeChange,
171
+ _ref3$showPageSizePic = _ref3.showPageSizePicker,
172
+ showPageSizePicker = _ref3$showPageSizePic === void 0 ? false : _ref3$showPageSizePic,
173
+ _ref3$showPageNumberS = _ref3.showPageNumberSelector,
174
+ showPageNumberSelector = _ref3$showPageNumberS === void 0 ? false : _ref3$showPageNumberS,
175
+ _ref3$showLabel = _ref3.showLabel,
176
+ showLabel = _ref3$showLabel === void 0 ? false : _ref3$showLabel,
177
+ label = _ref3.label,
178
+ _ref3$isDisabled = _ref3.isDisabled,
179
+ isDisabled = _ref3$isDisabled === void 0 ? false : _ref3$isDisabled,
180
+ rest = _objectWithoutProperties(_ref3, _excluded);
181
+ // Convert 1-based external page to 0-based internal page
182
+ var controlledInternalPage = useMemo(function () {
183
+ if (isUndefined(controlledSelectedPage)) {
184
+ return undefined;
185
+ }
186
+ return controlledSelectedPage - 1;
187
+ }, [controlledSelectedPage]);
188
+ var defaultInternalPage = useMemo(function () {
189
+ return defaultSelectedPage - 1;
190
+ }, [defaultSelectedPage]);
191
+ var _useControllableState = useControllableState({
192
+ defaultValue: defaultInternalPage,
193
+ value: controlledInternalPage,
194
+ onChange: function onChange(page) {
195
+ // Convert 0-based internal page back to 1-based external page
196
+ onSelectedPageChange === null || onSelectedPageChange === void 0 || onSelectedPageChange({
197
+ page: page + 1
198
+ });
199
+ }
200
+ }),
201
+ _useControllableState2 = _slicedToArray(_useControllableState, 2),
202
+ internalPage = _useControllableState2[0],
203
+ setInternalPage = _useControllableState2[1];
204
+ var _useControllableState3 = useControllableState({
205
+ defaultValue: defaultPageSize,
206
+ value: controlledPageSize,
207
+ onChange: function onChange(pageSize) {
208
+ onPageSizeChange === null || onPageSizeChange === void 0 || onPageSizeChange({
209
+ pageSize: pageSize
210
+ });
211
+ setInternalPage(function () {
212
+ return defaultInternalPage;
213
+ });
214
+ }
215
+ }),
216
+ _useControllableState4 = _slicedToArray(_useControllableState3, 2),
217
+ internalPageSize = _useControllableState4[0],
218
+ setInternalPageSize = _useControllableState4[1];
219
+
220
+ // Calculate totalPages
221
+ var totalPages = useMemo(function () {
222
+ if (!isUndefined(controlledTotalPages)) {
223
+ return controlledTotalPages;
224
+ }
225
+ return 1;
226
+ }, [controlledTotalPages]);
227
+ var _useState = useState(undefined),
228
+ _useState2 = _slicedToArray(_useState, 2),
229
+ currentEllipseHover = _useState2[0],
230
+ setCurrentEllipseHover = _useState2[1];
231
+
232
+ // Generate default label
233
+ var defaultLabel = label ? label : "Showing ".concat(internalPage * internalPageSize + 1, "-").concat((internalPage + 1) * internalPageSize, " items");
234
+ var _useTheme = useTheme(),
235
+ platform = _useTheme.platform;
236
+ var onMobile = platform === 'onMobile';
237
+ var handlePageChange = useCallback(function (page) {
238
+ if (isDisabled) return;
239
+
240
+ // page is 0-based internally
241
+ var pageToJumpTo = page;
242
+ if (pageToJumpTo < 0) {
243
+ pageToJumpTo = 0;
244
+ } else if (pageToJumpTo > totalPages - 1) {
245
+ pageToJumpTo = totalPages - 1;
246
+ }
247
+ setInternalPage(function () {
248
+ return pageToJumpTo;
249
+ });
250
+ }, [isDisabled, setInternalPage, totalPages]);
251
+ var handlePageSizeChange = useCallback(function (pageSize) {
252
+ if (isDisabled) return;
253
+ setInternalPageSize(function () {
254
+ return pageSize;
255
+ });
256
+ }, [isDisabled, setInternalPageSize]);
257
+ var shouldDisableNextPage = function shouldDisableNextPage() {
258
+ return internalPage >= totalPages - 1 || isDisabled;
259
+ };
260
+ var shouldDisablePreviousPage = function shouldDisablePreviousPage() {
261
+ return internalPage <= 0 || isDisabled;
262
+ };
263
+ var paginationButtons = getPaginationButtons({
264
+ currentSelection: internalPage + 1,
265
+ totalPages: totalPages
266
+ });
267
+ return /*#__PURE__*/jsxs(BaseBox, _objectSpread(_objectSpread(_objectSpread(_objectSpread({
268
+ display: "flex",
269
+ flexDirection: "row",
270
+ backgroundColor: "transparent",
271
+ padding: pagination.padding
272
+ }, getStyledProps(rest)), makeAnalyticsAttribute(rest)), metaAttribute({
273
+ name: MetaConstants.Pagination,
274
+ testID: rest.testID
275
+ })), {}, {
276
+ children: [showLabel && !onMobile && /*#__PURE__*/jsx(BaseBox, {
277
+ display: "flex",
278
+ justifyContent: "center",
279
+ alignItems: "center",
280
+ children: /*#__PURE__*/jsx(Text, {
281
+ size: "medium",
282
+ weight: "semibold",
283
+ children: defaultLabel
284
+ })
285
+ }), /*#__PURE__*/jsxs(BaseBox, {
286
+ display: "flex",
287
+ flex: 1,
288
+ gap: "spacing.2",
289
+ justifyContent: "flex-end",
290
+ alignItems: "center",
291
+ children: [showPageSizePicker && !onMobile && /*#__PURE__*/jsxs(BaseBox, {
292
+ display: "flex",
293
+ flexDirection: "row",
294
+ alignItems: "center",
295
+ children: [/*#__PURE__*/jsxs(Dropdown, {
296
+ selectionType: "single",
297
+ children: [/*#__PURE__*/jsx(SelectInput, {
298
+ accessibilityLabel: "Select items per page",
299
+ name: "page-size",
300
+ label: "",
301
+ labelPosition: "inside-input",
302
+ placeholder: "",
303
+ onChange: function onChange(_ref4) {
304
+ var values = _ref4.values;
305
+ handlePageSizeChange(Number(values[0]));
306
+ },
307
+ value: internalPageSize.toString(),
308
+ isDisabled: isDisabled
309
+ }), /*#__PURE__*/jsx(DropdownOverlay, {
310
+ children: /*#__PURE__*/jsx(ActionList, {
311
+ children: pageSizeOptions.map(function (item, index) {
312
+ return /*#__PURE__*/jsx(ActionListItem, {
313
+ title: item.toString(),
314
+ value: item.toString()
315
+ }, index);
316
+ })
317
+ })
318
+ })]
319
+ }), /*#__PURE__*/jsx(BaseBox, {
320
+ "aria-hidden": true,
321
+ paddingLeft: "spacing.3",
322
+ paddingRight: "spacing.3",
323
+ children: /*#__PURE__*/jsxs(Text, {
324
+ children: [" ", pageSizeLabel, " "]
325
+ })
326
+ })]
327
+ }), /*#__PURE__*/jsxs(BaseBox, {
328
+ display: "flex",
329
+ flexDirection: "row",
330
+ gap: "spacing.2",
331
+ flex: onMobile ? 1 : undefined,
332
+ alignItems: "center",
333
+ children: [/*#__PURE__*/jsx(Button, {
334
+ icon: ChevronLeftIcon,
335
+ accessibilityLabel: "Previous Page",
336
+ variant: "tertiary",
337
+ onClick: function onClick() {
338
+ handlePageChange(internalPage - 1);
339
+ },
340
+ isDisabled: shouldDisablePreviousPage()
341
+ }), onMobile && /*#__PURE__*/jsx(BaseBox, {
342
+ flex: 1,
343
+ alignItems: "center",
344
+ justifyContent: "center",
345
+ children: /*#__PURE__*/jsx(Text, {
346
+ textAlign: "center",
347
+ children: "Showing ".concat(internalPage + 1, " of ").concat(totalPages, " pages")
348
+ })
349
+ }), totalPages > 1 && showPageNumberSelector && !onMobile && /*#__PURE__*/jsxs(BaseBox, {
350
+ gap: "spacing.1",
351
+ display: "flex",
352
+ flexDirection: "row",
353
+ children: [/*#__PURE__*/jsx(PageSelectionButton, _objectSpread(_objectSpread({
354
+ onClick: function onClick() {
355
+ return handlePageChange(paginationButtons.firstItem - 1);
356
+ },
357
+ isSelected: internalPage === paginationButtons.firstItem - 1,
358
+ isDisabled: isDisabled
359
+ }, makeAccessible({
360
+ label: "Page ".concat(paginationButtons.firstItem)
361
+ })), {}, {
362
+ children: /*#__PURE__*/jsx(Text, {
363
+ size: "medium",
364
+ color: internalPage === paginationButtons.firstItem - 1 ? pagination.pageSelectionButton.textColorSelected : pagination.pageSelectionButton.textColor,
365
+ children: paginationButtons.firstItem
366
+ })
367
+ })), paginationButtons.showStartEllipsis && /*#__PURE__*/jsx(PageSelectionButton, _objectSpread(_objectSpread({
368
+ onClick: function onClick() {
369
+ return handlePageChange(internalPage - 5);
370
+ },
371
+ onMouseOver: function onMouseOver() {
372
+ return setCurrentEllipseHover('start');
373
+ },
374
+ onMouseLeave: function onMouseLeave() {
375
+ return setCurrentEllipseHover(undefined);
376
+ },
377
+ onFocus: function onFocus() {
378
+ return setCurrentEllipseHover('start');
379
+ },
380
+ onBlur: function onBlur() {
381
+ return setCurrentEllipseHover(undefined);
382
+ },
383
+ isDisabled: isDisabled
384
+ }, makeAccessible({
385
+ label: 'Go back 5 pages'
386
+ })), {}, {
387
+ children: currentEllipseHover === 'start' ? /*#__PURE__*/jsx(ChevronsLeftIcon, {
388
+ size: "medium"
389
+ }) : /*#__PURE__*/jsx(MoreHorizontalIcon, {
390
+ size: "medium"
391
+ })
392
+ })), paginationButtons.middleItems.map(function (item) {
393
+ return /*#__PURE__*/jsx(PageSelectionButton, _objectSpread(_objectSpread({
394
+ onClick: function onClick() {
395
+ return handlePageChange(item - 1);
396
+ },
397
+ isSelected: internalPage === item - 1,
398
+ isDisabled: isDisabled
399
+ }, makeAccessible({
400
+ label: "Page ".concat(item)
401
+ })), {}, {
402
+ children: /*#__PURE__*/jsx(Text, {
403
+ size: "medium",
404
+ color: internalPage === item - 1 ? pagination.pageSelectionButton.textColorSelected : pagination.pageSelectionButton.textColor,
405
+ children: item
406
+ })
407
+ }), item - 1);
408
+ }), paginationButtons.showEndEllipsis && /*#__PURE__*/jsx(PageSelectionButton, _objectSpread(_objectSpread({
409
+ onClick: function onClick() {
410
+ return handlePageChange(internalPage + 5);
411
+ },
412
+ onMouseOver: function onMouseOver() {
413
+ return setCurrentEllipseHover('end');
414
+ },
415
+ onMouseLeave: function onMouseLeave() {
416
+ return setCurrentEllipseHover(undefined);
417
+ },
418
+ onFocus: function onFocus() {
419
+ return setCurrentEllipseHover('end');
420
+ },
421
+ onBlur: function onBlur() {
422
+ return setCurrentEllipseHover(undefined);
423
+ },
424
+ isDisabled: isDisabled
425
+ }, makeAccessible({
426
+ label: 'Go forward 5 pages'
427
+ })), {}, {
428
+ children: currentEllipseHover === 'end' ? /*#__PURE__*/jsx(ChevronsRightIcon, {
429
+ size: "medium"
430
+ }) : /*#__PURE__*/jsx(MoreHorizontalIcon, {
431
+ size: "medium"
432
+ })
433
+ })), /*#__PURE__*/jsx(PageSelectionButton, _objectSpread(_objectSpread({
434
+ onClick: function onClick() {
435
+ return handlePageChange(paginationButtons.lastItem - 1);
436
+ },
437
+ isSelected: internalPage === paginationButtons.lastItem - 1,
438
+ isDisabled: isDisabled
439
+ }, makeAccessible({
440
+ label: "Page ".concat(paginationButtons.lastItem)
441
+ })), {}, {
442
+ children: /*#__PURE__*/jsx(Text, {
443
+ size: "medium",
444
+ color: internalPage === paginationButtons.lastItem - 1 ? pagination.pageSelectionButton.textColorSelected : pagination.pageSelectionButton.textColor,
445
+ children: paginationButtons.lastItem
446
+ })
447
+ }))]
448
+ }), /*#__PURE__*/jsx(Button, {
449
+ variant: "tertiary",
450
+ icon: ChevronRightIcon,
451
+ accessibilityLabel: "Next Page",
452
+ onClick: function onClick() {
453
+ handlePageChange(internalPage + 1);
454
+ },
455
+ isDisabled: shouldDisableNextPage()
456
+ })]
457
+ })]
458
+ })]
459
+ }));
460
+ };
461
+ var Pagination = /*#__PURE__*/assignWithoutSideEffects(_Pagination, {
462
+ componentId: 'Pagination'
463
+ });
464
+
465
+ export { Pagination };
466
+ //# sourceMappingURL=Pagination.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pagination.web.js","sources":["../../../../../../src/components/Pagination/Pagination.web.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useState } from 'react';\nimport styled from 'styled-components';\nimport { pagination } from './tokens';\nimport type { PaginationProps } from './types';\nimport isUndefined from '~utils/lodashButBetter/isUndefined';\nimport getIn from '~utils/lodashButBetter/get';\nimport BaseBox from '~components/Box/BaseBox';\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n ChevronsLeftIcon,\n ChevronsRightIcon,\n MoreHorizontalIcon,\n} from '~components/Icons';\nimport { Dropdown, DropdownOverlay } from '~components/Dropdown';\nimport { SelectInput } from '~components/Input/DropdownInputTriggers';\nimport { ActionList, ActionListItem } from '~components/ActionList';\nimport { Text } from '~components/Typography';\nimport { makeSize } from '~utils';\nimport { Button } from '~components/Button';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { useTheme } from '~components/BladeProvider';\nimport { getFocusRingStyles } from '~utils/getFocusRingStyles';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { useControllableState } from '~utils/useControllable';\nimport { getStyledProps } from '~components/Box/styledProps';\n\nconst pageSizeOptions: NonNullable<PaginationProps['defaultPageSize']>[] = [10, 25, 50];\n\nconst PageSelectionButton = styled.button.attrs(() => {\n return {\n ...metaAttribute({ name: MetaConstants.TablePageSelectionButton }),\n };\n})<{ isSelected?: boolean; isDisabled?: boolean }>(({ theme, isSelected, isDisabled }) => ({\n backgroundColor: isSelected\n ? getIn(theme.colors, pagination.pageSelectionButton.backgroundColorSelected)\n : 'transparent',\n border: 'none',\n cursor: isDisabled ? 'not-allowed' : 'pointer',\n height: makeSize(pagination.pageSelectionButton.height),\n width: makeSize(pagination.pageSelectionButton.width),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: getIn(theme.border.radius, pagination.pageSelectionButton.borderRadius),\n opacity: isDisabled ? 0.5 : 1,\n '&:hover': {\n backgroundColor: isDisabled\n ? 'transparent'\n : isSelected\n ? getIn(theme.colors, pagination.pageSelectionButton.backgroundColorSelectedHover)\n : getIn(theme.colors, pagination.pageSelectionButton.backgroundColorHover),\n },\n '&:focus-visible': {\n backgroundColor: isDisabled\n ? 'transparent'\n : isSelected\n ? getIn(theme.colors, pagination.pageSelectionButton.backgroundColorSelectedActive)\n : getIn(theme.colors, pagination.pageSelectionButton.backgroundColorActive),\n ...getFocusRingStyles({ theme }),\n outline: 'none',\n '&:focus-visible': getFocusRingStyles({ theme }),\n },\n '&:active': {\n backgroundColor: isDisabled\n ? 'transparent'\n : isSelected\n ? getIn(theme.colors, pagination.pageSelectionButton.backgroundColorSelectedActive)\n : getIn(theme.colors, pagination.pageSelectionButton.backgroundColorActive),\n },\n}));\n\nconst getPaginationButtons = ({\n currentSelection,\n totalPages,\n}: {\n currentSelection: number;\n totalPages: number;\n}): {\n middleItems: number[];\n showStartEllipsis: boolean;\n showEndEllipsis: boolean;\n firstItem: number;\n lastItem: number;\n} => {\n const halfRange = 2;\n const minMiddleItems = 5;\n\n // return if totalPages is less than minMiddleItems\n if (totalPages <= minMiddleItems) {\n return {\n middleItems: Array.from({ length: totalPages - 2 }, (_, index) => index + 2),\n showStartEllipsis: false,\n showEndEllipsis: false,\n firstItem: 1,\n lastItem: totalPages,\n };\n }\n\n let start = Math.max(1, currentSelection - halfRange);\n let end = Math.min(totalPages, start + 2 * halfRange);\n\n // Ensure at least minMiddleItems items in middleItems\n while (end - start + 1 < minMiddleItems && (start > 1 || end < totalPages)) {\n if (start > 1) {\n start--;\n }\n if (end < totalPages) {\n end++;\n }\n }\n\n let showStartEllipsis = false;\n let showEndEllipsis = false;\n\n const paginationButtons: number[] = [];\n for (let i = start; i <= end; i++) {\n paginationButtons.push(i);\n }\n\n // if paginationButtons contains 1, remove it\n if (paginationButtons.includes(1)) {\n paginationButtons.shift();\n // add an extra item at the end if length of total pages is greater than minMiddleItems+1\n if (totalPages > minMiddleItems + 1) paginationButtons.push(end + 1);\n }\n\n // if paginationButtons contains totalPages, remove it\n if (paginationButtons.includes(totalPages)) {\n paginationButtons.pop();\n // add an extra item at the beginning if length of total pages is greater than minMiddleItems+1\n if (totalPages > minMiddleItems + 1) paginationButtons.unshift(start - 1);\n }\n\n if (paginationButtons[0] > 2) {\n showStartEllipsis = true;\n }\n\n if (paginationButtons[paginationButtons.length - 1] + 1 < totalPages) {\n showEndEllipsis = true;\n }\n\n return {\n middleItems: paginationButtons,\n showStartEllipsis,\n showEndEllipsis,\n firstItem: 1,\n lastItem: totalPages,\n };\n};\n\nconst _Pagination = ({\n totalPages: controlledTotalPages,\n selectedPage: controlledSelectedPage,\n defaultSelectedPage = 1,\n onSelectedPageChange,\n defaultPageSize = pagination.defaultPageSize,\n pageSize: controlledPageSize,\n pageSizeLabel = 'items / page',\n onPageSizeChange,\n showPageSizePicker = false,\n showPageNumberSelector = false,\n showLabel = false,\n label,\n isDisabled = false,\n ...rest\n}: PaginationProps): React.ReactElement => {\n // Convert 1-based external page to 0-based internal page\n const controlledInternalPage = useMemo(() => {\n if (isUndefined(controlledSelectedPage)) {\n return undefined;\n }\n return controlledSelectedPage - 1;\n }, [controlledSelectedPage]);\n\n const defaultInternalPage = useMemo(() => {\n return defaultSelectedPage - 1;\n }, [defaultSelectedPage]);\n\n const [internalPage, setInternalPage] = useControllableState<number>({\n defaultValue: defaultInternalPage,\n value: controlledInternalPage,\n onChange: (page) => {\n // Convert 0-based internal page back to 1-based external page\n onSelectedPageChange?.({ page: page + 1 });\n },\n });\n\n const [internalPageSize, setInternalPageSize] = useControllableState<10 | 25 | 50>({\n defaultValue: defaultPageSize,\n value: controlledPageSize,\n onChange: (pageSize) => {\n onPageSizeChange?.({ pageSize });\n setInternalPage(() => defaultInternalPage);\n },\n });\n\n // Calculate totalPages\n const totalPages = useMemo(() => {\n if (!isUndefined(controlledTotalPages)) {\n return controlledTotalPages;\n }\n\n return 1;\n }, [controlledTotalPages]);\n\n const [currentEllipseHover, setCurrentEllipseHover] = useState<'start' | 'end' | undefined>(\n undefined,\n );\n\n // Generate default label\n const defaultLabel = label\n ? label\n : `Showing ${internalPage * internalPageSize + 1}-${\n (internalPage + 1) * internalPageSize\n } items`;\n\n const { platform } = useTheme();\n const onMobile = platform === 'onMobile';\n\n const handlePageChange = useCallback(\n (page: number): void => {\n if (isDisabled) return;\n\n // page is 0-based internally\n let pageToJumpTo = page;\n if (pageToJumpTo < 0) {\n pageToJumpTo = 0;\n } else if (pageToJumpTo > totalPages - 1) {\n pageToJumpTo = totalPages - 1;\n }\n\n setInternalPage(() => pageToJumpTo);\n },\n [isDisabled, setInternalPage, totalPages],\n );\n\n const handlePageSizeChange = useCallback(\n (pageSize: 10 | 25 | 50): void => {\n if (isDisabled) return;\n setInternalPageSize(() => pageSize);\n },\n [isDisabled, setInternalPageSize],\n );\n\n const shouldDisableNextPage = (): boolean => {\n return internalPage >= totalPages - 1 || isDisabled;\n };\n\n const shouldDisablePreviousPage = (): boolean => {\n return internalPage <= 0 || isDisabled;\n };\n\n const paginationButtons = getPaginationButtons({\n currentSelection: internalPage + 1,\n totalPages,\n });\n\n return (\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n backgroundColor=\"transparent\"\n padding={pagination.padding}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n {...metaAttribute({ name: MetaConstants.Pagination, testID: rest.testID })}\n >\n {showLabel && !onMobile && (\n <BaseBox display=\"flex\" justifyContent=\"center\" alignItems=\"center\">\n <Text size=\"medium\" weight=\"semibold\">\n {defaultLabel}\n </Text>\n </BaseBox>\n )}\n <BaseBox\n display=\"flex\"\n flex={1}\n gap=\"spacing.2\"\n justifyContent=\"flex-end\"\n alignItems=\"center\"\n >\n {showPageSizePicker && !onMobile && (\n <BaseBox display=\"flex\" flexDirection=\"row\" alignItems=\"center\">\n <Dropdown selectionType=\"single\">\n <SelectInput\n accessibilityLabel=\"Select items per page\"\n name=\"page-size\"\n label=\"\"\n labelPosition=\"inside-input\"\n placeholder=\"\"\n onChange={({ values }) => {\n handlePageSizeChange(Number(values[0]) as 10 | 25 | 50);\n }}\n value={internalPageSize.toString()}\n isDisabled={isDisabled}\n />\n <DropdownOverlay>\n <ActionList>\n {pageSizeOptions.map((item, index) => (\n <ActionListItem key={index} title={item.toString()} value={item.toString()} />\n ))}\n </ActionList>\n </DropdownOverlay>\n </Dropdown>\n <BaseBox aria-hidden paddingLeft=\"spacing.3\" paddingRight=\"spacing.3\">\n <Text> {pageSizeLabel} </Text>\n </BaseBox>\n </BaseBox>\n )}\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n gap=\"spacing.2\"\n flex={onMobile ? 1 : undefined}\n alignItems=\"center\"\n >\n <Button\n icon={ChevronLeftIcon}\n accessibilityLabel=\"Previous Page\"\n variant=\"tertiary\"\n onClick={() => {\n handlePageChange(internalPage - 1);\n }}\n isDisabled={shouldDisablePreviousPage()}\n />\n {onMobile && (\n <BaseBox flex={1} alignItems=\"center\" justifyContent=\"center\">\n <Text textAlign=\"center\">{`Showing ${internalPage + 1} of ${totalPages} pages`}</Text>\n </BaseBox>\n )}\n {totalPages > 1 && showPageNumberSelector && !onMobile && (\n <BaseBox gap=\"spacing.1\" display=\"flex\" flexDirection=\"row\">\n <PageSelectionButton\n onClick={() => handlePageChange(paginationButtons.firstItem - 1)}\n isSelected={internalPage === paginationButtons.firstItem - 1}\n isDisabled={isDisabled}\n {...makeAccessible({ label: `Page ${paginationButtons.firstItem}` })}\n >\n <Text\n size=\"medium\"\n color={\n internalPage === paginationButtons.firstItem - 1\n ? pagination.pageSelectionButton.textColorSelected\n : pagination.pageSelectionButton.textColor\n }\n >\n {paginationButtons.firstItem}\n </Text>\n </PageSelectionButton>\n {paginationButtons.showStartEllipsis && (\n <PageSelectionButton\n onClick={() => handlePageChange(internalPage - 5)}\n onMouseOver={() => setCurrentEllipseHover('start')}\n onMouseLeave={() => setCurrentEllipseHover(undefined)}\n onFocus={() => setCurrentEllipseHover('start')}\n onBlur={() => setCurrentEllipseHover(undefined)}\n isDisabled={isDisabled}\n {...makeAccessible({ label: 'Go back 5 pages' })}\n >\n {currentEllipseHover === 'start' ? (\n <ChevronsLeftIcon size=\"medium\" />\n ) : (\n <MoreHorizontalIcon size=\"medium\" />\n )}\n </PageSelectionButton>\n )}\n {paginationButtons.middleItems.map((item) => (\n <PageSelectionButton\n key={item - 1}\n onClick={() => handlePageChange(item - 1)}\n isSelected={internalPage === item - 1}\n isDisabled={isDisabled}\n {...makeAccessible({ label: `Page ${item}` })}\n >\n <Text\n size=\"medium\"\n color={\n internalPage === item - 1\n ? pagination.pageSelectionButton.textColorSelected\n : pagination.pageSelectionButton.textColor\n }\n >\n {item}\n </Text>\n </PageSelectionButton>\n ))}\n {paginationButtons.showEndEllipsis && (\n <PageSelectionButton\n onClick={() => handlePageChange(internalPage + 5)}\n onMouseOver={() => setCurrentEllipseHover('end')}\n onMouseLeave={() => setCurrentEllipseHover(undefined)}\n onFocus={() => setCurrentEllipseHover('end')}\n onBlur={() => setCurrentEllipseHover(undefined)}\n isDisabled={isDisabled}\n {...makeAccessible({ label: 'Go forward 5 pages' })}\n >\n {currentEllipseHover === 'end' ? (\n <ChevronsRightIcon size=\"medium\" />\n ) : (\n <MoreHorizontalIcon size=\"medium\" />\n )}\n </PageSelectionButton>\n )}\n <PageSelectionButton\n onClick={() => handlePageChange(paginationButtons.lastItem - 1)}\n isSelected={internalPage === paginationButtons.lastItem - 1}\n isDisabled={isDisabled}\n {...makeAccessible({ label: `Page ${paginationButtons.lastItem}` })}\n >\n <Text\n size=\"medium\"\n color={\n internalPage === paginationButtons.lastItem - 1\n ? pagination.pageSelectionButton.textColorSelected\n : pagination.pageSelectionButton.textColor\n }\n >\n {paginationButtons.lastItem}\n </Text>\n </PageSelectionButton>\n </BaseBox>\n )}\n <Button\n variant=\"tertiary\"\n icon={ChevronRightIcon}\n accessibilityLabel=\"Next Page\"\n onClick={() => {\n handlePageChange(internalPage + 1);\n }}\n isDisabled={shouldDisableNextPage()}\n />\n </BaseBox>\n </BaseBox>\n </BaseBox>\n );\n};\n\nconst Pagination = assignWithoutSideEffects(_Pagination, {\n componentId: 'Pagination',\n});\n\nexport { Pagination };\n"],"names":["pageSizeOptions","PageSelectionButton","styled","button","attrs","_objectSpread","metaAttribute","name","MetaConstants","TablePageSelectionButton","withConfig","displayName","componentId","_ref","theme","isSelected","isDisabled","backgroundColor","getIn","colors","pagination","pageSelectionButton","backgroundColorSelected","border","cursor","height","makeSize","width","display","alignItems","justifyContent","borderRadius","radius","opacity","backgroundColorSelectedHover","backgroundColorHover","backgroundColorSelectedActive","backgroundColorActive","getFocusRingStyles","outline","getPaginationButtons","_ref2","currentSelection","totalPages","halfRange","minMiddleItems","middleItems","Array","from","length","_","index","showStartEllipsis","showEndEllipsis","firstItem","lastItem","start","Math","max","end","min","paginationButtons","i","push","includes","shift","pop","unshift","_Pagination","_ref3","controlledTotalPages","controlledSelectedPage","selectedPage","_ref3$defaultSelected","defaultSelectedPage","onSelectedPageChange","_ref3$defaultPageSize","defaultPageSize","controlledPageSize","pageSize","_ref3$pageSizeLabel","pageSizeLabel","onPageSizeChange","_ref3$showPageSizePic","showPageSizePicker","_ref3$showPageNumberS","showPageNumberSelector","_ref3$showLabel","showLabel","label","_ref3$isDisabled","rest","_objectWithoutProperties","_excluded","controlledInternalPage","useMemo","isUndefined","undefined","defaultInternalPage","_useControllableState","useControllableState","defaultValue","value","onChange","page","_useControllableState2","_slicedToArray","internalPage","setInternalPage","_useControllableState3","_useControllableState4","internalPageSize","setInternalPageSize","_useState","useState","_useState2","currentEllipseHover","setCurrentEllipseHover","defaultLabel","concat","_useTheme","useTheme","platform","onMobile","handlePageChange","useCallback","pageToJumpTo","handlePageSizeChange","shouldDisableNextPage","shouldDisablePreviousPage","_jsxs","BaseBox","flexDirection","padding","getStyledProps","makeAnalyticsAttribute","Pagination","testID","children","_jsx","Text","size","weight","flex","gap","Dropdown","selectionType","SelectInput","accessibilityLabel","labelPosition","placeholder","_ref4","values","Number","toString","DropdownOverlay","ActionList","map","item","ActionListItem","title","paddingLeft","paddingRight","Button","icon","ChevronLeftIcon","variant","onClick","textAlign","makeAccessible","color","textColorSelected","textColor","onMouseOver","onMouseLeave","onFocus","onBlur","ChevronsLeftIcon","MoreHorizontalIcon","ChevronsRightIcon","ChevronRightIcon","assignWithoutSideEffects"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { Pagination } from './Pagination.web.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,25 @@
1
+ import '../../tokens/global/index.js';
2
+ import { size } from '../../tokens/global/size.js';
3
+
4
+ var pagination = {
5
+ padding: ["".concat(size['6'], "px"), 'spacing.3'],
6
+ pageSelectionButton: {
7
+ backgroundColor: 'transparent',
8
+ backgroundColorHover: 'interactive.background.gray.default',
9
+ backgroundColorActive: 'interactive.background.gray.highlighted',
10
+ backgroundColorSelected: 'interactive.background.primary.faded',
11
+ backgroundColorSelectedHover: 'interactive.background.primary.fadedHighlighted',
12
+ backgroundColorSelectedActive: 'interactive.background.primary.fadedHighlighted',
13
+ padding: 'spacing.2',
14
+ borderRadius: 'small',
15
+ focusRingColor: 'surface.border.primary.muted',
16
+ textColor: 'surface.text.gray.subtle',
17
+ textColorSelected: 'surface.text.primary.normal',
18
+ height: size['32'],
19
+ width: size['32']
20
+ },
21
+ defaultPageSize: 10
22
+ };
23
+
24
+ export { pagination };
25
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sources":["../../../../../../src/components/Pagination/tokens.ts"],"sourcesContent":["import { size } from '~tokens/global';\n\nexport const pagination = {\n padding: [`${size['6']}px`, 'spacing.3'],\n pageSelectionButton: {\n backgroundColor: 'transparent',\n backgroundColorHover: 'interactive.background.gray.default',\n backgroundColorActive: 'interactive.background.gray.highlighted',\n backgroundColorSelected: 'interactive.background.primary.faded',\n backgroundColorSelectedHover: 'interactive.background.primary.fadedHighlighted',\n backgroundColorSelectedActive: 'interactive.background.primary.fadedHighlighted',\n padding: 'spacing.2',\n borderRadius: 'small',\n focusRingColor: 'surface.border.primary.muted',\n textColor: 'surface.text.gray.subtle',\n textColorSelected: 'surface.text.primary.normal',\n height: size['32'],\n width: size['32'],\n },\n defaultPageSize: 10,\n} as const;\n"],"names":["pagination","padding","concat","size","pageSelectionButton","backgroundColor","backgroundColorHover","backgroundColorActive","backgroundColorSelected","backgroundColorSelectedHover","backgroundColorSelectedActive","borderRadius","focusRingColor","textColor","textColorSelected","height","width","defaultPageSize"],"mappings":";;;AAEO,IAAMA,UAAU,GAAG;EACxBC,OAAO,EAAE,CAAAC,EAAAA,CAAAA,MAAA,CAAIC,IAAI,CAAC,GAAG,CAAC,EAAM,IAAA,CAAA,EAAA,WAAW,CAAC;AACxCC,EAAAA,mBAAmB,EAAE;AACnBC,IAAAA,eAAe,EAAE,aAAa;AAC9BC,IAAAA,oBAAoB,EAAE,qCAAqC;AAC3DC,IAAAA,qBAAqB,EAAE,yCAAyC;AAChEC,IAAAA,uBAAuB,EAAE,sCAAsC;AAC/DC,IAAAA,4BAA4B,EAAE,iDAAiD;AAC/EC,IAAAA,6BAA6B,EAAE,iDAAiD;AAChFT,IAAAA,OAAO,EAAE,WAAW;AACpBU,IAAAA,YAAY,EAAE,OAAO;AACrBC,IAAAA,cAAc,EAAE,8BAA8B;AAC9CC,IAAAA,SAAS,EAAE,0BAA0B;AACrCC,IAAAA,iBAAiB,EAAE,6BAA6B;AAChDC,IAAAA,MAAM,EAAEZ,IAAI,CAAC,IAAI,CAAC;IAClBa,KAAK,EAAEb,IAAI,CAAC,IAAI,CAAA;GACjB;AACDc,EAAAA,eAAe,EAAE,EAAA;AACnB;;;;"}
@@ -1,7 +1,7 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
3
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
4
- import { useFloating, shift, flip, offset, arrow, autoUpdate, useTransitionStyles, useClick, useDismiss, useRole, useInteractions, FloatingPortal, FloatingFocusManager } from '@floating-ui/react';
4
+ import { useFloating, shift, flip, offset, arrow, autoUpdate, useTransitionStyles, useClick, useHover, useDismiss, useRole, useInteractions, FloatingPortal, FloatingFocusManager } from '@floating-ui/react';
5
5
  import React__default from 'react';
6
6
  import { PopoverContent } from './PopoverContent.js';
7
7
  import { ARROW_HEIGHT, ARROW_WIDTH } from './constants.js';
@@ -29,7 +29,7 @@ import { makeAccessible } from '../../utils/makeAccessible/makeAccessible.web.js
29
29
  import { makeAnalyticsAttribute } from '../../utils/makeAnalyticsAttribute/makeAnalyticsAttribute.js';
30
30
  import { PopupArrow } from '../PopupArrow/PopupArrow.web.js';
31
31
 
32
- var _excluded = ["content", "title", "titleLeading", "footer", "children", "placement", "onOpenChange", "zIndex", "isOpen", "defaultIsOpen", "initialFocusRef"];
32
+ var _excluded = ["content", "title", "titleLeading", "footer", "children", "placement", "onOpenChange", "zIndex", "isOpen", "defaultIsOpen", "initialFocusRef", "openInteraction"];
33
33
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
34
34
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
35
35
  var Popover = function Popover(_ref) {
@@ -46,6 +46,8 @@ var Popover = function Popover(_ref) {
46
46
  isOpen = _ref.isOpen,
47
47
  defaultIsOpen = _ref.defaultIsOpen,
48
48
  initialFocusRef = _ref.initialFocusRef,
49
+ _ref$openInteraction = _ref.openInteraction,
50
+ openInteraction = _ref$openInteraction === void 0 ? 'click' : _ref$openInteraction,
49
51
  rest = _objectWithoutProperties(_ref, _excluded);
50
52
  var _useTheme = useTheme(),
51
53
  theme = _useTheme.theme;
@@ -121,11 +123,14 @@ var Popover = function Popover(_ref) {
121
123
  // remove click handler if popover is controlled
122
124
  var isControlled = isOpen !== undefined;
123
125
  var click = useClick(context, {
124
- enabled: !isControlled
126
+ enabled: !isControlled && openInteraction === 'click'
127
+ });
128
+ var hover = useHover(context, {
129
+ enabled: !isControlled && openInteraction === 'hover'
125
130
  });
126
131
  var dismiss = useDismiss(context);
127
132
  var role = useRole(context);
128
- var _useInteractions = useInteractions([click, dismiss, role]),
133
+ var _useInteractions = useInteractions([click, dismiss, role, hover]),
129
134
  getReferenceProps = _useInteractions.getReferenceProps,
130
135
  getFloatingProps = _useInteractions.getFloatingProps;
131
136
  var triggerRef = React__default.useRef(null);
@@ -134,9 +139,10 @@ var Popover = function Popover(_ref) {
134
139
  return {
135
140
  close: close,
136
141
  defaultInitialFocusRef: defaultInitialFocusRef,
137
- titleId: titleId
142
+ titleId: titleId,
143
+ openInteraction: openInteraction
138
144
  };
139
- }, [close, titleId]);
145
+ }, [close, titleId, openInteraction]);
140
146
 
141
147
  // Inject aria attributes to trigger
142
148
  // Doing it this way instead of makeAccessible()
@@ -158,7 +164,7 @@ var Popover = function Popover(_ref) {
158
164
  ref: mergedRef
159
165
  }, mergeProps(children.props, getReferenceProps()))), isMounted && /*#__PURE__*/jsx(FloatingPortal, {
160
166
  children: /*#__PURE__*/jsx(FloatingFocusManager, {
161
- initialFocus: initialFocusRef !== null && initialFocusRef !== void 0 ? initialFocusRef : defaultInitialFocusRef,
167
+ initialFocus: initialFocusRef !== null && initialFocusRef !== void 0 ? initialFocusRef : openInteraction === 'hover' ? -1 : defaultInitialFocusRef,
162
168
  context: context,
163
169
  modal: true,
164
170
  guards: true,