Skip to content

UI Component Library

The app uses shadcn-svelte (built on bits-ui) as the UI component library. Components are located in src/lib/components/ui/ and are configured via components.json.

44+ component categories organized by purpose:

ComponentDescription
buttonPrimary interactive element
inputText input fields
input-groupGrouped input with addons
labelForm labels
checkboxBoolean toggles
radio-groupOption selection
selectDropdown selection
textareaMulti-line text input
toggleToggle switches
switchOn/off switches
formForm wrapper with validation
calendarDate picker
range-calendarDate range picker
ComponentDescription
cardContent containers
accordionCollapsible sections
tabsTabbed content
collapsibleShow/hide content
separatorVisual dividers
scroll-areaCustom scrollbars
sidebarSide navigation panels
ComponentDescription
breadcrumbPath navigation
navigation-menuTop navigation
dropdown-menuAction menus
context-menuRight-click menus
paginationPage navigation
commandCommand palette
ComponentDescription
dialogModal dialogs
alert-dialogConfirmation dialogs
drawerSlide-out panels (vaul-svelte)
popoverFloating content
sheetSide sheets
tooltipHover information
ComponentDescription
tableData tables
data-tableAdvanced tables
badgeStatus indicators
avatarUser avatars
progressProgress bars
skeletonLoading placeholders
emptyEmpty state displays
kbdKeyboard shortcuts
sonnerToast notifications
<script>
import { Button } from '$lib/components/ui/button';
import * as Dialog from '$lib/components/ui/dialog';
import * as Card from '$lib/components/ui/card';
</script>
<Card.Root>
<Card.Header>
<Card.Title>Title</Card.Title>
</Card.Header>
<Card.Content>
<Button>Click me</Button>
</Card.Content>
</Card.Root>
  • Tailwind CSS 4.0 with @tailwindcss/typography and @tailwindcss/vite
  • tailwind-variants for component variant definitions
  • tailwind-merge via cn() utility for class merging
  • tw-animate-css for animations
  • mode-watcher for dark/light theme support
src/lib/utils.ts
import { clsx } from 'clsx';
import { twMerge } from 'tailwind-merge';
export function cn(...inputs) {
return twMerge(clsx(inputs));
}

Located in src/lib/components/shared/:

ComponentDescription
doc-tree.svelteDocument tree view (30.6KB, used in docs/hubs)
bubble-chat/Chat bubble interface
messages-toggle/Message notification toggle
notifications-toggle.svelteNotification bell with badge
dark-mode-toggle.svelteTheme switcher
file-upload.svelteFile upload handler
country-combobox.svelteCountry selector
categories-combobox.svelteCategory selector
emoji-picker.svelteEmoji selection popup
storage-breakdown.svelteStorage usage visualization

Each module has a dedicated sidebar in src/lib/components/sidebars/:

SidebarModule
profile-sdiebar.svelteProfile editing
connect-sidebar.svelteChat/messaging
hyvflow-sidebar.svelteProject management
account-sidebar.svelteAccount settings
marketplace-sidebar.svelteMarketplace browsing
orders-sidebar.svelteOrder management