@a2v2ai/uikit 0.0.36 → 0.0.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/Alert/Alert.stories.tsx +121 -0
  2. package/Alert/Alert.tsx +71 -0
  3. package/AlertDialog/AlertDialog.stories.tsx +665 -0
  4. package/AlertDialog/AlertDialog.tsx +241 -0
  5. package/Avatar/Avatar.stories.tsx +128 -0
  6. package/Avatar/Avatar.tsx +71 -0
  7. package/Badge/Badge.stories.tsx +76 -0
  8. package/Badge/Badge.tsx +39 -0
  9. package/Breadcrumb/Breadcrumb.stories.tsx +231 -0
  10. package/Breadcrumb/Breadcrumb.tsx +114 -0
  11. package/Button/Button.stories.tsx +684 -0
  12. package/Button/Button.tsx +107 -0
  13. package/Calendar/Calendar.stories.tsx +291 -0
  14. package/Calendar/Calendar.tsx +246 -0
  15. package/Card/Card.stories.tsx +136 -0
  16. package/Card/Card.tsx +96 -0
  17. package/Carousel/Carousel.stories.tsx +256 -0
  18. package/Carousel/Carousel.tsx +301 -0
  19. package/ChatBubble/ChatBubble.stories.tsx +339 -0
  20. package/ChatBubble/ChatBubble.tsx +179 -0
  21. package/Checkbox/Checkbox.stories.tsx +137 -0
  22. package/Checkbox/Checkbox.tsx +53 -0
  23. package/DataTable/DataTable.stories.tsx +400 -0
  24. package/DataTable/DataTable.tsx +207 -0
  25. package/Drawer/Drawer.stories.tsx +721 -0
  26. package/Drawer/Drawer.tsx +201 -0
  27. package/DropdownMenu/DropdownMenu.stories.tsx +251 -0
  28. package/DropdownMenu/DropdownMenu.tsx +199 -0
  29. package/ErrorMessage/ErrorMessage.stories.tsx +159 -0
  30. package/ErrorMessage/ErrorMessage.tsx +55 -0
  31. package/Flex/Flex.stories.tsx +390 -0
  32. package/Flex/Flex.tsx +102 -0
  33. package/IconButton/IconButton.stories.tsx +566 -0
  34. package/IconButton/IconButton.tsx +95 -0
  35. package/Input/Input.stories.tsx +566 -0
  36. package/Input/Input.tsx +168 -0
  37. package/InputOTP/InputOTP.stories.tsx +246 -0
  38. package/InputOTP/InputOTP.tsx +127 -0
  39. package/Label/Label.stories.tsx +110 -0
  40. package/Label/Label.tsx +44 -0
  41. package/Loader/Loader.stories.tsx +170 -0
  42. package/Loader/Loader.tsx +62 -0
  43. package/Menubar/Menubar.stories.tsx +382 -0
  44. package/Menubar/Menubar.tsx +274 -0
  45. package/Menubar/index.ts +18 -0
  46. package/Pagination/Pagination.stories.tsx +196 -0
  47. package/Pagination/Pagination.tsx +122 -0
  48. package/Popover/Popover.stories.tsx +133 -0
  49. package/Popover/Popover.tsx +31 -0
  50. package/Progress/Progress.stories.tsx +146 -0
  51. package/Progress/Progress.tsx +67 -0
  52. package/RadioGroup/RadioGroup.stories.tsx +159 -0
  53. package/RadioGroup/RadioGroup.tsx +68 -0
  54. package/ScrollArea/ScrollArea.stories.tsx +136 -0
  55. package/ScrollArea/ScrollArea.tsx +46 -0
  56. package/Select/Select.stories.tsx +378 -0
  57. package/Select/Select.tsx +230 -0
  58. package/Separator/Separator.stories.tsx +110 -0
  59. package/Separator/Separator.tsx +29 -0
  60. package/Sidebar/Sidebar.stories.tsx +340 -0
  61. package/Sidebar/Sidebar.tsx +414 -0
  62. package/Sidebar/index.ts +28 -0
  63. package/Skeleton/Skeleton.stories.tsx +117 -0
  64. package/Skeleton/Skeleton.tsx +16 -0
  65. package/Slider/Slider.stories.tsx +216 -0
  66. package/Slider/Slider.tsx +29 -0
  67. package/Spinner/Spinner.stories.tsx +210 -0
  68. package/Spinner/Spinner.tsx +78 -0
  69. package/Switch/Switch.stories.tsx +146 -0
  70. package/Switch/Switch.tsx +59 -0
  71. package/Table/Table.stories.tsx +510 -0
  72. package/Table/Table.tsx +114 -0
  73. package/Tabs/Tabs.stories.tsx +197 -0
  74. package/Tabs/Tabs.tsx +74 -0
  75. package/Textarea/Textarea.stories.tsx +187 -0
  76. package/Textarea/Textarea.tsx +73 -0
  77. package/Toast/Toast.stories.tsx +285 -0
  78. package/Toast/Toast.tsx +59 -0
  79. package/Tooltip/Tooltip.stories.tsx +463 -0
  80. package/Tooltip/Tooltip.tsx +96 -0
  81. package/Typography/Typography.stories.tsx +425 -0
  82. package/Typography/Typography.tsx +106 -0
  83. package/helpers.ts +5 -0
  84. package/{icons.js → icons.ts} +1 -1
  85. package/index.ts +217 -0
  86. package/lib/typography-types.ts +223 -0
  87. package/lib/utils.ts +15 -0
  88. package/package.json +36 -33
  89. package/tsconfig.json +22 -0
  90. package/Alert/Alert.d.ts +0 -13
  91. package/Alert/Alert.js +0 -25
  92. package/AlertDialog/AlertDialog.d.ts +0 -43
  93. package/AlertDialog/AlertDialog.js +0 -71
  94. package/Avatar/Avatar.d.ts +0 -14
  95. package/Avatar/Avatar.js +0 -25
  96. package/Badge/Badge.d.ts +0 -11
  97. package/Badge/Badge.js +0 -23
  98. package/Breadcrumb/Breadcrumb.d.ts +0 -19
  99. package/Breadcrumb/Breadcrumb.js +0 -23
  100. package/Button/Button.d.ts +0 -23
  101. package/Button/Button.js +0 -52
  102. package/Calendar/Calendar.d.ts +0 -20
  103. package/Calendar/Calendar.js +0 -78
  104. package/Card/Card.d.ts +0 -16
  105. package/Card/Card.js +0 -28
  106. package/Carousel/Carousel.d.ts +0 -37
  107. package/Carousel/Carousel.js +0 -132
  108. package/ChatBubble/ChatBubble.d.ts +0 -33
  109. package/ChatBubble/ChatBubble.js +0 -107
  110. package/Checkbox/Checkbox.d.ts +0 -12
  111. package/Checkbox/Checkbox.js +0 -20
  112. package/DataTable/DataTable.d.ts +0 -35
  113. package/DataTable/DataTable.js +0 -51
  114. package/Dialog/Dialog.d.ts +0 -35
  115. package/Dialog/Dialog.js +0 -130
  116. package/Drawer/Drawer.d.ts +0 -33
  117. package/Drawer/Drawer.js +0 -55
  118. package/DropdownMenu/DropdownMenu.d.ts +0 -27
  119. package/DropdownMenu/DropdownMenu.js +0 -35
  120. package/ErrorMessage/ErrorMessage.d.ts +0 -27
  121. package/ErrorMessage/ErrorMessage.js +0 -14
  122. package/Flex/Flex.d.ts +0 -31
  123. package/Flex/Flex.js +0 -64
  124. package/IconButton/IconButton.d.ts +0 -23
  125. package/IconButton/IconButton.js +0 -48
  126. package/Input/Input.d.ts +0 -27
  127. package/Input/Input.js +0 -42
  128. package/InputOTP/InputOTP.d.ts +0 -20
  129. package/InputOTP/InputOTP.js +0 -44
  130. package/Label/Label.d.ts +0 -13
  131. package/Label/Label.js +0 -19
  132. package/Loader/Loader.d.ts +0 -21
  133. package/Loader/Loader.js +0 -30
  134. package/Menubar/Menubar.d.ts +0 -26
  135. package/Menubar/Menubar.js +0 -54
  136. package/Menubar/index.d.ts +0 -1
  137. package/Menubar/index.js +0 -1
  138. package/Pagination/Pagination.d.ts +0 -35
  139. package/Pagination/Pagination.js +0 -37
  140. package/Popover/Popover.d.ts +0 -7
  141. package/Popover/Popover.js +0 -10
  142. package/Progress/Progress.d.ts +0 -17
  143. package/Progress/Progress.js +0 -33
  144. package/RadioGroup/RadioGroup.d.ts +0 -13
  145. package/RadioGroup/RadioGroup.js +0 -26
  146. package/ScrollArea/ScrollArea.d.ts +0 -5
  147. package/ScrollArea/ScrollArea.js +0 -11
  148. package/Select/Select.d.ts +0 -29
  149. package/Select/Select.js +0 -50
  150. package/Separator/Separator.d.ts +0 -4
  151. package/Separator/Separator.js +0 -7
  152. package/Sidebar/Sidebar.d.ts +0 -48
  153. package/Sidebar/Sidebar.js +0 -116
  154. package/Sidebar/index.d.ts +0 -2
  155. package/Sidebar/index.js +0 -1
  156. package/Skeleton/Skeleton.d.ts +0 -4
  157. package/Skeleton/Skeleton.js +0 -7
  158. package/Slider/Slider.d.ts +0 -6
  159. package/Slider/Slider.js +0 -7
  160. package/Spinner/Spinner.d.ts +0 -19
  161. package/Spinner/Spinner.js +0 -31
  162. package/Switch/Switch.d.ts +0 -12
  163. package/Switch/Switch.js +0 -30
  164. package/Table/Table.d.ts +0 -10
  165. package/Table/Table.js +0 -20
  166. package/Tabs/Tabs.d.ts +0 -15
  167. package/Tabs/Tabs.js +0 -24
  168. package/Textarea/Textarea.d.ts +0 -19
  169. package/Textarea/Textarea.js +0 -31
  170. package/Toast/Toast.d.ts +0 -12
  171. package/Toast/Toast.js +0 -25
  172. package/Tooltip/Tooltip.d.ts +0 -17
  173. package/Tooltip/Tooltip.js +0 -29
  174. package/Typography/Typography.d.ts +0 -20
  175. package/Typography/Typography.js +0 -43
  176. package/helpers.d.ts +0 -4
  177. package/helpers.js +0 -5
  178. package/icons.d.ts +0 -1
  179. package/index.d.ts +0 -42
  180. package/index.js +0 -45
  181. package/lib/typography-types.d.ts +0 -4
  182. package/lib/typography-types.js +0 -90
  183. package/lib/utils.d.ts +0 -3
  184. package/lib/utils.js +0 -14
  185. package/tmpclaude-2407-cwd +0 -1
