@razorpay/blade 12.3.0 → 12.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/native/utils/metaAttribute/metaConstants.js +1 -1
- package/build/lib/native/utils/metaAttribute/metaConstants.js.map +1 -1
- package/build/lib/web/development/components/Card/CardRoot.web.js +7 -1
- package/build/lib/web/development/components/Card/CardRoot.web.js.map +1 -1
- package/build/lib/web/development/components/FileUpload/FileUpload.web.js +9 -4
- package/build/lib/web/development/components/FileUpload/FileUpload.web.js.map +1 -1
- package/build/lib/web/development/components/Table/TableBody.web.js +14 -7
- package/build/lib/web/development/components/Table/TableBody.web.js.map +1 -1
- package/build/lib/web/development/components/Table/TableFooter.web.js +8 -4
- package/build/lib/web/development/components/Table/TableFooter.web.js.map +1 -1
- package/build/lib/web/development/components/Table/TableHeader.web.js +25 -12
- package/build/lib/web/development/components/Table/TableHeader.web.js.map +1 -1
- package/build/lib/web/development/components/Table/TablePagination.web.js +9 -2
- package/build/lib/web/development/components/Table/TablePagination.web.js.map +1 -1
- package/build/lib/web/development/components/TopNav/TabNav/TabNav.web.js +7 -7
- package/build/lib/web/development/components/TopNav/TabNav/TabNav.web.js.map +1 -1
- package/build/lib/web/development/components/TopNav/TabNav/TabNavItem.web.js +4 -2
- package/build/lib/web/development/components/TopNav/TabNav/TabNavItem.web.js.map +1 -1
- package/build/lib/web/development/components/TopNav/TopNav.web.js +3 -5
- package/build/lib/web/development/components/TopNav/TopNav.web.js.map +1 -1
- package/build/lib/web/development/utils/metaAttribute/metaConstants.js +5 -0
- package/build/lib/web/development/utils/metaAttribute/metaConstants.js.map +1 -1
- package/build/lib/web/production/components/Card/CardRoot.web.js +7 -1
- package/build/lib/web/production/components/Card/CardRoot.web.js.map +1 -1
- package/build/lib/web/production/components/FileUpload/FileUpload.web.js +9 -4
- package/build/lib/web/production/components/FileUpload/FileUpload.web.js.map +1 -1
- package/build/lib/web/production/components/Table/TableBody.web.js +14 -7
- package/build/lib/web/production/components/Table/TableBody.web.js.map +1 -1
- package/build/lib/web/production/components/Table/TableFooter.web.js +8 -4
- package/build/lib/web/production/components/Table/TableFooter.web.js.map +1 -1
- package/build/lib/web/production/components/Table/TableHeader.web.js +25 -12
- package/build/lib/web/production/components/Table/TableHeader.web.js.map +1 -1
- package/build/lib/web/production/components/Table/TablePagination.web.js +9 -2
- package/build/lib/web/production/components/Table/TablePagination.web.js.map +1 -1
- package/build/lib/web/production/components/TopNav/TabNav/TabNav.web.js +7 -7
- package/build/lib/web/production/components/TopNav/TabNav/TabNav.web.js.map +1 -1
- package/build/lib/web/production/components/TopNav/TabNav/TabNavItem.web.js +4 -2
- package/build/lib/web/production/components/TopNav/TabNav/TabNavItem.web.js.map +1 -1
- package/build/lib/web/production/components/TopNav/TopNav.web.js +3 -5
- package/build/lib/web/production/components/TopNav/TopNav.web.js.map +1 -1
- package/build/lib/web/production/utils/metaAttribute/metaConstants.js +5 -0
- package/build/lib/web/production/utils/metaAttribute/metaConstants.js.map +1 -1
- package/build/types/components/index.d.ts +21 -3
- package/build/types/components/index.native.d.ts +18 -0
- package/package.json +1 -1
|
@@ -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 { TablePaginationCommonProps, 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';\nimport { getFocusRingStyles } from '~utils/getFocusRingStyles';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst pageSizeOptions: NonNullable<TablePaginationCommonProps['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': getFocusRingStyles({ theme }),\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 totalItemCount,\n paginationType = 'client',\n ...rest\n}: TablePaginationProps): React.ReactElement => {\n const {\n setPaginationPage,\n currentPaginationState,\n totalItems,\n setPaginationRowSize,\n setPaginationType,\n backgroundColor,\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 setPaginationType(paginationType);\n }, []);\n\n useEffect(() => {\n if (currentPage && currentPaginationState?.page !== currentPage) {\n setPaginationPage(currentPage);\n }\n }, [currentPage, currentPaginationState?.page, setPaginationPage]);\n\n const totalPages = isUndefined(totalItemCount)\n ? Math.ceil(totalItems / currentPageSize)\n : Math.ceil(totalItemCount / 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 (__DEV__) {\n if (paginationType === 'server' && (isUndefined(totalItemCount) || isUndefined(onPageChange))) {\n throwBladeError({\n message:\n '`onPageChange` and `totalItemCount` props are required when paginationType is server.',\n moduleName: 'TablePagination',\n });\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={backgroundColor}\n {...makeAnalyticsAttribute(rest)}\n >\n {showLabel && !onMobile && (\n <BaseBox display=\"flex\" justifyContent=\"center\" alignItems=\"center\">\n <Text size=\"medium\" weight=\"semibold\">\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","getFocusRingStyles","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","totalItemCount","_ref3$paginationType","paginationType","rest","_objectWithoutProperties","_excluded","_useTableContext","useTableContext","setPaginationPage","currentPaginationState","totalItems","setPaginationRowSize","setPaginationType","_React$useState","React","useState","_React$useState2","_slicedToArray","currentPageSize","setCurrentPageSize","_React$useState3","isUndefined","page","_React$useState4","setCurrentPage","_React$useState5","undefined","_React$useState6","currentEllipseHover","setCurrentEllipseHover","defaultLabel","concat","size","_useTheme","useTheme","platform","onMobile","useEffect","ceil","handlePageChange","useCallback","pageToJumpTo","throwBladeError","message","moduleName","handlePageSizeChange","pageSize","shouldDisableNextPage","_jsxs","BaseBox","_objectSpread","flexDirection","padding","makeAnalyticsAttribute","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","onMouseOver","onMouseLeave","onFocus","onBlur","makeAccessible","ChevronsLeftIcon","MoreHorizontalIcon","ChevronsRightIcon","ChevronRightIcon","TablePagination","assignWithoutSideEffects","ComponentIds"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,IAAMA,eAA6E,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;AAElG,IAAMC,mBAAmB,gBAAGC,MAAM,CAACC,MAAM,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,yCAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAA,CAAA,CAA2B,UAAAC,IAAA,EAAA;AAAA,EAAA,IAAGC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,UAAU,GAAAF,IAAA,CAAVE,UAAU,CAAA;EAAA,OAAQ;AAC9FC,IAAAA,eAAe,EAAED,UAAU,GACvBE,KAAK,CAACH,KAAK,CAACI,MAAM,EAAEC,eAAe,CAACC,mBAAmB,CAACC,uBAAuB,CAAC,GAChF,aAAa;AACjBC,IAAAA,MAAM,EAAE,MAAM;AACdC,IAAAA,MAAM,EAAE,SAAS;IACjBC,MAAM,EAAEC,QAAQ,CAACN,eAAe,CAACC,mBAAmB,CAACI,MAAM,CAAC;IAC5DE,KAAK,EAAED,QAAQ,CAACN,eAAe,CAACC,mBAAmB,CAACM,KAAK,CAAC;AAC1DC,IAAAA,OAAO,EAAE,MAAM;AACfC,IAAAA,UAAU,EAAE,QAAQ;AACpBC,IAAAA,cAAc,EAAE,QAAQ;AACxBC,IAAAA,YAAY,EAAEb,KAAK,CAACH,KAAK,CAACQ,MAAM,CAACS,MAAM,EAAEZ,eAAe,CAACC,mBAAmB,CAACU,YAAY,CAAC;AAC1F,IAAA,SAAS,EAAE;MACTd,eAAe,EAAED,UAAU,GACvBE,KAAK,CAACH,KAAK,CAACI,MAAM,EAAEC,eAAe,CAACC,mBAAmB,CAACY,4BAA4B,CAAC,GACrFf,KAAK,CAACH,KAAK,CAACI,MAAM,EAAEC,eAAe,CAACC,mBAAmB,CAACa,oBAAoB,CAAA;KACjF;AACD,IAAA,iBAAiB,EAAE;MACjBjB,eAAe,EAAED,UAAU,GACvBE,KAAK,CAACH,KAAK,CAACI,MAAM,EAAEC,eAAe,CAACC,mBAAmB,CAACc,6BAA6B,CAAC,GACtFjB,KAAK,CAACH,KAAK,CAACI,MAAM,EAAEC,eAAe,CAACC,mBAAmB,CAACe,qBAAqB,CAAC;AAClFC,MAAAA,OAAO,EAAE,MAAM;MACf,iBAAiB,EAAEC,kBAAkB,CAAC;AAAEvB,QAAAA,KAAK,EAALA,KAAAA;OAAO,CAAA;KAChD;AACD,IAAA,UAAU,EAAE;MACVE,eAAe,EAAED,UAAU,GACvBE,KAAK,CAACH,KAAK,CAACI,MAAM,EAAEC,eAAe,CAACC,mBAAmB,CAACc,6BAA6B,CAAC,GACtFjB,KAAK,CAACH,KAAK,CAACI,MAAM,EAAEC,eAAe,CAACC,mBAAmB,CAACe,qBAAqB,CAAA;AACnF,KAAA;GACD,CAAA;AAAA,CAAC,CAAC,CAAA;AACH,IAAMG,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAAC,KAAA,EAYrB;AAAA,EAAA,IAXHC,gBAAgB,GAAAD,KAAA,CAAhBC,gBAAgB;IAChBC,UAAU,GAAAF,KAAA,CAAVE,UAAU,CAAA;EAWV,IAAMC,SAAS,GAAG,CAAC,CAAA;EACnB,IAAMC,cAAc,GAAG,CAAC,CAAA;;AAExB;EACA,IAAIF,UAAU,IAAIE,cAAc,EAAE;IAChC,OAAO;AACLC,MAAAA,WAAW,EAAEC,KAAK,CAACC,IAAI,CAAC;QAAEC,MAAM,EAAEN,UAAU,GAAG,CAAA;AAAE,OAAC,EAAE,UAACO,CAAC,EAAEC,KAAK,EAAA;QAAA,OAAKA,KAAK,GAAG,CAAC,CAAA;OAAC,CAAA;AAC5EC,MAAAA,iBAAiB,EAAE,KAAK;AACxBC,MAAAA,eAAe,EAAE,KAAK;AACtBC,MAAAA,SAAS,EAAE,CAAC;AACZC,MAAAA,QAAQ,EAAEZ,UAAAA;KACX,CAAA;AACH,GAAA;EAEA,IAAIa,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEhB,gBAAgB,GAAGE,SAAS,CAAC,CAAA;AACrD,EAAA,IAAIe,GAAG,GAAGF,IAAI,CAACG,GAAG,CAACjB,UAAU,EAAEa,KAAK,GAAG,CAAC,GAAGZ,SAAS,CAAC,CAAA;;AAErD;AACA,EAAA,OAAOe,GAAG,GAAGH,KAAK,GAAG,CAAC,GAAGX,cAAc,KAAKW,KAAK,GAAG,CAAC,IAAIG,GAAG,GAAGhB,UAAU,CAAC,EAAE;IAC1E,IAAIa,KAAK,GAAG,CAAC,EAAE;AACbA,MAAAA,KAAK,EAAE,CAAA;AACT,KAAA;IACA,IAAIG,GAAG,GAAGhB,UAAU,EAAE;AACpBgB,MAAAA,GAAG,EAAE,CAAA;AACP,KAAA;AACF,GAAA;EAEA,IAAIP,iBAAiB,GAAG,KAAK,CAAA;EAC7B,IAAIC,eAAe,GAAG,KAAK,CAAA;EAE3B,IAAMQ,iBAA2B,GAAG,EAAE,CAAA;EACtC,KAAK,IAAIC,CAAC,GAAGN,KAAK,EAAEM,CAAC,IAAIH,GAAG,EAAEG,CAAC,EAAE,EAAE;AACjCD,IAAAA,iBAAiB,CAACE,IAAI,CAACD,CAAC,CAAC,CAAA;AAC3B,GAAA;;AAEA;AACA,EAAA,IAAID,iBAAiB,CAACG,QAAQ,CAAC,CAAC,CAAC,EAAE;IACjCH,iBAAiB,CAACI,KAAK,EAAE,CAAA;AACzB;AACA,IAAA,IAAItB,UAAU,GAAGE,cAAc,GAAG,CAAC,EAAEgB,iBAAiB,CAACE,IAAI,CAACJ,GAAG,GAAG,CAAC,CAAC,CAAA;AACtE,GAAA;;AAEA;AACA,EAAA,IAAIE,iBAAiB,CAACG,QAAQ,CAACrB,UAAU,CAAC,EAAE;IAC1CkB,iBAAiB,CAACK,GAAG,EAAE,CAAA;AACvB;AACA,IAAA,IAAIvB,UAAU,GAAGE,cAAc,GAAG,CAAC,EAAEgB,iBAAiB,CAACM,OAAO,CAACX,KAAK,GAAG,CAAC,CAAC,CAAA;AAC3E,GAAA;AAEA,EAAA,IAAIK,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAC5BT,IAAAA,iBAAiB,GAAG,IAAI,CAAA;AAC1B,GAAA;AAEA,EAAA,IAAIS,iBAAiB,CAACA,iBAAiB,CAACZ,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAGN,UAAU,EAAE;AACpEU,IAAAA,eAAe,GAAG,IAAI,CAAA;AACxB,GAAA;EAEA,OAAO;AACLP,IAAAA,WAAW,EAAEe,iBAAiB;AAC9BT,IAAAA,iBAAiB,EAAjBA,iBAAiB;AACjBC,IAAAA,eAAe,EAAfA,eAAe;AACfC,IAAAA,SAAS,EAAE,CAAC;AACZC,IAAAA,QAAQ,EAAEZ,UAAAA;GACX,CAAA;AACH,CAAC,CAAA;AAED,IAAMyB,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,KAAA,EAY0B;AAAA,EAAA,IAAAC,qBAAA,CAAA;AAAA,EAAA,IAXjCC,qBAAqB,GAAAF,KAAA,CAAlCG,WAAW;IACXC,YAAY,GAAAJ,KAAA,CAAZI,YAAY;IACZC,gBAAgB,GAAAL,KAAA,CAAhBK,gBAAgB;IAAAC,qBAAA,GAAAN,KAAA,CAChBO,eAAe;AAAfA,IAAAA,eAAe,GAAAD,qBAAA,KAAA,KAAA,CAAA,GAAGtD,eAAe,CAACuD,eAAe,GAAAD,qBAAA;IAAAE,qBAAA,GAAAR,KAAA,CACjDS,kBAAkB;AAAlBA,IAAAA,kBAAkB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,qBAAA;IAAAE,qBAAA,GAAAV,KAAA,CACzBW,sBAAsB;AAAtBA,IAAAA,sBAAsB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,qBAAA;IAC9BE,SAAS,GAAAZ,KAAA,CAATY,SAAS;IACTC,KAAK,GAAAb,KAAA,CAALa,KAAK;IACLC,cAAc,GAAAd,KAAA,CAAdc,cAAc;IAAAC,oBAAA,GAAAf,KAAA,CACdgB,cAAc;AAAdA,IAAAA,cAAc,GAAAD,oBAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,oBAAA;AACtBE,IAAAA,IAAI,GAAAC,wBAAA,CAAAlB,KAAA,EAAAmB,SAAA,CAAA,CAAA;AAEP,EAAA,IAAAC,gBAAA,GAOIC,eAAe,EAAE;IANnBC,iBAAiB,GAAAF,gBAAA,CAAjBE,iBAAiB;IACjBC,sBAAsB,GAAAH,gBAAA,CAAtBG,sBAAsB;IACtBC,UAAU,GAAAJ,gBAAA,CAAVI,UAAU;IACVC,oBAAoB,GAAAL,gBAAA,CAApBK,oBAAoB;IACpBC,iBAAiB,GAAAN,gBAAA,CAAjBM,iBAAiB;IACjB7E,eAAe,GAAAuE,gBAAA,CAAfvE,eAAe,CAAA;AAEjB,EAAA,IAAA8E,eAAA,GAA8CC,cAAK,CAACC,QAAQ,CAAStB,eAAe,CAAC;IAAAuB,gBAAA,GAAAC,cAAA,CAAAJ,eAAA,EAAA,CAAA,CAAA;AAA9EK,IAAAA,eAAe,GAAAF,gBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,kBAAkB,GAAAH,gBAAA,CAAA,CAAA,CAAA,CAAA;AAC1C,EAAA,IAAAI,gBAAA,GAAsCN,cAAK,CAACC,QAAQ,CAClD,CAACM,WAAW,CAACjC,qBAAqB,CAAC,GAAGA,qBAAqB,GAAA,CAAAD,qBAAA,GAAGsB,sBAAsB,KAAA,IAAA,IAAtBA,sBAAsB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAtBA,sBAAsB,CAAEa,IAAI,MAAA,IAAA,IAAAnC,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAI,CAChG,CAAC;IAAAoC,gBAAA,GAAAN,cAAA,CAAAG,gBAAA,EAAA,CAAA,CAAA;AAFM/B,IAAAA,WAAW,GAAAkC,gBAAA,CAAA,CAAA,CAAA;AAAEC,IAAAA,cAAc,GAAAD,gBAAA,CAAA,CAAA,CAAA,CAAA;AAGlC,EAAA,IAAAE,gBAAA,GAAsDX,cAAK,CAACC,QAAQ,CAClEW,SACF,CAAC;IAAAC,gBAAA,GAAAV,cAAA,CAAAQ,gBAAA,EAAA,CAAA,CAAA;AAFMG,IAAAA,mBAAmB,GAAAD,gBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,sBAAsB,GAAAF,gBAAA,CAAA,CAAA,CAAA,CAAA;AAIlD,EAAA,IAAMG,YAAY,GAAGrB,sBAAsB,GAAA,UAAA,CAAAsB,MAAA,CAC5BtB,sBAAsB,CAACa,IAAI,GAAGb,sBAAsB,CAACuB,IAAI,GAAG,CAAC,EAAA,GAAA,CAAA,CAAAD,MAAA,CACtEtB,sBAAsB,CAACa,IAAI,GAAGb,sBAAsB,CAACuB,IAAI,GAAGvB,sBAAsB,CAACuB,IAAI,EAAA,QAAA,CAAA,GAAA,eAAA,CAAAD,MAAA,CAEzErB,UAAU,EAAQ,QAAA,CAAA,CAAA;AAEtC,EAAA,IAAAuB,SAAA,GAAqBC,QAAQ,EAAE;IAAvBC,QAAQ,GAAAF,SAAA,CAARE,QAAQ,CAAA;AAChB,EAAA,IAAMC,QAAQ,GAAGD,QAAQ,KAAK,UAAU,CAAA;AACxCE,EAAAA,SAAS,CAAC,YAAM;IACd1B,oBAAoB,CAACO,eAAe,CAAC,CAAA;IACrCN,iBAAiB,CAACV,cAAc,CAAC,CAAA;GAClC,EAAE,EAAE,CAAC,CAAA;AAENmC,EAAAA,SAAS,CAAC,YAAM;AACd,IAAA,IAAIhD,WAAW,IAAI,CAAAoB,sBAAsB,KAAtBA,IAAAA,IAAAA,sBAAsB,KAAtBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAsB,CAAEa,IAAI,MAAKjC,WAAW,EAAE;MAC/DmB,iBAAiB,CAACnB,WAAW,CAAC,CAAA;AAChC,KAAA;AACF,GAAC,EAAE,CAACA,WAAW,EAAEoB,sBAAsB,KAAtBA,IAAAA,IAAAA,sBAAsB,KAAtBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAsB,CAAEa,IAAI,EAAEd,iBAAiB,CAAC,CAAC,CAAA;EAElE,IAAMhD,UAAU,GAAG6D,WAAW,CAACrB,cAAc,CAAC,GAC1C1B,IAAI,CAACgE,IAAI,CAAC5B,UAAU,GAAGQ,eAAe,CAAC,GACvC5C,IAAI,CAACgE,IAAI,CAACtC,cAAc,GAAGkB,eAAe,CAAC,CAAA;AAE/C,EAAA,IAAMqB,gBAAgB,GAAGC,WAAW,CAClC,UAAClB,IAAY,EAAW;IACtB,IAAImB,YAAY,GAAGnB,IAAI,CAAA;IACvB,IAAImB,YAAY,GAAG,CAAC,EAAE;AACpBA,MAAAA,YAAY,GAAG,CAAC,CAAA;AAClB,KAAC,MAAM,IAAIA,YAAY,GAAGjF,UAAU,GAAG,CAAC,EAAE;MACxCiF,YAAY,GAAGjF,UAAU,GAAG,CAAC,CAAA;AAC/B,KAAA;AAEA8B,IAAAA,YAAY,KAAZA,IAAAA,IAAAA,YAAY,KAAZA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAY,CAAG;AAAEgC,MAAAA,IAAI,EAAEmB,YAAAA;AAAa,KAAC,CAAC,CAAA;AAEtC,IAAA,IAAI,CAACpB,WAAW,CAACjC,qBAAqB,CAAC,EAAE;AACvCqD,MAAAA,YAAY,GAAGrD,qBAAqB,CAAA;AACtC,KAAA;IACAoB,iBAAiB,CAACiC,YAAY,CAAC,CAAA;IAC/BjB,cAAc,CAACiB,YAAY,CAAC,CAAA;GAC7B,EACD,CAACrD,qBAAqB,EAAEE,YAAY,EAAEkB,iBAAiB,EAAEhD,UAAU,CACrE,CAAC,CAAA;AAED6E,EAAAA,SAAS,CAAC,YAAM;IACd,IAAI,CAAChB,WAAW,CAACjC,qBAAqB,CAAC,IAAIA,qBAAqB,KAAKC,WAAW,EAAE;MAChFkD,gBAAgB,CAACnD,qBAAqB,CAAC,CAAA;AACzC,KAAA;GACD,EAAE,CAACA,qBAAqB,EAAEC,WAAW,EAAEkD,gBAAgB,EAAEjD,YAAY,CAAC,CAAC,CAAA;AAExE,EAAA,IAAI,IAAO,EAAE;AACX,IAAA,IAAIY,cAAc,KAAK,QAAQ,KAAKmB,WAAW,CAACrB,cAAc,CAAC,IAAIqB,WAAW,CAAC/B,YAAY,CAAC,CAAC,EAAE;AAC7FoD,MAAAA,eAAe,CAAC;AACdC,QAAAA,OAAO,EACL,uFAAuF;AACzFC,QAAAA,UAAU,EAAE,iBAAA;AACd,OAAC,CAAC,CAAA;AACJ,KAAA;AACF,GAAA;AAEA,EAAA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIC,QAAgB,EAAW;AACvDvD,IAAAA,gBAAgB,KAAhBA,IAAAA,IAAAA,gBAAgB,KAAhBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,gBAAgB,CAAG;AAAEuD,MAAAA,QAAQ,EAARA,QAAAA;AAAS,KAAC,CAAC,CAAA;IAChCnC,oBAAoB,CAACmC,QAAQ,CAAC,CAAA;IAC9B3B,kBAAkB,CAAC2B,QAAQ,CAAC,CAAA;GAC7B,CAAA;AAED,EAAA,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAqBA,GAAkB;AAC3C,IAAA,OAAO1D,WAAW,IAAI7B,UAAU,GAAG,CAAC,CAAA;GACrC,CAAA;EACD,IAAMkB,iBAAiB,GAAGrB,oBAAoB,CAAC;IAC7CE,gBAAgB,EAAE8B,WAAW,GAAG,CAAC;AACjC7B,IAAAA,UAAU,EAAVA,UAAAA;AACF,GAAC,CAAC,CAAA;AAEF,EAAA,oBACEwF,IAAA,CAACC,OAAO,EAAAC,aAAA,CAAAA,aAAA,CAAA;AACNxG,IAAAA,OAAO,EAAC,MAAM;AACdyG,IAAAA,aAAa,EAAC,KAAK;IACnBC,OAAO,EAAElH,eAAe,CAACkH,OAAQ;AACjCrH,IAAAA,eAAe,EAAEA,eAAAA;GACbsH,EAAAA,sBAAsB,CAAClD,IAAI,CAAC,CAAA,EAAA,EAAA,EAAA;IAAAmD,QAAA,EAAA,CAE/BxD,SAAS,IAAI,CAACsC,QAAQ,iBACrBmB,GAAA,CAACN,OAAO,EAAA;AAACvG,MAAAA,OAAO,EAAC,MAAM;AAACE,MAAAA,cAAc,EAAC,QAAQ;AAACD,MAAAA,UAAU,EAAC,QAAQ;MAAA2G,QAAA,eACjEC,GAAA,CAACC,IAAI,EAAA;AAACxB,QAAAA,IAAI,EAAC,QAAQ;AAACyB,QAAAA,MAAM,EAAC,UAAU;AAAAH,QAAAA,QAAA,EAClCvD,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,KAAA,CAAA,GAALA,KAAK,GAAI+B,YAAAA;OACN,CAAA;AAAC,KACA,CACV,eACDkB,IAAA,CAACC,OAAO,EAAA;AACNvG,MAAAA,OAAO,EAAC,MAAM;AACdgH,MAAAA,IAAI,EAAE,CAAE;AACRC,MAAAA,GAAG,EAAC,WAAW;AACf/G,MAAAA,cAAc,EAAC,UAAU;AACzBD,MAAAA,UAAU,EAAC,QAAQ;MAAA2G,QAAA,EAAA,CAElB3D,kBAAkB,IAAI,CAACyC,QAAQ,iBAC9BY,IAAA,CAACC,OAAO,EAAA;AAACvG,QAAAA,OAAO,EAAC,MAAM;AAACyG,QAAAA,aAAa,EAAC,KAAK;AAACxG,QAAAA,UAAU,EAAC,QAAQ;QAAA2G,QAAA,EAAA,cAC7DN,IAAA,CAACY,QAAQ,EAAA;AAACC,UAAAA,aAAa,EAAC,QAAQ;UAAAP,QAAA,EAAA,cAC9BC,GAAA,CAACO,WAAW,EAAA;AACVC,YAAAA,kBAAkB,EAAC,sBAAsB;AACzCC,YAAAA,IAAI,EAAC,WAAW;AAChBjE,YAAAA,KAAK,EAAC,EAAE;AACRkE,YAAAA,aAAa,EAAC,cAAc;AAC5BC,YAAAA,WAAW,EAAC,EAAE;AACdC,YAAAA,QAAQ,EAAE,SAAAA,QAAAC,CAAAA,KAAA,EAAgB;AAAA,cAAA,IAAbC,MAAM,GAAAD,KAAA,CAANC,MAAM,CAAA;cACjBxB,oBAAoB,CAACyB,MAAM,CAACD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;aACvC;AACFE,YAAAA,YAAY,EAAErD,eAAe,CAACsD,QAAQ,EAAC;AAAE,WAC1C,CAAC,eACFjB,GAAA,CAACkB,eAAe,EAAA;YAAAnB,QAAA,eACdC,GAAA,CAACmB,UAAU,EAAA;cAAApB,QAAA,EACRjI,eAAe,CAACsJ,GAAG,CAAC,UAACC,IAAI,EAAE5G,KAAK,EAAA;gBAAA,oBAC/BuF,GAAA,CAACsB,cAAc,EAAA;AAAaC,kBAAAA,KAAK,EAAEF,IAAI,CAACJ,QAAQ,EAAG;AAACO,kBAAAA,KAAK,EAAEH,IAAI,CAACJ,QAAQ,EAAC;AAAE,iBAAA,EAAtDxG,KAAwD,CAAC,CAAA;eAC/E,CAAA;aACS,CAAA;AAAC,WACE,CAAC,CAAA;AAAA,SACV,CAAC,eACXuF,GAAA,CAACN,OAAO,EAAA;UAAC,aAAW,EAAA,IAAA;AAAC+B,UAAAA,WAAW,EAAC,WAAW;AAACC,UAAAA,YAAY,EAAC,WAAW;UAAA3B,QAAA,eACnEC,GAAA,CAACC,IAAI,EAAA;AAAAF,YAAAA,QAAA,EAAC,aAAA;WAAiB,CAAA;AAAC,SACjB,CAAC,CAAA;AAAA,OACH,CACV,eACDN,IAAA,CAACC,OAAO,EAAA;AACNvG,QAAAA,OAAO,EAAC,MAAM;AACdyG,QAAAA,aAAa,EAAC,KAAK;AACnBQ,QAAAA,GAAG,EAAC,WAAW;AACfD,QAAAA,IAAI,EAAEtB,QAAQ,GAAG,CAAC,GAAGV,SAAU;AAC/B/E,QAAAA,UAAU,EAAC,QAAQ;QAAA2G,QAAA,EAAA,cAEnBC,GAAA,CAAC2B,MAAM,EAAA;AACLC,UAAAA,IAAI,EAAEC,eAAgB;AACtBrB,UAAAA,kBAAkB,EAAC,eAAe;AAClCsB,UAAAA,OAAO,EAAC,UAAU;UAClBC,OAAO,EAAE,SAAAA,OAAAA,GAAM;AACb/C,YAAAA,gBAAgB,CAAClD,WAAW,GAAG,CAAC,CAAC,CAAA;WACjC;UACFkG,UAAU,EAAElG,WAAW,IAAI,CAAA;AAAE,SAC9B,CAAC,EACD+C,QAAQ,iBACPmB,GAAA,CAACN,OAAO,EAAA;AAACS,UAAAA,IAAI,EAAE,CAAE;AAAC/G,UAAAA,UAAU,EAAC,QAAQ;AAACC,UAAAA,cAAc,EAAC,QAAQ;UAAA0G,QAAA,eAC3DC,GAAA,CAACC,IAAI,EAAA;AAACgC,YAAAA,SAAS,EAAC,QAAQ;YAAAlC,QAAA,EAAA,UAAA,CAAAvB,MAAA,CAAa1C,WAAW,GAAG,CAAC,EAAA,MAAA,CAAA,CAAA0C,MAAA,CAAOvE,UAAU,EAAA,QAAA,CAAA;WAAe,CAAA;AAAC,SAC9E,CACV,EACAA,UAAU,GAAG,CAAC,IAAIqC,sBAAsB,IAAI,CAACuC,QAAQ,iBACpDY,IAAA,CAACC,OAAO,EAAA;AAACU,UAAAA,GAAG,EAAC,WAAW;AAACjH,UAAAA,OAAO,EAAC,MAAM;AAACyG,UAAAA,aAAa,EAAC,KAAK;UAAAG,QAAA,EAAA,cACzDC,GAAA,CAACjI,mBAAmB,EAAA;YAClBgK,OAAO,EAAE,SAAAA,OAAA,GAAA;AAAA,cAAA,OAAM/C,gBAAgB,CAAC7D,iBAAiB,CAACP,SAAS,GAAG,CAAC,CAAC,CAAA;aAAC;AACjErC,YAAAA,UAAU,EAAEuD,WAAW,KAAKX,iBAAiB,CAACP,SAAS,GAAG,CAAE;YAAAmF,QAAA,eAE5DC,GAAA,CAACC,IAAI,EAAA;AACHxB,cAAAA,IAAI,EAAC,QAAQ;AACbyD,cAAAA,KAAK,EACHpG,WAAW,KAAKX,iBAAiB,CAACP,SAAS,GAAG,CAAC,GAC3CjC,eAAe,CAACC,mBAAmB,CAACuJ,iBAAiB,GACrDxJ,eAAe,CAACC,mBAAmB,CAACwJ,SACzC;cAAArC,QAAA,EAEA5E,iBAAiB,CAACP,SAAAA;aACf,CAAA;AAAC,WACY,CAAC,EACrBO,iBAAiB,CAACT,iBAAiB,iBAClCsF,GAAA,CAACjI,mBAAmB,EAAA4H,aAAA,CAAAA,aAAA,CAAA;YAClBoC,OAAO,EAAE,SAAAA,OAAA,GAAA;AAAA,cAAA,OAAM/C,gBAAgB,CAAClD,WAAW,GAAG,CAAC,CAAC,CAAA;aAAC;YACjDuG,WAAW,EAAE,SAAAA,WAAA,GAAA;cAAA,OAAM/D,sBAAsB,CAAC,OAAO,CAAC,CAAA;aAAC;YACnDgE,YAAY,EAAE,SAAAA,YAAA,GAAA;cAAA,OAAMhE,sBAAsB,CAACH,SAAS,CAAC,CAAA;aAAC;YACtDoE,OAAO,EAAE,SAAAA,OAAA,GAAA;cAAA,OAAMjE,sBAAsB,CAAC,OAAO,CAAC,CAAA;aAAC;YAC/CkE,MAAM,EAAE,SAAAA,MAAA,GAAA;cAAA,OAAMlE,sBAAsB,CAACH,SAAS,CAAC,CAAA;AAAA,aAAA;AAAC,WAAA,EAC5CsE,cAAc,CAAC;AAAEjG,YAAAA,KAAK,EAAE,iBAAA;AAAkB,WAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AAAAuD,YAAAA,QAAA,EAE/C1B,mBAAmB,KAAK,OAAO,gBAC9B2B,GAAA,CAAC0C,gBAAgB,EAAA;AAACjE,cAAAA,IAAI,EAAC,QAAA;AAAQ,aAAE,CAAC,gBAElCuB,GAAA,CAAC2C,kBAAkB,EAAA;AAAClE,cAAAA,IAAI,EAAC,QAAA;aAAU,CAAA;WAElB,CAAA,CACtB,EACAtD,iBAAiB,CAACf,WAAW,CAACgH,GAAG,CAAC,UAACC,IAAI,EAAA;AAAA,YAAA,oBACtCrB,GAAA,CAACjI,mBAAmB,EAAA4H,aAAA,CAAAA,aAAA,CAAA;cAElBoC,OAAO,EAAE,SAAAA,OAAA,GAAA;AAAA,gBAAA,OAAM/C,gBAAgB,CAACqC,IAAI,GAAG,CAAC,CAAC,CAAA;eAAC;AAC1C9I,cAAAA,UAAU,EAAEuD,WAAW,KAAKuF,IAAI,GAAG,CAAA;AAAE,aAAA,EACjCoB,cAAc,CAAC;cAAEjG,KAAK,EAAA,OAAA,CAAAgC,MAAA,CAAU6C,IAAI,CAAA;AAAG,aAAC,CAAC,CAAA,EAAA,EAAA,EAAA;cAAAtB,QAAA,eAE7CC,GAAA,CAACC,IAAI,EAAA;AACHxB,gBAAAA,IAAI,EAAC,QAAQ;AACbyD,gBAAAA,KAAK,EACHpG,WAAW,KAAKuF,IAAI,GAAG,CAAC,GACpB1I,eAAe,CAACC,mBAAmB,CAACuJ,iBAAiB,GACrDxJ,eAAe,CAACC,mBAAmB,CAACwJ,SACzC;AAAArC,gBAAAA,QAAA,EAEAsB,IAAAA;eACG,CAAA;aAdDA,CAAAA,EAAAA,IAAI,GAAG,CAeO,CAAC,CAAA;AAAA,WACvB,CAAC,EACDlG,iBAAiB,CAACR,eAAe,iBAChCqF,GAAA,CAACjI,mBAAmB,EAAA4H,aAAA,CAAAA,aAAA,CAAA;YAClBoC,OAAO,EAAE,SAAAA,OAAA,GAAA;AAAA,cAAA,OAAM/C,gBAAgB,CAAClD,WAAW,GAAG,CAAC,CAAC,CAAA;aAAC;YACjDuG,WAAW,EAAE,SAAAA,WAAA,GAAA;cAAA,OAAM/D,sBAAsB,CAAC,KAAK,CAAC,CAAA;aAAC;YACjDgE,YAAY,EAAE,SAAAA,YAAA,GAAA;cAAA,OAAMhE,sBAAsB,CAACH,SAAS,CAAC,CAAA;aAAC;YACtDoE,OAAO,EAAE,SAAAA,OAAA,GAAA;cAAA,OAAMjE,sBAAsB,CAAC,KAAK,CAAC,CAAA;aAAC;YAC7CkE,MAAM,EAAE,SAAAA,MAAA,GAAA;cAAA,OAAMlE,sBAAsB,CAACH,SAAS,CAAC,CAAA;AAAA,aAAA;AAAC,WAAA,EAC5CsE,cAAc,CAAC;AAAEjG,YAAAA,KAAK,EAAE,oBAAA;AAAqB,WAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AAAAuD,YAAAA,QAAA,EAElD1B,mBAAmB,KAAK,KAAK,gBAC5B2B,GAAA,CAAC4C,iBAAiB,EAAA;AAACnE,cAAAA,IAAI,EAAC,QAAA;AAAQ,aAAE,CAAC,gBAEnCuB,GAAA,CAAC2C,kBAAkB,EAAA;AAAClE,cAAAA,IAAI,EAAC,QAAA;aAAU,CAAA;AACpC,WAAA,CACkB,CACtB,eACDuB,GAAA,CAACjI,mBAAmB,EAAA;YAClBgK,OAAO,EAAE,SAAAA,OAAA,GAAA;AAAA,cAAA,OAAM/C,gBAAgB,CAAC7D,iBAAiB,CAACN,QAAQ,GAAG,CAAC,CAAC,CAAA;aAAC;AAChEtC,YAAAA,UAAU,EAAEuD,WAAW,KAAKX,iBAAiB,CAACN,QAAQ,GAAG,CAAE;YAAAkF,QAAA,eAE3DC,GAAA,CAACC,IAAI,EAAA;AACHxB,cAAAA,IAAI,EAAC,QAAQ;AACbyD,cAAAA,KAAK,EACHpG,WAAW,KAAKX,iBAAiB,CAACN,QAAQ,GAAG,CAAC,GAC1ClC,eAAe,CAACC,mBAAmB,CAACuJ,iBAAiB,GACrDxJ,eAAe,CAACC,mBAAmB,CAACwJ,SACzC;cAAArC,QAAA,EAEA5E,iBAAiB,CAACN,QAAAA;aACf,CAAA;AAAC,WACY,CAAC,CAAA;AAAA,SACf,CACV,eACDmF,GAAA,CAAC2B,MAAM,EAAA;AACLG,UAAAA,OAAO,EAAC,UAAU;AAClBF,UAAAA,IAAI,EAAEiB,gBAAiB;AACvBrC,UAAAA,kBAAkB,EAAC,WAAW;UAC9BuB,OAAO,EAAE,SAAAA,OAAAA,GAAM;AACb/C,YAAAA,gBAAgB,CAAClD,WAAW,GAAG,CAAC,CAAC,CAAA;WACjC;UACFkG,UAAU,EAAExC,qBAAqB,EAAC;AAAE,SACrC,CAAC,CAAA;AAAA,OACK,CAAC,CAAA;AAAA,KACH,CAAC,CAAA;AAAA,GAAA,CACH,CAAC,CAAA;AAEd,CAAC,CAAA;AAED,IAAMsD,eAAe,gBAAGC,wBAAwB,CAACrH,gBAAgB,EAAE;EACjEtD,WAAW,EAAE4K,YAAY,CAACF,eAAAA;AAC5B,CAAC;;;;"}
|
|
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 { TablePaginationCommonProps, 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';\nimport { getFocusRingStyles } from '~utils/getFocusRingStyles';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\n\nconst pageSizeOptions: NonNullable<TablePaginationCommonProps['defaultPageSize']>[] = [10, 25, 50];\n\nconst PageSelectionButton = styled.button.attrs(() => {\n return {\n ...metaAttribute({ name: MetaConstants.TablePageSelectionButton }),\n };\n})<{ 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': getFocusRingStyles({ theme }),\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 totalItemCount,\n paginationType = 'client',\n ...rest\n}: TablePaginationProps): React.ReactElement => {\n const {\n setPaginationPage,\n currentPaginationState,\n totalItems,\n setPaginationRowSize,\n setPaginationType,\n backgroundColor,\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 setPaginationType(paginationType);\n }, []);\n\n useEffect(() => {\n if (currentPage && currentPaginationState?.page !== currentPage) {\n setPaginationPage(currentPage);\n }\n }, [currentPage, currentPaginationState?.page, setPaginationPage]);\n\n const totalPages = isUndefined(totalItemCount)\n ? Math.ceil(totalItems / currentPageSize)\n : Math.ceil(totalItemCount / 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 (__DEV__) {\n if (paginationType === 'server' && (isUndefined(totalItemCount) || isUndefined(onPageChange))) {\n throwBladeError({\n message:\n '`onPageChange` and `totalItemCount` props are required when paginationType is server.',\n moduleName: 'TablePagination',\n });\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={backgroundColor}\n {...makeAnalyticsAttribute(rest)}\n >\n {showLabel && !onMobile && (\n <BaseBox display=\"flex\" justifyContent=\"center\" alignItems=\"center\">\n <Text size=\"medium\" weight=\"semibold\">\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","attrs","_objectSpread","metaAttribute","name","MetaConstants","TablePageSelectionButton","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","getFocusRingStyles","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","totalItemCount","_ref3$paginationType","paginationType","rest","_objectWithoutProperties","_excluded","_useTableContext","useTableContext","setPaginationPage","currentPaginationState","totalItems","setPaginationRowSize","setPaginationType","_React$useState","React","useState","_React$useState2","_slicedToArray","currentPageSize","setCurrentPageSize","_React$useState3","isUndefined","page","_React$useState4","setCurrentPage","_React$useState5","undefined","_React$useState6","currentEllipseHover","setCurrentEllipseHover","defaultLabel","concat","size","_useTheme","useTheme","platform","onMobile","useEffect","ceil","handlePageChange","useCallback","pageToJumpTo","throwBladeError","message","moduleName","handlePageSizeChange","pageSize","shouldDisableNextPage","_jsxs","BaseBox","flexDirection","padding","makeAnalyticsAttribute","children","_jsx","Text","weight","flex","gap","Dropdown","selectionType","SelectInput","accessibilityLabel","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","onMouseOver","onMouseLeave","onFocus","onBlur","makeAccessible","ChevronsLeftIcon","MoreHorizontalIcon","ChevronsRightIcon","ChevronRightIcon","TablePagination","assignWithoutSideEffects","ComponentIds"],"mappings":"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"}
|
|
@@ -11,18 +11,16 @@ import '../../Divider/index.js';
|
|
|
11
11
|
import '../../../utils/index.js';
|
|
12
12
|
import '../../../tokens/global/index.js';
|
|
13
13
|
import '../../../utils/metaAttribute/index.js';
|
|
14
|
-
import '../../Box/index.js';
|
|
15
14
|
import '../../../utils/makeAnalyticsAttribute/index.js';
|
|
16
15
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
17
|
-
import {
|
|
16
|
+
import { BaseBox } from '../../Box/BaseBox/BaseBox.web.js';
|
|
17
|
+
import { metaAttribute } from '../../../utils/metaAttribute/metaAttribute.web.js';
|
|
18
|
+
import { MetaConstants } from '../../../utils/metaAttribute/metaConstants.js';
|
|
18
19
|
import { makeAnalyticsAttribute } from '../../../utils/makeAnalyticsAttribute/makeAnalyticsAttribute.js';
|
|
19
20
|
import { Divider } from '../../Divider/Divider.js';
|
|
20
21
|
import { makeSize } from '../../../utils/makeSize/makeSize.js';
|
|
21
22
|
import { size } from '../../../tokens/global/size.js';
|
|
22
|
-
import { BaseBox } from '../../Box/BaseBox/BaseBox.web.js';
|
|
23
23
|
import { getStyledProps } from '../../Box/styledProps/getStyledProps.js';
|
|
24
|
-
import { metaAttribute } from '../../../utils/metaAttribute/metaAttribute.web.js';
|
|
25
|
-
import { MetaConstants } from '../../../utils/metaAttribute/metaConstants.js';
|
|
26
24
|
|
|
27
25
|
var _excluded = ["children"],
|
|
28
26
|
_excluded2 = ["children", "items"];
|
|
@@ -31,13 +29,15 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
31
29
|
var TabNavItems = function TabNavItems(_ref) {
|
|
32
30
|
var children = _ref.children,
|
|
33
31
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
34
|
-
return /*#__PURE__*/jsxs(
|
|
32
|
+
return /*#__PURE__*/jsxs(BaseBox, _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, rest), {}, {
|
|
35
33
|
display: "flex",
|
|
36
34
|
width: "100%",
|
|
37
35
|
gap: "spacing.0",
|
|
38
36
|
position: "relative",
|
|
39
37
|
left: "-1px"
|
|
40
|
-
},
|
|
38
|
+
}, metaAttribute({
|
|
39
|
+
name: MetaConstants.TabNavItems
|
|
40
|
+
})), makeAnalyticsAttribute(rest)), {}, {
|
|
41
41
|
children: [React__default.Children.map(children, function (child, index) {
|
|
42
42
|
return /*#__PURE__*/jsxs(Fragment, {
|
|
43
43
|
children: [index > 0 ? /*#__PURE__*/jsx(Divider, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabNav.web.js","sources":["../../../../../../../src/components/TopNav/TabNav/TabNav.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable consistent-return */\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { TabNavContext } from './TabNavContext';\nimport { useResize } from './utils';\nimport type { TabNavItemData, TabNavProps } from './types';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { Divider } from '~components/Divider';\nimport { makeSize } from '~utils';\nimport { size } from '~tokens/global';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport type { BoxProps } from '~components/Box';\nimport { Box } from '~components/Box';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst TabNavItems = ({ children, ...rest }: BoxProps): React.ReactElement => {\n return (\n <Box\n {...rest}\n display=\"flex\"\n width=\"100%\"\n gap=\"spacing.0\"\n position=\"relative\"\n left=\"-1px\"\n {...makeAnalyticsAttribute(rest)}\n >\n {React.Children.map(children, (child, index) => {\n return (\n <>\n {index > 0 ? (\n <Divider\n margin=\"auto\"\n variant=\"muted\"\n orientation=\"vertical\"\n height={makeSize(size[16])}\n />\n ) : null}\n {React.cloneElement(child as React.ReactElement, {\n __isInsideTabNavItems: true,\n __index: index,\n })}\n </>\n );\n })}\n <Divider margin=\"auto\" variant=\"muted\" orientation=\"vertical\" height={makeSize(size[16])} />\n </Box>\n );\n};\n\nconst TabNav = ({\n children,\n items,\n ...styledProps\n}: TabNavProps & StyledPropsBlade): React.ReactElement => {\n const ref = React.useRef<HTMLDivElement>(null);\n const [controlledItems, setControlledItems] = React.useState<TabNavItemData[]>(items);\n\n const overflowingItems = controlledItems.filter(\n (item) => item.isAlwaysOverflowing ?? item.isOverflowing,\n );\n const _items = controlledItems.filter((item) => !item.isAlwaysOverflowing && !item.isOverflowing);\n\n // We need to memoize this callback otherwise it will cause infinite re-renders\n // Because the ResizeObserver callback will be a new reference on every render\n // and it will trigger a re-render\n const resizeCallback = React.useCallback((resizeInfo: ResizeObserverEntry): void => {\n const target = resizeInfo.target as HTMLElement;\n const updateItems = (): void => {\n setControlledItems((items) => {\n return items.map((item, index) => {\n // never overflow the first item\n if (index === 0) return { ...item, isOverflowing: false };\n // add padding to the offsetX to account the \"More\" menu's width changing due to the selection state (eg: More:ProdctName)\n // Currently, hardcoding this to 150, we can make this dynamic too but that's causing layout thrashing\n // because first we need to calculate the width of the \"More\" menu and then update the items\n const padding = 150;\n const offset = (item.offsetX! + padding)! - target.getBoundingClientRect().left;\n if (offset > target.offsetWidth) {\n return { ...item, isOverflowing: true };\n } else {\n return { ...item, isOverflowing: false };\n }\n });\n });\n };\n // https://github.com/webpack/webpack/issues/14814\n const flushSync = (ReactDOM as any)['flushSync'.toString()];\n // Using flushSync to avoid layout thrashing,\n // this will force React to flush all pending updates and only then update the DOM\n if (flushSync !== undefined) {\n flushSync(updateItems);\n } else {\n updateItems();\n }\n }, []);\n\n useResize(ref, resizeCallback);\n\n return (\n <TabNavContext.Provider value={{ containerRef: ref, controlledItems, setControlledItems }}>\n <BaseBox\n as=\"nav\"\n display=\"flex\"\n width=\"100%\"\n alignItems=\"center\"\n alignSelf=\"end\"\n position=\"relative\"\n {...getStyledProps(styledProps)}\n {...metaAttribute({ name: MetaConstants.TabNav })}\n ref={ref}\n >\n <BaseBox display=\"flex\" width=\"100%\" position=\"relative\">\n <BaseBox display=\"flex\" flexDirection=\"row\" width=\"max-content\">\n {children({ items: _items, overflowingItems })}\n </BaseBox>\n </BaseBox>\n </BaseBox>\n </TabNavContext.Provider>\n );\n};\n\nexport { TabNav, TabNavItems };\n"],"names":["TabNavItems","_ref","children","rest","_objectWithoutProperties","_excluded","_jsxs","Box","_objectSpread","display","width","gap","position","left","makeAnalyticsAttribute","React","Children","map","child","index","_Fragment","_jsx","Divider","margin","variant","orientation","height","makeSize","size","cloneElement","__isInsideTabNavItems","__index","TabNav","_ref2","items","styledProps","_excluded2","ref","useRef","_React$useState","useState","_React$useState2","_slicedToArray","controlledItems","setControlledItems","overflowingItems","filter","item","_item$isAlwaysOverflo","isAlwaysOverflowing","isOverflowing","_items","resizeCallback","useCallback","resizeInfo","target","updateItems","padding","offset","offsetX","getBoundingClientRect","offsetWidth","flushSync","ReactDOM","toString","undefined","useResize","TabNavContext","Provider","value","containerRef","BaseBox","as","alignItems","alignSelf","getStyledProps","metaAttribute","name","MetaConstants","flexDirection"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TabNav.web.js","sources":["../../../../../../../src/components/TopNav/TabNav/TabNav.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable consistent-return */\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { TabNavContext } from './TabNavContext';\nimport { useResize } from './utils';\nimport type { TabNavItemData, TabNavProps } from './types';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { Divider } from '~components/Divider';\nimport { makeSize } from '~utils';\nimport { size } from '~tokens/global';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport type { BoxProps } from '~components/Box';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst TabNavItems = ({ children, ...rest }: BoxProps): React.ReactElement => {\n return (\n <BaseBox\n {...rest}\n display=\"flex\"\n width=\"100%\"\n gap=\"spacing.0\"\n position=\"relative\"\n left=\"-1px\"\n {...metaAttribute({ name: MetaConstants.TabNavItems })}\n {...makeAnalyticsAttribute(rest)}\n >\n {React.Children.map(children, (child, index) => {\n return (\n <>\n {index > 0 ? (\n <Divider\n margin=\"auto\"\n variant=\"muted\"\n orientation=\"vertical\"\n height={makeSize(size[16])}\n />\n ) : null}\n {React.cloneElement(child as React.ReactElement, {\n __isInsideTabNavItems: true,\n __index: index,\n })}\n </>\n );\n })}\n <Divider margin=\"auto\" variant=\"muted\" orientation=\"vertical\" height={makeSize(size[16])} />\n </BaseBox>\n );\n};\n\nconst TabNav = ({\n children,\n items,\n ...styledProps\n}: TabNavProps & StyledPropsBlade): React.ReactElement => {\n const ref = React.useRef<HTMLDivElement>(null);\n const [controlledItems, setControlledItems] = React.useState<TabNavItemData[]>(items);\n\n const overflowingItems = controlledItems.filter(\n (item) => item.isAlwaysOverflowing ?? item.isOverflowing,\n );\n const _items = controlledItems.filter((item) => !item.isAlwaysOverflowing && !item.isOverflowing);\n\n // We need to memoize this callback otherwise it will cause infinite re-renders\n // Because the ResizeObserver callback will be a new reference on every render\n // and it will trigger a re-render\n const resizeCallback = React.useCallback((resizeInfo: ResizeObserverEntry): void => {\n const target = resizeInfo.target as HTMLElement;\n const updateItems = (): void => {\n setControlledItems((items) => {\n return items.map((item, index) => {\n // never overflow the first item\n if (index === 0) return { ...item, isOverflowing: false };\n // add padding to the offsetX to account the \"More\" menu's width changing due to the selection state (eg: More:ProdctName)\n // Currently, hardcoding this to 150, we can make this dynamic too but that's causing layout thrashing\n // because first we need to calculate the width of the \"More\" menu and then update the items\n const padding = 150;\n const offset = (item.offsetX! + padding)! - target.getBoundingClientRect().left;\n if (offset > target.offsetWidth) {\n return { ...item, isOverflowing: true };\n } else {\n return { ...item, isOverflowing: false };\n }\n });\n });\n };\n // https://github.com/webpack/webpack/issues/14814\n const flushSync = (ReactDOM as any)['flushSync'.toString()];\n // Using flushSync to avoid layout thrashing,\n // this will force React to flush all pending updates and only then update the DOM\n if (flushSync !== undefined) {\n flushSync(updateItems);\n } else {\n updateItems();\n }\n }, []);\n\n useResize(ref, resizeCallback);\n\n return (\n <TabNavContext.Provider value={{ containerRef: ref, controlledItems, setControlledItems }}>\n <BaseBox\n as=\"nav\"\n display=\"flex\"\n width=\"100%\"\n alignItems=\"center\"\n alignSelf=\"end\"\n position=\"relative\"\n {...getStyledProps(styledProps)}\n {...metaAttribute({ name: MetaConstants.TabNav })}\n ref={ref}\n >\n <BaseBox display=\"flex\" width=\"100%\" position=\"relative\">\n <BaseBox display=\"flex\" flexDirection=\"row\" width=\"max-content\">\n {children({ items: _items, overflowingItems })}\n </BaseBox>\n </BaseBox>\n </BaseBox>\n </TabNavContext.Provider>\n );\n};\n\nexport { TabNav, TabNavItems };\n"],"names":["TabNavItems","_ref","children","rest","_objectWithoutProperties","_excluded","_jsxs","BaseBox","_objectSpread","display","width","gap","position","left","metaAttribute","name","MetaConstants","makeAnalyticsAttribute","React","Children","map","child","index","_Fragment","_jsx","Divider","margin","variant","orientation","height","makeSize","size","cloneElement","__isInsideTabNavItems","__index","TabNav","_ref2","items","styledProps","_excluded2","ref","useRef","_React$useState","useState","_React$useState2","_slicedToArray","controlledItems","setControlledItems","overflowingItems","filter","item","_item$isAlwaysOverflo","isAlwaysOverflowing","isOverflowing","_items","resizeCallback","useCallback","resizeInfo","target","updateItems","padding","offset","offsetX","getBoundingClientRect","offsetWidth","flushSync","ReactDOM","toString","undefined","useResize","TabNavContext","Provider","value","containerRef","as","alignItems","alignSelf","getStyledProps","flexDirection"],"mappings":"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"}
|
|
@@ -165,14 +165,16 @@ var _TabNavItem = function _TabNavItem(_ref4, ref) {
|
|
|
165
165
|
})), {}, {
|
|
166
166
|
children: [/*#__PURE__*/jsx(SelectedBar, {
|
|
167
167
|
isActive: isActive
|
|
168
|
-
}), /*#__PURE__*/jsxs(StyledTabNavItem, _objectSpread(_objectSpread(_objectSpread({
|
|
168
|
+
}), /*#__PURE__*/jsxs(StyledTabNavItem, _objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
169
169
|
ref: ref,
|
|
170
170
|
as: as !== null && as !== void 0 ? as : href ? 'a' : 'button',
|
|
171
171
|
to: href,
|
|
172
172
|
href: as ? undefined : href,
|
|
173
173
|
target: target,
|
|
174
174
|
$isActive: isActive
|
|
175
|
-
}, props),
|
|
175
|
+
}, props), metaAttribute({
|
|
176
|
+
name: MetaConstants.TabNavItemLink
|
|
177
|
+
})), makeAccessible({
|
|
176
178
|
label: accessibilityLabel,
|
|
177
179
|
current: isActive
|
|
178
180
|
})), {}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabNavItem.web.js","sources":["../../../../../../../src/components/TopNav/TabNav/TabNavItem.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-asserted-optional-chain */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable consistent-return */\nimport React from 'react';\nimport styled from 'styled-components';\nimport type { TabNavItemProps } from './types';\nimport { useTabNavContext } from './TabNavContext';\nimport { MIXED_BG_COLOR } from './utils';\nimport BaseBox from '~components/Box/BaseBox';\nimport getTextStyles from '~components/Typography/Text/getTextStyles';\nimport { makeBorderSize, makeMotionTime, makeSize, makeSpace } from '~utils';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { size } from '~tokens/global';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { useIsomorphicLayoutEffect } from '~utils/useIsomorphicLayoutEffect';\n\nconst StyledTabNavItem = styled.a<{ $isActive?: boolean }>(({ theme, $isActive }) => {\n return {\n ...getTextStyles({\n theme,\n size: 'medium',\n weight: 'medium',\n color: $isActive ? 'interactive.text.gray.normal' : 'interactive.text.gray.subtle',\n }),\n flex: 1,\n display: 'flex',\n gap: makeSpace(theme.spacing[2]),\n alignItems: 'center',\n justifyContent: 'center',\n height: '100%',\n textDecoration: 'none',\n whiteSpace: 'nowrap',\n paddingTop: makeSpace(theme.spacing[3]),\n paddingBottom: makeSpace(theme.spacing[3]),\n paddingLeft: makeSpace(theme.spacing[4]),\n paddingRight: makeSpace(theme.spacing[4]),\n borderRadius: makeBorderSize(theme.border.radius.medium),\n // reset button styles\n border: 'none',\n background: 'none',\n '&[aria-expanded=\"true\"]': $isActive\n ? {}\n : {\n backgroundColor: theme.colors.interactive.background.gray.default,\n },\n '&:hover': $isActive\n ? {}\n : {\n backgroundColor: theme.colors.interactive.background.gray.default,\n },\n };\n});\n\nconst StyledTabNavItemWrapper = styled(BaseBox)<{\n isActive?: boolean;\n}>(({ theme, isActive }) => {\n const dividerHiderStyle = {\n content: '\"\"',\n position: 'absolute',\n top: '50%',\n transform: 'translateY(-50%)',\n width: makeSize(size[1]),\n height: makeSize(size[16]),\n backgroundColor: MIXED_BG_COLOR,\n } as const;\n\n return {\n position: 'relative',\n flexShrink: 0,\n padding: `${makeSpace(theme.spacing[2])} ${makeSpace(theme.spacing[1])}`,\n backgroundColor: isActive ? theme.colors.surface.background.gray.moderate : 'transparent',\n borderColor: isActive ? theme.colors.surface.border.gray.muted : 'transparent',\n borderStyle: 'solid',\n borderWidth: makeBorderSize(theme.border.width.thin),\n borderBottomWidth: 0,\n borderTopLeftRadius: makeBorderSize(theme.border.radius.medium),\n borderTopRightRadius: makeBorderSize(theme.border.radius.medium),\n transition: `${makeMotionTime(theme.motion.duration.moderate)} ${theme.motion.easing.standard}`,\n transitionProperty: 'background',\n\n // Hide the left and right divider by overlaying them with a pseudo element as same color as the background\n ...(isActive\n ? {\n ':before, :after': dividerHiderStyle,\n ':before': {\n left: -2,\n },\n ':after': {\n right: -2,\n },\n }\n : {}),\n };\n});\n\nconst SelectedBar = styled(BaseBox)<{ isActive?: boolean }>(({ theme, isActive }) => {\n return {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n height: makeSpace(theme.spacing[1]),\n borderTopLeftRadius: makeBorderSize(theme.border.radius.medium),\n borderTopRightRadius: makeBorderSize(theme.border.radius.medium),\n backgroundColor: theme.colors.interactive.icon.gray.normal,\n pointerEvents: 'none',\n // Animation\n opacity: isActive ? 1 : 0,\n transition: `${makeMotionTime(theme.motion.duration.moderate)} ${theme.motion.easing.standard}`,\n transitionProperty: 'opacity',\n };\n});\n\nconst _TabNavItem: React.ForwardRefRenderFunction<HTMLAnchorElement, TabNavItemProps> = (\n {\n as,\n title,\n isActive,\n icon: Icon,\n trailing,\n accessibilityLabel,\n href,\n target,\n // @ts-expect-error - This prop is only used internally\n __isInsideTabNavItems,\n // @ts-expect-error - This prop is only used internally\n __index,\n ...props\n },\n ref,\n): React.ReactElement => {\n const { setControlledItems } = useTabNavContext();\n const bodyRef = React.useRef<HTMLDivElement>(null);\n\n // Update the controlledItems with the tabWidth and offsetX\n useIsomorphicLayoutEffect(() => {\n if (!bodyRef.current) return;\n if (!__isInsideTabNavItems) return;\n setControlledItems((prev) => {\n return prev.map((item, index) => {\n if (index !== __index) return item;\n const bounds = bodyRef?.current?.getBoundingClientRect()!;\n const tabWidth = bounds.width;\n const offsetX = bounds.right;\n return {\n ...item,\n tabWidth,\n offsetX,\n };\n });\n });\n }, [__isInsideTabNavItems, __index, setControlledItems]);\n\n return (\n <StyledTabNavItemWrapper\n ref={bodyRef}\n isActive={isActive}\n {...metaAttribute({ name: MetaConstants.TabNavItem })}\n >\n <SelectedBar isActive={isActive} />\n <StyledTabNavItem\n ref={ref}\n as={as ?? (href ? 'a' : 'button')}\n to={href}\n href={as ? undefined : href}\n target={target}\n $isActive={isActive}\n {...props}\n {...makeAccessible({ label: accessibilityLabel, current: isActive })}\n >\n {Icon ? (\n <Icon\n size=\"large\"\n color={isActive ? 'interactive.icon.gray.normal' : 'surface.icon.gray.subtle'}\n />\n ) : null}\n {title}\n {trailing ? trailing : null}\n </StyledTabNavItem>\n </StyledTabNavItemWrapper>\n );\n};\n\nconst TabNavItem = assignWithoutSideEffects(React.forwardRef(_TabNavItem), {\n displayName: 'TabNavItem',\n});\n\nexport { TabNavItem };\n"],"names":["StyledTabNavItem","styled","a","withConfig","displayName","componentId","_ref","theme","$isActive","_objectSpread","getTextStyles","size","weight","color","flex","display","gap","makeSpace","spacing","alignItems","justifyContent","height","textDecoration","whiteSpace","paddingTop","paddingBottom","paddingLeft","paddingRight","borderRadius","makeBorderSize","border","radius","medium","background","backgroundColor","colors","interactive","gray","StyledTabNavItemWrapper","BaseBox","_ref2","isActive","dividerHiderStyle","content","position","top","transform","width","makeSize","MIXED_BG_COLOR","flexShrink","padding","concat","surface","moderate","borderColor","muted","borderStyle","borderWidth","thin","borderBottomWidth","borderTopLeftRadius","borderTopRightRadius","transition","makeMotionTime","motion","duration","easing","standard","transitionProperty","left","right","SelectedBar","_ref3","icon","normal","pointerEvents","opacity","_TabNavItem","_ref4","ref","as","title","Icon","trailing","accessibilityLabel","href","target","__isInsideTabNavItems","__index","props","_objectWithoutProperties","_excluded","_useTabNavContext","useTabNavContext","setControlledItems","bodyRef","React","useRef","useIsomorphicLayoutEffect","current","prev","map","item","index","_bodyRef$current","bounds","getBoundingClientRect","tabWidth","offsetX","_jsxs","metaAttribute","name","MetaConstants","TabNavItem","children","_jsx","to","undefined","makeAccessible","label","assignWithoutSideEffects","forwardRef"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TabNavItem.web.js","sources":["../../../../../../../src/components/TopNav/TabNav/TabNavItem.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-asserted-optional-chain */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable consistent-return */\nimport React from 'react';\nimport styled from 'styled-components';\nimport type { TabNavItemProps } from './types';\nimport { useTabNavContext } from './TabNavContext';\nimport { MIXED_BG_COLOR } from './utils';\nimport BaseBox from '~components/Box/BaseBox';\nimport getTextStyles from '~components/Typography/Text/getTextStyles';\nimport { makeBorderSize, makeMotionTime, makeSize, makeSpace } from '~utils';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { size } from '~tokens/global';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { useIsomorphicLayoutEffect } from '~utils/useIsomorphicLayoutEffect';\n\nconst StyledTabNavItem = styled.a<{ $isActive?: boolean }>(({ theme, $isActive }) => {\n return {\n ...getTextStyles({\n theme,\n size: 'medium',\n weight: 'medium',\n color: $isActive ? 'interactive.text.gray.normal' : 'interactive.text.gray.subtle',\n }),\n flex: 1,\n display: 'flex',\n gap: makeSpace(theme.spacing[2]),\n alignItems: 'center',\n justifyContent: 'center',\n height: '100%',\n textDecoration: 'none',\n whiteSpace: 'nowrap',\n paddingTop: makeSpace(theme.spacing[3]),\n paddingBottom: makeSpace(theme.spacing[3]),\n paddingLeft: makeSpace(theme.spacing[4]),\n paddingRight: makeSpace(theme.spacing[4]),\n borderRadius: makeBorderSize(theme.border.radius.medium),\n // reset button styles\n border: 'none',\n background: 'none',\n '&[aria-expanded=\"true\"]': $isActive\n ? {}\n : {\n backgroundColor: theme.colors.interactive.background.gray.default,\n },\n '&:hover': $isActive\n ? {}\n : {\n backgroundColor: theme.colors.interactive.background.gray.default,\n },\n };\n});\n\nconst StyledTabNavItemWrapper = styled(BaseBox)<{\n isActive?: boolean;\n}>(({ theme, isActive }) => {\n const dividerHiderStyle = {\n content: '\"\"',\n position: 'absolute',\n top: '50%',\n transform: 'translateY(-50%)',\n width: makeSize(size[1]),\n height: makeSize(size[16]),\n backgroundColor: MIXED_BG_COLOR,\n } as const;\n\n return {\n position: 'relative',\n flexShrink: 0,\n padding: `${makeSpace(theme.spacing[2])} ${makeSpace(theme.spacing[1])}`,\n backgroundColor: isActive ? theme.colors.surface.background.gray.moderate : 'transparent',\n borderColor: isActive ? theme.colors.surface.border.gray.muted : 'transparent',\n borderStyle: 'solid',\n borderWidth: makeBorderSize(theme.border.width.thin),\n borderBottomWidth: 0,\n borderTopLeftRadius: makeBorderSize(theme.border.radius.medium),\n borderTopRightRadius: makeBorderSize(theme.border.radius.medium),\n transition: `${makeMotionTime(theme.motion.duration.moderate)} ${theme.motion.easing.standard}`,\n transitionProperty: 'background',\n\n // Hide the left and right divider by overlaying them with a pseudo element as same color as the background\n ...(isActive\n ? {\n ':before, :after': dividerHiderStyle,\n ':before': {\n left: -2,\n },\n ':after': {\n right: -2,\n },\n }\n : {}),\n };\n});\n\nconst SelectedBar = styled(BaseBox)<{ isActive?: boolean }>(({ theme, isActive }) => {\n return {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n height: makeSpace(theme.spacing[1]),\n borderTopLeftRadius: makeBorderSize(theme.border.radius.medium),\n borderTopRightRadius: makeBorderSize(theme.border.radius.medium),\n backgroundColor: theme.colors.interactive.icon.gray.normal,\n pointerEvents: 'none',\n // Animation\n opacity: isActive ? 1 : 0,\n transition: `${makeMotionTime(theme.motion.duration.moderate)} ${theme.motion.easing.standard}`,\n transitionProperty: 'opacity',\n };\n});\n\nconst _TabNavItem: React.ForwardRefRenderFunction<HTMLAnchorElement, TabNavItemProps> = (\n {\n as,\n title,\n isActive,\n icon: Icon,\n trailing,\n accessibilityLabel,\n href,\n target,\n // @ts-expect-error - This prop is only used internally\n __isInsideTabNavItems,\n // @ts-expect-error - This prop is only used internally\n __index,\n ...props\n },\n ref,\n): React.ReactElement => {\n const { setControlledItems } = useTabNavContext();\n const bodyRef = React.useRef<HTMLDivElement>(null);\n\n // Update the controlledItems with the tabWidth and offsetX\n useIsomorphicLayoutEffect(() => {\n if (!bodyRef.current) return;\n if (!__isInsideTabNavItems) return;\n setControlledItems((prev) => {\n return prev.map((item, index) => {\n if (index !== __index) return item;\n const bounds = bodyRef?.current?.getBoundingClientRect()!;\n const tabWidth = bounds.width;\n const offsetX = bounds.right;\n return {\n ...item,\n tabWidth,\n offsetX,\n };\n });\n });\n }, [__isInsideTabNavItems, __index, setControlledItems]);\n\n return (\n <StyledTabNavItemWrapper\n ref={bodyRef}\n isActive={isActive}\n {...metaAttribute({ name: MetaConstants.TabNavItem })}\n >\n <SelectedBar isActive={isActive} />\n <StyledTabNavItem\n ref={ref}\n as={as ?? (href ? 'a' : 'button')}\n to={href}\n href={as ? undefined : href}\n target={target}\n $isActive={isActive}\n {...props}\n {...metaAttribute({ name: MetaConstants.TabNavItemLink })}\n {...makeAccessible({ label: accessibilityLabel, current: isActive })}\n >\n {Icon ? (\n <Icon\n size=\"large\"\n color={isActive ? 'interactive.icon.gray.normal' : 'surface.icon.gray.subtle'}\n />\n ) : null}\n {title}\n {trailing ? trailing : null}\n </StyledTabNavItem>\n </StyledTabNavItemWrapper>\n );\n};\n\nconst TabNavItem = assignWithoutSideEffects(React.forwardRef(_TabNavItem), {\n displayName: 'TabNavItem',\n});\n\nexport { TabNavItem };\n"],"names":["StyledTabNavItem","styled","a","withConfig","displayName","componentId","_ref","theme","$isActive","_objectSpread","getTextStyles","size","weight","color","flex","display","gap","makeSpace","spacing","alignItems","justifyContent","height","textDecoration","whiteSpace","paddingTop","paddingBottom","paddingLeft","paddingRight","borderRadius","makeBorderSize","border","radius","medium","background","backgroundColor","colors","interactive","gray","StyledTabNavItemWrapper","BaseBox","_ref2","isActive","dividerHiderStyle","content","position","top","transform","width","makeSize","MIXED_BG_COLOR","flexShrink","padding","concat","surface","moderate","borderColor","muted","borderStyle","borderWidth","thin","borderBottomWidth","borderTopLeftRadius","borderTopRightRadius","transition","makeMotionTime","motion","duration","easing","standard","transitionProperty","left","right","SelectedBar","_ref3","icon","normal","pointerEvents","opacity","_TabNavItem","_ref4","ref","as","title","Icon","trailing","accessibilityLabel","href","target","__isInsideTabNavItems","__index","props","_objectWithoutProperties","_excluded","_useTabNavContext","useTabNavContext","setControlledItems","bodyRef","React","useRef","useIsomorphicLayoutEffect","current","prev","map","item","index","_bodyRef$current","bounds","getBoundingClientRect","tabWidth","offsetX","_jsxs","metaAttribute","name","MetaConstants","TabNavItem","children","_jsx","to","undefined","TabNavItemLink","makeAccessible","label","assignWithoutSideEffects","forwardRef"],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
2
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
3
3
|
import React__default from 'react';
|
|
4
|
-
import '../Box/index.js';
|
|
5
4
|
import '../Box/BaseBox/index.js';
|
|
6
5
|
import { SIDE_NAV_EXPANDED_L1_WIDTH_BASE, SIDE_NAV_EXPANDED_L1_WIDTH_XL } from '../SideNav/tokens.js';
|
|
7
6
|
import '../../tokens/global/index.js';
|
|
@@ -11,12 +10,11 @@ import { componentZIndices } from '../../utils/componentZIndices.js';
|
|
|
11
10
|
import '../../utils/makeAnalyticsAttribute/index.js';
|
|
12
11
|
import { jsx } from 'react/jsx-runtime';
|
|
13
12
|
import { size } from '../../tokens/global/size.js';
|
|
14
|
-
import {
|
|
13
|
+
import { BaseBox } from '../Box/BaseBox/BaseBox.web.js';
|
|
15
14
|
import { makeSize } from '../../utils/makeSize/makeSize.js';
|
|
16
15
|
import { metaAttribute } from '../../utils/metaAttribute/metaAttribute.web.js';
|
|
17
16
|
import { MetaConstants } from '../../utils/metaAttribute/metaConstants.js';
|
|
18
17
|
import { makeAnalyticsAttribute } from '../../utils/makeAnalyticsAttribute/makeAnalyticsAttribute.js';
|
|
19
|
-
import { BaseBox } from '../Box/BaseBox/BaseBox.web.js';
|
|
20
18
|
|
|
21
19
|
var _excluded = ["children"];
|
|
22
20
|
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; }
|
|
@@ -26,7 +24,7 @@ var CONTENT_RIGHT_GAP = size[80];
|
|
|
26
24
|
var _TopNav = function _TopNav(_ref, ref) {
|
|
27
25
|
var children = _ref.children,
|
|
28
26
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
29
|
-
return /*#__PURE__*/jsx(
|
|
27
|
+
return /*#__PURE__*/jsx(BaseBox, _objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
30
28
|
ref: ref,
|
|
31
29
|
display: "grid",
|
|
32
30
|
gridTemplateColumns: "auto minmax(0, 1fr) auto",
|
|
@@ -54,7 +52,7 @@ var _TopNav = function _TopNav(_ref, ref) {
|
|
|
54
52
|
var TopNav = /*#__PURE__*/React__default.forwardRef(_TopNav);
|
|
55
53
|
var TopNavBrand = function TopNavBrand(_ref2) {
|
|
56
54
|
var children = _ref2.children;
|
|
57
|
-
return /*#__PURE__*/jsx(
|
|
55
|
+
return /*#__PURE__*/jsx(BaseBox, _objectSpread(_objectSpread({
|
|
58
56
|
flexDirection: "row",
|
|
59
57
|
marginTop: "spacing.4",
|
|
60
58
|
width: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TopNav.web.js","sources":["../../../../../../src/components/TopNav/TopNav.web.tsx"],"sourcesContent":["import React from 'react';\nimport type { BoxProps } from '~components/Box';\nimport
|
|
1
|
+
{"version":3,"file":"TopNav.web.js","sources":["../../../../../../src/components/TopNav/TopNav.web.tsx"],"sourcesContent":["import React from 'react';\nimport type { BoxProps } from '~components/Box';\nimport BaseBox from '~components/Box/BaseBox';\nimport {\n SIDE_NAV_EXPANDED_L1_WIDTH_XL,\n SIDE_NAV_EXPANDED_L1_WIDTH_BASE,\n} from '~components/SideNav/tokens';\nimport { size } from '~tokens/global';\nimport { makeSize } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport type { DataAnalyticsAttribute, BladeElementRef, TestID } from '~utils/types';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst TOP_NAV_HEIGHT = size[56];\nconst CONTENT_RIGHT_GAP = size[80];\n\ntype TopNavProps = {\n children: React.ReactNode;\n} & Pick<\n BoxProps,\n | 'padding'\n | 'paddingTop'\n | 'paddingBottom'\n | 'paddingLeft'\n | 'paddingRight'\n | 'paddingX'\n | 'paddingY'\n | 'backgroundColor'\n | 'position'\n | 'top'\n | 'bottom'\n | 'left'\n | 'right'\n | 'width'\n | 'zIndex'\n | keyof DataAnalyticsAttribute\n> &\n TestID &\n StyledPropsBlade;\n\nconst _TopNav = (\n { children, ...rest }: TopNavProps,\n ref: React.Ref<BladeElementRef>,\n): React.ReactElement => {\n return (\n <BaseBox\n ref={ref as never}\n display=\"grid\"\n gridTemplateColumns=\"auto minmax(0, 1fr) auto\"\n alignItems=\"center\"\n position=\"sticky\"\n top=\"0px\"\n width=\"100%\"\n paddingY={{ base: 'spacing.3', m: 'spacing.0' }}\n paddingX={{ base: 'spacing.4', m: 'spacing.3' }}\n height={makeSize(TOP_NAV_HEIGHT)}\n zIndex={componentZIndices.topnav}\n {...rest}\n {...metaAttribute({ name: MetaConstants.TopNav, testID: rest.testID })}\n {...makeAnalyticsAttribute(rest)}\n >\n {children}\n </BaseBox>\n );\n};\n\nconst TopNav = React.forwardRef(_TopNav);\n\nconst TopNavBrand = ({ children }: { children: React.ReactNode }): React.ReactElement => {\n return (\n <BaseBox\n flexDirection=\"row\"\n marginTop=\"spacing.4\"\n width={{\n base: makeSize(SIDE_NAV_EXPANDED_L1_WIDTH_BASE),\n xl: makeSize(SIDE_NAV_EXPANDED_L1_WIDTH_XL),\n }}\n {...metaAttribute({ name: MetaConstants.TopNavBrand })}\n >\n <BaseBox width=\"100%\" textAlign=\"center\">\n {children}\n </BaseBox>\n </BaseBox>\n );\n};\n\nconst TopNavContent = ({ children }: { children: React.ReactNode }): React.ReactElement => {\n return (\n <BaseBox\n display=\"flex\"\n alignItems=\"center\"\n alignSelf=\"end\"\n paddingRight={{ base: 'spacing.0', m: makeSize(CONTENT_RIGHT_GAP) }}\n {...metaAttribute({ name: MetaConstants.TopNavContent })}\n >\n {children}\n </BaseBox>\n );\n};\n\nconst TopNavActions = ({ children }: { children: React.ReactNode }): React.ReactElement => {\n return (\n <BaseBox\n alignSelf=\"end\"\n display=\"flex\"\n gap=\"spacing.3\"\n alignItems=\"center\"\n marginTop=\"spacing.1\"\n padding=\"spacing.3\"\n backgroundColor=\"surface.background.gray.moderate\"\n borderTopLeftRadius=\"medium\"\n borderTopRightRadius=\"medium\"\n {...metaAttribute({ name: MetaConstants.TopNavActions })}\n >\n {children}\n </BaseBox>\n );\n};\n\nexport { TopNav, TopNavBrand, TopNavContent, TopNavActions };\nexport type { TopNavProps };\n"],"names":["TOP_NAV_HEIGHT","size","CONTENT_RIGHT_GAP","_TopNav","_ref","ref","children","rest","_objectWithoutProperties","_excluded","_jsx","BaseBox","_objectSpread","display","gridTemplateColumns","alignItems","position","top","width","paddingY","base","m","paddingX","height","makeSize","zIndex","componentZIndices","topnav","metaAttribute","name","MetaConstants","TopNav","testID","makeAnalyticsAttribute","React","forwardRef","TopNavBrand","_ref2","flexDirection","marginTop","SIDE_NAV_EXPANDED_L1_WIDTH_BASE","xl","SIDE_NAV_EXPANDED_L1_WIDTH_XL","textAlign","TopNavContent","_ref3","alignSelf","paddingRight","TopNavActions","_ref4","gap","padding","backgroundColor","borderTopLeftRadius","borderTopRightRadius"],"mappings":"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"}
|
|
@@ -66,7 +66,9 @@ var MetaConstants = {
|
|
|
66
66
|
TopNavContent: 'top-nav-content',
|
|
67
67
|
TopNavActions: 'top-nav-actions',
|
|
68
68
|
TabNav: 'tab-nav',
|
|
69
|
+
TabNavItems: 'tab-nav-items',
|
|
69
70
|
TabNavItem: 'tab-nav-item',
|
|
71
|
+
TabNavItemLink: 'tab-nav-item-link',
|
|
70
72
|
ProgressBar: 'progress-bar',
|
|
71
73
|
Radio: 'radio',
|
|
72
74
|
RadioGroup: 'radio-group',
|
|
@@ -87,6 +89,8 @@ var MetaConstants = {
|
|
|
87
89
|
TableBody: 'table-body',
|
|
88
90
|
TableRow: 'table-row',
|
|
89
91
|
TableCell: 'table-cell',
|
|
92
|
+
TableCellWrapper: 'table-cell-wrapper',
|
|
93
|
+
TableSortButton: 'table-sort-button',
|
|
90
94
|
TableHeader: 'table-header',
|
|
91
95
|
TableHeaderRow: 'table-header-row',
|
|
92
96
|
TableHeaderCell: 'table-header-cell',
|
|
@@ -94,6 +98,7 @@ var MetaConstants = {
|
|
|
94
98
|
TableFooterRow: 'table-footer-row',
|
|
95
99
|
TableFooterCell: 'table-footer-cell',
|
|
96
100
|
TableElement: 'table-element',
|
|
101
|
+
TablePageSelectionButton: 'table-page-selection-button',
|
|
97
102
|
TourPopover: 'tour-popover',
|
|
98
103
|
TourMask: 'tour-mask',
|
|
99
104
|
Popover: 'popover',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metaConstants.js","sources":["../../../../../../src/utils/metaAttribute/metaConstants.ts"],"sourcesContent":["export const MetaConstants = {\n Accordion: 'accordion',\n AccordionButton: 'accordion-button',\n AccordionItem: 'accordion-item',\n AccordionItemHeader: 'accordion-item-header',\n AccordionItemBody: 'accordion-item-body',\n ActionList: 'action-list',\n ActionListItem: 'action-list-item',\n ActionListSection: 'action-list-section',\n Alert: 'alert',\n Amount: 'amount',\n AutoComplete: 'autocomplete',\n Avatar: 'avatar',\n AvatarGroup: 'avatar-group',\n Badge: 'badge',\n Box: 'box',\n BaseBox: 'base-box',\n BaseText: 'base-text',\n Button: 'button',\n ButtonGroup: 'button-group',\n Breadcrumb: 'breadcrumb',\n BreadcrumbItem: 'breadcrumb-item',\n BottomNav: 'bottomnav',\n BottomNavItem: 'bottomnav-item',\n Carousel: 'carousel',\n Checkbox: 'checkbox',\n CheckboxGroup: 'checkbox-group',\n CheckboxLabel: 'checkbox-label',\n Chip: 'chip',\n ChipGroup: 'chip-group',\n ChipLabel: 'chip-label',\n Code: 'code',\n Component: 'blade-component',\n Counter: 'counter',\n Display: 'display',\n Divider: 'divider',\n Drawer: 'drawer',\n Dropdown: 'dropdown',\n DropdownOverlay: 'dropdown-overlay',\n DropdownFooter: 'dropdown-footer',\n DropdownHeader: 'dropdown-header',\n DatePicker: 'datepicker',\n Calendar: 'calendar',\n FileUpload: 'file-upload',\n FileUploadItem: 'file-upload-item',\n FileUploadLabel: 'file-upload-label',\n Icon: 'icon',\n IconButton: 'icon-button',\n Indicator: 'indicator',\n Link: 'link',\n List: 'list',\n ListItem: 'list-item',\n ListItemCode: 'list-item-code',\n ListItemLink: 'list-item-link',\n ListItemText: 'list-item-text',\n OTPInput: 'otp-input',\n PasswordInput: 'password-input',\n SearchInput: 'search-input',\n TextArea: 'textarea',\n TextInput: 'textinput',\n PhoneNumberInput: 'phone-number-input',\n Toast: 'toast',\n ToastContainer: 'toast-container',\n TopNav: 'top-nav',\n TopNavBrand: 'top-nav-brand',\n TopNavContent: 'top-nav-content',\n TopNavActions: 'top-nav-actions',\n TabNav: 'tab-nav',\n TabNavItem: 'tab-nav-item',\n ProgressBar: 'progress-bar',\n Radio: 'radio',\n RadioGroup: 'radio-group',\n RadioLabel: 'radio-label',\n SkipNav: 'skipnav',\n Spinner: 'spinner',\n SideNav: 'sidenav',\n SelectInput: 'select-input',\n Tag: 'tag',\n Tooltip: 'tooltip',\n TooltipInteractiveWrapper: 'tooltip-interactive-wrapper',\n Tabs: 'tabs',\n TabList: 'tab-list',\n TabItem: 'tab-item',\n TabPanel: 'tab-panel',\n TabIndicator: 'tab-indicator',\n Table: 'table',\n TableBody: 'table-body',\n TableRow: 'table-row',\n TableCell: 'table-cell',\n TableHeader: 'table-header',\n TableHeaderRow: 'table-header-row',\n TableHeaderCell: 'table-header-cell',\n TableFooter: 'table-footer',\n TableFooterRow: 'table-footer-row',\n TableFooterCell: 'table-footer-cell',\n TableElement: 'table-element',\n TourPopover: 'tour-popover',\n TourMask: 'tour-mask',\n Popover: 'popover',\n PopoverInteractiveWrapper: 'popover-interactive-wrapper',\n BottomSheet: 'bottom-sheet',\n BottomSheetBody: 'bottom-sheet-body',\n BottomSheetHeader: 'bottom-sheet-header',\n BottomSheetFooter: 'bottom-sheet-footer',\n BottomSheetGrabHandle: 'bottomsheet-grab-handle',\n Card: 'card',\n CardBody: 'card-body',\n CardHeader: 'card-header',\n CardFooter: 'card-footer',\n Collapsible: 'collapsible',\n CollapsibleBody: 'collapsible-body',\n CollapsibleButton: 'collapsible-button',\n CollapsibleLink: 'collapsible-link',\n Menu: 'menu',\n MenuHeader: 'menu-header',\n MenuFooter: 'menu-footer',\n Modal: 'modal',\n ModalBody: 'modal-body',\n ModalHeader: 'modal-header',\n ModalFooter: 'modal-footer',\n ModalBackdrop: 'modal-backdrop',\n ModalScrollOverlay: 'modal-scroll-overlay',\n VisuallyHidden: 'visually-hidden',\n FormLabel: 'form-label',\n Switch: 'switch',\n SwitchLabel: 'switch-label',\n StyledBaseInput: 'styled-base-input',\n Skeleton: 'skeleton',\n StepGroup: 'step-group',\n StepItem: 'step-item',\n} as const;\n"],"names":["MetaConstants","Accordion","AccordionButton","AccordionItem","AccordionItemHeader","AccordionItemBody","ActionList","ActionListItem","ActionListSection","Alert","Amount","AutoComplete","Avatar","AvatarGroup","Badge","Box","BaseBox","BaseText","Button","ButtonGroup","Breadcrumb","BreadcrumbItem","BottomNav","BottomNavItem","Carousel","Checkbox","CheckboxGroup","CheckboxLabel","Chip","ChipGroup","ChipLabel","Code","Component","Counter","Display","Divider","Drawer","Dropdown","DropdownOverlay","DropdownFooter","DropdownHeader","DatePicker","Calendar","FileUpload","FileUploadItem","FileUploadLabel","Icon","IconButton","Indicator","Link","List","ListItem","ListItemCode","ListItemLink","ListItemText","OTPInput","PasswordInput","SearchInput","TextArea","TextInput","PhoneNumberInput","Toast","ToastContainer","TopNav","TopNavBrand","TopNavContent","TopNavActions","TabNav","TabNavItem","ProgressBar","Radio","RadioGroup","RadioLabel","SkipNav","Spinner","SideNav","SelectInput","Tag","Tooltip","TooltipInteractiveWrapper","Tabs","TabList","TabItem","TabPanel","TabIndicator","Table","TableBody","TableRow","TableCell","TableHeader","TableHeaderRow","TableHeaderCell","TableFooter","TableFooterRow","TableFooterCell","TableElement","TourPopover","TourMask","Popover","PopoverInteractiveWrapper","BottomSheet","BottomSheetBody","BottomSheetHeader","BottomSheetFooter","BottomSheetGrabHandle","Card","CardBody","CardHeader","CardFooter","Collapsible","CollapsibleBody","CollapsibleButton","CollapsibleLink","Menu","MenuHeader","MenuFooter","Modal","ModalBody","ModalHeader","ModalFooter","ModalBackdrop","ModalScrollOverlay","VisuallyHidden","FormLabel","Switch","SwitchLabel","StyledBaseInput","Skeleton","StepGroup","StepItem"],"mappings":"AAAO,IAAMA,aAAa,GAAG;AAC3BC,EAAAA,SAAS,EAAE,WAAW;AACtBC,EAAAA,eAAe,EAAE,kBAAkB;AACnCC,EAAAA,aAAa,EAAE,gBAAgB;AAC/BC,EAAAA,mBAAmB,EAAE,uBAAuB;AAC5CC,EAAAA,iBAAiB,EAAE,qBAAqB;AACxCC,EAAAA,UAAU,EAAE,aAAa;AACzBC,EAAAA,cAAc,EAAE,kBAAkB;AAClCC,EAAAA,iBAAiB,EAAE,qBAAqB;AACxCC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,YAAY,EAAE,cAAc;AAC5BC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,WAAW,EAAE,cAAc;AAC3BC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,OAAO,EAAE,UAAU;AACnBC,EAAAA,QAAQ,EAAE,WAAW;AACrBC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,WAAW,EAAE,cAAc;AAC3BC,EAAAA,UAAU,EAAE,YAAY;AACxBC,EAAAA,cAAc,EAAE,iBAAiB;AACjCC,EAAAA,SAAS,EAAE,WAAW;AACtBC,EAAAA,aAAa,EAAE,gBAAgB;AAC/BC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,aAAa,EAAE,gBAAgB;AAC/BC,EAAAA,aAAa,EAAE,gBAAgB;AAC/BC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,SAAS,EAAE,YAAY;AACvBC,EAAAA,SAAS,EAAE,YAAY;AACvBC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,SAAS,EAAE,iBAAiB;AAC5BC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,eAAe,EAAE,kBAAkB;AACnCC,EAAAA,cAAc,EAAE,iBAAiB;AACjCC,EAAAA,cAAc,EAAE,iBAAiB;AACjCC,EAAAA,UAAU,EAAE,YAAY;AACxBC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,UAAU,EAAE,aAAa;AACzBC,EAAAA,cAAc,EAAE,kBAAkB;AAClCC,EAAAA,eAAe,EAAE,mBAAmB;AACpCC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,UAAU,EAAE,aAAa;AACzBC,EAAAA,SAAS,EAAE,WAAW;AACtBC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,QAAQ,EAAE,WAAW;AACrBC,EAAAA,YAAY,EAAE,gBAAgB;AAC9BC,EAAAA,YAAY,EAAE,gBAAgB;AAC9BC,EAAAA,YAAY,EAAE,gBAAgB;AAC9BC,EAAAA,QAAQ,EAAE,WAAW;AACrBC,EAAAA,aAAa,EAAE,gBAAgB;AAC/BC,EAAAA,WAAW,EAAE,cAAc;AAC3BC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,SAAS,EAAE,WAAW;AACtBC,EAAAA,gBAAgB,EAAE,oBAAoB;AACtCC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,cAAc,EAAE,iBAAiB;AACjCC,EAAAA,MAAM,EAAE,SAAS;AACjBC,EAAAA,WAAW,EAAE,eAAe;AAC5BC,EAAAA,aAAa,EAAE,iBAAiB;AAChCC,EAAAA,aAAa,EAAE,iBAAiB;AAChCC,EAAAA,MAAM,EAAE,SAAS;AACjBC,EAAAA,UAAU,EAAE,cAAc;AAC1BC,EAAAA,WAAW,EAAE,cAAc;AAC3BC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,UAAU,EAAE,aAAa;AACzBC,EAAAA,UAAU,EAAE,aAAa;AACzBC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,WAAW,EAAE,cAAc;AAC3BC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,yBAAyB,EAAE,6BAA6B;AACxDC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,OAAO,EAAE,UAAU;AACnBC,EAAAA,OAAO,EAAE,UAAU;AACnBC,EAAAA,QAAQ,EAAE,WAAW;AACrBC,EAAAA,YAAY,EAAE,eAAe;AAC7BC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,SAAS,EAAE,YAAY;AACvBC,EAAAA,QAAQ,EAAE,WAAW;AACrBC,EAAAA,SAAS,EAAE,YAAY;AACvBC,EAAAA,WAAW,EAAE,cAAc;AAC3BC,EAAAA,cAAc,EAAE,kBAAkB;AAClCC,EAAAA,eAAe,EAAE,mBAAmB;AACpCC,EAAAA,WAAW,EAAE,cAAc;AAC3BC,EAAAA,cAAc,EAAE,kBAAkB;AAClCC,EAAAA,eAAe,EAAE,mBAAmB;AACpCC,EAAAA,YAAY,EAAE,eAAe;AAC7BC,EAAAA,WAAW,EAAE,cAAc;AAC3BC,EAAAA,QAAQ,EAAE,WAAW;AACrBC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,yBAAyB,EAAE,6BAA6B;AACxDC,EAAAA,WAAW,EAAE,cAAc;AAC3BC,EAAAA,eAAe,EAAE,mBAAmB;AACpCC,EAAAA,iBAAiB,EAAE,qBAAqB;AACxCC,EAAAA,iBAAiB,EAAE,qBAAqB;AACxCC,EAAAA,qBAAqB,EAAE,yBAAyB;AAChDC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,QAAQ,EAAE,WAAW;AACrBC,EAAAA,UAAU,EAAE,aAAa;AACzBC,EAAAA,UAAU,EAAE,aAAa;AACzBC,EAAAA,WAAW,EAAE,aAAa;AAC1BC,EAAAA,eAAe,EAAE,kBAAkB;AACnCC,EAAAA,iBAAiB,EAAE,oBAAoB;AACvCC,EAAAA,eAAe,EAAE,kBAAkB;AACnCC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,UAAU,EAAE,aAAa;AACzBC,EAAAA,UAAU,EAAE,aAAa;AACzBC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,SAAS,EAAE,YAAY;AACvBC,EAAAA,WAAW,EAAE,cAAc;AAC3BC,EAAAA,WAAW,EAAE,cAAc;AAC3BC,EAAAA,aAAa,EAAE,gBAAgB;AAC/BC,EAAAA,kBAAkB,EAAE,sBAAsB;AAC1CC,EAAAA,cAAc,EAAE,iBAAiB;AACjCC,EAAAA,SAAS,EAAE,YAAY;AACvBC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,WAAW,EAAE,cAAc;AAC3BC,EAAAA,eAAe,EAAE,mBAAmB;AACpCC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,SAAS,EAAE,YAAY;AACvBC,EAAAA,QAAQ,EAAE,WAAA;AACZ;;;;"}
|
|
1
|
+
{"version":3,"file":"metaConstants.js","sources":["../../../../../../src/utils/metaAttribute/metaConstants.ts"],"sourcesContent":["export const MetaConstants = {\n Accordion: 'accordion',\n AccordionButton: 'accordion-button',\n AccordionItem: 'accordion-item',\n AccordionItemHeader: 'accordion-item-header',\n AccordionItemBody: 'accordion-item-body',\n ActionList: 'action-list',\n ActionListItem: 'action-list-item',\n ActionListSection: 'action-list-section',\n Alert: 'alert',\n Amount: 'amount',\n AutoComplete: 'autocomplete',\n Avatar: 'avatar',\n AvatarGroup: 'avatar-group',\n Badge: 'badge',\n Box: 'box',\n BaseBox: 'base-box',\n BaseText: 'base-text',\n Button: 'button',\n ButtonGroup: 'button-group',\n Breadcrumb: 'breadcrumb',\n BreadcrumbItem: 'breadcrumb-item',\n BottomNav: 'bottomnav',\n BottomNavItem: 'bottomnav-item',\n Carousel: 'carousel',\n Checkbox: 'checkbox',\n CheckboxGroup: 'checkbox-group',\n CheckboxLabel: 'checkbox-label',\n Chip: 'chip',\n ChipGroup: 'chip-group',\n ChipLabel: 'chip-label',\n Code: 'code',\n Component: 'blade-component',\n Counter: 'counter',\n Display: 'display',\n Divider: 'divider',\n Drawer: 'drawer',\n Dropdown: 'dropdown',\n DropdownOverlay: 'dropdown-overlay',\n DropdownFooter: 'dropdown-footer',\n DropdownHeader: 'dropdown-header',\n DatePicker: 'datepicker',\n Calendar: 'calendar',\n FileUpload: 'file-upload',\n FileUploadItem: 'file-upload-item',\n FileUploadLabel: 'file-upload-label',\n Icon: 'icon',\n IconButton: 'icon-button',\n Indicator: 'indicator',\n Link: 'link',\n List: 'list',\n ListItem: 'list-item',\n ListItemCode: 'list-item-code',\n ListItemLink: 'list-item-link',\n ListItemText: 'list-item-text',\n OTPInput: 'otp-input',\n PasswordInput: 'password-input',\n SearchInput: 'search-input',\n TextArea: 'textarea',\n TextInput: 'textinput',\n PhoneNumberInput: 'phone-number-input',\n Toast: 'toast',\n ToastContainer: 'toast-container',\n TopNav: 'top-nav',\n TopNavBrand: 'top-nav-brand',\n TopNavContent: 'top-nav-content',\n TopNavActions: 'top-nav-actions',\n TabNav: 'tab-nav',\n TabNavItems: 'tab-nav-items',\n TabNavItem: 'tab-nav-item',\n TabNavItemLink: 'tab-nav-item-link',\n ProgressBar: 'progress-bar',\n Radio: 'radio',\n RadioGroup: 'radio-group',\n RadioLabel: 'radio-label',\n SkipNav: 'skipnav',\n Spinner: 'spinner',\n SideNav: 'sidenav',\n SelectInput: 'select-input',\n Tag: 'tag',\n Tooltip: 'tooltip',\n TooltipInteractiveWrapper: 'tooltip-interactive-wrapper',\n Tabs: 'tabs',\n TabList: 'tab-list',\n TabItem: 'tab-item',\n TabPanel: 'tab-panel',\n TabIndicator: 'tab-indicator',\n Table: 'table',\n TableBody: 'table-body',\n TableRow: 'table-row',\n TableCell: 'table-cell',\n TableCellWrapper: 'table-cell-wrapper',\n TableSortButton: 'table-sort-button',\n TableHeader: 'table-header',\n TableHeaderRow: 'table-header-row',\n TableHeaderCell: 'table-header-cell',\n TableFooter: 'table-footer',\n TableFooterRow: 'table-footer-row',\n TableFooterCell: 'table-footer-cell',\n TableElement: 'table-element',\n TablePageSelectionButton: 'table-page-selection-button',\n TourPopover: 'tour-popover',\n TourMask: 'tour-mask',\n Popover: 'popover',\n PopoverInteractiveWrapper: 'popover-interactive-wrapper',\n BottomSheet: 'bottom-sheet',\n BottomSheetBody: 'bottom-sheet-body',\n BottomSheetHeader: 'bottom-sheet-header',\n BottomSheetFooter: 'bottom-sheet-footer',\n BottomSheetGrabHandle: 'bottomsheet-grab-handle',\n Card: 'card',\n CardBody: 'card-body',\n CardHeader: 'card-header',\n CardFooter: 'card-footer',\n Collapsible: 'collapsible',\n CollapsibleBody: 'collapsible-body',\n CollapsibleButton: 'collapsible-button',\n CollapsibleLink: 'collapsible-link',\n Menu: 'menu',\n MenuHeader: 'menu-header',\n MenuFooter: 'menu-footer',\n Modal: 'modal',\n ModalBody: 'modal-body',\n ModalHeader: 'modal-header',\n ModalFooter: 'modal-footer',\n ModalBackdrop: 'modal-backdrop',\n ModalScrollOverlay: 'modal-scroll-overlay',\n VisuallyHidden: 'visually-hidden',\n FormLabel: 'form-label',\n Switch: 'switch',\n SwitchLabel: 'switch-label',\n StyledBaseInput: 'styled-base-input',\n Skeleton: 'skeleton',\n StepGroup: 'step-group',\n StepItem: 'step-item',\n} as const;\n"],"names":["MetaConstants","Accordion","AccordionButton","AccordionItem","AccordionItemHeader","AccordionItemBody","ActionList","ActionListItem","ActionListSection","Alert","Amount","AutoComplete","Avatar","AvatarGroup","Badge","Box","BaseBox","BaseText","Button","ButtonGroup","Breadcrumb","BreadcrumbItem","BottomNav","BottomNavItem","Carousel","Checkbox","CheckboxGroup","CheckboxLabel","Chip","ChipGroup","ChipLabel","Code","Component","Counter","Display","Divider","Drawer","Dropdown","DropdownOverlay","DropdownFooter","DropdownHeader","DatePicker","Calendar","FileUpload","FileUploadItem","FileUploadLabel","Icon","IconButton","Indicator","Link","List","ListItem","ListItemCode","ListItemLink","ListItemText","OTPInput","PasswordInput","SearchInput","TextArea","TextInput","PhoneNumberInput","Toast","ToastContainer","TopNav","TopNavBrand","TopNavContent","TopNavActions","TabNav","TabNavItems","TabNavItem","TabNavItemLink","ProgressBar","Radio","RadioGroup","RadioLabel","SkipNav","Spinner","SideNav","SelectInput","Tag","Tooltip","TooltipInteractiveWrapper","Tabs","TabList","TabItem","TabPanel","TabIndicator","Table","TableBody","TableRow","TableCell","TableCellWrapper","TableSortButton","TableHeader","TableHeaderRow","TableHeaderCell","TableFooter","TableFooterRow","TableFooterCell","TableElement","TablePageSelectionButton","TourPopover","TourMask","Popover","PopoverInteractiveWrapper","BottomSheet","BottomSheetBody","BottomSheetHeader","BottomSheetFooter","BottomSheetGrabHandle","Card","CardBody","CardHeader","CardFooter","Collapsible","CollapsibleBody","CollapsibleButton","CollapsibleLink","Menu","MenuHeader","MenuFooter","Modal","ModalBody","ModalHeader","ModalFooter","ModalBackdrop","ModalScrollOverlay","VisuallyHidden","FormLabel","Switch","SwitchLabel","StyledBaseInput","Skeleton","StepGroup","StepItem"],"mappings":"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"}
|
|
@@ -45,12 +45,18 @@ var StyledCardRoot = /*#__PURE__*/styled(BaseBox).withConfig({
|
|
|
45
45
|
'&:hover': {
|
|
46
46
|
transform: "scale(".concat(CARD_SCALE_UP_VALUE, ")")
|
|
47
47
|
}
|
|
48
|
-
}), {}, _defineProperty(_defineProperty({}, "& a[href]:not(a[data-blade-component=\"".concat(CARD_LINK_OVERLAY_ID, "\"])"), {
|
|
48
|
+
}), {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "& a[href]:not(a[data-blade-component=\"".concat(CARD_LINK_OVERLAY_ID, "\"])"), {
|
|
49
49
|
zIndex: 2,
|
|
50
50
|
position: 'relative'
|
|
51
51
|
}), "& button:not(button[data-blade-component=\"".concat(CARD_LINK_OVERLAY_ID, "\"])"), {
|
|
52
52
|
zIndex: 2,
|
|
53
53
|
position: 'relative'
|
|
54
|
+
}), "& label:not(a[data-blade-component=\"".concat(CARD_LINK_OVERLAY_ID, "\"])"), {
|
|
55
|
+
zIndex: 2,
|
|
56
|
+
position: 'relative'
|
|
57
|
+
}), "& label:not(button[data-blade-component=\"".concat(CARD_LINK_OVERLAY_ID, "\"])"), {
|
|
58
|
+
zIndex: 2,
|
|
59
|
+
position: 'relative'
|
|
54
60
|
}));
|
|
55
61
|
});
|
|
56
62
|
var _CardRoot = function _CardRoot(_ref2, ref) {
|