feat(ui): replace unicode icons with solid-icons
Swap emoji and unicode glyphs for Tabler components so icons inherit currentColor and font-size and render consistently across platforms. - add src/components/doc-icons.ts to resolve doc-entry frontmatter icon keys to components; frontmatter now stores semantic keys - replace the align-*.png assets with TbOutlineAlign* icons - render RevealManager action SVGs as components instead of injected innerHTML strings - carry completion icons via an optional CompletionItem.icon field
This commit is contained in:
@@ -1,5 +1,11 @@
|
||||
import { Component, createMemo, createSignal, Show } from "solid-js";
|
||||
import { useLocation } from "@solidjs/router";
|
||||
import {
|
||||
TbOutlineFolderOpen,
|
||||
TbOutlineFolder,
|
||||
TbOutlineFile,
|
||||
TbOutlineChevronRight,
|
||||
} from "solid-icons/tb";
|
||||
import { type FileNode, type TocNode } from "../data-loader";
|
||||
import { useNavigateWithParams } from "./useNavigateWithParams";
|
||||
import { useScrollContainer } from "../App";
|
||||
@@ -61,10 +67,14 @@ export const FileTreeNode: Component<{
|
||||
onClick={handleClick}
|
||||
>
|
||||
<Show when={isDir}>
|
||||
<span class="mr-1 text-gray-400">{isExpanded() ? "📂" : "📁"}</span>
|
||||
{isExpanded() ? (
|
||||
<TbOutlineFolderOpen class="mr-1 text-gray-400" />
|
||||
) : (
|
||||
<TbOutlineFolder class="mr-1 text-gray-400" />
|
||||
)}
|
||||
</Show>
|
||||
<Show when={!isDir}>
|
||||
<span class="mr-1 text-gray-400">📄</span>
|
||||
<TbOutlineFile class="mr-1 text-gray-400" />
|
||||
</Show>
|
||||
<span class="text-sm truncate">{props.node.name}</span>
|
||||
</a>
|
||||
@@ -151,7 +161,7 @@ export const HeadingNode: Component<{
|
||||
<span
|
||||
class={`${hasChildren ? "" : "invisible"} ${isExpanded() ? "rotate-90" : ""} mt-1 inline-block transition-transform `}
|
||||
>
|
||||
▶
|
||||
<TbOutlineChevronRight class="inline-block align-[-0.125em]" />
|
||||
</span>
|
||||
</span>
|
||||
<a
|
||||
|
||||
Reference in New Issue
Block a user