linkedunion-design-kit 1.9.2 → 1.9.4

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 (142) hide show
  1. package/dist/app/layout.jsx +13 -0
  2. package/dist/app/page.jsx +25 -0
  3. package/dist/build/types/app/layout.d.ts +12 -0
  4. package/dist/build/types/app/layout.js +22 -0
  5. package/dist/build/types/app/page.d.ts +12 -0
  6. package/dist/build/types/app/page.js +22 -0
  7. package/dist/index.d.ts +4 -0
  8. package/dist/index.js +4 -0
  9. package/dist/src/components/Accordion/Accordion.stories.jsx +33 -0
  10. package/dist/src/components/Accordion/accordion.jsx +59 -0
  11. package/dist/src/components/Alerts/Alert/alert.jsx +152 -0
  12. package/dist/src/components/Alerts/Alert/alert.stories.jsx +344 -0
  13. package/dist/src/components/Alerts/AlertDialog/alert-dialog.jsx +170 -0
  14. package/dist/src/components/Alerts/AlertDialog/alert-dialog.stories.jsx +552 -0
  15. package/dist/src/components/AppIcons/AndroidIcon.jsx +24 -0
  16. package/dist/src/components/AppIcons/AppIcon.jsx +29 -0
  17. package/dist/src/components/AppIcons/AppIcon.stories.jsx +223 -0
  18. package/dist/src/components/AppIcons/AppleIcon.jsx +31 -0
  19. package/dist/src/components/AppIcons/PlayStoreIcon.jsx +29 -0
  20. package/dist/src/components/Avatar/Avatar/Avatar.jsx +45 -0
  21. package/dist/src/components/Avatar/Avatar/Avatar.stories.jsx +95 -0
  22. package/dist/src/components/Avatar/Avatar/Avatar.test.jsx +9 -0
  23. package/dist/src/components/Avatar/AvatarGroup/AvatarGroup.jsx +17 -0
  24. package/dist/src/components/Avatar/AvatarGroup/AvatarGroup.stories.jsx +32 -0
  25. package/dist/src/components/Avatar/StatusIndicator/StatusIndicator.jsx +20 -0
  26. package/dist/src/components/Avatar/StatusIndicator/StatusIndicator.stories.jsx +50 -0
  27. package/dist/src/components/Badge/Badge.jsx +54 -0
  28. package/dist/src/components/Badge/Badge.stories.jsx +201 -0
  29. package/dist/src/components/Button/Button/Button.d.ts +7 -6
  30. package/dist/src/components/Button/Button/Button.js +32 -9
  31. package/dist/src/components/Button/Button/Button.jsx +101 -0
  32. package/dist/src/components/Button/Button/Button.stories.jsx +283 -0
  33. package/dist/src/components/Button/Button/Button.test.jsx +73 -0
  34. package/dist/src/components/Button/IconButton/IconButton.jsx +63 -0
  35. package/dist/src/components/Button/IconButton/IconButton.stories.jsx +128 -0
  36. package/dist/src/components/Button/IconButton/IconButton.test.jsx +28 -0
  37. package/dist/src/components/Button/index.js +3 -3
  38. package/dist/src/components/Card/MultipleNews/MultiNews.jsx +80 -0
  39. package/dist/src/components/Card/MultipleNews/MultiNews.stories.jsx +104 -0
  40. package/dist/src/components/Card/PostByCategory/PostByCategory.jsx +60 -0
  41. package/dist/src/components/Card/PostByCategory/PostByCategory.stories.jsx +106 -0
  42. package/dist/src/components/Card/SinglePost/SinglePost.jsx +26 -0
  43. package/dist/src/components/Card/SinglePost/SinglePost.stories.jsx +68 -0
  44. package/dist/src/components/Card/card.jsx +36 -0
  45. package/dist/src/components/Card/contactProfile/ContactProfile.jsx +60 -0
  46. package/dist/src/components/Card/contactProfile/ContactProfile.stories.jsx +103 -0
  47. package/dist/src/components/Card/photoAlbum/PhotoAlbum.jsx +41 -0
  48. package/dist/src/components/Card/photoAlbum/PhotoAlbum.stories.jsx +69 -0
  49. package/dist/src/components/Card/photoGallery/PhotoGallery.jsx +17 -0
  50. package/dist/src/components/Card/photoGallery/PhotoGallery.stories.jsx +39 -0
  51. package/dist/src/components/Checkbox/checkbox.jsx +47 -0
  52. package/dist/src/components/Checkbox/checkbox.stories.jsx +113 -0
  53. package/dist/src/components/ColorPicker/ColorPicker.jsx +67 -0
  54. package/dist/src/components/ColorPicker/ColorPicker.stories.jsx +138 -0
  55. package/dist/src/components/Colors/color.jsx +5 -0
  56. package/dist/src/components/Colors/color.stories.jsx +20 -0
  57. package/dist/src/components/Colors/color.test.jsx +23 -0
  58. package/dist/src/components/Dropdown/Combobox/Combobox.jsx +198 -0
  59. package/dist/src/components/Dropdown/Combobox/Combobox.stories.jsx +289 -0
  60. package/dist/src/components/Dropdown/Combobox/utils/renderBadge.jsx +7 -0
  61. package/dist/src/components/Dropdown/DropdownMenu/DropdownMenu.jsx +102 -0
  62. package/dist/src/components/Dropdown/DropdownMenu/DropdownMenu.stories.jsx +464 -0
  63. package/dist/src/components/Dropdown/DropdownMenu/SelectAllSection.jsx +19 -0
  64. package/dist/src/components/Dropdown/Select.stories.jsx +201 -0
  65. package/dist/src/components/Dropdown/select.jsx +93 -0
  66. package/dist/src/components/Icons/LUIcon.jsx +41 -0
  67. package/dist/src/components/Icons/LUIcon.test.jsx +308 -0
  68. package/dist/src/components/Icons/stories/IconDropdown.jsx +67 -0
  69. package/dist/src/components/Icons/stories/IconGallery.jsx +77 -0
  70. package/dist/src/components/Icons/stories/InteractiveIconSelector.jsx +86 -0
  71. package/dist/src/components/Icons/stories/LUIcon.stories.jsx +108 -0
  72. package/dist/src/components/ImageUploader/ImageUploader.stories.jsx +50 -0
  73. package/dist/src/components/ImageUploader/imageUploader.jsx +94 -0
  74. package/dist/src/components/Images/LuImage.jsx +19 -0
  75. package/dist/src/components/Images/LuImage.stories.jsx +154 -0
  76. package/dist/src/components/Images/LuImage.test.jsx +44 -0
  77. package/dist/src/components/Input/Input.stories.jsx +250 -0
  78. package/dist/src/components/Input/input.jsx +110 -0
  79. package/dist/src/components/Label/Label.jsx +32 -0
  80. package/dist/src/components/Label/Label.stories.jsx +30 -0
  81. package/dist/src/components/Pagination/pagination.d.ts +33 -0
  82. package/dist/src/components/Pagination/pagination.js +68 -0
  83. package/dist/src/components/Pagination/pagination.jsx +68 -0
  84. package/dist/src/components/Pagination/pagination.stories.d.ts +74 -0
  85. package/dist/src/components/Pagination/pagination.stories.js +168 -0
  86. package/dist/src/components/Pagination/pagination.stories.jsx +114 -0
  87. package/dist/src/components/RadioGroup/RadioGroup.stories.jsx +146 -0
  88. package/dist/src/components/RadioGroup/radio-group.jsx +49 -0
  89. package/dist/src/components/Skeleton/skeleton.d.ts +117 -0
  90. package/dist/src/components/Skeleton/skeleton.js +140 -0
  91. package/dist/src/components/Skeleton/skeleton.stories.d.ts +153 -0
  92. package/dist/src/components/Skeleton/skeleton.stories.js +404 -0
  93. package/dist/src/components/Slider/Slider.stories.jsx +159 -0
  94. package/dist/src/components/Slider/slider.jsx +31 -0
  95. package/dist/src/components/SweetAlert/SweetAlert.jsx +147 -0
  96. package/dist/src/components/SweetAlert/SweetAlert.stories.jsx +505 -0
  97. package/dist/src/components/Switch/Switch.stories.jsx +66 -0
  98. package/dist/src/components/Switch/switch.jsx +61 -0
  99. package/dist/src/components/Table/Table.d.ts +26 -0
  100. package/dist/src/components/Table/Table.js +186 -0
  101. package/dist/src/components/Table/Table.jsx +221 -0
  102. package/dist/src/components/Table/Table.stories.d.ts +51 -0
  103. package/dist/src/components/Table/Table.stories.js +408 -0
  104. package/dist/src/components/Table/Table.stories.jsx +652 -0
  105. package/dist/src/components/Table/index.d.ts +20 -0
  106. package/dist/src/components/Table/index.js +20 -0
  107. package/dist/src/components/Tabs/Tabs.stories.jsx +29 -0
  108. package/dist/src/components/Tabs/tabs.jsx +32 -0
  109. package/dist/src/components/Title/Title.jsx +8 -0
  110. package/dist/src/components/Title/Title.stories.jsx +37 -0
  111. package/dist/src/components/Title/Title.test.jsx +24 -0
  112. package/dist/src/components/ToolTip/Tooltip.jsx +18 -0
  113. package/dist/src/components/ToolTip/Tooltip.stories.jsx +25 -0
  114. package/dist/src/components/Typography/Body/Body.stories.jsx +34 -0
  115. package/dist/src/components/Typography/Body/body.jsx +52 -0
  116. package/dist/src/components/Typography/Caption/Caption.stories.jsx +24 -0
  117. package/dist/src/components/Typography/Caption/caption.jsx +25 -0
  118. package/dist/src/components/Typography/Display/Display.stories.jsx +24 -0
  119. package/dist/src/components/Typography/Display/display.jsx +39 -0
  120. package/dist/src/components/Typography/Heading/Heading.stories.jsx +37 -0
  121. package/dist/src/components/Typography/Heading/heading.jsx +53 -0
  122. package/dist/src/components/ui/avatar.d.ts +3 -10
  123. package/dist/src/components/ui/avatar.js +12 -27
  124. package/dist/src/components/ui/avatar.jsx +27 -0
  125. package/dist/src/components/ui/button.d.ts +10 -0
  126. package/dist/src/components/ui/button.js +56 -0
  127. package/dist/src/components/ui/button.jsx +45 -0
  128. package/dist/src/components/ui/collapsible.d.ts +5 -0
  129. package/dist/src/components/ui/collapsible.js +5 -0
  130. package/dist/src/components/ui/collapsible.jsx +5 -0
  131. package/dist/src/components/ui/command.jsx +67 -0
  132. package/dist/src/components/ui/dialog.jsx +66 -0
  133. package/dist/src/components/ui/popover.jsx +33 -0
  134. package/dist/src/components/ui/tooltip.jsx +38 -0
  135. package/dist/src/components/ui/typography.jsx +56 -0
  136. package/dist/src/utils/colors.js +11 -11
  137. package/dist/src/utils/iconList.d.ts +4 -0
  138. package/dist/src/utils/iconList.js +4 -0
  139. package/dist/styles/global.css +209 -67
  140. package/package.json +1 -1
  141. package/dist/src/components/Avatar/Avatar/Avatar1.stories.d.ts +0 -17
  142. package/dist/src/components/Avatar/Avatar/Avatar1.stories.js +0 -68
