obeyaka-ui 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +285 -0
- package/dist/index.es.js +9066 -0
- package/dist/index.js +733 -0
- package/dist/planning_leader.png +0 -0
- package/dist/progress_leader.png +0 -0
- package/dist/project_leader.png +0 -0
- package/dist/style.css +1 -0
- package/dist/team_leader.png +0 -0
- package/dist/team_member.png +0 -0
- package/dist/team_owner.png +0 -0
- package/dist/types/components/atoms/ActionButton/ActionButton.d.ts +18 -0
- package/dist/types/components/atoms/ActionButton/ActionButton.d.ts.map +1 -0
- package/dist/types/components/atoms/ActionButton/ActionButton.types.d.ts +49 -0
- package/dist/types/components/atoms/ActionButton/ActionButton.types.d.ts.map +1 -0
- package/dist/types/components/atoms/ActionButton/index.d.ts +3 -0
- package/dist/types/components/atoms/ActionButton/index.d.ts.map +1 -0
- package/dist/types/components/atoms/BoxAvatar/BoxAvatar.d.ts +32 -0
- package/dist/types/components/atoms/BoxAvatar/BoxAvatar.d.ts.map +1 -0
- package/dist/types/components/atoms/BoxAvatar/BoxAvatar.types.d.ts +31 -0
- package/dist/types/components/atoms/BoxAvatar/BoxAvatar.types.d.ts.map +1 -0
- package/dist/types/components/atoms/BoxAvatar/EmojiAvatar/EmojiAvatar.d.ts +16 -0
- package/dist/types/components/atoms/BoxAvatar/EmojiAvatar/EmojiAvatar.d.ts.map +1 -0
- package/dist/types/components/atoms/BoxAvatar/EmojiAvatar/index.d.ts +3 -0
- package/dist/types/components/atoms/BoxAvatar/EmojiAvatar/index.d.ts.map +1 -0
- package/dist/types/components/atoms/BoxAvatar/IconAvatar/IconAvatar.d.ts +16 -0
- package/dist/types/components/atoms/BoxAvatar/IconAvatar/IconAvatar.d.ts.map +1 -0
- package/dist/types/components/atoms/BoxAvatar/IconAvatar/index.d.ts +3 -0
- package/dist/types/components/atoms/BoxAvatar/IconAvatar/index.d.ts.map +1 -0
- package/dist/types/components/atoms/BoxAvatar/ImageAvatar/ImageAvatar.d.ts +20 -0
- package/dist/types/components/atoms/BoxAvatar/ImageAvatar/ImageAvatar.d.ts.map +1 -0
- package/dist/types/components/atoms/BoxAvatar/ImageAvatar/index.d.ts +3 -0
- package/dist/types/components/atoms/BoxAvatar/ImageAvatar/index.d.ts.map +1 -0
- package/dist/types/components/atoms/BoxAvatar/PlaceholderAvatar/PlaceholderAvatar.d.ts +18 -0
- package/dist/types/components/atoms/BoxAvatar/PlaceholderAvatar/PlaceholderAvatar.d.ts.map +1 -0
- package/dist/types/components/atoms/BoxAvatar/PlaceholderAvatar/index.d.ts +3 -0
- package/dist/types/components/atoms/BoxAvatar/PlaceholderAvatar/index.d.ts.map +1 -0
- package/dist/types/components/atoms/BoxAvatar/index.d.ts +4 -0
- package/dist/types/components/atoms/BoxAvatar/index.d.ts.map +1 -0
- package/dist/types/components/atoms/BoxAvatar/utils.d.ts +7 -0
- package/dist/types/components/atoms/BoxAvatar/utils.d.ts.map +1 -0
- package/dist/types/components/atoms/Logo/Logo.d.ts +30 -0
- package/dist/types/components/atoms/Logo/Logo.d.ts.map +1 -0
- package/dist/types/components/atoms/Logo/Logo.types.d.ts +15 -0
- package/dist/types/components/atoms/Logo/Logo.types.d.ts.map +1 -0
- package/dist/types/components/atoms/Logo/index.d.ts +3 -0
- package/dist/types/components/atoms/Logo/index.d.ts.map +1 -0
- package/dist/types/components/atoms/TextButton/TextButton.d.ts +27 -0
- package/dist/types/components/atoms/TextButton/TextButton.d.ts.map +1 -0
- package/dist/types/components/atoms/TextButton/TextButton.types.d.ts +6 -0
- package/dist/types/components/atoms/TextButton/TextButton.types.d.ts.map +1 -0
- package/dist/types/components/atoms/TextButton/index.d.ts +3 -0
- package/dist/types/components/atoms/TextButton/index.d.ts.map +1 -0
- package/dist/types/components/atoms/index.d.ts +17 -0
- package/dist/types/components/atoms/index.d.ts.map +1 -0
- package/dist/types/components/index.d.ts +5 -0
- package/dist/types/components/index.d.ts.map +1 -0
- package/dist/types/components/molecules/ExpandableSearch/ExpandableSearch.d.ts +30 -0
- package/dist/types/components/molecules/ExpandableSearch/ExpandableSearch.d.ts.map +1 -0
- package/dist/types/components/molecules/ExpandableSearch/ExpandableSearch.types.d.ts +21 -0
- package/dist/types/components/molecules/ExpandableSearch/ExpandableSearch.types.d.ts.map +1 -0
- package/dist/types/components/molecules/ExpandableSearch/index.d.ts +3 -0
- package/dist/types/components/molecules/ExpandableSearch/index.d.ts.map +1 -0
- package/dist/types/components/molecules/FilterDropdown/AddFilterButton.d.ts +4 -0
- package/dist/types/components/molecules/FilterDropdown/AddFilterButton.d.ts.map +1 -0
- package/dist/types/components/molecules/FilterDropdown/FilterDropdown.d.ts +7 -0
- package/dist/types/components/molecules/FilterDropdown/FilterDropdown.d.ts.map +1 -0
- package/dist/types/components/molecules/FilterDropdown/FilterDropdown.types.d.ts +50 -0
- package/dist/types/components/molecules/FilterDropdown/FilterDropdown.types.d.ts.map +1 -0
- package/dist/types/components/molecules/FilterDropdown/FilterDropdownButton.d.ts +4 -0
- package/dist/types/components/molecules/FilterDropdown/FilterDropdownButton.d.ts.map +1 -0
- package/dist/types/components/molecules/FilterDropdown/FilterDropdownFilters.d.ts +4 -0
- package/dist/types/components/molecules/FilterDropdown/FilterDropdownFilters.d.ts.map +1 -0
- package/dist/types/components/molecules/FilterDropdown/FilterTag.d.ts +4 -0
- package/dist/types/components/molecules/FilterDropdown/FilterTag.d.ts.map +1 -0
- package/dist/types/components/molecules/FilterDropdown/index.d.ts +7 -0
- package/dist/types/components/molecules/FilterDropdown/index.d.ts.map +1 -0
- package/dist/types/components/molecules/Menu/Menu.d.ts +28 -0
- package/dist/types/components/molecules/Menu/Menu.d.ts.map +1 -0
- package/dist/types/components/molecules/Menu/Menu.types.d.ts +10 -0
- package/dist/types/components/molecules/Menu/Menu.types.d.ts.map +1 -0
- package/dist/types/components/molecules/Menu/MenuItem.d.ts +9 -0
- package/dist/types/components/molecules/Menu/MenuItem.d.ts.map +1 -0
- package/dist/types/components/molecules/Menu/index.d.ts +5 -0
- package/dist/types/components/molecules/Menu/index.d.ts.map +1 -0
- package/dist/types/components/molecules/NavButton/NavButton.d.ts +30 -0
- package/dist/types/components/molecules/NavButton/NavButton.d.ts.map +1 -0
- package/dist/types/components/molecules/NavButton/NavButton.types.d.ts +13 -0
- package/dist/types/components/molecules/NavButton/NavButton.types.d.ts.map +1 -0
- package/dist/types/components/molecules/NavButton/index.d.ts +3 -0
- package/dist/types/components/molecules/NavButton/index.d.ts.map +1 -0
- package/dist/types/components/molecules/NavLink/NavLink.d.ts +4 -0
- package/dist/types/components/molecules/NavLink/NavLink.d.ts.map +1 -0
- package/dist/types/components/molecules/NavLink/NavLink.types.d.ts +27 -0
- package/dist/types/components/molecules/NavLink/NavLink.types.d.ts.map +1 -0
- package/dist/types/components/molecules/NavLink/index.d.ts +3 -0
- package/dist/types/components/molecules/NavLink/index.d.ts.map +1 -0
- package/dist/types/components/molecules/index.d.ts +11 -0
- package/dist/types/components/molecules/index.d.ts.map +1 -0
- package/dist/types/components/organisms/AvatarSelector/AvatarSelector.d.ts +3 -0
- package/dist/types/components/organisms/AvatarSelector/AvatarSelector.d.ts.map +1 -0
- package/dist/types/components/organisms/AvatarSelector/AvatarSelector.types.d.ts +83 -0
- package/dist/types/components/organisms/AvatarSelector/AvatarSelector.types.d.ts.map +1 -0
- package/dist/types/components/organisms/AvatarSelector/EmojiPicker/CustomEmojiPicker.d.ts +7 -0
- package/dist/types/components/organisms/AvatarSelector/EmojiPicker/CustomEmojiPicker.d.ts.map +1 -0
- package/dist/types/components/organisms/AvatarSelector/EmojiPicker/useEmojiAvatarSelector.d.ts +25 -0
- package/dist/types/components/organisms/AvatarSelector/EmojiPicker/useEmojiAvatarSelector.d.ts.map +1 -0
- package/dist/types/components/organisms/AvatarSelector/IconsPicker/CategoryTabs.d.ts +7 -0
- package/dist/types/components/organisms/AvatarSelector/IconsPicker/CategoryTabs.d.ts.map +1 -0
- package/dist/types/components/organisms/AvatarSelector/IconsPicker/IconComponents.d.ts +31 -0
- package/dist/types/components/organisms/AvatarSelector/IconsPicker/IconComponents.d.ts.map +1 -0
- package/dist/types/components/organisms/AvatarSelector/IconsPicker/IconGrid.d.ts +8 -0
- package/dist/types/components/organisms/AvatarSelector/IconsPicker/IconGrid.d.ts.map +1 -0
- package/dist/types/components/organisms/AvatarSelector/IconsPicker/avatarIcons.d.ts +50 -0
- package/dist/types/components/organisms/AvatarSelector/IconsPicker/avatarIcons.d.ts.map +1 -0
- package/dist/types/components/organisms/AvatarSelector/IconsPicker/index.d.ts +5 -0
- package/dist/types/components/organisms/AvatarSelector/IconsPicker/index.d.ts.map +1 -0
- package/dist/types/components/organisms/AvatarSelector/ImagePicker/ImageUploader.d.ts +14 -0
- package/dist/types/components/organisms/AvatarSelector/ImagePicker/ImageUploader.d.ts.map +1 -0
- package/dist/types/components/organisms/AvatarSelector/PopoverLoader.d.ts +2 -0
- package/dist/types/components/organisms/AvatarSelector/PopoverLoader.d.ts.map +1 -0
- package/dist/types/components/organisms/AvatarSelector/TabHeader.d.ts +13 -0
- package/dist/types/components/organisms/AvatarSelector/TabHeader.d.ts.map +1 -0
- package/dist/types/components/organisms/AvatarSelector/Tabs.d.ts +24 -0
- package/dist/types/components/organisms/AvatarSelector/Tabs.d.ts.map +1 -0
- package/dist/types/components/organisms/AvatarSelector/index.d.ts +10 -0
- package/dist/types/components/organisms/AvatarSelector/index.d.ts.map +1 -0
- package/dist/types/components/organisms/AvatarSelector/useExternalEvents.d.ts +14 -0
- package/dist/types/components/organisms/AvatarSelector/useExternalEvents.d.ts.map +1 -0
- package/dist/types/components/organisms/AvatarSelector/utils/index.d.ts +2 -0
- package/dist/types/components/organisms/AvatarSelector/utils/index.d.ts.map +1 -0
- package/dist/types/components/organisms/AvatarSelector/utils/initials.d.ts +7 -0
- package/dist/types/components/organisms/AvatarSelector/utils/initials.d.ts.map +1 -0
- package/dist/types/components/organisms/AvatarSelector/utils/preload.d.ts +10 -0
- package/dist/types/components/organisms/AvatarSelector/utils/preload.d.ts.map +1 -0
- package/dist/types/components/organisms/AvatarSelector/utils.d.ts +30 -0
- package/dist/types/components/organisms/AvatarSelector/utils.d.ts.map +1 -0
- package/dist/types/components/organisms/GenericTable/GenericTable.d.ts +38 -0
- package/dist/types/components/organisms/GenericTable/GenericTable.d.ts.map +1 -0
- package/dist/types/components/organisms/GenericTable/GenericTable.types.d.ts +71 -0
- package/dist/types/components/organisms/GenericTable/GenericTable.types.d.ts.map +1 -0
- package/dist/types/components/organisms/GenericTable/index.d.ts +5 -0
- package/dist/types/components/organisms/GenericTable/index.d.ts.map +1 -0
- package/dist/types/components/organisms/GenericTable/useGenericTablePagination.d.ts +4 -0
- package/dist/types/components/organisms/GenericTable/useGenericTablePagination.d.ts.map +1 -0
- package/dist/types/components/organisms/InvitedUserCard/InvitedUserCard.d.ts +4 -0
- package/dist/types/components/organisms/InvitedUserCard/InvitedUserCard.d.ts.map +1 -0
- package/dist/types/components/organisms/InvitedUserCard/InvitedUserCard.types.d.ts +27 -0
- package/dist/types/components/organisms/InvitedUserCard/InvitedUserCard.types.d.ts.map +1 -0
- package/dist/types/components/organisms/InvitedUserCard/index.d.ts +3 -0
- package/dist/types/components/organisms/InvitedUserCard/index.d.ts.map +1 -0
- package/dist/types/components/organisms/Navbar/Navbar.d.ts +4 -0
- package/dist/types/components/organisms/Navbar/Navbar.d.ts.map +1 -0
- package/dist/types/components/organisms/Navbar/Navbar.types.d.ts +20 -0
- package/dist/types/components/organisms/Navbar/Navbar.types.d.ts.map +1 -0
- package/dist/types/components/organisms/Navbar/NavbarProvider.d.ts +12 -0
- package/dist/types/components/organisms/Navbar/NavbarProvider.d.ts.map +1 -0
- package/dist/types/components/organisms/Navbar/index.d.ts +4 -0
- package/dist/types/components/organisms/Navbar/index.d.ts.map +1 -0
- package/dist/types/components/organisms/NotificationSidebar/NotificationCard.d.ts +4 -0
- package/dist/types/components/organisms/NotificationSidebar/NotificationCard.d.ts.map +1 -0
- package/dist/types/components/organisms/NotificationSidebar/NotificationSidebar.d.ts +35 -0
- package/dist/types/components/organisms/NotificationSidebar/NotificationSidebar.d.ts.map +1 -0
- package/dist/types/components/organisms/NotificationSidebar/NotificationSidebar.types.d.ts +40 -0
- package/dist/types/components/organisms/NotificationSidebar/NotificationSidebar.types.d.ts.map +1 -0
- package/dist/types/components/organisms/NotificationSidebar/index.d.ts +4 -0
- package/dist/types/components/organisms/NotificationSidebar/index.d.ts.map +1 -0
- package/dist/types/components/organisms/NotificationSidebar/useNotificationSidebar.d.ts +5 -0
- package/dist/types/components/organisms/NotificationSidebar/useNotificationSidebar.d.ts.map +1 -0
- package/dist/types/components/organisms/PopoverSelector/PopoverItem.d.ts +15 -0
- package/dist/types/components/organisms/PopoverSelector/PopoverItem.d.ts.map +1 -0
- package/dist/types/components/organisms/PopoverSelector/PopoverSelector.d.ts +35 -0
- package/dist/types/components/organisms/PopoverSelector/PopoverSelector.d.ts.map +1 -0
- package/dist/types/components/organisms/PopoverSelector/PopoverSelector.types.d.ts +62 -0
- package/dist/types/components/organisms/PopoverSelector/PopoverSelector.types.d.ts.map +1 -0
- package/dist/types/components/organisms/PopoverSelector/index.d.ts +4 -0
- package/dist/types/components/organisms/PopoverSelector/index.d.ts.map +1 -0
- package/dist/types/components/organisms/ShareMenu/InputTags.d.ts +6 -0
- package/dist/types/components/organisms/ShareMenu/InputTags.d.ts.map +1 -0
- package/dist/types/components/organisms/ShareMenu/InputTags.utils.d.ts +31 -0
- package/dist/types/components/organisms/ShareMenu/InputTags.utils.d.ts.map +1 -0
- package/dist/types/components/organisms/ShareMenu/ShareButton.d.ts +14 -0
- package/dist/types/components/organisms/ShareMenu/ShareButton.d.ts.map +1 -0
- package/dist/types/components/organisms/ShareMenu/ShareMenu.d.ts +35 -0
- package/dist/types/components/organisms/ShareMenu/ShareMenu.d.ts.map +1 -0
- package/dist/types/components/organisms/ShareMenu/ShareMenu.types.d.ts +46 -0
- package/dist/types/components/organisms/ShareMenu/ShareMenu.types.d.ts.map +1 -0
- package/dist/types/components/organisms/ShareMenu/hooks/index.d.ts +5 -0
- package/dist/types/components/organisms/ShareMenu/hooks/index.d.ts.map +1 -0
- package/dist/types/components/organisms/ShareMenu/hooks/useInputTags.d.ts +21 -0
- package/dist/types/components/organisms/ShareMenu/hooks/useInputTags.d.ts.map +1 -0
- package/dist/types/components/organisms/ShareMenu/hooks/useShareMenu.d.ts +38 -0
- package/dist/types/components/organisms/ShareMenu/hooks/useShareMenu.d.ts.map +1 -0
- package/dist/types/components/organisms/ShareMenu/index.d.ts +6 -0
- package/dist/types/components/organisms/ShareMenu/index.d.ts.map +1 -0
- package/dist/types/components/organisms/ShareMenu/validation.utils.d.ts +28 -0
- package/dist/types/components/organisms/ShareMenu/validation.utils.d.ts.map +1 -0
- package/dist/types/components/organisms/WorkspaceSelector/WorkspaceSelector.d.ts +34 -0
- package/dist/types/components/organisms/WorkspaceSelector/WorkspaceSelector.d.ts.map +1 -0
- package/dist/types/components/organisms/WorkspaceSelector/WorkspaceSelector.types.d.ts +35 -0
- package/dist/types/components/organisms/WorkspaceSelector/WorkspaceSelector.types.d.ts.map +1 -0
- package/dist/types/components/organisms/WorkspaceSelector/WorkspaceSelectorItem.d.ts +16 -0
- package/dist/types/components/organisms/WorkspaceSelector/WorkspaceSelectorItem.d.ts.map +1 -0
- package/dist/types/components/organisms/WorkspaceSelector/index.d.ts +5 -0
- package/dist/types/components/organisms/WorkspaceSelector/index.d.ts.map +1 -0
- package/dist/types/components/organisms/index.d.ts +22 -0
- package/dist/types/components/organisms/index.d.ts.map +1 -0
- package/dist/types/components/templates/CenterPeek/CenterPeek.d.ts +4 -0
- package/dist/types/components/templates/CenterPeek/CenterPeek.d.ts.map +1 -0
- package/dist/types/components/templates/CenterPeek/CenterPeek.types.d.ts +9 -0
- package/dist/types/components/templates/CenterPeek/CenterPeek.types.d.ts.map +1 -0
- package/dist/types/components/templates/CenterPeek/index.d.ts +3 -0
- package/dist/types/components/templates/CenterPeek/index.d.ts.map +1 -0
- package/dist/types/components/templates/FullPage/FullPage.d.ts +5 -0
- package/dist/types/components/templates/FullPage/FullPage.d.ts.map +1 -0
- package/dist/types/components/templates/FullPage/index.d.ts +2 -0
- package/dist/types/components/templates/FullPage/index.d.ts.map +1 -0
- package/dist/types/components/templates/SidePeek/SidePeek.d.ts +4 -0
- package/dist/types/components/templates/SidePeek/SidePeek.d.ts.map +1 -0
- package/dist/types/components/templates/SidePeek/SidePeek.types.d.ts +9 -0
- package/dist/types/components/templates/SidePeek/SidePeek.types.d.ts.map +1 -0
- package/dist/types/components/templates/SidePeek/index.d.ts +3 -0
- package/dist/types/components/templates/SidePeek/index.d.ts.map +1 -0
- package/dist/types/components/templates/index.d.ts +6 -0
- package/dist/types/components/templates/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/layouts/AppLayout/AppLayout.d.ts +4 -0
- package/dist/types/layouts/AppLayout/AppLayout.d.ts.map +1 -0
- package/dist/types/layouts/AppLayout/AppLayout.types.d.ts +8 -0
- package/dist/types/layouts/AppLayout/AppLayout.types.d.ts.map +1 -0
- package/dist/types/layouts/AppLayout/AppLayoutProvider.d.ts +24 -0
- package/dist/types/layouts/AppLayout/AppLayoutProvider.d.ts.map +1 -0
- package/dist/types/layouts/AppLayout/index.d.ts +4 -0
- package/dist/types/layouts/AppLayout/index.d.ts.map +1 -0
- package/dist/types/layouts/BaseLayout/BaseLayout.d.ts +4 -0
- package/dist/types/layouts/BaseLayout/BaseLayout.d.ts.map +1 -0
- package/dist/types/layouts/BaseLayout/BaseLayout.types.d.ts +7 -0
- package/dist/types/layouts/BaseLayout/BaseLayout.types.d.ts.map +1 -0
- package/dist/types/layouts/BaseLayout/index.d.ts +3 -0
- package/dist/types/layouts/BaseLayout/index.d.ts.map +1 -0
- package/dist/types/layouts/index.d.ts +3 -0
- package/dist/types/layouts/index.d.ts.map +1 -0
- package/dist/types/theme/ThemeProvider.d.ts +9 -0
- package/dist/types/theme/ThemeProvider.d.ts.map +1 -0
- package/dist/types/theme/index.d.ts +143 -0
- package/dist/types/theme/index.d.ts.map +1 -0
- package/dist/types/utils/date.d.ts +48 -0
- package/dist/types/utils/date.d.ts.map +1 -0
- package/dist/types/utils/images.d.ts +17 -0
- package/dist/types/utils/images.d.ts.map +1 -0
- package/dist/types/utils/imports.d.ts +29 -0
- package/dist/types/utils/imports.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +3 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/package.json +102 -0
package/README.md
ADDED
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
# Obeyaka UI Library
|
|
2
|
+
|
|
3
|
+
[](https://www.typescriptlang.org/)
|
|
4
|
+
[](https://reactjs.org/)
|
|
5
|
+
[](https://mantine.dev/)
|
|
6
|
+
[](https://storybook.js.org/)
|
|
7
|
+
[](https://opensource.org/licenses/MIT)
|
|
8
|
+
|
|
9
|
+
Professional UI component library built with React, TypeScript, Storybook, and Mantine 8. Following Atomic Design principles for scalable and maintainable component architecture.
|
|
10
|
+
|
|
11
|
+
## โจ Features
|
|
12
|
+
|
|
13
|
+
- ๐จ **15+ Professional Components** - Atoms, Molecules, and Organisms
|
|
14
|
+
- ๐ง **100% TypeScript** - Full type safety and excellent developer experience
|
|
15
|
+
- ๐ฏ **Atomic Design** - Organized components following atomic design principles
|
|
16
|
+
- ๐ฑ **Responsive Design** - Mobile-first approach with adaptive layouts
|
|
17
|
+
- โฟ **Accessibility First** - WCAG compliant with full keyboard navigation
|
|
18
|
+
- โก **Performance Optimized** - Memoized components and efficient rendering
|
|
19
|
+
- ๐งช **Comprehensive Testing** - Unit tests for critical components
|
|
20
|
+
- ๐ **Rich Documentation** - Storybook stories and detailed READMEs
|
|
21
|
+
- ๐จ **Customizable Theming** - Flexible styling with Mantine's theming system
|
|
22
|
+
|
|
23
|
+
## ๐ Quick Start
|
|
24
|
+
|
|
25
|
+
### Prerequisites
|
|
26
|
+
|
|
27
|
+
- Node.js >= 16.0.0
|
|
28
|
+
- npm >= 8.0.0
|
|
29
|
+
|
|
30
|
+
### Installation
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npm install @obeyaka/ui
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Basic Usage
|
|
37
|
+
|
|
38
|
+
```tsx
|
|
39
|
+
import { ActionButton, BoxAvatar, GenericTable } from '@obeyaka/ui';
|
|
40
|
+
import { IconPlus, IconUser } from '@tabler/icons-react';
|
|
41
|
+
|
|
42
|
+
function MyComponent() {
|
|
43
|
+
return (
|
|
44
|
+
<div>
|
|
45
|
+
{/* Action Button */}
|
|
46
|
+
<ActionButton
|
|
47
|
+
icon={IconPlus}
|
|
48
|
+
tooltip="Add new item"
|
|
49
|
+
onClick={() => console.log('clicked')}
|
|
50
|
+
/>
|
|
51
|
+
|
|
52
|
+
{/* Avatar */}
|
|
53
|
+
<BoxAvatar avatar={{ type: 'emoji', value: '๐' }} size="md" />
|
|
54
|
+
|
|
55
|
+
{/* Data Table */}
|
|
56
|
+
<GenericTable
|
|
57
|
+
tableName="Users"
|
|
58
|
+
data={users}
|
|
59
|
+
columns={columns}
|
|
60
|
+
onAddItem={() => openAddModal()}
|
|
61
|
+
/>
|
|
62
|
+
</div>
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## ๐ฆ Component Categories
|
|
68
|
+
|
|
69
|
+
### Atoms (4 components)
|
|
70
|
+
|
|
71
|
+
Basic building blocks of the UI system.
|
|
72
|
+
|
|
73
|
+
- **ActionButton** - Professional action button with multiple variants
|
|
74
|
+
- **BoxAvatar** - Flexible avatar supporting emoji, image, and placeholder
|
|
75
|
+
- **TextButton** - Simple text button with hover and active states
|
|
76
|
+
- **Logo** - Brand logo component with customizable sizing
|
|
77
|
+
|
|
78
|
+
### Molecules (4 components)
|
|
79
|
+
|
|
80
|
+
Simple component groups combining atoms.
|
|
81
|
+
|
|
82
|
+
- **ExpandableSearch** - Animated search input that expands from an icon
|
|
83
|
+
- **FilterDropdown** - Comprehensive filtering system with active tags
|
|
84
|
+
- **Menu** - Dropdown menu with dynamic width and custom styling
|
|
85
|
+
- **NavButton** - Navigation button with icon, label, and indicator
|
|
86
|
+
|
|
87
|
+
### Organisms (7 components)
|
|
88
|
+
|
|
89
|
+
Complex component groups for specific functionality.
|
|
90
|
+
|
|
91
|
+
- **AvatarSelector** - Complete avatar selection with emoji, icon, and image pickers
|
|
92
|
+
- **GenericTable** - Advanced data table with search, filtering, and sorting
|
|
93
|
+
- **InvitedUserCard** - User invitation and management interface
|
|
94
|
+
- **NotificationSidebar** - Real-time notification management with infinite scroll
|
|
95
|
+
- **PopoverSelector** - Flexible selection component with custom options
|
|
96
|
+
- **ShareMenu** - Collaboration interface with user invitation and role management
|
|
97
|
+
- **WorkspaceSelector** - Multi-workspace management with search and switching
|
|
98
|
+
|
|
99
|
+
## ๐ ๏ธ Development
|
|
100
|
+
|
|
101
|
+
### Storybook (Component Development)
|
|
102
|
+
|
|
103
|
+
Start Storybook development server:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
npm run dev
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
This will start Storybook on `http://localhost:6006`
|
|
110
|
+
|
|
111
|
+
### Demo App (Component Showcase)
|
|
112
|
+
|
|
113
|
+
Start the demo application:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
npm run dev:app
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
This will start the demo app on `http://localhost:8081`
|
|
120
|
+
|
|
121
|
+
### Build
|
|
122
|
+
|
|
123
|
+
#### Build Storybook
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
npm run build:storybook
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
#### Build Demo App
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
npm run build:app
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
#### Build Library for npm
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
npm run build:lib
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## ๐จ Theming
|
|
142
|
+
|
|
143
|
+
The project uses Mantine's theming system. You can customize the theme in:
|
|
144
|
+
|
|
145
|
+
- `.storybook/theme.ts` - For Storybook
|
|
146
|
+
- `src/app/theme.ts` - For the demo app
|
|
147
|
+
|
|
148
|
+
### Custom Theme Example
|
|
149
|
+
|
|
150
|
+
```tsx
|
|
151
|
+
import { createTheme } from '@mantine/core';
|
|
152
|
+
|
|
153
|
+
const theme = createTheme({
|
|
154
|
+
primaryColor: 'blue',
|
|
155
|
+
fontFamily: 'Inter, -apple-system, BlinkMacSystemFont, sans-serif',
|
|
156
|
+
colors: {
|
|
157
|
+
blue: [
|
|
158
|
+
'#e7f5ff',
|
|
159
|
+
'#d0ebff',
|
|
160
|
+
'#a5d8ff',
|
|
161
|
+
'#74c0fc',
|
|
162
|
+
'#339af0',
|
|
163
|
+
'#228be6',
|
|
164
|
+
'#1c7ed6',
|
|
165
|
+
'#1971c2',
|
|
166
|
+
'#1864ab',
|
|
167
|
+
'#0c528b',
|
|
168
|
+
],
|
|
169
|
+
},
|
|
170
|
+
});
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
## ๐ Project Structure
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
src/
|
|
177
|
+
โโโ components/ # Reusable UI components (for npm)
|
|
178
|
+
โ โโโ atoms/ # Basic building blocks (4 components)
|
|
179
|
+
โ โโโ molecules/ # Simple component groups (4 components)
|
|
180
|
+
โ โโโ organisms/ # Complex component groups (7 components)
|
|
181
|
+
โ โโโ templates/ # Page-level components
|
|
182
|
+
โโโ app/ # Demo application (development only)
|
|
183
|
+
โ โโโ App.tsx # Main app component
|
|
184
|
+
โ โโโ main.tsx # App entry point
|
|
185
|
+
โ โโโ pages/ # Demo pages (Home, Components)
|
|
186
|
+
โ โโโ components/ # Demo-specific components
|
|
187
|
+
โโโ stories/ # Storybook stories
|
|
188
|
+
โโโ types/ # TypeScript type definitions
|
|
189
|
+
โโโ index.ts # Library entry point (for npm)
|
|
190
|
+
|
|
191
|
+
.storybook/ # Storybook configuration
|
|
192
|
+
โโโ main.ts # Storybook main config
|
|
193
|
+
โโโ preview.tsx # Global decorators and parameters
|
|
194
|
+
โโโ theme.ts # Mantine theme configuration
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## ๐งช Testing
|
|
198
|
+
|
|
199
|
+
The library includes comprehensive unit tests for critical components:
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
# Run all tests
|
|
203
|
+
npm test
|
|
204
|
+
|
|
205
|
+
# Run tests for specific component
|
|
206
|
+
npm test ActionButton
|
|
207
|
+
npm test GenericTable
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### Test Coverage
|
|
211
|
+
|
|
212
|
+
- โ
ActionButton - Full test coverage
|
|
213
|
+
- โ
TextButton - Core functionality tests
|
|
214
|
+
- โ
NavButton - Navigation and interaction tests
|
|
215
|
+
- โ
BoxAvatar - Avatar type and state tests
|
|
216
|
+
- โ
GenericTable - Data management tests
|
|
217
|
+
|
|
218
|
+
## ๐ Documentation
|
|
219
|
+
|
|
220
|
+
Each component includes:
|
|
221
|
+
|
|
222
|
+
- **JSDoc Comments** - Comprehensive inline documentation
|
|
223
|
+
- **TypeScript Types** - Full type definitions and interfaces
|
|
224
|
+
- **Storybook Stories** - Interactive examples and variations
|
|
225
|
+
- **README Files** - Detailed documentation for complex organisms
|
|
226
|
+
- **Usage Examples** - Real-world implementation examples
|
|
227
|
+
|
|
228
|
+
## ๐ Publishing to npm
|
|
229
|
+
|
|
230
|
+
To publish your component library:
|
|
231
|
+
|
|
232
|
+
1. Build the library:
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
npm run build:lib
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
2. Publish to npm:
|
|
239
|
+
```bash
|
|
240
|
+
npm publish
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
## ๐ Scripts
|
|
244
|
+
|
|
245
|
+
- `npm run dev` - Start Storybook development server
|
|
246
|
+
- `npm run dev:app` - Start demo app development server
|
|
247
|
+
- `npm run build:storybook` - Build Storybook for production
|
|
248
|
+
- `npm run build:app` - Build demo app for production
|
|
249
|
+
- `npm run build:lib` - Build library for npm publishing
|
|
250
|
+
- `npm run preview` - Preview built demo app
|
|
251
|
+
- `npm run lint` - Run ESLint
|
|
252
|
+
- `npm run lint:fix` - Fix ESLint issues
|
|
253
|
+
- `npm run type-check` - Run TypeScript type checking
|
|
254
|
+
|
|
255
|
+
## ๐ค Contributing
|
|
256
|
+
|
|
257
|
+
1. Create your components in `src/components/`
|
|
258
|
+
2. Add stories in `src/stories/`
|
|
259
|
+
3. Test components in the demo app (`src/app/`)
|
|
260
|
+
4. Follow the established patterns and conventions
|
|
261
|
+
5. Ensure all components are properly typed with TypeScript
|
|
262
|
+
6. Add tests for new components
|
|
263
|
+
7. Update documentation
|
|
264
|
+
|
|
265
|
+
### Development Guidelines
|
|
266
|
+
|
|
267
|
+
- Follow Atomic Design principles
|
|
268
|
+
- Use TypeScript for all components
|
|
269
|
+
- Include comprehensive JSDoc comments
|
|
270
|
+
- Add Storybook stories for all components
|
|
271
|
+
- Write tests for critical functionality
|
|
272
|
+
- Ensure accessibility compliance
|
|
273
|
+
- Use consistent naming conventions
|
|
274
|
+
|
|
275
|
+
## ๐ License
|
|
276
|
+
|
|
277
|
+
MIT License - see LICENSE file for details.
|
|
278
|
+
|
|
279
|
+
## ๐ Acknowledgments
|
|
280
|
+
|
|
281
|
+
- [Mantine](https://mantine.dev/) - Amazing React components library
|
|
282
|
+
- [Tabler Icons](https://tabler-icons.io/) - Beautiful icons
|
|
283
|
+
- [Storybook](https://storybook.js.org/) - Component development environment
|
|
284
|
+
- [React](https://reactjs.org/) - UI library
|
|
285
|
+
- [TypeScript](https://www.typescriptlang.org/) - Type safety
|