{
  "schemaVersion": "1.0",
  "item": {
    "slug": "symbolpicker",
    "name": "SymbolPicker",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/SzpakKamil/symbolpicker",
    "canonicalUrl": "https://clawhub.ai/SzpakKamil/symbolpicker",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/symbolpicker",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=symbolpicker",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/SetUp.md",
      "references/SymbolColor.md",
      "references/SymbolPicker.md",
      "references/SymbolPickerModifiers.md",
      "references/SymbolPickerView.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "symbolpicker",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-09T15:26:58.279Z",
      "expiresAt": "2026-05-16T15:26:58.279Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=symbolpicker",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=symbolpicker",
        "contentDisposition": "attachment; filename=\"symbolpicker-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "symbolpicker"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/symbolpicker"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/symbolpicker",
    "agentPageUrl": "https://openagent3.xyz/skills/symbolpicker/agent",
    "manifestUrl": "https://openagent3.xyz/skills/symbolpicker/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/symbolpicker/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Overview",
        "body": "This skill provides expert guidance on SymbolPicker, a native, customizable SwiftUI component for selecting SF Symbols on iOS, iPadOS, macOS, and visionOS. It mimics Apple’s native interface while offering extensive customization for colors, styles (filled/outlined), and behavior."
      },
      {
        "title": "Agent Behavior (Follow These Rules)",
        "body": "Identify Platform Targets: SymbolPicker adapts to each platform (sheet on iOS, popover on iPad/Mac/visionOS). Always verify the target platform.\nPrioritize Modifiers: Direct users to the relevant SymbolPicker modifiers (e.g., .symbolPickerSymbolsStyle, .symbolPickerDismiss) for customization.\nHandle Colors Correctly: When discussing color selection, clarify if the user wants to use [Double] (RGBA), SwiftUI Color, or SymbolColor.\nEmphasize Accessibility: Highlight that SymbolPicker supports VoiceOver and Dynamic Type out of the box.\nContextual Examples: Provide concise code snippets showing the .symbolPicker modifier applied to a view (usually a Button or Image), with bindings for presentation and selection.\nCross-Platform Consistency: Remind users that the API is unified across platforms."
      },
      {
        "title": "Project Settings",
        "body": "Deployment Targets: iOS 14.0+, iPadOS 14.0+, macOS 11.0+, visionOS 1.0+.\nSwift Version: Swift 5.9+.\nXcode: Xcode 15.0+."
      },
      {
        "title": "Quick Decision Tree",
        "body": "Setting up a basic symbol picker?\n\nBasic installation and concepts → references/SymbolPicker.md\nTo apply the modifier to a view → references/SymbolPickerView.md\n\n\n\nPicking symbols with color?\n\nTo use different color binding types → references/SymbolPickerView.md\nTo understand the SymbolColor model → references/SymbolColor.md\n\n\n\nCustomizing appearance or behavior?\n\nSwitching between filled/outlined icons → references/SymbolPickerModifiers.md (.symbolPickerSymbolsStyle)\nControlling dismissal behavior → references/SymbolPickerModifiers.md (.symbolPickerDismiss)"
      },
      {
        "title": "Triage-First Playbook",
        "body": "\"The picker isn't showing up.\"\n\nCheck if .symbolPicker(isPresented: ...) is attached to a view that is part of the hierarchy.\nEnsure the isPresented binding is being toggled true.\n\n\n\"I want filled icons instead of outlines.\"\n\nUse .symbolPickerSymbolsStyle(.filled).\n\n\n\"How do I close the picker immediately after selecting a symbol?\"\n\nUse .symbolPickerDismiss(type: .onSymbolSelect)."
      },
      {
        "title": "Basic Usage",
        "body": "@State private var isPresented = false\n@State private var icon = \"star\"\n\nButton(\"Pick Icon\") { isPresented = true }\n    .symbolPicker(isPresented: $isPresented, symbolName: $icon)"
      },
      {
        "title": "With Color Selection",
        "body": "@State private var isPresented = false\n@State private var icon = \"star.fill\"\n@State private var color: Color = .red\n\nButton(\"Pick Icon & Color\") { isPresented = true }\n    .symbolPicker(isPresented: $isPresented, symbolName: $icon, color: $color)\n    .symbolPickerSymbolsStyle(.filled)\n    .symbolPickerDismiss(type: .onSymbolSelect)"
      },
      {
        "title": "Integration Quick Guide",
        "body": "Add Package Dependency: https://github.com/SzpakKamil/SymbolPicker.git (Min version 1.0.0).\nImport: import SymbolPicker.\nRequirements: iOS 14.0+, macOS 11.0+, visionOS 1.0+."
      },
      {
        "title": "Reference Files",
        "body": "Load these files as needed for specific topics:\n\nSymbolPicker.md - General overview, setup, and core benefits.\nSymbolPickerView.md - Detailed information on the picker view and its initializers.\nSymbolPickerModifiers.md - Customization of style (filled/outlined) and dismissal behavior.\nSymbolColor.md - Guide to using the SymbolColor enum and color bindings.\nSetUp.md - Step-by-step installation instructions."
      }
    ],
    "body": "SymbolPicker Skill\nOverview\n\nThis skill provides expert guidance on SymbolPicker, a native, customizable SwiftUI component for selecting SF Symbols on iOS, iPadOS, macOS, and visionOS. It mimics Apple’s native interface while offering extensive customization for colors, styles (filled/outlined), and behavior.\n\nAgent Behavior (Follow These Rules)\nIdentify Platform Targets: SymbolPicker adapts to each platform (sheet on iOS, popover on iPad/Mac/visionOS). Always verify the target platform.\nPrioritize Modifiers: Direct users to the relevant SymbolPicker modifiers (e.g., .symbolPickerSymbolsStyle, .symbolPickerDismiss) for customization.\nHandle Colors Correctly: When discussing color selection, clarify if the user wants to use [Double] (RGBA), SwiftUI Color, or SymbolColor.\nEmphasize Accessibility: Highlight that SymbolPicker supports VoiceOver and Dynamic Type out of the box.\nContextual Examples: Provide concise code snippets showing the .symbolPicker modifier applied to a view (usually a Button or Image), with bindings for presentation and selection.\nCross-Platform Consistency: Remind users that the API is unified across platforms.\nProject Settings\nDeployment Targets: iOS 14.0+, iPadOS 14.0+, macOS 11.0+, visionOS 1.0+.\nSwift Version: Swift 5.9+.\nXcode: Xcode 15.0+.\nQuick Decision Tree\n\nSetting up a basic symbol picker?\n\nBasic installation and concepts → references/SymbolPicker.md\nTo apply the modifier to a view → references/SymbolPickerView.md\n\nPicking symbols with color?\n\nTo use different color binding types → references/SymbolPickerView.md\nTo understand the SymbolColor model → references/SymbolColor.md\n\nCustomizing appearance or behavior?\n\nSwitching between filled/outlined icons → references/SymbolPickerModifiers.md (.symbolPickerSymbolsStyle)\nControlling dismissal behavior → references/SymbolPickerModifiers.md (.symbolPickerDismiss)\nTriage-First Playbook\n\"The picker isn't showing up.\"\nCheck if .symbolPicker(isPresented: ...) is attached to a view that is part of the hierarchy.\nEnsure the isPresented binding is being toggled true.\n\"I want filled icons instead of outlines.\"\nUse .symbolPickerSymbolsStyle(.filled).\n\"How do I close the picker immediately after selecting a symbol?\"\nUse .symbolPickerDismiss(type: .onSymbolSelect).\nCore Patterns Reference\nBasic Usage\n@State private var isPresented = false\n@State private var icon = \"star\"\n\nButton(\"Pick Icon\") { isPresented = true }\n    .symbolPicker(isPresented: $isPresented, symbolName: $icon)\n\nWith Color Selection\n@State private var isPresented = false\n@State private var icon = \"star.fill\"\n@State private var color: Color = .red\n\nButton(\"Pick Icon & Color\") { isPresented = true }\n    .symbolPicker(isPresented: $isPresented, symbolName: $icon, color: $color)\n    .symbolPickerSymbolsStyle(.filled)\n    .symbolPickerDismiss(type: .onSymbolSelect)\n\nIntegration Quick Guide\nAdd Package Dependency: https://github.com/SzpakKamil/SymbolPicker.git (Min version 1.0.0).\nImport: import SymbolPicker.\nRequirements: iOS 14.0+, macOS 11.0+, visionOS 1.0+.\nReference Files\n\nLoad these files as needed for specific topics:\n\nSymbolPicker.md - General overview, setup, and core benefits.\nSymbolPickerView.md - Detailed information on the picker view and its initializers.\nSymbolPickerModifiers.md - Customization of style (filled/outlined) and dismissal behavior.\nSymbolColor.md - Guide to using the SymbolColor enum and color bindings.\nSetUp.md - Step-by-step installation instructions."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/SzpakKamil/symbolpicker",
    "publisherUrl": "https://clawhub.ai/SzpakKamil/symbolpicker",
    "owner": "SzpakKamil",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/symbolpicker",
    "downloadUrl": "https://openagent3.xyz/downloads/symbolpicker",
    "agentUrl": "https://openagent3.xyz/skills/symbolpicker/agent",
    "manifestUrl": "https://openagent3.xyz/skills/symbolpicker/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/symbolpicker/agent.md"
  }
}