@alfalab/core-components-tab-bar 3.0.1 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/Component.d.ts +1 -1
  2. package/Component.js.map +1 -1
  3. package/components/tab/Component.d.ts +1 -1
  4. package/components/tab/Component.js.map +1 -1
  5. package/components/tab/index.css +10 -8
  6. package/components/tab/index.module.css.js +1 -1
  7. package/components/tab/index.module.css.js.map +1 -1
  8. package/cssm/Component.d.ts +1 -1
  9. package/cssm/Component.js.map +1 -1
  10. package/cssm/components/tab/Component.d.ts +1 -1
  11. package/cssm/components/tab/Component.js.map +1 -1
  12. package/cssm/components/tab/index.module.css +3 -1
  13. package/cssm/index.module.css +2 -2
  14. package/cssm/types.d.ts +2 -2
  15. package/esm/Component.d.ts +1 -1
  16. package/esm/Component.js.map +1 -1
  17. package/esm/components/tab/Component.d.ts +1 -1
  18. package/esm/components/tab/Component.js.map +1 -1
  19. package/esm/components/tab/index.css +10 -8
  20. package/esm/components/tab/index.module.css.js +1 -1
  21. package/esm/components/tab/index.module.css.js.map +1 -1
  22. package/esm/index.css +7 -7
  23. package/esm/index.module.css.js +1 -1
  24. package/esm/index.module.css.js.map +1 -1
  25. package/esm/types.d.ts +2 -2
  26. package/index.css +7 -7
  27. package/index.module.css.js +1 -1
  28. package/index.module.css.js.map +1 -1
  29. package/modern/Component.d.ts +1 -1
  30. package/modern/Component.js.map +1 -1
  31. package/modern/components/tab/Component.d.ts +1 -1
  32. package/modern/components/tab/Component.js.map +1 -1
  33. package/modern/components/tab/index.css +10 -8
  34. package/modern/components/tab/index.module.css.js +1 -1
  35. package/modern/components/tab/index.module.css.js.map +1 -1
  36. package/modern/index.css +7 -7
  37. package/modern/index.module.css.js +1 -1
  38. package/modern/index.module.css.js.map +1 -1
  39. package/modern/types.d.ts +2 -2
  40. package/moderncssm/Component.d.ts +1 -1
  41. package/moderncssm/Component.js.map +1 -1
  42. package/moderncssm/components/tab/Component.d.ts +1 -1
  43. package/moderncssm/components/tab/Component.js.map +1 -1
  44. package/moderncssm/components/tab/index.module.css +3 -1
  45. package/moderncssm/index.module.css +8 -2
  46. package/moderncssm/types.d.ts +2 -2
  47. package/package.json +3 -3
  48. package/src/Component.tsx +1 -1
  49. package/src/components/tab/Component.tsx +2 -2
  50. package/src/components/tab/index.module.css +1 -1
  51. package/src/index.module.css +1 -1
  52. package/src/types.ts +9 -9
  53. package/types.d.ts +2 -2
package/Component.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { TabBarProps } from './types';
2
+ import { type TabBarProps } from './types';
3
3
  export declare const TabBar: React.ForwardRefExoticComponent<TabBarProps & React.RefAttributes<HTMLDivElement>> & {
4
4
  Tab: React.ForwardRefExoticComponent<import("./types").TabProps & React.RefAttributes<HTMLElement>>;
5
5
  };
package/Component.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["src/Component.tsx"],"sourcesContent":["import React, { Children, cloneElement, forwardRef } from 'react';\nimport cn from 'classnames';\n\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport { Tab } from './components/tab';\nimport { TabBarProps } from './types';\n\nimport styles from './index.module.css';\n\nconst TabBarComponent = forwardRef<HTMLDivElement, TabBarProps>(\n (\n {\n children,\n className,\n selectedId,\n border,\n dataTestId,\n tabClassNames,\n onChange,\n accentColor = 'primary',\n bgColor = 'modal-bg-primary',\n ...restProps\n },\n ref,\n ) => {\n if (Children.count(children) > 5) {\n // eslint-disable-next-line no-console\n console.error('Компонент TabBar не может содержать больше 5 табов');\n }\n\n return (\n <nav\n data-test-id={dataTestId}\n {...restProps}\n ref={ref}\n className={cn(styles.component, styles[bgColor], className, {\n [styles.border]: border,\n })}\n >\n {Children.map(children, (tab) =>\n cloneElement(tab, {\n bgColor,\n accentColor,\n selected: tab.props.id === selectedId,\n onChange,\n tabClassNames,\n dataTestId: getDataTestId(dataTestId, 'tab'),\n }),\n )}\n </nav>\n );\n },\n);\n\nTabBarComponent.displayName = 'TabBarComponent';\n\nexport const TabBar = Object.assign(TabBarComponent, { Tab });\n"],"names":["forwardRef","__rest","Children","React","cn","styles","cloneElement","getDataTestId","Tab"],"mappings":";;;;;;;;;;;;;;;;AAUA,IAAM,eAAe,GAAGA,gBAAU,CAC9B,UACI,EAWC,EACD,GAAG,EAAA;;AAXC,IAAA,IAAA,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,MAAM,YAAA,EACN,UAAU,gBAAA,EACV,aAAa,mBAAA,EACb,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,mBAAuB,EAAvB,WAAW,GAAG,EAAA,KAAA,MAAA,GAAA,SAAS,KAAA,EACvB,EAAA,GAAA,EAAA,CAAA,OAA4B,EAA5B,OAAO,mBAAG,kBAAkB,GAAA,EAAA,EACzB,SAAS,GAAAC,YAAA,CAAA,EAAA,EAVhB,sHAWC,CADe;IAIhB,IAAIC,cAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;;AAE9B,QAAA,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC;AACtE;IAED,QACIC,6EACkB,UAAU,EAAA,EACpB,SAAS,EACb,EAAA,GAAG,EAAE,GAAG,EACR,SAAS,EAAEC,mBAAE,CAACC,YAAM,CAAC,SAAS,EAAEA,YAAM,CAAC,OAAO,CAAC,EAAE,SAAS,GAAA,EAAA,GAAA,EAAA;AACtD,YAAA,EAAA,CAACA,YAAM,CAAC,MAAM,CAAA,GAAG,MAAM;AACzB,YAAA,EAAA,EAAA,EAAA,CAAA,EAEDH,cAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,GAAG,EAAA;QACxB,OAAAI,kBAAY,CAAC,GAAG,EAAE;AACd,YAAA,OAAO,EAAA,OAAA;AACP,YAAA,WAAW,EAAA,WAAA;AACX,YAAA,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,UAAU;AACrC,YAAA,QAAQ,EAAA,QAAA;AACR,YAAA,aAAa,EAAA,aAAA;AACb,YAAA,UAAU,EAAEC,kCAAa,CAAC,UAAU,EAAE,KAAK,CAAC;SAC/C,CAAC;KAAA,CACL,CACC;AAEd,CAAC,CACJ;AAED,eAAe,CAAC,WAAW,GAAG,iBAAiB;AAExC,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,GAAG,EAAAC,aAAA,EAAE;;;;"}
1
+ {"version":3,"file":"Component.js","sources":["src/Component.tsx"],"sourcesContent":["import React, { Children, cloneElement, forwardRef } from 'react';\nimport cn from 'classnames';\n\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport { Tab } from './components/tab';\nimport { type TabBarProps } from './types';\n\nimport styles from './index.module.css';\n\nconst TabBarComponent = forwardRef<HTMLDivElement, TabBarProps>(\n (\n {\n children,\n className,\n selectedId,\n border,\n dataTestId,\n tabClassNames,\n onChange,\n accentColor = 'primary',\n bgColor = 'modal-bg-primary',\n ...restProps\n },\n ref,\n ) => {\n if (Children.count(children) > 5) {\n // eslint-disable-next-line no-console\n console.error('Компонент TabBar не может содержать больше 5 табов');\n }\n\n return (\n <nav\n data-test-id={dataTestId}\n {...restProps}\n ref={ref}\n className={cn(styles.component, styles[bgColor], className, {\n [styles.border]: border,\n })}\n >\n {Children.map(children, (tab) =>\n cloneElement(tab, {\n bgColor,\n accentColor,\n selected: tab.props.id === selectedId,\n onChange,\n tabClassNames,\n dataTestId: getDataTestId(dataTestId, 'tab'),\n }),\n )}\n </nav>\n );\n },\n);\n\nTabBarComponent.displayName = 'TabBarComponent';\n\nexport const TabBar = Object.assign(TabBarComponent, { Tab });\n"],"names":["forwardRef","__rest","Children","React","cn","styles","cloneElement","getDataTestId","Tab"],"mappings":";;;;;;;;;;;;;;;;AAUA,IAAM,eAAe,GAAGA,gBAAU,CAC9B,UACI,EAWC,EACD,GAAG,EAAA;;AAXC,IAAA,IAAA,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,MAAM,YAAA,EACN,UAAU,gBAAA,EACV,aAAa,mBAAA,EACb,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,mBAAuB,EAAvB,WAAW,GAAG,EAAA,KAAA,MAAA,GAAA,SAAS,KAAA,EACvB,EAAA,GAAA,EAAA,CAAA,OAA4B,EAA5B,OAAO,mBAAG,kBAAkB,GAAA,EAAA,EACzB,SAAS,GAAAC,YAAA,CAAA,EAAA,EAVhB,sHAWC,CADe;IAIhB,IAAIC,cAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;;AAE9B,QAAA,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC;AACtE;IAED,QACIC,6EACkB,UAAU,EAAA,EACpB,SAAS,EACb,EAAA,GAAG,EAAE,GAAG,EACR,SAAS,EAAEC,mBAAE,CAACC,YAAM,CAAC,SAAS,EAAEA,YAAM,CAAC,OAAO,CAAC,EAAE,SAAS,GAAA,EAAA,GAAA,EAAA;AACtD,YAAA,EAAA,CAACA,YAAM,CAAC,MAAM,CAAA,GAAG,MAAM;AACzB,YAAA,EAAA,EAAA,EAAA,CAAA,EAEDH,cAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,GAAG,EAAA;QACxB,OAAAI,kBAAY,CAAC,GAAG,EAAE;AACd,YAAA,OAAO,EAAA,OAAA;AACP,YAAA,WAAW,EAAA,WAAA;AACX,YAAA,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,UAAU;AACrC,YAAA,QAAQ,EAAA,QAAA;AACR,YAAA,aAAa,EAAA,aAAA;AACb,YAAA,UAAU,EAAEC,kCAAa,CAAC,UAAU,EAAE,KAAK,CAAC;SAC/C,CAAC;KAAA,CACL,CACC;AAEd,CAAC,CACJ;AAED,eAAe,CAAC,WAAW,GAAG,iBAAiB;AAExC,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,GAAG,EAAAC,aAAA,EAAE;;;;"}
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- import { TabProps } from '../../types';
2
+ import { type TabProps } from '../../types';
3
3
  export declare const Tab: React.ForwardRefExoticComponent<TabProps & React.RefAttributes<HTMLElement>>;
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["../../src/components/tab/Component.tsx"],"sourcesContent":["import React, { cloneElement, forwardRef, isValidElement, MouseEvent } from 'react';\nimport cn from 'classnames';\n\nimport { Indicator } from '@alfalab/core-components-indicator';\nimport { Text } from '@alfalab/core-components-typography';\n\nimport { INDICATOR_BG_COLOR, INDICATOR_BORDER_COLOR } from '../../consts';\nimport { PrivateTabProps, TabProps } from '../../types';\n\nimport styles from './index.module.css';\n\nconst TabComponent = forwardRef(\n (\n {\n showIndicator,\n indicatorProps,\n label,\n icon,\n id,\n selected,\n onChange,\n onClick,\n tabClassNames = {},\n dataTestId,\n className,\n labelClassName,\n selectedClassName,\n iconClassName,\n href,\n Component = href ? 'a' : 'button',\n accentColor = 'primary',\n bgColor = 'modal-bg-primary',\n ...restProps\n }: PrivateTabProps & TabProps,\n ref,\n ) => {\n const handleClick = (event: MouseEvent) => {\n onChange?.(id);\n onClick?.(event);\n };\n\n const {\n className: commonClassName,\n labelClassName: commonLabelClassName,\n selectedClassName: commonSelectedClassName,\n iconClassName: commonIconClassName,\n } = tabClassNames;\n\n return (\n <Component\n data-test-id={dataTestId}\n tabIndex={0}\n {...(Component === 'button' ? { type: 'button' } : null)}\n {...restProps}\n href={href}\n id={id}\n ref={ref}\n className={cn(\n styles.component,\n commonClassName,\n className,\n selected && commonSelectedClassName,\n selected && selectedClassName,\n {\n [styles[accentColor]]: selected,\n },\n )}\n onClick={handleClick}\n >\n <div className={cn(styles.icon, commonIconClassName, iconClassName)}>\n {isValidElement(icon) ? cloneElement(icon, { selected }) : icon}\n </div>\n\n <Text\n weight='medium'\n view='secondary-small'\n className={cn(styles.label, commonLabelClassName, labelClassName, {\n [styles.labelSelected]: selected,\n })}\n >\n {isValidElement(label) ? cloneElement(label, { selected }) : label}\n </Text>\n\n {showIndicator && (\n <div className={styles.indicator}>\n <Indicator\n {...indicatorProps}\n height={indicatorProps?.value ? 16 : undefined}\n border={{\n width: 2,\n color: INDICATOR_BORDER_COLOR[bgColor],\n }}\n backgroundColor={INDICATOR_BG_COLOR[accentColor]}\n />\n </div>\n )}\n </Component>\n );\n },\n);\n\nexport const Tab = TabComponent as React.ForwardRefExoticComponent<\n TabProps & React.RefAttributes<HTMLElement>\n>;\n"],"names":["forwardRef","__rest","React","__assign","cn","styles","isValidElement","cloneElement","Text","Indicator","INDICATOR_BORDER_COLOR","INDICATOR_BG_COLOR"],"mappings":";;;;;;;;;;;;;;;;;AAWA,IAAM,YAAY,GAAGA,gBAAU,CAC3B,UACI,EAoB6B,EAC7B,GAAG,EAAA;;AApBC,IAAA,IAAA,aAAa,GAAA,EAAA,CAAA,aAAA,EACb,cAAc,GAAA,EAAA,CAAA,cAAA,EACd,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,IAAI,UAAA,EACJ,EAAE,QAAA,EACF,QAAQ,cAAA,EACR,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,OAAO,GAAA,EAAA,CAAA,OAAA,EACP,EAAkB,GAAA,EAAA,CAAA,aAAA,EAAlB,aAAa,GAAG,EAAA,KAAA,MAAA,GAAA,EAAE,GAAA,EAAA,EAClB,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,cAAc,GAAA,EAAA,CAAA,cAAA,EACd,iBAAiB,GAAA,EAAA,CAAA,iBAAA,EACjB,aAAa,GAAA,EAAA,CAAA,aAAA,EACb,IAAI,UAAA,EACJ,EAAA,GAAA,EAAA,CAAA,SAAiC,EAAjC,SAAS,mBAAG,IAAI,GAAG,GAAG,GAAG,QAAQ,GAAA,EAAA,EACjC,EAAuB,GAAA,EAAA,CAAA,WAAA,EAAvB,WAAW,GAAG,EAAA,KAAA,MAAA,GAAA,SAAS,KAAA,EACvB,EAAA,GAAA,EAAA,CAAA,OAA4B,EAA5B,OAAO,mBAAG,kBAAkB,GAAA,EAAA,EACzB,SAAS,GAAAC,YAAA,CAAA,EAAA,EAnBhB,gPAoBC,CADe;IAIhB,IAAM,WAAW,GAAG,UAAC,KAAiB,EAAA;AAClC,QAAA,QAAQ,aAAR,QAAQ,KAAA,MAAA,GAAA,MAAA,GAAR,QAAQ,CAAG,EAAE,CAAC;AACd,QAAA,OAAO,aAAP,OAAO,KAAA,MAAA,GAAA,MAAA,GAAP,OAAO,CAAG,KAAK,CAAC;AACpB,KAAC;AAGG,IAAA,IAAW,eAAe,GAI1B,aAAa,UAJa,EACV,oBAAoB,GAGpC,aAAa,CAAA,cAHuB,EACjB,uBAAuB,GAE1C,aAAa,CAF6B,iBAAA,EAC3B,mBAAmB,GAClC,aAAa,cADqB;AAGtC,IAAA,QACIC,sBAAA,CAAA,aAAA,CAAC,SAAS,EAAAC,cAAA,CAAA,EAAA,cAAA,EACQ,UAAU,EACxB,QAAQ,EAAE,CAAC,EAAA,GACN,SAAS,KAAK,QAAQ,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,GACnD,SAAS,EAAA,EACb,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,EAAE,EACN,GAAG,EAAE,GAAG,EACR,SAAS,EAAEC,mBAAE,CACTC,YAAM,CAAC,SAAS,EAChB,eAAe,EACf,SAAS,EACT,QAAQ,IAAI,uBAAuB,EACnC,QAAQ,IAAI,iBAAiB,GAAA,EAAA,GAAA,EAAA;AAEzB,YAAA,EAAA,CAACA,YAAM,CAAC,WAAW,CAAC,IAAG,QAAQ;gBAEtC,EACD,OAAO,EAAE,WAAW,EAAA,CAAA;AAEpB,QAAAH,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEE,mBAAE,CAACC,YAAM,CAAC,IAAI,EAAE,mBAAmB,EAAE,aAAa,CAAC,EAAA,EAC9DC,oBAAc,CAAC,IAAI,CAAC,GAAGC,kBAAY,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAA,QAAA,EAAE,CAAC,GAAG,IAAI,CAC7D;QAENL,sBAAC,CAAA,aAAA,CAAAM,6BAAI,IACD,MAAM,EAAC,QAAQ,EACf,IAAI,EAAC,iBAAiB,EACtB,SAAS,EAAEJ,mBAAE,CAACC,YAAM,CAAC,KAAK,EAAE,oBAAoB,EAAE,cAAc,GAAA,EAAA,GAAA,EAAA;AAC5D,gBAAA,EAAA,CAACA,YAAM,CAAC,aAAa,CAAA,GAAG,QAAQ;oBAClC,EAED,EAAAC,oBAAc,CAAC,KAAK,CAAC,GAAGC,kBAAY,CAAC,KAAK,EAAE,EAAE,QAAQ,UAAA,EAAE,CAAC,GAAG,KAAK,CAC/D;AAEN,QAAA,aAAa,KACVL,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEG,YAAM,CAAC,SAAS,EAAA;YAC5BH,sBAAC,CAAA,aAAA,CAAAO,iCAAS,EACFN,cAAA,CAAA,EAAA,EAAA,cAAc,EAClB,EAAA,MAAM,EAAE,CAAA,cAAc,KAAd,IAAA,IAAA,cAAc,KAAd,MAAA,GAAA,MAAA,GAAA,cAAc,CAAE,KAAK,IAAG,EAAE,GAAG,SAAS,EAC9C,MAAM,EAAE;AACJ,oBAAA,KAAK,EAAE,CAAC;AACR,oBAAA,KAAK,EAAEO,6BAAsB,CAAC,OAAO,CAAC;iBACzC,EACD,eAAe,EAAEC,yBAAkB,CAAC,WAAW,CAAC,EAAA,CAAA,CAClD,CACA,CACT,CACO;AAEpB,CAAC,CACJ;AAEM,IAAM,GAAG,GAAG;;;;"}
1
+ {"version":3,"file":"Component.js","sources":["../../src/components/tab/Component.tsx"],"sourcesContent":["import React, { cloneElement, forwardRef, isValidElement, type MouseEvent } from 'react';\nimport cn from 'classnames';\n\nimport { Indicator } from '@alfalab/core-components-indicator';\nimport { Text } from '@alfalab/core-components-typography';\n\nimport { INDICATOR_BG_COLOR, INDICATOR_BORDER_COLOR } from '../../consts';\nimport { type PrivateTabProps, type TabProps } from '../../types';\n\nimport styles from './index.module.css';\n\nconst TabComponent = forwardRef(\n (\n {\n showIndicator,\n indicatorProps,\n label,\n icon,\n id,\n selected,\n onChange,\n onClick,\n tabClassNames = {},\n dataTestId,\n className,\n labelClassName,\n selectedClassName,\n iconClassName,\n href,\n Component = href ? 'a' : 'button',\n accentColor = 'primary',\n bgColor = 'modal-bg-primary',\n ...restProps\n }: PrivateTabProps & TabProps,\n ref,\n ) => {\n const handleClick = (event: MouseEvent) => {\n onChange?.(id);\n onClick?.(event);\n };\n\n const {\n className: commonClassName,\n labelClassName: commonLabelClassName,\n selectedClassName: commonSelectedClassName,\n iconClassName: commonIconClassName,\n } = tabClassNames;\n\n return (\n <Component\n data-test-id={dataTestId}\n tabIndex={0}\n {...(Component === 'button' ? { type: 'button' } : null)}\n {...restProps}\n href={href}\n id={id}\n ref={ref}\n className={cn(\n styles.component,\n commonClassName,\n className,\n selected && commonSelectedClassName,\n selected && selectedClassName,\n {\n [styles[accentColor]]: selected,\n },\n )}\n onClick={handleClick}\n >\n <div className={cn(styles.icon, commonIconClassName, iconClassName)}>\n {isValidElement(icon) ? cloneElement(icon, { selected }) : icon}\n </div>\n\n <Text\n weight='medium'\n view='secondary-small'\n className={cn(styles.label, commonLabelClassName, labelClassName, {\n [styles.labelSelected]: selected,\n })}\n >\n {isValidElement(label) ? cloneElement(label, { selected }) : label}\n </Text>\n\n {showIndicator && (\n <div className={styles.indicator}>\n <Indicator\n {...indicatorProps}\n height={indicatorProps?.value ? 16 : undefined}\n border={{\n width: 2,\n color: INDICATOR_BORDER_COLOR[bgColor],\n }}\n backgroundColor={INDICATOR_BG_COLOR[accentColor]}\n />\n </div>\n )}\n </Component>\n );\n },\n);\n\nexport const Tab = TabComponent as React.ForwardRefExoticComponent<\n TabProps & React.RefAttributes<HTMLElement>\n>;\n"],"names":["forwardRef","__rest","React","__assign","cn","styles","isValidElement","cloneElement","Text","Indicator","INDICATOR_BORDER_COLOR","INDICATOR_BG_COLOR"],"mappings":"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"}
@@ -3,13 +3,15 @@
3
3
  --color-light-accent-secondary: #212124;
