2025-09-14 19:23:23 +00:00
# @design.estate/dees-catalog 🎨
> **A comprehensive web components library built with TypeScript and LitElement**
> 75+ Production-ready UI components for building modern web applications with consistent design and behavior
2024-12-09 19:14:21 +01:00
2025-09-14 19:23:23 +00:00
[](https://www.npmjs.com/package/@design .estate/dees-catalog)
[](https://www.typescriptlang.org/)
[](https://www.webcomponents.org/)
[](https://opensource.org/licenses/MIT)
2025-07-04 18:42:53 +00:00
2025-09-14 19:23:23 +00:00
## 🚀 Quick Start
2024-12-09 19:14:21 +01:00
```bash
2025-09-14 19:23:23 +00:00
# Install with npm
2024-12-09 19:14:21 +01:00
npm install @design .estate/dees-catalog
2025-09-14 19:23:23 +00:00
# Or with pnpm (recommended)
pnpm add @design .estate/dees-catalog
2024-12-09 19:14:21 +01:00
2025-09-14 19:23:23 +00:00
# Or with yarn
yarn add @design .estate/dees-catalog
2025-04-11 10:20:35 +00:00
```
2024-12-09 19:14:21 +01:00
2025-09-14 19:23:23 +00:00
### Basic Usage
2024-12-09 19:14:21 +01:00
2025-04-11 10:20:35 +00:00
```typescript
2025-09-14 19:23:23 +00:00
// Import components you need
import { DeesButton, DeesForm, DeesInputText } from '@design .estate/dees-catalog';
2024-12-09 19:14:21 +01:00
2025-09-14 19:23:23 +00:00
// Use in your HTML or framework
< dees-form @formData =${ handleSubmit } >
< dees-input-text
label="Your Name"
required
>< / dees-input-text >
< dees-button type = "highlighted" >
Submit
< / dees-button >
< / dees-form >
2025-04-11 11:19:23 +00:00
```
2025-09-14 19:23:23 +00:00
## 📦 What's Inside?
2025-04-11 11:19:23 +00:00
2025-09-14 19:23:23 +00:00
### Component Categories at a Glance
2025-04-11 11:19:23 +00:00
2025-09-14 19:23:23 +00:00
| 🎯 Category | 📊 Count | 🔥 Popular Components |
|------------|----------|----------------------|
| **Core UI** | 15+ | Buttons, Icons, Badges, Labels, Panels |
| **Forms** | 20+ | Text Input, Dropdown, Date Picker, WYSIWYG Editor |
| **Layout** | 12+ | App Shell, Navigation, Dashboard Grid |
| **Data Display** | 8+ | Tables, Charts, Stats Grid, Pagination |
| **Overlays** | 5+ | Modals, Context Menus, Toasts |
| **Development** | 6+ | Code Editor, Terminal, Markdown Editor |
2025-06-12 09:33:46 +00:00
2025-09-14 19:23:23 +00:00
## 🌟 Key Features
2025-06-12 09:33:46 +00:00
2025-09-14 19:23:23 +00:00
- ✅ **100% TypeScript** - Full type safety and IntelliSense support
- 🎨 **Theme System** - Built-in light/dark theme support
- 📱 **Responsive** - Mobile-first design approach
- ♿ **Accessible** - ARIA compliant with keyboard navigation
- 🚀 **Performance** - Lazy loading and optimized rendering
- 🔧 **Customizable** - CSS variables and property APIs
- 🧩 **Framework Agnostic** - Works with any framework or vanilla JS
- 📖 **Well Documented** - Comprehensive demos and examples
2025-04-11 11:19:23 +00:00
2025-09-14 19:23:23 +00:00
## 💡 Component Highlights
2025-06-12 09:33:46 +00:00
2025-09-14 19:23:23 +00:00
### 🎯 Core UI Components
2025-06-26 19:18:58 +00:00
2025-09-14 19:23:23 +00:00
#### Buttons & Actions
2025-06-26 19:18:58 +00:00
```typescript
2025-09-14 19:23:23 +00:00
// Beautiful button with multiple styles
< dees-button
type="highlighted" // normal | highlighted | discreet
status="pending" // normal | pending | success | error
@click =${handleClick}
>
Click Me
< / dees-button >
2025-06-26 19:18:58 +00:00
2025-09-14 19:23:23 +00:00
// Button groups for related actions
2025-06-26 19:18:58 +00:00
< dees-button-group
.buttons=${[
2025-09-14 19:23:23 +00:00
{ text: 'Save', type: 'highlighted', action: save },
{ text: 'Cancel', type: 'normal', action: cancel }
2025-06-26 19:18:58 +00:00
]}
>< / dees-button-group >
```
2025-09-14 19:23:23 +00:00
#### Icons with Library Prefixes
2025-06-26 19:18:58 +00:00
```typescript
2025-09-14 19:23:23 +00:00
// FontAwesome icons
< dees-icon icon = "fa:check" iconSize = "24" > < / dees-icon >
2025-06-26 19:18:58 +00:00
2025-09-14 19:23:23 +00:00
// Lucide icons
< dees-icon icon = "lucide:menu" iconSize = "24" > < / dees-icon >
2025-06-26 19:18:58 +00:00
```
2025-09-14 19:23:23 +00:00
#### Toast Notifications
2025-06-26 19:18:58 +00:00
```typescript
2025-09-14 19:23:23 +00:00
// Show toast notifications programmatically
DeesToast.success('Changes saved successfully!');
DeesToast.error('Something went wrong');
DeesToast.info('New update available');
2025-06-26 19:18:58 +00:00
2025-09-14 19:23:23 +00:00
// Advanced control
const toast = await DeesToast.show({
message: 'Processing...',
type: 'info',
duration: 0 // No auto-dismiss
});
// Later...
toast.dismiss();
2025-06-26 19:18:58 +00:00
```
2025-09-14 19:23:23 +00:00
### 📝 Form Components
#### Complete Form System
```typescript
< dees-form @formData =${( e ) = > console.log('Form data:', e.detail)}>
<!-- Text input with validation -->
< dees-input-text
key="email"
label="Email"
required
validationRegex="^[^@]+@[^@]+\.[^@]+$"
>< / dees-input-text >
<!-- Date picker with constraints -->
< dees-input-datepicker
key="eventDate"
label="Event Date"
minDate="2025-01-01"
enableTime
>< / dees-input-datepicker >
<!-- List management (NEW!) -->
< dees-input-list
key="features"
label="Product Features"
placeholder="Add feature..."
sortable
minItems={3}
maxItems={10}
>< / dees-input-list >
<!-- Rich text editor -->
< dees-input-wysiwyg
key="description"
label="Description"
>< / dees-input-wysiwyg >
2024-12-09 19:14:21 +01:00
2025-04-11 10:20:35 +00:00
< dees-form-submit > Submit< / dees-form-submit >
< / dees-form >
2024-12-09 19:14:21 +01:00
```
2025-09-14 19:23:23 +00:00
### 🏗️ Layout Components
2024-12-09 19:14:21 +01:00
2025-09-14 19:23:23 +00:00
#### Application Shell
2024-12-09 19:14:21 +01:00
```typescript
2025-09-14 19:23:23 +00:00
// Complete application layout with one component
2025-06-17 08:41:36 +00:00
< dees-appui-base
2025-09-14 19:23:23 +00:00
.appbarMenuItems=${menuItems}
.appbarBreadcrumbs=${'Home > Dashboard'}
.mainmenuTabs=${tabs}
.user=${{ name: 'John Doe', status: 'online' }}
2025-06-17 08:41:36 +00:00
>
< div slot = "maincontent" >
2025-09-14 19:23:23 +00:00
<!-- Your app content -->
2025-06-17 08:41:36 +00:00
< / div >
2025-04-11 10:20:35 +00:00
< / dees-appui-base >
```
2024-12-09 19:14:21 +01:00
2025-09-14 19:23:23 +00:00
#### Dashboard Grid
2025-06-30 10:53:22 +00:00
```typescript
2025-09-14 19:23:23 +00:00
// Drag-and-drop dashboard widgets
2025-06-30 10:53:22 +00:00
< dees-dashboardgrid
.widgets=${[
{
2025-09-14 19:23:23 +00:00
id: 'sales',
2025-06-30 10:53:22 +00:00
title: 'Sales Overview',
2025-09-14 19:23:23 +00:00
x: 0, y: 0, w: 4, h: 3,
content: html`<sales-chart></sales-chart>`
2025-06-30 10:53:22 +00:00
},
{
2025-09-14 19:23:23 +00:00
id: 'stats',
title: 'Statistics',
x: 4, y: 0, w: 4, h: 3,
content: html`<dees-statsgrid .tiles=${stats}></dees-statsgrid>`
2025-06-30 10:53:22 +00:00
}
]}
2025-09-14 19:23:23 +00:00
editable
2025-06-30 10:53:22 +00:00
>< / dees-dashboardgrid >
```
2025-09-14 19:23:23 +00:00
### 📊 Data Display
2024-12-09 19:14:21 +01:00
2025-09-14 19:23:23 +00:00
#### Advanced Tables
2025-04-11 10:20:35 +00:00
```typescript
< dees-table
2025-09-14 19:23:23 +00:00
.data=${users}
.displayFunction=${(user) => ({
Name: user.name,
Email: user.email,
Role: user.role,
Status: html`< dees-badge type = "${user.active ? 'success' : 'error'}" >
${user.active ? 'Active' : 'Inactive'}
< / dees-badge > `
2025-04-11 11:19:23 +00:00
})}
.dataActions=${[
2025-09-14 19:23:23 +00:00
{ name: 'Edit', icon: 'fa:edit', action: editUser },
{ name: 'Delete', icon: 'fa:trash', action: deleteUser }
2025-04-11 10:20:35 +00:00
]}
2025-09-14 19:23:23 +00:00
searchable
2025-04-11 10:20:35 +00:00
>< / dees-table >
2024-12-09 19:14:21 +01:00
```
2025-09-14 19:23:23 +00:00
#### Statistics Grid
2025-06-10 18:58:05 +00:00
```typescript
< dees-statsgrid
.tiles=${[
{
2025-09-14 19:23:23 +00:00
title: 'Revenue',
2025-06-10 18:58:05 +00:00
value: 125420,
unit: '$',
type: 'number',
2025-09-14 19:23:23 +00:00
description: '+12.5% from last month'
2025-06-10 18:58:05 +00:00
},
{
title: 'CPU Usage',
value: 73,
type: 'gauge',
gaugeOptions: {
thresholds: [
{ value: 0, color: '#22c55e ' },
{ value: 80, color: '#ef4444 ' }
]
}
}
]}
>< / dees-statsgrid >
```
2025-09-14 19:23:23 +00:00
### 🎭 Overlays & Dialogs
2024-12-09 19:14:21 +01:00
2025-09-14 19:23:23 +00:00
#### Modal Dialogs
2024-12-09 19:14:21 +01:00
```typescript
2025-04-11 10:20:35 +00:00
DeesModal.createAndShow({
heading: 'Confirm Action',
2025-04-11 11:19:23 +00:00
content: html`
2025-09-14 19:23:23 +00:00
< p > Are you sure you want to proceed?< / p >
2025-04-11 11:19:23 +00:00
`,
2025-04-11 10:20:35 +00:00
menuOptions: [
2025-04-11 11:19:23 +00:00
{
name: 'Cancel',
2025-09-14 19:23:23 +00:00
action: async (modal) => modal.destroy()
2025-04-11 11:19:23 +00:00
},
{
name: 'Confirm',
action: async (modal) => {
2025-09-14 19:23:23 +00:00
await performAction();
2025-04-11 11:19:23 +00:00
modal.destroy();
}
}
2025-04-11 10:20:35 +00:00
]
});
```
2024-12-09 19:14:21 +01:00
2025-09-14 19:23:23 +00:00
## 🎨 Theme System
2025-04-11 11:19:23 +00:00
2025-09-14 19:23:23 +00:00
All components support automatic theme switching:
2025-04-11 11:19:23 +00:00
```typescript
2025-09-14 19:23:23 +00:00
// Components automatically adapt to light/dark themes
// Use the cssManager for theme-aware colors
import { cssManager } from '@design .estate/dees-catalog';
2025-04-11 11:19:23 +00:00
2025-09-14 19:23:23 +00:00
css`
.my-element {
background: ${cssManager.bdTheme('#fff ', '#1a1a1a ')};
color: ${cssManager.bdTheme('#000 ', '#fff ')};
}
`
2025-04-11 11:19:23 +00:00
```
2025-09-14 19:23:23 +00:00
## 🔧 Development
2025-04-11 11:19:23 +00:00
2025-09-14 19:23:23 +00:00
### Prerequisites
- Node.js 18+
- pnpm (recommended) or npm
2025-04-11 11:19:23 +00:00
2025-09-14 19:23:23 +00:00
### Setup
```bash
# Clone the repository
git clone https://github.com/design-estate/dees-catalog.git
2025-04-11 11:19:23 +00:00
2025-09-14 19:23:23 +00:00
# Install dependencies
pnpm install
2025-04-11 11:19:23 +00:00
2025-09-14 19:23:23 +00:00
# Build the project
pnpm run build
2025-04-11 11:19:23 +00:00
2025-09-14 19:23:23 +00:00
# Run in development mode
pnpm run watch
2025-04-11 11:19:23 +00:00
2025-09-14 19:23:23 +00:00
# Run tests
pnpm test
2025-04-11 11:19:23 +00:00
```
2025-09-14 19:23:23 +00:00
### Project Structure
2025-04-11 10:20:35 +00:00
```
2025-09-14 19:23:23 +00:00
dees-catalog/
├── ts_web/
│ ├── elements/ # All component implementations
│ │ ├── dees-*.ts # Component files
│ │ └── *.demo.ts # Component demos
│ ├── pages/ # Demo showcase pages
│ └── index.ts # Main exports
├── dist_ts_web/ # Built distribution files
└── test/ # Test files
2025-04-11 11:19:23 +00:00
```
2025-09-14 19:23:23 +00:00
## 📚 Documentation
2025-04-11 11:19:23 +00:00
2025-09-14 19:23:23 +00:00
### Component Demos
Each component includes a built-in demo accessible via the static `.demo` property:
2025-06-26 19:18:58 +00:00
```typescript
2025-09-14 19:23:23 +00:00
import { DeesButton } from '@design .estate/dees-catalog';
2025-06-26 19:18:58 +00:00
2025-09-14 19:23:23 +00:00
// Access the component's demo
const demoHTML = DeesButton.demo();
2025-04-11 11:19:23 +00:00
```
2025-09-14 19:23:23 +00:00
### Interactive Playground
For a complete interactive playground with all components:
2024-12-09 19:14:21 +01:00
2025-09-14 19:23:23 +00:00
1. Clone the repository
2. Run `pnpm install && pnpm run build`
3. Open the demo pages in `dist_ts_web/pages/`
2024-12-09 19:14:21 +01:00
2025-09-14 19:23:23 +00:00
### TypeScript Support
Full TypeScript definitions are included. Your IDE will provide:
- 🔍 IntelliSense for all properties and methods
- 📝 JSDoc comments with usage examples
- ✅ Type checking for component properties
- 🎯 Auto-imports and code completion
2024-12-09 19:14:21 +01:00
2025-09-14 19:23:23 +00:00
## 🤝 Contributing
2025-04-11 11:19:23 +00:00
2025-09-14 19:23:23 +00:00
We welcome contributions! Please see our [Contributing Guide ](CONTRIBUTING.md ) for details.
2020-05-10 23:19:31 +00:00
2025-09-14 19:23:23 +00:00
### Development Workflow
1. Fork the repository
2. Create a feature branch: `git checkout -b feature/amazing-feature`
3. Make your changes and add tests
4. Ensure all tests pass: `pnpm test`
5. Commit with conventional commits: `git commit -m 'feat: add amazing feature'`
6. Push and create a Pull Request
2020-05-10 23:19:31 +00:00
2025-09-14 19:23:23 +00:00
## 🐛 Troubleshooting
2025-06-26 19:18:58 +00:00
2025-09-14 19:23:23 +00:00
### Common Issues
2025-06-26 19:18:58 +00:00
2025-09-14 19:23:23 +00:00
**Issue: Components not rendering**
2025-06-26 19:18:58 +00:00
```typescript
2025-09-14 19:23:23 +00:00
// Ensure you're importing from the correct path
import '@design .estate/dees-catalog/dist_ts_web/elements/dees-button.js';
// Or use the bundled version
import '@design .estate/dees-catalog';
2025-06-26 19:18:58 +00:00
```
2025-09-14 19:23:23 +00:00
**Issue: TypeScript errors**
2025-06-26 19:18:58 +00:00
```typescript
2025-09-14 19:23:23 +00:00
// Add to tsconfig.json
{
"compilerOptions": {
"moduleResolution": "node",
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true
}
}
2025-06-26 19:18:58 +00:00
```
2025-09-14 19:23:23 +00:00
**Issue: Styles not applying**
```html
<!-- Components use Shadow DOM, styles are encapsulated -->
<!-- Use CSS custom properties for theming -->
< style >
dees-button {
--button-background: #007bff ;
--button-color: white;
}
< / style >
2025-06-30 10:53:22 +00:00
```
2025-09-14 19:23:23 +00:00
## 🔗 Links & Resources
2025-06-30 10:53:22 +00:00
2025-09-14 19:23:23 +00:00
- 📖 [Full Documentation ](https://design.estate/docs/dees-catalog )
- 🎮 [Interactive Demo ](https://design.estate/demo/dees-catalog )
- 📦 [NPM Package ](https://www.npmjs.com/package/@design.estate/dees-catalog )
- 🐛 [Issue Tracker ](https://github.com/design-estate/dees-catalog/issues )
- 💬 [Discussions ](https://github.com/design-estate/dees-catalog/discussions )
2025-06-30 10:53:22 +00:00
2025-09-14 19:23:23 +00:00
## 📄 License
2025-04-11 11:19:58 +00:00
2025-09-14 19:23:23 +00:00
This repository contains open-source code that is licensed under the MIT License. A copy of the MIT License can be found in the [license ](./license ) file within this repository.
2025-04-11 11:19:58 +00:00
2025-09-14 19:23:23 +00:00
**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.
2025-04-11 11:19:58 +00:00
2025-09-14 19:23:23 +00:00
## ® Trademarks
2025-04-11 11:19:58 +00:00
2025-09-14 19:23:23 +00:00
This project is owned and maintained by **Task Venture Capital GmbH** . The names and logos associated with Task Venture Capital GmbH and any related products or services are trademarks of Task Venture Capital GmbH and are not included within the scope of the MIT license granted herein. Use of these trademarks must comply with Task Venture Capital GmbH's Trademark Guidelines, and any usage must be approved in writing by Task Venture Capital GmbH.
2025-04-11 11:19:58 +00:00
2025-09-14 19:23:23 +00:00
## 🏢 Company Information
2025-04-11 11:19:58 +00:00
2025-09-14 19:23:23 +00:00
**Task Venture Capital GmbH**
Registered at District Court Bremen HRB 35230 HB, Germany
2025-04-11 11:19:58 +00:00
2025-09-14 19:23:23 +00:00
For any legal inquiries or if you require further information, please contact us via email at **hello@task.vc** .
2025-04-11 11:19:58 +00:00
By using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.
2025-09-14 19:23:23 +00:00
---
< div align = "center" >
< p > Built with ❤️ by < a href = "https://task.vc" > Task Venture Capital GmbH< / a > < / p >
< p >
< a href = "https://github.com/design-estate/dees-catalog/stargazers" > ⭐ Star us on GitHub< / a > •
< a href = "https://twitter.com/taskventure" > 🐦 Follow on Twitter< / a > •
< a href = "https://www.linkedin.com/company/task-venture-capital" > 💼 LinkedIn< / a >
< / p >
< / div >