mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-03-13 17:10:06 +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)
64 lines
1.8 KiB
Vue
64 lines
1.8 KiB
Vue
<template>
|
|
<TabsContent value="custom" class="flex h-full flex-1 flex-col">
|
|
<div
|
|
v-for="(section, index) in sections"
|
|
:key="section.title ?? index"
|
|
class="h-full flex-1 overflow-y-auto"
|
|
>
|
|
<!-- Section header -->
|
|
<h3
|
|
v-if="section.title"
|
|
class="mb-0 px-4 py-2 text-xs font-medium tracking-wide text-muted-foreground uppercase"
|
|
>
|
|
{{ section.title }}
|
|
</h3>
|
|
<!-- Section tree -->
|
|
<TreeExplorerV2
|
|
v-model:expanded-keys="expandedKeys"
|
|
:root="section.root"
|
|
:show-context-menu="false"
|
|
@node-click="(node) => emit('nodeClick', node)"
|
|
/>
|
|
</div>
|
|
<div class="flex-none border-t border-border-default py-3 text-center">
|
|
<Button
|
|
variant="secondary"
|
|
class="justify-start gap-3"
|
|
@click="handleOpenManager"
|
|
>
|
|
<i class="icon-[lucide--blocks] size-5 text-muted-foreground" />
|
|
{{ $t('g.manageExtensions') }}
|
|
</Button>
|
|
</div>
|
|
</TabsContent>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
import { TabsContent } from 'reka-ui'
|
|
|
|
import TreeExplorerV2 from '@/components/common/TreeExplorerV2.vue'
|
|
import Button from '@/components/ui/button/Button.vue'
|
|
import type { ComfyNodeDefImpl } from '@/stores/nodeDefStore'
|
|
import type {
|
|
NodeLibrarySection,
|
|
RenderedTreeExplorerNode
|
|
} from '@/types/treeExplorerTypes'
|
|
import { useManagerState } from '@/workbench/extensions/manager/composables/useManagerState'
|
|
|
|
defineProps<{
|
|
sections: NodeLibrarySection<ComfyNodeDefImpl>[]
|
|
}>()
|
|
|
|
const expandedKeys = defineModel<string[]>('expandedKeys', { required: true })
|
|
|
|
const emit = defineEmits<{
|
|
nodeClick: [node: RenderedTreeExplorerNode<ComfyNodeDefImpl>]
|
|
}>()
|
|
|
|
const managerState = useManagerState()
|
|
|
|
async function handleOpenManager() {
|
|
await managerState.openManager()
|
|
}
|
|
</script>
|