{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "anibt",
  "homepage": "https://ui.anibt.net",
  "items": [
    {
      "name": "theme",
      "title": "AniBT Theme (白樱 / 夜樱)",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT 「贴纸手账」 design tokens on the standard shadcn names — 白樱 (light) on :root, 夜樱 (dark) on .dark — plus the anibt-* extras, recipes (@utility) and keyframes every @anibt component paints with.",
      "dependencies": [
        "@fontsource/fredoka"
      ],
      "cssVars": {
        "theme": {
          "font-anibt-display": "\"Fredoka\", ui-rounded, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"PingFang SC\", \"Hiragino Sans GB\", \"Microsoft YaHei\", \"Noto Sans CJK SC\", \"Noto Sans SC\", sans-serif",
          "ease-anibt-spring": "cubic-bezier(0.34, 1.56, 0.64, 1)",
          "ease-anibt-out": "cubic-bezier(0.2, 0.7, 0.2, 1)",
          "animate-anibt-blink": "anibt-blink 1.2s ease-in-out infinite",
          "animate-anibt-wiggle": "anibt-wiggle 0.5s cubic-bezier(0.2, 0.7, 0.2, 1)",
          "animate-anibt-pop": "anibt-pop 0.45s cubic-bezier(0.34, 1.56, 0.64, 1)",
          "animate-anibt-bob": "anibt-bob 2.2s ease-in-out infinite",
          "animate-anibt-twinkle": "anibt-twinkle 2.4s ease-in-out infinite",
          "animate-anibt-peek": "anibt-peek 4s ease-in-out infinite",
          "animate-anibt-ripple": "anibt-ripple 2s cubic-bezier(0.2, 0.7, 0.2, 1) infinite",
          "animate-anibt-sway": "anibt-sway 2.6s ease-in-out infinite",
          "animate-anibt-tape-in": "anibt-tape-in 0.3s cubic-bezier(0.2, 0.7, 0.2, 1)",
          "color-anibt-ink2": "var(--anibt-ink2)",
          "color-anibt-deep2": "var(--anibt-deep2)",
          "color-anibt-mark": "var(--anibt-mark)",
          "color-anibt-wash2": "var(--anibt-wash2)",
          "color-anibt-wash-line": "var(--anibt-wash-line)",
          "color-anibt-time": "var(--anibt-time)",
          "color-anibt-time-ink": "var(--anibt-time-ink)",
          "color-anibt-time-wash": "var(--anibt-time-wash)",
          "color-anibt-time-wash2": "var(--anibt-time-wash2)",
          "color-anibt-time-line": "var(--anibt-time-line)",
          "color-anibt-ok": "var(--anibt-ok)",
          "color-anibt-ok-fill": "var(--anibt-ok-fill)",
          "color-anibt-ok-wash": "var(--anibt-ok-wash)",
          "color-anibt-warn": "var(--anibt-warn)",
          "color-anibt-warn-fill": "var(--anibt-warn-fill)",
          "color-anibt-warn-wash": "var(--anibt-warn-wash)",
          "color-anibt-danger-fill": "var(--anibt-danger-fill)",
          "color-anibt-danger-wash": "var(--anibt-danger-wash)",
          "color-anibt-danger-line": "var(--anibt-danger-line)",
          "color-anibt-tip": "var(--anibt-tip)",
          "color-anibt-tip-ink": "var(--anibt-tip-ink)",
          "color-anibt-sticker-edge": "var(--anibt-sticker-edge)",
          "color-anibt-candy-edge": "var(--anibt-candy-edge)",
          "color-anibt-candy-ink": "var(--anibt-candy-ink)",
          "color-anibt-scrim": "var(--anibt-scrim)",
          "animate-anibt-indeterminate": "anibt-indeterminate 1.4s cubic-bezier(0.2, 0.7, 0.2, 1) infinite"
        },
        "light": {
          "font-sans": "-apple-system, BlinkMacSystemFont, \"Segoe UI\", \"PingFang SC\", \"Hiragino Sans GB\", \"Microsoft YaHei\", \"Noto Sans CJK SC\", \"Noto Sans SC\", sans-serif",
          "radius": "0.625rem",
          "background": "#f7f5fa",
          "foreground": "#1f1c28",
          "card": "#ffffff",
          "card-foreground": "#1f1c28",
          "popover": "#ffffff",
          "popover-foreground": "#1f1c28",
          "primary": "#c22a62",
          "primary-foreground": "#ffffff",
          "secondary": "#f3f0f7",
          "secondary-foreground": "#565163",
          "muted": "#f3f0f7",
          "muted-foreground": "#6e6a78",
          "accent": "#fff0f5",
          "accent-foreground": "#c22a62",
          "destructive": "#b3341d",
          "border": "#ebe6f0",
          "input": "#dad3e3",
          "ring": "#ff6f9c",
          "chart-1": "#ff6f9c",
          "chart-2": "#5aa9ff",
          "chart-3": "#25b582",
          "chart-4": "#f0a531",
          "chart-5": "#e5533d",
          "sidebar": "#f3f0f7",
          "sidebar-foreground": "#1f1c28",
          "sidebar-primary": "#c22a62",
          "sidebar-primary-foreground": "#ffffff",
          "sidebar-accent": "#ffffff",
          "sidebar-accent-foreground": "#1f1c28",
          "sidebar-border": "#ebe6f0",
          "sidebar-ring": "#ff6f9c",
          "anibt-ink2": "#565163",
          "anibt-deep2": "#ece7f2",
          "anibt-mark": "#ff6f9c",
          "anibt-wash2": "#ffdbe7",
          "anibt-wash-line": "#ffb3cb",
          "anibt-time": "#5aa9ff",
          "anibt-time-ink": "#1a64bf",
          "anibt-time-wash": "#edf5ff",
          "anibt-time-wash2": "#d6e9ff",
          "anibt-time-line": "#a9d0ff",
          "anibt-ok": "#0e7a53",
          "anibt-ok-fill": "#25b582",
          "anibt-ok-wash": "#e4f7ef",
          "anibt-warn": "#9a5b06",
          "anibt-warn-fill": "#f0a531",
          "anibt-warn-wash": "#fff4e0",
          "anibt-danger-fill": "#e5533d",
          "anibt-danger-wash": "#fff0ec",
          "anibt-danger-line": "#f6b8ab",
          "anibt-tip": "#26222f",
          "anibt-tip-ink": "#ffffff",
          "anibt-scrim": "rgba(31, 28, 40, 0.5)",
          "anibt-sticker-edge": "#ffffff",
          "anibt-candy": "linear-gradient(180deg, #ff8fb4 0%, #ff6c9b 52%, #f2558a 100%)",
          "anibt-candy-edge": "#d63e74",
          "anibt-candy-glow": "rgba(242, 85, 138, 0.42)",
          "anibt-candy-ink": "#ffffff",
          "anibt-candy-text-shadow": "0 1px 0 rgba(176, 28, 82, 0.38)",
          "anibt-water": "linear-gradient(180deg, #7dbcff 0%, #5aa9ff 52%, #3f92f0 100%)",
          "anibt-water-edge": "#2c78d6",
          "anibt-water-text-shadow": "0 1px 0 rgba(20, 80, 160, 0.38)",
          "anibt-gloss": "linear-gradient(180deg, rgba(255, 255, 255, 0.62), rgba(255, 255, 255, 0))",
          "anibt-sheen": "linear-gradient(115deg, transparent 35%, rgba(255, 255, 255, 0.5) 50%, transparent 65%)",
          "anibt-sleeve": "linear-gradient(135deg, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0) 38%)",
          "anibt-sparkle": "url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1.5c.9 5.6 4.9 9.6 10.5 10.5-5.6.9-9.6 4.9-10.5 10.5C11.1 16.9 7.1 12.9 1.5 12 7.1 11.1 11.1 7.1 12 1.5Z'/%3E%3C/svg%3E\")",
          "anibt-tape": "rgba(255, 111, 156, 0.66)",
          "anibt-tape-stripe": "rgba(255, 255, 255, 0.38)",
          "anibt-tape-fill": "repeating-linear-gradient(135deg, var(--anibt-tape-stripe) 0 2px, transparent 2px 5px), var(--anibt-tape)",
          "anibt-stitch": "linear-gradient(90deg, var(--input) 0 4px, transparent 4px 8px)",
          "anibt-stitch-y": "linear-gradient(180deg, var(--input) 0 4px, transparent 4px 8px)",
          "anibt-dot-a": "rgba(255, 111, 156, 0.2)",
          "anibt-dot-b": "rgba(90, 169, 255, 0.18)",
          "anibt-dots": "radial-gradient(circle, var(--anibt-dot-a) 0 1px, transparent 1.5px), radial-gradient(circle, var(--anibt-dot-b) 0 1px, transparent 1.5px)",
          "anibt-shadow-sticker": "0 1px 1px rgba(31, 28, 40, 0.1), 0 2px 6px rgba(31, 28, 40, 0.12)",
          "anibt-shadow-panel": "0 1px 0 rgba(31, 28, 40, 0.02), 0 6px 18px -10px rgba(70, 40, 100, 0.16)",
          "anibt-shadow-lift": "0 2px 4px rgba(31, 28, 40, 0.06), 0 14px 28px -10px rgba(90, 40, 120, 0.28)",
          "anibt-shadow-pop": "0 4px 10px -2px rgba(31, 28, 40, 0.1), 0 16px 32px -12px rgba(70, 40, 100, 0.3)",
          "anibt-ring-pink": "0 0 0 4px rgba(255, 111, 156, 0.18)",
          "anibt-ring-danger": "0 0 0 4px rgba(229, 83, 61, 0.14)"
        },
        "dark": {
          "font-sans": "-apple-system, BlinkMacSystemFont, \"Segoe UI\", \"PingFang SC\", \"Hiragino Sans GB\", \"Microsoft YaHei\", \"Noto Sans CJK SC\", \"Noto Sans SC\", sans-serif",
          "background": "#13111a",
          "foreground": "#f3f0f8",
          "card": "#1c1926",
          "card-foreground": "#f3f0f8",
          "popover": "#1c1926",
          "popover-foreground": "#f3f0f8",
          "primary": "#ffa3c3",
          "primary-foreground": "#1f1c28",
          "secondary": "#16141f",
          "secondary-foreground": "#bdb7cb",
          "muted": "#16141f",
          "muted-foreground": "#9690a6",
          "accent": "#3a2435",
          "accent-foreground": "#ffa3c3",
          "destructive": "#ff9d8a",
          "border": "#2b2738",
          "input": "#3b354a",
          "ring": "#ff7aa6",
          "chart-1": "#ff7aa6",
          "chart-2": "#6cb4ff",
          "chart-3": "#3fd09c",
          "chart-4": "#f0a531",
          "chart-5": "#ff6d55",
          "sidebar": "#16141f",
          "sidebar-foreground": "#f3f0f8",
          "sidebar-primary": "#ffa3c3",
          "sidebar-primary-foreground": "#1f1c28",
          "sidebar-accent": "#1c1926",
          "sidebar-accent-foreground": "#f3f0f8",
          "sidebar-border": "#2b2738",
          "sidebar-ring": "#ff7aa6",
          "anibt-ink2": "#bdb7cb",
          "anibt-deep2": "#252130",
          "anibt-mark": "#ff7aa6",
          "anibt-wash2": "#522e42",
          "anibt-wash-line": "#89425f",
          "anibt-time": "#6cb4ff",
          "anibt-time-ink": "#9fcdff",
          "anibt-time-wash": "#242c42",
          "anibt-time-wash2": "#2b3c5a",
          "anibt-time-line": "#3b6192",
          "anibt-ok": "#74e2b8",
          "anibt-ok-fill": "#3fd09c",
          "anibt-ok-wash": "#1d3034",
          "anibt-warn": "#f2c46d",
          "anibt-warn-fill": "#f0a531",
          "anibt-warn-wash": "#33291c",
          "anibt-danger-fill": "#ff6d55",
          "anibt-danger-wash": "#3a2229",
          "anibt-danger-line": "#824441",
          "anibt-tip": "#f3f0f8",
          "anibt-tip-ink": "#1f1c28",
          "anibt-scrim": "rgba(0, 0, 0, 0.6)",
          "anibt-sticker-edge": "#f1ebf6",
          "anibt-candy": "linear-gradient(180deg, #ff8fb4 0%, #ff6c9b 52%, #f2558a 100%)",
          "anibt-candy-edge": "#d63e74",
          "anibt-candy-glow": "rgba(242, 85, 138, 0.42)",
          "anibt-candy-ink": "#ffffff",
          "anibt-candy-text-shadow": "0 1px 0 rgba(176, 28, 82, 0.38)",
          "anibt-water": "linear-gradient(180deg, #7dbcff 0%, #5aa9ff 52%, #3f92f0 100%)",
          "anibt-water-edge": "#2c78d6",
          "anibt-water-text-shadow": "0 1px 0 rgba(20, 80, 160, 0.38)",
          "anibt-gloss": "linear-gradient(180deg, rgba(255, 255, 255, 0.62), rgba(255, 255, 255, 0))",
          "anibt-sheen": "linear-gradient(115deg, transparent 35%, rgba(255, 255, 255, 0.5) 50%, transparent 65%)",
          "anibt-sleeve": "linear-gradient(135deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0) 38%)",
          "anibt-sparkle": "url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1.5c.9 5.6 4.9 9.6 10.5 10.5-5.6.9-9.6 4.9-10.5 10.5C11.1 16.9 7.1 12.9 1.5 12 7.1 11.1 11.1 7.1 12 1.5Z'/%3E%3C/svg%3E\")",
          "anibt-tape": "rgba(255, 122, 166, 0.72)",
          "anibt-tape-stripe": "rgba(255, 255, 255, 0.26)",
          "anibt-tape-fill": "repeating-linear-gradient(135deg, var(--anibt-tape-stripe) 0 2px, transparent 2px 5px), var(--anibt-tape)",
          "anibt-stitch": "linear-gradient(90deg, var(--input) 0 4px, transparent 4px 8px)",
          "anibt-stitch-y": "linear-gradient(180deg, var(--input) 0 4px, transparent 4px 8px)",
          "anibt-dot-a": "rgba(255, 122, 166, 0.22)",
          "anibt-dot-b": "rgba(108, 180, 255, 0.24)",
          "anibt-dots": "radial-gradient(circle, var(--anibt-dot-a) 0 1px, transparent 1.5px), radial-gradient(circle, var(--anibt-dot-b) 0 1px, transparent 1.5px)",
          "anibt-shadow-sticker": "0 1px 1px rgba(0, 0, 0, 0.35), 0 2px 6px rgba(0, 0, 0, 0.35)",
          "anibt-shadow-panel": "0 1px 0 rgba(255, 255, 255, 0.02) inset, 0 8px 22px -12px rgba(0, 0, 0, 0.6)",
          "anibt-shadow-lift": "0 2px 4px rgba(0, 0, 0, 0.3), 0 16px 30px -10px rgba(0, 0, 0, 0.6)",
          "anibt-shadow-pop": "0 4px 10px -2px rgba(0, 0, 0, 0.35), 0 18px 34px -12px rgba(0, 0, 0, 0.65)",
          "anibt-ring-pink": "0 0 0 4px rgba(255, 122, 166, 0.22)",
          "anibt-ring-danger": "0 0 0 4px rgba(255, 109, 85, 0.2)"
        }
      },
      "css": {
        "@import \"@fontsource/fredoka/500.css\"": {},
        "@import \"@fontsource/fredoka/600.css\"": {},
        "@import \"@fontsource/fredoka/700.css\"": {},
        "@keyframes anibt-blink": {
          "0%, 100%": {
            "opacity": "1"
          },
          "50%": {
            "opacity": "0.35"
          }
        },
        "@keyframes anibt-wiggle": {
          "0%, 100%": {
            "transform": "rotate(0)"
          },
          "30%": {
            "transform": "rotate(-12deg)"
          },
          "65%": {
            "transform": "rotate(9deg)"
          }
        },
        "@keyframes anibt-pop": {
          "0%": {
            "transform": "scale(0.6)"
          },
          "60%": {
            "transform": "scale(1.25)"
          },
          "100%": {
            "transform": "scale(1)"
          }
        },
        "@keyframes anibt-bob": {
          "0%, 100%": {
            "translate": "0 0"
          },
          "50%": {
            "translate": "0 -3px"
          }
        },
        "@keyframes anibt-twinkle": {
          "0%, 100%": {
            "transform": "scale(0.55) rotate(0deg)",
            "opacity": "0.55"
          },
          "50%": {
            "transform": "scale(1) rotate(45deg)",
            "opacity": "1"
          }
        },
        "@keyframes anibt-peek": {
          "0%, 70%, 100%": {
            "translate": "0 0"
          },
          "80%": {
            "translate": "0 -5px"
          },
          "90%": {
            "translate": "0 0"
          }
        },
        "@keyframes anibt-ripple": {
          "0%": {
            "opacity": "0.7",
            "transform": "scale(0.9)"
          },
          "100%": {
            "opacity": "0",
            "transform": "scale(1.12)"
          }
        },
        "@keyframes anibt-sway": {
          "0%, 100%": {
            "transform": "rotate(-10deg)"
          },
          "50%": {
            "transform": "rotate(10deg)"
          }
        },
        "@keyframes anibt-tape-in": {
          "from": {
            "clip-path": "inset(0 100% 0 0)"
          },
          "to": {
            "clip-path": "inset(0 0 0 0)"
          }
        },
        "@utility anibt-ground": {
          "background-color": "var(--background)",
          "background-image": "var(--anibt-dots)",
          "background-size": "24px 24px",
          "background-position": "0 0, 12px 12px"
        },
        "@utility anibt-num": {
          "font-family": "var(--font-anibt-display)",
          "font-variant-numeric": "tabular-nums lining-nums",
          "font-feature-settings": "\"tnum\" 1, \"lnum\" 1"
        },
        "@utility anibt-ell": {
          "min-width": "0",
          "overflow": "hidden",
          "white-space": "nowrap",
          "text-overflow": "ellipsis"
        },
        "@utility anibt-clamp2": {
          "display": "-webkit-box",
          "-webkit-box-orient": "vertical",
          "-webkit-line-clamp": "2",
          "line-clamp": "2",
          "overflow": "hidden"
        },
        "@utility anibt-clamp2-fixed": {
          "display": "-webkit-box",
          "-webkit-box-orient": "vertical",
          "-webkit-line-clamp": "2",
          "line-clamp": "2",
          "overflow": "hidden",
          "overflow-wrap": "anywhere",
          "block-size": "2lh"
        },
        "@utility anibt-sheet": {
          "background-color": "var(--card)",
          "color": "var(--card-foreground)",
          "border-radius": "14px",
          "box-shadow": "0 0 0 1px var(--border), var(--anibt-shadow-panel)",
          "& .anibt-sheet": {
            "box-shadow": "0 0 0 1px var(--border)"
          }
        },
        "@utility anibt-pop": {
          "background-color": "var(--popover)",
          "color": "var(--popover-foreground)",
          "border-radius": "14px",
          "box-shadow": "0 0 0 1px var(--border), var(--anibt-shadow-pop)"
        },
        "@utility anibt-well": {
          "background-color": "var(--card)",
          "color": "var(--card-foreground)",
          "border-radius": "10px",
          "box-shadow": "0 0 0 1px var(--border)"
        },
        "@utility anibt-rim": {
          "box-shadow": "0 0 0 2px var(--anibt-sticker-edge), var(--anibt-shadow-sticker)"
        },
        "@utility anibt-rim-cut": {
          "filter": "drop-shadow(1.5px 0 0 var(--anibt-sticker-edge)) drop-shadow(-1.5px 0 0 var(--anibt-sticker-edge)) drop-shadow(0 1.5px 0 var(--anibt-sticker-edge)) drop-shadow(0 -1.5px 0 var(--anibt-sticker-edge)) drop-shadow(0 2px 3px rgba(31, 28, 40, 0.18))"
        },
        "@utility anibt-stitch": {
          "height": "1px",
          "background-image": "var(--anibt-stitch)",
          "background-size": "8px 1px",
          "background-repeat": "repeat-x"
        },
        "@utility anibt-stitch-under": {
          "background-image": "var(--anibt-stitch)",
          "background-size": "8px 1px",
          "background-repeat": "repeat-x",
          "background-position": "0 100%"
        },
        "@utility anibt-stitch-over": {
          "background-image": "var(--anibt-stitch)",
          "background-size": "8px 1px",
          "background-repeat": "repeat-x",
          "background-position": "0 0"
        },
        "@utility anibt-stitch-side": {
          "background-image": "var(--anibt-stitch-y)",
          "background-size": "1px 8px",
          "background-repeat": "repeat-y",
          "background-position": "100% 0"
        },
        "@utility anibt-tape": {
          "height": "6px",
          "pointer-events": "none",
          "background": "var(--anibt-tape-fill)",
          "clip-path": "polygon(0 0, 100% 0, calc(100% - 2px) 50%, 100% 100%, 0 100%, 2px 50%)"
        },
        "@utility anibt-tape-y": {
          "width": "6px",
          "pointer-events": "none",
          "background": "var(--anibt-tape-fill)",
          "clip-path": "polygon(0 0, 50% 2px, 100% 0, 100% 100%, 50% calc(100% - 2px), 0 100%)"
        },
        "@utility anibt-field": {
          "display": "flex",
          "align-items": "center",
          "gap": "8px",
          "height": "32px",
          "min-width": "0",
          "padding-inline": "12px",
          "border-radius": "10px",
          "background-color": "var(--card)",
          "color": "var(--muted-foreground)",
          "box-shadow": "inset 0 0 0 1px var(--input)",
          "font-size": "13px",
          "transition": "box-shadow 140ms cubic-bezier(0.2, 0.7, 0.2, 1), color 140ms cubic-bezier(0.2, 0.7, 0.2, 1)",
          "&:hover": {
            "box-shadow": "inset 0 0 0 1px var(--anibt-wash-line)"
          },
          "&:focus-within": {
            "color": "var(--accent-foreground)",
            "box-shadow": "inset 0 0 0 1.5px var(--ring), var(--anibt-ring-pink)"
          }
        },
        "@utility anibt-field-on": {
          "&, &.anibt-field, &.anibt-field:hover": {
            "color": "var(--accent-foreground)",
            "box-shadow": "inset 0 0 0 1.5px var(--ring), var(--anibt-ring-pink)"
          }
        },
        "@utility anibt-input": {
          "display": "flex",
          "align-items": "center",
          "width": "100%",
          "height": "32px",
          "padding-inline": "12px",
          "border-radius": "10px",
          "background-color": "var(--card)",
          "color": "var(--foreground)",
          "box-shadow": "inset 0 0 0 1px var(--input)",
          "font-size": "13px",
          "transition": "box-shadow 140ms cubic-bezier(0.2, 0.7, 0.2, 1)",
          "&:hover": {
            "box-shadow": "inset 0 0 0 1px var(--anibt-wash-line)"
          },
          "&:focus-visible": {
            "outline": "none",
            "box-shadow": "inset 0 0 0 1.5px var(--ring), var(--anibt-ring-pink)"
          }
        },
        "@utility anibt-input-on": {
          "&, &.anibt-input": {
            "box-shadow": "inset 0 0 0 1.5px var(--ring), var(--anibt-ring-pink)"
          }
        },
        "@utility anibt-label": {
          "display": "block",
          "margin-bottom": "6px",
          "font-size": "13px",
          "font-weight": "600",
          "color": "var(--anibt-ink2)"
        },
        "@utility anibt-kbd": {
          "display": "inline-grid",
          "flex": "none",
          "place-items": "center",
          "height": "20px",
          "min-width": "20px",
          "padding-inline": "4px",
          "border-radius": "6px",
          "background-color": "var(--muted)",
          "color": "var(--muted-foreground)",
          "box-shadow": "inset 0 -1px 0 var(--input), inset 0 0 0 1px var(--border)",
          "font-family": "var(--font-anibt-display)",
          "font-size": "12px",
          "font-weight": "600",
          "line-height": "1"
        },
        "@utility anibt-btn": {
          "display": "inline-flex",
          "align-items": "center",
          "justify-content": "center",
          "gap": "8px",
          "height": "32px",
          "padding-inline": "16px",
          "border": "0",
          "border-radius": "10px",
          "background-color": "var(--card)",
          "color": "var(--foreground)",
          "box-shadow": "inset 0 0 0 1px var(--input), 0 1.5px 0 var(--input)",
          "font-size": "13px",
          "font-weight": "600",
          "line-height": "1",
          "white-space": "nowrap",
          "cursor": "pointer",
          "transition": "transform 0.14s cubic-bezier(0.2, 0.7, 0.2, 1), box-shadow 0.14s cubic-bezier(0.2, 0.7, 0.2, 1), background-color 0.14s, color 0.14s, filter 0.14s",
          "&:hover": {
            "color": "var(--accent-foreground)",
            "transform": "translateY(-1px)",
            "box-shadow": "inset 0 0 0 1px var(--anibt-wash-line), 0 2.5px 0 var(--anibt-wash-line)"
          },
          "&:active": {
            "color": "var(--accent-foreground)",
            "background-color": "var(--accent)",
            "transform": "translateY(1.5px)",
            "box-shadow": "inset 0 0 0 1px var(--anibt-wash-line), 0 0 0 var(--anibt-wash-line)"
          }
        },
        "@utility anibt-btn-raised": {
          "&, &.anibt-btn": {
            "background-color": "var(--card)",
            "color": "var(--foreground)",
            "box-shadow": "inset 0 0 0 1px var(--input), 0 1.5px 0 var(--input)",
            "transition": "transform 0.14s cubic-bezier(0.2, 0.7, 0.2, 1), box-shadow 0.14s cubic-bezier(0.2, 0.7, 0.2, 1), background-color 0.14s, color 0.14s"
          },
          "&:hover, &.anibt-btn:hover": {
            "color": "var(--accent-foreground)",
            "transform": "translateY(-1px)",
            "box-shadow": "inset 0 0 0 1px var(--anibt-wash-line), 0 2.5px 0 var(--anibt-wash-line)"
          },
          "&:active, &.anibt-btn:active": {
            "color": "var(--accent-foreground)",
            "background-color": "var(--accent)",
            "transform": "translateY(1.5px)",
            "box-shadow": "inset 0 0 0 1px var(--anibt-wash-line), 0 0 0 var(--anibt-wash-line)"
          }
        },
        "@utility anibt-btn-primary": {
          "&, &.anibt-btn": {
            "background-color": "var(--anibt-candy-edge)",
            "background-image": "var(--anibt-candy)",
            "color": "var(--anibt-candy-ink)",
            "text-shadow": "var(--anibt-candy-text-shadow)",
            "box-shadow": "inset 0 1px 0 rgba(255, 255, 255, 0.45), 0 1.5px 0 var(--anibt-candy-edge), 0 4px 10px -4px var(--anibt-candy-glow)",
            "transition": "transform 0.14s cubic-bezier(0.2, 0.7, 0.2, 1), box-shadow 0.14s cubic-bezier(0.2, 0.7, 0.2, 1), background-color 0.14s, color 0.14s, filter 0.14s"
          },
          "&::before": {
            "content": "\"\"",
            "position": "absolute",
            "top": "2px",
            "right": "8px",
            "left": "8px",
            "height": "42%",
            "border-radius": "6px",
            "background-image": "var(--anibt-gloss)",
            "opacity": "0.7",
            "pointer-events": "none"
          },
          "&::after": {
            "content": "\"\"",
            "position": "absolute",
            "top": "4px",
            "right": "6px",
            "width": "8px",
            "height": "8px",
            "background-color": "#fff",
            "-webkit-mask": "var(--anibt-sparkle) center / contain no-repeat",
            "mask": "var(--anibt-sparkle) center / contain no-repeat",
            "transform": "scale(0) rotate(-45deg)",
            "transition": "transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1)",
            "pointer-events": "none"
          },
          "&:hover, &.anibt-btn:hover": {
            "color": "var(--anibt-candy-ink)",
            "transform": "translateY(-1px)",
            "filter": "saturate(1.08) brightness(1.03)",
            "box-shadow": "inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 2.5px 0 var(--anibt-candy-edge), 0 8px 16px -6px var(--anibt-candy-glow)"
          },
          "&:hover::after": {
            "transform": "scale(1) rotate(0deg)"
          },
          "&:active, &.anibt-btn:active": {
            "color": "var(--anibt-candy-ink)",
            "transform": "translateY(1.5px)",
            "filter": "saturate(1.05) brightness(0.97)",
            "box-shadow": "inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 0 0 var(--anibt-candy-edge), 0 1px 2px var(--anibt-candy-glow)"
          },
          "&:is(:disabled, [aria-disabled=\"true\"]):not([aria-busy=\"true\"])": {
            "background-image": "none",
            "background-color": "var(--muted)",
            "color": "var(--muted-foreground)",
            "text-shadow": "none",
            "filter": "none",
            "transform": "none",
            "box-shadow": "inset 0 0 0 1px var(--border)"
          },
          "&:is(:disabled, [aria-disabled=\"true\"])::before, &:is(:disabled, [aria-disabled=\"true\"])::after": {
            "display": "none"
          }
        },
        "@utility anibt-btn-on": {
          "&.anibt-btn, &.anibt-btn:hover, &.anibt-btn-raised, &.anibt-btn-raised:hover": {
            "background-color": "var(--accent)",
            "color": "var(--accent-foreground)",
            "transform": "none",
            "box-shadow": "inset 0 0 0 1px var(--anibt-wash-line), 0 1.5px 0 var(--anibt-wash-line)"
          }
        },
        "@utility anibt-btn-ghost": {
          "&, &.anibt-btn": {
            "background-color": "transparent",
            "color": "var(--anibt-ink2)",
            "box-shadow": "none",
            "transition": "transform 0.14s cubic-bezier(0.2, 0.7, 0.2, 1), box-shadow 0.14s cubic-bezier(0.2, 0.7, 0.2, 1), background-color 0.14s, color 0.14s, filter 0.14s"
          },
          "&:hover, &.anibt-btn:hover": {
            "background-color": "var(--accent)",
            "color": "var(--accent-foreground)",
            "transform": "none",
            "box-shadow": "none"
          },
          "&:active, &.anibt-btn:active": {
            "background-color": "var(--anibt-wash2)",
            "color": "var(--accent-foreground)",
            "transform": "none",
            "box-shadow": "none"
          }
        },
        "@utility anibt-btn-danger": {
          "&, &.anibt-btn": {
            "background-color": "var(--anibt-danger-wash)",
            "color": "var(--destructive)",
            "box-shadow": "inset 0 0 0 1px var(--anibt-danger-line), 0 1.5px 0 var(--anibt-danger-line)",
            "transition": "transform 0.14s cubic-bezier(0.2, 0.7, 0.2, 1), box-shadow 0.14s cubic-bezier(0.2, 0.7, 0.2, 1), background-color 0.14s, color 0.14s, filter 0.14s"
          },
          "&:hover, &.anibt-btn:hover": {
            "background-color": "var(--anibt-danger-wash)",
            "color": "var(--destructive)",
            "transform": "translateY(-1px)",
            "box-shadow": "inset 0 0 0 1px var(--anibt-danger-fill), 0 2.5px 0 var(--anibt-danger-line)"
          },
          "&:active, &.anibt-btn:active": {
            "transform": "translateY(1.5px)",
            "box-shadow": "inset 0 0 0 1px var(--anibt-danger-fill), 0 0 0 var(--anibt-danger-line)"
          }
        },
        "@utility anibt-btn-sm": {
          "&, &.anibt-btn": {
            "height": "28px",
            "padding-inline": "12px",
            "font-size": "12px"
          }
        },
        "@utility anibt-btn-lg": {
          "&, &.anibt-btn": {
            "height": "36px",
            "padding-inline": "20px",
            "font-size": "14px"
          }
        },
        "@utility anibt-icobtn": {
          "display": "inline-grid",
          "flex": "none",
          "place-items": "center",
          "width": "32px",
          "height": "32px",
          "border": "0",
          "border-radius": "10px",
          "background-color": "var(--card)",
          "color": "var(--anibt-ink2)",
          "box-shadow": "inset 0 0 0 1px var(--input), 0 1.5px 0 var(--input)",
          "cursor": "pointer",
          "transition": "transform 0.14s cubic-bezier(0.2, 0.7, 0.2, 1), background-color 0.14s, color 0.14s, box-shadow 0.14s",
          "&:hover": {
            "color": "var(--accent-foreground)",
            "box-shadow": "inset 0 0 0 1px var(--anibt-wash-line), 0 1.5px 0 var(--anibt-wash-line)"
          },
          "&:hover > svg": {
            "animation": "anibt-wiggle 0.5s cubic-bezier(0.2, 0.7, 0.2, 1)"
          },
          "&:active": {
            "transform": "translateY(1px) scale(0.96)"
          }
        },
        "@utility anibt-icobtn-sm": {
          "&, &.anibt-icobtn": {
            "width": "28px",
            "height": "28px"
          }
        },
        "@utility anibt-icobtn-ghost": {
          "&, &.anibt-icobtn": {
            "background-color": "transparent",
            "box-shadow": "none"
          },
          "&:hover, &.anibt-icobtn:hover": {
            "background-color": "var(--accent)",
            "color": "var(--accent-foreground)",
            "box-shadow": "none"
          }
        },
        "@utility anibt-tabs": {
          "position": "relative",
          "display": "flex",
          "min-width": "0",
          "align-items": "flex-end",
          "gap": "4px",
          "padding-bottom": "6px",
          "background-image": "var(--anibt-stitch)",
          "background-size": "8px 1px",
          "background-repeat": "repeat-x",
          "background-position": "0 100%"
        },
        "@utility anibt-tab": {
          "position": "relative",
          "display": "inline-flex",
          "flex": "none",
          "align-items": "center",
          "gap": "6px",
          "height": "32px",
          "padding-inline": "12px",
          "border-radius": "10px",
          "font-size": "13px",
          "font-weight": "600",
          "white-space": "nowrap",
          "color": "var(--anibt-ink2)",
          "transition": "color 140ms cubic-bezier(0.2, 0.7, 0.2, 1), background-color 140ms cubic-bezier(0.2, 0.7, 0.2, 1)",
          "&:hover": {
            "color": "var(--foreground)",
            "background-color": "var(--accent)"
          }
        },
        "@utility anibt-tab-on": {
          "&.anibt-tab, &.anibt-tab:hover": {
            "color": "var(--foreground)"
          },
          "&::after": {
            "content": "\"\"",
            "position": "absolute",
            "right": "8px",
            "bottom": "-5px",
            "left": "8px",
            "height": "6px",
            "pointer-events": "none",
            "background": "var(--anibt-tape-fill)",
            "clip-path": "polygon(0 0, 100% 0, calc(100% - 2px) 50%, 100% 100%, 0 100%, 2px 50%)",
            "transform": "rotate(-1.5deg)",
            "animation": "anibt-tape-in 0.3s cubic-bezier(0.2, 0.7, 0.2, 1)"
          }
        },
        "@utility anibt-seg": {
          "position": "relative",
          "display": "inline-flex",
          "align-items": "center",
          "gap": "2px",
          "padding": "4px",
          "border-radius": "10px",
          "background-color": "var(--muted)",
          "box-shadow": "inset 0 0 0 1px var(--border)",
          "& > *": {
            "display": "inline-flex",
            "align-items": "center",
            "justify-content": "center",
            "gap": "4px",
            "height": "24px",
            "padding-inline": "8px",
            "border": "0",
            "border-radius": "6px",
            "background-color": "transparent",
            "color": "var(--anibt-ink2)",
            "font-size": "12px",
            "font-weight": "600",
            "white-space": "nowrap",
            "cursor": "pointer",
            "transition": "color 0.2s cubic-bezier(0.2, 0.7, 0.2, 1), background-color 0.2s cubic-bezier(0.2, 0.7, 0.2, 1), box-shadow 0.2s cubic-bezier(0.2, 0.7, 0.2, 1)"
          },
          "& > * svg": {
            "color": "var(--muted-foreground)"
          },
          "& > :is([data-state=\"on\"], [data-state=\"active\"], [aria-pressed=\"true\"], [aria-selected=\"true\"], [aria-checked=\"true\"], [aria-current=\"true\"], [aria-current=\"page\"])": {
            "background-color": "var(--card)",
            "color": "var(--foreground)",
            "box-shadow": "var(--anibt-shadow-sticker)"
          },
          "& > :is([data-state=\"on\"], [data-state=\"active\"], [aria-pressed=\"true\"], [aria-selected=\"true\"], [aria-checked=\"true\"], [aria-current=\"true\"], [aria-current=\"page\"]) svg": {
            "color": "var(--anibt-mark)"
          }
        },
        "@utility anibt-seg-on": {
          "background-color": "var(--card)",
          "color": "var(--foreground)",
          "box-shadow": "var(--anibt-shadow-sticker)",
          "& svg": {
            "color": "var(--anibt-mark)"
          }
        },
        "@utility anibt-chip": {
          "display": "inline-flex",
          "align-items": "center",
          "gap": "4px",
          "height": "28px",
          "padding-inline": "12px",
          "border": "0",
          "border-radius": "10px",
          "background-color": "var(--card)",
          "color": "var(--anibt-ink2)",
          "box-shadow": "inset 0 0 0 1px var(--input)",
          "font-size": "12px",
          "font-weight": "600",
          "white-space": "nowrap",
          "transition": "transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1), background-color 140ms, color 140ms",
          "&:is(button, a, label, [role=\"button\"], [role=\"checkbox\"], [role=\"radio\"]):hover": {
            "transform": "translateY(-1px)",
            "color": "var(--accent-foreground)"
          }
        },
        "@utility anibt-chip-on": {
          "&, &.anibt-chip": {
            "color": "var(--accent-foreground)",
            "background-color": "var(--accent)",
            "box-shadow": "inset 0 0 0 1px var(--anibt-wash-line)"
          }
        },
        "@utility anibt-tag": {
          "display": "inline-flex",
          "align-items": "center",
          "gap": "4px",
          "height": "20px",
          "padding-inline": "8px",
          "border-radius": "6px",
          "background-color": "var(--muted)",
          "color": "var(--anibt-ink2)",
          "box-shadow": "inset 0 0 0 1px var(--border)",
          "font-size": "12px",
          "font-weight": "600",
          "line-height": "1",
          "white-space": "nowrap"
        },
        "@utility anibt-tag-res": {
          "&, &.anibt-tag": {
            "background-color": "var(--anibt-time-wash)",
            "color": "var(--anibt-time-ink)",
            "box-shadow": "none",
            "font-family": "var(--font-anibt-display)"
          }
        },
        "@utility anibt-tag-lang": {
          "&, &.anibt-tag": {
            "background-color": "var(--accent)",
            "color": "var(--accent-foreground)",
            "box-shadow": "none"
          }
        },
        "@utility anibt-tag-ok": {
          "&, &.anibt-tag": {
            "background-color": "var(--anibt-ok-wash)",
            "color": "var(--anibt-ok)",
            "box-shadow": "none"
          }
        },
        "@utility anibt-tag-warn": {
          "&, &.anibt-tag": {
            "background-color": "var(--anibt-warn-wash)",
            "color": "var(--anibt-warn)",
            "box-shadow": "none"
          }
        },
        "@utility anibt-tag-danger": {
          "&, &.anibt-tag": {
            "background-color": "var(--anibt-danger-wash)",
            "color": "var(--destructive)",
            "box-shadow": "none"
          }
        },
        "@utility anibt-sticker": {
          "display": "inline-flex",
          "align-items": "center",
          "gap": "4px",
          "height": "20px",
          "padding-inline": "8px",
          "border-radius": "6px",
          "background-color": "var(--card)",
          "color": "var(--card-foreground)",
          "box-shadow": "0 0 0 2px var(--anibt-sticker-edge), var(--anibt-shadow-sticker)",
          "font-family": "var(--font-anibt-display)",
          "font-size": "12px",
          "font-weight": "600",
          "line-height": "1",
          "white-space": "nowrap",
          "transform": "rotate(var(--anibt-tilt, 0deg))",
          "transition": "transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1)"
        },
        "@utility anibt-sticker-candy": {
          "&, &.anibt-sticker": {
            "background-color": "var(--anibt-candy-edge)",
            "background-image": "var(--anibt-candy)",
            "color": "var(--anibt-candy-ink)",
            "text-shadow": "var(--anibt-candy-text-shadow)"
          }
        },
        "@utility anibt-sticker-water": {
          "&, &.anibt-sticker": {
            "background-color": "var(--anibt-water-edge)",
            "background-image": "var(--anibt-water)",
            "color": "var(--anibt-candy-ink)",
            "text-shadow": "var(--anibt-water-text-shadow)"
          }
        },
        "@utility anibt-candy": {
          "background-color": "var(--anibt-candy-edge)",
          "background-image": "var(--anibt-candy)",
          "color": "var(--anibt-candy-ink)",
          "text-shadow": "var(--anibt-candy-text-shadow)"
        },
        "@utility anibt-water": {
          "background-color": "var(--anibt-water-edge)",
          "background-image": "var(--anibt-water)",
          "color": "var(--anibt-candy-ink)",
          "text-shadow": "var(--anibt-water-text-shadow)"
        },
        "@utility anibt-count": {
          "display": "inline-grid",
          "flex": "none",
          "place-items": "center",
          "min-width": "20px",
          "height": "20px",
          "padding-inline": "4px",
          "border-radius": "999px",
          "background-color": "var(--anibt-candy-edge)",
          "background-image": "var(--anibt-candy)",
          "color": "var(--anibt-candy-ink)",
          "text-shadow": "var(--anibt-candy-text-shadow)",
          "box-shadow": "0 0 0 2px var(--anibt-sticker-edge), var(--anibt-shadow-sticker)",
          "font-family": "var(--font-anibt-display)",
          "font-size": "12px",
          "font-weight": "600",
          "line-height": "1"
        },
        "@utility anibt-count-quiet": {
          "&, &.anibt-count": {
            "background-image": "none",
            "background-color": "var(--muted)",
            "color": "var(--muted-foreground)",
            "text-shadow": "none",
            "box-shadow": "inset 0 0 0 1px var(--border)"
          }
        },
        "@utility anibt-status": {
          "display": "inline-flex",
          "align-items": "center",
          "gap": "4px",
          "height": "20px",
          "max-width": "100%",
          "padding-inline": "8px",
          "border-radius": "6px",
          "background-color": "var(--muted)",
          "color": "var(--anibt-ink2)",
          "font-size": "12px",
          "font-weight": "600",
          "line-height": "1",
          "white-space": "nowrap",
          "&::before": {
            "content": "\"\"",
            "flex": "none",
            "width": "6px",
            "height": "6px",
            "border-radius": "999px",
            "background-color": "currentColor"
          }
        },
        "@utility anibt-status-ok": {
          "&, &.anibt-status": {
            "background-color": "var(--anibt-ok-wash)",
            "color": "var(--anibt-ok)"
          }
        },
        "@utility anibt-status-run": {
          "&, &.anibt-status": {
            "background-color": "var(--anibt-time-wash)",
            "color": "var(--anibt-time-ink)"
          },
          "&::before": {
            "animation": "anibt-blink 1.2s ease-in-out infinite"
          }
        },
        "@utility anibt-status-fail": {
          "&, &.anibt-status": {
            "background-color": "var(--anibt-danger-wash)",
            "color": "var(--destructive)"
          }
        },
        "@utility anibt-status-warn": {
          "&, &.anibt-status": {
            "background-color": "var(--anibt-warn-wash)",
            "color": "var(--anibt-warn)"
          }
        },
        "@utility anibt-status-mute": {
          "&, &.anibt-status": {
            "background-color": "var(--muted)",
            "color": "var(--muted-foreground)",
            "box-shadow": "inset 0 0 0 1px var(--border)"
          }
        },
        "@utility anibt-status-on": {
          "&, &.anibt-status": {
            "background-color": "var(--accent)",
            "color": "var(--accent-foreground)"
          }
        },
        "@utility anibt-dot": {
          "display": "inline-block",
          "flex": "none",
          "width": "6px",
          "height": "6px",
          "border-radius": "999px",
          "background-color": "var(--anibt-mark)",
          "vertical-align": "middle"
        },
        "@utility anibt-dot-ok": {
          "&, &.anibt-dot": {
            "background-color": "var(--anibt-ok-fill)"
          }
        },
        "@utility anibt-dot-warn": {
          "&, &.anibt-dot": {
            "background-color": "var(--anibt-warn-fill)"
          }
        },
        "@utility anibt-dot-danger": {
          "&, &.anibt-dot": {
            "background-color": "var(--anibt-danger-fill)"
          }
        },
        "@utility anibt-dot-time": {
          "&, &.anibt-dot": {
            "background-color": "var(--anibt-time)"
          }
        },
        "@utility anibt-dot-hollow": {
          "&, &.anibt-dot": {
            "background-color": "transparent",
            "box-shadow": "inset 0 0 0 1.5px var(--muted-foreground)"
          }
        },
        "@utility anibt-dot-mute": {
          "&, &.anibt-dot": {
            "background-color": "var(--muted-foreground)"
          }
        },
        "@utility anibt-th": {
          "display": "grid",
          "gap": "12px",
          "align-items": "center",
          "height": "36px",
          "padding-inline": "16px",
          "background-image": "var(--anibt-stitch)",
          "background-size": "8px 1px",
          "background-repeat": "repeat-x",
          "background-position": "0 100%",
          "font-size": "12px",
          "font-weight": "600",
          "white-space": "nowrap",
          "color": "var(--muted-foreground)"
        },
        "@utility anibt-tr": {
          "display": "grid",
          "gap": "12px",
          "align-items": "center",
          "min-height": "48px",
          "padding-inline": "16px",
          "background-image": "var(--anibt-stitch)",
          "background-size": "8px 1px",
          "background-repeat": "repeat-x",
          "background-position": "0 100%",
          "font-size": "13px",
          "&:last-child": {
            "background-image": "none"
          },
          "&:hover": {
            "background-color": "var(--muted)"
          },
          "& > *": {
            "min-width": "0"
          }
        },
        "@utility anibt-stat": {
          "display": "flex",
          "min-width": "0",
          "flex-direction": "column",
          "gap": "2px",
          "padding": "12px 16px"
        },
        "@utility anibt-stat-value": {
          "font-family": "var(--font-anibt-display)",
          "font-size": "24px",
          "font-weight": "600",
          "line-height": "1.2",
          "font-variant-numeric": "tabular-nums lining-nums"
        },
        "@utility anibt-avatar": {
          "display": "inline-flex",
          "flex": "none",
          "align-items": "center",
          "justify-content": "center",
          "border-radius": "6px",
          "background-color": "var(--accent)",
          "color": "var(--accent-foreground)",
          "font-family": "var(--font-anibt-display)",
          "font-weight": "600"
        },
        "@utility anibt-menu": {
          "display": "flex",
          "flex-direction": "column",
          "padding": "4px"
        },
        "@utility anibt-menu-item": {
          "display": "flex",
          "align-items": "center",
          "gap": "8px",
          "height": "32px",
          "padding-inline": "8px",
          "border-radius": "10px",
          "font-size": "13px",
          "color": "var(--foreground)",
          "& svg": {
            "color": "var(--muted-foreground)"
          },
          "&:hover, &[data-highlighted], &[data-state=\"open\"], &[aria-current=\"true\"], &[aria-selected=\"true\"]": {
            "background-color": "var(--accent)",
            "color": "var(--accent-foreground)"
          },
          "&:hover svg, &[data-highlighted] svg, &[aria-current=\"true\"] svg, &[aria-selected=\"true\"] svg": {
            "color": "var(--anibt-mark)"
          }
        },
        "@utility anibt-menu-head": {
          "padding": "8px 8px 4px",
          "font-size": "12px",
          "font-weight": "600",
          "color": "var(--muted-foreground)"
        },
        "@utility anibt-menu-sep": {
          "height": "1px",
          "margin": "4px 8px",
          "background-image": "var(--anibt-stitch)",
          "background-size": "8px 1px",
          "background-repeat": "repeat-x"
        },
        "@utility anibt-check": {
          "display": "inline-flex",
          "flex": "none",
          "align-items": "center",
          "justify-content": "center",
          "width": "18px",
          "height": "18px",
          "border-radius": "6px",
          "background-color": "var(--card)",
          "color": "var(--anibt-candy-ink)",
          "box-shadow": "inset 0 0 0 1.5px var(--input)",
          "transition": "background-color 0.15s, box-shadow 0.15s"
        },
        "@utility anibt-check-on": {
          "&, &.anibt-check": {
            "background-color": "var(--anibt-candy-edge)",
            "background-image": "var(--anibt-candy)",
            "color": "var(--anibt-candy-ink)",
            "box-shadow": "0 1px 0 var(--anibt-candy-edge)"
          }
        },
        "@utility anibt-switch": {
          "display": "inline-flex",
          "position": "relative",
          "flex": "none",
          "align-items": "center",
          "width": "36px",
          "height": "20px",
          "padding": "2px",
          "border-radius": "999px",
          "background-color": "var(--muted)",
          "box-shadow": "inset 0 0 0 1.5px var(--input)",
          "transition": "background-color 0.2s, box-shadow 0.2s"
        },
        "@utility anibt-switch-on": {
          "&, &.anibt-switch": {
            "background-color": "var(--anibt-candy-edge)",
            "background-image": "var(--anibt-candy)",
            "box-shadow": "0 1px 0 var(--anibt-candy-edge)"
          }
        },
        "@utility anibt-pager-item": {
          "display": "inline-flex",
          "flex": "none",
          "align-items": "center",
          "justify-content": "center",
          "gap": "4px",
          "min-width": "32px",
          "height": "32px",
          "padding-inline": "8px",
          "border-radius": "10px",
          "color": "var(--anibt-ink2)",
          "font-family": "var(--font-anibt-display)",
          "font-size": "13px",
          "font-weight": "500",
          "line-height": "1",
          "transition": "background-color 140ms, color 140ms",
          "&:hover": {
            "background-color": "var(--accent)",
            "color": "var(--accent-foreground)"
          }
        },
        "@utility anibt-pager-item-on": {
          "&, &.anibt-pager-item, &.anibt-pager-item:hover": {
            "background-color": "var(--accent)",
            "color": "var(--accent-foreground)",
            "box-shadow": "inset 0 0 0 1px var(--anibt-wash-line)",
            "font-weight": "600"
          }
        },
        "@utility anibt-tip": {
          "padding": "4px 8px",
          "border-radius": "6px",
          "background-color": "var(--anibt-tip)",
          "color": "var(--anibt-tip-ink)",
          "font-size": "12px",
          "line-height": "16px",
          "box-shadow": "var(--anibt-shadow-sticker)"
        },
        "@keyframes anibt-indeterminate": {
          "from": {
            "transform": "translateX(-100%)"
          },
          "to": {
            "transform": "translateX(250%)"
          }
        },
        "@layer base": {
          ":root": {
            "color-scheme": "light"
          },
          ".dark": {
            "color-scheme": "dark"
          },
          "@media (prefers-reduced-motion: reduce)": {
            "[class*=\"anibt-\"], [class*=\"anibt-\"]::before, [class*=\"anibt-\"]::after, [class*=\"anibt-\"] > svg": {
              "animation-duration": "0.01ms !important",
              "animation-iteration-count": "1 !important",
              "transition-duration": "0.01ms !important"
            }
          }
        }
      },
      "docs": "AniBT 主题已写入你的全局 CSS。可在 <body> 上加 anibt-ground 铺点点底纹（夜樱为星空）。Fredoka 来自 @fontsource/fredoka，汉字使用系统字体。",
      "categories": [
        "theme"
      ],
      "type": "registry:theme"
    },
    {
      "name": "spinner",
      "title": "Spinner",
      "author": "AniBT <https://anibt.net>",
      "description": "The inline AniBT loading mark: an <output role=status> with a spinning glyph that follows the surrounding ink.",
      "dependencies": [
        "class-variance-authority",
        "lucide-react"
      ],
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/spinner.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "feedback"
      ],
      "type": "registry:ui"
    },
    {
      "name": "button",
      "title": "Button",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT 「贴纸手账」 button: candy primary with gloss and a ✦ on hover, raised secondary, quiet ghost, red danger, link and field paints on shadcn's variant and size names, with a non-resizing loading state.",
      "dependencies": [
        "class-variance-authority",
        "radix-ui"
      ],
      "registryDependencies": [
        "@anibt/theme",
        "@anibt/spinner"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/button.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "actions"
      ],
      "type": "registry:ui"
    },
    {
      "name": "badge",
      "title": "Badge",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT tags (neutral, resolution, language, status words), die-cut stickers (paper, candy, water), counts, plus StatusBadge (dot + word) and StatusDot.",
      "dependencies": [
        "class-variance-authority",
        "radix-ui"
      ],
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/badge.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "display"
      ],
      "type": "registry:ui"
    },
    {
      "name": "card",
      "title": "Card",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT panel: paper with a 1px edge and the panel shadow (or a flat well), A's 16/12 box with a compact density, and a stitched header or footer.",
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/card.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "layout"
      ],
      "type": "registry:ui"
    },
    {
      "name": "input",
      "title": "Input",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT 32px text field: paper under a 1px input ring, pink on hover, a 1.5px ring edge with the pink halo on focus, red when invalid, a sunk well when read-only or disabled.",
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/input.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "forms"
      ],
      "type": "registry:ui"
    },
    {
      "name": "textarea",
      "title": "Textarea",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT multi-line field: the input's material and states, growing with its content from two lines.",
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/textarea.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "forms"
      ],
      "type": "registry:ui"
    },
    {
      "name": "label",
      "title": "Label",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT field label: 13/600 in ink2 above its control; a disabled control greys it instead of fading it.",
      "dependencies": [
        "radix-ui"
      ],
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/label.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "forms"
      ],
      "type": "registry:ui"
    },
    {
      "name": "field",
      "title": "Field",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT form grammar on shadcn's field names: label above the control, tags and meta on the label row, a hint or an error under it, choice rows and cards, container-query field rows and stitched field-group cards.",
      "dependencies": [
        "class-variance-authority",
        "lucide-react",
        "radix-ui"
      ],
      "registryDependencies": [
        "@anibt/theme",
        "@anibt/label"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/field.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "forms"
      ],
      "type": "registry:ui"
    },
    {
      "name": "select",
      "title": "Select",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT select: a field-material trigger and a floating A panel whose chosen row carries the pink label and tick.",
      "dependencies": [
        "lucide-react",
        "radix-ui"
      ],
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/select.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "forms"
      ],
      "type": "registry:ui"
    },
    {
      "name": "checkbox",
      "title": "Checkbox",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT candy checkbox: an 18px box that turns candy with a white tick that pops in; indeterminate shows a dash.",
      "dependencies": [
        "lucide-react",
        "radix-ui"
      ],
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/checkbox.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "forms"
      ],
      "type": "registry:ui"
    },
    {
      "name": "switch",
      "title": "Switch",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT candy switch: a 36x20 sunk track that turns candy, with a white knob that springs across; a 28x16 small size.",
      "dependencies": [
        "radix-ui"
      ],
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/switch.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "forms"
      ],
      "type": "registry:ui"
    },
    {
      "name": "radio-group",
      "title": "Radio Group",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT candy radio: 18px paper discs; the chosen one is candy with a white dot.",
      "dependencies": [
        "radix-ui"
      ],
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/radio-group.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "forms"
      ],
      "type": "registry:ui"
    },
    {
      "name": "segmented-control",
      "title": "Segmented Control",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT segmented track: a sunk well of 24px choices where the chosen one is a white sticker thumb with a pink glyph, with radio semantics and an optional label.",
      "dependencies": [
        "radix-ui"
      ],
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/segmented-control.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "forms"
      ],
      "type": "registry:ui"
    },
    {
      "name": "toggle-group",
      "title": "Toggle Group",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT toggle group: the segmented track with sticker thumbs, or a row of 28px filter chips that turn pink and show a tick when pressed.",
      "dependencies": [
        "class-variance-authority",
        "lucide-react",
        "radix-ui"
      ],
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/toggle-group.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "forms"
      ],
      "type": "registry:ui"
    },
    {
      "name": "tabs",
      "title": "Tabs",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT tabs: 32px tabs over a stitched line; the current tab wears the tilted washi tape, the site's one \"you are here\" mark.",
      "dependencies": [
        "class-variance-authority",
        "radix-ui"
      ],
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/tabs.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "navigation"
      ],
      "type": "registry:ui"
    },
    {
      "name": "search-input",
      "title": "Search Input",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT search box: an input with the magnifier, a clear key that keeps focus, a key-cap shortcut hint and the phone keyboard's search key.",
      "dependencies": [
        "lucide-react"
      ],
      "registryDependencies": [
        "@anibt/theme",
        "@anibt/input",
        "@anibt/kbd"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/search-input.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "forms"
      ],
      "type": "registry:ui"
    },
    {
      "name": "password-input",
      "title": "Password Input",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT password field: an input with a named show / hide key that reports its state.",
      "dependencies": [
        "lucide-react"
      ],
      "registryDependencies": [
        "@anibt/theme",
        "@anibt/input"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/password-input.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "forms"
      ],
      "type": "registry:ui"
    },
    {
      "name": "kbd",
      "title": "Kbd",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT key cap: a sunk 20px cap with a 1px floor in the round face, and KbdGroup for a chord.",
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/kbd.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "display"
      ],
      "type": "registry:ui"
    },
    {
      "name": "avatar",
      "title": "Avatar",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT die-cut avatar: the white sticker rim and shadow, round for people and rounded-square for groups, initials in the round face on the pink wash, plus shadcn's AvatarBadge, AvatarGroup and AvatarGroupCount.",
      "dependencies": [
        "class-variance-authority",
        "radix-ui"
      ],
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/avatar.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "display"
      ],
      "type": "registry:ui"
    },
    {
      "name": "entity-avatar",
      "title": "Entity Avatar",
      "author": "AniBT <https://anibt.net>",
      "description": "One picture of a thing — a subtitle group's logo or a user's portrait — with the one fallback rule: the real image, else script-aware initials in the same die-cut sticker.",
      "registryDependencies": [
        "@anibt/theme",
        "@anibt/avatar"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/entity-avatar.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "display"
      ],
      "type": "registry:ui"
    },
    {
      "name": "skeleton",
      "title": "Skeleton",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT loading placeholder: one step deeper than a field, radius 10, a slow pulse and nothing else; box, line, pill and circle shapes.",
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/skeleton.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "feedback"
      ],
      "type": "registry:ui"
    },
    {
      "name": "progress",
      "title": "Progress",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT progress bar: a sunk track with a glossy water (in progress), candy (your goal) or mint (done) fill, an indeterminate slide, and Base UI's label / value row.",
      "dependencies": [
        "class-variance-authority",
        "radix-ui"
      ],
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/progress.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "feedback"
      ],
      "type": "registry:ui"
    },
    {
      "name": "pagination",
      "title": "Pagination",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT pager: quiet 32px cells in the round face, the current page washed pink with a ring, 44px touch targets, shadcn's parts with Chinese defaults, and a Pager that draws the whole row from page and pageCount.",
      "dependencies": [
        "lucide-react",
        "radix-ui"
      ],
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/pagination.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "navigation"
      ],
      "type": "registry:ui"
    },
    {
      "name": "empty",
      "title": "Empty",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT empty state: a framed well, or A's tilted paper note with your picture peeking over its edge between twinkling sparkles; icon, image and peek media slots.",
      "dependencies": [
        "class-variance-authority",
        "lucide-react"
      ],
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/empty.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "feedback"
      ],
      "type": "registry:ui"
    },
    {
      "name": "tooltip",
      "title": "Tooltip",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT hint bubble: the dark tip (light in 夜樱) with a tail in its own colour, Radix behaviour, a self-providing root, and Base UI's render / delay props for shadcn's base-* sidebar.",
      "dependencies": [
        "radix-ui"
      ],
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/tooltip.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "overlay"
      ],
      "type": "registry:ui"
    },
    {
      "name": "separator",
      "title": "Separator",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT rule: the dashed stitch (horizontal or vertical) or the solid 1px edge, with Radix and Base UI orientation attributes.",
      "dependencies": [
        "class-variance-authority",
        "radix-ui"
      ],
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/separator.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "layout"
      ],
      "type": "registry:ui"
    },
    {
      "name": "alert",
      "title": "Alert",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT notice: a note on the state's wash (info blue, success mint, warning amber, destructive red) with the icon in the state's ink, or the inline row form with a leading dot; AlertAction for a retry.",
      "dependencies": [
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/alert.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "feedback"
      ],
      "type": "registry:ui"
    },
    {
      "name": "accordion",
      "title": "Accordion",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT folding sections: stitched rows or separate wells, 14/700 triggers that turn pink, a chevron that flips pink when open; single and collapsible by default.",
      "dependencies": [
        "lucide-react",
        "radix-ui"
      ],
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/accordion.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "display"
      ],
      "type": "registry:ui"
    },
    {
      "name": "breadcrumb",
      "title": "Breadcrumb",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT trail: 13px muted steps, links that turn pink, the current page in ink, small chevrons; asChild or Base UI render for router links.",
      "dependencies": [
        "lucide-react",
        "radix-ui"
      ],
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/breadcrumb.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "navigation"
      ],
      "type": "registry:ui"
    },
    {
      "name": "table",
      "title": "Table",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT data table on a real <table>: 36px head of muted labels, 48px rows parted by the stitch, pink-washed selected rows, numeric cells in the round face, an optional sticky head and a two-line identity cell.",
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/table.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "display"
      ],
      "type": "registry:ui"
    },
    {
      "name": "page-header",
      "title": "Page Header",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT section head in one compact row: a tilted sticker mark, the 20/800 title, a figure in the round face, an ellipsised description and the page's tool group.",
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/page-header.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "layout"
      ],
      "type": "registry:ui"
    },
    {
      "name": "poster-card",
      "title": "Poster Card",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT collectible poster card: a 2:3 cover in a glossy sleeve with a sheen on hover, a tilted airtime sticker, corner badges and a subscribe key; fixed height with a two-line title; srcSet / sizes for sharp covers; PosterGrid, rating, status and skeleton.",
      "dependencies": [
        "lucide-react"
      ],
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/blocks/poster-card/poster-card.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "blocks",
        "display"
      ],
      "type": "registry:block"
    },
    {
      "name": "release-row",
      "title": "Release Row",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT release row: a die-cut cover, the full title over the publisher, episode and three coloured tags, then size, swarm and age columns and always-visible icon squares; wide, stacked and compact forms by container width.",
      "dependencies": [
        "lucide-react"
      ],
      "registryDependencies": [
        "@anibt/theme",
        "@anibt/badge",
        "@anibt/button",
        "@anibt/tooltip"
      ],
      "files": [
        {
          "path": "registry/anibt/blocks/release-row/release-row.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "blocks",
        "display"
      ],
      "type": "registry:block"
    },
    {
      "name": "dialog",
      "title": "Dialog",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT 「贴纸手账」 dialog: the floating paper over the scrim, A's 48px stitched header bar with a quiet close square, a pinned header and footer and one scrolling DialogBody.",
      "dependencies": [
        "lucide-react",
        "radix-ui"
      ],
      "registryDependencies": [
        "@anibt/theme",
        "@anibt/button"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/dialog.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "overlay"
      ],
      "type": "registry:ui"
    },
    {
      "name": "alert-dialog",
      "title": "Alert Dialog",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT question dialog: the stitched bar with A's 24px tinted mark (AlertDialogMedia), the quiet cancel left of a candy or red action, shadcn's size / variant props.",
      "dependencies": [
        "class-variance-authority",
        "radix-ui"
      ],
      "registryDependencies": [
        "@anibt/theme",
        "@anibt/button"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/alert-dialog.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "overlay"
      ],
      "type": "registry:ui"
    },
    {
      "name": "confirm-dialog",
      "title": "Confirm Dialog",
      "author": "AniBT <https://anibt.net>",
      "description": "One-call confirmation on @anibt/alert-dialog: red mark and danger key for destructive actions, and an onConfirm promise that keeps the dialog open and busy until it settles.",
      "dependencies": [
        "lucide-react"
      ],
      "registryDependencies": [
        "@anibt/theme",
        "@anibt/alert-dialog",
        "@anibt/spinner"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/confirm-dialog.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "overlay"
      ],
      "type": "registry:ui"
    },
    {
      "name": "dropdown-menu",
      "title": "Dropdown Menu",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT menu: the floating panel with 32px rows that take the pink wash, stitched separators, red destructive rows, pink ticks and dots, submenus and round-face shortcuts.",
      "dependencies": [
        "lucide-react",
        "radix-ui"
      ],
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/dropdown-menu.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "overlay"
      ],
      "type": "registry:ui"
    },
    {
      "name": "popover",
      "title": "Popover",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT popover: the floating paper anchored to its trigger, with a 14/700 title and a muted description.",
      "dependencies": [
        "radix-ui"
      ],
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/popover.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "overlay"
      ],
      "type": "registry:ui"
    },
    {
      "name": "hover-card",
      "title": "Hover Card",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT preview card for a link under a resting pointer (a fansub group, a show), on the floating paper.",
      "dependencies": [
        "radix-ui"
      ],
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/hover-card.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "overlay"
      ],
      "type": "registry:ui"
    },
    {
      "name": "sheet",
      "title": "Sheet",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT edge panel: the floating paper sliding in from any side, a stitched header bar, one scrolling SheetBody and a stitched footer that stays reachable.",
      "dependencies": [
        "lucide-react",
        "radix-ui"
      ],
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/sheet.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "overlay"
      ],
      "type": "registry:ui"
    },
    {
      "name": "drawer",
      "title": "Drawer",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT phone drawer on vaul: draggable floating paper with a grab handle, a stitched header, one scrolling DrawerBody and a footer clear of the home indicator.",
      "dependencies": [
        "vaul"
      ],
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/drawer.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "overlay"
      ],
      "type": "registry:ui"
    },
    {
      "name": "sonner",
      "title": "Sonner (Toast)",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT toasts on sonner: the floating panel with a 32px tinted type tile (mint, blue, amber, red, spinner), a bold title, a muted line and a quiet close square.",
      "dependencies": [
        "sonner",
        "next-themes",
        "lucide-react"
      ],
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/sonner.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "feedback",
        "overlay"
      ],
      "type": "registry:ui"
    },
    {
      "name": "command",
      "title": "Command",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT command list and ⌘K palette on cmdk: a 44px stitched search row, 32px rows with the pink wash, stitched groups, and CommandDialog on @anibt/dialog.",
      "dependencies": [
        "cmdk",
        "lucide-react"
      ],
      "registryDependencies": [
        "@anibt/theme",
        "@anibt/dialog"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/command.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "overlay"
      ],
      "type": "registry:ui"
    },
    {
      "name": "searchable-select",
      "title": "Searchable Select",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT single-choice combobox: a 32px field that opens a searchable command list (groups, second lines, a pink tick on the chosen row). Radix popover + cmdk.",
      "dependencies": [
        "lucide-react"
      ],
      "registryDependencies": [
        "@anibt/theme",
        "@anibt/button",
        "@anibt/command",
        "@anibt/popover"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/searchable-select.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "forms",
        "overlay"
      ],
      "type": "registry:ui"
    },
    {
      "name": "multi-select",
      "title": "Multi Select",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT subscription picker: chosen values as removable tags in a 32px field, a searchable checklist with a 全部 row and candy tick boxes that stays open while you tick.",
      "dependencies": [
        "lucide-react"
      ],
      "registryDependencies": [
        "@anibt/theme",
        "@anibt/button",
        "@anibt/command",
        "@anibt/popover"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/multi-select.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "forms",
        "overlay"
      ],
      "type": "registry:ui"
    },
    {
      "name": "markdown-editor",
      "title": "Markdown Editor",
      "author": "AniBT <https://anibt.net>",
      "description": "AniBT Markdown field: 编写 / 分栏 / 预览, a nine-tool toolbar with Ctrl/Cmd shortcuts that undo cleanly, a react-markdown + GFM preview in A's prose, and a character count.",
      "dependencies": [
        "lucide-react",
        "radix-ui",
        "react-markdown",
        "remark-gfm"
      ],
      "registryDependencies": [
        "@anibt/theme"
      ],
      "files": [
        {
          "path": "registry/anibt/ui/markdown-editor.tsx",
          "type": "registry:ui"
        },
        {
          "path": "registry/anibt/ui/markdown-format.ts",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "forms"
      ],
      "type": "registry:ui"
    }
  ]
}