linkedunion-design-kit 1.9.6-beta.0 → 1.9.6-beta.2

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 (133) hide show
  1. package/dist/build/types/validator.js +12 -0
  2. package/dist/index.d.ts +2 -0
  3. package/dist/index.js +2 -0
  4. package/dist/src/components/Badge/Badge.stories.d.ts +1 -1
  5. package/dist/src/components/Badge/Badge.stories.js +1 -1
  6. package/dist/src/components/Button/Button/Button.js +3 -3
  7. package/dist/src/components/Button/Button/Button.module.css +1 -1
  8. package/dist/src/components/Card/MultipleNews/MultiNews.js +2 -2
  9. package/dist/src/components/Pagination/pagination.js +3 -3
  10. package/dist/src/components/Skeleton/skeleton.stories.d.ts +3 -1
  11. package/dist/src/components/Skeleton/skeleton.stories.js +48 -38
  12. package/dist/src/components/Title/Title.module.css +1 -1
  13. package/dist/src/components/Typography/Heading/heading.module.css +1 -1
  14. package/dist/src/components/VerticalTabs/VerticalTabs.d.ts +18 -0
  15. package/dist/src/components/VerticalTabs/VerticalTabs.js +60 -0
  16. package/dist/src/components/VerticalTabs/VerticalTabs.stories.d.ts +11 -0
  17. package/dist/src/components/VerticalTabs/VerticalTabs.stories.js +100 -0
  18. package/dist/src/components/VerticalTabs/VerticalTabs.test.d.ts +1 -0
  19. package/dist/src/components/VerticalTabs/VerticalTabs.test.js +48 -0
  20. package/dist/styles/global.css +123 -23
  21. package/package.json +2 -2
  22. package/dist/app/layout.jsx +0 -13
  23. package/dist/app/page.jsx +0 -5
  24. package/dist/src/components/Accordion/Accordion.stories.jsx +0 -33
  25. package/dist/src/components/Accordion/accordion.jsx +0 -59
  26. package/dist/src/components/Alerts/Alert/alert.jsx +0 -152
  27. package/dist/src/components/Alerts/Alert/alert.stories.jsx +0 -344
  28. package/dist/src/components/Alerts/AlertDialog/alert-dialog.jsx +0 -170
  29. package/dist/src/components/Alerts/AlertDialog/alert-dialog.stories.jsx +0 -552
  30. package/dist/src/components/AppIcons/AndroidIcon.jsx +0 -24
  31. package/dist/src/components/AppIcons/AppIcon.jsx +0 -29
  32. package/dist/src/components/AppIcons/AppIcon.stories.jsx +0 -223
  33. package/dist/src/components/AppIcons/AppleIcon.jsx +0 -31
  34. package/dist/src/components/AppIcons/PlayStoreIcon.jsx +0 -29
  35. package/dist/src/components/Avatar/Avatar/Avatar.jsx +0 -45
  36. package/dist/src/components/Avatar/Avatar/Avatar.stories.jsx +0 -95
  37. package/dist/src/components/Avatar/Avatar/Avatar.test.jsx +0 -9
  38. package/dist/src/components/Avatar/Avatar/type.d.ts +0 -12
  39. package/dist/src/components/Avatar/AvatarGroup/AvatarGroup.jsx +0 -17
  40. package/dist/src/components/Avatar/AvatarGroup/AvatarGroup.stories.jsx +0 -32
  41. package/dist/src/components/Avatar/StatusIndicator/StatusIndicator.jsx +0 -20
  42. package/dist/src/components/Avatar/StatusIndicator/StatusIndicator.stories.jsx +0 -50
  43. package/dist/src/components/Badge/Badge.jsx +0 -54
  44. package/dist/src/components/Badge/Badge.stories.jsx +0 -201
  45. package/dist/src/components/Button/Button/Button.jsx +0 -96
  46. package/dist/src/components/Button/Button/Button.stories.jsx +0 -283
  47. package/dist/src/components/Button/Button/Button.test.jsx +0 -73
  48. package/dist/src/components/Button/IconButton/IconButton.jsx +0 -63
  49. package/dist/src/components/Button/IconButton/IconButton.stories.jsx +0 -128
  50. package/dist/src/components/Button/IconButton/IconButton.test.jsx +0 -28
  51. package/dist/src/components/Card/MultipleNews/MultiNews.jsx +0 -70
  52. package/dist/src/components/Card/MultipleNews/MultiNews.stories.jsx +0 -101
  53. package/dist/src/components/Card/PostByCategory/PostByCategory.jsx +0 -60
  54. package/dist/src/components/Card/PostByCategory/PostByCategory.stories.jsx +0 -102
  55. package/dist/src/components/Card/SinglePost/SinglePost.jsx +0 -26
  56. package/dist/src/components/Card/SinglePost/SinglePost.stories.jsx +0 -63
  57. package/dist/src/components/Card/card.jsx +0 -20
  58. package/dist/src/components/Card/contactProfile/ContactProfile.jsx +0 -60
  59. package/dist/src/components/Card/contactProfile/ContactProfile.stories.jsx +0 -99
  60. package/dist/src/components/Card/photoAlbum/PhotoAlbum.jsx +0 -41
  61. package/dist/src/components/Card/photoAlbum/PhotoAlbum.stories.jsx +0 -51
  62. package/dist/src/components/Card/photoGallery/PhotoGallery.jsx +0 -17
  63. package/dist/src/components/Card/photoGallery/PhotoGallery.stories.jsx +0 -34
  64. package/dist/src/components/Checkbox/checkbox.jsx +0 -47
  65. package/dist/src/components/Checkbox/checkbox.stories.jsx +0 -113
  66. package/dist/src/components/ColorPicker/ColorPicker.jsx +0 -67
  67. package/dist/src/components/ColorPicker/ColorPicker.stories.jsx +0 -138
  68. package/dist/src/components/Colors/color.jsx +0 -5
  69. package/dist/src/components/Colors/color.stories.jsx +0 -20
  70. package/dist/src/components/Colors/color.test.jsx +0 -23
  71. package/dist/src/components/Dropdown/Combobox/Combobox.jsx +0 -198
  72. package/dist/src/components/Dropdown/Combobox/Combobox.stories.jsx +0 -289
  73. package/dist/src/components/Dropdown/Combobox/utils/renderBadge.jsx +0 -7
  74. package/dist/src/components/Dropdown/DropdownMenu/DropdownMenu.jsx +0 -102
  75. package/dist/src/components/Dropdown/DropdownMenu/DropdownMenu.stories.jsx +0 -464
  76. package/dist/src/components/Dropdown/DropdownMenu/SelectAllSection.jsx +0 -19
  77. package/dist/src/components/Dropdown/Select.stories.jsx +0 -201
  78. package/dist/src/components/Dropdown/select.jsx +0 -93
  79. package/dist/src/components/Icons/LUIcon.jsx +0 -41
  80. package/dist/src/components/Icons/LUIcon.test.jsx +0 -308
  81. package/dist/src/components/Icons/stories/IconDropdown.jsx +0 -67
  82. package/dist/src/components/Icons/stories/IconGallery.jsx +0 -77
  83. package/dist/src/components/Icons/stories/InteractiveIconSelector.jsx +0 -86
  84. package/dist/src/components/Icons/stories/LUIcon.stories.jsx +0 -108
  85. package/dist/src/components/ImageUploader/ImageUploader.stories.jsx +0 -50
  86. package/dist/src/components/ImageUploader/imageUploader.jsx +0 -94
  87. package/dist/src/components/Images/LuImage.jsx +0 -19
  88. package/dist/src/components/Images/LuImage.stories.jsx +0 -154
  89. package/dist/src/components/Images/LuImage.test.jsx +0 -44
  90. package/dist/src/components/Input/Input.stories.jsx +0 -250
  91. package/dist/src/components/Input/input.jsx +0 -110
  92. package/dist/src/components/Label/Label.jsx +0 -32
  93. package/dist/src/components/Label/Label.stories.jsx +0 -30
  94. package/dist/src/components/Pagination/pagination.jsx +0 -65
  95. package/dist/src/components/Pagination/pagination.stories.jsx +0 -301
  96. package/dist/src/components/RadioGroup/RadioGroup.stories.jsx +0 -146
  97. package/dist/src/components/RadioGroup/radio-group.jsx +0 -49
  98. package/dist/src/components/Slider/Slider.stories.jsx +0 -159
  99. package/dist/src/components/Slider/slider.jsx +0 -31
  100. package/dist/src/components/SweetAlert/SweetAlert.jsx +0 -147
  101. package/dist/src/components/SweetAlert/SweetAlert.stories.jsx +0 -505
  102. package/dist/src/components/Switch/Switch.stories.jsx +0 -66
  103. package/dist/src/components/Switch/switch.jsx +0 -61
  104. package/dist/src/components/Table/Table.jsx +0 -221
  105. package/dist/src/components/Table/Table.stories.jsx +0 -652
  106. package/dist/src/components/Tabs/Tabs.stories.jsx +0 -29
  107. package/dist/src/components/Tabs/tabs.jsx +0 -32
  108. package/dist/src/components/Title/Title.jsx +0 -8
  109. package/dist/src/components/Title/Title.stories.jsx +0 -37
  110. package/dist/src/components/Title/Title.test.jsx +0 -24
  111. package/dist/src/components/ToolTip/Tooltip.jsx +0 -18
  112. package/dist/src/components/ToolTip/Tooltip.stories.jsx +0 -25
  113. package/dist/src/components/Typography/Body/Body.stories.jsx +0 -34
  114. package/dist/src/components/Typography/Body/body.jsx +0 -52
  115. package/dist/src/components/Typography/Caption/Caption.stories.jsx +0 -24
  116. package/dist/src/components/Typography/Caption/caption.jsx +0 -25
  117. package/dist/src/components/Typography/Display/Display.stories.jsx +0 -24
  118. package/dist/src/components/Typography/Display/display.jsx +0 -39
  119. package/dist/src/components/Typography/Heading/Heading.stories.jsx +0 -37
  120. package/dist/src/components/Typography/Heading/heading.jsx +0 -53
  121. package/dist/src/components/ui/avatar.d.ts +0 -6
  122. package/dist/src/components/ui/avatar.js +0 -38
  123. package/dist/src/components/ui/avatar.jsx +0 -27
  124. package/dist/src/components/ui/button.d.ts +0 -10
  125. package/dist/src/components/ui/button.js +0 -56
  126. package/dist/src/components/ui/button.jsx +0 -45
  127. package/dist/src/components/ui/collapsible.jsx +0 -5
  128. package/dist/src/components/ui/command.jsx +0 -67
  129. package/dist/src/components/ui/dialog.jsx +0 -66
  130. package/dist/src/components/ui/popover.jsx +0 -33
  131. package/dist/src/components/ui/tooltip.jsx +0 -38
  132. package/dist/src/components/ui/typography.jsx +0 -56
  133. /package/dist/{src/components/Avatar/Avatar/type.js → build/types/validator.d.ts} +0 -0
