@a2v2ai/uikit 0.0.3 → 0.0.5

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 (148) hide show
  1. package/Alert/Alert.d.ts +13 -0
  2. package/Alert/Alert.js +64 -0
  3. package/AlertDialog/AlertDialog.d.ts +43 -0
  4. package/AlertDialog/AlertDialog.js +121 -0
  5. package/Avatar/Avatar.d.ts +14 -0
  6. package/Avatar/Avatar.js +64 -0
  7. package/Badge/Badge.d.ts +11 -0
  8. package/Badge/Badge.js +26 -0
  9. package/Breadcrumb/Breadcrumb.d.ts +19 -0
  10. package/Breadcrumb/Breadcrumb.js +65 -0
  11. package/Button/Button.d.ts +20 -0
  12. package/Button/Button.js +75 -0
  13. package/Calendar/Calendar.d.ts +16 -0
  14. package/Calendar/Calendar.js +113 -0
  15. package/Card/Card.d.ts +16 -0
  16. package/Card/Card.js +70 -0
  17. package/ChatBubble/ChatBubble.d.ts +33 -0
  18. package/ChatBubble/ChatBubble.js +133 -0
  19. package/Checkbox/Checkbox.d.ts +12 -0
  20. package/Checkbox/Checkbox.js +57 -0
  21. package/Dialog/Dialog.d.ts +35 -0
  22. package/Dialog/Dialog.js +130 -0
  23. package/Drawer/Drawer.d.ts +33 -0
  24. package/Drawer/Drawer.js +69 -0
  25. package/DropdownMenu/DropdownMenu.d.ts +27 -0
  26. package/DropdownMenu/DropdownMenu.js +85 -0
  27. package/ErrorMessage/ErrorMessage.d.ts +27 -0
  28. package/ErrorMessage/ErrorMessage.js +15 -0
  29. package/Flex/Flex.d.ts +31 -0
  30. package/Flex/Flex.js +101 -0
  31. package/IconButton/IconButton.d.ts +23 -0
  32. package/IconButton/IconButton.js +85 -0
  33. package/Input/Input.d.ts +22 -0
  34. package/Input/Input.js +75 -0
  35. package/InputOTP/InputOTP.d.ts +20 -0
  36. package/InputOTP/InputOTP.js +85 -0
  37. package/Label/Label.d.ts +12 -0
  38. package/Label/Label.js +57 -0
  39. package/Loader/Loader.d.ts +21 -0
  40. package/Loader/Loader.js +67 -0
  41. package/Popover/Popover.d.ts +7 -0
  42. package/Popover/Popover.js +49 -0
  43. package/Progress/Progress.d.ts +17 -0
  44. package/Progress/Progress.js +71 -0
  45. package/RadioGroup/RadioGroup.d.ts +13 -0
  46. package/RadioGroup/RadioGroup.js +64 -0
  47. package/ScrollArea/ScrollArea.d.ts +5 -0
  48. package/ScrollArea/ScrollArea.js +48 -0
  49. package/Select/Select.d.ts +21 -0
  50. package/Select/Select.js +85 -0
  51. package/Separator/Separator.d.ts +4 -0
  52. package/Separator/Separator.js +43 -0
  53. package/Skeleton/Skeleton.d.ts +4 -0
  54. package/Skeleton/Skeleton.js +8 -0
  55. package/Spinner/Spinner.d.ts +19 -0
  56. package/Spinner/Spinner.js +68 -0
  57. package/Switch/Switch.d.ts +12 -0
  58. package/Switch/Switch.js +67 -0
  59. package/Tabs/Tabs.d.ts +15 -0
  60. package/Tabs/Tabs.js +64 -0
  61. package/Textarea/Textarea.d.ts +14 -0
  62. package/Textarea/Textarea.js +64 -0
  63. package/Toast/Toast.d.ts +12 -0
  64. package/Toast/Toast.js +29 -0
  65. package/Tooltip/Tooltip.d.ts +17 -0
  66. package/Tooltip/Tooltip.js +68 -0
  67. package/Typography/Typography.d.ts +19 -0
  68. package/Typography/Typography.js +131 -0
  69. package/helpers.d.ts +4 -0
  70. package/helpers.js +13 -0
  71. package/icons.d.ts +1 -0
  72. package/icons.js +18 -0
  73. package/index.css +21 -0
  74. package/index.d.ts +35 -0
  75. package/index.js +183 -0
  76. package/lib/utils.d.ts +3 -0
  77. package/lib/utils.js +18 -0
  78. package/package.json +1 -1
  79. package/Alert/Alert.stories.tsx +0 -121
  80. package/Alert/Alert.tsx +0 -71
  81. package/AlertDialog/AlertDialog.stories.tsx +0 -665
  82. package/AlertDialog/AlertDialog.tsx +0 -241
  83. package/Avatar/Avatar.stories.tsx +0 -128
  84. package/Avatar/Avatar.tsx +0 -71
  85. package/Badge/Badge.stories.tsx +0 -76
  86. package/Badge/Badge.tsx +0 -39
  87. package/Breadcrumb/Breadcrumb.stories.tsx +0 -231
  88. package/Breadcrumb/Breadcrumb.tsx +0 -114
  89. package/Button/Button.stories.tsx +0 -684
  90. package/Button/Button.tsx +0 -90
  91. package/Calendar/Calendar.stories.tsx +0 -207
  92. package/Calendar/Calendar.tsx +0 -232
  93. package/Card/Card.stories.tsx +0 -136
  94. package/Card/Card.tsx +0 -96
  95. package/ChatBubble/ChatBubble.stories.tsx +0 -307
  96. package/ChatBubble/ChatBubble.tsx +0 -167
  97. package/Checkbox/Checkbox.stories.tsx +0 -137
  98. package/Checkbox/Checkbox.tsx +0 -53
  99. package/Drawer/Drawer.stories.tsx +0 -721
  100. package/Drawer/Drawer.tsx +0 -201
  101. package/DropdownMenu/DropdownMenu.stories.tsx +0 -251
  102. package/DropdownMenu/DropdownMenu.tsx +0 -199
  103. package/ErrorMessage/ErrorMessage.stories.tsx +0 -159
  104. package/ErrorMessage/ErrorMessage.tsx +0 -55
  105. package/Flex/Flex.tsx +0 -102
  106. package/IconButton/IconButton.stories.tsx +0 -566
  107. package/IconButton/IconButton.tsx +0 -95
  108. package/Input/Input.stories.tsx +0 -456
  109. package/Input/Input.tsx +0 -129
  110. package/InputOTP/InputOTP.stories.tsx +0 -246
  111. package/InputOTP/InputOTP.tsx +0 -127
  112. package/Label/Label.stories.tsx +0 -105
  113. package/Label/Label.tsx +0 -43
  114. package/Loader/Loader.stories.tsx +0 -170
  115. package/Loader/Loader.tsx +0 -62
  116. package/Popover/Popover.stories.tsx +0 -133
  117. package/Popover/Popover.tsx +0 -31
  118. package/Progress/Progress.stories.tsx +0 -146
  119. package/Progress/Progress.tsx +0 -67
  120. package/RadioGroup/RadioGroup.stories.tsx +0 -159
  121. package/RadioGroup/RadioGroup.tsx +0 -68
  122. package/ScrollArea/ScrollArea.stories.tsx +0 -136
  123. package/ScrollArea/ScrollArea.tsx +0 -46
  124. package/Select/Select.stories.tsx +0 -242
  125. package/Select/Select.tsx +0 -180
  126. package/Separator/Separator.stories.tsx +0 -110
  127. package/Separator/Separator.tsx +0 -29
  128. package/Skeleton/Skeleton.stories.tsx +0 -117
  129. package/Skeleton/Skeleton.tsx +0 -16
  130. package/Spinner/Spinner.stories.tsx +0 -210
  131. package/Spinner/Spinner.tsx +0 -78
  132. package/Switch/Switch.stories.tsx +0 -146
  133. package/Switch/Switch.tsx +0 -59
  134. package/Tabs/Tabs.stories.tsx +0 -197
  135. package/Tabs/Tabs.tsx +0 -74
  136. package/Textarea/Textarea.stories.tsx +0 -170
  137. package/Textarea/Textarea.tsx +0 -51
  138. package/Toast/Toast.stories.tsx +0 -285
  139. package/Toast/Toast.tsx +0 -59
  140. package/Tooltip/Tooltip.stories.tsx +0 -463
  141. package/Tooltip/Tooltip.tsx +0 -96
  142. package/Typography/Typography.stories.tsx +0 -235
  143. package/Typography/Typography.tsx +0 -171
  144. package/helpers.ts +0 -5
  145. package/icons.ts +0 -2
  146. package/index.ts +0 -136
  147. package/lib/utils.ts +0 -15
  148. package/tsconfig.json +0 -24
