@alfalab/core-components-tabs 10.0.7 → 10.0.8-alfasans
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/components/primary-tablist/Component.collapsible.js.map +1 -1
- package/components/primary-tablist/Component.js.map +1 -1
- package/components/primary-tablist/Component.mobile.d.ts +1 -1
- package/components/primary-tablist/index.css +180 -167
- package/components/primary-tablist/index.module.css.js +1 -1
- package/components/primary-tablist/index.module.css.js.map +1 -1
- package/components/primary-tablist/mobile.css +317 -291
- package/components/primary-tablist/mobile.module.css.js +1 -1
- package/components/primary-tablist/mobile.module.css.js.map +1 -1
- package/components/scroll-controls/Component.d.ts +1 -1
- package/components/scroll-controls/Component.js.map +1 -1
- package/components/scroll-controls/index.css +11 -11
- package/components/scroll-controls/index.module.css.js +1 -1
- package/components/scroll-controls/index.module.css.js.map +1 -1
- package/components/scroll-controls/utils.js.map +1 -1
- package/components/scrollable-container/Component.d.ts +2 -2
- package/components/scrollable-container/Component.js.map +1 -1
- package/components/scrollable-container/index.css +5 -5
- package/components/scrollable-container/index.module.css.js +1 -1
- package/components/scrollable-container/index.module.css.js.map +1 -1
- package/components/secondary-tablist/Component.desktop.d.ts +1 -1
- package/components/secondary-tablist/Component.js.map +1 -1
- package/components/secondary-tablist/Component.mobile.d.ts +1 -1
- package/components/secondary-tablist/index.css +18 -18
- package/components/secondary-tablist/index.module.css.js +1 -1
- package/components/secondary-tablist/index.module.css.js.map +1 -1
- package/components/secondary-tablist/mobile.css +22 -22
- package/components/secondary-tablist/mobile.module.css.js +1 -1
- package/components/tab/Component.d.ts +2 -2
- package/components/tab/Component.js.map +1 -1
- package/components/tab/index.css +2 -2
- package/components/tab/index.module.css.js +1 -1
- package/components/tabs/Component.collapsible.d.ts +1 -1
- package/components/tabs/Component.d.ts +1 -1
- package/components/tabs/Component.desktop.d.ts +1 -1
- package/components/tabs/Component.mobile.d.ts +1 -1
- package/components/tabs/Component.responsive.d.ts +1 -1
- package/components/title/Component.d.ts +5 -5
- package/components/title/Component.js.map +1 -1
- package/cssm/components/primary-tablist/Component.collapsible.js.map +1 -1
- package/cssm/components/primary-tablist/Component.js.map +1 -1
- package/cssm/components/primary-tablist/Component.mobile.d.ts +1 -1
- package/cssm/components/primary-tablist/index.module.css +48 -35
- package/cssm/components/primary-tablist/mobile.module.css +48 -35
- package/cssm/components/scroll-controls/Component.d.ts +1 -1
- package/cssm/components/scroll-controls/Component.js.map +1 -1
- package/cssm/components/scroll-controls/utils.js.map +1 -1
- package/cssm/components/scrollable-container/Component.d.ts +2 -2
- package/cssm/components/scrollable-container/Component.js.map +1 -1
- package/cssm/components/secondary-tablist/Component.desktop.d.ts +1 -1
- package/cssm/components/secondary-tablist/Component.js.map +1 -1
- package/cssm/components/secondary-tablist/Component.mobile.d.ts +1 -1
- package/cssm/components/tab/Component.d.ts +2 -2
- package/cssm/components/tab/Component.js.map +1 -1
- package/cssm/components/tabs/Component.collapsible.d.ts +1 -1
- package/cssm/components/tabs/Component.d.ts +1 -1
- package/cssm/components/tabs/Component.desktop.d.ts +1 -1
- package/cssm/components/tabs/Component.mobile.d.ts +1 -1
- package/cssm/components/tabs/Component.responsive.d.ts +1 -1
- package/cssm/components/title/Component.d.ts +5 -5
- package/cssm/components/title/Component.js.map +1 -1
- package/cssm/hooks/use-collapsible-elements.js.map +1 -1
- package/cssm/hooks/use-tablist-titles.d.ts +16 -17
- package/cssm/hooks/use-tablist-titles.js.map +1 -1
- package/cssm/hooks/use-tabs.d.ts +1 -1
- package/cssm/hooks/use-tabs.js.map +1 -1
- package/cssm/typings.d.ts +5 -5
- package/esm/components/primary-tablist/Component.collapsible.js.map +1 -1
- package/esm/components/primary-tablist/Component.js.map +1 -1
- package/esm/components/primary-tablist/Component.mobile.d.ts +1 -1
- package/esm/components/primary-tablist/index.css +180 -167
- package/esm/components/primary-tablist/index.module.css.js +1 -1
- package/esm/components/primary-tablist/index.module.css.js.map +1 -1
- package/esm/components/primary-tablist/mobile.css +317 -291
- package/esm/components/primary-tablist/mobile.module.css.js +1 -1
- package/esm/components/primary-tablist/mobile.module.css.js.map +1 -1
- package/esm/components/scroll-controls/Component.d.ts +1 -1
- package/esm/components/scroll-controls/Component.js.map +1 -1
- package/esm/components/scroll-controls/index.css +11 -11
- package/esm/components/scroll-controls/index.module.css.js +1 -1
- package/esm/components/scroll-controls/index.module.css.js.map +1 -1
- package/esm/components/scroll-controls/utils.js.map +1 -1
- package/esm/components/scrollable-container/Component.d.ts +2 -2
- package/esm/components/scrollable-container/Component.js.map +1 -1
- package/esm/components/scrollable-container/index.css +5 -5
- package/esm/components/scrollable-container/index.module.css.js +1 -1
- package/esm/components/scrollable-container/index.module.css.js.map +1 -1
- package/esm/components/secondary-tablist/Component.desktop.d.ts +1 -1
- package/esm/components/secondary-tablist/Component.js.map +1 -1
- package/esm/components/secondary-tablist/Component.mobile.d.ts +1 -1
- package/esm/components/secondary-tablist/index.css +18 -18
- package/esm/components/secondary-tablist/index.module.css.js +1 -1
- package/esm/components/secondary-tablist/index.module.css.js.map +1 -1
- package/esm/components/secondary-tablist/mobile.css +22 -22
- package/esm/components/secondary-tablist/mobile.module.css.js +1 -1
- package/esm/components/tab/Component.d.ts +2 -2
- package/esm/components/tab/Component.js.map +1 -1
- package/esm/components/tab/index.css +2 -2
- package/esm/components/tab/index.module.css.js +1 -1
- package/esm/components/tabs/Component.collapsible.d.ts +1 -1
- package/esm/components/tabs/Component.d.ts +1 -1
- package/esm/components/tabs/Component.desktop.d.ts +1 -1
- package/esm/components/tabs/Component.mobile.d.ts +1 -1
- package/esm/components/tabs/Component.responsive.d.ts +1 -1
- package/esm/components/title/Component.d.ts +5 -5
- package/esm/components/title/Component.js.map +1 -1
- package/esm/hooks/use-collapsible-elements.js.map +1 -1
- package/esm/hooks/use-tablist-titles.d.ts +16 -17
- package/esm/hooks/use-tablist-titles.js.map +1 -1
- package/esm/hooks/use-tabs.d.ts +1 -1
- package/esm/hooks/use-tabs.js.map +1 -1
- package/esm/typings.d.ts +5 -5
- package/hooks/use-collapsible-elements.js.map +1 -1
- package/hooks/use-tablist-titles.d.ts +16 -16
- package/hooks/use-tablist-titles.js.map +1 -1
- package/hooks/use-tabs.d.ts +1 -1
- package/hooks/use-tabs.js.map +1 -1
- package/modern/components/primary-tablist/Component.collapsible.js.map +1 -1
- package/modern/components/primary-tablist/Component.js.map +1 -1
- package/modern/components/primary-tablist/Component.mobile.d.ts +1 -1
- package/modern/components/primary-tablist/index.css +180 -167
- package/modern/components/primary-tablist/index.module.css.js +1 -1
- package/modern/components/primary-tablist/index.module.css.js.map +1 -1
- package/modern/components/primary-tablist/mobile.css +317 -291
- package/modern/components/primary-tablist/mobile.module.css.js +1 -1
- package/modern/components/primary-tablist/mobile.module.css.js.map +1 -1
- package/modern/components/scroll-controls/Component.d.ts +1 -1
- package/modern/components/scroll-controls/Component.js.map +1 -1
- package/modern/components/scroll-controls/index.css +11 -11
- package/modern/components/scroll-controls/index.module.css.js +1 -1
- package/modern/components/scroll-controls/index.module.css.js.map +1 -1
- package/modern/components/scroll-controls/utils.js.map +1 -1
- package/modern/components/scrollable-container/Component.d.ts +2 -2
- package/modern/components/scrollable-container/Component.js.map +1 -1
- package/modern/components/scrollable-container/index.css +5 -5
- package/modern/components/scrollable-container/index.module.css.js +1 -1
- package/modern/components/scrollable-container/index.module.css.js.map +1 -1
- package/modern/components/secondary-tablist/Component.desktop.d.ts +1 -1
- package/modern/components/secondary-tablist/Component.js.map +1 -1
- package/modern/components/secondary-tablist/Component.mobile.d.ts +1 -1
- package/modern/components/secondary-tablist/index.css +18 -18
- package/modern/components/secondary-tablist/index.module.css.js +1 -1
- package/modern/components/secondary-tablist/index.module.css.js.map +1 -1
- package/modern/components/secondary-tablist/mobile.css +22 -22
- package/modern/components/secondary-tablist/mobile.module.css.js +1 -1
- package/modern/components/tab/Component.d.ts +2 -2
- package/modern/components/tab/Component.js.map +1 -1
- package/modern/components/tab/index.css +2 -2
- package/modern/components/tab/index.module.css.js +1 -1
- package/modern/components/tabs/Component.collapsible.d.ts +1 -1
- package/modern/components/tabs/Component.d.ts +1 -1
- package/modern/components/tabs/Component.desktop.d.ts +1 -1
- package/modern/components/tabs/Component.mobile.d.ts +1 -1
- package/modern/components/tabs/Component.responsive.d.ts +1 -1
- package/modern/components/title/Component.d.ts +5 -5
- package/modern/components/title/Component.js.map +1 -1
- package/modern/hooks/use-collapsible-elements.js.map +1 -1
- package/modern/hooks/use-tablist-titles.d.ts +16 -17
- package/modern/hooks/use-tablist-titles.js.map +1 -1
- package/modern/hooks/use-tabs.d.ts +1 -1
- package/modern/hooks/use-tabs.js.map +1 -1
- package/modern/typings.d.ts +5 -5
- package/moderncssm/components/primary-tablist/Component.collapsible.js.map +1 -1
- package/moderncssm/components/primary-tablist/Component.js.map +1 -1
- package/moderncssm/components/primary-tablist/Component.mobile.d.ts +1 -1
- package/moderncssm/components/primary-tablist/index.module.css +45 -30
- package/moderncssm/components/primary-tablist/mobile.module.css +45 -30
- package/moderncssm/components/scroll-controls/Component.d.ts +1 -1
- package/moderncssm/components/scroll-controls/Component.js.map +1 -1
- package/moderncssm/components/scroll-controls/utils.js.map +1 -1
- package/moderncssm/components/scrollable-container/Component.d.ts +2 -2
- package/moderncssm/components/scrollable-container/Component.js.map +1 -1
- package/moderncssm/components/secondary-tablist/Component.desktop.d.ts +1 -1
- package/moderncssm/components/secondary-tablist/Component.js.map +1 -1
- package/moderncssm/components/secondary-tablist/Component.mobile.d.ts +1 -1
- package/moderncssm/components/tab/Component.d.ts +2 -2
- package/moderncssm/components/tab/Component.js.map +1 -1
- package/moderncssm/components/tabs/Component.collapsible.d.ts +1 -1
- package/moderncssm/components/tabs/Component.d.ts +1 -1
- package/moderncssm/components/tabs/Component.desktop.d.ts +1 -1
- package/moderncssm/components/tabs/Component.mobile.d.ts +1 -1
- package/moderncssm/components/tabs/Component.responsive.d.ts +1 -1
- package/moderncssm/components/title/Component.d.ts +5 -5
- package/moderncssm/components/title/Component.js.map +1 -1
- package/moderncssm/hooks/use-collapsible-elements.js.map +1 -1
- package/moderncssm/hooks/use-tablist-titles.d.ts +16 -17
- package/moderncssm/hooks/use-tablist-titles.js.map +1 -1
- package/moderncssm/hooks/use-tabs.d.ts +1 -1
- package/moderncssm/hooks/use-tabs.js.map +1 -1
- package/moderncssm/typings.d.ts +5 -5
- package/package.json +12 -12
- package/src/components/primary-tablist/index.module.css +1 -1
- package/src/components/primary-tablist/mobile.module.css +1 -1
- package/src/components/primary-tablist/text-styles.module.css +1 -1
- package/src/components/scroll-controls/index.module.css +1 -1
- package/src/components/scrollable-container/index.module.css +1 -1
- package/src/components/secondary-tablist/index.module.css +1 -1
- package/src/components/tab/Component.tsx +3 -3
- package/src/vars.css +1 -1
- package/typings.d.ts +5 -5
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require('./mobile.css');
|
|
4
4
|
|
|
5
|
-
var mobileStyles = {"title":"
|
|
5
|
+
var mobileStyles = {"title":"tabs__title_1gf93 tabs__title_1hn1u","mobile":"tabs__mobile_1gf93","paragraph-primary-large":"tabs__paragraph-primary-large_1gf93","paragraph-primary-medium":"tabs__paragraph-primary-medium_1gf93","paragraph-primary-small":"tabs__paragraph-primary-small_1gf93","action-primary-large":"tabs__action-primary-large_1gf93","action-primary-medium":"tabs__action-primary-medium_1gf93","action-primary-small":"tabs__action-primary-small_1gf93","accent-primary-large":"tabs__accent-primary-large_1gf93","accent-primary-medium":"tabs__accent-primary-medium_1gf93","accent-primary-small":"tabs__accent-primary-small_1gf93","pickerWrapper":"tabs__pickerWrapper_1gf93","option":"tabs__option_1gf93","scrollControls":"tabs__scrollControls_1gf93","headline-system-xlarge":"tabs__headline-system-xlarge_1gf93","headline-system-large":"tabs__headline-system-large_1gf93","headline-system-medium":"tabs__headline-system-medium_1gf93","headline-system-small":"tabs__headline-system-small_1gf93","headline-system-xsmall":"tabs__headline-system-xsmall_1gf93","headline-xlarge":"tabs__headline-xlarge_1gf93","headline-large":"tabs__headline-large_1gf93","headline-medium":"tabs__headline-medium_1gf93","headline-small":"tabs__headline-small_1gf93","headline-xsmall":"tabs__headline-xsmall_1gf93","noTextStyle":"tabs__noTextStyle_1gf93"};
|
|
6
6
|
|
|
7
7
|
module.exports = mobileStyles;
|
|
8
8
|
//# sourceMappingURL=mobile.module.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mobile.module.css.js","sources":["../../src/components/primary-tablist/mobile.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/
|
|
1
|
+
{"version":3,"file":"mobile.module.css.js","sources":["../../src/components/primary-tablist/mobile.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n@import '../../vars.css';\n@import './text-styles.module.css';\n\n.title {\n composes: title from 'index.module.css';\n}\n\n.mobile {\n & .title {\n padding: var(--primary-tablist-mobile-padding);\n\n & + .title {\n margin-left: var(--primary-tablist-mobile-gaps);\n }\n }\n\n @mixin text-style;\n @mixin text-style-mobile;\n}\n\n.title.noTextStyle {\n @mixin paragraph_primary_medium;\n}\n"],"names":[],"mappings":";;;;AAEgB,mBAAe,CAAC,OAAO,CAAC,qCAAqC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,yBAAyB,CAAC,qCAAqC,CAAC,0BAA0B,CAAC,sCAAsC,CAAC,yBAAyB,CAAC,qCAAqC,CAAC,sBAAsB,CAAC,kCAAkC,CAAC,uBAAuB,CAAC,mCAAmC,CAAC,sBAAsB,CAAC,kCAAkC,CAAC,sBAAsB,CAAC,kCAAkC,CAAC,uBAAuB,CAAC,mCAAmC,CAAC,sBAAsB,CAAC,kCAAkC,CAAC,eAAe,CAAC,2BAA2B,CAAC,QAAQ,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,wBAAwB,CAAC,oCAAoC,CAAC,uBAAuB,CAAC,mCAAmC,CAAC,wBAAwB,CAAC,oCAAoC,CAAC,uBAAuB,CAAC,mCAAmC,CAAC,wBAAwB,CAAC,oCAAoC,CAAC,iBAAiB,CAAC,6BAA6B,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,iBAAiB,CAAC,6BAA6B,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,iBAAiB,CAAC,6BAA6B,CAAC,aAAa,CAAC,yBAAyB,CAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component.js","sources":["../../src/components/scroll-controls/Component.tsx"],"sourcesContent":["import React, { forwardRef, type RefObject, useEffect, useState } from 'react';\nimport cn from 'classnames';\nimport _debounce from 'lodash/debounce';\n\nimport { IconButton } from '@alfalab/core-components-icon-button';\nimport { ChevronLeftCompactSIcon } from '@alfalab/icons-glyph/ChevronLeftCompactSIcon';\nimport { ChevronRightCompactSIcon } from '@alfalab/icons-glyph/ChevronRightCompactSIcon';\n\nimport { type TabsProps } from '../../typings';\n\nimport { getDisabledState, scrollIntoFirstTab, scrollIntoLastTab } from './utils';\n\nimport styles from './index.module.css';\n\ntype ScrollControlsProps = {\n className?: string;\n view: Exclude<TabsProps['view'], undefined>;\n size: TabsProps['size'];\n containerRef: RefObject<HTMLDivElement>;\n showSkeleton?: boolean;\n};\n\nexport const ScrollControls = forwardRef<HTMLDivElement, ScrollControlsProps>(\n ({ containerRef, view, size: sizeProp, className, showSkeleton }, ref) => {\n const container = containerRef.current;\n const [disabledState, updateDisabledState] = useState(() => getDisabledState(container));\n\n useEffect(() => {\n const handleScroll = _debounce(\n () => updateDisabledState(getDisabledState(container)),\n 100,\n { leading: true, maxWait: 100, trailing: true },\n );\n\n container?.addEventListener('scroll', handleScroll);\n\n return () => container?.removeEventListener('scroll', handleScroll);\n }, [container]);\n\n const getSize = () => {\n if (view === 'primary') {\n return sizeProp === 'xl' ? 32 : 24;\n }\n\n return sizeProp && ['s', 'm', 'l', 'xl'].includes(sizeProp) ? 48 : 32;\n };\n\n const handleScrollLeft = () => scrollIntoFirstTab(container);\n\n const handleScrollRight = () => scrollIntoLastTab(container);\n\n const commonButtonProps = {\n className: styles.button,\n size: getSize(),\n view: 'secondary',\n } as const;\n\n return (\n <div\n ref={ref}\n className={cn(\n styles.component,\n styles[view],\n sizeProp && styles[sizeProp],\n className,\n {\n [styles.borderVisible]: !disabledState.toRight,\n },\n )}\n >\n <IconButton\n {...commonButtonProps}\n icon={ChevronLeftCompactSIcon}\n disabled={disabledState.toLeft || showSkeleton}\n onClick={handleScrollLeft}\n />\n <IconButton\n {...commonButtonProps}\n icon={ChevronRightCompactSIcon}\n disabled={disabledState.toRight || showSkeleton}\n onClick={handleScrollRight}\n />\n </div>\n );\n },\n);\n\nScrollControls.displayName = 'ScrollControls';\n"],"names":["forwardRef","useState","getDisabledState","useEffect","_debounce","scrollIntoFirstTab","scrollIntoLastTab","styles","React","cn","IconButton","__assign","ChevronLeftCompactSIcon","ChevronRightCompactSIcon"],"mappings":";;;;;;;;;;;;;;;;;;;;IAsBa,cAAc,GAAGA,gBAAU,CACpC,UAAC,EAA+D,EAAE,GAAG,EAAA;;AAAlE,IAAA,IAAA,YAAY,GAAA,EAAA,CAAA,YAAA,EAAE,IAAI,GAAA,EAAA,CAAA,IAAA,EAAQ,QAAQ,GAAA,EAAA,CAAA,IAAA,EAAE,SAAS,GAAA,EAAA,CAAA,SAAA,EAAE,YAAY,GAAA,EAAA,CAAA,YAAA;AAC1D,IAAA,IAAM,SAAS,GAAG,YAAY,CAAC,OAAO;AAChC,IAAA,IAAA,KAAuCC,cAAQ,CAAC,cAAM,OAAAC,sBAAgB,CAAC,SAAS,CAAC,CAA3B,EAA2B,CAAC,EAAjF,aAAa,QAAA,EAAE,mBAAmB,QAA+C;AAExF,IAAAC,eAAS,CAAC,YAAA;AACN,QAAA,IAAM,YAAY,GAAGC,0BAAS,CAC1B,cAAM,OAAA,mBAAmB,CAACF,sBAAgB,CAAC,SAAS,CAAC,CAAC,GAAA,EACtD,GAAG,EACH,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAClD;QAED,SAAS,KAAA,IAAA,IAAT,SAAS,KAAA,MAAA,GAAA,MAAA,GAAT,SAAS,CAAE,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC;AAEnD,QAAA,OAAO,cAAM,OAAA,SAAS,KAAT,IAAA,IAAA,SAAS,uBAAT,SAAS,CAAE,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA,EAAA;AACvE,KAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAEf,IAAA,IAAM,OAAO,GAAG,YAAA;
|
|
1
|
+
{"version":3,"file":"Component.js","sources":["../../src/components/scroll-controls/Component.tsx"],"sourcesContent":["import React, { forwardRef, type RefObject, useEffect, useState } from 'react';\nimport cn from 'classnames';\nimport _debounce from 'lodash/debounce';\n\nimport { IconButton } from '@alfalab/core-components-icon-button';\nimport { ChevronLeftCompactSIcon } from '@alfalab/icons-glyph/ChevronLeftCompactSIcon';\nimport { ChevronRightCompactSIcon } from '@alfalab/icons-glyph/ChevronRightCompactSIcon';\n\nimport { type TabsProps } from '../../typings';\n\nimport { getDisabledState, scrollIntoFirstTab, scrollIntoLastTab } from './utils';\n\nimport styles from './index.module.css';\n\ntype ScrollControlsProps = {\n className?: string;\n view: Exclude<TabsProps['view'], undefined>;\n size: TabsProps['size'];\n containerRef: RefObject<HTMLDivElement>;\n showSkeleton?: boolean;\n};\n\nexport const ScrollControls = forwardRef<HTMLDivElement, ScrollControlsProps>(\n ({ containerRef, view, size: sizeProp, className, showSkeleton }, ref) => {\n const container = containerRef.current;\n const [disabledState, updateDisabledState] = useState(() => getDisabledState(container));\n\n useEffect(() => {\n const handleScroll = _debounce(\n () => updateDisabledState(getDisabledState(container)),\n 100,\n { leading: true, maxWait: 100, trailing: true },\n );\n\n container?.addEventListener('scroll', handleScroll);\n\n return () => container?.removeEventListener('scroll', handleScroll);\n }, [container]);\n\n const getSize = () => {\n if (view === 'primary') {\n return sizeProp === 'xl' ? 32 : 24;\n }\n\n return sizeProp && ['s', 'm', 'l', 'xl'].includes(sizeProp) ? 48 : 32;\n };\n\n const handleScrollLeft = () => scrollIntoFirstTab(container);\n\n const handleScrollRight = () => scrollIntoLastTab(container);\n\n const commonButtonProps = {\n className: styles.button,\n size: getSize(),\n view: 'secondary',\n } as const;\n\n return (\n <div\n ref={ref}\n className={cn(\n styles.component,\n styles[view],\n sizeProp && styles[sizeProp],\n className,\n {\n [styles.borderVisible]: !disabledState.toRight,\n },\n )}\n >\n <IconButton\n {...commonButtonProps}\n icon={ChevronLeftCompactSIcon}\n disabled={disabledState.toLeft || showSkeleton}\n onClick={handleScrollLeft}\n />\n <IconButton\n {...commonButtonProps}\n icon={ChevronRightCompactSIcon}\n disabled={disabledState.toRight || showSkeleton}\n onClick={handleScrollRight}\n />\n </div>\n );\n },\n);\n\nScrollControls.displayName = 'ScrollControls';\n"],"names":["forwardRef","useState","getDisabledState","useEffect","_debounce","scrollIntoFirstTab","scrollIntoLastTab","styles","React","cn","IconButton","__assign","ChevronLeftCompactSIcon","ChevronRightCompactSIcon"],"mappings":"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"}
|
|
@@ -12,16 +12,16 @@
|
|
|
12
12
|
:root {
|
|
13
13
|
--primary-tablist-bottom-border-color: var(--color-light-neutral-translucent-500);
|
|
14
14
|
}
|
|
15
|
-
.
|
|
15
|
+
.tabs__component_l47fh {
|
|
16
16
|
position: relative;
|
|
17
17
|
display: flex;
|
|
18
18
|
flex-shrink: 0;
|
|
19
19
|
}
|
|
20
|
-
.
|
|
20
|
+
.tabs__primary_l47fh {
|
|
21
21
|
align-items: flex-start;
|
|
22
22
|
justify-content: flex-end;
|
|
23
23
|
}
|
|
24
|
-
.
|
|
24
|
+
.tabs__primary_l47fh:after {
|
|
25
25
|
content: '';
|
|
26
26
|
display: block;
|
|
27
27
|
position: absolute;
|
|
@@ -30,21 +30,21 @@
|
|
|
30
30
|
width: 100%;
|
|
31
31
|
background-color: var(--primary-tablist-bottom-border-color);
|
|
32
32
|
}
|
|
33
|
-
.
|
|
33
|
+
.tabs__primary_l47fh {
|
|
34
34
|
|
|
35
|
-
.
|
|
35
|
+
.tabs__button_l47fh:first-child {
|
|
36
36
|
padding-left: var(--gap-8);
|
|
37
37
|
margin-right: var(--gap-8);
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
.
|
|
40
|
+
.tabs__primary_l47fh.tabs__xl_l47fh .tabs__button_l47fh:first-child {
|
|
41
41
|
margin-right: var(--gap-4);
|
|
42
42
|
}
|
|
43
|
-
.
|
|
43
|
+
.tabs__secondary_l47fh {
|
|
44
44
|
align-items: center;
|
|
45
45
|
justify-content: center;
|
|
46
46
|
}
|
|
47
|
-
.
|
|
47
|
+
.tabs__secondary_l47fh:before {
|
|
48
48
|
content: '';
|
|
49
49
|
display: block;
|
|
50
50
|
position: absolute;
|
|
@@ -55,13 +55,13 @@
|
|
|
55
55
|
transition: background-color 0.3s ease;
|
|
56
56
|
bottom: var(--gap-0);
|
|
57
57
|
}
|
|
58
|
-
.
|
|
58
|
+
.tabs__secondary_l47fh.tabs__xs_l47fh {
|
|
59
59
|
width: 76px;
|
|
60
60
|
|
|
61
|
-
.
|
|
61
|
+
.tabs__button_l47fh:first-child {
|
|
62
62
|
margin-right: var(--gap-4);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
-
.
|
|
65
|
+
.tabs__borderVisible_l47fh:before {
|
|
66
66
|
background-color: var(--color-light-neutral-translucent-300);
|
|
67
67
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require('./index.css');
|
|
4
4
|
|
|
5
|
-
var styles = {"component":"
|
|
5
|
+
var styles = {"component":"tabs__component_l47fh","primary":"tabs__primary_l47fh","button":"tabs__button_l47fh","xl":"tabs__xl_l47fh","secondary":"tabs__secondary_l47fh","xs":"tabs__xs_l47fh","borderVisible":"tabs__borderVisible_l47fh"};
|
|
6
6
|
|
|
7
7
|
module.exports = styles;
|
|
8
8
|
//# sourceMappingURL=index.module.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.module.css.js","sources":["../../src/components/scroll-controls/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/
|
|
1
|
+
{"version":3,"file":"index.module.css.js","sources":["../../src/components/scroll-controls/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n@import '../../vars.css';\n\n.component {\n position: relative;\n display: flex;\n flex-shrink: 0;\n}\n\n.primary {\n align-items: flex-start;\n justify-content: flex-end;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n bottom: 1px;\n height: 1px;\n width: 100%;\n background-color: var(--primary-tablist-bottom-border-color);\n }\n\n .button:first-child {\n padding-left: var(--gap-8);\n margin-right: var(--gap-8);\n }\n\n &.xl .button:first-child {\n margin-right: var(--gap-4);\n }\n}\n\n.secondary {\n align-items: center;\n justify-content: center;\n\n &:before {\n content: '';\n display: block;\n position: absolute;\n top: var(--gap-0);\n left: var(--gap-0);\n width: 1px;\n background-color: transparent;\n transition: background-color 0.3s ease;\n bottom: var(--gap-0);\n }\n\n &.xs {\n width: 76px;\n\n .button:first-child {\n margin-right: var(--gap-4);\n }\n }\n}\n\n.borderVisible:before {\n background-color: var(--color-light-neutral-translucent-300);\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,uBAAuB,CAAC,SAAS,CAAC,qBAAqB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,uBAAuB,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,2BAA2B,CAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../src/components/scroll-controls/utils.ts"],"sourcesContent":["const ADDITIONAL_OFFSET = 15;\n\nfunction getTabs(container: HTMLDivElement) {\n return Array.from(container.querySelectorAll<HTMLButtonElement>('button[role=\"tab\"]'));\n}\n\nfunction findLastVisibleTab(container: HTMLDivElement) {\n const tabs = getTabs(container);\n\n return tabs.reduce((res, tab) => {\n if (tab.offsetLeft + ADDITIONAL_OFFSET < container.clientWidth + container.scrollLeft) {\n return tab;\n }\n\n return res;\n }, tabs[0]);\n}\n\nfunction findFirstVisibleTab(container: HTMLDivElement) {\n const tabs = getTabs(container);\n\n return tabs.reduceRight(\n (res, tab) => {\n if (tab.offsetLeft + tab.clientWidth > container.scrollLeft + ADDITIONAL_OFFSET) {\n return tab;\n }\n\n return res;\n },\n tabs[tabs.length - 1],\n );\n}\n\nexport function scrollIntoLastTab(container: HTMLDivElement | null) {\n if (!container) return;\n\n findLastVisibleTab(container).scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'start',\n });\n}\n\nexport function scrollIntoFirstTab(container: HTMLDivElement | null) {\n if (!container) return;\n\n findFirstVisibleTab(container).scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'end',\n });\n}\n\nexport function getDisabledState(container: HTMLDivElement | null) {\n if (!container) return { toLeft: false, toRight: false };\n const scrollOffset = 2;\n\n const toLeft = container.scrollLeft <= scrollOffset;\n const toRight =\n container.scrollLeft + container.clientWidth >= container.scrollWidth - scrollOffset;\n\n return { toLeft, toRight };\n}\n"],"names":[],"mappings":";;;;AAAA,IAAM,iBAAiB,GAAG,EAAE;AAE5B,SAAS,OAAO,CAAC,SAAyB,EAAA;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAoB,oBAAoB,CAAC,CAAC;AAC1F;AAEA,SAAS,kBAAkB,CAAC,SAAyB,EAAA;AACjD,IAAA,IAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC;AAE/B,IAAA,OAAO,IAAI,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,GAAG,EAAA;AACxB,QAAA,IAAI,GAAG,CAAC,UAAU,GAAG,iBAAiB,GAAG,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,UAAU,EAAE;AACnF,YAAA,OAAO,GAAG
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../src/components/scroll-controls/utils.ts"],"sourcesContent":["const ADDITIONAL_OFFSET = 15;\n\nfunction getTabs(container: HTMLDivElement) {\n return Array.from(container.querySelectorAll<HTMLButtonElement>('button[role=\"tab\"]'));\n}\n\nfunction findLastVisibleTab(container: HTMLDivElement) {\n const tabs = getTabs(container);\n\n return tabs.reduce((res, tab) => {\n if (tab.offsetLeft + ADDITIONAL_OFFSET < container.clientWidth + container.scrollLeft) {\n return tab;\n }\n\n return res;\n }, tabs[0]);\n}\n\nfunction findFirstVisibleTab(container: HTMLDivElement) {\n const tabs = getTabs(container);\n\n return tabs.reduceRight(\n (res, tab) => {\n if (tab.offsetLeft + tab.clientWidth > container.scrollLeft + ADDITIONAL_OFFSET) {\n return tab;\n }\n\n return res;\n },\n tabs[tabs.length - 1],\n );\n}\n\nexport function scrollIntoLastTab(container: HTMLDivElement | null) {\n if (!container) return;\n\n findLastVisibleTab(container).scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'start',\n });\n}\n\nexport function scrollIntoFirstTab(container: HTMLDivElement | null) {\n if (!container) return;\n\n findFirstVisibleTab(container).scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'end',\n });\n}\n\nexport function getDisabledState(container: HTMLDivElement | null) {\n if (!container) return { toLeft: false, toRight: false };\n const scrollOffset = 2;\n\n const toLeft = container.scrollLeft <= scrollOffset;\n const toRight =\n container.scrollLeft + container.clientWidth >= container.scrollWidth - scrollOffset;\n\n return { toLeft, toRight };\n}\n"],"names":[],"mappings":";;;;AAAA,IAAM,iBAAiB,GAAG,EAAE;AAE5B,SAAS,OAAO,CAAC,SAAyB,EAAA;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAoB,oBAAoB,CAAC,CAAC;AAC1F;AAEA,SAAS,kBAAkB,CAAC,SAAyB,EAAA;AACjD,IAAA,IAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC;AAE/B,IAAA,OAAO,IAAI,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,GAAG,EAAA;AACxB,QAAA,IAAI,GAAG,CAAC,UAAU,GAAG,iBAAiB,GAAG,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,UAAU,EAAE;AACnF,YAAA,OAAO,GAAG;;AAGd,QAAA,OAAO,GAAG;AACd,KAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACf;AAEA,SAAS,mBAAmB,CAAC,SAAyB,EAAA;AAClD,IAAA,IAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC;AAE/B,IAAA,OAAO,IAAI,CAAC,WAAW,CACnB,UAAC,GAAG,EAAE,GAAG,EAAA;AACL,QAAA,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC,UAAU,GAAG,iBAAiB,EAAE;AAC7E,YAAA,OAAO,GAAG;;AAGd,QAAA,OAAO,GAAG;KACb,EACD,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CACxB;AACL;AAEM,SAAU,iBAAiB,CAAC,SAAgC,EAAA;AAC9D,IAAA,IAAI,CAAC,SAAS;QAAE;AAEhB,IAAA,kBAAkB,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC;AACzC,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,MAAM,EAAE,OAAO;AAClB,KAAA,CAAC;AACN;AAEM,SAAU,kBAAkB,CAAC,SAAgC,EAAA;AAC/D,IAAA,IAAI,CAAC,SAAS;QAAE;AAEhB,IAAA,mBAAmB,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC;AAC1C,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,MAAM,EAAE,KAAK;AAChB,KAAA,CAAC;AACN;AAEM,SAAU,gBAAgB,CAAC,SAAgC,EAAA;AAC7D,IAAA,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;IACxD,IAAM,YAAY,GAAG,CAAC;AAEtB,IAAA,IAAM,MAAM,GAAG,SAAS,CAAC,UAAU,IAAI,YAAY;AACnD,IAAA,IAAM,OAAO,GACT,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,WAAW,GAAG,YAAY;AAExF,IAAA,OAAO,EAAE,MAAM,EAAA,MAAA,EAAE,OAAO,EAAA,OAAA,EAAE;AAC9B;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { type ReactNode } from 'react';
|
|
2
2
|
import { type PlatformProps, type TabsProps } from '../../typings';
|
|
3
|
-
export
|
|
3
|
+
export type ScrollableContainerProps = {
|
|
4
4
|
/**
|
|
5
5
|
* Дополнительный класс враппера контейнера
|
|
6
6
|
*/
|
|
@@ -38,4 +38,4 @@ export declare type ScrollableContainerProps = {
|
|
|
38
38
|
*/
|
|
39
39
|
showSkeleton?: boolean;
|
|
40
40
|
};
|
|
41
|
-
export declare const ScrollableContainer: ({ containerWrapperClassName, containerClassName, scrollControlsClassName, children, activeChild, fullWidthScroll, view, size, platform, inlineStyle, showSkeleton, }: ScrollableContainerProps & Pick<TabsProps,
|
|
41
|
+
export declare const ScrollableContainer: ({ containerWrapperClassName, containerClassName, scrollControlsClassName, children, activeChild, fullWidthScroll, view, size, platform, inlineStyle, showSkeleton, }: ScrollableContainerProps & Pick<TabsProps, "fullWidthScroll"> & PlatformProps) => React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component.js","sources":["../../src/components/scrollable-container/Component.tsx"],"sourcesContent":["import React, { type ReactNode, useEffect, useRef, useState } from 'react';\nimport cn from 'classnames';\nimport { compute } from 'compute-scroll-into-view';\n\nimport { type PlatformProps, type TabsProps } from '../../typings';\nimport { ScrollControls } from '../scroll-controls';\n\nimport styles from './index.module.css';\n\n/**\n * Дополнительная прокрутка при клике на не поместившийся таб\n */\nconst ADDITIONAL_SCROLL_LEFT_VALUE = 50;\n\nexport type ScrollableContainerProps = {\n /**\n * Дополнительный класс враппера контейнера\n */\n containerWrapperClassName?: string;\n\n /**\n * Дополнительный класс контейнера\n */\n containerClassName?: string;\n\n /**\n * Дополнительный класс кнопок прокрутки\n */\n scrollControlsClassName?: string;\n\n /**\n * Дочерние компоненты\n */\n children: ReactNode;\n\n /**\n * Активный элемент (всегда будет в видимой области)\n */\n activeChild: HTMLElement | null;\n\n /**\n * Внешний вид заголовков табов\n */\n view: Exclude<TabsProps['view'], undefined>;\n\n /**\n * Размер\n */\n size: TabsProps['size'];\n\n /**\n * Дополнительные инлайн стили для заголовка\n */\n inlineStyle?: React.CSSProperties;\n\n /**\n * Показать скелетон\n */\n showSkeleton?: boolean;\n};\n\nconst isOverflown = (\n { clientWidth, scrollWidth }: HTMLDivElement,\n controlsNode: HTMLDivElement | null,\n) => {\n const controlsWidth = controlsNode?.offsetWidth || 0;\n\n return scrollWidth > clientWidth + controlsWidth;\n};\n\nexport const ScrollableContainer = ({\n containerWrapperClassName,\n containerClassName,\n scrollControlsClassName,\n children,\n activeChild,\n fullWidthScroll,\n view,\n size,\n platform,\n inlineStyle,\n showSkeleton,\n}: ScrollableContainerProps & Pick<TabsProps, 'fullWidthScroll'> & PlatformProps) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const controlsRef = useRef<HTMLDivElement>(null);\n const [overflown, setOverflown] = useState(false);\n\n useEffect(() => {\n if (activeChild) {\n const actions = compute(activeChild, {\n scrollMode: 'if-needed',\n block: 'nearest',\n inline: 'nearest',\n boundary: (parent) => !parent.isSameNode(containerRef.current),\n });\n\n // TODO: animate?\n actions.forEach(({ el, left }) => {\n // eslint-disable-next-line no-param-reassign\n el.scrollLeft =\n el.scrollLeft > left\n ? left - ADDITIONAL_SCROLL_LEFT_VALUE\n : left + ADDITIONAL_SCROLL_LEFT_VALUE;\n });\n }\n }, [activeChild]);\n\n useEffect(() => {\n const scrollableNode = containerRef.current;\n const tabsContainer = scrollableNode?.firstElementChild;\n\n if (platform === 'desktop' && scrollableNode && tabsContainer && window.ResizeObserver) {\n const observerCb = () => {\n if (isOverflown(scrollableNode, controlsRef.current)) {\n setOverflown(true);\n } else {\n setOverflown(false);\n }\n };\n\n const observer = new ResizeObserver(observerCb);\n\n observer.observe(scrollableNode);\n observer.observe(tabsContainer);\n\n return () => observer.disconnect();\n }\n\n return () => {};\n }, [platform]);\n\n return (\n <div\n className={cn(styles.scrollableContainerWrapper, containerWrapperClassName)}\n style={inlineStyle}\n >\n <div\n ref={containerRef}\n className={cn(styles.container, containerClassName, {\n [styles.fullWidthScroll]: fullWidthScroll,\n })}\n >\n {children}\n </div>\n {overflown && platform === 'desktop' ? (\n <ScrollControls\n className={scrollControlsClassName}\n ref={controlsRef}\n containerRef={containerRef}\n view={view}\n size={size}\n showSkeleton={showSkeleton}\n />\n ) : null}\n </div>\n );\n};\n"],"names":["useRef","useState","useEffect","compute","React","cn","styles","ScrollControls"],"mappings":";;;;;;;;;;;;;;;AASA;;AAEG;AACH,IAAM,4BAA4B,GAAG,EAAE;AAiDvC,IAAM,WAAW,GAAG,UAChB,EAA4C,EAC5C,YAAmC,EAAA;QADjC,WAAW,GAAA,EAAA,CAAA,WAAA,EAAE,WAAW,GAAA,EAAA,CAAA,WAAA;AAG1B,IAAA,IAAM,aAAa,GAAG,CAAA,YAAY,KAAZ,IAAA,IAAA,YAAY,KAAZ,MAAA,GAAA,MAAA,GAAA,YAAY,CAAE,WAAW,KAAI,CAAC;AAEpD,IAAA,OAAO,WAAW,GAAG,WAAW,GAAG,aAAa;AACpD,CAAC;AAEM,IAAM,mBAAmB,GAAG,UAAC,EAY4C,EAAA;;AAX5E,IAAA,IAAA,yBAAyB,GAAA,EAAA,CAAA,yBAAA,EACzB,kBAAkB,GAAA,EAAA,CAAA,kBAAA,EAClB,uBAAuB,GAAA,EAAA,CAAA,uBAAA,EACvB,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,WAAW,iBAAA,EACX,eAAe,GAAA,EAAA,CAAA,eAAA,EACf,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,WAAW,GAAA,EAAA,CAAA,WAAA,EACX,YAAY,GAAA,EAAA,CAAA,YAAA;AAEZ,IAAA,IAAM,YAAY,GAAGA,YAAM,CAAiB,IAAI,CAAC;AACjD,IAAA,IAAM,WAAW,GAAGA,YAAM,CAAiB,IAAI,CAAC;IAC1C,IAAA,EAAA,GAA4BC,cAAQ,CAAC,KAAK,CAAC,EAA1C,SAAS,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,YAAY,GAAA,EAAA,CAAA,CAAA,CAAmB;AAEjD,IAAAC,eAAS,CAAC,YAAA;
|
|
1
|
+
{"version":3,"file":"Component.js","sources":["../../src/components/scrollable-container/Component.tsx"],"sourcesContent":["import React, { type ReactNode, useEffect, useRef, useState } from 'react';\nimport cn from 'classnames';\nimport { compute } from 'compute-scroll-into-view';\n\nimport { type PlatformProps, type TabsProps } from '../../typings';\nimport { ScrollControls } from '../scroll-controls';\n\nimport styles from './index.module.css';\n\n/**\n * Дополнительная прокрутка при клике на не поместившийся таб\n */\nconst ADDITIONAL_SCROLL_LEFT_VALUE = 50;\n\nexport type ScrollableContainerProps = {\n /**\n * Дополнительный класс враппера контейнера\n */\n containerWrapperClassName?: string;\n\n /**\n * Дополнительный класс контейнера\n */\n containerClassName?: string;\n\n /**\n * Дополнительный класс кнопок прокрутки\n */\n scrollControlsClassName?: string;\n\n /**\n * Дочерние компоненты\n */\n children: ReactNode;\n\n /**\n * Активный элемент (всегда будет в видимой области)\n */\n activeChild: HTMLElement | null;\n\n /**\n * Внешний вид заголовков табов\n */\n view: Exclude<TabsProps['view'], undefined>;\n\n /**\n * Размер\n */\n size: TabsProps['size'];\n\n /**\n * Дополнительные инлайн стили для заголовка\n */\n inlineStyle?: React.CSSProperties;\n\n /**\n * Показать скелетон\n */\n showSkeleton?: boolean;\n};\n\nconst isOverflown = (\n { clientWidth, scrollWidth }: HTMLDivElement,\n controlsNode: HTMLDivElement | null,\n) => {\n const controlsWidth = controlsNode?.offsetWidth || 0;\n\n return scrollWidth > clientWidth + controlsWidth;\n};\n\nexport const ScrollableContainer = ({\n containerWrapperClassName,\n containerClassName,\n scrollControlsClassName,\n children,\n activeChild,\n fullWidthScroll,\n view,\n size,\n platform,\n inlineStyle,\n showSkeleton,\n}: ScrollableContainerProps & Pick<TabsProps, 'fullWidthScroll'> & PlatformProps) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const controlsRef = useRef<HTMLDivElement>(null);\n const [overflown, setOverflown] = useState(false);\n\n useEffect(() => {\n if (activeChild) {\n const actions = compute(activeChild, {\n scrollMode: 'if-needed',\n block: 'nearest',\n inline: 'nearest',\n boundary: (parent) => !parent.isSameNode(containerRef.current),\n });\n\n // TODO: animate?\n actions.forEach(({ el, left }) => {\n // eslint-disable-next-line no-param-reassign\n el.scrollLeft =\n el.scrollLeft > left\n ? left - ADDITIONAL_SCROLL_LEFT_VALUE\n : left + ADDITIONAL_SCROLL_LEFT_VALUE;\n });\n }\n }, [activeChild]);\n\n useEffect(() => {\n const scrollableNode = containerRef.current;\n const tabsContainer = scrollableNode?.firstElementChild;\n\n if (platform === 'desktop' && scrollableNode && tabsContainer && window.ResizeObserver) {\n const observerCb = () => {\n if (isOverflown(scrollableNode, controlsRef.current)) {\n setOverflown(true);\n } else {\n setOverflown(false);\n }\n };\n\n const observer = new ResizeObserver(observerCb);\n\n observer.observe(scrollableNode);\n observer.observe(tabsContainer);\n\n return () => observer.disconnect();\n }\n\n return () => {};\n }, [platform]);\n\n return (\n <div\n className={cn(styles.scrollableContainerWrapper, containerWrapperClassName)}\n style={inlineStyle}\n >\n <div\n ref={containerRef}\n className={cn(styles.container, containerClassName, {\n [styles.fullWidthScroll]: fullWidthScroll,\n })}\n >\n {children}\n </div>\n {overflown && platform === 'desktop' ? (\n <ScrollControls\n className={scrollControlsClassName}\n ref={controlsRef}\n containerRef={containerRef}\n view={view}\n size={size}\n showSkeleton={showSkeleton}\n />\n ) : null}\n </div>\n );\n};\n"],"names":["useRef","useState","useEffect","compute","React","cn","styles","ScrollControls"],"mappings":"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"}
|
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
--gap-4-neg: var(--gap-2xs-neg);
|
|
8
8
|
--gap-16-neg: var(--gap-m-neg);
|
|
9
9
|
}
|
|
10
|
-
.
|
|
10
|
+
.tabs__scrollableContainerWrapper_i5h6l {
|
|
11
11
|
display: flex;
|
|
12
12
|
}
|
|
13
|
-
.
|
|
13
|
+
.tabs__container_i5h6l {
|
|
14
14
|
position: relative;
|
|
15
15
|
overflow-x: auto;
|
|
16
16
|
overflow-y: hidden;
|
|
@@ -20,13 +20,13 @@
|
|
|
20
20
|
margin: var(--gap-4-neg) var(--gap-0) var(--gap-4-neg) var(--gap-4-neg);
|
|
21
21
|
padding: var(--gap-4) var(--gap-0) var(--gap-4) var(--gap-4);
|
|
22
22
|
}
|
|
23
|
-
.
|
|
23
|
+
.tabs__container_i5h6l::-webkit-scrollbar {
|
|
24
24
|
display: none;
|
|
25
25
|
}
|
|
26
|
-
.
|
|
26
|
+
.tabs__container_i5h6l > * {
|
|
27
27
|
flex-shrink: 0;
|
|
28
28
|
}
|
|
29
|
-
.
|
|
29
|
+
.tabs__fullWidthScroll_i5h6l {
|
|
30
30
|
padding-left: var(--gap-0);
|
|
31
31
|
margin: var(--gap-4-neg) var(--gap-16-neg);
|
|
32
32
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require('./index.css');
|
|
4
4
|
|
|
5
|
-
var styles = {"scrollableContainerWrapper":"
|
|
5
|
+
var styles = {"scrollableContainerWrapper":"tabs__scrollableContainerWrapper_i5h6l","container":"tabs__container_i5h6l","fullWidthScroll":"tabs__fullWidthScroll_i5h6l"};
|
|
6
6
|
|
|
7
7
|
module.exports = styles;
|
|
8
8
|
//# sourceMappingURL=index.module.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.module.css.js","sources":["../../src/components/scrollable-container/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/
|
|
1
|
+
{"version":3,"file":"index.module.css.js","sources":["../../src/components/scrollable-container/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n@import '../../vars.css';\n\n.scrollableContainerWrapper {\n display: flex;\n}\n\n.container {\n position: relative;\n overflow-x: auto;\n overflow-y: hidden;\n scroll-behavior: smooth;\n scrollbar-width: none;\n flex: 1;\n\n /* focus-outline fix */\n margin: var(--gap-4-neg) var(--gap-0) var(--gap-4-neg) var(--gap-4-neg);\n padding: var(--gap-4) var(--gap-0) var(--gap-4) var(--gap-4);\n\n &::-webkit-scrollbar {\n display: none;\n }\n\n & > * {\n flex-shrink: 0;\n }\n}\n\n.fullWidthScroll {\n padding-left: var(--gap-0);\n margin: var(--gap-4-neg) var(--gap-16-neg);\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,4BAA4B,CAAC,wCAAwC,CAAC,WAAW,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,6BAA6B,CAAC;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type SecondaryTabListProps } from '../../typings';
|
|
3
|
-
export
|
|
3
|
+
export type SecondaryTabListDesktopProps = Omit<SecondaryTabListProps, 'tagSize' | 'breakpoint'>;
|
|
4
4
|
export declare const SecondaryTabListDesktop: ({ className, size, tagView, ...restProps }: SecondaryTabListDesktopProps) => React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component.js","sources":["../../src/components/secondary-tablist/Component.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\n\nimport { Skeleton } from '@alfalab/core-components-skeleton';\n\nimport { useTabs } from '../../hooks/use-tabs';\nimport { type PlatformProps, type SecondaryTabListProps, type Styles } from '../../typings';\nimport { ScrollableContainer } from '../scrollable-container';\n\nfunction getBorderRadius(\n shape?: SecondaryTabListProps['tagShape'],\n size?: SecondaryTabListProps['size'],\n isMobile?: boolean,\n) {\n if (shape === 'rounded') {\n return 99;\n }\n\n if (size === 'xxs') return isMobile ? 8 : 6;\n if (size === 'xs' || size === 's') return isMobile ? 12 : 8;\n\n return isMobile ? 16 : 4;\n}\n\nexport const SecondaryTabList = ({\n styles = {},\n className,\n containerClassName,\n size,\n titles = [],\n selectedId = titles.length ? titles[0].id : undefined,\n scrollable = true,\n fullWidthScroll,\n tagSize = 40,\n onChange,\n dataTestId,\n TagComponent,\n platform,\n tagShape = 'rounded',\n tagView,\n inlineStyle,\n showSkeleton,\n skeletonProps,\n}: SecondaryTabListProps & Styles & PlatformProps) => {\n const { focusedTab, selectedTab, getTabListItemProps } = useTabs({\n titles,\n selectedId,\n onChange,\n });\n\n const renderContent = () => {\n if (!TagComponent) return null;\n\n return (\n <div\n role='tablist'\n data-test-id={dataTestId}\n className={cn(styles.component, className, size && styles[size], {\n [styles.fullWidthScroll]: fullWidthScroll,\n })}\n >\n {titles.map((item, index) => {\n if (item.hidden) return null;\n\n const renderTab = () => (\n <TagComponent\n {...getTabListItemProps(index)}\n shape={tagShape}\n view={tagView}\n key={item.id}\n className={cn(styles.title, item.toggleClassName)}\n checked={item.id === selectedId}\n size={tagSize}\n rightAddons={item.rightAddons}\n >\n {item.title}\n </TagComponent>\n );\n\n return showSkeleton ? (\n <Skeleton\n {...skeletonProps}\n className={cn(styles.skeleton, skeletonProps?.className)}\n key={item.id}\n visible={true}\n style={{\n ...skeletonProps?.style,\n borderRadius: getBorderRadius(\n tagShape,\n (\n {\n 32: 'xxs',\n 40: 'xs',\n 48: 's',\n 56: 'm',\n 64: 'l',\n 72: 'xl',\n } as const\n )[tagSize],\n platform === 'mobile',\n ),\n }}\n >\n {renderTab()}\n </Skeleton>\n ) : (\n renderTab()\n );\n })}\n </div>\n );\n };\n\n return scrollable ? (\n <ScrollableContainer\n activeChild={focusedTab || selectedTab}\n containerClassName={containerClassName}\n fullWidthScroll={fullWidthScroll}\n view='secondary'\n size={size}\n platform={platform}\n inlineStyle={inlineStyle}\n showSkeleton={showSkeleton}\n >\n {renderContent()}\n </ScrollableContainer>\n ) : (\n <div className={cn(styles.container, containerClassName)} style={inlineStyle}>\n {renderContent()}\n </div>\n );\n};\n"],"names":["useTabs","React","cn","__assign","Skeleton","ScrollableContainer"],"mappings":";;;;;;;;;;;;;;;;AASA,SAAS,eAAe,CACpB,KAAyC,EACzC,IAAoC,EACpC,QAAkB,EAAA;
|
|
1
|
+
{"version":3,"file":"Component.js","sources":["../../src/components/secondary-tablist/Component.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\n\nimport { Skeleton } from '@alfalab/core-components-skeleton';\n\nimport { useTabs } from '../../hooks/use-tabs';\nimport { type PlatformProps, type SecondaryTabListProps, type Styles } from '../../typings';\nimport { ScrollableContainer } from '../scrollable-container';\n\nfunction getBorderRadius(\n shape?: SecondaryTabListProps['tagShape'],\n size?: SecondaryTabListProps['size'],\n isMobile?: boolean,\n) {\n if (shape === 'rounded') {\n return 99;\n }\n\n if (size === 'xxs') return isMobile ? 8 : 6;\n if (size === 'xs' || size === 's') return isMobile ? 12 : 8;\n\n return isMobile ? 16 : 4;\n}\n\nexport const SecondaryTabList = ({\n styles = {},\n className,\n containerClassName,\n size,\n titles = [],\n selectedId = titles.length ? titles[0].id : undefined,\n scrollable = true,\n fullWidthScroll,\n tagSize = 40,\n onChange,\n dataTestId,\n TagComponent,\n platform,\n tagShape = 'rounded',\n tagView,\n inlineStyle,\n showSkeleton,\n skeletonProps,\n}: SecondaryTabListProps & Styles & PlatformProps) => {\n const { focusedTab, selectedTab, getTabListItemProps } = useTabs({\n titles,\n selectedId,\n onChange,\n });\n\n const renderContent = () => {\n if (!TagComponent) return null;\n\n return (\n <div\n role='tablist'\n data-test-id={dataTestId}\n className={cn(styles.component, className, size && styles[size], {\n [styles.fullWidthScroll]: fullWidthScroll,\n })}\n >\n {titles.map((item, index) => {\n if (item.hidden) return null;\n\n const renderTab = () => (\n <TagComponent\n {...getTabListItemProps(index)}\n shape={tagShape}\n view={tagView}\n key={item.id}\n className={cn(styles.title, item.toggleClassName)}\n checked={item.id === selectedId}\n size={tagSize}\n rightAddons={item.rightAddons}\n >\n {item.title}\n </TagComponent>\n );\n\n return showSkeleton ? (\n <Skeleton\n {...skeletonProps}\n className={cn(styles.skeleton, skeletonProps?.className)}\n key={item.id}\n visible={true}\n style={{\n ...skeletonProps?.style,\n borderRadius: getBorderRadius(\n tagShape,\n (\n {\n 32: 'xxs',\n 40: 'xs',\n 48: 's',\n 56: 'm',\n 64: 'l',\n 72: 'xl',\n } as const\n )[tagSize],\n platform === 'mobile',\n ),\n }}\n >\n {renderTab()}\n </Skeleton>\n ) : (\n renderTab()\n );\n })}\n </div>\n );\n };\n\n return scrollable ? (\n <ScrollableContainer\n activeChild={focusedTab || selectedTab}\n containerClassName={containerClassName}\n fullWidthScroll={fullWidthScroll}\n view='secondary'\n size={size}\n platform={platform}\n inlineStyle={inlineStyle}\n showSkeleton={showSkeleton}\n >\n {renderContent()}\n </ScrollableContainer>\n ) : (\n <div className={cn(styles.container, containerClassName)} style={inlineStyle}>\n {renderContent()}\n </div>\n );\n};\n"],"names":["useTabs","React","cn","__assign","Skeleton","ScrollableContainer"],"mappings":";;;;;;;;;;;;;;;;AASA,SAAS,eAAe,CACpB,KAAyC,EACzC,IAAoC,EACpC,QAAkB,EAAA;AAElB,IAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACrB,QAAA,OAAO,EAAE;;IAGb,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,QAAQ,GAAG,CAAC,GAAG,CAAC;AAC3C,IAAA,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,QAAQ,GAAG,EAAE,GAAG,CAAC;IAE3D,OAAO,QAAQ,GAAG,EAAE,GAAG,CAAC;AAC5B;AAEO,IAAM,gBAAgB,GAAG,UAAC,EAmBgB,EAAA;AAlB7C,IAAA,IAAA,EAAA,GAAA,EAAA,CAAA,MAAW,EAAX,MAAM,GAAA,EAAA,KAAA,MAAA,GAAG,EAAE,GAAA,EAAA,EACX,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,kBAAkB,GAAA,EAAA,CAAA,kBAAA,EAClB,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,cAAW,EAAX,MAAM,mBAAG,EAAE,GAAA,EAAA,EACX,EAAqD,GAAA,EAAA,CAAA,UAAA,EAArD,UAAU,GAAG,EAAA,KAAA,MAAA,GAAA,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,KAAA,EACrD,EAAA,GAAA,EAAA,CAAA,UAAiB,EAAjB,UAAU,mBAAG,IAAI,GAAA,EAAA,EACjB,eAAe,GAAA,EAAA,CAAA,eAAA,EACf,EAAY,GAAA,EAAA,CAAA,OAAA,EAAZ,OAAO,GAAG,EAAA,KAAA,MAAA,GAAA,EAAE,KAAA,EACZ,QAAQ,cAAA,EACR,UAAU,gBAAA,EACV,YAAY,kBAAA,EACZ,QAAQ,cAAA,EACR,EAAA,GAAA,EAAA,CAAA,QAAoB,EAApB,QAAQ,GAAA,EAAA,KAAA,MAAA,GAAG,SAAS,GAAA,EAAA,EACpB,OAAO,GAAA,EAAA,CAAA,OAAA,EACP,WAAW,GAAA,EAAA,CAAA,WAAA,EACX,YAAY,GAAA,EAAA,CAAA,YAAA,EACZ,aAAa,GAAA,EAAA,CAAA,aAAA;IAEP,IAAA,EAAA,GAAmDA,eAAO,CAAC;AAC7D,QAAA,MAAM,EAAA,MAAA;AACN,QAAA,UAAU,EAAA,UAAA;AACV,QAAA,QAAQ,EAAA,QAAA;KACX,CAAC,EAJM,UAAU,GAAA,EAAA,CAAA,UAAA,EAAE,WAAW,GAAA,EAAA,CAAA,WAAA,EAAE,mBAAmB,GAAA,EAAA,CAAA,mBAIlD;AAEF,IAAA,IAAM,aAAa,GAAG,YAAA;;AAClB,QAAA,IAAI,CAAC,YAAY;AAAE,YAAA,OAAO,IAAI;QAE9B,QACIC,8CACI,IAAI,EAAC,SAAS,EACA,cAAA,EAAA,UAAU,EACxB,SAAS,EAAEC,mBAAE,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,GAAA,EAAA,GAAA,EAAA;AAC3D,gBAAA,EAAA,CAAC,MAAM,CAAC,eAAe,CAAA,GAAG,eAAe;AAC3C,gBAAA,EAAA,EAAA,EAAA,EAED,MAAM,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK,EAAA;YACpB,IAAI,IAAI,CAAC,MAAM;AAAE,gBAAA,OAAO,IAAI;AAE5B,YAAA,IAAM,SAAS,GAAG,YAAM,EAAA,QACpBD,sBAAA,CAAA,aAAA,CAAC,YAAY,EAAAE,cAAA,CAAA,EAAA,EACL,mBAAmB,CAAC,KAAK,CAAC,IAC9B,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,IAAI,CAAC,EAAE,EACZ,SAAS,EAAED,mBAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,EACjD,OAAO,EAAE,IAAI,CAAC,EAAE,KAAK,UAAU,EAC/B,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,IAAI,CAAC,WAAW,EAAA,CAAA,EAE5B,IAAI,CAAC,KAAK,CACA,EAClB,EAAA;YAED,OAAO,YAAY,IACfD,qCAACG,+BAAQ,EAAAD,cAAA,CAAA,EAAA,EACD,aAAa,EAAA,EACjB,SAAS,EAAED,mBAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,aAAb,aAAa,KAAA,MAAA,GAAA,MAAA,GAAb,aAAa,CAAE,SAAS,CAAC,EACxD,GAAG,EAAE,IAAI,CAAC,EAAE,EACZ,OAAO,EAAE,IAAI,EACb,KAAK,EACEC,cAAA,CAAAA,cAAA,CAAA,EAAA,EAAA,aAAa,aAAb,aAAa,KAAA,MAAA,GAAA,MAAA,GAAb,aAAa,CAAE,KAAK,CAAA,EAAA,EACvB,YAAY,EAAE,eAAe,CACzB,QAAQ,EAEJ;AACI,wBAAA,EAAE,EAAE,KAAK;AACT,wBAAA,EAAE,EAAE,IAAI;AACR,wBAAA,EAAE,EAAE,GAAG;AACP,wBAAA,EAAE,EAAE,GAAG;AACP,wBAAA,EAAE,EAAE,GAAG;AACP,wBAAA,EAAE,EAAE,IAAI;AAEf,qBAAA,CAAC,OAAO,CAAC,EACV,QAAQ,KAAK,QAAQ,CACxB,EAGJ,CAAA,EAAA,CAAA,EAAA,SAAS,EAAE,CACL,KAEX,SAAS,EAAE,CACd;SACJ,CAAC,CACA;AAEd,KAAC;AAED,IAAA,OAAO,UAAU,IACbF,sBAAC,CAAA,aAAA,CAAAI,6BAAmB,EAChB,EAAA,WAAW,EAAE,UAAU,IAAI,WAAW,EACtC,kBAAkB,EAAE,kBAAkB,EACtC,eAAe,EAAE,eAAe,EAChC,IAAI,EAAC,WAAW,EAChB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,IAEzB,aAAa,EAAE,CACE,KAEtBJ,8CAAK,SAAS,EAAEC,mBAAE,CAAC,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,EAAE,KAAK,EAAE,WAAW,EACvE,EAAA,aAAa,EAAE,CACd,CACT;AACL;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type SecondaryTabListProps } from '../../typings';
|
|
3
|
-
export
|
|
3
|
+
export type SecondaryTabListMobileProps = Omit<SecondaryTabListProps, 'tagSize'>;
|
|
4
4
|
export declare const SecondaryTabListMobile: ({ className, size, tagView, ...restProps }: SecondaryTabListMobileProps) => React.JSX.Element;
|
|
@@ -20,47 +20,47 @@
|
|
|
20
20
|
--secondary-tablist-xl-gaps: var(--gap-16);
|
|
21
21
|
--secondary-tablist-transparent-gaps: var(--gap-0);
|
|
22
22
|
}
|
|
23
|
-
.
|
|
23
|
+
.tabs__component_1j6ak {
|
|
24
24
|
position: relative;
|
|
25
25
|
display: inline-flex;
|
|
26
26
|
}
|
|
27
|
-
.
|
|
27
|
+
.tabs__fullWidthScroll_1j6ak {
|
|
28
28
|
margin: var(--gap-0) var(--gap-16);
|
|
29
29
|
}
|
|
30
|
-
.
|
|
30
|
+
.tabs__container_1j6ak {
|
|
31
31
|
overflow: hidden;
|
|
32
32
|
margin: var(--gap-4-neg) var(--gap-0) var(--gap-4-neg) var(--gap-4-neg);
|
|
33
33
|
padding: var(--gap-4) var(--gap-0) var(--gap-4) var(--gap-4);
|
|
34
34
|
}
|
|
35
|
-
.
|
|
35
|
+
.tabs__title_1j6ak {
|
|
36
36
|
white-space: nowrap;
|
|
37
37
|
}
|
|
38
|
-
.
|
|
39
|
-
.
|
|
38
|
+
.tabs__desktop_1j6ak.tabs__desktop_1j6ak.tabs__transparentView_1j6ak.tabs__transparentView_1j6ak {
|
|
39
|
+
.tabs__title_1j6ak.tabs__title_1j6ak {
|
|
40
40
|
margin-left: var(--secondary-tablist-transparent-gaps);
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
-
.
|
|
44
|
-
.
|
|
43
|
+
.tabs__xxs_1j6ak .tabs__title_1j6ak + .tabs__title_1j6ak,
|
|
44
|
+
.tabs__xxs_1j6ak .tabs__skeleton_1j6ak + .tabs__skeleton_1j6ak {
|
|
45
45
|
margin-left: var(--secondary-tablist-xxs-gaps);
|
|
46
46
|
}
|
|
47
|
-
.
|
|
48
|
-
.
|
|
47
|
+
.tabs__xs_1j6ak .tabs__title_1j6ak + .tabs__title_1j6ak,
|
|
48
|
+
.tabs__xs_1j6ak .tabs__skeleton_1j6ak + .tabs__skeleton_1j6ak {
|
|
49
49
|
margin-left: var(--secondary-tablist-xs-gaps);
|
|
50
50
|
}
|
|
51
|
-
.
|
|
52
|
-
.
|
|
51
|
+
.tabs__s_1j6ak .tabs__title_1j6ak + .tabs__title_1j6ak,
|
|
52
|
+
.tabs__s_1j6ak .tabs__skeleton_1j6ak + .tabs__skeleton_1j6ak {
|
|
53
53
|
margin-left: var(--secondary-tablist-s-gaps);
|
|
54
54
|
}
|
|
55
|
-
.
|
|
56
|
-
.
|
|
55
|
+
.tabs__m_1j6ak .tabs__title_1j6ak + .tabs__title_1j6ak,
|
|
56
|
+
.tabs__m_1j6ak .tabs__skeleton_1j6ak + .tabs__skeleton_1j6ak {
|
|
57
57
|
margin-left: var(--secondary-tablist-m-gaps);
|
|
58
58
|
}
|
|
59
|
-
.
|
|
60
|
-
.
|
|
59
|
+
.tabs__l_1j6ak .tabs__title_1j6ak + .tabs__title_1j6ak,
|
|
60
|
+
.tabs__l_1j6ak .tabs__skeleton_1j6ak + .tabs__skeleton_1j6ak {
|
|
61
61
|
margin-left: var(--secondary-tablist-l-gaps);
|
|
62
62
|
}
|
|
63
|
-
.
|
|
64
|
-
.
|
|
63
|
+
.tabs__xl_1j6ak .tabs__title_1j6ak + .tabs__title_1j6ak,
|
|
64
|
+
.tabs__xl_1j6ak .tabs__skeleton_1j6ak + .tabs__skeleton_1j6ak {
|
|
65
65
|
margin-left: var(--secondary-tablist-xl-gaps);
|
|
66
66
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require('./index.css');
|
|
4
4
|
|
|
5
|
-
var commonStyles = {"component":"
|
|
5
|
+
var commonStyles = {"component":"tabs__component_1j6ak","fullWidthScroll":"tabs__fullWidthScroll_1j6ak","container":"tabs__container_1j6ak","title":"tabs__title_1j6ak","desktop":"tabs__desktop_1j6ak","transparentView":"tabs__transparentView_1j6ak","xxs":"tabs__xxs_1j6ak","skeleton":"tabs__skeleton_1j6ak","xs":"tabs__xs_1j6ak","s":"tabs__s_1j6ak","m":"tabs__m_1j6ak","l":"tabs__l_1j6ak","xl":"tabs__xl_1j6ak"};
|
|
6
6
|
|
|
7
7
|
module.exports = commonStyles;
|
|
8
8
|
//# sourceMappingURL=index.module.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.module.css.js","sources":["../../src/components/secondary-tablist/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/
|
|
1
|
+
{"version":3,"file":"index.module.css.js","sources":["../../src/components/secondary-tablist/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n@import '../../vars.css';\n\n.component {\n position: relative;\n display: inline-flex;\n}\n\n.fullWidthScroll {\n margin: var(--gap-0) var(--gap-16);\n}\n\n.container {\n overflow: hidden;\n\n /* focus-outline fix */\n margin: var(--gap-4-neg) var(--gap-0) var(--gap-4-neg) var(--gap-4-neg);\n padding: var(--gap-4) var(--gap-0) var(--gap-4) var(--gap-4);\n}\n\n.title {\n white-space: nowrap;\n}\n\n.desktop.desktop {\n &.transparentView.transparentView {\n .title.title {\n margin-left: var(--secondary-tablist-transparent-gaps);\n }\n }\n}\n\n/* sizes */\n\n.xxs {\n & .title + .title,\n & .skeleton + .skeleton {\n margin-left: var(--secondary-tablist-xxs-gaps);\n }\n}\n\n.xs {\n & .title + .title,\n & .skeleton + .skeleton {\n margin-left: var(--secondary-tablist-xs-gaps);\n }\n}\n\n.s {\n & .title + .title,\n & .skeleton + .skeleton {\n margin-left: var(--secondary-tablist-s-gaps);\n }\n}\n\n.m {\n & .title + .title,\n & .skeleton + .skeleton {\n margin-left: var(--secondary-tablist-m-gaps);\n }\n}\n\n.l {\n & .title + .title,\n & .skeleton + .skeleton {\n margin-left: var(--secondary-tablist-l-gaps);\n }\n}\n\n.xl {\n & .title + .title,\n & .skeleton + .skeleton {\n margin-left: var(--secondary-tablist-xl-gaps);\n }\n}\n"],"names":[],"mappings":";;;;AAEgB,mBAAe,CAAC,WAAW,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,6BAA6B,CAAC,WAAW,CAAC,uBAAuB,CAAC,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,6BAA6B,CAAC,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC;;;;"}
|
|
@@ -19,38 +19,38 @@
|
|
|
19
19
|
--secondary-tablist-l-gaps: var(--gap-16);
|
|
20
20
|
--secondary-tablist-xl-gaps: var(--gap-16);
|
|
21
21
|
--secondary-tablist-transparent-gaps: var(--gap-0);
|
|
22
|
-
}.
|
|
22
|
+
}.tabs__component_1j6ak {
|
|
23
23
|
position: relative;
|
|
24
24
|
display: inline-flex;
|
|
25
|
-
}.
|
|
25
|
+
}.tabs__fullWidthScroll_1j6ak {
|
|
26
26
|
margin: var(--gap-0) var(--gap-16);
|
|
27
|
-
}.
|
|
27
|
+
}.tabs__container_1j6ak {
|
|
28
28
|
overflow: hidden;
|
|
29
29
|
margin: var(--gap-4-neg) var(--gap-0) var(--gap-4-neg) var(--gap-4-neg);
|
|
30
30
|
padding: var(--gap-4) var(--gap-0) var(--gap-4) var(--gap-4);
|
|
31
|
-
}.
|
|
31
|
+
}.tabs__title_1j6ak {
|
|
32
32
|
white-space: nowrap;
|
|
33
|
-
}.
|
|
34
|
-
.
|
|
33
|
+
}.tabs__desktop_1j6ak.tabs__desktop_1j6ak.tabs__transparentView_1j6ak.tabs__transparentView_1j6ak {
|
|
34
|
+
.tabs__title_1j6ak.tabs__title_1j6ak {
|
|
35
35
|
margin-left: var(--secondary-tablist-transparent-gaps);
|
|
36
36
|
}
|
|
37
|
-
}.
|
|
38
|
-
.
|
|
37
|
+
}.tabs__xxs_1j6ak .tabs__title_1j6ak + .tabs__title_1j6ak,
|
|
38
|
+
.tabs__xxs_1j6ak .tabs__skeleton_1j6ak + .tabs__skeleton_1j6ak {
|
|
39
39
|
margin-left: var(--secondary-tablist-xxs-gaps);
|
|
40
|
-
}.
|
|
41
|
-
.
|
|
40
|
+
}.tabs__xs_1j6ak .tabs__title_1j6ak + .tabs__title_1j6ak,
|
|
41
|
+
.tabs__xs_1j6ak .tabs__skeleton_1j6ak + .tabs__skeleton_1j6ak {
|
|
42
42
|
margin-left: var(--secondary-tablist-xs-gaps);
|
|
43
|
-
}.
|
|
44
|
-
.
|
|
43
|
+
}.tabs__s_1j6ak .tabs__title_1j6ak + .tabs__title_1j6ak,
|
|
44
|
+
.tabs__s_1j6ak .tabs__skeleton_1j6ak + .tabs__skeleton_1j6ak {
|
|
45
45
|
margin-left: var(--secondary-tablist-s-gaps);
|
|
46
|
-
}.
|
|
47
|
-
.
|
|
46
|
+
}.tabs__m_1j6ak .tabs__title_1j6ak + .tabs__title_1j6ak,
|
|
47
|
+
.tabs__m_1j6ak .tabs__skeleton_1j6ak + .tabs__skeleton_1j6ak {
|
|
48
48
|
margin-left: var(--secondary-tablist-m-gaps);
|
|
49
|
-
}.
|
|
50
|
-
.
|
|
49
|
+
}.tabs__l_1j6ak .tabs__title_1j6ak + .tabs__title_1j6ak,
|
|
50
|
+
.tabs__l_1j6ak .tabs__skeleton_1j6ak + .tabs__skeleton_1j6ak {
|
|
51
51
|
margin-left: var(--secondary-tablist-l-gaps);
|
|
52
|
-
}.
|
|
53
|
-
.
|
|
52
|
+
}.tabs__xl_1j6ak .tabs__title_1j6ak + .tabs__title_1j6ak,
|
|
53
|
+
.tabs__xl_1j6ak .tabs__skeleton_1j6ak + .tabs__skeleton_1j6ak {
|
|
54
54
|
margin-left: var(--secondary-tablist-xl-gaps);
|
|
55
55
|
}
|
|
56
56
|
:root {
|
|
@@ -76,12 +76,12 @@
|
|
|
76
76
|
--secondary-tablist-xl-gaps: var(--gap-16);
|
|
77
77
|
--secondary-tablist-transparent-gaps: var(--gap-0);
|
|
78
78
|
}
|
|
79
|
-
.
|
|
79
|
+
.tabs__title_vgd9z {
|
|
80
80
|
}
|
|
81
|
-
.
|
|
82
|
-
.
|
|
81
|
+
.tabs__mobile_vgd9z .tabs__title_vgd9z + .tabs__title_vgd9z,
|
|
82
|
+
.tabs__mobile_vgd9z .tabs__skeleton_vgd9z + .tabs__skeleton_vgd9z {
|
|
83
83
|
margin-left: var(--secondary-tablist-mobile-gaps);
|
|
84
84
|
}
|
|
85
|
-
.
|
|
85
|
+
.tabs__mobile_vgd9z.tabs__transparentView_vgd9z.tabs__transparentView_vgd9z .tabs__title_vgd9z {
|
|
86
86
|
margin-left: var(--secondary-tablist-transparent-gaps);
|
|
87
87
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require('./mobile.css');
|
|
4
4
|
|
|
5
|
-
var mobileStyles = {"title":"
|
|
5
|
+
var mobileStyles = {"title":"tabs__title_vgd9z tabs__title_1j6ak","mobile":"tabs__mobile_vgd9z","skeleton":"tabs__skeleton_vgd9z","transparentView":"tabs__transparentView_vgd9z"};
|
|
6
6
|
|
|
7
7
|
module.exports = mobileStyles;
|
|
8
8
|
//# sourceMappingURL=mobile.module.css.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { type FC } from 'react';
|
|
2
2
|
import { type TabProps } from '../../typings';
|
|
3
|
-
export declare const Tab:
|
|
3
|
+
export declare const Tab: FC<TabProps>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component.js","sources":["../../src/components/tab/Component.tsx"],"sourcesContent":["import React, { type AriaAttributes } from 'react';\nimport cn from 'classnames';\n\nimport { type TabProps } from '../../typings';\n\nimport styles from './index.module.css';\n\nexport const Tab = ({\n children,\n hidden,\n className,\n disabled,\n dataTestId,\n // useless props\n id,\n title,\n rightAddons,\n ...restProps\n}
|
|
1
|
+
{"version":3,"file":"Component.js","sources":["../../src/components/tab/Component.tsx"],"sourcesContent":["import React, { type AriaAttributes, type FC } from 'react';\nimport cn from 'classnames';\n\nimport { type TabProps } from '../../typings';\n\nimport styles from './index.module.css';\n\nexport const Tab: FC<TabProps> = ({\n children,\n hidden,\n className,\n disabled,\n dataTestId,\n // useless props\n id,\n title,\n rightAddons,\n ...restProps\n}) =>\n children ? (\n <div\n className={cn(\n styles.component,\n {\n [styles.hidden]: hidden,\n },\n className,\n )}\n hidden={hidden}\n role='tabpanel'\n tabIndex={disabled ? -1 : 0}\n data-test-id={dataTestId}\n {...(restProps as AriaAttributes)}\n >\n {children}\n </div>\n ) : null;\n"],"names":["__rest","React","__assign","cn","styles"],"mappings":";;;;;;;;;;;;;;AAOO,IAAM,GAAG,GAAiB,UAAC,EAWjC,EAAA;;AAVG,IAAA,IAAA,QAAQ,GAAA,EAAA,CAAA,QAAA,CACR,CAAA,MAAM,GAAA,EAAA,CAAA,MAAA,CAAA,CACN,SAAS,GAAA,EAAA,CAAA,SAAA,CACT,CAAA,QAAQ,GAAA,EAAA,CAAA,QAAA,CAAA,CACR,UAAU,GAAA,EAAA,CAAA,UAAA,CAAA;IACV;IACE,EAAA,CAAA,EAAA,CACF,CAAK,EAAA,CAAA,KAAA,CAAA,CACM,EAAA,CAAA,WAAA,CACR,KAAA,SAAS,GAVkBA,YAAA,CAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,OAAA,EAAA,aAAA,CAWjC;AACG,IAAA,OAAA,QAAQ,IACJC,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAAC,cAAA,CAAA,EACI,SAAS,EAAEC,mBAAE,CACTC,YAAM,CAAC,SAAS,GAAA,EAAA,GAAA,EAAA;AAEZ,YAAA,EAAA,CAACA,YAAM,CAAC,MAAM,CAAA,GAAG,MAAM;AAE3B,YAAA,EAAA,GAAA,SAAS,CACZ,EACD,MAAM,EAAE,MAAM,EACd,IAAI,EAAC,UAAU,EACf,QAAQ,EAAE,QAAQ,GAAG,EAAE,GAAG,CAAC,EAAA,cAAA,EACb,UAAU,EACnB,EAAA,SAA4B,CAEhC,EAAA,QAAQ,CACP,IACN,IAAI;;;;;"}
|
package/components/tab/index.css
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require('./index.css');
|
|
4
4
|
|
|
5
|
-
var styles = {"component":"
|
|
5
|
+
var styles = {"component":"tabs__component_17bb0","hidden":"tabs__hidden_17bb0"};
|
|
6
6
|
|
|
7
7
|
module.exports = styles;
|
|
8
8
|
//# sourceMappingURL=index.module.css.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type TabsProps } from '../../typings';
|
|
3
|
-
export
|
|
3
|
+
export type TabsCollapsibleProps = Omit<TabsProps, 'TabList' | 'fullWidthScroll' | 'scrollable' | 'view'>;
|
|
4
4
|
export declare const TabsCollapsible: ({ ...restProps }: TabsCollapsibleProps) => React.JSX.Element;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type TabsProps } from '../../typings';
|
|
3
|
-
export declare const Tabs: ({ TabList, className, containerClassName, size, children, selectedId, scrollable, collapsedTabsIds, fullWidthScroll, keepMounted, dataTestId, onChange, breakpoint, client, defaultMatchMediaValue, tagShape, tagView, showSkeleton, skeletonProps, textStyle, style, titleProps, ...restProps }: Omit<TabsProps,
|
|
3
|
+
export declare const Tabs: ({ TabList, className, containerClassName, size, children, selectedId, scrollable, collapsedTabsIds, fullWidthScroll, keepMounted, dataTestId, onChange, breakpoint, client, defaultMatchMediaValue, tagShape, tagView, showSkeleton, skeletonProps, textStyle, style, titleProps, ...restProps }: Omit<TabsProps, "view">) => React.JSX.Element;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type TabsProps } from '../../typings';
|
|
3
|
-
export
|
|
3
|
+
export type TabsDesktopProps = Omit<TabsProps, 'TabList' | 'fullWidthScroll' | 'breakpoint' | 'collapsedTabsIds'>;
|
|
4
4
|
export declare const TabsDesktop: ({ view, scrollable, size, ...restProps }: TabsDesktopProps) => React.JSX.Element;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type TabsProps } from '../../typings';
|
|
3
|
-
export
|
|
3
|
+
export type TabsMobileProps = Omit<TabsProps, 'TabList' | 'collapsedTabsIds'>;
|
|
4
4
|
export declare const TabsMobile: ({ view, scrollable, ...restProps }: TabsMobileProps) => React.JSX.Element;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type TabsProps } from '../../typings';
|
|
3
|
-
export
|
|
3
|
+
export type TabsResponsiveProps = Omit<TabsProps, 'TabList' | 'collapsedTabsIds'>;
|
|
4
4
|
export declare const TabsResponsive: ({ view, scrollable, breakpoint, client, defaultMatchMediaValue, ...restProps }: TabsResponsiveProps) => React.JSX.Element;
|