@@ -0,0 +1,12 @@
1
+ // This file is generated automatically by Next.js
2
+ // Do not edit this file manually
3
+ // This file validates that all pages and layouts export the correct types
4
+ // Validate ../../app/page.tsx
5
+ {
6
+ var handler = {};
7
+ }
8
+ // Validate ../../app/layout.tsx
9
+ {
10
+ var handler = {};
11
+ }
12
+ export {};
package/dist/index.d.ts CHANGED
@@ -29,3 +29,5 @@ export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuIte
29
29
  export { Badge } from "./src/components/Badge/Badge";
30
30
  export { default as Combobox } from "./src/components/Dropdown/Combobox/Combobox";
31
31
  export { Pagination, PaginationContent, PaginationLink, PaginationItem, PaginationPrevious, PaginationNext, PaginationEllipsis, } from "./src/components/Pagination/pagination";
32
+ export { Skeleton } from "./src/components/Skeleton/skeleton";
33
+ export { Tabs as VerticalTabs, TabsContent as VerticalTabsContent, TabsList as VerticalTabsList, tabSizes as verticalTabsSize, TabsTrigger as VerticalTabsTrigger, TabsHeading as VerticalTabsHeading, } from "./src/components/VerticalTabs/VerticalTabs";
package/dist/index.js CHANGED
@@ -29,3 +29,5 @@ export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuIte
29
29
  export { Badge } from "./src/components/Badge/Badge";
30
30
  export { default as Combobox } from "./src/components/Dropdown/Combobox/Combobox";
31
31
  export { Pagination, PaginationContent, PaginationLink, PaginationItem, PaginationPrevious, PaginationNext, PaginationEllipsis, } from "./src/components/Pagination/pagination";
