@razorpay/blade 10.23.1 → 10.23.3

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 (29) hide show
  1. package/build/css/bankingThemeDarkDesktop.css +1 -1
  2. package/build/css/bankingThemeDarkMobile.css +1 -1
  3. package/build/css/bankingThemeLightDesktop.css +1 -1
  4. package/build/css/bankingThemeLightMobile.css +1 -1
  5. package/build/css/paymentThemeDarkDesktop.css +1 -1
  6. package/build/css/paymentThemeDarkMobile.css +1 -1
  7. package/build/css/paymentThemeLightDesktop.css +1 -1
  8. package/build/css/paymentThemeLightMobile.css +1 -1
  9. package/build/lib/native/components/Skeleton/Skeleton.js +1 -1
  10. package/build/lib/native/components/Skeleton/Skeleton.js.map +1 -1
  11. package/build/lib/web/development/components/Carousel/Carousel.web.js +25 -5
  12. package/build/lib/web/development/components/Carousel/Carousel.web.js.map +1 -1
  13. package/build/lib/web/development/components/Skeleton/Skeleton.js +2 -0
  14. package/build/lib/web/development/components/Skeleton/Skeleton.js.map +1 -1
  15. package/build/lib/web/development/components/Table/TableBody.web.js +23 -8
  16. package/build/lib/web/development/components/Table/TableBody.web.js.map +1 -1
  17. package/build/lib/web/development/components/Table/TablePagination.web.js +0 -14
  18. package/build/lib/web/development/components/Table/TablePagination.web.js.map +1 -1
  19. package/build/lib/web/production/components/Carousel/Carousel.web.js +25 -5
  20. package/build/lib/web/production/components/Carousel/Carousel.web.js.map +1 -1
  21. package/build/lib/web/production/components/Skeleton/Skeleton.js +2 -0
  22. package/build/lib/web/production/components/Skeleton/Skeleton.js.map +1 -1
  23. package/build/lib/web/production/components/Table/TableBody.web.js +23 -8
  24. package/build/lib/web/production/components/Table/TableBody.web.js.map +1 -1
  25. package/build/lib/web/production/components/Table/TablePagination.web.js +0 -14
  26. package/build/lib/web/production/components/Table/TablePagination.web.js.map +1 -1
  27. package/build/types/components/index.d.ts +13 -1
  28. package/build/types/components/index.native.d.ts +12 -0
  29. package/package.json +14 -3
