- Created 11 reusable UI components: PageHeader, SectionCard, StatCard, StatusBadge, TabBar, MemberList, ActivityFeed, EventCard, ContentSkeleton, QuickLinkGrid, ModuleCard - Created route-specific +layout.svelte for documents, calendar, kanban, events, settings, account - Each layout renders PageHeader instantly from parent data, shows ContentSkeleton during navigation - Removed full-page PageSkeleton from parent layout - Refactored all pages to use new components instead of inline markup - Overview page: uses StatCard, SectionCard, EventCard, ActivityFeed, MemberList, QuickLinkGrid - Events list: uses EventCard, Button components - Event detail: uses ModuleCard, SectionCard - Settings/Account/Calendar/Kanban: headers in layouts, toolbars in pages - Added i18n keys for overview page (EN + ET) - 0 errors, 112 tests pass
44 lines
2.5 KiB
TypeScript
44 lines
2.5 KiB
TypeScript
export { default as Button } from './Button.svelte';
|
|
export { default as Input } from './Input.svelte';
|
|
export { default as Textarea } from './Textarea.svelte';
|
|
export { default as Select } from './Select.svelte';
|
|
export { default as Avatar } from './Avatar.svelte';
|
|
export { default as Badge } from './Badge.svelte';
|
|
export { default as Card } from './Card.svelte';
|
|
export { default as Modal } from './Modal.svelte';
|
|
export { default as Spinner } from './Spinner.svelte';
|
|
export { default as Toggle } from './Toggle.svelte';
|
|
export { default as Toast } from './Toast.svelte';
|
|
export { default as ToastContainer } from './ToastContainer.svelte';
|
|
export { default as Skeleton } from './Skeleton.svelte';
|
|
export { default as EmptyState } from './EmptyState.svelte';
|
|
export { default as IconButton } from './IconButton.svelte';
|
|
export { default as Dropdown } from './Dropdown.svelte';
|
|
export { default as DropdownItem } from './DropdownItem.svelte';
|
|
export { default as Chip } from './Chip.svelte';
|
|
export { default as ListItem } from './ListItem.svelte';
|
|
export { default as CalendarDay } from './CalendarDay.svelte';
|
|
export { default as OrgHeader } from './OrgHeader.svelte';
|
|
export { default as KanbanColumn } from './KanbanColumn.svelte';
|
|
export { default as Logo } from './Logo.svelte';
|
|
export { default as ContentHeader } from './ContentHeader.svelte';
|
|
export { default as Icon } from './Icon.svelte';
|
|
export { default as AssigneePicker } from './AssigneePicker.svelte';
|
|
export { default as ContextMenu } from './ContextMenu.svelte';
|
|
export { default as PageSkeleton } from './PageSkeleton.svelte';
|
|
export { default as PageHeader } from './PageHeader.svelte';
|
|
export { default as SectionCard } from './SectionCard.svelte';
|
|
export { default as StatCard } from './StatCard.svelte';
|
|
export { default as StatusBadge } from './StatusBadge.svelte';
|
|
export { default as TabBar } from './TabBar.svelte';
|
|
export { default as MemberList } from './MemberList.svelte';
|
|
export { default as ActivityFeed } from './ActivityFeed.svelte';
|
|
export { default as EventCard } from './EventCard.svelte';
|
|
export { default as ContentSkeleton } from './ContentSkeleton.svelte';
|
|
export { default as QuickLinkGrid } from './QuickLinkGrid.svelte';
|
|
export { default as ModuleCard } from './ModuleCard.svelte';
|
|
export { default as ImagePreviewModal } from './ImagePreviewModal.svelte';
|
|
export { default as Twemoji } from './Twemoji.svelte';
|
|
export { default as EmojiPicker } from './EmojiPicker.svelte';
|
|
export { default as VirtualList } from './VirtualList.svelte';
|