@beyondcorp/beyond-ui 1.0.9 → 1.0.11

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 (164) hide show
  1. package/dist/components/Alert/Alert.js +4 -4
  2. package/dist/components/Alert/Alert.js.map +1 -1
  3. package/dist/components/Avatar/Avatar.js +4 -4
  4. package/dist/components/Avatar/Avatar.js.map +1 -1
  5. package/dist/components/Badge/Badge.js +2 -2
  6. package/dist/components/Badge/Badge.js.map +1 -1
  7. package/dist/components/Button/Button.js +2 -2
  8. package/dist/components/Button/Button.js.map +1 -1
  9. package/dist/components/Card/Card.js +7 -7
  10. package/dist/components/Card/Card.js.map +1 -1
  11. package/dist/components/Checkbox/Checkbox.js +2 -2
  12. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  13. package/dist/components/ComponentShowcase/ComponentShowcase.js +41 -41
  14. package/dist/components/ComponentShowcase/ComponentShowcase.js.map +1 -1
  15. package/dist/components/DashboardGrid/DashboardGrid.js +3 -3
  16. package/dist/components/DashboardGrid/DashboardGrid.js.map +1 -1
  17. package/dist/components/DashboardHeader/DashboardHeader.js +2 -2
  18. package/dist/components/DashboardHeader/DashboardHeader.js.map +1 -1
  19. package/dist/components/DashboardLayout/DashboardLayout.js +3 -3
  20. package/dist/components/DashboardLayout/DashboardLayout.js.map +1 -1
  21. package/dist/components/DataTable/DataTable.js +11 -11
  22. package/dist/components/DataTable/DataTable.js.map +1 -1
  23. package/dist/components/DataTable/DataTableShowcase.js +20 -20
  24. package/dist/components/DataTable/DataTableShowcase.js.map +1 -1
  25. package/dist/components/Input/Input.js +2 -2
  26. package/dist/components/Input/Input.js.map +1 -1
  27. package/dist/components/Modal/Modal.js +7 -7
  28. package/dist/components/Modal/Modal.js.map +1 -1
  29. package/dist/components/Navbar/Navbar.js +3 -3
  30. package/dist/components/Navbar/Navbar.js.map +1 -1
  31. package/dist/components/Sidebar/Sidebar.js +13 -13
  32. package/dist/components/Sidebar/Sidebar.js.map +1 -1
  33. package/dist/components/Skeleton/Skeleton.js +2 -2
  34. package/dist/components/Skeleton/Skeleton.js.map +1 -1
  35. package/dist/components/Spinner/Spinner.js +2 -2
  36. package/dist/components/Spinner/Spinner.js.map +1 -1
  37. package/dist/components/StatsCard/StatsCard.js +5 -5
  38. package/dist/components/StatsCard/StatsCard.js.map +1 -1
  39. package/dist/components/Switch/Switch.js +2 -2
  40. package/dist/components/Switch/Switch.js.map +1 -1
  41. package/dist/components/Tabs/Tabs.js +5 -5
  42. package/dist/components/Tabs/Tabs.js.map +1 -1
  43. package/dist/components/Textarea/Textarea.js +2 -2
  44. package/dist/components/Textarea/Textarea.js.map +1 -1
  45. package/dist/components/Toast/Toast.js +8 -8
  46. package/dist/components/Toast/Toast.js.map +1 -1
  47. package/package.json +7 -2
  48. package/dist/_virtual/jsx-runtime.js +0 -6
  49. package/dist/_virtual/jsx-runtime.js.map +0 -1
  50. package/dist/_virtual/jsx-runtime2.js +0 -4
  51. package/dist/_virtual/jsx-runtime2.js.map +0 -1
  52. package/dist/_virtual/react-jsx-runtime.development.js +0 -4
  53. package/dist/_virtual/react-jsx-runtime.development.js.map +0 -1
  54. package/dist/_virtual/react-jsx-runtime.production.min.js +0 -4
  55. package/dist/_virtual/react-jsx-runtime.production.min.js.map +0 -1
  56. package/dist/index.js.map +0 -1
  57. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js +0 -37
  58. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +0 -1
  59. package/dist/node_modules/@radix-ui/react-slot/dist/index.js +0 -91
  60. package/dist/node_modules/@radix-ui/react-slot/dist/index.js.map +0 -1
  61. package/dist/node_modules/goober/dist/goober.modern.js +0 -4
  62. package/dist/node_modules/goober/dist/goober.modern.js.map +0 -1
  63. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.js +0 -48
  64. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.js.map +0 -1
  65. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.js +0 -21
  66. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.js.map +0 -1
  67. package/dist/node_modules/lucide-react/dist/esm/icons/alert-circle.js +0 -18
  68. package/dist/node_modules/lucide-react/dist/esm/icons/alert-circle.js.map +0 -1
  69. package/dist/node_modules/lucide-react/dist/esm/icons/alert-triangle.js +0 -24
  70. package/dist/node_modules/lucide-react/dist/esm/icons/alert-triangle.js.map +0 -1
  71. package/dist/node_modules/lucide-react/dist/esm/icons/bar-chart-3.js +0 -19
  72. package/dist/node_modules/lucide-react/dist/esm/icons/bar-chart-3.js.map +0 -1
  73. package/dist/node_modules/lucide-react/dist/esm/icons/bell.js +0 -17
  74. package/dist/node_modules/lucide-react/dist/esm/icons/bell.js.map +0 -1
  75. package/dist/node_modules/lucide-react/dist/esm/icons/book.js +0 -16
  76. package/dist/node_modules/lucide-react/dist/esm/icons/book.js.map +0 -1
  77. package/dist/node_modules/lucide-react/dist/esm/icons/calendar.js +0 -19
  78. package/dist/node_modules/lucide-react/dist/esm/icons/calendar.js.map +0 -1
  79. package/dist/node_modules/lucide-react/dist/esm/icons/check-circle.js +0 -17
  80. package/dist/node_modules/lucide-react/dist/esm/icons/check-circle.js.map +0 -1
  81. package/dist/node_modules/lucide-react/dist/esm/icons/check.js +0 -14
  82. package/dist/node_modules/lucide-react/dist/esm/icons/check.js.map +0 -1
  83. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.js +0 -16
  84. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.js.map +0 -1
  85. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-left.js +0 -16
  86. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-left.js.map +0 -1
  87. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.js +0 -16
  88. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.js.map +0 -1
  89. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-up.js +0 -14
  90. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-up.js.map +0 -1
  91. package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-left.js +0 -17
  92. package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-left.js.map +0 -1
  93. package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-right.js +0 -17
  94. package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-right.js.map +0 -1
  95. package/dist/node_modules/lucide-react/dist/esm/icons/code.js +0 -17
  96. package/dist/node_modules/lucide-react/dist/esm/icons/code.js.map +0 -1
  97. package/dist/node_modules/lucide-react/dist/esm/icons/copy.js +0 -17
  98. package/dist/node_modules/lucide-react/dist/esm/icons/copy.js.map +0 -1
  99. package/dist/node_modules/lucide-react/dist/esm/icons/dollar-sign.js +0 -17
  100. package/dist/node_modules/lucide-react/dist/esm/icons/dollar-sign.js.map +0 -1
  101. package/dist/node_modules/lucide-react/dist/esm/icons/download.js +0 -18
  102. package/dist/node_modules/lucide-react/dist/esm/icons/download.js.map +0 -1
  103. package/dist/node_modules/lucide-react/dist/esm/icons/eye.js +0 -17
  104. package/dist/node_modules/lucide-react/dist/esm/icons/eye.js.map +0 -1
  105. package/dist/node_modules/lucide-react/dist/esm/icons/file-text.js +0 -20
  106. package/dist/node_modules/lucide-react/dist/esm/icons/file-text.js.map +0 -1
  107. package/dist/node_modules/lucide-react/dist/esm/icons/filter.js +0 -16
  108. package/dist/node_modules/lucide-react/dist/esm/icons/filter.js.map +0 -1
  109. package/dist/node_modules/lucide-react/dist/esm/icons/home.js +0 -17
  110. package/dist/node_modules/lucide-react/dist/esm/icons/home.js.map +0 -1
  111. package/dist/node_modules/lucide-react/dist/esm/icons/info.js +0 -18
  112. package/dist/node_modules/lucide-react/dist/esm/icons/info.js.map +0 -1
  113. package/dist/node_modules/lucide-react/dist/esm/icons/log-out.js +0 -18
  114. package/dist/node_modules/lucide-react/dist/esm/icons/log-out.js.map +0 -1
  115. package/dist/node_modules/lucide-react/dist/esm/icons/mail.js +0 -17
  116. package/dist/node_modules/lucide-react/dist/esm/icons/mail.js.map +0 -1
  117. package/dist/node_modules/lucide-react/dist/esm/icons/menu.js +0 -18
  118. package/dist/node_modules/lucide-react/dist/esm/icons/menu.js.map +0 -1
  119. package/dist/node_modules/lucide-react/dist/esm/icons/minus.js +0 -14
  120. package/dist/node_modules/lucide-react/dist/esm/icons/minus.js.map +0 -1
  121. package/dist/node_modules/lucide-react/dist/esm/icons/monitor.js +0 -18
  122. package/dist/node_modules/lucide-react/dist/esm/icons/monitor.js.map +0 -1
  123. package/dist/node_modules/lucide-react/dist/esm/icons/moon.js +0 -16
  124. package/dist/node_modules/lucide-react/dist/esm/icons/moon.js.map +0 -1
  125. package/dist/node_modules/lucide-react/dist/esm/icons/mouse-pointer.js +0 -17
  126. package/dist/node_modules/lucide-react/dist/esm/icons/mouse-pointer.js.map +0 -1
  127. package/dist/node_modules/lucide-react/dist/esm/icons/palette.js +0 -26
  128. package/dist/node_modules/lucide-react/dist/esm/icons/palette.js.map +0 -1
  129. package/dist/node_modules/lucide-react/dist/esm/icons/panels-top-left.js +0 -18
  130. package/dist/node_modules/lucide-react/dist/esm/icons/panels-top-left.js.map +0 -1
  131. package/dist/node_modules/lucide-react/dist/esm/icons/plus.js +0 -17
  132. package/dist/node_modules/lucide-react/dist/esm/icons/plus.js.map +0 -1
  133. package/dist/node_modules/lucide-react/dist/esm/icons/search.js +0 -17
  134. package/dist/node_modules/lucide-react/dist/esm/icons/search.js.map +0 -1
  135. package/dist/node_modules/lucide-react/dist/esm/icons/settings.js +0 -23
  136. package/dist/node_modules/lucide-react/dist/esm/icons/settings.js.map +0 -1
  137. package/dist/node_modules/lucide-react/dist/esm/icons/smartphone.js +0 -17
  138. package/dist/node_modules/lucide-react/dist/esm/icons/smartphone.js.map +0 -1
  139. package/dist/node_modules/lucide-react/dist/esm/icons/square-pen.js +0 -17
  140. package/dist/node_modules/lucide-react/dist/esm/icons/square-pen.js.map +0 -1
  141. package/dist/node_modules/lucide-react/dist/esm/icons/sun.js +0 -24
  142. package/dist/node_modules/lucide-react/dist/esm/icons/sun.js.map +0 -1
  143. package/dist/node_modules/lucide-react/dist/esm/icons/tablet.js +0 -17
  144. package/dist/node_modules/lucide-react/dist/esm/icons/tablet.js.map +0 -1
  145. package/dist/node_modules/lucide-react/dist/esm/icons/trash-2.js +0 -20
  146. package/dist/node_modules/lucide-react/dist/esm/icons/trash-2.js.map +0 -1
  147. package/dist/node_modules/lucide-react/dist/esm/icons/trending-down.js +0 -17
  148. package/dist/node_modules/lucide-react/dist/esm/icons/trending-down.js.map +0 -1
  149. package/dist/node_modules/lucide-react/dist/esm/icons/trending-up.js +0 -17
  150. package/dist/node_modules/lucide-react/dist/esm/icons/trending-up.js.map +0 -1
  151. package/dist/node_modules/lucide-react/dist/esm/icons/user.js +0 -17
  152. package/dist/node_modules/lucide-react/dist/esm/icons/user.js.map +0 -1
  153. package/dist/node_modules/lucide-react/dist/esm/icons/users.js +0 -19
  154. package/dist/node_modules/lucide-react/dist/esm/icons/users.js.map +0 -1
  155. package/dist/node_modules/lucide-react/dist/esm/icons/x.js +0 -17
  156. package/dist/node_modules/lucide-react/dist/esm/icons/x.js.map +0 -1
  157. package/dist/node_modules/react/cjs/react-jsx-runtime.development.js +0 -1326
  158. package/dist/node_modules/react/cjs/react-jsx-runtime.development.js.map +0 -1
  159. package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.js +0 -25
  160. package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.js.map +0 -1
  161. package/dist/node_modules/react/jsx-runtime.js +0 -20
  162. package/dist/node_modules/react/jsx-runtime.js.map +0 -1
  163. package/dist/node_modules/react-hot-toast/dist/index.js +0 -184
  164. package/dist/node_modules/react-hot-toast/dist/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardLayout.js","sources":["../../../src/components/DashboardLayout/DashboardLayout.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { cn } from \"../../utils/cn\";\r\nimport { Sidebar, type MenuItem } from \"../Sidebar\";\r\nimport { DashboardHeader, type BreadcrumbItem } from \"../DashboardHeader\";\r\n\r\ninterface DashboardLayoutProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n sidebarMenuItems?: MenuItem[];\r\n activeSidebarItem?: string;\r\n breadcrumbs?: BreadcrumbItem[];\r\n onSidebarItemClick?: (itemId: string) => void;\r\n showSearch?: boolean;\r\n searchPlaceholder?: string;\r\n onSearchChange?: (value: string) => void;\r\n sidebarClassName?: string;\r\n disableSidebarMargin?: boolean;\r\n}\r\n\r\nconst DashboardLayout = React.forwardRef<HTMLDivElement, DashboardLayoutProps>(\r\n ({ \r\n children,\r\n className,\r\n sidebarMenuItems,\r\n activeSidebarItem,\r\n breadcrumbs,\r\n onSidebarItemClick,\r\n showSearch,\r\n searchPlaceholder,\r\n onSearchChange,\r\n ...props \r\n }, ref) => {\r\n const [sidebarCollapsed, setSidebarCollapsed] = React.useState(false);\r\n\r\n const toggleSidebar = () => {\r\n setSidebarCollapsed(prev => !prev);\r\n };\r\n\r\n return (\r\n <div ref={ref} className={cn(\"min-h-screen bg-gray-50\", className)} {...props}>\r\n {/* Sidebar */}\r\n <Sidebar\r\n collapsed={sidebarCollapsed}\r\n onToggle={toggleSidebar}\r\n menuItems={sidebarMenuItems}\r\n activeItem={activeSidebarItem}\r\n onItemClick={onSidebarItemClick}\r\n className={props.sidebarClassName}\r\n />\r\n\r\n {/* Main Content Area */}\r\n <div className=\"flex flex-col min-h-screen\">\r\n {/* Header */}\r\n <DashboardHeader\r\n sidebarCollapsed={sidebarCollapsed}\r\n onMenuToggle={toggleSidebar}\r\n breadcrumbs={breadcrumbs}\r\n showSearch={showSearch}\r\n searchPlaceholder={searchPlaceholder}\r\n onSearchChange={onSearchChange}\r\n />\r\n\r\n {/* Main Content */}\r\n <main \r\n className={cn(\r\n \"flex-1 transition-all duration-300 p-6\",\r\n props.disableSidebarMargin\r\n ? \"\"\r\n : (sidebarCollapsed ? \"ml-16\" : \"ml-72\")\r\n )}\r\n >\r\n {children}\r\n </main>\r\n </div>\r\n\r\n {/* Mobile Overlay */}\r\n {!sidebarCollapsed && (\r\n <div \r\n className=\"fixed inset-0 bg-black bg-opacity-50 z-30 md:hidden\"\r\n onClick={toggleSidebar}\r\n />\r\n )}\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nDashboardLayout.displayName = \"DashboardLayout\";\r\n\r\nexport { DashboardLayout };"],"names":["_jsxs","_jsx"],"mappings":";;;;;;AAmBA,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CACtC,CAAC,EACC,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EAClB,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,GAAG,KAAK,EACT,EAAE,GAAG,KAAI;AACR,IAAA,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;IAErE,MAAM,aAAa,GAAG,MAAK;QACzB,mBAAmB,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;AACpC,IAAA,CAAC;AAED,IAAA,QACEA,sBAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,QAAA,EAAA,CAE3EC,qBAAA,CAAC,OAAO,EAAA,EACN,SAAS,EAAE,gBAAgB,EAC3B,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,gBAAgB,EAC3B,UAAU,EAAE,iBAAiB,EAC7B,WAAW,EAAE,kBAAkB,EAC/B,SAAS,EAAE,KAAK,CAAC,gBAAgB,EAAA,CACjC,EAGFD,sBAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,4BAA4B,EAAA,QAAA,EAAA,CAEzCC,sBAAC,eAAe,EAAA,EACd,gBAAgB,EAAE,gBAAgB,EAClC,YAAY,EAAE,aAAa,EAC3B,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,iBAAiB,EACpC,cAAc,EAAE,cAAc,EAAA,CAC9B,EAGFA,qBAAA,CAAA,MAAA,EAAA,EACE,SAAS,EAAE,EAAE,CACX,wCAAwC,EACxC,KAAK,CAAC;AACJ,8BAAE;AACF,+BAAG,gBAAgB,GAAG,OAAO,GAAG,OAAO,CAAC,CAC3C,EAAA,QAAA,EAEA,QAAQ,EAAA,CACJ,CAAA,EAAA,CACH,EAGL,CAAC,gBAAgB,KAChBA,qBAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAC,qDAAqD,EAC/D,OAAO,EAAE,aAAa,EAAA,CACtB,CACH,CAAA,EAAA,CACG;AAEV,CAAC;AAGH,eAAe,CAAC,WAAW,GAAG,iBAAiB;;;;"}