@@ -1 +1 @@
1
- {"version":3,"file":"TablePagination.web.js","sources":["../../../../../../src/components/Table/TablePagination.web.tsx"],"sourcesContent":["import React, { useCallback, useEffect } from 'react';\nimport styled from 'styled-components';\nimport { useTableContext } from './TableContext';\nimport { ComponentIds } from './componentIds';\nimport { tablePagination } from './tokens';\nimport type { TablePaginationProps } 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 { throwBladeError } from '~utils/logger';\n\nconst pageSizeOptions: NonNullable<TablePaginationProps['defaultPageSize']>[] = [10, 25, 50];\n\nconst PageSelectionButton = styled.button<{ isSelected?: boolean }>(({ theme, isSelected }) => ({\n backgroundColor: isSelected\n ? getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorSelected)\n : 'transparent',\n border: 'none',\n cursor: 'pointer',\n height: makeSize(tablePagination.pageSelectionButton.height),\n width: makeSize(tablePagination.pageSelectionButton.width),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: getIn(theme.border.radius, tablePagination.pageSelectionButton.borderRadius),\n '&:hover': {\n backgroundColor: isSelected\n ? getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorSelectedHover)\n : getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorHover),\n },\n '&:focus-visible': {\n backgroundColor: isSelected\n ? getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorSelectedActive)\n : getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorActive),\n outline: 'none',\n '&:focus-visible': {\n outline: `1px solid ${theme.colors.surface.background.level1.lowContrast}`,\n boxShadow: `0px 0px 0px 4px ${getIn(\n theme.colors,\n tablePagination.pageSelectionButton.focusRingColor,\n )}`,\n },\n },\n '&:active': {\n backgroundColor: isSelected\n ? getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorSelectedActive)\n : getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorActive),\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 _TablePagination = ({\n currentPage: controlledCurrentPage,\n onPageChange,\n onPageSizeChange,\n defaultPageSize = tablePagination.defaultPageSize,\n showPageSizePicker = true,\n showPageNumberSelector = false,\n showLabel,\n label,\n}: TablePaginationProps): React.ReactElement => {\n const {\n setPaginationPage,\n currentPaginationState,\n totalItems,\n setPaginationRowSize,\n } = useTableContext();\n const [currentPageSize, setCurrentPageSize] = React.useState<number>(defaultPageSize);\n const [currentPage, setCurrentPage] = React.useState<number>(\n !isUndefined(controlledCurrentPage) ? controlledCurrentPage : currentPaginationState?.page ?? 0,\n );\n const [currentEllipseHover, setCurrentEllipseHover] = React.useState<'start' | 'end' | undefined>(\n undefined,\n );\n\n const defaultLabel = currentPaginationState\n ? `Showing ${currentPaginationState.page * currentPaginationState.size + 1}-${\n currentPaginationState.page * currentPaginationState.size + currentPaginationState.size\n } Items`\n : `Showing 1 to ${totalItems} Items`;\n\n const { platform } = useTheme();\n const onMobile = platform === 'onMobile';\n useEffect(() => {\n setPaginationRowSize(currentPageSize);\n }, []);\n\n useEffect(() => {\n if (currentPage && currentPaginationState?.page !== currentPage) {\n setPaginationPage(currentPage);\n }\n }, [currentPage, currentPaginationState?.page, setPaginationPage]);\n\n const totalPages = Math.ceil(totalItems / currentPageSize);\n\n const handlePageChange = useCallback(\n (page: number): void => {\n let pageToJumpTo = page;\n if (pageToJumpTo < 0) {\n pageToJumpTo = 0;\n } else if (pageToJumpTo > totalPages - 1) {\n pageToJumpTo = totalPages - 1;\n }\n\n onPageChange?.({ page: pageToJumpTo });\n\n if (!isUndefined(controlledCurrentPage)) {\n pageToJumpTo = controlledCurrentPage;\n }\n setPaginationPage(pageToJumpTo);\n setCurrentPage(pageToJumpTo);\n },\n [controlledCurrentPage, onPageChange, setPaginationPage, totalPages],\n );\n\n useEffect(() => {\n if (!isUndefined(controlledCurrentPage) && controlledCurrentPage !== currentPage) {\n handlePageChange(controlledCurrentPage);\n }\n }, [controlledCurrentPage, currentPage, handlePageChange, onPageChange]);\n\n if (currentPage > totalPages - 1) {\n if (!isUndefined(controlledCurrentPage)) {\n if (__DEV__) {\n throwBladeError({\n moduleName: 'TablePagination',\n message: `Value of 'currentPage' prop cannot be greater than the total pages`,\n });\n }\n } else {\n handlePageChange(totalPages - 1);\n }\n }\n\n const handlePageSizeChange = (pageSize: number): void => {\n onPageSizeChange?.({ pageSize });\n setPaginationRowSize(pageSize);\n setCurrentPageSize(pageSize);\n };\n\n const shouldDisableNextPage = (): boolean => {\n return currentPage >= totalPages - 1;\n };\n const paginationButtons = getPaginationButtons({\n currentSelection: currentPage + 1,\n totalPages,\n });\n\n return (\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n padding={tablePagination.padding}\n backgroundColor={tablePagination.backgroundColor}\n >\n {showLabel && !onMobile && (\n <BaseBox display=\"flex\" justifyContent=\"center\" alignItems=\"center\">\n <Text size=\"medium\" weight=\"bold\">\n {label ?? 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 pages per row\"\n name=\"page-size\"\n label=\"\"\n labelPosition=\"inside-input\"\n placeholder=\"\"\n onChange={({ values }) => {\n handlePageSizeChange(Number(values[0]));\n }}\n defaultValue={currentPageSize.toString()}\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>rows / page</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(currentPage - 1);\n }}\n isDisabled={currentPage <= 0}\n />\n {onMobile && (\n <BaseBox flex={1} alignItems=\"center\" justifyContent=\"center\">\n <Text textAlign=\"center\">{`Showing ${currentPage + 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={currentPage === paginationButtons.firstItem - 1}\n >\n <Text\n size=\"medium\"\n color={\n currentPage === paginationButtons.firstItem - 1\n ? tablePagination.pageSelectionButton.textColorSelected\n : tablePagination.pageSelectionButton.textColor\n }\n >\n {paginationButtons.firstItem}\n </Text>\n </PageSelectionButton>\n {paginationButtons.showStartEllipsis && (\n <PageSelectionButton\n onClick={() => handlePageChange(currentPage - 5)}\n onMouseOver={() => setCurrentEllipseHover('start')}\n onMouseLeave={() => setCurrentEllipseHover(undefined)}\n onFocus={() => setCurrentEllipseHover('start')}\n onBlur={() => setCurrentEllipseHover(undefined)}\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={currentPage === item - 1}\n {...makeAccessible({ label: `Page ${item}` })}\n >\n <Text\n size=\"medium\"\n color={\n currentPage === item - 1\n ? tablePagination.pageSelectionButton.textColorSelected\n : tablePagination.pageSelectionButton.textColor\n }\n >\n {item}\n </Text>\n </PageSelectionButton>\n ))}\n {paginationButtons.showEndEllipsis && (\n <PageSelectionButton\n onClick={() => handlePageChange(currentPage + 5)}\n onMouseOver={() => setCurrentEllipseHover('end')}\n onMouseLeave={() => setCurrentEllipseHover(undefined)}\n onFocus={() => setCurrentEllipseHover('end')}\n onBlur={() => setCurrentEllipseHover(undefined)}\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={currentPage === paginationButtons.lastItem - 1}\n >\n <Text\n size=\"medium\"\n color={\n currentPage === paginationButtons.lastItem - 1\n ? tablePagination.pageSelectionButton.textColorSelected\n : tablePagination.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(currentPage + 1);\n }}\n isDisabled={shouldDisableNextPage()}\n />\n </BaseBox>\n </BaseBox>\n </BaseBox>\n );\n};\n\nconst TablePagination = assignWithoutSideEffects(_TablePagination, {\n componentId: ComponentIds.TablePagination,\n});\n\nexport { TablePagination };\n"],"names":["pageSizeOptions","PageSelectionButton","styled","button","withConfig","displayName","componentId","_ref","theme","isSelected","backgroundColor","getIn","colors","tablePagination","pageSelectionButton","backgroundColorSelected","border","cursor","height","makeSize","width","display","alignItems","justifyContent","borderRadius","radius","backgroundColorSelectedHover","backgroundColorHover","backgroundColorSelectedActive","backgroundColorActive","outline","concat","surface","background","level1","lowContrast","boxShadow","focusRingColor","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","_TablePagination","_ref3","_currentPaginationSta","controlledCurrentPage","currentPage","onPageChange","onPageSizeChange","_ref3$defaultPageSize","defaultPageSize","_ref3$showPageSizePic","showPageSizePicker","_ref3$showPageNumberS","showPageNumberSelector","showLabel","label","_useTableContext","useTableContext","setPaginationPage","currentPaginationState","totalItems","setPaginationRowSize","_React$useState","React","useState","_React$useState2","_slicedToArray","currentPageSize","setCurrentPageSize","_React$useState3","isUndefined","page","_React$useState4","setCurrentPage","_React$useState5","undefined","_React$useState6","currentEllipseHover","setCurrentEllipseHover","defaultLabel","size","_useTheme","useTheme","platform","onMobile","useEffect","ceil","handlePageChange","useCallback","pageToJumpTo","throwBladeError","moduleName","message","handlePageSizeChange","pageSize","shouldDisableNextPage","_jsxs","BaseBox","flexDirection","padding","children","_jsx","Text","weight","flex","gap","Dropdown","selectionType","SelectInput","accessibilityLabel","name","labelPosition","placeholder","onChange","_ref4","values","Number","defaultValue","toString","DropdownOverlay","ActionList","map","item","ActionListItem","title","value","paddingLeft","paddingRight","Button","icon","ChevronLeftIcon","variant","onClick","isDisabled","textAlign","color","textColorSelected","textColor","_objectSpread","onMouseOver","onMouseLeave","onFocus","onBlur","makeAccessible","ChevronsLeftIcon","MoreHorizontalIcon","ChevronsRightIcon","ChevronRightIcon","TablePagination","assignWithoutSideEffects","ComponentIds"],"mappings":"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"}
1
+ {"version":3,"file":"TablePagination.web.js","sources":["../../../../../../src/components/Table/TablePagination.web.tsx"],"sourcesContent":["import React, { useCallback, useEffect } from 'react';\nimport styled from 'styled-components';\nimport { useTableContext } from './TableContext';\nimport { ComponentIds } from './componentIds';\nimport { tablePagination } from './tokens';\nimport type { TablePaginationProps } 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';\n\nconst pageSizeOptions: NonNullable<TablePaginationProps['defaultPageSize']>[] = [10, 25, 50];\n\nconst PageSelectionButton = styled.button<{ isSelected?: boolean }>(({ theme, isSelected }) => ({\n backgroundColor: isSelected\n ? getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorSelected)\n : 'transparent',\n border: 'none',\n cursor: 'pointer',\n height: makeSize(tablePagination.pageSelectionButton.height),\n width: makeSize(tablePagination.pageSelectionButton.width),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: getIn(theme.border.radius, tablePagination.pageSelectionButton.borderRadius),\n '&:hover': {\n backgroundColor: isSelected\n ? getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorSelectedHover)\n : getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorHover),\n },\n '&:focus-visible': {\n backgroundColor: isSelected\n ? getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorSelectedActive)\n : getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorActive),\n outline: 'none',\n '&:focus-visible': {\n outline: `1px solid ${theme.colors.surface.background.level1.lowContrast}`,\n boxShadow: `0px 0px 0px 4px ${getIn(\n theme.colors,\n tablePagination.pageSelectionButton.focusRingColor,\n )}`,\n },\n },\n '&:active': {\n backgroundColor: isSelected\n ? getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorSelectedActive)\n : getIn(theme.colors, tablePagination.pageSelectionButton.backgroundColorActive),\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 _TablePagination = ({\n currentPage: controlledCurrentPage,\n onPageChange,\n onPageSizeChange,\n defaultPageSize = tablePagination.defaultPageSize,\n showPageSizePicker = true,\n showPageNumberSelector = false,\n showLabel,\n label,\n}: TablePaginationProps): React.ReactElement => {\n const {\n setPaginationPage,\n currentPaginationState,\n totalItems,\n setPaginationRowSize,\n } = useTableContext();\n const [currentPageSize, setCurrentPageSize] = React.useState<number>(defaultPageSize);\n const [currentPage, setCurrentPage] = React.useState<number>(\n !isUndefined(controlledCurrentPage) ? controlledCurrentPage : currentPaginationState?.page ?? 0,\n );\n const [currentEllipseHover, setCurrentEllipseHover] = React.useState<'start' | 'end' | undefined>(\n undefined,\n );\n\n const defaultLabel = currentPaginationState\n ? `Showing ${currentPaginationState.page * currentPaginationState.size + 1}-${\n currentPaginationState.page * currentPaginationState.size + currentPaginationState.size\n } Items`\n : `Showing 1 to ${totalItems} Items`;\n\n const { platform } = useTheme();\n const onMobile = platform === 'onMobile';\n useEffect(() => {\n setPaginationRowSize(currentPageSize);\n }, []);\n\n useEffect(() => {\n if (currentPage && currentPaginationState?.page !== currentPage) {\n setPaginationPage(currentPage);\n }\n }, [currentPage, currentPaginationState?.page, setPaginationPage]);\n\n const totalPages = Math.ceil(totalItems / currentPageSize);\n\n const handlePageChange = useCallback(\n (page: number): void => {\n let pageToJumpTo = page;\n if (pageToJumpTo < 0) {\n pageToJumpTo = 0;\n } else if (pageToJumpTo > totalPages - 1) {\n pageToJumpTo = totalPages - 1;\n }\n\n onPageChange?.({ page: pageToJumpTo });\n\n if (!isUndefined(controlledCurrentPage)) {\n pageToJumpTo = controlledCurrentPage;\n }\n setPaginationPage(pageToJumpTo);\n setCurrentPage(pageToJumpTo);\n },\n [controlledCurrentPage, onPageChange, setPaginationPage, totalPages],\n );\n\n useEffect(() => {\n if (!isUndefined(controlledCurrentPage) && controlledCurrentPage !== currentPage) {\n handlePageChange(controlledCurrentPage);\n }\n }, [controlledCurrentPage, currentPage, handlePageChange, onPageChange]);\n\n const handlePageSizeChange = (pageSize: number): void => {\n onPageSizeChange?.({ pageSize });\n setPaginationRowSize(pageSize);\n setCurrentPageSize(pageSize);\n };\n\n const shouldDisableNextPage = (): boolean => {\n return currentPage >= totalPages - 1;\n };\n const paginationButtons = getPaginationButtons({\n currentSelection: currentPage + 1,\n totalPages,\n });\n\n return (\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n padding={tablePagination.padding}\n backgroundColor={tablePagination.backgroundColor}\n >\n {showLabel && !onMobile && (\n <BaseBox display=\"flex\" justifyContent=\"center\" alignItems=\"center\">\n <Text size=\"medium\" weight=\"bold\">\n {label ?? 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 pages per row\"\n name=\"page-size\"\n label=\"\"\n labelPosition=\"inside-input\"\n placeholder=\"\"\n onChange={({ values }) => {\n handlePageSizeChange(Number(values[0]));\n }}\n defaultValue={currentPageSize.toString()}\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>rows / page</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(currentPage - 1);\n }}\n isDisabled={currentPage <= 0}\n />\n {onMobile && (\n <BaseBox flex={1} alignItems=\"center\" justifyContent=\"center\">\n <Text textAlign=\"center\">{`Showing ${currentPage + 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={currentPage === paginationButtons.firstItem - 1}\n >\n <Text\n size=\"medium\"\n color={\n currentPage === paginationButtons.firstItem - 1\n ? tablePagination.pageSelectionButton.textColorSelected\n : tablePagination.pageSelectionButton.textColor\n }\n >\n {paginationButtons.firstItem}\n </Text>\n </PageSelectionButton>\n {paginationButtons.showStartEllipsis && (\n <PageSelectionButton\n onClick={() => handlePageChange(currentPage - 5)}\n onMouseOver={() => setCurrentEllipseHover('start')}\n onMouseLeave={() => setCurrentEllipseHover(undefined)}\n onFocus={() => setCurrentEllipseHover('start')}\n onBlur={() => setCurrentEllipseHover(undefined)}\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={currentPage === item - 1}\n {...makeAccessible({ label: `Page ${item}` })}\n >\n <Text\n size=\"medium\"\n color={\n currentPage === item - 1\n ? tablePagination.pageSelectionButton.textColorSelected\n : tablePagination.pageSelectionButton.textColor\n }\n >\n {item}\n </Text>\n </PageSelectionButton>\n ))}\n {paginationButtons.showEndEllipsis && (\n <PageSelectionButton\n onClick={() => handlePageChange(currentPage + 5)}\n onMouseOver={() => setCurrentEllipseHover('end')}\n onMouseLeave={() => setCurrentEllipseHover(undefined)}\n onFocus={() => setCurrentEllipseHover('end')}\n onBlur={() => setCurrentEllipseHover(undefined)}\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={currentPage === paginationButtons.lastItem - 1}\n >\n <Text\n size=\"medium\"\n color={\n currentPage === paginationButtons.lastItem - 1\n ? tablePagination.pageSelectionButton.textColorSelected\n : tablePagination.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(currentPage + 1);\n }}\n isDisabled={shouldDisableNextPage()}\n />\n </BaseBox>\n </BaseBox>\n </BaseBox>\n );\n};\n\nconst TablePagination = assignWithoutSideEffects(_TablePagination, {\n componentId: ComponentIds.TablePagination,\n});\n\nexport { TablePagination };\n"],"names":["pageSizeOptions","PageSelectionButton","styled","button","withConfig","displayName","componentId","_ref","theme","isSelected","backgroundColor","getIn","colors","tablePagination","pageSelectionButton","backgroundColorSelected","border","cursor","height","makeSize","width","display","alignItems","justifyContent","borderRadius","radius","backgroundColorSelectedHover","backgroundColorHover","backgroundColorSelectedActive","backgroundColorActive","outline","concat","surface","background","level1","lowContrast","boxShadow","focusRingColor","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","_TablePagination","_ref3","_currentPaginationSta","controlledCurrentPage","currentPage","onPageChange","onPageSizeChange","_ref3$defaultPageSize","defaultPageSize","_ref3$showPageSizePic","showPageSizePicker","_ref3$showPageNumberS","showPageNumberSelector","showLabel","label","_useTableContext","useTableContext","setPaginationPage","currentPaginationState","totalItems","setPaginationRowSize","_React$useState","React","useState","_React$useState2","_slicedToArray","currentPageSize","setCurrentPageSize","_React$useState3","isUndefined","page","_React$useState4","setCurrentPage","_React$useState5","undefined","_React$useState6","currentEllipseHover","setCurrentEllipseHover","defaultLabel","size","_useTheme","useTheme","platform","onMobile","useEffect","ceil","handlePageChange","useCallback","pageToJumpTo","handlePageSizeChange","pageSize","shouldDisableNextPage","_jsxs","BaseBox","flexDirection","padding","children","_jsx","Text","weight","flex","gap","Dropdown","selectionType","SelectInput","accessibilityLabel","name","labelPosition","placeholder","onChange","_ref4","values","Number","defaultValue","toString","DropdownOverlay","ActionList","map","item","ActionListItem","title","value","paddingLeft","paddingRight","Button","icon","ChevronLeftIcon","variant","onClick","isDisabled","textAlign","color","textColorSelected","textColor","_objectSpread","onMouseOver","onMouseLeave","onFocus","onBlur","makeAccessible","ChevronsLeftIcon","MoreHorizontalIcon","ChevronsRightIcon","ChevronRightIcon","TablePagination","assignWithoutSideEffects","ComponentIds"],"mappings":"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"}
@@ -7451,6 +7451,18 @@ type TableRowProps<Item> = {
7451
7451
  * </TableRow>
7452
7452
  **/
7453
7453
  isDisabled?: boolean;
7454
+ /**
7455
+ * Callback triggered when the row is hovered. It is called with the current row item prop.
7456
+ */
7457
+ onHover?: ({ item }: {
7458
+ item: TableNode<Item>;
7459
+ }) => void;
7460
+ /**
7461
+ * Callback triggered when the row is clicked. It is called with the current row item prop.
7462
+ */
7463
+ onClick?: ({ item }: {
7464
+ item: TableNode<Item>;
7465
+ }) => void;
7454
7466
  };
