From 77a05f6d5b83d40b9ebb01f711b1000f8e3a54ae Mon Sep 17 00:00:00 2001 From: Prospector <6166773+Prospector@users.noreply.github.com> Date: Thu, 6 Aug 2026 22:36:54 -0700 Subject: [PATCH] improve popout animations --- packages/ui/src/components/base/Combobox.vue | 8 +- .../src/components/base/DropdownFilterBar.vue | 370 +++++++++--------- .../ui/src/components/base/MultiSelect.vue | 7 +- .../base/buttons/TeleportOverflowMenu.vue | 24 +- .../base/buttons/TeleportPopoutMenu.vue | 9 +- .../files-tab/components/FileContextMenu.vue | 11 +- packages/ui/src/styles/tailwind-utilities.css | 23 ++ 7 files changed, 226 insertions(+), 226 deletions(-) diff --git a/packages/ui/src/components/base/Combobox.vue b/packages/ui/src/components/base/Combobox.vue index 4a0c6bcd0a..750238a9e1 100644 --- a/packages/ui/src/components/base/Combobox.vue +++ b/packages/ui/src/components/base/Combobox.vue @@ -97,12 +97,7 @@ - +
- +
-
+
- -
-
- - -
- -
- -
+ +
+
+ + +
-
- {{ activeCategorySelectionLabel }} - -
- +
-
{{ activeCategorySelectionLabel }} +
+ Clear + +
+
+ - - +
@@ -726,12 +728,6 @@ const isMobileActiveSubmenu = computed( () => isMobileAddMenuLayout.value && activeCategory.value !== undefined && hasSubmenuPosition.value, ) -const addMenuTransitionEnterActiveClass = computed(() => - isMobileAddMenuLayout.value ? 'transition-none duration-0' : 'transition-opacity duration-150', -) -const addMenuTransitionEnterFromClass = computed(() => - isMobileAddMenuLayout.value ? 'opacity-100' : 'opacity-0', -) const addMenuTriggerElement = computed(() => addMenuTrigger.value?.element ?? null) const addMenuOutsideClickTarget = computed(() => menuContainer.value ?? submenu.value) const addMenuOutsideClickIgnore = computed(() => [addMenuTriggerElement, menuContainer, submenu]) diff --git a/packages/ui/src/components/base/MultiSelect.vue b/packages/ui/src/components/base/MultiSelect.vue index f765bd90e6..7d17408333 100644 --- a/packages/ui/src/components/base/MultiSelect.vue +++ b/packages/ui/src/components/base/MultiSelect.vue @@ -108,12 +108,7 @@ - +
{ + switch (resolvedSide.value) { + case 'top': + return 'bottom center' + case 'left': + return 'right center' + case 'right': + return 'left center' + default: + return 'top center' + } +}) + const menuItemClasses = 'overflow-menu-item flex min-h-10 w-full items-center gap-2 rounded-[10px] border-0 bg-transparent px-3 py-2 text-left text-base font-semibold leading-5 text-contrast no-underline ' + 'cursor-pointer whitespace-nowrap hover:bg-surface-4 focus-visible:bg-surface-4 focus-visible:outline-none ' + @@ -294,20 +307,13 @@ defineExpose({ open: openMenu, close: closeMenu }) - +