@semcore/pagination 17.2.0 → 17.2.1
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/CHANGELOG.md +8 -0
- package/lib/cjs/Pagination.js +30 -25
- package/lib/cjs/Pagination.js.map +1 -1
- package/lib/cjs/Pagination.type.js +2 -0
- package/lib/cjs/Pagination.type.js.map +1 -0
- package/lib/cjs/index.js +13 -0
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/style/pagination.shadow.css +3 -17
- package/lib/cjs/translations/__intergalactic-dynamic-locales.js.map +1 -1
- package/lib/es6/Pagination.js +30 -25
- package/lib/es6/Pagination.js.map +1 -1
- package/lib/es6/Pagination.type.js +2 -0
- package/lib/es6/Pagination.type.js.map +1 -0
- package/lib/es6/index.js +1 -0
- package/lib/es6/index.js.map +1 -1
- package/lib/es6/style/pagination.shadow.css +3 -17
- package/lib/es6/translations/__intergalactic-dynamic-locales.js.map +1 -1
- package/lib/esm/Pagination.mjs +37 -32
- package/lib/esm/Pagination.type.mjs +1 -0
- package/lib/esm/index.mjs +1 -0
- package/lib/esm/style/pagination.shadow.css +3 -17
- package/lib/types/Pagination.d.ts +8 -0
- package/lib/types/Pagination.type.d.ts +96 -0
- package/lib/types/index.d.ts +2 -73
- package/lib/types/translations/__intergalactic-dynamic-locales.d.ts +135 -0
- package/package.json +10 -10
- package/vite.config.ts +1 -1
- package/vitest.config.mts +17 -0
- package/lib/cjs/index.d.js +0 -2
- package/lib/cjs/index.d.js.map +0 -1
- package/lib/es6/index.d.js +0 -2
- package/lib/es6/index.d.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pagination.js","names":["Flex","ScreenReaderOnly","Hint","Button","ButtonLink","createComponent","Component","sstyled","Root","i18nEnhance","uniqueIDEnhancement","ChevronDoubleLeft","InputNumber","Text","React","style","_sstyled","insert","localizedMessages","PaginationRoot","constructor","args","_defineProperty","createRef","dirtyCurrentPage","undefined","ref","requestAnimationFrame","current","focus","currentPage","Number","isNaN","handlers","setState","value","state","setTimeout","pageInputAddonRef","document","activeElement","asProps","totalPages","finalValue","event","key","getDirtyCurrentPage","handlePageChange","getI18nText","size","disabled","onClick","returnLostFocusTo","nextPageButtonRef","followingPage","prevPageButtonRef","locale","paginationInputId","onBlur","handlePageValueBlur","min","max","onChange","handlePageValueChange","onKeyDown","handlePageInputKeyDown","id","formatter","Intl","NumberFormat","children","format","isLastOrSingle","uncontrolledProps","componentDidUpdate","prevProps","uid","render","_ref","_ref9","SPagination","Children","hasChildren","styles","createElement","cn","_assignProps","Fragment","Pagination","FirstPage","PrevPage","NextPage","PageInput","TotalPages","defaultCurrentPage","defaultTotalPages","i18n","_ref2","hintContent","isAdvanced","_assignProps2","buttonRef","Addon","tag","triggerRef","timeout","_ref3","_ref0","SPrevPage","_assignProps3","props","_ref4","_ref1","SNextPage","_assignProps4","_ref5","_ref10","STotalPages","STotalPagesLabel","STotalLastPages","other","textSize","lastPageNumber","_assignProps5","PageInputValue","_ref6","arguments[0]","_ref11","SPageInputValue","Value","_assignProps6","PageInputAddon","_ref7","_ref12","SPageInputAddon","_assignProps7","_ref8","_ref13","SPageInput","SLabel","_assignProps8","origin"],"sources":["../../src/Pagination.jsx"],"sourcesContent":["import { Flex, ScreenReaderOnly, Hint } from '@semcore/base-components';\nimport Button, { ButtonLink } from '@semcore/button';\nimport { createComponent, Component, sstyled, Root } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport ChevronDoubleLeft from '@semcore/icon/ChevronDoubleLeft/m';\nimport InputNumber from '@semcore/input-number';\nimport { Text } from '@semcore/typography';\nimport React from 'react';\n\nimport style from './style/pagination.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\nclass PaginationRoot extends Component {\n static displayName = 'Pagination';\n\n static defaultProps = () => {\n return {\n defaultCurrentPage: 1,\n defaultTotalPages: 1,\n i18n: localizedMessages,\n locale: 'en',\n size: 'm',\n };\n };\n\n static style = style;\n static enhance = [i18nEnhance(localizedMessages), uniqueIDEnhancement()];\n\n nextPageButtonRef = React.createRef();\n prevPageButtonRef = React.createRef();\n\n state = {\n // Crutch, so as not to take out `dirtyCurrentPage` in props\n dirtyCurrentPage: undefined,\n };\n\n pageInputAddonRef = React.createRef();\n\n uncontrolledProps() {\n return {\n totalPages: null,\n currentPage: null,\n };\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.currentPage !== undefined && prevProps.currentPage !== this.asProps.currentPage) {\n this.setState({ dirtyCurrentPage: undefined });\n }\n }\n\n get paginationInputId() {\n const { uid } = this.asProps;\n\n return `pagination-input-${uid}`;\n }\n\n returnLostFocusTo = (ref) => {\n requestAnimationFrame(() => {\n ref.current?.focus();\n });\n };\n\n handlePageChange = (currentPage) => {\n currentPage = Number(currentPage);\n if (Number.isNaN(currentPage)) {\n return;\n }\n this.handlers.currentPage(currentPage);\n this.setState({ dirtyCurrentPage: undefined });\n };\n\n handlePageValueChange = (value) => {\n const { dirtyCurrentPage } = this.state;\n if (Number.isNaN(Number(value))) {\n value = dirtyCurrentPage;\n }\n this.setState({ dirtyCurrentPage: value });\n };\n\n handlePageValueBlur = () => {\n setTimeout(() => {\n if (this.pageInputAddonRef.current !== document.activeElement) {\n const { currentPage } = this.asProps;\n this.setState({ dirtyCurrentPage: currentPage });\n }\n }, 0);\n };\n\n getDirtyCurrentPage = () => {\n const { dirtyCurrentPage } = this.state;\n const { totalPages } = this.asProps;\n const finalValue = dirtyCurrentPage > totalPages ? totalPages : dirtyCurrentPage;\n return finalValue <= 0 ? 1 : finalValue;\n };\n\n handlePageInputKeyDown = (event) => {\n if (event.key !== 'Enter') return;\n const dirtyCurrentPage = this.getDirtyCurrentPage();\n this.handlePageChange(dirtyCurrentPage);\n };\n\n getFirstPageProps = () => {\n const { currentPage, getI18nText, size } = this.asProps;\n const disabled = currentPage <= 1;\n return {\n disabled,\n onClick: () => {\n this.handlePageChange(1);\n this.returnLostFocusTo(this.nextPageButtonRef);\n },\n getI18nText,\n size,\n };\n };\n\n getPrevPageProps = () => {\n const { currentPage, getI18nText, size } = this.asProps;\n const disabled = currentPage <= 1;\n return {\n currentPage,\n disabled,\n onClick: () => {\n const followingPage = currentPage - 1;\n\n this.handlePageChange(followingPage);\n\n if (followingPage <= 1) {\n this.returnLostFocusTo(this.nextPageButtonRef);\n }\n },\n getI18nText,\n ref: this.prevPageButtonRef,\n size,\n };\n };\n\n getNextPageProps = () => {\n const { currentPage, totalPages, getI18nText, size } = this.asProps;\n const disabled = currentPage >= totalPages;\n return {\n currentPage,\n disabled,\n onClick: () => {\n const followingPage = currentPage + 1;\n\n this.handlePageChange(followingPage);\n\n if (followingPage >= totalPages) {\n this.returnLostFocusTo(this.prevPageButtonRef);\n }\n },\n getI18nText,\n ref: this.nextPageButtonRef,\n size,\n };\n };\n\n getPageInputProps = () => {\n const { getI18nText, locale, size } = this.asProps;\n return {\n getI18nText,\n locale,\n size,\n paginationInputId: this.paginationInputId,\n };\n };\n\n getPageInputAddonProps = () => {\n return {\n ref: this.pageInputAddonRef,\n onBlur: this.handlePageValueBlur,\n };\n };\n\n getPageInputValueProps = () => {\n const { dirtyCurrentPage } = this.state;\n const { currentPage, totalPages, getI18nText, size } = this.asProps;\n return {\n min: 1,\n max: totalPages,\n disabled: totalPages === 1,\n value: dirtyCurrentPage === undefined ? currentPage : dirtyCurrentPage,\n onBlur: this.handlePageValueBlur,\n onChange: this.handlePageValueChange,\n onKeyDown: this.handlePageInputKeyDown,\n getI18nText,\n size,\n id: this.paginationInputId,\n };\n };\n\n getTotalPagesProps = () => {\n const { currentPage, totalPages, getI18nText, locale, size } = this.asProps;\n const formatter = new Intl.NumberFormat(locale, { style: 'decimal' });\n return {\n totalPages,\n children: formatter.format(totalPages),\n isLastOrSingle: currentPage === totalPages,\n onClick: () => {\n this.handlePageChange(totalPages);\n this.returnLostFocusTo(this.prevPageButtonRef);\n },\n getI18nText,\n size,\n };\n };\n\n render() {\n const SPagination = Root;\n const {\n Children,\n children: hasChildren,\n getI18nText,\n currentPage,\n totalPages = 1,\n } = this.asProps;\n\n return sstyled(this.asProps.styles)(\n <SPagination\n render={Flex}\n flexWrap='wrap'\n withGap={!hasChildren}\n tag='nav'\n aria-label={getI18nText('pagination')}\n >\n {hasChildren\n ? (\n <Children />\n )\n : (\n <>\n {totalPages === 1\n ? null\n : (\n <Flex>\n <Pagination.FirstPage />\n <Pagination.PrevPage />\n <Pagination.NextPage />\n </Flex>\n )}\n <Flex alignItems='center'>\n <Pagination.PageInput />\n <Pagination.TotalPages />\n </Flex>\n </>\n )}\n <ScreenReaderOnly aria-live='polite' role='status'>\n {getI18nText('pageInputLabel')}\n {' '}\n {currentPage}\n </ScreenReaderOnly>\n </SPagination>,\n );\n }\n}\n\nclass FirstPage extends Component {\n buttonRef = React.createRef();\n\n render() {\n const { getI18nText, Children, children, disabled } = this.asProps;\n const hintContent = getI18nText('firstPage');\n const isAdvanced = children !== undefined;\n\n return (\n <>\n <Root render={Button} aria-label={getI18nText('firstPage')} ref={this.buttonRef}>\n {isAdvanced\n ? <Children />\n : <Button.Addon tag={ChevronDoubleLeft} />}\n </Root>\n {!isAdvanced && (<Hint triggerRef={this.buttonRef} timeout={[250, 50]}>{hintContent}</Hint>)}\n </>\n );\n }\n}\n\nclass PrevPage extends Component {\n static defaultProps = (props) => ({\n children: props.getI18nText('prevPageLabel'),\n });\n\n render() {\n const SPrevPage = Root;\n return sstyled(this.asProps.styles)(<SPrevPage render={Button} />);\n }\n}\nclass NextPage extends Component {\n static defaultProps = (props) => ({\n children: props.getI18nText('nextPageLabel'),\n });\n\n render() {\n const SNextPage = Root;\n return sstyled(this.asProps.styles)(<SNextPage render={Button} use='primary' theme='info' />);\n }\n}\n\nclass TotalPages extends Component {\n render() {\n const STotalPages = Root;\n const STotalPagesLabel = Text;\n const STotalLastPages = Text;\n const { styles, getI18nText, totalPages, isLastOrSingle, children, ...other } = this.asProps;\n const textSize = other.size === 'l' ? '300' : '200';\n return sstyled(styles)(\n <>\n <STotalPagesLabel size={textSize}>{getI18nText('totalPagesLabel')}</STotalPagesLabel>\n {isLastOrSingle\n ? (\n <STotalLastPages\n size={textSize}\n aria-label={getI18nText('lastPage', { lastPageNumber: totalPages })}\n {...other}\n >\n {children}\n </STotalLastPages>\n )\n : (\n <STotalPages\n render={ButtonLink}\n aria-label={getI18nText('lastPage', { lastPageNumber: totalPages })}\n />\n )}\n </>,\n );\n }\n}\n\nfunction PageInputValue(props) {\n const SPageInputValue = Root;\n\n return sstyled(props.styles)(\n <SPageInputValue\n render={InputNumber.Value}\n // By default, InputNumber has validation on blur.\n // We should disable it, because of Pagination.PageInput.Addon\n onBlur={() => false}\n />,\n );\n}\n\nfunction PageInputAddon(props) {\n const SPageInputAddon = Root;\n return sstyled(props.styles)(<SPageInputAddon render={InputNumber.Addon} />);\n}\n\nclass PageInput extends Component {\n static enhance = [uniqueIDEnhancement()];\n\n render() {\n const SPageInput = Root;\n const SLabel = Text;\n const { Children, getI18nText, styles, locale, size, paginationInputId } = this.asProps;\n\n return sstyled(styles)(\n <>\n <SLabel tag='label' htmlFor={paginationInputId} size={size}>\n {getI18nText('pageInputLabel')}\n </SLabel>\n <SPageInput\n render={InputNumber}\n controlsLength={Children.origin ? undefined : 2}\n locale={locale}\n >\n {Children.origin\n ? (\n <Children />\n )\n : (\n <Pagination.PageInput.Value />\n )}\n </SPageInput>\n </>,\n );\n }\n}\n\n/**\n * Pagination\n *\n * {@link https://developer.semrush.com/intergalactic/components/pagination/pagination-api/|API} | {@link https://developer.semrush.com/intergalactic/components/pagination/pagination-code/|Examples}\n */\nconst Pagination = createComponent(PaginationRoot, {\n PrevPage,\n NextPage,\n FirstPage,\n TotalPages,\n PageInput: [\n PageInput,\n {\n Value: PageInputValue,\n Addon: PageInputAddon,\n },\n ],\n});\n\nexport default Pagination;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Pagination.js","names":["Flex","ScreenReaderOnly","Hint","Button","ButtonLink","createComponent","Component","sstyled","Root","i18nEnhance","uniqueIDEnhancement","ChevronDoubleLeft","InputNumber","Text","React","style","_sstyled","insert","localizedMessages","PaginationRoot","constructor","args","_defineProperty","createRef","dirtyCurrentPage","undefined","ref","requestAnimationFrame","current","focus","currentPage","Number","isNaN","handlers","setState","value","state","setTimeout","pageInputAddonRef","document","activeElement","asProps","totalPages","finalValue","event","key","getDirtyCurrentPage","handlePageChange","getI18nText","size","disabled","onClick","returnLostFocusTo","nextPageButtonRef","followingPage","prevPageButtonRef","locale","paginationInputId","onBlur","handlePageValueBlur","min","max","onChange","handlePageValueChange","onKeyDown","handlePageInputKeyDown","id","formatter","Intl","NumberFormat","children","format","isLastOrSingle","uncontrolledProps","componentDidUpdate","prevProps","uid","render","_ref","_ref9","SPagination","Children","hasChildren","styles","createElement","cn","_assignProps","Fragment","Pagination","FirstPage","PrevPage","NextPage","PageInput","TotalPages","defaultCurrentPage","defaultTotalPages","i18n","_ref2","hintContent","isAdvanced","_assignProps2","buttonRef","Addon","tag","triggerRef","timeout","_ref3","_ref0","SPrevPage","_assignProps3","props","_ref4","_ref1","SNextPage","_assignProps4","_ref5","_ref10","STotalPages","STotalPagesLabel","STotalLastPages","other","textSize","lastPageNumber","_assignProps5","PageInputValue","_ref6","arguments[0]","_ref11","SPageInputValue","Value","_assignProps6","PageInputAddon","_ref7","_ref12","SPageInputAddon","_assignProps7","_ref8","_ref13","SPageInput","SLabel","_assignProps8","origin"],"sources":["../../src/Pagination.tsx"],"sourcesContent":["import { Flex, ScreenReaderOnly, Hint } from '@semcore/base-components';\nimport Button, { ButtonLink } from '@semcore/button';\nimport type { Intergalactic } from '@semcore/core';\nimport { createComponent, Component, sstyled, Root } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport ChevronDoubleLeft from '@semcore/icon/ChevronDoubleLeft/m';\nimport InputNumber from '@semcore/input-number';\nimport { Text } from '@semcore/typography';\nimport React from 'react';\n\nimport type { NSPagination } from './Pagination.type';\nimport style from './style/pagination.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\ntype State = {\n dirtyCurrentPage: NSPagination.Props['currentPage'];\n};\n\nclass PaginationRoot extends Component<\n Intergalactic.InternalTypings.InferComponentProps<NSPagination.Component>,\n typeof PaginationRoot.enhance,\n NSPagination.Handlers,\n {},\n State,\n NSPagination.DefaultProps\n> {\n static displayName = 'Pagination';\n\n static defaultProps = {\n defaultCurrentPage: 1,\n defaultTotalPages: 1,\n i18n: localizedMessages,\n locale: 'en',\n size: 'm',\n } as const;\n\n static style = style;\n static enhance = [i18nEnhance(localizedMessages), uniqueIDEnhancement()] as const;\n\n nextPageButtonRef = React.createRef<HTMLButtonElement>();\n prevPageButtonRef = React.createRef<HTMLButtonElement>();\n\n state: State = {\n // Crutch, so as not to take out `dirtyCurrentPage` in props\n dirtyCurrentPage: undefined,\n };\n\n pageInputAddonRef = React.createRef();\n\n uncontrolledProps() {\n return {\n totalPages: null,\n currentPage: null,\n };\n }\n\n componentDidUpdate(prevProps: typeof this.asProps) {\n if (prevProps.currentPage !== undefined && prevProps.currentPage !== this.asProps.currentPage) {\n this.setState({ dirtyCurrentPage: undefined });\n }\n }\n\n get paginationInputId() {\n const { uid } = this.asProps;\n\n return `pagination-input-${uid}`;\n }\n\n returnLostFocusTo = (ref: React.RefObject<HTMLButtonElement>) => {\n requestAnimationFrame(() => {\n ref.current?.focus();\n });\n };\n\n handlePageChange = (currentPage?: number) => {\n currentPage = Number(currentPage);\n if (Number.isNaN(currentPage)) {\n return;\n }\n this.handlers.currentPage(currentPage);\n this.setState({ dirtyCurrentPage: undefined });\n };\n\n handlePageValueChange = (value: NSPagination.Props['currentPage']) => {\n const { dirtyCurrentPage } = this.state;\n if (Number.isNaN(Number(value))) {\n value = dirtyCurrentPage;\n }\n this.setState({ dirtyCurrentPage: value });\n };\n\n handlePageValueBlur = () => {\n setTimeout(() => {\n if (this.pageInputAddonRef.current !== document.activeElement) {\n const { currentPage } = this.asProps;\n this.setState({ dirtyCurrentPage: currentPage });\n }\n }, 0);\n };\n\n getDirtyCurrentPage = () => {\n const { dirtyCurrentPage } = this.state;\n const { totalPages } = this.asProps;\n\n if (dirtyCurrentPage === undefined) return dirtyCurrentPage;\n\n const finalValue = dirtyCurrentPage > totalPages ? totalPages : dirtyCurrentPage;\n return finalValue <= 0 ? 1 : finalValue;\n };\n\n handlePageInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key !== 'Enter') return;\n const dirtyCurrentPage = this.getDirtyCurrentPage();\n this.handlePageChange(dirtyCurrentPage);\n };\n\n getFirstPageProps = () => {\n const { currentPage, getI18nText, size } = this.asProps;\n const disabled = currentPage <= 1;\n return {\n disabled,\n onClick: () => {\n this.handlePageChange(1);\n this.returnLostFocusTo(this.nextPageButtonRef);\n },\n getI18nText,\n size,\n };\n };\n\n getPrevPageProps = () => {\n const { currentPage, getI18nText, size } = this.asProps;\n const disabled = currentPage <= 1;\n return {\n currentPage,\n disabled,\n onClick: () => {\n const followingPage = currentPage - 1;\n\n this.handlePageChange(followingPage);\n\n if (followingPage <= 1) {\n this.returnLostFocusTo(this.nextPageButtonRef);\n }\n },\n getI18nText,\n ref: this.prevPageButtonRef,\n size,\n };\n };\n\n getNextPageProps = () => {\n const { currentPage, totalPages, getI18nText, size } = this.asProps;\n const disabled = currentPage >= totalPages;\n return {\n currentPage,\n disabled,\n onClick: () => {\n const followingPage = currentPage + 1;\n\n this.handlePageChange(followingPage);\n\n if (followingPage >= totalPages) {\n this.returnLostFocusTo(this.prevPageButtonRef);\n }\n },\n getI18nText,\n ref: this.nextPageButtonRef,\n size,\n };\n };\n\n getPageInputProps = () => {\n const { getI18nText, locale, size } = this.asProps;\n return {\n getI18nText,\n locale,\n size,\n paginationInputId: this.paginationInputId,\n };\n };\n\n getPageInputAddonProps = () => {\n return {\n ref: this.pageInputAddonRef,\n onBlur: this.handlePageValueBlur,\n };\n };\n\n getPageInputValueProps = () => {\n const { dirtyCurrentPage } = this.state;\n const { currentPage, totalPages, getI18nText, size } = this.asProps;\n return {\n min: 1,\n max: totalPages,\n disabled: totalPages === 1,\n value: dirtyCurrentPage === undefined ? currentPage : dirtyCurrentPage,\n onBlur: this.handlePageValueBlur,\n onChange: this.handlePageValueChange,\n onKeyDown: this.handlePageInputKeyDown,\n getI18nText,\n size,\n id: this.paginationInputId,\n };\n };\n\n getTotalPagesProps = () => {\n const { currentPage, totalPages, getI18nText, locale, size } = this.asProps;\n const formatter = new Intl.NumberFormat(locale, { style: 'decimal' });\n return {\n totalPages,\n children: formatter.format(totalPages),\n isLastOrSingle: currentPage === totalPages,\n onClick: () => {\n this.handlePageChange(totalPages);\n this.returnLostFocusTo(this.prevPageButtonRef);\n },\n getI18nText,\n size,\n };\n };\n\n render() {\n const SPagination = Root;\n const {\n Children,\n children: hasChildren,\n getI18nText,\n currentPage,\n totalPages = 1,\n } = this.asProps;\n\n return sstyled(this.asProps.styles)(\n <SPagination\n render={Flex}\n flexWrap='wrap'\n withGap={!hasChildren}\n tag='nav'\n aria-label={getI18nText('pagination')}\n >\n {hasChildren\n ? (\n <Children />\n )\n : (\n <>\n {totalPages === 1\n ? null\n : (\n <Flex>\n <Pagination.FirstPage />\n <Pagination.PrevPage />\n <Pagination.NextPage />\n </Flex>\n )}\n <Flex alignItems='center'>\n <Pagination.PageInput />\n <Pagination.TotalPages />\n </Flex>\n </>\n )}\n <ScreenReaderOnly aria-live='polite' role='status'>\n {getI18nText('pageInputLabel')}\n {' '}\n {currentPage}\n </ScreenReaderOnly>\n </SPagination>,\n );\n }\n}\n\nclass FirstPage extends Component<\n Intergalactic.InternalTypings.InferChildComponentProps<NSPagination.FirstPage.Component, typeof PaginationRoot, 'FirstPage'>\n> {\n buttonRef = React.createRef<HTMLButtonElement>();\n\n render() {\n const { getI18nText, Children, children } = this.asProps;\n const hintContent = getI18nText('firstPage');\n const isAdvanced = children !== undefined;\n\n return (\n <>\n <Root render={Button} aria-label={getI18nText('firstPage')} ref={this.buttonRef}>\n {isAdvanced\n ? <Children />\n : <Button.Addon tag={ChevronDoubleLeft} />}\n </Root>\n {!isAdvanced && (<Hint triggerRef={this.buttonRef} timeout={[250, 50]}>{hintContent}</Hint>)}\n </>\n );\n }\n}\n\ntype PrevPageProps = Intergalactic.InternalTypings.InferChildComponentProps<NSPagination.PrevPage.Component, typeof PaginationRoot, 'PrevPage'>;\nclass PrevPage extends Component<PrevPageProps> {\n static defaultProps = (props: PrevPageProps) => ({\n children: props.getI18nText('prevPageLabel'),\n });\n\n render() {\n const SPrevPage = Root;\n return sstyled(this.asProps.styles)(<SPrevPage render={Button} />);\n }\n}\n\ntype NextPageProps = Intergalactic.InternalTypings.InferChildComponentProps<NSPagination.NextPage.Component, typeof PaginationRoot, 'NextPage'>;\nclass NextPage extends Component<NextPageProps> {\n static defaultProps = (props: NextPageProps) => ({\n children: props.getI18nText('nextPageLabel'),\n });\n\n render() {\n const SNextPage = Root;\n return sstyled(this.asProps.styles)(<SNextPage render={Button} use='primary' theme='info' />);\n }\n}\n\nclass TotalPages extends Component<\n Intergalactic.InternalTypings.InferChildComponentProps<NSPagination.TotalPages.Component, typeof PaginationRoot, 'TotalPages'>\n> {\n render() {\n const STotalPages = Root;\n const STotalPagesLabel = Text;\n const STotalLastPages = Text;\n const { styles, getI18nText, totalPages, isLastOrSingle, children, size, ...other } = this.asProps;\n const textSize = size === 'l' ? 300 : 200;\n return sstyled(styles)(\n <>\n <STotalPagesLabel size={textSize}>{getI18nText('totalPagesLabel')}</STotalPagesLabel>\n {isLastOrSingle\n ? (\n // @ts-ignore\n <STotalLastPages\n size={textSize}\n // @ts-expect-error\n aria-label={getI18nText('lastPage', { lastPageNumber: totalPages })}\n {...other}\n >\n {children}\n </STotalLastPages>\n )\n : (\n <STotalPages\n render={ButtonLink}\n use:size={textSize}\n aria-label={getI18nText('lastPage', { lastPageNumber: totalPages })}\n />\n )}\n </>,\n );\n }\n}\n\nfunction PageInputValue(\n props: Intergalactic.InternalTypings.InferChildComponentProps<\n NSPagination.PageInput.Value.Component,\n typeof PaginationRoot,\n 'PageInputValue'\n >,\n) {\n const SPageInputValue = Root;\n\n return sstyled(props.styles)(\n <SPageInputValue\n render={InputNumber.Value}\n // By default, InputNumber has validation on blur.\n // We should disable it, because of Pagination.PageInput.Addon\n onBlur={() => false}\n />,\n );\n}\n\nfunction PageInputAddon(\n props: Intergalactic.InternalTypings.InferChildComponentProps<\n NSPagination.PageInput.Addon.Component,\n typeof PaginationRoot,\n 'PageInputAddon'\n >,\n) {\n const SPageInputAddon = Root;\n return sstyled(props.styles)(<SPageInputAddon render={InputNumber.Addon} />);\n}\n\nclass PageInput extends Component<\n Intergalactic.InternalTypings.InferChildComponentProps<NSPagination.PageInput.Component, typeof PaginationRoot, 'PageInput'>,\n typeof PageInput.enhance\n> {\n static enhance = [uniqueIDEnhancement()] as const;\n\n render() {\n const SPageInput = Root;\n const SLabel = Text;\n const { Children, getI18nText, styles, locale, size, paginationInputId } = this.asProps;\n const textSize = size === 'l' ? 300 : 200;\n\n return sstyled(styles)(\n <>\n <SLabel tag='label' htmlFor={paginationInputId} size={textSize}>\n {getI18nText('pageInputLabel')}\n </SLabel>\n <SPageInput\n render={InputNumber}\n controlsLength={Children.origin ? undefined : 2}\n locale={locale}\n >\n {Children.origin\n ? (\n <Children />\n )\n : (\n <Pagination.PageInput.Value />\n )}\n </SPageInput>\n </>,\n );\n }\n}\n\n/**\n * Pagination\n *\n * {@link https://developer.semrush.com/intergalactic/components/pagination/pagination-api/|API} | {@link https://developer.semrush.com/intergalactic/components/pagination/pagination-code/|Examples}\n */\nconst Pagination = createComponent<\n NSPagination.Component,\n typeof PaginationRoot\n>(PaginationRoot, {\n PrevPage,\n NextPage,\n FirstPage,\n TotalPages,\n PageInput: [\n PageInput,\n {\n Value: PageInputValue,\n Addon: PageInputAddon,\n },\n ],\n});\n\nexport default Pagination;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pagination.type.js","names":[],"sources":["../../src/Pagination.type.ts"],"sourcesContent":["import type { BoxProps } from '@semcore/base-components';\nimport type Button from '@semcore/button';\nimport type { PropGetterFn, Intergalactic } from '@semcore/core';\nimport type { WithI18nEnhanceProps } from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport type { InputProps } from '@semcore/input';\nimport type Input from '@semcore/input';\nimport type { NSText } from '@semcore/typography';\n\nimport type { LocalizedMessages } from './translations/__intergalactic-dynamic-locales';\n\ndeclare namespace NSPagination {\n type Props = BoxProps &\n WithI18nEnhanceProps & {\n /**\n * Total number of pages\n * @default 1\n */\n totalPages?: number;\n /**\n * Active page number\n * @default 1\n */\n currentPage?: number;\n /**\n * Callback for changing the active page\n * @param pageNumber\n */\n onCurrentPageChange?: (pageNumber: number) => void;\n /** Specifies the locale for i18n support */\n locale?: string;\n /**\n * Sizes for pagination panel\n * @default 'm'\n */\n size?: 'm' | 'l';\n };\n type DefaultProps = {\n defaultCurrentPage: 1;\n defaultTotalPages: 1;\n i18n: LocalizedMessages;\n locale: 'en';\n size: 'm';\n };\n type Ctx = {\n getFirstPageProps: PropGetterFn;\n getPrevPageProps: PropGetterFn;\n getNextPageProps: PropGetterFn;\n getPageInputProps: PropGetterFn;\n getTotalPagesProps: PropGetterFn;\n };\n type Handlers = {\n totalPages: null;\n currentPage: null;\n };\n\n namespace PrevPage {\n type Component = typeof Button;\n }\n\n namespace NextPage {\n type Component = typeof Button;\n }\n\n namespace FirstPage {\n type Component = typeof Button;\n }\n\n namespace TotalPages {\n type Props = NSText.Props & WithI18nEnhanceProps;\n\n type Component = Intergalactic.Component<'button', Props, {}, [handlers: Handlers]>;\n }\n\n namespace PageInput {\n type Props = InputProps & WithI18nEnhanceProps;\n\n namespace Value {\n type Component = typeof Input.Value;\n }\n\n namespace Addon {\n type Component = typeof Input.Addon;\n }\n\n type Component = Intergalactic.Component<'div', Props, {}, [handlers: Handlers]> & {\n Value: Value.Component;\n Addon: Addon.Component;\n };\n }\n\n type Component = Intergalactic.Component<'div', Props, Ctx, [handlers: Handlers]> & {\n PrevPage: PrevPage.Component;\n NextPage: NextPage.Component;\n FirstPage: FirstPage.Component;\n TotalPages: TotalPages.Component;\n PageInput: PageInput.Component;\n };\n}\n\n/** @deprecated It will be removed in v18. */\nexport type PaginationProps = NSPagination.Props;\n/** @deprecated It will be removed in v18. */\nexport type TotalPagesProps = NSPagination.TotalPages.Props;\n/** @deprecated It will be removed in v18. */\nexport type PageInputProps = NSPagination.PageInput.Props;\n/** @deprecated It will be removed in v18. */\nexport type PaginationContext = NSPagination.Ctx;\n/** @deprecated It will be removed in v18. */\nexport type PaginationHandlers = NSPagination.Handlers;\n\nexport type { NSPagination };\n"],"mappings":"","ignoreList":[]}
|
package/lib/es6/index.js
CHANGED
package/lib/es6/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["default"],"sources":["../../src/index.
|
|
1
|
+
{"version":3,"file":"index.js","names":["default"],"sources":["../../src/index.ts"],"sourcesContent":["export { default } from './Pagination';\nexport * from './Pagination.type';\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,cAAc;AACtC,cAAc,mBAAmB","ignoreList":[]}
|
|
@@ -27,16 +27,14 @@ SLabel {
|
|
|
27
27
|
|
|
28
28
|
SLabel:not(:first-child) {
|
|
29
29
|
margin-left: var(--intergalactic-spacing-4x, 16px);
|
|
30
|
-
}
|
|
31
30
|
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
&[size='300'] {
|
|
32
|
+
margin-left: var(--intergalactic-spacing-5x, 20px);
|
|
33
|
+
}
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
STotalPages {
|
|
37
37
|
align-self: center;
|
|
38
|
-
line-height: normal;
|
|
39
|
-
color: var(--intergalactic-text-link, oklch(0.53 0.21 263));
|
|
40
38
|
}
|
|
41
39
|
|
|
42
40
|
STotalPagesLabel {
|
|
@@ -76,15 +74,3 @@ SPageInputAddon {
|
|
|
76
74
|
clip: rect(1px, 1px, 1px, 1px);
|
|
77
75
|
position: absolute;
|
|
78
76
|
}
|
|
79
|
-
|
|
80
|
-
SLabel,
|
|
81
|
-
STotalPages,
|
|
82
|
-
STotalPagesLabel {
|
|
83
|
-
font-size: var(--intergalactic-fs-200, 14px);
|
|
84
|
-
line-height: var(--intergalactic-lh-200, 142%);
|
|
85
|
-
|
|
86
|
-
&[size='l'] {
|
|
87
|
-
font-size: var(--intergalactic-fs-300, 16px);
|
|
88
|
-
line-height: var(--intergalactic-lh-300, 150%);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"__intergalactic-dynamic-locales.js","names":["de","en","es","fr","it","ja","ko","nl","pl","pt","ru","sv","tr","vi","zh","localizedMessages"],"sources":["../../../src/translations/__intergalactic-dynamic-locales.ts"],"sourcesContent":["import de from './de.json';\nimport en from './en.json';\nimport es from './es.json';\nimport fr from './fr.json';\nimport it from './it.json';\nimport ja from './ja.json';\nimport ko from './ko.json';\nimport nl from './nl.json';\nimport pl from './pl.json';\nimport pt from './pt.json';\nimport ru from './ru.json';\nimport sv from './sv.json';\nimport tr from './tr.json';\nimport vi from './vi.json';\nimport zh from './zh.json';\n\nexport const localizedMessages = {\n de,\n en,\n es,\n fr,\n it,\n ja,\n ko,\n nl,\n pt,\n ru,\n tr,\n vi,\n zh,\n pl,\n sv,\n};\n"],"mappings":"AAAA,OAAOA,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAE1B,OAAO,MAAMC,iBAAiB,GAAG;EAC/Bf,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFE,EAAE;EACFC,EAAE;EACFE,EAAE;EACFC,EAAE;EACFC,EAAE;EACFN,EAAE;EACFG;AACF,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"__intergalactic-dynamic-locales.js","names":["de","en","es","fr","it","ja","ko","nl","pl","pt","ru","sv","tr","vi","zh","localizedMessages"],"sources":["../../../src/translations/__intergalactic-dynamic-locales.ts"],"sourcesContent":["import de from './de.json';\nimport en from './en.json';\nimport es from './es.json';\nimport fr from './fr.json';\nimport it from './it.json';\nimport ja from './ja.json';\nimport ko from './ko.json';\nimport nl from './nl.json';\nimport pl from './pl.json';\nimport pt from './pt.json';\nimport ru from './ru.json';\nimport sv from './sv.json';\nimport tr from './tr.json';\nimport vi from './vi.json';\nimport zh from './zh.json';\n\nexport const localizedMessages = {\n de,\n en,\n es,\n fr,\n it,\n ja,\n ko,\n nl,\n pt,\n ru,\n tr,\n vi,\n zh,\n pl,\n sv,\n};\n\nexport type LocalizedMessages = typeof localizedMessages;\n"],"mappings":"AAAA,OAAOA,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAE1B,OAAO,MAAMC,iBAAiB,GAAG;EAC/Bf,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFE,EAAE;EACFC,EAAE;EACFE,EAAE;EACFC,EAAE;EACFC,EAAE;EACFN,EAAE;EACFG;AACF,CAAC","ignoreList":[]}
|
package/lib/esm/Pagination.mjs
CHANGED
|
@@ -14,22 +14,23 @@ const style = (
|
|
|
14
14
|
/*__reshadow_css_start__*/
|
|
15
15
|
(sstyled.insert(
|
|
16
16
|
/*__inner_css_start__*/
|
|
17
|
-
".
|
|
17
|
+
".___SPagination_1dpcv_gg_{justify-content:flex-start;align-items:center}.___SPagination_1dpcv_gg_.__withGap_1dpcv_gg_{gap:var(--intergalactic-spacing-4x,16px)}.___SPagination_1dpcv_gg_.__withGap_1dpcv_gg_._size_l_1dpcv_gg_{gap:var(--intergalactic-spacing-5x,20px)}.___SNextPage_1dpcv_gg_,.___SPrevPage_1dpcv_gg_{align-self:center;margin-left:var(--intergalactic-spacing-2x,8px)}.___SNextPage_1dpcv_gg_._size_l_1dpcv_gg_,.___SPrevPage_1dpcv_gg_._size_l_1dpcv_gg_{margin-left:var(--intergalactic-spacing-3x,12px)}.___SLabel_1dpcv_gg_{color:var(--intergalactic-text-primary,oklch(.1 .03 137/.899))}.___SLabel_1dpcv_gg_:not(:first-child){margin-left:var(--intergalactic-spacing-4x,16px)}.___SLabel_1dpcv_gg_._size_300_1dpcv_gg_:not(:first-child){margin-left:var(--intergalactic-spacing-5x,20px)}.___STotalPages_1dpcv_gg_{align-self:center}.___STotalPagesLabel_1dpcv_gg_{margin-left:var(--intergalactic-spacing-2x,8px);margin-right:var(--intergalactic-spacing-1x,4px)}.___STotalLastPages_1dpcv_gg_,.___STotalPagesLabel_1dpcv_gg_{color:var(--intergalactic-text-primary,oklch(.1 .03 137/.899))}.___STotalLastPages_1dpcv_gg_{font-size:var(--intergalactic-fs-200,14px);line-height:var(--intergalactic-lh-200,142%)}.___STotalLastPages_1dpcv_gg_._size_l_1dpcv_gg_{font-size:var(--intergalactic-fs-300,16px);line-height:var(--intergalactic-lh-300,150%)}.___SPageInput_1dpcv_gg_{max-width:68px;margin-left:var(--intergalactic-spacing-1x,4px)}.___SPageInput_1dpcv_gg_._size_l_1dpcv_gg_{margin-left:var(--intergalactic-spacing-2x,8px)}.___SPageInput_1dpcv_gg_:focus-within .___SPageInputAddon_1dpcv_gg_{opacity:1;clip:auto;position:static}.___SPageInputAddon_1dpcv_gg_{opacity:0;clip:rect(1px,1px,1px,1px);position:absolute}",
|
|
18
18
|
/*__inner_css_end__*/
|
|
19
|
-
"
|
|
19
|
+
"1dpcv_gg_"
|
|
20
20
|
), /*__reshadow_css_end__*/
|
|
21
21
|
{
|
|
22
|
-
"__SPagination": "
|
|
23
|
-
"__SLabel": "
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"__SPageInputAddon": "
|
|
29
|
-
"_withGap": "
|
|
30
|
-
"__SNextPage": "
|
|
31
|
-
"__SPrevPage": "
|
|
32
|
-
"
|
|
22
|
+
"__SPagination": "___SPagination_1dpcv_gg_",
|
|
23
|
+
"__SLabel": "___SLabel_1dpcv_gg_",
|
|
24
|
+
"__STotalPages": "___STotalPages_1dpcv_gg_",
|
|
25
|
+
"__STotalPagesLabel": "___STotalPagesLabel_1dpcv_gg_",
|
|
26
|
+
"__SPageInput": "___SPageInput_1dpcv_gg_",
|
|
27
|
+
"_size_l": "_size_l_1dpcv_gg_",
|
|
28
|
+
"__SPageInputAddon": "___SPageInputAddon_1dpcv_gg_",
|
|
29
|
+
"_withGap": "__withGap_1dpcv_gg_",
|
|
30
|
+
"__SNextPage": "___SNextPage_1dpcv_gg_",
|
|
31
|
+
"__SPrevPage": "___SPrevPage_1dpcv_gg_",
|
|
32
|
+
"_size_300": "_size_300_1dpcv_gg_",
|
|
33
|
+
"__STotalLastPages": "___STotalLastPages_1dpcv_gg_"
|
|
33
34
|
})
|
|
34
35
|
);
|
|
35
36
|
class PaginationRoot extends Component {
|
|
@@ -87,6 +88,7 @@ class PaginationRoot extends Component {
|
|
|
87
88
|
const {
|
|
88
89
|
totalPages
|
|
89
90
|
} = this.asProps;
|
|
91
|
+
if (dirtyCurrentPage === void 0) return dirtyCurrentPage;
|
|
90
92
|
const finalValue = dirtyCurrentPage > totalPages ? totalPages : dirtyCurrentPage;
|
|
91
93
|
return finalValue <= 0 ? 1 : finalValue;
|
|
92
94
|
});
|
|
@@ -268,14 +270,12 @@ class PaginationRoot extends Component {
|
|
|
268
270
|
}
|
|
269
271
|
}
|
|
270
272
|
_defineProperty(PaginationRoot, "displayName", "Pagination");
|
|
271
|
-
_defineProperty(PaginationRoot, "defaultProps",
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
size: "m"
|
|
278
|
-
};
|
|
273
|
+
_defineProperty(PaginationRoot, "defaultProps", {
|
|
274
|
+
defaultCurrentPage: 1,
|
|
275
|
+
defaultTotalPages: 1,
|
|
276
|
+
i18n: localizedMessages,
|
|
277
|
+
locale: "en",
|
|
278
|
+
size: "m"
|
|
279
279
|
});
|
|
280
280
|
_defineProperty(PaginationRoot, "style", style);
|
|
281
281
|
_defineProperty(PaginationRoot, "enhance", [i18nEnhance(localizedMessages), uniqueIDEnhancement()]);
|
|
@@ -289,8 +289,7 @@ class FirstPage extends Component {
|
|
|
289
289
|
const {
|
|
290
290
|
getI18nText,
|
|
291
291
|
Children,
|
|
292
|
-
children
|
|
293
|
-
disabled
|
|
292
|
+
children
|
|
294
293
|
} = this.asProps;
|
|
295
294
|
const hintContent = getI18nText("firstPage");
|
|
296
295
|
const isAdvanced = children !== void 0;
|
|
@@ -344,19 +343,24 @@ class TotalPages extends Component {
|
|
|
344
343
|
totalPages,
|
|
345
344
|
isLastOrSingle,
|
|
346
345
|
children,
|
|
346
|
+
size,
|
|
347
347
|
...other
|
|
348
348
|
} = this.asProps;
|
|
349
|
-
const textSize =
|
|
349
|
+
const textSize = size === "l" ? 300 : 200;
|
|
350
350
|
return _ref10 = sstyled(styles), /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(STotalPagesLabel, _ref10.cn("STotalPagesLabel", {
|
|
351
351
|
"size": textSize
|
|
352
|
-
}), getI18nText("totalPagesLabel")), isLastOrSingle ?
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
352
|
+
}), getI18nText("totalPagesLabel")), isLastOrSingle ? (
|
|
353
|
+
// @ts-ignore
|
|
354
|
+
/* @__PURE__ */ React.createElement(STotalLastPages, _ref10.cn("STotalLastPages", {
|
|
355
|
+
"size": textSize,
|
|
356
|
+
"aria-label": getI18nText("lastPage", {
|
|
357
|
+
lastPageNumber: totalPages
|
|
358
|
+
}),
|
|
359
|
+
...other
|
|
360
|
+
}), children)
|
|
361
|
+
) : /* @__PURE__ */ React.createElement(STotalPages, _ref10.cn("STotalPages", {
|
|
359
362
|
...assignProps({
|
|
363
|
+
"use:size": textSize,
|
|
360
364
|
"aria-label": getI18nText("lastPage", {
|
|
361
365
|
lastPageNumber: totalPages
|
|
362
366
|
})
|
|
@@ -393,10 +397,11 @@ class PageInput extends Component {
|
|
|
393
397
|
size,
|
|
394
398
|
paginationInputId
|
|
395
399
|
} = this.asProps;
|
|
400
|
+
const textSize = size === "l" ? 300 : 200;
|
|
396
401
|
return _ref13 = sstyled(styles), /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(SLabel, _ref13.cn("SLabel", {
|
|
397
402
|
"tag": "label",
|
|
398
403
|
"htmlFor": paginationInputId,
|
|
399
|
-
"size":
|
|
404
|
+
"size": textSize
|
|
400
405
|
}), getI18nText("pageInputLabel")), /* @__PURE__ */ React.createElement(SPageInput, _ref13.cn("SPageInput", {
|
|
401
406
|
...assignProps({
|
|
402
407
|
"controlsLength": Children.origin ? void 0 : 2,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
package/lib/esm/index.mjs
CHANGED
|
@@ -27,16 +27,14 @@ SLabel {
|
|
|
27
27
|
|
|
28
28
|
SLabel:not(:first-child) {
|
|
29
29
|
margin-left: var(--intergalactic-spacing-4x, 16px);
|
|
30
|
-
}
|
|
31
30
|
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
&[size='300'] {
|
|
32
|
+
margin-left: var(--intergalactic-spacing-5x, 20px);
|
|
33
|
+
}
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
STotalPages {
|
|
37
37
|
align-self: center;
|
|
38
|
-
line-height: normal;
|
|
39
|
-
color: var(--intergalactic-text-link, oklch(0.53 0.21 263));
|
|
40
38
|
}
|
|
41
39
|
|
|
42
40
|
STotalPagesLabel {
|
|
@@ -76,15 +74,3 @@ SPageInputAddon {
|
|
|
76
74
|
clip: rect(1px, 1px, 1px, 1px);
|
|
77
75
|
position: absolute;
|
|
78
76
|
}
|
|
79
|
-
|
|
80
|
-
SLabel,
|
|
81
|
-
STotalPages,
|
|
82
|
-
STotalPagesLabel {
|
|
83
|
-
font-size: var(--intergalactic-fs-200, 14px);
|
|
84
|
-
line-height: var(--intergalactic-lh-200, 142%);
|
|
85
|
-
|
|
86
|
-
&[size='l'] {
|
|
87
|
-
font-size: var(--intergalactic-fs-300, 16px);
|
|
88
|
-
line-height: var(--intergalactic-lh-300, 150%);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { NSPagination } from './Pagination.type';
|
|
2
|
+
/**
|
|
3
|
+
* Pagination
|
|
4
|
+
*
|
|
5
|
+
* {@link https://developer.semrush.com/intergalactic/components/pagination/pagination-api/|API} | {@link https://developer.semrush.com/intergalactic/components/pagination/pagination-code/|Examples}
|
|
6
|
+
*/
|
|
7
|
+
declare const Pagination: NSPagination.Component;
|
|
8
|
+
export default Pagination;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import type { BoxProps } from '@semcore/base-components';
|
|
2
|
+
import type Button from '@semcore/button';
|
|
3
|
+
import type { PropGetterFn, Intergalactic } from '@semcore/core';
|
|
4
|
+
import type { WithI18nEnhanceProps } from '@semcore/core/lib/utils/enhances/i18nEnhance';
|
|
5
|
+
import type { InputProps } from '@semcore/input';
|
|
6
|
+
import type Input from '@semcore/input';
|
|
7
|
+
import type { NSText } from '@semcore/typography';
|
|
8
|
+
import type { LocalizedMessages } from './translations/__intergalactic-dynamic-locales';
|
|
9
|
+
declare namespace NSPagination {
|
|
10
|
+
type Props = BoxProps & WithI18nEnhanceProps & {
|
|
11
|
+
/**
|
|
12
|
+
* Total number of pages
|
|
13
|
+
* @default 1
|
|
14
|
+
*/
|
|
15
|
+
totalPages?: number;
|
|
16
|
+
/**
|
|
17
|
+
* Active page number
|
|
18
|
+
* @default 1
|
|
19
|
+
*/
|
|
20
|
+
currentPage?: number;
|
|
21
|
+
/**
|
|
22
|
+
* Callback for changing the active page
|
|
23
|
+
* @param pageNumber
|
|
24
|
+
*/
|
|
25
|
+
onCurrentPageChange?: (pageNumber: number) => void;
|
|
26
|
+
/** Specifies the locale for i18n support */
|
|
27
|
+
locale?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Sizes for pagination panel
|
|
30
|
+
* @default 'm'
|
|
31
|
+
*/
|
|
32
|
+
size?: 'm' | 'l';
|
|
33
|
+
};
|
|
34
|
+
type DefaultProps = {
|
|
35
|
+
defaultCurrentPage: 1;
|
|
36
|
+
defaultTotalPages: 1;
|
|
37
|
+
i18n: LocalizedMessages;
|
|
38
|
+
locale: 'en';
|
|
39
|
+
size: 'm';
|
|
40
|
+
};
|
|
41
|
+
type Ctx = {
|
|
42
|
+
getFirstPageProps: PropGetterFn;
|
|
43
|
+
getPrevPageProps: PropGetterFn;
|
|
44
|
+
getNextPageProps: PropGetterFn;
|
|
45
|
+
getPageInputProps: PropGetterFn;
|
|
46
|
+
getTotalPagesProps: PropGetterFn;
|
|
47
|
+
};
|
|
48
|
+
type Handlers = {
|
|
49
|
+
totalPages: null;
|
|
50
|
+
currentPage: null;
|
|
51
|
+
};
|
|
52
|
+
namespace PrevPage {
|
|
53
|
+
type Component = typeof Button;
|
|
54
|
+
}
|
|
55
|
+
namespace NextPage {
|
|
56
|
+
type Component = typeof Button;
|
|
57
|
+
}
|
|
58
|
+
namespace FirstPage {
|
|
59
|
+
type Component = typeof Button;
|
|
60
|
+
}
|
|
61
|
+
namespace TotalPages {
|
|
62
|
+
type Props = NSText.Props & WithI18nEnhanceProps;
|
|
63
|
+
type Component = Intergalactic.Component<'button', Props, {}, [handlers: Handlers]>;
|
|
64
|
+
}
|
|
65
|
+
namespace PageInput {
|
|
66
|
+
type Props = InputProps & WithI18nEnhanceProps;
|
|
67
|
+
namespace Value {
|
|
68
|
+
type Component = typeof Input.Value;
|
|
69
|
+
}
|
|
70
|
+
namespace Addon {
|
|
71
|
+
type Component = typeof Input.Addon;
|
|
72
|
+
}
|
|
73
|
+
type Component = Intergalactic.Component<'div', Props, {}, [handlers: Handlers]> & {
|
|
74
|
+
Value: Value.Component;
|
|
75
|
+
Addon: Addon.Component;
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
type Component = Intergalactic.Component<'div', Props, Ctx, [handlers: Handlers]> & {
|
|
79
|
+
PrevPage: PrevPage.Component;
|
|
80
|
+
NextPage: NextPage.Component;
|
|
81
|
+
FirstPage: FirstPage.Component;
|
|
82
|
+
TotalPages: TotalPages.Component;
|
|
83
|
+
PageInput: PageInput.Component;
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/** @deprecated It will be removed in v18. */
|
|
87
|
+
export type PaginationProps = NSPagination.Props;
|
|
88
|
+
/** @deprecated It will be removed in v18. */
|
|
89
|
+
export type TotalPagesProps = NSPagination.TotalPages.Props;
|
|
90
|
+
/** @deprecated It will be removed in v18. */
|
|
91
|
+
export type PageInputProps = NSPagination.PageInput.Props;
|
|
92
|
+
/** @deprecated It will be removed in v18. */
|
|
93
|
+
export type PaginationContext = NSPagination.Ctx;
|
|
94
|
+
/** @deprecated It will be removed in v18. */
|
|
95
|
+
export type PaginationHandlers = NSPagination.Handlers;
|
|
96
|
+
export type { NSPagination };
|
package/lib/types/index.d.ts
CHANGED
|
@@ -1,73 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import type { PropGetterFn, Intergalactic } from '@semcore/core';
|
|
4
|
-
import type { WithI18nEnhanceProps } from '@semcore/core/lib/utils/enhances/i18nEnhance';
|
|
5
|
-
import type { InputProps } from '@semcore/input';
|
|
6
|
-
import type Input from '@semcore/input';
|
|
7
|
-
import type { NSText } from '@semcore/typography';
|
|
8
|
-
|
|
9
|
-
export type PaginationProps = BoxProps &
|
|
10
|
-
WithI18nEnhanceProps & {
|
|
11
|
-
/**
|
|
12
|
-
* Total number of pages
|
|
13
|
-
* @default 1
|
|
14
|
-
*/
|
|
15
|
-
totalPages?: number;
|
|
16
|
-
/**
|
|
17
|
-
* Active page number
|
|
18
|
-
* @default 1
|
|
19
|
-
*/
|
|
20
|
-
currentPage?: number;
|
|
21
|
-
/**
|
|
22
|
-
* Callback for changing the active page
|
|
23
|
-
* @param pageNumber
|
|
24
|
-
*/
|
|
25
|
-
onCurrentPageChange?: (pageNumber: number) => void;
|
|
26
|
-
/** Specifies the locale for i18n support */
|
|
27
|
-
locale?: string;
|
|
28
|
-
/**
|
|
29
|
-
* Sizes for pagination panel
|
|
30
|
-
* @default 'm'
|
|
31
|
-
*/
|
|
32
|
-
size?: 'm' | 'l';
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
export type TotalPagesProps = NSText.Props & WithI18nEnhanceProps & {};
|
|
36
|
-
|
|
37
|
-
export type PageInputProps = InputProps & WithI18nEnhanceProps & {};
|
|
38
|
-
|
|
39
|
-
export type PaginationContext = {
|
|
40
|
-
getFirstPageProps: PropGetterFn;
|
|
41
|
-
getPrevPageProps: PropGetterFn;
|
|
42
|
-
getNextPageProps: PropGetterFn;
|
|
43
|
-
getPageInputProps: PropGetterFn;
|
|
44
|
-
getTotalPagesProps: PropGetterFn;
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
export type PaginationHandlers = {
|
|
48
|
-
totalPages: (value: number) => void;
|
|
49
|
-
currentPage: (value: number) => void;
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
declare const Pagination: Intergalactic.Component<
|
|
53
|
-
'div',
|
|
54
|
-
PaginationProps,
|
|
55
|
-
PaginationContext,
|
|
56
|
-
[handlers: PaginationHandlers]
|
|
57
|
-
> & {
|
|
58
|
-
PrevPage: typeof Button;
|
|
59
|
-
NextPage: typeof Button;
|
|
60
|
-
FirstPage: typeof Button;
|
|
61
|
-
TotalPages: Intergalactic.Component<
|
|
62
|
-
'button',
|
|
63
|
-
TotalPagesProps,
|
|
64
|
-
{},
|
|
65
|
-
[handlers: PaginationHandlers]
|
|
66
|
-
>;
|
|
67
|
-
PageInput: Intergalactic.Component<'div', PageInputProps, {}, [handlers: PaginationHandlers]> & {
|
|
68
|
-
Value: typeof Input.Value;
|
|
69
|
-
Addon: typeof Input.Addon;
|
|
70
|
-
};
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
export default Pagination;
|
|
1
|
+
export { default } from './Pagination';
|
|
2
|
+
export * from './Pagination.type';
|