@@ -1,684 +0,0 @@
1
- import type { Meta, StoryObj } from "@storybook/react"
2
- import { ArrowRight, Mail, Plus, Search, Trash2, Download, ChevronDown } from "../icons"
3
- import { Typography } from "../Typography/Typography"
4
- import { Flex } from "../Flex/Flex"
5
- import { Button } from "./Button"
6
-
7
- const meta: Meta<typeof Button> = {
8
- title: "Components/Button",
9
- component: Button,
10
- parameters: {
11
- layout: "centered",
12
- },
13
- tags: ["autodocs"],
14
- argTypes: {
15
- variant: {
16
- control: "select",
17
- options: [
18
- "primary",
19
- "secondary",
20
- "outline",
21
- "ghost",
22
- "ghost-muted",
23
- "destructive",
24
- ],
25
- description: "The visual style variant of the button",
26
- },
27
- size: {
28
- control: "select",
29
- options: ["mini", "small", "regular", "large"],
30
- description: "The size of the button",
31
- },
32
- roundness: {
33
- control: "select",
34
- options: ["default", "round"],
35
- description: "The roundness of the button corners",
36
- },
37
- disabled: {
38
- control: "boolean",
39
- description: "Whether the button is disabled",
40
- },
41
- asChild: {
42
- control: "boolean",
43
- description: "Render as child element (for use with Link components)",
44
- },
45
- leftIcon: {
46
- control: false,
47
- description: "Icon to display on the left side of the button",
48
- },
49
- rightIcon: {
50
- control: false,
51
- description: "Icon to display on the right side of the button",
52
- },
53
- },
54
- }
55
-
56
- export default meta
57
- type Story = StoryObj<typeof Button>
58
-
59
- export const Primary: Story = {
60
- args: {
61
- children: "Button",
62
- variant: "primary",
63
- },
64
- }
65
-
66
- export const Secondary: Story = {
67
- args: {
68
- children: "Button",
69
- variant: "secondary",
70
- },
71
- }
72
-
73
- export const Outline: Story = {
74
- args: {
75
- children: "Button",
76
- variant: "outline",
77
- },
78
- }
79
-
80
- export const Ghost: Story = {
81
- args: {
82
- children: "Button",
83
- variant: "ghost",
84
- },
85
- }
86
-
87
- export const GhostMuted: Story = {
88
- args: {
89
- children: "Button",
90
- variant: "ghost-muted",
91
- },
92
- }
93
-
94
- export const Destructive: Story = {
95
- args: {
96
- children: "Button",
97
- variant: "destructive",
98
- },
99
- }
100
-
101
- export const Disabled: Story = {
102
- args: {
103
- children: "Button",
104
- disabled: true,
105
- },
106
- }
107
-
108
- export const Sizes: Story = {
109
- render: () => (
110
- <Flex align="center" gap={4}>
111
- <Button size="mini">Mini</Button>
112
- <Button size="small">Small</Button>
113
- <Button size="regular">Regular</Button>
114
- <Button size="large">Large</Button>
115
- </Flex>
116
- ),
117
- }
118
-
119
- export const Variants: Story = {
120
- render: () => (
121
- <Flex align="center" gap={4}>
122
- <Button variant="primary">Primary</Button>
123
- <Button variant="secondary">Secondary</Button>
124
- <Button variant="outline">Outline</Button>
125
- <Button variant="ghost">Ghost</Button>
126
- <Button variant="ghost-muted">Ghost Muted</Button>
127
- <Button variant="destructive">Destructive</Button>
128
- </Flex>
129
- ),
130
- }
131
-
132
- export const Rounded: Story = {
133
- render: () => (
134
- <Flex align="center" gap={4}>
135
- <Button roundness="round" variant="primary">
136
- Primary
137
- </Button>
138
- <Button roundness="round" variant="secondary">
139
- Secondary
140
- </Button>
141
- <Button roundness="round" variant="outline">
142
- Outline
143
- </Button>
144
- <Button roundness="round" variant="ghost">
145
- Ghost
146
- </Button>
147
- </Flex>
148
- ),
149
- }
150
-
151
- export const WithIcons: Story = {
152
- render: () => (
153
- <Flex direction="column" gap={4}>
154
- <Flex align="center" gap={4}>
155
- <Button leftIcon={<Mail />}>
156
- Login with Email
157
- </Button>
158
- <Button rightIcon={<ArrowRight />}>
159
- Next Step
160
- </Button>
161
- <Button leftIcon={<Plus />} rightIcon={<ChevronDown />}>
162
- Add New
163
- </Button>
164
- </Flex>
165
- <Flex align="center" gap={4}>
166
- <Button variant="secondary" leftIcon={<Search />}>
167
- Search
168
- </Button>
169
- <Button variant="outline" leftIcon={<Download />}>
170
- Download
171
- </Button>
172
- <Button variant="destructive" leftIcon={<Trash2 />}>
173
- Delete
174
- </Button>
175
- </Flex>
176
- </Flex>
177
- ),
178
- }
179
-
180
- export const IconPositions: Story = {
181
- parameters: {
182
- layout: "padded",
183
- },
184
- render: () => (
185
- <Flex direction="column" gap={6}>
186
- <Typography variant="subtitle1" color="main-700">Icon Positions</Typography>
187
-
188
- {/* No Icons */}
189
- <Flex direction="column" gap={2}>
190
- <Typography variant="body3" color="main-500">No Icons</Typography>
191
- <Flex align="center" gap={3}>
192
- <Button variant="primary">Label</Button>
193
- <Button variant="secondary">Label</Button>
194
- <Button variant="outline">Label</Button>
195
- <Button variant="ghost">Label</Button>
196
- <Button variant="destructive">Label</Button>
197
- </Flex>
198
- </Flex>
199
-
200
- {/* Left Icon Only */}
201
- <Flex direction="column" gap={2}>
202
- <Typography variant="body3" color="main-500">Left Icon Only</Typography>
203
- <Flex align="center" gap={3}>
204
- <Button variant="primary" leftIcon={<Mail />}>Label</Button>
205
- <Button variant="secondary" leftIcon={<Plus />}>Label</Button>
206
- <Button variant="outline" leftIcon={<Search />}>Label</Button>
207
- <Button variant="ghost" leftIcon={<Download />}>Label</Button>
208
- <Button variant="destructive" leftIcon={<Trash2 />}>Label</Button>
209
- </Flex>
210
- </Flex>
211
-
212
- {/* Right Icon Only */}
213
- <Flex direction="column" gap={2}>
214
- <Typography variant="body3" color="main-500">Right Icon Only</Typography>
215
- <Flex align="center" gap={3}>
216
- <Button variant="primary" rightIcon={<ArrowRight />}>Label</Button>
217
- <Button variant="secondary" rightIcon={<ChevronDown />}>Label</Button>
218
- <Button variant="outline" rightIcon={<ArrowRight />}>Label</Button>
219
- <Button variant="ghost" rightIcon={<ChevronDown />}>Label</Button>
220
- <Button variant="destructive" rightIcon={<ArrowRight />}>Label</Button>
221
- </Flex>
222
- </Flex>
223
-
224
- {/* Both Icons */}
225
- <Flex direction="column" gap={2}>
226
- <Typography variant="body3" color="main-500">Both Icons</Typography>
227
- <Flex align="center" gap={3}>
228
- <Button variant="primary" leftIcon={<Mail />} rightIcon={<ArrowRight />}>Label</Button>
229
- <Button variant="secondary" leftIcon={<Plus />} rightIcon={<ChevronDown />}>Label</Button>
230
- <Button variant="outline" leftIcon={<Search />} rightIcon={<ArrowRight />}>Label</Button>
231
- <Button variant="ghost" leftIcon={<Download />} rightIcon={<ChevronDown />}>Label</Button>
232
- <Button variant="destructive" leftIcon={<Trash2 />} rightIcon={<ArrowRight />}>Label</Button>
233
- </Flex>
234
- </Flex>
235
-
236
- {/* Icon Only (Square Buttons) */}
237
- <Flex direction="column" gap={2}>
238
- <Typography variant="body3" color="main-500">Icon Only (Square)</Typography>
239
- <Flex align="center" gap={3}>
240
- <Button variant="primary" style={{ padding: "0", width: "36px", height: "36px" }}><Plus /></Button>
241
- <Button variant="secondary" style={{ padding: "0", width: "36px", height: "36px" }}><Search /></Button>
242
- <Button variant="outline" style={{ padding: "0", width: "36px", height: "36px" }}><Mail /></Button>
243
- <Button variant="ghost" style={{ padding: "0", width: "36px", height: "36px" }}><Download /></Button>
244
- <Button variant="destructive" style={{ padding: "0", width: "36px", height: "36px" }}><Trash2 /></Button>
245
- </Flex>
246
- </Flex>
247
-
248
- {/* Icon Only (Round Buttons) */}
249
- <Flex direction="column" gap={2}>
250
- <Typography variant="body3" color="main-500">Icon Only (Round)</Typography>
251
- <Flex align="center" gap={3}>
252
- <Button variant="primary" roundness="round" style={{ padding: "0", width: "36px", height: "36px" }}><Plus /></Button>
253
- <Button variant="secondary" roundness="round" style={{ padding: "0", width: "36px", height: "36px" }}><Search /></Button>
254
- <Button variant="outline" roundness="round" style={{ padding: "0", width: "36px", height: "36px" }}><Mail /></Button>
255
- <Button variant="ghost" roundness="round" style={{ padding: "0", width: "36px", height: "36px" }}><Download /></Button>
256
- <Button variant="destructive" roundness="round" style={{ padding: "0", width: "36px", height: "36px" }}><Trash2 /></Button>
257
- </Flex>
258
- </Flex>
259
- </Flex>
260
- ),
261
- }
262
-
263
- export const AllSizesWithIcons: Story = {
264
- parameters: {
265
- layout: "padded",
266
- },
267
- render: () => (
268
- <Flex direction="column" gap={6}>
269
- <Typography variant="subtitle1" color="main-700">All Sizes with Icons</Typography>
270
-
271
- {/* Large */}
272
- <Flex direction="column" gap={2}>
273
- <Typography variant="body3" color="main-500">Large</Typography>
274
- <Flex align="center" gap={3}>
275
- <Button size="large">Label</Button>
276
- <Button size="large" leftIcon={<Mail />}>Label</Button>
277
- <Button size="large" rightIcon={<ArrowRight />}>Label</Button>
278
- <Button size="large" leftIcon={<Mail />} rightIcon={<ArrowRight />}>Label</Button>
279
- </Flex>
280
- </Flex>
281
-
282
- {/* Regular */}
283
- <Flex direction="column" gap={2}>
284
- <Typography variant="body3" color="main-500">Regular</Typography>
285
- <Flex align="center" gap={3}>
286
- <Button size="regular">Label</Button>
287
- <Button size="regular" leftIcon={<Mail />}>Label</Button>
288
- <Button size="regular" rightIcon={<ArrowRight />}>Label</Button>
289
- <Button size="regular" leftIcon={<Mail />} rightIcon={<ArrowRight />}>Label</Button>
290
- </Flex>
291
- </Flex>
292
-
293
- {/* Small */}
294
- <Flex direction="column" gap={2}>
295
- <Typography variant="body3" color="main-500">Small</Typography>
296
- <Flex align="center" gap={3}>
297
- <Button size="small">Label</Button>
298
- <Button size="small" leftIcon={<Mail />}>Label</Button>
299
- <Button size="small" rightIcon={<ArrowRight />}>Label</Button>
300
- <Button size="small" leftIcon={<Mail />} rightIcon={<ArrowRight />}>Label</Button>
301
- </Flex>
302
- </Flex>
303
-
304
- {/* Mini */}
305
- <Flex direction="column" gap={2}>
306
- <Typography variant="body3" color="main-500">Mini</Typography>
307
- <Flex align="center" gap={3}>
308
- <Button size="mini">Label</Button>
309
- <Button size="mini" leftIcon={<Mail />}>Label</Button>
310
- <Button size="mini" rightIcon={<ArrowRight />}>Label</Button>
311
- <Button size="mini" leftIcon={<Mail />} rightIcon={<ArrowRight />}>Label</Button>
312
- </Flex>
313
- </Flex>
314
- </Flex>
315
- ),
316
- }
317
-
318
- export const AllVariantsAndSizes: Story = {
319
- parameters: {
320
- layout: "fullscreen",
321
- },
322
- render: () => (
323
- <Flex direction="column" style={{ padding: "32px", backgroundColor: "#ffffff", minHeight: "100vh", overflowX: "auto" }}>
324
- {/* Header */}
325
- <Flex style={{ borderBottom: "1px solid #e5e7eb", paddingBottom: "24px", marginBottom: "32px" }}>
326
- <Typography variant="h3" color="main-950">Button</Typography>
327
- </Flex>
328
-
329
- {/* Main Content */}
330
- <Flex direction="column" gap={12} style={{ minWidth: "fit-content" }}>
331
- {/* Default Roundness Section */}
332
- <Flex direction="column" gap={6}>
333
- <Typography variant="subtitle1" color="main-700">Default Roundness</Typography>
334
-
335
- {/* Variant Headers */}
336
- <Flex>
337
- <Flex style={{ width: "80px" }} />
338
- <Flex gap={0}>
339
- {/* Primary */}
340
- <Flex direction="column" align="center" style={{ width: "532px" }}>
341
- <Typography variant="body3" color="accent-600">Primary</Typography>
342
- <Flex gap={0} style={{ marginTop: "8px" }}>
343
- <Flex justify="center" style={{ width: "133px" }}><Typography variant="caption" color="main-400">Default</Typography></Flex>
344
- <Flex justify="center" style={{ width: "133px" }}><Typography variant="caption" color="main-400">Hover & Active</Typography></Flex>
345
- <Flex justify="center" style={{ width: "133px" }}><Typography variant="caption" color="main-400">Focus</Typography></Flex>
346
- <Flex justify="center" style={{ width: "133px" }}><Typography variant="caption" color="main-400">Disabled</Typography></Flex>
347
- </Flex>
348
- </Flex>
349
- {/* Secondary */}
350
- <Flex direction="column" align="center" style={{ width: "532px" }}>
351
- <Typography variant="body3" color="accent-600">Secondary</Typography>
352
- <Flex gap={0} style={{ marginTop: "8px" }}>
353
- <Flex justify="center" style={{ width: "133px" }}><Typography variant="caption" color="main-400">Default</Typography></Flex>
354
- <Flex justify="center" style={{ width: "133px" }}><Typography variant="caption" color="main-400">Hover & Active</Typography></Flex>
355
- <Flex justify="center" style={{ width: "133px" }}><Typography variant="caption" color="main-400">Focus</Typography></Flex>
356
- <Flex justify="center" style={{ width: "133px" }}><Typography variant="caption" color="main-400">Disabled</Typography></Flex>
357
- </Flex>
358
- </Flex>
359
- {/* Outline */}
360
- <Flex direction="column" align="center" style={{ width: "532px" }}>
361
- <Typography variant="body3" color="accent-600">Outline</Typography>
362
- <Flex gap={0} style={{ marginTop: "8px" }}>
363
- <Flex justify="center" style={{ width: "133px" }}><Typography variant="caption" color="main-400">Default</Typography></Flex>
364
- <Flex justify="center" style={{ width: "133px" }}><Typography variant="caption" color="main-400">Hover & Active</Typography></Flex>
365
- <Flex justify="center" style={{ width: "133px" }}><Typography variant="caption" color="main-400">Focus</Typography></Flex>
366
- <Flex justify="center" style={{ width: "133px" }}><Typography variant="caption" color="main-400">Disabled</Typography></Flex>
367
- </Flex>
368
- </Flex>
369
- </Flex>
370
- </Flex>
371
-
372
- {/* Regular Row */}
373
- <Flex align="center">
374
- <Flex style={{ width: "80px" }}>
375
- <Typography variant="body3" color="main-500">Regular</Typography>
376
- </Flex>
377
- <Flex gap={0}>
378
- {/* Primary */}
379
- <Flex justify="center" style={{ width: "133px" }}><Button variant="primary" size="regular">Label</Button></Flex>
380
- <Flex justify="center" style={{ width: "133px" }}><Button variant="primary" size="regular" className="bg-main-800">Label</Button></Flex>
381
- <Flex justify="center" style={{ width: "133px" }}><Button variant="primary" size="regular" className="shadow-[0_0_0_3px_#d4d4d4]">Label</Button></Flex>
382
- <Flex justify="center" style={{ width: "133px" }}><Button variant="primary" size="regular" disabled>Label</Button></Flex>
383
- {/* Secondary */}
384
- <Flex justify="center" style={{ width: "133px" }}><Button variant="secondary" size="regular">Label</Button></Flex>
385
- <Flex justify="center" style={{ width: "133px" }}><Button variant="secondary" size="regular" className="bg-main-200">Label</Button></Flex>
386
- <Flex justify="center" style={{ width: "133px" }}><Button variant="secondary" size="regular" className="shadow-[0_0_0_3px_#d4d4d4]">Label</Button></Flex>
387
- <Flex justify="center" style={{ width: "133px" }}><Button variant="secondary" size="regular" disabled>Label</Button></Flex>
388
- {/* Outline */}
389
- <Flex justify="center" style={{ width: "133px" }}><Button variant="outline" size="regular">Label</Button></Flex>
390
- <Flex justify="center" style={{ width: "133px" }}><Button variant="outline" size="regular" className="bg-main-100">Label</Button></Flex>
391
- <Flex justify="center" style={{ width: "133px" }}><Button variant="outline" size="regular" className="shadow-[0_0_0_3px_#d4d4d4]">Label</Button></Flex>
392
- <Flex justify="center" style={{ width: "133px" }}><Button variant="outline" size="regular" disabled>Label</Button></Flex>
393
- </Flex>
394
- </Flex>
395
-
396
- {/* Large Row */}
397
- <Flex align="center">
398
- <Flex style={{ width: "80px" }}>
399
- <Typography variant="body3" color="main-500">Large</Typography>
400
- </Flex>
401
- <Flex gap={0}>
402
- {/* Primary */}
403
- <Flex justify="center" style={{ width: "133px" }}><Button variant="primary" size="large">Label</Button></Flex>
404
- <Flex justify="center" style={{ width: "133px" }}><Button variant="primary" size="large" className="bg-main-800">Label</Button></Flex>
405
- <Flex justify="center" style={{ width: "133px" }}><Button variant="primary" size="large" className="shadow-[0_0_0_3px_#d4d4d4]">Label</Button></Flex>
406
- <Flex justify="center" style={{ width: "133px" }}><Button variant="primary" size="large" disabled>Label</Button></Flex>
407
- {/* Secondary */}
408
- <Flex justify="center" style={{ width: "133px" }}><Button variant="secondary" size="large">Label</Button></Flex>
409
- <Flex justify="center" style={{ width: "133px" }}><Button variant="secondary" size="large" className="bg-main-200">Label</Button></Flex>
410
- <Flex justify="center" style={{ width: "133px" }}><Button variant="secondary" size="large" className="shadow-[0_0_0_3px_#d4d4d4]">Label</Button></Flex>
411
- <Flex justify="center" style={{ width: "133px" }}><Button variant="secondary" size="large" disabled>Label</Button></Flex>
412
- {/* Outline */}
413
- <Flex justify="center" style={{ width: "133px" }}><Button variant="outline" size="large">Label</Button></Flex>
414
- <Flex justify="center" style={{ width: "133px" }}><Button variant="outline" size="large" className="bg-main-100">Label</Button></Flex>
415
- <Flex justify="center" style={{ width: "133px" }}><Button variant="outline" size="large" className="shadow-[0_0_0_3px_#d4d4d4]">Label</Button></Flex>
416
- <Flex justify="center" style={{ width: "133px" }}><Button variant="outline" size="large" disabled>Label</Button></Flex>
417
- </Flex>
418
- </Flex>
419
-
420
- {/* Small Row */}
421
- <Flex align="center">
422
- <Flex style={{ width: "80px" }}>
423
- <Typography variant="body3" color="main-500">Small</Typography>
424
- </Flex>
425
- <Flex gap={0}>
426
- {/* Primary */}
427
- <Flex justify="center" style={{ width: "133px" }}><Button variant="primary" size="small">Label</Button></Flex>
428
- <Flex justify="center" style={{ width: "133px" }}><Button variant="primary" size="small" className="bg-main-800">Label</Button></Flex>
429
- <Flex justify="center" style={{ width: "133px" }}><Button variant="primary" size="small" className="shadow-[0_0_0_3px_#d4d4d4]">Label</Button></Flex>
430
- <Flex justify="center" style={{ width: "133px" }}><Button variant="primary" size="small" disabled>Label</Button></Flex>
431
- {/* Secondary */}
432
- <Flex justify="center" style={{ width: "133px" }}><Button variant="secondary" size="small">Label</Button></Flex>
433
- <Flex justify="center" style={{ width: "133px" }}><Button variant="secondary" size="small" className="bg-main-200">Label</Button></Flex>
434
- <Flex justify="center" style={{ width: "133px" }}><Button variant="secondary" size="small" className="shadow-[0_0_0_3px_#d4d4d4]">Label</Button></Flex>
435
- <Flex justify="center" style={{ width: "133px" }}><Button variant="secondary" size="small" disabled>Label</Button></Flex>
436
- {/* Outline */}
437
- <Flex justify="center" style={{ width: "133px" }}><Button variant="outline" size="small">Label</Button></Flex>
438
- <Flex justify="center" style={{ width: "133px" }}><Button variant="outline" size="small" className="bg-main-100">Label</Button></Flex>
439
- <Flex justify="center" style={{ width: "133px" }}><Button variant="outline" size="small" className="shadow-[0_0_0_3px_#d4d4d4]">Label</Button></Flex>
440
- <Flex justify="center" style={{ width: "133px" }}><Button variant="outline" size="small" disabled>Label</Button></Flex>
441
- </Flex>
442
- </Flex>
443
-
444
- {/* Mini Row */}
445
- <Flex align="center">
446
- <Flex style={{ width: "80px" }}>
447
- <Typography variant="body3" color="main-500">Mini</Typography>
448
- </Flex>
449
- <Flex gap={0}>
450
- {/* Primary */}
451
- <Flex justify="center" style={{ width: "133px" }}><Button variant="primary" size="mini">Label</Button></Flex>
452
- <Flex justify="center" style={{ width: "133px" }}><Button variant="primary" size="mini" className="bg-main-800">Label</Button></Flex>
453
- <Flex justify="center" style={{ width: "133px" }}><Button variant="primary" size="mini" className="shadow-[0_0_0_3px_#d4d4d4]">Label</Button></Flex>
454
- <Flex justify="center" style={{ width: "133px" }}><Button variant="primary" size="mini" disabled>Label</Button></Flex>
455
- {/* Secondary */}
456
- <Flex justify="center" style={{ width: "133px" }}><Button variant="secondary" size="mini">Label</Button></Flex>
457
- <Flex justify="center" style={{ width: "133px" }}><Button variant="secondary" size="mini" className="bg-main-200">Label</Button></Flex>
458
- <Flex justify="center" style={{ width: "133px" }}><Button variant="secondary" size="mini" className="shadow-[0_0_0_3px_#d4d4d4]">Label</Button></Flex>
459
- <Flex justify="center" style={{ width: "133px" }}><Button variant="secondary" size="mini" disabled>Label</Button></Flex>
460
- {/* Outline */}
461
- <Flex justify="center" style={{ width: "133px" }}><Button variant="outline" size="mini">Label</Button></Flex>
462
- <Flex justify="center" style={{ width: "133px" }}><Button variant="outline" size="mini" className="bg-main-100">Label</Button></Flex>
463
- <Flex justify="center" style={{ width: "133px" }}><Button variant="outline" size="mini" className="shadow-[0_0_0_3px_#d4d4d4]">Label</Button></Flex>
464
- <Flex justify="center" style={{ width: "133px" }}><Button variant="outline" size="mini" disabled>Label</Button></Flex>
465
- </Flex>
466
- </Flex>
467
- </Flex>
468
-
469
- {/* Ghost, Destructive, Ghost Muted Section */}
470
- <Flex direction="column" gap={6}>
471
- {/* Variant Headers */}
472
- <Flex>
473
- <Flex style={{ width: "80px" }} />
474
- <Flex gap={0}>
475
- {/* Ghost */}
476
- <Flex direction="column" align="center" style={{ width: "532px" }}>
477
- <Typography variant="body3" color="accent-600">Ghost</Typography>
478
- <Flex gap={0} style={{ marginTop: "8px" }}>
479
- <Flex justify="center" style={{ width: "133px" }}><Typography variant="caption" color="main-400">Default</Typography></Flex>
480
- <Flex justify="center" style={{ width: "133px" }}><Typography variant="caption" color="main-400">Hover & Active</Typography></Flex>
481
- <Flex justify="center" style={{ width: "133px" }}><Typography variant="caption" color="main-400">Focus</Typography></Flex>
482
- <Flex justify="center" style={{ width: "133px" }}><Typography variant="caption" color="main-400">Disabled</Typography></Flex>
483
- </Flex>
484
- </Flex>
485
- {/* Destructive */}
486
- <Flex direction="column" align="center" style={{ width: "532px" }}>
487
- <Typography variant="body3" color="error-600">Destructive</Typography>
488
- <Flex gap={0} style={{ marginTop: "8px" }}>
489
- <Flex justify="center" style={{ width: "133px" }}><Typography variant="caption" color="main-400">Default</Typography></Flex>
490
- <Flex justify="center" style={{ width: "133px" }}><Typography variant="caption" color="main-400">Hover & Active</Typography></Flex>
491
- <Flex justify="center" style={{ width: "133px" }}><Typography variant="caption" color="main-400">Focus</Typography></Flex>
492
- <Flex justify="center" style={{ width: "133px" }}><Typography variant="caption" color="main-400">Disabled</Typography></Flex>
493
- </Flex>
494
- </Flex>
495
- {/* Ghost Muted */}
496
- <Flex direction="column" align="center" style={{ width: "532px" }}>
497
- <Typography variant="body3" color="main-400">Ghost Muted</Typography>
498
- <Flex gap={0} style={{ marginTop: "8px" }}>
499
- <Flex justify="center" style={{ width: "133px" }}><Typography variant="caption" color="main-400">Default</Typography></Flex>
500
- <Flex justify="center" style={{ width: "133px" }}><Typography variant="caption" color="main-400">Hover & Active</Typography></Flex>
501
- <Flex justify="center" style={{ width: "133px" }}><Typography variant="caption" color="main-400">Focus</Typography></Flex>
502
- <Flex justify="center" style={{ width: "133px" }}><Typography variant="caption" color="main-400">Disabled</Typography></Flex>
503
- </Flex>
504
- </Flex>
505
- </Flex>
506
- </Flex>
507
-
508
- {/* Regular Row */}
509
- <Flex align="center">
510
- <Flex style={{ width: "80px" }}>
511
- <Typography variant="body3" color="main-500">Regular</Typography>
512
- </Flex>
513
- <Flex gap={0}>
514
- {/* Ghost */}
515
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost" size="regular">Label</Button></Flex>
516
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost" size="regular" className="bg-main-100 text-main-950">Label</Button></Flex>
517
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost" size="regular" className="shadow-[0_0_0_3px_#d4d4d4]">Label</Button></Flex>
518
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost" size="regular" disabled>Label</Button></Flex>
519
- {/* Destructive */}
520
- <Flex justify="center" style={{ width: "133px" }}><Button variant="destructive" size="regular">Label</Button></Flex>
521
- <Flex justify="center" style={{ width: "133px" }}><Button variant="destructive" size="regular" className="bg-error-700">Label</Button></Flex>
522
- <Flex justify="center" style={{ width: "133px" }}><Button variant="destructive" size="regular" className="shadow-[0_0_0_3px_#d4d4d4]">Label</Button></Flex>
523
- <Flex justify="center" style={{ width: "133px" }}><Button variant="destructive" size="regular" disabled>Label</Button></Flex>
524
- {/* Ghost Muted */}
525
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost-muted" size="regular">Label</Button></Flex>
526
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost-muted" size="regular" className="bg-main-100 text-main-600">Label</Button></Flex>
527
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost-muted" size="regular" className="shadow-[0_0_0_3px_#d4d4d4]">Label</Button></Flex>
528
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost-muted" size="regular" disabled>Label</Button></Flex>
529
- </Flex>
530
- </Flex>
531
-
532
- {/* Large Row */}
533
- <Flex align="center">
534
- <Flex style={{ width: "80px" }}>
535
- <Typography variant="body3" color="main-500">Large</Typography>
536
- </Flex>
537
- <Flex gap={0}>
538
- {/* Ghost */}
539
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost" size="large">Label</Button></Flex>
540
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost" size="large" className="bg-main-100 text-main-950">Label</Button></Flex>
541
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost" size="large" className="shadow-[0_0_0_3px_#d4d4d4]">Label</Button></Flex>
542
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost" size="large" disabled>Label</Button></Flex>
543
- {/* Destructive */}
544
- <Flex justify="center" style={{ width: "133px" }}><Button variant="destructive" size="large">Label</Button></Flex>
545
- <Flex justify="center" style={{ width: "133px" }}><Button variant="destructive" size="large" className="bg-error-700">Label</Button></Flex>
546
- <Flex justify="center" style={{ width: "133px" }}><Button variant="destructive" size="large" className="shadow-[0_0_0_3px_#d4d4d4]">Label</Button></Flex>
547
- <Flex justify="center" style={{ width: "133px" }}><Button variant="destructive" size="large" disabled>Label</Button></Flex>
548
- {/* Ghost Muted */}
549
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost-muted" size="large">Label</Button></Flex>
550
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost-muted" size="large" className="bg-main-100 text-main-600">Label</Button></Flex>
551
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost-muted" size="large" className="shadow-[0_0_0_3px_#d4d4d4]">Label</Button></Flex>
552
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost-muted" size="large" disabled>Label</Button></Flex>
553
- </Flex>
554
- </Flex>
555
-
556
- {/* Small Row */}
557
- <Flex align="center">
558
- <Flex style={{ width: "80px" }}>
559
- <Typography variant="body3" color="main-500">Small</Typography>
560
- </Flex>
561
- <Flex gap={0}>
562
- {/* Ghost */}
563
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost" size="small">Label</Button></Flex>
564
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost" size="small" className="bg-main-100 text-main-950">Label</Button></Flex>
565
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost" size="small" className="shadow-[0_0_0_3px_#d4d4d4]">Label</Button></Flex>
566
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost" size="small" disabled>Label</Button></Flex>
567
- {/* Destructive */}
568
- <Flex justify="center" style={{ width: "133px" }}><Button variant="destructive" size="small">Label</Button></Flex>
569
- <Flex justify="center" style={{ width: "133px" }}><Button variant="destructive" size="small" className="bg-error-700">Label</Button></Flex>
570
- <Flex justify="center" style={{ width: "133px" }}><Button variant="destructive" size="small" className="shadow-[0_0_0_3px_#d4d4d4]">Label</Button></Flex>
571
- <Flex justify="center" style={{ width: "133px" }}><Button variant="destructive" size="small" disabled>Label</Button></Flex>
572
- {/* Ghost Muted */}
573
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost-muted" size="small">Label</Button></Flex>
574
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost-muted" size="small" className="bg-main-100 text-main-600">Label</Button></Flex>
575
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost-muted" size="small" className="shadow-[0_0_0_3px_#d4d4d4]">Label</Button></Flex>
576
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost-muted" size="small" disabled>Label</Button></Flex>
577
- </Flex>
578
- </Flex>
579
-
580
- {/* Mini Row */}
581
- <Flex align="center">
582
- <Flex style={{ width: "80px" }}>
583
- <Typography variant="body3" color="main-500">Mini</Typography>
584
- </Flex>
585
- <Flex gap={0}>
586
- {/* Ghost */}
587
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost" size="mini">Label</Button></Flex>
588
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost" size="mini" className="bg-main-100 text-main-950">Label</Button></Flex>
589
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost" size="mini" className="shadow-[0_0_0_3px_#d4d4d4]">Label</Button></Flex>
590
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost" size="mini" disabled>Label</Button></Flex>
591
- {/* Destructive */}
592
- <Flex justify="center" style={{ width: "133px" }}><Button variant="destructive" size="mini">Label</Button></Flex>
593
- <Flex justify="center" style={{ width: "133px" }}><Button variant="destructive" size="mini" className="bg-error-700">Label</Button></Flex>
594
- <Flex justify="center" style={{ width: "133px" }}><Button variant="destructive" size="mini" className="shadow-[0_0_0_3px_#d4d4d4]">Label</Button></Flex>
595
- <Flex justify="center" style={{ width: "133px" }}><Button variant="destructive" size="mini" disabled>Label</Button></Flex>
596
- {/* Ghost Muted */}
597
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost-muted" size="mini">Label</Button></Flex>
598
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost-muted" size="mini" className="bg-main-100 text-main-600">Label</Button></Flex>
599
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost-muted" size="mini" className="shadow-[0_0_0_3px_#d4d4d4]">Label</Button></Flex>
600
- <Flex justify="center" style={{ width: "133px" }}><Button variant="ghost-muted" size="mini" disabled>Label</Button></Flex>
601
- </Flex>
602
- </Flex>
603
- </Flex>
604
-
605
- {/* Examples Section */}
606
- <Flex direction="column" gap={6} style={{ marginTop: "24px", paddingTop: "24px", borderTop: "1px solid #e5e7eb" }}>
607
- <Typography variant="subtitle1" color="main-700">Examples</Typography>
608
-
609
- <Flex gap={12}>
610
- {/* Regular size examples */}
611
- <Flex direction="column" gap={4}>
612
- <Typography variant="body2" color="main-600" className="font-medium">Regular Size</Typography>
613
- <Flex direction="column" gap={3}>
614
- <Flex gap={3}>
615
- <Button variant="primary" leftIcon={<Mail />}>Login with Email</Button>
616
- <Button variant="secondary" leftIcon={<Plus />}>Add Item</Button>
617
- </Flex>
618
- <Flex gap={3}>
619
- <Button variant="outline" leftIcon={<Search />}>Edit</Button>
620
- <Button variant="ghost" leftIcon={<Plus />}>Add</Button>
621
- <Button variant="destructive" leftIcon={<Trash2 />}>Delete</Button>
622
- </Flex>
623
- <Flex gap={3}>
624
- <Button variant="outline" leftIcon={<ChevronDown />}>Dropdown</Button>
625
- <Button variant="outline" leftIcon={<ChevronDown />}>Display</Button>
626
- <Button variant="outline" leftIcon={<ChevronDown />}>Display</Button>
627
- </Flex>
628
- <Flex gap={3}>
629
- <Button variant="outline" leftIcon={<ArrowRight />}>Previous</Button>
630
- <Button variant="ghost" rightIcon={<ArrowRight />}>Next</Button>
631
- </Flex>
632
- <Flex gap={3}>
633
- <Button variant="ghost" leftIcon={<Search />}>Search</Button>
634
- <Button variant="ghost" leftIcon={<Download />}>Bookmark</Button>
635
- </Flex>
636
- </Flex>
637
- </Flex>
638
-
639
- {/* Small size examples */}
640
- <Flex direction="column" gap={4}>
641
- <Typography variant="body2" color="main-600" className="font-medium">Small Size</Typography>
642
- <Flex direction="column" gap={3}>
643
- <Flex gap={3}>
644
- <Button variant="primary" size="small" leftIcon={<Mail />}>Login with Email</Button>
645
- <Button variant="secondary" size="small" leftIcon={<Plus />}>Add Item</Button>
646
- </Flex>
647
- <Flex gap={3}>
648
- <Button variant="outline" size="small" leftIcon={<Search />}>Edit</Button>
649
- <Button variant="ghost" size="small" leftIcon={<Plus />}>Add</Button>
650
- <Button variant="destructive" size="small" leftIcon={<Trash2 />}>Delete</Button>
651
- </Flex>
652
- <Flex gap={3}>
653
- <Button variant="outline" size="small" leftIcon={<ChevronDown />}>Dropdown</Button>
654
- <Button variant="outline" size="small" leftIcon={<ChevronDown />}>Display</Button>
655
- <Button variant="outline" size="small" leftIcon={<ChevronDown />}>Display</Button>
656
- </Flex>
657
- <Flex gap={3}>
658
- <Button variant="outline" size="small" leftIcon={<ArrowRight />}>Previous</Button>
659
- <Button variant="ghost" size="small" rightIcon={<ArrowRight />}>Next</Button>
660
- </Flex>
661
- <Flex gap={3}>
662
- <Button variant="ghost" size="small" leftIcon={<Search />}>Search</Button>
663
- <Button variant="ghost" size="small" leftIcon={<Download />}>Bookmark</Button>
664
- </Flex>
665
- </Flex>
666
- </Flex>
667
-
668
- {/* Loading states */}
669
- <Flex direction="column" gap={4}>
670
- <Typography variant="body2" color="main-600" className="font-medium">1:1 Fit</Typography>
671
- <Typography variant="caption" color="main-400">Note: You can set a minimum width to<br />make the 1:1 pill button, e.g. 2:1</Typography>
672
- <Flex direction="column" gap={3}>
673
- <Button variant="primary" roundness="round" style={{ width: "36px", height: "36px", padding: 0 }}><Plus /></Button>
674
- <Button variant="secondary" roundness="round" style={{ width: "36px", height: "36px", padding: 0 }}><Plus /></Button>
675
- <Button variant="outline" roundness="round" style={{ width: "36px", height: "36px", padding: 0 }}><Plus /></Button>
676
- <Button variant="ghost" roundness="round" style={{ width: "36px", height: "36px", padding: 0 }}><Plus /></Button>
677
- </Flex>
678
- </Flex>
679
- </Flex>
680
- </Flex>
681
- </Flex>
682
- </Flex>
683
- ),
684
- }