// (c) Copyright Ascensio System SIA 2010-2024 // // This program is a free software product. // You can redistribute it and/or modify it under the terms // of the GNU Affero General Public License (AGPL) version 3 as published by the Free Software // Foundation. In accordance with Section 7(a) of the GNU AGPL its Section 15 shall be amended // to the effect that Ascensio System SIA expressly excludes the warranty of non-infringement of // any third-party rights. // // This program is distributed WITHOUT ANY WARRANTY, without even the implied warranty // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For details, see // the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html // // You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, EU, LV-1021. // // The interactive user interfaces in modified source and object code versions of the Program must // display Appropriate Legal Notices, as required under Section 5 of the GNU AGPL version 3. // // Pursuant to Section 7(b) of the License you must retain the original Product logo when // distributing the program. Pursuant to Section 7(e) we decline to grant you any rights under // trademark law for use of our trademarks. // // All the Product's GUI elements, including illustrations and icon sets, as well as technical writing // content are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0 // International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode import React from "react"; import styled from "styled-components"; import { Meta, StoryObj } from "@storybook/react"; import { TabsContainer } from "./TabsContainer"; import { TElement, TabsContainerProps } from "./TabsContainer.types"; const meta = { title: "Components/TabsContainer", component: TabsContainer, parameters: { design: { type: "figma", url: "https://www.figma.com/file/ZiW5KSwb4t7Tj6Nz5TducC/UI-Kit-DocSpace-1.0.0?type=design&node-id=638-4439&mode=design&t=TBNCKMQKQMxr44IZ-0", }, }, } satisfies Meta; type Story = StoryObj; export default meta; const arrayItems = [ { key: "tab0", title: "Title1", content: (
), }, { key: "tab1", title: "Title2", content: (
), }, { key: "tab2", title: "Title3", content: (
), }, { key: "tab3", title: "Title4", content: (
), }, { key: "tab4", title: "Title5", content: (
), }, ]; const scrollArrayItems = [ { key: "tab0", title: "First long tab container", content: ( <>

), }, { key: "tab1", title: "Short", content: ( <>

), }, { key: "tab2", title: "Second long tab container", content: ( <>

), }, { key: "tab3", title: "Short2", content: ( <>

), }, { key: "tab4", title: "Third long tab container header", content: ( <>

), }, { key: "tab5", title: "Short3", content: ( <>

), }, { key: "tab6", title: "tab container", content: ( <>

), }, { key: "tab7", title: "Very long tabs-container field", content: ( <>

), }, { key: "tab8", title: "tab container", content: ( <>

), }, { key: "tab9", title: "Short_04", content: ( <>

), }, { key: "tab10", title: "Short__05", content: ( <>

), }, { key: "tab11", title: "TabsContainer", content: ( <>

), }, ]; const tabsItems = [ { key: "tab0", title: "Title00000000", content: ( <>

), }, { key: "tab1", title: "Title00000001", content: ( <>

), }, { key: "tab2", title: "Title00000002", content: ( <>

), }, { key: "tab3", title: "Title00000003", content: ( <>

), }, { key: "tab4", title: "Title00000004", content: ( <>

), }, { key: "tab5", title: "Title00000005", content: ( <>

), }, { key: "tab6", title: "Title00000006", content: ( <>

), }, { key: "tab7", title: "Title00000007", content: ( <>

), }, { key: "tab8", title: "Title00000008", content: ( <>

), }, { key: "tab9", title: "Title00000009", content: ( <>

), }, ]; const StyledTitle = styled.h5.attrs({ dir: "auto" })` text-align: ${({ theme }) => theme.interfaceDirection === "rtl" ? `right` : `left`}; `; const Template = ({ onSelect, ...args }: TabsContainerProps) => { return (
Base TabsContainer: onSelect(index)} selectedItem={arrayItems.indexOf(arrayItems[0])} elements={arrayItems} />
Autoscrolling with different tab widths: onSelect(index)} />
Autoscrolling with the same tabs width: onSelect(index)} />
); }; export const basic: Story = { render: (args) =>