1
+ {"version":3,"file":"DashboardLayout.js","sources":["../../../src/components/DashboardLayout/DashboardLayout.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { cn } from \"../../utils/cn\";\r\nimport { Sidebar, type MenuItem } from \"../Sidebar\";\r\nimport { DashboardHeader, type BreadcrumbItem } from \"../DashboardHeader\";\r\n\r\ninterface DashboardLayoutProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n sidebarMenuItems?: MenuItem[];\r\n activeSidebarItem?: string;\r\n breadcrumbs?: BreadcrumbItem[];\r\n onSidebarItemClick?: (itemId: string) => void;\r\n showSearch?: boolean;\r\n searchPlaceholder?: string;\r\n onSearchChange?: (value: string) => void;\r\n sidebarClassName?: string;\r\n disableSidebarMargin?: boolean;\r\n}\r\n\r\nconst DashboardLayout = React.forwardRef<HTMLDivElement, DashboardLayoutProps>(\r\n ({ \r\n children,\r\n className,\r\n sidebarMenuItems,\r\n activeSidebarItem,\r\n breadcrumbs,\r\n onSidebarItemClick,\r\n showSearch,\r\n searchPlaceholder,\r\n onSearchChange,\r\n ...props \r\n }, ref) => {\r\n const [sidebarCollapsed, setSidebarCollapsed] = React.useState(false);\r\n\r\n const toggleSidebar = () => {\r\n setSidebarCollapsed(prev => !prev);\r\n };\r\n\r\n return (\r\n <div ref={ref} className={cn(\"min-h-screen bg-gray-50\", className)} {...props}>\r\n {/* Sidebar */}\r\n <Sidebar\r\n collapsed={sidebarCollapsed}\r\n onToggle={toggleSidebar}\r\n menuItems={sidebarMenuItems}\r\n activeItem={activeSidebarItem}\r\n onItemClick={onSidebarItemClick}\r\n className={props.sidebarClassName}\r\n />\r\n\r\n {/* Main Content Area */}\r\n <div className=\"flex flex-col min-h-screen\">\r\n {/* Header */}\r\n <DashboardHeader\r\n sidebarCollapsed={sidebarCollapsed}\r\n onMenuToggle={toggleSidebar}\r\n breadcrumbs={breadcrumbs}\r\n showSearch={showSearch}\r\n searchPlaceholder={searchPlaceholder}\r\n onSearchChange={onSearchChange}\r\n />\r\n\r\n {/* Main Content */}\r\n <main \r\n className={cn(\r\n \"flex-1 transition-all duration-300 p-6\",\r\n props.disableSidebarMargin\r\n ? \"\"\r\n : (sidebarCollapsed ? \"ml-16\" : \"ml-72\")\r\n )}\r\n >\r\n {children}\r\n </main>\r\n </div>\r\n\r\n {/* Mobile Overlay */}\r\n {!sidebarCollapsed && (\r\n <div \r\n className=\"fixed inset-0 bg-black bg-opacity-50 z-30 md:hidden\"\r\n onClick={toggleSidebar}\r\n />\r\n )}\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nDashboardLayout.displayName = \"DashboardLayout\";\r\n\r\nexport { DashboardLayout };"],"names":["_jsxs","_jsx"],"mappings":";;;;;;AAmBA,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CACtC,CAAC,EACC,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EAClB,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,GAAG,KAAK,EACT,EAAE,GAAG,KAAI;AACR,IAAA,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;IAErE,MAAM,aAAa,GAAG,MAAK;QACzB,mBAAmB,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;AACpC,IAAA,CAAC;AAED,IAAA,QACEA,IAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,QAAA,EAAA,CAE3EC,GAAA,CAAC,OAAO,EAAA,EACN,SAAS,EAAE,gBAAgB,EAC3B,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,gBAAgB,EAC3B,UAAU,EAAE,iBAAiB,EAC7B,WAAW,EAAE,kBAAkB,EAC/B,SAAS,EAAE,KAAK,CAAC,gBAAgB,EAAA,CACjC,EAGFD,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,4BAA4B,EAAA,QAAA,EAAA,CAEzCC,IAAC,eAAe,EAAA,EACd,gBAAgB,EAAE,gBAAgB,EAClC,YAAY,EAAE,aAAa,EAC3B,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,iBAAiB,EACpC,cAAc,EAAE,cAAc,EAAA,CAC9B,EAGFA,GAAA,CAAA,MAAA,EAAA,EACE,SAAS,EAAE,EAAE,CACX,wCAAwC,EACxC,KAAK,CAAC;AACJ,8BAAE;AACF,+BAAG,gBAAgB,GAAG,OAAO,GAAG,OAAO,CAAC,CAC3C,EAAA,QAAA,EAEA,QAAQ,EAAA,CACJ,CAAA,EAAA,CACH,EAGL,CAAC,gBAAgB,KAChBA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAC,qDAAqD,EAC/D,OAAO,EAAE,aAAa,EAAA,CACtB,CACH,CAAA,EAAA,CACG;AAEV,CAAC;AAGH,eAAe,CAAC,WAAW,GAAG,iBAAiB;;;;"}
@@ -1,4 +1,4 @@
1
- import { j as jsxRuntimeExports } from '../../_virtual/jsx-runtime.js';
1
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import { useState, useCallback, useMemo } from 'react';
3
3
  import { cva } from 'class-variance-authority';
4
4
  import { cn } from '../../utils/cn.js';
@@ -69,7 +69,7 @@ const ColumnFilter = ({ column, value, onChange, }) => {
69
69
  };
70
70
  if (!column.filterable)
71
71
  return null;