32
+ export { Skeleton } from "./src/components/Skeleton/skeleton";
33
+ export { Tabs as VerticalTabs, TabsContent as VerticalTabsContent, TabsList as VerticalTabsList, tabSizes as verticalTabsSize, TabsTrigger as VerticalTabsTrigger, TabsHeading as VerticalTabsHeading, } from "./src/components/VerticalTabs/VerticalTabs";
@@ -56,8 +56,8 @@ declare const meta: {
56
56
  shape: {
57
57
  control: {
58
58
  type: "select";
59
- options: string[];
60
59
  };
60
+ options: string[];
61
61
  description: string;
62
62
  table: {
63
63
  type: {
@@ -54,8 +54,8 @@ var meta = {
54
54
  shape: {
55
55
  control: {
56
56
  type: "select",
57
- options: Object.keys(badgeStyles.shape),
58
57
  },
58
+ options: Object.keys(badgeStyles.shape),
59
59
  description: "The shape of the badge.",
60
60
  table: {
61
61
  type: { summary: "string" },
@@ -37,9 +37,9 @@ import LUIcon from "../../Icons/LUIcon";
37
37
  import { buttonStyles } from "..";
38
38
  export var variant = {
39
39
  fill: "",
40
- link: "bg-transparent hover:bg-transparent focus:bg-transparent active:bg-transparent !p-0 underline-offset-4 hover:underline border-none",
41
- outline: "border bg-transparent",
42
- ghost: "bg-transparent border-none",
40
+ link: "lu-bg-transparent hover:lu-bg-transparent focus:lu-bg-transparent active:lu-bg-transparent !p-0 underline-offset-4 hover:underline border-none",
41
+ outline: "border lu-bg-transparent",
42
+ ghost: "lu-bg-transparent border-none",
43
43
  };
44
44
  var buttonVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-blue-200 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive cursor-pointer", {
45
45
  variants: {
@@ -1,4 +1,4 @@
1
- /*! tailwindcss v4.1.10 | MIT License | https://tailwindcss.com */
1
+ /*! tailwindcss v4.1.13 | MIT License | https://tailwindcss.com */
2
2
  .rounded-sm {
3
3
  border-radius: var(--radius-sm, 0.25rem);
4
4
  }
@@ -35,12 +35,12 @@ export var MultipleNewsCard = function (props) {
35
35
  };
36
36
  // Horizontal layout
37
37
  if (orientation === "horizontal") {
38
- return (_jsxs("div", { className: "!p-5 bg-white rounded-2xl flex ".concat(mediaPosition === "right" ? "flex-row-reverse" : "", " !gap-5 items-center shadow-lg ").concat(editor === null || editor === void 0 ? void 0 : editor.card), children: [_jsx(CardMedia, { className: "max-w-48 aspect-square rounded-lg" }), _jsxs("div", { className: "flex flex-col !gap-5 w-full", children: [_jsx(CardContent, {}), _jsx(ActionButton, {})] })] }));
38
+ return (_jsxs("div", { className: "!p-5 bg-white rounded-2xl flex max-sm:flex-col ".concat(mediaPosition === "right" ? "flex-row-reverse" : "", " !gap-5 items-center shadow-lg ").concat(editor === null || editor === void 0 ? void 0 : editor.card), children: [_jsx(CardMedia, { className: "w-full sm:max-w-48 aspect-square rounded-lg" }), _jsxs("div", { className: "flex flex-col !gap-5 w-full", children: [_jsx(CardContent, {}), _jsx(ActionButton, {})] })] }));
39
39
  }
40
40
  // Vertical layout
41
41
  return (_jsxs("div", { className: "!p-4 bg-white rounded-2xl flex flex-col !gap-5 max-w-md shadow-lg ".concat(editor === null || editor === void 0 ? void 0 : editor.card), children: [_jsxs("div", { className: "flex ".concat(mediaPosition === "top" ? "flex-col" : "flex-col-reverse", " !gap-4"), children: [mediaPosition === "middle" && (_jsx(Body, { variant: "body-lg", className: "text-gray-600 line-clamp-2 h-14 ".concat(editor === null || editor === void 0 ? void 0 : editor.cardText), dangerouslySetInnerHTML: {
42
42
  __html: item.description || "",
43
- } })), _jsx(CardMedia, { className: "aspect-16/10" }), _jsxs("div", { className: "flex flex-col !gap-1", children: [_jsx(Heading, { variant: "h4-700", className: "line-clamp-1 capitalize ".concat(editor === null || editor === void 0 ? void 0 : editor.cardTitle), children: item === null || item === void 0 ? void 0 : item.title }), (item === null || item === void 0 ? void 0 : item.short_description) && (_jsx(Body, { variant: mediaPosition === "middle" ? "body-lg-500" : "body-xl", className: "".concat(item.description ? "line-clamp-1 text-gray-600" : "line-clamp-2 h-14 text-gray-600", " ").concat(editor === null || editor === void 0 ? void 0 : editor.shortDescription), children: item === null || item === void 0 ? void 0 : item.short_description })), mediaPosition !== "middle" && (_jsx(Body, { variant: "body-lg", className: "text-gray-600 line-clamp-2 ".concat(editor === null || editor === void 0 ? void 0 : editor.cardText), dangerouslySetInnerHTML: {
43
+ } })), _jsx(CardMedia, { className: "aspect-16/10" }), _jsxs("div", { className: "flex flex-col !gap-1", children: [_jsx(Heading, { variant: "h4-700", className: "line-clamp-1 capitalize ".concat(editor === null || editor === void 0 ? void 0 : editor.cardTitle), children: item === null || item === void 0 ? void 0 : item.title }), _jsx(Body, { "aria-description": "short-Description", variant: mediaPosition === "middle" ? "body-lg-500" : "body-xl", className: "".concat(item.description || mediaPosition === "middle" ? "line-clamp-1 text-gray-600" : "line-clamp-2 h-14 text-gray-600", " ").concat(editor === null || editor === void 0 ? void 0 : editor.shortDescription), children: item === null || item === void 0 ? void 0 : item.short_description }), mediaPosition !== "middle" && (_jsx(Body, { variant: "body-lg", className: "text-gray-600 line-clamp-2 ".concat(editor === null || editor === void 0 ? void 0 : editor.cardText), dangerouslySetInnerHTML: {
44
44
  __html: item.description || "",
45
45
  } }))] })] }), _jsx(ActionButton, {})] }));
46
46
  };
@@ -32,7 +32,7 @@ var Pagination = function (_a) {
32
32
  Pagination.displayName = "Pagination";
33
33
  var PaginationContent = React.forwardRef(function (_a, ref) {
34
34
  var className = _a.className, props = __rest(_a, ["className"]);
35
- return (_jsx("ul", __assign({ ref: ref, className: cn("flex flex-row items-center gap-1", className) }, props)));
35
+ return (_jsx("ul", __assign({ "data-slot": "reset-bs-ul", ref: ref, className: cn("flex flex-row items-center gap-1", className) }, props)));
36
36
  });
37
37
  PaginationContent.displayName = "PaginationContent";
38
38
  var PaginationItem = React.forwardRef(function (_a, ref) {
@@ -42,7 +42,7 @@ var PaginationItem = React.forwardRef(function (_a, ref) {
42
42
  PaginationItem.displayName = "PaginationItem";
43
43
  var PaginationLink = function (_a) {
44
44
  var className = _a.className, isActive = _a.isActive, _b = _a.size, size = _b === void 0 ? "md" : _b, _c = _a.color, color = _c === void 0 ? "gray" : _c, _d = _a.variant, variant = _d === void 0 ? "ghost" : _d, props = __rest(_a, ["className", "isActive", "size", "color", "variant"]);
45
- return (_jsx("a", __assign({ "aria-current": isActive ? "page" : undefined, className: cn(buttonVariants({
45
+ return (_jsx("a", __assign({ "aria-current": isActive ? "page" : undefined, "data-slot": "reset-bs-link", className: cn(buttonVariants({
46
46
  variant: isActive ? (variant === "link" ? variant : "fill") : variant,
47
47
  size: size,
48
48
  color: color,
@@ -51,7 +51,7 @@ var PaginationLink = function (_a) {
51
51
  PaginationLink.displayName = "PaginationLink";
52
52
  var PaginationPrevious = function (_a) {
53
53
  var className = _a.className, props = __rest(_a, ["className"]);
54
- return (_jsxs(PaginationLink, __assign({ "aria-label": "Go to previous page", size: "md", className: cn("gap-1 pl-2.5", className) }, props, { children: [_jsx(LUIcon, { icon: "arrow-left" }), _jsx("span", { children: "Previous" })] })));
54
+ return (_jsxs(PaginationLink, __assign({ "aria-label": "Go to previous page", size: "md", className: cn("gap-1 pl-2.5", className) }, props, { children: [_jsx(LUIcon, { icon: "arrow-left" }), "Previous"] })));
55
55
  };
56
56
  PaginationPrevious.displayName = "PaginationPrevious";
57
57
  var PaginationNext = function (_a) {
@@ -1,7 +1,9 @@
1
1
  import { Meta } from "@storybook/react";
2
+ declare const SKELETON_VARIANTS: string[];
3
+ type SkeletonVariant = (typeof SKELETON_VARIANTS)[number];
2
4
  interface SkeletonStoryArgs {
3
5
  className?: string;
4
- variant?: "default" | "button" | "input" | "avatar" | "badge" | "card" | "tableRow" | "checkbox" | "switch" | "select" | "icon" | "text" | "heading" | "image";
6
+ variant?: SkeletonVariant;
5
7
  size?: string;
6
8
  columns?: number;
7
9
  lines?: number;
@@ -18,6 +18,25 @@ import { comboboxSizes } from "../Dropdown/Combobox";
18
18
  import { iconSize as LUIconSizes } from "../Icons";
19
19
  import { checkboxSize } from "../Checkbox/checkbox";
20
20
  import { size as SwitchSizes } from "../Switch/switch";
21
+ import { Body } from "../Typography/Body/body";
22
+ import { Heading } from "../Typography/Heading/heading";
23
+ // Dynamically define Skeleton variants
24
+ var SKELETON_VARIANTS = [
25
+ "default",
26
+ "button",
27
+ "input",
28
+ "avatar",
29
+ "badge",
30
+ "card",
31
+ "tableRow",
32
+ "checkbox",
33
+ "switch",
34
+ "select",
35
+ "icon",
36
+ "text",
37
+ "heading",
38
+ "image",
39
+ ];
21
40
  var meta = {
22
41
  title: "Components/Skeleton",
23
42
  component: Skeleton,
@@ -44,22 +63,7 @@ var meta = {
44
63
  argTypes: {
45
64
  variant: {
46
65
  control: { type: "select" },
47
- options: [
48
- "default",
49
- "button",
50
- "input",
51
- "avatar",
52
- "badge",
53
- "card",
54
- "tableRow",
55
- "checkbox",
56
- "switch",
57
- "select",
58
- "icon",
59
- "text",
60
- "heading",
61
- "image",
62
- ],
66
+ options: SKELETON_VARIANTS,
63
67
  description: "Select the skeleton component variant",
64
68
  table: {
65
69
  defaultValue: { summary: "default" },
@@ -127,17 +131,20 @@ var meta = {
127
131
  decorators: [
128
132
  function (Story, context) {
129
133
  var currentVariant = context.args.variant;
130
- var variantsWithSize = [
131
- "button",
132
- "avatar",
133
- "badge",
134
- "input",
135
- "tableRow",
136
- "select",
137
- "icon",
138
- "text",
139
- "heading",
140
- ];
134
+ // Dynamically determine which variants support size
135
+ var variantsWithSize = SKELETON_VARIANTS.filter(function (v) {
136
+ return [
137
+ "button",
138
+ "avatar",
139
+ "badge",
140
+ "input",
141
+ "tableRow",
142
+ "select",
143
+ "icon",
144
+ "text",
145
+ "heading",
146
+ ].includes(v);
147
+ });
141
148
  if (context.argTypes && context.argTypes.size) {
142
149
  // Hide size control for variants that don't support it
143
150
  if (!variantsWithSize.includes(currentVariant !== null && currentVariant !== void 0 ? currentVariant : "")) {
@@ -277,7 +284,7 @@ var Template = function (args) {
277
284
  };
278
285
  export var Default = Template.bind({});
279
286
  // Button Skeletons - All Sizes
280
- export var ButtonSkeletons = function () { return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { children: [_jsx("h3", { className: "mb-4 text-lg font-semibold", children: "Button Skeleton Sizes" }), _jsx("div", { className: "flex flex-col gap-4", children: Object.keys(buttonStyles.size).map(function (size) { return (_jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: size.toUpperCase() }), _jsx(Skeleton.Button, { size: size })] }, size)); }) })] }), _jsxs("div", { children: [_jsx("h3", { className: "mb-4 text-lg font-semibold", children: "Custom Width" }), _jsx(Skeleton.Button, { className: "w-64" })] })] })); };
287
+ export var ButtonSkeletons = function () { return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { children: [_jsx(Heading, { variant: "h4", children: "Button Skeleton Sizes" }), _jsx("div", { className: "flex flex-col gap-4", children: Object.keys(buttonStyles.size).map(function (size) { return (_jsxs("div", { children: [_jsx("p", { children: size.toUpperCase() }), _jsx(Skeleton.Button, { size: size })] }, size)); }) })] }), _jsxs("div", { children: [_jsx(Heading, { variant: "h4", children: "Custom Width" }), _jsx(Skeleton.Button, { className: "w-64" })] })] })); };
281
288
  ButtonSkeletons.parameters = {
282
289
  docs: {
283
290
  description: {
@@ -286,7 +293,7 @@ ButtonSkeletons.parameters = {
286
293
  },
287
294
  };
288
295
  // Input Skeletons - All Sizes
289
- export var InputSkeletons = function () { return (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "Small Input" }), _jsx(Skeleton.Input, { size: "sm" })] }), _jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "Medium Input" }), _jsx(Skeleton.Input, { size: "md" })] }), _jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "Large Input (Default)" }), _jsx(Skeleton.Input, { size: "lg" })] }), _jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "Custom Width" }), _jsx(Skeleton.Input, { className: "w-1/2" })] })] })); };
296
+ export var InputSkeletons = function () { return (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsx(Body, { children: "Small Input" }), _jsx(Skeleton.Input, { size: "sm" })] }), _jsxs("div", { children: [_jsx(Body, { children: "Medium Input" }), _jsx(Skeleton.Input, { size: "md" })] }), _jsxs("div", { children: [_jsx(Body, { children: "Large Input (Default)" }), _jsx(Skeleton.Input, { size: "lg" })] }), _jsxs("div", { children: [_jsx(Body, { children: "Custom Width" }), _jsx(Skeleton.Input, { className: "w-1/2" })] })] })); };
290
297
  InputSkeletons.parameters = {
291
298
  docs: {
292
299
  description: {
@@ -295,7 +302,10 @@ InputSkeletons.parameters = {
295
302
  },
296
303
  };
297
304
  // Avatar Skeletons - All Sizes
298
- export var AvatarSkeletons = function () { return (_jsxs("div", { className: "space-y-4", children: [_jsx("div", { className: "flex items-center gap-4 flex-wrap", children: ["4xs", "3xs", "2xs", "xs", "sm", "md", "lg", "xl"].map(function (size) { return (_jsxs("div", { className: "flex flex-col items-center gap-2", children: [_jsx(Skeleton.Avatar, { size: size }), _jsx("span", { className: "text-xs text-gray-500", children: size })] }, size)); }) }), _jsx("div", { className: "flex items-center gap-4 flex-wrap", children: ["2xl", "3xl", "4xl", "5xl", "huge", "massive"].map(function (size) { return (_jsxs("div", { className: "flex flex-col items-center gap-2", children: [_jsx(Skeleton.Avatar, { size: size }), _jsx("span", { className: "text-xs text-gray-500", children: size })] }, size)); }) })] })); };
305
+ export var AvatarSkeletons = function () {
306
+ var allAvatarSizes = Object.keys(avatarSize);
307
+ return (_jsx("div", { className: "space-y-4", children: _jsx("div", { className: "flex items-center gap-4 flex-wrap", children: allAvatarSizes.map(function (size) { return (_jsxs("div", { className: "flex flex-col items-center gap-2", children: [_jsx(Skeleton.Avatar, { size: size }), _jsx("span", { className: "text-xs text-gray-500", children: size })] }, size)); }) }) }));
308
+ };
299
309
  AvatarSkeletons.parameters = {
300
310
  docs: {
301
311
  description: {
@@ -304,7 +314,7 @@ AvatarSkeletons.parameters = {
304
314
  },
305
315
  };
306
316
  // Badge Skeletons - All Sizes
307
- export var BadgeSkeletons = function () { return (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "Small Badge" }), _jsx(Skeleton.Badge, { size: "sm" })] }), _jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "Medium Badge (Default)" }), _jsx(Skeleton.Badge, { size: "md" })] }), _jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "Large Badge" }), _jsx(Skeleton.Badge, { size: "lg" })] })] })); };
317
+ export var BadgeSkeletons = function () { return (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsx(Body, { children: "Small Badge" }), _jsx(Skeleton.Badge, { size: "sm" })] }), _jsxs("div", { children: [_jsx(Body, { children: "Medium Badge (Default)" }), _jsx(Skeleton.Badge, { size: "md" })] }), _jsxs("div", { children: [_jsx(Body, { children: "Large Badge" }), _jsx(Skeleton.Badge, { size: "lg" })] })] })); };
308
318
  BadgeSkeletons.parameters = {
309
319
  docs: {
310
320
  description: {
@@ -313,7 +323,7 @@ BadgeSkeletons.parameters = {
313
323
  },
314
324
  };
315
325
  // Card Skeleton
316
- export var CardSkeleton = function () { return (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "Default Card Skeleton" }), _jsx(Skeleton.Card, {})] }), _jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "Custom Height" }), _jsx(Skeleton.Card, { className: "h-64" })] })] })); };
326
+ export var CardSkeleton = function () { return (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsx(Body, { children: "Default Card Skeleton" }), _jsx(Skeleton.Card, {})] }), _jsxs("div", { children: [_jsx(Body, { children: "Custom Height" }), _jsx(Skeleton.Card, { className: "h-64" })] })] })); };
317
327
  CardSkeleton.parameters = {
318
328
  docs: {
319
329
  description: {
@@ -322,7 +332,7 @@ CardSkeleton.parameters = {
322
332
  },
323
333
  };
324
334
  // Table Row Skeletons
325
- export var TableRowSkeletons = function () { return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "3 Columns - Small" }), _jsx(Skeleton.TableRow, { columns: 3, size: "sm" })] }), _jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "4 Columns - Medium" }), _jsx(Skeleton.TableRow, { columns: 4, size: "md" })] }), _jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "5 Columns - Large" }), _jsx(Skeleton.TableRow, { columns: 5, size: "lg" })] }), _jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "Full Table Example" }), _jsxs("div", { className: "space-y-2", children: [_jsx(Skeleton.TableRow, { columns: 4, size: "md" }), _jsx(Skeleton.TableRow, { columns: 4, size: "md" }), _jsx(Skeleton.TableRow, { columns: 4, size: "md" })] })] })] })); };
335
+ export var TableRowSkeletons = function () { return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { children: [_jsx(Body, { children: "3 Columns - Small" }), _jsx(Skeleton.TableRow, { columns: 3, size: "sm" })] }), _jsxs("div", { children: [_jsx(Body, { children: "4 Columns - Medium" }), _jsx(Skeleton.TableRow, { columns: 4, size: "md" })] }), _jsxs("div", { children: [_jsx(Body, { children: "5 Columns - Large" }), _jsx(Skeleton.TableRow, { columns: 5, size: "lg" })] }), _jsxs("div", { children: [_jsx(Body, { children: "Full Table Example" }), _jsxs("div", { className: "space-y-2", children: [_jsx(Skeleton.TableRow, { columns: 4, size: "md" }), _jsx(Skeleton.TableRow, { columns: 4, size: "md" }), _jsx(Skeleton.TableRow, { columns: 4, size: "md" })] })] })] })); };
326
336
  TableRowSkeletons.parameters = {
327
337
  docs: {
328
338
  description: {
@@ -331,7 +341,7 @@ TableRowSkeletons.parameters = {
331
341
  },
332
342
  };
333
343
  // Form Elements Skeletons
334
- export var FormElementsSkeletons = function () { return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { children: [_jsx("h3", { className: "mb-4 text-lg font-semibold", children: "Checkbox" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Skeleton.Checkbox, {}), _jsx(Skeleton, { className: "h-4 w-24" })] })] }), _jsxs("div", { children: [_jsx("h3", { className: "mb-4 text-lg font-semibold", children: "Switch" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Skeleton.Switch, {}), _jsx(Skeleton, { className: "h-4 w-32" })] })] }), _jsxs("div", { children: [_jsx("h3", { className: "mb-4 text-lg font-semibold", children: "Select/Dropdown" }), _jsxs("div", { className: "space-y-2", children: [_jsx(Skeleton.Select, { size: "sm" }), _jsx(Skeleton.Select, { size: "md" }), _jsx(Skeleton.Select, { size: "lg" })] })] })] })); };
344
+ export var FormElementsSkeletons = function () { return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { children: [_jsx(Heading, { variant: "h4", children: "Checkbox" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Skeleton.Checkbox, {}), _jsx(Skeleton, { className: "h-4 w-24" })] })] }), _jsxs("div", { children: [_jsx(Heading, { variant: "h4", children: "Switch" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Skeleton.Switch, {}), _jsx(Skeleton, { className: "h-4 w-32" })] })] }), _jsxs("div", { children: [_jsx(Heading, { variant: "h4", children: "Select/Dropdown" }), _jsxs("div", { className: "space-y-2", children: [_jsx(Skeleton.Select, { size: "sm" }), _jsx(Skeleton.Select, { size: "md" }), _jsx(Skeleton.Select, { size: "lg" })] })] })] })); };
335
345
  FormElementsSkeletons.parameters = {
336
346
  docs: {
337
347
  description: {
@@ -349,7 +359,7 @@ IconSkeletons.parameters = {
349
359
  },
350
360
  };
351
361
  // Text Skeletons
352
- export var TextSkeletons = function () { return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { children: [_jsx("h3", { className: "mb-4 text-lg font-semibold", children: "Text Sizes" }), _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "Extra Small (xs)" }), _jsx(Skeleton.Text, { lines: 1, size: "xs" })] }), _jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "Small (sm)" }), _jsx(Skeleton.Text, { lines: 1, size: "sm" })] }), _jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "Medium (md) - Default" }), _jsx(Skeleton.Text, { lines: 1, size: "md" })] }), _jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "Large (lg)" }), _jsx(Skeleton.Text, { lines: 1, size: "lg" })] }), _jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "Extra Large (xl)" }), _jsx(Skeleton.Text, { lines: 1, size: "xl" })] })] })] }), _jsxs("div", { children: [_jsx("h3", { className: "mb-4 text-lg font-semibold", children: "Multi-line Text" }), _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "Two Lines" }), _jsx(Skeleton.Text, { lines: 2 })] }), _jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "Three Lines" }), _jsx(Skeleton.Text, { lines: 3 })] }), _jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "Five Lines" }), _jsx(Skeleton.Text, { lines: 5 })] })] })] })] })); };
362
+ export var TextSkeletons = function () { return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { children: [_jsx(Heading, { variant: "h4", children: "Text Sizes" }), _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsx(Body, { children: "Extra Small (xs)" }), _jsx(Skeleton.Text, { lines: 1, size: "xs" })] }), _jsxs("div", { children: [_jsx(Body, { children: "Small (sm)" }), _jsx(Skeleton.Text, { lines: 1, size: "sm" })] }), _jsxs("div", { children: [_jsx(Body, { children: "Medium (md) - Default" }), _jsx(Skeleton.Text, { lines: 1, size: "md" })] }), _jsxs("div", { children: [_jsx(Body, { children: "Large (lg)" }), _jsx(Skeleton.Text, { lines: 1, size: "lg" })] }), _jsxs("div", { children: [_jsx(Body, { children: "Extra Large (xl)" }), _jsx(Skeleton.Text, { lines: 1, size: "xl" })] })] })] }), _jsxs("div", { children: [_jsx(Heading, { variant: "h4", children: "Multi-line Text" }), _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsx(Body, { children: "Two Lines" }), _jsx(Skeleton.Text, { lines: 2 })] }), _jsxs("div", { children: [_jsx(Body, { children: "Three Lines" }), _jsx(Skeleton.Text, { lines: 3 })] }), _jsxs("div", { children: [_jsx(Body, { children: "Five Lines" }), _jsx(Skeleton.Text, { lines: 5 })] })] })] })] })); };
353
363
  TextSkeletons.parameters = {
354
364
  docs: {
355
365
  description: {
@@ -358,7 +368,7 @@ TextSkeletons.parameters = {
358
368
  },
359
369
  };
360
370
  // Heading Skeletons
361
- export var HeadingSkeletons = function () { return (_jsx("div", { className: "space-y-6", children: _jsxs("div", { children: [_jsx("h3", { className: "mb-4 text-lg font-semibold", children: "Heading Sizes" }), _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "H1 - Largest" }), _jsx(Skeleton.Heading, { size: "h1" })] }), _jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "H2 - Default" }), _jsx(Skeleton.Heading, { size: "h2" })] }), _jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "H3" }), _jsx(Skeleton.Heading, { size: "h3" })] }), _jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "H4" }), _jsx(Skeleton.Heading, { size: "h4" })] }), _jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "H5" }), _jsx(Skeleton.Heading, { size: "h5" })] }), _jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "H6 - Smallest" }), _jsx(Skeleton.Heading, { size: "h6" })] })] })] }) })); };
371
+ export var HeadingSkeletons = function () { return (_jsx("div", { className: "space-y-6", children: _jsxs("div", { children: [_jsx(Heading, { variant: "h4", children: "Heading Sizes" }), _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsx(Body, { children: "H1 - Largest" }), _jsx(Skeleton.Heading, { size: "h1" })] }), _jsxs("div", { children: [_jsx(Body, { children: "H2 - Default" }), _jsx(Skeleton.Heading, { size: "h2" })] }), _jsxs("div", { children: [_jsx(Body, { children: "H3" }), _jsx(Skeleton.Heading, { size: "h3" })] }), _jsxs("div", { children: [_jsx(Body, { children: "H4" }), _jsx(Skeleton.Heading, { size: "h4" })] }), _jsxs("div", { children: [_jsx(Body, { children: "H5" }), _jsx(Skeleton.Heading, { size: "h5" })] }), _jsxs("div", { children: [_jsx(Body, { children: "H6 - Smallest" }), _jsx(Skeleton.Heading, { size: "h6" })] })] })] }) })); };
362
372
  HeadingSkeletons.parameters = {
363
373
  docs: {
364
374
  description: {
@@ -367,7 +377,7 @@ HeadingSkeletons.parameters = {
367
377
  },
368
378
  };
369
379
  // Image Skeletons
370
- export var ImageSkeletons = function () { return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "Square Aspect Ratio" }), _jsx("div", { className: "w-64", children: _jsx(Skeleton.Image, { aspectRatio: "square" }) })] }), _jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "Video Aspect Ratio (16:9)" }), _jsx("div", { className: "w-64", children: _jsx(Skeleton.Image, { aspectRatio: "video" }) })] }), _jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "Portrait Aspect Ratio (3:4)" }), _jsx("div", { className: "w-48", children: _jsx(Skeleton.Image, { aspectRatio: "portrait" }) })] }), _jsxs("div", { children: [_jsx("p", { className: "mb-2 text-sm font-medium", children: "Icon Scale Variations" }), _jsxs("div", { className: "flex gap-6 flex-wrap", children: [_jsxs("div", { className: "w-40", children: [_jsx("p", { className: "text-xs mb-1", children: "Scale: sm" }), _jsx(Skeleton.Image, { aspectRatio: "square" })] }), _jsxs("div", { className: "w-40", children: [_jsx("p", { className: "text-xs mb-1", children: "Scale: md" }), _jsx(Skeleton.Image, { aspectRatio: "square" })] }), _jsxs("div", { className: "w-40", children: [_jsx("p", { className: "text-xs mb-1", children: "Scale: lg" }), _jsx(Skeleton.Image, { aspectRatio: "square" })] }), _jsxs("div", { className: "w-40", children: [_jsx("p", { className: "text-xs mb-1", children: "Scale: auto (responsive)" }), _jsx(Skeleton.Image, { aspectRatio: "square" })] })] })] })] })); };
380
+ export var ImageSkeletons = function () { return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { children: [_jsx(Body, { children: "Square Aspect Ratio" }), _jsx("div", { className: "w-64", children: _jsx(Skeleton.Image, { aspectRatio: "square" }) })] }), _jsxs("div", { children: [_jsx(Body, { children: "Video Aspect Ratio (16:9)" }), _jsx("div", { className: "w-64", children: _jsx(Skeleton.Image, { aspectRatio: "video" }) })] }), _jsxs("div", { children: [_jsx(Body, { children: "Portrait Aspect Ratio (3:4)" }), _jsx("div", { className: "w-48", children: _jsx(Skeleton.Image, { aspectRatio: "portrait" }) })] }), _jsxs("div", { children: [_jsx(Body, { children: "Icon Scale Variations" }), _jsxs("div", { className: "flex gap-6 flex-wrap", children: [_jsxs("div", { className: "w-40", children: [_jsx(Body, { children: "Scale: sm" }), _jsx(Skeleton.Image, { aspectRatio: "square" })] }), _jsxs("div", { className: "w-40", children: [_jsx(Body, { children: "Scale: md" }), _jsx(Skeleton.Image, { aspectRatio: "square" })] }), _jsxs("div", { className: "w-40", children: [_jsx(Body, { children: "Scale: lg" }), _jsx(Skeleton.Image, { aspectRatio: "square" })] }), _jsxs("div", { className: "w-40", children: [_jsx(Body, { children: "Scale: auto (responsive)" }), _jsx(Skeleton.Image, { aspectRatio: "square" })] })] })] })] })); };
371
381
  ImageSkeletons.parameters = {
372
382
  docs: {
373
383
  description: {
@@ -394,7 +404,7 @@ CompleteFormExample.parameters = {
394
404
  },
395
405
  };
396
406
  // All Variants Together
397
- export var AllVariants = function () { return (_jsxs("div", { className: "space-y-8", children: [_jsxs("div", { children: [_jsx("h3", { className: "mb-4 text-lg font-semibold", children: "Buttons" }), _jsxs("div", { className: "flex gap-4", children: [_jsx(Skeleton.Button, { size: "sm" }), _jsx(Skeleton.Button, { size: "md" }), _jsx(Skeleton.Button, { size: "lg" })] })] }), _jsxs("div", { children: [_jsx("h3", { className: "mb-4 text-lg font-semibold", children: "Inputs & Selects" }), _jsxs("div", { className: "space-y-2 max-w-md", children: [_jsx(Skeleton.Input, { size: "sm" }), _jsx(Skeleton.Input, { size: "md" }), _jsx(Skeleton.Select, { size: "lg" })] })] }), _jsxs("div", { children: [_jsx("h3", { className: "mb-4 text-lg font-semibold", children: "Avatars" }), _jsxs("div", { className: "flex gap-4 items-center", children: [_jsx(Skeleton.Avatar, { size: "sm" }), _jsx(Skeleton.Avatar, { size: "md" }), _jsx(Skeleton.Avatar, { size: "lg" }), _jsx(Skeleton.Avatar, { size: "xl" })] })] }), _jsxs("div", { children: [_jsx("h3", { className: "mb-4 text-lg font-semibold", children: "Badges" }), _jsxs("div", { className: "flex gap-4 items-center", children: [_jsx(Skeleton.Badge, { size: "sm" }), _jsx(Skeleton.Badge, { size: "md" }), _jsx(Skeleton.Badge, { size: "lg" })] })] }), _jsxs("div", { children: [_jsx("h3", { className: "mb-4 text-lg font-semibold", children: "Form Controls" }), _jsxs("div", { className: "flex gap-4 items-center", children: [_jsx(Skeleton.Checkbox, {}), _jsx(Skeleton.Switch, {}), _jsx(Skeleton.Icon, { size: "md" })] })] }), _jsxs("div", { children: [_jsx("h3", { className: "mb-4 text-lg font-semibold", children: "Text" }), _jsx("div", { className: "max-w-md", children: _jsx(Skeleton.Text, { lines: 3 }) })] }), _jsxs("div", { children: [_jsx("h3", { className: "mb-4 text-lg font-semibold", children: "Images" }), _jsxs("div", { className: "flex gap-4", children: [_jsx("div", { className: "w-32", children: _jsx(Skeleton.Image, { aspectRatio: "square" }) }), _jsx("div", { className: "w-48", children: _jsx(Skeleton.Image, { aspectRatio: "video" }) })] })] })] })); };
407
+ export var AllVariants = function () { return (_jsxs("div", { className: "space-y-8", children: [_jsxs("div", { children: [_jsx(Heading, { variant: "h4", children: "Buttons" }), _jsxs("div", { className: "flex gap-4", children: [_jsx(Skeleton.Button, { size: "sm" }), _jsx(Skeleton.Button, { size: "md" }), _jsx(Skeleton.Button, { size: "lg" })] })] }), _jsxs("div", { children: [_jsx(Heading, { variant: "h4", children: "Inputs & Selects" }), _jsxs("div", { className: "space-y-2 max-w-md", children: [_jsx(Skeleton.Input, { size: "sm" }), _jsx(Skeleton.Input, { size: "md" }), _jsx(Skeleton.Select, { size: "lg" })] })] }), _jsxs("div", { children: [_jsx(Heading, { variant: "h4", children: "Avatars" }), _jsxs("div", { className: "flex gap-4 items-center", children: [_jsx(Skeleton.Avatar, { size: "sm" }), _jsx(Skeleton.Avatar, { size: "md" }), _jsx(Skeleton.Avatar, { size: "lg" }), _jsx(Skeleton.Avatar, { size: "xl" })] })] }), _jsxs("div", { children: [_jsx(Heading, { variant: "h4", children: "Badges" }), _jsxs("div", { className: "flex gap-4 items-center", children: [_jsx(Skeleton.Badge, { size: "sm" }), _jsx(Skeleton.Badge, { size: "md" }), _jsx(Skeleton.Badge, { size: "lg" })] })] }), _jsxs("div", { children: [_jsx(Heading, { variant: "h4", children: "Form Controls" }), _jsxs("div", { className: "flex gap-4 items-center", children: [_jsx(Skeleton.Checkbox, {}), _jsx(Skeleton.Switch, {}), _jsx(Skeleton.Icon, { size: "md" })] })] }), _jsxs("div", { children: [_jsx(Heading, { variant: "h4", children: "Text" }), _jsx("div", { className: "max-w-md", children: _jsx(Skeleton.Text, { lines: 3 }) })] }), _jsxs("div", { children: [_jsx(Heading, { variant: "h4", children: "Images" }), _jsxs("div", { className: "flex gap-4", children: [_jsx("div", { className: "w-32", children: _jsx(Skeleton.Image, { aspectRatio: "square" }) }), _jsx("div", { className: "w-48", children: _jsx(Skeleton.Image, { aspectRatio: "video" }) })] })] })] })); };
398
408
  AllVariants.parameters = {
399
409
  docs: {
400
410
  description: {
@@ -1,4 +1,4 @@
1
- /*! tailwindcss v4.1.10 | MIT License | https://tailwindcss.com */
1
+ /*! tailwindcss v4.1.13 | MIT License | https://tailwindcss.com */
2
2
  .main-title {
3
3
  position: relative;
4
4
  z-index: 10;
@@ -1,4 +1,4 @@
1
- /*! tailwindcss v4.1.10 | MIT License | https://tailwindcss.com */
1
+ /*! tailwindcss v4.1.13 | MIT License | https://tailwindcss.com */
2
2
  .h1 {
3
3
  margin: calc(var(--spacing, 0.25rem) * 0);
4
4
  font-size: var(--text-5xl, 3rem);
@@ -0,0 +1,18 @@
1
+ import * as React from "react";
2
+ import * as TabsPrimitive from "@radix-ui/react-tabs";
3
+ export declare const tabSizes: {
4
+ lg: string;
5
+ md: string;
6
+ sm: string;
7
+ };
8
+ type TabsProps = React.ComponentPropsWithoutRef<typeof TabsPrimitive.Root> & {
9
+ size?: keyof typeof tabSizes;
10
+ };
11
+ declare const Tabs: React.FC<TabsProps>;
12
+ declare const TabsHeading: React.FC<{
13
+ children: React.ReactNode;
14
+ }>;
15
+ declare const TabsList: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsListProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
16
+ declare const TabsTrigger: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
17
+ declare const TabsContent: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
18
+ export { Tabs, TabsList, TabsTrigger, TabsContent, TabsHeading };
@@ -0,0 +1,60 @@
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 __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ import { jsx as _jsx } from "react/jsx-runtime";
24
+ import * as React from "react";
25
+ import * as TabsPrimitive from "@radix-ui/react-tabs";
26
+ import { cn } from "../../lib/utils";
27
+ import { Heading } from "../Typography/Heading/heading";
28
+ export var tabSizes = {
29
+ lg: "!px-5 !py-3 !text-base font-normal",
30
+ md: "!px-5 !py-2.5 !text-sm font-normal",
31
+ sm: "!px-3 !py-2 !text-sm font-normal",
32
+ };
33
+ var TabsContext = React.createContext({
34
+ size: "md",
35
+ });
36
+ var Tabs = function (_a) {
37
+ var _b = _a.size, size = _b === void 0 ? "md" : _b, children = _a.children, props = __rest(_a, ["size", "children"]);
38
+ return (_jsx(TabsContext.Provider, { value: { size: size }, children: _jsx(TabsPrimitive.Root, __assign({}, props, { children: children })) }));
39
+ };
40
+ var TabsHeading = function (_a) {
41
+ var children = _a.children;
42
+ return (_jsx(Heading, { variant: "h6-500", className: "bg-gray-900 !px-5 !py-3 rounded-t-md !text-gray-50 shadow-lg", children: children }));
43
+ };
44
+ var TabsList = React.forwardRef(function (_a, ref) {
45
+ var className = _a.className, props = __rest(_a, ["className"]);
46
+ return (_jsx(TabsPrimitive.List, __assign({ ref: ref, className: cn("flex flex-col h-full items-start justify-start bg-gray-50 text-gray-950 !p-1 shadow-lg", className) }, props)));
47
+ });
48
+ TabsList.displayName = TabsPrimitive.List.displayName;
49
+ var TabsTrigger = React.forwardRef(function (_a, ref) {
50
+ var className = _a.className, props = __rest(_a, ["className"]);
51
+ var size = React.useContext(TabsContext).size;
52
+ return (_jsx(TabsPrimitive.Trigger, __assign({ ref: ref, className: cn("inline-flex items-center justify-start whitespace-nowrap !rounded-md font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 w-full text-left !text-gray-950 hover:bg-gray-50 data-[state=active]:!text-gray-50 data-[state=active]:bg-gray-950", tabSizes[size], className) }, props)));
53
+ });
54
+ TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
55
+ var TabsContent = React.forwardRef(function (_a, ref) {
56
+ var className = _a.className, props = __rest(_a, ["className"]);
57
+ return (_jsx(TabsPrimitive.Content, __assign({ ref: ref, className: cn("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2", className) }, props)));
58
+ });
59
+ TabsContent.displayName = TabsPrimitive.Content.displayName;
60
+ export { Tabs, TabsList, TabsTrigger, TabsContent, TabsHeading };
@@ -0,0 +1,11 @@
1
+ import type { Meta } from "@storybook/react";
2
+ declare const _default: Meta;
3
+ export default _default;
4
+ export declare const _VerticalTabs: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, any>;
5
+ export declare const VerticalTabsSmall: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, any>;
6
+ export declare const VerticalTabsMedium: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, any>;
7
+ export declare const VerticalTabsLarge: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, any>;
8
+ export declare const VerticalTabsWithoutHeading: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, any>;
9
+ export declare const VerticalTabsWithIcon: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, any>;
10
+ export declare const VerticalTabsWithBadge: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, any>;
11
+ export declare const VerticalTabsWithIconAndBadge: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, any>;
@@ -0,0 +1,100 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Tabs, TabsContent, TabsList, tabSizes, TabsTrigger, TabsHeading, } from "./VerticalTabs";
3
+ import LUIcon from "../Icons/LUIcon";
4
+ import { Badge } from "../Badge/Badge";
5
+ export default {
6
+ title: "Components/VerticalTabs",
7
+ component: Tabs,
8
+ tags: ["autodocs"],
9
+ argTypes: {
10
+ children: {
11
+ description: "Pass `TabList` components as children. Each item includes an `TabsTrigger` (the clickable label) and `TabsContent`. You can customize both with any valid React nodes \n\nFor more details and usage examples, refer to the [ShadCN Tabs documentation](https://ui.shadcn.com/docs/components/tabs).",
12
+ table: {
13
+ type: { summary: "React.ReactNode" },
14
+ },
15
+ },
16
+ heading: {
17
+ description: "Optional heading displayed at the top of the Tabs.",
18
+ table: {
19
+ type: { summary: "string" },
20
+ },
21
+ },
22
+ size: {
23
+ control: { type: "select" },
24
+ options: Object.keys(tabSizes),
25
+ description: "Size of the Tabs component",
26
+ table: {
27
+ type: { summary: Object.keys(tabSizes).join(" | ") },
28
+ defaultValue: { summary: "md" },
29
+ },
30
+ },
31
+ },
32
+ };
33
+ var Template = function (args) { return (_jsxs(Tabs, { defaultValue: "account", size: args.size, children: [args.heading && _jsx(TabsHeading, { children: args.heading }), _jsx(TabsList, { children: args.triggers }), _jsx(TabsContent, { value: "account", children: "Account Settings" }), _jsx(TabsContent, { value: "password", children: "Change Password" })] })); };
34
+ export var _VerticalTabs = Template.bind({});
35
+ _VerticalTabs.args = {
36
+ heading: "Tab Title",
37
+ triggers: [
38
+ _jsx(TabsTrigger, { value: "account", children: "Account" }, "account"),
39
+ _jsx(TabsTrigger, { value: "password", children: "Password" }, "password"),
40
+ ],
41
+ size: "md",
42
+ };
43
+ export var VerticalTabsSmall = Template.bind({});
44
+ VerticalTabsSmall.args = {
45
+ heading: "Sm Tabs",
46
+ triggers: [
47
+ _jsx(TabsTrigger, { value: "account", children: "Account" }, "account"),
48
+ _jsx(TabsTrigger, { value: "password", children: "Password" }, "password"),
49
+ ],
50
+ size: "sm",
51
+ };
52
+ export var VerticalTabsMedium = Template.bind({});
53
+ VerticalTabsMedium.args = {
54
+ heading: "Md Tabs",
55
+ triggers: [
56
+ _jsx(TabsTrigger, { value: "account", children: "Account" }, "account"),
57
+ _jsx(TabsTrigger, { value: "password", children: "Password" }, "password"),
58
+ ],
59
+ size: "md",
60
+ };
61
+ export var VerticalTabsLarge = Template.bind({});
62
+ VerticalTabsLarge.args = {
63
+ heading: "Lg Tabs",
64
+ triggers: [
65
+ _jsx(TabsTrigger, { value: "account", children: "Account" }, "account"),
66
+ _jsx(TabsTrigger, { value: "password", children: "Password" }, "password"),
67
+ ],
68
+ size: "lg",
69
+ };
70
+ export var VerticalTabsWithoutHeading = Template.bind({});
71
+ VerticalTabsWithoutHeading.args = {
72
+ triggers: [
73
+ _jsxs(TabsTrigger, { value: "account", children: [_jsx(LUIcon, { icon: "user", size: "md", className: "mr-1" }), "Account"] }, "account"),
74
+ _jsxs(TabsTrigger, { value: "password", children: [_jsx(LUIcon, { icon: "lock", size: "md", className: "mr-1" }), "Password"] }, "password"),
75
+ ],
76
+ };
77
+ export var VerticalTabsWithIcon = Template.bind({});
78
+ VerticalTabsWithIcon.args = {
79
+ heading: "Tab Title",
80
+ triggers: [
81
+ _jsxs(TabsTrigger, { value: "account", children: [_jsx(LUIcon, { icon: "user", size: "md", className: "mr-1" }), "Account"] }, "account"),
82
+ _jsxs(TabsTrigger, { value: "password", children: [_jsx(LUIcon, { icon: "lock", size: "md", className: "mr-1" }), "Password"] }, "password"),
83
+ ],
84
+ };
85
+ export var VerticalTabsWithBadge = Template.bind({});
86
+ VerticalTabsWithBadge.args = {
87
+ heading: "Tab Title",
88
+ triggers: [
89
+ _jsxs(TabsTrigger, { value: "account", children: ["Account", _jsx(Badge, { size: "sm", color: "gray", className: "ms-auto", children: "03" })] }, "account"),
90
+ _jsxs(TabsTrigger, { value: "password", children: ["Password", _jsx(Badge, { size: "sm", color: "gray", className: "ms-auto", children: "01" })] }, "password"),
91
+ ],
92
+ };
93
+ export var VerticalTabsWithIconAndBadge = Template.bind({});
94
+ VerticalTabsWithIconAndBadge.args = {
95
+ heading: "Tab Title",
96
+ triggers: [
97
+ _jsxs(TabsTrigger, { value: "account", children: [_jsx(LUIcon, { icon: "user", size: "md", className: "mr-1" }), "Account", _jsx(Badge, { size: "sm", color: "gray", className: "ms-auto", children: "03" })] }, "account"),
98
+ _jsxs(TabsTrigger, { value: "password", children: [_jsx(LUIcon, { icon: "lock", size: "md", className: "mr-1" }), "Password", _jsx(Badge, { size: "sm", color: "gray", className: "ms-auto", children: "01" })] }, "password"),
99
+ ],
100
+ };