4
4
  --color-light-neutral-translucent-700: rgba(4, 4, 21, 0.47);
5
5
  --color-light-text-secondary: rgba(4, 4, 19, 0.55);
6
+ } :root {
7
+ --border-radius-0: 0;
6
8
  } :root {
7
9
  --gap-2xs: 4px;
8
10
  --gap-xs: 8px;
9
11
  --gap-0: 0px;
10
12
  --gap-4: var(--gap-2xs);
11
13
  --gap-8: var(--gap-xs);
12
- } .tab-bar__component_1lfc5 {
14
+ } .tab-bar__component_zwktl {
13
15
  -webkit-tap-highlight-color: transparent;
14
16
  box-sizing: border-box;
15
17
  background-color: transparent;
@@ -17,7 +19,7 @@
17
19
  border: 0;
18
20
  margin: var(--gap-0);
19
21
  box-shadow: none;
20
- border-radius: 0;
22
+ border-radius: var(--border-radius-0);
21
23
  -webkit-user-select: none;
22
24
  -moz-user-select: none;
23
25
  user-select: none;
@@ -36,17 +38,17 @@
36
38
  align-items: center;
37
39
  padding: var(--gap-8) var(--gap-0);
38
40
  color: var(--color-light-neutral-translucent-700);
39
- } .tab-bar__primary_1lfc5 {
41
+ } .tab-bar__primary_zwktl {
40
42
  color: var(--color-light-accent-primary);
41
- } .tab-bar__secondary_1lfc5 {
43
+ } .tab-bar__secondary_zwktl {
42
44
  color: var(--color-light-accent-secondary);
43
- } .tab-bar__icon_1lfc5 {
45
+ } .tab-bar__icon_zwktl {
44
46
  display: flex;
45
47
  align-items: center;
46
48
  justify-content: center;
47
49
  flex-grow: 1;
48
50
  width: 100%;
49
- } .tab-bar__label_1lfc5 {
51
+ } .tab-bar__label_zwktl {
50
52
  -webkit-line-clamp: 1;
51
53
  display: -webkit-box;
52
54
  -webkit-box-orient: vertical;
@@ -55,9 +57,9 @@
55
57
  flex-shrink: 0;
56
58
 
57
59
  color: var(--color-light-text-secondary);
58
- } .tab-bar__labelSelected_1lfc5 {
60
+ } .tab-bar__labelSelected_zwktl {
59
61
  color: inherit;
60
- } .tab-bar__indicator_1lfc5 {
62
+ } .tab-bar__indicator_zwktl {
61
63
  position: absolute;
62
64
  top: 3px;
63
65
  left: calc(50% + var(--gap-4));
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"component":"tab-bar__component_1lfc5","primary":"tab-bar__primary_1lfc5","secondary":"tab-bar__secondary_1lfc5","icon":"tab-bar__icon_1lfc5","label":"tab-bar__label_1lfc5","labelSelected":"tab-bar__labelSelected_1lfc5","indicator":"tab-bar__indicator_1lfc5"};
5
+ var styles = {"component":"tab-bar__component_zwktl","primary":"tab-bar__primary_zwktl","secondary":"tab-bar__secondary_zwktl","icon":"tab-bar__icon_zwktl","label":"tab-bar__label_zwktl","labelSelected":"tab-bar__labelSelected_zwktl","indicator":"tab-bar__indicator_zwktl"};
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/tab/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n\n.component {\n @mixin button-reset;\n\n position: relative;\n display: inline-flex;\n flex-direction: column;\n flex: 1 0 0;\n align-items: center;\n padding: var(--gap-8) var(--gap-0);\n color: var(--color-light-neutral-translucent-700);\n}\n\n.primary {\n color: var(--color-light-accent-primary);\n}\n\n.secondary {\n color: var(--color-light-accent-secondary);\n}\n\n.icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-grow: 1;\n width: 100%;\n}\n\n.label {\n @mixin row_limit 1;\n word-break: break-all;\n flex-shrink: 0;\n\n color: var(--color-light-text-secondary);\n}\n\n.labelSelected {\n color: inherit;\n}\n\n.indicator {\n position: absolute;\n top: 3px;\n left: calc(50% + var(--gap-4));\n height: 16px;\n min-width: 16px;\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,SAAS,CAAC,wBAAwB,CAAC,WAAW,CAAC,0BAA0B,CAAC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,sBAAsB,CAAC,eAAe,CAAC,8BAA8B,CAAC,WAAW,CAAC,0BAA0B,CAAC;;;;"}
1
+ {"version":3,"file":"index.module.css.js","sources":["../../src/components/tab/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-typography-index.css';\n\n.component {\n @mixin button-reset;\n\n position: relative;\n display: inline-flex;\n flex-direction: column;\n flex: 1 0 0;\n align-items: center;\n padding: var(--gap-8) var(--gap-0);\n color: var(--color-light-neutral-translucent-700);\n}\n\n.primary {\n color: var(--color-light-accent-primary);\n}\n\n.secondary {\n color: var(--color-light-accent-secondary);\n}\n\n.icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-grow: 1;\n width: 100%;\n}\n\n.label {\n @mixin row_limit 1;\n word-break: break-all;\n flex-shrink: 0;\n\n color: var(--color-light-text-secondary);\n}\n\n.labelSelected {\n color: inherit;\n}\n\n.indicator {\n position: absolute;\n top: 3px;\n left: calc(50% + var(--gap-4));\n height: 16px;\n min-width: 16px;\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,SAAS,CAAC,wBAAwB,CAAC,WAAW,CAAC,0BAA0B,CAAC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,sBAAsB,CAAC,eAAe,CAAC,8BAA8B,CAAC,WAAW,CAAC,0BAA0B,CAAC;;;;"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { TabBarProps } from './types';
2
+ import { type TabBarProps } from './types';
3
3
  export declare const TabBar: React.ForwardRefExoticComponent<TabBarProps & React.RefAttributes<HTMLDivElement>> & {
4
4
  Tab: React.ForwardRefExoticComponent<import("./types").TabProps & React.RefAttributes<HTMLElement>>;
5
5
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, { Children, cloneElement, forwardRef } from 'react';\nimport cn from 'classnames';\n\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport { Tab } from './components/tab';\nimport { TabBarProps } from './types';\n\nimport styles from './index.module.css';\n\nconst TabBarComponent = forwardRef<HTMLDivElement, TabBarProps>(\n (\n {\n children,\n className,\n selectedId,\n border,\n dataTestId,\n tabClassNames,\n onChange,\n accentColor = 'primary',\n bgColor = 'modal-bg-primary',\n ...restProps\n },\n ref,\n ) => {\n if (Children.count(children) > 5) {\n // eslint-disable-next-line no-console\n console.error('Компонент TabBar не может содержать больше 5 табов');\n }\n\n return (\n <nav\n data-test-id={dataTestId}\n {...restProps}\n ref={ref}\n className={cn(styles.component, styles[bgColor], className, {\n [styles.border]: border,\n })}\n >\n {Children.map(children, (tab) =>\n cloneElement(tab, {\n bgColor,\n accentColor,\n selected: tab.props.id === selectedId,\n onChange,\n tabClassNames,\n dataTestId: getDataTestId(dataTestId, 'tab'),\n }),\n )}\n </nav>\n );\n },\n);\n\nTabBarComponent.displayName = 'TabBarComponent';\n\nexport const TabBar = Object.assign(TabBarComponent, { Tab });\n"],"names":["forwardRef","__rest","Children","React","cn","styles","cloneElement","getDataTestId","Tab"],"mappings":";;;;;;;;;;;;;;;;;AAUA,IAAM,eAAe,GAAGA,gBAAU,CAC9B,UACI,EAWC,EACD,GAAG,EAAA;;AAXC,IAAA,IAAA,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,MAAM,YAAA,EACN,UAAU,gBAAA,EACV,aAAa,mBAAA,EACb,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,mBAAuB,EAAvB,WAAW,GAAG,EAAA,KAAA,MAAA,GAAA,SAAS,KAAA,EACvB,EAAA,GAAA,EAAA,CAAA,OAA4B,EAA5B,OAAO,mBAAG,kBAAkB,GAAA,EAAA,EACzB,SAAS,GAAAC,YAAA,CAAA,EAAA,EAVhB,sHAWC,CADe;IAIhB,IAAIC,cAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;;AAE9B,QAAA,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC;AACtE;IAED,QACIC,6EACkB,UAAU,EAAA,EACpB,SAAS,EACb,EAAA,GAAG,EAAE,GAAG,EACR,SAAS,EAAEC,mBAAE,CAACC,uBAAM,CAAC,SAAS,EAAEA,uBAAM,CAAC,OAAO,CAAC,EAAE,SAAS,GAAA,EAAA,GAAA,EAAA;AACtD,YAAA,EAAA,CAACA,uBAAM,CAAC,MAAM,CAAA,GAAG,MAAM;AACzB,YAAA,EAAA,EAAA,EAAA,CAAA,EAEDH,cAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,GAAG,EAAA;QACxB,OAAAI,kBAAY,CAAC,GAAG,EAAE;AACd,YAAA,OAAO,EAAA,OAAA;AACP,YAAA,WAAW,EAAA,WAAA;AACX,YAAA,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,UAAU;AACrC,YAAA,QAAQ,EAAA,QAAA;AACR,YAAA,aAAa,EAAA,aAAA;AACb,YAAA,UAAU,EAAEC,kBAAa,CAAC,UAAU,EAAE,KAAK,CAAC;SAC/C,CAAC;KAAA,CACL,CACC;AAEd,CAAC,CACJ;AAED,eAAe,CAAC,WAAW,GAAG,iBAAiB;AAExC,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,GAAG,EAAAC,aAAA,EAAE;;;;"}
1
+ {"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, { Children, cloneElement, forwardRef } from 'react';\nimport cn from 'classnames';\n\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport { Tab } from './components/tab';\nimport { type TabBarProps } from './types';\n\nimport styles from './index.module.css';\n\nconst TabBarComponent = forwardRef<HTMLDivElement, TabBarProps>(\n (\n {\n children,\n className,\n selectedId,\n border,\n dataTestId,\n tabClassNames,\n onChange,\n accentColor = 'primary',\n bgColor = 'modal-bg-primary',\n ...restProps\n },\n ref,\n ) => {\n if (Children.count(children) > 5) {\n // eslint-disable-next-line no-console\n console.error('Компонент TabBar не может содержать больше 5 табов');\n }\n\n return (\n <nav\n data-test-id={dataTestId}\n {...restProps}\n ref={ref}\n className={cn(styles.component, styles[bgColor], className, {\n [styles.border]: border,\n })}\n >\n {Children.map(children, (tab) =>\n cloneElement(tab, {\n bgColor,\n accentColor,\n selected: tab.props.id === selectedId,\n onChange,\n tabClassNames,\n dataTestId: getDataTestId(dataTestId, 'tab'),\n }),\n )}\n </nav>\n );\n },\n);\n\nTabBarComponent.displayName = 'TabBarComponent';\n\nexport const TabBar = Object.assign(TabBarComponent, { Tab });\n"],"names":["forwardRef","__rest","Children","React","cn","styles","cloneElement","getDataTestId","Tab"],"mappings":";;;;;;;;;;;;;;;;;AAUA,IAAM,eAAe,GAAGA,gBAAU,CAC9B,UACI,EAWC,EACD,GAAG,EAAA;;AAXC,IAAA,IAAA,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,MAAM,YAAA,EACN,UAAU,gBAAA,EACV,aAAa,mBAAA,EACb,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,mBAAuB,EAAvB,WAAW,GAAG,EAAA,KAAA,MAAA,GAAA,SAAS,KAAA,EACvB,EAAA,GAAA,EAAA,CAAA,OAA4B,EAA5B,OAAO,mBAAG,kBAAkB,GAAA,EAAA,EACzB,SAAS,GAAAC,YAAA,CAAA,EAAA,EAVhB,sHAWC,CADe;IAIhB,IAAIC,cAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;;AAE9B,QAAA,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC;AACtE;IAED,QACIC,6EACkB,UAAU,EAAA,EACpB,SAAS,EACb,EAAA,GAAG,EAAE,GAAG,EACR,SAAS,EAAEC,mBAAE,CAACC,uBAAM,CAAC,SAAS,EAAEA,uBAAM,CAAC,OAAO,CAAC,EAAE,SAAS,GAAA,EAAA,GAAA,EAAA;AACtD,YAAA,EAAA,CAACA,uBAAM,CAAC,MAAM,CAAA,GAAG,MAAM;AACzB,YAAA,EAAA,EAAA,EAAA,CAAA,EAEDH,cAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,GAAG,EAAA;QACxB,OAAAI,kBAAY,CAAC,GAAG,EAAE;AACd,YAAA,OAAO,EAAA,OAAA;AACP,YAAA,WAAW,EAAA,WAAA;AACX,YAAA,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,UAAU;AACrC,YAAA,QAAQ,EAAA,QAAA;AACR,YAAA,aAAa,EAAA,aAAA;AACb,YAAA,UAAU,EAAEC,kBAAa,CAAC,UAAU,EAAE,KAAK,CAAC;SAC/C,CAAC;KAAA,CACL,CACC;AAEd,CAAC,CACJ;AAED,eAAe,CAAC,WAAW,GAAG,iBAAiB;AAExC,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,GAAG,EAAAC,aAAA,EAAE;;;;"}
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- import { TabProps } from '../../types';
2
+ import { type TabProps } from '../../types';
3
3
  export declare const Tab: React.ForwardRefExoticComponent<TabProps & React.RefAttributes<HTMLElement>>;
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["../../../src/components/tab/Component.tsx"],"sourcesContent":["import React, { cloneElement, forwardRef, isValidElement, MouseEvent } from 'react';\nimport cn from 'classnames';\n\nimport { Indicator } from '@alfalab/core-components-indicator';\nimport { Text } from '@alfalab/core-components-typography';\n\nimport { INDICATOR_BG_COLOR, INDICATOR_BORDER_COLOR } from '../../consts';\nimport { PrivateTabProps, TabProps } from '../../types';\n\nimport styles from './index.module.css';\n\nconst TabComponent = forwardRef(\n (\n {\n showIndicator,\n indicatorProps,\n label,\n icon,\n id,\n selected,\n onChange,\n onClick,\n tabClassNames = {},\n dataTestId,\n className,\n labelClassName,\n selectedClassName,\n iconClassName,\n href,\n Component = href ? 'a' : 'button',\n accentColor = 'primary',\n bgColor = 'modal-bg-primary',\n ...restProps\n }: PrivateTabProps & TabProps,\n ref,\n ) => {\n const handleClick = (event: MouseEvent) => {\n onChange?.(id);\n onClick?.(event);\n };\n\n const {\n className: commonClassName,\n labelClassName: commonLabelClassName,\n selectedClassName: commonSelectedClassName,\n iconClassName: commonIconClassName,\n } = tabClassNames;\n\n return (\n <Component\n data-test-id={dataTestId}\n tabIndex={0}\n {...(Component === 'button' ? { type: 'button' } : null)}\n {...restProps}\n href={href}\n id={id}\n ref={ref}\n className={cn(\n styles.component,\n commonClassName,\n className,\n selected && commonSelectedClassName,\n selected && selectedClassName,\n {\n [styles[accentColor]]: selected,\n },\n )}\n onClick={handleClick}\n >\n <div className={cn(styles.icon, commonIconClassName, iconClassName)}>\n {isValidElement(icon) ? cloneElement(icon, { selected }) : icon}\n </div>\n\n <Text\n weight='medium'\n view='secondary-small'\n className={cn(styles.label, commonLabelClassName, labelClassName, {\n [styles.labelSelected]: selected,\n })}\n >\n {isValidElement(label) ? cloneElement(label, { selected }) : label}\n </Text>\n\n {showIndicator && (\n <div className={styles.indicator}>\n <Indicator\n {...indicatorProps}\n height={indicatorProps?.value ? 16 : undefined}\n border={{\n width: 2,\n color: INDICATOR_BORDER_COLOR[bgColor],\n }}\n backgroundColor={INDICATOR_BG_COLOR[accentColor]}\n />\n </div>\n )}\n </Component>\n );\n },\n);\n\nexport const Tab = TabComponent as React.ForwardRefExoticComponent<\n TabProps & React.RefAttributes<HTMLElement>\n>;\n"],"names":["forwardRef","__rest","React","__assign","cn","styles","isValidElement","cloneElement","Text","Indicator","INDICATOR_BORDER_COLOR","INDICATOR_BG_COLOR"],"mappings":"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"}
1
+ {"version":3,"file":"Component.js","sources":["../../../src/components/tab/Component.tsx"],"sourcesContent":["import React, { cloneElement, forwardRef, isValidElement, type MouseEvent } from 'react';\nimport cn from 'classnames';\n\nimport { Indicator } from '@alfalab/core-components-indicator';\nimport { Text } from '@alfalab/core-components-typography';\n\nimport { INDICATOR_BG_COLOR, INDICATOR_BORDER_COLOR } from '../../consts';\nimport { type PrivateTabProps, type TabProps } from '../../types';\n\nimport styles from './index.module.css';\n\nconst TabComponent = forwardRef(\n (\n {\n showIndicator,\n indicatorProps,\n label,\n icon,\n id,\n selected,\n onChange,\n onClick,\n tabClassNames = {},\n dataTestId,\n className,\n labelClassName,\n selectedClassName,\n iconClassName,\n href,\n Component = href ? 'a' : 'button',\n accentColor = 'primary',\n bgColor = 'modal-bg-primary',\n ...restProps\n }: PrivateTabProps & TabProps,\n ref,\n ) => {\n const handleClick = (event: MouseEvent) => {\n onChange?.(id);\n onClick?.(event);\n };\n\n const {\n className: commonClassName,\n labelClassName: commonLabelClassName,\n selectedClassName: commonSelectedClassName,\n iconClassName: commonIconClassName,\n } = tabClassNames;\n\n return (\n <Component\n data-test-id={dataTestId}\n tabIndex={0}\n {...(Component === 'button' ? { type: 'button' } : null)}\n {...restProps}\n href={href}\n id={id}\n ref={ref}\n className={cn(\n styles.component,\n commonClassName,\n className,\n selected && commonSelectedClassName,\n selected && selectedClassName,\n {\n [styles[accentColor]]: selected,\n },\n )}\n onClick={handleClick}\n >\n <div className={cn(styles.icon, commonIconClassName, iconClassName)}>\n {isValidElement(icon) ? cloneElement(icon, { selected }) : icon}\n </div>\n\n <Text\n weight='medium'\n view='secondary-small'\n className={cn(styles.label, commonLabelClassName, labelClassName, {\n [styles.labelSelected]: selected,\n })}\n >\n {isValidElement(label) ? cloneElement(label, { selected }) : label}\n </Text>\n\n {showIndicator && (\n <div className={styles.indicator}>\n <Indicator\n {...indicatorProps}\n height={indicatorProps?.value ? 16 : undefined}\n border={{\n width: 2,\n color: INDICATOR_BORDER_COLOR[bgColor],\n }}\n backgroundColor={INDICATOR_BG_COLOR[accentColor]}\n />\n </div>\n )}\n </Component>\n );\n },\n);\n\nexport const Tab = TabComponent as React.ForwardRefExoticComponent<\n TabProps & React.RefAttributes<HTMLElement>\n>;\n"],"names":["forwardRef","__rest","React","__assign","cn","styles","isValidElement","cloneElement","Text","Indicator","INDICATOR_BORDER_COLOR","INDICATOR_BG_COLOR"],"mappings":"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"}
@@ -3,6 +3,8 @@
3
3
  --color-light-accent-secondary: #212124;
4
4
  --color-light-neutral-translucent-700: rgba(4, 4, 21, 0.47);
5
5
  --color-light-text-secondary: rgba(4, 4, 19, 0.55);
6
+ } :root {
7
+ --border-radius-0: 0;
6
8
  } :root {
7
9
  --gap-2xs: 4px;
8
10
  --gap-xs: 8px;
@@ -17,7 +19,7 @@
17
19
  border: 0;
18
20
  margin: var(--gap-0);
19
21
  box-shadow: none;
20
- border-radius: 0;
22
+ border-radius: var(--border-radius-0);
21
23
  -webkit-user-select: none;
22
24
  -moz-user-select: none;
23
25
  user-select: none;
@@ -13,13 +13,13 @@
13
13
  max-height: 64px;
14
14
  box-sizing: border-box;
15
15
  overflow: hidden;
16
- transition: box-shadow 0.2s ease
16
+ transition: box-shadow 0.2s ease;
17
17
  } .component.modal-bg-primary {
18
18
  background-color: var(--color-light-base-bg-primary);
19
19
  } .component.modal-bg-alt-primary {
20
20
  background-color: var(--color-light-base-bg-alt-primary);
21
21
  } @media (display-mode: standalone) { .component {
22
- padding-bottom: var(--sab)
22
+ padding-bottom: var(--sab);
23
23
  }
24
24
  } .border {
25
25
  box-shadow: 0 -1px 0 0 var(--color-light-neutral-translucent-300);
package/cssm/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import type { AllHTMLAttributes, ElementType, ForwardRefExoticComponent, HTMLAttributes, ReactElement, ReactNode, RefAttributes } from 'react';
2
- import type { IndicatorProps } from '@alfalab/core-components-indicator/cssm';
1
+ import { type AllHTMLAttributes, type ElementType, type ForwardRefExoticComponent, type HTMLAttributes, type ReactElement, type ReactNode, type RefAttributes } from 'react';
2
+ import { type IndicatorProps } from '@alfalab/core-components-indicator/cssm';
3
3
  declare type TabElementType = ReactElement<TabProps, ForwardRefExoticComponent<TabProps & RefAttributes<HTMLElement>>>;
4
4
  export interface TabBarProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { TabBarProps } from './types';
2
+ import { type TabBarProps } from './types';
3
3
  export declare const TabBar: React.ForwardRefExoticComponent<TabBarProps & React.RefAttributes<HTMLDivElement>> & {
4
4
  Tab: React.ForwardRefExoticComponent<import("./types").TabProps & React.RefAttributes<HTMLElement>>;
5
5
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, { Children, cloneElement, forwardRef } from 'react';\nimport cn from 'classnames';\n\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport { Tab } from './components/tab';\nimport { TabBarProps } from './types';\n\nimport styles from './index.module.css';\n\nconst TabBarComponent = forwardRef<HTMLDivElement, TabBarProps>(\n (\n {\n children,\n className,\n selectedId,\n border,\n dataTestId,\n tabClassNames,\n onChange,\n accentColor = 'primary',\n bgColor = 'modal-bg-primary',\n ...restProps\n },\n ref,\n ) => {\n if (Children.count(children) > 5) {\n // eslint-disable-next-line no-console\n console.error('Компонент TabBar не может содержать больше 5 табов');\n }\n\n return (\n <nav\n data-test-id={dataTestId}\n {...restProps}\n ref={ref}\n className={cn(styles.component, styles[bgColor], className, {\n [styles.border]: border,\n })}\n >\n {Children.map(children, (tab) =>\n cloneElement(tab, {\n bgColor,\n accentColor,\n selected: tab.props.id === selectedId,\n onChange,\n tabClassNames,\n dataTestId: getDataTestId(dataTestId, 'tab'),\n }),\n )}\n </nav>\n );\n },\n);\n\nTabBarComponent.displayName = 'TabBarComponent';\n\nexport const TabBar = Object.assign(TabBarComponent, { Tab });\n"],"names":[],"mappings":";;;;;;;AAUA,IAAM,eAAe,GAAG,UAAU,CAC9B,UACI,EAWC,EACD,GAAG,EAAA;;AAXC,IAAA,IAAA,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,MAAM,YAAA,EACN,UAAU,gBAAA,EACV,aAAa,mBAAA,EACb,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,mBAAuB,EAAvB,WAAW,GAAG,EAAA,KAAA,MAAA,GAAA,SAAS,KAAA,EACvB,EAAA,GAAA,EAAA,CAAA,OAA4B,EAA5B,OAAO,mBAAG,kBAAkB,GAAA,EAAA,EACzB,SAAS,GAAA,MAAA,CAAA,EAAA,EAVhB,sHAWC,CADe;IAIhB,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;;AAE9B,QAAA,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC;AACtE;IAED,QACI,sDACkB,UAAU,EAAA,EACpB,SAAS,EACb,EAAA,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,GAAA,EAAA,GAAA,EAAA;AACtD,YAAA,EAAA,CAAC,MAAM,CAAC,MAAM,CAAA,GAAG,MAAM;AACzB,YAAA,EAAA,EAAA,EAAA,CAAA,EAED,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,GAAG,EAAA;QACxB,OAAA,YAAY,CAAC,GAAG,EAAE;AACd,YAAA,OAAO,EAAA,OAAA;AACP,YAAA,WAAW,EAAA,WAAA;AACX,YAAA,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,UAAU;AACrC,YAAA,QAAQ,EAAA,QAAA;AACR,YAAA,aAAa,EAAA,aAAA;AACb,YAAA,UAAU,EAAE,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC;SAC/C,CAAC;KAAA,CACL,CACC;AAEd,CAAC,CACJ;AAED,eAAe,CAAC,WAAW,GAAG,iBAAiB;AAExC,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,GAAG,EAAA,GAAA,EAAE;;;;"}
1
+ {"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, { Children, cloneElement, forwardRef } from 'react';\nimport cn from 'classnames';\n\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport { Tab } from './components/tab';\nimport { type TabBarProps } from './types';\n\nimport styles from './index.module.css';\n\nconst TabBarComponent = forwardRef<HTMLDivElement, TabBarProps>(\n (\n {\n children,\n className,\n selectedId,\n border,\n dataTestId,\n tabClassNames,\n onChange,\n accentColor = 'primary',\n bgColor = 'modal-bg-primary',\n ...restProps\n },\n ref,\n ) => {\n if (Children.count(children) > 5) {\n // eslint-disable-next-line no-console\n console.error('Компонент TabBar не может содержать больше 5 табов');\n }\n\n return (\n <nav\n data-test-id={dataTestId}\n {...restProps}\n ref={ref}\n className={cn(styles.component, styles[bgColor], className, {\n [styles.border]: border,\n })}\n >\n {Children.map(children, (tab) =>\n cloneElement(tab, {\n bgColor,\n accentColor,\n selected: tab.props.id === selectedId,\n onChange,\n tabClassNames,\n dataTestId: getDataTestId(dataTestId, 'tab'),\n }),\n )}\n </nav>\n );\n },\n);\n\nTabBarComponent.displayName = 'TabBarComponent';\n\nexport const TabBar = Object.assign(TabBarComponent, { Tab });\n"],"names":[],"mappings":";;;;;;;AAUA,IAAM,eAAe,GAAG,UAAU,CAC9B,UACI,EAWC,EACD,GAAG,EAAA;;AAXC,IAAA,IAAA,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,MAAM,YAAA,EACN,UAAU,gBAAA,EACV,aAAa,mBAAA,EACb,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,mBAAuB,EAAvB,WAAW,GAAG,EAAA,KAAA,MAAA,GAAA,SAAS,KAAA,EACvB,EAAA,GAAA,EAAA,CAAA,OAA4B,EAA5B,OAAO,mBAAG,kBAAkB,GAAA,EAAA,EACzB,SAAS,GAAA,MAAA,CAAA,EAAA,EAVhB,sHAWC,CADe;IAIhB,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;;AAE9B,QAAA,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC;AACtE;IAED,QACI,sDACkB,UAAU,EAAA,EACpB,SAAS,EACb,EAAA,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,GAAA,EAAA,GAAA,EAAA;AACtD,YAAA,EAAA,CAAC,MAAM,CAAC,MAAM,CAAA,GAAG,MAAM;AACzB,YAAA,EAAA,EAAA,EAAA,CAAA,EAED,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,GAAG,EAAA;QACxB,OAAA,YAAY,CAAC,GAAG,EAAE;AACd,YAAA,OAAO,EAAA,OAAA;AACP,YAAA,WAAW,EAAA,WAAA;AACX,YAAA,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,UAAU;AACrC,YAAA,QAAQ,EAAA,QAAA;AACR,YAAA,aAAa,EAAA,aAAA;AACb,YAAA,UAAU,EAAE,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC;SAC/C,CAAC;KAAA,CACL,CACC;AAEd,CAAC,CACJ;AAED,eAAe,CAAC,WAAW,GAAG,iBAAiB;AAExC,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,GAAG,EAAA,GAAA,EAAE;;;;"}
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- import { TabProps } from '../../types';
2
+ import { type TabProps } from '../../types';
3
3
  export declare const Tab: React.ForwardRefExoticComponent<TabProps & React.RefAttributes<HTMLElement>>;
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["../../../src/components/tab/Component.tsx"],"sourcesContent":["import React, { cloneElement, forwardRef, isValidElement, MouseEvent } from 'react';\nimport cn from 'classnames';\n\nimport { Indicator } from '@alfalab/core-components-indicator';\nimport { Text } from '@alfalab/core-components-typography';\n\nimport { INDICATOR_BG_COLOR, INDICATOR_BORDER_COLOR } from '../../consts';\nimport { PrivateTabProps, TabProps } from '../../types';\n\nimport styles from './index.module.css';\n\nconst TabComponent = forwardRef(\n (\n {\n showIndicator,\n indicatorProps,\n label,\n icon,\n id,\n selected,\n onChange,\n onClick,\n tabClassNames = {},\n dataTestId,\n className,\n labelClassName,\n selectedClassName,\n iconClassName,\n href,\n Component = href ? 'a' : 'button',\n accentColor = 'primary',\n bgColor = 'modal-bg-primary',\n ...restProps\n }: PrivateTabProps & TabProps,\n ref,\n ) => {\n const handleClick = (event: MouseEvent) => {\n onChange?.(id);\n onClick?.(event);\n };\n\n const {\n className: commonClassName,\n labelClassName: commonLabelClassName,\n selectedClassName: commonSelectedClassName,\n iconClassName: commonIconClassName,\n } = tabClassNames;\n\n return (\n <Component\n data-test-id={dataTestId}\n tabIndex={0}\n {...(Component === 'button' ? { type: 'button' } : null)}\n {...restProps}\n href={href}\n id={id}\n ref={ref}\n className={cn(\n styles.component,\n commonClassName,\n className,\n selected && commonSelectedClassName,\n selected && selectedClassName,\n {\n [styles[accentColor]]: selected,\n },\n )}\n onClick={handleClick}\n >\n <div className={cn(styles.icon, commonIconClassName, iconClassName)}>\n {isValidElement(icon) ? cloneElement(icon, { selected }) : icon}\n </div>\n\n <Text\n weight='medium'\n view='secondary-small'\n className={cn(styles.label, commonLabelClassName, labelClassName, {\n [styles.labelSelected]: selected,\n })}\n >\n {isValidElement(label) ? cloneElement(label, { selected }) : label}\n </Text>\n\n {showIndicator && (\n <div className={styles.indicator}>\n <Indicator\n {...indicatorProps}\n height={indicatorProps?.value ? 16 : undefined}\n border={{\n width: 2,\n color: INDICATOR_BORDER_COLOR[bgColor],\n }}\n backgroundColor={INDICATOR_BG_COLOR[accentColor]}\n />\n </div>\n )}\n </Component>\n );\n },\n);\n\nexport const Tab = TabComponent as React.ForwardRefExoticComponent<\n TabProps & React.RefAttributes<HTMLElement>\n>;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Component.js","sources":["../../../src/components/tab/Component.tsx"],"sourcesContent":["import React, { cloneElement, forwardRef, isValidElement, type MouseEvent } from 'react';\nimport cn from 'classnames';\n\nimport { Indicator } from '@alfalab/core-components-indicator';\nimport { Text } from '@alfalab/core-components-typography';\n\nimport { INDICATOR_BG_COLOR, INDICATOR_BORDER_COLOR } from '../../consts';\nimport { type PrivateTabProps, type TabProps } from '../../types';\n\nimport styles from './index.module.css';\n\nconst TabComponent = forwardRef(\n (\n {\n showIndicator,\n indicatorProps,\n label,\n icon,\n id,\n selected,\n onChange,\n onClick,\n tabClassNames = {},\n dataTestId,\n className,\n labelClassName,\n selectedClassName,\n iconClassName,\n href,\n Component = href ? 'a' : 'button',\n accentColor = 'primary',\n bgColor = 'modal-bg-primary',\n ...restProps\n }: PrivateTabProps & TabProps,\n ref,\n ) => {\n const handleClick = (event: MouseEvent) => {\n onChange?.(id);\n onClick?.(event);\n };\n\n const {\n className: commonClassName,\n labelClassName: commonLabelClassName,\n selectedClassName: commonSelectedClassName,\n iconClassName: commonIconClassName,\n } = tabClassNames;\n\n return (\n <Component\n data-test-id={dataTestId}\n tabIndex={0}\n {...(Component === 'button' ? { type: 'button' } : null)}\n {...restProps}\n href={href}\n id={id}\n ref={ref}\n className={cn(\n styles.component,\n commonClassName,\n className,\n selected && commonSelectedClassName,\n selected && selectedClassName,\n {\n [styles[accentColor]]: selected,\n },\n )}\n onClick={handleClick}\n >\n <div className={cn(styles.icon, commonIconClassName, iconClassName)}>\n {isValidElement(icon) ? cloneElement(icon, { selected }) : icon}\n </div>\n\n <Text\n weight='medium'\n view='secondary-small'\n className={cn(styles.label, commonLabelClassName, labelClassName, {\n [styles.labelSelected]: selected,\n })}\n >\n {isValidElement(label) ? cloneElement(label, { selected }) : label}\n </Text>\n\n {showIndicator && (\n <div className={styles.indicator}>\n <Indicator\n {...indicatorProps}\n height={indicatorProps?.value ? 16 : undefined}\n border={{\n width: 2,\n color: INDICATOR_BORDER_COLOR[bgColor],\n }}\n backgroundColor={INDICATOR_BG_COLOR[accentColor]}\n />\n </div>\n )}\n </Component>\n );\n },\n);\n\nexport const Tab = TabComponent as React.ForwardRefExoticComponent<\n TabProps & React.RefAttributes<HTMLElement>\n>;\n"],"names":[],"mappings":"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"}
@@ -3,13 +3,15 @@
3
3
  --color-light-accent-secondary: #212124;
4
4
  --color-light-neutral-translucent-700: rgba(4, 4, 21, 0.47);
5
5
  --color-light-text-secondary: rgba(4, 4, 19, 0.55);
6
+ } :root {
7
+ --border-radius-0: 0;
6
8
  } :root {
7
9
  --gap-2xs: 4px;
8
10
  --gap-xs: 8px;
9
11
  --gap-0: 0px;
10
12
  --gap-4: var(--gap-2xs);
11
13
  --gap-8: var(--gap-xs);
12
- } .tab-bar__component_1lfc5 {
14
+ } .tab-bar__component_zwktl {
13
15
  -webkit-tap-highlight-color: transparent;
14
16
  box-sizing: border-box;
15
17
  background-color: transparent;
@@ -17,7 +19,7 @@
17
19
  border: 0;
18
20
  margin: var(--gap-0);
19
21
  box-shadow: none;
20
- border-radius: 0;
22
+ border-radius: var(--border-radius-0);
21
23
  -webkit-user-select: none;
22
24
  -moz-user-select: none;
23
25
  user-select: none;
@@ -36,17 +38,17 @@
36
38
  align-items: center;
37
39
  padding: var(--gap-8) var(--gap-0);
38
40
  color: var(--color-light-neutral-translucent-700);
39
- } .tab-bar__primary_1lfc5 {
41
+ } .tab-bar__primary_zwktl {
40
42
  color: var(--color-light-accent-primary);
41
- } .tab-bar__secondary_1lfc5 {
43
+ } .tab-bar__secondary_zwktl {
42
44
  color: var(--color-light-accent-secondary);
43
- } .tab-bar__icon_1lfc5 {
45
+ } .tab-bar__icon_zwktl {
44
46
  display: flex;
45
47
  align-items: center;
46
48
  justify-content: center;
47
49
  flex-grow: 1;
48
50
  width: 100%;
49
- } .tab-bar__label_1lfc5 {
51
+ } .tab-bar__label_zwktl {
50
52
  -webkit-line-clamp: 1;
51
53
  display: -webkit-box;
52
54
  -webkit-box-orient: vertical;
@@ -55,9 +57,9 @@
55
57
  flex-shrink: 0;
56
58
 
57
59
  color: var(--color-light-text-secondary);
58
- } .tab-bar__labelSelected_1lfc5 {
60
+ } .tab-bar__labelSelected_zwktl {
59
61
  color: inherit;
60
- } .tab-bar__indicator_1lfc5 {
62
+ } .tab-bar__indicator_zwktl {
61
63
  position: absolute;
62
64
  top: 3px;
63
65
  left: calc(50% + var(--gap-4));
@@ -1,6 +1,6 @@
1
1
  import './index.css';
2
2
 
3
- var styles = {"component":"tab-bar__component_1lfc5","primary":"tab-bar__primary_1lfc5","secondary":"tab-bar__secondary_1lfc5","icon":"tab-bar__icon_1lfc5","label":"tab-bar__label_1lfc5","labelSelected":"tab-bar__labelSelected_1lfc5","indicator":"tab-bar__indicator_1lfc5"};
3
+ var styles = {"component":"tab-bar__component_zwktl","primary":"tab-bar__primary_zwktl","secondary":"tab-bar__secondary_zwktl","icon":"tab-bar__icon_zwktl","label":"tab-bar__label_zwktl","labelSelected":"tab-bar__labelSelected_zwktl","indicator":"tab-bar__indicator_zwktl"};
4
4
 
5
5
  export { styles as default };
6
6
  //# sourceMappingURL=index.module.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.module.css.js","sources":["../../src/components/tab/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n\n.component {\n @mixin button-reset;\n\n position: relative;\n display: inline-flex;\n flex-direction: column;\n flex: 1 0 0;\n align-items: center;\n padding: var(--gap-8) var(--gap-0);\n color: var(--color-light-neutral-translucent-700);\n}\n\n.primary {\n color: var(--color-light-accent-primary);\n}\n\n.secondary {\n color: var(--color-light-accent-secondary);\n}\n\n.icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-grow: 1;\n width: 100%;\n}\n\n.label {\n @mixin row_limit 1;\n word-break: break-all;\n flex-shrink: 0;\n\n color: var(--color-light-text-secondary);\n}\n\n.labelSelected {\n color: inherit;\n}\n\n.indicator {\n position: absolute;\n top: 3px;\n left: calc(50% + var(--gap-4));\n height: 16px;\n min-width: 16px;\n}\n"],"names":[],"mappings":";;AAEgB,aAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,SAAS,CAAC,wBAAwB,CAAC,WAAW,CAAC,0BAA0B,CAAC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,sBAAsB,CAAC,eAAe,CAAC,8BAA8B,CAAC,WAAW,CAAC,0BAA0B,CAAC;;;;"}
1
+ {"version":3,"file":"index.module.css.js","sources":["../../src/components/tab/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-typography-index.css';\n\n.component {\n @mixin button-reset;\n\n position: relative;\n display: inline-flex;\n flex-direction: column;\n flex: 1 0 0;\n align-items: center;\n padding: var(--gap-8) var(--gap-0);\n color: var(--color-light-neutral-translucent-700);\n}\n\n.primary {\n color: var(--color-light-accent-primary);\n}\n\n.secondary {\n color: var(--color-light-accent-secondary);\n}\n\n.icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-grow: 1;\n width: 100%;\n}\n\n.label {\n @mixin row_limit 1;\n word-break: break-all;\n flex-shrink: 0;\n\n color: var(--color-light-text-secondary);\n}\n\n.labelSelected {\n color: inherit;\n}\n\n.indicator {\n position: absolute;\n top: 3px;\n left: calc(50% + var(--gap-4));\n height: 16px;\n min-width: 16px;\n}\n"],"names":[],"mappings":";;AAEgB,aAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,SAAS,CAAC,wBAAwB,CAAC,WAAW,CAAC,0BAA0B,CAAC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,sBAAsB,CAAC,eAAe,CAAC,8BAA8B,CAAC,WAAW,CAAC,0BAA0B,CAAC;;;;"}
package/esm/index.css CHANGED
@@ -6,21 +6,21 @@
6
6
  --gap-0: 0px;
7
7
  } :root {
8
8
  --sab: env(safe-area-inset-bottom, var(--gap-0));
9
- } .tab-bar__component_2kija {
9
+ } .tab-bar__component_evcd0 {
10
10
  display: flex;
11
11
  justify-content: center;
12
12
  height: 64px;
13
13
  max-height: 64px;
14
14
  box-sizing: border-box;
15
15
  overflow: hidden;
16
- transition: box-shadow 0.2s ease
17
- } .tab-bar__component_2kija.tab-bar__modal-bg-primary_2kija {
16
+ transition: box-shadow 0.2s ease;
17
+ } .tab-bar__component_evcd0.tab-bar__modal-bg-primary_evcd0 {
18
18
  background-color: var(--color-light-base-bg-primary);
19
- } .tab-bar__component_2kija.tab-bar__modal-bg-alt-primary_2kija {
19
+ } .tab-bar__component_evcd0.tab-bar__modal-bg-alt-primary_evcd0 {
20
20
  background-color: var(--color-light-base-bg-alt-primary);
21
- } @media (display-mode: standalone) { .tab-bar__component_2kija {
22
- padding-bottom: var(--sab)
21
+ } @media (display-mode: standalone) { .tab-bar__component_evcd0 {
22
+ padding-bottom: var(--sab);
23
23
  }
24
- } .tab-bar__border_2kija {
24
+ } .tab-bar__border_evcd0 {
25
25
  box-shadow: 0 -1px 0 0 var(--color-light-neutral-translucent-300);
26
26
  }
@@ -1,6 +1,6 @@
1
1
  import './index.css';
2
2
 
3
- var styles = {"component":"tab-bar__component_2kija","modal-bg-primary":"tab-bar__modal-bg-primary_2kija","modal-bg-alt-primary":"tab-bar__modal-bg-alt-primary_2kija","border":"tab-bar__border_2kija"};
3
+ var styles = {"component":"tab-bar__component_evcd0","modal-bg-primary":"tab-bar__modal-bg-primary_evcd0","modal-bg-alt-primary":"tab-bar__modal-bg-alt-primary_evcd0","border":"tab-bar__border_evcd0"};
4
4
 
5
5
  export { styles as default };
6
6
  //# sourceMappingURL=index.module.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n@import '@alfalab/core-components-vars/src/safe-area.css';\n\n.component {\n display: flex;\n justify-content: center;\n height: 64px;\n max-height: 64px;\n box-sizing: border-box;\n overflow: hidden;\n transition: box-shadow 0.2s ease;\n\n &.modal-bg-primary {\n background-color: var(--color-light-base-bg-primary);\n }\n\n &.modal-bg-alt-primary {\n background-color: var(--color-light-base-bg-alt-primary);\n }\n\n @media (display-mode: standalone) {\n padding-bottom: var(--sab);\n }\n}\n\n.border {\n box-shadow: 0 -1px 0 0 var(--color-light-neutral-translucent-300);\n}\n"],"names":[],"mappings":";;AAEgB,aAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,kBAAkB,CAAC,iCAAiC,CAAC,sBAAsB,CAAC,qCAAqC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;;;;"}
1
+ {"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-typography-index.css';\n@import '@alfalab/core-components-vars/src/safe-area.css';\n\n.component {\n display: flex;\n justify-content: center;\n height: 64px;\n max-height: 64px;\n box-sizing: border-box;\n overflow: hidden;\n transition: box-shadow 0.2s ease;\n\n &.modal-bg-primary {\n background-color: var(--color-light-base-bg-primary);\n }\n\n &.modal-bg-alt-primary {\n background-color: var(--color-light-base-bg-alt-primary);\n }\n\n @media (display-mode: standalone) {\n padding-bottom: var(--sab);\n }\n}\n\n.border {\n box-shadow: 0 -1px 0 0 var(--color-light-neutral-translucent-300);\n}\n"],"names":[],"mappings":";;AAEgB,aAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,kBAAkB,CAAC,iCAAiC,CAAC,sBAAsB,CAAC,qCAAqC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;;;;"}
package/esm/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import type { AllHTMLAttributes, ElementType, ForwardRefExoticComponent, HTMLAttributes, ReactElement, ReactNode, RefAttributes } from 'react';
2
- import type { IndicatorProps } from '@alfalab/core-components-indicator/esm';
1
+ import { type AllHTMLAttributes, type ElementType, type ForwardRefExoticComponent, type HTMLAttributes, type ReactElement, type ReactNode, type RefAttributes } from 'react';
2
+ import { type IndicatorProps } from '@alfalab/core-components-indicator/esm';
3
3
  declare type TabElementType = ReactElement<TabProps, ForwardRefExoticComponent<TabProps & RefAttributes<HTMLElement>>>;
4
4
  export interface TabBarProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
5
5
  /**
package/index.css CHANGED
@@ -6,21 +6,21 @@
6
6
  --gap-0: 0px;
7
7
  } :root {
8
8
  --sab: env(safe-area-inset-bottom, var(--gap-0));
9
- } .tab-bar__component_2kija {
9
+ } .tab-bar__component_evcd0 {
10
10
  display: flex;
11
11
  justify-content: center;
12
12
  height: 64px;
13
13
  max-height: 64px;
14
14
  box-sizing: border-box;
15
15
  overflow: hidden;
16
- transition: box-shadow 0.2s ease
17
- } .tab-bar__component_2kija.tab-bar__modal-bg-primary_2kija {
16
+ transition: box-shadow 0.2s ease;
17
+ } .tab-bar__component_evcd0.tab-bar__modal-bg-primary_evcd0 {
18
18
  background-color: var(--color-light-base-bg-primary);
19
- } .tab-bar__component_2kija.tab-bar__modal-bg-alt-primary_2kija {
19
+ } .tab-bar__component_evcd0.tab-bar__modal-bg-alt-primary_evcd0 {
20
20
  background-color: var(--color-light-base-bg-alt-primary);
21
- } @media (display-mode: standalone) { .tab-bar__component_2kija {
22
- padding-bottom: var(--sab)
21
+ } @media (display-mode: standalone) { .tab-bar__component_evcd0 {
22
+ padding-bottom: var(--sab);
23
23
  }
24
- } .tab-bar__border_2kija {
24
+ } .tab-bar__border_evcd0 {
25
25
  box-shadow: 0 -1px 0 0 var(--color-light-neutral-translucent-300);
26
26
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"component":"tab-bar__component_2kija","modal-bg-primary":"tab-bar__modal-bg-primary_2kija","modal-bg-alt-primary":"tab-bar__modal-bg-alt-primary_2kija","border":"tab-bar__border_2kija"};
5
+ var styles = {"component":"tab-bar__component_evcd0","modal-bg-primary":"tab-bar__modal-bg-primary_evcd0","modal-bg-alt-primary":"tab-bar__modal-bg-alt-primary_evcd0","border":"tab-bar__border_evcd0"};
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/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n@import '@alfalab/core-components-vars/src/safe-area.css';\n\n.component {\n display: flex;\n justify-content: center;\n height: 64px;\n max-height: 64px;\n box-sizing: border-box;\n overflow: hidden;\n transition: box-shadow 0.2s ease;\n\n &.modal-bg-primary {\n background-color: var(--color-light-base-bg-primary);\n }\n\n &.modal-bg-alt-primary {\n background-color: var(--color-light-base-bg-alt-primary);\n }\n\n @media (display-mode: standalone) {\n padding-bottom: var(--sab);\n }\n}\n\n.border {\n box-shadow: 0 -1px 0 0 var(--color-light-neutral-translucent-300);\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,kBAAkB,CAAC,iCAAiC,CAAC,sBAAsB,CAAC,qCAAqC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;;;;"}
1
+ {"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-typography-index.css';\n@import '@alfalab/core-components-vars/src/safe-area.css';\n\n.component {\n display: flex;\n justify-content: center;\n height: 64px;\n max-height: 64px;\n box-sizing: border-box;\n overflow: hidden;\n transition: box-shadow 0.2s ease;\n\n &.modal-bg-primary {\n background-color: var(--color-light-base-bg-primary);\n }\n\n &.modal-bg-alt-primary {\n background-color: var(--color-light-base-bg-alt-primary);\n }\n\n @media (display-mode: standalone) {\n padding-bottom: var(--sab);\n }\n}\n\n.border {\n box-shadow: 0 -1px 0 0 var(--color-light-neutral-translucent-300);\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,kBAAkB,CAAC,iCAAiC,CAAC,sBAAsB,CAAC,qCAAqC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;;;;"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { TabBarProps } from './types';
2
+ import { type TabBarProps } from './types';
3
3
  export declare const TabBar: React.ForwardRefExoticComponent<TabBarProps & React.RefAttributes<HTMLDivElement>> & {
4
4
  Tab: React.ForwardRefExoticComponent<import("./types").TabProps & React.RefAttributes<HTMLElement>>;
5
5
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, { Children, cloneElement, forwardRef } from 'react';\nimport cn from 'classnames';\n\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport { Tab } from './components/tab';\nimport { TabBarProps } from './types';\n\nimport styles from './index.module.css';\n\nconst TabBarComponent = forwardRef<HTMLDivElement, TabBarProps>(\n (\n {\n children,\n className,\n selectedId,\n border,\n dataTestId,\n tabClassNames,\n onChange,\n accentColor = 'primary',\n bgColor = 'modal-bg-primary',\n ...restProps\n },\n ref,\n ) => {\n if (Children.count(children) > 5) {\n // eslint-disable-next-line no-console\n console.error('Компонент TabBar не может содержать больше 5 табов');\n }\n\n return (\n <nav\n data-test-id={dataTestId}\n {...restProps}\n ref={ref}\n className={cn(styles.component, styles[bgColor], className, {\n [styles.border]: border,\n })}\n >\n {Children.map(children, (tab) =>\n cloneElement(tab, {\n bgColor,\n accentColor,\n selected: tab.props.id === selectedId,\n onChange,\n tabClassNames,\n dataTestId: getDataTestId(dataTestId, 'tab'),\n }),\n )}\n </nav>\n );\n },\n);\n\nTabBarComponent.displayName = 'TabBarComponent';\n\nexport const TabBar = Object.assign(TabBarComponent, { Tab });\n"],"names":[],"mappings":";;;;;;AAUA,MAAM,eAAe,GAAG,UAAU,CAC9B,CACI,EACI,QAAQ,EACR,SAAS,EACT,UAAU,EACV,MAAM,EACN,UAAU,EACV,aAAa,EACb,QAAQ,EACR,WAAW,GAAG,SAAS,EACvB,OAAO,GAAG,kBAAkB,EAC5B,GAAG,SAAS,EACf,EACD,GAAG,KACH;IACA,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;;AAE9B,QAAA,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC;AACtE;IAED,QACI,KACkB,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,cAAA,EAAA,UAAU,EACpB,GAAA,SAAS,EACb,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE;AACxD,YAAA,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM;AAC1B,SAAA,CAAC,EAED,EAAA,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,KACxB,YAAY,CAAC,GAAG,EAAE;QACd,OAAO;QACP,WAAW;AACX,QAAA,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,UAAU;QACrC,QAAQ;QACR,aAAa;AACb,QAAA,UAAU,EAAE,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC;KAC/C,CAAC,CACL,CACC;AAEd,CAAC,CACJ;AAED,eAAe,CAAC,WAAW,GAAG,iBAAiB;AAExC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE;;;;"}
1
+ {"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, { Children, cloneElement, forwardRef } from 'react';\nimport cn from 'classnames';\n\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport { Tab } from './components/tab';\nimport { type TabBarProps } from './types';\n\nimport styles from './index.module.css';\n\nconst TabBarComponent = forwardRef<HTMLDivElement, TabBarProps>(\n (\n {\n children,\n className,\n selectedId,\n border,\n dataTestId,\n tabClassNames,\n onChange,\n accentColor = 'primary',\n bgColor = 'modal-bg-primary',\n ...restProps\n },\n ref,\n ) => {\n if (Children.count(children) > 5) {\n // eslint-disable-next-line no-console\n console.error('Компонент TabBar не может содержать больше 5 табов');\n }\n\n return (\n <nav\n data-test-id={dataTestId}\n {...restProps}\n ref={ref}\n className={cn(styles.component, styles[bgColor], className, {\n [styles.border]: border,\n })}\n >\n {Children.map(children, (tab) =>\n cloneElement(tab, {\n bgColor,\n accentColor,\n selected: tab.props.id === selectedId,\n onChange,\n tabClassNames,\n dataTestId: getDataTestId(dataTestId, 'tab'),\n }),\n )}\n </nav>\n );\n },\n);\n\nTabBarComponent.displayName = 'TabBarComponent';\n\nexport const TabBar = Object.assign(TabBarComponent, { Tab });\n"],"names":[],"mappings":";;;;;;AAUA,MAAM,eAAe,GAAG,UAAU,CAC9B,CACI,EACI,QAAQ,EACR,SAAS,EACT,UAAU,EACV,MAAM,EACN,UAAU,EACV,aAAa,EACb,QAAQ,EACR,WAAW,GAAG,SAAS,EACvB,OAAO,GAAG,kBAAkB,EAC5B,GAAG,SAAS,EACf,EACD,GAAG,KACH;IACA,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;;AAE9B,QAAA,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC;AACtE;IAED,QACI,KACkB,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,cAAA,EAAA,UAAU,EACpB,GAAA,SAAS,EACb,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE;AACxD,YAAA,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM;AAC1B,SAAA,CAAC,EAED,EAAA,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,KACxB,YAAY,CAAC,GAAG,EAAE;QACd,OAAO;QACP,WAAW;AACX,QAAA,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,UAAU;QACrC,QAAQ;QACR,aAAa;AACb,QAAA,UAAU,EAAE,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC;KAC/C,CAAC,CACL,CACC;AAEd,CAAC,CACJ;AAED,eAAe,CAAC,WAAW,GAAG,iBAAiB;AAExC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE;;;;"}
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- import { TabProps } from '../../types';
2
+ import { type TabProps } from '../../types';
3
3
  export declare const Tab: React.ForwardRefExoticComponent<TabProps & React.RefAttributes<HTMLElement>>;
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["../../../src/components/tab/Component.tsx"],"sourcesContent":["import React, { cloneElement, forwardRef, isValidElement, MouseEvent } from 'react';\nimport cn from 'classnames';\n\nimport { Indicator } from '@alfalab/core-components-indicator';\nimport { Text } from '@alfalab/core-components-typography';\n\nimport { INDICATOR_BG_COLOR, INDICATOR_BORDER_COLOR } from '../../consts';\nimport { PrivateTabProps, TabProps } from '../../types';\n\nimport styles from './index.module.css';\n\nconst TabComponent = forwardRef(\n (\n {\n showIndicator,\n indicatorProps,\n label,\n icon,\n id,\n selected,\n onChange,\n onClick,\n tabClassNames = {},\n dataTestId,\n className,\n labelClassName,\n selectedClassName,\n iconClassName,\n href,\n Component = href ? 'a' : 'button',\n accentColor = 'primary',\n bgColor = 'modal-bg-primary',\n ...restProps\n }: PrivateTabProps & TabProps,\n ref,\n ) => {\n const handleClick = (event: MouseEvent) => {\n onChange?.(id);\n onClick?.(event);\n };\n\n const {\n className: commonClassName,\n labelClassName: commonLabelClassName,\n selectedClassName: commonSelectedClassName,\n iconClassName: commonIconClassName,\n } = tabClassNames;\n\n return (\n <Component\n data-test-id={dataTestId}\n tabIndex={0}\n {...(Component === 'button' ? { type: 'button' } : null)}\n {...restProps}\n href={href}\n id={id}\n ref={ref}\n className={cn(\n styles.component,\n commonClassName,\n className,\n selected && commonSelectedClassName,\n selected && selectedClassName,\n {\n [styles[accentColor]]: selected,\n },\n )}\n onClick={handleClick}\n >\n <div className={cn(styles.icon, commonIconClassName, iconClassName)}>\n {isValidElement(icon) ? cloneElement(icon, { selected }) : icon}\n </div>\n\n <Text\n weight='medium'\n view='secondary-small'\n className={cn(styles.label, commonLabelClassName, labelClassName, {\n [styles.labelSelected]: selected,\n })}\n >\n {isValidElement(label) ? cloneElement(label, { selected }) : label}\n </Text>\n\n {showIndicator && (\n <div className={styles.indicator}>\n <Indicator\n {...indicatorProps}\n height={indicatorProps?.value ? 16 : undefined}\n border={{\n width: 2,\n color: INDICATOR_BORDER_COLOR[bgColor],\n }}\n backgroundColor={INDICATOR_BG_COLOR[accentColor]}\n />\n </div>\n )}\n </Component>\n );\n },\n);\n\nexport const Tab = TabComponent as React.ForwardRefExoticComponent<\n TabProps & React.RefAttributes<HTMLElement>\n>;\n"],"names":[],"mappings":";;;;;;;AAWA,MAAM,YAAY,GAAG,UAAU,CAC3B,CACI,EACI,aAAa,EACb,cAAc,EACd,KAAK,EACL,IAAI,EACJ,EAAE,EACF,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,aAAa,GAAG,EAAE,EAClB,UAAU,EACV,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,IAAI,EACJ,SAAS,GAAG,IAAI,GAAG,GAAG,GAAG,QAAQ,EACjC,WAAW,GAAG,SAAS,EACvB,OAAO,GAAG,kBAAkB,EAC5B,GAAG,SAAS,EACa,EAC7B,GAAG,KACH;AACA,IAAA,MAAM,WAAW,GAAG,CAAC,KAAiB,KAAI;AACtC,QAAA,QAAQ,GAAG,EAAE,CAAC;AACd,QAAA,OAAO,GAAG,KAAK,CAAC;AACpB,KAAC;AAED,IAAA,MAAM,EACF,SAAS,EAAE,eAAe,EAC1B,cAAc,EAAE,oBAAoB,EACpC,iBAAiB,EAAE,uBAAuB,EAC1C,aAAa,EAAE,mBAAmB,GACrC,GAAG,aAAa;AAEjB,IAAA,QACI,KAAA,CAAA,aAAA,CAAC,SAAS,EAAA,EAAA,cAAA,EACQ,UAAU,EACxB,QAAQ,EAAE,CAAC,EAAA,IACN,SAAS,KAAK,QAAQ,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAA,GACpD,SAAS,EACb,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,EAAE,EACN,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACT,MAAM,CAAC,SAAS,EAChB,eAAe,EACf,SAAS,EACT,QAAQ,IAAI,uBAAuB,EACnC,QAAQ,IAAI,iBAAiB,EAC7B;AACI,YAAA,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,QAAQ;SAClC,CACJ,EACD,OAAO,EAAE,WAAW,EAAA;AAEpB,QAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,EAAE,aAAa,CAAC,EAAA,EAC9D,cAAc,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAC7D;QAEN,KAAC,CAAA,aAAA,CAAA,IAAI,IACD,MAAM,EAAC,QAAQ,EACf,IAAI,EAAC,iBAAiB,EACtB,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE;AAC9D,gBAAA,CAAC,MAAM,CAAC,aAAa,GAAG,QAAQ;aACnC,CAAC,EAAA,EAED,cAAc,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,KAAK,CAC/D;AAEN,QAAA,aAAa,KACV,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,SAAS,EAAA;AAC5B,YAAA,KAAA,CAAA,aAAA,CAAC,SAAS,EACF,EAAA,GAAA,cAAc,EAClB,MAAM,EAAE,cAAc,EAAE,KAAK,GAAG,EAAE,GAAG,SAAS,EAC9C,MAAM,EAAE;AACJ,oBAAA,KAAK,EAAE,CAAC;AACR,oBAAA,KAAK,EAAE,sBAAsB,CAAC,OAAO,CAAC;iBACzC,EACD,eAAe,EAAE,kBAAkB,CAAC,WAAW,CAAC,EAAA,CAClD,CACA,CACT,CACO;AAEpB,CAAC,CACJ;AAEM,MAAM,GAAG,GAAG;;;;"}
1
+ {"version":3,"file":"Component.js","sources":["../../../src/components/tab/Component.tsx"],"sourcesContent":["import React, { cloneElement, forwardRef, isValidElement, type MouseEvent } from 'react';\nimport cn from 'classnames';\n\nimport { Indicator } from '@alfalab/core-components-indicator';\nimport { Text } from '@alfalab/core-components-typography';\n\nimport { INDICATOR_BG_COLOR, INDICATOR_BORDER_COLOR } from '../../consts';\nimport { type PrivateTabProps, type TabProps } from '../../types';\n\nimport styles from './index.module.css';\n\nconst TabComponent = forwardRef(\n (\n {\n showIndicator,\n indicatorProps,\n label,\n icon,\n id,\n selected,\n onChange,\n onClick,\n tabClassNames = {},\n dataTestId,\n className,\n labelClassName,\n selectedClassName,\n iconClassName,\n href,\n Component = href ? 'a' : 'button',\n accentColor = 'primary',\n bgColor = 'modal-bg-primary',\n ...restProps\n }: PrivateTabProps & TabProps,\n ref,\n ) => {\n const handleClick = (event: MouseEvent) => {\n onChange?.(id);\n onClick?.(event);\n };\n\n const {\n className: commonClassName,\n labelClassName: commonLabelClassName,\n selectedClassName: commonSelectedClassName,\n iconClassName: commonIconClassName,\n } = tabClassNames;\n\n return (\n <Component\n data-test-id={dataTestId}\n tabIndex={0}\n {...(Component === 'button' ? { type: 'button' } : null)}\n {...restProps}\n href={href}\n id={id}\n ref={ref}\n className={cn(\n styles.component,\n commonClassName,\n className,\n selected && commonSelectedClassName,\n selected && selectedClassName,\n {\n [styles[accentColor]]: selected,\n },\n )}\n onClick={handleClick}\n >\n <div className={cn(styles.icon, commonIconClassName, iconClassName)}>\n {isValidElement(icon) ? cloneElement(icon, { selected }) : icon}\n </div>\n\n <Text\n weight='medium'\n view='secondary-small'\n className={cn(styles.label, commonLabelClassName, labelClassName, {\n [styles.labelSelected]: selected,\n })}\n >\n {isValidElement(label) ? cloneElement(label, { selected }) : label}\n </Text>\n\n {showIndicator && (\n <div className={styles.indicator}>\n <Indicator\n {...indicatorProps}\n height={indicatorProps?.value ? 16 : undefined}\n border={{\n width: 2,\n color: INDICATOR_BORDER_COLOR[bgColor],\n }}\n backgroundColor={INDICATOR_BG_COLOR[accentColor]}\n />\n </div>\n )}\n </Component>\n );\n },\n);\n\nexport const Tab = TabComponent as React.ForwardRefExoticComponent<\n TabProps & React.RefAttributes<HTMLElement>\n>;\n"],"names":[],"mappings":";;;;;;;AAWA,MAAM,YAAY,GAAG,UAAU,CAC3B,CACI,EACI,aAAa,EACb,cAAc,EACd,KAAK,EACL,IAAI,EACJ,EAAE,EACF,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,aAAa,GAAG,EAAE,EAClB,UAAU,EACV,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,IAAI,EACJ,SAAS,GAAG,IAAI,GAAG,GAAG,GAAG,QAAQ,EACjC,WAAW,GAAG,SAAS,EACvB,OAAO,GAAG,kBAAkB,EAC5B,GAAG,SAAS,EACa,EAC7B,GAAG,KACH;AACA,IAAA,MAAM,WAAW,GAAG,CAAC,KAAiB,KAAI;AACtC,QAAA,QAAQ,GAAG,EAAE,CAAC;AACd,QAAA,OAAO,GAAG,KAAK,CAAC;AACpB,KAAC;AAED,IAAA,MAAM,EACF,SAAS,EAAE,eAAe,EAC1B,cAAc,EAAE,oBAAoB,EACpC,iBAAiB,EAAE,uBAAuB,EAC1C,aAAa,EAAE,mBAAmB,GACrC,GAAG,aAAa;AAEjB,IAAA,QACI,KAAA,CAAA,aAAA,CAAC,SAAS,EAAA,EAAA,cAAA,EACQ,UAAU,EACxB,QAAQ,EAAE,CAAC,EAAA,IACN,SAAS,KAAK,QAAQ,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAA,GACpD,SAAS,EACb,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,EAAE,EACN,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACT,MAAM,CAAC,SAAS,EAChB,eAAe,EACf,SAAS,EACT,QAAQ,IAAI,uBAAuB,EACnC,QAAQ,IAAI,iBAAiB,EAC7B;AACI,YAAA,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,QAAQ;SAClC,CACJ,EACD,OAAO,EAAE,WAAW,EAAA;AAEpB,QAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,EAAE,aAAa,CAAC,EAAA,EAC9D,cAAc,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAC7D;QAEN,KAAC,CAAA,aAAA,CAAA,IAAI,IACD,MAAM,EAAC,QAAQ,EACf,IAAI,EAAC,iBAAiB,EACtB,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE;AAC9D,gBAAA,CAAC,MAAM,CAAC,aAAa,GAAG,QAAQ;aACnC,CAAC,EAAA,EAED,cAAc,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,KAAK,CAC/D;AAEN,QAAA,aAAa,KACV,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,SAAS,EAAA;AAC5B,YAAA,KAAA,CAAA,aAAA,CAAC,SAAS,EACF,EAAA,GAAA,cAAc,EAClB,MAAM,EAAE,cAAc,EAAE,KAAK,GAAG,EAAE,GAAG,SAAS,EAC9C,MAAM,EAAE;AACJ,oBAAA,KAAK,EAAE,CAAC;AACR,oBAAA,KAAK,EAAE,sBAAsB,CAAC,OAAO,CAAC;iBACzC,EACD,eAAe,EAAE,kBAAkB,CAAC,WAAW,CAAC,EAAA,CAClD,CACA,CACT,CACO;AAEpB,CAAC,CACJ;AAEM,MAAM,GAAG,GAAG;;;;"}
@@ -3,13 +3,15 @@
3
3
  --color-light-accent-secondary: #212124;
4
4
  --color-light-neutral-translucent-700: rgba(4, 4, 21, 0.47);
5
5
  --color-light-text-secondary: rgba(4, 4, 19, 0.55);
6
+ } :root {
7
+ --border-radius-0: 0;
6
8
  } :root {
7
9
  --gap-2xs: 4px;
8
10
  --gap-xs: 8px;
9
11
  --gap-0: 0px;
10
12
  --gap-4: var(--gap-2xs);
11
13
  --gap-8: var(--gap-xs);
12
- } .tab-bar__component_1lfc5 {
14
+ } .tab-bar__component_zwktl {
13
15
  -webkit-tap-highlight-color: transparent;
14
16
  box-sizing: border-box;
15
17
  background-color: transparent;
@@ -17,7 +19,7 @@
17
19
  border: 0;
18
20
  margin: var(--gap-0);
19
21
  box-shadow: none;
20
- border-radius: 0;
22
+ border-radius: var(--border-radius-0);
21
23
  -webkit-user-select: none;
22
24
  -moz-user-select: none;
23
25
  user-select: none;
@@ -36,17 +38,17 @@
36
38
  align-items: center;
37
39
  padding: var(--gap-8) var(--gap-0);
38
40
  color: var(--color-light-neutral-translucent-700);
39
- } .tab-bar__primary_1lfc5 {
41
+ } .tab-bar__primary_zwktl {
40
42
  color: var(--color-light-accent-primary);
41
- } .tab-bar__secondary_1lfc5 {
43
+ } .tab-bar__secondary_zwktl {
42
44
  color: var(--color-light-accent-secondary);
43
- } .tab-bar__icon_1lfc5 {
45
+ } .tab-bar__icon_zwktl {
44
46
  display: flex;
45
47
  align-items: center;
46
48
  justify-content: center;
47
49
  flex-grow: 1;
48
50
  width: 100%;
49
- } .tab-bar__label_1lfc5 {
51
+ } .tab-bar__label_zwktl {
50
52
  -webkit-line-clamp: 1;
51
53
  display: -webkit-box;
52
54
  -webkit-box-orient: vertical;
@@ -55,9 +57,9 @@
55
57
  flex-shrink: 0;
56
58
 
57
59
  color: var(--color-light-text-secondary);
58
- } .tab-bar__labelSelected_1lfc5 {
60
+ } .tab-bar__labelSelected_zwktl {
59
61
  color: inherit;
60
- } .tab-bar__indicator_1lfc5 {
62
+ } .tab-bar__indicator_zwktl {
61
63
  position: absolute;
62
64
  top: 3px;
63
65
  left: calc(50% + var(--gap-4));
@@ -1,6 +1,6 @@
1
1
  import './index.css';
2
2
 
3
- const styles = {"component":"tab-bar__component_1lfc5","primary":"tab-bar__primary_1lfc5","secondary":"tab-bar__secondary_1lfc5","icon":"tab-bar__icon_1lfc5","label":"tab-bar__label_1lfc5","labelSelected":"tab-bar__labelSelected_1lfc5","indicator":"tab-bar__indicator_1lfc5"};
3
+ const styles = {"component":"tab-bar__component_zwktl","primary":"tab-bar__primary_zwktl","secondary":"tab-bar__secondary_zwktl","icon":"tab-bar__icon_zwktl","label":"tab-bar__label_zwktl","labelSelected":"tab-bar__labelSelected_zwktl","indicator":"tab-bar__indicator_zwktl"};
4
4
 
5
5
  export { styles as default };
6
6
  //# sourceMappingURL=index.module.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.module.css.js","sources":["../../src/components/tab/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n\n.component {\n @mixin button-reset;\n\n position: relative;\n display: inline-flex;\n flex-direction: column;\n flex: 1 0 0;\n align-items: center;\n padding: var(--gap-8) var(--gap-0);\n color: var(--color-light-neutral-translucent-700);\n}\n\n.primary {\n color: var(--color-light-accent-primary);\n}\n\n.secondary {\n color: var(--color-light-accent-secondary);\n}\n\n.icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-grow: 1;\n width: 100%;\n}\n\n.label {\n @mixin row_limit 1;\n word-break: break-all;\n flex-shrink: 0;\n\n color: var(--color-light-text-secondary);\n}\n\n.labelSelected {\n color: inherit;\n}\n\n.indicator {\n position: absolute;\n top: 3px;\n left: calc(50% + var(--gap-4));\n height: 16px;\n min-width: 16px;\n}\n"],"names":[],"mappings":";;AAEgB,eAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,SAAS,CAAC,wBAAwB,CAAC,WAAW,CAAC,0BAA0B,CAAC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,sBAAsB,CAAC,eAAe,CAAC,8BAA8B,CAAC,WAAW,CAAC,0BAA0B,CAAC;;;;"}
1
+ {"version":3,"file":"index.module.css.js","sources":["../../src/components/tab/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-typography-index.css';\n\n.component {\n @mixin button-reset;\n\n position: relative;\n display: inline-flex;\n flex-direction: column;\n flex: 1 0 0;\n align-items: center;\n padding: var(--gap-8) var(--gap-0);\n color: var(--color-light-neutral-translucent-700);\n}\n\n.primary {\n color: var(--color-light-accent-primary);\n}\n\n.secondary {\n color: var(--color-light-accent-secondary);\n}\n\n.icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-grow: 1;\n width: 100%;\n}\n\n.label {\n @mixin row_limit 1;\n word-break: break-all;\n flex-shrink: 0;\n\n color: var(--color-light-text-secondary);\n}\n\n.labelSelected {\n color: inherit;\n}\n\n.indicator {\n position: absolute;\n top: 3px;\n left: calc(50% + var(--gap-4));\n height: 16px;\n min-width: 16px;\n}\n"],"names":[],"mappings":";;AAEgB,eAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,SAAS,CAAC,wBAAwB,CAAC,WAAW,CAAC,0BAA0B,CAAC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,sBAAsB,CAAC,eAAe,CAAC,8BAA8B,CAAC,WAAW,CAAC,0BAA0B,CAAC;;;;"}
package/modern/index.css CHANGED
@@ -6,21 +6,21 @@
6
6
  --gap-0: 0px;
7
7
  } :root {
8
8
  --sab: env(safe-area-inset-bottom, var(--gap-0));
9
- } .tab-bar__component_2kija {
9
+ } .tab-bar__component_evcd0 {
10
10
  display: flex;
11
11
  justify-content: center;
12
12
  height: 64px;
13
13
  max-height: 64px;
14
14
  box-sizing: border-box;
15
15
  overflow: hidden;
16
- transition: box-shadow 0.2s ease
17
- } .tab-bar__component_2kija.tab-bar__modal-bg-primary_2kija {
16
+ transition: box-shadow 0.2s ease;
17
+ } .tab-bar__component_evcd0.tab-bar__modal-bg-primary_evcd0 {
18
18
  background-color: var(--color-light-base-bg-primary);
19
- } .tab-bar__component_2kija.tab-bar__modal-bg-alt-primary_2kija {
19
+ } .tab-bar__component_evcd0.tab-bar__modal-bg-alt-primary_evcd0 {
20
20
  background-color: var(--color-light-base-bg-alt-primary);
21
- } @media (display-mode: standalone) { .tab-bar__component_2kija {
22
- padding-bottom: var(--sab)
21
+ } @media (display-mode: standalone) { .tab-bar__component_evcd0 {
22
+ padding-bottom: var(--sab);
23
23
  }
24
- } .tab-bar__border_2kija {
24
+ } .tab-bar__border_evcd0 {
25
25
  box-shadow: 0 -1px 0 0 var(--color-light-neutral-translucent-300);
26
26
  }
@@ -1,6 +1,6 @@
1
1
  import './index.css';
2
2
 
3
- const styles = {"component":"tab-bar__component_2kija","modal-bg-primary":"tab-bar__modal-bg-primary_2kija","modal-bg-alt-primary":"tab-bar__modal-bg-alt-primary_2kija","border":"tab-bar__border_2kija"};
3
+ const styles = {"component":"tab-bar__component_evcd0","modal-bg-primary":"tab-bar__modal-bg-primary_evcd0","modal-bg-alt-primary":"tab-bar__modal-bg-alt-primary_evcd0","border":"tab-bar__border_evcd0"};
4
4
 
5
5
  export { styles as default };
6
6
  //# sourceMappingURL=index.module.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n@import '@alfalab/core-components-vars/src/safe-area.css';\n\n.component {\n display: flex;\n justify-content: center;\n height: 64px;\n max-height: 64px;\n box-sizing: border-box;\n overflow: hidden;\n transition: box-shadow 0.2s ease;\n\n &.modal-bg-primary {\n background-color: var(--color-light-base-bg-primary);\n }\n\n &.modal-bg-alt-primary {\n background-color: var(--color-light-base-bg-alt-primary);\n }\n\n @media (display-mode: standalone) {\n padding-bottom: var(--sab);\n }\n}\n\n.border {\n box-shadow: 0 -1px 0 0 var(--color-light-neutral-translucent-300);\n}\n"],"names":[],"mappings":";;AAEgB,eAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,kBAAkB,CAAC,iCAAiC,CAAC,sBAAsB,CAAC,qCAAqC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;;;;"}
1
+ {"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-typography-index.css';\n@import '@alfalab/core-components-vars/src/safe-area.css';\n\n.component {\n display: flex;\n justify-content: center;\n height: 64px;\n max-height: 64px;\n box-sizing: border-box;\n overflow: hidden;\n transition: box-shadow 0.2s ease;\n\n &.modal-bg-primary {\n background-color: var(--color-light-base-bg-primary);\n }\n\n &.modal-bg-alt-primary {\n background-color: var(--color-light-base-bg-alt-primary);\n }\n\n @media (display-mode: standalone) {\n padding-bottom: var(--sab);\n }\n}\n\n.border {\n box-shadow: 0 -1px 0 0 var(--color-light-neutral-translucent-300);\n}\n"],"names":[],"mappings":";;AAEgB,eAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,kBAAkB,CAAC,iCAAiC,CAAC,sBAAsB,CAAC,qCAAqC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;;;;"}
package/modern/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import type { AllHTMLAttributes, ElementType, ForwardRefExoticComponent, HTMLAttributes, ReactElement, ReactNode, RefAttributes } from 'react';
2
- import type { IndicatorProps } from '@alfalab/core-components-indicator/modern';
1
+ import { type AllHTMLAttributes, type ElementType, type ForwardRefExoticComponent, type HTMLAttributes, type ReactElement, type ReactNode, type RefAttributes } from 'react';
2
+ import { type IndicatorProps } from '@alfalab/core-components-indicator/modern';
3
3
  declare type TabElementType = ReactElement<TabProps, ForwardRefExoticComponent<TabProps & RefAttributes<HTMLElement>>>;
4
4
  export interface TabBarProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { TabBarProps } from './types';
2
+ import { type TabBarProps } from './types';
3
3
  export declare const TabBar: React.ForwardRefExoticComponent<TabBarProps & React.RefAttributes<HTMLDivElement>> & {
4
4
  Tab: React.ForwardRefExoticComponent<import("./types").TabProps & React.RefAttributes<HTMLElement>>;
5
5
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, { Children, cloneElement, forwardRef } from 'react';\nimport cn from 'classnames';\n\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport { Tab } from './components/tab';\nimport { TabBarProps } from './types';\n\nimport styles from './index.module.css';\n\nconst TabBarComponent = forwardRef<HTMLDivElement, TabBarProps>(\n (\n {\n children,\n className,\n selectedId,\n border,\n dataTestId,\n tabClassNames,\n onChange,\n accentColor = 'primary',\n bgColor = 'modal-bg-primary',\n ...restProps\n },\n ref,\n ) => {\n if (Children.count(children) > 5) {\n // eslint-disable-next-line no-console\n console.error('Компонент TabBar не может содержать больше 5 табов');\n }\n\n return (\n <nav\n data-test-id={dataTestId}\n {...restProps}\n ref={ref}\n className={cn(styles.component, styles[bgColor], className, {\n [styles.border]: border,\n })}\n >\n {Children.map(children, (tab) =>\n cloneElement(tab, {\n bgColor,\n accentColor,\n selected: tab.props.id === selectedId,\n onChange,\n tabClassNames,\n dataTestId: getDataTestId(dataTestId, 'tab'),\n }),\n )}\n </nav>\n );\n },\n);\n\nTabBarComponent.displayName = 'TabBarComponent';\n\nexport const TabBar = Object.assign(TabBarComponent, { Tab });\n"],"names":[],"mappings":";;;;;;AAUA,MAAM,eAAe,GAAG,UAAU,CAC9B,CACI,EACI,QAAQ,EACR,SAAS,EACT,UAAU,EACV,MAAM,EACN,UAAU,EACV,aAAa,EACb,QAAQ,EACR,WAAW,GAAG,SAAS,EACvB,OAAO,GAAG,kBAAkB,EAC5B,GAAG,SAAS,EACf,EACD,GAAG,KACH;IACA,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;;AAE9B,QAAA,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC;AACtE;IAED,QACI,KACkB,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,cAAA,EAAA,UAAU,EACpB,GAAA,SAAS,EACb,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE;AACxD,YAAA,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM;AAC1B,SAAA,CAAC,EAED,EAAA,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,KACxB,YAAY,CAAC,GAAG,EAAE;QACd,OAAO;QACP,WAAW;AACX,QAAA,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,UAAU;QACrC,QAAQ;QACR,aAAa;AACb,QAAA,UAAU,EAAE,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC;KAC/C,CAAC,CACL,CACC;AAEd,CAAC,CACJ;AAED,eAAe,CAAC,WAAW,GAAG,iBAAiB;AAExC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE;;;;"}
1
+ {"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, { Children, cloneElement, forwardRef } from 'react';\nimport cn from 'classnames';\n\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport { Tab } from './components/tab';\nimport { type TabBarProps } from './types';\n\nimport styles from './index.module.css';\n\nconst TabBarComponent = forwardRef<HTMLDivElement, TabBarProps>(\n (\n {\n children,\n className,\n selectedId,\n border,\n dataTestId,\n tabClassNames,\n onChange,\n accentColor = 'primary',\n bgColor = 'modal-bg-primary',\n ...restProps\n },\n ref,\n ) => {\n if (Children.count(children) > 5) {\n // eslint-disable-next-line no-console\n console.error('Компонент TabBar не может содержать больше 5 табов');\n }\n\n return (\n <nav\n data-test-id={dataTestId}\n {...restProps}\n ref={ref}\n className={cn(styles.component, styles[bgColor], className, {\n [styles.border]: border,\n })}\n >\n {Children.map(children, (tab) =>\n cloneElement(tab, {\n bgColor,\n accentColor,\n selected: tab.props.id === selectedId,\n onChange,\n tabClassNames,\n dataTestId: getDataTestId(dataTestId, 'tab'),\n }),\n )}\n </nav>\n );\n },\n);\n\nTabBarComponent.displayName = 'TabBarComponent';\n\nexport const TabBar = Object.assign(TabBarComponent, { Tab });\n"],"names":[],"mappings":";;;;;;AAUA,MAAM,eAAe,GAAG,UAAU,CAC9B,CACI,EACI,QAAQ,EACR,SAAS,EACT,UAAU,EACV,MAAM,EACN,UAAU,EACV,aAAa,EACb,QAAQ,EACR,WAAW,GAAG,SAAS,EACvB,OAAO,GAAG,kBAAkB,EAC5B,GAAG,SAAS,EACf,EACD,GAAG,KACH;IACA,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;;AAE9B,QAAA,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC;AACtE;IAED,QACI,KACkB,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,cAAA,EAAA,UAAU,EACpB,GAAA,SAAS,EACb,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE;AACxD,YAAA,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM;AAC1B,SAAA,CAAC,EAED,EAAA,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,KACxB,YAAY,CAAC,GAAG,EAAE;QACd,OAAO;QACP,WAAW;AACX,QAAA,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,UAAU;QACrC,QAAQ;QACR,aAAa;AACb,QAAA,UAAU,EAAE,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC;KAC/C,CAAC,CACL,CACC;AAEd,CAAC,CACJ;AAED,eAAe,CAAC,WAAW,GAAG,iBAAiB;AAExC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE;;;;"}
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- import { TabProps } from '../../types';
2
+ import { type TabProps } from '../../types';
3
3
  export declare const Tab: React.ForwardRefExoticComponent<TabProps & React.RefAttributes<HTMLElement>>;
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["../../../src/components/tab/Component.tsx"],"sourcesContent":["import React, { cloneElement, forwardRef, isValidElement, MouseEvent } from 'react';\nimport cn from 'classnames';\n\nimport { Indicator } from '@alfalab/core-components-indicator';\nimport { Text } from '@alfalab/core-components-typography';\n\nimport { INDICATOR_BG_COLOR, INDICATOR_BORDER_COLOR } from '../../consts';\nimport { PrivateTabProps, TabProps } from '../../types';\n\nimport styles from './index.module.css';\n\nconst TabComponent = forwardRef(\n (\n {\n showIndicator,\n indicatorProps,\n label,\n icon,\n id,\n selected,\n onChange,\n onClick,\n tabClassNames = {},\n dataTestId,\n className,\n labelClassName,\n selectedClassName,\n iconClassName,\n href,\n Component = href ? 'a' : 'button',\n accentColor = 'primary',\n bgColor = 'modal-bg-primary',\n ...restProps\n }: PrivateTabProps & TabProps,\n ref,\n ) => {\n const handleClick = (event: MouseEvent) => {\n onChange?.(id);\n onClick?.(event);\n };\n\n const {\n className: commonClassName,\n labelClassName: commonLabelClassName,\n selectedClassName: commonSelectedClassName,\n iconClassName: commonIconClassName,\n } = tabClassNames;\n\n return (\n <Component\n data-test-id={dataTestId}\n tabIndex={0}\n {...(Component === 'button' ? { type: 'button' } : null)}\n {...restProps}\n href={href}\n id={id}\n ref={ref}\n className={cn(\n styles.component,\n commonClassName,\n className,\n selected && commonSelectedClassName,\n selected && selectedClassName,\n {\n [styles[accentColor]]: selected,\n },\n )}\n onClick={handleClick}\n >\n <div className={cn(styles.icon, commonIconClassName, iconClassName)}>\n {isValidElement(icon) ? cloneElement(icon, { selected }) : icon}\n </div>\n\n <Text\n weight='medium'\n view='secondary-small'\n className={cn(styles.label, commonLabelClassName, labelClassName, {\n [styles.labelSelected]: selected,\n })}\n >\n {isValidElement(label) ? cloneElement(label, { selected }) : label}\n </Text>\n\n {showIndicator && (\n <div className={styles.indicator}>\n <Indicator\n {...indicatorProps}\n height={indicatorProps?.value ? 16 : undefined}\n border={{\n width: 2,\n color: INDICATOR_BORDER_COLOR[bgColor],\n }}\n backgroundColor={INDICATOR_BG_COLOR[accentColor]}\n />\n </div>\n )}\n </Component>\n );\n },\n);\n\nexport const Tab = TabComponent as React.ForwardRefExoticComponent<\n TabProps & React.RefAttributes<HTMLElement>\n>;\n"],"names":[],"mappings":";;;;;;;AAWA,MAAM,YAAY,GAAG,UAAU,CAC3B,CACI,EACI,aAAa,EACb,cAAc,EACd,KAAK,EACL,IAAI,EACJ,EAAE,EACF,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,aAAa,GAAG,EAAE,EAClB,UAAU,EACV,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,IAAI,EACJ,SAAS,GAAG,IAAI,GAAG,GAAG,GAAG,QAAQ,EACjC,WAAW,GAAG,SAAS,EACvB,OAAO,GAAG,kBAAkB,EAC5B,GAAG,SAAS,EACa,EAC7B,GAAG,KACH;AACA,IAAA,MAAM,WAAW,GAAG,CAAC,KAAiB,KAAI;AACtC,QAAA,QAAQ,GAAG,EAAE,CAAC;AACd,QAAA,OAAO,GAAG,KAAK,CAAC;AACpB,KAAC;AAED,IAAA,MAAM,EACF,SAAS,EAAE,eAAe,EAC1B,cAAc,EAAE,oBAAoB,EACpC,iBAAiB,EAAE,uBAAuB,EAC1C,aAAa,EAAE,mBAAmB,GACrC,GAAG,aAAa;AAEjB,IAAA,QACI,KAAA,CAAA,aAAA,CAAC,SAAS,EAAA,EAAA,cAAA,EACQ,UAAU,EACxB,QAAQ,EAAE,CAAC,EAAA,IACN,SAAS,KAAK,QAAQ,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAA,GACpD,SAAS,EACb,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,EAAE,EACN,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACT,MAAM,CAAC,SAAS,EAChB,eAAe,EACf,SAAS,EACT,QAAQ,IAAI,uBAAuB,EACnC,QAAQ,IAAI,iBAAiB,EAC7B;AACI,YAAA,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,QAAQ;SAClC,CACJ,EACD,OAAO,EAAE,WAAW,EAAA;AAEpB,QAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,EAAE,aAAa,CAAC,EAAA,EAC9D,cAAc,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAC7D;QAEN,KAAC,CAAA,aAAA,CAAA,IAAI,IACD,MAAM,EAAC,QAAQ,EACf,IAAI,EAAC,iBAAiB,EACtB,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE;AAC9D,gBAAA,CAAC,MAAM,CAAC,aAAa,GAAG,QAAQ;aACnC,CAAC,EAAA,EAED,cAAc,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,KAAK,CAC/D;AAEN,QAAA,aAAa,KACV,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,SAAS,EAAA;AAC5B,YAAA,KAAA,CAAA,aAAA,CAAC,SAAS,EACF,EAAA,GAAA,cAAc,EAClB,MAAM,EAAE,cAAc,EAAE,KAAK,GAAG,EAAE,GAAG,SAAS,EAC9C,MAAM,EAAE;AACJ,oBAAA,KAAK,EAAE,CAAC;AACR,oBAAA,KAAK,EAAE,sBAAsB,CAAC,OAAO,CAAC;iBACzC,EACD,eAAe,EAAE,kBAAkB,CAAC,WAAW,CAAC,EAAA,CAClD,CACA,CACT,CACO;AAEpB,CAAC,CACJ;AAEM,MAAM,GAAG,GAAG;;;;"}
1
+ {"version":3,"file":"Component.js","sources":["../../../src/components/tab/Component.tsx"],"sourcesContent":["import React, { cloneElement, forwardRef, isValidElement, type MouseEvent } from 'react';\nimport cn from 'classnames';\n\nimport { Indicator } from '@alfalab/core-components-indicator';\nimport { Text } from '@alfalab/core-components-typography';\n\nimport { INDICATOR_BG_COLOR, INDICATOR_BORDER_COLOR } from '../../consts';\nimport { type PrivateTabProps, type TabProps } from '../../types';\n\nimport styles from './index.module.css';\n\nconst TabComponent = forwardRef(\n (\n {\n showIndicator,\n indicatorProps,\n label,\n icon,\n id,\n selected,\n onChange,\n onClick,\n tabClassNames = {},\n dataTestId,\n className,\n labelClassName,\n selectedClassName,\n iconClassName,\n href,\n Component = href ? 'a' : 'button',\n accentColor = 'primary',\n bgColor = 'modal-bg-primary',\n ...restProps\n }: PrivateTabProps & TabProps,\n ref,\n ) => {\n const handleClick = (event: MouseEvent) => {\n onChange?.(id);\n onClick?.(event);\n };\n\n const {\n className: commonClassName,\n labelClassName: commonLabelClassName,\n selectedClassName: commonSelectedClassName,\n iconClassName: commonIconClassName,\n } = tabClassNames;\n\n return (\n <Component\n data-test-id={dataTestId}\n tabIndex={0}\n {...(Component === 'button' ? { type: 'button' } : null)}\n {...restProps}\n href={href}\n id={id}\n ref={ref}\n className={cn(\n styles.component,\n commonClassName,\n className,\n selected && commonSelectedClassName,\n selected && selectedClassName,\n {\n [styles[accentColor]]: selected,\n },\n )}\n onClick={handleClick}\n >\n <div className={cn(styles.icon, commonIconClassName, iconClassName)}>\n {isValidElement(icon) ? cloneElement(icon, { selected }) : icon}\n </div>\n\n <Text\n weight='medium'\n view='secondary-small'\n className={cn(styles.label, commonLabelClassName, labelClassName, {\n [styles.labelSelected]: selected,\n })}\n >\n {isValidElement(label) ? cloneElement(label, { selected }) : label}\n </Text>\n\n {showIndicator && (\n <div className={styles.indicator}>\n <Indicator\n {...indicatorProps}\n height={indicatorProps?.value ? 16 : undefined}\n border={{\n width: 2,\n color: INDICATOR_BORDER_COLOR[bgColor],\n }}\n backgroundColor={INDICATOR_BG_COLOR[accentColor]}\n />\n </div>\n )}\n </Component>\n );\n },\n);\n\nexport const Tab = TabComponent as React.ForwardRefExoticComponent<\n TabProps & React.RefAttributes<HTMLElement>\n>;\n"],"names":[],"mappings":";;;;;;;AAWA,MAAM,YAAY,GAAG,UAAU,CAC3B,CACI,EACI,aAAa,EACb,cAAc,EACd,KAAK,EACL,IAAI,EACJ,EAAE,EACF,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,aAAa,GAAG,EAAE,EAClB,UAAU,EACV,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,IAAI,EACJ,SAAS,GAAG,IAAI,GAAG,GAAG,GAAG,QAAQ,EACjC,WAAW,GAAG,SAAS,EACvB,OAAO,GAAG,kBAAkB,EAC5B,GAAG,SAAS,EACa,EAC7B,GAAG,KACH;AACA,IAAA,MAAM,WAAW,GAAG,CAAC,KAAiB,KAAI;AACtC,QAAA,QAAQ,GAAG,EAAE,CAAC;AACd,QAAA,OAAO,GAAG,KAAK,CAAC;AACpB,KAAC;AAED,IAAA,MAAM,EACF,SAAS,EAAE,eAAe,EAC1B,cAAc,EAAE,oBAAoB,EACpC,iBAAiB,EAAE,uBAAuB,EAC1C,aAAa,EAAE,mBAAmB,GACrC,GAAG,aAAa;AAEjB,IAAA,QACI,KAAA,CAAA,aAAA,CAAC,SAAS,EAAA,EAAA,cAAA,EACQ,UAAU,EACxB,QAAQ,EAAE,CAAC,EAAA,IACN,SAAS,KAAK,QAAQ,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAA,GACpD,SAAS,EACb,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,EAAE,EACN,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACT,MAAM,CAAC,SAAS,EAChB,eAAe,EACf,SAAS,EACT,QAAQ,IAAI,uBAAuB,EACnC,QAAQ,IAAI,iBAAiB,EAC7B;AACI,YAAA,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,QAAQ;SAClC,CACJ,EACD,OAAO,EAAE,WAAW,EAAA;AAEpB,QAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,EAAE,aAAa,CAAC,EAAA,EAC9D,cAAc,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAC7D;QAEN,KAAC,CAAA,aAAA,CAAA,IAAI,IACD,MAAM,EAAC,QAAQ,EACf,IAAI,EAAC,iBAAiB,EACtB,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE;AAC9D,gBAAA,CAAC,MAAM,CAAC,aAAa,GAAG,QAAQ;aACnC,CAAC,EAAA,EAED,cAAc,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,KAAK,CAC/D;AAEN,QAAA,aAAa,KACV,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,SAAS,EAAA;AAC5B,YAAA,KAAA,CAAA,aAAA,CAAC,SAAS,EACF,EAAA,GAAA,cAAc,EAClB,MAAM,EAAE,cAAc,EAAE,KAAK,GAAG,EAAE,GAAG,SAAS,EAC9C,MAAM,EAAE;AACJ,oBAAA,KAAK,EAAE,CAAC;AACR,oBAAA,KAAK,EAAE,sBAAsB,CAAC,OAAO,CAAC;iBACzC,EACD,eAAe,EAAE,kBAAkB,CAAC,WAAW,CAAC,EAAA,CAClD,CACA,CACT,CACO;AAEpB,CAAC,CACJ;AAEM,MAAM,GAAG,GAAG;;;;"}
@@ -1,3 +1,5 @@
1
+
2
+
1
3
  .component {
2
4
  -webkit-tap-highlight-color: transparent;
3
5
  box-sizing: border-box;
@@ -6,7 +8,7 @@
6
8
  border: 0;
7
9
  margin: var(--gap-0);
8
10
  box-shadow: none;
9
- border-radius: 0;
11
+ border-radius: var(--border-radius-0);
10
12
  -webkit-user-select: none;
11
13
  -moz-user-select: none;
12
14
  user-select: none;
@@ -1,6 +1,7 @@
1
1
  :root {
2
2
  --sab: env(safe-area-inset-bottom, var(--gap-0));
3
3
  }
4
+
4
5
  .component {
5
6
  display: flex;
6
7
  justify-content: center;
@@ -8,19 +9,24 @@
8
9
  max-height: 64px;
9
10
  box-sizing: border-box;
10
11
  overflow: hidden;
11
- transition: box-shadow 0.2s ease
12
+ transition: box-shadow 0.2s ease;
12
13
  }
14
+
13
15
  .component.modal-bg-primary {
14
16
  background-color: var(--color-light-base-bg-primary);
15
17
  }
18
+
16
19
  .component.modal-bg-alt-primary {
17
20
  background-color: var(--color-light-base-bg-alt-primary);
18
21
  }
22
+
19
23
  @media (display-mode: standalone) {
24
+
20
25
  .component {
21
- padding-bottom: var(--sab)
26
+ padding-bottom: var(--sab);
22
27
  }
23
28
  }
29
+
24
30
  .border {
25
31
  box-shadow: 0 -1px 0 0 var(--color-light-neutral-translucent-300);
26
32
  }
@@ -1,5 +1,5 @@
1
- import type { AllHTMLAttributes, ElementType, ForwardRefExoticComponent, HTMLAttributes, ReactElement, ReactNode, RefAttributes } from 'react';
2
- import type { IndicatorProps } from '@alfalab/core-components-indicator/moderncssm';
1
+ import { type AllHTMLAttributes, type ElementType, type ForwardRefExoticComponent, type HTMLAttributes, type ReactElement, type ReactNode, type RefAttributes } from 'react';
2
+ import { type IndicatorProps } from '@alfalab/core-components-indicator/moderncssm';
3
3
  declare type TabElementType = ReactElement<TabProps, ForwardRefExoticComponent<TabProps & RefAttributes<HTMLElement>>>;
4
4
  export interface TabBarProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
5
5
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alfalab/core-components-tab-bar",
3
- "version": "3.0.1",
3
+ "version": "3.0.2",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "license": "MIT",
@@ -12,7 +12,7 @@
12
12
  "dependencies": {
13
13
  "@alfalab/core-components-indicator": "^3.0.0",
14
14
  "@alfalab/core-components-shared": "^1.1.0",
15
- "@alfalab/core-components-typography": "^5.0.1",
15
+ "@alfalab/core-components-typography": "^5.0.2",
16
16
  "classnames": "^2.5.1",
17
17
  "tslib": "^2.4.0"
18
18
  },
@@ -24,6 +24,6 @@
24
24
  "access": "public",
25
25
  "directory": "dist"
26
26
  },
27
- "themesVersion": "14.1.0",
27
+ "themesVersion": "14.1.2",
28
28
  "varsVersion": "10.1.0"
29
29
  }
package/src/Component.tsx CHANGED
@@ -4,7 +4,7 @@ import cn from 'classnames';
4
4
  import { getDataTestId } from '@alfalab/core-components-shared';
5
5
 
6
6
  import { Tab } from './components/tab';
7
- import { TabBarProps } from './types';
7
+ import { type TabBarProps } from './types';
8
8
 
9
9
  import styles from './index.module.css';
10
10
 
@@ -1,11 +1,11 @@
1
- import React, { cloneElement, forwardRef, isValidElement, MouseEvent } from 'react';
1
+ import React, { cloneElement, forwardRef, isValidElement, type MouseEvent } from 'react';
2
2
  import cn from 'classnames';
3
3
 
4
4
  import { Indicator } from '@alfalab/core-components-indicator';
5
5
  import { Text } from '@alfalab/core-components-typography';
6
6
 
7
7
  import { INDICATOR_BG_COLOR, INDICATOR_BORDER_COLOR } from '../../consts';
8
- import { PrivateTabProps, TabProps } from '../../types';
8
+ import { type PrivateTabProps, type TabProps } from '../../types';
9
9
 
10
10
  import styles from './index.module.css';
11
11
 
@@ -1,4 +1,4 @@
1
- @import '@alfalab/core-components-vars/src/index.css';
1
+ @import '@alfalab/core-components-vars/src/no-typography-index.css';
2
2
 
3
3
  .component {
4
4
  @mixin button-reset;
@@ -1,4 +1,4 @@
1
- @import '@alfalab/core-components-vars/src/index.css';
1
+ @import '@alfalab/core-components-vars/src/no-typography-index.css';
2
2
  @import '@alfalab/core-components-vars/src/safe-area.css';
3
3
 
4
4
  .component {
package/src/types.ts CHANGED
@@ -1,14 +1,14 @@
1
- import type {
2
- AllHTMLAttributes,
3
- ElementType,
4
- ForwardRefExoticComponent,
5
- HTMLAttributes,
6
- ReactElement,
7
- ReactNode,
8
- RefAttributes,
1
+ import {
2
+ type AllHTMLAttributes,
3
+ type ElementType,
4
+ type ForwardRefExoticComponent,
5
+ type HTMLAttributes,
6
+ type ReactElement,
7
+ type ReactNode,
8
+ type RefAttributes,
9
9
  } from 'react';
10
10
 
11
- import type { IndicatorProps } from '@alfalab/core-components-indicator';
11
+ import { type IndicatorProps } from '@alfalab/core-components-indicator';
12
12
 
13
13
  type TabElementType = ReactElement<
14
14
  TabProps,
package/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import type { AllHTMLAttributes, ElementType, ForwardRefExoticComponent, HTMLAttributes, ReactElement, ReactNode, RefAttributes } from 'react';
2
- import type { IndicatorProps } from '@alfalab/core-components-indicator';
1
+ import { type AllHTMLAttributes, type ElementType, type ForwardRefExoticComponent, type HTMLAttributes, type ReactElement, type ReactNode, type RefAttributes } from 'react';
2
+ import { type IndicatorProps } from '@alfalab/core-components-indicator';
3
3
  declare type TabElementType = ReactElement<TabProps, ForwardRefExoticComponent<TabProps & RefAttributes<HTMLElement>>>;
4
4
  export interface TabBarProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
5
5
  /**