@beyondcorp/beyond-ui 1.2.89 → 1.2.93
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/ComponentShowcase/ComponentShowcase.js +5 -5
- package/dist/components/ComponentShowcase/ComponentShowcase.js.map +1 -1
- package/dist/components/DashboardGrid/DashboardGrid.example.js +1 -1
- package/dist/components/DashboardGrid/DashboardGrid.example.js.map +1 -1
- package/dist/components/DashboardLayout/DashboardLayout.example.js +1 -1
- package/dist/components/DashboardLayout/DashboardLayout.example.js.map +1 -1
- package/dist/components/DataTable/DataTable.d.ts +4 -1
- package/dist/components/DataTable/DataTable.js +32 -13
- package/dist/components/DataTable/DataTable.js.map +1 -1
- package/dist/components/Navbar/Navbar.example.js +1 -1
- package/dist/components/Navbar/Navbar.example.js.map +1 -1
- package/dist/components/PageLayout/PageLayoutExamples.js +6 -6
- package/dist/components/PageLayout/PageLayoutExamples.js.map +1 -1
- package/dist/components/PageLayout/PageLayoutShowcase.js +1 -1
- package/dist/components/PageLayout/PageLayoutShowcase.js.map +1 -1
- package/dist/components/Sidebar/Sidebar.example.js +1 -1
- package/dist/components/Sidebar/Sidebar.example.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
|
@@ -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 { Card, CardContent } from \"../Card\";\nimport { useBreakpoint } from \"../../hooks/useBreakpoint\";\nimport { Select } from \"../Select\";\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 dark:bg-gray-900\",\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 dark:border-gray-800\",\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 dark:border-gray-800 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 dark:bg-gray-800/50 font-semibold text-gray-900 dark:text-gray-100 border-b-2 border-gray-200 dark:border-gray-800\",\n body: \"text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-800/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 dark:bg-gray-900 border border-gray-200 dark:border-gray-800 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 dark:text-gray-300\">{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 // Convert pageSizeOptions to SelectOption format\n const selectOptions = pageSizeOptions.map(size => ({\n label: String(size),\n value: String(size),\n }));\n\n return (\n <div className=\"flex items-center justify-between px-4 py-3 bg-white dark:bg-gray-900 border-t border-gray-200 dark:border-gray-800\">\n <div className=\"flex items-center space-x-4\">\n <span className=\"text-sm text-gray-700 dark:text-gray-300\">\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 dark:text-gray-300\">Show</span>\n <Select\n options={selectOptions}\n value={String(pageSize)}\n onChange={e => onChange(1, Number(e.target.value))}\n variant=\"default\"\n selectSize=\"sm\"\n aria-label=\"Select number of items per page\"\n />\n <span className=\"text-sm text-gray-700 dark:text-gray-300\">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 aria-label=\"First page\"\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 aria-label=\"Previous page\"\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 aria-label={`Go to page ${page}`}\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 aria-label=\"Next page\"\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 aria-label=\"Last page\"\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 // Mobile-first responsive: useBreakpoint to switch between table and card layouts\n const { isBelow } = useBreakpoint();\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 dark:border-gray-800 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 dark:border-gray-800 rounded-lg overflow-hidden\">\n {/* Card layout for mobile */}\n {isBelow('md') ? (\n <div className=\"space-y-4 p-2\">\n {paginatedData.length === 0 ? (\n <div className=\"text-gray-500 dark:text-gray-400 text-center py-8\">\n <div className=\"text-4xl mb-2\">📋</div>\n <div>No data available</div>\n </div>\n ) : (\n paginatedData.map((record, index) => {\n const key = getRowKey(record, index);\n const isSelected = selectedRowKeys.includes(key);\n\n return (\n <Card\n key={key}\n variant={isSelected ? \"elevated\" : \"default\"}\n padding=\"sm\"\n className={cn(\n \"transition-shadow\",\n isSelected && \"border-primary-600 shadow-lg\"\n )}\n >\n <CardContent className=\"space-y-2\">\n {rowSelection && (\n <div className=\"flex items-center mb-2\">\n <Checkbox\n checked={isSelected}\n onChange={(e) => handleRowSelect(record, e.target.checked)}\n {...rowSelection.getCheckboxProps?.(record)}\n />\n <span className=\"ml-2 text-xs text-gray-500\">Select</span>\n </div>\n )}\n {columns.map((column) => (\n <div key={column.key} className=\"flex justify-between items-center py-1 border-b border-gray-200 dark:border-gray-800 last:border-b-0\">\n <span className=\"font-medium text-gray-700 dark:text-gray-300\">{column.title}</span>\n <span className=\"text-gray-900 dark:text-gray-100\">\n {column.render\n ? column.render(record[column.dataIndex], record, index)\n : String(record[column.dataIndex] || '')\n }\n </span>\n </div>\n ))}\n </CardContent>\n </Card>\n );\n })\n )}\n </div>\n ) : (\n // Table layout for desktop/tablet\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 dark:text-gray-500\"\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 dark:text-gray-500\"\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 dark:hover:bg-gray-800/50 transition-colors\",\n isSelected && \"bg-primary-50 dark:bg-primary-900/20\"\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 {/* Always show pagination controls below data */}\n {currentPagination && (\n <div className=\"pt-2\">\n <TablePagination\n pagination={currentPagination}\n onChange={(page, pageSize) => {\n const newPagination = { ...currentPagination, current: page, pageSize };\n onChange?.(newPagination, filters, sortConfig);\n }}\n />\n </div>\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 { Card, CardContent } from \"../Card\";\nimport { useBreakpoint } from \"../../hooks/useBreakpoint\";\nimport { Select } from \"../Select\";\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 dark:bg-gray-900\",\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 dark:border-gray-800\",\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 dark:border-gray-800 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 dark:bg-gray-800/50 font-semibold text-gray-900 dark:text-gray-100 border-b-2 border-gray-200 dark:border-gray-800\",\n body: \"text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-800/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 dark:bg-gray-900 border border-gray-200 dark:border-gray-800 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 dark:text-gray-300\">{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 // Convert pageSizeOptions to SelectOption format\n const selectOptions = pageSizeOptions.map(size => ({\n label: String(size),\n value: String(size),\n }));\n\n return (\n <div className=\"flex items-center justify-between px-4 py-3 bg-white dark:bg-gray-900 border-t border-gray-200 dark:border-gray-800\">\n <div className=\"flex items-center space-x-4\">\n <span className=\"text-sm text-gray-700 dark:text-gray-300\">\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 dark:text-gray-300\">Show</span>\n <Select\n options={selectOptions}\n value={String(pageSize)}\n onChange={e => onChange(1, Number(e.target.value))}\n variant=\"default\"\n selectSize=\"sm\"\n aria-label=\"Select number of items per page\"\n />\n <span className=\"text-sm text-gray-700 dark:text-gray-300\">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 aria-label=\"First page\"\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 aria-label=\"Previous page\"\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 aria-label={`Go to page ${page}`}\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 aria-label=\"Next page\"\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 aria-label=\"Last page\"\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 emptyLabel = 'No data available',\n ...props\n}: DataTableProps<T> & { emptyLabel?: React.ReactNode }) => {\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 const [internalPage, setInternalPage] = useState<number>(() => \n (pagination && typeof pagination === 'object' && pagination.current) ? Number(pagination.current) : 1\n );\n const [internalPageSize, setInternalPageSize] = useState<number>(() => \n (pagination && typeof pagination === 'object' && pagination.pageSize) ? Number(pagination.pageSize) : 10\n );\n\n React.useEffect(() => {\n if (pagination && typeof pagination === 'object') {\n if (pagination.current !== undefined) setInternalPage(Number(pagination.current) || 1);\n if (pagination.pageSize !== undefined) setInternalPageSize(Number(pagination.pageSize) || 10);\n }\n }, [\n pagination && typeof pagination === 'object' ? pagination.current : undefined,\n pagination && typeof pagination === 'object' ? pagination.pageSize : undefined\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 === false) return processedData;\n \n const page = Math.max(1, Number(internalPage) || 1);\n const size = Math.max(1, Number(internalPageSize) || 10);\n const startIndex = (page - 1) * size;\n \n return processedData.slice(startIndex, startIndex + size);\n }, [processedData, pagination, internalPage, internalPageSize]);\n\n // Update pagination total\n const currentPagination = useMemo(() => {\n if (pagination === false) return false;\n return {\n ...(typeof pagination === 'object' ? pagination : {}),\n current: Math.max(1, Number(internalPage) || 1),\n pageSize: Math.max(1, Number(internalPageSize) || 10),\n total: processedData.length,\n };\n }, [pagination, internalPage, internalPageSize, 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 // Mobile-first responsive: useBreakpoint to switch between table and card layouts\n const { isBelow } = useBreakpoint();\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 dark:border-gray-800 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 dark:border-gray-800 rounded-lg overflow-hidden\">\n {/* Card layout for mobile */}\n {isBelow('md') ? (\n <div className=\"space-y-4 p-2\">\n {paginatedData.length === 0 ? (\n <div className=\"text-gray-500 dark:text-gray-400 text-center py-8\">\n <div className=\"text-4xl mb-2\">📋</div>\n <div>{emptyLabel}</div>\n </div>\n ) : (\n paginatedData.map((record, index) => {\n const key = getRowKey(record, index);\n const isSelected = selectedRowKeys.includes(key);\n\n return (\n <Card\n key={key}\n variant={isSelected ? \"elevated\" : \"default\"}\n padding=\"sm\"\n className={cn(\n \"transition-shadow\",\n isSelected && \"border-primary-600 shadow-lg\"\n )}\n >\n <CardContent className=\"space-y-2\">\n {rowSelection && (\n <div className=\"flex items-center mb-2\">\n <Checkbox\n checked={isSelected}\n onChange={(e) => handleRowSelect(record, e.target.checked)}\n {...rowSelection.getCheckboxProps?.(record)}\n />\n <span className=\"ml-2 text-xs text-gray-500\">Select</span>\n </div>\n )}\n {columns.map((column) => (\n <div key={column.key} className=\"flex justify-between items-center py-1 border-b border-gray-200 dark:border-gray-800 last:border-b-0\">\n <span className=\"font-medium text-gray-700 dark:text-gray-300\">{column.title}</span>\n <span className=\"text-gray-900 dark:text-gray-100\">\n {column.render\n ? column.render(record[column.dataIndex], record, index)\n : String(record[column.dataIndex] || '')\n }\n </span>\n </div>\n ))}\n </CardContent>\n </Card>\n );\n })\n )}\n </div>\n ) : (\n // Table layout for desktop/tablet\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 dark:text-gray-500\"\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 dark:text-gray-500\"\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>{emptyLabel}</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 dark:hover:bg-gray-800/50 transition-colors\",\n isSelected && \"bg-primary-50 dark:bg-primary-900/20\"\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 {/* Always show pagination controls below data */}\n {currentPagination && (\n <div className=\"pt-2\">\n <TablePagination\n pagination={currentPagination}\n onChange={(page, size) => {\n setInternalPage(page);\n setInternalPageSize(size);\n const newPagination = { ...currentPagination, current: page, pageSize: size };\n onChange?.(newPagination, filters, sortConfig);\n }}\n />\n </div>\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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"}
|
|
@@ -2,7 +2,7 @@ import { jsx, jsxs } from 'react/jsx-runtime';
|
|
|
2
2
|
import { Navbar } from './Navbar.js';
|
|
3
3
|
import { NightModeSwitch } from '../NightModeSwitch/NightModeSwitch.js';
|
|
4
4
|
|
|
5
|
-
const NavbarExample = () => (jsx(Navbar, { children: jsxs("div", { className: "flex items-center gap-4 px-4 w-full", children: [jsx("span", { className: "font-bold text-xl", children: "My App" }), jsxs("nav", { className: "flex gap-2 ml-auto", children: [jsx("a", { href: "/", className: "text-blue-500", children: "Home" }), jsx("a", { href: "/about", className: "text-blue-500", children: "About" })] }), jsx(NightModeSwitch, { className: "ml-4", variant: "ghost", size: "md", ariaLabel: "Toggle dark mode" })] }) }));
|
|
5
|
+
const NavbarExample = () => (jsx(Navbar, { children: jsxs("div", { className: "flex items-center gap-4 px-4 w-full", children: [jsx("span", { className: "font-bold text-xl text-gray-900 dark:text-white", children: "My App" }), jsxs("nav", { className: "flex gap-2 ml-auto", children: [jsx("a", { href: "/", className: "text-blue-500 dark:text-blue-400", children: "Home" }), jsx("a", { href: "/about", className: "text-blue-500 dark:text-blue-400", children: "About" })] }), jsx(NightModeSwitch, { className: "ml-4", variant: "ghost", size: "md", ariaLabel: "Toggle dark mode" })] }) }));
|
|
6
6
|
|
|
7
7
|
export { NavbarExample };
|
|
8
8
|
//# sourceMappingURL=Navbar.example.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Navbar.example.js","sources":["../../../src/components/Navbar/Navbar.example.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Navbar } from \"./Navbar\";\nimport { NightModeSwitch } from \"../NightModeSwitch\";\n\nexport const NavbarExample: React.FC = () => (\n <Navbar>\n <div className=\"flex items-center gap-4 px-4 w-full\">\n <span className=\"font-bold text-xl\">My App</span>\n <nav className=\"flex gap-2 ml-auto\">\n <a href=\"/\" className=\"text-blue-500\">Home</a>\n <a href=\"/about\" className=\"text-blue-500\">About</a>\n </nav>\n <NightModeSwitch className=\"ml-4\" variant=\"ghost\" size=\"md\" ariaLabel=\"Toggle dark mode\" />\n </div>\n </Navbar>\n);"],"names":["_jsx","_jsxs"],"mappings":";;;;AAIO,MAAM,aAAa,GAAa,OACrCA,GAAA,CAAC,MAAM,EAAA,EAAA,QAAA,EACLC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,qCAAqC,EAAA,QAAA,EAAA,CAClDD,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"Navbar.example.js","sources":["../../../src/components/Navbar/Navbar.example.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Navbar } from \"./Navbar\";\nimport { NightModeSwitch } from \"../NightModeSwitch\";\n\nexport const NavbarExample: React.FC = () => (\n <Navbar>\n <div className=\"flex items-center gap-4 px-4 w-full\">\n <span className=\"font-bold text-xl text-gray-900 dark:text-white\">My App</span>\n <nav className=\"flex gap-2 ml-auto\">\n <a href=\"/\" className=\"text-blue-500 dark:text-blue-400\">Home</a>\n <a href=\"/about\" className=\"text-blue-500 dark:text-blue-400\">About</a>\n </nav>\n <NightModeSwitch className=\"ml-4\" variant=\"ghost\" size=\"md\" ariaLabel=\"Toggle dark mode\" />\n </div>\n </Navbar>\n);"],"names":["_jsx","_jsxs"],"mappings":";;;;AAIO,MAAM,aAAa,GAAa,OACrCA,GAAA,CAAC,MAAM,EAAA,EAAA,QAAA,EACLC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,qCAAqC,EAAA,QAAA,EAAA,CAClDD,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,iDAAiD,EAAA,QAAA,EAAA,QAAA,EAAA,CAAc,EAC/EC,cAAK,SAAS,EAAC,oBAAoB,EAAA,QAAA,EAAA,CACjCD,WAAG,IAAI,EAAC,GAAG,EAAC,SAAS,EAAC,kCAAkC,EAAA,QAAA,EAAA,MAAA,EAAA,CAAS,EACjEA,GAAA,CAAA,GAAA,EAAA,EAAG,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,kCAAkC,EAAA,QAAA,EAAA,OAAA,EAAA,CAAU,CAAA,EAAA,CACnE,EACNA,GAAA,CAAC,eAAe,IAAC,SAAS,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,SAAS,EAAC,kBAAkB,EAAA,CAAG,CAAA,EAAA,CACvF,EAAA,CACC;;;;"}
|
|
@@ -11,7 +11,7 @@ import { Globe, ArrowRight, CheckCircle, Star, Mail, Phone, ShoppingCart, Heart,
|
|
|
11
11
|
* Landing Page Example
|
|
12
12
|
* Features: Hero section, feature highlights, CTA sections
|
|
13
13
|
*/
|
|
14
|
-
const LandingPageExample = () => (jsxs(PageLayout, { variant: "landing", maxWidth: "full", children: [jsx(PageHeader, { sticky: true, transparent: true, children: jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: jsxs("div", { className: "flex items-center justify-between h-16", children: [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(Globe, { className: "h-5 w-5 text-white" }) }), jsx("span", { className: "font-bold text-xl text-gray-900", children: "Beyond" })] }), jsxs("nav", { className: "hidden md:flex items-center space-x-8", children: [jsx("a", { href: "#features", className: "text-gray-700 hover:text-primary-600", children: "Features" }), jsx("a", { href: "#pricing", className: "text-gray-700 hover:text-primary-600", children: "Pricing" }), jsx("a", { href: "#about", className: "text-gray-700 hover:text-primary-600", children: "About" }), jsx(Button, { variant: "primary", children: "Get Started" })] })] }) }) }), jsx(PageHero, { fullHeight: true, children: jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center", children: jsxs("div", { className: "max-w-3xl mx-auto", children: [jsxs("h1", { className: "text-4xl md:text-6xl font-bold text-gray-900 mb-6", children: ["Build Amazing", jsx("span", { className: "text-primary-600", children: " Web Experiences" })] }), jsx("p", { className: "text-xl text-gray-600 mb-8 leading-relaxed", children: "Create stunning, responsive websites with our comprehensive UI component library. Built for developers, designed for users." }), jsxs("div", { className: "flex flex-col sm:flex-row gap-4 justify-center", children: [jsxs(Button, { variant: "primary", size: "lg", className: "px-8", children: ["Start Building", jsx(ArrowRight, { className: "ml-2 h-5 w-5" })] }), jsx(Button, { variant: "outline", size: "lg", className: "px-8", children: "View Components" })] })] }) }) }), jsx(PageLayoutContent, { layout: "centered", spacing: "xl", children: jsxs("section", { id: "features", className: "py-16", children: [jsxs("div", { className: "text-center mb-16", children: [jsx("h2", { className: "text-3xl font-bold text-gray-900 mb-4", children: "Everything You Need" }), jsx("p", { className: "text-xl text-gray-600 max-w-2xl mx-auto", children: "Comprehensive components, responsive design, and developer-friendly APIs" })] }), jsx("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-8", children: [
|
|
14
|
+
const LandingPageExample = () => (jsxs(PageLayout, { variant: "landing", maxWidth: "full", children: [jsx(PageHeader, { sticky: true, transparent: true, children: jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: jsxs("div", { className: "flex items-center justify-between h-16", children: [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(Globe, { className: "h-5 w-5 text-white" }) }), jsx("span", { className: "font-bold text-xl text-gray-900 dark:text-white", children: "Beyond" })] }), jsxs("nav", { className: "hidden md:flex items-center space-x-8", children: [jsx("a", { href: "#features", className: "text-gray-700 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400", children: "Features" }), jsx("a", { href: "#pricing", className: "text-gray-700 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400", children: "Pricing" }), jsx("a", { href: "#about", className: "text-gray-700 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400", children: "About" }), jsx(Button, { variant: "primary", children: "Get Started" })] })] }) }) }), jsx(PageHero, { fullHeight: true, children: jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center", children: jsxs("div", { className: "max-w-3xl mx-auto", children: [jsxs("h1", { className: "text-4xl md:text-6xl font-bold text-gray-900 dark:text-white mb-6", children: ["Build Amazing", jsx("span", { className: "text-primary-600 dark:text-primary-400", children: " Web Experiences" })] }), jsx("p", { className: "text-xl text-gray-600 dark:text-gray-400 mb-8 leading-relaxed", children: "Create stunning, responsive websites with our comprehensive UI component library. Built for developers, designed for users." }), jsxs("div", { className: "flex flex-col sm:flex-row gap-4 justify-center", children: [jsxs(Button, { variant: "primary", size: "lg", className: "px-8", children: ["Start Building", jsx(ArrowRight, { className: "ml-2 h-5 w-5" })] }), jsx(Button, { variant: "outline", size: "lg", className: "px-8", children: "View Components" })] })] }) }) }), jsx(PageLayoutContent, { layout: "centered", spacing: "xl", children: jsxs("section", { id: "features", className: "py-16", children: [jsxs("div", { className: "text-center mb-16", children: [jsx("h2", { className: "text-3xl font-bold text-gray-900 dark:text-white mb-4", children: "Everything You Need" }), jsx("p", { className: "text-xl text-gray-600 dark:text-gray-400 max-w-2xl mx-auto", children: "Comprehensive components, responsive design, and developer-friendly APIs" })] }), jsx("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-8", children: [
|
|
15
15
|
{
|
|
16
16
|
icon: jsx(CheckCircle, { className: "h-8 w-8 text-primary-600" }),
|
|
17
17
|
title: "Production Ready",
|
|
@@ -27,26 +27,26 @@ const LandingPageExample = () => (jsxs(PageLayout, { variant: "landing", maxWidt
|
|
|
27
27
|
title: "Premium Quality",
|
|
28
28
|
description: "Carefully crafted with attention to detail and user experience"
|
|
29
29
|
}
|
|
30
|
-
].map((feature, index) => (jsxs(Card, { className: "text-center p-8", children: [jsx("div", { className: "flex justify-center mb-4", children: feature.icon }), jsx("h3", { className: "text-xl font-semibold text-gray-900 mb-3", children: feature.title }), jsx("p", { className: "text-gray-600", children: feature.description })] }, index))) })] }) }), jsx(PageFooter, { variant: "detailed", children: jsxs("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [jsxs("div", { className: "grid grid-cols-1 md:grid-cols-4 gap-8", children: [jsxs("div", { children: [jsxs("div", { className: "flex items-center space-x-2 mb-4", children: [jsx(Globe, { className: "h-6 w-6 text-white" }), jsx("span", { className: "font-bold text-xl text-white", children: "Beyond" })] }), jsx("p", { className: "text-gray-300", children: "Building the future of web development, one component at a time." })] }), jsxs("div", { children: [jsx("h4", { className: "font-semibold text-white mb-4", children: "Product" }), jsxs("ul", { className: "space-y-2 text-gray-300", children: [jsx("li", { children: jsx("a", { href: "#", className: "hover:text-white", children: "Components" }) }), jsx("li", { children: jsx("a", { href: "#", className: "hover:text-white", children: "Templates" }) }), jsx("li", { children: jsx("a", { href: "#", className: "hover:text-white", children: "Documentation" }) })] })] }), jsxs("div", { children: [jsx("h4", { className: "font-semibold text-white mb-4", children: "Company" }), jsxs("ul", { className: "space-y-2 text-gray-300", children: [jsx("li", { children: jsx("a", { href: "#", className: "hover:text-white", children: "About" }) }), jsx("li", { children: jsx("a", { href: "#", className: "hover:text-white", children: "Blog" }) }), jsx("li", { children: jsx("a", { href: "#", className: "hover:text-white", children: "Careers" }) })] })] }), jsxs("div", { children: [jsx("h4", { className: "font-semibold text-white mb-4", children: "Contact" }), jsxs("div", { className: "space-y-2 text-gray-300", children: [jsxs("div", { className: "flex items-center space-x-2", children: [jsx(Mail, { className: "h-4 w-4" }), jsx("span", { children: "hello@beyond.com" })] }), jsxs("div", { className: "flex items-center space-x-2", children: [jsx(Phone, { className: "h-4 w-4" }), jsx("span", { children: "+1 (555) 123-4567" })] })] })] })] }), jsx("div", { className: "border-t border-gray-700 mt-8 pt-8 text-center text-gray-300", children: jsx("p", { children: "\u00A9 2024 Beyond. All rights reserved." }) })] }) })] }));
|
|
30
|
+
].map((feature, index) => (jsxs(Card, { className: "text-center p-8", children: [jsx("div", { className: "flex justify-center mb-4", children: feature.icon }), jsx("h3", { className: "text-xl font-semibold text-gray-900 dark:text-white mb-3", children: feature.title }), jsx("p", { className: "text-gray-600 dark:text-gray-400", children: feature.description })] }, index))) })] }) }), jsx(PageFooter, { variant: "detailed", children: jsxs("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [jsxs("div", { className: "grid grid-cols-1 md:grid-cols-4 gap-8", children: [jsxs("div", { children: [jsxs("div", { className: "flex items-center space-x-2 mb-4", children: [jsx(Globe, { className: "h-6 w-6 text-white" }), jsx("span", { className: "font-bold text-xl text-white", children: "Beyond" })] }), jsx("p", { className: "text-gray-300", children: "Building the future of web development, one component at a time." })] }), jsxs("div", { children: [jsx("h4", { className: "font-semibold text-white mb-4", children: "Product" }), jsxs("ul", { className: "space-y-2 text-gray-300", children: [jsx("li", { children: jsx("a", { href: "#", className: "hover:text-white", children: "Components" }) }), jsx("li", { children: jsx("a", { href: "#", className: "hover:text-white", children: "Templates" }) }), jsx("li", { children: jsx("a", { href: "#", className: "hover:text-white", children: "Documentation" }) })] })] }), jsxs("div", { children: [jsx("h4", { className: "font-semibold text-white mb-4", children: "Company" }), jsxs("ul", { className: "space-y-2 text-gray-300", children: [jsx("li", { children: jsx("a", { href: "#", className: "hover:text-white", children: "About" }) }), jsx("li", { children: jsx("a", { href: "#", className: "hover:text-white", children: "Blog" }) }), jsx("li", { children: jsx("a", { href: "#", className: "hover:text-white", children: "Careers" }) })] })] }), jsxs("div", { children: [jsx("h4", { className: "font-semibold text-white mb-4", children: "Contact" }), jsxs("div", { className: "space-y-2 text-gray-300", children: [jsxs("div", { className: "flex items-center space-x-2", children: [jsx(Mail, { className: "h-4 w-4" }), jsx("span", { children: "hello@beyond.com" })] }), jsxs("div", { className: "flex items-center space-x-2", children: [jsx(Phone, { className: "h-4 w-4" }), jsx("span", { children: "+1 (555) 123-4567" })] })] })] })] }), jsx("div", { className: "border-t border-gray-700 mt-8 pt-8 text-center text-gray-300", children: jsx("p", { children: "\u00A9 2024 Beyond. All rights reserved." }) })] }) })] }));
|
|
31
31
|
/**
|
|
32
32
|
* Product Page Example
|
|
33
33
|
* Features: Product showcase, specifications, reviews
|
|
34
34
|
*/
|
|
35
|
-
const ProductPageExample = () => (jsxs(PageLayout, { variant: "product", maxWidth: "xl", children: [jsx(PageHeader, { children: jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: jsxs("div", { className: "flex items-center justify-between h-16", children: [jsxs("div", { className: "flex items-center space-x-2", children: [jsx(ShoppingCart, { className: "h-6 w-6 text-primary-600" }), jsx("span", { className: "font-bold text-xl", children: "Store" })] }), jsxs("div", { className: "flex items-center space-x-4", children: [jsx(Input, { placeholder: "Search products...", className: "w-64" }), jsx(Button, { variant: "outline", children: "Cart (2)" })] })] }) }) }), jsx(PageLayoutContent, { layout: "centered", spacing: "lg", children: jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-12", children: [jsxs("div", { children: [jsx("div", { className: "aspect-square bg-gray-100 rounded-lg mb-4 flex items-center justify-center", children: jsxs("div", { className: "text-center text-gray-500", children: [jsx(ShoppingCart, { className: "h-16 w-16 mx-auto mb-2" }), jsx("p", { children: "Product Image" })] }) }), jsx("div", { className: "grid grid-cols-4 gap-2", children: [1, 2, 3, 4].map((i) => (jsx("div", { className: "aspect-square bg-gray-100 rounded border-2 border-transparent hover:border-primary-500 cursor-pointer" }, i))) })] }), jsxs("div", { children: [jsxs("div", { className: "flex items-center space-x-2 mb-2", children: [jsx(Badge, { variant: "success", children: "In Stock" }), jsx(Badge, { variant: "outline", children: "Free Shipping" })] }), jsx("h1", { className: "text-3xl font-bold text-gray-900 mb-4", children: "Premium Wireless Headphones" }), jsxs("div", { className: "flex items-center space-x-2 mb-4", children: [jsx("div", { className: "flex items-center", children: [1, 2, 3, 4, 5].map((star) => (jsx(Star, { className: "h-5 w-5 text-yellow-400 fill-current" }, star))) }), jsx("span", { className: "text-gray-600", children: "(128 reviews)" })] }), jsxs("div", { className: "mb-6", children: [jsx("span", { className: "text-3xl font-bold text-gray-900", children: "$299.99" }), jsx("span", { className: "text-lg text-gray-500 line-through ml-2", children: "$399.99" }), jsx(Badge, { variant: "danger", className: "ml-2", children: "25% OFF" })] }), jsx("p", { className: "text-gray-600 mb-6 leading-relaxed", children: "Experience premium sound quality with our latest wireless headphones. Featuring active noise cancellation, 30-hour battery life, and premium materials." }), jsx("div", { className: "space-y-4 mb-8", children: jsxs("div", { children: [jsx("label", { className: "block text-sm font-medium text-gray-700 mb-2", children: "Color" }), jsx("div", { className: "flex space-x-2", children: ['Black', 'White', 'Blue'].map((color) => (jsx("button", { className: "px-4 py-2 border border-gray-300 rounded-lg hover:border-primary-500 focus:border-primary-500", children: color }, color))) })] }) }), jsxs("div", { className: "flex space-x-4 mb-6", children: [jsxs(Button, { variant: "primary", size: "lg", className: "flex-1", children: [jsx(ShoppingCart, { className: "mr-2 h-5 w-5" }), "Add to Cart"] }), jsx(Button, { variant: "outline", size: "lg", children: jsx(Heart, { className: "h-5 w-5" }) }), jsx(Button, { variant: "outline", size: "lg", children: jsx(Share2, { className: "h-5 w-5" }) })] }), jsxs("div", { className: "border-t pt-6", children: [jsx("h3", { className: "font-semibold text-gray-900 mb-3", children: "Key Features" }), jsxs("ul", { className: "space-y-2 text-gray-600", children: [jsxs("li", { className: "flex items-center", children: [jsx(CheckCircle, { className: "h-4 w-4 text-green-500 mr-2" }), "Active Noise Cancellation"] }), jsxs("li", { className: "flex items-center", children: [jsx(CheckCircle, { className: "h-4 w-4 text-green-500 mr-2" }), "30-Hour Battery Life"] }), jsxs("li", { className: "flex items-center", children: [jsx(CheckCircle, { className: "h-4 w-4 text-green-500 mr-2" }), "Premium Build Quality"] })] })] })] })] }) }), jsx(PageFooter, { variant: "simple", children: jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center", children: jsx("p", { className: "text-gray-600", children: "\u00A9 2024 Store. All rights reserved." }) }) })] }));
|
|
35
|
+
const ProductPageExample = () => (jsxs(PageLayout, { variant: "product", maxWidth: "xl", children: [jsx(PageHeader, { children: jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: jsxs("div", { className: "flex items-center justify-between h-16", children: [jsxs("div", { className: "flex items-center space-x-2", children: [jsx(ShoppingCart, { className: "h-6 w-6 text-primary-600" }), jsx("span", { className: "font-bold text-xl dark:text-white", children: "Store" })] }), jsxs("div", { className: "flex items-center space-x-4", children: [jsx(Input, { placeholder: "Search products...", className: "w-64" }), jsx(Button, { variant: "outline", children: "Cart (2)" })] })] }) }) }), jsx(PageLayoutContent, { layout: "centered", spacing: "lg", children: jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-12", children: [jsxs("div", { children: [jsx("div", { className: "aspect-square bg-gray-100 dark:bg-gray-800 rounded-lg mb-4 flex items-center justify-center", children: jsxs("div", { className: "text-center text-gray-500 dark:text-gray-400", children: [jsx(ShoppingCart, { className: "h-16 w-16 mx-auto mb-2" }), jsx("p", { children: "Product Image" })] }) }), jsx("div", { className: "grid grid-cols-4 gap-2", children: [1, 2, 3, 4].map((i) => (jsx("div", { className: "aspect-square bg-gray-100 dark:bg-gray-800 rounded border-2 border-transparent hover:border-primary-500 cursor-pointer" }, i))) })] }), jsxs("div", { children: [jsxs("div", { className: "flex items-center space-x-2 mb-2", children: [jsx(Badge, { variant: "success", children: "In Stock" }), jsx(Badge, { variant: "outline", children: "Free Shipping" })] }), jsx("h1", { className: "text-3xl font-bold text-gray-900 dark:text-white mb-4", children: "Premium Wireless Headphones" }), jsxs("div", { className: "flex items-center space-x-2 mb-4", children: [jsx("div", { className: "flex items-center", children: [1, 2, 3, 4, 5].map((star) => (jsx(Star, { className: "h-5 w-5 text-yellow-400 fill-current" }, star))) }), jsx("span", { className: "text-gray-600 dark:text-gray-400", children: "(128 reviews)" })] }), jsxs("div", { className: "mb-6", children: [jsx("span", { className: "text-3xl font-bold text-gray-900 dark:text-white", children: "$299.99" }), jsx("span", { className: "text-lg text-gray-500 dark:text-gray-400 line-through ml-2", children: "$399.99" }), jsx(Badge, { variant: "danger", className: "ml-2", children: "25% OFF" })] }), jsx("p", { className: "text-gray-600 dark:text-gray-400 mb-6 leading-relaxed", children: "Experience premium sound quality with our latest wireless headphones. Featuring active noise cancellation, 30-hour battery life, and premium materials." }), jsx("div", { className: "space-y-4 mb-8", children: jsxs("div", { children: [jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2", children: "Color" }), jsx("div", { className: "flex space-x-2", children: ['Black', 'White', 'Blue'].map((color) => (jsx("button", { className: "px-4 py-2 border border-gray-300 dark:border-gray-700 dark:text-gray-200 rounded-lg hover:border-primary-500 dark:hover:border-primary-400 focus:border-primary-500", children: color }, color))) })] }) }), jsxs("div", { className: "flex space-x-4 mb-6", children: [jsxs(Button, { variant: "primary", size: "lg", className: "flex-1", children: [jsx(ShoppingCart, { className: "mr-2 h-5 w-5" }), "Add to Cart"] }), jsx(Button, { variant: "outline", size: "lg", children: jsx(Heart, { className: "h-5 w-5" }) }), jsx(Button, { variant: "outline", size: "lg", children: jsx(Share2, { className: "h-5 w-5" }) })] }), jsxs("div", { className: "border-t dark:border-gray-800 pt-6", children: [jsx("h3", { className: "font-semibold text-gray-900 dark:text-white mb-3", children: "Key Features" }), jsxs("ul", { className: "space-y-2 text-gray-600 dark:text-gray-400", children: [jsxs("li", { className: "flex items-center", children: [jsx(CheckCircle, { className: "h-4 w-4 text-green-500 mr-2" }), "Active Noise Cancellation"] }), jsxs("li", { className: "flex items-center", children: [jsx(CheckCircle, { className: "h-4 w-4 text-green-500 mr-2" }), "30-Hour Battery Life"] }), jsxs("li", { className: "flex items-center", children: [jsx(CheckCircle, { className: "h-4 w-4 text-green-500 mr-2" }), "Premium Build Quality"] })] })] })] })] }) }), jsx(PageFooter, { variant: "simple", children: jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center", children: jsx("p", { className: "text-gray-600 dark:text-gray-400", children: "\u00A9 2024 Store. All rights reserved." }) }) })] }));
|
|
36
36
|
/**
|
|
37
37
|
* Blog Post Example
|
|
38
38
|
* Features: Article content with sidebar, author info, related posts
|
|
39
39
|
*/
|
|
40
|
-
const BlogPostExample = () => (jsxs(PageLayout, { variant: "blog", maxWidth: "xl", children: [jsx(PageHeader, { children: jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: jsxs("div", { className: "flex items-center justify-between h-16", children: [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(User, { className: "h-5 w-5 text-white" }) }), jsx("span", { className: "font-bold text-xl", children: "Blog" })] }), jsxs("nav", { className: "flex items-center space-x-6", children: [jsx("a", { href: "#", className: "text-gray-700 hover:text-primary-600", children: "Home" }), jsx("a", { href: "#", className: "text-gray-700 hover:text-primary-600", children: "Categories" }), jsx("a", { href: "#", className: "text-gray-700 hover:text-primary-600", children: "About" })] })] }) }) }), jsxs(PageLayoutContent, { layout: "sidebar", spacing: "lg", children: [jsxs(PageContent, { maxWidth: "full", className: "lg:flex-1", children: [jsxs("article", { className: "prose prose-lg max-w-none", children: [jsxs("header", { className: "mb-8", children: [jsxs("div", { className: "flex items-center space-x-2 mb-4", children: [jsx(Badge, { variant: "default", children: "Technology" }), jsx(Badge, { variant: "outline", children: "React" })] }), jsx("h1", { className: "text-4xl font-bold text-gray-900 mb-4", children: "Building Modern Web Applications with React and TypeScript" }), jsxs("div", { className: "flex items-center space-x-4 text-gray-600 mb-6", children: [jsxs("div", { className: "flex items-center space-x-2", 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" })] }), jsx("span", { children: "John Doe" })] }), jsxs("div", { className: "flex items-center space-x-1", children: [jsx(Calendar, { className: "h-4 w-4" }), jsx("span", { children: "March 15, 2024" })] }), jsx("span", { children: "8 min read" })] })] }), jsx("div", { className: "aspect-video bg-gray-100 rounded-lg mb-8 flex items-center justify-center", children: jsxs("div", { className: "text-center text-gray-500", children: [jsx(Globe, { className: "h-16 w-16 mx-auto mb-2" }), jsx("p", { children: "Featured Image" })] }) }), jsxs("div", { className: "space-y-6 text-gray-700 leading-relaxed", children: [jsx("p", { children: "Modern web development has evolved significantly over the past few years. With the introduction of React and TypeScript, developers now have powerful tools to build scalable, maintainable applications." }), jsx("p", { children: "In this comprehensive guide, we'll explore the best practices for building modern web applications using React and TypeScript. We'll cover everything from project setup to deployment strategies." }), jsx("h2", { className: "text-2xl font-bold text-gray-900 mt-8 mb-4", children: "Getting Started" }), jsx("p", { children: "The first step in building any React application is setting up your development environment. We recommend using Create React App with TypeScript template for beginners." }), jsxs("div", { className: "bg-gray-50 p-6 rounded-lg border-l-4 border-primary-500", children: [jsx("p", { className: "font-medium text-gray-900 mb-2", children: "Pro Tip:" }), jsx("p", { className: "text-gray-700", children: "Always start with a solid project structure. This will save you countless hours as your application grows." })] })] })] }), jsx("div", { className: "mt-12 p-6 bg-gray-50 rounded-lg", children: jsxs("div", { className: "flex items-start space-x-4", children: [jsxs(Avatar, { size: "lg", 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", { children: [jsx("h3", { className: "font-semibold text-gray-900 mb-2", children: "John Doe" }), jsx("p", { className: "text-gray-600 mb-3", children: "Senior Frontend Developer with 8+ years of experience building scalable web applications. Passionate about React, TypeScript, and modern web technologies." }), jsxs("div", { className: "flex space-x-4", children: [jsx(Button, { variant: "outline", size: "sm", children: "Follow" }), jsx(Button, { variant: "ghost", size: "sm", children: jsx(Mail, { className: "h-4 w-4" }) })] })] })] }) })] }), jsx(PageSidebar, { position: "right", width: "md", children: jsxs("div", { className: "space-y-6", children: [jsxs(Card, { children: [jsx(CardHeader, { children: jsx(CardTitle, { children: "Search" }) }), jsx(CardContent, { children: jsx(Input, { placeholder: "Search articles..." }) })] }), jsxs(Card, { children: [jsx(CardHeader, { children: jsx(CardTitle, { children: "Categories" }) }), jsx(CardContent, { children: jsx("div", { className: "space-y-2", children: [
|
|
40
|
+
const BlogPostExample = () => (jsxs(PageLayout, { variant: "blog", maxWidth: "xl", children: [jsx(PageHeader, { children: jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: jsxs("div", { className: "flex items-center justify-between h-16", children: [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(User, { className: "h-5 w-5 text-white" }) }), jsx("span", { className: "font-bold text-xl dark:text-white", children: "Blog" })] }), jsxs("nav", { className: "flex items-center space-x-6", children: [jsx("a", { href: "#", className: "text-gray-700 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400", children: "Home" }), jsx("a", { href: "#", className: "text-gray-700 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400", children: "Categories" }), jsx("a", { href: "#", className: "text-gray-700 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400", children: "About" })] })] }) }) }), jsxs(PageLayoutContent, { layout: "sidebar", spacing: "lg", children: [jsxs(PageContent, { maxWidth: "full", className: "lg:flex-1", children: [jsxs("article", { className: "prose prose-lg dark:prose-invert max-w-none text-gray-700 dark:text-gray-300", children: [jsxs("header", { className: "mb-8", children: [jsxs("div", { className: "flex items-center space-x-2 mb-4", children: [jsx(Badge, { variant: "default", children: "Technology" }), jsx(Badge, { variant: "outline", children: "React" })] }), jsx("h1", { className: "text-4xl font-bold text-gray-900 dark:text-white mb-4", children: "Building Modern Web Applications with React and TypeScript" }), jsxs("div", { className: "flex items-center space-x-4 text-gray-600 dark:text-gray-400 mb-6", children: [jsxs("div", { className: "flex items-center space-x-2", 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" })] }), jsx("span", { children: "John Doe" })] }), jsxs("div", { className: "flex items-center space-x-1", children: [jsx(Calendar, { className: "h-4 w-4" }), jsx("span", { children: "March 15, 2024" })] }), jsx("span", { children: "8 min read" })] })] }), jsx("div", { className: "aspect-video bg-gray-100 dark:bg-gray-800 rounded-lg mb-8 flex items-center justify-center", children: jsxs("div", { className: "text-center text-gray-500 dark:text-gray-400", children: [jsx(Globe, { className: "h-16 w-16 mx-auto mb-2" }), jsx("p", { children: "Featured Image" })] }) }), jsxs("div", { className: "space-y-6 text-gray-700 dark:text-gray-300 leading-relaxed", children: [jsx("p", { children: "Modern web development has evolved significantly over the past few years. With the introduction of React and TypeScript, developers now have powerful tools to build scalable, maintainable applications." }), jsx("p", { children: "In this comprehensive guide, we'll explore the best practices for building modern web applications using React and TypeScript. We'll cover everything from project setup to deployment strategies." }), jsx("h2", { className: "text-2xl font-bold text-gray-900 dark:text-white mt-8 mb-4", children: "Getting Started" }), jsx("p", { children: "The first step in building any React application is setting up your development environment. We recommend using Create React App with TypeScript template for beginners." }), jsxs("div", { className: "bg-gray-50 dark:bg-gray-800/50 p-6 rounded-lg border-l-4 border-primary-500 dark:border-primary-400", children: [jsx("p", { className: "font-medium text-gray-900 dark:text-white mb-2", children: "Pro Tip:" }), jsx("p", { className: "text-gray-700 dark:text-gray-300", children: "Always start with a solid project structure. This will save you countless hours as your application grows." })] })] })] }), jsx("div", { className: "mt-12 p-6 bg-gray-50 dark:bg-gray-800/50 rounded-lg", children: jsxs("div", { className: "flex items-start space-x-4", children: [jsxs(Avatar, { size: "lg", 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", { children: [jsx("h3", { className: "font-semibold text-gray-900 dark:text-white mb-2", children: "John Doe" }), jsx("p", { className: "text-gray-600 dark:text-gray-400 mb-3", children: "Senior Frontend Developer with 8+ years of experience building scalable web applications. Passionate about React, TypeScript, and modern web technologies." }), jsxs("div", { className: "flex space-x-4", children: [jsx(Button, { variant: "outline", size: "sm", children: "Follow" }), jsx(Button, { variant: "ghost", size: "sm", children: jsx(Mail, { className: "h-4 w-4" }) })] })] })] }) })] }), jsx(PageSidebar, { position: "right", width: "md", children: jsxs("div", { className: "space-y-6", children: [jsxs(Card, { children: [jsx(CardHeader, { children: jsx(CardTitle, { children: "Search" }) }), jsx(CardContent, { children: jsx(Input, { placeholder: "Search articles..." }) })] }), jsxs(Card, { children: [jsx(CardHeader, { children: jsx(CardTitle, { children: "Categories" }) }), jsx(CardContent, { children: jsx("div", { className: "space-y-2", children: [
|
|
41
41
|
{ name: 'Technology', count: 24 },
|
|
42
42
|
{ name: 'React', count: 18 },
|
|
43
43
|
{ name: 'TypeScript', count: 12 },
|
|
44
44
|
{ name: 'Web Design', count: 8 },
|
|
45
|
-
].map((category) => (jsxs("div", { className: "flex items-center justify-between", children: [jsx("a", { href: "#", className: "text-gray-700 hover:text-primary-600", children: category.name }), jsx(Badge, { variant: "outline", children: category.count })] }, category.name))) }) })] }), jsxs(Card, { children: [jsx(CardHeader, { children: jsx(CardTitle, { children: "Recent Posts" }) }), jsx(CardContent, { children: jsx("div", { className: "space-y-4", children: [
|
|
45
|
+
].map((category) => (jsxs("div", { className: "flex items-center justify-between", children: [jsx("a", { href: "#", className: "text-gray-700 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400", children: category.name }), jsx(Badge, { variant: "outline", children: category.count })] }, category.name))) }) })] }), jsxs(Card, { children: [jsx(CardHeader, { children: jsx(CardTitle, { children: "Recent Posts" }) }), jsx(CardContent, { children: jsx("div", { className: "space-y-4", children: [
|
|
46
46
|
'Getting Started with Next.js',
|
|
47
47
|
'CSS Grid vs Flexbox: When to Use Each',
|
|
48
48
|
'Building Accessible Web Components',
|
|
49
|
-
].map((title, index) => (jsxs("div", { children: [jsx("a", { href: "#", className: "text-gray-900 hover:text-primary-600 font-medium block mb-1", children: title }), jsxs("p", { className: "text-sm text-gray-500", children: ["March ", 10 + index, ", 2024"] })] }, index))) }) })] }), jsxs(Card, { children: [jsx(CardHeader, { children: jsx(CardTitle, { children: "Tags" }) }), jsx(CardContent, { children: jsx("div", { className: "flex flex-wrap gap-2", children: ['React', 'TypeScript', 'JavaScript', 'CSS', 'HTML', 'Node.js', 'GraphQL'].map((tag) => (jsxs(Badge, { variant: "outline", className: "cursor-pointer hover:bg-primary-50", children: [jsx(Tag, { className: "h-3 w-3 mr-1" }), tag] }, tag))) }) })] })] }) })] }), jsx(PageFooter, { variant: "minimal", children: jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center", children: jsx("p", { className: "text-gray-600", children: "\u00A9 2024 Blog. All rights reserved." }) }) })] }));
|
|
49
|
+
].map((title, index) => (jsxs("div", { children: [jsx("a", { href: "#", className: "text-gray-900 dark:text-white hover:text-primary-600 dark:hover:text-primary-400 font-medium block mb-1", children: title }), jsxs("p", { className: "text-sm text-gray-500 dark:text-gray-400", children: ["March ", 10 + index, ", 2024"] })] }, index))) }) })] }), jsxs(Card, { children: [jsx(CardHeader, { children: jsx(CardTitle, { children: "Tags" }) }), jsx(CardContent, { children: jsx("div", { className: "flex flex-wrap gap-2", children: ['React', 'TypeScript', 'JavaScript', 'CSS', 'HTML', 'Node.js', 'GraphQL'].map((tag) => (jsxs(Badge, { variant: "outline", className: "cursor-pointer hover:bg-primary-50 dark:hover:bg-primary-900/30", children: [jsx(Tag, { className: "h-3 w-3 mr-1" }), tag] }, tag))) }) })] })] }) })] }), jsx(PageFooter, { variant: "minimal", children: jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center", children: jsx("p", { className: "text-gray-600 dark:text-gray-400", children: "\u00A9 2024 Blog. All rights reserved." }) }) })] }));
|
|
50
50
|
|
|
51
51
|
export { BlogPostExample, LandingPageExample, ProductPageExample };
|
|
52
52
|
//# sourceMappingURL=PageLayoutExamples.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageLayoutExamples.js","sources":["../../../src/components/PageLayout/PageLayoutExamples.tsx"],"sourcesContent":["import React from 'react';\nimport { \n PageLayout, \n PageHeader, \n PageHero, \n PageContent, \n PageSidebar, \n PageFooter,\n PageLayoutContent\n} from './PageLayout';\nimport { Button } from '../Button';\nimport { Card, CardHeader, CardTitle, CardContent } from '../Card';\nimport { Badge } from '../Badge';\nimport { Input } from '../Input';\nimport { Avatar, AvatarImage, AvatarFallback } from '../Avatar';\nimport { \n Star, \n ShoppingCart, \n Heart, \n Share2, \n Calendar,\n User,\n Tag,\n ArrowRight,\n CheckCircle,\n Globe,\n Mail,\n Phone\n} from 'lucide-react';\n\n/**\n * Landing Page Example\n * Features: Hero section, feature highlights, CTA sections\n */\nexport const LandingPageExample: React.FC = () => (\n <PageLayout variant=\"landing\" maxWidth=\"full\">\n {/* Header */}\n <PageHeader sticky transparent>\n <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8\">\n <div className=\"flex items-center justify-between h-16\">\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 <Globe className=\"h-5 w-5 text-white\" />\n </div>\n <span className=\"font-bold text-xl text-gray-900\">Beyond</span>\n </div>\n <nav className=\"hidden md:flex items-center space-x-8\">\n <a href=\"#features\" className=\"text-gray-700 hover:text-primary-600\">Features</a>\n <a href=\"#pricing\" className=\"text-gray-700 hover:text-primary-600\">Pricing</a>\n <a href=\"#about\" className=\"text-gray-700 hover:text-primary-600\">About</a>\n <Button variant=\"primary\">Get Started</Button>\n </nav>\n </div>\n </div>\n </PageHeader>\n\n {/* Hero Section */}\n <PageHero fullHeight>\n <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center\">\n <div className=\"max-w-3xl mx-auto\">\n <h1 className=\"text-4xl md:text-6xl font-bold text-gray-900 mb-6\">\n Build Amazing\n <span className=\"text-primary-600\"> Web Experiences</span>\n </h1>\n <p className=\"text-xl text-gray-600 mb-8 leading-relaxed\">\n Create stunning, responsive websites with our comprehensive UI component library. \n Built for developers, designed for users.\n </p>\n <div className=\"flex flex-col sm:flex-row gap-4 justify-center\">\n <Button variant=\"primary\" size=\"lg\" className=\"px-8\">\n Start Building\n <ArrowRight className=\"ml-2 h-5 w-5\" />\n </Button>\n <Button variant=\"outline\" size=\"lg\" className=\"px-8\">\n View Components\n </Button>\n </div>\n </div>\n </div>\n </PageHero>\n\n {/* Features Section */}\n <PageLayoutContent layout=\"centered\" spacing=\"xl\">\n <section id=\"features\" className=\"py-16\">\n <div className=\"text-center mb-16\">\n <h2 className=\"text-3xl font-bold text-gray-900 mb-4\">\n Everything You Need\n </h2>\n <p className=\"text-xl text-gray-600 max-w-2xl mx-auto\">\n Comprehensive components, responsive design, and developer-friendly APIs\n </p>\n </div>\n \n <div className=\"grid grid-cols-1 md:grid-cols-3 gap-8\">\n {[\n {\n icon: <CheckCircle className=\"h-8 w-8 text-primary-600\" />,\n title: \"Production Ready\",\n description: \"Battle-tested components used by thousands of developers\"\n },\n {\n icon: <Globe className=\"h-8 w-8 text-primary-600\" />,\n title: \"Responsive Design\",\n description: \"Mobile-first approach with perfect scaling across all devices\"\n },\n {\n icon: <Star className=\"h-8 w-8 text-primary-600\" />,\n title: \"Premium Quality\",\n description: \"Carefully crafted with attention to detail and user experience\"\n }\n ].map((feature, index) => (\n <Card key={index} className=\"text-center p-8\">\n <div className=\"flex justify-center mb-4\">\n {feature.icon}\n </div>\n <h3 className=\"text-xl font-semibold text-gray-900 mb-3\">\n {feature.title}\n </h3>\n <p className=\"text-gray-600\">\n {feature.description}\n </p>\n </Card>\n ))}\n </div>\n </section>\n </PageLayoutContent>\n\n {/* Footer */}\n <PageFooter variant=\"detailed\">\n <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8\">\n <div className=\"grid grid-cols-1 md:grid-cols-4 gap-8\">\n <div>\n <div className=\"flex items-center space-x-2 mb-4\">\n <Globe className=\"h-6 w-6 text-white\" />\n <span className=\"font-bold text-xl text-white\">Beyond</span>\n </div>\n <p className=\"text-gray-300\">\n Building the future of web development, one component at a time.\n </p>\n </div>\n <div>\n <h4 className=\"font-semibold text-white mb-4\">Product</h4>\n <ul className=\"space-y-2 text-gray-300\">\n <li><a href=\"#\" className=\"hover:text-white\">Components</a></li>\n <li><a href=\"#\" className=\"hover:text-white\">Templates</a></li>\n <li><a href=\"#\" className=\"hover:text-white\">Documentation</a></li>\n </ul>\n </div>\n <div>\n <h4 className=\"font-semibold text-white mb-4\">Company</h4>\n <ul className=\"space-y-2 text-gray-300\">\n <li><a href=\"#\" className=\"hover:text-white\">About</a></li>\n <li><a href=\"#\" className=\"hover:text-white\">Blog</a></li>\n <li><a href=\"#\" className=\"hover:text-white\">Careers</a></li>\n </ul>\n </div>\n <div>\n <h4 className=\"font-semibold text-white mb-4\">Contact</h4>\n <div className=\"space-y-2 text-gray-300\">\n <div className=\"flex items-center space-x-2\">\n <Mail className=\"h-4 w-4\" />\n <span>hello@beyond.com</span>\n </div>\n <div className=\"flex items-center space-x-2\">\n <Phone className=\"h-4 w-4\" />\n <span>+1 (555) 123-4567</span>\n </div>\n </div>\n </div>\n </div>\n <div className=\"border-t border-gray-700 mt-8 pt-8 text-center text-gray-300\">\n <p>© 2024 Beyond. All rights reserved.</p>\n </div>\n </div>\n </PageFooter>\n </PageLayout>\n);\n\n/**\n * Product Page Example\n * Features: Product showcase, specifications, reviews\n */\nexport const ProductPageExample: React.FC = () => (\n <PageLayout variant=\"product\" maxWidth=\"xl\">\n {/* Header */}\n <PageHeader>\n <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8\">\n <div className=\"flex items-center justify-between h-16\">\n <div className=\"flex items-center space-x-2\">\n <ShoppingCart className=\"h-6 w-6 text-primary-600\" />\n <span className=\"font-bold text-xl\">Store</span>\n </div>\n <div className=\"flex items-center space-x-4\">\n <Input placeholder=\"Search products...\" className=\"w-64\" />\n <Button variant=\"outline\">Cart (2)</Button>\n </div>\n </div>\n </div>\n </PageHeader>\n\n {/* Product Content */}\n <PageLayoutContent layout=\"centered\" spacing=\"lg\">\n <div className=\"grid grid-cols-1 lg:grid-cols-2 gap-12\">\n {/* Product Images */}\n <div>\n <div className=\"aspect-square bg-gray-100 rounded-lg mb-4 flex items-center justify-center\">\n <div className=\"text-center text-gray-500\">\n <ShoppingCart className=\"h-16 w-16 mx-auto mb-2\" />\n <p>Product Image</p>\n </div>\n </div>\n <div className=\"grid grid-cols-4 gap-2\">\n {[1, 2, 3, 4].map((i) => (\n <div key={i} className=\"aspect-square bg-gray-100 rounded border-2 border-transparent hover:border-primary-500 cursor-pointer\" />\n ))}\n </div>\n </div>\n\n {/* Product Details */}\n <div>\n <div className=\"flex items-center space-x-2 mb-2\">\n <Badge variant=\"success\">In Stock</Badge>\n <Badge variant=\"outline\">Free Shipping</Badge>\n </div>\n \n <h1 className=\"text-3xl font-bold text-gray-900 mb-4\">\n Premium Wireless Headphones\n </h1>\n \n <div className=\"flex items-center space-x-2 mb-4\">\n <div className=\"flex items-center\">\n {[1, 2, 3, 4, 5].map((star) => (\n <Star key={star} className=\"h-5 w-5 text-yellow-400 fill-current\" />\n ))}\n </div>\n <span className=\"text-gray-600\">(128 reviews)</span>\n </div>\n\n <div className=\"mb-6\">\n <span className=\"text-3xl font-bold text-gray-900\">$299.99</span>\n <span className=\"text-lg text-gray-500 line-through ml-2\">$399.99</span>\n <Badge variant=\"danger\" className=\"ml-2\">25% OFF</Badge>\n </div>\n\n <p className=\"text-gray-600 mb-6 leading-relaxed\">\n Experience premium sound quality with our latest wireless headphones. \n Featuring active noise cancellation, 30-hour battery life, and premium materials.\n </p>\n\n <div className=\"space-y-4 mb-8\">\n <div>\n <label className=\"block text-sm font-medium text-gray-700 mb-2\">Color</label>\n <div className=\"flex space-x-2\">\n {['Black', 'White', 'Blue'].map((color) => (\n <button\n key={color}\n className=\"px-4 py-2 border border-gray-300 rounded-lg hover:border-primary-500 focus:border-primary-500\"\n >\n {color}\n </button>\n ))}\n </div>\n </div>\n </div>\n\n <div className=\"flex space-x-4 mb-6\">\n <Button variant=\"primary\" size=\"lg\" className=\"flex-1\">\n <ShoppingCart className=\"mr-2 h-5 w-5\" />\n Add to Cart\n </Button>\n <Button variant=\"outline\" size=\"lg\">\n <Heart className=\"h-5 w-5\" />\n </Button>\n <Button variant=\"outline\" size=\"lg\">\n <Share2 className=\"h-5 w-5\" />\n </Button>\n </div>\n\n <div className=\"border-t pt-6\">\n <h3 className=\"font-semibold text-gray-900 mb-3\">Key Features</h3>\n <ul className=\"space-y-2 text-gray-600\">\n <li className=\"flex items-center\">\n <CheckCircle className=\"h-4 w-4 text-green-500 mr-2\" />\n Active Noise Cancellation\n </li>\n <li className=\"flex items-center\">\n <CheckCircle className=\"h-4 w-4 text-green-500 mr-2\" />\n 30-Hour Battery Life\n </li>\n <li className=\"flex items-center\">\n <CheckCircle className=\"h-4 w-4 text-green-500 mr-2\" />\n Premium Build Quality\n </li>\n </ul>\n </div>\n </div>\n </div>\n </PageLayoutContent>\n\n {/* Footer */}\n <PageFooter variant=\"simple\">\n <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center\">\n <p className=\"text-gray-600\">© 2024 Store. All rights reserved.</p>\n </div>\n </PageFooter>\n </PageLayout>\n);\n\n/**\n * Blog Post Example\n * Features: Article content with sidebar, author info, related posts\n */\nexport const BlogPostExample: React.FC = () => (\n <PageLayout variant=\"blog\" maxWidth=\"xl\">\n {/* Header */}\n <PageHeader>\n <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8\">\n <div className=\"flex items-center justify-between h-16\">\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 <User className=\"h-5 w-5 text-white\" />\n </div>\n <span className=\"font-bold text-xl\">Blog</span>\n </div>\n <nav className=\"flex items-center space-x-6\">\n <a href=\"#\" className=\"text-gray-700 hover:text-primary-600\">Home</a>\n <a href=\"#\" className=\"text-gray-700 hover:text-primary-600\">Categories</a>\n <a href=\"#\" className=\"text-gray-700 hover:text-primary-600\">About</a>\n </nav>\n </div>\n </div>\n </PageHeader>\n\n {/* Blog Content with Sidebar */}\n <PageLayoutContent layout=\"sidebar\" spacing=\"lg\">\n {/* Main Content */}\n <PageContent maxWidth=\"full\" className=\"lg:flex-1\">\n <article className=\"prose prose-lg max-w-none\">\n <header className=\"mb-8\">\n <div className=\"flex items-center space-x-2 mb-4\">\n <Badge variant=\"default\">Technology</Badge>\n <Badge variant=\"outline\">React</Badge>\n </div>\n \n <h1 className=\"text-4xl font-bold text-gray-900 mb-4\">\n Building Modern Web Applications with React and TypeScript\n </h1>\n \n <div className=\"flex items-center space-x-4 text-gray-600 mb-6\">\n <div className=\"flex items-center space-x-2\">\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 <span>John Doe</span>\n </div>\n <div className=\"flex items-center space-x-1\">\n <Calendar className=\"h-4 w-4\" />\n <span>March 15, 2024</span>\n </div>\n <span>8 min read</span>\n </div>\n </header>\n\n <div className=\"aspect-video bg-gray-100 rounded-lg mb-8 flex items-center justify-center\">\n <div className=\"text-center text-gray-500\">\n <Globe className=\"h-16 w-16 mx-auto mb-2\" />\n <p>Featured Image</p>\n </div>\n </div>\n\n <div className=\"space-y-6 text-gray-700 leading-relaxed\">\n <p>\n Modern web development has evolved significantly over the past few years. \n With the introduction of React and TypeScript, developers now have powerful \n tools to build scalable, maintainable applications.\n </p>\n \n <p>\n In this comprehensive guide, we'll explore the best practices for building \n modern web applications using React and TypeScript. We'll cover everything \n from project setup to deployment strategies.\n </p>\n\n <h2 className=\"text-2xl font-bold text-gray-900 mt-8 mb-4\">\n Getting Started\n </h2>\n \n <p>\n The first step in building any React application is setting up your \n development environment. We recommend using Create React App with \n TypeScript template for beginners.\n </p>\n\n <div className=\"bg-gray-50 p-6 rounded-lg border-l-4 border-primary-500\">\n <p className=\"font-medium text-gray-900 mb-2\">Pro Tip:</p>\n <p className=\"text-gray-700\">\n Always start with a solid project structure. This will save you \n countless hours as your application grows.\n </p>\n </div>\n </div>\n </article>\n\n {/* Author Bio */}\n <div className=\"mt-12 p-6 bg-gray-50 rounded-lg\">\n <div className=\"flex items-start space-x-4\">\n <Avatar size=\"lg\">\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 <h3 className=\"font-semibold text-gray-900 mb-2\">John Doe</h3>\n <p className=\"text-gray-600 mb-3\">\n Senior Frontend Developer with 8+ years of experience building \n scalable web applications. Passionate about React, TypeScript, \n and modern web technologies.\n </p>\n <div className=\"flex space-x-4\">\n <Button variant=\"outline\" size=\"sm\">Follow</Button>\n <Button variant=\"ghost\" size=\"sm\">\n <Mail className=\"h-4 w-4\" />\n </Button>\n </div>\n </div>\n </div>\n </div>\n </PageContent>\n\n {/* Sidebar */}\n <PageSidebar position=\"right\" width=\"md\">\n <div className=\"space-y-6\">\n {/* Search */}\n <Card>\n <CardHeader>\n <CardTitle>Search</CardTitle>\n </CardHeader>\n <CardContent>\n <Input placeholder=\"Search articles...\" />\n </CardContent>\n </Card>\n\n {/* Categories */}\n <Card>\n <CardHeader>\n <CardTitle>Categories</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-2\">\n {[\n { name: 'Technology', count: 24 },\n { name: 'React', count: 18 },\n { name: 'TypeScript', count: 12 },\n { name: 'Web Design', count: 8 },\n ].map((category) => (\n <div key={category.name} className=\"flex items-center justify-between\">\n <a href=\"#\" className=\"text-gray-700 hover:text-primary-600\">\n {category.name}\n </a>\n <Badge variant=\"outline\">{category.count}</Badge>\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n\n {/* Recent Posts */}\n <Card>\n <CardHeader>\n <CardTitle>Recent Posts</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-4\">\n {[\n 'Getting Started with Next.js',\n 'CSS Grid vs Flexbox: When to Use Each',\n 'Building Accessible Web Components',\n ].map((title, index) => (\n <div key={index}>\n <a href=\"#\" className=\"text-gray-900 hover:text-primary-600 font-medium block mb-1\">\n {title}\n </a>\n <p className=\"text-sm text-gray-500\">March {10 + index}, 2024</p>\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n\n {/* Tags */}\n <Card>\n <CardHeader>\n <CardTitle>Tags</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"flex flex-wrap gap-2\">\n {['React', 'TypeScript', 'JavaScript', 'CSS', 'HTML', 'Node.js', 'GraphQL'].map((tag) => (\n <Badge key={tag} variant=\"outline\" className=\"cursor-pointer hover:bg-primary-50\">\n <Tag className=\"h-3 w-3 mr-1\" />\n {tag}\n </Badge>\n ))}\n </div>\n </CardContent>\n </Card>\n </div>\n </PageSidebar>\n </PageLayoutContent>\n\n {/* Footer */}\n <PageFooter variant=\"minimal\">\n <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center\">\n <p className=\"text-gray-600\">© 2024 Blog. All rights reserved.</p>\n </div>\n </PageFooter>\n </PageLayout>\n);"],"names":["_jsxs","_jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PageLayoutExamples.js","sources":["../../../src/components/PageLayout/PageLayoutExamples.tsx"],"sourcesContent":["import React from 'react';\nimport { \n PageLayout, \n PageHeader, \n PageHero, \n PageContent, \n PageSidebar, \n PageFooter,\n PageLayoutContent\n} from './PageLayout';\nimport { Button } from '../Button';\nimport { Card, CardHeader, CardTitle, CardContent } from '../Card';\nimport { Badge } from '../Badge';\nimport { Input } from '../Input';\nimport { Avatar, AvatarImage, AvatarFallback } from '../Avatar';\nimport { \n Star, \n ShoppingCart, \n Heart, \n Share2, \n Calendar,\n User,\n Tag,\n ArrowRight,\n CheckCircle,\n Globe,\n Mail,\n Phone\n} from 'lucide-react';\n\n/**\n * Landing Page Example\n * Features: Hero section, feature highlights, CTA sections\n */\nexport const LandingPageExample: React.FC = () => (\n <PageLayout variant=\"landing\" maxWidth=\"full\">\n {/* Header */}\n <PageHeader sticky transparent>\n <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8\">\n <div className=\"flex items-center justify-between h-16\">\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 <Globe className=\"h-5 w-5 text-white\" />\n </div>\n <span className=\"font-bold text-xl text-gray-900 dark:text-white\">Beyond</span>\n </div>\n <nav className=\"hidden md:flex items-center space-x-8\">\n <a href=\"#features\" className=\"text-gray-700 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400\">Features</a>\n <a href=\"#pricing\" className=\"text-gray-700 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400\">Pricing</a>\n <a href=\"#about\" className=\"text-gray-700 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400\">About</a>\n <Button variant=\"primary\">Get Started</Button>\n </nav>\n </div>\n </div>\n </PageHeader>\n\n {/* Hero Section */}\n <PageHero fullHeight>\n <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center\">\n <div className=\"max-w-3xl mx-auto\">\n <h1 className=\"text-4xl md:text-6xl font-bold text-gray-900 dark:text-white mb-6\">\n Build Amazing\n <span className=\"text-primary-600 dark:text-primary-400\"> Web Experiences</span>\n </h1>\n <p className=\"text-xl text-gray-600 dark:text-gray-400 mb-8 leading-relaxed\">\n Create stunning, responsive websites with our comprehensive UI component library. \n Built for developers, designed for users.\n </p>\n <div className=\"flex flex-col sm:flex-row gap-4 justify-center\">\n <Button variant=\"primary\" size=\"lg\" className=\"px-8\">\n Start Building\n <ArrowRight className=\"ml-2 h-5 w-5\" />\n </Button>\n <Button variant=\"outline\" size=\"lg\" className=\"px-8\">\n View Components\n </Button>\n </div>\n </div>\n </div>\n </PageHero>\n\n {/* Features Section */}\n <PageLayoutContent layout=\"centered\" spacing=\"xl\">\n <section id=\"features\" className=\"py-16\">\n <div className=\"text-center mb-16\">\n <h2 className=\"text-3xl font-bold text-gray-900 dark:text-white mb-4\">\n Everything You Need\n </h2>\n <p className=\"text-xl text-gray-600 dark:text-gray-400 max-w-2xl mx-auto\">\n Comprehensive components, responsive design, and developer-friendly APIs\n </p>\n </div>\n \n <div className=\"grid grid-cols-1 md:grid-cols-3 gap-8\">\n {[\n {\n icon: <CheckCircle className=\"h-8 w-8 text-primary-600\" />,\n title: \"Production Ready\",\n description: \"Battle-tested components used by thousands of developers\"\n },\n {\n icon: <Globe className=\"h-8 w-8 text-primary-600\" />,\n title: \"Responsive Design\",\n description: \"Mobile-first approach with perfect scaling across all devices\"\n },\n {\n icon: <Star className=\"h-8 w-8 text-primary-600\" />,\n title: \"Premium Quality\",\n description: \"Carefully crafted with attention to detail and user experience\"\n }\n ].map((feature, index) => (\n <Card key={index} className=\"text-center p-8\">\n <div className=\"flex justify-center mb-4\">\n {feature.icon}\n </div>\n <h3 className=\"text-xl font-semibold text-gray-900 dark:text-white mb-3\">\n {feature.title}\n </h3>\n <p className=\"text-gray-600 dark:text-gray-400\">\n {feature.description}\n </p>\n </Card>\n ))}\n </div>\n </section>\n </PageLayoutContent>\n\n {/* Footer */}\n <PageFooter variant=\"detailed\">\n <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8\">\n <div className=\"grid grid-cols-1 md:grid-cols-4 gap-8\">\n <div>\n <div className=\"flex items-center space-x-2 mb-4\">\n <Globe className=\"h-6 w-6 text-white\" />\n <span className=\"font-bold text-xl text-white\">Beyond</span>\n </div>\n <p className=\"text-gray-300\">\n Building the future of web development, one component at a time.\n </p>\n </div>\n <div>\n <h4 className=\"font-semibold text-white mb-4\">Product</h4>\n <ul className=\"space-y-2 text-gray-300\">\n <li><a href=\"#\" className=\"hover:text-white\">Components</a></li>\n <li><a href=\"#\" className=\"hover:text-white\">Templates</a></li>\n <li><a href=\"#\" className=\"hover:text-white\">Documentation</a></li>\n </ul>\n </div>\n <div>\n <h4 className=\"font-semibold text-white mb-4\">Company</h4>\n <ul className=\"space-y-2 text-gray-300\">\n <li><a href=\"#\" className=\"hover:text-white\">About</a></li>\n <li><a href=\"#\" className=\"hover:text-white\">Blog</a></li>\n <li><a href=\"#\" className=\"hover:text-white\">Careers</a></li>\n </ul>\n </div>\n <div>\n <h4 className=\"font-semibold text-white mb-4\">Contact</h4>\n <div className=\"space-y-2 text-gray-300\">\n <div className=\"flex items-center space-x-2\">\n <Mail className=\"h-4 w-4\" />\n <span>hello@beyond.com</span>\n </div>\n <div className=\"flex items-center space-x-2\">\n <Phone className=\"h-4 w-4\" />\n <span>+1 (555) 123-4567</span>\n </div>\n </div>\n </div>\n </div>\n <div className=\"border-t border-gray-700 mt-8 pt-8 text-center text-gray-300\">\n <p>© 2024 Beyond. All rights reserved.</p>\n </div>\n </div>\n </PageFooter>\n </PageLayout>\n);\n\n/**\n * Product Page Example\n * Features: Product showcase, specifications, reviews\n */\nexport const ProductPageExample: React.FC = () => (\n <PageLayout variant=\"product\" maxWidth=\"xl\">\n {/* Header */}\n <PageHeader>\n <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8\">\n <div className=\"flex items-center justify-between h-16\">\n <div className=\"flex items-center space-x-2\">\n <ShoppingCart className=\"h-6 w-6 text-primary-600\" />\n <span className=\"font-bold text-xl dark:text-white\">Store</span>\n </div>\n <div className=\"flex items-center space-x-4\">\n <Input placeholder=\"Search products...\" className=\"w-64\" />\n <Button variant=\"outline\">Cart (2)</Button>\n </div>\n </div>\n </div>\n </PageHeader>\n\n {/* Product Content */}\n <PageLayoutContent layout=\"centered\" spacing=\"lg\">\n <div className=\"grid grid-cols-1 lg:grid-cols-2 gap-12\">\n {/* Product Images */}\n <div>\n <div className=\"aspect-square bg-gray-100 dark:bg-gray-800 rounded-lg mb-4 flex items-center justify-center\">\n <div className=\"text-center text-gray-500 dark:text-gray-400\">\n <ShoppingCart className=\"h-16 w-16 mx-auto mb-2\" />\n <p>Product Image</p>\n </div>\n </div>\n <div className=\"grid grid-cols-4 gap-2\">\n {[1, 2, 3, 4].map((i) => (\n <div key={i} className=\"aspect-square bg-gray-100 dark:bg-gray-800 rounded border-2 border-transparent hover:border-primary-500 cursor-pointer\" />\n ))}\n </div>\n </div>\n\n {/* Product Details */}\n <div>\n <div className=\"flex items-center space-x-2 mb-2\">\n <Badge variant=\"success\">In Stock</Badge>\n <Badge variant=\"outline\">Free Shipping</Badge>\n </div>\n \n <h1 className=\"text-3xl font-bold text-gray-900 dark:text-white mb-4\">\n Premium Wireless Headphones\n </h1>\n \n <div className=\"flex items-center space-x-2 mb-4\">\n <div className=\"flex items-center\">\n {[1, 2, 3, 4, 5].map((star) => (\n <Star key={star} className=\"h-5 w-5 text-yellow-400 fill-current\" />\n ))}\n </div>\n <span className=\"text-gray-600 dark:text-gray-400\">(128 reviews)</span>\n </div>\n\n <div className=\"mb-6\">\n <span className=\"text-3xl font-bold text-gray-900 dark:text-white\">$299.99</span>\n <span className=\"text-lg text-gray-500 dark:text-gray-400 line-through ml-2\">$399.99</span>\n <Badge variant=\"danger\" className=\"ml-2\">25% OFF</Badge>\n </div>\n\n <p className=\"text-gray-600 dark:text-gray-400 mb-6 leading-relaxed\">\n Experience premium sound quality with our latest wireless headphones. \n Featuring active noise cancellation, 30-hour battery life, and premium materials.\n </p>\n\n <div className=\"space-y-4 mb-8\">\n <div>\n <label className=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2\">Color</label>\n <div className=\"flex space-x-2\">\n {['Black', 'White', 'Blue'].map((color) => (\n <button\n key={color}\n className=\"px-4 py-2 border border-gray-300 dark:border-gray-700 dark:text-gray-200 rounded-lg hover:border-primary-500 dark:hover:border-primary-400 focus:border-primary-500\"\n >\n {color}\n </button>\n ))}\n </div>\n </div>\n </div>\n\n <div className=\"flex space-x-4 mb-6\">\n <Button variant=\"primary\" size=\"lg\" className=\"flex-1\">\n <ShoppingCart className=\"mr-2 h-5 w-5\" />\n Add to Cart\n </Button>\n <Button variant=\"outline\" size=\"lg\">\n <Heart className=\"h-5 w-5\" />\n </Button>\n <Button variant=\"outline\" size=\"lg\">\n <Share2 className=\"h-5 w-5\" />\n </Button>\n </div>\n\n <div className=\"border-t dark:border-gray-800 pt-6\">\n <h3 className=\"font-semibold text-gray-900 dark:text-white mb-3\">Key Features</h3>\n <ul className=\"space-y-2 text-gray-600 dark:text-gray-400\">\n <li className=\"flex items-center\">\n <CheckCircle className=\"h-4 w-4 text-green-500 mr-2\" />\n Active Noise Cancellation\n </li>\n <li className=\"flex items-center\">\n <CheckCircle className=\"h-4 w-4 text-green-500 mr-2\" />\n 30-Hour Battery Life\n </li>\n <li className=\"flex items-center\">\n <CheckCircle className=\"h-4 w-4 text-green-500 mr-2\" />\n Premium Build Quality\n </li>\n </ul>\n </div>\n </div>\n </div>\n </PageLayoutContent>\n\n {/* Footer */}\n <PageFooter variant=\"simple\">\n <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center\">\n <p className=\"text-gray-600 dark:text-gray-400\">© 2024 Store. All rights reserved.</p>\n </div>\n </PageFooter>\n </PageLayout>\n);\n\n/**\n * Blog Post Example\n * Features: Article content with sidebar, author info, related posts\n */\nexport const BlogPostExample: React.FC = () => (\n <PageLayout variant=\"blog\" maxWidth=\"xl\">\n {/* Header */}\n <PageHeader>\n <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8\">\n <div className=\"flex items-center justify-between h-16\">\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 <User className=\"h-5 w-5 text-white\" />\n </div>\n <span className=\"font-bold text-xl dark:text-white\">Blog</span>\n </div>\n <nav className=\"flex items-center space-x-6\">\n <a href=\"#\" className=\"text-gray-700 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400\">Home</a>\n <a href=\"#\" className=\"text-gray-700 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400\">Categories</a>\n <a href=\"#\" className=\"text-gray-700 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400\">About</a>\n </nav>\n </div>\n </div>\n </PageHeader>\n\n {/* Blog Content with Sidebar */}\n <PageLayoutContent layout=\"sidebar\" spacing=\"lg\">\n {/* Main Content */}\n <PageContent maxWidth=\"full\" className=\"lg:flex-1\">\n <article className=\"prose prose-lg dark:prose-invert max-w-none text-gray-700 dark:text-gray-300\">\n <header className=\"mb-8\">\n <div className=\"flex items-center space-x-2 mb-4\">\n <Badge variant=\"default\">Technology</Badge>\n <Badge variant=\"outline\">React</Badge>\n </div>\n \n <h1 className=\"text-4xl font-bold text-gray-900 dark:text-white mb-4\">\n Building Modern Web Applications with React and TypeScript\n </h1>\n \n <div className=\"flex items-center space-x-4 text-gray-600 dark:text-gray-400 mb-6\">\n <div className=\"flex items-center space-x-2\">\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 <span>John Doe</span>\n </div>\n <div className=\"flex items-center space-x-1\">\n <Calendar className=\"h-4 w-4\" />\n <span>March 15, 2024</span>\n </div>\n <span>8 min read</span>\n </div>\n </header>\n\n <div className=\"aspect-video bg-gray-100 dark:bg-gray-800 rounded-lg mb-8 flex items-center justify-center\">\n <div className=\"text-center text-gray-500 dark:text-gray-400\">\n <Globe className=\"h-16 w-16 mx-auto mb-2\" />\n <p>Featured Image</p>\n </div>\n </div>\n\n <div className=\"space-y-6 text-gray-700 dark:text-gray-300 leading-relaxed\">\n <p>\n Modern web development has evolved significantly over the past few years. \n With the introduction of React and TypeScript, developers now have powerful \n tools to build scalable, maintainable applications.\n </p>\n \n <p>\n In this comprehensive guide, we'll explore the best practices for building \n modern web applications using React and TypeScript. We'll cover everything \n from project setup to deployment strategies.\n </p>\n\n <h2 className=\"text-2xl font-bold text-gray-900 dark:text-white mt-8 mb-4\">\n Getting Started\n </h2>\n \n <p>\n The first step in building any React application is setting up your \n development environment. We recommend using Create React App with \n TypeScript template for beginners.\n </p>\n\n <div className=\"bg-gray-50 dark:bg-gray-800/50 p-6 rounded-lg border-l-4 border-primary-500 dark:border-primary-400\">\n <p className=\"font-medium text-gray-900 dark:text-white mb-2\">Pro Tip:</p>\n <p className=\"text-gray-700 dark:text-gray-300\">\n Always start with a solid project structure. This will save you \n countless hours as your application grows.\n </p>\n </div>\n </div>\n </article>\n\n {/* Author Bio */}\n <div className=\"mt-12 p-6 bg-gray-50 dark:bg-gray-800/50 rounded-lg\">\n <div className=\"flex items-start space-x-4\">\n <Avatar size=\"lg\">\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 <h3 className=\"font-semibold text-gray-900 dark:text-white mb-2\">John Doe</h3>\n <p className=\"text-gray-600 dark:text-gray-400 mb-3\">\n Senior Frontend Developer with 8+ years of experience building \n scalable web applications. Passionate about React, TypeScript, \n and modern web technologies.\n </p>\n <div className=\"flex space-x-4\">\n <Button variant=\"outline\" size=\"sm\">Follow</Button>\n <Button variant=\"ghost\" size=\"sm\">\n <Mail className=\"h-4 w-4\" />\n </Button>\n </div>\n </div>\n </div>\n </div>\n </PageContent>\n\n {/* Sidebar */}\n <PageSidebar position=\"right\" width=\"md\">\n <div className=\"space-y-6\">\n {/* Search */}\n <Card>\n <CardHeader>\n <CardTitle>Search</CardTitle>\n </CardHeader>\n <CardContent>\n <Input placeholder=\"Search articles...\" />\n </CardContent>\n </Card>\n\n {/* Categories */}\n <Card>\n <CardHeader>\n <CardTitle>Categories</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-2\">\n {[\n { name: 'Technology', count: 24 },\n { name: 'React', count: 18 },\n { name: 'TypeScript', count: 12 },\n { name: 'Web Design', count: 8 },\n ].map((category) => (\n <div key={category.name} className=\"flex items-center justify-between\">\n <a href=\"#\" className=\"text-gray-700 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400\">\n {category.name}\n </a>\n <Badge variant=\"outline\">{category.count}</Badge>\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n\n {/* Recent Posts */}\n <Card>\n <CardHeader>\n <CardTitle>Recent Posts</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-4\">\n {[\n 'Getting Started with Next.js',\n 'CSS Grid vs Flexbox: When to Use Each',\n 'Building Accessible Web Components',\n ].map((title, index) => (\n <div key={index}>\n <a href=\"#\" className=\"text-gray-900 dark:text-white hover:text-primary-600 dark:hover:text-primary-400 font-medium block mb-1\">\n {title}\n </a>\n <p className=\"text-sm text-gray-500 dark:text-gray-400\">March {10 + index}, 2024</p>\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n\n {/* Tags */}\n <Card>\n <CardHeader>\n <CardTitle>Tags</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"flex flex-wrap gap-2\">\n {['React', 'TypeScript', 'JavaScript', 'CSS', 'HTML', 'Node.js', 'GraphQL'].map((tag) => (\n <Badge key={tag} variant=\"outline\" className=\"cursor-pointer hover:bg-primary-50 dark:hover:bg-primary-900/30\">\n <Tag className=\"h-3 w-3 mr-1\" />\n {tag}\n </Badge>\n ))}\n </div>\n </CardContent>\n </Card>\n </div>\n </PageSidebar>\n </PageLayoutContent>\n\n {/* Footer */}\n <PageFooter variant=\"minimal\">\n <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center\">\n <p className=\"text-gray-600 dark:text-gray-400\">© 2024 Blog. All rights reserved.</p>\n </div>\n </PageFooter>\n </PageLayout>\n);"],"names":["_jsxs","_jsx"],"mappings":"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"}
|