72
- return (jsxRuntimeExports.jsxs("div", { className: "relative inline-block", children: [jsxRuntimeExports.jsx(Button, { variant: "ghost", size: "sm", onClick: () => setIsOpen(!isOpen), className: cn("p-1 h-6 w-6", value && "text-primary-600"), children: jsxRuntimeExports.jsx(Filter, { className: "h-3 w-3" }) }), isOpen && (jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx("div", { className: "fixed inset-0 z-10", onClick: () => setIsOpen(false) }), jsxRuntimeExports.jsxs("div", { className: "absolute top-full left-0 z-20 mt-1 bg-white border border-gray-200 rounded-lg shadow-lg p-3 min-w-[200px]", children: [column.filterType === 'select' && column.filterOptions ? (jsxRuntimeExports.jsx("div", { className: "space-y-2", children: column.filterOptions.map((option) => (jsxRuntimeExports.jsxs("label", { className: "flex items-center space-x-2", children: [jsxRuntimeExports.jsx(Checkbox, { checked: tempValue === option.value, onChange: () => setTempValue(tempValue === option.value ? '' : option.value) }), jsxRuntimeExports.jsx("span", { className: "text-sm", children: option.label })] }, option.value))) })) : (jsxRuntimeExports.jsx(Input, { placeholder: `Filter ${column.title}`, value: tempValue, onChange: (e) => setTempValue(e.target.value), className: "mb-2" })), jsxRuntimeExports.jsxs("div", { className: "flex justify-end space-x-2 mt-3", children: [jsxRuntimeExports.jsx(Button, { variant: "ghost", size: "sm", onClick: handleClear, children: "Clear" }), jsxRuntimeExports.jsx(Button, { variant: "primary", size: "sm", onClick: handleApply, children: "Apply" })] })] })] }))] }));
72
+ return (jsxs("div", { className: "relative inline-block", children: [jsx(Button, { variant: "ghost", size: "sm", onClick: () => setIsOpen(!isOpen), className: cn("p-1 h-6 w-6", value && "text-primary-600"), children: jsx(Filter, { className: "h-3 w-3" }) }), isOpen && (jsxs(Fragment, { children: [jsx("div", { className: "fixed inset-0 z-10", onClick: () => setIsOpen(false) }), jsxs("div", { className: "absolute top-full left-0 z-20 mt-1 bg-white border border-gray-200 rounded-lg shadow-lg p-3 min-w-[200px]", children: [column.filterType === 'select' && column.filterOptions ? (jsx("div", { className: "space-y-2", children: column.filterOptions.map((option) => (jsxs("label", { className: "flex items-center space-x-2", children: [jsx(Checkbox, { checked: tempValue === option.value, onChange: () => setTempValue(tempValue === option.value ? '' : option.value) }), jsx("span", { className: "text-sm", children: option.label })] }, option.value))) })) : (jsx(Input, { placeholder: `Filter ${column.title}`, value: tempValue, onChange: (e) => setTempValue(e.target.value), className: "mb-2" })), jsxs("div", { className: "flex justify-end space-x-2 mt-3", children: [jsx(Button, { variant: "ghost", size: "sm", onClick: handleClear, children: "Clear" }), jsx(Button, { variant: "primary", size: "sm", onClick: handleApply, children: "Apply" })] })] })] }))] }));
73
73
  };
74
74
  // Pagination component
75
75
  const TablePagination = ({ pagination, onChange }) => {
@@ -94,7 +94,7 @@ const TablePagination = ({ pagination, onChange }) => {
94
94
  }
95
95
  return pages;
96
96
  };
97
- return (jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between px-4 py-3 bg-white border-t border-gray-200", children: [jsxRuntimeExports.jsxs("div", { className: "flex items-center space-x-4", children: [jsxRuntimeExports.jsxs("span", { className: "text-sm text-gray-700", children: ["Showing ", startRecord, " to ", endRecord, " of ", total, " results"] }), showSizeChanger && (jsxRuntimeExports.jsxs("div", { className: "flex items-center space-x-2", children: [jsxRuntimeExports.jsx("span", { className: "text-sm text-gray-700", children: "Show" }), jsxRuntimeExports.jsx("select", { value: pageSize, onChange: (e) => onChange(1, Number(e.target.value)), className: "border border-gray-300 rounded px-2 py-1 text-sm", children: pageSizeOptions.map(size => (jsxRuntimeExports.jsx("option", { value: size, children: size }, size))) }), jsxRuntimeExports.jsx("span", { className: "text-sm text-gray-700", children: "per page" })] }))] }), jsxRuntimeExports.jsxs("div", { className: "flex items-center space-x-1", children: [jsxRuntimeExports.jsx(Button, { variant: "ghost", size: "sm", onClick: () => onChange(1, pageSize), disabled: current === 1, children: jsxRuntimeExports.jsx(ChevronsLeft, { className: "h-4 w-4" }) }), jsxRuntimeExports.jsx(Button, { variant: "ghost", size: "sm", onClick: () => onChange(current - 1, pageSize), disabled: current === 1, children: jsxRuntimeExports.jsx(ChevronLeft, { className: "h-4 w-4" }) }), getPageNumbers().map(page => (jsxRuntimeExports.jsx(Button, { variant: current === page ? "primary" : "ghost", size: "sm", onClick: () => onChange(page, pageSize), className: "min-w-[32px]", children: page }, page))), jsxRuntimeExports.jsx(Button, { variant: "ghost", size: "sm", onClick: () => onChange(current + 1, pageSize), disabled: current === totalPages, children: jsxRuntimeExports.jsx(ChevronRight, { className: "h-4 w-4" }) }), jsxRuntimeExports.jsx(Button, { variant: "ghost", size: "sm", onClick: () => onChange(totalPages, pageSize), disabled: current === totalPages, children: jsxRuntimeExports.jsx(ChevronsRight, { className: "h-4 w-4" }) })] })] }));
97
+ return (jsxs("div", { className: "flex items-center justify-between px-4 py-3 bg-white border-t border-gray-200", children: [jsxs("div", { className: "flex items-center space-x-4", children: [jsxs("span", { className: "text-sm text-gray-700", children: ["Showing ", startRecord, " to ", endRecord, " of ", total, " results"] }), showSizeChanger && (jsxs("div", { className: "flex items-center space-x-2", children: [jsx("span", { className: "text-sm text-gray-700", children: "Show" }), jsx("select", { value: pageSize, onChange: (e) => onChange(1, Number(e.target.value)), className: "border border-gray-300 rounded px-2 py-1 text-sm", children: pageSizeOptions.map(size => (jsx("option", { value: size, children: size }, size))) }), jsx("span", { className: "text-sm text-gray-700", children: "per page" })] }))] }), jsxs("div", { className: "flex items-center space-x-1", children: [jsx(Button, { variant: "ghost", size: "sm", onClick: () => onChange(1, pageSize), disabled: current === 1, children: jsx(ChevronsLeft, { className: "h-4 w-4" }) }), jsx(Button, { variant: "ghost", size: "sm", onClick: () => onChange(current - 1, pageSize), disabled: current === 1, children: jsx(ChevronLeft, { className: "h-4 w-4" }) }), getPageNumbers().map(page => (jsx(Button, { variant: current === page ? "primary" : "ghost", size: "sm", onClick: () => onChange(page, pageSize), className: "min-w-[32px]", children: page }, page))), jsx(Button, { variant: "ghost", size: "sm", onClick: () => onChange(current + 1, pageSize), disabled: current === totalPages, children: jsx(ChevronRight, { className: "h-4 w-4" }) }), jsx(Button, { variant: "ghost", size: "sm", onClick: () => onChange(totalPages, pageSize), disabled: current === totalPages, children: jsx(ChevronsRight, { className: "h-4 w-4" }) })] })] }));
98
98
  };
99
99
  const DataTable = ({ columns, dataSource, loading = false, rowKey = 'id', pagination = { current: 1, pageSize: 10, total: 0 }, rowSelection, size = 'middle', bordered = false, showHeader = true, title, footer, className, onSort, onFilter, onChange, ...props }) => {
100
100
  const [sortConfig, setSortConfig] = useState({ key: '', direction: null });
@@ -216,29 +216,29 @@ const DataTable = ({ columns, dataSource, loading = false, rowKey = 'id', pagina
216
216
  const isAllSelected = selectedRowKeys.length === dataSource.length && dataSource.length > 0;
217
217
  const isIndeterminate = selectedRowKeys.length > 0 && selectedRowKeys.length < dataSource.length;
218
218
  if (loading) {
219
- return (jsxRuntimeExports.jsxs("div", { className: cn("w-full", className), children: [title && jsxRuntimeExports.jsx("div", { className: "mb-4", children: title() }), jsxRuntimeExports.jsx("div", { className: "border border-gray-200 rounded-lg overflow-hidden", children: jsxRuntimeExports.jsx("div", { className: "p-4 space-y-3", children: Array.from({ length: 5 }).map((_, i) => (jsxRuntimeExports.jsxs("div", { className: "flex space-x-4", children: [jsxRuntimeExports.jsx(Skeleton, { className: "h-4 w-8" }), jsxRuntimeExports.jsx(Skeleton, { className: "h-4 flex-1" }), jsxRuntimeExports.jsx(Skeleton, { className: "h-4 w-24" }), jsxRuntimeExports.jsx(Skeleton, { className: "h-4 w-16" })] }, i))) }) })] }));
219
+ return (jsxs("div", { className: cn("w-full", className), children: [title && jsx("div", { className: "mb-4", children: title() }), jsx("div", { className: "border border-gray-200 rounded-lg overflow-hidden", children: jsx("div", { className: "p-4 space-y-3", children: Array.from({ length: 5 }).map((_, i) => (jsxs("div", { className: "flex space-x-4", children: [jsx(Skeleton, { className: "h-4 w-8" }), jsx(Skeleton, { className: "h-4 flex-1" }), jsx(Skeleton, { className: "h-4 w-24" }), jsx(Skeleton, { className: "h-4 w-16" })] }, i))) }) })] }));
220
220
  }
221
- return (jsxRuntimeExports.jsxs("div", { className: cn("w-full", className), children: [title && jsxRuntimeExports.jsx("div", { className: "mb-4", children: title() }), jsxRuntimeExports.jsxs("div", { className: "border border-gray-200 rounded-lg overflow-hidden", children: [jsxRuntimeExports.jsx("div", { className: "overflow-x-auto", children: jsxRuntimeExports.jsxs("table", { className: cn(tableVariants({ size, bordered })), children: [showHeader && (jsxRuntimeExports.jsx("thead", { children: jsxRuntimeExports.jsxs("tr", { children: [rowSelection && (jsxRuntimeExports.jsx("th", { className: cn(cellVariants({ size, type: "header" }), "w-12"), children: rowSelection.type !== 'radio' && (jsxRuntimeExports.jsx(Checkbox, { checked: isAllSelected, onChange: (e) => handleSelectAll(e.target.checked), className: cn(isIndeterminate && "indeterminate") })) })), columns.map((column) => (jsxRuntimeExports.jsx("th", { className: cn(cellVariants({
221
+ return (jsxs("div", { className: cn("w-full", className), children: [title && jsx("div", { className: "mb-4", children: title() }), jsxs("div", { className: "border border-gray-200 rounded-lg overflow-hidden", children: [jsx("div", { className: "overflow-x-auto", children: jsxs("table", { className: cn(tableVariants({ size, bordered })), children: [showHeader && (jsx("thead", { children: jsxs("tr", { children: [rowSelection && (jsx("th", { className: cn(cellVariants({ size, type: "header" }), "w-12"), children: rowSelection.type !== 'radio' && (jsx(Checkbox, { checked: isAllSelected, onChange: (e) => handleSelectAll(e.target.checked), className: cn(isIndeterminate && "indeterminate") })) })), columns.map((column) => (jsx("th", { className: cn(cellVariants({
222
222
  size,
223
223
  align: column.align,
224
224
  type: "header"
225
- }), column.width && `w-[${column.width}]`), children: jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between", children: [jsxRuntimeExports.jsxs("div", { className: "flex items-center space-x-2", children: [jsxRuntimeExports.jsx("span", { children: column.title }), column.sortable && (jsxRuntimeExports.jsxs("button", { onClick: () => handleSort(column.key), className: "flex flex-col items-center hover:text-primary-600", children: [jsxRuntimeExports.jsx(ChevronUp, { className: cn("h-3 w-3", sortConfig.key === column.key && sortConfig.direction === 'asc'
225
+ }), column.width && `w-[${column.width}]`), children: jsxs("div", { className: "flex items-center justify-between", children: [jsxs("div", { className: "flex items-center space-x-2", children: [jsx("span", { children: column.title }), column.sortable && (jsxs("button", { onClick: () => handleSort(column.key), className: "flex flex-col items-center hover:text-primary-600", children: [jsx(ChevronUp, { className: cn("h-3 w-3", sortConfig.key === column.key && sortConfig.direction === 'asc'
226
226
  ? "text-primary-600"
227
- : "text-gray-400") }), jsxRuntimeExports.jsx(ChevronDown, { className: cn("h-3 w-3 -mt-1", sortConfig.key === column.key && sortConfig.direction === 'desc'
227
+ : "text-gray-400") }), jsx(ChevronDown, { className: cn("h-3 w-3 -mt-1", sortConfig.key === column.key && sortConfig.direction === 'desc'
228
228
  ? "text-primary-600"
229
- : "text-gray-400") })] }))] }), jsxRuntimeExports.jsx(ColumnFilter, { column: column, value: filters[column.key], onChange: (value) => handleFilter(column.key, value) })] }) }, column.key)))] }) })), jsxRuntimeExports.jsx("tbody", { children: paginatedData.length === 0 ? (jsxRuntimeExports.jsx("tr", { children: jsxRuntimeExports.jsx("td", { colSpan: columns.length + (rowSelection ? 1 : 0), className: cn(cellVariants({ size, align: "center" }), "py-8"), children: jsxRuntimeExports.jsxs("div", { className: "text-gray-500", children: [jsxRuntimeExports.jsx("div", { className: "text-4xl mb-2", children: "\uD83D\uDCCB" }), jsxRuntimeExports.jsx("div", { children: "No data available" })] }) }) })) : (paginatedData.map((record, index) => {
229
+ : "text-gray-400") })] }))] }), jsx(ColumnFilter, { column: column, value: filters[column.key], onChange: (value) => handleFilter(column.key, value) })] }) }, column.key)))] }) })), jsx("tbody", { children: paginatedData.length === 0 ? (jsx("tr", { children: jsx("td", { colSpan: columns.length + (rowSelection ? 1 : 0), className: cn(cellVariants({ size, align: "center" }), "py-8"), children: jsxs("div", { className: "text-gray-500", children: [jsx("div", { className: "text-4xl mb-2", children: "\uD83D\uDCCB" }), jsx("div", { children: "No data available" })] }) }) })) : (paginatedData.map((record, index) => {
230
230
  const key = getRowKey(record, index);
231
231
  const isSelected = selectedRowKeys.includes(key);
232
- return (jsxRuntimeExports.jsxs("tr", { className: cn("hover:bg-gray-50 transition-colors", isSelected && "bg-primary-50"), ...(props.onRow?.(record, index) ?? {}), children: [rowSelection && (jsxRuntimeExports.jsx("td", { className: cn(cellVariants({ size })), children: jsxRuntimeExports.jsx(Checkbox, { checked: isSelected, onChange: (e) => handleRowSelect(record, e.target.checked), ...rowSelection.getCheckboxProps?.(record) }) })), columns.map((column) => (jsxRuntimeExports.jsx("td", { className: cn(cellVariants({
232
+ return (jsxs("tr", { className: cn("hover:bg-gray-50 transition-colors", isSelected && "bg-primary-50"), ...(props.onRow?.(record, index) ?? {}), children: [rowSelection && (jsx("td", { className: cn(cellVariants({ size })), children: jsx(Checkbox, { checked: isSelected, onChange: (e) => handleRowSelect(record, e.target.checked), ...rowSelection.getCheckboxProps?.(record) }) })), columns.map((column) => (jsx("td", { className: cn(cellVariants({
233
233
  size,
234
234
  align: column.align
235
235
  })), children: column.render
236
236
  ? column.render(record[column.dataIndex], record, index)
237
237
  : String(record[column.dataIndex] || '') }, column.key)))] }, key));
238
- })) })] }) }), currentPagination && (jsxRuntimeExports.jsx(TablePagination, { pagination: currentPagination, onChange: (page, pageSize) => {
238
+ })) })] }) }), currentPagination && (jsx(TablePagination, { pagination: currentPagination, onChange: (page, pageSize) => {
239
239
  const newPagination = { ...currentPagination, current: page, pageSize };
240
240
  onChange?.(newPagination, filters, sortConfig);
241
- } }))] }), footer && jsxRuntimeExports.jsx("div", { className: "mt-4", children: footer() })] }));
241
+ } }))] }), footer && jsx("div", { className: "mt-4", children: footer() })] }));
242
242
  };
