@razorpay/blade 10.23.0 → 10.23.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) 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/native/components/Table/TableHeader.native.js.map +1 -1
  12. package/build/lib/native/components/Tooltip/TooltipContent.js +1 -1
  13. package/build/lib/native/components/Tooltip/TooltipContent.js.map +1 -1
  14. package/build/lib/web/development/components/Carousel/Carousel.web.js +25 -5
  15. package/build/lib/web/development/components/Carousel/Carousel.web.js.map +1 -1
  16. package/build/lib/web/development/components/Skeleton/Skeleton.js +2 -0
  17. package/build/lib/web/development/components/Skeleton/Skeleton.js.map +1 -1
  18. package/build/lib/web/development/components/Table/TablePagination.web.js +12 -1
  19. package/build/lib/web/development/components/Table/TablePagination.web.js.map +1 -1
  20. package/build/lib/web/development/components/Tooltip/TooltipContent.js +1 -0
  21. package/build/lib/web/development/components/Tooltip/TooltipContent.js.map +1 -1
  22. package/build/lib/web/production/components/Carousel/Carousel.web.js +25 -5
  23. package/build/lib/web/production/components/Carousel/Carousel.web.js.map +1 -1
  24. package/build/lib/web/production/components/Skeleton/Skeleton.js +2 -0
  25. package/build/lib/web/production/components/Skeleton/Skeleton.js.map +1 -1
  26. package/build/lib/web/production/components/Table/TablePagination.web.js +12 -1
  27. package/build/lib/web/production/components/Table/TablePagination.web.js.map +1 -1
  28. package/build/lib/web/production/components/Tooltip/TooltipContent.js +1 -0
  29. package/build/lib/web/production/components/Tooltip/TooltipContent.js.map +1 -1
  30. package/build/types/components/index.native.d.ts +3 -3
  31. package/package.json +36 -19
@@ -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';\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 handlePageChange(totalPages - 1);\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","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';\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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"}
@@ -38,6 +38,7 @@ var TooltipContent = /*#__PURE__*/React__default.forwardRef(function (_ref, ref)
38
38
  weight: "regular",
39
39
  contrast: "high",
40
40
  color: "feedback.text.neutral.highContrast",
41
+ wordBreak: "break-word",
41
42
  children: children
42
43
  }), arrow]
