2024-02-20 09:54:32 +00:00
|
|
|
|
import React, { useState } from 'react';
|
2024-02-21 09:13:16 +00:00
|
|
|
|
import { Calendar } from 'components/shared/Calendar';
|
2024-02-20 09:54:32 +00:00
|
|
|
|
import { Value } from 'react-calendar/dist/cjs/shared/types';
|
2024-02-21 09:13:16 +00:00
|
|
|
|
import {
|
|
|
|
|
renderCheckbox,
|
|
|
|
|
renderCheckboxWithDescription,
|
|
|
|
|
} from './renders/checkbox';
|
|
|
|
|
import { avatars, avatarsFallback } from './renders/avatar';
|
|
|
|
|
import { renderBadges } from './renders/badge';
|
2024-02-22 02:17:22 +00:00
|
|
|
|
import {
|
|
|
|
|
renderButtonIcons,
|
|
|
|
|
renderButtons,
|
2024-02-22 05:24:25 +00:00
|
|
|
|
renderDisabledButtons,
|
2024-02-22 02:17:22 +00:00
|
|
|
|
renderLinks,
|
|
|
|
|
} from './renders/button';
|
2024-02-21 09:13:16 +00:00
|
|
|
|
import {
|
|
|
|
|
renderTabWithBadges,
|
|
|
|
|
renderTabs,
|
|
|
|
|
renderVerticalTabs,
|
|
|
|
|
} from './renders/tabs';
|
2024-02-22 03:45:19 +00:00
|
|
|
|
import {
|
|
|
|
|
renderInlineNotificationWithDescriptions,
|
|
|
|
|
renderInlineNotifications,
|
|
|
|
|
} from './renders/inlineNotifications';
|
2024-02-21 10:08:14 +00:00
|
|
|
|
import { renderInputs } from './renders/input';
|
2024-02-21 03:39:38 +00:00
|
|
|
|
|
2024-02-16 05:31:13 +00:00
|
|
|
|
const Page = () => {
|
2024-02-20 09:54:32 +00:00
|
|
|
|
const [singleDate, setSingleDate] = useState<Value>();
|
|
|
|
|
const [dateRange, setDateRange] = useState<Value>();
|
|
|
|
|
|
2024-02-16 05:31:13 +00:00
|
|
|
|
return (
|
|
|
|
|
<div className="relative h-full min-h-full">
|
2024-02-22 03:45:19 +00:00
|
|
|
|
<div className="flex flex-col items-center justify-center container mx-auto px-20 py-20">
|
2024-02-16 05:31:13 +00:00
|
|
|
|
<h1 className="text-4xl font-bold">Manual Storybook</h1>
|
|
|
|
|
<p className="mt-4 text-lg text-center text-gray-500">
|
|
|
|
|
Get started by editing{' '}
|
|
|
|
|
<code className="p-2 font-mono text-sm bg-gray-100 rounded-md">
|
|
|
|
|
packages/frontend/src/pages/components/index.tsx
|
|
|
|
|
</code>
|
|
|
|
|
</p>
|
2024-02-20 09:33:59 +00:00
|
|
|
|
|
2024-02-16 05:31:13 +00:00
|
|
|
|
<div className="w-full h border border-gray-200 px-20 my-10" />
|
|
|
|
|
|
2024-02-21 09:13:16 +00:00
|
|
|
|
{/* Button */}
|
2024-02-16 05:31:13 +00:00
|
|
|
|
<div className="flex flex-col gap-10 items-center justify-between">
|
2024-02-21 08:44:21 +00:00
|
|
|
|
<h1 className="text-2xl font-bold">Input</h1>
|
2024-02-21 10:08:14 +00:00
|
|
|
|
<div className="flex w-full flex-col gap-10">{renderInputs()}</div>
|
2024-02-21 08:44:21 +00:00
|
|
|
|
|
|
|
|
|
<div className="w-full h border border-gray-200 px-20 my-10" />
|
|
|
|
|
|
2024-02-19 13:13:56 +00:00
|
|
|
|
<h1 className="text-2xl font-bold">Button</h1>
|
2024-02-19 14:16:39 +00:00
|
|
|
|
<div className="flex flex-col gap-10">
|
2024-02-21 09:13:16 +00:00
|
|
|
|
{renderButtons()}
|
|
|
|
|
{renderButtonIcons()}
|
2024-02-16 05:31:13 +00:00
|
|
|
|
</div>
|
2024-02-20 11:51:09 +00:00
|
|
|
|
|
2024-02-22 05:24:25 +00:00
|
|
|
|
{/* Link */}
|
|
|
|
|
<div className="flex flex-col gap-10 items-center justify-between">
|
|
|
|
|
<h1 className="text-2xl font-bold">Link</h1>
|
|
|
|
|
<div className="flex gap-4 items-center justify-center">
|
|
|
|
|
{renderLinks()}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
{/* Disabled button, icon only, and link */}
|
|
|
|
|
<div className="flex flex-col gap-10 items-center justify-between">
|
|
|
|
|
<div className="flex flex-col gap-2">
|
|
|
|
|
<h1 className="text-2xl font-bold text-center">Disabled</h1>
|
|
|
|
|
<p className="text-lg text-center text-gray-500">
|
|
|
|
|
Button – icon only – link
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div className="flex gap-10 items-center justify-center">
|
|
|
|
|
{renderDisabledButtons()}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
2024-02-21 03:39:38 +00:00
|
|
|
|
<div className="w-full h border border-gray-200 px-20 my-10" />
|
2024-02-20 11:51:09 +00:00
|
|
|
|
|
2024-02-21 09:13:16 +00:00
|
|
|
|
{/* Badge */}
|
2024-02-21 03:39:38 +00:00
|
|
|
|
<div className="flex flex-col gap-10 items-center justify-between">
|
|
|
|
|
<h1 className="text-2xl font-bold">Badge</h1>
|
2024-02-21 09:13:16 +00:00
|
|
|
|
<div className="space-y-5">{renderBadges()}</div>
|
2024-02-20 11:51:09 +00:00
|
|
|
|
</div>
|
2024-02-20 16:38:35 +00:00
|
|
|
|
|
2024-02-21 03:39:38 +00:00
|
|
|
|
<div className="w-full h border border-gray-200 px-20 my-10" />
|
2024-02-20 16:38:35 +00:00
|
|
|
|
|
2024-02-21 09:13:16 +00:00
|
|
|
|
{/* Checkbox */}
|
2024-02-21 03:39:38 +00:00
|
|
|
|
<div className="flex flex-col gap-10 items-center justify-between">
|
|
|
|
|
<h1 className="text-2xl font-bold">Checkbox</h1>
|
2024-02-21 09:13:16 +00:00
|
|
|
|
<div className="flex gap-10 flex-wrap">{renderCheckbox()}</div>
|
2024-02-21 03:39:38 +00:00
|
|
|
|
<div className="flex gap-10 flex-wrap">
|
2024-02-21 09:13:16 +00:00
|
|
|
|
{renderCheckboxWithDescription()}
|
2024-02-21 03:39:38 +00:00
|
|
|
|
</div>
|
2024-02-20 11:25:13 +00:00
|
|
|
|
</div>
|
2024-02-20 16:29:18 +00:00
|
|
|
|
|
2024-02-21 03:39:38 +00:00
|
|
|
|
<div className="w-full h border border-gray-200 px-20 my-10" />
|
2024-02-20 16:29:18 +00:00
|
|
|
|
|
2024-02-21 09:13:16 +00:00
|
|
|
|
{/* Calendar */}
|
2024-02-21 03:39:38 +00:00
|
|
|
|
<div className="flex flex-col gap-10 items-center justify-between">
|
|
|
|
|
<h1 className="text-2xl font-bold">Calendar</h1>
|
|
|
|
|
<div className="flex flex-col gap-10">
|
|
|
|
|
<div className="space-y-5 flex flex-col items-center">
|
|
|
|
|
<p>Selected date: {singleDate?.toString()}</p>
|
|
|
|
|
<Calendar
|
|
|
|
|
value={singleDate}
|
|
|
|
|
onChange={setSingleDate}
|
|
|
|
|
onSelect={setSingleDate}
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
<div className="space-y-5 flex flex-col items-center">
|
|
|
|
|
<p>
|
|
|
|
|
Start date:{' '}
|
|
|
|
|
{dateRange instanceof Array ? dateRange[0]?.toString() : ''}{' '}
|
|
|
|
|
<br />
|
|
|
|
|
End date:{' '}
|
|
|
|
|
{dateRange instanceof Array ? dateRange[1]?.toString() : ''}
|
|
|
|
|
</p>
|
|
|
|
|
<Calendar
|
|
|
|
|
selectRange
|
|
|
|
|
value={dateRange}
|
|
|
|
|
onChange={setDateRange}
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
2024-02-20 09:54:32 +00:00
|
|
|
|
</div>
|
2024-02-21 09:13:16 +00:00
|
|
|
|
</div>
|
2024-02-21 03:39:38 +00:00
|
|
|
|
|
2024-02-21 09:13:16 +00:00
|
|
|
|
<div className="w-full h border border-gray-200 px-20 my-10" />
|
2024-02-21 03:39:38 +00:00
|
|
|
|
|
2024-02-21 09:13:16 +00:00
|
|
|
|
{/* Avatar */}
|
|
|
|
|
<div className="flex flex-col gap-10 items-center justify-between">
|
|
|
|
|
<h1 className="text-2xl font-bold">Avatar</h1>
|
|
|
|
|
<div className="flex gap-10 flex-wrap max-w-[522px]">
|
|
|
|
|
{avatars}
|
|
|
|
|
{avatarsFallback}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div className="w-full h border border-gray-200 px-20 my-10" />
|
|
|
|
|
|
|
|
|
|
{/* Tabs */}
|
|
|
|
|
<div className="flex flex-col gap-10 items-center justify-between">
|
|
|
|
|
<h1 className="text-2xl font-bold">Tabs</h1>
|
|
|
|
|
<div className="flex flex-col gap-10 items-center justify-center">
|
|
|
|
|
{renderTabs()}
|
|
|
|
|
{renderTabWithBadges()}
|
2024-02-20 09:54:32 +00:00
|
|
|
|
</div>
|
2024-02-21 09:13:16 +00:00
|
|
|
|
<h1 className="text-2xl font-bold">Vertical Tabs</h1>
|
|
|
|
|
{renderVerticalTabs()}
|
2024-02-20 09:33:59 +00:00
|
|
|
|
</div>
|
2024-02-22 02:17:22 +00:00
|
|
|
|
|
|
|
|
|
<div className="w-full h border border-gray-200 px-20 my-10" />
|
|
|
|
|
|
2024-02-22 03:45:19 +00:00
|
|
|
|
{/* Inline notification */}
|
|
|
|
|
<div className="flex flex-col gap-10 items-center justify-between">
|
|
|
|
|
<h1 className="text-2xl font-bold">Inline Notification</h1>
|
|
|
|
|
<div className="flex gap-1 flex-wrap">
|
|
|
|
|
{renderInlineNotifications()}
|
|
|
|
|
</div>
|
|
|
|
|
<div className="flex gap-1 flex-wrap">
|
|
|
|
|
{renderInlineNotificationWithDescriptions()}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2024-02-20 09:33:59 +00:00
|
|
|
|
</div>
|
2024-02-16 05:31:13 +00:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export default Page;
|