Initial commit: igny8 project

This commit is contained in:
igny8
2025-11-09 10:27:02 +00:00
commit 60b8188111
27265 changed files with 4360521 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
/**
* Shared Action Snippets
* Common action button definitions for data tables
*/
export const commonActions = [
{ key: 'view', label: 'View', icon: 'Eye' },
{ key: 'edit', label: 'Edit', icon: 'Edit' },
{ key: 'delete', label: 'Delete', icon: 'Trash' },
];
export const keywordActions = [
{ key: 'edit', label: 'Edit', icon: 'Edit' },
{ key: 'delete', label: 'Delete', icon: 'Trash' },
];
export const taskActions = [
{ key: 'view', label: 'View', icon: 'Eye' },
{ key: 'edit', label: 'Edit', icon: 'Edit' },
{ key: 'generate', label: 'Generate', icon: 'Magic' },
{ key: 'publish', label: 'Publish', icon: 'Send' },
{ key: 'delete', label: 'Delete', icon: 'Trash' },
];
export const bulkActions = {
updateStatus: { key: 'update_status', label: 'Update Status' },
delete: { key: 'delete', label: 'Delete' },
assignCluster: { key: 'assign_cluster', label: 'Assign Cluster' },
export: { key: 'export', label: 'Export CSV' },
};

View File

@@ -0,0 +1,97 @@
/**
* Shared Column Snippets
* Reusable column definitions for data tables
*/
export const titleColumn = {
key: 'title',
label: 'Title',
sortable: true,
width: 'auto',
};
export const keywordColumn = {
key: 'keyword',
label: 'Keyword',
sortable: true,
width: 'auto',
};
export const statusColumn = {
key: 'status',
label: 'Status',
sortable: true,
badge: true,
width: '120px',
};
export const volumeColumn = {
key: 'volume',
label: 'Volume',
sortable: true,
numeric: true,
width: '100px',
};
export const difficultyColumn = {
key: 'difficulty',
label: 'Difficulty',
sortable: true,
badge: true,
width: '120px',
};
export const intentColumn = {
key: 'intent',
label: 'Intent',
sortable: true,
badge: true,
width: '120px',
};
export const clusterColumn = {
key: 'cluster',
label: 'Cluster',
sortable: true,
width: '200px',
};
export const createdColumn = {
key: 'created_at',
label: 'Created',
sortable: true,
date: true,
width: '150px',
};
export const updatedColumn = {
key: 'updated_at',
label: 'Updated',
sortable: true,
date: true,
width: '150px',
};
export const actionsColumn = {
key: 'actions',
label: 'Actions',
sortable: false,
width: '100px',
fixed: true,
};
export const wordCountColumn = {
key: 'word_count',
label: 'Word Count',
sortable: true,
numeric: true,
width: '120px',
};
export const sectorColumn = {
key: 'sector_name',
label: 'Sector',
sortable: false,
width: '150px',
};

View File

@@ -0,0 +1,73 @@
/**
* Shared Filter Snippets
* Reusable filter definitions for data tables
*/
export const statusFilter = {
key: 'status',
label: 'Status',
type: 'select',
options: [
{ value: '', label: 'All Status' },
{ value: 'active', label: 'Active' },
{ value: 'pending', label: 'Pending' },
{ value: 'archived', label: 'Archived' },
],
};
export const intentFilter = {
key: 'intent',
label: 'Intent',
type: 'select',
options: [
{ value: '', label: 'All Intent' },
{ value: 'informational', label: 'Informational' },
{ value: 'transactional', label: 'Transactional' },
{ value: 'navigational', label: 'Navigational' },
{ value: 'commercial', label: 'Commercial' },
],
};
export const difficultyFilter = {
key: 'difficulty',
label: 'Difficulty',
type: 'select',
options: [
{ value: '', label: 'All Difficulty' },
{ value: '1', label: 'Very Easy (1)' },
{ value: '2', label: 'Easy (2)' },
{ value: '3', label: 'Medium (3)' },
{ value: '4', label: 'Hard (4)' },
{ value: '5', label: 'Very Hard (5)' },
],
};
export const dateRangeFilter = {
key: 'date_range',
label: 'Date Range',
type: 'daterange',
};
export const volumeRangeFilter = {
key: 'volume_range',
label: 'Volume Range',
type: 'range',
min: 0,
max: 100000,
step: 100,
};
export const searchFilter = {
key: 'search',
label: 'Search',
type: 'text',
placeholder: 'Search keywords...',
};
export const clusterFilter = {
key: 'cluster_id',
label: 'Cluster',
type: 'select',
options: [], // Will be populated dynamically
};

View File

@@ -0,0 +1,9 @@
/**
* Snippets Index
* Exports all shared snippets
*/
export * from './columns.snippets';
export * from './filters.snippets';
export * from './actions.snippets';