243
243
  DataTable.displayName = "DataTable";
244
244
 
@@ -1 +1 @@
1
- {"version":3,"file":"DataTable.js","sources":["../../../src/components/DataTable/DataTable.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { useState, useMemo, useCallback } from \"react\";\nimport { \n ChevronUp, \n ChevronDown, \n Search, \n Filter, \n ChevronLeft, \n ChevronRight,\n ChevronsLeft,\n ChevronsRight,\n MoreHorizontal,\n Check,\n Minus\n} from \"lucide-react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\nimport { Button } from \"../Button\";\nimport { Input } from \"../Input\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Badge } from \"../Badge\";\nimport { Spinner } from \"../Spinner\";\nimport { Skeleton } from \"../Skeleton\";\nimport type { \n DataTableProps, \n Column, \n FilterValue, \n SortConfig, \n PaginationConfig,\n RowSelection \n} from \"./DataTable.types\";\n\nconst tableVariants = cva(\n \"w-full border-collapse bg-white\",\n {\n variants: {\n size: {\n small: \"text-xs\",\n middle: \"text-sm\",\n large: \"text-base\",\n },\n bordered: {\n true: \"border border-gray-200\",\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"middle\",\n bordered: false,\n },\n }\n);\n\nconst cellVariants = cva(\n \"border-b border-gray-200 transition-colors\",\n {\n variants: {\n size: {\n small: \"px-2 py-1\",\n middle: \"px-4 py-3\",\n large: \"px-6 py-4\",\n },\n align: {\n left: \"text-left\",\n center: \"text-center\",\n right: \"text-right\",\n },\n type: {\n header: \"bg-gray-50 font-semibold text-gray-900 border-b-2 border-gray-200\",\n body: \"text-gray-700 hover:bg-gray-50\",\n },\n },\n defaultVariants: {\n size: \"middle\",\n align: \"left\",\n type: \"body\",\n },\n }\n);\n\n// Filter component for individual columns\nconst ColumnFilter = <T extends Record<string, any>>({\n column,\n value,\n onChange,\n}: {\n column: Column<T>;\n value: any;\n onChange: (value: any) => void;\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const [tempValue, setTempValue] = useState(value || '');\n\n const handleApply = () => {\n onChange(tempValue);\n setIsOpen(false);\n };\n\n const handleClear = () => {\n setTempValue('');\n onChange('');\n setIsOpen(false);\n };\n\n if (!column.filterable) return null;\n\n return (\n <div className=\"relative inline-block\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setIsOpen(!isOpen)}\n className={cn(\n \"p-1 h-6 w-6\",\n value && \"text-primary-600\"\n )}\n >\n <Filter className=\"h-3 w-3\" />\n </Button>\n \n {isOpen && (\n <>\n <div \n className=\"fixed inset-0 z-10\" \n onClick={() => setIsOpen(false)}\n />\n <div className=\"absolute top-full left-0 z-20 mt-1 bg-white border border-gray-200 rounded-lg shadow-lg p-3 min-w-[200px]\">\n {column.filterType === 'select' && column.filterOptions ? (\n <div className=\"space-y-2\">\n {column.filterOptions.map((option) => (\n <label key={option.value} className=\"flex items-center space-x-2\">\n <Checkbox\n checked={tempValue === option.value}\n onChange={() => setTempValue(\n tempValue === option.value ? '' : option.value\n )}\n />\n <span className=\"text-sm\">{option.label}</span>\n </label>\n ))}\n </div>\n ) : (\n <Input\n placeholder={`Filter ${column.title}`}\n value={tempValue}\n onChange={(e) => setTempValue(e.target.value)}\n className=\"mb-2\"\n />\n )}\n \n <div className=\"flex justify-end space-x-2 mt-3\">\n <Button variant=\"ghost\" size=\"sm\" onClick={handleClear}>\n Clear\n </Button>\n <Button variant=\"primary\" size=\"sm\" onClick={handleApply}>\n Apply\n </Button>\n </div>\n </div>\n </>\n )}\n </div>\n );\n};\n\n// Pagination component\nconst TablePagination: React.FC<{\n pagination: PaginationConfig;\n onChange: (page: number, pageSize: number) => void;\n}> = ({ pagination, onChange }) => {\n const { current, pageSize, total, showSizeChanger = true, pageSizeOptions = [10, 20, 50, 100] } = pagination;\n const totalPages = Math.ceil(total / pageSize);\n const startRecord = (current - 1) * pageSize + 1;\n const endRecord = Math.min(current * pageSize, total);\n\n const getPageNumbers = () => {\n const pages = [];\n const maxVisible = 5;\n \n if (totalPages <= maxVisible) {\n for (let i = 1; i <= totalPages; i++) {\n pages.push(i);\n }\n } else {\n const start = Math.max(1, current - 2);\n const end = Math.min(totalPages, start + maxVisible - 1);\n \n for (let i = start; i <= end; i++) {\n pages.push(i);\n }\n }\n \n return pages;\n };\n\n return (\n <div className=\"flex items-center justify-between px-4 py-3 bg-white border-t border-gray-200\">\n <div className=\"flex items-center space-x-4\">\n <span className=\"text-sm text-gray-700\">\n Showing {startRecord} to {endRecord} of {total} results\n </span>\n \n {showSizeChanger && (\n <div className=\"flex items-center space-x-2\">\n <span className=\"text-sm text-gray-700\">Show</span>\n <select\n value={pageSize}\n onChange={(e) => onChange(1, Number(e.target.value))}\n className=\"border border-gray-300 rounded px-2 py-1 text-sm\"\n >\n {pageSizeOptions.map(size => (\n <option key={size} value={size}>{size}</option>\n ))}\n </select>\n <span className=\"text-sm text-gray-700\">per page</span>\n </div>\n )}\n </div>\n \n <div className=\"flex items-center space-x-1\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => onChange(1, pageSize)}\n disabled={current === 1}\n >\n <ChevronsLeft className=\"h-4 w-4\" />\n </Button>\n \n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => onChange(current - 1, pageSize)}\n disabled={current === 1}\n >\n <ChevronLeft className=\"h-4 w-4\" />\n </Button>\n \n {getPageNumbers().map(page => (\n <Button\n key={page}\n variant={current === page ? \"primary\" : \"ghost\"}\n size=\"sm\"\n onClick={() => onChange(page, pageSize)}\n className=\"min-w-[32px]\"\n >\n {page}\n </Button>\n ))}\n \n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => onChange(current + 1, pageSize)}\n disabled={current === totalPages}\n >\n <ChevronRight className=\"h-4 w-4\" />\n </Button>\n \n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => onChange(totalPages, pageSize)}\n disabled={current === totalPages}\n >\n <ChevronsRight className=\"h-4 w-4\" />\n </Button>\n </div>\n </div>\n );\n};\n\nexport const DataTable = <T extends Record<string, any>>({\n columns,\n dataSource,\n loading = false,\n rowKey = 'id',\n pagination = { current: 1, pageSize: 10, total: 0 },\n rowSelection,\n size = 'middle',\n bordered = false,\n showHeader = true,\n title,\n footer,\n className,\n onSort,\n onFilter,\n onChange,\n ...props\n}: DataTableProps<T>) => {\n const [sortConfig, setSortConfig] = useState<SortConfig>({ key: '', direction: null });\n const [filters, setFilters] = useState<FilterValue>({});\n const [selectedRowKeys, setSelectedRowKeys] = useState<React.Key[]>(\n rowSelection?.selectedRowKeys || []\n );\n\n // Get row key function\n const getRowKey = useCallback((record: T, index: number): React.Key => {\n if (typeof rowKey === 'function') {\n return rowKey(record);\n }\n return record[rowKey] || index;\n }, [rowKey]);\n\n // Handle sorting\n const handleSort = useCallback((columnKey: string) => {\n let newDirection: 'asc' | 'desc' | null;\n if (sortConfig.key !== columnKey) {\n newDirection = 'asc';\n } else if (sortConfig.direction === 'asc') {\n newDirection = 'desc';\n } else if (sortConfig.direction === 'desc') {\n newDirection = null;\n } else {\n newDirection = 'asc';\n }\n const newSortConfig: SortConfig = { key: columnKey, direction: newDirection };\n setSortConfig(newSortConfig);\n onSort?.(newSortConfig);\n onChange?.(pagination as PaginationConfig, filters, newSortConfig);\n }, [sortConfig, pagination, filters, onSort, onChange]);\n\n // Handle filtering\n const handleFilter = useCallback((columnKey: string, value: any) => {\n const newFilters = { ...filters };\n if (value === '' || value === null || value === undefined) {\n delete newFilters[columnKey];\n } else {\n newFilters[columnKey] = value;\n }\n \n setFilters(newFilters);\n onFilter?.(newFilters);\n onChange?.(pagination as PaginationConfig, newFilters, sortConfig);\n }, [filters, pagination, sortConfig, onFilter, onChange]);\n\n // Handle row selection\n const handleRowSelect = useCallback((record: T, selected: boolean) => {\n const key = getRowKey(record, 0);\n let newSelectedKeys: React.Key[];\n \n if (rowSelection?.type === 'radio') {\n newSelectedKeys = selected ? [key] : [];\n } else {\n newSelectedKeys = selected \n ? [...selectedRowKeys, key]\n : selectedRowKeys.filter(k => k !== key);\n }\n \n setSelectedRowKeys(newSelectedKeys);\n const selectedRows = dataSource.filter(item => \n newSelectedKeys.includes(getRowKey(item, 0))\n );\n \n rowSelection?.onChange?.(newSelectedKeys, selectedRows);\n rowSelection?.onSelect?.(record, selected, selectedRows, {} as Event);\n }, [selectedRowKeys, rowSelection, dataSource, getRowKey]);\n\n // Handle select all\n const handleSelectAll = useCallback((selected: boolean) => {\n const newSelectedKeys = selected \n ? dataSource.map((item, index) => getRowKey(item, index))\n : [];\n \n setSelectedRowKeys(newSelectedKeys);\n const selectedRows = selected ? dataSource : [];\n \n rowSelection?.onChange?.(newSelectedKeys, selectedRows);\n rowSelection?.onSelectAll?.(selected, selectedRows, dataSource);\n }, [dataSource, rowSelection, getRowKey]);\n\n // Filter and sort data\n const processedData = useMemo(() => {\n let result = [...dataSource];\n \n // Apply filters\n Object.entries(filters).forEach(([key, value]) => {\n if (value !== '' && value !== null && value !== undefined) {\n result = result.filter(item => {\n const itemValue = item[key];\n if (typeof itemValue === 'string') {\n return itemValue.toLowerCase().includes(String(value).toLowerCase());\n }\n return itemValue === value;\n });\n }\n });\n \n // Apply sorting\n if (sortConfig.key && sortConfig.direction) {\n result.sort((a, b) => {\n const aValue = a[sortConfig.key];\n const bValue = b[sortConfig.key];\n \n if (aValue === bValue) return 0;\n \n const comparison = aValue < bValue ? -1 : 1;\n return sortConfig.direction === 'asc' ? comparison : -comparison;\n });\n }\n \n return result;\n }, [dataSource, filters, sortConfig]);\n\n // Pagination logic\n const paginatedData = useMemo(() => {\n if (!pagination) return processedData;\n \n const { current, pageSize } = pagination;\n const startIndex = (current - 1) * pageSize;\n return processedData.slice(startIndex, startIndex + pageSize);\n }, [processedData, pagination]);\n\n // Update pagination total\n const currentPagination = useMemo(() => {\n if (!pagination) return false;\n return {\n ...pagination,\n total: processedData.length,\n };\n }, [pagination, processedData.length]);\n\n // Selection state\n const isAllSelected = selectedRowKeys.length === dataSource.length && dataSource.length > 0;\n const isIndeterminate = selectedRowKeys.length > 0 && selectedRowKeys.length < dataSource.length;\n\n if (loading) {\n return (\n <div className={cn(\"w-full\", className)}>\n {title && <div className=\"mb-4\">{title()}</div>}\n <div className=\"border border-gray-200 rounded-lg overflow-hidden\">\n <div className=\"p-4 space-y-3\">\n {Array.from({ length: 5 }).map((_, i) => (\n <div key={i} className=\"flex space-x-4\">\n <Skeleton className=\"h-4 w-8\" />\n <Skeleton className=\"h-4 flex-1\" />\n <Skeleton className=\"h-4 w-24\" />\n <Skeleton className=\"h-4 w-16\" />\n </div>\n ))}\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div className={cn(\"w-full\", className)}>\n {title && <div className=\"mb-4\">{title()}</div>}\n \n <div className=\"border border-gray-200 rounded-lg overflow-hidden\">\n <div className=\"overflow-x-auto\">\n <table className={cn(tableVariants({ size, bordered }))}>\n {showHeader && (\n <thead>\n <tr>\n {rowSelection && (\n <th className={cn(cellVariants({ size, type: \"header\" }), \"w-12\")}>\n {rowSelection.type !== 'radio' && (\n <Checkbox\n checked={isAllSelected}\n onChange={(e) => handleSelectAll(e.target.checked)}\n className={cn(isIndeterminate && \"indeterminate\")}\n />\n )}\n </th>\n )}\n \n {columns.map((column) => (\n <th\n key={column.key}\n className={cn(\n cellVariants({ \n size, \n align: column.align, \n type: \"header\" \n }),\n column.width && `w-[${column.width}]`\n )}\n >\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center space-x-2\">\n <span>{column.title}</span>\n {column.sortable && (\n <button\n onClick={() => handleSort(column.key)}\n className=\"flex flex-col items-center hover:text-primary-600\"\n >\n <ChevronUp \n className={cn(\n \"h-3 w-3\",\n sortConfig.key === column.key && sortConfig.direction === 'asc'\n ? \"text-primary-600\" \n : \"text-gray-400\"\n )}\n />\n <ChevronDown \n className={cn(\n \"h-3 w-3 -mt-1\",\n sortConfig.key === column.key && sortConfig.direction === 'desc'\n ? \"text-primary-600\" \n : \"text-gray-400\"\n )}\n />\n </button>\n )}\n </div>\n \n <ColumnFilter\n column={column}\n value={filters[column.key]}\n onChange={(value) => handleFilter(column.key, value)}\n />\n </div>\n </th>\n ))}\n </tr>\n </thead>\n )}\n \n <tbody>\n {paginatedData.length === 0 ? (\n <tr>\n <td \n colSpan={columns.length + (rowSelection ? 1 : 0)}\n className={cn(cellVariants({ size, align: \"center\" }), \"py-8\")}\n >\n <div className=\"text-gray-500\">\n <div className=\"text-4xl mb-2\">📋</div>\n <div>No data available</div>\n </div>\n </td>\n </tr>\n ) : (\n paginatedData.map((record, index) => {\n const key = getRowKey(record, index);\n const isSelected = selectedRowKeys.includes(key);\n \n return (\n <tr\n key={key}\n className={cn(\n \"hover:bg-gray-50 transition-colors\",\n isSelected && \"bg-primary-50\"\n )}\n {...(props.onRow?.(record, index) ?? {})}\n >\n {rowSelection && (\n <td className={cn(cellVariants({ size }))}>\n <Checkbox\n checked={isSelected}\n onChange={(e) => handleRowSelect(record, e.target.checked)}\n {...rowSelection.getCheckboxProps?.(record)}\n />\n </td>\n )}\n \n {columns.map((column) => (\n <td\n key={column.key}\n className={cn(cellVariants({ \n size, \n align: column.align \n }))}\n >\n {column.render \n ? column.render(record[column.dataIndex], record, index)\n : String(record[column.dataIndex] || '')\n }\n </td>\n ))}\n </tr>\n );\n })\n )}\n </tbody>\n </table>\n </div>\n \n {currentPagination && (\n <TablePagination\n pagination={currentPagination}\n onChange={(page, pageSize) => {\n const newPagination = { ...currentPagination, current: page, pageSize };\n onChange?.(newPagination, filters, sortConfig);\n }}\n />\n )}\n </div>\n \n {footer && <div className=\"mt-4\">{footer()}</div>}\n </div>\n );\n};\n\nDataTable.displayName = \"DataTable\";"],"names":["_jsxs","_jsx","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"DataTable.js","sources":["../../../src/components/DataTable/DataTable.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { useState, useMemo, useCallback } from \"react\";\nimport { \n ChevronUp, \n ChevronDown, \n Search, \n Filter, \n ChevronLeft, \n ChevronRight,\n ChevronsLeft,\n ChevronsRight,\n MoreHorizontal,\n Check,\n Minus\n} from \"lucide-react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\nimport { Button } from \"../Button\";\nimport { Input } from \"../Input\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Badge } from \"../Badge\";\nimport { Spinner } from \"../Spinner\";\nimport { Skeleton } from \"../Skeleton\";\nimport type { \n DataTableProps, \n Column, \n FilterValue, \n SortConfig, \n PaginationConfig,\n RowSelection \n} from \"./DataTable.types\";\n\nconst tableVariants = cva(\n \"w-full border-collapse bg-white\",\n {\n variants: {\n size: {\n small: \"text-xs\",\n middle: \"text-sm\",\n large: \"text-base\",\n },\n bordered: {\n true: \"border border-gray-200\",\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"middle\",\n bordered: false,\n },\n }\n);\n\nconst cellVariants = cva(\n \"border-b border-gray-200 transition-colors\",\n {\n variants: {\n size: {\n small: \"px-2 py-1\",\n middle: \"px-4 py-3\",\n large: \"px-6 py-4\",\n },\n align: {\n left: \"text-left\",\n center: \"text-center\",\n right: \"text-right\",\n },\n type: {\n header: \"bg-gray-50 font-semibold text-gray-900 border-b-2 border-gray-200\",\n body: \"text-gray-700 hover:bg-gray-50\",\n },\n },\n defaultVariants: {\n size: \"middle\",\n align: \"left\",\n type: \"body\",\n },\n }\n);\n\n// Filter component for individual columns\nconst ColumnFilter = <T extends Record<string, any>>({\n column,\n value,\n onChange,\n}: {\n column: Column<T>;\n value: any;\n onChange: (value: any) => void;\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const [tempValue, setTempValue] = useState(value || '');\n\n const handleApply = () => {\n onChange(tempValue);\n setIsOpen(false);\n };\n\n const handleClear = () => {\n setTempValue('');\n onChange('');\n setIsOpen(false);\n };\n\n if (!column.filterable) return null;\n\n return (\n <div className=\"relative inline-block\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setIsOpen(!isOpen)}\n className={cn(\n \"p-1 h-6 w-6\",\n value && \"text-primary-600\"\n )}\n >\n <Filter className=\"h-3 w-3\" />\n </Button>\n \n {isOpen && (\n <>\n <div \n className=\"fixed inset-0 z-10\" \n onClick={() => setIsOpen(false)}\n />\n <div className=\"absolute top-full left-0 z-20 mt-1 bg-white border border-gray-200 rounded-lg shadow-lg p-3 min-w-[200px]\">\n {column.filterType === 'select' && column.filterOptions ? (\n <div className=\"space-y-2\">\n {column.filterOptions.map((option) => (\n <label key={option.value} className=\"flex items-center space-x-2\">\n <Checkbox\n checked={tempValue === option.value}\n onChange={() => setTempValue(\n tempValue === option.value ? '' : option.value\n )}\n />\n <span className=\"text-sm\">{option.label}</span>\n </label>\n ))}\n </div>\n ) : (\n <Input\n placeholder={`Filter ${column.title}`}\n value={tempValue}\n onChange={(e) => setTempValue(e.target.value)}\n className=\"mb-2\"\n />\n )}\n \n <div className=\"flex justify-end space-x-2 mt-3\">\n <Button variant=\"ghost\" size=\"sm\" onClick={handleClear}>\n Clear\n </Button>\n <Button variant=\"primary\" size=\"sm\" onClick={handleApply}>\n Apply\n </Button>\n </div>\n </div>\n </>\n )}\n </div>\n );\n};\n\n// Pagination component\nconst TablePagination: React.FC<{\n pagination: PaginationConfig;\n onChange: (page: number, pageSize: number) => void;\n}> = ({ pagination, onChange }) => {\n const { current, pageSize, total, showSizeChanger = true, pageSizeOptions = [10, 20, 50, 100] } = pagination;\n const totalPages = Math.ceil(total / pageSize);\n const startRecord = (current - 1) * pageSize + 1;\n const endRecord = Math.min(current * pageSize, total);\n\n const getPageNumbers = () => {\n const pages = [];\n const maxVisible = 5;\n \n if (totalPages <= maxVisible) {\n for (let i = 1; i <= totalPages; i++) {\n pages.push(i);\n }\n } else {\n const start = Math.max(1, current - 2);\n const end = Math.min(totalPages, start + maxVisible - 1);\n \n for (let i = start; i <= end; i++) {\n pages.push(i);\n }\n }\n \n return pages;\n };\n\n return (\n <div className=\"flex items-center justify-between px-4 py-3 bg-white border-t border-gray-200\">\n <div className=\"flex items-center space-x-4\">\n <span className=\"text-sm text-gray-700\">\n Showing {startRecord} to {endRecord} of {total} results\n </span>\n \n {showSizeChanger && (\n <div className=\"flex items-center space-x-2\">\n <span className=\"text-sm text-gray-700\">Show</span>\n <select\n value={pageSize}\n onChange={(e) => onChange(1, Number(e.target.value))}\n className=\"border border-gray-300 rounded px-2 py-1 text-sm\"\n >\n {pageSizeOptions.map(size => (\n <option key={size} value={size}>{size}</option>\n ))}\n </select>\n <span className=\"text-sm text-gray-700\">per page</span>\n </div>\n )}\n </div>\n \n <div className=\"flex items-center space-x-1\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => onChange(1, pageSize)}\n disabled={current === 1}\n >\n <ChevronsLeft className=\"h-4 w-4\" />\n </Button>\n \n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => onChange(current - 1, pageSize)}\n disabled={current === 1}\n >\n <ChevronLeft className=\"h-4 w-4\" />\n </Button>\n \n {getPageNumbers().map(page => (\n <Button\n key={page}\n variant={current === page ? \"primary\" : \"ghost\"}\n size=\"sm\"\n onClick={() => onChange(page, pageSize)}\n className=\"min-w-[32px]\"\n >\n {page}\n </Button>\n ))}\n \n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => onChange(current + 1, pageSize)}\n disabled={current === totalPages}\n >\n <ChevronRight className=\"h-4 w-4\" />\n </Button>\n \n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => onChange(totalPages, pageSize)}\n disabled={current === totalPages}\n >\n <ChevronsRight className=\"h-4 w-4\" />\n </Button>\n </div>\n </div>\n );\n};\n\nexport const DataTable = <T extends Record<string, any>>({\n columns,\n dataSource,\n loading = false,\n rowKey = 'id',\n pagination = { current: 1, pageSize: 10, total: 0 },\n rowSelection,\n size = 'middle',\n bordered = false,\n showHeader = true,\n title,\n footer,\n className,\n onSort,\n onFilter,\n onChange,\n ...props\n}: DataTableProps<T>) => {\n const [sortConfig, setSortConfig] = useState<SortConfig>({ key: '', direction: null });\n const [filters, setFilters] = useState<FilterValue>({});\n const [selectedRowKeys, setSelectedRowKeys] = useState<React.Key[]>(\n rowSelection?.selectedRowKeys || []\n );\n\n // Get row key function\n const getRowKey = useCallback((record: T, index: number): React.Key => {\n if (typeof rowKey === 'function') {\n return rowKey(record);\n }\n return record[rowKey] || index;\n }, [rowKey]);\n\n // Handle sorting\n const handleSort = useCallback((columnKey: string) => {\n let newDirection: 'asc' | 'desc' | null;\n if (sortConfig.key !== columnKey) {\n newDirection = 'asc';\n } else if (sortConfig.direction === 'asc') {\n newDirection = 'desc';\n } else if (sortConfig.direction === 'desc') {\n newDirection = null;\n } else {\n newDirection = 'asc';\n }\n const newSortConfig: SortConfig = { key: columnKey, direction: newDirection };\n setSortConfig(newSortConfig);\n onSort?.(newSortConfig);\n onChange?.(pagination as PaginationConfig, filters, newSortConfig);\n }, [sortConfig, pagination, filters, onSort, onChange]);\n\n // Handle filtering\n const handleFilter = useCallback((columnKey: string, value: any) => {\n const newFilters = { ...filters };\n if (value === '' || value === null || value === undefined) {\n delete newFilters[columnKey];\n } else {\n newFilters[columnKey] = value;\n }\n \n setFilters(newFilters);\n onFilter?.(newFilters);\n onChange?.(pagination as PaginationConfig, newFilters, sortConfig);\n }, [filters, pagination, sortConfig, onFilter, onChange]);\n\n // Handle row selection\n const handleRowSelect = useCallback((record: T, selected: boolean) => {\n const key = getRowKey(record, 0);\n let newSelectedKeys: React.Key[];\n \n if (rowSelection?.type === 'radio') {\n newSelectedKeys = selected ? [key] : [];\n } else {\n newSelectedKeys = selected \n ? [...selectedRowKeys, key]\n : selectedRowKeys.filter(k => k !== key);\n }\n \n setSelectedRowKeys(newSelectedKeys);\n const selectedRows = dataSource.filter(item => \n newSelectedKeys.includes(getRowKey(item, 0))\n );\n \n rowSelection?.onChange?.(newSelectedKeys, selectedRows);\n rowSelection?.onSelect?.(record, selected, selectedRows, {} as Event);\n }, [selectedRowKeys, rowSelection, dataSource, getRowKey]);\n\n // Handle select all\n const handleSelectAll = useCallback((selected: boolean) => {\n const newSelectedKeys = selected \n ? dataSource.map((item, index) => getRowKey(item, index))\n : [];\n \n setSelectedRowKeys(newSelectedKeys);\n const selectedRows = selected ? dataSource : [];\n \n rowSelection?.onChange?.(newSelectedKeys, selectedRows);\n rowSelection?.onSelectAll?.(selected, selectedRows, dataSource);\n }, [dataSource, rowSelection, getRowKey]);\n\n // Filter and sort data\n const processedData = useMemo(() => {\n let result = [...dataSource];\n \n // Apply filters\n Object.entries(filters).forEach(([key, value]) => {\n if (value !== '' && value !== null && value !== undefined) {\n result = result.filter(item => {\n const itemValue = item[key];\n if (typeof itemValue === 'string') {\n return itemValue.toLowerCase().includes(String(value).toLowerCase());\n }\n return itemValue === value;\n });\n }\n });\n \n // Apply sorting\n if (sortConfig.key && sortConfig.direction) {\n result.sort((a, b) => {\n const aValue = a[sortConfig.key];\n const bValue = b[sortConfig.key];\n \n if (aValue === bValue) return 0;\n \n const comparison = aValue < bValue ? -1 : 1;\n return sortConfig.direction === 'asc' ? comparison : -comparison;\n });\n }\n \n return result;\n }, [dataSource, filters, sortConfig]);\n\n // Pagination logic\n const paginatedData = useMemo(() => {\n if (!pagination) return processedData;\n \n const { current, pageSize } = pagination;\n const startIndex = (current - 1) * pageSize;\n return processedData.slice(startIndex, startIndex + pageSize);\n }, [processedData, pagination]);\n\n // Update pagination total\n const currentPagination = useMemo(() => {\n if (!pagination) return false;\n return {\n ...pagination,\n total: processedData.length,\n };\n }, [pagination, processedData.length]);\n\n // Selection state\n const isAllSelected = selectedRowKeys.length === dataSource.length && dataSource.length > 0;\n const isIndeterminate = selectedRowKeys.length > 0 && selectedRowKeys.length < dataSource.length;\n\n if (loading) {\n return (\n <div className={cn(\"w-full\", className)}>\n {title && <div className=\"mb-4\">{title()}</div>}\n <div className=\"border border-gray-200 rounded-lg overflow-hidden\">\n <div className=\"p-4 space-y-3\">\n {Array.from({ length: 5 }).map((_, i) => (\n <div key={i} className=\"flex space-x-4\">\n <Skeleton className=\"h-4 w-8\" />\n <Skeleton className=\"h-4 flex-1\" />\n <Skeleton className=\"h-4 w-24\" />\n <Skeleton className=\"h-4 w-16\" />\n </div>\n ))}\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div className={cn(\"w-full\", className)}>\n {title && <div className=\"mb-4\">{title()}</div>}\n \n <div className=\"border border-gray-200 rounded-lg overflow-hidden\">\n <div className=\"overflow-x-auto\">\n <table className={cn(tableVariants({ size, bordered }))}>\n {showHeader && (\n <thead>\n <tr>\n {rowSelection && (\n <th className={cn(cellVariants({ size, type: \"header\" }), \"w-12\")}>\n {rowSelection.type !== 'radio' && (\n <Checkbox\n checked={isAllSelected}\n onChange={(e) => handleSelectAll(e.target.checked)}\n className={cn(isIndeterminate && \"indeterminate\")}\n />\n )}\n </th>\n )}\n \n {columns.map((column) => (\n <th\n key={column.key}\n className={cn(\n cellVariants({ \n size, \n align: column.align, \n type: \"header\" \n }),\n column.width && `w-[${column.width}]`\n )}\n >\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center space-x-2\">\n <span>{column.title}</span>\n {column.sortable && (\n <button\n onClick={() => handleSort(column.key)}\n className=\"flex flex-col items-center hover:text-primary-600\"\n >\n <ChevronUp \n className={cn(\n \"h-3 w-3\",\n sortConfig.key === column.key && sortConfig.direction === 'asc'\n ? \"text-primary-600\" \n : \"text-gray-400\"\n )}\n />\n <ChevronDown \n className={cn(\n \"h-3 w-3 -mt-1\",\n sortConfig.key === column.key && sortConfig.direction === 'desc'\n ? \"text-primary-600\" \n : \"text-gray-400\"\n )}\n />\n </button>\n )}\n </div>\n \n <ColumnFilter\n column={column}\n value={filters[column.key]}\n onChange={(value) => handleFilter(column.key, value)}\n />\n </div>\n </th>\n ))}\n </tr>\n </thead>\n )}\n \n <tbody>\n {paginatedData.length === 0 ? (\n <tr>\n <td \n colSpan={columns.length + (rowSelection ? 1 : 0)}\n className={cn(cellVariants({ size, align: \"center\" }), \"py-8\")}\n >\n <div className=\"text-gray-500\">\n <div className=\"text-4xl mb-2\">📋</div>\n <div>No data available</div>\n </div>\n </td>\n </tr>\n ) : (\n paginatedData.map((record, index) => {\n const key = getRowKey(record, index);\n const isSelected = selectedRowKeys.includes(key);\n \n return (\n <tr\n key={key}\n className={cn(\n \"hover:bg-gray-50 transition-colors\",\n isSelected && \"bg-primary-50\"\n )}\n {...(props.onRow?.(record, index) ?? {})}\n >\n {rowSelection && (\n <td className={cn(cellVariants({ size }))}>\n <Checkbox\n checked={isSelected}\n onChange={(e) => handleRowSelect(record, e.target.checked)}\n {...rowSelection.getCheckboxProps?.(record)}\n />\n </td>\n )}\n \n {columns.map((column) => (\n <td\n key={column.key}\n className={cn(cellVariants({ \n size, \n align: column.align \n }))}\n >\n {column.render \n ? column.render(record[column.dataIndex], record, index)\n : String(record[column.dataIndex] || '')\n }\n </td>\n ))}\n </tr>\n );\n })\n )}\n </tbody>\n </table>\n </div>\n \n {currentPagination && (\n <TablePagination\n pagination={currentPagination}\n onChange={(page, pageSize) => {\n const newPagination = { ...currentPagination, current: page, pageSize };\n onChange?.(newPagination, filters, sortConfig);\n }}\n />\n )}\n </div>\n \n {footer && <div className=\"mt-4\">{footer()}</div>}\n </div>\n );\n};\n\nDataTable.displayName = \"DataTable\";"],"names":["_jsxs","_jsx","_Fragment"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { j as jsxRuntimeExports } from '../../_virtual/jsx-runtime.js';
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { useState } from 'react';
3
3
  import { DataTable } from './DataTable.js';
4
4
  import { Button } from '../Button/Button.js';
@@ -81,7 +81,7 @@ const DataTableShowcase = () => {
81
81
  sortable: true,
82
82
  filterable: true,
83
83
  filterType: 'text',
84
- render: (_, record) => (jsxRuntimeExports.jsxs("div", { className: "flex items-center space-x-3", children: [jsxRuntimeExports.jsxs(Avatar, { size: "sm", children: [jsxRuntimeExports.jsx(AvatarImage, { src: record.avatar }), jsxRuntimeExports.jsx(AvatarFallback, { children: record.name.split(' ').map(n => n[0]).join('') })] }), jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsx("div", { className: "font-medium text-gray-900", children: record.name }), jsxRuntimeExports.jsx("div", { className: "text-sm text-gray-500", children: record.email })] })] })),
84
+ render: (_, record) => (jsxs("div", { className: "flex items-center space-x-3", children: [jsxs(Avatar, { size: "sm", children: [jsx(AvatarImage, { src: record.avatar }), jsx(AvatarFallback, { children: record.name.split(' ').map(n => n[0]).join('') })] }), jsxs("div", { children: [jsx("div", { className: "font-medium text-gray-900", children: record.name }), jsx("div", { className: "text-sm text-gray-500", children: record.email })] })] })),
85
85
  },
