linkedunion-design-kit 1.11.6 → 1.11.8

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 (258) hide show
  1. package/dist/app/layout.d.ts +1 -1
  2. package/dist/app/{layout.js → layout.jsx} +3 -2
  3. package/dist/app/page.d.ts +1 -1
  4. package/dist/app/page.jsx +5 -0
  5. package/dist/index.d.ts +3 -0
  6. package/dist/index.js +3 -0
  7. package/dist/src/components/Accordion/Accordion.stories.jsx +33 -0
  8. package/dist/src/components/Accordion/accordion.d.ts +4 -4
  9. package/dist/src/components/Accordion/{accordion.js → accordion.jsx} +11 -16
  10. package/dist/src/components/Alerts/Alert/alert.d.ts +7 -7
  11. package/dist/src/components/Alerts/Alert/{alert.js → alert.jsx} +21 -25
  12. package/dist/src/components/Alerts/Alert/alert.stories.d.ts +8 -8
  13. package/dist/src/components/Alerts/Alert/alert.stories.jsx +344 -0
  14. package/dist/src/components/Alerts/AlertDialog/alert-dialog.d.ts +11 -11
  15. package/dist/src/components/Alerts/AlertDialog/{alert-dialog.js → alert-dialog.jsx} +26 -24
  16. package/dist/src/components/Alerts/AlertDialog/alert-dialog.stories.d.ts +10 -10
  17. package/dist/src/components/Alerts/AlertDialog/alert-dialog.stories.jsx +552 -0
  18. package/dist/src/components/AppIcons/AndroidIcon.jsx +24 -0
  19. package/dist/src/components/AppIcons/{AppIcon.js → AppIcon.jsx} +4 -15
  20. package/dist/src/components/AppIcons/AppleIcon.jsx +31 -0
  21. package/dist/src/components/AppIcons/PlayStoreIcon.jsx +29 -0
  22. package/dist/src/components/Avatar/Avatar/{Avatar.js → Avatar.jsx} +13 -18
  23. package/dist/src/components/Avatar/Avatar/Avatar.stories.d.ts +7 -7
  24. package/dist/src/components/Avatar/Avatar/Avatar.stories.jsx +95 -0
  25. package/dist/src/components/Avatar/Avatar/{Avatar.test.js → Avatar.test.jsx} +1 -2
  26. package/dist/src/components/Avatar/AvatarGroup/AvatarGroup.d.ts +1 -1
  27. package/dist/src/components/Avatar/AvatarGroup/AvatarGroup.jsx +17 -0
  28. package/dist/src/components/Avatar/AvatarGroup/AvatarGroup.stories.jsx +32 -0
  29. package/dist/src/components/Avatar/StatusIndicator/StatusIndicator.jsx +20 -0
  30. package/dist/src/components/Avatar/StatusIndicator/StatusIndicator.stories.d.ts +2 -2
  31. package/dist/src/components/Avatar/StatusIndicator/{StatusIndicator.stories.js → StatusIndicator.stories.jsx} +12 -3
  32. package/dist/src/components/Badge/Badge.d.ts +1 -1
  33. package/dist/src/components/Badge/{Badge.js → Badge.jsx} +8 -13
  34. package/dist/src/components/Badge/Badge.stories.d.ts +10 -10
  35. package/dist/src/components/Badge/Badge.stories.jsx +201 -0
  36. package/dist/src/components/Button/Button/Button.d.ts +3 -2
  37. package/dist/src/components/Button/Button/{Button.js → Button.jsx} +24 -8
  38. package/dist/src/components/Button/Button/Button.stories.d.ts +5 -3
  39. package/dist/src/components/Button/Button/{Button.stories.js → Button.stories.jsx} +1 -13
  40. package/dist/src/components/Button/Button/Button.test.jsx +73 -0
  41. package/dist/src/components/Button/IconButton/IconButton.d.ts +1 -1
  42. package/dist/src/components/Button/IconButton/{IconButton.js → IconButton.jsx} +4 -13
  43. package/dist/src/components/Button/IconButton/IconButton.stories.d.ts +1 -1
  44. package/dist/src/components/Button/IconButton/{IconButton.stories.js → IconButton.stories.jsx} +1 -13
  45. package/dist/src/components/Button/IconButton/{IconButton.test.js → IconButton.test.jsx} +5 -6
  46. package/dist/src/components/Button/index.d.ts +1 -0
  47. package/dist/src/components/Button/index.js +3 -2
  48. package/dist/src/components/Card/MultipleNews/MultiNews.d.ts +1 -1
  49. package/dist/src/components/Card/MultipleNews/MultiNews.jsx +71 -0
  50. package/dist/src/components/Card/MultipleNews/{MultiNews.stories.js → MultiNews.stories.jsx} +1 -2
  51. package/dist/src/components/Card/PostByCategory/PostByCategory.d.ts +1 -1
  52. package/dist/src/components/Card/PostByCategory/PostByCategory.jsx +57 -0
  53. package/dist/src/components/Card/PostByCategory/{PostByCategory.stories.js → PostByCategory.stories.jsx} +1 -2
  54. package/dist/src/components/Card/SinglePost/SinglePost.d.ts +1 -1
  55. package/dist/src/components/Card/SinglePost/SinglePost.jsx +26 -0
  56. package/dist/src/components/Card/card.d.ts +2 -1
  57. package/dist/src/components/Card/{card.js → card.jsx} +2 -13
  58. package/dist/src/components/Card/contactProfile/ContactProfile.d.ts +1 -1
  59. package/dist/src/components/Card/contactProfile/ContactProfile.jsx +76 -0
  60. package/dist/src/components/Card/contactProfile/{ContactProfile.stories.js → ContactProfile.stories.jsx} +1 -2
  61. package/dist/src/components/Card/photoAlbum/PhotoAlbum.d.ts +1 -1
  62. package/dist/src/components/Card/photoAlbum/PhotoAlbum.jsx +41 -0
  63. package/dist/src/components/Card/photoAlbum/{PhotoAlbum.stories.js → PhotoAlbum.stories.jsx} +1 -13
  64. package/dist/src/components/Card/photoGallery/PhotoGallery.d.ts +1 -1
  65. package/dist/src/components/Card/photoGallery/PhotoGallery.jsx +17 -0
  66. package/dist/src/components/Card/photoGallery/{PhotoGallery.stories.js → PhotoGallery.stories.jsx} +1 -13
  67. package/dist/src/components/Checkbox/checkbox.d.ts +1 -1
  68. package/dist/src/components/Checkbox/{checkbox.js → checkbox.jsx} +6 -13
  69. package/dist/src/components/Checkbox/checkbox.stories.jsx +113 -0
  70. package/dist/src/components/ColorPicker/ColorPicker.d.ts +1 -1
  71. package/dist/src/components/ColorPicker/{ColorPicker.js → ColorPicker.jsx} +6 -13
  72. package/dist/src/components/ColorPicker/ColorPicker.stories.d.ts +5 -5
  73. package/dist/src/components/ColorPicker/ColorPicker.stories.jsx +138 -0
  74. package/dist/src/components/Colors/color.d.ts +1 -1
  75. package/dist/src/components/Colors/{color.js → color.jsx} +1 -2
  76. package/dist/src/components/Colors/color.stories.jsx +20 -0
  77. package/dist/src/components/Colors/{color.test.js → color.test.jsx} +3 -4
  78. package/dist/src/components/DatePicker/DatePicker.d.ts +1 -1
  79. package/dist/src/components/DatePicker/DatePicker.jsx +67 -0
  80. package/dist/src/components/DatePicker/DatePicker.stories.d.ts +9 -9
  81. package/dist/src/components/DatePicker/DatePicker.stories.jsx +291 -0
  82. package/dist/src/components/DateRangePicker/DateRangePicker.d.ts +1 -1
  83. package/dist/src/components/DateRangePicker/{DateRangePicker.js → DateRangePicker.jsx} +92 -44
  84. package/dist/src/components/DateRangePicker/DateRangePicker.stories.d.ts +19 -19
  85. package/dist/src/components/DateRangePicker/DateRangePicker.stories.jsx +582 -0
  86. package/dist/src/components/Dropdown/Combobox/Combobox.d.ts +1 -1
  87. package/dist/src/components/Dropdown/Combobox/{Combobox.js → Combobox.jsx} +67 -29
  88. package/dist/src/components/Dropdown/Combobox/Combobox.stories.d.ts +8 -8
  89. package/dist/src/components/Dropdown/Combobox/Combobox.stories.jsx +289 -0
  90. package/dist/src/components/Dropdown/Combobox/dialog.d.ts +10 -10
  91. package/dist/src/components/Dropdown/Combobox/dialog.jsx +66 -0
  92. package/dist/src/components/Dropdown/Combobox/utils/renderBadge.jsx +7 -0
  93. package/dist/src/components/Dropdown/DropdownMenu/DropdownMenu.d.ts +7 -3
  94. package/dist/src/components/Dropdown/DropdownMenu/{DropdownMenu.js → DropdownMenu.jsx} +29 -22
  95. package/dist/src/components/Dropdown/DropdownMenu/DropdownMenu.stories.d.ts +19 -12
  96. package/dist/src/components/Dropdown/DropdownMenu/DropdownMenu.stories.jsx +552 -0
  97. package/dist/src/components/Dropdown/DropdownMenu/SelectAllSection.jsx +19 -0
  98. package/dist/src/components/Dropdown/DropdownMenu/index.d.ts +5 -0
  99. package/dist/src/components/Dropdown/DropdownMenu/index.js +5 -0
  100. package/dist/src/components/Dropdown/Select.stories.d.ts +7 -6
  101. package/dist/src/components/Dropdown/{Select.stories.js → Select.stories.jsx} +71 -8
  102. package/dist/src/components/Dropdown/select.d.ts +10 -10
  103. package/dist/src/components/Dropdown/select.jsx +94 -0
  104. package/dist/src/components/Icons/LUIcon.d.ts +1 -1
  105. package/dist/src/components/Icons/{LUIcon.js → LUIcon.jsx} +10 -13
  106. package/dist/src/components/Icons/stories/IconDropdown.jsx +67 -0
  107. package/dist/src/components/Icons/stories/IconGallery.jsx +77 -0
  108. package/dist/src/components/Icons/stories/InteractiveIconSelector.jsx +86 -0
  109. package/dist/src/components/Icons/stories/LUIcon.stories.d.ts +5 -5
  110. package/dist/src/components/Icons/stories/{LUIcon.stories.js → LUIcon.stories.jsx} +23 -8
  111. package/dist/src/components/ImageUploader/imageUploader.d.ts +1 -1
  112. package/dist/src/components/ImageUploader/{imageUploader.js → imageUploader.jsx} +28 -13
  113. package/dist/src/components/Images/LuImage.d.ts +1 -1
  114. package/dist/src/components/Images/{LuImage.js → LuImage.jsx} +1 -13
  115. package/dist/src/components/Images/{LuImage.stories.js → LuImage.stories.jsx} +1 -13
  116. package/dist/src/components/Images/{LuImage.test.js → LuImage.test.jsx} +6 -18
  117. package/dist/src/components/Input/Input.stories.d.ts +9 -8
  118. package/dist/src/components/Input/Input.stories.jsx +250 -0
  119. package/dist/src/components/Input/input.d.ts +1 -1
  120. package/dist/src/components/Input/{input.js → input.jsx} +10 -13
  121. package/dist/src/components/Label/Label.d.ts +1 -1
  122. package/dist/src/components/Label/{Label.js → Label.jsx} +2 -13
  123. package/dist/src/components/Label/{Label.stories.js → Label.stories.jsx} +1 -13
  124. package/dist/src/components/Modal/Modal.d.ts +3 -3
  125. package/dist/src/components/Modal/{Modal.js → Modal.jsx} +20 -19
  126. package/dist/src/components/Modal/Modal.stories.d.ts +15 -15
  127. package/dist/src/components/Modal/Modal.stories.jsx +487 -0
  128. package/dist/src/components/Pagination/pagination.d.ts +5 -5
  129. package/dist/src/components/Pagination/{pagination.js → pagination.jsx} +18 -21
  130. package/dist/src/components/Pagination/pagination.stories.d.ts +6 -6
  131. package/dist/src/components/Pagination/pagination.stories.jsx +301 -0
  132. package/dist/src/components/RadioGroup/{RadioGroup.stories.js → RadioGroup.stories.jsx} +52 -22
  133. package/dist/src/components/RadioGroup/radio-group.d.ts +1 -1
  134. package/dist/src/components/RadioGroup/{radio-group.js → radio-group.jsx} +6 -14
  135. package/dist/src/components/Separator/Separator.stories.d.ts +15 -0
  136. package/dist/src/components/Separator/Separator.stories.jsx +94 -0
  137. package/dist/src/components/Separator/index.d.ts +1 -0
  138. package/dist/src/components/Separator/index.js +1 -0
  139. package/dist/src/components/Separator/separator.d.ts +4 -0
  140. package/dist/src/components/Separator/separator.jsx +20 -0
  141. package/dist/src/components/Sheet/index.d.ts +1 -0
  142. package/dist/src/components/Sheet/index.js +1 -0
  143. package/dist/src/components/Sheet/sheet.d.ts +25 -0
  144. package/dist/src/components/Sheet/sheet.jsx +73 -0
  145. package/dist/src/components/Sheet/sheet.stories.d.ts +4 -0
  146. package/dist/src/components/Sheet/sheet.stories.jsx +34 -0
  147. package/dist/src/components/Skeleton/skeleton.d.ts +14 -14
  148. package/dist/src/components/Skeleton/{skeleton.js → skeleton.jsx} +23 -27
  149. package/dist/src/components/Skeleton/skeleton.stories.d.ts +14 -14
  150. package/dist/src/components/Skeleton/skeleton.stories.jsx +734 -0
  151. package/dist/src/components/Slider/slider.d.ts +1 -1
  152. package/dist/src/components/Slider/slider.jsx +31 -0
  153. package/dist/src/components/SweetAlert/SweetAlert.d.ts +9 -9
  154. package/dist/src/components/SweetAlert/{SweetAlert.js → SweetAlert.jsx} +18 -21
  155. package/dist/src/components/SweetAlert/SweetAlert.stories.d.ts +7 -7
  156. package/dist/src/components/SweetAlert/{SweetAlert.stories.js → SweetAlert.stories.jsx} +215 -15
  157. package/dist/src/components/Switch/{Switch.stories.js → Switch.stories.jsx} +1 -13
  158. package/dist/src/components/Switch/switch.d.ts +1 -1
  159. package/dist/src/components/Switch/{switch.js → switch.jsx} +4 -13
  160. package/dist/src/components/Table/{Table.js → Table.jsx} +111 -58
  161. package/dist/src/components/Table/Table.stories.d.ts +13 -13
  162. package/dist/src/components/Table/{Table.stories.js → Table.stories.jsx} +299 -45
  163. package/dist/src/components/Table/{Table.test.js → Table.test.jsx} +39 -7
  164. package/dist/src/components/Tabs/{Tabs.stories.js → Tabs.stories.jsx} +10 -3
  165. package/dist/src/components/Tabs/tabs.d.ts +4 -4
  166. package/dist/src/components/Tabs/tabs.jsx +32 -0
  167. package/dist/src/components/TimePicker/TimePicker.d.ts +1 -1
  168. package/dist/src/components/TimePicker/{TimePicker.js → TimePicker.jsx} +54 -30
  169. package/dist/src/components/TimePicker/TimePicker.stories.d.ts +10 -10
  170. package/dist/src/components/TimePicker/TimePicker.stories.jsx +298 -0
  171. package/dist/src/components/Title/Title.d.ts +1 -1
  172. package/dist/src/components/Title/{Title.js → Title.jsx} +2 -2
  173. package/dist/src/components/Title/{Title.stories.js → Title.stories.jsx} +1 -13
  174. package/dist/src/components/Title/{Title.test.js → Title.test.jsx} +4 -5
  175. package/dist/src/components/ToolTip/Tooltip.d.ts +1 -1
  176. package/dist/src/components/ToolTip/Tooltip.jsx +18 -0
  177. package/dist/src/components/ToolTip/{Tooltip.stories.js → Tooltip.stories.jsx} +2 -14
  178. package/dist/src/components/Typography/Body/{Body.stories.js → Body.stories.jsx} +1 -13
  179. package/dist/src/components/Typography/Body/body.d.ts +1 -1
  180. package/dist/src/components/Typography/Body/{body.js → body.jsx} +4 -13
  181. package/dist/src/components/Typography/Caption/{Caption.stories.js → Caption.stories.jsx} +1 -13
  182. package/dist/src/components/Typography/Caption/caption.d.ts +1 -1
  183. package/dist/src/components/Typography/Caption/{caption.js → caption.jsx} +4 -13
  184. package/dist/src/components/Typography/Display/{Display.stories.js → Display.stories.jsx} +1 -13
  185. package/dist/src/components/Typography/Display/display.d.ts +1 -1
  186. package/dist/src/components/Typography/Display/{display.js → display.jsx} +4 -13
  187. package/dist/src/components/Typography/Heading/Heading.stories.d.ts +6 -6
  188. package/dist/src/components/Typography/Heading/Heading.stories.jsx +85 -0
  189. package/dist/src/components/Typography/Heading/{heading.js → heading.jsx} +5 -14
  190. package/dist/src/components/VerticalTabs/{VerticalTabs.js → VerticalTabs.jsx} +9 -17
  191. package/dist/src/components/VerticalTabs/VerticalTabs.stories.jsx +154 -0
  192. package/dist/src/components/VerticalTabs/VerticalTabs.test.jsx +97 -0
  193. package/dist/src/components/ui/calendar.d.ts +2 -2
  194. package/dist/src/components/ui/{calendar.js → calendar.jsx} +36 -22
  195. package/dist/src/components/ui/command.d.ts +9 -9
  196. package/dist/src/components/ui/command.jsx +67 -0
  197. package/dist/src/components/ui/popover.d.ts +4 -4
  198. package/dist/src/components/ui/popover.jsx +33 -0
  199. package/dist/src/components/ui/tooltip.d.ts +4 -4
  200. package/dist/src/components/ui/tooltip.jsx +38 -0
  201. package/dist/src/components/ui/typography.d.ts +1 -1
  202. package/dist/src/components/ui/{typography.js → typography.jsx} +4 -13
  203. package/dist/styles/global.css +107 -5
  204. package/package.json +4 -3
  205. package/dist/app/page.js +0 -4
  206. package/dist/src/components/Accordion/Accordion.stories.js +0 -32
  207. package/dist/src/components/Alerts/Alert/alert.stories.js +0 -166
  208. package/dist/src/components/Alerts/AlertDialog/alert-dialog.stories.js +0 -213
  209. package/dist/src/components/AppIcons/AndroidIcon.js +0 -28
  210. package/dist/src/components/AppIcons/AppleIcon.js +0 -28
  211. package/dist/src/components/AppIcons/PlayStoreIcon.js +0 -28
  212. package/dist/src/components/Avatar/Avatar/Avatar.stories.js +0 -69
  213. package/dist/src/components/Avatar/AvatarGroup/AvatarGroup.js +0 -8
  214. package/dist/src/components/Avatar/AvatarGroup/AvatarGroup.stories.js +0 -14
  215. package/dist/src/components/Avatar/StatusIndicator/StatusIndicator.js +0 -18
  216. package/dist/src/components/Badge/Badge.stories.js +0 -145
  217. package/dist/src/components/Button/Button/Button.test.js +0 -10
  218. package/dist/src/components/Card/MultipleNews/MultiNews.js +0 -46
  219. package/dist/src/components/Card/PostByCategory/PostByCategory.js +0 -37
  220. package/dist/src/components/Card/SinglePost/SinglePost.js +0 -10
  221. package/dist/src/components/Card/contactProfile/ContactProfile.js +0 -39
  222. package/dist/src/components/Card/photoAlbum/PhotoAlbum.js +0 -16
  223. package/dist/src/components/Card/photoGallery/PhotoGallery.js +0 -8
  224. package/dist/src/components/Checkbox/checkbox.stories.js +0 -78
  225. package/dist/src/components/ColorPicker/ColorPicker.stories.js +0 -77
  226. package/dist/src/components/Colors/color.stories.js +0 -32
  227. package/dist/src/components/DatePicker/DatePicker.js +0 -64
  228. package/dist/src/components/DatePicker/DatePicker.stories.js +0 -171
  229. package/dist/src/components/DateRangePicker/DateRangePicker.stories.js +0 -318
  230. package/dist/src/components/Dropdown/Combobox/Combobox.stories.js +0 -225
  231. package/dist/src/components/Dropdown/Combobox/dialog.js +0 -68
  232. package/dist/src/components/Dropdown/Combobox/utils/renderBadge.js +0 -5
  233. package/dist/src/components/Dropdown/DropdownMenu/DropdownMenu.stories.js +0 -253
  234. package/dist/src/components/Dropdown/DropdownMenu/SelectAllSection.js +0 -9
  235. package/dist/src/components/Dropdown/select.js +0 -87
  236. package/dist/src/components/Icons/stories/IconDropdown.js +0 -38
  237. package/dist/src/components/Icons/stories/IconGallery.js +0 -31
  238. package/dist/src/components/Icons/stories/InteractiveIconSelector.js +0 -26
  239. package/dist/src/components/Input/Input.stories.js +0 -133
  240. package/dist/src/components/Modal/Modal.stories.js +0 -115
  241. package/dist/src/components/Pagination/pagination.stories.js +0 -168
  242. package/dist/src/components/Skeleton/skeleton.stories.js +0 -414
  243. package/dist/src/components/Slider/slider.js +0 -38
  244. package/dist/src/components/Tabs/tabs.js +0 -43
  245. package/dist/src/components/TimePicker/TimePicker.stories.js +0 -176
  246. package/dist/src/components/ToolTip/Tooltip.js +0 -8
  247. package/dist/src/components/Typography/Heading/Heading.stories.js +0 -67
  248. package/dist/src/components/VerticalTabs/VerticalTabs.stories.js +0 -100
  249. package/dist/src/components/VerticalTabs/VerticalTabs.test.js +0 -48
  250. package/dist/src/components/ui/command.js +0 -65
  251. package/dist/src/components/ui/popover.js +0 -42
  252. package/dist/src/components/ui/tooltip.js +0 -42
  253. /package/dist/src/components/AppIcons/{AppIcon.stories.js → AppIcon.stories.jsx} +0 -0
  254. /package/dist/src/components/Card/SinglePost/{SinglePost.stories.js → SinglePost.stories.jsx} +0 -0
  255. /package/dist/src/components/Icons/{LUIcon.test.js → LUIcon.test.jsx} +0 -0
  256. /package/dist/src/components/ImageUploader/{ImageUploader.stories.js → ImageUploader.stories.jsx} +0 -0
  257. /package/dist/src/components/Slider/{Slider.stories.js → Slider.stories.jsx} +0 -0
  258. /package/dist/src/components/ui/{collapsible.js → collapsible.jsx} +0 -0
