From 9be97a8f849dfa38d73ce8a58cb4740d8f3295c5 Mon Sep 17 00:00:00 2001 From: Gregor Vostrak Date: Tue, 3 Feb 2026 19:21:57 +0100 Subject: [PATCH] Improve Time page responsiveness and compact tags, fixes #896 --- resources/js/Pages/Time.vue | 2 +- resources/js/packages/ui/src/Badge.vue | 2 +- .../js/packages/ui/src/MainContainer.vue | 2 +- resources/js/packages/ui/src/Tag/TagBadge.vue | 4 +- .../js/packages/ui/src/Tag/TagDropdown.vue | 5 +- .../src/TimeEntry/TimeEntryAggregateRow.vue | 77 ++++++++++++++++++- .../TimeEntry/TimeEntryDescriptionInput.vue | 6 +- .../src/TimeEntry/TimeEntryMassActionRow.vue | 2 +- .../ui/src/TimeEntry/TimeEntryRow.vue | 61 ++++++++++++++- .../ui/src/TimeEntry/TimeEntryRowHeading.vue | 8 +- .../src/TimeEntry/TimeEntryRowTagDropdown.vue | 38 +++++++-- .../src/TimeTracker/TimeTrackerControls.vue | 2 +- .../TimeTrackerProjectTaskDropdown.vue | 6 +- .../TimeTrackerRecentlyTrackedEntry.vue | 6 +- 14 files changed, 188 insertions(+), 33 deletions(-) diff --git a/resources/js/Pages/Time.vue b/resources/js/Pages/Time.vue index 60a7a23f..dc10b7a6 100644 --- a/resources/js/Pages/Time.vue +++ b/resources/js/Pages/Time.vue @@ -114,7 +114,7 @@ function deleteSelected() { :tags="tags" :currency="getOrganizationCurrencyString()" :clients="clients" - class="border-t border-default-background-separator" + class="border-t border-default-background-separator hidden sm:block" :update-time-entries=" (args) => updateTimeEntries( diff --git a/resources/js/packages/ui/src/Badge.vue b/resources/js/packages/ui/src/Badge.vue index a18910d9..0cc324b4 100644 --- a/resources/js/packages/ui/src/Badge.vue +++ b/resources/js/packages/ui/src/Badge.vue @@ -47,7 +47,7 @@ const tagClasses = computed(() => { tagClasses, badgeClasses[size], borderClasses, - 'rounded transition inline-flex items-center font-medium text-text-primary disabled:text-text-quaternary outline-0 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring', + 'rounded transition inline-flex items-center font-medium text-text-primary disabled:text-text-quaternary outline-0 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring min-w-0 overflow-hidden', props.class ) "> diff --git a/resources/js/packages/ui/src/MainContainer.vue b/resources/js/packages/ui/src/MainContainer.vue index 430683f3..d90042f0 100644 --- a/resources/js/packages/ui/src/MainContainer.vue +++ b/resources/js/packages/ui/src/MainContainer.vue @@ -1,7 +1,7 @@ diff --git a/resources/js/packages/ui/src/Tag/TagBadge.vue b/resources/js/packages/ui/src/Tag/TagBadge.vue index 7f14e2ca..cfa60d12 100644 --- a/resources/js/packages/ui/src/Tag/TagBadge.vue +++ b/resources/js/packages/ui/src/Tag/TagBadge.vue @@ -11,12 +11,14 @@ const props = withDefaults( class?: string; color?: string; border?: boolean; + showIcon?: boolean; }>(), { size: 'base', tag: 'div', color: 'var(--theme-color-icon-default)', border: true, + showIcon: true, } ); @@ -28,7 +30,7 @@ const indicatorClasses = {