mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-20 06:20:11 +00:00
## Summary Enable `better-tailwindcss/enforce-consistent-class-order` lint rule and auto-fix all 1027 violations across 263 files. Stacked on #9427. ## Changes - **What**: Sort Tailwind classes into consistent order via `eslint --fix` - Enable `enforce-consistent-class-order` as `'error'` in eslint config - Purely cosmetic reordering — no behavioral or visual changes ## Review Focus Mechanical auto-fix PR — all changes are class reordering only. This is the largest diff but lowest risk since it changes no class names, only their order. **Stack:** #9417 → #9427 → **this PR** Fixes #9300 (partial — 3 of 3 rules) ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-9428-fix-enable-enforce-consistent-class-order-tailwind-lint-rule-31a6d73d3650811c9065f5178ba3e724) by [Unito](https://www.unito.io)
54 lines
1.7 KiB
Vue
54 lines
1.7 KiB
Vue
<script setup lang="ts">
|
|
import { DropdownMenuItem, DropdownMenuSeparator } from 'reka-ui'
|
|
import type { Component } from 'vue'
|
|
|
|
import OverlayIcon from '@/components/common/OverlayIcon.vue'
|
|
import type { WorkflowMenuItem } from '@/types/workflowMenuItem'
|
|
import { cn } from '@/utils/tailwindUtil'
|
|
|
|
const {
|
|
items,
|
|
itemComponent = DropdownMenuItem,
|
|
separatorComponent = DropdownMenuSeparator
|
|
} = defineProps<{
|
|
items: WorkflowMenuItem[]
|
|
itemComponent?: Component
|
|
separatorComponent?: Component
|
|
}>()
|
|
</script>
|
|
|
|
<template>
|
|
<template v-for="(item, index) in items" :key="index">
|
|
<component
|
|
:is="separatorComponent"
|
|
v-if="item.separator"
|
|
class="my-1 w-full border-b border-border-subtle"
|
|
/>
|
|
<component
|
|
:is="itemComponent"
|
|
v-else-if="item.visible !== false"
|
|
:disabled="item.disabled"
|
|
:class="
|
|
cn(
|
|
'flex min-h-6 items-center gap-2 self-stretch rounded-sm p-2 outline-none',
|
|
!item.disabled && item.command && 'cursor-pointer',
|
|
'data-highlighted:bg-secondary-background-hover',
|
|
!item.disabled && 'hover:bg-secondary-background-hover',
|
|
'data-disabled:cursor-default data-disabled:opacity-50'
|
|
)
|
|
"
|
|
@select="() => item.command?.()"
|
|
>
|
|
<OverlayIcon v-if="item.overlayIcon" v-bind="item.overlayIcon" />
|
|
<i v-else-if="item.icon" :class="item.icon" />
|
|
<span class="flex-1">{{ item.label }}</span>
|
|
<span
|
|
v-if="item.badge"
|
|
class="ml-3 flex items-center gap-1 rounded-full bg-(--primary-background) px-1.5 py-0.5 text-xxs text-base-foreground uppercase"
|
|
>
|
|
{{ item.badge }}
|
|
</span>
|
|
</component>
|
|
</template>
|
|
</template>
|