86
86
  {
87
87
  key: 'role',
@@ -125,7 +125,7 @@ const DataTableShowcase = () => {
125
125
  { label: 'Inactive', value: 'inactive' },
126
126
  { label: 'Pending', value: 'pending' },
127
127
  ],
128
- render: (status) => (jsxRuntimeExports.jsx(Badge, { variant: status === 'active' ? 'success' :
128
+ render: (status) => (jsx(Badge, { variant: status === 'active' ? 'success' :
129
129
  status === 'inactive' ? 'secondary' : 'warning', children: status.charAt(0).toUpperCase() + status.slice(1) })),
130
130
  },
131
131
  {
@@ -141,7 +141,7 @@ const DataTableShowcase = () => {
141
141
  title: 'Actions',
142
142
  dataIndex: 'id',
143
143
  align: 'center',
144
- render: (_, record) => (jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-center space-x-1", children: [jsxRuntimeExports.jsx(Button, { variant: "ghost", size: "sm", onClick: () => showToast.info(`View user ${record.name}`), children: jsxRuntimeExports.jsx(Eye, { className: "h-4 w-4" }) }), jsxRuntimeExports.jsx(Button, { variant: "ghost", size: "sm", onClick: () => showToast.info(`Edit user ${record.name}`), children: jsxRuntimeExports.jsx(SquarePen, { className: "h-4 w-4" }) }), jsxRuntimeExports.jsx(Button, { variant: "ghost", size: "sm", onClick: () => showToast.warning(`Delete user ${record.name}`), children: jsxRuntimeExports.jsx(Trash2, { className: "h-4 w-4 text-danger-600" }) })] })),
144
+ render: (_, record) => (jsxs("div", { className: "flex items-center justify-center space-x-1", children: [jsx(Button, { variant: "ghost", size: "sm", onClick: () => showToast.info(`View user ${record.name}`), children: jsx(Eye, { className: "h-4 w-4" }) }), jsx(Button, { variant: "ghost", size: "sm", onClick: () => showToast.info(`Edit user ${record.name}`), children: jsx(SquarePen, { className: "h-4 w-4" }) }), jsx(Button, { variant: "ghost", size: "sm", onClick: () => showToast.warning(`Delete user ${record.name}`), children: jsx(Trash2, { className: "h-4 w-4 text-danger-600" }) })] })),
145
145
  },
146
146
  ];
147
147
  // Sales table columns
@@ -153,7 +153,7 @@ const DataTableShowcase = () => {
153
153
  sortable: true,
154
154
  filterable: true,
155
155
  filterType: 'text',
156
- render: (product) => (jsxRuntimeExports.jsx("div", { className: "font-medium text-gray-900", children: product })),
156
+ render: (product) => (jsx("div", { className: "font-medium text-gray-900", children: product })),
157
157
  },
158
158
  {
159
159
  key: 'customer',
@@ -171,7 +171,7 @@ const DataTableShowcase = () => {
171
171
  filterable: true,
172
172
  filterType: 'number',
173
173
  align: 'right',
174
- render: (amount) => (jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-end space-x-1", children: [jsxRuntimeExports.jsx(DollarSign, { className: "h-4 w-4 text-gray-400" }), jsxRuntimeExports.jsx("span", { className: "font-medium", children: amount.toLocaleString() })] })),
174
+ render: (amount) => (jsxs("div", { className: "flex items-center justify-end space-x-1", children: [jsx(DollarSign, { className: "h-4 w-4 text-gray-400" }), jsx("span", { className: "font-medium", children: amount.toLocaleString() })] })),
175
175
  },
176
176
  {
177
177
  key: 'status',
@@ -185,7 +185,7 @@ const DataTableShowcase = () => {
185
185
  { label: 'Pending', value: 'pending' },
186
186
  { label: 'Cancelled', value: 'cancelled' },
187
187
  ],
188
- render: (status) => (jsxRuntimeExports.jsx(Badge, { variant: status === 'completed' ? 'success' :
188
+ render: (status) => (jsx(Badge, { variant: status === 'completed' ? 'success' :
189
189
  status === 'pending' ? 'warning' : 'danger', children: status.charAt(0).toUpperCase() + status.slice(1) })),
190
190
  },
191
191
  {
@@ -220,7 +220,7 @@ const DataTableShowcase = () => {
220
220
  sortable: true,
221
221
  filterable: true,
222
222
  filterType: 'text',
223
- render: (title, record) => (jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsx("div", { className: "font-medium text-gray-900", children: title }), jsxRuntimeExports.jsx("div", { className: "text-sm text-gray-500", children: record.project })] })),
223
+ render: (title, record) => (jsxs("div", { children: [jsx("div", { className: "font-medium text-gray-900", children: title }), jsx("div", { className: "text-sm text-gray-500", children: record.project })] })),
224
224
  },
225
225
  {
226
226
  key: 'assignee',
@@ -243,7 +243,7 @@ const DataTableShowcase = () => {
243
243
  { label: 'High', value: 'high' },
244
244
  { label: 'Urgent', value: 'urgent' },
245
245
  ],
246
- render: (priority) => (jsxRuntimeExports.jsx(Badge, { variant: priority === 'urgent' ? 'danger' :
246
+ render: (priority) => (jsx(Badge, { variant: priority === 'urgent' ? 'danger' :
247
247
  priority === 'high' ? 'warning' :
248
248
  priority === 'medium' ? 'secondary' : 'outline', children: priority.charAt(0).toUpperCase() + priority.slice(1) })),
249
249
  },
@@ -260,7 +260,7 @@ const DataTableShowcase = () => {
260
260
  { label: 'Review', value: 'review' },
261
261
  { label: 'Completed', value: 'completed' },
262
262
  ],
263
- render: (status) => (jsxRuntimeExports.jsx(Badge, { variant: status === 'completed' ? 'success' :
263
+ render: (status) => (jsx(Badge, { variant: status === 'completed' ? 'success' :
264
264
  status === 'in-progress' ? 'warning' :
265
265
  status === 'review' ? 'secondary' : 'outline', children: status.replace('-', ' ').replace(/\b\w/g, l => l.toUpperCase()) })),
266
266
  },
@@ -276,7 +276,7 @@ const DataTableShowcase = () => {
276
276
  key: 'tags',
277
277
  title: 'Tags',
278
278
  dataIndex: 'tags',
279
- render: (tags) => (jsxRuntimeExports.jsxs("div", { className: "flex flex-wrap gap-1", children: [tags.slice(0, 2).map(tag => (jsxRuntimeExports.jsx(Badge, { variant: "outline", className: "text-xs", children: tag }, tag))), tags.length > 2 && (jsxRuntimeExports.jsxs(Badge, { variant: "outline", className: "text-xs", children: ["+", tags.length - 2] }))] })),
279
+ render: (tags) => (jsxs("div", { className: "flex flex-wrap gap-1", children: [tags.slice(0, 2).map(tag => (jsx(Badge, { variant: "outline", className: "text-xs", children: tag }, tag))), tags.length > 2 && (jsxs(Badge, { variant: "outline", className: "text-xs", children: ["+", tags.length - 2] }))] })),
280
280
  },
281
281
  ];
282
282
  const getCurrentData = () => {
@@ -287,16 +287,16 @@ const DataTableShowcase = () => {
287
287
  default: return [];
288
288
  }
289
289
  };
290
- return (jsxRuntimeExports.jsxs("div", { className: "space-y-6", children: [jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between", children: [jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsx("h1", { className: "text-2xl font-bold text-gray-900", children: "DataTable Component" }), jsxRuntimeExports.jsx("p", { className: "text-gray-600 mt-1", children: "A comprehensive table component with filtering, sorting, and pagination" })] }), jsxRuntimeExports.jsxs("div", { className: "flex items-center space-x-2", children: [jsxRuntimeExports.jsxs(Button, { variant: "outline", onClick: () => showToast.info('Export functionality'), children: [jsxRuntimeExports.jsx(Download, { className: "h-4 w-4 mr-2" }), "Export"] }), jsxRuntimeExports.jsxs(Button, { variant: "primary", onClick: () => showToast.success('Add new item'), children: [jsxRuntimeExports.jsx(Plus, { className: "h-4 w-4 mr-2" }), "Add New"] })] })] }), jsxRuntimeExports.jsx("div", { className: "border-b border-gray-200", children: jsxRuntimeExports.jsx("nav", { className: "-mb-px flex space-x-8", children: [
290
+ return (jsxs("div", { className: "space-y-6", children: [jsxs("div", { className: "flex items-center justify-between", children: [jsxs("div", { children: [jsx("h1", { className: "text-2xl font-bold text-gray-900", children: "DataTable Component" }), jsx("p", { className: "text-gray-600 mt-1", children: "A comprehensive table component with filtering, sorting, and pagination" })] }), jsxs("div", { className: "flex items-center space-x-2", children: [jsxs(Button, { variant: "outline", onClick: () => showToast.info('Export functionality'), children: [jsx(Download, { className: "h-4 w-4 mr-2" }), "Export"] }), jsxs(Button, { variant: "primary", onClick: () => showToast.success('Add new item'), children: [jsx(Plus, { className: "h-4 w-4 mr-2" }), "Add New"] })] })] }), jsx("div", { className: "border-b border-gray-200", children: jsx("nav", { className: "-mb-px flex space-x-8", children: [
291
291
  { key: 'users', label: 'Users', icon: Users },
292
292
  { key: 'sales', label: 'Sales', icon: DollarSign },
293
293
  { key: 'tasks', label: 'Tasks', icon: Calendar },
294
- ].map(({ key, label, icon: Icon }) => (jsxRuntimeExports.jsxs("button", { onClick: () => setSelectedTab(key), className: `
294
+ ].map(({ key, label, icon: Icon }) => (jsxs("button", { onClick: () => setSelectedTab(key), className: `
295
295
  flex items-center space-x-2 py-2 px-1 border-b-2 font-medium text-sm
296
296
  ${selectedTab === key
297
297
  ? 'border-primary-500 text-primary-600'
298
298
  : 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300'}
299
- `, children: [jsxRuntimeExports.jsx(Icon, { className: "h-4 w-4" }), jsxRuntimeExports.jsx("span", { children: label })] }, key))) }) }), jsxRuntimeExports.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-4 gap-4", children: [jsxRuntimeExports.jsx(Card, { children: jsxRuntimeExports.jsx(CardContent, { className: "p-4", children: jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between", children: [jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsx("p", { className: "text-sm font-medium text-gray-600", children: "Total Records" }), jsxRuntimeExports.jsx("p", { className: "text-2xl font-bold text-gray-900", children: getCurrentData().length })] }), jsxRuntimeExports.jsx("div", { className: "p-2 bg-primary-100 rounded-lg", children: jsxRuntimeExports.jsx(Users, { className: "h-6 w-6 text-primary-600" }) })] }) }) }), jsxRuntimeExports.jsx(Card, { children: jsxRuntimeExports.jsx(CardContent, { className: "p-4", children: jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between", children: [jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsx("p", { className: "text-sm font-medium text-gray-600", children: "Selected" }), jsxRuntimeExports.jsx("p", { className: "text-2xl font-bold text-gray-900", children: selectedRows.length })] }), jsxRuntimeExports.jsx("div", { className: "p-2 bg-success-100 rounded-lg", children: jsxRuntimeExports.jsx(Filter, { className: "h-6 w-6 text-success-600" }) })] }) }) }), jsxRuntimeExports.jsx(Card, { children: jsxRuntimeExports.jsx(CardContent, { className: "p-4", children: jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between", children: [jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsx("p", { className: "text-sm font-medium text-gray-600", children: "Active Filters" }), jsxRuntimeExports.jsx("p", { className: "text-2xl font-bold text-gray-900", children: "0" })] }), jsxRuntimeExports.jsx("div", { className: "p-2 bg-warning-100 rounded-lg", children: jsxRuntimeExports.jsx(Filter, { className: "h-6 w-6 text-warning-600" }) })] }) }) }), jsxRuntimeExports.jsx(Card, { children: jsxRuntimeExports.jsx(CardContent, { className: "p-4", children: jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between", children: [jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsx("p", { className: "text-sm font-medium text-gray-600", children: "Performance" }), jsxRuntimeExports.jsxs("div", { className: "flex items-center space-x-1", children: [jsxRuntimeExports.jsx(TrendingUp, { className: "h-4 w-4 text-success-600" }), jsxRuntimeExports.jsx("p", { className: "text-2xl font-bold text-gray-900", children: "Fast" })] })] }), jsxRuntimeExports.jsx("div", { className: "p-2 bg-success-100 rounded-lg", children: jsxRuntimeExports.jsx(TrendingUp, { className: "h-6 w-6 text-success-600" }) })] }) }) })] }), jsxRuntimeExports.jsx(Card, { children: jsxRuntimeExports.jsxs(CardContent, { className: "p-0", children: [selectedTab === "users" && (jsxRuntimeExports.jsx(DataTable, { columns: userColumns, dataSource: usersData, rowKey: "id", pagination: {
299
+ `, children: [jsx(Icon, { className: "h-4 w-4" }), jsx("span", { children: label })] }, key))) }) }), jsxs("div", { className: "grid grid-cols-1 md:grid-cols-4 gap-4", children: [jsx(Card, { children: jsx(CardContent, { className: "p-4", children: jsxs("div", { className: "flex items-center justify-between", children: [jsxs("div", { children: [jsx("p", { className: "text-sm font-medium text-gray-600", children: "Total Records" }), jsx("p", { className: "text-2xl font-bold text-gray-900", children: getCurrentData().length })] }), jsx("div", { className: "p-2 bg-primary-100 rounded-lg", children: jsx(Users, { className: "h-6 w-6 text-primary-600" }) })] }) }) }), jsx(Card, { children: jsx(CardContent, { className: "p-4", children: jsxs("div", { className: "flex items-center justify-between", children: [jsxs("div", { children: [jsx("p", { className: "text-sm font-medium text-gray-600", children: "Selected" }), jsx("p", { className: "text-2xl font-bold text-gray-900", children: selectedRows.length })] }), jsx("div", { className: "p-2 bg-success-100 rounded-lg", children: jsx(Filter, { className: "h-6 w-6 text-success-600" }) })] }) }) }), jsx(Card, { children: jsx(CardContent, { className: "p-4", children: jsxs("div", { className: "flex items-center justify-between", children: [jsxs("div", { children: [jsx("p", { className: "text-sm font-medium text-gray-600", children: "Active Filters" }), jsx("p", { className: "text-2xl font-bold text-gray-900", children: "0" })] }), jsx("div", { className: "p-2 bg-warning-100 rounded-lg", children: jsx(Filter, { className: "h-6 w-6 text-warning-600" }) })] }) }) }), jsx(Card, { children: jsx(CardContent, { className: "p-4", children: jsxs("div", { className: "flex items-center justify-between", children: [jsxs("div", { children: [jsx("p", { className: "text-sm font-medium text-gray-600", children: "Performance" }), jsxs("div", { className: "flex items-center space-x-1", children: [jsx(TrendingUp, { className: "h-4 w-4 text-success-600" }), jsx("p", { className: "text-2xl font-bold text-gray-900", children: "Fast" })] })] }), jsx("div", { className: "p-2 bg-success-100 rounded-lg", children: jsx(TrendingUp, { className: "h-6 w-6 text-success-600" }) })] }) }) })] }), jsx(Card, { children: jsxs(CardContent, { className: "p-0", children: [selectedTab === "users" && (jsx(DataTable, { columns: userColumns, dataSource: usersData, rowKey: "id", pagination: {
300
300
  current: 1,
301
301
  pageSize: 10,
302
302
  total: usersData.length,
@@ -309,9 +309,9 @@ const DataTableShowcase = () => {
309
309
  setSelectedRows(keys);
310
310
  showToast.info(`Selected ${keys.length} items`);
311
311
  },
312
- }, size: "middle", bordered: false, title: () => (jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between p-4 border-b border-gray-200", children: [jsxRuntimeExports.jsx("h3", { className: "text-lg font-semibold text-gray-900", children: "Users Data" }), jsxRuntimeExports.jsxs("div", { className: "flex items-center space-x-2", children: [jsxRuntimeExports.jsxs(Badge, { variant: "outline", children: [usersData.length, " total"] }), selectedRows.length > 0 && (jsxRuntimeExports.jsxs(Badge, { variant: "secondary", children: [selectedRows.length, " selected"] }))] })] })), onChange: (pagination, filters, sorter) => {
312
+ }, size: "middle", bordered: false, title: () => (jsxs("div", { className: "flex items-center justify-between p-4 border-b border-gray-200", children: [jsx("h3", { className: "text-lg font-semibold text-gray-900", children: "Users Data" }), jsxs("div", { className: "flex items-center space-x-2", children: [jsxs(Badge, { variant: "outline", children: [usersData.length, " total"] }), selectedRows.length > 0 && (jsxs(Badge, { variant: "secondary", children: [selectedRows.length, " selected"] }))] })] })), onChange: (pagination, filters, sorter) => {
313
313
  console.log('Table changed:', { pagination, filters, sorter });
314
- } })), selectedTab === "sales" && (jsxRuntimeExports.jsx(DataTable, { columns: salesColumns, dataSource: salesData, rowKey: "id", pagination: {
314
+ } })), selectedTab === "sales" && (jsx(DataTable, { columns: salesColumns, dataSource: salesData, rowKey: "id", pagination: {
315
315
  current: 1,
316
316
  pageSize: 10,
317
317
  total: salesData.length,
@@ -324,9 +324,9 @@ const DataTableShowcase = () => {
324
324
  setSelectedRows(keys);
325
325
  showToast.info(`Selected ${keys.length} items`);
326
326
  },
327
- }, size: "middle", bordered: false, title: () => (jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between p-4 border-b border-gray-200", children: [jsxRuntimeExports.jsx("h3", { className: "text-lg font-semibold text-gray-900", children: "Sales Data" }), jsxRuntimeExports.jsxs("div", { className: "flex items-center space-x-2", children: [jsxRuntimeExports.jsxs(Badge, { variant: "outline", children: [salesData.length, " total"] }), selectedRows.length > 0 && (jsxRuntimeExports.jsxs(Badge, { variant: "secondary", children: [selectedRows.length, " selected"] }))] })] })), onChange: (pagination, filters, sorter) => {
327
+ }, size: "middle", bordered: false, title: () => (jsxs("div", { className: "flex items-center justify-between p-4 border-b border-gray-200", children: [jsx("h3", { className: "text-lg font-semibold text-gray-900", children: "Sales Data" }), jsxs("div", { className: "flex items-center space-x-2", children: [jsxs(Badge, { variant: "outline", children: [salesData.length, " total"] }), selectedRows.length > 0 && (jsxs(Badge, { variant: "secondary", children: [selectedRows.length, " selected"] }))] })] })), onChange: (pagination, filters, sorter) => {
328
328
  console.log('Table changed:', { pagination, filters, sorter });
329
- } })), selectedTab === "tasks" && (jsxRuntimeExports.jsx(DataTable, { columns: taskColumns, dataSource: tasksData, rowKey: "id", pagination: {
329
+ } })), selectedTab === "tasks" && (jsx(DataTable, { columns: taskColumns, dataSource: tasksData, rowKey: "id", pagination: {
330
330
  current: 1,
331
331
  pageSize: 10,
332
332
  total: tasksData.length,
@@ -339,9 +339,9 @@ const DataTableShowcase = () => {
339
339
  setSelectedRows(keys);
340
340
  showToast.info(`Selected ${keys.length} items`);
341
341
  },
342
- }, size: "middle", bordered: false, title: () => (jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between p-4 border-b border-gray-200", children: [jsxRuntimeExports.jsx("h3", { className: "text-lg font-semibold text-gray-900", children: "Tasks Data" }), jsxRuntimeExports.jsxs("div", { className: "flex items-center space-x-2", children: [jsxRuntimeExports.jsxs(Badge, { variant: "outline", children: [tasksData.length, " total"] }), selectedRows.length > 0 && (jsxRuntimeExports.jsxs(Badge, { variant: "secondary", children: [selectedRows.length, " selected"] }))] })] })), onChange: (pagination, filters, sorter) => {
342
+ }, size: "middle", bordered: false, title: () => (jsxs("div", { className: "flex items-center justify-between p-4 border-b border-gray-200", children: [jsx("h3", { className: "text-lg font-semibold text-gray-900", children: "Tasks Data" }), jsxs("div", { className: "flex items-center space-x-2", children: [jsxs(Badge, { variant: "outline", children: [tasksData.length, " total"] }), selectedRows.length > 0 && (jsxs(Badge, { variant: "secondary", children: [selectedRows.length, " selected"] }))] })] })), onChange: (pagination, filters, sorter) => {
343
343
  console.log('Table changed:', { pagination, filters, sorter });
344
- } }))] }) }), jsxRuntimeExports.jsxs(Card, { children: [jsxRuntimeExports.jsx(CardHeader, { children: jsxRuntimeExports.jsx(CardTitle, { children: "Component Features" }) }), jsxRuntimeExports.jsx(CardContent, { className: "space-y-4", children: jsxRuntimeExports.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsx("h4", { className: "font-semibold text-gray-900 mb-2", children: "Core Features" }), jsxRuntimeExports.jsxs("ul", { className: "space-y-1 text-sm text-gray-600", children: [jsxRuntimeExports.jsx("li", { children: "\u2022 Sortable columns with visual indicators" }), jsxRuntimeExports.jsx("li", { children: "\u2022 Advanced filtering (text, select, date)" }), jsxRuntimeExports.jsx("li", { children: "\u2022 Pagination with configurable page sizes" }), jsxRuntimeExports.jsx("li", { children: "\u2022 Row selection (single/multiple)" }), jsxRuntimeExports.jsx("li", { children: "\u2022 Responsive design for all screen sizes" }), jsxRuntimeExports.jsx("li", { children: "\u2022 Loading and empty states" })] })] }), jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsx("h4", { className: "font-semibold text-gray-900 mb-2", children: "Advanced Features" }), jsxRuntimeExports.jsxs("ul", { className: "space-y-1 text-sm text-gray-600", children: [jsxRuntimeExports.jsx("li", { children: "\u2022 Custom cell renderers" }), jsxRuntimeExports.jsx("li", { children: "\u2022 TypeScript support with full typing" }), jsxRuntimeExports.jsx("li", { children: "\u2022 Accessibility features (ARIA labels)" }), jsxRuntimeExports.jsx("li", { children: "\u2022 Performance optimizations" }), jsxRuntimeExports.jsx("li", { children: "\u2022 Customizable styling and themes" }), jsxRuntimeExports.jsx("li", { children: "\u2022 Export and bulk actions support" })] })] })] }) })] })] }));
344
+ } }))] }) }), jsxs(Card, { children: [jsx(CardHeader, { children: jsx(CardTitle, { children: "Component Features" }) }), jsx(CardContent, { className: "space-y-4", children: jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [jsxs("div", { children: [jsx("h4", { className: "font-semibold text-gray-900 mb-2", children: "Core Features" }), jsxs("ul", { className: "space-y-1 text-sm text-gray-600", children: [jsx("li", { children: "\u2022 Sortable columns with visual indicators" }), jsx("li", { children: "\u2022 Advanced filtering (text, select, date)" }), jsx("li", { children: "\u2022 Pagination with configurable page sizes" }), jsx("li", { children: "\u2022 Row selection (single/multiple)" }), jsx("li", { children: "\u2022 Responsive design for all screen sizes" }), jsx("li", { children: "\u2022 Loading and empty states" })] })] }), jsxs("div", { children: [jsx("h4", { className: "font-semibold text-gray-900 mb-2", children: "Advanced Features" }), jsxs("ul", { className: "space-y-1 text-sm text-gray-600", children: [jsx("li", { children: "\u2022 Custom cell renderers" }), jsx("li", { children: "\u2022 TypeScript support with full typing" }), jsx("li", { children: "\u2022 Accessibility features (ARIA labels)" }), jsx("li", { children: "\u2022 Performance optimizations" }), jsx("li", { children: "\u2022 Customizable styling and themes" }), jsx("li", { children: "\u2022 Export and bulk actions support" })] })] })] }) })] })] }));
345
345
  };
346
346
 
347
347
  export { DataTableShowcase };