@beyondcorp/beyond-ui 1.0.9 → 1.0.10
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.
- package/dist/components/Alert/Alert.js +4 -4
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/Avatar/Avatar.js +4 -4
- package/dist/components/Avatar/Avatar.js.map +1 -1
- package/dist/components/Badge/Badge.js +2 -2
- package/dist/components/Badge/Badge.js.map +1 -1
- package/dist/components/Button/Button.js +2 -2
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/Card/Card.js +7 -7
- package/dist/components/Card/Card.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.js +2 -2
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/ComponentShowcase/ComponentShowcase.js +41 -41
- package/dist/components/ComponentShowcase/ComponentShowcase.js.map +1 -1
- package/dist/components/DashboardGrid/DashboardGrid.js +3 -3
- package/dist/components/DashboardGrid/DashboardGrid.js.map +1 -1
- package/dist/components/DashboardHeader/DashboardHeader.js +2 -2
- package/dist/components/DashboardHeader/DashboardHeader.js.map +1 -1
- package/dist/components/DashboardLayout/DashboardLayout.js +3 -3
- package/dist/components/DashboardLayout/DashboardLayout.js.map +1 -1
- package/dist/components/DataTable/DataTable.js +11 -11
- package/dist/components/DataTable/DataTable.js.map +1 -1
- package/dist/components/DataTable/DataTableShowcase.js +20 -20
- package/dist/components/DataTable/DataTableShowcase.js.map +1 -1
- package/dist/components/Input/Input.js +2 -2
- package/dist/components/Input/Input.js.map +1 -1
- package/dist/components/Modal/Modal.js +7 -7
- package/dist/components/Modal/Modal.js.map +1 -1
- package/dist/components/Navbar/Navbar.js +3 -3
- package/dist/components/Navbar/Navbar.js.map +1 -1
- package/dist/components/Sidebar/Sidebar.js +13 -13
- package/dist/components/Sidebar/Sidebar.js.map +1 -1
- package/dist/components/Skeleton/Skeleton.js +2 -2
- package/dist/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/components/Spinner/Spinner.js +2 -2
- package/dist/components/Spinner/Spinner.js.map +1 -1
- package/dist/components/StatsCard/StatsCard.js +5 -5
- package/dist/components/StatsCard/StatsCard.js.map +1 -1
- package/dist/components/Switch/Switch.js +2 -2
- package/dist/components/Switch/Switch.js.map +1 -1
- package/dist/components/Tabs/Tabs.js +5 -5
- package/dist/components/Tabs/Tabs.js.map +1 -1
- package/dist/components/Textarea/Textarea.js +2 -2
- package/dist/components/Textarea/Textarea.js.map +1 -1
- package/dist/components/Toast/Toast.js +8 -8
- package/dist/components/Toast/Toast.js.map +1 -1
- package/dist/node_modules/@radix-ui/react-slot/dist/index.js +3 -3
- package/dist/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/_virtual/jsx-runtime.js +0 -6
- package/dist/_virtual/jsx-runtime.js.map +0 -1
- package/dist/_virtual/jsx-runtime2.js +0 -4
- package/dist/_virtual/jsx-runtime2.js.map +0 -1
- package/dist/_virtual/react-jsx-runtime.development.js +0 -4
- package/dist/_virtual/react-jsx-runtime.development.js.map +0 -1
- package/dist/_virtual/react-jsx-runtime.production.min.js +0 -4
- package/dist/_virtual/react-jsx-runtime.production.min.js.map +0 -1
- package/dist/node_modules/react/cjs/react-jsx-runtime.development.js +0 -1326
- package/dist/node_modules/react/cjs/react-jsx-runtime.development.js.map +0 -1
- package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.js +0 -25
- package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.js.map +0 -1
- package/dist/node_modules/react/jsx-runtime.js +0 -20
- package/dist/node_modules/react/jsx-runtime.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTableShowcase.js","sources":["../../../src/components/DataTable/DataTableShowcase.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { useState } from \"react\";\nimport { \n Users, \n Mail, \n Phone, \n MapPin, \n Calendar,\n DollarSign,\n TrendingUp,\n TrendingDown,\n Eye,\n Edit,\n Trash2,\n Download,\n Filter,\n Plus\n} from \"lucide-react\";\nimport { DataTable } from \"./DataTable\";\nimport { Button } from \"../Button\";\nimport { Badge } from \"../Badge\";\nimport { Avatar, AvatarImage, AvatarFallback } from \"../Avatar\";\nimport { Card, CardHeader, CardTitle, CardContent } from \"../Card\";\nimport { showToast } from \"../Toast\";\nimport type { Column, FilterValue, SortConfig, PaginationConfig } from \"./DataTable.types\";\n\n// Sample data types\ninterface User {\n id: number;\n name: string;\n email: string;\n role: string;\n status: 'active' | 'inactive' | 'pending';\n avatar: string;\n joinDate: string;\n lastLogin: string;\n department: string;\n}\n\ninterface Sale {\n id: number;\n product: string;\n customer: string;\n amount: number;\n status: 'completed' | 'pending' | 'cancelled';\n date: string;\n region: string;\n salesperson: string;\n}\n\ninterface Task {\n id: number;\n title: string;\n assignee: string;\n priority: 'low' | 'medium' | 'high' | 'urgent';\n status: 'todo' | 'in-progress' | 'review' | 'completed';\n dueDate: string;\n project: string;\n tags: string[];\n}\n\n// Generate sample data\nconst generateUsers = (): User[] => {\n const roles = ['Admin', 'Manager', 'Developer', 'Designer', 'Analyst'];\n const departments = ['Engineering', 'Design', 'Marketing', 'Sales', 'HR'];\n const statuses: User['status'][] = ['active', 'inactive', 'pending'];\n \n return Array.from({ length: 50 }, (_, i) => ({\n id: i + 1,\n name: `User ${i + 1}`,\n email: `user${i + 1}@company.com`,\n role: roles[Math.floor(Math.random() * roles.length)],\n status: statuses[Math.floor(Math.random() * statuses.length)],\n avatar: `https://images.pexels.com/photos/${774909 + i}/pexels-photo-${774909 + i}.jpeg?auto=compress&cs=tinysrgb&w=64`,\n joinDate: new Date(2020 + Math.floor(Math.random() * 4), Math.floor(Math.random() * 12), Math.floor(Math.random() * 28) + 1).toISOString().split('T')[0],\n lastLogin: new Date(Date.now() - Math.floor(Math.random() * 30) * 24 * 60 * 60 * 1000).toISOString().split('T')[0],\n department: departments[Math.floor(Math.random() * departments.length)],\n }));\n};\n\nconst generateSales = (): Sale[] => {\n const products = ['Pro Plan', 'Basic Plan', 'Enterprise', 'Starter', 'Premium'];\n const regions = ['North America', 'Europe', 'Asia Pacific', 'Latin America'];\n const statuses: Sale['status'][] = ['completed', 'pending', 'cancelled'];\n \n return Array.from({ length: 75 }, (_, i) => ({\n id: i + 1,\n product: products[Math.floor(Math.random() * products.length)],\n customer: `Customer ${i + 1}`,\n amount: Math.floor(Math.random() * 10000) + 100,\n status: statuses[Math.floor(Math.random() * statuses.length)],\n date: new Date(2024, Math.floor(Math.random() * 12), Math.floor(Math.random() * 28) + 1).toISOString().split('T')[0],\n region: regions[Math.floor(Math.random() * regions.length)],\n salesperson: `Sales Rep ${Math.floor(Math.random() * 10) + 1}`,\n }));\n};\n\nconst generateTasks = (): Task[] => {\n const priorities: Task['priority'][] = ['low', 'medium', 'high', 'urgent'];\n const statuses: Task['status'][] = ['todo', 'in-progress', 'review', 'completed'];\n const projects = ['Website Redesign', 'Mobile App', 'API Integration', 'Dashboard', 'Marketing Campaign'];\n const tagOptions = ['frontend', 'backend', 'design', 'testing', 'documentation', 'bug', 'feature'];\n \n return Array.from({ length: 60 }, (_, i) => ({\n id: i + 1,\n title: `Task ${i + 1}: Implement feature`,\n assignee: `Developer ${Math.floor(Math.random() * 8) + 1}`,\n priority: priorities[Math.floor(Math.random() * priorities.length)],\n status: statuses[Math.floor(Math.random() * statuses.length)],\n dueDate: new Date(Date.now() + Math.floor(Math.random() * 60) * 24 * 60 * 60 * 1000).toISOString().split('T')[0],\n project: projects[Math.floor(Math.random() * projects.length)],\n tags: Array.from({ length: Math.floor(Math.random() * 3) + 1 }, () => \n tagOptions[Math.floor(Math.random() * tagOptions.length)]\n ).filter((tag, index, arr) => arr.indexOf(tag) === index),\n }));\n};\n\n// Sample data\nconst usersData = generateUsers();\nconst salesData = generateSales();\nconst tasksData = generateTasks();\n\nexport const DataTableShowcase: React.FC = () => {\n const [selectedTab, setSelectedTab] = useState<'users' | 'sales' | 'tasks'>('users');\n const [selectedRows, setSelectedRows] = useState<React.Key[]>([]);\n\n // User table columns\n const userColumns: Column<User>[] = [\n {\n key: 'user',\n title: 'User',\n dataIndex: 'name',\n sortable: true,\n filterable: true,\n filterType: 'text',\n render: (_, record) => (\n <div className=\"flex items-center space-x-3\">\n <Avatar size=\"sm\">\n <AvatarImage src={record.avatar} />\n <AvatarFallback>{record.name.split(' ').map(n => n[0]).join('')}</AvatarFallback>\n </Avatar>\n <div>\n <div className=\"font-medium text-gray-900\">{record.name}</div>\n <div className=\"text-sm text-gray-500\">{record.email}</div>\n </div>\n </div>\n ),\n },\n {\n key: 'role',\n title: 'Role',\n dataIndex: 'role',\n sortable: true,\n filterable: true,\n filterType: 'select',\n filterOptions: [\n { label: 'Admin', value: 'Admin' },\n { label: 'Manager', value: 'Manager' },\n { label: 'Developer', value: 'Developer' },\n { label: 'Designer', value: 'Designer' },\n { label: 'Analyst', value: 'Analyst' },\n ],\n },\n {\n key: 'department',\n title: 'Department',\n dataIndex: 'department',\n sortable: true,\n filterable: true,\n filterType: 'select',\n filterOptions: [\n { label: 'Engineering', value: 'Engineering' },\n { label: 'Design', value: 'Design' },\n { label: 'Marketing', value: 'Marketing' },\n { label: 'Sales', value: 'Sales' },\n { label: 'HR', value: 'HR' },\n ],\n },\n {\n key: 'status',\n title: 'Status',\n dataIndex: 'status',\n sortable: true,\n filterable: true,\n filterType: 'select',\n filterOptions: [\n { label: 'Active', value: 'active' },\n { label: 'Inactive', value: 'inactive' },\n { label: 'Pending', value: 'pending' },\n ],\n render: (status: User['status']) => (\n <Badge \n variant={\n status === 'active' ? 'success' : \n status === 'inactive' ? 'secondary' : 'warning'\n }\n >\n {status.charAt(0).toUpperCase() + status.slice(1)}\n </Badge>\n ),\n },\n {\n key: 'joinDate',\n title: 'Join Date',\n dataIndex: 'joinDate',\n sortable: true,\n filterable: true,\n filterType: 'date',\n },\n {\n key: 'actions',\n title: 'Actions',\n dataIndex: 'id',\n align: 'center',\n render: (_, record) => (\n <div className=\"flex items-center justify-center space-x-1\">\n <Button variant=\"ghost\" size=\"sm\" onClick={() => showToast.info(`View user ${record.name}`)}>\n <Eye className=\"h-4 w-4\" />\n </Button>\n <Button variant=\"ghost\" size=\"sm\" onClick={() => showToast.info(`Edit user ${record.name}`)}>\n <Edit className=\"h-4 w-4\" />\n </Button>\n <Button variant=\"ghost\" size=\"sm\" onClick={() => showToast.warning(`Delete user ${record.name}`)}>\n <Trash2 className=\"h-4 w-4 text-danger-600\" />\n </Button>\n </div>\n ),\n },\n ];\n\n // Sales table columns\n const salesColumns: Column<Sale>[] = [\n {\n key: 'product',\n title: 'Product',\n dataIndex: 'product',\n sortable: true,\n filterable: true,\n filterType: 'text',\n render: (product) => (\n <div className=\"font-medium text-gray-900\">{product}</div>\n ),\n },\n {\n key: 'customer',\n title: 'Customer',\n dataIndex: 'customer',\n sortable: true,\n filterable: true,\n filterType: 'text',\n },\n {\n key: 'amount',\n title: 'Amount',\n dataIndex: 'amount',\n sortable: true,\n filterable: true,\n filterType: 'number',\n align: 'right',\n render: (amount: number) => (\n <div className=\"flex items-center justify-end space-x-1\">\n <DollarSign className=\"h-4 w-4 text-gray-400\" />\n <span className=\"font-medium\">{amount.toLocaleString()}</span>\n </div>\n ),\n },\n {\n key: 'status',\n title: 'Status',\n dataIndex: 'status',\n sortable: true,\n filterable: true,\n filterType: 'select',\n filterOptions: [\n { label: 'Completed', value: 'completed' },\n { label: 'Pending', value: 'pending' },\n { label: 'Cancelled', value: 'cancelled' },\n ],\n render: (status: Sale['status']) => (\n <Badge \n variant={\n status === 'completed' ? 'success' : \n status === 'pending' ? 'warning' : 'danger'\n }\n >\n {status.charAt(0).toUpperCase() + status.slice(1)}\n </Badge>\n ),\n },\n {\n key: 'region',\n title: 'Region',\n dataIndex: 'region',\n sortable: true,\n filterable: true,\n filterType: 'select',\n filterOptions: [\n { label: 'North America', value: 'North America' },\n { label: 'Europe', value: 'Europe' },\n { label: 'Asia Pacific', value: 'Asia Pacific' },\n { label: 'Latin America', value: 'Latin America' },\n ],\n },\n {\n key: 'date',\n title: 'Date',\n dataIndex: 'date',\n sortable: true,\n filterable: true,\n filterType: 'date',\n },\n ];\n\n // Tasks table columns\n const taskColumns: Column<Task>[] = [\n {\n key: 'title',\n title: 'Task',\n dataIndex: 'title',\n sortable: true,\n filterable: true,\n filterType: 'text',\n render: (title, record) => (\n <div>\n <div className=\"font-medium text-gray-900\">{title}</div>\n <div className=\"text-sm text-gray-500\">{record.project}</div>\n </div>\n ),\n },\n {\n key: 'assignee',\n title: 'Assignee',\n dataIndex: 'assignee',\n sortable: true,\n filterable: true,\n filterType: 'text',\n },\n {\n key: 'priority',\n title: 'Priority',\n dataIndex: 'priority',\n sortable: true,\n filterable: true,\n filterType: 'select',\n filterOptions: [\n { label: 'Low', value: 'low' },\n { label: 'Medium', value: 'medium' },\n { label: 'High', value: 'high' },\n { label: 'Urgent', value: 'urgent' },\n ],\n render: (priority: Task['priority']) => (\n <Badge \n variant={\n priority === 'urgent' ? 'danger' :\n priority === 'high' ? 'warning' :\n priority === 'medium' ? 'secondary' : 'outline'\n }\n >\n {priority.charAt(0).toUpperCase() + priority.slice(1)}\n </Badge>\n ),\n },\n {\n key: 'status',\n title: 'Status',\n dataIndex: 'status',\n sortable: true,\n filterable: true,\n filterType: 'select',\n filterOptions: [\n { label: 'To Do', value: 'todo' },\n { label: 'In Progress', value: 'in-progress' },\n { label: 'Review', value: 'review' },\n { label: 'Completed', value: 'completed' },\n ],\n render: (status: Task['status']) => (\n <Badge \n variant={\n status === 'completed' ? 'success' :\n status === 'in-progress' ? 'warning' :\n status === 'review' ? 'secondary' : 'outline'\n }\n >\n {status.replace('-', ' ').replace(/\\b\\w/g, l => l.toUpperCase())}\n </Badge>\n ),\n },\n {\n key: 'dueDate',\n title: 'Due Date',\n dataIndex: 'dueDate',\n sortable: true,\n filterable: true,\n filterType: 'date',\n },\n {\n key: 'tags',\n title: 'Tags',\n dataIndex: 'tags',\n render: (tags: string[]) => (\n <div className=\"flex flex-wrap gap-1\">\n {tags.slice(0, 2).map(tag => (\n <Badge key={tag} variant=\"outline\" className=\"text-xs\">\n {tag}\n </Badge>\n ))}\n {tags.length > 2 && (\n <Badge variant=\"outline\" className=\"text-xs\">\n +{tags.length - 2}\n </Badge>\n )}\n </div>\n ),\n },\n ];\n\n const getCurrentData = () => {\n switch (selectedTab) {\n case 'users': return usersData;\n case 'sales': return salesData;\n case 'tasks': return tasksData;\n default: return [];\n }\n };\n\n const getCurrentColumns = () => {\n switch (selectedTab) {\n case 'users': return userColumns;\n case 'sales': return salesColumns;\n case 'tasks': return taskColumns;\n default: return [];\n }\n };\n\n return (\n <div className=\"space-y-6\">\n {/* Header */}\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-bold text-gray-900\">DataTable Component</h1>\n <p className=\"text-gray-600 mt-1\">\n A comprehensive table component with filtering, sorting, and pagination\n </p>\n </div>\n <div className=\"flex items-center space-x-2\">\n <Button variant=\"outline\" onClick={() => showToast.info('Export functionality')}>\n <Download className=\"h-4 w-4 mr-2\" />\n Export\n </Button>\n <Button variant=\"primary\" onClick={() => showToast.success('Add new item')}>\n <Plus className=\"h-4 w-4 mr-2\" />\n Add New\n </Button>\n </div>\n </div>\n\n {/* Tabs */}\n <div className=\"border-b border-gray-200\">\n <nav className=\"-mb-px flex space-x-8\">\n {[\n { key: 'users', label: 'Users', icon: Users },\n { key: 'sales', label: 'Sales', icon: DollarSign },\n { key: 'tasks', label: 'Tasks', icon: Calendar },\n ].map(({ key, label, icon: Icon }) => (\n <button\n key={key}\n onClick={() => setSelectedTab(key as any)}\n className={`\n flex items-center space-x-2 py-2 px-1 border-b-2 font-medium text-sm\n ${selectedTab === key\n ? 'border-primary-500 text-primary-600'\n : 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300'\n }\n `}\n >\n <Icon className=\"h-4 w-4\" />\n <span>{label}</span>\n </button>\n ))}\n </nav>\n </div>\n\n {/* Stats Cards */}\n <div className=\"grid grid-cols-1 md:grid-cols-4 gap-4\">\n <Card>\n <CardContent className=\"p-4\">\n <div className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-sm font-medium text-gray-600\">Total Records</p>\n <p className=\"text-2xl font-bold text-gray-900\">{getCurrentData().length}</p>\n </div>\n <div className=\"p-2 bg-primary-100 rounded-lg\">\n <Users className=\"h-6 w-6 text-primary-600\" />\n </div>\n </div>\n </CardContent>\n </Card>\n \n <Card>\n <CardContent className=\"p-4\">\n <div className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-sm font-medium text-gray-600\">Selected</p>\n <p className=\"text-2xl font-bold text-gray-900\">{selectedRows.length}</p>\n </div>\n <div className=\"p-2 bg-success-100 rounded-lg\">\n <Filter className=\"h-6 w-6 text-success-600\" />\n </div>\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardContent className=\"p-4\">\n <div className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-sm font-medium text-gray-600\">Active Filters</p>\n <p className=\"text-2xl font-bold text-gray-900\">0</p>\n </div>\n <div className=\"p-2 bg-warning-100 rounded-lg\">\n <Filter className=\"h-6 w-6 text-warning-600\" />\n </div>\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardContent className=\"p-4\">\n <div className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-sm font-medium text-gray-600\">Performance</p>\n <div className=\"flex items-center space-x-1\">\n <TrendingUp className=\"h-4 w-4 text-success-600\" />\n <p className=\"text-2xl font-bold text-gray-900\">Fast</p>\n </div>\n </div>\n <div className=\"p-2 bg-success-100 rounded-lg\">\n <TrendingUp className=\"h-6 w-6 text-success-600\" />\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n\n {/* DataTable */}\n <Card>\n <CardContent className=\"p-0\">\n {selectedTab === \"users\" && (\n <DataTable<User>\n columns={userColumns}\n dataSource={usersData}\n rowKey=\"id\"\n pagination={{\n current: 1,\n pageSize: 10,\n total: usersData.length,\n showSizeChanger: true,\n pageSizeOptions: [5, 10, 20, 50],\n }}\n rowSelection={{\n type: 'checkbox',\n selectedRowKeys: selectedRows,\n onChange: (keys) => {\n setSelectedRows(keys);\n showToast.info(`Selected ${keys.length} items`);\n },\n }}\n size=\"middle\"\n bordered={false}\n title={() => (\n <div className=\"flex items-center justify-between p-4 border-b border-gray-200\">\n <h3 className=\"text-lg font-semibold text-gray-900\">\n Users Data\n </h3>\n <div className=\"flex items-center space-x-2\">\n <Badge variant=\"outline\">\n {usersData.length} total\n </Badge>\n {selectedRows.length > 0 && (\n <Badge variant=\"secondary\">\n {selectedRows.length} selected\n </Badge>\n )}\n </div>\n </div>\n )}\n onChange={(pagination, filters, sorter) => {\n console.log('Table changed:', { pagination, filters, sorter });\n }}\n />\n )}\n\n {selectedTab === \"sales\" && (\n <DataTable<Sale>\n columns={salesColumns}\n dataSource={salesData}\n rowKey=\"id\"\n pagination={{\n current: 1,\n pageSize: 10,\n total: salesData.length,\n showSizeChanger: true,\n pageSizeOptions: [5, 10, 20, 50],\n }}\n rowSelection={{\n type: 'checkbox',\n selectedRowKeys: selectedRows,\n onChange: (keys) => {\n setSelectedRows(keys);\n showToast.info(`Selected ${keys.length} items`);\n },\n }}\n size=\"middle\"\n bordered={false}\n title={() => (\n <div className=\"flex items-center justify-between p-4 border-b border-gray-200\">\n <h3 className=\"text-lg font-semibold text-gray-900\">\n Sales Data\n </h3>\n <div className=\"flex items-center space-x-2\">\n <Badge variant=\"outline\">\n {salesData.length} total\n </Badge>\n {selectedRows.length > 0 && (\n <Badge variant=\"secondary\">\n {selectedRows.length} selected\n </Badge>\n )}\n </div>\n </div>\n )}\n onChange={(pagination, filters, sorter) => {\n console.log('Table changed:', { pagination, filters, sorter });\n }}\n />\n )}\n\n {selectedTab === \"tasks\" && (\n <DataTable<Task>\n columns={taskColumns}\n dataSource={tasksData}\n rowKey=\"id\"\n pagination={{\n current: 1,\n pageSize: 10,\n total: tasksData.length,\n showSizeChanger: true,\n pageSizeOptions: [5, 10, 20, 50],\n }}\n rowSelection={{\n type: 'checkbox',\n selectedRowKeys: selectedRows,\n onChange: (keys) => {\n setSelectedRows(keys);\n showToast.info(`Selected ${keys.length} items`);\n },\n }}\n size=\"middle\"\n bordered={false}\n title={() => (\n <div className=\"flex items-center justify-between p-4 border-b border-gray-200\">\n <h3 className=\"text-lg font-semibold text-gray-900\">\n Tasks Data\n </h3>\n <div className=\"flex items-center space-x-2\">\n <Badge variant=\"outline\">\n {tasksData.length} total\n </Badge>\n {selectedRows.length > 0 && (\n <Badge variant=\"secondary\">\n {selectedRows.length} selected\n </Badge>\n )}\n </div>\n </div>\n )}\n onChange={(pagination, filters, sorter) => {\n console.log('Table changed:', { pagination, filters, sorter });\n }}\n />\n )}\n </CardContent>\n </Card>\n\n {/* Documentation */}\n <Card>\n <CardHeader>\n <CardTitle>Component Features</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n <div>\n <h4 className=\"font-semibold text-gray-900 mb-2\">Core Features</h4>\n <ul className=\"space-y-1 text-sm text-gray-600\">\n <li>• Sortable columns with visual indicators</li>\n <li>• Advanced filtering (text, select, date)</li>\n <li>• Pagination with configurable page sizes</li>\n <li>• Row selection (single/multiple)</li>\n <li>• Responsive design for all screen sizes</li>\n <li>• Loading and empty states</li>\n </ul>\n </div>\n <div>\n <h4 className=\"font-semibold text-gray-900 mb-2\">Advanced Features</h4>\n <ul className=\"space-y-1 text-sm text-gray-600\">\n <li>• Custom cell renderers</li>\n <li>• TypeScript support with full typing</li>\n <li>• Accessibility features (ARIA labels)</li>\n <li>• Performance optimizations</li>\n <li>• Customizable styling and themes</li>\n <li>• Export and bulk actions support</li>\n </ul>\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n );\n};"],"names":["_jsxs","_jsx","Edit"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataTableShowcase.js","sources":["../../../src/components/DataTable/DataTableShowcase.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { useState } from \"react\";\nimport { \n Users, \n Mail, \n Phone, \n MapPin, \n Calendar,\n DollarSign,\n TrendingUp,\n TrendingDown,\n Eye,\n Edit,\n Trash2,\n Download,\n Filter,\n Plus\n} from \"lucide-react\";\nimport { DataTable } from \"./DataTable\";\nimport { Button } from \"../Button\";\nimport { Badge } from \"../Badge\";\nimport { Avatar, AvatarImage, AvatarFallback } from \"../Avatar\";\nimport { Card, CardHeader, CardTitle, CardContent } from \"../Card\";\nimport { showToast } from \"../Toast\";\nimport type { Column, FilterValue, SortConfig, PaginationConfig } from \"./DataTable.types\";\n\n// Sample data types\ninterface User {\n id: number;\n name: string;\n email: string;\n role: string;\n status: 'active' | 'inactive' | 'pending';\n avatar: string;\n joinDate: string;\n lastLogin: string;\n department: string;\n}\n\ninterface Sale {\n id: number;\n product: string;\n customer: string;\n amount: number;\n status: 'completed' | 'pending' | 'cancelled';\n date: string;\n region: string;\n salesperson: string;\n}\n\ninterface Task {\n id: number;\n title: string;\n assignee: string;\n priority: 'low' | 'medium' | 'high' | 'urgent';\n status: 'todo' | 'in-progress' | 'review' | 'completed';\n dueDate: string;\n project: string;\n tags: string[];\n}\n\n// Generate sample data\nconst generateUsers = (): User[] => {\n const roles = ['Admin', 'Manager', 'Developer', 'Designer', 'Analyst'];\n const departments = ['Engineering', 'Design', 'Marketing', 'Sales', 'HR'];\n const statuses: User['status'][] = ['active', 'inactive', 'pending'];\n \n return Array.from({ length: 50 }, (_, i) => ({\n id: i + 1,\n name: `User ${i + 1}`,\n email: `user${i + 1}@company.com`,\n role: roles[Math.floor(Math.random() * roles.length)],\n status: statuses[Math.floor(Math.random() * statuses.length)],\n avatar: `https://images.pexels.com/photos/${774909 + i}/pexels-photo-${774909 + i}.jpeg?auto=compress&cs=tinysrgb&w=64`,\n joinDate: new Date(2020 + Math.floor(Math.random() * 4), Math.floor(Math.random() * 12), Math.floor(Math.random() * 28) + 1).toISOString().split('T')[0],\n lastLogin: new Date(Date.now() - Math.floor(Math.random() * 30) * 24 * 60 * 60 * 1000).toISOString().split('T')[0],\n department: departments[Math.floor(Math.random() * departments.length)],\n }));\n};\n\nconst generateSales = (): Sale[] => {\n const products = ['Pro Plan', 'Basic Plan', 'Enterprise', 'Starter', 'Premium'];\n const regions = ['North America', 'Europe', 'Asia Pacific', 'Latin America'];\n const statuses: Sale['status'][] = ['completed', 'pending', 'cancelled'];\n \n return Array.from({ length: 75 }, (_, i) => ({\n id: i + 1,\n product: products[Math.floor(Math.random() * products.length)],\n customer: `Customer ${i + 1}`,\n amount: Math.floor(Math.random() * 10000) + 100,\n status: statuses[Math.floor(Math.random() * statuses.length)],\n date: new Date(2024, Math.floor(Math.random() * 12), Math.floor(Math.random() * 28) + 1).toISOString().split('T')[0],\n region: regions[Math.floor(Math.random() * regions.length)],\n salesperson: `Sales Rep ${Math.floor(Math.random() * 10) + 1}`,\n }));\n};\n\nconst generateTasks = (): Task[] => {\n const priorities: Task['priority'][] = ['low', 'medium', 'high', 'urgent'];\n const statuses: Task['status'][] = ['todo', 'in-progress', 'review', 'completed'];\n const projects = ['Website Redesign', 'Mobile App', 'API Integration', 'Dashboard', 'Marketing Campaign'];\n const tagOptions = ['frontend', 'backend', 'design', 'testing', 'documentation', 'bug', 'feature'];\n \n return Array.from({ length: 60 }, (_, i) => ({\n id: i + 1,\n title: `Task ${i + 1}: Implement feature`,\n assignee: `Developer ${Math.floor(Math.random() * 8) + 1}`,\n priority: priorities[Math.floor(Math.random() * priorities.length)],\n status: statuses[Math.floor(Math.random() * statuses.length)],\n dueDate: new Date(Date.now() + Math.floor(Math.random() * 60) * 24 * 60 * 60 * 1000).toISOString().split('T')[0],\n project: projects[Math.floor(Math.random() * projects.length)],\n tags: Array.from({ length: Math.floor(Math.random() * 3) + 1 }, () => \n tagOptions[Math.floor(Math.random() * tagOptions.length)]\n ).filter((tag, index, arr) => arr.indexOf(tag) === index),\n }));\n};\n\n// Sample data\nconst usersData = generateUsers();\nconst salesData = generateSales();\nconst tasksData = generateTasks();\n\nexport const DataTableShowcase: React.FC = () => {\n const [selectedTab, setSelectedTab] = useState<'users' | 'sales' | 'tasks'>('users');\n const [selectedRows, setSelectedRows] = useState<React.Key[]>([]);\n\n // User table columns\n const userColumns: Column<User>[] = [\n {\n key: 'user',\n title: 'User',\n dataIndex: 'name',\n sortable: true,\n filterable: true,\n filterType: 'text',\n render: (_, record) => (\n <div className=\"flex items-center space-x-3\">\n <Avatar size=\"sm\">\n <AvatarImage src={record.avatar} />\n <AvatarFallback>{record.name.split(' ').map(n => n[0]).join('')}</AvatarFallback>\n </Avatar>\n <div>\n <div className=\"font-medium text-gray-900\">{record.name}</div>\n <div className=\"text-sm text-gray-500\">{record.email}</div>\n </div>\n </div>\n ),\n },\n {\n key: 'role',\n title: 'Role',\n dataIndex: 'role',\n sortable: true,\n filterable: true,\n filterType: 'select',\n filterOptions: [\n { label: 'Admin', value: 'Admin' },\n { label: 'Manager', value: 'Manager' },\n { label: 'Developer', value: 'Developer' },\n { label: 'Designer', value: 'Designer' },\n { label: 'Analyst', value: 'Analyst' },\n ],\n },\n {\n key: 'department',\n title: 'Department',\n dataIndex: 'department',\n sortable: true,\n filterable: true,\n filterType: 'select',\n filterOptions: [\n { label: 'Engineering', value: 'Engineering' },\n { label: 'Design', value: 'Design' },\n { label: 'Marketing', value: 'Marketing' },\n { label: 'Sales', value: 'Sales' },\n { label: 'HR', value: 'HR' },\n ],\n },\n {\n key: 'status',\n title: 'Status',\n dataIndex: 'status',\n sortable: true,\n filterable: true,\n filterType: 'select',\n filterOptions: [\n { label: 'Active', value: 'active' },\n { label: 'Inactive', value: 'inactive' },\n { label: 'Pending', value: 'pending' },\n ],\n render: (status: User['status']) => (\n <Badge \n variant={\n status === 'active' ? 'success' : \n status === 'inactive' ? 'secondary' : 'warning'\n }\n >\n {status.charAt(0).toUpperCase() + status.slice(1)}\n </Badge>\n ),\n },\n {\n key: 'joinDate',\n title: 'Join Date',\n dataIndex: 'joinDate',\n sortable: true,\n filterable: true,\n filterType: 'date',\n },\n {\n key: 'actions',\n title: 'Actions',\n dataIndex: 'id',\n align: 'center',\n render: (_, record) => (\n <div className=\"flex items-center justify-center space-x-1\">\n <Button variant=\"ghost\" size=\"sm\" onClick={() => showToast.info(`View user ${record.name}`)}>\n <Eye className=\"h-4 w-4\" />\n </Button>\n <Button variant=\"ghost\" size=\"sm\" onClick={() => showToast.info(`Edit user ${record.name}`)}>\n <Edit className=\"h-4 w-4\" />\n </Button>\n <Button variant=\"ghost\" size=\"sm\" onClick={() => showToast.warning(`Delete user ${record.name}`)}>\n <Trash2 className=\"h-4 w-4 text-danger-600\" />\n </Button>\n </div>\n ),\n },\n ];\n\n // Sales table columns\n const salesColumns: Column<Sale>[] = [\n {\n key: 'product',\n title: 'Product',\n dataIndex: 'product',\n sortable: true,\n filterable: true,\n filterType: 'text',\n render: (product) => (\n <div className=\"font-medium text-gray-900\">{product}</div>\n ),\n },\n {\n key: 'customer',\n title: 'Customer',\n dataIndex: 'customer',\n sortable: true,\n filterable: true,\n filterType: 'text',\n },\n {\n key: 'amount',\n title: 'Amount',\n dataIndex: 'amount',\n sortable: true,\n filterable: true,\n filterType: 'number',\n align: 'right',\n render: (amount: number) => (\n <div className=\"flex items-center justify-end space-x-1\">\n <DollarSign className=\"h-4 w-4 text-gray-400\" />\n <span className=\"font-medium\">{amount.toLocaleString()}</span>\n </div>\n ),\n },\n {\n key: 'status',\n title: 'Status',\n dataIndex: 'status',\n sortable: true,\n filterable: true,\n filterType: 'select',\n filterOptions: [\n { label: 'Completed', value: 'completed' },\n { label: 'Pending', value: 'pending' },\n { label: 'Cancelled', value: 'cancelled' },\n ],\n render: (status: Sale['status']) => (\n <Badge \n variant={\n status === 'completed' ? 'success' : \n status === 'pending' ? 'warning' : 'danger'\n }\n >\n {status.charAt(0).toUpperCase() + status.slice(1)}\n </Badge>\n ),\n },\n {\n key: 'region',\n title: 'Region',\n dataIndex: 'region',\n sortable: true,\n filterable: true,\n filterType: 'select',\n filterOptions: [\n { label: 'North America', value: 'North America' },\n { label: 'Europe', value: 'Europe' },\n { label: 'Asia Pacific', value: 'Asia Pacific' },\n { label: 'Latin America', value: 'Latin America' },\n ],\n },\n {\n key: 'date',\n title: 'Date',\n dataIndex: 'date',\n sortable: true,\n filterable: true,\n filterType: 'date',\n },\n ];\n\n // Tasks table columns\n const taskColumns: Column<Task>[] = [\n {\n key: 'title',\n title: 'Task',\n dataIndex: 'title',\n sortable: true,\n filterable: true,\n filterType: 'text',\n render: (title, record) => (\n <div>\n <div className=\"font-medium text-gray-900\">{title}</div>\n <div className=\"text-sm text-gray-500\">{record.project}</div>\n </div>\n ),\n },\n {\n key: 'assignee',\n title: 'Assignee',\n dataIndex: 'assignee',\n sortable: true,\n filterable: true,\n filterType: 'text',\n },\n {\n key: 'priority',\n title: 'Priority',\n dataIndex: 'priority',\n sortable: true,\n filterable: true,\n filterType: 'select',\n filterOptions: [\n { label: 'Low', value: 'low' },\n { label: 'Medium', value: 'medium' },\n { label: 'High', value: 'high' },\n { label: 'Urgent', value: 'urgent' },\n ],\n render: (priority: Task['priority']) => (\n <Badge \n variant={\n priority === 'urgent' ? 'danger' :\n priority === 'high' ? 'warning' :\n priority === 'medium' ? 'secondary' : 'outline'\n }\n >\n {priority.charAt(0).toUpperCase() + priority.slice(1)}\n </Badge>\n ),\n },\n {\n key: 'status',\n title: 'Status',\n dataIndex: 'status',\n sortable: true,\n filterable: true,\n filterType: 'select',\n filterOptions: [\n { label: 'To Do', value: 'todo' },\n { label: 'In Progress', value: 'in-progress' },\n { label: 'Review', value: 'review' },\n { label: 'Completed', value: 'completed' },\n ],\n render: (status: Task['status']) => (\n <Badge \n variant={\n status === 'completed' ? 'success' :\n status === 'in-progress' ? 'warning' :\n status === 'review' ? 'secondary' : 'outline'\n }\n >\n {status.replace('-', ' ').replace(/\\b\\w/g, l => l.toUpperCase())}\n </Badge>\n ),\n },\n {\n key: 'dueDate',\n title: 'Due Date',\n dataIndex: 'dueDate',\n sortable: true,\n filterable: true,\n filterType: 'date',\n },\n {\n key: 'tags',\n title: 'Tags',\n dataIndex: 'tags',\n render: (tags: string[]) => (\n <div className=\"flex flex-wrap gap-1\">\n {tags.slice(0, 2).map(tag => (\n <Badge key={tag} variant=\"outline\" className=\"text-xs\">\n {tag}\n </Badge>\n ))}\n {tags.length > 2 && (\n <Badge variant=\"outline\" className=\"text-xs\">\n +{tags.length - 2}\n </Badge>\n )}\n </div>\n ),\n },\n ];\n\n const getCurrentData = () => {\n switch (selectedTab) {\n case 'users': return usersData;\n case 'sales': return salesData;\n case 'tasks': return tasksData;\n default: return [];\n }\n };\n\n const getCurrentColumns = () => {\n switch (selectedTab) {\n case 'users': return userColumns;\n case 'sales': return salesColumns;\n case 'tasks': return taskColumns;\n default: return [];\n }\n };\n\n return (\n <div className=\"space-y-6\">\n {/* Header */}\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-bold text-gray-900\">DataTable Component</h1>\n <p className=\"text-gray-600 mt-1\">\n A comprehensive table component with filtering, sorting, and pagination\n </p>\n </div>\n <div className=\"flex items-center space-x-2\">\n <Button variant=\"outline\" onClick={() => showToast.info('Export functionality')}>\n <Download className=\"h-4 w-4 mr-2\" />\n Export\n </Button>\n <Button variant=\"primary\" onClick={() => showToast.success('Add new item')}>\n <Plus className=\"h-4 w-4 mr-2\" />\n Add New\n </Button>\n </div>\n </div>\n\n {/* Tabs */}\n <div className=\"border-b border-gray-200\">\n <nav className=\"-mb-px flex space-x-8\">\n {[\n { key: 'users', label: 'Users', icon: Users },\n { key: 'sales', label: 'Sales', icon: DollarSign },\n { key: 'tasks', label: 'Tasks', icon: Calendar },\n ].map(({ key, label, icon: Icon }) => (\n <button\n key={key}\n onClick={() => setSelectedTab(key as any)}\n className={`\n flex items-center space-x-2 py-2 px-1 border-b-2 font-medium text-sm\n ${selectedTab === key\n ? 'border-primary-500 text-primary-600'\n : 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300'\n }\n `}\n >\n <Icon className=\"h-4 w-4\" />\n <span>{label}</span>\n </button>\n ))}\n </nav>\n </div>\n\n {/* Stats Cards */}\n <div className=\"grid grid-cols-1 md:grid-cols-4 gap-4\">\n <Card>\n <CardContent className=\"p-4\">\n <div className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-sm font-medium text-gray-600\">Total Records</p>\n <p className=\"text-2xl font-bold text-gray-900\">{getCurrentData().length}</p>\n </div>\n <div className=\"p-2 bg-primary-100 rounded-lg\">\n <Users className=\"h-6 w-6 text-primary-600\" />\n </div>\n </div>\n </CardContent>\n </Card>\n \n <Card>\n <CardContent className=\"p-4\">\n <div className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-sm font-medium text-gray-600\">Selected</p>\n <p className=\"text-2xl font-bold text-gray-900\">{selectedRows.length}</p>\n </div>\n <div className=\"p-2 bg-success-100 rounded-lg\">\n <Filter className=\"h-6 w-6 text-success-600\" />\n </div>\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardContent className=\"p-4\">\n <div className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-sm font-medium text-gray-600\">Active Filters</p>\n <p className=\"text-2xl font-bold text-gray-900\">0</p>\n </div>\n <div className=\"p-2 bg-warning-100 rounded-lg\">\n <Filter className=\"h-6 w-6 text-warning-600\" />\n </div>\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardContent className=\"p-4\">\n <div className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-sm font-medium text-gray-600\">Performance</p>\n <div className=\"flex items-center space-x-1\">\n <TrendingUp className=\"h-4 w-4 text-success-600\" />\n <p className=\"text-2xl font-bold text-gray-900\">Fast</p>\n </div>\n </div>\n <div className=\"p-2 bg-success-100 rounded-lg\">\n <TrendingUp className=\"h-6 w-6 text-success-600\" />\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n\n {/* DataTable */}\n <Card>\n <CardContent className=\"p-0\">\n {selectedTab === \"users\" && (\n <DataTable<User>\n columns={userColumns}\n dataSource={usersData}\n rowKey=\"id\"\n pagination={{\n current: 1,\n pageSize: 10,\n total: usersData.length,\n showSizeChanger: true,\n pageSizeOptions: [5, 10, 20, 50],\n }}\n rowSelection={{\n type: 'checkbox',\n selectedRowKeys: selectedRows,\n onChange: (keys) => {\n setSelectedRows(keys);\n showToast.info(`Selected ${keys.length} items`);\n },\n }}\n size=\"middle\"\n bordered={false}\n title={() => (\n <div className=\"flex items-center justify-between p-4 border-b border-gray-200\">\n <h3 className=\"text-lg font-semibold text-gray-900\">\n Users Data\n </h3>\n <div className=\"flex items-center space-x-2\">\n <Badge variant=\"outline\">\n {usersData.length} total\n </Badge>\n {selectedRows.length > 0 && (\n <Badge variant=\"secondary\">\n {selectedRows.length} selected\n </Badge>\n )}\n </div>\n </div>\n )}\n onChange={(pagination, filters, sorter) => {\n console.log('Table changed:', { pagination, filters, sorter });\n }}\n />\n )}\n\n {selectedTab === \"sales\" && (\n <DataTable<Sale>\n columns={salesColumns}\n dataSource={salesData}\n rowKey=\"id\"\n pagination={{\n current: 1,\n pageSize: 10,\n total: salesData.length,\n showSizeChanger: true,\n pageSizeOptions: [5, 10, 20, 50],\n }}\n rowSelection={{\n type: 'checkbox',\n selectedRowKeys: selectedRows,\n onChange: (keys) => {\n setSelectedRows(keys);\n showToast.info(`Selected ${keys.length} items`);\n },\n }}\n size=\"middle\"\n bordered={false}\n title={() => (\n <div className=\"flex items-center justify-between p-4 border-b border-gray-200\">\n <h3 className=\"text-lg font-semibold text-gray-900\">\n Sales Data\n </h3>\n <div className=\"flex items-center space-x-2\">\n <Badge variant=\"outline\">\n {salesData.length} total\n </Badge>\n {selectedRows.length > 0 && (\n <Badge variant=\"secondary\">\n {selectedRows.length} selected\n </Badge>\n )}\n </div>\n </div>\n )}\n onChange={(pagination, filters, sorter) => {\n console.log('Table changed:', { pagination, filters, sorter });\n }}\n />\n )}\n\n {selectedTab === \"tasks\" && (\n <DataTable<Task>\n columns={taskColumns}\n dataSource={tasksData}\n rowKey=\"id\"\n pagination={{\n current: 1,\n pageSize: 10,\n total: tasksData.length,\n showSizeChanger: true,\n pageSizeOptions: [5, 10, 20, 50],\n }}\n rowSelection={{\n type: 'checkbox',\n selectedRowKeys: selectedRows,\n onChange: (keys) => {\n setSelectedRows(keys);\n showToast.info(`Selected ${keys.length} items`);\n },\n }}\n size=\"middle\"\n bordered={false}\n title={() => (\n <div className=\"flex items-center justify-between p-4 border-b border-gray-200\">\n <h3 className=\"text-lg font-semibold text-gray-900\">\n Tasks Data\n </h3>\n <div className=\"flex items-center space-x-2\">\n <Badge variant=\"outline\">\n {tasksData.length} total\n </Badge>\n {selectedRows.length > 0 && (\n <Badge variant=\"secondary\">\n {selectedRows.length} selected\n </Badge>\n )}\n </div>\n </div>\n )}\n onChange={(pagination, filters, sorter) => {\n console.log('Table changed:', { pagination, filters, sorter });\n }}\n />\n )}\n </CardContent>\n </Card>\n\n {/* Documentation */}\n <Card>\n <CardHeader>\n <CardTitle>Component Features</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n <div>\n <h4 className=\"font-semibold text-gray-900 mb-2\">Core Features</h4>\n <ul className=\"space-y-1 text-sm text-gray-600\">\n <li>• Sortable columns with visual indicators</li>\n <li>• Advanced filtering (text, select, date)</li>\n <li>• Pagination with configurable page sizes</li>\n <li>• Row selection (single/multiple)</li>\n <li>• Responsive design for all screen sizes</li>\n <li>• Loading and empty states</li>\n </ul>\n </div>\n <div>\n <h4 className=\"font-semibold text-gray-900 mb-2\">Advanced Features</h4>\n <ul className=\"space-y-1 text-sm text-gray-600\">\n <li>• Custom cell renderers</li>\n <li>• TypeScript support with full typing</li>\n <li>• Accessibility features (ARIA labels)</li>\n <li>• Performance optimizations</li>\n <li>• Customizable styling and themes</li>\n <li>• Export and bulk actions support</li>\n </ul>\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n );\n};"],"names":["_jsxs","_jsx","Edit"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { cva } from 'class-variance-authority';
|
|
4
4
|
import { cn } from '../../utils/cn.js';
|
|
@@ -22,7 +22,7 @@ const inputVariants = cva("flex w-full rounded-md border bg-white px-3 py-2 text
|
|
|
22
22
|
},
|
|
23
23
|
});
|
|
24
24
|
const Input = React.forwardRef(({ className, variant, inputSize, type, ...props }, ref) => {
|
|
25
|
-
return (
|
|
25
|
+
return (jsx("input", { type: type, className: cn(inputVariants({ variant, inputSize, className })), ref: ref, ...props }));
|
|
26
26
|
});
|
|
27
27
|
Input.displayName = "Input";
|
|
28
28
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","sources":["../../../src/components/Input/Input.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst inputVariants = cva(\n \"flex w-full rounded-md border bg-white px-3 py-2 text-sm ring-offset-white file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-gray-500 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"border-gray-300\",\n error: \"border-danger-500 focus-visible:ring-danger-500\",\n success: \"border-success-500 focus-visible:ring-success-500\",\n },\n inputSize: {\n sm: \"h-8 px-2 text-xs\",\n md: \"h-10 px-3\",\n lg: \"h-12 px-4 text-base\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n inputSize: \"md\",\n },\n }\n);\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n VariantProps<typeof inputVariants> {}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, variant, inputSize, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(inputVariants({ variant, inputSize, className }))}\n ref={ref}\n {...props}\n />\n );\n }\n);\nInput.displayName = \"Input\";\n\nexport { Input, inputVariants };"],"names":["_jsx"],"mappings":";;;;;AAIA,MAAM,aAAa,GAAG,GAAG,CACvB,iUAAiU,EACjU;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,KAAK,EAAE,iDAAiD;AACxD,YAAA,OAAO,EAAE,mDAAmD;AAC7D,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,EAAE,EAAE,kBAAkB;AACtB,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,EAAE,EAAE,qBAAqB;AAC1B,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,SAAS,EAAE,IAAI;AAChB,KAAA;AACF,CAAA;AAOH,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAC5B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AACzD,IAAA,QACEA,
|
|
1
|
+
{"version":3,"file":"Input.js","sources":["../../../src/components/Input/Input.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst inputVariants = cva(\n \"flex w-full rounded-md border bg-white px-3 py-2 text-sm ring-offset-white file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-gray-500 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"border-gray-300\",\n error: \"border-danger-500 focus-visible:ring-danger-500\",\n success: \"border-success-500 focus-visible:ring-success-500\",\n },\n inputSize: {\n sm: \"h-8 px-2 text-xs\",\n md: \"h-10 px-3\",\n lg: \"h-12 px-4 text-base\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n inputSize: \"md\",\n },\n }\n);\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n VariantProps<typeof inputVariants> {}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, variant, inputSize, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(inputVariants({ variant, inputSize, className }))}\n ref={ref}\n {...props}\n />\n );\n }\n);\nInput.displayName = \"Input\";\n\nexport { Input, inputVariants };"],"names":["_jsx"],"mappings":";;;;;AAIA,MAAM,aAAa,GAAG,GAAG,CACvB,iUAAiU,EACjU;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,KAAK,EAAE,iDAAiD;AACxD,YAAA,OAAO,EAAE,mDAAmD;AAC7D,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,EAAE,EAAE,kBAAkB;AACtB,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,EAAE,EAAE,qBAAqB;AAC1B,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,SAAS,EAAE,IAAI;AAChB,KAAA;AACF,CAAA;AAOH,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAC5B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AACzD,IAAA,QACEA,GAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,EAC/D,GAAG,EAAE,GAAG,EAAA,GACJ,KAAK,EAAA,CACT;AAEN,CAAC;AAEH,KAAK,CAAC,WAAW,GAAG,OAAO;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { cva } from 'class-variance-authority';
|
|
3
3
|
import { cn } from '../../utils/cn.js';
|
|
4
4
|
import X from '../../node_modules/lucide-react/dist/esm/icons/x.js';
|
|
@@ -23,13 +23,13 @@ const Modal = ({ open, onOpenChange, children, size, }) => {
|
|
|
23
23
|
};
|
|
24
24
|
if (!open)
|
|
25
25
|
return null;
|
|
26
|
-
return (
|
|
26
|
+
return (jsxs(Fragment, { children: [jsx("div", { className: "fixed inset-0 z-50 bg-black/50 backdrop-blur-sm", onClick: handleClose }), jsxs("div", { className: cn(modalVariants({ size })), children: [jsxs("button", { onClick: handleClose, className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:ring-offset-2 disabled:pointer-events-none", children: [jsx(X, { className: "h-4 w-4" }), jsx("span", { className: "sr-only", children: "Close" })] }), children] })] }));
|
|
27
27
|
};
|
|
28
|
-
const ModalHeader = ({ className, ...props }) => (
|
|
29
|
-
const ModalTitle = ({ className, ...props }) => (
|
|
30
|
-
const ModalDescription = ({ className, ...props }) => (
|
|
31
|
-
const ModalContent = ({ className, ...props }) => (
|
|
32
|
-
const ModalFooter = ({ className, ...props }) => (
|
|
28
|
+
const ModalHeader = ({ className, ...props }) => (jsx("div", { className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className), ...props }));
|
|
29
|
+
const ModalTitle = ({ className, ...props }) => (jsx("h2", { className: cn("text-lg font-semibold leading-none tracking-tight", className), ...props }));
|
|
30
|
+
const ModalDescription = ({ className, ...props }) => (jsx("p", { className: cn("text-sm text-gray-500", className), ...props }));
|
|
31
|
+
const ModalContent = ({ className, ...props }) => (jsx("div", { className: cn("grid gap-4 py-4", className), ...props }));
|
|
32
|
+
const ModalFooter = ({ className, ...props }) => (jsx("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props }));
|
|
33
33
|
|
|
34
34
|
export { Modal, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalTitle, modalVariants };
|
|
35
35
|
//# sourceMappingURL=Modal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","sources":["../../../src/components/Modal/Modal.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { X } from \"lucide-react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst modalVariants = cva(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-white p-6 shadow-lg duration-200 sm:rounded-lg\",\n {\n variants: {\n size: {\n sm: \"max-w-sm\",\n md: \"max-w-lg\",\n lg: \"max-w-2xl\",\n xl: \"max-w-4xl\",\n full: \"max-w-[95vw] max-h-[95vh]\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n);\n\ninterface ModalProps extends VariantProps<typeof modalVariants> {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n}\n\nconst Modal: React.FC<ModalProps> = ({ \n open, \n onOpenChange, \n children, \n size,\n}) => {\n const handleClose = () => {\n onOpenChange?.(false);\n };\n\n if (!open) return null;\n\n return (\n <>\n {/* Backdrop */}\n <div\n className=\"fixed inset-0 z-50 bg-black/50 backdrop-blur-sm\"\n onClick={handleClose}\n />\n \n {/* Modal Content */}\n <div className={cn(modalVariants({ size }))}>\n <button\n onClick={handleClose}\n className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:ring-offset-2 disabled:pointer-events-none\"\n >\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </button>\n {children}\n </div>\n </>\n );\n};\n\nconst ModalHeader: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({\n className,\n ...props\n}) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n);\n\nconst ModalTitle: React.FC<React.HTMLAttributes<HTMLHeadingElement>> = ({\n className,\n ...props\n}) => (\n <h2\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n);\n\nconst ModalDescription: React.FC<React.HTMLAttributes<HTMLParagraphElement>> = ({\n className,\n ...props\n}) => (\n <p\n className={cn(\"text-sm text-gray-500\", className)}\n {...props}\n />\n);\n\nconst ModalContent: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({\n className,\n ...props\n}) => (\n <div className={cn(\"grid gap-4 py-4\", className)} {...props} />\n);\n\nconst ModalFooter: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({\n className,\n ...props\n}) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n);\n\nexport {\n Modal,\n ModalHeader,\n ModalTitle,\n ModalDescription,\n ModalContent,\n ModalFooter,\n modalVariants,\n};"],"names":["_jsxs","_Fragment","_jsx"],"mappings":";;;;;AAKA,MAAM,aAAa,GAAG,GAAG,CACvB,2JAA2J,EAC3J;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,IAAI,EAAE,2BAA2B;AAClC,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,IAAI;AACX,KAAA;AACF,CAAA;AASH,MAAM,KAAK,GAAyB,CAAC,EACnC,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,IAAI,GACL,KAAI;IACH,MAAM,WAAW,GAAG,MAAK;AACvB,QAAA,YAAY,GAAG,KAAK,CAAC;AACvB,IAAA,CAAC;AAED,IAAA,IAAI,CAAC,IAAI;AAAE,QAAA,OAAO,IAAI;IAEtB,QACEA,
|
|
1
|
+
{"version":3,"file":"Modal.js","sources":["../../../src/components/Modal/Modal.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { X } from \"lucide-react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst modalVariants = cva(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-white p-6 shadow-lg duration-200 sm:rounded-lg\",\n {\n variants: {\n size: {\n sm: \"max-w-sm\",\n md: \"max-w-lg\",\n lg: \"max-w-2xl\",\n xl: \"max-w-4xl\",\n full: \"max-w-[95vw] max-h-[95vh]\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n);\n\ninterface ModalProps extends VariantProps<typeof modalVariants> {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n}\n\nconst Modal: React.FC<ModalProps> = ({ \n open, \n onOpenChange, \n children, \n size,\n}) => {\n const handleClose = () => {\n onOpenChange?.(false);\n };\n\n if (!open) return null;\n\n return (\n <>\n {/* Backdrop */}\n <div\n className=\"fixed inset-0 z-50 bg-black/50 backdrop-blur-sm\"\n onClick={handleClose}\n />\n \n {/* Modal Content */}\n <div className={cn(modalVariants({ size }))}>\n <button\n onClick={handleClose}\n className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:ring-offset-2 disabled:pointer-events-none\"\n >\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </button>\n {children}\n </div>\n </>\n );\n};\n\nconst ModalHeader: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({\n className,\n ...props\n}) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n);\n\nconst ModalTitle: React.FC<React.HTMLAttributes<HTMLHeadingElement>> = ({\n className,\n ...props\n}) => (\n <h2\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n);\n\nconst ModalDescription: React.FC<React.HTMLAttributes<HTMLParagraphElement>> = ({\n className,\n ...props\n}) => (\n <p\n className={cn(\"text-sm text-gray-500\", className)}\n {...props}\n />\n);\n\nconst ModalContent: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({\n className,\n ...props\n}) => (\n <div className={cn(\"grid gap-4 py-4\", className)} {...props} />\n);\n\nconst ModalFooter: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({\n className,\n ...props\n}) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n);\n\nexport {\n Modal,\n ModalHeader,\n ModalTitle,\n ModalDescription,\n ModalContent,\n ModalFooter,\n modalVariants,\n};"],"names":["_jsxs","_Fragment","_jsx"],"mappings":";;;;;AAKA,MAAM,aAAa,GAAG,GAAG,CACvB,2JAA2J,EAC3J;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,IAAI,EAAE,2BAA2B;AAClC,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,IAAI;AACX,KAAA;AACF,CAAA;AASH,MAAM,KAAK,GAAyB,CAAC,EACnC,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,IAAI,GACL,KAAI;IACH,MAAM,WAAW,GAAG,MAAK;AACvB,QAAA,YAAY,GAAG,KAAK,CAAC;AACvB,IAAA,CAAC;AAED,IAAA,IAAI,CAAC,IAAI;AAAE,QAAA,OAAO,IAAI;IAEtB,QACEA,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CAEEC,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAC,iDAAiD,EAC3D,OAAO,EAAE,WAAW,EAAA,CACpB,EAGFF,cAAK,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAA,QAAA,EAAA,CACzCA,IAAA,CAAA,QAAA,EAAA,EACE,OAAO,EAAE,WAAW,EACpB,SAAS,EAAC,6MAA6M,aAEvNE,GAAA,CAAC,CAAC,EAAA,EAAC,SAAS,EAAC,SAAS,GAAG,EACzBA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,SAAS,EAAA,QAAA,EAAA,OAAA,EAAA,CAAa,CAAA,EAAA,CAC/B,EACR,QAAQ,CAAA,EAAA,CACL,CAAA,EAAA,CACL;AAEP;AAEA,MAAM,WAAW,GAAmD,CAAC,EACnE,SAAS,EACT,GAAG,KAAK,EACT,MACCA,aACE,SAAS,EAAE,EAAE,CACX,oDAAoD,EACpD,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT;AAGJ,MAAM,UAAU,GAAuD,CAAC,EACtE,SAAS,EACT,GAAG,KAAK,EACT,MACCA,YACE,SAAS,EAAE,EAAE,CACX,mDAAmD,EACnD,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT;AAGJ,MAAM,gBAAgB,GAAyD,CAAC,EAC9E,SAAS,EACT,GAAG,KAAK,EACT,MACCA,WACE,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,SAAS,CAAC,EAAA,GAC7C,KAAK,EAAA,CACT;AAGJ,MAAM,YAAY,GAAmD,CAAC,EACpE,SAAS,EACT,GAAG,KAAK,EACT,MACCA,aAAK,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI;AAGjE,MAAM,WAAW,GAAmD,CAAC,EACnE,SAAS,EACT,GAAG,KAAK,EACT,MACCA,aACE,SAAS,EAAE,EAAE,CACX,+DAA+D,EAC/D,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { cva } from 'class-variance-authority';
|
|
4
4
|
import { cn } from '../../utils/cn.js';
|
|
@@ -25,10 +25,10 @@ const navbarVariants = cva("flex items-center justify-between w-full px-4 py-3 b
|
|
|
25
25
|
});
|
|
26
26
|
const Navbar = React.forwardRef(({ className, variant, size, logo, children, ...props }, ref) => {
|
|
27
27
|
const [isOpen, setIsOpen] = React.useState(false);
|
|
28
|
-
return (
|
|
28
|
+
return (jsxs("nav", { ref: ref, className: cn(navbarVariants({ variant, size }), className), ...props, children: [jsxs("div", { className: "flex items-center justify-between w-full", children: [logo && jsx("div", { className: "flex-shrink-0", children: logo }), jsx("div", { className: "hidden md:flex items-center space-x-4 ml-auto", children: children }), jsx("button", { className: "md:hidden p-2 rounded-md hover:bg-gray-100", onClick: () => setIsOpen(!isOpen), children: isOpen ? jsx(X, { className: "h-6 w-6" }) : jsx(Menu, { className: "h-6 w-6" }) })] }), isOpen && (jsx("div", { className: "md:hidden absolute top-full left-0 right-0 bg-white border-b border-gray-200 shadow-lg z-50", children: jsx("div", { className: "px-4 py-2 space-y-2", children: children }) }))] }));
|
|
29
29
|
});
|
|
30
30
|
Navbar.displayName = "Navbar";
|
|
31
|
-
const NavItem = React.forwardRef(({ className, ...props }, ref) => (
|
|
31
|
+
const NavItem = React.forwardRef(({ className, ...props }, ref) => (jsx("a", { ref: ref, className: cn("text-gray-700 hover:text-primary-600 px-3 py-2 rounded-md text-sm font-medium transition-colors", className), ...props })));
|
|
32
32
|
NavItem.displayName = "NavItem";
|
|
33
33
|
|
|
34
34
|
export { NavItem, Navbar, navbarVariants };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Navbar.js","sources":["../../../src/components/Navbar/Navbar.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Menu, X } from \"lucide-react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst navbarVariants = cva(\n \"flex items-center justify-between w-full px-4 py-3 bg-white border-b border-gray-200\",\n {\n variants: {\n variant: {\n default: \"bg-white border-gray-200\",\n dark: \"bg-gray-900 border-gray-700 text-white\",\n transparent: \"bg-transparent border-transparent\",\n },\n size: {\n sm: \"px-4 py-2\",\n md: \"px-6 py-3\",\n lg: \"px-8 py-4\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n);\n\nexport interface NavbarProps\n extends React.HTMLAttributes<HTMLElement>,\n VariantProps<typeof navbarVariants> {\n logo?: React.ReactNode;\n children?: React.ReactNode;\n}\n\nconst Navbar = React.forwardRef<HTMLElement, NavbarProps>(\n ({ className, variant, size, logo, children, ...props }, ref) => {\n const [isOpen, setIsOpen] = React.useState(false);\n\n return (\n <nav\n ref={ref}\n className={cn(navbarVariants({ variant, size }), className)}\n {...props}\n >\n <div className=\"flex items-center justify-between w-full\">\n {/* Logo */}\n {logo && <div className=\"flex-shrink-0\">{logo}</div>}\n\n {/* Desktop Navigation */}\n <div className=\"hidden md:flex items-center space-x-4 ml-auto\">\n {children}\n </div>\n\n {/* Mobile Menu Button */}\n <button\n className=\"md:hidden p-2 rounded-md hover:bg-gray-100\"\n onClick={() => setIsOpen(!isOpen)}\n >\n {isOpen ? <X className=\"h-6 w-6\" /> : <Menu className=\"h-6 w-6\" />}\n </button>\n </div>\n\n {/* Mobile Navigation */}\n {isOpen && (\n <div className=\"md:hidden absolute top-full left-0 right-0 bg-white border-b border-gray-200 shadow-lg z-50\">\n <div className=\"px-4 py-2 space-y-2\">\n {children}\n </div>\n </div>\n )}\n </nav>\n );\n }\n);\nNavbar.displayName = \"Navbar\";\n\nconst NavItem = React.forwardRef<\n HTMLAnchorElement,\n React.AnchorHTMLAttributes<HTMLAnchorElement>\n>(({ className, ...props }, ref) => (\n <a\n ref={ref}\n className={cn(\n \"text-gray-700 hover:text-primary-600 px-3 py-2 rounded-md text-sm font-medium transition-colors\",\n className\n )}\n {...props}\n />\n));\nNavItem.displayName = \"NavItem\";\n\nexport { Navbar, NavItem, navbarVariants };"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;AAKA,MAAM,cAAc,GAAG,GAAG,CACxB,sFAAsF,EACtF;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,0BAA0B;AACnC,YAAA,IAAI,EAAE,wCAAwC;AAC9C,YAAA,WAAW,EAAE,mCAAmC;AACjD,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,EAAE,EAAE,WAAW;AAChB,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,IAAI,EAAE,IAAI;AACX,KAAA;AACF,CAAA;AAUH,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAC7B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AAC9D,IAAA,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;IAEjD,QACEA,
|
|
1
|
+
{"version":3,"file":"Navbar.js","sources":["../../../src/components/Navbar/Navbar.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Menu, X } from \"lucide-react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst navbarVariants = cva(\n \"flex items-center justify-between w-full px-4 py-3 bg-white border-b border-gray-200\",\n {\n variants: {\n variant: {\n default: \"bg-white border-gray-200\",\n dark: \"bg-gray-900 border-gray-700 text-white\",\n transparent: \"bg-transparent border-transparent\",\n },\n size: {\n sm: \"px-4 py-2\",\n md: \"px-6 py-3\",\n lg: \"px-8 py-4\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n);\n\nexport interface NavbarProps\n extends React.HTMLAttributes<HTMLElement>,\n VariantProps<typeof navbarVariants> {\n logo?: React.ReactNode;\n children?: React.ReactNode;\n}\n\nconst Navbar = React.forwardRef<HTMLElement, NavbarProps>(\n ({ className, variant, size, logo, children, ...props }, ref) => {\n const [isOpen, setIsOpen] = React.useState(false);\n\n return (\n <nav\n ref={ref}\n className={cn(navbarVariants({ variant, size }), className)}\n {...props}\n >\n <div className=\"flex items-center justify-between w-full\">\n {/* Logo */}\n {logo && <div className=\"flex-shrink-0\">{logo}</div>}\n\n {/* Desktop Navigation */}\n <div className=\"hidden md:flex items-center space-x-4 ml-auto\">\n {children}\n </div>\n\n {/* Mobile Menu Button */}\n <button\n className=\"md:hidden p-2 rounded-md hover:bg-gray-100\"\n onClick={() => setIsOpen(!isOpen)}\n >\n {isOpen ? <X className=\"h-6 w-6\" /> : <Menu className=\"h-6 w-6\" />}\n </button>\n </div>\n\n {/* Mobile Navigation */}\n {isOpen && (\n <div className=\"md:hidden absolute top-full left-0 right-0 bg-white border-b border-gray-200 shadow-lg z-50\">\n <div className=\"px-4 py-2 space-y-2\">\n {children}\n </div>\n </div>\n )}\n </nav>\n );\n }\n);\nNavbar.displayName = \"Navbar\";\n\nconst NavItem = React.forwardRef<\n HTMLAnchorElement,\n React.AnchorHTMLAttributes<HTMLAnchorElement>\n>(({ className, ...props }, ref) => (\n <a\n ref={ref}\n className={cn(\n \"text-gray-700 hover:text-primary-600 px-3 py-2 rounded-md text-sm font-medium transition-colors\",\n className\n )}\n {...props}\n />\n));\nNavItem.displayName = \"NavItem\";\n\nexport { Navbar, NavItem, navbarVariants };"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;AAKA,MAAM,cAAc,GAAG,GAAG,CACxB,sFAAsF,EACtF;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,0BAA0B;AACnC,YAAA,IAAI,EAAE,wCAAwC;AAC9C,YAAA,WAAW,EAAE,mCAAmC;AACjD,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,EAAE,EAAE,WAAW;AAChB,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,IAAI,EAAE,IAAI;AACX,KAAA;AACF,CAAA;AAUH,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAC7B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AAC9D,IAAA,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;IAEjD,QACEA,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,EAAA,GACvD,KAAK,EAAA,QAAA,EAAA,CAETA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,0CAA0C,EAAA,QAAA,EAAA,CAEtD,IAAI,IAAIC,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,eAAe,EAAA,QAAA,EAAE,IAAI,EAAA,CAAO,EAGpDA,aAAK,SAAS,EAAC,+CAA+C,EAAA,QAAA,EAC3D,QAAQ,EAAA,CACL,EAGNA,GAAA,CAAA,QAAA,EAAA,EACE,SAAS,EAAC,4CAA4C,EACtD,OAAO,EAAE,MAAM,SAAS,CAAC,CAAC,MAAM,CAAC,EAAA,QAAA,EAEhC,MAAM,GAAGA,GAAA,CAAC,CAAC,EAAA,EAAC,SAAS,EAAC,SAAS,GAAG,GAAGA,GAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EAAA,CAC3D,CAAA,EAAA,CACL,EAGL,MAAM,KACLA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,6FAA6F,YAC1GA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,qBAAqB,EAAA,QAAA,EACjC,QAAQ,GACL,EAAA,CACF,CACP,CAAA,EAAA,CACG;AAEV,CAAC;AAEH,MAAM,CAAC,WAAW,GAAG,QAAQ;AAE7B,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAG9B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC7BA,GAAA,CAAA,GAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,iGAAiG,EACjG,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT,CACH;AACD,OAAO,CAAC,WAAW,GAAG,SAAS;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { cva } from 'class-variance-authority';
|
|
4
4
|
import { cn } from '../../utils/cn.js';
|
|
@@ -49,54 +49,54 @@ const defaultMenuItems = [
|
|
|
49
49
|
{
|
|
50
50
|
id: "dashboard",
|
|
51
51
|
label: "Dashboard",
|
|
52
|
-
icon:
|
|
52
|
+
icon: jsx(Home, { className: "h-5 w-5" }),
|
|
53
53
|
href: "/dashboard",
|
|
54
54
|
},
|
|
55
55
|
{
|
|
56
56
|
id: "analytics",
|
|
57
57
|
label: "Analytics",
|
|
58
|
-
icon:
|
|
58
|
+
icon: jsx(BarChart3, { className: "h-5 w-5" }),
|
|
59
59
|
href: "/analytics",
|
|
60
60
|
badge: "New",
|
|
61
61
|
},
|
|
62
62
|
{
|
|
63
63
|
id: "users",
|
|
64
64
|
label: "Users",
|
|
65
|
-
icon:
|
|
65
|
+
icon: jsx(Users, { className: "h-5 w-5" }),
|
|
66
66
|
children: [
|
|
67
|
-
{ id: "all-users", label: "All Users", icon:
|
|
68
|
-
{ id: "user-roles", label: "User Roles", icon:
|
|
67
|
+
{ id: "all-users", label: "All Users", icon: jsx(Users, { className: "h-4 w-4" }) },
|
|
68
|
+
{ id: "user-roles", label: "User Roles", icon: jsx(Settings, { className: "h-4 w-4" }) },
|
|
69
69
|
],
|
|
70
70
|
},
|
|
71
71
|
{
|
|
72
72
|
id: "reports",
|
|
73
73
|
label: "Reports",
|
|
74
|
-
icon:
|
|
74
|
+
icon: jsx(FileText, { className: "h-5 w-5" }),
|
|
75
75
|
href: "/reports",
|
|
76
76
|
},
|
|
77
77
|
{
|
|
78
78
|
id: "calendar",
|
|
79
79
|
label: "Calendar",
|
|
80
|
-
icon:
|
|
80
|
+
icon: jsx(Calendar, { className: "h-5 w-5" }),
|
|
81
81
|
href: "/calendar",
|
|
82
82
|
},
|
|
83
83
|
{
|
|
84
84
|
id: "messages",
|
|
85
85
|
label: "Messages",
|
|
86
|
-
icon:
|
|
86
|
+
icon: jsx(Mail, { className: "h-5 w-5" }),
|
|
87
87
|
href: "/messages",
|
|
88
88
|
badge: "3",
|
|
89
89
|
},
|
|
90
90
|
{
|
|
91
91
|
id: "notifications",
|
|
92
92
|
label: "Notifications",
|
|
93
|
-
icon:
|
|
93
|
+
icon: jsx(Bell, { className: "h-5 w-5" }),
|
|
94
94
|
href: "/notifications",
|
|
95
95
|
},
|
|
96
96
|
{
|
|
97
97
|
id: "settings",
|
|
98
98
|
label: "Settings",
|
|
99
|
-
icon:
|
|
99
|
+
icon: jsx(Settings, { className: "h-5 w-5" }),
|
|
100
100
|
href: "/settings",
|
|
101
101
|
},
|
|
102
102
|
];
|
|
@@ -119,9 +119,9 @@ const Sidebar = React.forwardRef(({ className, collapsed = false, onToggle, menu
|
|
|
119
119
|
const isActive = activeItem === item.id;
|
|
120
120
|
const isExpanded = expandedItems.includes(item.id);
|
|
121
121
|
const hasChildren = item.children && item.children.length > 0;
|
|
122
|
-
return (
|
|
122
|
+
return (jsxs("div", { children: [jsx("button", { onClick: () => handleItemClick(item), className: cn(menuItemVariants({ active: isActive, collapsed }), level > 0 && "ml-4 pl-8", "relative"), children: jsxs("div", { className: "flex items-center min-w-0 flex-1", children: [jsx("div", { className: "flex-shrink-0", children: item.icon }), !collapsed && (jsxs(Fragment, { children: [jsx("span", { className: "ml-3 truncate", children: item.label }), item.badge && (jsx(Badge, { variant: "danger", className: "ml-auto text-xs", children: item.badge })), hasChildren && (jsx(ChevronDown, { className: cn("ml-auto h-4 w-4 transition-transform duration-200", isExpanded && "rotate-180") }))] }))] }) }), hasChildren && !collapsed && isExpanded && (jsx("div", { className: "mt-1 space-y-1", children: item.children?.map(child => renderMenuItem(child, level + 1)) }))] }, item.id));
|
|
123
123
|
};
|
|
124
|
-
return (
|
|
124
|
+
return (jsxs("div", { ref: ref, className: cn(sidebarVariants({ collapsed }), className), ...props, children: [jsxs("div", { className: "flex items-center justify-between p-4 border-b border-gray-200", children: [!collapsed && (jsxs("div", { className: "flex items-center space-x-2", children: [jsx("div", { className: "w-8 h-8 bg-primary-600 rounded-lg flex items-center justify-center", children: jsx("span", { className: "text-white font-bold text-sm", children: "B" }) }), jsx("span", { className: "font-bold text-xl text-gray-900", children: "Beyond" })] })), jsx("button", { onClick: onToggle, className: "p-1.5 rounded-lg hover:bg-gray-100 transition-colors", children: collapsed ? (jsx(ChevronRight, { className: "h-4 w-4 text-gray-600" })) : (jsx(ChevronLeft, { className: "h-4 w-4 text-gray-600" })) })] }), jsx("nav", { className: "flex-1 px-4 py-6 space-y-2 overflow-y-auto", children: menuItems.map(item => renderMenuItem(item)) }), jsx("div", { className: "border-t border-gray-200 p-4", children: collapsed ? (jsx("div", { className: "flex justify-center", children: jsxs(Avatar, { size: "sm", children: [jsx(AvatarImage, { src: "https://images.pexels.com/photos/774909/pexels-photo-774909.jpeg?auto=compress&cs=tinysrgb&w=64" }), jsx(AvatarFallback, { children: "JD" })] }) })) : (jsxs("div", { className: "space-y-3", children: [jsxs("div", { className: "flex items-center space-x-3", children: [jsxs(Avatar, { size: "sm", children: [jsx(AvatarImage, { src: "https://images.pexels.com/photos/774909/pexels-photo-774909.jpeg?auto=compress&cs=tinysrgb&w=64" }), jsx(AvatarFallback, { children: "JD" })] }), jsxs("div", { className: "flex-1 min-w-0", children: [jsx("p", { className: "text-sm font-medium text-gray-900 truncate", children: "John Doe" }), jsx("p", { className: "text-xs text-gray-500 truncate", children: "john@company.com" })] })] }), jsxs("div", { className: "flex space-x-2", children: [jsxs("button", { className: "flex-1 flex items-center justify-center px-3 py-2 text-xs font-medium text-gray-700 bg-gray-50 rounded-lg hover:bg-gray-100 transition-colors", children: [jsx(User, { className: "h-3 w-3 mr-1" }), "Profile"] }), jsxs("button", { className: "flex-1 flex items-center justify-center px-3 py-2 text-xs font-medium text-gray-700 bg-gray-50 rounded-lg hover:bg-gray-100 transition-colors", children: [jsx(LogOut, { className: "h-3 w-3 mr-1" }), "Logout"] })] })] })) })] }));
|
|
125
125
|
});
|
|
126
126
|
Sidebar.displayName = "Sidebar";
|
|
127
127
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sidebar.js","sources":["../../../src/components/Sidebar/Sidebar.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { \n ChevronLeft, \n ChevronRight, \n ChevronDown, \n Home, \n BarChart3, \n Users, \n Settings, \n FileText, \n Calendar, \n Mail, \n Bell,\n LogOut,\n User\n} from \"lucide-react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\nimport { Avatar, AvatarImage, AvatarFallback } from \"../Avatar\";\nimport { Badge } from \"../Badge\";\n\nconst sidebarVariants = cva(\n \"fixed left-0 top-0 z-40 h-screen bg-white border-r border-gray-200 transition-all duration-300 ease-in-out\",\n {\n variants: {\n collapsed: {\n false: \"w-72\",\n true: \"w-16\",\n },\n },\n defaultVariants: {\n collapsed: false,\n },\n }\n);\n\nconst menuItemVariants = cva(\n \"flex items-center w-full px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 group\",\n {\n variants: {\n active: {\n true: \"bg-primary-50 text-primary-700 border-r-2 border-primary-600\",\n false: \"text-gray-700 hover:bg-gray-50 hover:text-gray-900\",\n },\n collapsed: {\n true: \"justify-center px-2\",\n false: \"justify-start\",\n },\n },\n defaultVariants: {\n active: false,\n collapsed: false,\n },\n }\n);\n\ninterface MenuItem {\n id: string;\n label: string;\n icon: React.ReactNode;\n href?: string;\n badge?: string;\n children?: MenuItem[];\n}\n\ninterface SidebarProps extends VariantProps<typeof sidebarVariants> {\n className?: string;\n onToggle?: () => void;\n menuItems?: MenuItem[];\n activeItem?: string;\n onItemClick?: (itemId: string) => void;\n}\n\nconst defaultMenuItems: MenuItem[] = [\n {\n id: \"dashboard\",\n label: \"Dashboard\",\n icon: <Home className=\"h-5 w-5\" />,\n href: \"/dashboard\",\n },\n {\n id: \"analytics\",\n label: \"Analytics\",\n icon: <BarChart3 className=\"h-5 w-5\" />,\n href: \"/analytics\",\n badge: \"New\",\n },\n {\n id: \"users\",\n label: \"Users\",\n icon: <Users className=\"h-5 w-5\" />,\n children: [\n { id: \"all-users\", label: \"All Users\", icon: <Users className=\"h-4 w-4\" /> },\n { id: \"user-roles\", label: \"User Roles\", icon: <Settings className=\"h-4 w-4\" /> },\n ],\n },\n {\n id: \"reports\",\n label: \"Reports\",\n icon: <FileText className=\"h-5 w-5\" />,\n href: \"/reports\",\n },\n {\n id: \"calendar\",\n label: \"Calendar\",\n icon: <Calendar className=\"h-5 w-5\" />,\n href: \"/calendar\",\n },\n {\n id: \"messages\",\n label: \"Messages\",\n icon: <Mail className=\"h-5 w-5\" />,\n href: \"/messages\",\n badge: \"3\",\n },\n {\n id: \"notifications\",\n label: \"Notifications\",\n icon: <Bell className=\"h-5 w-5\" />,\n href: \"/notifications\",\n },\n {\n id: \"settings\",\n label: \"Settings\",\n icon: <Settings className=\"h-5 w-5\" />,\n href: \"/settings\",\n },\n];\n\nconst Sidebar = React.forwardRef<HTMLDivElement, SidebarProps>(\n ({ \n className, \n collapsed = false, \n onToggle, \n menuItems = defaultMenuItems,\n activeItem = \"dashboard\",\n onItemClick,\n ...props \n }, ref) => {\n const [expandedItems, setExpandedItems] = React.useState<string[]>([]);\n\n const toggleExpanded = (itemId: string) => {\n setExpandedItems(prev => \n prev.includes(itemId) \n ? prev.filter(id => id !== itemId)\n : [...prev, itemId]\n );\n };\n\n const handleItemClick = (item: MenuItem) => {\n if (item.children) {\n toggleExpanded(item.id);\n } else {\n onItemClick?.(item.id);\n }\n };\n\n const renderMenuItem = (item: MenuItem, level = 0) => {\n const isActive = activeItem === item.id;\n const isExpanded = expandedItems.includes(item.id);\n const hasChildren = item.children && item.children.length > 0;\n\n return (\n <div key={item.id}>\n <button\n onClick={() => handleItemClick(item)}\n className={cn(\n menuItemVariants({ active: isActive, collapsed }),\n level > 0 && \"ml-4 pl-8\",\n \"relative\"\n )}\n >\n <div className=\"flex items-center min-w-0 flex-1\">\n <div className=\"flex-shrink-0\">\n {item.icon}\n </div>\n {!collapsed && (\n <>\n <span className=\"ml-3 truncate\">{item.label}</span>\n {item.badge && (\n <Badge variant=\"danger\" className=\"ml-auto text-xs\">\n {item.badge}\n </Badge>\n )}\n {hasChildren && (\n <ChevronDown \n className={cn(\n \"ml-auto h-4 w-4 transition-transform duration-200\",\n isExpanded && \"rotate-180\"\n )}\n />\n )}\n </>\n )}\n </div>\n </button>\n \n {hasChildren && !collapsed && isExpanded && (\n <div className=\"mt-1 space-y-1\">\n {item.children?.map(child => renderMenuItem(child, level + 1))}\n </div>\n )}\n </div>\n );\n };\n\n return (\n <div\n ref={ref}\n className={cn(sidebarVariants({ collapsed }), className)}\n {...props}\n >\n {/* Header */}\n <div className=\"flex items-center justify-between p-4 border-b border-gray-200\">\n {!collapsed && (\n <div className=\"flex items-center space-x-2\">\n <div className=\"w-8 h-8 bg-primary-600 rounded-lg flex items-center justify-center\">\n <span className=\"text-white font-bold text-sm\">B</span>\n </div>\n <span className=\"font-bold text-xl text-gray-900\">Beyond</span>\n </div>\n )}\n <button\n onClick={onToggle}\n className=\"p-1.5 rounded-lg hover:bg-gray-100 transition-colors\"\n >\n {collapsed ? (\n <ChevronRight className=\"h-4 w-4 text-gray-600\" />\n ) : (\n <ChevronLeft className=\"h-4 w-4 text-gray-600\" />\n )}\n </button>\n </div>\n\n {/* Navigation Menu */}\n <nav className=\"flex-1 px-4 py-6 space-y-2 overflow-y-auto\">\n {menuItems.map(item => renderMenuItem(item))}\n </nav>\n\n {/* User Profile Section */}\n <div className=\"border-t border-gray-200 p-4\">\n {collapsed ? (\n <div className=\"flex justify-center\">\n <Avatar size=\"sm\">\n <AvatarImage src=\"https://images.pexels.com/photos/774909/pexels-photo-774909.jpeg?auto=compress&cs=tinysrgb&w=64\" />\n <AvatarFallback>JD</AvatarFallback>\n </Avatar>\n </div>\n ) : (\n <div className=\"space-y-3\">\n <div className=\"flex items-center space-x-3\">\n <Avatar size=\"sm\">\n <AvatarImage src=\"https://images.pexels.com/photos/774909/pexels-photo-774909.jpeg?auto=compress&cs=tinysrgb&w=64\" />\n <AvatarFallback>JD</AvatarFallback>\n </Avatar>\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm font-medium text-gray-900 truncate\">\n John Doe\n </p>\n <p className=\"text-xs text-gray-500 truncate\">\n john@company.com\n </p>\n </div>\n </div>\n <div className=\"flex space-x-2\">\n <button className=\"flex-1 flex items-center justify-center px-3 py-2 text-xs font-medium text-gray-700 bg-gray-50 rounded-lg hover:bg-gray-100 transition-colors\">\n <User className=\"h-3 w-3 mr-1\" />\n Profile\n </button>\n <button className=\"flex-1 flex items-center justify-center px-3 py-2 text-xs font-medium text-gray-700 bg-gray-50 rounded-lg hover:bg-gray-100 transition-colors\">\n <LogOut className=\"h-3 w-3 mr-1\" />\n Logout\n </button>\n </div>\n </div>\n )}\n </div>\n </div>\n );\n }\n);\n\nSidebar.displayName = \"Sidebar\";\n\nexport { Sidebar, sidebarVariants, type MenuItem };"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Sidebar.js","sources":["../../../src/components/Sidebar/Sidebar.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { \n ChevronLeft, \n ChevronRight, \n ChevronDown, \n Home, \n BarChart3, \n Users, \n Settings, \n FileText, \n Calendar, \n Mail, \n Bell,\n LogOut,\n User\n} from \"lucide-react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\nimport { Avatar, AvatarImage, AvatarFallback } from \"../Avatar\";\nimport { Badge } from \"../Badge\";\n\nconst sidebarVariants = cva(\n \"fixed left-0 top-0 z-40 h-screen bg-white border-r border-gray-200 transition-all duration-300 ease-in-out\",\n {\n variants: {\n collapsed: {\n false: \"w-72\",\n true: \"w-16\",\n },\n },\n defaultVariants: {\n collapsed: false,\n },\n }\n);\n\nconst menuItemVariants = cva(\n \"flex items-center w-full px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 group\",\n {\n variants: {\n active: {\n true: \"bg-primary-50 text-primary-700 border-r-2 border-primary-600\",\n false: \"text-gray-700 hover:bg-gray-50 hover:text-gray-900\",\n },\n collapsed: {\n true: \"justify-center px-2\",\n false: \"justify-start\",\n },\n },\n defaultVariants: {\n active: false,\n collapsed: false,\n },\n }\n);\n\ninterface MenuItem {\n id: string;\n label: string;\n icon: React.ReactNode;\n href?: string;\n badge?: string;\n children?: MenuItem[];\n}\n\ninterface SidebarProps extends VariantProps<typeof sidebarVariants> {\n className?: string;\n onToggle?: () => void;\n menuItems?: MenuItem[];\n activeItem?: string;\n onItemClick?: (itemId: string) => void;\n}\n\nconst defaultMenuItems: MenuItem[] = [\n {\n id: \"dashboard\",\n label: \"Dashboard\",\n icon: <Home className=\"h-5 w-5\" />,\n href: \"/dashboard\",\n },\n {\n id: \"analytics\",\n label: \"Analytics\",\n icon: <BarChart3 className=\"h-5 w-5\" />,\n href: \"/analytics\",\n badge: \"New\",\n },\n {\n id: \"users\",\n label: \"Users\",\n icon: <Users className=\"h-5 w-5\" />,\n children: [\n { id: \"all-users\", label: \"All Users\", icon: <Users className=\"h-4 w-4\" /> },\n { id: \"user-roles\", label: \"User Roles\", icon: <Settings className=\"h-4 w-4\" /> },\n ],\n },\n {\n id: \"reports\",\n label: \"Reports\",\n icon: <FileText className=\"h-5 w-5\" />,\n href: \"/reports\",\n },\n {\n id: \"calendar\",\n label: \"Calendar\",\n icon: <Calendar className=\"h-5 w-5\" />,\n href: \"/calendar\",\n },\n {\n id: \"messages\",\n label: \"Messages\",\n icon: <Mail className=\"h-5 w-5\" />,\n href: \"/messages\",\n badge: \"3\",\n },\n {\n id: \"notifications\",\n label: \"Notifications\",\n icon: <Bell className=\"h-5 w-5\" />,\n href: \"/notifications\",\n },\n {\n id: \"settings\",\n label: \"Settings\",\n icon: <Settings className=\"h-5 w-5\" />,\n href: \"/settings\",\n },\n];\n\nconst Sidebar = React.forwardRef<HTMLDivElement, SidebarProps>(\n ({ \n className, \n collapsed = false, \n onToggle, \n menuItems = defaultMenuItems,\n activeItem = \"dashboard\",\n onItemClick,\n ...props \n }, ref) => {\n const [expandedItems, setExpandedItems] = React.useState<string[]>([]);\n\n const toggleExpanded = (itemId: string) => {\n setExpandedItems(prev => \n prev.includes(itemId) \n ? prev.filter(id => id !== itemId)\n : [...prev, itemId]\n );\n };\n\n const handleItemClick = (item: MenuItem) => {\n if (item.children) {\n toggleExpanded(item.id);\n } else {\n onItemClick?.(item.id);\n }\n };\n\n const renderMenuItem = (item: MenuItem, level = 0) => {\n const isActive = activeItem === item.id;\n const isExpanded = expandedItems.includes(item.id);\n const hasChildren = item.children && item.children.length > 0;\n\n return (\n <div key={item.id}>\n <button\n onClick={() => handleItemClick(item)}\n className={cn(\n menuItemVariants({ active: isActive, collapsed }),\n level > 0 && \"ml-4 pl-8\",\n \"relative\"\n )}\n >\n <div className=\"flex items-center min-w-0 flex-1\">\n <div className=\"flex-shrink-0\">\n {item.icon}\n </div>\n {!collapsed && (\n <>\n <span className=\"ml-3 truncate\">{item.label}</span>\n {item.badge && (\n <Badge variant=\"danger\" className=\"ml-auto text-xs\">\n {item.badge}\n </Badge>\n )}\n {hasChildren && (\n <ChevronDown \n className={cn(\n \"ml-auto h-4 w-4 transition-transform duration-200\",\n isExpanded && \"rotate-180\"\n )}\n />\n )}\n </>\n )}\n </div>\n </button>\n \n {hasChildren && !collapsed && isExpanded && (\n <div className=\"mt-1 space-y-1\">\n {item.children?.map(child => renderMenuItem(child, level + 1))}\n </div>\n )}\n </div>\n );\n };\n\n return (\n <div\n ref={ref}\n className={cn(sidebarVariants({ collapsed }), className)}\n {...props}\n >\n {/* Header */}\n <div className=\"flex items-center justify-between p-4 border-b border-gray-200\">\n {!collapsed && (\n <div className=\"flex items-center space-x-2\">\n <div className=\"w-8 h-8 bg-primary-600 rounded-lg flex items-center justify-center\">\n <span className=\"text-white font-bold text-sm\">B</span>\n </div>\n <span className=\"font-bold text-xl text-gray-900\">Beyond</span>\n </div>\n )}\n <button\n onClick={onToggle}\n className=\"p-1.5 rounded-lg hover:bg-gray-100 transition-colors\"\n >\n {collapsed ? (\n <ChevronRight className=\"h-4 w-4 text-gray-600\" />\n ) : (\n <ChevronLeft className=\"h-4 w-4 text-gray-600\" />\n )}\n </button>\n </div>\n\n {/* Navigation Menu */}\n <nav className=\"flex-1 px-4 py-6 space-y-2 overflow-y-auto\">\n {menuItems.map(item => renderMenuItem(item))}\n </nav>\n\n {/* User Profile Section */}\n <div className=\"border-t border-gray-200 p-4\">\n {collapsed ? (\n <div className=\"flex justify-center\">\n <Avatar size=\"sm\">\n <AvatarImage src=\"https://images.pexels.com/photos/774909/pexels-photo-774909.jpeg?auto=compress&cs=tinysrgb&w=64\" />\n <AvatarFallback>JD</AvatarFallback>\n </Avatar>\n </div>\n ) : (\n <div className=\"space-y-3\">\n <div className=\"flex items-center space-x-3\">\n <Avatar size=\"sm\">\n <AvatarImage src=\"https://images.pexels.com/photos/774909/pexels-photo-774909.jpeg?auto=compress&cs=tinysrgb&w=64\" />\n <AvatarFallback>JD</AvatarFallback>\n </Avatar>\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm font-medium text-gray-900 truncate\">\n John Doe\n </p>\n <p className=\"text-xs text-gray-500 truncate\">\n john@company.com\n </p>\n </div>\n </div>\n <div className=\"flex space-x-2\">\n <button className=\"flex-1 flex items-center justify-center px-3 py-2 text-xs font-medium text-gray-700 bg-gray-50 rounded-lg hover:bg-gray-100 transition-colors\">\n <User className=\"h-3 w-3 mr-1\" />\n Profile\n </button>\n <button className=\"flex-1 flex items-center justify-center px-3 py-2 text-xs font-medium text-gray-700 bg-gray-50 rounded-lg hover:bg-gray-100 transition-colors\">\n <LogOut className=\"h-3 w-3 mr-1\" />\n Logout\n </button>\n </div>\n </div>\n )}\n </div>\n </div>\n );\n }\n);\n\nSidebar.displayName = \"Sidebar\";\n\nexport { Sidebar, sidebarVariants, type MenuItem };"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { cva } from 'class-variance-authority';
|
|
4
4
|
import { cn } from '../../utils/cn.js';
|
|
@@ -15,7 +15,7 @@ const skeletonVariants = cva("animate-pulse rounded-md bg-gray-200", {
|
|
|
15
15
|
},
|
|
16
16
|
});
|
|
17
17
|
const Skeleton = React.forwardRef(({ className, variant, ...props }, ref) => {
|
|
18
|
-
return (
|
|
18
|
+
return (jsx("div", { ref: ref, className: cn(skeletonVariants({ variant }), className), ...props }));
|
|
19
19
|
});
|
|
20
20
|
Skeleton.displayName = "Skeleton";
|
|
21
21
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Skeleton.js","sources":["../../../src/components/Skeleton/Skeleton.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst skeletonVariants = cva(\n \"animate-pulse rounded-md bg-gray-200\",\n {\n variants: {\n variant: {\n default: \"bg-gray-200\",\n darker: \"bg-gray-300\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport interface SkeletonProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof skeletonVariants> {}\n\nconst Skeleton = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, variant, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(skeletonVariants({ variant }), className)}\n {...props}\n />\n );\n }\n);\nSkeleton.displayName = \"Skeleton\";\n\nexport { Skeleton, skeletonVariants };"],"names":["_jsx"],"mappings":";;;;;AAIA,MAAM,gBAAgB,GAAG,GAAG,CAC1B,sCAAsC,EACtC;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,aAAa;AACtB,YAAA,MAAM,EAAE,aAAa;AACtB,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,SAAS;AACnB,KAAA;AACF,CAAA;AAOH,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAC/B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IACxC,QACEA
|
|
1
|
+
{"version":3,"file":"Skeleton.js","sources":["../../../src/components/Skeleton/Skeleton.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst skeletonVariants = cva(\n \"animate-pulse rounded-md bg-gray-200\",\n {\n variants: {\n variant: {\n default: \"bg-gray-200\",\n darker: \"bg-gray-300\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport interface SkeletonProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof skeletonVariants> {}\n\nconst Skeleton = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, variant, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(skeletonVariants({ variant }), className)}\n {...props}\n />\n );\n }\n);\nSkeleton.displayName = \"Skeleton\";\n\nexport { Skeleton, skeletonVariants };"],"names":["_jsx"],"mappings":";;;;;AAIA,MAAM,gBAAgB,GAAG,GAAG,CAC1B,sCAAsC,EACtC;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,aAAa;AACtB,YAAA,MAAM,EAAE,aAAa;AACtB,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,SAAS;AACnB,KAAA;AACF,CAAA;AAOH,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAC/B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IACxC,QACEA,aACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,EAAA,GACnD,KAAK,EAAA,CACT;AAEN,CAAC;AAEH,QAAQ,CAAC,WAAW,GAAG,UAAU;;;;"}
|