@@ -0,0 +1,552 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
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 { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuCheckboxItem, DropdownMenuLabel, DropdownMenuSubTrigger, DropdownMenuSub, DropdownMenuSubContent, } from "./DropdownMenu";
22
+ import { Button } from "../../../components/Button/Button/Button";
23
+ import LUIcon from "../../../components/Icons/LUIcon";
24
+ import { useState } from "react";
25
+ import { dropdownContentPosition, dropdownMenuSize } from ".";
26
+ import { IconButton } from "../../../components/Button/IconButton/IconButton";
27
+ import { Checkbox } from "../../../components/Checkbox/checkbox";
28
+ import { Label } from "../../../components/Label/Label";
29
+ import { Caption } from "../../../components/Typography/Caption/caption";
30
+ import { Input } from "../../../components/Input";
31
+ import { SelectAllSection } from "./SelectAllSection";
32
+ import { Avatar, AvatarFallback, AvatarImage, } from "../../../components/Avatar/Avatar/Avatar";
33
+ import { Badge } from "../../../components/Badge/Badge";
34
+ export default {
35
+ title: "Components/Dropdown/DropdownMenu",
36
+ component: DropdownMenu,
37
+ tags: ["autodocs"],
38
+ argTypes: {
39
+ size: {
40
+ control: { type: "select" },
41
+ options: Object.keys(dropdownMenuSize),
42
+ description: "Dropdown menu size",
43
+ table: {
44
+ type: { summary: "string" },
45
+ defaultValue: { summary: "md" },
46
+ },
47
+ },
48
+ disabled: {
49
+ control: { type: "boolean" },
50
+ description: "Disable the dropdown menu item",
51
+ table: {
52
+ type: { summary: "boolean" },
53
+ defaultValue: { summary: false },
54
+ },
55
+ },
56
+ align: {
57
+ control: { type: "select" },
58
+ options: Object.keys(dropdownContentPosition),
59
+ description: "Alignment of the dropdown menu",
60
+ table: {
61
+ type: { summary: "string" },
62
+ defaultValue: { summary: "start" },
63
+ },
64
+ },
65
+ },
66
+ };
67
+ var Template = function (args) {
68
+ var menuItems = [
69
+ { label: "Option 1" },
70
+ { label: "Option 2" },
71
+ { label: "Option 3" },
72
+ ];
73
+ var size = args.size, align = args.align, rest = __rest(args, ["size", "align"]);
74
+ return (<DropdownMenu {...rest}>
75
+ <DropdownMenuTrigger>
76
+ <Button>Open Menu</Button>
77
+ </DropdownMenuTrigger>
78
+ <DropdownMenuContent size={size} align={align}>
79
+ {menuItems.map(function (item, index) { return (<DropdownMenuItem key={index} onSelect={function () { return alert("".concat(item.label, " selected")); }}>
80
+ {item.label}
81
+ </DropdownMenuItem>); })}
82
+ </DropdownMenuContent>
83
+ </DropdownMenu>);
84
+ };
85
+ export var Default = Template.bind({});
86
+ export var Sizes = function () {
87
+ var menuItems = [
88
+ {
89
+ label: "Home",
90
+ icon: "chart-simple",
91
+ },
92
+ {
93
+ label: "Profile",
94
+ icon: "chart-pie",
95
+ },
96
+ {
97
+ label: "Settings",
98
+ icon: "square-poll-horizontal",
99
+ },
100
+ {
101
+ label: "Logout",
102
+ icon: "square-poll-vertical",
103
+ },
104
+ ];
105
+ return (<div className="flex flex-row space-x-2">
106
+ <DropdownMenu>
107
+ <DropdownMenuTrigger>
108
+ <Button>Small Menu</Button>
109
+ </DropdownMenuTrigger>
110
+ <DropdownMenuContent size="sm">
111
+ {menuItems.map(function (item, index) { return (<DropdownMenuItem key={index} onSelect={function () { return alert("".concat(item.label, " selected")); }}>
112
+ <LUIcon icon={item.icon} size="sm"/> {item.label}
113
+ </DropdownMenuItem>); })}
114
+ </DropdownMenuContent>
115
+ </DropdownMenu>
116
+
117
+ <DropdownMenu>
118
+ <DropdownMenuTrigger>
119
+ <Button>Medium Menu</Button>
120
+ </DropdownMenuTrigger>
121
+ <DropdownMenuContent size="md">
122
+ {menuItems.map(function (item, index) { return (<DropdownMenuItem key={index} onSelect={function () { return alert("".concat(item.label, " selected")); }}>
123
+ <LUIcon icon={item.icon} size="md"/> {item.label}
124
+ </DropdownMenuItem>); })}
125
+ </DropdownMenuContent>
126
+ </DropdownMenu>
127
+
128
+ <DropdownMenu>
129
+ <DropdownMenuTrigger>
130
+ <Button>Large Menu</Button>
131
+ </DropdownMenuTrigger>
132
+ <DropdownMenuContent size="lg">
133
+ {menuItems.map(function (item, index) { return (<DropdownMenuItem key={index} onSelect={function () { return alert("".concat(item.label, " selected")); }}>
134
+ <LUIcon icon={item.icon} size="lg"/> {item.label}
135
+ </DropdownMenuItem>); })}
136
+ </DropdownMenuContent>
137
+ </DropdownMenu>
138
+ </div>);
139
+ };
140
+ export var WithIcons = function () {
141
+ var menuItems = [
142
+ {
143
+ label: "Home",
144
+ icon: "chart-simple",
145
+ },
146
+ {
147
+ label: "Profile",
148
+ icon: "chart-pie",
149
+ },
150
+ {
151
+ label: "Settings",
152
+ icon: "square-poll-horizontal",
153
+ },
154
+ {
155
+ label: "Logout",
156
+ icon: "square-poll-vertical",
157
+ },
158
+ ];
159
+ return (<DropdownMenu>
160
+ <DropdownMenuTrigger>
161
+ <Button>Menu with Icons</Button>
162
+ </DropdownMenuTrigger>
163
+ <DropdownMenuContent>
164
+ {menuItems.map(function (item, index) { return (<DropdownMenuItem key={index} onSelect={function () { return alert("".concat(item.label, " selected")); }}>
165
+ <LUIcon icon={item.icon} size="sm"/> {item.label}
166
+ </DropdownMenuItem>); })}
167
+ </DropdownMenuContent>
168
+ </DropdownMenu>);
169
+ };
170
+ export var DisabledItems = function () { return (<DropdownMenu>
171
+ <DropdownMenuTrigger>
172
+ <Button>Menu with Disabled Items</Button>
173
+ </DropdownMenuTrigger>
174
+ <DropdownMenuContent>
175
+ <DropdownMenuItem onSelect={function () { return alert("Enabled selected"); }}>
176
+ Enabled
177
+ </DropdownMenuItem>
178
+ <DropdownMenuItem disabled>Disabled</DropdownMenuItem>
179
+ <DropdownMenuSeparator />
180
+ <DropdownMenuItem onSelect={function () { return alert("Another enabled selected"); }}>
181
+ Another Enabled
182
+ </DropdownMenuItem>
183
+ </DropdownMenuContent>
184
+ </DropdownMenu>); };
185
+ export var NestedMenu = function () {
186
+ var menuItems = [
187
+ { label: "Open conversation details", icon: "eye", items: [] },
188
+ { label: "View full profile", icon: "user", items: [] },
189
+ { label: "Start conversation", icon: "address-book", items: [] },
190
+ {
191
+ label: "Copy",
192
+ icon: "copy",
193
+ items: [
194
+ { label: "Copy name", icon: "copy" },
195
+ { label: "Copy email", icon: "copy" },
196
+ { label: "Copy link", icon: "copy" },
197
+ ],
198
+ },
199
+ { label: "Search in conversation", icon: "magnifying-glass" },
200
+ { label: "Open in new window", icon: "arrow-right-to-bracket" },
201
+ ];
202
+ return (<DropdownMenu>
203
+ <DropdownMenuTrigger asChild>
204
+ <IconButton variant="outline" icon="plus"/>
205
+ </DropdownMenuTrigger>
206
+ <DropdownMenuContent className="mt-2">
207
+ {menuItems.map(function (item, index) {
208
+ if (item.items && item.items.length > 0) {
209
+ return (<DropdownMenuSub key={index}>
210
+ <DropdownMenuSubTrigger>
211
+ <LUIcon icon={item.icon}/> {item.label}
212
+ </DropdownMenuSubTrigger>
213
+ <DropdownMenuSubContent>
214
+ {item.items.map(function (subItem, subIndex) { return (<DropdownMenuItem key={subIndex}>
215
+ <LUIcon icon={subItem.icon}/> {subItem.label}
216
+ </DropdownMenuItem>); })}
217
+ </DropdownMenuSubContent>
218
+ </DropdownMenuSub>);
219
+ }
220
+ return (<DropdownMenuItem key={index}>
221
+ <LUIcon icon={item.icon}/> {item.label}
222
+ </DropdownMenuItem>);
223
+ })}
224
+ </DropdownMenuContent>
225
+ </DropdownMenu>);
226
+ };
227
+ export var DropdownMenuWithSelectAll = function () {
228
+ var tags = ["Sport", "Music", "Food", "Travel", "Tech", "Science", "Art"];
229
+ var _a = useState([]), selectedTags = _a[0], setSelectedTags = _a[1];
230
+ var handleTagChange = function (tag, checked) {
231
+ if (checked) {
232
+ setSelectedTags(__spreadArray(__spreadArray([], selectedTags, true), [tag], false));
233
+ }
234
+ else {
235
+ setSelectedTags(selectedTags.filter(function (t) { return t !== tag; }));
236
+ }
237
+ };
238
+ var handleSelectAll = function () {
239
+ var allSelected = selectedTags.length === tags.length;
240
+ var next = allSelected ? [] : __spreadArray([], tags, true);
241
+ setSelectedTags(next);
242
+ };
243
+ return (<DropdownMenu>
244
+ <DropdownMenuTrigger asChild>
245
+ <Button variant="outline">Select Tags</Button>
246
+ </DropdownMenuTrigger>
247
+ <DropdownMenuContent className="w-50" size="lg">
248
+ <DropdownMenuLabel>Select Tags</DropdownMenuLabel>
249
+ <div className="flex flex-col gap-1 rounded-sm bg-gray-50 text-gray-800 py-3 px-4">
250
+ <div className="flex items-center gap-2">
251
+ <Checkbox id="dm-select-all" checked={selectedTags.length === tags.length} onCheckedChange={function () { return handleSelectAll(); }} onClick={function (e) { return e.stopPropagation(); }} size="md"/>
252
+ <Label htmlFor="dm-select-all">Select All</Label>
253
+ </div>
254
+ <Caption className="text-gray-500">
255
+ Selected ({selectedTags.length})
256
+ </Caption>
257
+ </div>
258
+ <DropdownMenuSeparator />
259
+ {tags.map(function (tag) { return (<DropdownMenuCheckboxItem checked={selectedTags.includes(tag)} key={tag} onCheckedChange={function (checked) { return handleTagChange(tag, checked); }}
260
+ // Prevent the dropdown menu from closing when the checkbox is clicked
261
+ onSelect={function (e) { return e.preventDefault(); }}>
262
+ {tag}
263
+ </DropdownMenuCheckboxItem>); })}
264
+ </DropdownMenuContent>
265
+ </DropdownMenu>);
266
+ };
267
+ export var MultipleSelections = function () {
268
+ var tags = ["Sport", "Music", "Food", "Travel", "Tech", "Science", "Art"];
269
+ var _a = useState([
270
+ tags[0],
271
+ tags[4],
272
+ ]), selectedTags = _a[0], setSelectedTags = _a[1];
273
+ var handleTagChange = function (tag, checked) {
274
+ if (checked) {
275
+ setSelectedTags(__spreadArray(__spreadArray([], selectedTags, true), [tag], false));
276
+ }
277
+ else {
278
+ setSelectedTags(selectedTags.filter(function (t) { return t !== tag; }));
279
+ }
280
+ };
281
+ return (<DropdownMenu>
282
+ <DropdownMenuTrigger asChild>
283
+ <Button variant="outline">Select Tags</Button>
284
+ </DropdownMenuTrigger>
285
+ <DropdownMenuContent className="w-44" size="lg">
286
+ <DropdownMenuLabel>Select Tags</DropdownMenuLabel>
287
+ <DropdownMenuSeparator />
288
+ {tags.map(function (tag) { return (<DropdownMenuCheckboxItem checked={selectedTags.includes(tag)} key={tag} onCheckedChange={function (checked) { return handleTagChange(tag, checked); }}
289
+ // Prevent the dropdown menu from closing when the checkbox is clicked
290
+ onSelect={function (e) { return e.preventDefault(); }}>
291
+ {tag}
292
+ </DropdownMenuCheckboxItem>); })}
293
+ </DropdownMenuContent>
294
+ </DropdownMenu>);
295
+ };
296
+ export var DropdownMenuWithSearch = function () {
297
+ var menuItems = [
298
+ { label: "Open conversation details", icon: "eye" },
299
+ { label: "View full profile", icon: "user" },
300
+ { label: "Start conversation", icon: "address-book" },
301
+ ];
302
+ var _a = useState(false), open = _a[0], setOpen = _a[1];
303
+ var _b = useState(""), query = _b[0], setQuery = _b[1];
304
+ var filteredItems = menuItems.filter(function (item) {
305
+ return item.label.toLowerCase().includes(query.toLowerCase());
306
+ });
307
+ return (<DropdownMenu open={open} onOpenChange={setOpen}>
308
+ <DropdownMenuTrigger asChild>
309
+ <Button variant="outline">Select an Option</Button>
310
+ </DropdownMenuTrigger>
311
+ <DropdownMenuContent className="p-0" size="lg">
312
+ <div className="p-2">
313
+ <Input placeholder="Search..." value={query} onChange={function (e) { return setQuery(e.target.value); }} onKeyDownCapture={function (e) { return e.stopPropagation(); }} startIcon="magnifying-glass"/>
314
+ </div>
315
+ {filteredItems.length === 0 ? (<div className="py-6 text-center text-sm text-muted-foreground">
316
+ No results found.
317
+ </div>) : (filteredItems.map(function (option) { return (<DropdownMenuItem key={option.label} onSelect={function () { return setOpen(false); }}>
318
+ <LUIcon icon={option.icon}/> {option.label}
319
+ </DropdownMenuItem>); }))}
320
+ </DropdownMenuContent>
321
+ </DropdownMenu>);
322
+ };
323
+ DropdownMenuWithSearch.parameters = {
324
+ docs: {
325
+ description: {
326
+ story: "DropdownMenuWithSearch provides a dropdown menu that includes a search box. Users can type into the box to filter the menu items. For larger dropdowns, a large search input should be used; for medium dropdowns, a medium input; and for small dropdowns, a small input.",
327
+ },
328
+ },
329
+ };
330
+ export var DropdownMenuWithSelectAllAndSearch = function () {
331
+ var tags = ["Sport", "Music", "Food", "Travel", "Tech", "Science", "Art"];
332
+ var _a = useState([]), selectedTags = _a[0], setSelectedTags = _a[1];
333
+ var _b = useState(""), query = _b[0], setQuery = _b[1];
334
+ var toggleTag = function (tag) {
335
+ setSelectedTags(function (prev) {
336
+ return prev.includes(tag) ? prev.filter(function (t) { return t !== tag; }) : __spreadArray(__spreadArray([], prev, true), [tag], false);
337
+ });
338
+ };
339
+ var handleSelectAll = function () {
340
+ var allSelected = selectedTags.length === tags.length;
341
+ setSelectedTags(allSelected ? [] : __spreadArray([], tags, true));
342
+ };
343
+ var filtered = tags.filter(function (t) {
344
+ return t.toLowerCase().includes(query.toLowerCase());
345
+ });
346
+ return (<DropdownMenu>
347
+ <DropdownMenuTrigger asChild>
348
+ <Button variant="outline">Select Tags</Button>
349
+ </DropdownMenuTrigger>
350
+ <DropdownMenuContent size="lg">
351
+ <div className="mb-2">
352
+ <Input placeholder="Search..." value={query} onChange={function (e) { return setQuery(e.target.value); }} onKeyDownCapture={function (e) { return e.stopPropagation(); }} size="lg" startIcon="magnifying-glass"/>
353
+ </div>
354
+
355
+ <SelectAllSection checked={selectedTags.length === tags.length && tags.length > 0} onToggleAll={handleSelectAll} selectedCount={selectedTags.length} size="lg"/>
356
+ <DropdownMenuSeparator />
357
+ {filtered.length === 0 ? (<div className="py-6 text-center text-sm text-muted-foreground">
358
+ No results found.
359
+ </div>) : (filtered.map(function (tag) {
360
+ var isSelected = selectedTags.includes(tag);
361
+ return (<DropdownMenuCheckboxItem key={tag} checked={isSelected}
362
+ // Prevent DropdownMenu from closing in multi-select scenario
363
+ onSelect={function (e) { return e.preventDefault(); }} onCheckedChange={function () { return toggleTag(tag); }} className={isSelected ? "bg-blue-50 text-blue-600" : ""}>
364
+ {tag}
365
+ </DropdownMenuCheckboxItem>);
366
+ }))}
367
+ </DropdownMenuContent>
368
+ </DropdownMenu>);
369
+ };
370
+ export var WorkSpaceSwitcher = function () {
371
+ var workspaces = [
372
+ {
373
+ id: 1,
374
+ name: "Workspace 1",
375
+ createdBy: "abc@example.com",
376
+ },
377
+ {
378
+ id: 2,
379
+ name: "Workspace 2",
380
+ createdBy: "def@example.com",
381
+ },
382
+ {
383
+ id: 3,
384
+ name: "Workspace 3",
385
+ createdBy: "ghi@example.com",
386
+ },
387
+ ];
388
+ var _a = useState(workspaces[0]), selectedWorkspace = _a[0], setSelectedWorkspace = _a[1];
389
+ return (<DropdownMenu>
390
+ <DropdownMenuTrigger className="flex items-center gap-2 bg-accent py-2.5 px-3 rounded-lg">
391
+ <Avatar>
392
+ <AvatarImage alt="Avatar" src="/images/avatar.png"/>
393
+ <AvatarFallback>AB</AvatarFallback>
394
+ </Avatar>
395
+ <div className="text-start flex flex-col gap-1 leading-none">
396
+ <span className="text-sm leading-none font-semibold truncate max-w-[17ch]">
397
+ {selectedWorkspace.name}
398
+ </span>
399
+ <span className="text-xs text-muted-foreground truncate max-w-[20ch]">
400
+ {selectedWorkspace.createdBy}
401
+ </span>
402
+ </div>
403
+ <LUIcon icon="angle-down"/>
404
+ </DropdownMenuTrigger>
405
+ <DropdownMenuContent>
406
+ <DropdownMenuLabel>Workspaces</DropdownMenuLabel>
407
+ {workspaces.map(function (workspace) { return (<DropdownMenuItem key={workspace.id} onClick={function () { return setSelectedWorkspace(workspace); }}>
408
+ <div className="flex items-center gap-2">
409
+ <Avatar>
410
+ <AvatarImage alt="Avatar" src="/images/avatar.png"/>
411
+ <AvatarFallback>AB</AvatarFallback>
412
+ </Avatar>
413
+ <div className="flex flex-col">
414
+ <span>{workspace.name}</span>
415
+ <span className="text-xs text-muted-foreground">
416
+ {workspace.createdBy}
417
+ </span>
418
+ </div>
419
+ </div>
420
+ {selectedWorkspace.id === workspace.id && (<LUIcon icon="check" className="ml-auto"/>)}
421
+ </DropdownMenuItem>); })}
422
+ </DropdownMenuContent>
423
+ </DropdownMenu>);
424
+ };
425
+ export var LanguageDropdownMenu = function () {
426
+ var languages = ["English", "Spanish", "French", "German", "Chinese"];
427
+ var _a = useState(languages[0]), selectedLanguage = _a[0], setSelectedLanguage = _a[1];
428
+ var _b = useState(false), isOpen = _b[0], setIsOpen = _b[1];
429
+ return (<DropdownMenu open={isOpen} onOpenChange={setIsOpen}>
430
+ <DropdownMenuTrigger asChild>
431
+ <Button shape="rounded-full" startIcon="language" endIcon={isOpen ? "angle-up" : "angle-down"}>
432
+ {selectedLanguage}
433
+ </Button>
434
+ </DropdownMenuTrigger>
435
+ <DropdownMenuContent className="w-50">
436
+ {languages.map(function (language) { return (<DropdownMenuItem key={language} onSelect={function () { return setSelectedLanguage(language); }}>
437
+ {language}
438
+ </DropdownMenuItem>); })}
439
+ </DropdownMenuContent>
440
+ </DropdownMenu>);
441
+ };
442
+ export var Alignments = function () {
443
+ return (<div className="flex flex-row space-x-4">
444
+ <DropdownMenu>
445
+ <DropdownMenuTrigger>
446
+ <Button>Align Start</Button>
447
+ </DropdownMenuTrigger>
448
+ <DropdownMenuContent align="start">
449
+ <DropdownMenuItem>Option 1</DropdownMenuItem>
450
+ <DropdownMenuItem>Option 2</DropdownMenuItem>
451
+ <DropdownMenuItem>Option 3</DropdownMenuItem>
452
+ </DropdownMenuContent>
453
+ </DropdownMenu>
454
+
455
+ <DropdownMenu>
456
+ <DropdownMenuTrigger>
457
+ <Button>Align Center</Button>
458
+ </DropdownMenuTrigger>
459
+ <DropdownMenuContent align="center">
460
+ <DropdownMenuItem>Option 1</DropdownMenuItem>
461
+ <DropdownMenuItem>Option 2</DropdownMenuItem>
462
+ <DropdownMenuItem>Option 3</DropdownMenuItem>
463
+ </DropdownMenuContent>
464
+ </DropdownMenu>
465
+
466
+ <DropdownMenu>
467
+ <DropdownMenuTrigger>
468
+ <Button>Align End</Button>
469
+ </DropdownMenuTrigger>
470
+ <DropdownMenuContent align="end">
471
+ <DropdownMenuItem>Option 1</DropdownMenuItem>
472
+ <DropdownMenuItem>Option 2</DropdownMenuItem>
473
+ <DropdownMenuItem>Option 3</DropdownMenuItem>
474
+ </DropdownMenuContent>
475
+ </DropdownMenu>
476
+ </div>);
477
+ };
478
+ export var MasterDropdownMenu = function () {
479
+ var menuItems = [
480
+ { type: "item", label: "Text Label 1" },
481
+ { type: "item", label: "Text Label 2" },
482
+ { type: "submenu", label: "Text Label 3", subItems: ["Submenu Item 1", "Submenu Item 2", "Submenu Item 3"] },
483
+ { type: "submenu", label: "Text Label 4", subItems: ["Submenu Item 1", "Submenu Item 2", "Submenu Item 3"] },
484
+ { type: "item", label: "Text Label 5" },
485
+ { type: "badge", label: "Text Label 6", badge: "09" },
486
+ { type: "avatar", label: "Text Label 7" },
487
+ { type: "item", label: "Text Label 8" },
488
+ // Second column starts after 8 items
489
+ { type: "item", label: "Text Label 9" },
490
+ { type: "submenu", label: "Text Label 10", subItems: ["Submenu Item 1", "Submenu Item 2", "Submenu Item 3"] },
491
+ { type: "item", label: "Text Label 11" },
492
+ { type: "badge", label: "Text Label 12", badge: "09" },
493
+ { type: "avatar", label: "Text Label 13" },
494
+ ];
495
+ var renderMenuItem = function (item, index) {
496
+ var _a;
497
+ switch (item.type) {
498
+ case "submenu":
499
+ return (<DropdownMenuSub key={index}>
500
+ <DropdownMenuSubTrigger>{item.label}</DropdownMenuSubTrigger>
501
+ <DropdownMenuSubContent>
502
+ {(_a = item.subItems) === null || _a === void 0 ? void 0 : _a.map(function (subItem, subIndex) { return (<DropdownMenuItem key={subIndex}>{subItem}</DropdownMenuItem>); })}
503
+ </DropdownMenuSubContent>
504
+ </DropdownMenuSub>);
505
+ case "badge":
506
+ return (<DropdownMenuItem key={index} onSelect={function () { return alert("".concat(item.label, " selected")); }}>
507
+ <div className="flex items-center justify-between w-full">
508
+ {item.label}
509
+ <Badge color="light-blue">{item.badge}</Badge>
510
+ </div>
511
+ </DropdownMenuItem>);
512
+ case "avatar":
513
+ return (<DropdownMenuItem key={index} onSelect={function () { return alert("".concat(item.label, " selected")); }}>
514
+ <div className="flex items-center gap-2">
515
+ <Avatar>
516
+ <AvatarImage alt="Avatar" src="/images/avatar.png"/>
517
+ <AvatarFallback>AB</AvatarFallback>
518
+ </Avatar>
519
+ {item.label}
520
+ </div>
521
+ </DropdownMenuItem>);
522
+ default:
523
+ return (<DropdownMenuItem key={index} onSelect={function () { return alert("".concat(item.label, " selected")); }}>
524
+ {item.label}
525
+ </DropdownMenuItem>);
526
+ }
527
+ };
528
+ return (<DropdownMenu>
529
+ <DropdownMenuTrigger asChild>
530
+ <Button shape="rounded-full">Text Label</Button>
531
+ </DropdownMenuTrigger>
532
+ <DropdownMenuContent className="w-auto" size="lg">
533
+ <div className={"grid gap-0 ".concat(menuItems.length > 8 ? 'grid-cols-1 md:grid-cols-2' : 'grid-cols-1')}>
534
+ {/* First Column */}
535
+ <div className="flex flex-col">
536
+ <DropdownMenuLabel className="mb-1">
537
+ Group Heading
538
+ </DropdownMenuLabel>
539
+ {menuItems.slice(0, 8).map(function (item, index) { return renderMenuItem(item, index); })}
540
+ </div>
541
+
542
+ {/* Second Column - Automatically renders if there are more than 8 items */}
543
+ {menuItems.length > 8 && (<div className="flex flex-col md:pl-2">
544
+ <DropdownMenuLabel className="mb-1">
545
+ Group Heading
546
+ </DropdownMenuLabel>
547
+ {menuItems.slice(8).map(function (item, index) { return renderMenuItem(item, index + 8); })}
548
+ </div>)}
549
+ </div>
550
+ </DropdownMenuContent>
551
+ </DropdownMenu>);
552
+ };
@@ -0,0 +1,19 @@
1
+ import * as React from "react";
2
+ import { Checkbox } from "../../../components/Checkbox/checkbox";
3
+ import { Label } from "../../../components/Label/Label";
4
+ import { Caption } from "../../../components/Typography/Caption/caption";
5
+ export var SelectAllSection = function (_a) {
6
+ var _b = _a.id, id = _b === void 0 ? "dm-select-all" : _b, checked = _a.checked, onToggleAll = _a.onToggleAll, selectedCount = _a.selectedCount, _c = _a.size, size = _c === void 0 ? "md" : _c;
7
+ var labelVariant = size === "lg" ? "label-lg" : size === "md" ? "label-md" : "label-sm";
8
+ return (<div className="flex flex-col gap-1 rounded-sm bg-gray-50 text-gray-800 py-3 px-4">
9
+ <div className="flex items-center gap-2">
10
+ <Checkbox id={id} checked={checked} onCheckedChange={onToggleAll} onClick={function (e) { return e.stopPropagation(); }} size={size}/>
11
+ <Label htmlFor={id} variant={labelVariant}>
12
+ Select All
13
+ </Label>
14
+ </div>
15
+ <Caption className="text-gray-500" variant="sm">
16
+ Selected ({selectedCount})
17
+ </Caption>
18
+ </div>);
19
+ };
@@ -18,3 +18,8 @@ export declare const checkBoxSize: {
18
18
  readonly md: "md";
19
19
  readonly lg: "lg";
20
20
  };
