├── .babelrc ├── .editorconfig ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.yml │ ├── config.yml │ └── feature_request.yml └── workflows │ ├── ci.yml │ ├── main-preview.yml │ ├── pr-preview-build.yml │ ├── pr-preview-deploy.yml │ ├── pr-title.yml │ ├── pr-visual-tests-report.yml │ ├── pr-visual-tests.yml │ ├── release.yml │ └── test-storybook.yml ├── .gitignore ├── .husky ├── commit-msg └── pre-commit ├── .npmrc ├── .nvmrc ├── .prettierignore ├── .prettierrc.js ├── .storybook ├── decorators │ ├── withLang.tsx │ ├── withMobile.tsx │ ├── withStrictMode.tsx │ └── withTheme.tsx ├── main.ts ├── manager.ts ├── preview-head.html ├── preview.tsx ├── test-runner.ts ├── theme-addon │ └── register.tsx └── theme.ts ├── .stylelintrc ├── CHANGELOG.md ├── CODEOWNERS ├── CONTRIBUTING.md ├── LICENSE ├── README-ru.md ├── README.md ├── build-utils └── sass-functions.js ├── commitlint.config.js ├── docs └── assets │ ├── book-open_dark.svg │ ├── book-open_light.svg │ ├── bucket-paint_dark.svg │ ├── bucket-paint_light.svg │ ├── figma_dark.svg │ ├── figma_light.svg │ ├── globe_dark.svg │ ├── globe_light.svg │ ├── storybook_dark.svg │ ├── storybook_light.svg │ ├── telegram_dark.svg │ ├── telegram_light.svg │ └── uikit_cover.png ├── eslint.config.mjs ├── gulpfile.js ├── jest.config.js ├── package-lock.json ├── package.json ├── playwright ├── README.md ├── core │ ├── expectScreenshotFixture.ts │ ├── index.ts │ ├── mountFixture.tsx │ └── types.ts ├── playwright.config.ts ├── playwright │ ├── index.html │ ├── index.scss │ └── index.tsx └── run-docker-command.sh ├── src ├── components │ ├── ActionTooltip │ │ ├── ActionTooltip.scss │ │ ├── ActionTooltip.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── ActionTooltip.visual.test.tsx-snapshots │ │ │ │ ├── ActionTooltip-smoke-default-light-chromium-linux.png │ │ │ │ ├── ActionTooltip-smoke-placement-auto-end-light-chromium-linux.png │ │ │ │ ├── ActionTooltip-smoke-placement-auto-light-chromium-linux.png │ │ │ │ ├── ActionTooltip-smoke-placement-auto-start-light-chromium-linux.png │ │ │ │ ├── ActionTooltip-smoke-placement-bottom-end-light-chromium-linux.png │ │ │ │ ├── ActionTooltip-smoke-placement-bottom-light-chromium-linux.png │ │ │ │ ├── ActionTooltip-smoke-placement-bottom-start-light-chromium-linux.png │ │ │ │ ├── ActionTooltip-smoke-placement-left-end-light-chromium-linux.png │ │ │ │ ├── ActionTooltip-smoke-placement-left-light-chromium-linux.png │ │ │ │ ├── ActionTooltip-smoke-placement-left-start-light-chromium-linux.png │ │ │ │ ├── ActionTooltip-smoke-placement-right-end-light-chromium-linux.png │ │ │ │ ├── ActionTooltip-smoke-placement-right-light-chromium-linux.png │ │ │ │ ├── ActionTooltip-smoke-placement-right-start-light-chromium-linux.png │ │ │ │ ├── ActionTooltip-smoke-placement-top-end-light-chromium-linux.png │ │ │ │ ├── ActionTooltip-smoke-placement-top-light-chromium-linux.png │ │ │ │ └── ActionTooltip-smoke-placement-top-start-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── ActionTooltip.stories.tsx │ │ │ └── Docs.mdx │ │ ├── __tests__ │ │ │ ├── ActionTooltip.test.tsx │ │ │ ├── ActionTooltip.visual.test.tsx │ │ │ └── cases.tsx │ │ └── index.ts │ ├── ActionsPanel │ │ ├── ActionsPanel.scss │ │ ├── ActionsPanel.tsx │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── ActionsPanel.visual.test.tsx-snapshots │ │ │ │ ├── ActionsPanel-smoke-group-light-chromium-linux.png │ │ │ │ ├── ActionsPanel-smoke-group-opened-light-chromium-linux.png │ │ │ │ ├── ActionsPanel-smoke-light-chromium-linux.png │ │ │ │ ├── ActionsPanel-smoke-with-note-light-chromium-linux.png │ │ │ │ ├── ActionsPanel-smoke-with-submenu-light-chromium-linux.png │ │ │ │ └── ActionsPanel-smoke-with-submenu-opened-submenu-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── ActionsPanel.stories.tsx │ │ │ ├── Docs.mdx │ │ │ └── actions.tsx │ │ ├── __tests__ │ │ │ ├── ActionsPanel.visual.test.tsx │ │ │ └── helpersPlaywright.tsx │ │ ├── components │ │ │ ├── CollapseActions.scss │ │ │ ├── CollapseActions.tsx │ │ │ └── hooks │ │ │ │ ├── index.ts │ │ │ │ ├── types.ts │ │ │ │ ├── useCollapseActions.ts │ │ │ │ ├── useDropdownActions.ts │ │ │ │ └── useObserveIntersection.ts │ │ ├── i18n │ │ │ ├── en.json │ │ │ ├── index.ts │ │ │ └── ru.json │ │ ├── index.ts │ │ └── types.ts │ ├── Alert │ │ ├── Alert.scss │ │ ├── Alert.test.tsx │ │ ├── Alert.tsx │ │ ├── AlertAction.tsx │ │ ├── AlertActions.tsx │ │ ├── AlertContext.tsx │ │ ├── AlertContextProvider.tsx │ │ ├── AlertIcon.tsx │ │ ├── AlertTitle.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── Alert.visual.test.tsx-snapshots │ │ │ │ ├── Alert-render-story-Actions-dark-chromium-linux.png │ │ │ │ ├── Alert-render-story-Actions-light-chromium-linux.png │ │ │ │ ├── Alert-render-story-Align-dark-chromium-linux.png │ │ │ │ ├── Alert-render-story-Align-light-chromium-linux.png │ │ │ │ ├── Alert-render-story-Corners-dark-chromium-linux.png │ │ │ │ ├── Alert-render-story-Corners-light-chromium-linux.png │ │ │ │ ├── Alert-render-story-CustomIcon-dark-chromium-linux.png │ │ │ │ ├── Alert-render-story-CustomIcon-light-chromium-linux.png │ │ │ │ ├── Alert-render-story-Default-dark-chromium-linux.png │ │ │ │ ├── Alert-render-story-Default-light-chromium-linux.png │ │ │ │ ├── Alert-render-story-Layout-dark-chromium-linux.png │ │ │ │ ├── Alert-render-story-Layout-light-chromium-linux.png │ │ │ │ ├── Alert-render-story-Theme-dark-chromium-linux.png │ │ │ │ ├── Alert-render-story-Theme-light-chromium-linux.png │ │ │ │ ├── Alert-render-story-View-dark-chromium-linux.png │ │ │ │ ├── Alert-render-story-View-light-chromium-linux.png │ │ │ │ └── Alert-smoke-smoke-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Alert.stories.tsx │ │ │ └── Docs.mdx │ │ ├── __tests__ │ │ │ ├── Alert.visual.test.tsx │ │ │ ├── cases.tsx │ │ │ └── helpersPlaywright.tsx │ │ ├── constants.ts │ │ ├── i18n │ │ │ ├── en.json │ │ │ ├── index.ts │ │ │ └── ru.json │ │ ├── index.ts │ │ ├── types.ts │ │ └── useAlertContext.tsx │ ├── ArrowToggle │ │ ├── ArrowToggle.scss │ │ ├── ArrowToggle.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── ArrowToggle.visual.test.tsx-snapshots │ │ │ │ └── ArrowToggle-smoke-smoke-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── ArrowToggle.new.stories.tsx │ │ │ ├── ArrowToggle.stories.tsx │ │ │ ├── Docs.mdx │ │ │ └── examples │ │ │ │ └── ArrowToggleView.tsx │ │ ├── __tests__ │ │ │ ├── ArrowToggle.visual.test.tsx │ │ │ └── cases.tsx │ │ └── index.ts │ ├── Avatar │ │ ├── Avatar.scss │ │ ├── Avatar.tsx │ │ ├── AvatarIcon │ │ │ ├── AvatarIcon.tsx │ │ │ ├── index.ts │ │ │ └── types.ts │ │ ├── AvatarImage │ │ │ ├── AvatarImage.tsx │ │ │ ├── index.ts │ │ │ └── types.ts │ │ ├── AvatarText │ │ │ ├── AvatarText.tsx │ │ │ ├── index.ts │ │ │ ├── types.ts │ │ │ └── utils.ts │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── Avatar.visual.test.tsx-snapshots │ │ │ │ ├── Avatar-render-story-Icon-dark-chromium-linux.png │ │ │ │ ├── Avatar-render-story-Icon-light-chromium-linux.png │ │ │ │ ├── Avatar-render-story-Image-dark-chromium-linux.png │ │ │ │ ├── Avatar-render-story-Image-light-chromium-linux.png │ │ │ │ ├── Avatar-render-story-ImageFallback-dark-chromium-linux.png │ │ │ │ ├── Avatar-render-story-ImageFallback-light-chromium-linux.png │ │ │ │ ├── Avatar-render-story-Showcase-dark-chromium-linux.png │ │ │ │ ├── Avatar-render-story-Showcase-light-chromium-linux.png │ │ │ │ ├── Avatar-render-story-Text-dark-chromium-linux.png │ │ │ │ ├── Avatar-render-story-Text-light-chromium-linux.png │ │ │ │ ├── Avatar-render-story-TextInitials-dark-chromium-linux.png │ │ │ │ ├── Avatar-render-story-TextInitials-light-chromium-linux.png │ │ │ │ ├── Avatar-render-story-WithBorder-dark-chromium-linux.png │ │ │ │ ├── Avatar-render-story-WithBorder-light-chromium-linux.png │ │ │ │ ├── Avatar-should-render-default-border-for-the-image-if-withImageBorder-true-dark-chromium-linux.png │ │ │ │ ├── Avatar-should-render-default-border-for-the-image-if-withImageBorder-true-light-chromium-linux.png │ │ │ │ ├── Avatar-smoke-with-icon-light-chromium-linux.png │ │ │ │ ├── Avatar-smoke-with-image-light-chromium-linux.png │ │ │ │ └── Avatar-smoke-with-text-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Avatar.stories.tsx │ │ │ ├── Docs.mdx │ │ │ └── utils │ │ │ │ ├── getAvatarSrcSet.ts │ │ │ │ ├── getClosestNumber.ts │ │ │ │ ├── getSrcSet.ts │ │ │ │ └── types.ts │ │ ├── __tests__ │ │ │ ├── Avatar.test.tsx │ │ │ ├── Avatar.visual.test.tsx │ │ │ ├── cases.tsx │ │ │ ├── helpersPlaywright.tsx │ │ │ └── stories.ts │ │ ├── _variables.scss │ │ ├── constants.ts │ │ ├── index.ts │ │ └── types │ │ │ ├── common.ts │ │ │ └── main.ts │ ├── AvatarStack │ │ ├── AvatarStack.scss │ │ ├── AvatarStack.tsx │ │ ├── AvatarStackItem.tsx │ │ ├── AvatarStackMore.tsx │ │ ├── AvatarStackMoreButton.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── AvatarStack.visual.test.tsx-snapshots │ │ │ │ ├── AvatarStack-render-story-MoreButton-dark-chromium-linux.png │ │ │ │ ├── AvatarStack-render-story-MoreButton-dark-webkit-linux.png │ │ │ │ ├── AvatarStack-render-story-MoreButton-light-chromium-linux.png │ │ │ │ ├── AvatarStack-render-story-MoreButton-light-webkit-linux.png │ │ │ │ ├── AvatarStack-render-story-MoreButtonOmit-dark-chromium-linux.png │ │ │ │ ├── AvatarStack-render-story-MoreButtonOmit-dark-webkit-linux.png │ │ │ │ ├── AvatarStack-render-story-MoreButtonOmit-light-chromium-linux.png │ │ │ │ ├── AvatarStack-render-story-MoreButtonOmit-light-webkit-linux.png │ │ │ │ ├── AvatarStack-render-story-SingleItem-dark-chromium-linux.png │ │ │ │ ├── AvatarStack-render-story-SingleItem-dark-webkit-linux.png │ │ │ │ ├── AvatarStack-render-story-SingleItem-light-chromium-linux.png │ │ │ │ ├── AvatarStack-render-story-SingleItem-light-webkit-linux.png │ │ │ │ ├── AvatarStack-render-story-Total-dark-chromium-linux.png │ │ │ │ ├── AvatarStack-render-story-Total-dark-webkit-linux.png │ │ │ │ ├── AvatarStack-render-story-Total-light-chromium-linux.png │ │ │ │ ├── AvatarStack-render-story-Total-light-webkit-linux.png │ │ │ │ ├── AvatarStack-smoke-light-chromium-linux.png │ │ │ │ └── AvatarStack-smoke-with-custom-more-light-chromium-linux.png │ │ ├── __stories__ │ │ │ └── AvatarStack.stories.tsx │ │ ├── __tests__ │ │ │ ├── AvatarStack.visual.test.tsx │ │ │ ├── cases.ts │ │ │ ├── helpersPlaywright.tsx │ │ │ └── stories.ts │ │ ├── constants.ts │ │ ├── i18n │ │ │ ├── en.json │ │ │ ├── index.ts │ │ │ └── ru.json │ │ ├── index.ts │ │ └── types.ts │ ├── Breadcrumbs │ │ ├── Breadcrumbs.scss │ │ ├── Breadcrumbs.tsx │ │ ├── BreadcrumbsDropdownMenu.tsx │ │ ├── BreadcrumbsItem.tsx │ │ ├── BreadcrumbsSeparator.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── Breadcrumbs.visual.test.tsx-snapshots │ │ │ │ ├── Breadcrumbs-smoke-with-custom-icons-default-light-chromium-linux.png │ │ │ │ ├── Breadcrumbs-smoke-with-custom-icons-disabled-true-light-chromium-linux.png │ │ │ │ ├── Breadcrumbs-smoke-with-custom-separator-default-light-chromium-linux.png │ │ │ │ ├── Breadcrumbs-smoke-with-custom-separator-disabled-true-light-chromium-linux.png │ │ │ │ ├── Breadcrumbs-smoke-with-link-items-default-light-chromium-linux.png │ │ │ │ ├── Breadcrumbs-smoke-with-link-items-disabled-true-light-chromium-linux.png │ │ │ │ ├── Breadcrumbs-smoke-with-text-items-default-light-chromium-linux.png │ │ │ │ ├── Breadcrumbs-smoke-with-text-items-popupPlacement-auto-end-light-chromium-linux.png │ │ │ │ ├── Breadcrumbs-smoke-with-text-items-popupPlacement-auto-light-chromium-linux.png │ │ │ │ ├── Breadcrumbs-smoke-with-text-items-popupPlacement-auto-start-light-chromium-linux.png │ │ │ │ ├── Breadcrumbs-smoke-with-text-items-popupPlacement-bottom-end-light-chromium-linux.png │ │ │ │ ├── Breadcrumbs-smoke-with-text-items-popupPlacement-bottom-light-chromium-linux.png │ │ │ │ ├── Breadcrumbs-smoke-with-text-items-popupPlacement-bottom-start-light-chromium-linux.png │ │ │ │ ├── Breadcrumbs-smoke-with-text-items-popupPlacement-left-end-light-chromium-linux.png │ │ │ │ ├── Breadcrumbs-smoke-with-text-items-popupPlacement-left-light-chromium-linux.png │ │ │ │ ├── Breadcrumbs-smoke-with-text-items-popupPlacement-left-start-light-chromium-linux.png │ │ │ │ ├── Breadcrumbs-smoke-with-text-items-popupPlacement-right-end-light-chromium-linux.png │ │ │ │ ├── Breadcrumbs-smoke-with-text-items-popupPlacement-right-light-chromium-linux.png │ │ │ │ ├── Breadcrumbs-smoke-with-text-items-popupPlacement-right-start-light-chromium-linux.png │ │ │ │ ├── Breadcrumbs-smoke-with-text-items-popupPlacement-top-end-light-chromium-linux.png │ │ │ │ ├── Breadcrumbs-smoke-with-text-items-popupPlacement-top-light-chromium-linux.png │ │ │ │ └── Breadcrumbs-smoke-with-text-items-popupPlacement-top-start-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Breadcrumbs.stories.tsx │ │ │ └── Docs.mdx │ │ ├── __tests__ │ │ │ ├── Breadcrumbs.test.tsx │ │ │ ├── Breadcrumbs.visual.test.tsx │ │ │ ├── cases.ts │ │ │ └── helpersPlaywright.tsx │ │ ├── i18n │ │ │ ├── en.json │ │ │ ├── index.ts │ │ │ └── ru.json │ │ ├── index.ts │ │ └── utils.ts │ ├── Button │ │ ├── Button.scss │ │ ├── Button.tsx │ │ ├── ButtonIcon.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── Button.visual.test.tsx-snapshots │ │ │ │ ├── Button-render-custom-Icon-size-dark-chromium-linux.png │ │ │ │ ├── Button-render-custom-Icon-size-light-chromium-linux.png │ │ │ │ ├── Button-render-story-Default-dark-chromium-linux.png │ │ │ │ ├── Button-render-story-Default-light-chromium-linux.png │ │ │ │ ├── Button-render-story-Disabled-dark-chromium-linux.png │ │ │ │ ├── Button-render-story-Disabled-light-chromium-linux.png │ │ │ │ ├── Button-render-story-Icon-dark-chromium-linux.png │ │ │ │ ├── Button-render-story-Icon-light-chromium-linux.png │ │ │ │ ├── Button-render-story-InsideText-dark-chromium-linux.png │ │ │ │ ├── Button-render-story-InsideText-light-chromium-linux.png │ │ │ │ ├── Button-render-story-Link-dark-chromium-linux.png │ │ │ │ ├── Button-render-story-Link-light-chromium-linux.png │ │ │ │ ├── Button-render-story-Loading-dark-chromium-linux.png │ │ │ │ ├── Button-render-story-Loading-light-chromium-linux.png │ │ │ │ ├── Button-render-story-Pin-dark-chromium-linux.png │ │ │ │ ├── Button-render-story-Pin-light-chromium-linux.png │ │ │ │ ├── Button-render-story-Selected-dark-chromium-linux.png │ │ │ │ ├── Button-render-story-Selected-light-chromium-linux.png │ │ │ │ ├── Button-render-story-Size-dark-chromium-linux.png │ │ │ │ ├── Button-render-story-Size-light-chromium-linux.png │ │ │ │ ├── Button-render-story-View-dark-chromium-linux.png │ │ │ │ ├── Button-render-story-View-light-chromium-linux.png │ │ │ │ ├── Button-render-story-Width-dark-chromium-linux.png │ │ │ │ ├── Button-render-story-Width-light-chromium-linux.png │ │ │ │ ├── Button-smoke-dark-chromium-linux.png │ │ │ │ ├── Button-smoke-default-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-light-chromium-linux.png │ │ │ │ ├── Button-smoke-pin-brick-brick-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-pin-brick-circle-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-pin-brick-clear-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-pin-brick-round-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-pin-circle-brick-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-pin-circle-circle-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-pin-circle-clear-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-pin-clear-brick-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-pin-clear-circle-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-pin-clear-clear-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-pin-clear-round-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-pin-round-brick-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-pin-round-clear-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-pin-round-round-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-view-action-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-view-flat-action-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-view-flat-contrast-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-view-flat-danger-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-view-flat-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-view-flat-info-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-view-flat-secondary-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-view-flat-success-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-view-flat-utility-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-view-flat-warning-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-view-normal-contrast-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-view-normal-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-view-outlined-action-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-view-outlined-contrast-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-view-outlined-danger-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-view-outlined-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-view-outlined-info-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-view-outlined-success-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-view-outlined-utility-hovered-light-chromium-linux.png │ │ │ │ ├── Button-smoke-view-outlined-warning-hovered-light-chromium-linux.png │ │ │ │ └── Button-smoke-view-raised-hovered-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Button.stories.tsx │ │ │ ├── ButtonViewShowcase.scss │ │ │ ├── ButtonViewShowcase.tsx │ │ │ └── Docs.mdx │ │ ├── __tests__ │ │ │ ├── Button.test.tsx │ │ │ ├── Button.visual.test.tsx │ │ │ ├── cases.ts │ │ │ └── helpersPlaywright.tsx │ │ ├── constants.ts │ │ └── index.ts │ ├── Card │ │ ├── Card.scss │ │ ├── Card.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── Card.visual.test.tsx-snapshots │ │ │ │ ├── Card-render-story-ActionType-dark-chromium-linux.png │ │ │ │ ├── Card-render-story-ActionType-light-chromium-linux.png │ │ │ │ ├── Card-render-story-Custom-dark-chromium-linux.png │ │ │ │ ├── Card-render-story-Custom-light-chromium-linux.png │ │ │ │ ├── Card-render-story-Default-dark-chromium-linux.png │ │ │ │ ├── Card-render-story-Default-light-chromium-linux.png │ │ │ │ ├── Card-render-story-SelectionType-dark-chromium-linux.png │ │ │ │ ├── Card-render-story-SelectionType-light-chromium-linux.png │ │ │ │ ├── Card-render-story-Size-dark-chromium-linux.png │ │ │ │ ├── Card-render-story-Size-light-chromium-linux.png │ │ │ │ ├── Card-render-story-Theme-dark-chromium-linux.png │ │ │ │ ├── Card-render-story-Theme-light-chromium-linux.png │ │ │ │ ├── Card-render-story-View-dark-chromium-linux.png │ │ │ │ ├── Card-render-story-View-light-chromium-linux.png │ │ │ │ ├── Card-smoke-smoke-action-type-light-chromium-linux.png │ │ │ │ ├── Card-smoke-smoke-container-type-light-chromium-linux.png │ │ │ │ └── Card-smoke-smoke-selection-type-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Card.stories.tsx │ │ │ └── Docs.mdx │ │ ├── __tests__ │ │ │ ├── Card.test.tsx │ │ │ ├── Card.visual.test.tsx │ │ │ ├── cases.tsx │ │ │ └── helpersPlaywright.tsx │ │ └── index.ts │ ├── Checkbox │ │ ├── Checkbox.scss │ │ ├── Checkbox.tsx │ │ ├── CheckboxDashIcon.tsx │ │ ├── CheckboxTickIcon.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── Checkbox.visual.test.tsx-snapshots │ │ │ │ ├── Checkbox-smoke-dark-chromium-linux.png │ │ │ │ └── Checkbox-smoke-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Checkbox.stories.tsx │ │ │ ├── CheckboxShowcase.tsx │ │ │ └── Docs.mdx │ │ ├── __tests__ │ │ │ ├── Checkbox.test.tsx │ │ │ ├── Checkbox.visual.test.tsx │ │ │ └── cases.tsx │ │ └── index.ts │ ├── ClipboardButton │ │ ├── ClipboardButton.scss │ │ ├── ClipboardButton.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── ClipboardButton.visual.test.tsx-snapshots │ │ │ │ ├── ClipboardButton-smoke-with-function-text-after-copy-light-chromium-linux.png │ │ │ │ ├── ClipboardButton-smoke-with-function-text-after-hover-light-chromium-linux.png │ │ │ │ ├── ClipboardButton-smoke-with-function-text-light-chromium-linux.png │ │ │ │ ├── ClipboardButton-smoke-with-string-text-after-copy-light-chromium-linux.png │ │ │ │ ├── ClipboardButton-smoke-with-string-text-after-hover-light-chromium-linux.png │ │ │ │ └── ClipboardButton-smoke-with-string-text-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── ClipboardButton.stories.tsx │ │ │ └── Docs.mdx │ │ ├── __tests__ │ │ │ ├── ClipboardButton.test.tsx │ │ │ └── ClipboardButton.visual.test.tsx │ │ ├── i18n │ │ │ ├── en.json │ │ │ ├── index.ts │ │ │ └── ru.json │ │ └── index.ts │ ├── ClipboardIcon │ │ ├── ClipboardIcon.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── ClipboardIcon.visual.test.tsx-snapshots │ │ │ │ └── ClipboardIcon-smoke-smoke-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── ClipboardIcon.stories.scss │ │ │ ├── ClipboardIcon.stories.tsx │ │ │ └── Docs.mdx │ │ ├── __tests__ │ │ │ ├── ClipboardIcon.visual.test.tsx │ │ │ └── cases.tsx │ │ └── index.ts │ ├── ControlLabel │ │ ├── ControlLabel.scss │ │ ├── ControlLabel.tsx │ │ ├── index.ts │ │ └── types.ts │ ├── CopyToClipboard │ │ ├── CopyToClipboard.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __tests__ │ │ │ └── CopyToClipboard.test.tsx │ │ ├── copyText.ts │ │ ├── index.ts │ │ └── types.ts │ ├── DefinitionList │ │ ├── DefinitionList.scss │ │ ├── DefinitionList.tsx │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── DefinitionList.visual.test.tsx-snapshots │ │ │ │ ├── DefinitionList-render-story-Default-dark-chromium-linux.png │ │ │ │ ├── DefinitionList-render-story-Default-light-chromium-linux.png │ │ │ │ ├── DefinitionList-smoke-default-light-chromium-linux.png │ │ │ │ ├── DefinitionList-smoke-direction-horizontal-light-chromium-linux.png │ │ │ │ ├── DefinitionList-smoke-direction-vertical-light-chromium-linux.png │ │ │ │ ├── DefinitionList-smoke-responsive-contentMaxWidth-100-light-chromium-linux.png │ │ │ │ ├── DefinitionList-smoke-responsive-default-light-chromium-linux.png │ │ │ │ └── DefinitionList-smoke-responsive-nameMaxWidth-100-light-chromium-linux.png │ │ ├── __stories__ │ │ │ └── DefinitionList.stories.tsx │ │ ├── __tests__ │ │ │ ├── DefinitionList.test.tsx │ │ │ ├── DefinitionList.visual.test.tsx │ │ │ └── stories.ts │ │ ├── components │ │ │ ├── DefinitionContent.tsx │ │ │ ├── DefinitionListContext.tsx │ │ │ ├── DefinitionListItem.tsx │ │ │ └── TermContent.tsx │ │ ├── constants.ts │ │ ├── i18n │ │ │ ├── en.json │ │ │ ├── index.ts │ │ │ └── ru.json │ │ ├── index.ts │ │ ├── types.ts │ │ └── utils.ts │ ├── Dialog │ │ ├── ButtonClose │ │ │ ├── ButtonClose.scss │ │ │ └── ButtonClose.tsx │ │ ├── Dialog.scss │ │ ├── Dialog.tsx │ │ ├── DialogBody │ │ │ ├── DialogBody.scss │ │ │ └── DialogBody.tsx │ │ ├── DialogDivider │ │ │ ├── DialogDivider.scss │ │ │ └── DialogDivider.tsx │ │ ├── DialogFooter │ │ │ ├── DialogFooter.scss │ │ │ └── DialogFooter.tsx │ │ ├── DialogHeader │ │ │ ├── DialogHeader.scss │ │ │ └── DialogHeader.tsx │ │ ├── DialogPrivateContext.ts │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── Dialog.visual.test.tsx-snapshots │ │ │ │ ├── Dialog-smoke-bodyContent-long-light-chromium-linux.png │ │ │ │ ├── Dialog-smoke-bodyHasBorder-true-light-chromium-linux.png │ │ │ │ ├── Dialog-smoke-default-light-chromium-linux.png │ │ │ │ ├── Dialog-smoke-footerLoading-true-light-chromium-linux.png │ │ │ │ ├── Dialog-smoke-footerPreset-danger-light-chromium-linux.png │ │ │ │ ├── Dialog-smoke-footerPreset-default-light-chromium-linux.png │ │ │ │ ├── Dialog-smoke-footerPreset-success-light-chromium-linux.png │ │ │ │ ├── Dialog-smoke-footerShowError-true-light-chromium-linux.png │ │ │ │ ├── Dialog-smoke-footerTextButtonApply-Custom-button-apply-light-chromium-linux.png │ │ │ │ ├── Dialog-smoke-footerTextButtonCancel-Custom-button-cancel-light-chromium-linux.png │ │ │ │ ├── Dialog-smoke-headerCaption-long-light-chromium-linux.png │ │ │ │ ├── Dialog-smoke-headerInsertAfter-true-light-chromium-linux.png │ │ │ │ ├── Dialog-smoke-headerInsertBefore-true-light-chromium-linux.png │ │ │ │ ├── Dialog-smoke-size-l-light-chromium-linux.png │ │ │ │ ├── Dialog-smoke-size-m-light-chromium-linux.png │ │ │ │ └── Dialog-smoke-size-s-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Dialog.stories.tsx │ │ │ ├── DialogShowcase.tsx │ │ │ └── Docs.mdx │ │ ├── __tests__ │ │ │ ├── Dialog.test.tsx │ │ │ ├── Dialog.visual.test.tsx │ │ │ └── cases.tsx │ │ ├── i18n │ │ │ ├── en.json │ │ │ ├── index.ts │ │ │ └── ru.json │ │ └── index.ts │ ├── Disclosure │ │ ├── Disclosure.scss │ │ ├── Disclosure.tsx │ │ ├── DisclosureContext.tsx │ │ ├── DisclosureDetails │ │ │ └── DisclosureDetails.tsx │ │ ├── DisclosureSummary │ │ │ └── DisclosureSummary.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── Disclosure.visual.test.tsx-snapshots │ │ │ │ ├── Disclosure-smoke-smoke-collapsed-light-chromium-linux.png │ │ │ │ └── Disclosure-smoke-smoke-expanded-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Disclosure.stories.scss │ │ │ ├── Disclosure.stories.tsx │ │ │ └── Docs.mdx │ │ ├── __tests__ │ │ │ ├── Disclosure.test.tsx │ │ │ ├── Disclosure.visual.test.tsx │ │ │ └── cases.tsx │ │ ├── constants.ts │ │ └── index.ts │ ├── Divider │ │ ├── Divider.scss │ │ ├── Divider.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── Divider.visual.test.tsx-snapshots │ │ │ │ └── Divider-smoke-smoke-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Divider.stories.tsx │ │ │ └── Docs.mdx │ │ ├── __tests__ │ │ │ ├── Divider.test.tsx │ │ │ ├── Divider.visual.test.tsx │ │ │ ├── cases.tsx │ │ │ └── helpers.tsx │ │ └── index.ts │ ├── DropdownMenu │ │ ├── DropdownMenu.classname.ts │ │ ├── DropdownMenu.scss │ │ ├── DropdownMenu.test.tsx │ │ ├── DropdownMenu.tsx │ │ ├── DropdownMenuContext.ts │ │ ├── DropdownMenuItem.tsx │ │ ├── DropdownMenuNavigationContext.tsx │ │ ├── DropdownMenuPopup.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── DropdownMenu.visual.test.tsx-snapshots │ │ │ │ ├── DropdownMenu-subitems-inherit-parents-size-smoke-default-light-chromium-linux.png │ │ │ │ ├── DropdownMenu-subitems-inherit-parents-size-smoke-size-l-light-chromium-linux.png │ │ │ │ ├── DropdownMenu-subitems-inherit-parents-size-smoke-size-m-light-chromium-linux.png │ │ │ │ ├── DropdownMenu-subitems-inherit-parents-size-smoke-size-s-light-chromium-linux.png │ │ │ │ └── DropdownMenu-subitems-inherit-parents-size-smoke-size-xl-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ ├── DropdownMenu.stories.scss │ │ │ ├── DropdownMenu.stories.tsx │ │ │ └── options.tsx │ │ ├── __tests__ │ │ │ ├── DropdownMenu.visual.test.tsx │ │ │ └── cases.ts │ │ ├── constants.ts │ │ ├── hooks │ │ │ ├── usePopupVisibility.ts │ │ │ ├── useScrollHandler.ts │ │ │ └── useSubmenu.ts │ │ ├── index.ts │ │ ├── types.ts │ │ └── utils │ │ │ ├── isMenuActive.ts │ │ │ ├── isSeparator.ts │ │ │ ├── isSubmenuOpen.ts │ │ │ ├── shouldSkipItemNavigation.ts │ │ │ ├── stringifyNavigationPath.ts │ │ │ └── toItemList.ts │ ├── FilePreview │ │ ├── FilePreview.scss │ │ ├── FilePreview.tsx │ │ ├── FilePreviewActions │ │ │ ├── DesktopActionsMenu │ │ │ │ ├── DesktopActionsMenu.scss │ │ │ │ └── DesktopActionsMenu.tsx │ │ │ ├── FilePreviewActions.tsx │ │ │ └── MobileActionsMenu │ │ │ │ ├── MobileActionsMenu.scss │ │ │ │ └── MobileActionsMenu.tsx │ │ ├── README.md │ │ ├── __stories__ │ │ │ ├── CompactFilePreviewWithActionsShowcase │ │ │ │ ├── CompactActionsMenu │ │ │ │ │ ├── CompactActionsMenu.scss │ │ │ │ │ └── CompactActionsMenu.tsx │ │ │ │ ├── CompactFilePreviewWithActionsShowcase.scss │ │ │ │ └── CompactFilePreviewWithActionsShowcase.tsx │ │ │ ├── Docs.mdx │ │ │ └── FilePreview.stories.tsx │ │ ├── __tests__ │ │ │ └── FilePreview.test.tsx │ │ ├── i18n │ │ │ ├── en.json │ │ │ ├── index.ts │ │ │ └── ru.json │ │ ├── index.ts │ │ ├── types.ts │ │ ├── utils.ts │ │ └── variables.scss │ ├── HelpMark │ │ ├── HelpMark.scss │ │ ├── HelpMark.tsx │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── HelpMark.visual.test.tsx-snapshots │ │ │ │ ├── HelpMark-render-story-Default-dark-chromium-linux.png │ │ │ │ ├── HelpMark-render-story-Default-light-chromium-linux.png │ │ │ │ ├── HelpMark-smoke-default-light-chromium-linux.png │ │ │ │ ├── HelpMark-smoke-placement-auto-end-light-chromium-linux.png │ │ │ │ ├── HelpMark-smoke-placement-auto-light-chromium-linux.png │ │ │ │ ├── HelpMark-smoke-placement-auto-start-light-chromium-linux.png │ │ │ │ ├── HelpMark-smoke-placement-bottom-end-light-chromium-linux.png │ │ │ │ ├── HelpMark-smoke-placement-bottom-light-chromium-linux.png │ │ │ │ ├── HelpMark-smoke-placement-bottom-start-light-chromium-linux.png │ │ │ │ ├── HelpMark-smoke-placement-left-end-light-chromium-linux.png │ │ │ │ ├── HelpMark-smoke-placement-left-light-chromium-linux.png │ │ │ │ ├── HelpMark-smoke-placement-left-start-light-chromium-linux.png │ │ │ │ ├── HelpMark-smoke-placement-right-end-light-chromium-linux.png │ │ │ │ ├── HelpMark-smoke-placement-right-light-chromium-linux.png │ │ │ │ ├── HelpMark-smoke-placement-right-start-light-chromium-linux.png │ │ │ │ ├── HelpMark-smoke-placement-top-end-light-chromium-linux.png │ │ │ │ ├── HelpMark-smoke-placement-top-light-chromium-linux.png │ │ │ │ └── HelpMark-smoke-placement-top-start-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── HelpMark.stories.tsx │ │ │ └── Showcase.mdx │ │ ├── __tests__ │ │ │ ├── HelpMark.test.tsx │ │ │ ├── HelpMark.visual.test.tsx │ │ │ ├── cases.ts │ │ │ └── stories.ts │ │ ├── constants.ts │ │ └── index.ts │ ├── Hotkey │ │ ├── Hotkey.scss │ │ ├── Hotkey.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── Hotkey.visual.test.tsx-snapshots │ │ │ │ ├── Hotkey-smoke-smoke-dark-view-dark-chromium-linux.png │ │ │ │ └── Hotkey-smoke-smoke-light-view-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ ├── Hotkey.stories.tsx │ │ │ └── README.md │ │ ├── __tests__ │ │ │ ├── Hotkey.visual.test.tsx │ │ │ ├── cases.tsx │ │ │ └── parse.test.ts │ │ ├── definitions.ts │ │ ├── index.ts │ │ ├── parse.ts │ │ ├── types.ts │ │ └── utils.ts │ ├── Icon │ │ ├── Icon.scss │ │ ├── Icon.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── Icon.visual.test.tsx-snapshots │ │ │ │ └── Icon-smoke-smoke-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ └── Icon.stories.tsx │ │ ├── __tests__ │ │ │ ├── Icon.visual.test.tsx │ │ │ ├── cases.tsx │ │ │ ├── helpersPlaywright.tsx │ │ │ └── utils.test.ts │ │ ├── index.ts │ │ ├── types.ts │ │ └── utils.ts │ ├── Label │ │ ├── Label.scss │ │ ├── Label.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── Label.visual.test.tsx-snapshots │ │ │ │ ├── Label-render-story-Close-dark-chromium-linux.png │ │ │ │ ├── Label-render-story-Close-dark-webkit-linux.png │ │ │ │ ├── Label-render-story-Close-light-chromium-linux.png │ │ │ │ ├── Label-render-story-Close-light-webkit-linux.png │ │ │ │ ├── Label-render-story-Copy-dark-chromium-linux.png │ │ │ │ ├── Label-render-story-Copy-dark-webkit-linux.png │ │ │ │ ├── Label-render-story-Copy-light-chromium-linux.png │ │ │ │ ├── Label-render-story-Copy-light-webkit-linux.png │ │ │ │ ├── Label-render-story-Default-dark-chromium-linux.png │ │ │ │ ├── Label-render-story-Default-dark-webkit-linux.png │ │ │ │ ├── Label-render-story-Default-light-chromium-linux.png │ │ │ │ ├── Label-render-story-Default-light-webkit-linux.png │ │ │ │ ├── Label-render-story-Icon-dark-chromium-linux.png │ │ │ │ ├── Label-render-story-Icon-dark-webkit-linux.png │ │ │ │ ├── Label-render-story-Icon-light-chromium-linux.png │ │ │ │ ├── Label-render-story-Icon-light-webkit-linux.png │ │ │ │ ├── Label-render-story-Interactive-dark-chromium-linux.png │ │ │ │ ├── Label-render-story-Interactive-dark-webkit-linux.png │ │ │ │ ├── Label-render-story-Interactive-light-chromium-linux.png │ │ │ │ ├── Label-render-story-Interactive-light-webkit-linux.png │ │ │ │ ├── Label-render-story-LinkWrapper-dark-chromium-linux.png │ │ │ │ ├── Label-render-story-LinkWrapper-dark-webkit-linux.png │ │ │ │ ├── Label-render-story-LinkWrapper-light-chromium-linux.png │ │ │ │ ├── Label-render-story-LinkWrapper-light-webkit-linux.png │ │ │ │ ├── Label-render-story-Size-dark-chromium-linux.png │ │ │ │ ├── Label-render-story-Size-dark-webkit-linux.png │ │ │ │ ├── Label-render-story-Size-light-chromium-linux.png │ │ │ │ ├── Label-render-story-Size-light-webkit-linux.png │ │ │ │ ├── Label-render-story-Theme-dark-chromium-linux.png │ │ │ │ ├── Label-render-story-Theme-dark-webkit-linux.png │ │ │ │ ├── Label-render-story-Theme-light-chromium-linux.png │ │ │ │ ├── Label-render-story-Theme-light-webkit-linux.png │ │ │ │ ├── Label-render-story-Value-dark-chromium-linux.png │ │ │ │ ├── Label-render-story-Value-dark-webkit-linux.png │ │ │ │ ├── Label-render-story-Value-light-chromium-linux.png │ │ │ │ ├── Label-render-story-Value-light-webkit-linux.png │ │ │ │ ├── Label-smoke-dark-chromium-linux.png │ │ │ │ ├── Label-smoke-light-chromium-linux.png │ │ │ │ ├── Label-smoke-with-close-dark-chromium-linux.png │ │ │ │ ├── Label-smoke-with-close-light-chromium-linux.png │ │ │ │ ├── Label-smoke-with-copy-dark-chromium-linux.png │ │ │ │ ├── Label-smoke-with-copy-light-chromium-linux.png │ │ │ │ ├── Label-smoke-with-custom-icon-dark-chromium-linux.png │ │ │ │ ├── Label-smoke-with-custom-icon-light-chromium-linux.png │ │ │ │ ├── Label-smoke-with-info-dark-chromium-linux.png │ │ │ │ └── Label-smoke-with-info-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ ├── Label.stories.tsx │ │ │ ├── LabelShowcase.scss │ │ │ └── LabelShowcase.tsx │ │ ├── __tests__ │ │ │ ├── Label.visual.test.tsx │ │ │ ├── cases.tsx │ │ │ └── helpersPlaywright.tsx │ │ ├── constants.ts │ │ └── index.ts │ ├── Link │ │ ├── Link.scss │ │ ├── Link.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── Link.visual.test.tsx-snapshots │ │ │ │ ├── Link-smoke-dark-chromium-linux.png │ │ │ │ └── Link-smoke-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ ├── Link.new.stories.tsx │ │ │ ├── Link.stories.tsx │ │ │ └── LinkShowcase.tsx │ │ ├── __tests__ │ │ │ ├── Link.test.tsx │ │ │ ├── Link.visual.test.tsx │ │ │ └── cases.tsx │ │ └── index.ts │ ├── List │ │ ├── List.scss │ │ ├── List.tsx │ │ ├── ListLoadingIndicator.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── List.visual.test.tsx-snapshots │ │ │ │ ├── List-smoke-custom-render-item-light-chromium-linux.png │ │ │ │ ├── List-smoke-empty-light-chromium-linux.png │ │ │ │ ├── List-smoke-light-chromium-linux.png │ │ │ │ └── List-smoke-virtualized-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ ├── List.stories.tsx │ │ │ ├── ListItem.stories.tsx │ │ │ ├── ListShowcase.scss │ │ │ ├── ListShowcase.tsx │ │ │ ├── ListWithLoader.scss │ │ │ └── ListWithLoader.tsx │ │ ├── __tests__ │ │ │ ├── List.test.tsx │ │ │ ├── List.visual.test.tsx │ │ │ ├── ListItem.test.tsx │ │ │ ├── cases.tsx │ │ │ └── helpersPlaywright.tsx │ │ ├── components │ │ │ ├── ListItem.tsx │ │ │ ├── SimpleContainer.tsx │ │ │ └── index.ts │ │ ├── constants.ts │ │ ├── index.tsx │ │ └── types.ts │ ├── Loader │ │ ├── Loader.scss │ │ ├── Loader.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── Loader.visual.test.tsx-snapshots │ │ │ │ ├── Loader-smoke-dark-chromium-linux.png │ │ │ │ └── Loader-smoke-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ └── Loader.stories.tsx │ │ ├── __tests__ │ │ │ ├── Loader.visual.test.tsx │ │ │ └── cases.tsx │ │ └── index.ts │ ├── Menu │ │ ├── Menu.scss │ │ ├── Menu.tsx │ │ ├── MenuGroup.tsx │ │ ├── MenuItem.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── Menu.visual.test.tsx-snapshots │ │ │ │ ├── Menu-smoke-dark-chromium-linux.png │ │ │ │ ├── Menu-smoke-light-chromium-linux.png │ │ │ │ ├── Menu-smoke-menu-group-dark-chromium-linux.png │ │ │ │ ├── Menu-smoke-menu-group-light-chromium-linux.png │ │ │ │ ├── Menu-smoke-menu-item-dark-chromium-linux.png │ │ │ │ ├── Menu-smoke-menu-item-light-chromium-linux.png │ │ │ │ ├── Menu-smoke-menu-item-with-icons-dark-chromium-linux.png │ │ │ │ └── Menu-smoke-menu-item-with-icons-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ └── Menu.stories.tsx │ │ ├── __tests__ │ │ │ ├── Menu.visual.test.tsx │ │ │ ├── cases.tsx │ │ │ └── helpers.tsx │ │ └── index.ts │ ├── Modal │ │ ├── Modal.scss │ │ ├── Modal.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── Modal.visual.test.tsx-snapshots │ │ │ │ ├── Modal-smoke-dark-chromium-linux.png │ │ │ │ └── Modal-smoke-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ └── Modal.stories.tsx │ │ ├── __tests__ │ │ │ ├── Modal.visual.test.tsx │ │ │ └── constants.ts │ │ ├── i18n │ │ │ ├── en.json │ │ │ ├── index.ts │ │ │ └── ru.json │ │ └── index.ts │ ├── NumberInput │ │ ├── NumberInput.scss │ │ ├── NumberInput.tsx │ │ ├── NumericArrows │ │ │ ├── NumericArrows.scss │ │ │ └── NumericArrows.tsx │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── NumberInput.visual.test.tsx-snapshots │ │ │ │ ├── NumberInput-render-story-Default-dark-chromium-linux.png │ │ │ │ ├── NumberInput-render-story-Default-dark-webkit-linux.png │ │ │ │ ├── NumberInput-render-story-Default-light-chromium-linux.png │ │ │ │ ├── NumberInput-render-story-Default-light-webkit-linux.png │ │ │ │ ├── NumberInput-smoke-empty-light-chromium-linux.png │ │ │ │ ├── NumberInput-smoke-inside-error-placement-tooltip-light-chromium-linux.png │ │ │ │ ├── NumberInput-smoke-with-error-light-chromium-linux.png │ │ │ │ └── NumberInput-smoke-with-value-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ └── NumberInput.stories.tsx │ │ ├── __tests__ │ │ │ ├── NumberInput.test.tsx │ │ │ ├── NumberInput.visual.test.tsx │ │ │ ├── cases.tsx │ │ │ ├── stories.tsx │ │ │ └── utils.test.ts │ │ ├── i18n │ │ │ ├── en.json │ │ │ ├── index.ts │ │ │ └── ru.json │ │ ├── index.ts │ │ └── utils.ts │ ├── Overlay │ │ ├── Overlay.scss │ │ ├── Overlay.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── Overlay.visual.test.tsx-snapshots │ │ │ │ ├── Overlay-smoke-dark-chromium-linux.png │ │ │ │ ├── Overlay-smoke-dark-webkit-linux.png │ │ │ │ ├── Overlay-smoke-light-chromium-linux.png │ │ │ │ └── Overlay-smoke-light-webkit-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ ├── Overlay.stories.scss │ │ │ ├── Overlay.stories.tsx │ │ │ └── data.tsx │ │ ├── __tests__ │ │ │ ├── Overlay.visual.test.tsx │ │ │ └── cases.tsx │ │ └── index.ts │ ├── Pagination │ │ ├── Pagination.scss │ │ ├── Pagination.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── Pagination.visual.test.tsx-snapshots │ │ │ │ ├── Pagination-smoke-not-compact-default-click-on-page-10-button-light-chromium-linux.png │ │ │ │ ├── Pagination-smoke-not-compact-default-click-on-page-2-button-light-chromium-linux.png │ │ │ │ ├── Pagination-smoke-not-compact-default-hover-on-page-10-button-light-chromium-linux.png │ │ │ │ ├── Pagination-smoke-not-compact-default-hover-on-page-2-button-light-chromium-linux.png │ │ │ │ ├── Pagination-smoke-not-compact-default-light-chromium-linux.png │ │ │ │ ├── Pagination-smoke-regular-default-click-on-page-10-button-light-chromium-linux.png │ │ │ │ ├── Pagination-smoke-regular-default-click-on-page-2-button-light-chromium-linux.png │ │ │ │ ├── Pagination-smoke-regular-default-hover-on-page-10-button-light-chromium-linux.png │ │ │ │ ├── Pagination-smoke-regular-default-hover-on-page-2-button-light-chromium-linux.png │ │ │ │ ├── Pagination-smoke-regular-default-light-chromium-linux.png │ │ │ │ ├── Pagination-smoke-with-page-input-default-after-type-enter-light-chromium-linux.png │ │ │ │ ├── Pagination-smoke-with-page-input-default-after-type-page-number-light-chromium-linux.png │ │ │ │ ├── Pagination-smoke-with-page-input-default-focus-on-input-light-chromium-linux.png │ │ │ │ ├── Pagination-smoke-with-page-input-default-light-chromium-linux.png │ │ │ │ ├── Pagination-smoke-with-page-size-select-default-after-click-on-page-size-select-light-chromium-linux.png │ │ │ │ ├── Pagination-smoke-with-page-size-select-default-after-hover-option-light-chromium-linux.png │ │ │ │ ├── Pagination-smoke-with-page-size-select-default-after-select-option-light-chromium-linux.png │ │ │ │ ├── Pagination-smoke-with-page-size-select-default-light-chromium-linux.png │ │ │ │ ├── Pagination-smoke-without-pages-default-click-on-next-page-button-light-chromium-linux.png │ │ │ │ ├── Pagination-smoke-without-pages-default-hover-on-next-page-button-light-chromium-linux.png │ │ │ │ └── Pagination-smoke-without-pages-default-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ └── Pagination.stories.tsx │ │ ├── __tests__ │ │ │ ├── Pagination.test.tsx │ │ │ ├── Pagination.visual.test.tsx │ │ │ └── helpers.tsx │ │ ├── components │ │ │ ├── PaginationButton │ │ │ │ └── PaginationButton.tsx │ │ │ ├── PaginationEllipsis │ │ │ │ ├── PaginationEllipsis.scss │ │ │ │ └── PaginationEllipsis.tsx │ │ │ ├── PaginationInput │ │ │ │ ├── PaginationInput.scss │ │ │ │ └── PaginationInput.tsx │ │ │ ├── PaginationPage │ │ │ │ ├── PaginationPage.scss │ │ │ │ └── PaginationPage.tsx │ │ │ ├── PaginationPageOf │ │ │ │ ├── PaginationPageOf.scss │ │ │ │ └── PaginationPageOf.tsx │ │ │ ├── PaginationPageSizer │ │ │ │ └── PaginationPageSizer.tsx │ │ │ └── index.ts │ │ ├── constants.ts │ │ ├── hooks │ │ │ └── usePagination.ts │ │ ├── i18n │ │ │ ├── en.json │ │ │ ├── index.ts │ │ │ └── ru.json │ │ ├── index.ts │ │ ├── types.ts │ │ ├── utils.test.ts │ │ └── utils.ts │ ├── Palette │ │ ├── Palette.scss │ │ ├── Palette.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── Palette.visual.test.tsx-snapshots │ │ │ │ ├── Palette-smoke-hover-after-click-dark-chromium-linux.png │ │ │ │ ├── Palette-smoke-hover-after-click-light-chromium-linux.png │ │ │ │ ├── Palette-smoke-hover-after-focus-dark-chromium-linux.png │ │ │ │ ├── Palette-smoke-hover-after-focus-light-chromium-linux.png │ │ │ │ ├── Palette-smoke-hover-dark-chromium-linux.png │ │ │ │ ├── Palette-smoke-hover-light-chromium-linux.png │ │ │ │ └── Palette-smoke-smoke-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ └── Palette.stories.tsx │ │ ├── __tests__ │ │ │ ├── Palette.test.tsx │ │ │ ├── Palette.visual.test.tsx │ │ │ ├── cases.tsx │ │ │ ├── helpersPlaywright.tsx │ │ │ └── utils.test.ts │ │ ├── hooks.ts │ │ ├── index.ts │ │ └── utils.ts │ ├── PinInput │ │ ├── PinInput.scss │ │ ├── PinInput.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── PinInput.visual.test.tsx-snapshots │ │ │ │ ├── PinInput-smoke-alphabetic-light-chromium-linux.png │ │ │ │ ├── PinInput-smoke-empty-light-chromium-linux.png │ │ │ │ └── PinInput-smoke-number-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ └── PinInput.stories.tsx │ │ ├── __tests__ │ │ │ ├── PinInput.test.tsx │ │ │ ├── PinInput.visual.test.tsx │ │ │ └── cases.tsx │ │ ├── i18n │ │ │ ├── en.json │ │ │ ├── index.ts │ │ │ └── ru.json │ │ └── index.ts │ ├── PlaceholderContainer │ │ ├── PlaceholderContainer.scss │ │ ├── PlaceholderContainer.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── PlaceholderContainer.visual.test.tsx-snapshots │ │ │ │ ├── PlaceholderContainer-render-story-Actions-dark-chromium-linux.png │ │ │ │ ├── PlaceholderContainer-render-story-Actions-light-chromium-linux.png │ │ │ │ ├── PlaceholderContainer-render-story-Align-dark-chromium-linux.png │ │ │ │ ├── PlaceholderContainer-render-story-Align-light-chromium-linux.png │ │ │ │ ├── PlaceholderContainer-render-story-Default-dark-chromium-linux.png │ │ │ │ ├── PlaceholderContainer-render-story-Default-light-chromium-linux.png │ │ │ │ ├── PlaceholderContainer-render-story-Direction-dark-chromium-linux.png │ │ │ │ ├── PlaceholderContainer-render-story-Direction-light-chromium-linux.png │ │ │ │ ├── PlaceholderContainer-render-story-Size-dark-chromium-linux.png │ │ │ │ ├── PlaceholderContainer-render-story-Size-light-chromium-linux.png │ │ │ │ └── PlaceholderContainer-smoke-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ ├── PlaceholderContainer.stories.tsx │ │ │ └── PlaceholderContainerShowcase.scss │ │ ├── __tests__ │ │ │ ├── PlaceholderContainer.visual.test.tsx │ │ │ ├── cases.tsx │ │ │ └── helpersPlaywright.tsx │ │ ├── constants.ts │ │ ├── index.ts │ │ └── types.ts │ ├── Popover │ │ ├── Popover.tsx │ │ ├── README.md │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ └── Popover.stories.tsx │ │ └── index.ts │ ├── Popup │ │ ├── Popup.scss │ │ ├── Popup.tsx │ │ ├── PopupArrow.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── Popup.visual.test.tsx-snapshots │ │ │ │ ├── Popup-smoke-default-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-offset-10-25-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-default-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-placement-auto-end-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-placement-auto-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-placement-auto-start-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-placement-bottom-end-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-placement-bottom-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-placement-bottom-start-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-placement-left-end-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-placement-left-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-placement-left-start-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-placement-right-end-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-placement-right-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-placement-right-start-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-placement-top-end-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-placement-top-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-placement-top-start-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-with-arrow-default-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-with-arrow-placement-auto-end-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-with-arrow-placement-auto-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-with-arrow-placement-auto-start-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-with-arrow-placement-bottom-end-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-with-arrow-placement-bottom-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-with-arrow-placement-bottom-start-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-with-arrow-placement-left-end-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-with-arrow-placement-left-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-with-arrow-placement-left-start-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-with-arrow-placement-right-end-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-with-arrow-placement-right-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-with-arrow-placement-right-start-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-with-arrow-placement-top-end-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-with-arrow-placement-top-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-placement-with-arrow-placement-top-start-light-chromium-linux.png │ │ │ │ ├── Popup-smoke-strategy-absolute-light-chromium-linux.png │ │ │ │ └── Popup-smoke-strategy-fixed-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ └── Popup.stories.tsx │ │ ├── __tests__ │ │ │ ├── Popup.test.tsx │ │ │ ├── Popup.visual.test.tsx │ │ │ ├── cases.tsx │ │ │ ├── constants.ts │ │ │ └── helpers.tsx │ │ ├── constants.ts │ │ ├── hooks.ts │ │ ├── i18n │ │ │ ├── en.json │ │ │ ├── index.ts │ │ │ └── ru.json │ │ ├── index.ts │ │ ├── types.ts │ │ └── utils.ts │ ├── Portal │ │ ├── Portal.scss │ │ ├── Portal.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ ├── Portal.stories.tsx │ │ │ └── README.md │ │ └── index.ts │ ├── Progress │ │ ├── Progress.scss │ │ ├── Progress.tsx │ │ ├── ProgressInnerText.tsx │ │ ├── ProgressStackItem.tsx │ │ ├── ProgressWithStack.tsx │ │ ├── ProgressWithValue.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── __snapshots__ │ │ │ └── Progress.visual.test.tsx-snapshots │ │ │ │ ├── Progress-smoke-smoke-light-chromium-linux.png │ │ │ │ ├── Progress-smoke-smoke-with-color-stops-light-chromium-linux.png │ │ │ │ └── Progress-smoke-smoke-with-stack-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ └── Progress.stories.tsx │ │ ├── __tests__ │ │ │ ├── Progress.visual.test.tsx │ │ │ └── cases.tsx │ │ ├── constants.ts │ │ ├── index.ts │ │ ├── types.ts │ │ └── utils.ts │ ├── Radio │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── Radio.scss │ │ ├── Radio.tsx │ │ ├── __snapshots__ │ │ │ └── Radio.visual.test.tsx-snapshots │ │ │ │ ├── Radio-smoke-dark-chromium-linux.png │ │ │ │ ├── Radio-smoke-default-checked-dark-chromium-linux.png │ │ │ │ ├── Radio-smoke-default-checked-light-chromium-linux.png │ │ │ │ ├── Radio-smoke-disabled-dark-chromium-linux.png │ │ │ │ ├── Radio-smoke-disabled-light-chromium-linux.png │ │ │ │ └── Radio-smoke-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ ├── Radio.stories.tsx │ │ │ └── RadioShowcase.tsx │ │ ├── __tests__ │ │ │ ├── Radio.test.tsx │ │ │ ├── Radio.visual.test.tsx │ │ │ └── cases.tsx │ │ └── index.ts │ ├── RadioGroup │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── RadioGroup.scss │ │ ├── RadioGroup.tsx │ │ ├── __snapshots__ │ │ │ └── RadioGroup.visual.test.tsx-snapshots │ │ │ │ ├── RadioGroup-smoke-dark-chromium-linux.png │ │ │ │ ├── RadioGroup-smoke-disabled-dark-chromium-linux.png │ │ │ │ ├── RadioGroup-smoke-disabled-light-chromium-linux.png │ │ │ │ └── RadioGroup-smoke-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ ├── RadioGroup.stories.tsx │ │ │ └── RadioGroupShowcase.tsx │ │ ├── __tests__ │ │ │ ├── RadioGroup.test.tsx │ │ │ ├── RadioGroup.visual.test.tsx │ │ │ └── cases.tsx │ │ └── index.ts │ ├── SegmentedRadioGroup │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── SegmentedRadioGroup.scss │ │ ├── SegmentedRadioGroup.tsx │ │ ├── SegmentedRadioGroupOption.tsx │ │ ├── __snapshots__ │ │ │ └── RadioButton.visual.test.tsx-snapshots │ │ │ │ ├── SegmentedRadioGroup-smoke-dark-chromium-linux.png │ │ │ │ ├── SegmentedRadioGroup-smoke-disabled-dark-chromium-linux.png │ │ │ │ ├── SegmentedRadioGroup-smoke-disabled-light-chromium-linux.png │ │ │ │ └── SegmentedRadioGroup-smoke-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ ├── SegmentedRadioGroup.stories.tsx │ │ │ └── SegmentedRadioGroupShowcase.tsx │ │ ├── __tests__ │ │ │ ├── RadioButton.visual.test.tsx │ │ │ ├── SegmentedRadioGroup.test.tsx │ │ │ └── cases.tsx │ │ └── index.ts │ ├── Select │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── Select.scss │ │ ├── Select.tsx │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ ├── Select.stories.tsx │ │ │ ├── SelectPopupWidthShowcase.tsx │ │ │ ├── SelectShowcase.scss │ │ │ ├── Showcase.mdx │ │ │ ├── UseSelectOptionsShowcase.tsx │ │ │ └── constants.ts │ │ ├── __tests__ │ │ │ ├── Select.base-actions.test.tsx │ │ │ ├── Select.clear.test.tsx │ │ │ ├── Select.error.test.tsx │ │ │ ├── Select.filter.test.tsx │ │ │ ├── Select.form.test.tsx │ │ │ ├── Select.muitiple.test.tsx │ │ │ ├── Select.popup.test.tsx │ │ │ ├── Select.renderPopup.test.tsx │ │ │ ├── Select.single.test.tsx │ │ │ ├── getSelectedOptionsContent.test.ts │ │ │ ├── useSelectOptions.test.ts │ │ │ └── utils.tsx │ │ ├── components │ │ │ ├── EmptyOptions │ │ │ │ ├── EmptyOptions.scss │ │ │ │ └── EmptyOptions.tsx │ │ │ ├── HiddenSelect │ │ │ │ └── HiddenSelect.tsx │ │ │ ├── SelectClear │ │ │ │ ├── SelectClear.scss │ │ │ │ └── SelectClear.tsx │ │ │ ├── SelectControl │ │ │ │ ├── SelectControl.scss │ │ │ │ └── SelectControl.tsx │ │ │ ├── SelectCounter │ │ │ │ ├── SelectCounter.scss │ │ │ │ └── SelectCounter.tsx │ │ │ ├── SelectFilter │ │ │ │ ├── SelectFilter.scss │ │ │ │ └── SelectFilter.tsx │ │ │ ├── SelectList │ │ │ │ ├── GroupLabel.tsx │ │ │ │ ├── OptionWrap.tsx │ │ │ │ ├── SelectList.scss │ │ │ │ ├── SelectList.tsx │ │ │ │ └── SelectLoadingIndicator.tsx │ │ │ ├── SelectPopup │ │ │ │ ├── SelectPopup.scss │ │ │ │ ├── SelectPopup.tsx │ │ │ │ ├── middlewares.ts │ │ │ │ └── types.ts │ │ │ └── index.ts │ │ ├── constants.ts │ │ ├── hooks-public │ │ │ ├── index.ts │ │ │ └── useSelectOptions │ │ │ │ ├── README.md │ │ │ │ └── index.ts │ │ ├── hooks │ │ │ ├── index.ts │ │ │ ├── useActiveItemIndex.ts │ │ │ └── useQuickSearch.ts │ │ ├── i18n │ │ │ ├── en.json │ │ │ ├── index.ts │ │ │ └── ru.json │ │ ├── index.ts │ │ ├── tech-components.tsx │ │ ├── types-misc.ts │ │ ├── types.ts │ │ ├── utils.tsx │ │ └── variables.scss │ ├── Sheet │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── Sheet.scss │ │ ├── Sheet.tsx │ │ ├── SheetContent.tsx │ │ ├── __snapshots__ │ │ │ └── Sheet.visual.test.tsx-snapshots │ │ │ │ ├── Sheet-render-story-Default-dark-chromium-linux.png │ │ │ │ ├── Sheet-render-story-Default-light-chromium-linux.png │ │ │ │ ├── Sheet-smoke-default-light-chromium-linux.png │ │ │ │ ├── Sheet-smoke-hideTopBar-true-light-chromium-linux.png │ │ │ │ └── Sheet-smoke-title-Title-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── DefaultShowcase │ │ │ │ ├── DefaultShowcase.scss │ │ │ │ └── DefaultShowcase.stories.tsx │ │ │ ├── Docs.mdx │ │ │ ├── MultipleSheetsShowcase │ │ │ │ ├── MultipleSheets.scss │ │ │ │ └── MultipleSheets.stories.tsx │ │ │ ├── Sheet.stories.tsx │ │ │ ├── WithMenuShowcase │ │ │ │ ├── WithMenuShowcase.scss │ │ │ │ └── WithMenuShowcase.stories.tsx │ │ │ └── constants.ts │ │ ├── __tests__ │ │ │ ├── Sheet.test.tsx │ │ │ ├── Sheet.visual.test.tsx │ │ │ ├── cases.tsx │ │ │ ├── constants.ts │ │ │ ├── helpers.tsx │ │ │ └── helpersPlaywright.tsx │ │ ├── constants.ts │ │ ├── index.ts │ │ └── utils.ts │ ├── Skeleton │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── Skeleton.scss │ │ ├── Skeleton.tsx │ │ ├── __snapshots__ │ │ │ └── Skeleton.visual.test.tsx-snapshots │ │ │ │ ├── Skeleton-smoke-dark-chromium-linux.png │ │ │ │ └── Skeleton-smoke-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ ├── Skeleton.stories.tsx │ │ │ ├── SkeletonShowcase.scss │ │ │ └── SkeletonShowcase.tsx │ │ ├── __tests__ │ │ │ └── Skeleton.visual.test.tsx │ │ └── index.ts │ ├── Slider │ │ ├── BaseSlider │ │ │ ├── BaseSlider.scss │ │ │ └── BaseSlider.tsx │ │ ├── HandleWithTooltip │ │ │ └── HandleWithTooltip.tsx │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── Slider.scss │ │ ├── Slider.tsx │ │ ├── SliderTooltip │ │ │ ├── SliderTooltip.scss │ │ │ ├── SliderTooltip.tsx │ │ │ └── SliderTooltipPin.tsx │ │ ├── __snapshots__ │ │ │ └── Slider.visual.test.tsx-snapshots │ │ │ │ ├── Slider-smoke-light-chromium-linux.png │ │ │ │ ├── Slider-smoke-range-value-light-chromium-linux.png │ │ │ │ ├── Slider-smoke-range-value-with-error-light-chromium-linux.png │ │ │ │ └── Slider-smoke-with-error-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ ├── Slider.stories.tsx │ │ │ ├── SliderShowcase.scss │ │ │ └── SliderShowcase.tsx │ │ ├── __tests__ │ │ │ ├── Slider.visual.test.tsx │ │ │ └── cases.tsx │ │ ├── __tetsts__ │ │ │ └── Slider.form.test.tsx │ │ ├── constants.ts │ │ ├── index.ts │ │ ├── types.ts │ │ ├── utils.ts │ │ └── variables.scss │ ├── Spin │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── Spin.scss │ │ ├── Spin.tsx │ │ ├── __snapshots__ │ │ │ └── Spin.visual.test.tsx-snapshots │ │ │ │ ├── Spin-smoke-dark-chromium-linux.png │ │ │ │ └── Spin-smoke-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ └── Spin.stories.tsx │ │ ├── __tests__ │ │ │ ├── Spin.visual.test.tsx │ │ │ └── cases.tsx │ │ └── index.ts │ ├── Stepper │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── Stepper.scss │ │ ├── Stepper.tsx │ │ ├── StepperItem.tsx │ │ ├── StepperSeparator.tsx │ │ ├── __snapshots__ │ │ │ └── Stepper.visual.test.tsx-snapshots │ │ │ │ ├── Stepper-render-story-CustomIcons-dark-chromium-linux.png │ │ │ │ ├── Stepper-render-story-CustomIcons-light-chromium-linux.png │ │ │ │ ├── Stepper-render-story-CustomSeparator-dark-chromium-linux.png │ │ │ │ ├── Stepper-render-story-CustomSeparator-light-chromium-linux.png │ │ │ │ ├── Stepper-render-story-Default-dark-chromium-linux.png │ │ │ │ ├── Stepper-render-story-Default-light-chromium-linux.png │ │ │ │ ├── Stepper-render-story-Disabled-dark-chromium-linux.png │ │ │ │ ├── Stepper-render-story-Disabled-light-chromium-linux.png │ │ │ │ ├── Stepper-render-story-InteractiveShowcase-dark-chromium-linux.png │ │ │ │ ├── Stepper-render-story-InteractiveShowcase-light-chromium-linux.png │ │ │ │ ├── Stepper-render-story-Size-dark-chromium-linux.png │ │ │ │ ├── Stepper-render-story-Size-light-chromium-linux.png │ │ │ │ ├── Stepper-render-story-View-dark-chromium-linux.png │ │ │ │ ├── Stepper-render-story-View-light-chromium-linux.png │ │ │ │ ├── Stepper-render-story-WithFloatingElements-dark-chromium-linux.png │ │ │ │ ├── Stepper-render-story-WithFloatingElements-light-chromium-linux.png │ │ │ │ ├── Stepper-smoke-with-different-sizes-default-light-chromium-linux.png │ │ │ │ ├── Stepper-smoke-with-different-sizes-size-l-light-chromium-linux.png │ │ │ │ ├── Stepper-smoke-with-different-sizes-size-m-light-chromium-linux.png │ │ │ │ ├── Stepper-smoke-with-different-sizes-size-s-light-chromium-linux.png │ │ │ │ ├── Stepper-smoke-with-different-views-default-light-chromium-linux.png │ │ │ │ ├── Stepper-smoke-with-different-views-view-error-light-chromium-linux.png │ │ │ │ ├── Stepper-smoke-with-different-views-view-idle-light-chromium-linux.png │ │ │ │ └── Stepper-smoke-with-different-views-view-success-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ ├── Stepper.stories.tsx │ │ │ └── StepperShowcase.tsx │ │ ├── __tests__ │ │ │ ├── Stepper.test.tsx │ │ │ ├── Stepper.visual.test.tsx │ │ │ ├── cases.ts │ │ │ └── helpersPlaywright.tsx │ │ ├── context.ts │ │ ├── index.ts │ │ ├── types.ts │ │ └── utils.ts │ ├── Switch │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── Switch.scss │ │ ├── Switch.tsx │ │ ├── __snapshots__ │ │ │ └── Switch.visual.test.tsx-snapshots │ │ │ │ ├── Switch-smoke-checked-dark-chromium-linux.png │ │ │ │ ├── Switch-smoke-checked-light-chromium-linux.png │ │ │ │ ├── Switch-smoke-dark-chromium-linux.png │ │ │ │ └── Switch-smoke-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ ├── Switch.stories.tsx │ │ │ └── SwitchShowcase.tsx │ │ ├── __tests__ │ │ │ ├── Switch.test.tsx │ │ │ ├── Switch.visual.test.tsx │ │ │ └── cases.tsx │ │ └── index.ts │ ├── Table │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── Table.scss │ │ ├── Table.tsx │ │ ├── __snapshots__ │ │ │ └── Table.visual.test.tsx-snapshots │ │ │ │ ├── Table-render-story-Adaptive-light-chromium-linux.png │ │ │ │ ├── Table-render-story-Default-light-chromium-linux.png │ │ │ │ ├── Table-render-story-EmptyCustom-light-chromium-linux.png │ │ │ │ ├── Table-render-story-EmptyDefault-light-chromium-linux.png │ │ │ │ ├── Table-render-story-HOCWithTableSorting-light-chromium-linux.png │ │ │ │ ├── Table-render-story-RowInteractive-light-chromium-linux.png │ │ │ │ ├── Table-smoke-column-config-light-chromium-linux.png │ │ │ │ ├── Table-smoke-light-chromium-linux.png │ │ │ │ ├── Table-smoke-with-actions-light-chromium-linux.png │ │ │ │ ├── Table-smoke-with-checkbox-light-chromium-linux.png │ │ │ │ ├── Table-smoke-with-copy-light-chromium-linux.png │ │ │ │ ├── Table-smoke-with-filterable-settings-light-chromium-linux.png │ │ │ │ ├── Table-smoke-with-settings-light-chromium-linux.png │ │ │ │ └── Table-smoke-with-table-settings-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Adaptive.tsx │ │ │ ├── Docs.mdx │ │ │ ├── Table.stories.tsx │ │ │ ├── WithTableSettingsCustomActions │ │ │ │ ├── WithTableSettingsCustomActions.tsx │ │ │ │ └── index.ts │ │ │ └── utils.tsx │ │ ├── __tests__ │ │ │ ├── Table.hocs.test.ts │ │ │ ├── Table.test.tsx │ │ │ ├── Table.visual.test.tsx │ │ │ ├── Table.withTableSettings.test.tsx │ │ │ ├── cases.tsx │ │ │ ├── helpersPlaywright.tsx │ │ │ └── utils.ts │ │ ├── hoc │ │ │ ├── index.ts │ │ │ ├── withTableActions │ │ │ │ ├── withTableActions.scss │ │ │ │ └── withTableActions.tsx │ │ │ ├── withTableCopy │ │ │ │ ├── withTableCopy.scss │ │ │ │ └── withTableCopy.tsx │ │ │ ├── withTableSelection │ │ │ │ ├── withTableSelection.scss │ │ │ │ └── withTableSelection.tsx │ │ │ ├── withTableSettings │ │ │ │ ├── TableColumnSetup │ │ │ │ │ ├── TableColumnSetup.scss │ │ │ │ │ ├── TableColumnSetup.tsx │ │ │ │ │ └── i18n │ │ │ │ │ │ ├── en.json │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── ru.json │ │ │ │ ├── i18n │ │ │ │ │ ├── en.json │ │ │ │ │ ├── index.ts │ │ │ │ │ └── ru.json │ │ │ │ ├── withTableSettings.scss │ │ │ │ └── withTableSettings.tsx │ │ │ └── withTableSorting │ │ │ │ ├── SortIndicator │ │ │ │ └── SortIndicator.tsx │ │ │ │ ├── withTableSorting.scss │ │ │ │ └── withTableSorting.tsx │ │ ├── i18n │ │ │ ├── en.json │ │ │ ├── index.ts │ │ │ └── ru.json │ │ ├── index.ts │ │ └── variables.scss │ ├── TableColumnSetup │ │ ├── TableColumnSetup.scss │ │ ├── TableColumnSetup.tsx │ │ ├── i18n │ │ │ ├── en.json │ │ │ ├── index.ts │ │ │ └── ru.json │ │ └── index.ts │ ├── Text │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── Text.tsx │ │ ├── __snapshots__ │ │ │ └── Text.visual.test.tsx-snapshots │ │ │ │ ├── Text-smoke-long-text-light-chromium-linux.png │ │ │ │ ├── Text-smoke-regular-light-chromium-linux.png │ │ │ │ ├── Text-smoke-render-story-Ellipsis-light-chromium-linux.png │ │ │ │ └── Text-smoke-render-story-WordBreak-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ └── Text.stories.tsx │ │ ├── __tests__ │ │ │ ├── Text.visual.test.tsx │ │ │ ├── cases.tsx │ │ │ ├── helpersPlaywright.tsx │ │ │ └── stories.ts │ │ ├── colorText │ │ │ ├── colorText.scss │ │ │ └── colorText.ts │ │ ├── index.ts │ │ └── text │ │ │ ├── text.scss │ │ │ └── text.ts │ ├── Toaster │ │ ├── Provider │ │ │ ├── ToasterContext.ts │ │ │ ├── ToasterProvider.tsx │ │ │ └── ToastsContext.ts │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── Toast │ │ │ ├── Toast.scss │ │ │ └── Toast.tsx │ │ ├── ToastList │ │ │ ├── ToastAnimation.scss │ │ │ ├── ToastList.scss │ │ │ └── ToastList.tsx │ │ ├── Toaster.ts │ │ ├── ToasterComponent │ │ │ └── ToasterComponent.tsx │ │ ├── __mocks__ │ │ │ ├── fireAnimationEndEvent.ts │ │ │ ├── getToast.ts │ │ │ └── tick.ts │ │ ├── __snapshots__ │ │ │ └── Toast.visual.test.tsx-snapshots │ │ │ │ ├── Toast-render-story-ToastPlayground-danger-dark-chromium-linux.png │ │ │ │ ├── Toast-render-story-ToastPlayground-danger-dark-webkit-linux.png │ │ │ │ ├── Toast-render-story-ToastPlayground-danger-light-chromium-linux.png │ │ │ │ ├── Toast-render-story-ToastPlayground-danger-light-webkit-linux.png │ │ │ │ ├── Toast-render-story-ToastPlayground-info-dark-chromium-linux.png │ │ │ │ ├── Toast-render-story-ToastPlayground-info-dark-webkit-linux.png │ │ │ │ ├── Toast-render-story-ToastPlayground-info-light-chromium-linux.png │ │ │ │ ├── Toast-render-story-ToastPlayground-info-light-webkit-linux.png │ │ │ │ ├── Toast-render-story-ToastPlayground-normal-dark-chromium-linux.png │ │ │ │ ├── Toast-render-story-ToastPlayground-normal-dark-webkit-linux.png │ │ │ │ ├── Toast-render-story-ToastPlayground-normal-light-chromium-linux.png │ │ │ │ ├── Toast-render-story-ToastPlayground-normal-light-webkit-linux.png │ │ │ │ ├── Toast-render-story-ToastPlayground-success-dark-chromium-linux.png │ │ │ │ ├── Toast-render-story-ToastPlayground-success-dark-webkit-linux.png │ │ │ │ ├── Toast-render-story-ToastPlayground-success-light-chromium-linux.png │ │ │ │ ├── Toast-render-story-ToastPlayground-success-light-webkit-linux.png │ │ │ │ ├── Toast-render-story-ToastPlayground-utility-dark-chromium-linux.png │ │ │ │ ├── Toast-render-story-ToastPlayground-utility-dark-webkit-linux.png │ │ │ │ ├── Toast-render-story-ToastPlayground-utility-light-chromium-linux.png │ │ │ │ ├── Toast-render-story-ToastPlayground-utility-light-webkit-linux.png │ │ │ │ ├── Toast-render-story-ToastPlayground-warning-dark-chromium-linux.png │ │ │ │ ├── Toast-render-story-ToastPlayground-warning-dark-webkit-linux.png │ │ │ │ ├── Toast-render-story-ToastPlayground-warning-light-chromium-linux.png │ │ │ │ └── Toast-render-story-ToastPlayground-warning-light-webkit-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ ├── Toaster.stories.tsx │ │ │ ├── ToasterShowcase.scss │ │ │ └── ToasterShowcase.tsx │ │ ├── __tests__ │ │ │ ├── Toast.visual.test.tsx │ │ │ ├── ToasterProvider.test.tsx │ │ │ └── helpersPlaywright.tsx │ │ ├── constants.ts │ │ ├── hooks │ │ │ ├── useInToasterContext.ts │ │ │ └── useToaster.ts │ │ ├── i18n │ │ │ ├── en.json │ │ │ ├── index.ts │ │ │ └── ru.json │ │ ├── index.ts │ │ ├── types.ts │ │ ├── utilities │ │ │ ├── EventEmitter.ts │ │ │ ├── getToastIndex.tsx │ │ │ ├── hasToast.ts │ │ │ └── removeToast.ts │ │ └── withToaster.tsx │ ├── Toc │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── Toc.tsx │ │ ├── TocItem │ │ │ ├── TocItem.scss │ │ │ ├── TocItem.tsx │ │ │ └── index.ts │ │ ├── TocSections │ │ │ ├── TocSections.scss │ │ │ ├── TocSections.tsx │ │ │ └── index.ts │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ ├── Toc.stories.scss │ │ │ └── Toc.stories.tsx │ │ ├── __tests__ │ │ │ └── Toc.test.tsx │ │ ├── index.ts │ │ └── types.ts │ ├── Tooltip │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── Tooltip.scss │ │ ├── Tooltip.tsx │ │ ├── __snapshots__ │ │ │ └── Tooltip.visual.test.tsx-snapshots │ │ │ │ ├── Tooltip-smoke-default-light-chromium-linux.png │ │ │ │ ├── Tooltip-smoke-placement-auto-end-light-chromium-linux.png │ │ │ │ ├── Tooltip-smoke-placement-auto-light-chromium-linux.png │ │ │ │ ├── Tooltip-smoke-placement-auto-start-light-chromium-linux.png │ │ │ │ ├── Tooltip-smoke-placement-bottom-end-light-chromium-linux.png │ │ │ │ ├── Tooltip-smoke-placement-bottom-light-chromium-linux.png │ │ │ │ ├── Tooltip-smoke-placement-bottom-start-light-chromium-linux.png │ │ │ │ ├── Tooltip-smoke-placement-left-end-light-chromium-linux.png │ │ │ │ ├── Tooltip-smoke-placement-left-light-chromium-linux.png │ │ │ │ ├── Tooltip-smoke-placement-left-start-light-chromium-linux.png │ │ │ │ ├── Tooltip-smoke-placement-right-end-light-chromium-linux.png │ │ │ │ ├── Tooltip-smoke-placement-right-light-chromium-linux.png │ │ │ │ ├── Tooltip-smoke-placement-right-start-light-chromium-linux.png │ │ │ │ ├── Tooltip-smoke-placement-top-end-light-chromium-linux.png │ │ │ │ ├── Tooltip-smoke-placement-top-light-chromium-linux.png │ │ │ │ └── Tooltip-smoke-placement-top-start-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ └── Tooltip.stories.tsx │ │ ├── __tests__ │ │ │ ├── Tooltip.test.tsx │ │ │ ├── Tooltip.visual.test.tsx │ │ │ ├── cases.tsx │ │ │ ├── constants.ts │ │ │ └── helpers.tsx │ │ └── index.ts │ ├── TreeList │ │ ├── TreeList.tsx │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ ├── TreeList.stories.tsx │ │ │ ├── TreeListDocs.md │ │ │ ├── components │ │ │ │ └── RenderVirtualizedContainer.tsx │ │ │ └── stories │ │ │ │ ├── DefaultStory.tsx │ │ │ │ ├── InfinityScrollStory.tsx │ │ │ │ ├── WithDisabledElementsStory.tsx │ │ │ │ ├── WithDndListStory.tsx │ │ │ │ ├── WithFiltrationAndControlsStory.tsx │ │ │ │ ├── WithGroupSelectionAndCustomIconStory.tsx │ │ │ │ └── WithItemLinksAndActionsStory.tsx │ │ ├── index.ts │ │ └── types.ts │ ├── TreeSelect │ │ ├── TreeSelect.scss │ │ ├── TreeSelect.tsx │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ ├── TreeSelect.stories.tsx │ │ │ ├── TreeSelectDocs.md │ │ │ └── components │ │ │ │ ├── ErrorStateExample.tsx │ │ │ │ ├── InfinityScrollExample.tsx │ │ │ │ ├── WithDisabledElementsExample.tsx │ │ │ │ ├── WithDndListExample.tsx │ │ │ │ ├── WithFiltrationAndControlsExample.tsx │ │ │ │ ├── WithGroupSelectionControlledStateAndCustomIcon.tsx │ │ │ │ └── WithItemLinksAndActionsExample.tsx │ │ ├── hooks │ │ │ └── useControlledValue.ts │ │ ├── index.ts │ │ └── types.ts │ ├── User │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── User.scss │ │ ├── User.tsx │ │ ├── __snapshots__ │ │ │ └── User.visual.test.tsx-snapshots │ │ │ │ ├── User-render-story-Default-dark-chromium-linux.png │ │ │ │ ├── User-render-story-Default-light-chromium-linux.png │ │ │ │ ├── User-render-story-Showcase-dark-chromium-linux.png │ │ │ │ ├── User-render-story-Showcase-light-chromium-linux.png │ │ │ │ └── User-smoke-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ └── User.stories.tsx │ │ ├── __tests__ │ │ │ ├── User.test.tsx │ │ │ ├── User.visual.test.tsx │ │ │ ├── cases.tsx │ │ │ ├── helpers.tsx │ │ │ └── stories.ts │ │ ├── constants.ts │ │ ├── index.ts │ │ └── types.ts │ ├── UserLabel │ │ ├── README-ru.md │ │ ├── README.md │ │ ├── UserLabel.scss │ │ ├── UserLabel.tsx │ │ ├── __snapshots__ │ │ │ └── UserLabel.visual.test.tsx-snapshots │ │ │ │ ├── UserLabel-render-story-Clickable-default-dark-chromium-linux.png │ │ │ │ ├── UserLabel-render-story-Clickable-default-light-chromium-linux.png │ │ │ │ ├── UserLabel-render-story-Clickable-hovered-dark-chromium-linux.png │ │ │ │ ├── UserLabel-render-story-Clickable-hovered-light-chromium-linux.png │ │ │ │ ├── UserLabel-render-story-Closable-dark-chromium-linux.png │ │ │ │ ├── UserLabel-render-story-Closable-light-chromium-linux.png │ │ │ │ ├── UserLabel-render-story-Default-dark-chromium-linux.png │ │ │ │ ├── UserLabel-render-story-Default-light-chromium-linux.png │ │ │ │ ├── UserLabel-render-story-Email-dark-chromium-linux.png │ │ │ │ ├── UserLabel-render-story-Email-light-chromium-linux.png │ │ │ │ ├── UserLabel-render-story-Empty-dark-chromium-linux.png │ │ │ │ ├── UserLabel-render-story-Empty-light-chromium-linux.png │ │ │ │ ├── UserLabel-render-story-Image-dark-chromium-linux.png │ │ │ │ ├── UserLabel-render-story-Image-light-chromium-linux.png │ │ │ │ ├── UserLabel-render-story-LongText-dark-chromium-linux.png │ │ │ │ ├── UserLabel-render-story-LongText-light-chromium-linux.png │ │ │ │ ├── UserLabel-render-story-Showcase-dark-chromium-linux.png │ │ │ │ ├── UserLabel-render-story-Showcase-light-chromium-linux.png │ │ │ │ ├── UserLabel-smoke-email-light-chromium-linux.png │ │ │ │ ├── UserLabel-smoke-person-light-chromium-linux.png │ │ │ │ └── UserLabel-smoke-user-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ └── UserLabel.stories.tsx │ │ ├── __tests__ │ │ │ ├── UserLabel.test.tsx │ │ │ ├── UserLabel.visual.test.tsx │ │ │ ├── cases.tsx │ │ │ ├── helpers.tsx │ │ │ └── stories.ts │ │ ├── constants.ts │ │ ├── i18n │ │ │ ├── en.json │ │ │ ├── index.ts │ │ │ └── ru.json │ │ ├── index.ts │ │ └── types.ts │ ├── controls │ │ ├── PasswordInput │ │ │ ├── PasswordInput.scss │ │ │ ├── PasswordInput.tsx │ │ │ ├── README.md │ │ │ ├── __snapshots__ │ │ │ │ └── PasswordInput.visual.test.tsx-snapshots │ │ │ │ │ ├── PasswordInput-render-story-Default-dark-chromium-linux.png │ │ │ │ │ ├── PasswordInput-render-story-Default-dark-webkit-linux.png │ │ │ │ │ ├── PasswordInput-render-story-Default-light-chromium-linux.png │ │ │ │ │ ├── PasswordInput-render-story-Default-light-webkit-linux.png │ │ │ │ │ ├── PasswordInput-smoke-copy-button-tooltip-light-chromium-linux.png │ │ │ │ │ ├── PasswordInput-smoke-empty-light-chromium-linux.png │ │ │ │ │ ├── PasswordInput-smoke-inside-error-placement-tooltip-light-chromium-linux.png │ │ │ │ │ ├── PasswordInput-smoke-light-chromium-linux.png │ │ │ │ │ ├── PasswordInput-smoke-reveal-button-tooltip-light-chromium-linux.png │ │ │ │ │ └── PasswordInput-smoke-with-error-light-chromium-linux.png │ │ │ ├── __stories__ │ │ │ │ ├── Docs.mdx │ │ │ │ └── PasswordInput.stories.tsx │ │ │ ├── __tests__ │ │ │ │ ├── PasswordInput.visual.test.tsx │ │ │ │ ├── cases.tsx │ │ │ │ └── helpersPlaywright.ts │ │ │ ├── constants.ts │ │ │ ├── i18n │ │ │ │ ├── en.json │ │ │ │ ├── index.ts │ │ │ │ └── ru.json │ │ │ ├── index.ts │ │ │ └── utils.ts │ │ ├── TextArea │ │ │ ├── README.md │ │ │ ├── TextArea.scss │ │ │ ├── TextArea.tsx │ │ │ ├── TextAreaControl.tsx │ │ │ ├── __snapshots__ │ │ │ │ └── TextArea.visual.test.tsx-snapshots │ │ │ │ │ ├── TextArea-smoke-empty-light-chromium-linux.png │ │ │ │ │ ├── TextArea-smoke-with-error-light-chromium-linux.png │ │ │ │ │ └── TextArea-smoke-with-value-light-chromium-linux.png │ │ │ ├── __stories__ │ │ │ │ ├── Docs.mdx │ │ │ │ ├── TextArea.stories.tsx │ │ │ │ ├── TextAreaShowcase.scss │ │ │ │ └── TextAreaShowcase.tsx │ │ │ ├── __tests__ │ │ │ │ ├── TextArea.test.tsx │ │ │ │ ├── TextArea.visual.test.tsx │ │ │ │ └── cases.tsx │ │ │ └── index.ts │ │ ├── TextInput │ │ │ ├── AdditionalContent.tsx │ │ │ ├── README.md │ │ │ ├── TextInput.scss │ │ │ ├── TextInput.tsx │ │ │ ├── TextInputControl.tsx │ │ │ ├── __snapshots__ │ │ │ │ └── TextInput.visual.test.tsx-snapshots │ │ │ │ │ ├── TextInput-smoke-empty-light-chromium-linux.png │ │ │ │ │ ├── TextInput-smoke-inside-error-placement-tooltip-light-chromium-linux.png │ │ │ │ │ ├── TextInput-smoke-inside-error-placement-tooltip-with-clear-button-light-chromium-linux.png │ │ │ │ │ ├── TextInput-smoke-with-error-light-chromium-linux.png │ │ │ │ │ └── TextInput-smoke-with-value-light-chromium-linux.png │ │ │ ├── __stories__ │ │ │ │ ├── Docs.mdx │ │ │ │ ├── TextInput.stories.tsx │ │ │ │ ├── TextInputCustomThemeShowcase.tsx │ │ │ │ ├── TextInputShowcase.scss │ │ │ │ └── TextInputShowcase.tsx │ │ │ ├── __tests__ │ │ │ │ ├── AdditionalContent.test.tsx │ │ │ │ ├── TextInput.input.test.tsx │ │ │ │ ├── TextInput.visual.test.tsx │ │ │ │ └── cases.tsx │ │ │ └── index.ts │ │ ├── common │ │ │ ├── ClearButton │ │ │ │ ├── ClearButton.scss │ │ │ │ ├── ClearButton.tsx │ │ │ │ └── i18n │ │ │ │ │ ├── en.json │ │ │ │ │ ├── index.ts │ │ │ │ │ └── ru.json │ │ │ ├── OuterAdditionalContent │ │ │ │ ├── OuterAdditionalContent.scss │ │ │ │ └── OuterAdditionalContent.tsx │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── mixins.scss │ │ ├── types.ts │ │ ├── utils.ts │ │ └── variables.scss │ ├── index.ts │ ├── lab │ │ ├── ListItemView │ │ │ ├── ListItemView.scss │ │ │ └── ListItemView.tsx │ │ ├── Menu │ │ │ ├── Menu.scss │ │ │ ├── Menu.tsx │ │ │ ├── MenuContext.ts │ │ │ ├── MenuDivider.scss │ │ │ ├── MenuDivider.tsx │ │ │ ├── MenuItem.scss │ │ │ ├── MenuItem.tsx │ │ │ ├── MenuItemContext.ts │ │ │ ├── MenuTrigger.tsx │ │ │ ├── README.md │ │ │ ├── __stories__ │ │ │ │ ├── Docs.mdx │ │ │ │ ├── Menu.stories.tsx │ │ │ │ └── utils.tsx │ │ │ ├── __tests__ │ │ │ │ └── Menu.test.tsx │ │ │ ├── index.ts │ │ │ ├── types.ts │ │ │ └── utils.ts │ │ └── Virtualizer │ │ │ ├── Virtualizer.tsx │ │ │ └── useLoadMore.tsx │ ├── layout │ │ ├── Box │ │ │ ├── Box.scss │ │ │ └── Box.tsx │ │ ├── Col │ │ │ ├── Col.scss │ │ │ ├── Col.tsx │ │ │ ├── __snapshots__ │ │ │ │ └── Col.visual.test.tsx-snapshots │ │ │ │ │ ├── Col-smoke-render-story-AllMods---l-light-chromium-linux.png │ │ │ │ │ ├── Col-smoke-render-story-AllMods---m-light-chromium-linux.png │ │ │ │ │ ├── Col-smoke-render-story-AllMods---s-light-chromium-linux.png │ │ │ │ │ ├── Col-smoke-render-story-AllMods---xl-light-chromium-linux.png │ │ │ │ │ ├── Col-smoke-render-story-AllMods---xxl-light-chromium-linux.png │ │ │ │ │ ├── Col-smoke-render-story-AllMods---xxxl-light-chromium-linux.png │ │ │ │ │ ├── Col-smoke-render-story-Dynamic---l-light-chromium-linux.png │ │ │ │ │ ├── Col-smoke-render-story-Dynamic---m-light-chromium-linux.png │ │ │ │ │ ├── Col-smoke-render-story-Dynamic---s-light-chromium-linux.png │ │ │ │ │ ├── Col-smoke-render-story-Dynamic---xl-light-chromium-linux.png │ │ │ │ │ ├── Col-smoke-render-story-Dynamic---xxl-light-chromium-linux.png │ │ │ │ │ ├── Col-smoke-render-story-Dynamic---xxxl-light-chromium-linux.png │ │ │ │ │ ├── Col-smoke-render-story-DynamicWithOverriddenBreakpoints---l-light-chromium-linux.png │ │ │ │ │ ├── Col-smoke-render-story-DynamicWithOverriddenBreakpoints---m-light-chromium-linux.png │ │ │ │ │ ├── Col-smoke-render-story-DynamicWithOverriddenBreakpoints---s-light-chromium-linux.png │ │ │ │ │ ├── Col-smoke-render-story-DynamicWithOverriddenBreakpoints---xl-light-chromium-linux.png │ │ │ │ │ ├── Col-smoke-render-story-DynamicWithOverriddenBreakpoints---xxl-light-chromium-linux.png │ │ │ │ │ ├── Col-smoke-render-story-DynamicWithOverriddenBreakpoints---xxxl-light-chromium-linux.png │ │ │ │ │ ├── Col-smoke-render-story-Static---l-light-chromium-linux.png │ │ │ │ │ ├── Col-smoke-render-story-Static---m-light-chromium-linux.png │ │ │ │ │ ├── Col-smoke-render-story-Static---s-light-chromium-linux.png │ │ │ │ │ ├── Col-smoke-render-story-Static---xl-light-chromium-linux.png │ │ │ │ │ ├── Col-smoke-render-story-Static---xxl-light-chromium-linux.png │ │ │ │ │ └── Col-smoke-render-story-Static---xxxl-light-chromium-linux.png │ │ │ ├── __stories__ │ │ │ │ └── Col.stories.tsx │ │ │ └── __tests__ │ │ │ │ ├── Col.visual.test.tsx │ │ │ │ └── stories.ts │ │ ├── Container │ │ │ ├── Container.scss │ │ │ ├── Container.tsx │ │ │ ├── __snapshots__ │ │ │ │ └── Container.visual.test.tsx-snapshots │ │ │ │ │ ├── Container-smoke-render-story-Default---l-dark-chromium-linux.png │ │ │ │ │ ├── Container-smoke-render-story-Default---l-light-chromium-linux.png │ │ │ │ │ ├── Container-smoke-render-story-Default---m-dark-chromium-linux.png │ │ │ │ │ ├── Container-smoke-render-story-Default---m-light-chromium-linux.png │ │ │ │ │ ├── Container-smoke-render-story-Default---s-dark-chromium-linux.png │ │ │ │ │ ├── Container-smoke-render-story-Default---s-light-chromium-linux.png │ │ │ │ │ ├── Container-smoke-render-story-Default---xl-dark-chromium-linux.png │ │ │ │ │ ├── Container-smoke-render-story-Default---xl-light-chromium-linux.png │ │ │ │ │ ├── Container-smoke-render-story-Default---xxl-dark-chromium-linux.png │ │ │ │ │ ├── Container-smoke-render-story-Default---xxl-light-chromium-linux.png │ │ │ │ │ ├── Container-smoke-render-story-Default---xxxl-dark-chromium-linux.png │ │ │ │ │ └── Container-smoke-render-story-Default---xxxl-light-chromium-linux.png │ │ │ ├── __stories__ │ │ │ │ └── Container.stories.tsx │ │ │ ├── __tests__ │ │ │ │ ├── Container.visual.test.tsx │ │ │ │ └── stories.ts │ │ │ └── useContainerThemeProps.ts │ │ ├── Flex │ │ │ ├── Flex.scss │ │ │ ├── Flex.tsx │ │ │ ├── __snapshots__ │ │ │ │ └── Flex.visual.test.tsx-snapshots │ │ │ │ │ ├── Flex-smoke-render-story-ChildrenWithBgColor---l-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-ChildrenWithBgColor---m-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-ChildrenWithBgColor---s-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-ChildrenWithBgColor---xl-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-ChildrenWithBgColor---xxl-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-ChildrenWithBgColor---xxxl-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-Default---l-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-Default---m-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-Default---s-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-Default---xl-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-Default---xxl-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-Default---xxxl-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-FlexGap---l-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-FlexGap---m-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-FlexGap---s-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-FlexGap---xl-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-FlexGap---xxl-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-FlexGap---xxxl-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-GapAndRowGap---l-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-GapAndRowGap---m-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-GapAndRowGap---s-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-GapAndRowGap---xl-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-GapAndRowGap---xxl-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-GapAndRowGap---xxxl-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-WithNullChildren---l-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-WithNullChildren---m-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-WithNullChildren---s-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-WithNullChildren---xl-light-chromium-linux.png │ │ │ │ │ ├── Flex-smoke-render-story-WithNullChildren---xxl-light-chromium-linux.png │ │ │ │ │ └── Flex-smoke-render-story-WithNullChildren---xxxl-light-chromium-linux.png │ │ │ ├── __stories__ │ │ │ │ └── Flex.stories.tsx │ │ │ └── __tests__ │ │ │ │ ├── Flex.visual.test.tsx │ │ │ │ └── stories.ts │ │ ├── LayoutProvider │ │ │ ├── LayoutProvider.tsx │ │ │ └── __stories__ │ │ │ │ └── Layout.mdx │ │ ├── Row │ │ │ ├── Row.scss │ │ │ ├── Row.tsx │ │ │ ├── __snapshots__ │ │ │ │ └── Row.visual.test.tsx-snapshots │ │ │ │ │ ├── Row-smoke-render-story-Default---l-light-chromium-linux.png │ │ │ │ │ ├── Row-smoke-render-story-Default---m-light-chromium-linux.png │ │ │ │ │ ├── Row-smoke-render-story-Default---s-light-chromium-linux.png │ │ │ │ │ ├── Row-smoke-render-story-Default---xl-light-chromium-linux.png │ │ │ │ │ ├── Row-smoke-render-story-Default---xxl-light-chromium-linux.png │ │ │ │ │ ├── Row-smoke-render-story-Default---xxxl-light-chromium-linux.png │ │ │ │ │ ├── Row-smoke-render-story-ZeroSpacings---l-light-chromium-linux.png │ │ │ │ │ ├── Row-smoke-render-story-ZeroSpacings---m-light-chromium-linux.png │ │ │ │ │ ├── Row-smoke-render-story-ZeroSpacings---s-light-chromium-linux.png │ │ │ │ │ ├── Row-smoke-render-story-ZeroSpacings---xl-light-chromium-linux.png │ │ │ │ │ ├── Row-smoke-render-story-ZeroSpacings---xxl-light-chromium-linux.png │ │ │ │ │ └── Row-smoke-render-story-ZeroSpacings---xxxl-light-chromium-linux.png │ │ │ ├── __stories__ │ │ │ │ └── Row.stories.tsx │ │ │ └── __tests__ │ │ │ │ ├── Row.visual.test.tsx │ │ │ │ └── stories.ts │ │ ├── constants.ts │ │ ├── contexts │ │ │ └── LayoutContext.tsx │ │ ├── demo │ │ │ ├── Box │ │ │ │ └── Box.tsx │ │ │ ├── ColPresenter │ │ │ │ └── ColPresenter.tsx │ │ │ ├── LayoutPresenter │ │ │ │ └── LayoutPresenter.tsx │ │ │ └── index.ts │ │ ├── hooks │ │ │ ├── useCurrentActiveMediaQuery.tsx │ │ │ └── useLayoutContext.ts │ │ ├── index.ts │ │ ├── spacing │ │ │ ├── spacing.scss │ │ │ ├── spacing.test.tsx │ │ │ └── spacing.tsx │ │ ├── types.ts │ │ ├── utils │ │ │ ├── index.test.ts │ │ │ ├── index.ts │ │ │ └── overrideLayoutTheme.ts │ │ └── variables.scss │ ├── legacy │ │ ├── Breadcrumbs │ │ │ ├── Breadcrumbs.scss │ │ │ ├── Breadcrumbs.tsx │ │ │ ├── BreadcrumbsButton.tsx │ │ │ ├── BreadcrumbsItem.tsx │ │ │ ├── BreadcrumbsMore.tsx │ │ │ ├── BreadcrumbsSeparator.tsx │ │ │ ├── README-ru.md │ │ │ ├── README.md │ │ │ ├── __stories__ │ │ │ │ ├── Breadcrumbs.stories.tsx │ │ │ │ ├── BreadcrumbsShowcase.scss │ │ │ │ ├── BreadcrumbsShowcase.tsx │ │ │ │ └── Docs.mdx │ │ │ ├── __tests__ │ │ │ │ └── Breadcrumbs.test.tsx │ │ │ ├── i18n │ │ │ │ ├── en.json │ │ │ │ ├── index.ts │ │ │ │ └── ru.json │ │ │ ├── index.ts │ │ │ └── types.ts │ │ ├── Popover │ │ │ ├── Popover.classname.ts │ │ │ ├── Popover.scss │ │ │ ├── Popover.tsx │ │ │ ├── README-ru.md │ │ │ ├── README.md │ │ │ ├── __stories__ │ │ │ │ ├── Docs.mdx │ │ │ │ ├── Popover.stories.tsx │ │ │ │ ├── PopoverDemo.classname.ts │ │ │ │ ├── PopoverDemo.scss │ │ │ │ └── examples │ │ │ │ │ ├── Base │ │ │ │ │ └── Base.tsx │ │ │ │ │ └── WithCustomAnchor │ │ │ │ │ └── WithCustomAnchor.tsx │ │ │ ├── __tests__ │ │ │ │ └── Popover.test.tsx │ │ │ ├── components │ │ │ │ ├── Buttons │ │ │ │ │ ├── Buttons.tsx │ │ │ │ │ └── helpers │ │ │ │ │ │ └── getButtonView.ts │ │ │ │ ├── Content │ │ │ │ │ └── Content.tsx │ │ │ │ ├── Links │ │ │ │ │ └── Links.tsx │ │ │ │ └── Trigger │ │ │ │ │ └── Trigger.tsx │ │ │ ├── config.ts │ │ │ ├── hooks │ │ │ │ └── useOpen.ts │ │ │ ├── index.ts │ │ │ └── types.ts │ │ ├── Tabs │ │ │ ├── README-ru.md │ │ │ ├── README.md │ │ │ ├── Tabs.scss │ │ │ ├── Tabs.tsx │ │ │ ├── TabsContext.ts │ │ │ ├── TabsItem.tsx │ │ │ ├── __snapshots__ │ │ │ │ └── Tabs.visual.test.tsx-snapshots │ │ │ │ │ ├── Tabs-smoke-allow-not-selected-light-chromium-linux.png │ │ │ │ │ ├── Tabs-smoke-light-chromium-linux.png │ │ │ │ │ └── Tabs-smoke-with-custom-tab-light-chromium-linux.png │ │ │ ├── __stories__ │ │ │ │ ├── Docs.mdx │ │ │ │ ├── Tabs.stories.tsx │ │ │ │ ├── getTabsMock.tsx │ │ │ │ └── types.ts │ │ │ ├── __tests__ │ │ │ │ ├── Tabs.test.tsx │ │ │ │ ├── Tabs.visual.test.tsx │ │ │ │ ├── TabsItem.test.tsx │ │ │ │ ├── cases.tsx │ │ │ │ └── helpers.tsx │ │ │ └── index.ts │ │ └── index.ts │ ├── mobile │ │ ├── MobileContext.ts │ │ ├── MobileProvider.tsx │ │ ├── constants.ts │ │ ├── index.ts │ │ ├── useMobile.ts │ │ ├── usePlatform.ts │ │ └── withMobile.tsx │ ├── tabs │ │ ├── README.md │ │ ├── Tab.scss │ │ ├── Tab.tsx │ │ ├── TabList.scss │ │ ├── TabList.tsx │ │ ├── TabPanel.scss │ │ ├── TabPanel.tsx │ │ ├── TabProvider.tsx │ │ ├── __snapshots__ │ │ │ └── TabList.visual.test.tsx-snapshots │ │ │ │ ├── TabList-smoke-light-chromium-linux.png │ │ │ │ ├── TabList-smoke-with-custom-tab-light-chromium-linux.png │ │ │ │ └── TabList-smoke-without-value-light-chromium-linux.png │ │ ├── __stories__ │ │ │ ├── Docs.mdx │ │ │ ├── TabList.stories.tsx │ │ │ └── getTabsMock.tsx │ │ ├── __tests__ │ │ │ ├── Tab.test.tsx │ │ │ ├── TabList.test.tsx │ │ │ ├── TabList.visual.test.tsx │ │ │ ├── TabPanel.test.tsx │ │ │ ├── TabProvider.test.tsx │ │ │ ├── cases.tsx │ │ │ ├── constants.ts │ │ │ └── helpers.tsx │ │ ├── constants.ts │ │ ├── contexts │ │ │ └── TabContext.tsx │ │ ├── hooks │ │ │ ├── useTab.ts │ │ │ ├── useTabList.ts │ │ │ └── useTabPanel.ts │ │ ├── index.ts │ │ └── types.ts │ ├── theme │ │ ├── ThemeContext.ts │ │ ├── ThemeProvider.tsx │ │ ├── ThemeSettingsContext.ts │ │ ├── __stories__ │ │ │ └── Theme.stories.tsx │ │ ├── constants.ts │ │ ├── dom-helpers.ts │ │ ├── getRootClassName.ts │ │ ├── getThemeType.ts │ │ ├── index.ts │ │ ├── types.ts │ │ ├── useDirection.ts │ │ ├── useSystemTheme.ts │ │ ├── useTheme.ts │ │ ├── useThemeContext.ts │ │ ├── useThemeSettings.ts │ │ ├── useThemeType.ts │ │ ├── useThemeValue.ts │ │ ├── withDirection.tsx │ │ ├── withTheme.tsx │ │ └── withThemeValue.tsx │ ├── types.ts │ ├── useList │ │ ├── __stories__ │ │ │ ├── DndExample.stories.tsx │ │ │ ├── Docs.mdx │ │ │ ├── ListInfinityScroll.stories.tsx │ │ │ ├── PopupWithToggler.stories.tsx │ │ │ ├── RecursiveRenderer.stories.tsx │ │ │ ├── VirtualizedList.stories.tsx │ │ │ ├── components │ │ │ │ ├── FlattenList.tsx │ │ │ │ ├── InfinityScrollList.tsx │ │ │ │ ├── IntersectionContainer │ │ │ │ │ └── IntersectionContainer.tsx │ │ │ │ ├── ListWithDnd.tsx │ │ │ │ ├── PopupWithTogglerList.tsx │ │ │ │ ├── RecursiveList.tsx │ │ │ │ └── VirtualizedListContainer │ │ │ │ │ ├── VirtualizedListContainer.async.tsx │ │ │ │ │ ├── VirtualizedListContainer.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.ts │ │ │ ├── docs │ │ │ │ ├── compute-item-size.md │ │ │ │ ├── get-item-render-state.md │ │ │ │ ├── get-list-item-click-handler.md │ │ │ │ ├── get-list-item-qa.md │ │ │ │ ├── get-list-parsed-state.md │ │ │ │ ├── list-container-view.md │ │ │ │ ├── list-item-view.md │ │ │ │ ├── list-recursive-renderer.md │ │ │ │ ├── scroll-to-list-item.md │ │ │ │ ├── use-list-filter.md │ │ │ │ ├── use-list-keydown.md │ │ │ │ └── use-list.md │ │ │ └── utils │ │ │ │ ├── makeData.ts │ │ │ │ ├── reorderArray.ts │ │ │ │ └── useInfinityFetch.ts │ │ ├── components │ │ │ ├── ListContainer │ │ │ │ ├── ListContainer.tsx │ │ │ │ └── index.ts │ │ │ ├── ListContainerView │ │ │ │ ├── ListContainerView.scss │ │ │ │ ├── ListContainerView.tsx │ │ │ │ └── index.ts │ │ │ ├── ListItemExpandIcon │ │ │ │ ├── ListItemExpandIcon.scss │ │ │ │ ├── ListItemExpandIcon.tsx │ │ │ │ ├── __stories__ │ │ │ │ │ ├── ListItemExpandIcon.stories.tsx │ │ │ │ │ └── list-item-expand-icon.md │ │ │ │ └── index.ts │ │ │ ├── ListItemView │ │ │ │ ├── ListItemView.scss │ │ │ │ ├── ListItemView.tsx │ │ │ │ ├── ListItemViewContent.tsx │ │ │ │ ├── __stories__ │ │ │ │ │ └── ListItemView.stories.tsx │ │ │ │ ├── index.ts │ │ │ │ └── styles.ts │ │ │ └── ListRecursiveRenderer │ │ │ │ ├── ListRecursiveRenderer.scss │ │ │ │ ├── ListRecursiveRenderer.tsx │ │ │ │ └── index.ts │ │ ├── constants.ts │ │ ├── hooks │ │ │ ├── useFlattenListItems.ts │ │ │ ├── useList.ts │ │ │ ├── useListFilter.ts │ │ │ ├── useListKeydown.tsx │ │ │ ├── useListParsedState.ts │ │ │ └── useListState.ts │ │ ├── index.ts │ │ ├── migration-guide.md │ │ ├── types.ts │ │ └── utils │ │ │ ├── computeItemSize.ts │ │ │ ├── defaultFilterItems.test.ts │ │ │ ├── defaultFilterItems.ts │ │ │ ├── findNextIndex.ts │ │ │ ├── flattenItems.test.ts │ │ │ ├── flattenItems.ts │ │ │ ├── getItemRenderState.tsx │ │ │ ├── getListItemClickHandler.ts │ │ │ ├── getListItemId.ts │ │ │ ├── getListItemQa.ts │ │ │ ├── getListParsedState.test.ts │ │ │ ├── getListParsedState.ts │ │ │ ├── groupItemId.ts │ │ │ ├── isTreeItemGuard.ts │ │ │ └── scrollToListItem.ts │ ├── utils │ │ ├── __tests__ │ │ │ ├── class-transform.test.ts │ │ │ ├── isOfType.test.tsx │ │ │ └── xpath.test.tsx │ │ ├── class-transform.ts │ │ ├── cn.ts │ │ ├── common.ts │ │ ├── event-broker │ │ │ ├── EventBroker.ts │ │ │ ├── index.ts │ │ │ └── useEventBroker.ts │ │ ├── filterDOMProps.ts │ │ ├── getComponentName.ts │ │ ├── getElementRef.ts │ │ ├── isOfType.ts │ │ ├── layer-manager │ │ │ ├── LayerManager.ts │ │ │ ├── index.ts │ │ │ └── useLayer.ts │ │ ├── mergeProps.ts │ │ ├── svg.ts │ │ ├── transition.ts │ │ ├── typeCheckers.ts │ │ ├── warn.ts │ │ ├── withEventBrokerDomHandlers.tsx │ │ └── xpath.ts │ └── variables.scss ├── constants.ts ├── demo │ ├── DocsDecorator │ │ ├── DocsDecorator.scss │ │ └── DocsDecorator.tsx │ ├── DocsExample │ │ ├── DocsExample.scss │ │ └── DocsExample.tsx │ ├── DocsSource │ │ └── DocsSource.tsx │ ├── Showcase │ │ ├── Showcase.scss │ │ ├── Showcase.tsx │ │ └── index.ts │ ├── ShowcaseGrid │ │ ├── ShowcaseGrid.tsx │ │ ├── getPropsCombinations.test.ts │ │ ├── getPropsCombinations.tsx │ │ └── index.ts │ ├── ShowcaseItem │ │ ├── ShowcaseItem.scss │ │ ├── ShowcaseItem.tsx │ │ └── index.ts │ ├── colors │ │ ├── Base.tsx │ │ ├── ColorPanel.scss │ │ ├── ColorPanel.tsx │ │ ├── ColorTable.scss │ │ ├── ColorTable.tsx │ │ ├── Effects.tsx │ │ ├── Lines.tsx │ │ ├── Misc.tsx │ │ ├── Private.tsx │ │ └── Texts.tsx │ └── typography │ │ ├── Fonts.tsx │ │ ├── TextPanel.scss │ │ ├── TextPanel.tsx │ │ └── Variants.tsx ├── deprecated.ts ├── hooks │ ├── index.ts │ ├── private │ │ ├── index.ts │ │ ├── useAnimateHeight │ │ │ ├── README.md │ │ │ ├── index.ts │ │ │ └── useAnimateHeight.ts │ │ ├── useBoolean │ │ │ ├── README.md │ │ │ ├── index.ts │ │ │ └── useBoolean.ts │ │ ├── useCheckbox │ │ │ ├── README.md │ │ │ ├── index.ts │ │ │ └── useCheckbox.ts │ │ ├── useCloseOnTimeout │ │ │ ├── README.md │ │ │ ├── index.ts │ │ │ └── useCloseOnTimeout.ts │ │ ├── useConditionallyControlledState │ │ │ ├── README.md │ │ │ ├── index.ts │ │ │ └── useConditionallyControlledState.ts │ │ ├── useElementSize │ │ │ ├── README.md │ │ │ ├── index.ts │ │ │ └── useElementSize.ts │ │ ├── useFormResetHandler │ │ │ └── index.ts │ │ ├── useHover │ │ │ ├── README.md │ │ │ ├── index.ts │ │ │ └── useHover.ts │ │ ├── usePrevious │ │ │ ├── README.md │ │ │ ├── index.ts │ │ │ └── usePrevious.ts │ │ ├── useRadio │ │ │ ├── README.md │ │ │ ├── index.ts │ │ │ └── useRadio.ts │ │ ├── useRadioGroup │ │ │ ├── README.md │ │ │ ├── index.ts │ │ │ └── useRadioGroup.ts │ │ ├── useStateWithCallback │ │ │ ├── README.md │ │ │ ├── index.ts │ │ │ └── useStateWithCallback.ts │ │ ├── useTooltipVisible │ │ │ └── index.ts │ │ └── useUpdateEffect │ │ │ ├── README.md │ │ │ ├── index.ts │ │ │ └── useUpdateEffect.ts │ ├── useActionHandlers │ │ ├── README.md │ │ ├── index.ts │ │ └── useActionHandlers.ts │ ├── useAsyncActionHandler │ │ ├── README.md │ │ ├── __stories__ │ │ │ ├── ProgressButton.tsx │ │ │ ├── UseAsyncActionHandlerDemo.classname.ts │ │ │ ├── UseAsyncActionHandlerDemo.scss │ │ │ ├── UseAsyncActionHandlerDemo.tsx │ │ │ └── UseAsyncActionHandlerStories.stories.tsx │ │ ├── index.ts │ │ └── useAsyncActionHandler.ts │ ├── useControlledState │ │ ├── README.md │ │ ├── index.ts │ │ ├── useControlledState.test.tsx │ │ └── useControlledState.ts │ ├── useFileInput │ │ ├── README.md │ │ ├── __stories__ │ │ │ └── UseFileInput.stories.tsx │ │ ├── index.ts │ │ └── useFileInput.ts │ ├── useFocusWithin │ │ ├── README.md │ │ ├── SyntheticFocusEvent.ts │ │ ├── index.ts │ │ ├── useFocusWithin.test.tsx │ │ ├── useFocusWithin.ts │ │ └── useSyntheticBlurEvent.tsx │ ├── useForkRef │ │ ├── README.md │ │ ├── index.ts │ │ ├── mergeRefs.ts │ │ ├── setRef.ts │ │ └── useForkRef.ts │ ├── useIntersection │ │ ├── README.md │ │ ├── index.ts │ │ └── useIntersection.ts │ ├── useListNavigation │ │ ├── README.md │ │ ├── index.ts │ │ ├── moveBack.ts │ │ ├── moveForward.ts │ │ └── useListNavigation.ts │ ├── useOutsideClick │ │ ├── README.md │ │ ├── __tests__ │ │ │ ├── Demo.tsx │ │ │ └── useOutsideClick.test.tsx │ │ ├── index.ts │ │ └── useOutsideClick.tsx │ ├── usePortalContainer │ │ ├── PortalProvider.tsx │ │ ├── README.md │ │ ├── index.ts │ │ └── usePortalContainer.ts │ ├── useResizeObserver │ │ ├── README.md │ │ ├── index.ts │ │ └── useResizeObserver.ts │ ├── useSelect │ │ ├── README.md │ │ ├── __tests__ │ │ │ └── useOpenState.test.tsx │ │ ├── index.ts │ │ ├── types.ts │ │ ├── useOpenState.ts │ │ └── useSelect.ts │ ├── useTimeout │ │ ├── README.md │ │ ├── index.ts │ │ └── useTimeout.ts │ ├── useUniqId │ │ ├── README.md │ │ ├── index.ts │ │ └── useUniqId.ts │ ├── useViewportSize │ │ ├── README.md │ │ ├── __tests__ │ │ │ └── useViewportSize.test.tsx │ │ ├── index.ts │ │ └── useViewportSize.tsx │ └── useVirtualElementRef │ │ ├── README.md │ │ ├── index.ts │ │ └── useVirtualElementRef.ts ├── i18n │ ├── addComponentKeysets.ts │ ├── addLanguageKeysets.test.ts │ ├── addLanguageKeysets.ts │ ├── i18n.ts │ ├── index.ts │ └── types.ts ├── index.ts ├── legacy.ts ├── server.ts ├── stories │ ├── Branding │ │ ├── BrandingConfugurator │ │ │ ├── BrandingConfigurator.scss │ │ │ └── BrandingConfigurator.tsx │ │ ├── Example.stories.tsx │ │ ├── Overview.mdx │ │ ├── PaletteGenerator.stories.tsx │ │ └── PaletteGenerator │ │ │ ├── PaletteGenerator.scss │ │ │ └── PaletteGenerator.tsx │ ├── Colors.stories.tsx │ ├── Typography.stories.tsx │ └── tests-factory │ │ ├── create-smoke-scenarios.test.ts │ │ ├── create-smoke-scenarios.ts │ │ └── models.ts ├── toaster-singleton.ts ├── types │ └── utils.ts ├── unstable.ts └── utils │ ├── configure.ts │ └── dom.ts ├── styles ├── fonts.scss ├── mixins.scss ├── styles.scss └── themes │ ├── _index.scss │ ├── common │ ├── _index.scss │ ├── spacing.scss │ └── typography.scss │ ├── dark-hc │ ├── _index.scss │ ├── base.scss │ ├── line.scss │ ├── private.scss │ ├── sfx.scss │ ├── system.scss │ └── text.scss │ ├── dark │ ├── _index.scss │ ├── base.scss │ ├── line.scss │ ├── private.scss │ ├── sfx.scss │ ├── system.scss │ └── text.scss │ ├── light-hc │ ├── _index.scss │ ├── base.scss │ ├── line.scss │ ├── private.scss │ ├── sfx.scss │ ├── system.scss │ └── text.scss │ └── light │ ├── _index.scss │ ├── base.scss │ ├── line.scss │ ├── private.scss │ ├── sfx.scss │ ├── system.scss │ └── text.scss ├── test-utils ├── setup-tests-after.ts ├── setup-tests.ts ├── setupIntersectionObserverMock.ts ├── setupTimersMock.ts └── utils.tsx ├── tsconfig.json └── tsconfig.test.json /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Telegram Chat 4 | url: https://t.me/gravity_ui_chat 5 | about: Ask questions and discuss with other Gravity UI users in real time. 6 | -------------------------------------------------------------------------------- /.github/workflows/pr-preview-build.yml: -------------------------------------------------------------------------------- 1 | name: PR Preview Build 2 | 3 | on: 4 | pull_request: 5 | 6 | jobs: 7 | build: 8 | name: Build 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: gravity-ui/preview-build-action@v2 12 | with: 13 | node-version: 20 14 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | .vscode 3 | .history 4 | .DS_Store 5 | *.log 6 | 7 | node_modules 8 | 9 | /storybook-static 10 | /build 11 | /styles/**/*.css 12 | 13 | /coverage 14 | /playwright/.cache* 15 | /playwright/report* 16 | /playwright/test-results 17 | -------------------------------------------------------------------------------- /.husky/commit-msg: -------------------------------------------------------------------------------- 1 | npx commitlint -e 2 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | npx nano-staged 2 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | registry=https://registry.npmjs.org 2 | legacy-peer-deps=true 3 | engine-strict=true 4 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 20 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | storybook-static 2 | build 3 | CHANGELOG.md 4 | CONTRIBUTING.md 5 | -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@gravity-ui/prettier-config'); 2 | -------------------------------------------------------------------------------- /.storybook/manager.ts: -------------------------------------------------------------------------------- 1 | import {addons} from '@storybook/manager-api'; 2 | 3 | import {themes} from './theme'; 4 | 5 | addons.setConfig({ 6 | theme: themes.light, 7 | }); 8 | -------------------------------------------------------------------------------- /.storybook/preview-head.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.stylelintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["@gravity-ui/stylelint-config", "@gravity-ui/stylelint-config/prettier"], 3 | "plugins": ["stylelint-use-logical"], 4 | "rules": { 5 | "csstools/use-logical": ["always", {"except": ["float", "width", "min-width", "max-width", "height", "min-height", "max-height"]}] 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /commitlint.config.js: -------------------------------------------------------------------------------- 1 | module.exports = {extends: ['@commitlint/config-conventional']}; 2 | -------------------------------------------------------------------------------- /docs/assets/uikit_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/docs/assets/uikit_cover.png -------------------------------------------------------------------------------- /playwright/playwright/index.scss: -------------------------------------------------------------------------------- 1 | @forward '../../styles/styles.scss'; 2 | -------------------------------------------------------------------------------- /src/components/ActionTooltip/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './ActionTooltip.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/ActionTooltip/index.ts: -------------------------------------------------------------------------------- 1 | export {ActionTooltip} from './ActionTooltip'; 2 | export type {ActionTooltipProps} from './ActionTooltip'; 3 | -------------------------------------------------------------------------------- /src/components/ActionsPanel/__snapshots__/ActionsPanel.visual.test.tsx-snapshots/ActionsPanel-smoke-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/ActionsPanel/__snapshots__/ActionsPanel.visual.test.tsx-snapshots/ActionsPanel-smoke-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/ActionsPanel/__tests__/helpersPlaywright.tsx: -------------------------------------------------------------------------------- 1 | import {ActionsPanel} from '../ActionsPanel'; 2 | import type {ActionsPanelProps} from '../types'; 3 | 4 | export const TestActionsPanelWithNote = (props: ActionsPanelProps) => { 5 | return 'note'} {...props} />; 6 | }; 7 | -------------------------------------------------------------------------------- /src/components/ActionsPanel/components/hooks/index.ts: -------------------------------------------------------------------------------- 1 | export {useCollapseActions} from './useCollapseActions'; 2 | export {OBSERVER_TARGET_ATTR} from './useObserveIntersection'; 3 | -------------------------------------------------------------------------------- /src/components/ActionsPanel/components/hooks/types.ts: -------------------------------------------------------------------------------- 1 | export type VisibilityMap = Record; 2 | -------------------------------------------------------------------------------- /src/components/ActionsPanel/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_close": "Close", 3 | "label_more": "Show more" 4 | } 5 | -------------------------------------------------------------------------------- /src/components/ActionsPanel/i18n/index.ts: -------------------------------------------------------------------------------- 1 | import {addComponentKeysets} from '../../../i18n'; 2 | 3 | import en from './en.json'; 4 | import ru from './ru.json'; 5 | 6 | const COMPONENT = 'ActionsPanel'; 7 | 8 | export default addComponentKeysets({en, ru}, COMPONENT); 9 | -------------------------------------------------------------------------------- /src/components/ActionsPanel/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_close": "Закрыть", 3 | "label_more": "Показать больше" 4 | } 5 | -------------------------------------------------------------------------------- /src/components/ActionsPanel/index.ts: -------------------------------------------------------------------------------- 1 | export {ActionsPanel} from './ActionsPanel'; 2 | export type {ActionsPanelProps} from './types'; 3 | -------------------------------------------------------------------------------- /src/components/Alert/AlertContext.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | 3 | import type {AlertContextType} from './types'; 4 | 5 | export const AlertContext = React.createContext(null); 6 | -------------------------------------------------------------------------------- /src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-Actions-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-Actions-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-Actions-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-Actions-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-Align-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-Align-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-Align-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-Align-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-Corners-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-Corners-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-Corners-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-Corners-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-CustomIcon-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-CustomIcon-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-CustomIcon-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-CustomIcon-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-Default-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-Default-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-Default-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-Default-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-Layout-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-Layout-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-Layout-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-Layout-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-Theme-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-Theme-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-Theme-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-Theme-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-View-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-View-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-View-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-render-story-View-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-smoke-smoke-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Alert/__snapshots__/Alert.visual.test.tsx-snapshots/Alert-smoke-smoke-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Alert/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Alert.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Alert/__tests__/helpersPlaywright.tsx: -------------------------------------------------------------------------------- 1 | import {composeStories} from '@storybook/react'; 2 | 3 | import * as DefaultAlertStories from '../__stories__/Alert.stories'; 4 | 5 | export const AlertStories = composeStories(DefaultAlertStories); 6 | -------------------------------------------------------------------------------- /src/components/Alert/constants.ts: -------------------------------------------------------------------------------- 1 | import {block} from '../utils/cn'; 2 | 3 | import './Alert.scss'; 4 | 5 | export const DEFAULT_ICON_SIZE = 18; 6 | 7 | export const bAlert = block('alert'); 8 | -------------------------------------------------------------------------------- /src/components/Alert/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_close": "Close" 3 | } 4 | -------------------------------------------------------------------------------- /src/components/Alert/i18n/index.ts: -------------------------------------------------------------------------------- 1 | import {addComponentKeysets} from '../../../i18n'; 2 | 3 | import en from './en.json'; 4 | import ru from './ru.json'; 5 | 6 | const COMPONENT = 'Alert'; 7 | 8 | export default addComponentKeysets({en, ru}, COMPONENT); 9 | -------------------------------------------------------------------------------- /src/components/Alert/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_close": "Закрыть" 3 | } 4 | -------------------------------------------------------------------------------- /src/components/Alert/index.ts: -------------------------------------------------------------------------------- 1 | export {Alert} from './Alert'; 2 | export type { 3 | AlertProps, 4 | AlertTitleProps, 5 | AlertActionProps, 6 | AlertActionsProps, 7 | AlertIconProps, 8 | } from './types'; 9 | -------------------------------------------------------------------------------- /src/components/ArrowToggle/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './ArrowToggle.new.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/ArrowToggle/index.ts: -------------------------------------------------------------------------------- 1 | export * from './ArrowToggle'; 2 | -------------------------------------------------------------------------------- /src/components/Avatar/AvatarIcon/index.ts: -------------------------------------------------------------------------------- 1 | export type {AvatarIconProps} from './types'; 2 | export {AvatarIcon} from './AvatarIcon'; 3 | -------------------------------------------------------------------------------- /src/components/Avatar/AvatarIcon/types.ts: -------------------------------------------------------------------------------- 1 | import type {IconData} from '../../Icon'; 2 | import type {AvatarCommonProps} from '../types/common'; 3 | 4 | export interface AvatarIconProps extends AvatarCommonProps { 5 | icon: IconData; 6 | color?: string; 7 | } 8 | -------------------------------------------------------------------------------- /src/components/Avatar/AvatarImage/index.ts: -------------------------------------------------------------------------------- 1 | export type {AvatarImageProps} from './types'; 2 | export {AvatarImage} from './AvatarImage'; 3 | -------------------------------------------------------------------------------- /src/components/Avatar/AvatarText/index.ts: -------------------------------------------------------------------------------- 1 | export type {AvatarTextProps} from './types'; 2 | export {getAvatarDisplayText} from './utils'; 3 | export {AvatarText} from './AvatarText'; 4 | -------------------------------------------------------------------------------- /src/components/Avatar/AvatarText/types.ts: -------------------------------------------------------------------------------- 1 | import type {AvatarCommonProps} from '../types/common'; 2 | 3 | export interface AvatarTextProps extends AvatarCommonProps { 4 | text: string; 5 | color?: string; 6 | } 7 | -------------------------------------------------------------------------------- /src/components/Avatar/__snapshots__/Avatar.visual.test.tsx-snapshots/Avatar-render-story-Icon-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Avatar/__snapshots__/Avatar.visual.test.tsx-snapshots/Avatar-render-story-Icon-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Avatar/__snapshots__/Avatar.visual.test.tsx-snapshots/Avatar-render-story-Icon-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Avatar/__snapshots__/Avatar.visual.test.tsx-snapshots/Avatar-render-story-Icon-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Avatar/__snapshots__/Avatar.visual.test.tsx-snapshots/Avatar-render-story-Image-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Avatar/__snapshots__/Avatar.visual.test.tsx-snapshots/Avatar-render-story-Image-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Avatar/__snapshots__/Avatar.visual.test.tsx-snapshots/Avatar-render-story-Image-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Avatar/__snapshots__/Avatar.visual.test.tsx-snapshots/Avatar-render-story-Image-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Avatar/__snapshots__/Avatar.visual.test.tsx-snapshots/Avatar-render-story-Showcase-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Avatar/__snapshots__/Avatar.visual.test.tsx-snapshots/Avatar-render-story-Showcase-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Avatar/__snapshots__/Avatar.visual.test.tsx-snapshots/Avatar-render-story-Showcase-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Avatar/__snapshots__/Avatar.visual.test.tsx-snapshots/Avatar-render-story-Showcase-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Avatar/__snapshots__/Avatar.visual.test.tsx-snapshots/Avatar-render-story-Text-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Avatar/__snapshots__/Avatar.visual.test.tsx-snapshots/Avatar-render-story-Text-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Avatar/__snapshots__/Avatar.visual.test.tsx-snapshots/Avatar-render-story-Text-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Avatar/__snapshots__/Avatar.visual.test.tsx-snapshots/Avatar-render-story-Text-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Avatar/__snapshots__/Avatar.visual.test.tsx-snapshots/Avatar-render-story-TextInitials-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Avatar/__snapshots__/Avatar.visual.test.tsx-snapshots/Avatar-render-story-TextInitials-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Avatar/__snapshots__/Avatar.visual.test.tsx-snapshots/Avatar-render-story-WithBorder-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Avatar/__snapshots__/Avatar.visual.test.tsx-snapshots/Avatar-render-story-WithBorder-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Avatar/__snapshots__/Avatar.visual.test.tsx-snapshots/Avatar-smoke-with-icon-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Avatar/__snapshots__/Avatar.visual.test.tsx-snapshots/Avatar-smoke-with-icon-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Avatar/__snapshots__/Avatar.visual.test.tsx-snapshots/Avatar-smoke-with-image-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Avatar/__snapshots__/Avatar.visual.test.tsx-snapshots/Avatar-smoke-with-image-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Avatar/__snapshots__/Avatar.visual.test.tsx-snapshots/Avatar-smoke-with-text-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Avatar/__snapshots__/Avatar.visual.test.tsx-snapshots/Avatar-smoke-with-text-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Avatar/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Avatar.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Avatar/__tests__/stories.ts: -------------------------------------------------------------------------------- 1 | import {composeStories} from '@storybook/react'; 2 | 3 | import * as Stories from '../__stories__/Avatar.stories'; 4 | 5 | export const AvatarStories = composeStories(Stories); 6 | -------------------------------------------------------------------------------- /src/components/Avatar/_variables.scss: -------------------------------------------------------------------------------- 1 | @use 'sass:map'; 2 | 3 | $sizes: ( 4 | '3xs': 16px, 5 | '2xs': 20px, 6 | 'xs': 24px, 7 | 's': 28px, 8 | 'm': 32px, 9 | 'l': 42px, 10 | 'xl': 50px, 11 | ); 12 | 13 | $default-size: map.get($sizes, 'm'); 14 | -------------------------------------------------------------------------------- /src/components/Avatar/index.ts: -------------------------------------------------------------------------------- 1 | export type {AvatarSize} from './types/common'; 2 | export type {AvatarProps, AvatarTheme, AvatarView} from './types/main'; 3 | export {AVATAR_SIZES, DEFAULT_AVATAR_SIZE} from './constants'; 4 | export {Avatar} from './Avatar'; 5 | export {getAvatarDisplayText} from './AvatarText'; 6 | -------------------------------------------------------------------------------- /src/components/Avatar/types/common.ts: -------------------------------------------------------------------------------- 1 | export type AvatarSize = '3xs' | '2xs' | 'xs' | 's' | 'm' | 'l' | 'xl'; 2 | 3 | export interface AvatarCommonProps { 4 | size: AvatarSize; 5 | } 6 | -------------------------------------------------------------------------------- /src/components/AvatarStack/__snapshots__/AvatarStack.visual.test.tsx-snapshots/AvatarStack-smoke-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/AvatarStack/__snapshots__/AvatarStack.visual.test.tsx-snapshots/AvatarStack-smoke-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/AvatarStack/__tests__/stories.ts: -------------------------------------------------------------------------------- 1 | import {composeStories} from '@storybook/react'; 2 | 3 | import * as CSFStories from '../__stories__/AvatarStack.stories'; 4 | 5 | export const AvatarStackStories = composeStories(CSFStories); 6 | -------------------------------------------------------------------------------- /src/components/AvatarStack/constants.ts: -------------------------------------------------------------------------------- 1 | export const AVATAR_STACK_DEFAULT_MAX = 3; 2 | -------------------------------------------------------------------------------- /src/components/AvatarStack/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "more": ["and {{count}} more", "and {{count}} more", "and {{count}} more"] 3 | } 4 | -------------------------------------------------------------------------------- /src/components/AvatarStack/i18n/index.ts: -------------------------------------------------------------------------------- 1 | import {addComponentKeysets} from '../../../i18n'; 2 | 3 | import en from './en.json'; 4 | import ru from './ru.json'; 5 | 6 | const COMPONENT = 'AvatarStack'; 7 | 8 | export default addComponentKeysets({en, ru}, COMPONENT); 9 | -------------------------------------------------------------------------------- /src/components/AvatarStack/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "more": ["И eщё {{count}}", "И eщё {{count}}", "И eщё {{count}}"] 3 | } 4 | -------------------------------------------------------------------------------- /src/components/AvatarStack/index.ts: -------------------------------------------------------------------------------- 1 | export {AvatarStack} from './AvatarStack'; 2 | export type { 3 | AvatarStackProps, 4 | AvatarStackOverlapSize, 5 | AvatarStackMoreProps, 6 | AvatarStackMoreButtonProps, 7 | } from './types'; 8 | -------------------------------------------------------------------------------- /src/components/Breadcrumbs/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "breadcrumbs": "Breadcrumbs", 3 | "label_more": "Show more" 4 | } 5 | -------------------------------------------------------------------------------- /src/components/Breadcrumbs/i18n/index.ts: -------------------------------------------------------------------------------- 1 | import {addComponentKeysets} from '../../../i18n'; 2 | 3 | import en from './en.json'; 4 | import ru from './ru.json'; 5 | 6 | const COMPONENT = 'lab/Breadcrumbs'; 7 | 8 | export default addComponentKeysets({en, ru}, COMPONENT); 9 | -------------------------------------------------------------------------------- /src/components/Breadcrumbs/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "breadcrumbs": "Навигация", 3 | "label_more": "Показать больше" 4 | } 5 | -------------------------------------------------------------------------------- /src/components/Breadcrumbs/index.ts: -------------------------------------------------------------------------------- 1 | export {Breadcrumbs} from './Breadcrumbs'; 2 | export type {BreadcrumbsProps} from './Breadcrumbs'; 3 | 4 | export {BreadcrumbsItem} from './BreadcrumbsItem'; 5 | export type {BreadcrumbsItemProps} from './BreadcrumbsItem'; 6 | -------------------------------------------------------------------------------- /src/components/Breadcrumbs/utils.ts: -------------------------------------------------------------------------------- 1 | import {block} from '../utils/cn'; 2 | 3 | export const b = block('breadcrumbs'); 4 | -------------------------------------------------------------------------------- /src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Default-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Default-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Default-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Default-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Disabled-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Disabled-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Disabled-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Disabled-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Icon-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Icon-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Icon-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Icon-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Link-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Link-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Link-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Link-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Loading-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Loading-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Loading-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Loading-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Pin-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Pin-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Pin-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Pin-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Selected-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Selected-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Selected-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Selected-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Size-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Size-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Size-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Size-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-View-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-View-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-View-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-View-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Width-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Width-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Width-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-render-story-Width-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-smoke-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-smoke-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-smoke-default-hovered-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-smoke-default-hovered-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-smoke-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Button/__snapshots__/Button.visual.test.tsx-snapshots/Button-smoke-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Button/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Button.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-ActionType-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-ActionType-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-ActionType-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-ActionType-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-Custom-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-Custom-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-Custom-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-Custom-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-Default-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-Default-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-Default-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-Default-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-SelectionType-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-SelectionType-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-SelectionType-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-SelectionType-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-Size-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-Size-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-Size-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-Size-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-Theme-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-Theme-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-Theme-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-Theme-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-View-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-View-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-View-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-render-story-View-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-smoke-smoke-action-type-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-smoke-smoke-action-type-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-smoke-smoke-container-type-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-smoke-smoke-container-type-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-smoke-smoke-selection-type-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Card/__snapshots__/Card.visual.test.tsx-snapshots/Card-smoke-smoke-selection-type-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Card/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Card.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Card/__tests__/helpersPlaywright.tsx: -------------------------------------------------------------------------------- 1 | import {composeStories} from '@storybook/react'; 2 | 3 | import * as DefaultCardStories from '../__stories__/Card.stories'; 4 | 5 | export const CardStories = composeStories(DefaultCardStories); 6 | -------------------------------------------------------------------------------- /src/components/Card/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Card'; 2 | -------------------------------------------------------------------------------- /src/components/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-smoke-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-smoke-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-smoke-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-smoke-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Checkbox/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Checkbox.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Checkbox/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Checkbox'; 2 | -------------------------------------------------------------------------------- /src/components/ClipboardButton/ClipboardButton.scss: -------------------------------------------------------------------------------- 1 | @use '../variables'; 2 | 3 | $block: '.#{variables.$ns}clipboard-button'; 4 | 5 | #{$block} { 6 | &__icon { 7 | // prevent button icon from firing onMouseEnter/onFocus through parent button's handler 8 | pointer-events: none; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/components/ClipboardButton/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './ClipboardButton.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/ClipboardButton/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "startCopy": "Copy", 3 | "endCopy": "Copied" 4 | } 5 | -------------------------------------------------------------------------------- /src/components/ClipboardButton/i18n/index.ts: -------------------------------------------------------------------------------- 1 | import {addComponentKeysets} from '../../../i18n'; 2 | 3 | import en from './en.json'; 4 | import ru from './ru.json'; 5 | 6 | const COMPONENT = 'ClipboardButton'; 7 | 8 | export default addComponentKeysets({en, ru}, COMPONENT); 9 | -------------------------------------------------------------------------------- /src/components/ClipboardButton/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "startCopy": "Копировать", 3 | "endCopy": "Скопировано" 4 | } 5 | -------------------------------------------------------------------------------- /src/components/ClipboardButton/index.ts: -------------------------------------------------------------------------------- 1 | export * from './ClipboardButton'; 2 | -------------------------------------------------------------------------------- /src/components/ClipboardIcon/__stories__/ClipboardIcon.stories.scss: -------------------------------------------------------------------------------- 1 | .clipboard-icon-stories { 2 | display: grid; 3 | gap: 10px; 4 | grid-template-columns: auto; 5 | } 6 | -------------------------------------------------------------------------------- /src/components/ClipboardIcon/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './ClipboardIcon.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/ClipboardIcon/index.ts: -------------------------------------------------------------------------------- 1 | export * from './ClipboardIcon'; 2 | -------------------------------------------------------------------------------- /src/components/ControlLabel/index.ts: -------------------------------------------------------------------------------- 1 | export {ControlLabel} from './ControlLabel'; 2 | export type {Size as ControlLabelSize, Props as ControlLabelProps} from './types'; 3 | -------------------------------------------------------------------------------- /src/components/CopyToClipboard/index.ts: -------------------------------------------------------------------------------- 1 | export * from './CopyToClipboard'; 2 | export type {CopyToClipboardStatus, CopyToClipboardProps} from './types'; 3 | -------------------------------------------------------------------------------- /src/components/DefinitionList/__tests__/stories.ts: -------------------------------------------------------------------------------- 1 | import {composeStories} from '@storybook/react'; 2 | 3 | import * as CSFStories from '../__stories__/DefinitionList.stories'; 4 | 5 | export const DefinitionListStories = composeStories(CSFStories); 6 | -------------------------------------------------------------------------------- /src/components/DefinitionList/constants.ts: -------------------------------------------------------------------------------- 1 | import {block} from '../utils/cn'; 2 | 3 | export const b = block('definition-list'); 4 | -------------------------------------------------------------------------------- /src/components/DefinitionList/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_note": "Note" 3 | } 4 | -------------------------------------------------------------------------------- /src/components/DefinitionList/i18n/index.ts: -------------------------------------------------------------------------------- 1 | import {addComponentKeysets} from '../../../i18n'; 2 | 3 | import en from './en.json'; 4 | import ru from './ru.json'; 5 | 6 | export default addComponentKeysets({en, ru}, 'DefinitionList'); 7 | -------------------------------------------------------------------------------- /src/components/DefinitionList/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_note": "Справка" 3 | } 4 | -------------------------------------------------------------------------------- /src/components/DefinitionList/index.ts: -------------------------------------------------------------------------------- 1 | export {DefinitionList} from './DefinitionList'; 2 | export {DefinitionListItem} from './components/DefinitionListItem'; 3 | export type {DefinitionListProps, DefinitionListItemProps} from './types'; 4 | -------------------------------------------------------------------------------- /src/components/DefinitionList/utils.ts: -------------------------------------------------------------------------------- 1 | export function isUnbreakableOver(limit: number) { 2 | return function (value: string): boolean { 3 | const posibleLines = value.split(/\s+/); 4 | 5 | return posibleLines.some((line) => line.length > limit); 6 | }; 7 | } 8 | -------------------------------------------------------------------------------- /src/components/Dialog/DialogDivider/DialogDivider.scss: -------------------------------------------------------------------------------- 1 | @use '../../variables'; 2 | 3 | $block: '.#{variables.$ns}dialog-divider'; 4 | 5 | #{$block} { 6 | border-block-start: 1px solid var(--g-color-line-generic); 7 | margin: 0 calc(-1 * var(--_--side-padding)); 8 | } 9 | -------------------------------------------------------------------------------- /src/components/Dialog/__snapshots__/Dialog.visual.test.tsx-snapshots/Dialog-smoke-default-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Dialog/__snapshots__/Dialog.visual.test.tsx-snapshots/Dialog-smoke-default-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Dialog/__snapshots__/Dialog.visual.test.tsx-snapshots/Dialog-smoke-size-l-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Dialog/__snapshots__/Dialog.visual.test.tsx-snapshots/Dialog-smoke-size-l-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Dialog/__snapshots__/Dialog.visual.test.tsx-snapshots/Dialog-smoke-size-m-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Dialog/__snapshots__/Dialog.visual.test.tsx-snapshots/Dialog-smoke-size-m-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Dialog/__snapshots__/Dialog.visual.test.tsx-snapshots/Dialog-smoke-size-s-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Dialog/__snapshots__/Dialog.visual.test.tsx-snapshots/Dialog-smoke-size-s-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Dialog/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Dialog.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Dialog/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "close": "Close dialog" 3 | } 4 | -------------------------------------------------------------------------------- /src/components/Dialog/i18n/index.ts: -------------------------------------------------------------------------------- 1 | import {addComponentKeysets} from '../../../i18n'; 2 | 3 | import en from './en.json'; 4 | import ru from './ru.json'; 5 | 6 | const COMPONENT = 'Dialog'; 7 | 8 | export default addComponentKeysets({en, ru}, COMPONENT); 9 | -------------------------------------------------------------------------------- /src/components/Dialog/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "close": "Закрыть диалоговое окно" 3 | } 4 | -------------------------------------------------------------------------------- /src/components/Dialog/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Dialog'; 2 | export * from './DialogBody/DialogBody'; 3 | export * from './DialogDivider/DialogDivider'; 4 | export * from './DialogHeader/DialogHeader'; 5 | export * from './DialogFooter/DialogFooter'; 6 | -------------------------------------------------------------------------------- /src/components/Disclosure/__stories__/Disclosure.stories.scss: -------------------------------------------------------------------------------- 1 | .disclosure-stories { 2 | display: grid; 3 | gap: 10px; 4 | grid-template-columns: auto; 5 | } 6 | -------------------------------------------------------------------------------- /src/components/Disclosure/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Disclosure.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Disclosure/constants.ts: -------------------------------------------------------------------------------- 1 | import {block} from '../utils/cn'; 2 | 3 | export const b = block('disclosure'); 4 | 5 | export const DisclosureQa = { 6 | SUMMARY: 'disclosure-summary', 7 | DETAILS: 'disclosure-details', 8 | }; 9 | -------------------------------------------------------------------------------- /src/components/Disclosure/index.ts: -------------------------------------------------------------------------------- 1 | export {Disclosure} from './Disclosure'; 2 | export type {DisclosureSize, DisclosureArrowPosition, DisclosureProps} from './Disclosure'; 3 | export {DisclosureQa} from './constants'; 4 | -------------------------------------------------------------------------------- /src/components/Divider/__snapshots__/Divider.visual.test.tsx-snapshots/Divider-smoke-smoke-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Divider/__snapshots__/Divider.visual.test.tsx-snapshots/Divider-smoke-smoke-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Divider/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Divider.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Divider/__tests__/cases.tsx: -------------------------------------------------------------------------------- 1 | import type {Cases} from '../../../stories/tests-factory/models'; 2 | import type {DividerProps} from '../Divider'; 3 | 4 | export const orientationCases: Cases = ['vertical', 'horizontal']; 5 | -------------------------------------------------------------------------------- /src/components/Divider/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Divider'; 2 | -------------------------------------------------------------------------------- /src/components/DropdownMenu/DropdownMenu.classname.ts: -------------------------------------------------------------------------------- 1 | import {block} from '../utils/cn'; 2 | 3 | export const cnDropdownMenu = block('dropdown-menu'); 4 | -------------------------------------------------------------------------------- /src/components/DropdownMenu/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './DropdownMenu.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/DropdownMenu/__stories__/DropdownMenu.stories.scss: -------------------------------------------------------------------------------- 1 | .dropdown-menu-stories { 2 | &__label-switcher-menu { 3 | width: 150px; 4 | } 5 | 6 | &__label-switcher-switcher { 7 | cursor: pointer; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/components/DropdownMenu/__tests__/cases.ts: -------------------------------------------------------------------------------- 1 | import type {Cases} from '../../../stories/tests-factory/models'; 2 | import type {DropdownMenuItemProps} from '../DropdownMenuItem'; 3 | 4 | export const sizeCases: Cases['size']> = ['s', 'm', 'l', 'xl']; 5 | -------------------------------------------------------------------------------- /src/components/DropdownMenu/constants.ts: -------------------------------------------------------------------------------- 1 | import type {DropdownMenuListItem} from './types'; 2 | 3 | export const dropdownMenuSeparator: DropdownMenuListItem = {text: '', action: () => {}, path: []}; 4 | -------------------------------------------------------------------------------- /src/components/DropdownMenu/index.ts: -------------------------------------------------------------------------------- 1 | export * from './DropdownMenu'; 2 | -------------------------------------------------------------------------------- /src/components/DropdownMenu/utils/isMenuActive.ts: -------------------------------------------------------------------------------- 1 | import {stringifyNavigationPath} from './stringifyNavigationPath'; 2 | 3 | export function isMenuActive(path: number[], activeMenuPath: number[]) { 4 | return stringifyNavigationPath(path) === stringifyNavigationPath(activeMenuPath); 5 | } 6 | -------------------------------------------------------------------------------- /src/components/DropdownMenu/utils/isSeparator.ts: -------------------------------------------------------------------------------- 1 | import {dropdownMenuSeparator} from '../constants'; 2 | import type {DropdownMenuListItem} from '../types'; 3 | 4 | export function isSeparator(item: DropdownMenuListItem) { 5 | return item === dropdownMenuSeparator; 6 | } 7 | -------------------------------------------------------------------------------- /src/components/DropdownMenu/utils/isSubmenuOpen.ts: -------------------------------------------------------------------------------- 1 | export function isSubmenuOpen(path?: number[], activeMenuPath?: number[]) { 2 | return path?.every((item, index) => item === activeMenuPath?.[index]) ?? false; 3 | } 4 | -------------------------------------------------------------------------------- /src/components/DropdownMenu/utils/shouldSkipItemNavigation.ts: -------------------------------------------------------------------------------- 1 | import type {DropdownMenuListItem} from '../types'; 2 | 3 | import {isSeparator} from './isSeparator'; 4 | 5 | export function shouldSkipItemNavigation(item: DropdownMenuListItem) { 6 | return item.disabled || isSeparator(item); 7 | } 8 | -------------------------------------------------------------------------------- /src/components/DropdownMenu/utils/stringifyNavigationPath.ts: -------------------------------------------------------------------------------- 1 | export function stringifyNavigationPath(path?: number[]) { 2 | return path?.join(' ') ?? ''; 3 | } 4 | -------------------------------------------------------------------------------- /src/components/FilePreview/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_image-preview-error": "Failed to load image" 3 | } 4 | -------------------------------------------------------------------------------- /src/components/FilePreview/i18n/index.ts: -------------------------------------------------------------------------------- 1 | import {addComponentKeysets} from '../../../i18n'; 2 | 3 | import en from './en.json'; 4 | import ru from './ru.json'; 5 | 6 | const COMPONENT = 'FilePreview'; 7 | 8 | export default addComponentKeysets({en, ru}, COMPONENT); 9 | -------------------------------------------------------------------------------- /src/components/FilePreview/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_image-preview-error": "Не удалось загрузить изображение" 3 | } 4 | -------------------------------------------------------------------------------- /src/components/FilePreview/index.ts: -------------------------------------------------------------------------------- 1 | export {FilePreview} from './FilePreview'; 2 | export type {FilePreviewProps} from './FilePreview'; 3 | export type {FileType, FilePreviewAction} from './types'; 4 | export {getFileType} from './utils'; 5 | -------------------------------------------------------------------------------- /src/components/FilePreview/variables.scss: -------------------------------------------------------------------------------- 1 | $verticalCardPadding: 4px; 2 | $horizontalCardPadding: 10px; 3 | $cardWidth: 120px; 4 | $compactCardWidth: 48px; 5 | $imagePreviewWidth: 96px; 6 | $imagePreviewHeight: 64px; 7 | -------------------------------------------------------------------------------- /src/components/HelpMark/__snapshots__/HelpMark.visual.test.tsx-snapshots/HelpMark-smoke-default-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/HelpMark/__snapshots__/HelpMark.visual.test.tsx-snapshots/HelpMark-smoke-default-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/HelpMark/__stories__/Showcase.mdx: -------------------------------------------------------------------------------- 1 | import {Canvas, Meta} from '@storybook/blocks'; 2 | import * as Stories from './HelpMark.stories'; 3 | 4 | 5 | 6 | ## Size 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/components/HelpMark/__tests__/stories.ts: -------------------------------------------------------------------------------- 1 | import {composeStories} from '@storybook/react'; 2 | 3 | import * as CSFStories from '../__stories__/HelpMark.stories'; 4 | 5 | export const HelpMarkStories = composeStories(CSFStories); 6 | -------------------------------------------------------------------------------- /src/components/HelpMark/constants.ts: -------------------------------------------------------------------------------- 1 | export const ICON_SIZE_MAP = { 2 | s: 14, 3 | m: 16, 4 | l: 18, 5 | xl: 20, 6 | }; 7 | -------------------------------------------------------------------------------- /src/components/HelpMark/index.ts: -------------------------------------------------------------------------------- 1 | export * from './HelpMark'; 2 | -------------------------------------------------------------------------------- /src/components/Hotkey/__snapshots__/Hotkey.visual.test.tsx-snapshots/Hotkey-smoke-smoke-dark-view-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Hotkey/__snapshots__/Hotkey.visual.test.tsx-snapshots/Hotkey-smoke-smoke-dark-view-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Hotkey/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Hotkey.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Hotkey/index.ts: -------------------------------------------------------------------------------- 1 | export {Hotkey, parseHotkeys} from './Hotkey'; 2 | export type {HotkeyProps} from './Hotkey'; 3 | -------------------------------------------------------------------------------- /src/components/Hotkey/utils.ts: -------------------------------------------------------------------------------- 1 | export const isMac = (): boolean => 2 | typeof navigator !== 'undefined' ? /Mac|iP(hone|[oa]d)/.test(navigator.platform) : false; 3 | 4 | export function split(val: string, separator: string | RegExp): string[] { 5 | return val.trim().split(separator).filter(Boolean); 6 | } 7 | -------------------------------------------------------------------------------- /src/components/Icon/Icon.scss: -------------------------------------------------------------------------------- 1 | @use '../variables'; 2 | 3 | $block: '.#{variables.$ns}icon'; 4 | 5 | #{$block} { 6 | line-height: 0; 7 | vertical-align: top; 8 | } 9 | -------------------------------------------------------------------------------- /src/components/Icon/__snapshots__/Icon.visual.test.tsx-snapshots/Icon-smoke-smoke-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Icon/__snapshots__/Icon.visual.test.tsx-snapshots/Icon-smoke-smoke-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Icon/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Icon.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Icon/__tests__/cases.tsx: -------------------------------------------------------------------------------- 1 | import type {Cases} from '../../../stories/tests-factory/models'; 2 | import type {IconProps} from '../Icon'; 3 | 4 | export const sizeCases: Cases = [10, 20, 30]; 5 | -------------------------------------------------------------------------------- /src/components/Icon/__tests__/helpersPlaywright.tsx: -------------------------------------------------------------------------------- 1 | import {Rocket} from '@gravity-ui/icons'; 2 | 3 | import type {IconProps} from '../Icon'; 4 | import {Icon} from '../Icon'; 5 | 6 | export const TestIcon = (props: Omit) => { 7 | return ; 8 | }; 9 | -------------------------------------------------------------------------------- /src/components/Icon/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Icon'; 2 | -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Close-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Close-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Close-dark-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Close-dark-webkit-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Close-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Close-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Close-light-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Close-light-webkit-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Copy-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Copy-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Copy-dark-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Copy-dark-webkit-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Copy-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Copy-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Copy-light-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Copy-light-webkit-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Default-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Default-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Default-dark-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Default-dark-webkit-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Default-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Default-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Default-light-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Default-light-webkit-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Icon-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Icon-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Icon-dark-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Icon-dark-webkit-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Icon-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Icon-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Icon-light-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Icon-light-webkit-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Interactive-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Interactive-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Interactive-dark-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Interactive-dark-webkit-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Interactive-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Interactive-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Interactive-light-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Interactive-light-webkit-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-LinkWrapper-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-LinkWrapper-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-LinkWrapper-dark-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-LinkWrapper-dark-webkit-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-LinkWrapper-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-LinkWrapper-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-LinkWrapper-light-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-LinkWrapper-light-webkit-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Size-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Size-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Size-dark-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Size-dark-webkit-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Size-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Size-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Size-light-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Size-light-webkit-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Theme-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Theme-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Theme-dark-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Theme-dark-webkit-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Theme-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Theme-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Theme-light-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Theme-light-webkit-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Value-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Value-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Value-dark-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Value-dark-webkit-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Value-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Value-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Value-light-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-render-story-Value-light-webkit-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-smoke-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-smoke-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-smoke-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-smoke-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-smoke-with-close-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-smoke-with-close-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-smoke-with-close-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-smoke-with-close-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-smoke-with-copy-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-smoke-with-copy-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-smoke-with-copy-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-smoke-with-copy-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-smoke-with-custom-icon-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-smoke-with-custom-icon-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-smoke-with-custom-icon-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-smoke-with-custom-icon-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-smoke-with-info-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-smoke-with-info-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-smoke-with-info-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Label/__snapshots__/Label.visual.test.tsx-snapshots/Label-smoke-with-info-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Label/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Label.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Label/constants.ts: -------------------------------------------------------------------------------- 1 | export const LabelQa = { 2 | copyButton: 'copy-button', 3 | closeButton: 'close-button', 4 | mainButton: 'main-button', 5 | }; 6 | -------------------------------------------------------------------------------- /src/components/Label/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Label'; 2 | -------------------------------------------------------------------------------- /src/components/Link/__snapshots__/Link.visual.test.tsx-snapshots/Link-smoke-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Link/__snapshots__/Link.visual.test.tsx-snapshots/Link-smoke-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Link/__snapshots__/Link.visual.test.tsx-snapshots/Link-smoke-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Link/__snapshots__/Link.visual.test.tsx-snapshots/Link-smoke-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Link/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Link.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Link/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Link'; 2 | -------------------------------------------------------------------------------- /src/components/List/__snapshots__/List.visual.test.tsx-snapshots/List-smoke-custom-render-item-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/List/__snapshots__/List.visual.test.tsx-snapshots/List-smoke-custom-render-item-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/List/__snapshots__/List.visual.test.tsx-snapshots/List-smoke-empty-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/List/__snapshots__/List.visual.test.tsx-snapshots/List-smoke-empty-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/List/__snapshots__/List.visual.test.tsx-snapshots/List-smoke-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/List/__snapshots__/List.visual.test.tsx-snapshots/List-smoke-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/List/__snapshots__/List.visual.test.tsx-snapshots/List-smoke-virtualized-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/List/__snapshots__/List.visual.test.tsx-snapshots/List-smoke-virtualized-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/List/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './List.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/List/__stories__/ListWithLoader.scss: -------------------------------------------------------------------------------- 1 | @use '../../variables'; 2 | @use '../../../../styles/mixins'; 3 | 4 | .list-with-loader { 5 | overflow: auto; 6 | } 7 | -------------------------------------------------------------------------------- /src/components/List/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './ListItem'; 2 | export * from './SimpleContainer'; 3 | -------------------------------------------------------------------------------- /src/components/List/constants.ts: -------------------------------------------------------------------------------- 1 | import {KeyCode} from '../../constants'; 2 | 3 | export const ListQa = { 4 | ACTIVE_ITEM: 'list-active-item', 5 | }; 6 | 7 | export const listNavigationIgnoredKeys = [ 8 | // Tab key should focus the next element 9 | KeyCode.TAB, 10 | ]; 11 | -------------------------------------------------------------------------------- /src/components/List/index.tsx: -------------------------------------------------------------------------------- 1 | export * from './List'; 2 | export * from './types'; 3 | export * from './components/ListItem'; 4 | export {ListQa} from './constants'; 5 | -------------------------------------------------------------------------------- /src/components/Loader/__snapshots__/Loader.visual.test.tsx-snapshots/Loader-smoke-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Loader/__snapshots__/Loader.visual.test.tsx-snapshots/Loader-smoke-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Loader/__snapshots__/Loader.visual.test.tsx-snapshots/Loader-smoke-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Loader/__snapshots__/Loader.visual.test.tsx-snapshots/Loader-smoke-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Loader/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Loader.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Loader/__tests__/cases.tsx: -------------------------------------------------------------------------------- 1 | import type {Cases} from '../../../stories/tests-factory/models'; 2 | import type {LoaderProps} from '../Loader'; 3 | 4 | export const sizeCases: Cases = ['s', 'm', 'l']; 5 | -------------------------------------------------------------------------------- /src/components/Loader/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Loader'; 2 | -------------------------------------------------------------------------------- /src/components/Menu/__snapshots__/Menu.visual.test.tsx-snapshots/Menu-smoke-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Menu/__snapshots__/Menu.visual.test.tsx-snapshots/Menu-smoke-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Menu/__snapshots__/Menu.visual.test.tsx-snapshots/Menu-smoke-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Menu/__snapshots__/Menu.visual.test.tsx-snapshots/Menu-smoke-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Menu/__snapshots__/Menu.visual.test.tsx-snapshots/Menu-smoke-menu-group-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Menu/__snapshots__/Menu.visual.test.tsx-snapshots/Menu-smoke-menu-group-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Menu/__snapshots__/Menu.visual.test.tsx-snapshots/Menu-smoke-menu-group-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Menu/__snapshots__/Menu.visual.test.tsx-snapshots/Menu-smoke-menu-group-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Menu/__snapshots__/Menu.visual.test.tsx-snapshots/Menu-smoke-menu-item-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Menu/__snapshots__/Menu.visual.test.tsx-snapshots/Menu-smoke-menu-item-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Menu/__snapshots__/Menu.visual.test.tsx-snapshots/Menu-smoke-menu-item-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Menu/__snapshots__/Menu.visual.test.tsx-snapshots/Menu-smoke-menu-item-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Menu/__snapshots__/Menu.visual.test.tsx-snapshots/Menu-smoke-menu-item-with-icons-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Menu/__snapshots__/Menu.visual.test.tsx-snapshots/Menu-smoke-menu-item-with-icons-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Menu/__snapshots__/Menu.visual.test.tsx-snapshots/Menu-smoke-menu-item-with-icons-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Menu/__snapshots__/Menu.visual.test.tsx-snapshots/Menu-smoke-menu-item-with-icons-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Menu/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Menu.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Menu/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Menu'; 2 | export {MenuItem} from './MenuItem'; 3 | export {MenuGroup} from './MenuGroup'; 4 | -------------------------------------------------------------------------------- /src/components/Modal/__snapshots__/Modal.visual.test.tsx-snapshots/Modal-smoke-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Modal/__snapshots__/Modal.visual.test.tsx-snapshots/Modal-smoke-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Modal/__snapshots__/Modal.visual.test.tsx-snapshots/Modal-smoke-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Modal/__snapshots__/Modal.visual.test.tsx-snapshots/Modal-smoke-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Modal/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Modal.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Modal/__tests__/constants.ts: -------------------------------------------------------------------------------- 1 | export const ModalQa = { 2 | content: 'content', 3 | trigger: 'trigger', 4 | }; 5 | -------------------------------------------------------------------------------- /src/components/Modal/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "close": "Close" 3 | } 4 | -------------------------------------------------------------------------------- /src/components/Modal/i18n/index.ts: -------------------------------------------------------------------------------- 1 | import {addComponentKeysets} from '../../../i18n'; 2 | 3 | import en from './en.json'; 4 | import ru from './ru.json'; 5 | 6 | const COMPONENT = 'Modal'; 7 | 8 | export default addComponentKeysets({en, ru}, COMPONENT); 9 | -------------------------------------------------------------------------------- /src/components/Modal/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "close": "Закрыть" 3 | } 4 | -------------------------------------------------------------------------------- /src/components/Modal/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Modal'; 2 | -------------------------------------------------------------------------------- /src/components/NumberInput/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './NumberInput.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/NumberInput/__tests__/stories.tsx: -------------------------------------------------------------------------------- 1 | import {composeStories} from '@storybook/react'; 2 | 3 | import * as DefaultNumberInputStories from '../__stories__/NumberInput.stories'; 4 | 5 | export const NumberInputStories = composeStories(DefaultNumberInputStories); 6 | -------------------------------------------------------------------------------- /src/components/NumberInput/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_increment": "Increment", 3 | "label_decrement": "Decrement" 4 | } 5 | -------------------------------------------------------------------------------- /src/components/NumberInput/i18n/index.ts: -------------------------------------------------------------------------------- 1 | import {addComponentKeysets} from '../../../i18n'; 2 | 3 | import en from './en.json'; 4 | import ru from './ru.json'; 5 | 6 | const COMPONENT = 'NumberInput'; 7 | 8 | export default addComponentKeysets({en, ru}, COMPONENT); 9 | -------------------------------------------------------------------------------- /src/components/NumberInput/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_increment": "Увеличить", 3 | "label_decrement": "Уменьшить" 4 | } 5 | -------------------------------------------------------------------------------- /src/components/NumberInput/index.ts: -------------------------------------------------------------------------------- 1 | export {NumberInput} from './NumberInput'; 2 | export type {NumberInputProps} from './NumberInput'; 3 | -------------------------------------------------------------------------------- /src/components/Overlay/__snapshots__/Overlay.visual.test.tsx-snapshots/Overlay-smoke-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Overlay/__snapshots__/Overlay.visual.test.tsx-snapshots/Overlay-smoke-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Overlay/__snapshots__/Overlay.visual.test.tsx-snapshots/Overlay-smoke-dark-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Overlay/__snapshots__/Overlay.visual.test.tsx-snapshots/Overlay-smoke-dark-webkit-linux.png -------------------------------------------------------------------------------- /src/components/Overlay/__snapshots__/Overlay.visual.test.tsx-snapshots/Overlay-smoke-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Overlay/__snapshots__/Overlay.visual.test.tsx-snapshots/Overlay-smoke-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Overlay/__snapshots__/Overlay.visual.test.tsx-snapshots/Overlay-smoke-light-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Overlay/__snapshots__/Overlay.visual.test.tsx-snapshots/Overlay-smoke-light-webkit-linux.png -------------------------------------------------------------------------------- /src/components/Overlay/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Overlay.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Overlay/__tests__/cases.tsx: -------------------------------------------------------------------------------- 1 | import type {Cases} from '../../../stories/tests-factory/models'; 2 | import type {OverlayProps} from '../Overlay'; 3 | 4 | export const backgroundCases: Cases = ['base', 'float']; 5 | export const visibleCases: Cases = [false]; 6 | -------------------------------------------------------------------------------- /src/components/Overlay/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Overlay'; 2 | -------------------------------------------------------------------------------- /src/components/Pagination/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Pagination.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Pagination/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "button_previous": "Previous", 3 | "button_next": "Next", 4 | "button_first": "First", 5 | "label_input-placeholder": "Page #", 6 | "label_page-of": "of", 7 | "label_select_size": "Select page size" 8 | } 9 | -------------------------------------------------------------------------------- /src/components/Pagination/i18n/index.ts: -------------------------------------------------------------------------------- 1 | import {addComponentKeysets} from '../../../i18n'; 2 | 3 | import en from './en.json'; 4 | import ru from './ru.json'; 5 | 6 | const COMPONENT = 'Pagination'; 7 | 8 | export default addComponentKeysets({en, ru}, COMPONENT); 9 | -------------------------------------------------------------------------------- /src/components/Pagination/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "button_previous": "Предыдущая", 3 | "button_next": "Следующая", 4 | "button_first": "Первая", 5 | "label_input-placeholder": "Стр.", 6 | "label_page-of": "из", 7 | "label_select_size": "Выбрать размер страницы" 8 | } 9 | -------------------------------------------------------------------------------- /src/components/Pagination/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Pagination'; 2 | export type {PaginationProps} from './types'; 3 | -------------------------------------------------------------------------------- /src/components/Palette/__snapshots__/Palette.visual.test.tsx-snapshots/Palette-smoke-hover-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Palette/__snapshots__/Palette.visual.test.tsx-snapshots/Palette-smoke-hover-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Palette/__snapshots__/Palette.visual.test.tsx-snapshots/Palette-smoke-hover-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Palette/__snapshots__/Palette.visual.test.tsx-snapshots/Palette-smoke-hover-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Palette/__snapshots__/Palette.visual.test.tsx-snapshots/Palette-smoke-smoke-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Palette/__snapshots__/Palette.visual.test.tsx-snapshots/Palette-smoke-smoke-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Palette/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Palette.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Palette/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Palette'; 2 | -------------------------------------------------------------------------------- /src/components/PinInput/__snapshots__/PinInput.visual.test.tsx-snapshots/PinInput-smoke-empty-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/PinInput/__snapshots__/PinInput.visual.test.tsx-snapshots/PinInput-smoke-empty-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/PinInput/__snapshots__/PinInput.visual.test.tsx-snapshots/PinInput-smoke-number-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/PinInput/__snapshots__/PinInput.visual.test.tsx-snapshots/PinInput-smoke-number-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/PinInput/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './PinInput.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/PinInput/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_one-of": "{{number}} of {{count}}, " 3 | } 4 | -------------------------------------------------------------------------------- /src/components/PinInput/i18n/index.ts: -------------------------------------------------------------------------------- 1 | import {addComponentKeysets} from '../../../i18n'; 2 | 3 | import en from './en.json'; 4 | import ru from './ru.json'; 5 | 6 | const COMPONENT = 'PinInput'; 7 | 8 | export default addComponentKeysets({en, ru}, COMPONENT); 9 | -------------------------------------------------------------------------------- /src/components/PinInput/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_one-of": "{{number}} из {{count}}, " 3 | } 4 | -------------------------------------------------------------------------------- /src/components/PinInput/index.ts: -------------------------------------------------------------------------------- 1 | export * from './PinInput'; 2 | -------------------------------------------------------------------------------- /src/components/PlaceholderContainer/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './PlaceholderContainer.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/PlaceholderContainer/constants.ts: -------------------------------------------------------------------------------- 1 | export const componentClassName = 'placeholder-container'; 2 | -------------------------------------------------------------------------------- /src/components/PlaceholderContainer/index.ts: -------------------------------------------------------------------------------- 1 | export * from './PlaceholderContainer'; 2 | export * from './types'; 3 | -------------------------------------------------------------------------------- /src/components/Popover/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Popover.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Popover/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Popover'; 2 | -------------------------------------------------------------------------------- /src/components/Popup/__snapshots__/Popup.visual.test.tsx-snapshots/Popup-smoke-default-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Popup/__snapshots__/Popup.visual.test.tsx-snapshots/Popup-smoke-default-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Popup/__snapshots__/Popup.visual.test.tsx-snapshots/Popup-smoke-offset-10-25-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Popup/__snapshots__/Popup.visual.test.tsx-snapshots/Popup-smoke-offset-10-25-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Popup/__snapshots__/Popup.visual.test.tsx-snapshots/Popup-smoke-placement-default-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Popup/__snapshots__/Popup.visual.test.tsx-snapshots/Popup-smoke-placement-default-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Popup/__snapshots__/Popup.visual.test.tsx-snapshots/Popup-smoke-strategy-absolute-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Popup/__snapshots__/Popup.visual.test.tsx-snapshots/Popup-smoke-strategy-absolute-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Popup/__snapshots__/Popup.visual.test.tsx-snapshots/Popup-smoke-strategy-fixed-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Popup/__snapshots__/Popup.visual.test.tsx-snapshots/Popup-smoke-strategy-fixed-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Popup/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Popup.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Popup/__tests__/constants.ts: -------------------------------------------------------------------------------- 1 | export const VisualTestQA = { 2 | trigger: 'trigger', 3 | popupContent: 'popup-content', 4 | }; 5 | -------------------------------------------------------------------------------- /src/components/Popup/constants.ts: -------------------------------------------------------------------------------- 1 | export const AUTO_PLACEMENTS = ['auto', 'auto-start', 'auto-end'] as const; 2 | export const ARROW_SIZE = 8; 3 | export const OVERFLOW_PADDING = 4; 4 | export const TRANSITION_DURATION = 100; 5 | -------------------------------------------------------------------------------- /src/components/Popup/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "close": "Close" 3 | } 4 | -------------------------------------------------------------------------------- /src/components/Popup/i18n/index.ts: -------------------------------------------------------------------------------- 1 | import {addComponentKeysets} from '../../../i18n'; 2 | 3 | import en from './en.json'; 4 | import ru from './ru.json'; 5 | 6 | const COMPONENT = 'Popup'; 7 | 8 | export default addComponentKeysets({en, ru}, COMPONENT); 9 | -------------------------------------------------------------------------------- /src/components/Popup/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "close": "Закрыть" 3 | } 4 | -------------------------------------------------------------------------------- /src/components/Popup/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Popup'; 2 | export * from './types'; 3 | -------------------------------------------------------------------------------- /src/components/Portal/Portal.scss: -------------------------------------------------------------------------------- 1 | @use '../variables'; 2 | 3 | $block: '.#{variables.$ns}portal'; 4 | 5 | #{$block} { 6 | &__theme-wrapper { 7 | display: contents; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/components/Portal/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Portal.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Portal/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Portal'; 2 | -------------------------------------------------------------------------------- /src/components/Progress/__snapshots__/Progress.visual.test.tsx-snapshots/Progress-smoke-smoke-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Progress/__snapshots__/Progress.visual.test.tsx-snapshots/Progress-smoke-smoke-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Progress/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Progress.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Progress/constants.ts: -------------------------------------------------------------------------------- 1 | import {block} from '../utils/cn'; 2 | 3 | export const progressBlock = block('progress'); 4 | -------------------------------------------------------------------------------- /src/components/Progress/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Progress'; 2 | export type { 3 | ProgressColorStops, 4 | ProgressProps, 5 | ProgressSize, 6 | ProgressTheme, 7 | ProgressValue, 8 | Stack, 9 | } from './types'; 10 | -------------------------------------------------------------------------------- /src/components/Radio/__snapshots__/Radio.visual.test.tsx-snapshots/Radio-smoke-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Radio/__snapshots__/Radio.visual.test.tsx-snapshots/Radio-smoke-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Radio/__snapshots__/Radio.visual.test.tsx-snapshots/Radio-smoke-default-checked-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Radio/__snapshots__/Radio.visual.test.tsx-snapshots/Radio-smoke-default-checked-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Radio/__snapshots__/Radio.visual.test.tsx-snapshots/Radio-smoke-default-checked-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Radio/__snapshots__/Radio.visual.test.tsx-snapshots/Radio-smoke-default-checked-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Radio/__snapshots__/Radio.visual.test.tsx-snapshots/Radio-smoke-disabled-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Radio/__snapshots__/Radio.visual.test.tsx-snapshots/Radio-smoke-disabled-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Radio/__snapshots__/Radio.visual.test.tsx-snapshots/Radio-smoke-disabled-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Radio/__snapshots__/Radio.visual.test.tsx-snapshots/Radio-smoke-disabled-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Radio/__snapshots__/Radio.visual.test.tsx-snapshots/Radio-smoke-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Radio/__snapshots__/Radio.visual.test.tsx-snapshots/Radio-smoke-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Radio/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Radio.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Radio/__tests__/cases.tsx: -------------------------------------------------------------------------------- 1 | import type {Cases} from '../../../stories/tests-factory/models'; 2 | import type {RadioProps} from '../Radio'; 3 | 4 | export const sizeCases: Cases = ['m', 'l']; 5 | -------------------------------------------------------------------------------- /src/components/Radio/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Radio'; 2 | -------------------------------------------------------------------------------- /src/components/RadioGroup/__snapshots__/RadioGroup.visual.test.tsx-snapshots/RadioGroup-smoke-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/RadioGroup/__snapshots__/RadioGroup.visual.test.tsx-snapshots/RadioGroup-smoke-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/RadioGroup/__snapshots__/RadioGroup.visual.test.tsx-snapshots/RadioGroup-smoke-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/RadioGroup/__snapshots__/RadioGroup.visual.test.tsx-snapshots/RadioGroup-smoke-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/RadioGroup/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './RadioGroup.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/RadioGroup/index.ts: -------------------------------------------------------------------------------- 1 | export * from './RadioGroup'; 2 | -------------------------------------------------------------------------------- /src/components/SegmentedRadioGroup/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './SegmentedRadioGroup.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/SegmentedRadioGroup/index.ts: -------------------------------------------------------------------------------- 1 | export * from './SegmentedRadioGroup'; 2 | export {SegmentedRadioGroupOption} from './SegmentedRadioGroupOption'; 3 | export type {SegmentedRadioGroupOptionProps} from './SegmentedRadioGroupOption'; 4 | -------------------------------------------------------------------------------- /src/components/Select/Select.scss: -------------------------------------------------------------------------------- 1 | @use '../variables'; 2 | 3 | $block: '.#{variables.$ns}select'; 4 | 5 | #{$block} { 6 | display: inline-block; 7 | 8 | max-width: 100%; 9 | 10 | &_width_max { 11 | width: 100%; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/components/Select/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Select.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Select/components/EmptyOptions/EmptyOptions.scss: -------------------------------------------------------------------------------- 1 | @use '../../../variables'; 2 | 3 | $block: '.#{variables.$ns}select-empty-placeholder'; 4 | 5 | #{$block} { 6 | margin: 4px; 7 | color: var(--g-color-text-hint); 8 | 9 | &_empty { 10 | margin-block-start: 0; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/components/Select/components/SelectPopup/SelectPopup.scss: -------------------------------------------------------------------------------- 1 | @use '../../../variables'; 2 | 3 | $block: '.#{variables.$ns}select-popup'; 4 | 5 | #{$block} { 6 | display: flex; 7 | flex-direction: column; 8 | max-height: 90vh; 9 | } 10 | -------------------------------------------------------------------------------- /src/components/Select/hooks-public/index.ts: -------------------------------------------------------------------------------- 1 | export * from './useSelectOptions'; 2 | -------------------------------------------------------------------------------- /src/components/Select/hooks/index.ts: -------------------------------------------------------------------------------- 1 | export {useQuickSearch} from './useQuickSearch'; 2 | export {useActiveItemIndex} from './useActiveItemIndex'; 3 | -------------------------------------------------------------------------------- /src/components/Select/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_clear": "Clear", 3 | "label_show-error-info": "Show popup with error info", 4 | "label_filter": "Filter" 5 | } 6 | -------------------------------------------------------------------------------- /src/components/Select/i18n/index.ts: -------------------------------------------------------------------------------- 1 | import {addComponentKeysets} from '../../../i18n'; 2 | 3 | import en from './en.json'; 4 | import ru from './ru.json'; 5 | 6 | const COMPONENT = 'Select'; 7 | 8 | export default addComponentKeysets({en, ru}, COMPONENT); 9 | -------------------------------------------------------------------------------- /src/components/Select/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_clear": "Очистить", 3 | "label_show-error-info": "Показать попап с информацей об ошибке", 4 | "label_filter": "Фильтр" 5 | } 6 | -------------------------------------------------------------------------------- /src/components/Select/types-misc.ts: -------------------------------------------------------------------------------- 1 | export type SelectFilterRef = { 2 | focus: () => void; 3 | }; 4 | -------------------------------------------------------------------------------- /src/components/Select/variables.scss: -------------------------------------------------------------------------------- 1 | $s-hor-padding: 8px; 2 | $m-hor-padding: 8px; 3 | $l-hor-padding: 12px; 4 | $xl-hor-padding: 12px; 5 | -------------------------------------------------------------------------------- /src/components/Sheet/__snapshots__/Sheet.visual.test.tsx-snapshots/Sheet-render-story-Default-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Sheet/__snapshots__/Sheet.visual.test.tsx-snapshots/Sheet-render-story-Default-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Sheet/__snapshots__/Sheet.visual.test.tsx-snapshots/Sheet-render-story-Default-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Sheet/__snapshots__/Sheet.visual.test.tsx-snapshots/Sheet-render-story-Default-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Sheet/__snapshots__/Sheet.visual.test.tsx-snapshots/Sheet-smoke-default-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Sheet/__snapshots__/Sheet.visual.test.tsx-snapshots/Sheet-smoke-default-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Sheet/__snapshots__/Sheet.visual.test.tsx-snapshots/Sheet-smoke-hideTopBar-true-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Sheet/__snapshots__/Sheet.visual.test.tsx-snapshots/Sheet-smoke-hideTopBar-true-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Sheet/__snapshots__/Sheet.visual.test.tsx-snapshots/Sheet-smoke-title-Title-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Sheet/__snapshots__/Sheet.visual.test.tsx-snapshots/Sheet-smoke-title-Title-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Sheet/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './DefaultShowcase/DefaultShowcase.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Sheet/__stories__/Sheet.stories.tsx: -------------------------------------------------------------------------------- 1 | import type {Meta} from '@storybook/react'; 2 | 3 | import {Sheet} from '../Sheet'; 4 | 5 | export default { 6 | title: 'Components/Overlays/Sheet', 7 | component: Sheet, 8 | } as Meta; 9 | -------------------------------------------------------------------------------- /src/components/Sheet/__stories__/constants.ts: -------------------------------------------------------------------------------- 1 | export const DEFAULT_SHEET_QA = 'default-sheet-qa'; 2 | -------------------------------------------------------------------------------- /src/components/Sheet/__tests__/cases.tsx: -------------------------------------------------------------------------------- 1 | import type {Cases} from '../../../stories/tests-factory/models'; 2 | import type {SheetProps} from '../Sheet'; 3 | 4 | export const hideTopBarCases: Cases = [true]; 5 | export const titleCases: Cases = ['Title']; 6 | -------------------------------------------------------------------------------- /src/components/Sheet/__tests__/constants.ts: -------------------------------------------------------------------------------- 1 | export const QASheet = { 2 | content: 'content', 3 | }; 4 | -------------------------------------------------------------------------------- /src/components/Sheet/__tests__/helpersPlaywright.tsx: -------------------------------------------------------------------------------- 1 | import {composeStories} from '@storybook/react'; 2 | 3 | import * as stories from '../__stories__/DefaultShowcase/DefaultShowcase.stories'; 4 | 5 | export const SheetStories = composeStories(stories); 6 | -------------------------------------------------------------------------------- /src/components/Sheet/constants.ts: -------------------------------------------------------------------------------- 1 | import {block} from '../utils/cn'; 2 | 3 | export const sheetBlock = block('sheet'); 4 | 5 | export const SheetQa = { 6 | VEIL: 'sheet-veil', 7 | }; 8 | -------------------------------------------------------------------------------- /src/components/Sheet/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Sheet'; 2 | -------------------------------------------------------------------------------- /src/components/Skeleton/__snapshots__/Skeleton.visual.test.tsx-snapshots/Skeleton-smoke-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Skeleton/__snapshots__/Skeleton.visual.test.tsx-snapshots/Skeleton-smoke-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Skeleton/__snapshots__/Skeleton.visual.test.tsx-snapshots/Skeleton-smoke-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Skeleton/__snapshots__/Skeleton.visual.test.tsx-snapshots/Skeleton-smoke-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Skeleton/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Skeleton.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Skeleton/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Skeleton'; 2 | -------------------------------------------------------------------------------- /src/components/Slider/__snapshots__/Slider.visual.test.tsx-snapshots/Slider-smoke-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Slider/__snapshots__/Slider.visual.test.tsx-snapshots/Slider-smoke-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Slider/__snapshots__/Slider.visual.test.tsx-snapshots/Slider-smoke-range-value-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Slider/__snapshots__/Slider.visual.test.tsx-snapshots/Slider-smoke-range-value-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Slider/__snapshots__/Slider.visual.test.tsx-snapshots/Slider-smoke-with-error-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Slider/__snapshots__/Slider.visual.test.tsx-snapshots/Slider-smoke-with-error-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Slider/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Slider.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Slider/constants.ts: -------------------------------------------------------------------------------- 1 | export const CLEAR_MARK_STYLE = {left: '', right: '', transform: ''}; 2 | -------------------------------------------------------------------------------- /src/components/Slider/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Slider'; 2 | export type {SliderSize, SliderValue, SliderProps, BaseSliderRefType} from './types'; 3 | export {prepareSliderInnerState} from './utils'; 4 | -------------------------------------------------------------------------------- /src/components/Slider/variables.scss: -------------------------------------------------------------------------------- 1 | $slider-color: var(--g-color-base-brand); 2 | $slider-error-color: var(--g-color-base-danger-heavy); 3 | $slider-disabled-color: var(--g-color-base-generic-accent); // --g-color-misc-axis in figma 4 | $handle-center-color: var(--g-color-base-background); 5 | 6 | $slider-tooltip-offset: 6px; 7 | -------------------------------------------------------------------------------- /src/components/Spin/__snapshots__/Spin.visual.test.tsx-snapshots/Spin-smoke-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Spin/__snapshots__/Spin.visual.test.tsx-snapshots/Spin-smoke-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Spin/__snapshots__/Spin.visual.test.tsx-snapshots/Spin-smoke-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Spin/__snapshots__/Spin.visual.test.tsx-snapshots/Spin-smoke-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Spin/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Spin.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Spin/__tests__/cases.tsx: -------------------------------------------------------------------------------- 1 | import type {Cases} from '../../../stories/tests-factory/models'; 2 | import type {SpinProps} from '../Spin'; 3 | 4 | export const sizeCases: Cases = ['xs', 's', 'm', 'l', 'xl']; 5 | -------------------------------------------------------------------------------- /src/components/Spin/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Spin'; 2 | -------------------------------------------------------------------------------- /src/components/Stepper/__snapshots__/Stepper.visual.test.tsx-snapshots/Stepper-render-story-Size-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Stepper/__snapshots__/Stepper.visual.test.tsx-snapshots/Stepper-render-story-Size-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Stepper/__snapshots__/Stepper.visual.test.tsx-snapshots/Stepper-render-story-Size-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Stepper/__snapshots__/Stepper.visual.test.tsx-snapshots/Stepper-render-story-Size-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Stepper/__snapshots__/Stepper.visual.test.tsx-snapshots/Stepper-render-story-View-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Stepper/__snapshots__/Stepper.visual.test.tsx-snapshots/Stepper-render-story-View-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Stepper/__snapshots__/Stepper.visual.test.tsx-snapshots/Stepper-render-story-View-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Stepper/__snapshots__/Stepper.visual.test.tsx-snapshots/Stepper-render-story-View-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Stepper/__tests__/helpersPlaywright.tsx: -------------------------------------------------------------------------------- 1 | import {composeStories} from '@storybook/react'; 2 | 3 | import * as DefaultStepperStories from '../__stories__/Stepper.stories'; 4 | 5 | export const StepperStories = composeStories(DefaultStepperStories); 6 | -------------------------------------------------------------------------------- /src/components/Stepper/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Stepper'; 2 | 3 | export * from './types'; 4 | -------------------------------------------------------------------------------- /src/components/Stepper/types.ts: -------------------------------------------------------------------------------- 1 | export type StepperItemView = 'idle' | 'error' | 'success'; 2 | 3 | export type StepperSize = 's' | 'm' | 'l'; 4 | -------------------------------------------------------------------------------- /src/components/Stepper/utils.ts: -------------------------------------------------------------------------------- 1 | import {block} from '../utils/cn'; 2 | 3 | export const b = block('stepper'); 4 | -------------------------------------------------------------------------------- /src/components/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-smoke-checked-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-smoke-checked-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-smoke-checked-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-smoke-checked-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-smoke-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-smoke-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-smoke-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-smoke-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Switch/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Switch.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Switch/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Switch'; 2 | -------------------------------------------------------------------------------- /src/components/Table/__snapshots__/Table.visual.test.tsx-snapshots/Table-render-story-Adaptive-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Table/__snapshots__/Table.visual.test.tsx-snapshots/Table-render-story-Adaptive-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Table/__snapshots__/Table.visual.test.tsx-snapshots/Table-render-story-Default-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Table/__snapshots__/Table.visual.test.tsx-snapshots/Table-render-story-Default-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Table/__snapshots__/Table.visual.test.tsx-snapshots/Table-render-story-EmptyCustom-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Table/__snapshots__/Table.visual.test.tsx-snapshots/Table-render-story-EmptyCustom-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Table/__snapshots__/Table.visual.test.tsx-snapshots/Table-smoke-column-config-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Table/__snapshots__/Table.visual.test.tsx-snapshots/Table-smoke-column-config-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Table/__snapshots__/Table.visual.test.tsx-snapshots/Table-smoke-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Table/__snapshots__/Table.visual.test.tsx-snapshots/Table-smoke-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Table/__snapshots__/Table.visual.test.tsx-snapshots/Table-smoke-with-actions-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Table/__snapshots__/Table.visual.test.tsx-snapshots/Table-smoke-with-actions-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Table/__snapshots__/Table.visual.test.tsx-snapshots/Table-smoke-with-checkbox-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Table/__snapshots__/Table.visual.test.tsx-snapshots/Table-smoke-with-checkbox-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Table/__snapshots__/Table.visual.test.tsx-snapshots/Table-smoke-with-copy-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Table/__snapshots__/Table.visual.test.tsx-snapshots/Table-smoke-with-copy-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Table/__snapshots__/Table.visual.test.tsx-snapshots/Table-smoke-with-settings-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Table/__snapshots__/Table.visual.test.tsx-snapshots/Table-smoke-with-settings-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Table/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Table.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Table/__stories__/WithTableSettingsCustomActions/index.ts: -------------------------------------------------------------------------------- 1 | export {WithTableSettingsCustomActionsShowcase} from './WithTableSettingsCustomActions'; 2 | -------------------------------------------------------------------------------- /src/components/Table/hoc/withTableSettings/TableColumnSetup/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "button_apply": "Apply", 3 | "button_reset": "Reset", 4 | "button_switcher": "Columns" 5 | } 6 | -------------------------------------------------------------------------------- /src/components/Table/hoc/withTableSettings/TableColumnSetup/i18n/index.ts: -------------------------------------------------------------------------------- 1 | import {addComponentKeysets} from '../../../../../../i18n'; 2 | 3 | import en from './en.json'; 4 | import ru from './ru.json'; 5 | 6 | const COMPONENT = 'TableColumnSetupInner'; 7 | 8 | export default addComponentKeysets({en, ru}, COMPONENT); 9 | -------------------------------------------------------------------------------- /src/components/Table/hoc/withTableSettings/TableColumnSetup/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "button_apply": "Применить", 3 | "button_reset": "Сбросить", 4 | "button_switcher": "Колонки" 5 | } 6 | -------------------------------------------------------------------------------- /src/components/Table/hoc/withTableSettings/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_settings": "Table settings" 3 | } 4 | -------------------------------------------------------------------------------- /src/components/Table/hoc/withTableSettings/i18n/index.ts: -------------------------------------------------------------------------------- 1 | import {addComponentKeysets} from '../../../../../i18n'; 2 | 3 | import en from './en.json'; 4 | import ru from './ru.json'; 5 | 6 | const COMPONENT = 'withTableSettings'; 7 | 8 | export default addComponentKeysets({en, ru}, COMPONENT); 9 | -------------------------------------------------------------------------------- /src/components/Table/hoc/withTableSettings/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_settings": "Настройки таблицы" 3 | } 4 | -------------------------------------------------------------------------------- /src/components/Table/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_empty": "No data", 3 | "label-actions": "Actions", 4 | "label-row-select": "Select" 5 | } 6 | -------------------------------------------------------------------------------- /src/components/Table/i18n/index.ts: -------------------------------------------------------------------------------- 1 | import {addComponentKeysets} from '../../../i18n'; 2 | 3 | import en from './en.json'; 4 | import ru from './ru.json'; 5 | 6 | const COMPONENT = 'Table'; 7 | 8 | export default addComponentKeysets({en, ru}, COMPONENT); 9 | -------------------------------------------------------------------------------- /src/components/Table/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_empty": "Нет данных", 3 | "label-actions": "Действия", 4 | "label-row-select": "Выбрать" 5 | } 6 | -------------------------------------------------------------------------------- /src/components/Table/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Table'; 2 | export * from './hoc'; 3 | -------------------------------------------------------------------------------- /src/components/Table/variables.scss: -------------------------------------------------------------------------------- 1 | @use '../variables'; 2 | 3 | $block: '.#{variables.$ns}table'; 4 | $tableLineHeight: 18px; 5 | -------------------------------------------------------------------------------- /src/components/TableColumnSetup/TableColumnSetup.scss: -------------------------------------------------------------------------------- 1 | @use '../variables'; 2 | 3 | $block: '.#{variables.$ns}table-column-setup'; 4 | 5 | #{$block} { 6 | &__status { 7 | margin-inline-start: 5px; 8 | color: var(--g-color-text-secondary); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/components/TableColumnSetup/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "button_switcher": "Columns" 3 | } 4 | -------------------------------------------------------------------------------- /src/components/TableColumnSetup/i18n/index.ts: -------------------------------------------------------------------------------- 1 | import {addComponentKeysets} from '../../../i18n'; 2 | 3 | import en from './en.json'; 4 | import ru from './ru.json'; 5 | 6 | const COMPONENT = 'TableColumnSetup'; 7 | 8 | export default addComponentKeysets({en, ru}, COMPONENT); 9 | -------------------------------------------------------------------------------- /src/components/TableColumnSetup/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "button_switcher": "Колонки" 3 | } 4 | -------------------------------------------------------------------------------- /src/components/TableColumnSetup/index.ts: -------------------------------------------------------------------------------- 1 | export * from './TableColumnSetup'; 2 | -------------------------------------------------------------------------------- /src/components/Text/__snapshots__/Text.visual.test.tsx-snapshots/Text-smoke-long-text-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Text/__snapshots__/Text.visual.test.tsx-snapshots/Text-smoke-long-text-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Text/__snapshots__/Text.visual.test.tsx-snapshots/Text-smoke-regular-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Text/__snapshots__/Text.visual.test.tsx-snapshots/Text-smoke-regular-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Text/__snapshots__/Text.visual.test.tsx-snapshots/Text-smoke-render-story-Ellipsis-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Text/__snapshots__/Text.visual.test.tsx-snapshots/Text-smoke-render-story-Ellipsis-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Text/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Text.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Text/__tests__/stories.ts: -------------------------------------------------------------------------------- 1 | import {composeStories} from '@storybook/react'; 2 | 3 | import * as CSFStories from '../__stories__/Text.stories'; 4 | 5 | export const TextStories = composeStories(CSFStories); 6 | -------------------------------------------------------------------------------- /src/components/Text/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Text'; 2 | export {TEXT_VARIANTS, text} from './text/text'; 3 | export {TEXT_COLORS, colorText} from './colorText/colorText'; 4 | -------------------------------------------------------------------------------- /src/components/Toaster/Provider/ToasterContext.ts: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | 3 | import type {ToasterContextMethods} from '../types'; 4 | 5 | export const ToasterContext = React.createContext(null); 6 | ToasterContext.displayName = 'ToasterContext'; 7 | -------------------------------------------------------------------------------- /src/components/Toaster/Provider/ToastsContext.ts: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | 3 | import type {InternalToastProps} from '../types'; 4 | 5 | export const ToastsContext = React.createContext([]); 6 | ToastsContext.displayName = 'ToastsContext'; 7 | -------------------------------------------------------------------------------- /src/components/Toaster/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Toaster.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Toaster/constants.ts: -------------------------------------------------------------------------------- 1 | export const TOAST_THEMES = ['normal', 'info', 'success', 'warning', 'danger', 'utility'] as const; 2 | -------------------------------------------------------------------------------- /src/components/Toaster/hooks/useInToasterContext.ts: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | 3 | import {ToasterContext} from '../Provider/ToasterContext'; 4 | 5 | export function useInToasterContext() { 6 | return React.useContext(ToasterContext) !== null; 7 | } 8 | -------------------------------------------------------------------------------- /src/components/Toaster/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_close-button": "Close" 3 | } 4 | -------------------------------------------------------------------------------- /src/components/Toaster/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_close-button": "Закрыть" 3 | } 4 | -------------------------------------------------------------------------------- /src/components/Toaster/utilities/getToastIndex.tsx: -------------------------------------------------------------------------------- 1 | import type {ToastProps} from '../types'; 2 | 3 | export function getToastIndex(toasts: ToastProps[], name: ToastProps['name']) { 4 | return toasts.findIndex((toast) => toast.name === name); 5 | } 6 | -------------------------------------------------------------------------------- /src/components/Toaster/utilities/hasToast.ts: -------------------------------------------------------------------------------- 1 | import type {ToastProps} from '../types'; 2 | 3 | import {getToastIndex} from './getToastIndex'; 4 | 5 | export function hasToast(toasts: ToastProps[], name: ToastProps['name']): boolean { 6 | return getToastIndex(toasts, name) !== -1; 7 | } 8 | -------------------------------------------------------------------------------- /src/components/Toc/TocItem/index.ts: -------------------------------------------------------------------------------- 1 | export * from './TocItem'; 2 | -------------------------------------------------------------------------------- /src/components/Toc/TocSections/TocSections.scss: -------------------------------------------------------------------------------- 1 | @use '../../variables'; 2 | @use '../../../../styles/mixins.scss'; 3 | 4 | $block: '.#{variables.$ns}toc'; 5 | 6 | #{$block}__sections { 7 | padding: 0; 8 | margin: 0; 9 | 10 | overflow: hidden auto; 11 | 12 | list-style: none; 13 | } 14 | -------------------------------------------------------------------------------- /src/components/Toc/TocSections/index.ts: -------------------------------------------------------------------------------- 1 | export * from './TocSections'; 2 | -------------------------------------------------------------------------------- /src/components/Toc/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Toc.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Toc/__stories__/Toc.stories.scss: -------------------------------------------------------------------------------- 1 | @use '../../variables'; 2 | 3 | $block: '.#{variables.$ns}toc-stories'; 4 | 5 | #{$block} { 6 | $class: &; 7 | 8 | max-width: 416px; 9 | } 10 | -------------------------------------------------------------------------------- /src/components/Toc/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Toc'; 2 | export * from './types'; 3 | -------------------------------------------------------------------------------- /src/components/Toc/types.ts: -------------------------------------------------------------------------------- 1 | export interface TocItem { 2 | value?: string; 3 | content?: React.ReactNode; 4 | href?: string; 5 | items?: TocItem[]; 6 | } 7 | -------------------------------------------------------------------------------- /src/components/Tooltip/__snapshots__/Tooltip.visual.test.tsx-snapshots/Tooltip-smoke-default-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/Tooltip/__snapshots__/Tooltip.visual.test.tsx-snapshots/Tooltip-smoke-default-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/Tooltip/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Tooltip.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/Tooltip/__tests__/constants.ts: -------------------------------------------------------------------------------- 1 | export const TooltipQA = { 2 | trigger: 'trigger', 3 | tooltipContent: 'tooltip-content', 4 | }; 5 | -------------------------------------------------------------------------------- /src/components/Tooltip/index.ts: -------------------------------------------------------------------------------- 1 | export {Tooltip} from './Tooltip'; 2 | export type {TooltipProps} from './Tooltip'; 3 | -------------------------------------------------------------------------------- /src/components/TreeList/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | 3 | import TreeListDocs from './TreeListDocs.md?raw'; 4 | 5 | 6 | 7 | {TreeListDocs} 8 | -------------------------------------------------------------------------------- /src/components/TreeList/index.ts: -------------------------------------------------------------------------------- 1 | export {TreeList} from './TreeList'; 2 | export {type TreeListProps} from './types'; 3 | -------------------------------------------------------------------------------- /src/components/TreeSelect/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | 3 | import TreeSelectDocs from './TreeSelectDocs.md?raw'; 4 | 5 | 6 | 7 | {TreeSelectDocs} 8 | -------------------------------------------------------------------------------- /src/components/TreeSelect/index.ts: -------------------------------------------------------------------------------- 1 | export {TreeSelect} from './TreeSelect'; 2 | export type {TreeSelectProps, TreeSelectRenderItem} from './types'; 3 | -------------------------------------------------------------------------------- /src/components/User/__snapshots__/User.visual.test.tsx-snapshots/User-render-story-Default-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/User/__snapshots__/User.visual.test.tsx-snapshots/User-render-story-Default-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/User/__snapshots__/User.visual.test.tsx-snapshots/User-render-story-Default-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/User/__snapshots__/User.visual.test.tsx-snapshots/User-render-story-Default-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/User/__snapshots__/User.visual.test.tsx-snapshots/User-render-story-Showcase-dark-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/User/__snapshots__/User.visual.test.tsx-snapshots/User-render-story-Showcase-dark-chromium-linux.png -------------------------------------------------------------------------------- /src/components/User/__snapshots__/User.visual.test.tsx-snapshots/User-render-story-Showcase-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/User/__snapshots__/User.visual.test.tsx-snapshots/User-render-story-Showcase-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/User/__snapshots__/User.visual.test.tsx-snapshots/User-smoke-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/User/__snapshots__/User.visual.test.tsx-snapshots/User-smoke-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/User/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './User.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/User/__tests__/stories.ts: -------------------------------------------------------------------------------- 1 | import {composeStories} from '@storybook/react'; 2 | 3 | import * as Stories from '../__stories__/User.stories'; 4 | 5 | export const UserStories = composeStories(Stories); 6 | -------------------------------------------------------------------------------- /src/components/User/index.ts: -------------------------------------------------------------------------------- 1 | export type {UserSize, UserProps} from './types'; 2 | export {DEFAULT_USER_SIZE, UserQa} from './constants'; 3 | export {User} from './User'; 4 | -------------------------------------------------------------------------------- /src/components/UserLabel/__snapshots__/UserLabel.visual.test.tsx-snapshots/UserLabel-smoke-email-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/UserLabel/__snapshots__/UserLabel.visual.test.tsx-snapshots/UserLabel-smoke-email-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/UserLabel/__snapshots__/UserLabel.visual.test.tsx-snapshots/UserLabel-smoke-person-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/UserLabel/__snapshots__/UserLabel.visual.test.tsx-snapshots/UserLabel-smoke-person-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/UserLabel/__snapshots__/UserLabel.visual.test.tsx-snapshots/UserLabel-smoke-user-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/UserLabel/__snapshots__/UserLabel.visual.test.tsx-snapshots/UserLabel-smoke-user-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/UserLabel/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './UserLabel.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/UserLabel/__tests__/stories.ts: -------------------------------------------------------------------------------- 1 | import {composeStories} from '@storybook/react'; 2 | 3 | import * as Stories from '../__stories__/UserLabel.stories'; 4 | 5 | export const UserLabelStories = composeStories(Stories); 6 | -------------------------------------------------------------------------------- /src/components/UserLabel/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_remove-button": "Remove" 3 | } 4 | -------------------------------------------------------------------------------- /src/components/UserLabel/i18n/index.ts: -------------------------------------------------------------------------------- 1 | import {addComponentKeysets} from '../../../i18n'; 2 | import {NAMESPACE} from '../../utils/cn'; 3 | 4 | import en from './en.json'; 5 | import ru from './ru.json'; 6 | 7 | export default addComponentKeysets({en, ru}, `${NAMESPACE}user-label`); 8 | -------------------------------------------------------------------------------- /src/components/UserLabel/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_remove-button": "Удалить" 3 | } 4 | -------------------------------------------------------------------------------- /src/components/UserLabel/index.ts: -------------------------------------------------------------------------------- 1 | export type {UserLabelType, UserLabelView, UserLabelSize, UserLabelProps} from './types'; 2 | export {DEFAULT_USER_LABEL_SIZE} from './constants'; 3 | export {UserLabel} from './UserLabel'; 4 | -------------------------------------------------------------------------------- /src/components/controls/PasswordInput/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './PasswordInput.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/controls/PasswordInput/__tests__/helpersPlaywright.ts: -------------------------------------------------------------------------------- 1 | import {composeStories} from '@storybook/react'; 2 | 3 | import * as DefaultPasswordInputStories from '../__stories__/PasswordInput.stories'; 4 | 5 | export const PasswordInputStories = composeStories(DefaultPasswordInputStories); 6 | -------------------------------------------------------------------------------- /src/components/controls/PasswordInput/constants.ts: -------------------------------------------------------------------------------- 1 | export const PasswordInputQa = { 2 | revealButton: 'reveal-button', 3 | copyButton: 'copy-button', 4 | }; 5 | -------------------------------------------------------------------------------- /src/components/controls/PasswordInput/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_show-password": "Show password", 3 | "label_hide-password": "Hide password" 4 | } 5 | -------------------------------------------------------------------------------- /src/components/controls/PasswordInput/i18n/index.ts: -------------------------------------------------------------------------------- 1 | import {addComponentKeysets} from '../../../../i18n'; 2 | 3 | import en from './en.json'; 4 | import ru from './ru.json'; 5 | 6 | const COMPONENT = 'PasswordInput'; 7 | 8 | export const i18n = addComponentKeysets({en, ru}, COMPONENT); 9 | -------------------------------------------------------------------------------- /src/components/controls/PasswordInput/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_show-password": "Показать пароль", 3 | "label_hide-password": "Скрыть пароль" 4 | } 5 | -------------------------------------------------------------------------------- /src/components/controls/PasswordInput/index.ts: -------------------------------------------------------------------------------- 1 | export * from './PasswordInput'; 2 | -------------------------------------------------------------------------------- /src/components/controls/TextArea/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './TextArea.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/controls/TextArea/index.ts: -------------------------------------------------------------------------------- 1 | export {TextArea} from './TextArea'; 2 | export type {TextAreaProps, TextAreaPin, TextAreaSize, TextAreaView} from './TextArea'; 3 | -------------------------------------------------------------------------------- /src/components/controls/TextInput/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './TextInput.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/controls/TextInput/index.ts: -------------------------------------------------------------------------------- 1 | export {TextInput} from './TextInput'; 2 | export type {TextInputProps, TextInputPin, TextInputSize, TextInputView} from './TextInput'; 3 | -------------------------------------------------------------------------------- /src/components/controls/common/ClearButton/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_clear-button": "Clear" 3 | } 4 | -------------------------------------------------------------------------------- /src/components/controls/common/ClearButton/i18n/index.ts: -------------------------------------------------------------------------------- 1 | import {addComponentKeysets} from '../../../../../i18n'; 2 | import {NAMESPACE} from '../../../../utils/cn'; 3 | 4 | import en from './en.json'; 5 | import ru from './ru.json'; 6 | 7 | export default addComponentKeysets({en, ru}, `${NAMESPACE}clear-button`); 8 | -------------------------------------------------------------------------------- /src/components/controls/common/ClearButton/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_clear-button": "Очистить" 3 | } 4 | -------------------------------------------------------------------------------- /src/components/controls/common/index.ts: -------------------------------------------------------------------------------- 1 | export {ClearButton, mapTextInputSizeToButtonSize} from './ClearButton/ClearButton'; 2 | -------------------------------------------------------------------------------- /src/components/controls/index.ts: -------------------------------------------------------------------------------- 1 | export * from './TextArea'; 2 | export * from './TextInput'; 3 | export * from './PasswordInput'; 4 | export type {InputControlPin, InputControlSize, InputControlState, InputControlView} from './types'; 5 | -------------------------------------------------------------------------------- /src/components/controls/variables.scss: -------------------------------------------------------------------------------- 1 | $border-width: 1px; 2 | -------------------------------------------------------------------------------- /src/components/lab/Menu/Menu.scss: -------------------------------------------------------------------------------- 1 | @use '../../variables'; 2 | 3 | $b: '.#{variables.$ns}lab-menu'; 4 | 5 | #{$b} { 6 | padding: 4px; 7 | } 8 | -------------------------------------------------------------------------------- /src/components/lab/Menu/MenuDivider.scss: -------------------------------------------------------------------------------- 1 | @use '../../variables'; 2 | 3 | $b: '.#{variables.$ns}lab-menu-divider'; 4 | 5 | #{$b} { 6 | margin-block: 4px; 7 | } 8 | -------------------------------------------------------------------------------- /src/components/lab/Menu/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Menu.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/lab/Menu/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Menu'; 2 | export * from './MenuTrigger'; 3 | export * from './MenuItem'; 4 | export * from './MenuDivider'; 5 | export * from './types'; 6 | -------------------------------------------------------------------------------- /src/components/layout/Col/__tests__/stories.ts: -------------------------------------------------------------------------------- 1 | import {composeStories} from '@storybook/react'; 2 | 3 | import * as CSFStories from '../__stories__/Col.stories'; 4 | 5 | export const ColStories = composeStories(CSFStories); 6 | -------------------------------------------------------------------------------- /src/components/layout/Container/__tests__/stories.ts: -------------------------------------------------------------------------------- 1 | import {composeStories} from '@storybook/react'; 2 | 3 | import * as CSFStories from '../__stories__/Container.stories'; 4 | 5 | export const ContainerStories = composeStories(CSFStories); 6 | -------------------------------------------------------------------------------- /src/components/layout/Flex/__tests__/stories.ts: -------------------------------------------------------------------------------- 1 | import {composeStories} from '@storybook/react'; 2 | 3 | import * as CSFStories from '../__stories__/Flex.stories'; 4 | 5 | export const FlexStories = composeStories(CSFStories); 6 | -------------------------------------------------------------------------------- /src/components/layout/Row/__tests__/stories.ts: -------------------------------------------------------------------------------- 1 | import {composeStories} from '@storybook/react'; 2 | 3 | import * as CSFStories from '../__stories__/Row.stories'; 4 | 5 | export const RowStories = composeStories(CSFStories); 6 | -------------------------------------------------------------------------------- /src/components/layout/demo/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Box/Box'; 2 | export * from './LayoutPresenter/LayoutPresenter'; 3 | export * from './ColPresenter/ColPresenter'; 4 | -------------------------------------------------------------------------------- /src/components/legacy/Breadcrumbs/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Breadcrumbs.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/legacy/Breadcrumbs/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_more": "Show more" 3 | } 4 | -------------------------------------------------------------------------------- /src/components/legacy/Breadcrumbs/i18n/index.ts: -------------------------------------------------------------------------------- 1 | import {addComponentKeysets} from '../../../../i18n'; 2 | 3 | import en from './en.json'; 4 | import ru from './ru.json'; 5 | 6 | const COMPONENT = 'Breadcrumbs'; 7 | 8 | export default addComponentKeysets({en, ru}, COMPONENT); 9 | -------------------------------------------------------------------------------- /src/components/legacy/Breadcrumbs/i18n/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "label_more": "Показать больше" 3 | } 4 | -------------------------------------------------------------------------------- /src/components/legacy/Breadcrumbs/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Breadcrumbs'; 2 | -------------------------------------------------------------------------------- /src/components/legacy/Popover/Popover.classname.ts: -------------------------------------------------------------------------------- 1 | import {block} from '../../utils/cn'; 2 | 3 | export const cnPopover = block('popover-legacy'); 4 | -------------------------------------------------------------------------------- /src/components/legacy/Popover/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Popover.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/legacy/Popover/__stories__/PopoverDemo.classname.ts: -------------------------------------------------------------------------------- 1 | import {block} from '../../../utils/cn'; 2 | 3 | export const cnPopoverDemo = block('popover-legacy-demo'); 4 | -------------------------------------------------------------------------------- /src/components/legacy/Popover/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Popover'; 2 | export type { 3 | PopoverButtonProps, 4 | PopoverProps, 5 | PopoverInstanceProps, 6 | PopoverAnchorRef, 7 | PopoverAnchorElement, 8 | } from './types'; 9 | export {PopoverBehavior} from './config'; 10 | -------------------------------------------------------------------------------- /src/components/legacy/Tabs/TabsContext.ts: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | 3 | export const TabsContext = React.createContext<{activeTabId: string | undefined}>({ 4 | activeTabId: undefined, 5 | }); 6 | 7 | TabsContext.displayName = 'TabsContext'; 8 | -------------------------------------------------------------------------------- /src/components/legacy/Tabs/__snapshots__/Tabs.visual.test.tsx-snapshots/Tabs-smoke-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/legacy/Tabs/__snapshots__/Tabs.visual.test.tsx-snapshots/Tabs-smoke-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/legacy/Tabs/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './Tabs.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/legacy/Tabs/__stories__/types.ts: -------------------------------------------------------------------------------- 1 | export type StoryParams = { 2 | withIcon?: boolean; 3 | withCounter?: boolean; 4 | withLabel?: boolean; 5 | withOverflow?: boolean; 6 | }; 7 | -------------------------------------------------------------------------------- /src/components/legacy/Tabs/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Tabs'; 2 | -------------------------------------------------------------------------------- /src/components/legacy/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Popover'; 2 | export * from './Tabs'; 3 | export * from './Breadcrumbs'; 4 | -------------------------------------------------------------------------------- /src/components/mobile/constants.ts: -------------------------------------------------------------------------------- 1 | import {block} from '../utils/cn'; 2 | 3 | export enum Platform { 4 | IOS = 'ios', 5 | ANDROID = 'android', 6 | BROWSER = 'browser', 7 | } 8 | 9 | const b = block('root'); 10 | export const rootMobileClassName = b({mobile: true}).split(/\s+/)[1]; 11 | -------------------------------------------------------------------------------- /src/components/mobile/index.ts: -------------------------------------------------------------------------------- 1 | export * from './MobileContext'; 2 | export * from './MobileProvider'; 3 | export * from './useMobile'; 4 | export * from './usePlatform'; 5 | export * from './withMobile'; 6 | export * from './constants'; 7 | -------------------------------------------------------------------------------- /src/components/mobile/useMobile.ts: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | 3 | import {MobileContext} from './MobileContext'; 4 | import type {MobileContextProps} from './MobileContext'; 5 | 6 | export function useMobile(): MobileContextProps['mobile'] { 7 | return React.useContext(MobileContext).mobile; 8 | } 9 | -------------------------------------------------------------------------------- /src/components/mobile/usePlatform.ts: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | 3 | import {MobileContext} from './MobileContext'; 4 | import type {MobileContextProps} from './MobileContext'; 5 | 6 | export function usePlatform(): MobileContextProps['platform'] { 7 | return React.useContext(MobileContext).platform; 8 | } 9 | -------------------------------------------------------------------------------- /src/components/tabs/TabPanel.scss: -------------------------------------------------------------------------------- 1 | @use '../variables'; 2 | @use '../../../styles/mixins'; 3 | 4 | $block: '.#{variables.$ns}tab-panel'; 5 | 6 | #{$block} { 7 | &_hidden { 8 | display: none; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/components/tabs/__snapshots__/TabList.visual.test.tsx-snapshots/TabList-smoke-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/tabs/__snapshots__/TabList.visual.test.tsx-snapshots/TabList-smoke-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/tabs/__snapshots__/TabList.visual.test.tsx-snapshots/TabList-smoke-with-custom-tab-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/tabs/__snapshots__/TabList.visual.test.tsx-snapshots/TabList-smoke-with-custom-tab-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/tabs/__snapshots__/TabList.visual.test.tsx-snapshots/TabList-smoke-without-value-light-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/components/tabs/__snapshots__/TabList.visual.test.tsx-snapshots/TabList-smoke-without-value-light-chromium-linux.png -------------------------------------------------------------------------------- /src/components/tabs/__stories__/Docs.mdx: -------------------------------------------------------------------------------- 1 | import {Meta, Markdown} from '@storybook/addon-docs'; 2 | import * as Stories from './TabList.stories'; 3 | import Readme from '../README.md?raw'; 4 | 5 | 6 | 7 | {Readme} 8 | -------------------------------------------------------------------------------- /src/components/tabs/__tests__/cases.tsx: -------------------------------------------------------------------------------- 1 | import type {Cases} from '../../../stories/tests-factory/models'; 2 | import type {TabListProps} from '../types'; 3 | 4 | export const sizeCases: Cases = ['m', 'l', 'xl']; 5 | -------------------------------------------------------------------------------- /src/components/tabs/constants.ts: -------------------------------------------------------------------------------- 1 | import {block} from '../utils/cn'; 2 | 3 | export const bTabList = block('tab-list'); 4 | export const bTab = block('tab'); 5 | export const bTabPanel = block('tab-panel'); 6 | 7 | export const TAB_DATA_ATTRIBUTE = 'data-tab'; 8 | -------------------------------------------------------------------------------- /src/components/theme/ThemeContext.ts: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | 3 | import type {ThemeContextProps} from './types'; 4 | 5 | export const ThemeContext = React.createContext(undefined); 6 | ThemeContext.displayName = 'ThemeContext'; 7 | -------------------------------------------------------------------------------- /src/components/theme/getThemeType.ts: -------------------------------------------------------------------------------- 1 | import {DARK_THEMES} from './constants'; 2 | import type {RealTheme, ThemeType} from './types'; 3 | 4 | export function getThemeType(theme: RealTheme): ThemeType { 5 | return DARK_THEMES.includes(theme) ? 'dark' : 'light'; 6 | } 7 | -------------------------------------------------------------------------------- /src/components/theme/useDirection.ts: -------------------------------------------------------------------------------- 1 | import type {ThemeContextProps} from './types'; 2 | import {useThemeContext} from './useThemeContext'; 3 | 4 | export function useDirection(): ThemeContextProps['direction'] { 5 | return useThemeContext().direction; 6 | } 7 | -------------------------------------------------------------------------------- /src/components/theme/useTheme.ts: -------------------------------------------------------------------------------- 1 | import type {ThemeContextProps} from './types'; 2 | import {useThemeContext} from './useThemeContext'; 3 | 4 | export function useTheme(): ThemeContextProps['theme'] { 5 | return useThemeContext().theme; 6 | } 7 | -------------------------------------------------------------------------------- /src/components/theme/useThemeType.ts: -------------------------------------------------------------------------------- 1 | import {getThemeType} from './getThemeType'; 2 | import type {ThemeType} from './types'; 3 | import {useThemeValue} from './useThemeValue'; 4 | 5 | export function useThemeType(): ThemeType { 6 | return getThemeType(useThemeValue()); 7 | } 8 | -------------------------------------------------------------------------------- /src/components/theme/useThemeValue.ts: -------------------------------------------------------------------------------- 1 | import type {ThemeContextProps} from './types'; 2 | import {useThemeContext} from './useThemeContext'; 3 | 4 | export function useThemeValue(): ThemeContextProps['themeValue'] { 5 | return useThemeContext().themeValue; 6 | } 7 | -------------------------------------------------------------------------------- /src/components/useList/__stories__/components/VirtualizedListContainer/index.ts: -------------------------------------------------------------------------------- 1 | export * from './VirtualizedListContainer.async'; 2 | -------------------------------------------------------------------------------- /src/components/useList/components/ListContainer/index.ts: -------------------------------------------------------------------------------- 1 | export {ListContainer} from './ListContainer'; 2 | export type {ListContainerProps} from './ListContainer'; 3 | -------------------------------------------------------------------------------- /src/components/useList/components/ListContainerView/index.ts: -------------------------------------------------------------------------------- 1 | export {ListContainerView, type ListContainerViewProps} from './ListContainerView'; 2 | -------------------------------------------------------------------------------- /src/components/useList/components/ListItemExpandIcon/ListItemExpandIcon.scss: -------------------------------------------------------------------------------- 1 | @use '../../../variables'; 2 | 3 | $block: '.#{variables.$ns}list-item-expand-icon'; 4 | 5 | #{$block} { 6 | flex-shrink: 0; 7 | } 8 | -------------------------------------------------------------------------------- /src/components/useList/components/ListItemExpandIcon/index.ts: -------------------------------------------------------------------------------- 1 | export {ListItemExpandIcon} from './ListItemExpandIcon'; 2 | export type {ListItemExpandIconProps} from './ListItemExpandIcon'; 3 | -------------------------------------------------------------------------------- /src/components/useList/components/ListItemView/index.ts: -------------------------------------------------------------------------------- 1 | export {ListItemView} from './ListItemView'; 2 | export {isListItemContentPropsGuard} from './ListItemViewContent'; 3 | export type {ListItemViewProps, ListItemViewCommonProps} from './ListItemView'; 4 | -------------------------------------------------------------------------------- /src/components/useList/components/ListItemView/styles.ts: -------------------------------------------------------------------------------- 1 | import {block} from '../../../utils/cn'; 2 | 3 | import './ListItemView.scss'; 4 | 5 | export const b = block('list-item-view'); 6 | -------------------------------------------------------------------------------- /src/components/useList/components/ListRecursiveRenderer/ListRecursiveRenderer.scss: -------------------------------------------------------------------------------- 1 | @use '../../../variables'; 2 | 3 | $block: '.#{variables.$ns}list-recursive-renderer'; 4 | 5 | #{$block} { 6 | padding: 0; 7 | margin: 0; 8 | } 9 | -------------------------------------------------------------------------------- /src/components/useList/components/ListRecursiveRenderer/index.ts: -------------------------------------------------------------------------------- 1 | export {ListItemRecursiveRenderer} from './ListRecursiveRenderer'; 2 | export type {ListItemRecursiveRendererProps} from './ListRecursiveRenderer'; 3 | -------------------------------------------------------------------------------- /src/components/useList/constants.ts: -------------------------------------------------------------------------------- 1 | export const LIST_ITEM_DATA_ATR = 'data-list-item'; 2 | 3 | export const GROUPED_ID_SEPARATOR = '-'; 4 | 5 | export const modToHeight = { 6 | s: [22, 44], 7 | m: [26, 44], 8 | l: [34, 52], 9 | xl: [44, 62], 10 | } as const; 11 | -------------------------------------------------------------------------------- /src/components/useList/utils/computeItemSize.ts: -------------------------------------------------------------------------------- 1 | import {modToHeight} from '../constants'; 2 | import type {ListItemSize} from '../types'; 3 | 4 | export const computeItemSize = (size: ListItemSize, hasSubRows = false) => { 5 | return modToHeight[size][Number(hasSubRows)]; 6 | }; 7 | -------------------------------------------------------------------------------- /src/components/useList/utils/getListItemQa.ts: -------------------------------------------------------------------------------- 1 | import type {ListItemId} from '../types'; 2 | 3 | export const getListItemQa = (qa: string, id: ListItemId): string => `${qa}-${id}`; 4 | -------------------------------------------------------------------------------- /src/components/useList/utils/isTreeItemGuard.ts: -------------------------------------------------------------------------------- 1 | import type {ListItemType, ListTreeItemType} from '../types'; 2 | 3 | export const isTreeItemGuard = (item?: ListItemType): item is ListTreeItemType => { 4 | return item !== null && typeof item === 'object' && 'data' in item; 5 | }; 6 | -------------------------------------------------------------------------------- /src/components/utils/event-broker/index.ts: -------------------------------------------------------------------------------- 1 | export {eventBroker, EventBroker} from './EventBroker'; 2 | export {useEventBroker} from './useEventBroker'; 3 | export type {EventBrokerSubscription, EventBrokerData} from './EventBroker'; 4 | -------------------------------------------------------------------------------- /src/components/utils/getComponentName.ts: -------------------------------------------------------------------------------- 1 | export function getComponentName(Component: React.ComponentType) { 2 | return Component.displayName || Component.name || 'Component'; 3 | } 4 | -------------------------------------------------------------------------------- /src/components/utils/layer-manager/index.ts: -------------------------------------------------------------------------------- 1 | export {layerManager, getLayersCount} from './LayerManager'; 2 | export type {LayerConfig, LayerCloseReason} from './LayerManager'; 3 | export {useLayer} from './useLayer'; 4 | export type {LayerProps} from './useLayer'; 5 | -------------------------------------------------------------------------------- /src/components/utils/svg.ts: -------------------------------------------------------------------------------- 1 | export const a11yHiddenSvgProps = { 2 | // Hides element from a11y tree 3 | 'aria-hidden': true, 4 | }; 5 | -------------------------------------------------------------------------------- /src/components/utils/typeCheckers.ts: -------------------------------------------------------------------------------- 1 | export const isFunction = (value: unknown): value is Function => typeof value === 'function'; 2 | -------------------------------------------------------------------------------- /src/components/utils/warn.ts: -------------------------------------------------------------------------------- 1 | const didWarn = new Map(); 2 | 3 | export function warnOnce(msg: string) { 4 | if (!msg || didWarn.has(msg) || process.env.NODE_ENV === 'production') { 5 | return; 6 | } 7 | 8 | console.error(msg); 9 | didWarn.set(msg, true); 10 | } 11 | -------------------------------------------------------------------------------- /src/components/variables.scss: -------------------------------------------------------------------------------- 1 | $ns: 'g-'; 2 | 3 | $xs-height: 20px; 4 | $s-height: 24px; 5 | $m-height: 28px; 6 | $l-height: 36px; 7 | $xl-height: 44px; 8 | 9 | $button-shrink-transition: transform 0.1s ease-out; 10 | $button-shrink-transform: scale(0.96); 11 | 12 | $modal-default-margin: 20px; 13 | -------------------------------------------------------------------------------- /src/demo/Showcase/index.ts: -------------------------------------------------------------------------------- 1 | export {Showcase} from './Showcase'; 2 | -------------------------------------------------------------------------------- /src/demo/ShowcaseGrid/index.ts: -------------------------------------------------------------------------------- 1 | export {ShowcaseGrid} from './ShowcaseGrid'; 2 | -------------------------------------------------------------------------------- /src/demo/ShowcaseItem/ShowcaseItem.scss: -------------------------------------------------------------------------------- 1 | @use '../../../styles/mixins'; 2 | 3 | .showcase-item { 4 | &__title { 5 | @include mixins.text-subheader-3(); 6 | margin-block-end: var(--g-spacing-3); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/demo/ShowcaseItem/index.ts: -------------------------------------------------------------------------------- 1 | export {ShowcaseItem} from './ShowcaseItem'; 2 | -------------------------------------------------------------------------------- /src/deprecated.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gravity-ui/uikit/75cf80d323317d2606686b560b25b15376d6558b/src/deprecated.ts -------------------------------------------------------------------------------- /src/hooks/private/useAnimateHeight/index.ts: -------------------------------------------------------------------------------- 1 | export {useAnimateHeight} from './useAnimateHeight'; 2 | -------------------------------------------------------------------------------- /src/hooks/private/useBoolean/index.ts: -------------------------------------------------------------------------------- 1 | export {useBoolean} from './useBoolean'; 2 | export type {UseBooleanResult} from './useBoolean'; 3 | -------------------------------------------------------------------------------- /src/hooks/private/useCheckbox/index.ts: -------------------------------------------------------------------------------- 1 | export {useCheckbox} from './useCheckbox'; 2 | export type {UseCheckboxProps, UseCheckboxResult} from './useCheckbox'; 3 | -------------------------------------------------------------------------------- /src/hooks/private/useCloseOnTimeout/index.ts: -------------------------------------------------------------------------------- 1 | export {useCloseOnTimeout} from './useCloseOnTimeout'; 2 | export type {UseCloseOnTimeoutProps, UseCloseOnTimeoutResult} from './useCloseOnTimeout'; 3 | -------------------------------------------------------------------------------- /src/hooks/private/useConditionallyControlledState/index.ts: -------------------------------------------------------------------------------- 1 | export {useConditionallyControlledState} from './useConditionallyControlledState'; 2 | export type {UseConditionallyControlledStateResult} from './useConditionallyControlledState'; 3 | -------------------------------------------------------------------------------- /src/hooks/private/useElementSize/index.ts: -------------------------------------------------------------------------------- 1 | export {useElementSize} from './useElementSize'; 2 | export type {UseElementSizeResult} from './useElementSize'; 3 | -------------------------------------------------------------------------------- /src/hooks/private/useHover/README.md: -------------------------------------------------------------------------------- 1 | # useHover 2 | 3 | The `useHover` hook makes hover state with callbacks for change it 4 | 5 | ## Result 6 | 7 | ``` 8 | [ 9 | onMouseEnter, // React.MouseEventHandler 10 | onMouseLeave, // React.MouseEventHandler 11 | isHovering, // boolean 12 | ] 13 | ``` 14 | -------------------------------------------------------------------------------- /src/hooks/private/useHover/index.ts: -------------------------------------------------------------------------------- 1 | export {useHover} from './useHover'; 2 | export type {UseHoverResult} from './useHover'; 3 | -------------------------------------------------------------------------------- /src/hooks/private/usePrevious/index.ts: -------------------------------------------------------------------------------- 1 | export {usePrevious} from './usePrevious'; 2 | -------------------------------------------------------------------------------- /src/hooks/private/usePrevious/usePrevious.ts: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | 3 | export function usePrevious(value: T): T | undefined { 4 | const ref = React.useRef(); 5 | 6 | React.useEffect(() => { 7 | ref.current = value; 8 | }); 9 | 10 | return ref.current; 11 | } 12 | -------------------------------------------------------------------------------- /src/hooks/private/useRadio/index.ts: -------------------------------------------------------------------------------- 1 | export {useRadio} from './useRadio'; 2 | export type {UseRadioProps, UseRadioResult} from './useRadio'; 3 | -------------------------------------------------------------------------------- /src/hooks/private/useRadioGroup/index.ts: -------------------------------------------------------------------------------- 1 | export {useRadioGroup} from './useRadioGroup'; 2 | export type {UseRadioGroupProps, UseRadioGroupResult} from './useRadioGroup'; 3 | -------------------------------------------------------------------------------- /src/hooks/private/useStateWithCallback/index.ts: -------------------------------------------------------------------------------- 1 | export {useStateWithCallback} from './useStateWithCallback'; 2 | -------------------------------------------------------------------------------- /src/hooks/private/useUpdateEffect/README.md: -------------------------------------------------------------------------------- 1 | # useUpdateEffect 2 | 3 | The `useUpdateEffect` hook that ignores the first invocation (e.g. on mount). The signature is exactly the same as the useEffect hook. 4 | -------------------------------------------------------------------------------- /src/hooks/private/useUpdateEffect/index.ts: -------------------------------------------------------------------------------- 1 | export {useUpdateEffect} from './useUpdateEffect'; 2 | -------------------------------------------------------------------------------- /src/hooks/useActionHandlers/index.ts: -------------------------------------------------------------------------------- 1 | export {useActionHandlers} from './useActionHandlers'; 2 | export type {UseActionHandlersProps, UseActionHandlersResult} from './useActionHandlers'; 3 | -------------------------------------------------------------------------------- /src/hooks/useAsyncActionHandler/__stories__/UseAsyncActionHandlerDemo.classname.ts: -------------------------------------------------------------------------------- 1 | import {block} from '../../../components/utils/cn'; 2 | 3 | export const cnUseAsyncActionHandlerDemo = block('async-action-handler-demo'); 4 | -------------------------------------------------------------------------------- /src/hooks/useAsyncActionHandler/index.ts: -------------------------------------------------------------------------------- 1 | export * from './useAsyncActionHandler'; 2 | -------------------------------------------------------------------------------- /src/hooks/useControlledState/index.ts: -------------------------------------------------------------------------------- 1 | export * from './useControlledState'; 2 | -------------------------------------------------------------------------------- /src/hooks/useFileInput/index.ts: -------------------------------------------------------------------------------- 1 | export {useFileInput} from './useFileInput'; 2 | export type {UseFileInputProps, UseFileInputResult} from './useFileInput'; 3 | -------------------------------------------------------------------------------- /src/hooks/useFocusWithin/index.ts: -------------------------------------------------------------------------------- 1 | export {useFocusWithin} from './useFocusWithin'; 2 | export type {UseFocusWithinProps, UseFocusWithinResult} from './useFocusWithin'; 3 | -------------------------------------------------------------------------------- /src/hooks/useForkRef/index.ts: -------------------------------------------------------------------------------- 1 | export {useForkRef} from './useForkRef'; 2 | export {mergeRefs} from './mergeRefs'; 3 | export {setRef} from './setRef'; 4 | export type {UseForkRefProps, UseForkRefResult} from './useForkRef'; 5 | -------------------------------------------------------------------------------- /src/hooks/useIntersection/index.ts: -------------------------------------------------------------------------------- 1 | export {useIntersection} from './useIntersection'; 2 | export type {UseIntersectionProps} from './useIntersection'; 3 | -------------------------------------------------------------------------------- /src/hooks/useListNavigation/index.ts: -------------------------------------------------------------------------------- 1 | export {useListNavigation} from './useListNavigation'; 2 | export type {UseListNavigationProps, UseListNavigationResult} from './useListNavigation'; 3 | -------------------------------------------------------------------------------- /src/hooks/useOutsideClick/index.ts: -------------------------------------------------------------------------------- 1 | export {useOutsideClick} from './useOutsideClick'; 2 | export type {UseOutsideClickProps} from './useOutsideClick'; 3 | -------------------------------------------------------------------------------- /src/hooks/usePortalContainer/index.ts: -------------------------------------------------------------------------------- 1 | export {usePortalContainer} from './usePortalContainer'; 2 | export {PortalProvider} from './PortalProvider'; 3 | export type {UsePortalContainerResult} from './usePortalContainer'; 4 | -------------------------------------------------------------------------------- /src/hooks/useResizeObserver/index.ts: -------------------------------------------------------------------------------- 1 | export {useResizeObserver} from './useResizeObserver'; 2 | -------------------------------------------------------------------------------- /src/hooks/useSelect/index.ts: -------------------------------------------------------------------------------- 1 | export {useSelect} from './useSelect'; 2 | export type {UseSelectOption, UseSelectProps} from './types'; 3 | -------------------------------------------------------------------------------- /src/hooks/useTimeout/index.ts: -------------------------------------------------------------------------------- 1 | export {useTimeout} from './useTimeout'; 2 | export type {UseTimeoutProps} from './useTimeout'; 3 | -------------------------------------------------------------------------------- /src/hooks/useUniqId/README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # useUniqId 4 | 5 | 6 | 7 | ```tsx 8 | import {useUniqId} from '@gravity-ui/uikit'; 9 | ``` 10 | 11 | The `useUniqId` hook creates unique ID. 12 | 13 | ## Result 14 | 15 | ID. `string` 16 | -------------------------------------------------------------------------------- /src/hooks/useUniqId/index.ts: -------------------------------------------------------------------------------- 1 | export {useUniqId} from './useUniqId'; 2 | export type {UseUniqIdResult} from './useUniqId'; 3 | -------------------------------------------------------------------------------- /src/hooks/useViewportSize/index.ts: -------------------------------------------------------------------------------- 1 | export {useViewportSize} from './useViewportSize'; 2 | export type {UseViewportSizeResult} from './useViewportSize'; 3 | -------------------------------------------------------------------------------- /src/hooks/useVirtualElementRef/index.ts: -------------------------------------------------------------------------------- 1 | export {useVirtualElementRef, useVirtualElement} from './useVirtualElementRef'; 2 | export type { 3 | VirtualElementRect, 4 | UseVirtualElementRefProps, 5 | UseVirtualElementRefResult, 6 | } from './useVirtualElementRef'; 7 | -------------------------------------------------------------------------------- /src/i18n/index.ts: -------------------------------------------------------------------------------- 1 | export * from './addComponentKeysets'; 2 | export * from './addLanguageKeysets'; 3 | export type * from './types'; 4 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | export {Lang, configure, getConfig} from './utils/configure'; 2 | export * from './components'; 3 | export * from './hooks'; 4 | export * from './utils/dom'; 5 | export type {StringWithSuggest} from './types/utils'; 6 | -------------------------------------------------------------------------------- /src/legacy.ts: -------------------------------------------------------------------------------- 1 | export * from './components/legacy'; 2 | -------------------------------------------------------------------------------- /src/server.ts: -------------------------------------------------------------------------------- 1 | export {getRootClassName} from './components/theme/getRootClassName'; 2 | -------------------------------------------------------------------------------- /src/stories/tests-factory/models.ts: -------------------------------------------------------------------------------- 1 | export type CaseName = string; 2 | export type Cases = Array; 3 | export type CasesWithName = Array<[CaseName, T]>; 4 | 5 | export type ScenarioName = string; 6 | export type Scenario = [ScenarioName, T]; 7 | -------------------------------------------------------------------------------- /src/toaster-singleton.ts: -------------------------------------------------------------------------------- 1 | import {Toaster} from './components/Toaster/Toaster'; 2 | 3 | export const toaster = new Toaster(); 4 | -------------------------------------------------------------------------------- /styles/fonts.scss: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap'); 2 | -------------------------------------------------------------------------------- /test-utils/setup-tests-after.ts: -------------------------------------------------------------------------------- 1 | import '@testing-library/jest-dom'; 2 | -------------------------------------------------------------------------------- /test-utils/setupTimersMock.ts: -------------------------------------------------------------------------------- 1 | export const setupTimersMock = () => { 2 | beforeEach(() => { 3 | jest.useFakeTimers(); 4 | }); 5 | 6 | afterEach(() => { 7 | jest.runOnlyPendingTimers(); 8 | jest.useRealTimers(); 9 | }); 10 | }; 11 | --------------------------------------------------------------------------------