Refactors component structure, implements AnnotationSystem.tsx, and adds new components related to annotations and authors. Replit-Commit-Author: Agent Replit-Commit-Session-Id: cbacfb18-842a-4116-a907-18c0105ad8ec Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/39b5c689-6e8a-4d5a-9792-69cc81a56534/d1468a00-d93a-40b6-8ef2-3b7ba89b0f76.jpg
6.4 KiB
Tercul Component Structure
Overview
The component structure has been reorganized to improve maintainability, scalability, and code reuse. Components are organized by their domain and functionality.
Directory Structure
UI Components (/components/ui)
Basic, reusable UI components with minimal business logic. These serve as building blocks for more complex components.
-
Typography Components (
/components/ui/typography)- heading.tsx - For h1-h6 headings with consistent styling
- paragraph.tsx - For text content with various styles
- quote.tsx - For blockquotes and citations
- code-block.tsx - For code snippets
-
Data Display Components
- stat-card.tsx - For displaying statistics
- timeline.tsx - For chronological events visualization
- tree-view.tsx - For hierarchical data
- tag-cloud.tsx - For tag visualization
- file-viewer.tsx - For previewing documents
- code-highlighter.tsx - For syntax highlighting
-
Feedback Components
- empty-state.tsx - For when no data is available
- error-state.tsx - For error handling
- loading-spinner.tsx - For loading indicators
- status-indicator.tsx - For success/failure states
- confirmation-dialog.tsx - For user confirmations
-
Navigation Components
- stepper.tsx - For multi-step processes
- vertical-navigation.tsx - For side navigation
- breadcrumbs.tsx - For navigation trails
-
Form Components
- rich-text-editor.tsx - For content creation
- tag-input.tsx - For adding/managing tags
- date-range-picker.tsx - For date selection
- file-uploader.tsx - For file uploads
- multi-select.tsx - For multiple selections
- autocomplete.tsx - For search suggestions
- form-wizard.tsx - For multi-step forms
-
Layout Components
- grid.tsx - For grid layouts
- masonry.tsx - For pinterest-style layouts
- split-pane.tsx - For resizable panels
- spotlight.tsx - For featured content
- responsive-container.tsx - For responsive design
-
Specialized Components
- color-picker.tsx - For color selection
- rating.tsx - For rating inputs
- comparison-slider.tsx - For before/after comparisons
- share-buttons.tsx - For social sharing
- expandable-search.tsx - For search interfaces
- notification-badge.tsx - For alerts/notifications
Domain-Specific Components
Blog Components (/components/blog)
Components specific to the blog functionality.
- blog-editor.tsx - For creating/editing blog posts
- blog-preview.tsx - For displaying blog post cards
- tag-manager.tsx - For managing post tags
- publication-scheduler.tsx - For scheduling posts
- featured-post.tsx - For highlighting posts
Dashboard Components (/components/dashboard)
Components for the editorial dashboard.
- stats-card.tsx - For dashboard statistics
- activity-feed.tsx - For recent activities
- content-queue.tsx - For approval workflows
- stats-chart.tsx - For data visualization
- dashboard-header.tsx - For dashboard navigation
- role-badge.tsx - For user role indication
Work Components (/components/work)
Components for literary works management and display.
- work-editor.tsx - For creating/editing works
- work-header.tsx - For work metadata display
- work-status.tsx - For publication status
- related-works.tsx - For similar works
- comparison-view.tsx - For comparing translations
- EnhancedReadingView.tsx - Enhanced reading experience
- LineNumberedText.tsx - Text with line numbers
- EnhancedLineNumberedText.tsx - Advanced text display
- TranslationSelector.tsx - For selecting translations
- ReadingControls.tsx - Reading interface controls
- ReadingView.tsx - Main reading component
- WorkCard.tsx - Work preview card
Author Components (/components/authors)
Components for author profiles and management.
- author-editor.tsx - For creating/editing authors
- author-card.tsx - Author preview card
- author-header.tsx - Author profile header
- author-stats.tsx - Author statistics
- related-authors.tsx - Similar authors
- AuthorTimeline.tsx - Author timeline component
- AuthorChip.tsx - Small author reference
Comment Components (/components/comment)
Components for the comment system.
- comment-thread.tsx - Threaded comments
- comment-editor.tsx - For writing comments
- moderation-tools.tsx - For moderating comments
- comment-filters.tsx - For filtering comments
Annotation Components (/components/annotation)
Components for the annotation system.
- AnnotationSystem.tsx - Main annotation component
- annotation-editor.tsx - For creating annotations
- annotation-browser.tsx - For browsing annotations
- inline-form.tsx - For inline annotation creation
- annotation-filters.tsx - For filtering annotations
User Components (/components/user)
Components for user profiles and management.
- profile-card.tsx - User profile display
- user-avatar.tsx - User avatar with status
- reading-progress.tsx - Reading progress tracker
- bookmarks-manager.tsx - Bookmarks interface
- preferences-form.tsx - User settings
Search Components (/components/search)
Components for search functionality.
- SearchBar.tsx - Main search input
- advanced-search.tsx - Advanced search interface
- search-filters.tsx - Search filter controls
- results-toggle.tsx - Grid/list view toggle
- pagination.tsx - Result pagination
- sort-controls.tsx - Result sorting
- FilterSidebar.tsx - Sidebar with filters
Pattern Components (/components/patterns)
Reusable component patterns and combinations.
- empty-states.tsx - Empty state patterns
- modal-forms.tsx - Modal dialog forms
- action-toolbar.tsx - Action button groups
- filter-controls.tsx - Standardized filters
- card-grid.tsx - Grid of cards
Layout Components (/components/layout)
Components for page layout.
- PageLayout.tsx - Standard page wrapper
- DashboardLayout.tsx - Dashboard layout
- Footer.tsx - Site footer
- NavHeader.tsx - Navigation header
Implementation Status
Most components are currently empty placeholder files. The implementation priority should follow the order outlined in the COMPONENT-IMPLEMENTATION-PLAN.md document.
Key Benefits of This Structure
- Separation of Concerns: UI components are separate from domain-specific components
- Reusability: Common patterns are extracted into reusable components
- Discoverability: Developers can easily find components by their domain
- Maintainability: Related components are grouped together
- Scalability: New domains can be added without affecting existing structure