This website requires JavaScript.
ef6570d708
feat(empty-inbox-component): EmptyInbox Empty-State für Listen [tsc:fail]
main
Dennis (via Claude+Gemma)
2026-05-23 10:59:15 +0200
935df90393
feat(brand-component): Brand Header (logo + appname + tagline) [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:59:08 +0200
445f984ffe
feat(list-item-component): ListItem für custom Listen [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:58:49 +0200
6d256ef154
feat(notice-component): Notice (small inline notification, no dismiss) [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:58:39 +0200
8040524960
feat(map-placeholder-component): MapPlaceholder (kein echtes Map, nur grayed) [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:54:26 +0200
4400fc9b9a
feat(calendar-month-grid-component): MonthGrid (read-only Display-Komponente) [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:54:18 +0200
4f66286df9
feat(order-summary-component): OrderSummary für Checkout [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:53:58 +0200
14884ff684
feat(receipt-component): Receipt-Layout (Belegdruck) [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:53:40 +0200
0ced4d5bb5
feat(icon-button-component): IconButton (only icon, square, accessible) [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:49:06 +0200
d3f7ba27c1
feat(address-component): Address für mehrteilige Adressen [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:48:53 +0200
1068ec827d
feat(time-ago-component): TimeAgo relative-time (vor X min) [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:48:47 +0200
a7ce22cc11
feat(price-tag-component): PriceTag mit Currency-Formatting [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:48:34 +0200
0f33c726bc
feat(nav-link-component): NavLink mit active-State (Tanstack-Router-kompatibel) [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:44:10 +0200
f554bf6107
feat(loader-component): Loader fullscreen-overlay [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:44:02 +0200
96753c8f4c
feat(hint-component): Hint mit Info-Icon [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:43:52 +0200
1679fdfb51
feat(footer-component): Footer mit Copyright + Links [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:43:41 +0200
288e4d76b4
feat(menu-bar-component): MenuBar mit dropdowns (Datei, Bearbeiten, ...) [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:39:10 +0200
23acce87ef
feat(scroll-area-component): ScrollArea mit custom scrollbar [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:38:53 +0200
fc11c4a192
feat(back-to-top-component): BackToTop floating button [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:38:48 +0200
b0c8226bf7
feat(drawer-component): Drawer (side-slide panel) [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:38:38 +0200
4e241a8e05
feat(color-swatch-component): ColorSwatch (single color preview circle) [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:34:23 +0200
63c191b6f8
feat(number-input-component): NumberInput mit Stepper-Buttons [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:34:14 +0200
f2e28b7b7d
feat(time-input-component): TimeInput für HH:MM [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:33:52 +0200
b1403587a2
feat(date-input-component): DateInput mit ISO-Format [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:33:41 +0200
cbcbee2712
feat(tag-component): Tag mit Color + Click-Handler [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:29:44 +0200
6580e5262a
feat(popover-component): Popover (klick-getriggert) [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:29:24 +0200
9a83730533
feat(context-menu-component): ContextMenu mit right-click trigger [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:29:02 +0200
7ac59e6fa6
feat(button-group-component): ButtonGroup für gruppierte Toggle-Buttons [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:28:40 +0200
ce3fb66a6f
feat(kbd-component): Kbd für Keyboard-Shortcut-Display [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:24:08 +0200
ffae5f8dd5
feat(toolbar-button-component): ToolbarButton mit Tooltip + Icon [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:24:02 +0200
153151a9f1
feat(stat-card-component): StatCard für Dashboards [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:23:51 +0200
a984b9b409
feat(page-header-component): PageHeader mit Title + Actions [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:23:37 +0200
5dcdd36373
feat(banner-component): Banner für Top-Bar (e.g. Trial-Hinweis) [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:19:40 +0200
c108616747
feat(form-group-component): FormGroup wrapper für Label/Input/Error [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:19:22 +0200
3e7a7a893f
feat(logo-component): Logo SVG + Text [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:19:10 +0200
6f41edbc5d
feat(sidebar-component): Sidebar mit collapse-Logik [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:18:50 +0200
2b9bfe0eaf
feat(code-block-component): CodeBlock mit syntax-color + copy [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:14:59 +0200
155499c063
feat(key-value-list-component): KeyValueList für Detail-Views [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:14:44 +0200
c0d1586d9a
feat(image-gallery-component): ImageGallery mit Lightbox [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:14:25 +0200
e9dbdc3afe
feat(file-upload-component): FileUpload mit drag-and-drop [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:13:53 +0200
ad737de1c3
feat(chip-component): Chip mit dismiss-Button [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:09:26 +0200
fa9cd8971c
feat(rating-component): Rating mit Sternen [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:08:59 +0200
21c558de00
feat(slider-component): Range-Slider mit Value-Display [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:08:48 +0200
bb164bb1e0
feat(spinner-component): Spinner mit Size-Varianten [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:08:35 +0200
5759154f61
feat(empty-chart-component): EmptyChart-Placeholder für Charts ohne Daten [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:04:23 +0200
b278c4e4e8
feat(skeleton-block-component): SkeletonBlock für Loading-Placeholders [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:04:15 +0200
d7fcf9f90c
feat(timeline-component): Timeline für Activity-Feed [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:04:04 +0200
d6bddc51ed
feat(stepper-component): Stepper für Wizard-Flows [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 10:03:47 +0200
239d2f9e17
feat(search-box-component): SearchBox mit clear-button [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:59:39 +0200
116da565a7
feat(select-component): Select mit custom-styling [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:59:25 +0200
9b65f8793d
feat(textarea-component): Textarea mit auto-resize + char-count [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:59:03 +0200
f086436ec4
feat(input-component): Input mit Label + Error-State [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:58:44 +0200
dea538987b
feat(radio-group-component): RadioGroup mit Optionen [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:54:27 +0200
6eb9428c2e
feat(switch-toggle-component): Switch/Toggle mit slide-Animation [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:54:11 +0200
aec1d96e66
feat(checkbox-component): Checkbox mit Label [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:53:55 +0200
df55212a6d
feat(dropdown-menu-component): DropdownMenu mit Items [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:53:44 +0200
304e86dd42
feat(progress-bar-component): ProgressBar mit Animation [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:49:34 +0200
eb8f225e85
feat(alert-component): Alert-Banner mit dismiss [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:49:22 +0200
8c9a0e8674
feat(accordion-component): Accordion mit collapsible Sections [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:49:00 +0200
11f4d10645
feat(tabs-component): Tabs mit aktivem State [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:48:43 +0200
727f1a45ef
feat(color-picker-component): ColorPicker mit Preset-Swatches [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:44:37 +0200
e0db2668b3
feat(pagination-component): Pagination mit Prev/Next + Page-Numbers [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:44:19 +0200
581d3334eb
feat(divider-component): Divider horizontal/vertikal [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:43:56 +0200
bd0c071efa
feat(avatar-component): Avatar mit Initial-Fallback [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:43:45 +0200
0b4d4029a0
feat(status-dot-component): StatusDot für Indicator (online/offline/busy) [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:39:17 +0200
d50d5253ca
feat(card-component): Card-Container mit padding/shadow [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:39:04 +0200
d8ae2e0200
feat(badge-component): Badge mit color-variants [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:38:54 +0200
14bb8fd16a
feat(tooltip-component): Tooltip mit hover-delay [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:38:42 +0200
e8df82e0f0
feat(copy-to-clipboard-component): CopyButton mit visual feedback [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:34:15 +0200
72025919f3
feat(button-loading-states): Button mit loading-prop zeigt Spinner [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:34:02 +0200
9a71f7e13e
feat(empty-state-illustrations): EmptyState-Component für leere Listen [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:33:49 +0200
141c7f81dd
feat(toast-undo-pattern): Toast mit Undo-Button bei Delete-Actions [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:33:36 +0200
b6c1dd21f0
feat(meta-tags-and-title): Page-Titles + Meta-Description aktualisieren beim Route-Chan [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:30:29 +0200
809dc95dd5
feat(loading-everywhere): LoadingSpinner consistent in allen Pages [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:30:25 +0200
3fd79e0747
feat(accessibility-final): ARIA labels + keyboard-trap-modal-fix + focus-management [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:26:34 +0200
f371eeb3be
feat(api-error-pages): 500-Error-Page bei API-Down [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:26:06 +0200
960b1f9dfd
feat(404-not-found-page): 404-Page als catchall Route [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:24:53 +0200
46ef0d44cc
feat(dashboard-favorites-section): Dashboard zeigt Favorites als Quick-Access [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:22:13 +0200
a36f1a6096
feat(onboarding-improvements): Onboarding-Tour: 3 Schritte (Dashboard → Customer anlegen → [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:20:46 +0200
d6fe3ba005
feat(more-keyboard-shortcuts): ? für Help, G+H for home, etc — Hotkey-Registry [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:19:54 +0200
29646c8015
feat(favorites-system): User kann Customer/Project favoritisieren (localStorage) [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:19:24 +0200
eb65bea128
feat(recently-viewed-widget): Recently-Viewed Widget für Dashboard (last 5 customers + pro [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:19:02 +0200
2fe907da4e
feat(breadcrumbs-everywhere): Breadcrumb auf allen List-Pages [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:15:44 +0200
43861d5ff9
feat(time-entry-clone): Clone-Button pro TimeEntry (copy + reset time) [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:10:31 +0200
969f7be8f6
feat(project-billing-rate): Project bekommt billingRate (€/h) [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:08:36 +0200
6e7f2a4514
feat(customer-contact-info): Customers: contactEmail + contactPhone optional fields [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 09:06:25 +0200
2f76905156
feat(pdf-improvements): Report-PDF-Endpoint verbessern mit besserer Formatierung [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 08:59:35 +0200
43f2e030b1
feat(budget-alerts-email): Email-Stub-Send wenn Project-Budget >100% (in webhookDispatc [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 08:59:07 +0200
570be9c6d8
feat(search-pagination): Pagination in search-results (10 per page) [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 08:58:44 +0200
c5d0d3b0ef
feat(bulk-customer-tag): Bulk-Add-Tag zu mehreren Customers [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 08:57:43 +0200
571b564508
feat(advanced-filters): AdvancedFilters für TimeEntries: status, project, user, bill [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 08:56:08 +0200
f9ccda43ec
feat(performance-memoization): React.memo + useMemo in heavy Lists (Customers, Projects, Ti [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 08:54:17 +0200
a2a81d0205
feat(hover-tooltips): Tooltip-Component (für Icon-Only-Buttons) [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 08:52:26 +0200
fb3a7d6c0e
feat(confirm-modal): Reusable Confirm-Modal statt window.confirm() [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 08:52:18 +0200
5cf7aa333f
feat(empty-state-illustrations): EmptyState erweitert: Emoji + bessere Hierarchie [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 08:52:00 +0200
902b2c536f
feat(loading-skeletons): Skeleton-Component für Tabellen während Loading [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 08:51:45 +0200
923700986f
feat(router-phase25): Mount /holidays + /role-permissions Routes [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 08:48:40 +0200
dc41a7463c
feat(api-client-phase25): API um holidays endpoints [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 08:47:18 +0200
3ed9379e83
feat(role-permissions-page): Admin-Page zum Anzeigen welche Permissions welche Rolle hat [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 08:46:36 +0200
1f83bb7148
feat(holiday-calendar): Holiday-Tabelle + Page für admin (Feiertage definieren) [tsc:fail]
Dennis (via Claude+Gemma)
2026-05-23 08:45:57 +0200