7455
7467
  type TableCellProps = {
7456
7468
  /**
@@ -7570,7 +7582,7 @@ declare const TableHeaderRow: ({ children }: TableHeaderRowProps) => React__defa
7570
7582
 
7571
7583
  declare const TableBody: ({ children }: TableBodyProps) => React__default.ReactElement;
7572
7584
  declare const TableCell: ({ children }: TableCellProps) => React__default.ReactElement;
7573
- declare const TableRow: <Item>({ children, item, isDisabled, }: TableRowProps<Item>) => React__default.ReactElement;
7585
+ declare const TableRow: <Item>({ children, item, isDisabled, onHover, onClick, }: TableRowProps<Item>) => React__default.ReactElement;
7574
7586
 
7575
7587
  declare const TableFooter: ({ children }: TableFooterProps) => React__default.ReactElement;
7576
7588
  declare const TableFooterRow: ({ children }: TableFooterRowProps) => React__default.ReactElement;
@@ -6387,6 +6387,18 @@ type TableRowProps<Item> = {
6387
6387
  * </TableRow>
6388
6388
  **/
6389
6389
  isDisabled?: boolean;
6390
+ /**
6391
+ * Callback triggered when the row is hovered. It is called with the current row item prop.
6392
+ */
6393
+ onHover?: ({ item }: {
6394
+ item: TableNode<Item>;
6395
+ }) => void;
6396
+ /**
6397
+ * Callback triggered when the row is clicked. It is called with the current row item prop.
6398
+ */
6399
+ onClick?: ({ item }: {
6400
+ item: TableNode<Item>;
6401
+ }) => void;
6390
6402
  };
