From fba580dc7d6c1a865367781ec1f4d82ff9d44e41 Mon Sep 17 00:00:00 2001 From: Alexander Brown Date: Wed, 17 Dec 2025 18:11:43 -0800 Subject: [PATCH] Component: Button Migration 2: IconButton (#7598) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Still a work in progress. Buttons with just icons are already in the stories for button. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-7598-WIP-Component-Button-Migration-2-IconButton-2cc6d73d365081c09143c63464ac60b7) by [Unito](https://www.unito.io) --- packages/tailwind-utils/src/index.ts | 3 +- pnpm-lock.yaml | 135 ++++++---------- pnpm-workspace.yaml | 15 +- src/components/TopMenuSection.vue | 31 ++-- src/components/actionbar/ComfyActionbar.vue | 20 +-- src/components/button/IconButton.stories.ts | 152 ------------------ src/components/button/IconButton.vue | 52 ------ src/components/button/IconGroup.stories.ts | 16 +- src/components/button/MoreButton.vue | 28 ++-- src/components/card/Card.stories.ts | 12 +- src/components/common/SearchBox.vue | 31 ++-- .../widget/WorkflowTemplateSelectorDialog.vue | 10 +- .../queue/CompletionSummaryBanner.vue | 12 +- src/components/queue/QueueOverlayActive.vue | 21 ++- src/components/queue/QueueOverlayExpanded.vue | 16 +- src/components/queue/QueueOverlayHeader.vue | 11 +- .../queue/dialogs/QueueClearHistoryDialog.vue | 10 +- .../queue/job/JobDetailsPopover.vue | 18 +-- src/components/queue/job/JobFiltersBar.vue | 27 ++-- src/components/queue/job/QueueJobItem.vue | 38 ++--- .../rightSidePanel/RightSidePanel.vue | 26 ++- .../sidebar/tabs/AssetsSidebarTab.vue | 12 +- src/components/ui/button/Button.stories.ts | 10 +- src/components/ui/button/button.variants.ts | 5 +- src/components/widget/SampleModelSelector.vue | 7 +- .../widget/layout/BaseModalLayout.stories.ts | 12 +- .../widget/layout/BaseModalLayout.vue | 103 +++++------- src/platform/assets/components/AssetCard.vue | 4 - .../assets/components/MediaAssetCard.vue | 10 +- .../components/MediaAssetFilterButton.vue | 18 +-- .../components/MediaAssetSortButton.vue | 13 +- .../assets/components/VideoHelpDialog.vue | 8 +- .../vueNodes/components/NodeHeader.vue | 40 ++--- src/types/buttonTypes.ts | 10 -- .../manager/ManagerDialogContent.vue | 30 ++-- 35 files changed, 334 insertions(+), 632 deletions(-) delete mode 100644 src/components/button/IconButton.stories.ts delete mode 100644 src/components/button/IconButton.vue diff --git a/packages/tailwind-utils/src/index.ts b/packages/tailwind-utils/src/index.ts index 78e3a3d1a..732aa4c60 100644 --- a/packages/tailwind-utils/src/index.ts +++ b/packages/tailwind-utils/src/index.ts @@ -1,4 +1,5 @@ -import clsx, { type ClassArray } from 'clsx' +import { clsx } from 'clsx' +import type { ClassArray } from 'clsx' import { twMerge } from 'tailwind-merge' export type { ClassValue } from 'clsx' diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bf13f2dd1..d3acf5ed4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -265,14 +265,14 @@ catalogs: specifier: ^8.49.0 version: 8.49.0 unplugin-icons: - specifier: ^0.22.0 - version: 0.22.0 + specifier: ^22.5.0 + version: 22.5.0 unplugin-typegpu: specifier: 0.8.0 version: 0.8.0 unplugin-vue-components: - specifier: ^0.28.0 - version: 0.28.0 + specifier: ^30.0.0 + version: 30.0.0 vite: specifier: ^7.3.0 version: 7.3.0 @@ -692,13 +692,13 @@ importers: version: 8.49.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) unplugin-icons: specifier: 'catalog:' - version: 0.22.0(@vue/compiler-sfc@3.5.25) + version: 22.5.0(@vue/compiler-sfc@3.5.25) unplugin-typegpu: specifier: 'catalog:' version: 0.8.0(typegpu@0.8.2) unplugin-vue-components: specifier: 'catalog:' - version: 0.28.0(@babel/parser@7.28.5)(rollup@4.53.5)(vue@3.5.13(typescript@5.9.3)) + version: 30.0.0(@babel/parser@7.28.5)(vue@3.5.13(typescript@5.9.3)) uuid: specifier: ^11.1.0 version: 11.1.0 @@ -780,10 +780,10 @@ importers: version: 16.6.1 unplugin-icons: specifier: 'catalog:' - version: 0.22.0(@vue/compiler-sfc@3.5.25) + version: 22.5.0(@vue/compiler-sfc@3.5.25) unplugin-vue-components: specifier: 'catalog:' - version: 0.28.0(@babel/parser@7.28.5)(rollup@4.53.5)(vue@3.5.13(typescript@5.9.3)) + version: 30.0.0(@babel/parser@7.28.5)(vue@3.5.13(typescript@5.9.3)) vite: specifier: 'catalog:' version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.39.2)(tsx@4.19.4)(yaml@2.8.2) @@ -907,18 +907,9 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@antfu/install-pkg@0.5.0': - resolution: {integrity: sha512-dKnk2xlAyC7rvTkpkHmu+Qy/2Zc3Vm/l8PtNyIOGDBtXPY3kThfU4ORNEp3V7SXw5XSOb+tOJaUYpfquPzL/Tg==} - '@antfu/install-pkg@1.1.0': resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} - '@antfu/utils@0.7.10': - resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} - - '@antfu/utils@8.1.1': - resolution: {integrity: sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==} - '@asamuzakjp/css-color@3.2.0': resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==} @@ -2147,8 +2138,8 @@ packages: '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} - '@iconify/utils@2.3.0': - resolution: {integrity: sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==} + '@iconify/utils@3.1.0': + resolution: {integrity: sha512-Zlzem1ZXhI1iHeeERabLNzBHdOa4VhQbqAcOQaMKuTuyZCpwKbC2R4Dd0Zo3g9EAc+Y4fiarO8HIHRAth7+skw==} '@internationalized/date@3.9.0': resolution: {integrity: sha512-yaN3brAnHRD+4KyyOsJyk49XUvj2wtbNACSqg0bz3u8t2VuzhC8Q5dfRnrSxjnnbDb+ienBnkn1TzQfE154vyg==} @@ -4430,6 +4421,10 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + chownr@3.0.0: resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} engines: {node: '>=18'} @@ -5170,8 +5165,8 @@ packages: resolution: {integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==} engines: {node: '>=12.0.0'} - exsolve@1.0.7: - resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==} + exsolve@1.0.8: + resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} extend-shallow@2.0.1: resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} @@ -6129,10 +6124,6 @@ packages: resolution: {integrity: sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==} engines: {node: '>=20.0.0'} - local-pkg@0.5.1: - resolution: {integrity: sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==} - engines: {node: '>=14'} - local-pkg@1.1.2: resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==} engines: {node: '>=14'} @@ -6696,11 +6687,8 @@ packages: resolution: {integrity: sha512-ua1L4OgXSBdsu1FPb7F3tYH0F48a6kxvod4pLUlGY9COeJAJQNX/sNH2IiEmsxw7lqYiAwrdHMjz1FctOsyDQg==} engines: {node: '>=18'} - package-manager-detector@0.2.11: - resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} - - package-manager-detector@1.3.0: - resolution: {integrity: sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==} + package-manager-detector@1.6.0: + resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} pako@1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} @@ -7061,6 +7049,10 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + recast@0.23.11: resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} engines: {node: '>= 4'} @@ -7567,8 +7559,9 @@ packages: tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - tinyexec@1.0.1: - resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==} + tinyexec@1.0.2: + resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} + engines: {node: '>=18'} tinyglobby@0.2.15: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} @@ -7772,8 +7765,8 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - unplugin-icons@0.22.0: - resolution: {integrity: sha512-CP+iZq5U7doOifer5bcM0jQ9t3Is7EGybIYt3myVxceI8Zuk8EZEpe1NPtJvh7iqMs1VdbK0L41t9+um9VuuLw==} + unplugin-icons@22.5.0: + resolution: {integrity: sha512-MBlMtT5RuMYZy4TZgqUL2OTtOdTUVsS1Mhj6G1pEzMlFJlEnq6mhUfoIt45gBWxHcsOdXJDWLg3pRZ+YmvAVWQ==} peerDependencies: '@svgr/core': '>=7.0.0' '@svgx/core': ^1.0.1 @@ -7804,12 +7797,12 @@ packages: resolution: {integrity: sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==} engines: {node: '>=20.19.0'} - unplugin-vue-components@0.28.0: - resolution: {integrity: sha512-jiTGtJ3JsRFBjgvyilfrX7yUoGKScFgbdNw+6p6kEXU+Spf/rhxzgvdfuMcvhCcLmflB/dY3pGQshYBVGOUx7Q==} + unplugin-vue-components@30.0.0: + resolution: {integrity: sha512-4qVE/lwCgmdPTp6h0qsRN2u642tt4boBQtcpn4wQcWZAsr8TQwq+SPT3NDu/6kBFxzo/sSEK4ioXhOOBrXc3iw==} engines: {node: '>=14'} peerDependencies: '@babel/parser': ^7.15.8 - '@nuxt/kit': ^3.2.2 + '@nuxt/kit': ^3.2.2 || ^4.0.0 vue: 2 || 3 peerDependenciesMeta: '@babel/parser': @@ -8411,19 +8404,10 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@antfu/install-pkg@0.5.0': - dependencies: - package-manager-detector: 0.2.11 - tinyexec: 0.3.2 - '@antfu/install-pkg@1.1.0': dependencies: - package-manager-detector: 1.3.0 - tinyexec: 1.0.1 - - '@antfu/utils@0.7.10': {} - - '@antfu/utils@8.1.1': {} + package-manager-detector: 1.6.0 + tinyexec: 1.0.2 '@asamuzakjp/css-color@3.2.0': dependencies: @@ -9797,18 +9781,11 @@ snapshots: '@iconify/types@2.0.0': {} - '@iconify/utils@2.3.0': + '@iconify/utils@3.1.0': dependencies: '@antfu/install-pkg': 1.1.0 - '@antfu/utils': 8.1.1 '@iconify/types': 2.0.0 - debug: 4.4.3 - globals: 15.15.0 - kolorist: 1.8.0 - local-pkg: 1.1.2 mlly: 1.8.0 - transitivePeerDependencies: - - supports-color '@internationalized/date@3.9.0': dependencies: @@ -12442,6 +12419,10 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + chownr@3.0.0: {} clean-css@5.3.3: @@ -13274,7 +13255,7 @@ snapshots: expect-type@1.2.2: {} - exsolve@1.0.7: {} + exsolve@1.0.8: {} extend-shallow@2.0.1: dependencies: @@ -14313,11 +14294,6 @@ snapshots: rfdc: 1.4.1 wrap-ansi: 9.0.2 - local-pkg@0.5.1: - dependencies: - mlly: 1.8.0 - pkg-types: 1.3.1 - local-pkg@1.1.2: dependencies: mlly: 1.8.0 @@ -15188,11 +15164,7 @@ snapshots: registry-url: 6.0.1 semver: 7.7.3 - package-manager-detector@0.2.11: - dependencies: - quansync: 0.2.11 - - package-manager-detector@1.3.0: {} + package-manager-detector@1.6.0: {} pako@1.0.11: {} @@ -15282,7 +15254,7 @@ snapshots: pkg-types@2.3.0: dependencies: confbox: 0.2.2 - exsolve: 1.0.7 + exsolve: 1.0.8 pathe: 2.0.3 playwright-core@1.52.0: {} @@ -15617,6 +15589,8 @@ snapshots: dependencies: picomatch: 2.3.1 + readdirp@4.1.2: {} + recast@0.23.11: dependencies: ast-types: 0.16.1 @@ -16283,7 +16257,7 @@ snapshots: tinyexec@0.3.2: {} - tinyexec@1.0.1: {} + tinyexec@1.0.2: {} tinyglobby@0.2.15: dependencies: @@ -16498,14 +16472,12 @@ snapshots: universalify@2.0.1: {} - unplugin-icons@0.22.0(@vue/compiler-sfc@3.5.25): + unplugin-icons@22.5.0(@vue/compiler-sfc@3.5.25): dependencies: - '@antfu/install-pkg': 0.5.0 - '@antfu/utils': 0.7.10 - '@iconify/utils': 2.3.0 + '@antfu/install-pkg': 1.1.0 + '@iconify/utils': 3.1.0 debug: 4.4.3 - kolorist: 1.8.0 - local-pkg: 0.5.1 + local-pkg: 1.1.2 unplugin: 2.3.11 optionalDependencies: '@vue/compiler-sfc': 3.5.25 @@ -16530,23 +16502,20 @@ snapshots: pathe: 2.0.3 picomatch: 4.0.3 - unplugin-vue-components@0.28.0(@babel/parser@7.28.5)(rollup@4.53.5)(vue@3.5.13(typescript@5.9.3)): + unplugin-vue-components@30.0.0(@babel/parser@7.28.5)(vue@3.5.13(typescript@5.9.3)): dependencies: - '@antfu/utils': 0.7.10 - '@rollup/pluginutils': 5.3.0(rollup@4.53.5) - chokidar: 3.6.0 + chokidar: 4.0.3 debug: 4.4.3 - fast-glob: 3.3.3 - local-pkg: 0.5.1 + local-pkg: 1.1.2 magic-string: 0.30.21 - minimatch: 9.0.5 mlly: 1.8.0 + tinyglobby: 0.2.15 unplugin: 2.3.11 + unplugin-utils: 0.3.1 vue: 3.5.13(typescript@5.9.3) optionalDependencies: '@babel/parser': 7.28.5 transitivePeerDependencies: - - rollup - supports-color unplugin@1.0.1: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 8cf54ed5c..5511759c4 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,7 +1,3 @@ -packages: - - apps/** - - packages/** - catalog: '@alloc/quick-lru': ^5.2.0 '@comfyorg/comfyui-electron-types': 0.5.5 @@ -89,9 +85,9 @@ catalog: typegpu: ^0.8.2 typescript: ^5.9.3 typescript-eslint: ^8.49.0 - unplugin-icons: ^0.22.0 + unplugin-icons: ^22.5.0 unplugin-typegpu: 0.8.0 - unplugin-vue-components: ^0.28.0 + unplugin-vue-components: ^30.0.0 vite: ^7.3.0 vite-plugin-dts: ^4.5.4 vite-plugin-html: ^3.2.2 @@ -108,15 +104,12 @@ catalog: zod: ^3.23.8 zod-to-json-schema: ^3.24.1 zod-validation-error: ^3.3.0 - cleanupUnusedCatalogs: true - ignoredBuiltDependencies: - '@firebase/util' - protobufjs - unrs-resolver - vue-demi - onlyBuiltDependencies: - '@playwright/browser-chromium' - '@playwright/browser-firefox' @@ -126,6 +119,8 @@ onlyBuiltDependencies: - esbuild - nx - oxc-resolver - overrides: '@types/eslint': '-' +packages: + - apps/** + - packages/** \ No newline at end of file diff --git a/src/components/TopMenuSection.vue b/src/components/TopMenuSection.vue index b27f65fbf..997001952 100644 --- a/src/components/TopMenuSection.vue +++ b/src/components/TopMenuSection.vue @@ -15,20 +15,19 @@ v-if="managerState.shouldShowManagerButtons.value && isDesktop" class="pointer-events-auto flex h-12 shrink-0 items-center rounded-lg border border-interface-stroke bg-comfy-menu-bg px-2 shadow-interface" > - - +
@@ -37,11 +36,10 @@ class="[&:not(:has(*>*:not(:empty)))]:hidden" >
- - - + -
+
- - +
@@ -58,10 +57,10 @@ import { clamp } from 'es-toolkit/compat' import { storeToRefs } from 'pinia' import Panel from 'primevue/panel' import { computed, nextTick, ref, watch } from 'vue' +import { useI18n } from 'vue-i18n' -import IconButton from '@/components/button/IconButton.vue' +import Button from '@/components/ui/button/Button.vue' import { buildTooltipConfig } from '@/composables/useTooltipConfig' -import { t } from '@/i18n' import { useSettingStore } from '@/platform/settings/settingStore' import { useTelemetry } from '@/platform/telemetry' import { useCommandStore } from '@/stores/commandStore' @@ -72,6 +71,7 @@ import ComfyRunButton from './ComfyRunButton' const settingsStore = useSettingStore() const commandStore = useCommandStore() +const { t } = useI18n() const { isIdle: isExecutionIdle } = storeToRefs(useExecutionStore()) const position = computed(() => settingsStore.get('Comfy.UseNewMenu')) @@ -301,7 +301,7 @@ const panelClass = computed(() => 'actionbar pointer-events-auto z-1300', isDragging.value && 'select-none pointer-events-none', isDocked.value - ? 'p-0 static mr-2 border-none bg-transparent' + ? 'p-0 static border-none bg-transparent' : 'fixed shadow-interface' ) ) diff --git a/src/components/button/IconButton.stories.ts b/src/components/button/IconButton.stories.ts deleted file mode 100644 index d774c0e5b..000000000 --- a/src/components/button/IconButton.stories.ts +++ /dev/null @@ -1,152 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/vue3-vite' - -import IconButton from './IconButton.vue' - -const meta: Meta = { - title: 'Components/Button/IconButton', - component: IconButton, - tags: ['autodocs'], - argTypes: { - size: { - control: { type: 'select' }, - options: ['sm', 'md'] - }, - type: { - control: { type: 'select' }, - options: ['primary', 'secondary', 'transparent'] - }, - border: { - control: 'boolean', - description: 'Toggle border attribute' - }, - disabled: { - control: 'boolean', - description: 'Toggle disable status' - }, - onClick: { action: 'clicked' } - } -} - -export default meta -type Story = StoryObj - -export const Primary: Story = { - render: (args) => ({ - components: { IconButton }, - setup() { - return { args } - }, - template: ` - - - - ` - }), - args: { - type: 'primary', - size: 'md' - } -} - -export const Secondary: Story = { - render: (args) => ({ - components: { IconButton }, - setup() { - return { args } - }, - template: ` - - - - ` - }), - args: { - type: 'secondary', - size: 'md' - } -} - -export const Transparent: Story = { - render: (args) => ({ - components: { IconButton }, - setup() { - return { args } - }, - template: ` - - - - ` - }), - args: { - type: 'transparent', - size: 'md' - } -} - -export const Small: Story = { - render: (args) => ({ - components: { IconButton }, - setup() { - return { args } - }, - template: ` - - - - ` - }), - args: { - type: 'secondary', - size: 'sm' - } -} - -export const AllVariants: Story = { - render: () => ({ - components: { IconButton }, - template: ` -
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
- - - - - - - - - -
-
- ` - }), - parameters: { - controls: { disable: true }, - actions: { disable: true } - } -} diff --git a/src/components/button/IconButton.vue b/src/components/button/IconButton.vue deleted file mode 100644 index 727674e31..000000000 --- a/src/components/button/IconButton.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - diff --git a/src/components/button/IconGroup.stories.ts b/src/components/button/IconGroup.stories.ts index c2fa1b96d..2cf407c74 100644 --- a/src/components/button/IconGroup.stories.ts +++ b/src/components/button/IconGroup.stories.ts @@ -1,6 +1,6 @@ import type { Meta, StoryObj } from '@storybook/vue3-vite' -import IconButton from './IconButton.vue' +import Button from '@/components/ui/button/Button.vue' import IconGroup from './IconGroup.vue' const meta: Meta = { @@ -16,18 +16,18 @@ type Story = StoryObj export const Basic: Story = { render: () => ({ - components: { IconGroup, IconButton }, + components: { IconGroup, Button }, template: ` - + + + ` }) diff --git a/src/components/button/MoreButton.vue b/src/components/button/MoreButton.vue index d19fb474d..d192efb90 100644 --- a/src/components/button/MoreButton.vue +++ b/src/components/button/MoreButton.vue @@ -1,9 +1,17 @@