21
+ export declare const dropdownContentPosition: {
22
+ readonly start: "start";
23
+ readonly center: "center";
24
+ readonly end: "end";
25
+ };
@@ -19,3 +19,8 @@ export var checkBoxSize = {
19
19
  md: "md",
20
20
  lg: "lg",
21
21
  };
22
+ export var dropdownContentPosition = {
23
+ start: "start",
24
+ center: "center",
25
+ end: "end",
26
+ };
@@ -1,5 +1,6 @@
1
1
  import { Select } from "./select";
2
2
  import { SelectColor, SelectShape, SelectSize, SelectType } from ".";
3
+ import React from "react";
3
4
  declare const meta: {
4
5
  title: string;
5
6
  component: typeof Select;
@@ -136,10 +137,10 @@ export declare const Default: (args: {
136
137
  color?: SelectColor;
137
138
  disabled?: boolean;
138
139
  onValueChange?: (value: string) => void;
139
- }) => import("react/jsx-runtime").JSX.Element;
140
- export declare const Group: () => import("react/jsx-runtime").JSX.Element;
140
+ }) => React.JSX.Element;
141
+ export declare const Group: () => React.JSX.Element;
141
142
  export declare const KeyValue: {
142
- (): import("react/jsx-runtime").JSX.Element;
143
+ (): React.JSX.Element;
143
144
  story: {
144
145
  parameters: {
145
146
  docs: {
@@ -157,6 +158,6 @@ export declare const Disabled: (args: {
157
158
  placeholder?: string;
158
159
  disabled?: boolean;
159
160
  onValueChange?: (value: string) => void;
160
- }) => import("react/jsx-runtime").JSX.Element;
161
- export declare const LargeDropdown: () => import("react/jsx-runtime").JSX.Element;
162
- export declare const WithDisabledItem: () => import("react/jsx-runtime").JSX.Element;
161
+ }) => React.JSX.Element;
162
+ export declare const LargeDropdown: () => React.JSX.Element;
163
+ export declare const WithDisabledItem: () => React.JSX.Element;