6391
6403
  type TableCellProps = {
6392
6404
  /**
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@razorpay/blade",
3
3
  "description": "The Design System that powers Razorpay",
4
- "version": "10.23.1",
4
+ "version": "10.23.3",
5
5
  "license": "MIT",
6
6
  "engines": {
7
7
  "node": ">=18.12.1"
@@ -105,8 +105,12 @@
105
105
  "react-native:storybook:ios": "yarn react-native:get-stories && cross-env FRAMEWORK=REACT_NATIVE react-native run-ios",
106
106
  "react-native:storybook:start": "yarn react-native:get-stories && cross-env NODE_OPTIONS=--openssl-legacy-provider FRAMEWORK=REACT_NATIVE react-native start --reset-cache",
107
107
  "react": "yarn run react:storybook",
108
- "react:storybook": "cross-env NODE_OPTIONS=--openssl-legacy-provider FRAMEWORK=REACT storybook dev -c ./.storybook/react -p 9009",
109
- "react:storybook:build": "cross-env NODE_OPTIONS=--openssl-legacy-provider FRAMEWORK=REACT storybook build -c ./.storybook/react -o storybook-site",
108
+ "react:storybook": "cross-env FRAMEWORK=REACT storybook dev -c ./.storybook/react -p 9009",
109
+ "react:storybook:build": "cross-env FRAMEWORK=REACT storybook build -c ./.storybook/react -o storybook-site --quiet",
110
+ "react:storybook:serve": "http-server storybook-site --port 9009 --silent",
111
+ "react:storybook:serve:test": "wait-on http://127.0.0.1:9009/ && yarn test:react:interaction",
112
+ "test:react:interaction": "cross-env FRAMEWORK=REACT test-storybook -c ./.storybook/react --url http://127.0.0.1:9009/",
113
+ "test:react:interaction:ci": "yarn react:storybook:build && run-p react:storybook:serve react:storybook:serve:test --race",
110
114
  "test:react": "cross-env FRAMEWORK=REACT jest -c ./jest.web.config.js --shard=$SHARD --forceExit",
111
115
  "test:react-native": "cross-env FRAMEWORK=REACT_NATIVE jest -c ./jest.native.config.js --shard=$SHARD --forceExit",
112
116
  "start:ios": "cross-env NODE_OPTIONS=--openssl-legacy-provider run-p react-native:storybook:start react-native:storybook:ios",
@@ -135,6 +139,13 @@
135
139
  "tinycolor2": "1.6.0"
136
140
  },
137
141
  "devDependencies": {
142
+ "http-server": "14.1.1",
143
+ "wait-on": "7.2.0",
144
+ "@storybook/addon-interactions": "7.6.6",
145
+ "@storybook/testing-library": "0.2.2",
146
+ "@storybook/test-runner": "0.16.0",
147
+ "@storybook/jest": "0.2.3",
148
+ "playwright": "1.40.1",
138
149
  "chromatic": "6.22.0",
139
150
  "@babel/cli": "7.23.0",
140
151
  "@babel/core": "7.20.2",