@@ -0,0 +1,340 @@
1
+ import type { Meta, StoryObj } from "@storybook/react"
2
+ import {
3
+ BarChart,
4
+ FileText,
5
+ HelpCircle,
6
+ Home,
7
+ LogOut,
8
+ Mail,
9
+ PanelLeft,
10
+ PanelLeftClose,
11
+ Settings,
12
+ Users,
13
+ } from "lucide-react"
14
+ import { useState } from "react"
15
+
16
+ import { Avatar, AvatarFallback } from "../Avatar/Avatar"
17
+ import { Flex } from "../Flex/Flex"
18
+ import { Typography } from "../Typography/Typography"
19
+ import {
20
+ Sidebar,
21
+ SidebarContent,
22
+ SidebarFooter,
23
+ SidebarGroup,
24
+ SidebarGroupLabel,
25
+ SidebarHeader,
26
+ SidebarMenuItem,
27
+ SidebarSeparator,
28
+ SidebarSubMenuItem,
29
+ SidebarToggle,
30
+ } from "./Sidebar"
31
+
32
+ const meta: Meta<typeof Sidebar> = {
33
+ title: "Components/Sidebar",
34
+ component: Sidebar,
35
+ parameters: {
36
+ layout: "fullscreen",
37
+ },
38
+ tags: ["autodocs"],
39
+ }
40
+
41
+ export default meta
42
+ type Story = StoryObj<typeof Sidebar>
43
+
44
+ function DefaultSidebar() {
45
+ const [collapsed, setCollapsed] = useState(false)
46
+
47
+ return (
48
+ <div className="flex h-[600px] bg-grey-50">
49
+ <Sidebar collapsed={collapsed} onCollapsedChange={setCollapsed}>
50
+ <SidebarHeader>
51
+ <Flex align="center" gap={3} className="w-full">
52
+ <Avatar size="regular">
53
+ <AvatarFallback>AI</AvatarFallback>
54
+ </Avatar>
55
+ {!collapsed && (
56
+ <Flex direction="column" className="flex-1 min-w-0">
57
+ <Typography variant="subtitle2" className="truncate">
58
+ Acme Inc
59
+ </Typography>
60
+ <Typography variant="caption" color="grey-500" className="truncate">
61
+ Enterprise Plan
62
+ </Typography>
63
+ </Flex>
64
+ )}
65
+ <SidebarToggle>
66
+ {collapsed ? (
67
+ <PanelLeft className="size-4" />
68
+ ) : (
69
+ <PanelLeftClose className="size-4" />
70
+ )}
71
+ </SidebarToggle>
72
+ </Flex>
73
+ </SidebarHeader>
74
+
75
+ <SidebarContent>
76
+ <SidebarGroup>
77
+ <SidebarGroupLabel>Main Menu</SidebarGroupLabel>
78
+ <SidebarMenuItem
79
+ icon={<Home className="size-4" />}
80
+ label="Dashboard"
81
+ active
82
+ />
83
+ <SidebarMenuItem
84
+ icon={<BarChart className="size-4" />}
85
+ label="Analytics"
86
+ />
87
+ <SidebarMenuItem
88
+ icon={<Users className="size-4" />}
89
+ label="Team"
90
+ hasChildren
91
+ >
92
+ <SidebarSubMenuItem label="Members" />
93
+ <SidebarSubMenuItem label="Invitations" active />
94
+ <SidebarSubMenuItem label="Roles" />
95
+ </SidebarMenuItem>
96
+ <SidebarMenuItem
97
+ icon={<FileText className="size-4" />}
98
+ label="Documents"
99
+ />
100
+ </SidebarGroup>
101
+
102
+ <SidebarSeparator />
103
+
104
+ <SidebarGroup>
105
+ <SidebarGroupLabel>Settings</SidebarGroupLabel>
106
+ <SidebarMenuItem
107
+ icon={<Settings className="size-4" />}
108
+ label="General"
109
+ hasChildren
110
+ >
111
+ <SidebarSubMenuItem label="Profile" />
112
+ <SidebarSubMenuItem label="Security" />
113
+ <SidebarSubMenuItem label="Notifications" />
114
+ </SidebarMenuItem>
115
+ <SidebarMenuItem
116
+ icon={<Mail className="size-4" />}
117
+ label="Messages"
118
+ />
119
+ </SidebarGroup>
120
+ </SidebarContent>
121
+
122
+ <SidebarFooter>
123
+ <Flex align="center" gap={3} className="w-full">
124
+ <Avatar size="small">
125
+ <AvatarFallback>JD</AvatarFallback>
126
+ </Avatar>
127
+ {!collapsed && (
128
+ <>
129
+ <Flex direction="column" className="flex-1 min-w-0">
130
+ <Typography variant="body2" className="truncate">
131
+ John Doe
132
+ </Typography>
133
+ <Typography variant="caption" color="grey-500" className="truncate">
134
+ john@acme.com
135
+ </Typography>
136
+ </Flex>
137
+ <LogOut className="size-4 text-grey-400 cursor-pointer hover:text-grey-600" />
138
+ </>
139
+ )}
140
+ </Flex>
141
+ </SidebarFooter>
142
+ </Sidebar>
143
+
144
+ <div className="flex-1 p-6">
145
+ <Typography variant="h4">Main Content Area</Typography>
146
+ <Typography variant="body1" color="grey-500" className="mt-2">
147
+ Click the toggle button to collapse/expand the sidebar.
148
+ </Typography>
149
+ </div>
150
+ </div>
151
+ )
152
+ }
153
+
154
+ export const Default: Story = {
155
+ render: () => <DefaultSidebar />,
156
+ }
157
+
158
+ export const Expanded: Story = {
159
+ render: () => (
160
+ <div className="flex h-[500px] bg-grey-50">
161
+ <Sidebar>
162
+ <SidebarHeader>
163
+ <Flex align="center" gap={3}>
164
+ <Avatar size="regular">
165
+ <AvatarFallback>AI</AvatarFallback>
166
+ </Avatar>
167
+ <Flex direction="column">
168
+ <Typography variant="subtitle2">Acme Inc</Typography>
169
+ <Typography variant="caption" color="grey-500">
170
+ Enterprise Plan
171
+ </Typography>
172
+ </Flex>
173
+ </Flex>
174
+ </SidebarHeader>
175
+
176
+ <SidebarContent>
177
+ <SidebarGroup>
178
+ <SidebarGroupLabel>Navigation</SidebarGroupLabel>
179
+ <SidebarMenuItem
180
+ icon={<Home className="size-4" />}
181
+ label="Dashboard"
182
+ active
183
+ />
184
+ <SidebarMenuItem
185
+ icon={<BarChart className="size-4" />}
186
+ label="Analytics"
187
+ />
188
+ <SidebarMenuItem
189
+ icon={<Users className="size-4" />}
190
+ label="Team"
191
+ />
192
+ </SidebarGroup>
193
+ </SidebarContent>
194
+ </Sidebar>
195
+ </div>
196
+ ),
197
+ }
198
+
199
+ export const Collapsed: Story = {
200
+ render: () => (
201
+ <div className="flex h-[500px] bg-grey-50">
202
+ <Sidebar collapsed>
203
+ <SidebarHeader>
204
+ <Avatar size="regular">
205
+ <AvatarFallback>AI</AvatarFallback>
206
+ </Avatar>
207
+ </SidebarHeader>
208
+
209
+ <SidebarContent>
210
+ <SidebarGroup>
211
+ <SidebarMenuItem
212
+ icon={<Home className="size-4" />}
213
+ label="Dashboard"
214
+ active
215
+ />
216
+ <SidebarMenuItem
217
+ icon={<BarChart className="size-4" />}
218
+ label="Analytics"
219
+ />
220
+ <SidebarMenuItem
221
+ icon={<Users className="size-4" />}
222
+ label="Team"
223
+ />
224
+ <SidebarSeparator />
225
+ <SidebarMenuItem
226
+ icon={<Settings className="size-4" />}
227
+ label="Settings"
228
+ />
229
+ <SidebarMenuItem
230
+ icon={<HelpCircle className="size-4" />}
231
+ label="Help"
232
+ />
233
+ </SidebarGroup>
234
+ </SidebarContent>
235
+ </Sidebar>
236
+ </div>
237
+ ),
238
+ }
239
+
240
+ export const WithNestedItems: Story = {
241
+ render: () => (
242
+ <div className="flex h-[600px] bg-grey-50">
243
+ <Sidebar>
244
+ <SidebarHeader>
245
+ <Flex align="center" gap={3}>
246
+ <Avatar size="regular">
247
+ <AvatarFallback>AI</AvatarFallback>
248
+ </Avatar>
249
+ <Typography variant="subtitle2">Acme Inc</Typography>
250
+ </Flex>
251
+ </SidebarHeader>
252
+
253
+ <SidebarContent>
254
+ <SidebarGroup>
255
+ <SidebarGroupLabel>Sidebar label</SidebarGroupLabel>
256
+ <SidebarMenuItem
257
+ icon={<Home className="size-4" />}
258
+ label="Label"
259
+ hasChildren
260
+ expanded
261
+ >
262
+ <SidebarSubMenuItem label="Label" />
263
+ <SidebarSubMenuItem label="Label" />
264
+ <SidebarSubMenuItem label="Label" active />
265
+ </SidebarMenuItem>
266
+ <SidebarMenuItem
267
+ icon={<Settings className="size-4" />}
268
+ label="Label"
269
+ hasChildren
270
+ >
271
+ <SidebarSubMenuItem label="Label" />
272
+ <SidebarSubMenuItem label="Label" />
273
+ <SidebarSubMenuItem label="Label" />
274
+ </SidebarMenuItem>
275
+ <SidebarMenuItem
276
+ icon={<FileText className="size-4" />}
277
+ label="Label"
278
+ hasChildren
279
+ />
280
+ <SidebarMenuItem
281
+ icon={<Mail className="size-4" />}
282
+ label="Label"
283
+ hasChildren
284
+ />
285
+ </SidebarGroup>
286
+ </SidebarContent>
287
+ </Sidebar>
288
+ </div>
289
+ ),
290
+ }
291
+
292
+ export const WithLabelClassName: Story = {
293
+ render: () => (
294
+ <div className="flex h-[500px] bg-grey-50">
295
+ <Sidebar>
296
+ <SidebarHeader>
297
+ <Flex align="center" gap={3}>
298
+ <Avatar size="regular">
299
+ <AvatarFallback>AI</AvatarFallback>
300
+ </Avatar>
301
+ <Typography variant="subtitle2">Custom Labels</Typography>
302
+ </Flex>
303
+ </SidebarHeader>
304
+
305
+ <SidebarContent>
306
+ <SidebarGroup>
307
+ <SidebarGroupLabel>Navigation</SidebarGroupLabel>
308
+ <SidebarMenuItem
309
+ icon={<Home className="size-4" />}
310
+ label="Dashboard"
311
+ labelClassName="font-semibold text-accent-600"
312
+ active
313
+ />
314
+ <SidebarMenuItem
315
+ icon={<BarChart className="size-4" />}
316
+ label="Analytics"
317
+ labelClassName="italic"
318
+ />
319
+ <SidebarMenuItem
320
+ icon={<Users className="size-4" />}
321
+ label="Hidden on small screens"
322
+ labelClassName="hidden md:block"
323
+ />
324
+ <SidebarMenuItem
325
+ icon={<Settings className="size-4" />}
326
+ label="Custom Color"
327
+ labelClassName="text-error-500"
328
+ />
329
+ </SidebarGroup>
330
+ </SidebarContent>
331
+ </Sidebar>
332
+ <div className="flex-1 p-6">
333
+ <Typography variant="h4">labelClassName Prop</Typography>
334
+ <Typography variant="body1" color="grey-500" className="mt-2">
335
+ Use labelClassName to customize the label styling. Useful for responsive hiding, custom colors, or font styles.
336
+ </Typography>
337
+ </div>
338
+ </div>
339
+ ),
340
+ }