43
44
  });
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipContent.js","sources":["../../../../../../src/components/Tooltip/TooltipContent.tsx"],"sourcesContent":["import React from 'react';\nimport { TooltipContentWrapper } from './TooltipContentWrapper';\nimport type { TooltipContentProps } from './types';\nimport { Text } from '~components/Typography';\nimport { isReactNative, makeSize } from '~utils';\nimport { size } from '~tokens/global';\n\nconst TooltipContent = React.forwardRef<HTMLDivElement, TooltipContentProps>(\n ({ children, title, arrow, side, style, isVisible }, ref) => {\n return (\n <TooltipContentWrapper\n position={isReactNative() ? 'absolute' : 'relative'}\n paddingTop=\"spacing.3\"\n paddingBottom=\"spacing.3\"\n paddingLeft=\"spacing.4\"\n paddingRight=\"spacing.4\"\n maxWidth={makeSize(size[200])}\n ref={ref as never}\n styles={style}\n side={side}\n isVisible={isVisible}\n >\n {title ? (\n <Text contrast=\"high\" weight=\"bold\" size=\"medium\">\n {title}\n </Text>\n ) : null}\n <Text\n variant=\"body\"\n size=\"small\"\n weight=\"regular\"\n contrast=\"high\"\n color=\"feedback.text.neutral.highContrast\"\n >\n {children}\n </Text>\n {arrow}\n </TooltipContentWrapper>\n );\n },\n);\n\nexport { TooltipContent };\n"],"names":["TooltipContent","React","forwardRef","_ref","ref","children","title","arrow","side","style","isVisible","_jsxs","TooltipContentWrapper","position","isReactNative","paddingTop","paddingBottom","paddingLeft","paddingRight","maxWidth","makeSize","size","styles","_jsx","Text","contrast","weight","variant","color"],"mappings":";;;;;;;;;;;AAOMA,IAAAA,cAAc,gBAAGC,cAAK,CAACC,UAAU,CACrC,UAAAC,IAAA,EAAqDC,GAAG,EAAK;AAAA,EAAA,IAA1DC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAEC,KAAK,GAAAH,IAAA,CAALG,KAAK;IAAEC,KAAK,GAAAJ,IAAA,CAALI,KAAK;IAAEC,IAAI,GAAAL,IAAA,CAAJK,IAAI;IAAEC,KAAK,GAAAN,IAAA,CAALM,KAAK;IAAEC,SAAS,GAAAP,IAAA,CAATO,SAAS,CAAA;EAC/C,oBACEC,IAAA,CAACC,qBAAqB,EAAA;AACpBC,IAAAA,QAAQ,EAAEC,aAAa,EAAE,GAAG,UAAU,GAAG,UAAW;AACpDC,IAAAA,UAAU,EAAC,WAAW;AACtBC,IAAAA,aAAa,EAAC,WAAW;AACzBC,IAAAA,WAAW,EAAC,WAAW;AACvBC,IAAAA,YAAY,EAAC,WAAW;AACxBC,IAAAA,QAAQ,EAAEC,QAAQ,CAACC,IAAI,CAAC,GAAG,CAAC,CAAE;AAC9BjB,IAAAA,GAAG,EAAEA,GAAa;AAClBkB,IAAAA,MAAM,EAAEb,KAAM;AACdD,IAAAA,IAAI,EAAEA,IAAK;AACXE,IAAAA,SAAS,EAAEA,SAAU;AAAAL,IAAAA,QAAA,EAEpBC,CAAAA,KAAK,gBACJiB,GAAA,CAACC,IAAI,EAAA;AAACC,MAAAA,QAAQ,EAAC,MAAM;AAACC,MAAAA,MAAM,EAAC,MAAM;AAACL,MAAAA,IAAI,EAAC,QAAQ;AAAAhB,MAAAA,QAAA,EAC9CC,KAAAA;AAAK,KACF,CAAC,GACL,IAAI,eACRiB,GAAA,CAACC,IAAI,EAAA;AACHG,MAAAA,OAAO,EAAC,MAAM;AACdN,MAAAA,IAAI,EAAC,OAAO;AACZK,MAAAA,MAAM,EAAC,SAAS;AAChBD,MAAAA,QAAQ,EAAC,MAAM;AACfG,MAAAA,KAAK,EAAC,oCAAoC;AAAAvB,MAAAA,QAAA,EAEzCA,QAAAA;KACG,CAAC,EACNE,KAAK,CAAA;AAAA,GACe,CAAC,CAAA;AAE5B,CACF;;;;"}
1
+ {"version":3,"file":"TooltipContent.js","sources":["../../../../../../src/components/Tooltip/TooltipContent.tsx"],"sourcesContent":["import React from 'react';\nimport { TooltipContentWrapper } from './TooltipContentWrapper';\nimport type { TooltipContentProps } from './types';\nimport { Text } from '~components/Typography';\nimport { isReactNative, makeSize } from '~utils';\nimport { size } from '~tokens/global';\n\nconst TooltipContent = React.forwardRef<HTMLDivElement, TooltipContentProps>(\n ({ children, title, arrow, side, style, isVisible }, ref) => {\n return (\n <TooltipContentWrapper\n position={isReactNative() ? 'absolute' : 'relative'}\n paddingTop=\"spacing.3\"\n paddingBottom=\"spacing.3\"\n paddingLeft=\"spacing.4\"\n paddingRight=\"spacing.4\"\n maxWidth={makeSize(size[200])}\n ref={ref as never}\n styles={style}\n side={side}\n isVisible={isVisible}\n >\n {title ? (\n <Text contrast=\"high\" weight=\"bold\" size=\"medium\">\n {title}\n </Text>\n ) : null}\n <Text\n variant=\"body\"\n size=\"small\"\n weight=\"regular\"\n contrast=\"high\"\n color=\"feedback.text.neutral.highContrast\"\n wordBreak=\"break-word\"\n >\n {children}\n </Text>\n {arrow}\n </TooltipContentWrapper>\n );\n },\n);\n\nexport { TooltipContent };\n"],"names":["TooltipContent","React","forwardRef","_ref","ref","children","title","arrow","side","style","isVisible","_jsxs","TooltipContentWrapper","position","isReactNative","paddingTop","paddingBottom","paddingLeft","paddingRight","maxWidth","makeSize","size","styles","_jsx","Text","contrast","weight","variant","color","wordBreak"],"mappings":";;;;;;;;;;;AAOMA,IAAAA,cAAc,gBAAGC,cAAK,CAACC,UAAU,CACrC,UAAAC,IAAA,EAAqDC,GAAG,EAAK;AAAA,EAAA,IAA1DC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAEC,KAAK,GAAAH,IAAA,CAALG,KAAK;IAAEC,KAAK,GAAAJ,IAAA,CAALI,KAAK;IAAEC,IAAI,GAAAL,IAAA,CAAJK,IAAI;IAAEC,KAAK,GAAAN,IAAA,CAALM,KAAK;IAAEC,SAAS,GAAAP,IAAA,CAATO,SAAS,CAAA;EAC/C,oBACEC,IAAA,CAACC,qBAAqB,EAAA;AACpBC,IAAAA,QAAQ,EAAEC,aAAa,EAAE,GAAG,UAAU,GAAG,UAAW;AACpDC,IAAAA,UAAU,EAAC,WAAW;AACtBC,IAAAA,aAAa,EAAC,WAAW;AACzBC,IAAAA,WAAW,EAAC,WAAW;AACvBC,IAAAA,YAAY,EAAC,WAAW;AACxBC,IAAAA,QAAQ,EAAEC,QAAQ,CAACC,IAAI,CAAC,GAAG,CAAC,CAAE;AAC9BjB,IAAAA,GAAG,EAAEA,GAAa;AAClBkB,IAAAA,MAAM,EAAEb,KAAM;AACdD,IAAAA,IAAI,EAAEA,IAAK;AACXE,IAAAA,SAAS,EAAEA,SAAU;AAAAL,IAAAA,QAAA,EAEpBC,CAAAA,KAAK,gBACJiB,GAAA,CAACC,IAAI,EAAA;AAACC,MAAAA,QAAQ,EAAC,MAAM;AAACC,MAAAA,MAAM,EAAC,MAAM;AAACL,MAAAA,IAAI,EAAC,QAAQ;AAAAhB,MAAAA,QAAA,EAC9CC,KAAAA;AAAK,KACF,CAAC,GACL,IAAI,eACRiB,GAAA,CAACC,IAAI,EAAA;AACHG,MAAAA,OAAO,EAAC,MAAM;AACdN,MAAAA,IAAI,EAAC,OAAO;AACZK,MAAAA,MAAM,EAAC,SAAS;AAChBD,MAAAA,QAAQ,EAAC,MAAM;AACfG,MAAAA,KAAK,EAAC,oCAAoC;AAC1CC,MAAAA,SAAS,EAAC,YAAY;AAAAxB,MAAAA,QAAA,EAErBA,QAAAA;KACG,CAAC,EACNE,KAAK,CAAA;AAAA,GACe,CAAC,CAAA;AAE5B,CACF;;;;"}
@@ -6500,9 +6500,9 @@ type TableToolbarActionsProps = {
6500
6500
 
6501
6501
  declare const Table: <Item>(props: TableProps<Item>) => React__default.ReactElement;
6502
6502
 
6503
- declare const TableHeader: (props: unknown) => React__default.ReactElement;
6504
- declare const TableHeaderRow: (props: unknown) => React__default.ReactElement;
6505
- declare const TableHeaderCell: (props: unknown) => React__default.ReactElement;
6503
+ declare const TableHeader: (props: TableHeaderProps) => React__default.ReactElement;
6504
+ declare const TableHeaderRow: (props: TableHeaderRowProps) => React__default.ReactElement;
6505
+ declare const TableHeaderCell: (props: TableHeaderCellProps) => React__default.ReactElement;
6506
6506
 
6507
6507
  declare const TableBody: (props: TableBodyProps) => React__default.ReactElement;
6508
6508
  declare const TableRow: (props: TableRowProps<unknown>) => React__default.ReactElement;
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.0",
4
+ "version": "10.23.2",
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 start-storybook -c ./.storybook/react -p 9009",
109
- "react:storybook:build": "cross-env NODE_OPTIONS=--openssl-legacy-provider FRAMEWORK=REACT build-storybook -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",
@@ -159,22 +170,23 @@
159
170
  "@rollup/plugin-node-resolve": "15.2.1",
160
171
  "@rollup/plugin-replace": "5.0.2",
161
172
  "@size-limit/preset-big-lib": "8.2.4",
173
+ "@storybook/addon-a11y": "7.1.0",
174
+ "@storybook/addon-actions": "7.1.0",
175
+ "@storybook/addon-controls": "7.1.0",
176
+ "@storybook/addon-docs": "7.1.0",
177
+ "@storybook/addon-essentials": "7.1.0",
178
+ "@storybook/addon-links": "7.1.0",
179
+ "@storybook/addon-ondevice-actions": "7.0.0-alpha.5",
180
+ "@storybook/addon-ondevice-backgrounds": "7.0.0-alpha.5",
181
+ "@storybook/addon-ondevice-controls": "7.0.0-alpha.5",
182
+ "@storybook/addon-ondevice-notes": "7.0.0-alpha.5",
183
+ "@storybook/design-system": "7.15.13",
184
+ "@storybook/node-logger": "7.1.0",
185
+ "@storybook/preset-create-react-app": "7.1.0",
186
+ "@storybook/react": "7.1.0",
187
+ "@storybook/react-native": "7.0.0-alpha.5",
188
+ "@storybook/react-webpack5": "7.1.0",
162
189
  "@stackblitz/sdk": "1.9.0",
163
- "@storybook/addon-a11y": "6.5.16",
164
- "@storybook/addon-actions": "6.5.16",
165
- "@storybook/addon-controls": "6.5.16",
166
- "@storybook/addon-docs": "6.5.16",
167
- "@storybook/addon-essentials": "6.5.16",
168
- "@storybook/addon-links": "6.5.16",
169
- "@storybook/addon-ondevice-actions": "6.5.5",
170
- "@storybook/addon-ondevice-backgrounds": "6.5.5",
171
- "@storybook/addon-ondevice-controls": "6.5.5",
172
- "@storybook/addon-ondevice-notes": "6.5.5",
173
- "@storybook/design-system": "7.3.4",
174
- "@storybook/node-logger": "6.5.16",
175
- "@storybook/preset-create-react-app": "3.2.0",
176
- "@storybook/react": "6.5.16",
177
- "@storybook/react-native": "6.5.5",
178
190
  "storybook-react-router": "1.0.8",
179
191
  "react-router-dom": "5.3.4",
180
192
  "@testing-library/jest-dom": "5.16.4",
@@ -230,17 +242,22 @@
230
242
  "react-native-gesture-handler": "2.9.0",
231
243
  "react-native-reanimated": "3.4.1",
232
244
  "react-native-svg": "12.3.0",
233
- "react-scripts": "4.0.3",
245
+ "react-scripts": "5.0.1",
234
246
  "react-test-renderer": "18.2.0",
235
247
  "rollup": "3.28.1",
236
248
  "rollup-plugin-dts": "5.3.1",
237
249
  "rollup-plugin-peer-deps-external": "2.2.4",
238
250
  "size-limit": "8.2.4",
251
+ "storybook": "7.1.0",
239
252
  "style-dictionary": "3.7.1",
240
253
  "styled-components": "5.3.5",
241
254
  "tsconfig-paths-webpack-plugin": "3.5.2",
242
255
  "jsdom-testing-mocks": "1.9.0",
243
256
  "postinstall-postinstall": "2.1.0",
257
+ "react-refresh": "0.11.0",
258
+ "react-docgen-typescript-plugin": "1.0.5",
259
+ "metro-config": "0.66.2",
260
+ "@babel/plugin-proposal-class-static-block": "7.21.0",
244
261
  "react-native-safe-area-context": "3.4.1",
245
262
  "ttypescript": "1.5.15",
246
263
  "typescript": "4.9",