@@ -1480,60 +1480,62 @@ onUnmounted(() => {
14801480 {{ sidebarCollapsed ? '›' : '‹' }}
14811481 </button>
14821482 <div class=" sidebar- content" >
1483- <div class=" sidebar- heading" >
1484- <div><p class=" eyebrow" >MARKER CATEGORIES</p><h2>标记分类</h2></div>
1485- <div class=" filter- actions" >
1486- <button type=" button" class=" text- button" @click=" selectAllCategories" >全选</button>
1487- <button type=" button" class=" text- button" @click=" clearCategories" >清空</button>
1483+ <div class=" sidebar- categories" >
1484+ <div class=" sidebar- heading" >
1485+ <div><p class=" eyebrow" >MARKER CATEGORIES</p><h2>标记分类</h2></div>
1486+ <div class=" filter- actions" >
1487+ <button type=" button" class=" text- button" @click=" selectAllCategories" >全选</button>
1488+ <button type=" button" class=" text- button" @click=" clearCategories" >清空</button>
1489+ </div>
14881490 </div>
1489- </div>
1490- <div class=" category- list" >
1491- <template v-for=" group in groupedCategories" :key=" group .label " >
1492- <div class=" category- group- block" :class=" { ' category-group-block--collapsed' : isCategoryGroupCollapsed (group .label ) }" >
1493- <button
1494- v-if=" collapsibleGroupLabels .has (group .label )"
1495- class=" category- group- toggle"
1496- type=" button"
1497- @click=" toggleCategoryGroup (group .label )"
1498- >
1499- <span class=" category- group- heading" >
1500- <span class=" category- group- title" >{{ group.label }}</span>
1501- </span>
1502- <span class=" category- group- meta" >
1503- <button
1504- class=" category- select- all category- select- all-- inline"
1505- :class=" {
1506- ' category-select-all--active' : isGroupFullySelected (group),
1507- ' category-select-all--partial' : isGroupPartiallySelected (group),
1508- }"
1509- type=" button"
1510- :aria-checked=" isGroupFullySelected (group) ? ' true' : isGroupPartiallySelected (group) ? ' mixed' : ' false' "
1511- role=" checkbox"
1512- @click.stop=" toggleCategoryGroupSelection (group)"
1513- >
1514- <span>全选</span>
1515- <span class=" category- select- all__box" aria-hidden=" true " >
1516- <i v-if=" isGroupFullySelected (group)" class=" category- select- all__check" />
1517- <i v-else-if=" isGroupPartiallySelected (group)" class=" category- select- all__dash" />
1518- </span>
1519- </button>
1520- <small>{{ group.categories.length }}</small>
1521- <i>{{ isCategoryGroupCollapsed(group.label) ? '▸' : '▾' }}</i>
1522- </span>
1523- </button>
1524- <p v-else class=" category- group" >{{ group.label }}</p>
1525- <div v-show=" ! isCategoryGroupCollapsed (group .label )" class=" category- group- items" >
1526- <button v-for=" category in group .categories " :key=" category .id " class=" category- button"
1527- :class=" { ' category-button--muted' : ! activeCategories .has (category .id ) }" type=" button" @click=" toggleCategory (category .id )" >
1528- <span class=" category- icon" :style=" { ' --category-color' : category .color }" >
1529- <img v-if=" category .iconUrl " :src=" publicAssetUrl (category .iconUrl )" alt=" " />
1530- <template v-else>{{ category.icon }}</template>
1491+ <div class=" category- list" >
1492+ <template v-for=" group in groupedCategories" :key=" group .label " >
1493+ <div class=" category- group- block" :class=" { ' category-group-block--collapsed' : isCategoryGroupCollapsed (group .label ) }" >
1494+ <button
1495+ v-if=" collapsibleGroupLabels .has (group .label )"
1496+ class=" category- group- toggle"
1497+ type=" button"
1498+ @click=" toggleCategoryGroup (group .label )"
1499+ >
1500+ <span class=" category- group- heading" >
1501+ <span class=" category- group- title" >{{ group.label }}</span>
1502+ </span>
1503+ <span class=" category- group- meta" >
1504+ <button
1505+ class=" category- select- all category- select- all-- inline"
1506+ :class=" {
1507+ ' category-select-all--active' : isGroupFullySelected (group),
1508+ ' category-select-all--partial' : isGroupPartiallySelected (group),
1509+ }"
1510+ type=" button"
1511+ :aria-checked=" isGroupFullySelected (group) ? ' true' : isGroupPartiallySelected (group) ? ' mixed' : ' false' "
1512+ role=" checkbox"
1513+ @click.stop=" toggleCategoryGroupSelection (group)"
1514+ >
1515+ <span>全选</span>
1516+ <span class=" category- select- all__box" aria-hidden=" true " >
1517+ <i v-if=" isGroupFullySelected (group)" class=" category- select- all__check" />
1518+ <i v-else-if=" isGroupPartiallySelected (group)" class=" category- select- all__dash" />
1519+ </span>
1520+ </button>
1521+ <small>{{ group.categories.length }}</small>
1522+ <i>{{ isCategoryGroupCollapsed(group.label) ? '▸' : '▾' }}</i>
15311523 </span>
1532- <span>{{ category.label }}</span><small>{{ visibleCounts[category.id] }}</small>
15331524 </button>
1525+ <p v-else class=" category- group" >{{ group.label }}</p>
1526+ <div v-show=" ! isCategoryGroupCollapsed (group .label )" class=" category- group- items" >
1527+ <button v-for=" category in group .categories " :key=" category .id " class=" category- button"
1528+ :class=" { ' category-button--muted' : ! activeCategories .has (category .id ) }" type=" button" @click=" toggleCategory (category .id )" >
1529+ <span class=" category- icon" :style=" { ' --category-color' : category .color }" >
1530+ <img v-if=" category .iconUrl " :src=" publicAssetUrl (category .iconUrl )" alt=" " />
1531+ <template v-else>{{ category.icon }}</template>
1532+ </span>
1533+ <span>{{ category.label }}</span><small>{{ visibleCounts[category.id] }}</small>
1534+ </button>
1535+ </div>
15341536 </div>
1535- </div >
1536- </template >
1537+ </template >
1538+ </div >
15371539 </div>
15381540 <div class=" sidebar- footer" >
15391541 <div class=" sidebar- expander" >
0 commit comments