@@ -0,0 +1,408 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
13
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
14
+ if (ar || !(i in from)) {
15
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
16
+ ar[i] = from[i];
17
+ }
18
+ }
19
+ return to.concat(ar || Array.prototype.slice.call(from));
20
+ };
21
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
22
+ import React, { useState, useMemo } from "react";
23
+ import { Table, TableHeader, TableBody, TableRow, TableHead, TableCell, TableCaption, } from "./Table";
24
+ import { tableSize } from ".";
25
+ import { Checkbox } from "../Checkbox/checkbox";
26
+ import { Badge } from "../Badge/Badge";
27
+ import Combobox from "../Dropdown/Combobox/Combobox";
28
+ import { IconButton } from "../Button/IconButton/IconButton";
29
+ import { Avatar, AvatarFallback, AvatarImage } from "../Avatar/Avatar/Avatar";
30
+ export default {
31
+ title: "Components/Table",
32
+ component: Table,
33
+ argTypes: {
34
+ size: {
35
+ control: {
36
+ type: "select",
37
+ },
38
+ options: Object.keys(tableSize),
39
+ description: "The size of the table. This controls the height and text size of the cells.",
40
+ table: {
41
+ type: { summary: "string" },
42
+ defaultValue: { summary: "sm" },
43
+ },
44
+ },
45
+ },
46
+ };
47
+ var Template = function (args) {
48
+ return (_jsxs(Table, __assign({}, args, { children: [_jsx(TableCaption, { children: "Example users table" }), _jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: "Name" }), _jsx(TableHead, { children: "Email" }), _jsx(TableHead, { children: "Role" })] }) }), _jsxs(TableBody, { children: [_jsxs(TableRow, { children: [_jsx(TableCell, { children: "Jane Cooper" }), _jsx(TableCell, { children: "jane.cooper@example.com" }), _jsx(TableCell, { children: "Admin" })] }), _jsxs(TableRow, { children: [_jsx(TableCell, { children: "John Doe" }), _jsx(TableCell, { children: "john.doe@example.com" }), _jsx(TableCell, { children: "Member" })] })] })] })));
49
+ };
50
+ export var Default = Template.bind({});
51
+ export var TableSizes = function () { return (_jsx("div", { className: "flex flex-col space-y-2", children: Object.keys(tableSize).map(function (size) { return (_jsxs(Table, { size: size, children: [_jsx(TableCaption, { children: "Table Size: ".concat(size) }), _jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: "Name" }), _jsx(TableHead, { children: "Email" }), _jsx(TableHead, { children: "Role" })] }) }), _jsxs(TableBody, { children: [_jsxs(TableRow, { children: [_jsx(TableCell, { children: "Jane Cooper" }), _jsx(TableCell, { children: "jane.cooper@example.com" }), _jsx(TableCell, { children: "Admin" })] }), _jsxs(TableRow, { children: [_jsx(TableCell, { children: "John Doe" }), _jsx(TableCell, { children: "john.doe@example.com" }), _jsx(TableCell, { children: "Member" })] })] })] }, size)); }) })); };
52
+ export var CheckBoxInSmallTable = function () {
53
+ var users = [
54
+ {
55
+ id: 1,
56
+ name: "Jane Cooper",
57
+ email: "jane.cooper@example.com",
58
+ role: "Admin",
59
+ },
60
+ {
61
+ id: 2,
62
+ name: "John Doe",
63
+ email: "john.doe@example.com",
64
+ role: "Member",
65
+ },
66
+ ];
67
+ var _a = useState(new Set()), selected = _a[0], setSelected = _a[1];
68
+ var allChecked = selected.size === users.length && users.length > 0;
69
+ var toggleAll = function (checked) {
70
+ if (checked) {
71
+ setSelected(new Set(users.map(function (u) { return u.id; })));
72
+ }
73
+ else {
74
+ setSelected(new Set());
75
+ }
76
+ };
77
+ var toggleOne = function (id, checked) {
78
+ setSelected(function (prev) {
79
+ var next = new Set(prev);
80
+ if (checked) {
81
+ next.add(id);
82
+ }
83
+ else {
84
+ next.delete(id);
85
+ }
86
+ return next;
87
+ });
88
+ };
89
+ return (_jsxs(Table, { children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Checkbox, { checked: allChecked, onCheckedChange: toggleAll, "aria-checked": allChecked, size: "sm" }), "Name"] }) }), _jsx(TableHead, { children: "Email" }), _jsx(TableHead, { children: "Role" })] }) }), _jsx(TableBody, { children: users.map(function (user) {
90
+ var isChecked = selected.has(user.id);
91
+ return (_jsxs(TableRow, { children: [_jsx(TableCell, { children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Checkbox, { checked: isChecked, onCheckedChange: function (c) { return toggleOne(user.id, c); }, size: "sm" }), user.name] }) }), _jsx(TableCell, { children: user.email }), _jsx(TableCell, { children: user.role })] }, user.id));
92
+ }) })] }));
93
+ };
94
+ export var CheckBoxInMediumTable = function () {
95
+ var users = [
96
+ {
97
+ id: 1,
98
+ name: "Jane Cooper",
99
+ email: "jane.cooper@example.com",
100
+ role: "Admin",
101
+ },
102
+ {
103
+ id: 2,
104
+ name: "John Doe",
105
+ email: "john.doe@example.com",
106
+ role: "Member",
107
+ },
108
+ ];
109
+ var _a = useState(new Set()), selected = _a[0], setSelected = _a[1];
110
+ var allChecked = selected.size === users.length && users.length > 0;
111
+ var toggleAll = function (checked) {
112
+ if (checked) {
113
+ setSelected(new Set(users.map(function (u) { return u.id; })));
114
+ }
115
+ else {
116
+ setSelected(new Set());
117
+ }
118
+ };
119
+ var toggleOne = function (id, checked) {
120
+ setSelected(function (prev) {
121
+ var next = new Set(prev);
122
+ if (checked) {
123
+ next.add(id);
124
+ }
125
+ else {
126
+ next.delete(id);
127
+ }
128
+ return next;
129
+ });
130
+ };
131
+ return (_jsxs(Table, { size: "md", children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Checkbox, { checked: allChecked, onCheckedChange: toggleAll, "aria-checked": allChecked, size: "md" }), "Name"] }) }), _jsx(TableHead, { children: "Email" }), _jsx(TableHead, { children: "Role" })] }) }), _jsx(TableBody, { children: users.map(function (user) {
132
+ var isChecked = selected.has(user.id);
133
+ return (_jsxs(TableRow, { children: [_jsx(TableCell, { children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Checkbox, { checked: isChecked, onCheckedChange: function (c) { return toggleOne(user.id, c); }, size: "md" }), user.name] }) }), _jsx(TableCell, { children: user.email }), _jsx(TableCell, { children: user.role })] }, user.id));
134
+ }) })] }));
135
+ };
136
+ export var CheckBoxInLargeTable = function () {
137
+ var users = [
138
+ {
139
+ id: 1,
140
+ name: "Jane Cooper",
141
+ email: "jane.cooper@example.com",
142
+ role: "Admin",
143
+ },
144
+ {
145
+ id: 2,
146
+ name: "John Doe",
147
+ email: "john.doe@example.com",
148
+ role: "Member",
149
+ },
150
+ ];
151
+ var _a = useState(new Set()), selected = _a[0], setSelected = _a[1];
152
+ var allChecked = selected.size === users.length && users.length > 0;
153
+ var toggleAll = function (checked) {
154
+ if (checked) {
155
+ setSelected(new Set(users.map(function (u) { return u.id; })));
156
+ }
157
+ else {
158
+ setSelected(new Set());
159
+ }
160
+ };
161
+ var toggleOne = function (id, checked) {
162
+ setSelected(function (prev) {
163
+ var next = new Set(prev);
164
+ if (checked) {
165
+ next.add(id);
166
+ }
167
+ else {
168
+ next.delete(id);
169
+ }
170
+ return next;
171
+ });
172
+ };
173
+ return (_jsxs(Table, { size: "lg", children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Checkbox, { checked: allChecked, onCheckedChange: toggleAll, "aria-checked": allChecked, size: "lg" }), "Name"] }) }), _jsx(TableHead, { children: "Email" }), _jsx(TableHead, { children: "Role" })] }) }), _jsx(TableBody, { children: users.map(function (user) {
174
+ var isChecked = selected.has(user.id);
175
+ return (_jsxs(TableRow, { children: [_jsx(TableCell, { children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Checkbox, { checked: isChecked, onCheckedChange: function (c) { return toggleOne(user.id, c); }, size: "lg" }), user.name] }) }), _jsx(TableCell, { children: user.email }), _jsx(TableCell, { children: user.role })] }, user.id));
176
+ }) })] }));
177
+ };
178
+ export var SortingTable = function () {
179
+ var users = useMemo(function () { return [
180
+ {
181
+ id: 1,
182
+ name: "Jane Cooper",
183
+ email: "jane.cooper@example.com",
184
+ role: "Admin",
185
+ joinDate: "2023-01-15",
186
+ },
187
+ {
188
+ id: 2,
189
+ name: "John Doe",
190
+ email: "john.doe@example.com",
191
+ role: "Member",
192
+ joinDate: "2023-03-22",
193
+ },
194
+ {
195
+ id: 3,
196
+ name: "Alice Smith",
197
+ email: "alice.smith@example.com",
198
+ role: "Admin",
199
+ joinDate: "2023-02-10",
200
+ },
201
+ {
202
+ id: 4,
203
+ name: "Bob Johnson",
204
+ email: "bob.johnson@example.com",
205
+ role: "User",
206
+ joinDate: "2023-04-05",
207
+ },
208
+ {
209
+ id: 5,
210
+ name: "Charlie Brown",
211
+ email: "charlie.brown@example.com",
212
+ role: "Member",
213
+ joinDate: "2023-01-30",
214
+ },
215
+ ]; }, []);
216
+ var _a = React.useState(undefined), sortKey = _a[0], setSortKey = _a[1];
217
+ var _b = React.useState(undefined), direction = _b[0], setDirection = _b[1];
218
+ var handleSort = function (key) {
219
+ if (sortKey === key) {
220
+ // Toggle direction if same column is clicked again
221
+ setDirection(direction === "asc" ? "desc" : "asc");
222
+ }
223
+ else {
224
+ // Set a new column and default to ascending
225
+ setSortKey(key);
226
+ setDirection("asc");
227
+ }
228
+ };
229
+ var sorted = useMemo(function () {
230
+ if (!sortKey || !direction)
231
+ return users;
232
+ return __spreadArray([], users, true).sort(function (a, b) {
233
+ var aVal = a[sortKey];
234
+ var bVal = b[sortKey];
235
+ if (aVal < bVal)
236
+ return direction === "asc" ? -1 : 1;
237
+ if (aVal > bVal)
238
+ return direction === "asc" ? 1 : -1;
239
+ return 0;
240
+ });
241
+ }, [sortKey, direction, users]);
242
+ return (_jsxs(Table, { size: "sm", children: [_jsx(TableCaption, { children: "Sortable table - Click on Name or Role" }), _jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: _jsxs("div", { className: "flex items-center gap-2", children: ["Name", _jsx(IconButton, { "aria-label": "Toggle sort by Name", onClick: function () { return handleSort("name"); }, size: "sm", variant: "ghost", icon: "sort", color: "gray" })] }) }), _jsx(TableHead, { children: "Email" }), _jsx(TableHead, { children: _jsxs("div", { className: "flex items-center gap-2", children: ["Role", _jsx(IconButton, { "aria-label": "Toggle sort by Role", onClick: function () { return handleSort("role"); }, size: "sm", variant: "ghost", icon: "sort", color: "gray" })] }) }), _jsx(TableHead, { children: "Join Date" })] }) }), _jsx(TableBody, { children: sorted.map(function (user) { return (_jsxs(TableRow, { children: [_jsx(TableCell, { children: user.name }), _jsx(TableCell, { children: user.email }), _jsx(TableCell, { children: user.role }), _jsx(TableCell, { children: user.joinDate })] }, user.id)); }) })] }));
243
+ };
244
+ export var BadgesInTable = function () {
245
+ var users = [
246
+ {
247
+ id: 1,
248
+ task: "Design new homepage",
249
+ status: "In Progress",
250
+ role: "Admin",
251
+ },
252
+ {
253
+ id: 2,
254
+ task: "Implement user authentication",
255
+ status: "Completed",
256
+ role: "Member",
257
+ },
258
+ ];
259
+ return (_jsxs(Table, { size: "sm", children: [_jsx(TableCaption, { children: "Tasks with Status Badges" }), _jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: "Task" }), _jsx(TableHead, { children: "Status" }), _jsx(TableHead, { children: "Role" })] }) }), _jsx(TableBody, { children: users.map(function (user) { return (_jsxs(TableRow, { children: [_jsx(TableCell, { children: user.task }), _jsx(TableCell, { children: _jsx(Badge, { color: user.status === "Completed" ? "light-green" : "light-blue", size: "sm", endIcon: "check", children: user.status }) }), _jsx(TableCell, { children: user.role })] }, user.id)); }) })] }));
260
+ };
261
+ BadgesInTable.parameters = {
262
+ docs: {
263
+ description: {
264
+ story: "Badges in table displays a table of tasks with their current status represented by badges. The badges are color-coded to indicate the status of each task. For large table, use large badge. For medium table, use medium badge. For small table, use small badge.",
265
+ },
266
+ },
267
+ };
268
+ export var DropdownInTable = function () {
269
+ var users = [
270
+ {
271
+ id: 1,
272
+ name: "Jane Cooper",
273
+ email: "jane.cooper@example.com",
274
+ role: "Admin",
275
+ joinDate: "2023-01-15",
276
+ },
277
+ {
278
+ id: 2,
279
+ name: "John Doe",
280
+ email: "john.doe@example.com",
281
+ role: "Member",
282
+ joinDate: "2023-03-22",
283
+ },
284
+ {
285
+ id: 3,
286
+ name: "Alice Smith",
287
+ email: "alice.smith@example.com",
288
+ role: "Admin",
289
+ joinDate: "2023-02-10",
290
+ },
291
+ ];
292
+ return (_jsxs(Table, { size: "sm", children: [_jsx(TableCaption, { children: "Table with Dropdown Actions" }), _jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: "Name" }), _jsx(TableHead, { children: "Email" }), _jsx(TableHead, { children: "Role" }), _jsx(TableHead, { children: "Actions" })] }) }), _jsx(TableBody, { children: users.map(function (user) { return (_jsxs(TableRow, { children: [_jsx(TableCell, { children: user.name }), _jsx(TableCell, { children: user.email }), _jsx(TableCell, { children: user.role }), _jsx(TableCell, { children: _jsx("div", { className: "w-48", children: _jsx(Combobox, { size: "sm", placeholder: "Actions", options: ["Edit", "Share", "Delete"], isSearch: false, isMulti: false, onSelect: function (v) { return console.log("selected", v); } }) }) })] }, user.id)); }) })] }));
293
+ };
294
+ DropdownInTable.parameters = {
295
+ docs: {
296
+ description: {
297
+ story: "Dropdown in table displays a table of users with a dropdown menu for actions. The dropdown menu allows users to select an action to perform on each user. For large table, use large dropdown. For medium table, use medium dropdown. For small table, use small dropdown.",
298
+ },
299
+ },
300
+ };
301
+ export var ActionButtonInTable = function () {
302
+ var columnMinWidth = 150;
303
+ // Only include data columns in responsive calculation, NOT actions
304
+ var columns = [
305
+ { key: "name", header: "Name" },
306
+ { key: "email", header: "Email" },
307
+ { key: "role", header: "Role" },
308
+ { key: "joinDate", header: "Join Date" },
309
+ ];
310
+ // Create header columns that include actions for proper slicing
311
+ var headerColumns = __spreadArray(__spreadArray([], columns, true), [{ key: "actions", header: "Actions" }], false);
312
+ var users = [
313
+ {
314
+ id: 1,
315
+ name: "Jane Cooper",
316
+ email: "jane.cooper@example.com",
317
+ role: "Admin",
318
+ joinDate: "2023-01-15",
319
+ },
320
+ {
321
+ id: 2,
322
+ name: "John Doe",
323
+ email: "john.doe@example.com",
324
+ role: "Member",
325
+ joinDate: "2023-03-22",
326
+ },
327
+ ];
328
+ return (_jsx("div", { className: "w-full", children: _jsxs(Table, { className: "w-full", columnMinWidth: columnMinWidth, columns: headerColumns, hasActionColumn: true, children: [_jsx(TableCaption, { children: "Table with Action Buttons" }), _jsx(TableHeader, { children: _jsx(TableRow, { data: {}, children: headerColumns.map(function (col) { return (_jsx(TableHead, { children: col.header }, col.key)); }) }) }), _jsx(TableBody, { children: users.map(function (user) {
329
+ var userWithActions = __assign(__assign({}, user), { actions: (_jsxs("div", { className: "flex space-x-2", children: [_jsx(IconButton, { onClick: function () { return alert("Editing ".concat(user.name)); }, color: "light-green", icon: "pen", size: "sm" }), _jsx(IconButton, { onClick: function () { return alert("Deleting ".concat(user.name)); }, color: "light-red", icon: "trash", size: "sm" }), _jsx(IconButton, { onClick: function () { return alert("Downloading ".concat(user.name)); }, color: "light-blue", icon: "download", size: "sm" })] })) });
330
+ return (_jsx(TableRow, { data: userWithActions, children: headerColumns.map(function (col) { return (_jsx(TableCell, { children: col.key === "actions"
331
+ ? userWithActions.actions
332
+ : userWithActions[col.key] }, col.key)); }) }, user.id));
333
+ }) })] }) }));
334
+ };
335
+ ActionButtonInTable.parameters = {
336
+ docs: {
337
+ description: {
338
+ story: "Action buttons in table display a table of users with action buttons for each user. The action buttons allow users to perform actions such as editing, deleting, and downloading user information. For large table, use large icon buttons. For medium table, use medium icon buttons. For small table, use small icon buttons.",
339
+ },
340
+ },
341
+ };
342
+ export var AvatarInTable = function () {
343
+ var users = [
344
+ {
345
+ id: 1,
346
+ name: "Jane Cooper",
347
+ email: "jane.cooper@example.com",
348
+ role: "Admin",
349
+ joinDate: "2023-01-15",
350
+ image: "/images/avatar.png",
351
+ },
352
+ {
353
+ id: 2,
354
+ name: "John Doe",
355
+ email: "john.doe@example.com",
356
+ role: "Member",
357
+ image: "/images/avatar.png",
358
+ joinDate: "2023-03-22",
359
+ },
360
+ ];
361
+ return (_jsxs(Table, { children: [_jsx(TableCaption, { children: "Table with Avatars" }), _jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, {}), _jsx(TableHead, { children: "Name" }), _jsx(TableHead, { children: "Email" }), _jsx(TableHead, { children: "Role" })] }) }), _jsx(TableBody, { children: users.map(function (user) { return (_jsxs(TableRow, { children: [_jsx(TableCell, { children: _jsxs(Avatar, { size: "sm", children: [_jsx(AvatarImage, { alt: "Avatar", src: user.image }), _jsx(AvatarFallback, { children: "AB" })] }) }), _jsx(TableCell, { children: user.name }), _jsx(TableCell, { children: user.email }), _jsx(TableCell, { children: user.role })] }, user.id)); }) })] }));
362
+ };
363
+ export var ResponsiveTable = function () {
364
+ var columnMinWidth = 120;
365
+ var columns = [
366
+ { key: "id", header: "ID" },
367
+ { key: "name", header: "Name" },
368
+ { key: "email", header: "Email" },
369
+ { key: "role", header: "Role" },
370
+ { key: "status", header: "Status" },
371
+ { key: "created", header: "Created At" },
372
+ { key: "updated", header: "Updated At" },
373
+ { key: "data", header: "Data" },
374
+ ];
375
+ var data = [
376
+ {
377
+ id: 1,
378
+ name: "Jane Cooper",
379
+ email: "jane.cooper@example.com",
380
+ role: "Admin",
381
+ status: "Active",
382
+ created: "2023-09-20",
383
+ updated: "2023-09-22",
384
+ data: "Some data",
385
+ },
386
+ {
387
+ id: 2,
388
+ name: "John Doe",
389
+ email: "john.doe@example.com",
390
+ role: "User",
391
+ status: "Pending",
392
+ created: "2023-08-15",
393
+ updated: "2023-08-20",
394
+ data: "Some data",
395
+ },
396
+ {
397
+ id: 3,
398
+ name: "Alice Smith",
399
+ email: "alice.smith@example.com",
400
+ role: "Manager",
401
+ status: "Inactive",
402
+ created: "2023-07-10",
403
+ updated: "2023-07-18",
404
+ data: "Some data",
405
+ },
406
+ ];
407
+ return (_jsxs(Table, { className: "w-full", columnMinWidth: columnMinWidth, columns: columns, children: [_jsx(TableHeader, { children: _jsx(TableRow, { children: columns.map(function (col) { return (_jsx(TableHead, { children: col.header }, col.key)); }) }) }), _jsx(TableBody, { children: data.map(function (row, rowIndex) { return (_jsx(TableRow, { data: row, children: columns.map(function (col) { return (_jsx(TableCell, { children: row[col.key] }, col.key)); }) }, rowIndex)); }) })] }));
408
+ };