@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,285 @@
1
+ import type { Meta, StoryObj } from "@storybook/react"
2
+ import { Toaster, toast } from "./Toast"
3
+ import { Button } from "../Button/Button"
4
+ import { Flex } from "../Flex/Flex"
5
+ import { Typography } from "../Typography/Typography"
6
+
7
+ const meta: Meta<typeof Toaster> = {
8
+ title: "Components/Toast",
9
+ component: Toaster,
10
+ parameters: {
11
+ layout: "centered",
12
+ },
13
+ tags: ["autodocs"],
14
+ argTypes: {
15
+ theme: {
16
+ control: "select",
17
+ options: ["light", "dark", "system"],
18
+ description: "Theme for the toaster",
19
+ },
20
+ position: {
21
+ control: "select",
22
+ options: [
23
+ "top-left",
24
+ "top-center",
25
+ "top-right",
26
+ "bottom-left",
27
+ "bottom-center",
28
+ "bottom-right",
29
+ ],
30
+ description: "Position of the toast notifications",
31
+ },
32
+ richColors: {
33
+ control: "boolean",
34
+ description: "Enable rich colors for different toast types",
35
+ },
36
+ expand: {
37
+ control: "boolean",
38
+ description: "Expand toasts by default",
39
+ },
40
+ closeButton: {
41
+ control: "boolean",
42
+ description: "Show close button on toasts",
43
+ },
44
+ },
45
+ }
46
+
47
+ export default meta
48
+ type Story = StoryObj<typeof Toaster>
49
+
50
+ const ToastDemo = () => {
51
+ return (
52
+ <Flex gap={4} style={{ width: "400px" }}>
53
+ <Typography variant="subtitle1" color="main-900">
54
+ Toast Examples
55
+ </Typography>
56
+
57
+ <Flex direction="row" wrap="wrap" gap={2}>
58
+ <Button
59
+ variant="outline"
60
+ onClick={() => toast("Event has been created")}
61
+ >
62
+ Default
63
+ </Button>
64
+
65
+ <Button
66
+ variant="outline"
67
+ onClick={() =>
68
+ toast("Event has been created", {
69
+ description: "Sunday, December 03, 2023 at 9:00 AM",
70
+ })
71
+ }
72
+ >
73
+ With Description
74
+ </Button>
75
+
76
+ <Button
77
+ variant="outline"
78
+ onClick={() => toast.success("Successfully saved!")}
79
+ >
80
+ Success
81
+ </Button>
82
+
83
+ <Button
84
+ variant="outline"
85
+ onClick={() => toast.error("Something went wrong")}
86
+ >
87
+ Error
88
+ </Button>
89
+
90
+ <Button
91
+ variant="outline"
92
+ onClick={() => toast.warning("Please check your input")}
93
+ >
94
+ Warning
95
+ </Button>
96
+
97
+ <Button
98
+ variant="outline"
99
+ onClick={() => toast.info("New update available")}
100
+ >
101
+ Info
102
+ </Button>
103
+
104
+ <Button
105
+ variant="outline"
106
+ onClick={() =>
107
+ toast("Event has been created", {
108
+ action: {
109
+ label: "Undo",
110
+ onClick: () => console.log("Undo"),
111
+ },
112
+ })
113
+ }
114
+ >
115
+ With Action
116
+ </Button>
117
+
118
+ <Button
119
+ variant="outline"
120
+ onClick={() => {
121
+ const toastId = toast.loading("Loading...")
122
+ setTimeout(() => {
123
+ toast.success("Completed!", { id: toastId })
124
+ }, 2000)
125
+ }}
126
+ >
127
+ Loading
128
+ </Button>
129
+
130
+ <Button
131
+ variant="outline"
132
+ onClick={() =>
133
+ toast.promise(
134
+ new Promise((resolve) => setTimeout(resolve, 2000)),
135
+ {
136
+ loading: "Loading...",
137
+ success: "Data fetched successfully!",
138
+ error: "Failed to fetch data",
139
+ }
140
+ )
141
+ }
142
+ >
143
+ Promise
144
+ </Button>
145
+ </Flex>
146
+
147
+ <Toaster />
148
+ </Flex>
149
+ )
150
+ }
151
+
152
+ export const Default: Story = {
153
+ render: () => <ToastDemo />,
154
+ }
155
+
156
+ const PositionDemo = () => {
157
+ return (
158
+ <Flex gap={4} style={{ width: "500px" }}>
159
+ <Typography variant="subtitle1" color="main-900">
160
+ Toast Positions
161
+ </Typography>
162
+
163
+ <Flex direction="row" wrap="wrap" gap={2}>
164
+ <Button
165
+ variant="outline"
166
+ size="small"
167
+ onClick={() => toast("Top Left", { position: "top-left" })}
168
+ >
169
+ Top Left
170
+ </Button>
171
+ <Button
172
+ variant="outline"
173
+ size="small"
174
+ onClick={() => toast("Top Center", { position: "top-center" })}
175
+ >
176
+ Top Center
177
+ </Button>
178
+ <Button
179
+ variant="outline"
180
+ size="small"
181
+ onClick={() => toast("Top Right", { position: "top-right" })}
182
+ >
183
+ Top Right
184
+ </Button>
185
+ <Button
186
+ variant="outline"
187
+ size="small"
188
+ onClick={() => toast("Bottom Left", { position: "bottom-left" })}
189
+ >
190
+ Bottom Left
191
+ </Button>
192
+ <Button
193
+ variant="outline"
194
+ size="small"
195
+ onClick={() => toast("Bottom Center", { position: "bottom-center" })}
196
+ >
197
+ Bottom Center
198
+ </Button>
199
+ <Button
200
+ variant="outline"
201
+ size="small"
202
+ onClick={() => toast("Bottom Right", { position: "bottom-right" })}
203
+ >
204
+ Bottom Right
205
+ </Button>
206
+ </Flex>
207
+
208
+ <Toaster />
209
+ </Flex>
210
+ )
211
+ }
212
+
213
+ export const Positions: Story = {
214
+ render: () => <PositionDemo />,
215
+ }
216
+
217
+ const RichColorsDemo = () => {
218
+ return (
219
+ <Flex gap={4} style={{ width: "400px" }}>
220
+ <Typography variant="subtitle1" color="main-900">
221
+ Rich Colors
222
+ </Typography>
223
+
224
+ <Flex direction="row" wrap="wrap" gap={2}>
225
+ <Button
226
+ variant="outline"
227
+ onClick={() => toast.success("Successfully saved!")}
228
+ >
229
+ Success
230
+ </Button>
231
+ <Button
232
+ variant="outline"
233
+ onClick={() => toast.error("Something went wrong")}
234
+ >
235
+ Error
236
+ </Button>
237
+ <Button
238
+ variant="outline"
239
+ onClick={() => toast.warning("Please check your input")}
240
+ >
241
+ Warning
242
+ </Button>
243
+ <Button
244
+ variant="outline"
245
+ onClick={() => toast.info("New update available")}
246
+ >
247
+ Info
248
+ </Button>
249
+ </Flex>
250
+
251
+ <Toaster richColors />
252
+ </Flex>
253
+ )
254
+ }
255
+
256
+ export const RichColors: Story = {
257
+ render: () => <RichColorsDemo />,
258
+ }
259
+
260
+ const CloseButtonDemo = () => {
261
+ return (
262
+ <Flex gap={4} style={{ width: "400px" }}>
263
+ <Typography variant="subtitle1" color="main-900">
264
+ With Close Button
265
+ </Typography>
266
+
267
+ <Button
268
+ variant="outline"
269
+ onClick={() =>
270
+ toast("Event has been created", {
271
+ description: "Click the X to dismiss",
272
+ })
273
+ }
274
+ >
275
+ Show Toast
276
+ </Button>
277
+
278
+ <Toaster closeButton />
279
+ </Flex>
280
+ )
281
+ }
282
+
283
+ export const WithCloseButton: Story = {
284
+ render: () => <CloseButtonDemo />,
285
+ }
@@ -0,0 +1,59 @@
1
+ "use client"
2
+
3
+ import {
4
+ CircleCheckIcon,
5
+ InfoIcon,
6
+ Loader2Icon,
7
+ OctagonXIcon,
8
+ TriangleAlertIcon,
9
+ } from "lucide-react"
10
+ import { Toaster as Sonner, toast, type ToasterProps } from "sonner"
11
+
12
+ type ToastTheme = "light" | "dark" | "system"
13
+
14
+ export interface ToastProps extends ToasterProps {
15
+ /**
16
+ * Theme for the toaster
17
+ * @default "light"
18
+ */
19
+ theme?: ToastTheme
20
+ }
21
+
22
+ const Toaster = ({ theme = "light", ...props }: ToastProps) => {
23
+ return (
24
+ <Sonner
25
+ theme={theme}
26
+ className="toaster group"
27
+ icons={{
28
+ success: <CircleCheckIcon className="size-4" />,
29
+ info: <InfoIcon className="size-4" />,
30
+ warning: <TriangleAlertIcon className="size-4" />,
31
+ error: <OctagonXIcon className="size-4" />,
32
+ loading: <Loader2Icon className="size-4 animate-spin" />,
33
+ }}
34
+ toastOptions={{
35
+ classNames: {
36
+ toast:
37
+ "group toast group-[.toaster]:bg-white group-[.toaster]:text-main-950 group-[.toaster]:border-grey-200 group-[.toaster]:shadow-lg group-[.toaster]:rounded-lg",
38
+ description: "group-[.toast]:text-main-500",
39
+ actionButton:
40
+ "group-[.toast]:bg-main-900 group-[.toast]:text-white",
41
+ cancelButton:
42
+ "group-[.toast]:bg-grey-100 group-[.toast]:text-main-500",
43
+ success:
44
+ "group-[.toaster]:border-success-200 group-[.toaster]:bg-success-50 group-[.toaster]:text-success-900 [&_svg]:text-success-600",
45
+ error:
46
+ "group-[.toaster]:border-error-200 group-[.toaster]:bg-error-50 group-[.toaster]:text-error-900 [&_svg]:text-error-600",
47
+ warning:
48
+ "group-[.toaster]:border-warning-200 group-[.toaster]:bg-warning-50 group-[.toaster]:text-warning-900 [&_svg]:text-warning-600",
49
+ info:
50
+ "group-[.toaster]:border-accent-200 group-[.toaster]:bg-accent-50 group-[.toaster]:text-accent-900 [&_svg]:text-accent-600",
51
+ },
52
+ }}
53
+ {...props}
54
+ />
55
+ )
56
+ }
57
+
58
+ export { Toaster, toast }
59
+ export type { ToastTheme }