{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "ndekoui",
  "homepage": "https://ui.ndekocode.dev",
  "items": [
    {
      "name": "theme",
      "type": "registry:theme",
      "title": "ndekoui theme",
      "description": "Tokens for light and dark, ink colours that pass AA, hairlines and the 3D materials.",
      "cssVars": {
        "theme": {
          "color-background": "var(--background)",
          "color-foreground": "var(--foreground)",
          "color-card": "var(--card)",
          "color-card-foreground": "var(--card-foreground)",
          "color-popover": "var(--popover)",
          "color-popover-foreground": "var(--popover-foreground)",
          "color-primary": "var(--primary)",
          "color-primary-foreground": "var(--primary-foreground)",
          "color-primary-ink": "var(--primary-ink)",
          "color-secondary": "var(--secondary)",
          "color-secondary-foreground": "var(--secondary-foreground)",
          "color-muted": "var(--muted)",
          "color-muted-foreground": "var(--muted-foreground)",
          "color-accent": "var(--accent)",
          "color-accent-foreground": "var(--accent-foreground)",
          "color-destructive": "var(--destructive)",
          "color-destructive-foreground": "var(--destructive-foreground)",
          "color-destructive-ink": "var(--destructive-ink)",
          "color-success": "var(--success)",
          "color-success-foreground": "var(--success-foreground)",
          "color-warning": "var(--warning)",
          "color-warning-foreground": "var(--warning-foreground)",
          "color-info": "var(--info)",
          "color-info-foreground": "var(--info-foreground)",
          "color-border": "var(--border)",
          "color-input": "var(--input)",
          "color-ring": "var(--ring)",
          "color-sidebar": "var(--sidebar)",
          "color-sidebar-foreground": "var(--sidebar-foreground)",
          "color-sidebar-primary": "var(--sidebar-primary)",
          "color-sidebar-primary-foreground": "var(--sidebar-primary-foreground)",
          "color-sidebar-accent": "var(--sidebar-accent)",
          "color-sidebar-accent-foreground": "var(--sidebar-accent-foreground)",
          "color-sidebar-border": "var(--sidebar-border)",
          "color-sidebar-ring": "var(--sidebar-ring)",
          "color-chart-1": "var(--chart-1)",
          "color-chart-2": "var(--chart-2)",
          "color-chart-3": "var(--chart-3)",
          "color-chart-4": "var(--chart-4)",
          "color-chart-5": "var(--chart-5)",
          "radius-sm": "calc(var(--radius) - 4px)",
          "radius-md": "calc(var(--radius) - 2px)",
          "radius-lg": "var(--radius)",
          "radius-xl": "calc(var(--radius) + 4px)",
          "radius-2xl": "calc(var(--radius) + 8px)",
          "ease-out-quint": "cubic-bezier(0.22, 1, 0.36, 1)",
          "ease-standard": "cubic-bezier(0.2, 0, 0, 1)",
          "ease-out-strong": "cubic-bezier(0.23, 1, 0.32, 1)",
          "ease-in-out-strong": "cubic-bezier(0.77, 0, 0.175, 1)",
          "ease-drawer": "cubic-bezier(0.32, 0.72, 0, 1)",
          "animate-orb-arrive": "orb-arrive 280ms cubic-bezier(0.23, 1, 0.32, 1)",
          "animate-marquee": "marquee var(--marquee-duration, 40s) linear infinite",
          "animate-marquee-y": "marquee-y var(--marquee-duration, 60s) linear infinite",
          "animate-float": "float 6s ease-in-out infinite"
        },
        "light": {
          "radius": "0.625rem",
          "hairline": "1px",
          "background": "hsl(240 11% 98%)",
          "foreground": "hsl(240 6% 10%)",
          "card": "hsl(0 0% 100%)",
          "card-foreground": "hsl(240 6% 10%)",
          "popover": "hsl(0 0% 100%)",
          "popover-foreground": "hsl(240 6% 10%)",
          "primary": "hsl(239 84% 67%)",
          "primary-foreground": "hsl(0 0% 100%)",
          "secondary": "hsl(240 5% 95%)",
          "secondary-foreground": "hsl(240 6% 10%)",
          "muted": "hsl(240 5% 95%)",
          "muted-foreground": "hsl(240 4% 42%)",
          "accent": "hsl(240 5% 95%)",
          "accent-foreground": "hsl(240 6% 10%)",
          "destructive": "hsl(0 84% 60%)",
          "destructive-foreground": "hsl(0 0% 100%)",
          "border": "hsl(240 3% 89%)",
          "input": "hsl(240 3% 89%)",
          "ring": "hsl(239 84% 67%)",
          "primary-ink": "hsl(243 75% 59%)",
          "destructive-ink": "hsl(0 74% 42%)",
          "success": "hsl(161 100% 37%)",
          "success-foreground": "hsl(163 100% 24%)",
          "warning": "hsl(38 100% 49%)",
          "warning-foreground": "hsl(26 100% 36%)",
          "info": "hsl(200 98% 39%)",
          "info-foreground": "hsl(201 96% 32%)",
          "sidebar": "hsl(240 3% 94%)",
          "sidebar-foreground": "hsl(240 6% 10%)",
          "sidebar-primary": "hsl(240 6% 10%)",
          "sidebar-primary-foreground": "hsl(0 0% 98%)",
          "sidebar-accent": "hsl(240 3% 88%)",
          "sidebar-accent-foreground": "hsl(240 6% 10%)",
          "sidebar-border": "hsl(240 3% 89%)",
          "sidebar-ring": "hsl(239 84% 67%)",
          "chart-1": "hsl(239 84% 67%)",
          "chart-2": "hsl(234 89% 74%)",
          "chart-3": "hsl(230 94% 82%)",
          "chart-4": "hsl(228 96% 89%)",
          "chart-5": "hsl(240 5% 65%)"
        },
        "dark": {
          "background": "hsl(240 5% 7%)",
          "foreground": "hsl(240 5% 90%)",
          "card": "hsl(240 5% 10%)",
          "card-foreground": "hsl(240 5% 90%)",
          "popover": "hsl(240 5% 11%)",
          "popover-foreground": "hsl(240 5% 90%)",
          "primary": "hsl(239 84% 67%)",
          "primary-foreground": "hsl(0 0% 100%)",
          "secondary": "hsl(240 4% 13%)",
          "secondary-foreground": "hsl(240 5% 90%)",
          "muted": "hsl(240 4% 13%)",
          "muted-foreground": "hsl(240 5% 62%)",
          "accent": "hsl(240 4% 13%)",
          "accent-foreground": "hsl(0 0% 100%)",
          "destructive": "hsl(0 72% 51%)",
          "destructive-foreground": "hsl(0 0% 100%)",
          "border": "hsl(240 4% 16%)",
          "input": "hsl(240 4% 18%)",
          "ring": "hsl(0 0% 40%)",
          "primary-ink": "hsl(234 89% 74%)",
          "destructive-ink": "hsl(0 91% 71%)",
          "success": "hsl(161 100% 37%)",
          "success-foreground": "hsl(158 76% 64%)",
          "warning": "hsl(38 100% 49%)",
          "warning-foreground": "hsl(47 100% 61%)",
          "info": "hsl(198 93% 60%)",
          "info-foreground": "hsl(199 95% 74%)",
          "sidebar": "hsl(240 6% 4%)",
          "sidebar-foreground": "hsl(240 5% 90%)",
          "sidebar-primary": "hsl(239 84% 67%)",
          "sidebar-primary-foreground": "hsl(0 0% 100%)",
          "sidebar-accent": "hsl(240 4% 14%)",
          "sidebar-accent-foreground": "hsl(0 0% 100%)",
          "sidebar-border": "hsl(240 4% 16%)",
          "sidebar-ring": "hsl(0 0% 40%)"
        }
      },
      "css": {
        "@media (min-resolution: 2dppx)": {
          ":root": {
            "--hairline": "0.5px"
          }
        },
        "@keyframes orb-arrive": {
          "from": {
            "filter": "blur(3px) saturate(0.6)",
            "scale": "0.82",
            "opacity": "0.4"
          },
          "to": {
            "filter": "blur(0) saturate(1)",
            "scale": "1",
            "opacity": "1"
          }
        },
        "@keyframes marquee": {
          "to": {
            "translate": "-50% 0"
          }
        },
        "@keyframes marquee-y": {
          "to": {
            "translate": "0 -50%"
          }
        },
        "@keyframes float": {
          "0%,\n    100%": {
            "translate": "0 0"
          },
          "50%": {
            "translate": "0 -6px"
          }
        },
        "@utility hairline-border": {
          "border-style": "var(--tw-border-style, solid)",
          "border-width": "var(--hairline)"
        },
        "@utility hairline-t": {
          "border-top-style": "var(--tw-border-style, solid)",
          "border-top-width": "var(--hairline)"
        },
        "@utility hairline-b": {
          "border-bottom-style": "var(--tw-border-style, solid)",
          "border-bottom-width": "var(--hairline)"
        },
        "@utility hairline-l": {
          "border-left-style": "var(--tw-border-style, solid)",
          "border-left-width": "var(--hairline)"
        },
        "@utility hairline-r": {
          "border-right-style": "var(--tw-border-style, solid)",
          "border-right-width": "var(--hairline)"
        },
        "@utility hairline-x": {
          "border-inline-style": "var(--tw-border-style, solid)",
          "border-inline-width": "var(--hairline)"
        },
        "@utility hairline-y": {
          "border-block-style": "var(--tw-border-style, solid)",
          "border-block-width": "var(--hairline)"
        },
        "@utility hairline-divide-y": {
          ":where(& > :not(:last-child))": {
            "border-top-width": "0px",
            "border-bottom-style": "var(--tw-border-style, solid)",
            "border-bottom-width": "var(--hairline)"
          }
        },
        "@utility hairline-divide-x": {
          ":where(& > :not(:last-child))": {
            "border-left-width": "0px",
            "border-right-style": "var(--tw-border-style, solid)",
            "border-right-width": "var(--hairline)"
          }
        },
        "@utility hairline-ring": {
          "--tw-ring-shadow": "var(--tw-ring-inset,) 0 0 0\n    calc(var(--hairline) + var(--tw-ring-offset-width, 0px))\n    var(--tw-ring-color, currentcolor)",
          "box-shadow": "var(--tw-inset-shadow, 0 0 #0000), var(--tw-inset-ring-shadow, 0 0 #0000),\n    var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow),\n    var(--tw-shadow, 0 0 #0000)"
        },
        "@utility chip-3d": {
          "color": "color-mix(in oklab, var(--chip, currentcolor) 72%, black)",
          "background-image": "linear-gradient(\n    to bottom,\n    color-mix(in oklab, var(--chip, currentcolor) 7%, white),\n    color-mix(in oklab, var(--chip, currentcolor) 17%, white)\n  )",
          "box-shadow": "inset 0 0 0 var(--hairline)\n      color-mix(in oklab, var(--chip, currentcolor) 30%, transparent),\n    inset 0 -1px 0\n      color-mix(in oklab, var(--chip, currentcolor) 26%, transparent),\n    0 1px 1.5px color-mix(in oklab, var(--chip, currentcolor) 16%, transparent)",
          "&:where(.dark, .dark *)": {
            "color": "color-mix(in oklab, var(--chip, currentcolor) 62%, white)",
            "background-image": "linear-gradient(\n      to bottom,\n      color-mix(in oklab, var(--chip, currentcolor) 16%, transparent),\n      color-mix(in oklab, var(--chip, currentcolor) 24%, transparent)\n    )",
            "box-shadow": "inset 0 0 0 var(--hairline)\n        color-mix(in oklab, var(--chip, currentcolor) 36%, transparent),\n      inset 0 1px 0 rgb(255 255 255 / 6%)"
          }
        },
        "@utility keycap-3d": {
          "background-image": "linear-gradient(to bottom, #ffffff, #f1f2f4)",
          "box-shadow": "inset 0 0 0 var(--hairline) var(--border),\n    inset 0 -1px 0 rgb(0 0 0 / 5%),\n    0 1px 1.5px rgb(0 0 0 / 5%)",
          "&:where(.dark, .dark *)": {
            "background-image": "linear-gradient(\n      to bottom,\n      hsl(240 5% 16%),\n      hsl(240 5% 12%)\n    )",
            "box-shadow": "inset 0 0 0 var(--hairline) var(--border),\n      inset 0 1px 0 rgb(255 255 255 / 6%)"
          }
        },
        "@utility gem-plate": {
          "color": "white",
          "background-image": "linear-gradient(\n      135deg,\n      rgb(255 255 255 / 30%) 0%,\n      rgb(255 255 255 / 0%) 50%\n    ),\n    linear-gradient(\n      to bottom,\n      color-mix(in oklab, var(--gem, currentcolor) 78%, white),\n      var(--gem, currentcolor)\n    )",
          "box-shadow": "inset 0 0 0 var(--hairline) rgb(255 255 255 / 28%),\n    inset 0 1px 0 rgb(255 255 255 / 22%),\n    0 0 0 var(--hairline)\n      color-mix(in oklab, var(--gem, currentcolor) 40%, transparent),\n    0 1px 1.5px color-mix(in oklab, var(--gem, currentcolor) 28%, transparent)",
          "&:where(.dark, .dark *)": {
            "box-shadow": "inset 0 0 0 var(--hairline) rgb(255 255 255 / 22%),\n      inset 0 1px 0 rgb(255 255 255 / 16%)"
          }
        },
        "@utility surface-raised": {
          "background-color": "var(--popover)",
          "color": "var(--popover-foreground)",
          "box-shadow": "0 0 0 var(--hairline) var(--border),\n    0 4px 8px -2px rgb(0 0 0 / 6%),\n    0 12px 32px -4px rgb(0 0 0 / 10%)",
          "&:where(.dark, .dark *)": {
            "box-shadow": "0 0 0 var(--hairline) var(--border),\n      0 12px 32px -4px rgb(0 0 0 / 50%)"
          }
        },
        "@utility surface-brand": {
          "background-color": "var(--card)",
          "box-shadow": "0 0 0 var(--hairline) color-mix(in oklab, var(--primary) 35%, var(--border)),\n    0 1px 2px rgb(0 0 0 / 4%)"
        },
        "@media (prefers-reduced-motion: reduce)": {
          "*,\n  ::before,\n  ::after": {
            "animation-duration": "0.01ms",
            "animation-iteration-count": "1",
            "transition-property": "opacity, color, background-color, border-color, outline-color, box-shadow,\n      fill, stroke",
            "scroll-behavior": "auto"
          },
          ".animate-spin": {
            "animation-duration": "1s",
            "animation-iteration-count": "infinite"
          }
        }
      },
      "categories": [
        "foundations"
      ]
    },
    {
      "name": "utils",
      "type": "registry:lib",
      "title": "cn",
      "description": "Class merging that knows the hairline utilities of the ndekoui theme.",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "files": [
        {
          "path": "registry/ndeko/lib/utils.ts",
          "type": "registry:lib"
        }
      ],
      "categories": [
        "foundations"
      ]
    },
    {
      "name": "icons",
      "type": "registry:lib",
      "title": "Icons",
      "description": "One icon module: Hugeicons behind semantic names, stroke 1.75 by default.",
      "dependencies": [
        "@hugeicons/react",
        "@hugeicons/core-free-icons"
      ],
      "files": [
        {
          "path": "registry/ndeko/lib/icons.tsx",
          "type": "registry:lib"
        }
      ],
      "categories": [
        "foundations"
      ]
    },
    {
      "name": "recipes",
      "type": "registry:lib",
      "title": "Recipes",
      "description": "Shared class recipes: the field control, floating surfaces, menu rows.",
      "files": [
        {
          "path": "registry/ndeko/lib/recipes.ts",
          "type": "registry:lib"
        }
      ],
      "categories": [
        "foundations"
      ]
    },
    {
      "name": "brand-logos",
      "type": "registry:lib",
      "title": "Brand logos",
      "description": "Marks of the tools the integration blocks show, from Simple Icons, drawn in their brand colour and readable in both themes.",
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/lib/brand-logos.tsx",
          "type": "registry:lib"
        }
      ],
      "categories": [
        "foundations"
      ]
    },
    {
      "name": "button",
      "type": "registry:ui",
      "title": "Button",
      "description": "Pill buttons in six variants and six sizes.",
      "dependencies": [
        "@base-ui/react",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/button.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "input",
      "type": "registry:ui",
      "title": "Input",
      "description": "A text field on the shared control recipe.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/recipes.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/input.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "textarea",
      "type": "registry:ui",
      "title": "Textarea",
      "description": "A field that grows with its content.",
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/recipes.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/textarea.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "label",
      "type": "registry:ui",
      "title": "Label",
      "description": "The label of a control.",
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/label.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "field",
      "type": "registry:ui",
      "title": "Field",
      "description": "Label, description and error wired to a control.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/label.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/field.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "badge",
      "type": "registry:ui",
      "title": "Badge",
      "description": "Soft status pairs, readable in both themes.",
      "dependencies": [
        "@base-ui/react",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/badge.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "chip",
      "type": "registry:ui",
      "title": "Chip",
      "description": "A 3D label in any colour, for assigned values.",
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/chip.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "card",
      "type": "registry:ui",
      "title": "Card",
      "description": "A surface on one hairline with a soft shadow.",
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/card.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "separator",
      "type": "registry:ui",
      "title": "Separator",
      "description": "A one device pixel line.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/separator.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "skeleton",
      "type": "registry:ui",
      "title": "Skeleton",
      "description": "A light placeholder while content loads.",
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/skeleton.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "kbd",
      "type": "registry:ui",
      "title": "Kbd",
      "description": "A key cap for shortcuts.",
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/kbd.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "avatar",
      "type": "registry:ui",
      "title": "Avatar",
      "description": "A picture with a fallback, opaque in stacks.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/avatar.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "checkbox",
      "type": "registry:ui",
      "title": "Checkbox",
      "description": "A checkbox whose mark scales in.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/checkbox.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "switch",
      "type": "registry:ui",
      "title": "Switch",
      "description": "A switch whose thumb stretches while pressed.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/switch.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "radio-group",
      "type": "registry:ui",
      "title": "Radio Group",
      "description": "Native radio semantics, drawn on the theme.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/radio-group.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "spinner",
      "type": "registry:ui",
      "title": "Spinner",
      "description": "A loader with an accessible name.",
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/spinner.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "selected-mark",
      "type": "registry:ui",
      "title": "Selected Mark",
      "description": "The mark of the picked row in a menu.",
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/selected-mark.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "status-orb",
      "type": "registry:ui",
      "title": "Status Orb",
      "description": "The mark of a message kind: success, error, warning, info.",
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/status-orb.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives",
        "feedback"
      ]
    },
    {
      "name": "tooltip",
      "type": "registry:ui",
      "title": "Tooltip",
      "description": "A small bubble with an arrow, after a short pause.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/animated-size.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/tooltip.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "popover",
      "type": "registry:ui",
      "title": "Popover",
      "description": "A raised panel anchored to its trigger.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/recipes.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/popover.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "dropdown-menu",
      "type": "registry:ui",
      "title": "Dropdown Menu",
      "description": "Action menus with 32px rows, checkable items and submenus.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/selected-mark.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/dropdown-menu.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "animated-size",
      "type": "registry:ui",
      "title": "Animated Size",
      "description": "A container that animates its height or width to fit content that changes.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/animated-size.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "dialog",
      "type": "registry:ui",
      "title": "Dialog",
      "description": "A modal dialog that fades and scales in and resizes with its content.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/animated-size.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/dialog.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "alert-dialog",
      "type": "registry:ui",
      "title": "Alert Dialog",
      "description": "A dialog that asks to confirm a consequence.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/button.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/alert-dialog.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "sheet",
      "type": "registry:ui",
      "title": "Sheet",
      "description": "A dialog docked to an edge, floating 8px from it.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/button.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/sheet.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "select",
      "type": "registry:ui",
      "title": "Select",
      "description": "A select on the control recipe with a menu popup.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/selected-mark.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/select.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "tabs",
      "type": "registry:ui",
      "title": "Tabs",
      "description": "Underlined or segmented tabs with one sliding indicator.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/tabs.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "accordion",
      "type": "registry:ui",
      "title": "Accordion",
      "description": "Panels that open by animating their height.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/accordion.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "collapsible",
      "type": "registry:ui",
      "title": "Collapsible",
      "description": "One panel that opens and closes.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/collapsible.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "toggle",
      "type": "registry:ui",
      "title": "Toggle",
      "description": "A button that stays pressed.",
      "dependencies": [
        "@base-ui/react",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/toggle.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "toggle-group",
      "type": "registry:ui",
      "title": "Toggle Group",
      "description": "Toggles that share one value.",
      "dependencies": [
        "@base-ui/react",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/toggle.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/toggle-group.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "slider",
      "type": "registry:ui",
      "title": "Slider",
      "description": "One or several thumbs on a thin track.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/slider.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "progress",
      "type": "registry:ui",
      "title": "Progress",
      "description": "A thin bar with an optional label and value.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/progress.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "scroll-area",
      "type": "registry:ui",
      "title": "Scroll Area",
      "description": "Thin scrollbars that show while you scroll.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/scroll-area.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "hover-card",
      "type": "registry:ui",
      "title": "Hover Card",
      "description": "A raised card that previews a link after a short pause.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/recipes.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/hover-card.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "checkbox-tree",
      "type": "registry:ui",
      "title": "Checkbox Tree",
      "description": "Nested checkboxes where a parent reflects its children.",
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/checkbox-tree.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "breadcrumb",
      "type": "registry:ui",
      "title": "Breadcrumb",
      "description": "Where the page sits, as links.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/breadcrumb.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "pagination",
      "type": "registry:ui",
      "title": "Pagination",
      "description": "Pages as pill links, the current one outlined.",
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/button.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/pagination.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "select-native",
      "type": "registry:ui",
      "title": "Native Select",
      "description": "The browser select on the control recipe.",
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/select-native.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "table",
      "type": "registry:ui",
      "title": "Table",
      "description": "Rows on hairlines with tabular figures.",
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/table.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "cropper",
      "type": "registry:ui",
      "title": "Cropper",
      "description": "An image crop area you can drag and zoom.",
      "dependencies": [
        "@origin-space/image-cropper"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/cropper.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "command",
      "type": "registry:ui",
      "title": "Command",
      "description": "A searchable list of actions, inline or in a palette dialog.",
      "dependencies": [
        "cmdk"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/dialog.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/command.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "combobox",
      "type": "registry:ui",
      "title": "Combobox",
      "description": "A filterable select, single or multiple with chips.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/selected-mark.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/combobox.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "otp-field",
      "type": "registry:ui",
      "title": "OTP Field",
      "description": "One box per character of a code.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/recipes.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/otp-field.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "navigation-menu",
      "type": "registry:ui",
      "title": "Navigation Menu",
      "description": "Site navigation whose panel slides and resizes between items.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/navigation-menu.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "stepper",
      "type": "registry:ui",
      "title": "Stepper",
      "description": "Numbered steps that fill as you advance.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/stepper.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "timeline",
      "type": "registry:ui",
      "title": "Timeline",
      "description": "Events on a line, past ones in the brand hue.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/timeline.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "tree",
      "type": "registry:ui",
      "title": "Tree",
      "description": "Nested items you can expand, select and drag.",
      "dependencies": [
        "@base-ui/react",
        "@headless-tree/core",
        "@headless-tree/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/tree.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "calendar",
      "type": "registry:ui",
      "title": "Calendar",
      "description": "A month grid for days and ranges.",
      "dependencies": [
        "react-day-picker"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/button.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/calendar.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "calendar-rac",
      "type": "registry:ui",
      "title": "Calendar (React Aria)",
      "description": "Accessible calendar and range calendar on React Aria.",
      "dependencies": [
        "react-aria-components",
        "@internationalized/date"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/calendar-rac.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "datefield-rac",
      "type": "registry:ui",
      "title": "Date Field (React Aria)",
      "description": "Dates and times typed segment by segment.",
      "dependencies": [
        "react-aria-components"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/datefield-rac.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives"
      ]
    },
    {
      "name": "sonner",
      "type": "registry:ui",
      "title": "Toaster",
      "description": "Toasts that carry a status orb, bottom right.",
      "dependencies": [
        "sonner",
        "next-themes"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/status-orb.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/sonner.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives",
        "feedback"
      ]
    },
    {
      "name": "chat-motion",
      "type": "registry:ui",
      "title": "Chat Motion",
      "description": "The swap and the fold the chat pieces share: an icon that becomes another, a panel that folds into its trigger.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/animated-size.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/chat-motion.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives",
        "chat"
      ]
    },
    {
      "name": "chat-container",
      "type": "registry:ui",
      "title": "Chat Container",
      "description": "A message list that follows new content while you are at the bottom and lets go when you scroll up.",
      "dependencies": [
        "motion",
        "use-stick-to-bottom"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/chat-container.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives",
        "chat"
      ]
    },
    {
      "name": "chat-code-block",
      "type": "registry:ui",
      "title": "Chat Code Block",
      "description": "Code highlighted in the light and dark themes, with a copy button that turns into a check.",
      "dependencies": [
        "shiki"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chat-motion.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/chat-code-block.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives",
        "chat"
      ]
    },
    {
      "name": "chat-markdown",
      "type": "registry:ui",
      "title": "Chat Markdown",
      "description": "Model output as safe markdown: no raw HTML, external links without referrer, code blocks highlighted.",
      "dependencies": [
        "marked",
        "react-markdown",
        "remark-breaks",
        "remark-gfm"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/chat-code-block.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/chat-markdown.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives",
        "chat"
      ]
    },
    {
      "name": "chat-message",
      "type": "registry:ui",
      "title": "Chat Message",
      "description": "A message with its avatar or glyph, a bubble or plain body, and actions explained by tooltips.",
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/chat-markdown.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/chat-message.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives",
        "chat"
      ]
    },
    {
      "name": "chat-prompt-input",
      "type": "registry:ui",
      "title": "Chat Prompt Input",
      "description": "A composer whose textarea grows with the text, with actions and a Send button that becomes Stop.",
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/chat-motion.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/chat-prompt-input.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives",
        "chat"
      ]
    },
    {
      "name": "chat-loader",
      "type": "registry:ui",
      "title": "Chat Loader",
      "description": "Waiting marks for a reply: a spinner, dots, a pulse, bars or a Thinking label that breathes.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/spinner.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/chat-loader.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives",
        "chat"
      ]
    },
    {
      "name": "chat-reasoning",
      "type": "registry:ui",
      "title": "Chat Reasoning",
      "description": "The reasoning behind a reply, open while it streams and folded once the answer starts.",
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/chat-markdown.json",
        "https://ui.ndekocode.dev/r/chat-motion.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/chat-reasoning.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives",
        "chat"
      ]
    },
    {
      "name": "chat-tool",
      "type": "registry:ui",
      "title": "Chat Tool",
      "description": "A tool call with its state, opening onto its input and output and resizing as the output arrives.",
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/chat-motion.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/chat-tool.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives",
        "chat"
      ]
    },
    {
      "name": "chat-steps",
      "type": "registry:ui",
      "title": "Chat Steps",
      "description": "Steps the assistant took, on a thin line, behind a trigger that opens and closes them.",
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/collapsible.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/chat-steps.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives",
        "chat"
      ]
    },
    {
      "name": "chat-source",
      "type": "registry:ui",
      "title": "Chat Source",
      "description": "A cited page as a small pill that previews its title and summary after a short pause.",
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/hover-card.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/chat-source.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives",
        "chat"
      ]
    },
    {
      "name": "chat-scroll-button",
      "type": "registry:ui",
      "title": "Chat Scroll Button",
      "description": "A button that appears once you scroll away from the latest message and brings you back.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chat-container.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/chat-scroll-button.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives",
        "chat"
      ]
    },
    {
      "name": "chat-file-upload",
      "type": "registry:ui",
      "title": "Chat File Upload",
      "description": "Files from the picker or dropped on the window, with a layer that shows while they are dragged in.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/chat-file-upload.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives",
        "chat"
      ]
    },
    {
      "name": "chat-response-stream",
      "type": "registry:ui",
      "title": "Chat Response Stream",
      "description": "A reply revealed word by word or character by character, from a fixed text or an async stream.",
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/chat-response-stream.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives",
        "chat"
      ]
    },
    {
      "name": "chat-thinking-bar",
      "type": "registry:ui",
      "title": "Chat Thinking Bar",
      "description": "A live Thinking line with a way to open the reasoning or to get the answer now.",
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chat-loader.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/chat-thinking-bar.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives",
        "chat"
      ]
    },
    {
      "name": "chat-feedback-bar",
      "type": "registry:ui",
      "title": "Chat Feedback Bar",
      "description": "Asks whether a reply helped and becomes a thank you once you answer.",
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chat-motion.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/chat-feedback-bar.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives",
        "chat"
      ]
    },
    {
      "name": "chat-system-message",
      "type": "registry:ui",
      "title": "Chat System Message",
      "description": "A notice from the app inside the conversation, neutral, warning or error, with an optional action.",
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/button.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/chat-system-message.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives",
        "chat"
      ]
    },
    {
      "name": "chat-prompt-suggestion",
      "type": "registry:ui",
      "title": "Chat Prompt Suggestion",
      "description": "A prompt to start from, as a pill or as a list row that marks the typed match.",
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/button.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/chat-prompt-suggestion.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives",
        "chat"
      ]
    },
    {
      "name": "chat-chain-of-thought",
      "type": "registry:ui",
      "title": "Chat Chain of Thought",
      "description": "Steps of thought on one thread, each opening onto its details.",
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/collapsible.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/chat-chain-of-thought.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives",
        "chat"
      ]
    },
    {
      "name": "chat-image",
      "type": "registry:ui",
      "title": "Chat Image",
      "description": "An image a model produced, from base64 or raw bytes, with a placeholder until it is there.",
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json",
        "https://ui.ndekocode.dev/r/skeleton.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/ui/chat-image.tsx",
          "type": "registry:ui"
        }
      ],
      "categories": [
        "primitives",
        "chat"
      ]
    },
    {
      "name": "sample-avatars",
      "type": "registry:item",
      "title": "Sample avatars",
      "description": "The illustrated avatars the examples use, copied into public/avatars.",
      "files": [
        {
          "path": "public/avatars/avatar-03.svg",
          "type": "registry:file",
          "target": "public/avatars/avatar-03.svg"
        },
        {
          "path": "public/avatars/avatar-04.svg",
          "type": "registry:file",
          "target": "public/avatars/avatar-04.svg"
        },
        {
          "path": "public/avatars/avatar-05.svg",
          "type": "registry:file",
          "target": "public/avatars/avatar-05.svg"
        },
        {
          "path": "public/avatars/avatar-06.svg",
          "type": "registry:file",
          "target": "public/avatars/avatar-06.svg"
        },
        {
          "path": "public/avatars/avatar-07.svg",
          "type": "registry:file",
          "target": "public/avatars/avatar-07.svg"
        }
      ],
      "categories": [
        "foundations"
      ]
    },
    {
      "name": "sample-scenes",
      "type": "registry:item",
      "title": "Sample scenes",
      "description": "The flat landscapes the image examples use, copied into public/images/scenes.",
      "files": [
        {
          "path": "public/images/scenes/scene-01.svg",
          "type": "registry:file",
          "target": "public/images/scenes/scene-01.svg"
        },
        {
          "path": "public/images/scenes/scene-02.svg",
          "type": "registry:file",
          "target": "public/images/scenes/scene-02.svg"
        },
        {
          "path": "public/images/scenes/scene-03.svg",
          "type": "registry:file",
          "target": "public/images/scenes/scene-03.svg"
        },
        {
          "path": "public/images/scenes/scene-04.svg",
          "type": "registry:file",
          "target": "public/images/scenes/scene-04.svg"
        },
        {
          "path": "public/images/scenes/scene-05.svg",
          "type": "registry:file",
          "target": "public/images/scenes/scene-05.svg"
        },
        {
          "path": "public/images/scenes/scene-06.svg",
          "type": "registry:file",
          "target": "public/images/scenes/scene-06.svg"
        },
        {
          "path": "public/images/scenes/scene-07.svg",
          "type": "registry:file",
          "target": "public/images/scenes/scene-07.svg"
        },
        {
          "path": "public/images/scenes/scene-08.svg",
          "type": "registry:file",
          "target": "public/images/scenes/scene-08.svg"
        }
      ],
      "categories": [
        "foundations"
      ]
    },
    {
      "name": "motion-accordion",
      "type": "registry:component",
      "title": "Accordion",
      "description": "A collapsible content component with smooth animations for showing and hiding content.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/accordion.tsx",
          "type": "registry:component",
          "target": "components/core/accordion.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-animated-background",
      "type": "registry:component",
      "title": "Animated background",
      "description": "A component that provides animated background effects for UI elements.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/animated-background.tsx",
          "type": "registry:component",
          "target": "components/core/animated-background.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-animated-group",
      "type": "registry:component",
      "title": "Animated group",
      "description": "A container component that applies coordinated animations to a group of child elements.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "components/core/animated-group.tsx",
          "type": "registry:component",
          "target": "components/core/animated-group.tsx"
        },
        {
          "path": "components/core/motion-elements.ts",
          "type": "registry:component",
          "target": "components/core/motion-elements.ts"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-animated-number",
      "type": "registry:component",
      "title": "Animated number",
      "description": "A component that animates number changes with smooth transitions.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/animated-number.tsx",
          "type": "registry:component",
          "target": "components/core/animated-number.tsx"
        },
        {
          "path": "components/core/motion-elements.ts",
          "type": "registry:component",
          "target": "components/core/motion-elements.ts"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-border-trail",
      "type": "registry:component",
      "title": "Border trail",
      "description": "An effect that creates animated border trails around elements on interaction.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/border-trail.tsx",
          "type": "registry:component",
          "target": "components/core/border-trail.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-carousel",
      "type": "registry:component",
      "title": "Carousel",
      "description": "A component for cycling through elements with smooth transitions.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/carousel.tsx",
          "type": "registry:component",
          "target": "components/core/carousel.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-cursor",
      "type": "registry:component",
      "title": "Cursor",
      "description": "A custom cursor component with animated effects and interactions.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/cursor.tsx",
          "type": "registry:component",
          "target": "components/core/cursor.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-dialog",
      "type": "registry:component",
      "title": "Dialog",
      "description": "A modal dialog component with smooth entrance and exit animations.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/dialog.tsx",
          "type": "registry:component",
          "target": "components/core/dialog.tsx"
        },
        {
          "path": "hooks/usePreventScroll.tsx",
          "type": "registry:hook"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-disclosure",
      "type": "registry:component",
      "title": "Disclosure",
      "description": "A component that shows and hides content with animated transitions.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/disclosure.tsx",
          "type": "registry:component",
          "target": "components/core/disclosure.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-in-view",
      "type": "registry:component",
      "title": "In view",
      "description": "A component that triggers animations when elements enter the viewport.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "components/core/in-view.tsx",
          "type": "registry:component",
          "target": "components/core/in-view.tsx"
        },
        {
          "path": "components/core/motion-elements.ts",
          "type": "registry:component",
          "target": "components/core/motion-elements.ts"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-infinite-slider",
      "type": "registry:component",
      "title": "Infinite slider",
      "description": "A slider component that loops infinitely through its content.",
      "dependencies": [
        "motion",
        "react-use-measure"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/infinite-slider.tsx",
          "type": "registry:component",
          "target": "components/core/infinite-slider.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-transition-panel",
      "type": "registry:component",
      "title": "Transition panel",
      "description": "A panel component with smooth transitions between different states.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/transition-panel.tsx",
          "type": "registry:component",
          "target": "components/core/transition-panel.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-text-effect",
      "type": "registry:component",
      "title": "Text effect",
      "description": "A component that applies animated effects to text content.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/text-effect.tsx",
          "type": "registry:component",
          "target": "components/core/text-effect.tsx"
        },
        {
          "path": "components/core/motion-elements.ts",
          "type": "registry:component",
          "target": "components/core/motion-elements.ts"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-text-loop",
      "type": "registry:component",
      "title": "Text loop",
      "description": "A component that cycles through different text phrases with animations.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/text-loop.tsx",
          "type": "registry:component",
          "target": "components/core/text-loop.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-text-morph",
      "type": "registry:component",
      "title": "Text morph",
      "description": "A component that morphs between different text strings with smooth transitions.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/text-morph.tsx",
          "type": "registry:component",
          "target": "components/core/text-morph.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-text-roll",
      "type": "registry:component",
      "title": "Text roll",
      "description": "A component that animates text with a rolling effect.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "components/core/text-roll.tsx",
          "type": "registry:component",
          "target": "components/core/text-roll.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-text-scramble",
      "type": "registry:component",
      "title": "Text scramble",
      "description": "Text that scrambles into place on mount, when it scrolls into view or on hover of its link.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "components/core/text-scramble.tsx",
          "type": "registry:component",
          "target": "components/core/text-scramble.tsx"
        },
        {
          "path": "components/core/motion-elements.ts",
          "type": "registry:component",
          "target": "components/core/motion-elements.ts"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-text-shimmer",
      "type": "registry:component",
      "title": "Text shimmer",
      "description": "A component that applies a shimmering effect to text.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/text-shimmer.tsx",
          "type": "registry:component",
          "target": "components/core/text-shimmer.tsx"
        },
        {
          "path": "components/core/motion-elements.ts",
          "type": "registry:component",
          "target": "components/core/motion-elements.ts"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-text-shimmer-wave",
      "type": "registry:component",
      "title": "Text shimmer wave",
      "description": "A component that creates a wave-like shimmer effect on text.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/text-shimmer-wave.tsx",
          "type": "registry:component",
          "target": "components/core/text-shimmer-wave.tsx"
        },
        {
          "path": "components/core/motion-elements.ts",
          "type": "registry:component",
          "target": "components/core/motion-elements.ts"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-word-roll",
      "type": "registry:component",
      "title": "Word roll",
      "description": "A short label whose changed words roll out and the new ones rise in, in the direction of the change.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/word-roll.tsx",
          "type": "registry:component",
          "target": "components/core/word-roll.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-safari",
      "type": "registry:component",
      "title": "Safari",
      "description": "A macOS browser window drawn in CSS around a picture, a video or live UI, with a chrome that follows the theme.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/safari.tsx",
          "type": "registry:component",
          "target": "components/core/safari.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-iphone",
      "type": "registry:component",
      "title": "iPhone",
      "description": "A modern iPhone drawn in SVG and CSS, with a titanium frame, a Dynamic Island and a status bar that follows the screen.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/iphone.tsx",
          "type": "registry:component",
          "target": "components/core/iphone.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-android",
      "type": "registry:component",
      "title": "Android",
      "description": "An unbranded Android phone drawn in SVG and CSS, with a punch-hole camera, thin even bezels and a gesture bar.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/android.tsx",
          "type": "registry:component",
          "target": "components/core/android.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-text-3d-flip",
      "type": "registry:component",
      "title": "Text 3d flip",
      "description": "Letters that turn over like small blocks, one after another, when the link or button they sit in is hovered or focused.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/text-3d-flip.tsx",
          "type": "registry:component",
          "target": "components/core/text-3d-flip.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-highlighter",
      "type": "registry:component",
      "title": "Highlighter",
      "description": "Hand-drawn marks on text, a marker band, an underline, a box, a circle or a strike, drawn in when the text comes into view.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/highlighter.tsx",
          "type": "registry:component",
          "target": "components/core/highlighter.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-word-rotate",
      "type": "registry:component",
      "title": "Word rotate",
      "description": "Phrases on a drum that turns on a timer, with the sentence around them sliding to the new width.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/word-rotate.tsx",
          "type": "registry:component",
          "target": "components/core/word-rotate.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-scroll-velocity",
      "type": "registry:component",
      "title": "Scroll velocity",
      "description": "Stacked rows of text or pictures that loop sideways, speed up with the scroll, turn around when it scrolls up and lean into their speed.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/scroll-velocity.tsx",
          "type": "registry:component",
          "target": "components/core/scroll-velocity.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-globe",
      "type": "registry:component",
      "title": "Globe",
      "description": "A WebGL globe in the theme colours that turns on its own, follows a drag with momentum and glides to a chosen city.",
      "dependencies": [
        "cobe",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/globe.tsx",
          "type": "registry:component",
          "target": "components/core/globe.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-dotted-map",
      "type": "registry:component",
      "title": "Dotted map",
      "description": "A world map drawn in dots from a pre-generated grid, with markers, labels and a slow pulse.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/dotted-map.tsx",
          "type": "registry:component",
          "target": "components/core/dotted-map.tsx"
        },
        {
          "path": "components/core/dotted-map-points.ts",
          "type": "registry:component",
          "target": "components/core/dotted-map-points.ts"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-orbiting-circles",
      "type": "registry:component",
      "title": "Orbiting circles",
      "description": "Icons or avatars on concentric orbits around a centre, driven by CSS, with radius, speed, direction and a pause.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/orbiting-circles.tsx",
          "type": "registry:component",
          "target": "components/core/orbiting-circles.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-lens",
      "type": "registry:component",
      "title": "Lens",
      "description": "A round magnifier that follows the pointer over an image or any content, and moves with the arrow keys when focused.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/lens.tsx",
          "type": "registry:component",
          "target": "components/core/lens.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-border-beam",
      "type": "registry:component",
      "title": "Border beam",
      "description": "A beam in the primary colour that travels around the border of a card, its tail fading behind it and bending round the corners.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/border-beam.tsx",
          "type": "registry:component",
          "target": "components/core/border-beam.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-shine-border",
      "type": "registry:component",
      "title": "Shine border",
      "description": "A slanted glint that sweeps across the border of a card, on a slow loop or once on hover and keyboard focus.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/shine-border.tsx",
          "type": "registry:component",
          "target": "components/core/shine-border.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-magic-card",
      "type": "registry:component",
      "title": "Magic card",
      "description": "A card whose edge lights up on the side the pointer comes from, before the pointer reaches it.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/magic-card.tsx",
          "type": "registry:component",
          "target": "components/core/magic-card.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-confetti",
      "type": "registry:component",
      "title": "Confetti",
      "description": "A canvas burst of confetti from a button or a function call, in the brand colours and with no package.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "components/core/confetti.tsx",
          "type": "registry:component",
          "target": "components/core/confetti.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-post-card",
      "type": "registry:component",
      "title": "Post card",
      "description": "A social post card built from static props: author, text, pictures, date and counts. Nothing is fetched.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/post-card.tsx",
          "type": "registry:component",
          "target": "components/core/post-card.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-magnetic",
      "type": "registry:component",
      "title": "Magnetic",
      "description": "A component that creates a magnetic attraction effect on hover.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "components/core/magnetic.tsx",
          "type": "registry:component",
          "target": "components/core/magnetic.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-morphing-dialog",
      "type": "registry:component",
      "title": "Morphing dialog",
      "description": "A dialog that morphs from its trigger element with smooth transitions.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/morphing-dialog.tsx",
          "type": "registry:component",
          "target": "components/core/morphing-dialog.tsx"
        },
        {
          "path": "hooks/useClickOutside.tsx",
          "type": "registry:hook"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-morphing-popover",
      "type": "registry:component",
      "title": "Morphing popover",
      "description": "A popover component that morphs from its trigger with fluid animations.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/morphing-popover.tsx",
          "type": "registry:component",
          "target": "components/core/morphing-popover.tsx"
        },
        {
          "path": "hooks/useClickOutside.tsx",
          "type": "registry:hook"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-dock",
      "type": "registry:component",
      "title": "Dock",
      "description": "A macOS-style dock of buttons or links that magnify near the pointer, with labels and separators.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/dock.tsx",
          "type": "registry:component",
          "target": "components/core/dock.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-glow-effect",
      "type": "registry:component",
      "title": "Glow effect",
      "description": "A component that creates a glowing effect on elements based on cursor movement.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/glow-effect.tsx",
          "type": "registry:component",
          "target": "components/core/glow-effect.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-image-comparison",
      "type": "registry:component",
      "title": "Image comparison",
      "description": "A component for comparing two images with an interactive slider.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/image-comparison.tsx",
          "type": "registry:component",
          "target": "components/core/image-comparison.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-toolbar-dynamic",
      "type": "registry:component",
      "title": "Toolbar dynamic",
      "description": "A toolbar component with dynamic appearance based on user interaction.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "components/core/toolbar-dynamic.tsx",
          "type": "registry:component",
          "target": "components/core/toolbar-dynamic.tsx"
        },
        {
          "path": "hooks/useClickOutside.tsx",
          "type": "registry:hook"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-toolbar-expandable",
      "type": "registry:component",
      "title": "Toolbar expandable",
      "description": "An expandable toolbar that reveals additional options with animations.",
      "dependencies": [
        "motion",
        "react-use-measure"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/toolbar-expandable.tsx",
          "type": "registry:component",
          "target": "components/core/toolbar-expandable.tsx"
        },
        {
          "path": "hooks/useClickOutside.tsx",
          "type": "registry:hook"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-progressive-blur",
      "type": "registry:component",
      "title": "Progressive blur",
      "description": "A component that applies progressive blur effects to elements.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/progressive-blur.tsx",
          "type": "registry:component",
          "target": "components/core/progressive-blur.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-scroll-progress",
      "type": "registry:component",
      "title": "Scroll progress",
      "description": "A component that visualizes scroll progress with animated indicators.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/scroll-progress.tsx",
          "type": "registry:component",
          "target": "components/core/scroll-progress.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-sliding-number",
      "type": "registry:component",
      "title": "Sliding number",
      "description": "A component that transitions between numbers with a sliding animation.",
      "dependencies": [
        "motion",
        "react-use-measure"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "components/core/sliding-number.tsx",
          "type": "registry:component",
          "target": "components/core/sliding-number.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-spotlight",
      "type": "registry:component",
      "title": "Spotlight",
      "description": "A component that creates a spotlight effect following cursor movement.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/spotlight.tsx",
          "type": "registry:component",
          "target": "components/core/spotlight.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-spinning-text",
      "type": "registry:component",
      "title": "Spinning text",
      "description": "A component that animates text with a spinning rotation effect.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/spinning-text.tsx",
          "type": "registry:component",
          "target": "components/core/spinning-text.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-tilt",
      "type": "registry:component",
      "title": "Tilt",
      "description": "A component that applies 3D tilt effects to elements based on cursor position.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "components/core/tilt.tsx",
          "type": "registry:component",
          "target": "components/core/tilt.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-number",
      "type": "registry:component",
      "title": "Motion number",
      "description": "A formatted number whose digits roll to their new value in the direction of the change.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/motion-number.tsx",
          "type": "registry:component",
          "target": "components/core/motion-number.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-terminal",
      "type": "registry:component",
      "title": "Terminal",
      "description": "A command line for developer docs that types its commands and prints their output line by line.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/terminal.tsx",
          "type": "registry:component",
          "target": "components/core/terminal.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-directional-drawer",
      "type": "registry:component",
      "title": "Directional drawer",
      "description": "A drawer from any side that follows the drag, closes on a flick and resists being pulled the wrong way.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/sheet.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/directional-drawer.tsx",
          "type": "registry:component",
          "target": "components/core/directional-drawer.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-code-tree-viewer",
      "type": "registry:component",
      "title": "Code tree viewer",
      "description": "A file tree beside a code panel with highlighted code, file name and copy.",
      "dependencies": [
        "@headless-tree/core",
        "shiki"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/chat-code-block.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tree.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/code-tree-viewer.tsx",
          "type": "registry:component",
          "target": "components/core/code-tree-viewer.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-spotlight-cards",
      "type": "registry:component",
      "title": "Spotlight cards",
      "description": "A grid of link cards where a soft light follows the mouse and lights the hairline borders nearby.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/spotlight-cards.tsx",
          "type": "registry:component",
          "target": "components/core/spotlight-cards.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-hover-cards",
      "type": "registry:component",
      "title": "Hover cards",
      "description": "Link cards with four hover treatments: zoom, rise, tilt and trace.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/hover-cards.tsx",
          "type": "registry:component",
          "target": "components/core/hover-cards.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-magnified-doc",
      "type": "registry:component",
      "title": "Magnified doc",
      "description": "A dock of icons that magnify near the pointer and switch the content of the stage above them.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/magnified-doc.tsx",
          "type": "registry:component",
          "target": "components/core/magnified-doc.tsx"
        },
        {
          "path": "components/core/image-tabs.tsx",
          "type": "registry:component",
          "target": "components/core/image-tabs.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-scroll-text",
      "type": "registry:component",
      "title": "Scroll text",
      "description": "Text that reveals word by word, letter by letter or under a highlight as it scrolls through the viewport.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/scroll-text.tsx",
          "type": "registry:component",
          "target": "components/core/scroll-text.tsx"
        },
        {
          "path": "components/core/motion-elements.ts",
          "type": "registry:component",
          "target": "components/core/motion-elements.ts"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-scroll-text-marquee",
      "type": "registry:component",
      "title": "Scroll text marquee",
      "description": "A large line of text that loops sideways and speeds up with the scroll.",
      "dependencies": [
        "motion",
        "react-use-measure"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/scroll-text-marquee.tsx",
          "type": "registry:component",
          "target": "components/core/scroll-text-marquee.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-horizontal-scroll",
      "type": "registry:component",
      "title": "Horizontal scroll",
      "description": "A pinned row of cards that travels sideways as the page scrolls down.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/horizontal-scroll.tsx",
          "type": "registry:component",
          "target": "components/core/horizontal-scroll.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-sticky-scroll",
      "type": "registry:component",
      "title": "Sticky scroll",
      "description": "Steps that scroll past a pinned picture, which changes in place to match the step being read.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/sticky-scroll.tsx",
          "type": "registry:component",
          "target": "components/core/sticky-scroll.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-stacking-cards",
      "type": "registry:component",
      "title": "Stacking cards",
      "description": "Cards that pin and pile up as the page scrolls, each one behind shrinking and fading back a little.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/stacking-cards.tsx",
          "type": "registry:component",
          "target": "components/core/stacking-cards.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-timeline-animation",
      "type": "registry:component",
      "title": "Timeline animation",
      "description": "A vertical timeline whose line fills as the page scrolls, with entries that settle in once as they arrive.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/timeline-animation.tsx",
          "type": "registry:component",
          "target": "components/core/timeline-animation.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-scroll-animation",
      "type": "registry:component",
      "title": "Scroll animation",
      "description": "Reveals that play once when an element scrolls into view, and a parallax layer that drifts with the scroll.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/scroll-animation.tsx",
          "type": "registry:component",
          "target": "components/core/scroll-animation.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-smooth-scroll",
      "type": "registry:component",
      "title": "Smooth scroll",
      "description": "An opt-in wrapper that eases mouse wheel scrolling and leaves every other way of scrolling native.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/smooth-scroll.tsx",
          "type": "registry:component",
          "target": "components/core/smooth-scroll.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-image-tabs",
      "type": "registry:component",
      "title": "Image tabs",
      "description": "Tabs that change an image in place while the indicator travels to the chosen tab.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/image-tabs.tsx",
          "type": "registry:component",
          "target": "components/core/image-tabs.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-image-accordion",
      "type": "registry:component",
      "title": "Image accordion",
      "description": "A row of image panels where the hovered or focused one widens to show its caption.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/image-accordion.tsx",
          "type": "registry:component",
          "target": "components/core/image-accordion.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-image-reveal",
      "type": "registry:component",
      "title": "Image reveal",
      "description": "A list of titles where the hovered row shows its picture beside the pointer.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/image-reveal.tsx",
          "type": "registry:component",
          "target": "components/core/image-reveal.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-image-trail",
      "type": "registry:component",
      "title": "Image trail",
      "description": "Images that land along the pointer path, then fade and shrink away.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/image-trail.tsx",
          "type": "registry:component",
          "target": "components/core/image-trail.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-linear-modal",
      "type": "registry:component",
      "title": "Linear modal",
      "description": "Feature cards that grow into a modal with their full story and a list of what they do.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/linear-modal.tsx",
          "type": "registry:component",
          "target": "components/core/linear-modal.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-swap-grid",
      "type": "registry:component",
      "title": "Swap grid",
      "description": "A grid of slots where items are dragged onto each other to swap places, with a full keyboard path.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/swap-grid.tsx",
          "type": "registry:component",
          "target": "components/core/swap-grid.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-reorder-list",
      "type": "registry:component",
      "title": "Reorder list",
      "description": "A list reordered by a drag handle, with move up and move down buttons and keyboard reordering.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/reorder-list.tsx",
          "type": "registry:component",
          "target": "components/core/reorder-list.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-animated-beam",
      "type": "registry:component",
      "title": "Animated beam",
      "description": "SVG lines connecting icon tiles, with a highlight travelling along each one.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/animated-beam.tsx",
          "type": "registry:component",
          "target": "components/core/animated-beam.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-masonry-grid",
      "type": "registry:component",
      "title": "Masonry grid",
      "description": "A responsive masonry layout for items of different heights.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/masonry-grid.tsx",
          "type": "registry:component",
          "target": "components/core/masonry-grid.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "motion-marquee",
      "type": "registry:component",
      "title": "Marquee",
      "description": "A loop of logos, chips or cards driven by CSS, horizontal or vertical, that pauses under the pointer and on focus.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "components/core/marquee.tsx",
          "type": "registry:component",
          "target": "components/core/marquee.tsx"
        }
      ],
      "categories": [
        "motion"
      ]
    },
    {
      "name": "use-character-limit",
      "type": "registry:hook",
      "title": "Use character limit",
      "description": "The use-character-limit hook used by ndekoui components.",
      "dependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "registry/ndeko/hooks/use-character-limit.ts",
          "type": "registry:hook"
        }
      ],
      "categories": [
        "hooks"
      ]
    },
    {
      "name": "use-file-upload",
      "type": "registry:hook",
      "title": "Use file upload",
      "description": "The use-file-upload hook used by ndekoui components.",
      "dependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "registry/ndeko/hooks/use-file-upload.ts",
          "type": "registry:hook"
        }
      ],
      "categories": [
        "hooks"
      ]
    },
    {
      "name": "use-pagination",
      "type": "registry:hook",
      "title": "Use pagination",
      "description": "The use-pagination hook used by ndekoui components.",
      "dependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "registry/ndeko/hooks/use-pagination.ts",
          "type": "registry:hook"
        }
      ],
      "categories": [
        "hooks"
      ]
    },
    {
      "name": "use-slider-with-input",
      "type": "registry:hook",
      "title": "Use slider with input",
      "description": "The use-slider-with-input hook used by ndekoui components.",
      "dependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "registry/ndeko/hooks/use-slider-with-input.ts",
          "type": "registry:hook"
        }
      ],
      "categories": [
        "hooks"
      ]
    },
    {
      "name": "accordion-01",
      "type": "registry:component",
      "title": "Accordion with chevron",
      "description": "Questions that open one at a time, with a chevron that turns.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/accordion/accordion-01.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "accordion"
      ]
    },
    {
      "name": "accordion-02",
      "type": "registry:component",
      "title": "Accordion with plus and minus",
      "description": "A plus that folds into a minus when its answer opens.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/accordion/accordion-02.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "accordion"
      ]
    },
    {
      "name": "accordion-03",
      "type": "registry:component",
      "title": "Accordion with leading chevron",
      "description": "The chevron sits before the question and the answer lines up with the text.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/accordion/accordion-03.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "accordion"
      ]
    },
    {
      "name": "accordion-04",
      "type": "registry:component",
      "title": "Accordion with leading plus",
      "description": "A plus before each question that folds into a minus when it opens.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/accordion/accordion-04.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "accordion"
      ]
    },
    {
      "name": "accordion-05",
      "type": "registry:component",
      "title": "Accordion with icons",
      "description": "An icon in front of each question and a chevron at the end.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/accordion/accordion-05.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "accordion"
      ]
    },
    {
      "name": "accordion-06",
      "type": "registry:component",
      "title": "Accordion with icons and plus",
      "description": "An icon in front of each question and a plus that becomes a minus.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/accordion/accordion-06.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "accordion"
      ]
    },
    {
      "name": "accordion-07",
      "type": "registry:component",
      "title": "Accordion with descriptions",
      "description": "Settings sections with a one-line description under each title.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/accordion/accordion-07.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "accordion"
      ]
    },
    {
      "name": "accordion-08",
      "type": "registry:component",
      "title": "Accordion with descriptions and plus",
      "description": "Settings sections with a description and a plus that becomes a minus.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/accordion/accordion-08.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "accordion"
      ]
    },
    {
      "name": "accordion-09",
      "type": "registry:component",
      "title": "Accordion with icon tiles",
      "description": "Settings sections led by an icon tile, a title and a description.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/accordion/accordion-09.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "accordion"
      ]
    },
    {
      "name": "accordion-10",
      "type": "registry:component",
      "title": "Accordion with icon tiles and plus",
      "description": "Settings sections led by an icon tile, closed with a plus that becomes a minus.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/accordion/accordion-10.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "accordion"
      ]
    },
    {
      "name": "accordion-11",
      "type": "registry:component",
      "title": "Accordion of cards",
      "description": "Each question on its own card, with a chevron.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/accordion/accordion-11.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "accordion"
      ]
    },
    {
      "name": "accordion-12",
      "type": "registry:component",
      "title": "Accordion of cards with plus",
      "description": "Each question on its own card, with a plus that becomes a minus.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/accordion/accordion-12.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "accordion"
      ]
    },
    {
      "name": "accordion-13",
      "type": "registry:component",
      "title": "Accordion of cards with leading chevron",
      "description": "Each question on its own card, the chevron before the text.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/accordion/accordion-13.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "accordion"
      ]
    },
    {
      "name": "accordion-14",
      "type": "registry:component",
      "title": "Accordion of cards with leading plus",
      "description": "Each question on its own card, the plus before the text.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/accordion/accordion-14.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "accordion"
      ]
    },
    {
      "name": "accordion-15",
      "type": "registry:component",
      "title": "Accordion in one card",
      "description": "Questions stacked as rows of a single card, with a chevron.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/accordion/accordion-15.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "accordion"
      ]
    },
    {
      "name": "accordion-16",
      "type": "registry:component",
      "title": "Accordion in one card with plus",
      "description": "Questions stacked as rows of a single card, with a plus that becomes a minus.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/accordion/accordion-16.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "accordion"
      ]
    },
    {
      "name": "accordion-17",
      "type": "registry:component",
      "title": "Accordion in one card with leading chevron",
      "description": "Rows of a single card with the chevron before each question.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/accordion/accordion-17.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "accordion"
      ]
    },
    {
      "name": "accordion-18",
      "type": "registry:component",
      "title": "Accordion in one card with leading plus",
      "description": "Rows of a single card with the plus before each question.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/accordion/accordion-18.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "accordion"
      ]
    },
    {
      "name": "accordion-19",
      "type": "registry:component",
      "title": "Nested accordion",
      "description": "Each question opens on follow-up questions that open on their own.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/collapsible.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/accordion/accordion-19.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "accordion"
      ]
    },
    {
      "name": "accordion-20",
      "type": "registry:component",
      "title": "Nested accordion with icons",
      "description": "Questions and follow-up questions, each with its own icon.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/collapsible.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/accordion/accordion-20.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "accordion"
      ]
    },
    {
      "name": "activity-01",
      "type": "registry:component",
      "title": "Task history",
      "description": "Every change to a task with its old and new value, and a time that switches to the exact date on click",
      "dependencies": [
        "date-fns",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/activity/activity-01.tsx",
          "type": "registry:component",
          "target": "components/activity/activity-01.tsx"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/activity-model.ts",
          "type": "registry:component",
          "target": "components/activity/_parts/activity-model.ts"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/event-parts.tsx",
          "type": "registry:component",
          "target": "components/activity/_parts/event-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/glyphs.tsx",
          "type": "registry:component",
          "target": "components/activity/_parts/glyphs.tsx"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/activity/_parts/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/people.ts",
          "type": "registry:component",
          "target": "components/activity/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/time.ts",
          "type": "registry:component",
          "target": "components/activity/_parts/time.ts"
        }
      ],
      "categories": [
        "components",
        "activity"
      ]
    },
    {
      "name": "activity-02",
      "type": "registry:component",
      "title": "Feed by day with filters",
      "description": "Activity grouped under Today and Yesterday, with kind filters that fold rows away and an empty state",
      "dependencies": [
        "date-fns",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/activity/activity-02.tsx",
          "type": "registry:component",
          "target": "components/activity/activity-02.tsx"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/activity-model.ts",
          "type": "registry:component",
          "target": "components/activity/_parts/activity-model.ts"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/event-parts.tsx",
          "type": "registry:component",
          "target": "components/activity/_parts/event-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/glyphs.tsx",
          "type": "registry:component",
          "target": "components/activity/_parts/glyphs.tsx"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/activity/_parts/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/people.ts",
          "type": "registry:component",
          "target": "components/activity/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/time.ts",
          "type": "registry:component",
          "target": "components/activity/_parts/time.ts"
        }
      ],
      "categories": [
        "components",
        "activity"
      ]
    },
    {
      "name": "activity-03",
      "type": "registry:component",
      "title": "Compact side feed",
      "description": "One-line entries for a narrow panel that open in place to show what changed",
      "dependencies": [
        "date-fns",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/activity/activity-03.tsx",
          "type": "registry:component",
          "target": "components/activity/activity-03.tsx"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/activity-model.ts",
          "type": "registry:component",
          "target": "components/activity/_parts/activity-model.ts"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/event-parts.tsx",
          "type": "registry:component",
          "target": "components/activity/_parts/event-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/glyphs.tsx",
          "type": "registry:component",
          "target": "components/activity/_parts/glyphs.tsx"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/activity/_parts/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/people.ts",
          "type": "registry:component",
          "target": "components/activity/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/time.ts",
          "type": "registry:component",
          "target": "components/activity/_parts/time.ts"
        }
      ],
      "categories": [
        "components",
        "activity"
      ]
    },
    {
      "name": "activity-04",
      "type": "registry:component",
      "title": "Team activity stream",
      "description": "Who worked on what with the time spent, a timer glyph on each avatar and a range switch that rescales the bars",
      "dependencies": [
        "date-fns",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/activity/activity-04.tsx",
          "type": "registry:component",
          "target": "components/activity/activity-04.tsx"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/glyphs.tsx",
          "type": "registry:component",
          "target": "components/activity/_parts/glyphs.tsx"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/activity/_parts/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/people.ts",
          "type": "registry:component",
          "target": "components/activity/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/time.ts",
          "type": "registry:component",
          "target": "components/activity/_parts/time.ts"
        }
      ],
      "categories": [
        "components",
        "activity"
      ]
    },
    {
      "name": "activity-05",
      "type": "registry:component",
      "title": "Live feed",
      "description": "New updates wait behind a count pill and slide in at the top when you ask for them",
      "dependencies": [
        "date-fns",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/activity/activity-05.tsx",
          "type": "registry:component",
          "target": "components/activity/activity-05.tsx"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/activity-model.ts",
          "type": "registry:component",
          "target": "components/activity/_parts/activity-model.ts"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/event-parts.tsx",
          "type": "registry:component",
          "target": "components/activity/_parts/event-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/glyphs.tsx",
          "type": "registry:component",
          "target": "components/activity/_parts/glyphs.tsx"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/activity/_parts/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/people.ts",
          "type": "registry:component",
          "target": "components/activity/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/time.ts",
          "type": "registry:component",
          "target": "components/activity/_parts/time.ts"
        }
      ],
      "categories": [
        "components",
        "activity"
      ]
    },
    {
      "name": "activity-06",
      "type": "registry:component",
      "title": "Folded runs of changes",
      "description": "Changes one person made in a row fold under their name behind a \"more changes\" button",
      "dependencies": [
        "date-fns",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/activity/activity-06.tsx",
          "type": "registry:component",
          "target": "components/activity/activity-06.tsx"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/activity-model.ts",
          "type": "registry:component",
          "target": "components/activity/_parts/activity-model.ts"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/event-parts.tsx",
          "type": "registry:component",
          "target": "components/activity/_parts/event-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/glyphs.tsx",
          "type": "registry:component",
          "target": "components/activity/_parts/glyphs.tsx"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/activity/_parts/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/people.ts",
          "type": "registry:component",
          "target": "components/activity/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/time.ts",
          "type": "registry:component",
          "target": "components/activity/_parts/time.ts"
        }
      ],
      "categories": [
        "components",
        "activity"
      ]
    },
    {
      "name": "activity-07",
      "type": "registry:component",
      "title": "Mentions with quotes",
      "description": "Mentions and replies with the quoted comment cut at two lines, opened in place when it runs longer",
      "dependencies": [
        "date-fns",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/activity/activity-07.tsx",
          "type": "registry:component",
          "target": "components/activity/activity-07.tsx"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/glyphs.tsx",
          "type": "registry:component",
          "target": "components/activity/_parts/glyphs.tsx"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/activity/_parts/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/people.ts",
          "type": "registry:component",
          "target": "components/activity/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/activity/_parts/time.ts",
          "type": "registry:component",
          "target": "components/activity/_parts/time.ts"
        }
      ],
      "categories": [
        "components",
        "activity"
      ]
    },
    {
      "name": "alert-01",
      "type": "registry:component",
      "title": "Warning alert",
      "description": "A card with a warning orb for details that need attention.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/alert/alert-01.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "alert"
      ]
    },
    {
      "name": "alert-02",
      "type": "registry:component",
      "title": "Tinted warning alert",
      "description": "The same warning drawn on the soft warning pair.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/alert/alert-02.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "alert"
      ]
    },
    {
      "name": "alert-03",
      "type": "registry:component",
      "title": "Error alert",
      "description": "A card with an error orb for something that failed.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/alert/alert-03.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "alert"
      ]
    },
    {
      "name": "alert-04",
      "type": "registry:component",
      "title": "Tinted error alert",
      "description": "The same error drawn on the soft destructive pair.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/alert/alert-04.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "alert"
      ]
    },
    {
      "name": "alert-05",
      "type": "registry:component",
      "title": "Success alert",
      "description": "A card with a success orb that confirms a saved change.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/alert/alert-05.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "alert"
      ]
    },
    {
      "name": "alert-06",
      "type": "registry:component",
      "title": "Tinted success alert",
      "description": "The same confirmation drawn on the soft success pair.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/alert/alert-06.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "alert"
      ]
    },
    {
      "name": "alert-07",
      "type": "registry:component",
      "title": "Info alert",
      "description": "A card with an info orb for a quick note.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/alert/alert-07.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "alert"
      ]
    },
    {
      "name": "alert-08",
      "type": "registry:component",
      "title": "Tinted info alert",
      "description": "The same note drawn on the soft info pair.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/alert/alert-08.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "alert"
      ]
    },
    {
      "name": "alert-09",
      "type": "registry:component",
      "title": "Warning alert with link",
      "description": "A warning card with a link that leads to the fix.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/alert/alert-09.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "alert"
      ]
    },
    {
      "name": "alert-10",
      "type": "registry:component",
      "title": "Tinted warning alert with link",
      "description": "A warning on its soft pair with a link that leads to the fix.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/alert/alert-10.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "alert"
      ]
    },
    {
      "name": "alert-11",
      "type": "registry:component",
      "title": "Error alert with list",
      "description": "A card that lists the password rules still unmet.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/alert/alert-11.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "alert"
      ]
    },
    {
      "name": "alert-12",
      "type": "registry:component",
      "title": "Tinted error alert with list",
      "description": "The unmet password rules on the soft destructive pair.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/alert/alert-12.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "alert"
      ]
    },
    {
      "name": "aside-01",
      "type": "registry:component",
      "title": "Task details",
      "description": "Properties as rows with a status menu and assignee chips, sub-issues you check off and a comment box pinned at the foot",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/sheet.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/aside/aside-01.tsx",
          "type": "registry:component",
          "target": "components/aside/aside-01.tsx"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/aside-frame.tsx",
          "type": "registry:component",
          "target": "components/aside/_parts/aside-frame.tsx"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/copy-icon-button.tsx",
          "type": "registry:component",
          "target": "components/aside/_parts/copy-icon-button.tsx"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/motion.ts",
          "type": "registry:component",
          "target": "components/aside/_parts/motion.ts"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/people.ts",
          "type": "registry:component",
          "target": "components/aside/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/person-avatar.tsx",
          "type": "registry:component",
          "target": "components/aside/_parts/person-avatar.tsx"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/swap.tsx",
          "type": "registry:component",
          "target": "components/aside/_parts/swap.tsx"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/task-meta.tsx",
          "type": "registry:component",
          "target": "components/aside/_parts/task-meta.tsx"
        }
      ],
      "categories": [
        "components",
        "aside"
      ]
    },
    {
      "name": "aside-02",
      "type": "registry:component",
      "title": "Member profile",
      "description": "Presence on the avatar, contact rows, the day split by project in one bar that morphs between today and yesterday",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/sheet.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/toggle-group.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/aside/aside-02.tsx",
          "type": "registry:component",
          "target": "components/aside/aside-02.tsx"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/aside-frame.tsx",
          "type": "registry:component",
          "target": "components/aside/_parts/aside-frame.tsx"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/copy-icon-button.tsx",
          "type": "registry:component",
          "target": "components/aside/_parts/copy-icon-button.tsx"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/motion.ts",
          "type": "registry:component",
          "target": "components/aside/_parts/motion.ts"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/people.ts",
          "type": "registry:component",
          "target": "components/aside/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/person-avatar.tsx",
          "type": "registry:component",
          "target": "components/aside/_parts/person-avatar.tsx"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/swap.tsx",
          "type": "registry:component",
          "target": "components/aside/_parts/swap.tsx"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/task-meta.tsx",
          "type": "registry:component",
          "target": "components/aside/_parts/task-meta.tsx"
        }
      ],
      "categories": [
        "components",
        "aside"
      ]
    },
    {
      "name": "aside-03",
      "type": "registry:component",
      "title": "Filters",
      "description": "Status, assignee, priority and due date filters with removable chips and a button that counts the matching tasks",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/sheet.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/toggle-group.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/aside/aside-03.tsx",
          "type": "registry:component",
          "target": "components/aside/aside-03.tsx"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/aside-frame.tsx",
          "type": "registry:component",
          "target": "components/aside/_parts/aside-frame.tsx"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/motion.ts",
          "type": "registry:component",
          "target": "components/aside/_parts/motion.ts"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/people.ts",
          "type": "registry:component",
          "target": "components/aside/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/person-avatar.tsx",
          "type": "registry:component",
          "target": "components/aside/_parts/person-avatar.tsx"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/task-meta.tsx",
          "type": "registry:component",
          "target": "components/aside/_parts/task-meta.tsx"
        }
      ],
      "categories": [
        "components",
        "aside"
      ]
    },
    {
      "name": "aside-04",
      "type": "registry:component",
      "title": "Notification settings",
      "description": "Events by channel as a grid of switches, a group checkbox for each section, quiet hours and a digest",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/sheet.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/aside/aside-04.tsx",
          "type": "registry:component",
          "target": "components/aside/aside-04.tsx"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/aside-frame.tsx",
          "type": "registry:component",
          "target": "components/aside/_parts/aside-frame.tsx"
        }
      ],
      "categories": [
        "components",
        "aside"
      ]
    },
    {
      "name": "aside-05",
      "type": "registry:component",
      "title": "Project details",
      "description": "A read-only project with its properties, progress by status in one bar and members that unfold in place",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/sheet.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/aside/aside-05.tsx",
          "type": "registry:component",
          "target": "components/aside/aside-05.tsx"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/aside-frame.tsx",
          "type": "registry:component",
          "target": "components/aside/_parts/aside-frame.tsx"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/motion.ts",
          "type": "registry:component",
          "target": "components/aside/_parts/motion.ts"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/people.ts",
          "type": "registry:component",
          "target": "components/aside/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/person-avatar.tsx",
          "type": "registry:component",
          "target": "components/aside/_parts/person-avatar.tsx"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/swap.tsx",
          "type": "registry:component",
          "target": "components/aside/_parts/swap.tsx"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/task-meta.tsx",
          "type": "registry:component",
          "target": "components/aside/_parts/task-meta.tsx"
        }
      ],
      "categories": [
        "components",
        "aside"
      ]
    },
    {
      "name": "aside-06",
      "type": "registry:component",
      "title": "Workspace sidebar",
      "description": "A workspace switcher, navigation with one travelling highlight, a folding projects group and the account menu",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/sheet.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/aside/aside-06.tsx",
          "type": "registry:component",
          "target": "components/aside/aside-06.tsx"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/aside-frame.tsx",
          "type": "registry:component",
          "target": "components/aside/_parts/aside-frame.tsx"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/motion.ts",
          "type": "registry:component",
          "target": "components/aside/_parts/motion.ts"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/people.ts",
          "type": "registry:component",
          "target": "components/aside/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/person-avatar.tsx",
          "type": "registry:component",
          "target": "components/aside/_parts/person-avatar.tsx"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/swap.tsx",
          "type": "registry:component",
          "target": "components/aside/_parts/swap.tsx"
        }
      ],
      "categories": [
        "components",
        "aside"
      ]
    },
    {
      "name": "aside-07",
      "type": "registry:component",
      "title": "Keyboard shortcuts",
      "description": "Shortcuts grouped by area, filtered as you type with the match highlighted and rows that fold away",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/sheet.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/aside/aside-07.tsx",
          "type": "registry:component",
          "target": "components/aside/aside-07.tsx"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/aside-frame.tsx",
          "type": "registry:component",
          "target": "components/aside/_parts/aside-frame.tsx"
        },
        {
          "path": "registry/ndeko/components/aside/_parts/motion.ts",
          "type": "registry:component",
          "target": "components/aside/_parts/motion.ts"
        }
      ],
      "categories": [
        "components",
        "aside"
      ]
    },
    {
      "name": "avatar-01",
      "type": "registry:component",
      "title": "Avatar",
      "description": "A round photo that shows initials while it loads or if it fails.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/avatar/avatar-01.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "avatar"
      ]
    },
    {
      "name": "avatar-02",
      "type": "registry:component",
      "title": "Initials avatar",
      "description": "Initials on the muted fill for someone without a photo.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/avatar/avatar-02.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "avatar"
      ]
    },
    {
      "name": "avatar-03",
      "type": "registry:component",
      "title": "Placeholder avatar",
      "description": "A user icon for an account with no photo and no name yet.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/avatar/avatar-03.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "avatar"
      ]
    },
    {
      "name": "avatar-04",
      "type": "registry:component",
      "title": "Square avatar",
      "description": "A photo avatar with rounded corners.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/avatar/avatar-04.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "avatar"
      ]
    },
    {
      "name": "avatar-05",
      "type": "registry:component",
      "title": "Online avatar",
      "description": "A photo avatar with a success dot for someone online.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/avatar/avatar-05.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "avatar"
      ]
    },
    {
      "name": "avatar-06",
      "type": "registry:component",
      "title": "Offline avatar",
      "description": "A photo avatar with a grey dot for someone offline.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/avatar/avatar-06.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "avatar"
      ]
    },
    {
      "name": "avatar-07",
      "type": "registry:component",
      "title": "Square avatar with status",
      "description": "A rounded-corner avatar with an online dot on its top corner.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/avatar/avatar-07.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "avatar"
      ]
    },
    {
      "name": "avatar-08",
      "type": "registry:component",
      "title": "Verified avatar",
      "description": "A photo avatar with a verified seal on its top corner.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/avatar/avatar-08.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "avatar"
      ]
    },
    {
      "name": "avatar-09",
      "type": "registry:component",
      "title": "Avatar with count",
      "description": "A photo avatar with an unread count.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/avatar/avatar-09.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "avatar"
      ]
    },
    {
      "name": "avatar-10",
      "type": "registry:component",
      "title": "Square avatar with count",
      "description": "A rounded-corner avatar with an unread count.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/avatar/avatar-10.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "avatar"
      ]
    },
    {
      "name": "avatar-11",
      "type": "registry:component",
      "title": "20px avatar stack",
      "description": "Four overlapping avatars at 20px.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/avatar/avatar-11.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "avatar"
      ]
    },
    {
      "name": "avatar-12",
      "type": "registry:component",
      "title": "24px avatar stack",
      "description": "Four overlapping avatars at 24px.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/avatar/avatar-12.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "avatar"
      ]
    },
    {
      "name": "avatar-13",
      "type": "registry:component",
      "title": "28px avatar stack",
      "description": "Four overlapping avatars at 28px.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/avatar/avatar-13.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "avatar"
      ]
    },
    {
      "name": "avatar-14",
      "type": "registry:component",
      "title": "32px avatar stack",
      "description": "Four overlapping avatars at 32px.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/avatar/avatar-14.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "avatar"
      ]
    },
    {
      "name": "avatar-15",
      "type": "registry:component",
      "title": "36px avatar stack",
      "description": "Four overlapping avatars at 36px.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/avatar/avatar-15.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "avatar"
      ]
    },
    {
      "name": "avatar-16",
      "type": "registry:component",
      "title": "40px avatar stack",
      "description": "Four overlapping avatars at 40px.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/avatar/avatar-16.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "avatar"
      ]
    },
    {
      "name": "avatar-17",
      "type": "registry:component",
      "title": "48px avatar stack",
      "description": "Four overlapping avatars at 48px.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/avatar/avatar-17.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "avatar"
      ]
    },
    {
      "name": "avatar-18",
      "type": "registry:component",
      "title": "64px avatar stack",
      "description": "Four overlapping avatars at 64px.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/avatar/avatar-18.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "avatar"
      ]
    },
    {
      "name": "avatar-19",
      "type": "registry:component",
      "title": "80px avatar stack",
      "description": "Four overlapping avatars at 80px.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/avatar/avatar-19.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "avatar"
      ]
    },
    {
      "name": "avatar-20",
      "type": "registry:component",
      "title": "Avatar stack with more",
      "description": "Four overlapping avatars and a button for the three others.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/avatar/avatar-20.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "avatar"
      ]
    },
    {
      "name": "avatar-21",
      "type": "registry:component",
      "title": "Avatar group on a muted pill",
      "description": "Overlapping avatars and a more button on a muted pill.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/avatar/avatar-21.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "avatar"
      ]
    },
    {
      "name": "avatar-22",
      "type": "registry:component",
      "title": "Avatar group on a card pill",
      "description": "Overlapping avatars and a more button on a card pill.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/avatar/avatar-22.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "avatar"
      ]
    },
    {
      "name": "avatar-23",
      "type": "registry:component",
      "title": "Avatar group with caption",
      "description": "Small overlapping avatars with a line that says who joined.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/avatar/avatar-23.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "avatar"
      ]
    },
    {
      "name": "badge-01",
      "type": "registry:component",
      "title": "Badge",
      "description": "The default badge on the soft brand pair.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/badge/badge-01.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "badge"
      ]
    },
    {
      "name": "badge-02",
      "type": "registry:component",
      "title": "Pill badge",
      "description": "A badge with fully rounded ends.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/badge/badge-02.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "badge"
      ]
    },
    {
      "name": "badge-03",
      "type": "registry:component",
      "title": "Badge with icon",
      "description": "A badge with a dimmed icon before its label.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/badge/badge-03.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "badge"
      ]
    },
    {
      "name": "badge-04",
      "type": "registry:component",
      "title": "Count badge",
      "description": "A compact badge that holds a single count.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/badge/badge-04.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "badge"
      ]
    },
    {
      "name": "badge-05",
      "type": "registry:component",
      "title": "Link badge",
      "description": "A badge that is a link and deepens its tint on hover.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/badge/badge-05.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "badge"
      ]
    },
    {
      "name": "badge-06",
      "type": "registry:component",
      "title": "Badge with count",
      "description": "A label followed by a smaller, quieter count.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/badge/badge-06.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "badge"
      ]
    },
    {
      "name": "badge-07",
      "type": "registry:component",
      "title": "Verified badge",
      "description": "An outline badge with a success check.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/badge/badge-07.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "badge"
      ]
    },
    {
      "name": "badge-08",
      "type": "registry:component",
      "title": "Active status badge",
      "description": "An outline badge with a success dot.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/badge/badge-08.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "badge"
      ]
    },
    {
      "name": "badge-09",
      "type": "registry:component",
      "title": "Pending status badge",
      "description": "An outline badge with a warning dot.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/badge/badge-09.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "badge"
      ]
    },
    {
      "name": "badge-10",
      "type": "registry:component",
      "title": "Failed status badge",
      "description": "An outline badge with a destructive dot.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/badge/badge-10.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "badge"
      ]
    },
    {
      "name": "badge-11",
      "type": "registry:component",
      "title": "Selectable badge",
      "description": "A badge that toggles like a checkbox and shows a check when on.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/badge/badge-11.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "badge"
      ]
    },
    {
      "name": "badge-12",
      "type": "registry:component",
      "title": "Removable badge",
      "description": "A badge with a cross that removes it.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/badge/badge-12.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "badge"
      ]
    },
    {
      "name": "badge-13",
      "type": "registry:component",
      "title": "Removable tag",
      "description": "A taller outline tag with a roomy remove button.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/badge/badge-13.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "badge"
      ]
    },
    {
      "name": "banner-01",
      "type": "registry:component",
      "title": "Cookie consent",
      "description": "A raised notice that asks to accept or decline cookies.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/banner/banner-01.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "banner"
      ]
    },
    {
      "name": "banner-02",
      "type": "registry:component",
      "title": "Announcement link",
      "description": "A centred announcement that links to the news.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/banner/banner-02.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "banner"
      ]
    },
    {
      "name": "banner-03",
      "type": "registry:component",
      "title": "Upgrade banner",
      "description": "A centred line that points to a plan upgrade.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/banner/banner-03.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "banner"
      ]
    },
    {
      "name": "banner-04",
      "type": "registry:component",
      "title": "Feature banner",
      "description": "A new feature with a learn more link at the end.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/banner/banner-04.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "banner"
      ]
    },
    {
      "name": "banner-05",
      "type": "registry:component",
      "title": "Dismissible feature banner",
      "description": "A feature banner that folds away when dismissed.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/banner/banner-05.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "banner"
      ]
    },
    {
      "name": "banner-06",
      "type": "registry:component",
      "title": "Banner with actions",
      "description": "A download and a learn more button, with a dismiss cross.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/banner/banner-06.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "banner"
      ]
    },
    {
      "name": "banner-07",
      "type": "registry:component",
      "title": "Banner with action and link",
      "description": "A download button next to a learn more link.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/banner/banner-07.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "banner"
      ]
    },
    {
      "name": "banner-08",
      "type": "registry:component",
      "title": "Centred banner with action",
      "description": "A centred message and one button, with a dismiss cross.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/banner/banner-08.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "banner"
      ]
    },
    {
      "name": "banner-09",
      "type": "registry:component",
      "title": "Feature launch banner",
      "description": "A title, a short pitch and a button to try the feature.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/banner/banner-09.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "banner"
      ]
    },
    {
      "name": "banner-10",
      "type": "registry:component",
      "title": "Sale countdown banner",
      "description": "An offer with the hours, minutes and seconds left until midnight.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/banner/banner-10.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "banner"
      ]
    },
    {
      "name": "banner-11",
      "type": "registry:component",
      "title": "Newsletter banner",
      "description": "A centred line that invites a newsletter subscription.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/banner/banner-11.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "banner"
      ]
    },
    {
      "name": "banner-12",
      "type": "registry:component",
      "title": "Update banner",
      "description": "A new version notice whose button shows the update running.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/banner/banner-12.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "banner"
      ]
    },
    {
      "name": "breadcrumb-01",
      "type": "registry:component",
      "title": "Collapsed breadcrumb",
      "description": "A trail whose middle pages fold into a menu behind an ellipsis.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/breadcrumb.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/breadcrumb/breadcrumb-01.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "breadcrumb"
      ]
    },
    {
      "name": "breadcrumb-02",
      "type": "registry:component",
      "title": "Breadcrumb with folder menu",
      "description": "A folder icon that opens the pages hidden from the trail.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/breadcrumb.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/breadcrumb/breadcrumb-02.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "breadcrumb"
      ]
    },
    {
      "name": "breadcrumb-03",
      "type": "registry:component",
      "title": "Breadcrumb with home icon",
      "description": "A trail that starts with a home icon instead of a word.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/breadcrumb.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/breadcrumb/breadcrumb-03.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "breadcrumb"
      ]
    },
    {
      "name": "breadcrumb-04",
      "type": "registry:component",
      "title": "Breadcrumb with icons",
      "description": "Each parent page carries an icon before its name.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/breadcrumb.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/breadcrumb/breadcrumb-04.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "breadcrumb"
      ]
    },
    {
      "name": "breadcrumb-05",
      "type": "registry:component",
      "title": "Slash separators",
      "description": "A trail separated by slashes, as in a file path.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/breadcrumb.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/breadcrumb/breadcrumb-05.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "breadcrumb"
      ]
    },
    {
      "name": "breadcrumb-06",
      "type": "registry:component",
      "title": "Dot separators",
      "description": "A trail separated by middle dots.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/breadcrumb.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/breadcrumb/breadcrumb-06.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "breadcrumb"
      ]
    },
    {
      "name": "breadcrumb-07",
      "type": "registry:component",
      "title": "Breadcrumb bar",
      "description": "The trail on a small card with a hairline ring.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/breadcrumb.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/breadcrumb/breadcrumb-07.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "breadcrumb"
      ]
    },
    {
      "name": "breadcrumb-08",
      "type": "registry:component",
      "title": "Breadcrumb with select",
      "description": "The last step is a select that switches between databases.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/breadcrumb.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/breadcrumb/breadcrumb-08.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "breadcrumb"
      ]
    },
    {
      "name": "button-01",
      "type": "registry:component",
      "title": "Primary button",
      "description": "The default pill for the main action of a surface.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-01.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-02",
      "type": "registry:component",
      "title": "Disabled button",
      "description": "A primary pill that cannot be pressed yet.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-02.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-03",
      "type": "registry:component",
      "title": "Large button",
      "description": "The lg pill for the call to action of a page or a dialog.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-03.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-04",
      "type": "registry:component",
      "title": "Button with icon",
      "description": "A primary pill with a dimmed icon before its label.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-04.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-05",
      "type": "registry:component",
      "title": "Destructive button",
      "description": "A destructive pill with a trash icon for deleting.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-05.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-06",
      "type": "registry:component",
      "title": "Secondary button",
      "description": "A grey pill with a cross icon for dismissing.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-06.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-07",
      "type": "registry:component",
      "title": "Outline button with trailing icon",
      "description": "An outline pill with an icon after its label.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-07.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-08",
      "type": "registry:component",
      "title": "Back button",
      "description": "A ghost button whose arrow nudges back on hover.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-08.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-09",
      "type": "registry:component",
      "title": "Continue button",
      "description": "A primary pill whose arrow nudges forward on hover.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-09.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-10",
      "type": "registry:component",
      "title": "Email button",
      "description": "A grey pill with a mail icon and an arrow that nudges on hover.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-10.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-11",
      "type": "registry:component",
      "title": "Button with chevron",
      "description": "A primary pill with a chevron that hints at more choices.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-11.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-12",
      "type": "registry:component",
      "title": "Cancel and save",
      "description": "A ghost cancel next to the primary save.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-12.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-13",
      "type": "registry:component",
      "title": "Saving button",
      "description": "A disabled pill with a spinning loader while work runs.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-13.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-14",
      "type": "registry:component",
      "title": "Loading button",
      "description": "Clicking fades the label out behind a spinner for a second, then brings it back.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-14.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-15",
      "type": "registry:component",
      "title": "Button with count",
      "description": "An outline pill with a count on a key cap.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-15.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-16",
      "type": "registry:component",
      "title": "Button with shortcut",
      "description": "An outline print button that shows its keyboard shortcut.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-16.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-17",
      "type": "registry:component",
      "title": "Profile button",
      "description": "A primary pill that starts with an avatar and shows a handle.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-17.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-18",
      "type": "registry:component",
      "title": "Avatar button",
      "description": "An avatar with a chevron, ready to open an account menu.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-18.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-19",
      "type": "registry:component",
      "title": "Responsive add button",
      "description": "An add button that keeps only its icon on small screens.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-19.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-20",
      "type": "registry:component",
      "title": "Icon button",
      "description": "A round outline button with a plus icon.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-20.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-21",
      "type": "registry:component",
      "title": "Expand button",
      "description": "A plus that turns into a cross when the menu opens.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-21.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-22",
      "type": "registry:component",
      "title": "Icon button with tooltip",
      "description": "A round add button that names itself in a tooltip.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-22.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-23",
      "type": "registry:component",
      "title": "Menu button",
      "description": "Three lines that fold into a cross when the menu opens.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-23.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-24",
      "type": "registry:component",
      "title": "Bookmark toggle",
      "description": "A toggle that tints when bookmarked, with a tooltip that follows the state.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/toggle.json",
        "https://ui.ndekocode.dev/r/tooltip.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-24.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-25",
      "type": "registry:component",
      "title": "Notifications button",
      "description": "A bell with an unread count that clears when clicked.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-25.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-26",
      "type": "registry:component",
      "title": "Theme toggle",
      "description": "A toggle that swaps the sun for the moon when dark mode is on.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/toggle.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-26.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-27",
      "type": "registry:component",
      "title": "Vote buttons",
      "description": "Upvote and downvote joined around a score.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-27.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-28",
      "type": "registry:component",
      "title": "Primary vote buttons",
      "description": "Upvote and downvote on one primary pill around a score.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-28.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-29",
      "type": "registry:component",
      "title": "Volume stepper",
      "description": "Minus and plus buttons around a level whose digit and speaker icon follow each step.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-29.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-30",
      "type": "registry:component",
      "title": "Copy button",
      "description": "Copies a link and shows a check for a moment.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-30.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-31",
      "type": "registry:component",
      "title": "Flip buttons",
      "description": "Two joined icon buttons to flip horizontally or vertically.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-31.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-32",
      "type": "registry:component",
      "title": "Alignment toggle group",
      "description": "Four joined primary toggles where one alignment stays selected.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/toggle-group.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-32.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-33",
      "type": "registry:component",
      "title": "Button group",
      "description": "Files, media and a more button joined into one pill.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-33.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-34",
      "type": "registry:component",
      "title": "Toggle group",
      "description": "Three joined outline toggles that can all be off.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/toggle-group.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-34.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-35",
      "type": "registry:component",
      "title": "Segmented control",
      "description": "A full-width control whose indicator slides to the chosen option.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/toggle-group.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-35.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-36",
      "type": "registry:component",
      "title": "Sign in with QR code",
      "description": "A primary sign in joined to a QR code button.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-36.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-37",
      "type": "registry:component",
      "title": "Preview with link",
      "description": "A preview button joined to a button that opens the link.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-37.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-38",
      "type": "registry:component",
      "title": "Pinned with options",
      "description": "A primary pinned button with an options chevron at its start.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-38.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-39",
      "type": "registry:component",
      "title": "Fork button",
      "description": "A primary fork button with a count and an options chevron.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-39.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-40",
      "type": "registry:component",
      "title": "Split merge button",
      "description": "A merge button whose menu picks the method, and the label resizes to the choice.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-40.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-41",
      "type": "registry:component",
      "title": "Previous button",
      "description": "A primary pill with a tinted cap holding the back chevron.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-41.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-42",
      "type": "registry:component",
      "title": "Next button",
      "description": "A primary pill with a tinted cap holding the forward chevron.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-42.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-43",
      "type": "registry:component",
      "title": "Like button",
      "description": "An outline like button with its count behind a divider.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-43.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-44",
      "type": "registry:component",
      "title": "Star button",
      "description": "A primary star button with a quiet count.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-44.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-45",
      "type": "registry:component",
      "title": "Social sign in icons",
      "description": "Four icon buttons to sign in with Google, Facebook, X or GitHub.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-45.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-46",
      "type": "registry:component",
      "title": "Full-width social icons",
      "description": "The four sign in icon buttons sharing the full width.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-46.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-47",
      "type": "registry:component",
      "title": "Social sign in buttons",
      "description": "Stacked outline buttons that name each sign in provider.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-47.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-48",
      "type": "registry:component",
      "title": "Social sign in with aligned icons",
      "description": "Stacked buttons with the icon at the start and the label centred.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-48.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-49",
      "type": "registry:component",
      "title": "Show more button",
      "description": "Switches between show more and show less, and turns its chevron.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-49.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-50",
      "type": "registry:component",
      "title": "Back link",
      "description": "A link-style button with a back chevron.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-50.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-51",
      "type": "registry:component",
      "title": "Image upload button",
      "description": "Picks an image, previews it and lets you remove it.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-file-upload.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-51.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-52",
      "type": "registry:component",
      "title": "Avatar upload button",
      "description": "A round button that shows the chosen avatar, with a remove badge.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-file-upload.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-52.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-53",
      "type": "registry:component",
      "title": "Directional pad",
      "description": "Four icon buttons around a centre to pan a camera.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-53.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-54",
      "type": "registry:component",
      "title": "Card button",
      "description": "A two-line outline button with a title, a hint and a chevron.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-54.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-55",
      "type": "registry:component",
      "title": "Label to icon on hover",
      "description": "On hover the label slides out and a download icon slides in to take its place.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-55.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-56",
      "type": "registry:component",
      "title": "Travelling arrow",
      "description": "The arrow in the cap leaves to the top right on hover while the next one arrives from the bottom left.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-56.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-57",
      "type": "registry:component",
      "title": "Rolling label",
      "description": "Each letter rolls up on hover and its copy rolls in from below, one after the other.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-57.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-58",
      "type": "registry:component",
      "title": "Hold to delete",
      "description": "A fill crosses the button while it is held for two seconds, snaps back on release and turns into a confirmation.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-58.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-59",
      "type": "registry:component",
      "title": "Follow toggle with fill",
      "description": "Following fills the button from the point that was pressed, and unfollowing draws the fill back.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-59.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-60",
      "type": "registry:component",
      "title": "Publish with states",
      "description": "The label and icon morph from publish to publishing to published, and the width follows.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-60.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-61",
      "type": "registry:component",
      "title": "Download with progress",
      "description": "The button fills with the download progress, counts the percentage and ends on a check.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-61.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-62",
      "type": "registry:component",
      "title": "Watch with rolling digits",
      "description": "Only the digits that change roll, in the direction of the change, when the watch count goes up or down.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-62.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-63",
      "type": "registry:component",
      "title": "Copy install command",
      "description": "A command in a monospace pill that copies itself and swaps its icon for a check.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-63.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "button-64",
      "type": "registry:component",
      "title": "Confirm on second press",
      "description": "The first press turns the button destructive with a three second countdown, the second removes.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/button/button-64.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "button"
      ]
    },
    {
      "name": "calendar-date-picker-01",
      "type": "registry:component",
      "title": "Calendar",
      "description": "A react-aria calendar with today picked.",
      "dependencies": [
        "@internationalized/date",
        "react-aria-components"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/calendar-rac.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-01.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-01.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/settling-days.ts",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/settling-days.ts"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "calendar-date-picker-02",
      "type": "registry:component",
      "title": "Range calendar",
      "description": "A react-aria range of four days, tinted between its two ends.",
      "dependencies": [
        "@internationalized/date",
        "react-aria-components"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/calendar-rac.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-02.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-02.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/settling-days.ts",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/settling-days.ts"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "calendar-date-picker-03",
      "type": "registry:component",
      "title": "Calendar with unavailable dates",
      "description": "A react-aria range calendar that skips weekends, past days and booked days.",
      "dependencies": [
        "@internationalized/date",
        "react-aria",
        "react-aria-components"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/calendar-rac.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-03.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-03.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/settling-days.ts",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/settling-days.ts"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "calendar-date-picker-04",
      "type": "registry:component",
      "title": "Day picker calendar",
      "description": "A react-day-picker calendar with today picked.",
      "dependencies": [
        "date-fns",
        "motion",
        "react-day-picker"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-04.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-04.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/animated-calendar.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/animated-calendar.tsx"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "calendar-date-picker-05",
      "type": "registry:component",
      "title": "Day picker range",
      "description": "A range of four days that grows from its start to its end.",
      "dependencies": [
        "date-fns",
        "motion",
        "react-day-picker"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-05.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-05.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/animated-calendar.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/animated-calendar.tsx"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "calendar-date-picker-06",
      "type": "registry:component",
      "title": "Range with closed days",
      "description": "A range calendar that refuses past days, weekends and two closed periods.",
      "dependencies": [
        "date-fns",
        "motion",
        "react-day-picker"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-06.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-06.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/animated-calendar.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/animated-calendar.tsx"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "calendar-date-picker-07",
      "type": "registry:component",
      "title": "Multiple days",
      "description": "Several days picked one by one.",
      "dependencies": [
        "date-fns",
        "motion",
        "react-day-picker"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-07.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-07.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/animated-calendar.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/animated-calendar.tsx"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "calendar-date-picker-08",
      "type": "registry:component",
      "title": "Round picked day",
      "description": "The picked day drawn as a full circle.",
      "dependencies": [
        "date-fns",
        "motion",
        "react-day-picker"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-08.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-08.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/animated-calendar.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/animated-calendar.tsx"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "calendar-date-picker-09",
      "type": "registry:component",
      "title": "Round range ends",
      "description": "Circular range ends joined by a tinted band.",
      "dependencies": [
        "date-fns",
        "motion",
        "react-day-picker"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-09.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-09.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/animated-calendar.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/animated-calendar.tsx"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "calendar-date-picker-10",
      "type": "registry:component",
      "title": "Navigation on the right",
      "description": "The month on the left and both arrows on the right.",
      "dependencies": [
        "date-fns",
        "motion",
        "react-day-picker"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-10.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-10.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/animated-calendar.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/animated-calendar.tsx"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "calendar-date-picker-11",
      "type": "registry:component",
      "title": "Month and year selects",
      "description": "Two selects replace the arrows to jump to any month.",
      "dependencies": [
        "date-fns",
        "motion",
        "react-day-picker"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-11.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-11.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/animated-calendar.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/animated-calendar.tsx"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "calendar-date-picker-12",
      "type": "registry:component",
      "title": "Year select with arrows",
      "description": "A year select between the month arrows.",
      "dependencies": [
        "date-fns",
        "motion",
        "react-day-picker"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-12.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-12.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/animated-calendar.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/animated-calendar.tsx"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "calendar-date-picker-13",
      "type": "registry:component",
      "title": "Week numbers",
      "description": "Six weeks shown at all times with their numbers.",
      "dependencies": [
        "date-fns",
        "motion",
        "react-day-picker"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-13.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-13.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/animated-calendar.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/animated-calendar.tsx"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "calendar-date-picker-14",
      "type": "registry:component",
      "title": "Back to the current month",
      "description": "A button that brings the current month back into view.",
      "dependencies": [
        "date-fns",
        "motion",
        "react-day-picker"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-14.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-14.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/animated-calendar.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/animated-calendar.tsx"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "calendar-date-picker-15",
      "type": "registry:component",
      "title": "Jump to today",
      "description": "A button that picks today and shows its month.",
      "dependencies": [
        "date-fns",
        "motion",
        "react-day-picker"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-15.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-15.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/animated-calendar.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/animated-calendar.tsx"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "calendar-date-picker-16",
      "type": "registry:component",
      "title": "Calendar with date field",
      "description": "A typed date and the calendar stay in step.",
      "dependencies": [
        "date-fns",
        "motion",
        "react-day-picker"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-16.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-16.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/animated-calendar.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/animated-calendar.tsx"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "calendar-date-picker-17",
      "type": "registry:component",
      "title": "Calendar with time field",
      "description": "A calendar followed by a time field with seconds.",
      "dependencies": [
        "date-fns",
        "motion",
        "react-day-picker"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-17.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-17.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/animated-calendar.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/animated-calendar.tsx"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "calendar-date-picker-18",
      "type": "registry:component",
      "title": "Month and year view",
      "description": "The month name opens a list of years to jump to any month between 1980 and 2030.",
      "dependencies": [
        "date-fns",
        "motion",
        "react-day-picker"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/collapsible.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/scroll-area.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-18.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-18.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/animated-calendar.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/animated-calendar.tsx"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "calendar-date-picker-19",
      "type": "registry:component",
      "title": "Appointment picker",
      "description": "A day and its free time slots side by side.",
      "dependencies": [
        "date-fns",
        "motion",
        "react-day-picker"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/scroll-area.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-19.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-19.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/animated-calendar.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/animated-calendar.tsx"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "calendar-date-picker-20",
      "type": "registry:component",
      "title": "Calendar with presets",
      "description": "Quick picks beside the calendar, from today to last year.",
      "dependencies": [
        "date-fns",
        "motion",
        "react-day-picker"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-20.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-20.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/animated-calendar.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/animated-calendar.tsx"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "calendar-date-picker-21",
      "type": "registry:component",
      "title": "Range with presets",
      "description": "Report ranges beside the calendar, from today to last year.",
      "dependencies": [
        "date-fns",
        "motion",
        "react-day-picker"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-21.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-21.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/animated-calendar.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/animated-calendar.tsx"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "calendar-date-picker-22",
      "type": "registry:component",
      "title": "Two months",
      "description": "A range across two months that page together.",
      "dependencies": [
        "date-fns",
        "motion",
        "react-day-picker"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-22.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-22.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/animated-calendar.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/animated-calendar.tsx"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "calendar-date-picker-23",
      "type": "registry:component",
      "title": "Three months",
      "description": "A range across three months that page together.",
      "dependencies": [
        "date-fns",
        "motion",
        "react-day-picker"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-23.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-23.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/animated-calendar.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/animated-calendar.tsx"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "calendar-date-picker-24",
      "type": "registry:component",
      "title": "Pricing calendar",
      "description": "Two months with a fictional fare under each day, the cheap ones in green.",
      "dependencies": [
        "date-fns",
        "motion",
        "react-day-picker"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-24.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-24.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/animated-calendar.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/animated-calendar.tsx"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "calendar-date-picker-25",
      "type": "registry:component",
      "title": "Date picker",
      "description": "A react-aria date field that opens a calendar.",
      "dependencies": [
        "react-aria-components"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/calendar-rac.json",
        "https://ui.ndekocode.dev/r/datefield-rac.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-25.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-25.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/settling-days.ts",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/settling-days.ts"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "calendar-date-picker-26",
      "type": "registry:component",
      "title": "Date range picker",
      "description": "A react-aria pair of date fields that opens a range calendar.",
      "dependencies": [
        "react-aria-components"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/calendar-rac.json",
        "https://ui.ndekocode.dev/r/datefield-rac.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-26.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-26.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/settling-days.ts",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/settling-days.ts"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "calendar-date-picker-27",
      "type": "registry:component",
      "title": "Popover date picker",
      "description": "A field-like trigger that opens a calendar in a popover.",
      "dependencies": [
        "date-fns",
        "motion",
        "react-day-picker"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-27.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-27.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/animated-calendar.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/animated-calendar.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/swap-text.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/swap-text.tsx"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "calendar-date-picker-28",
      "type": "registry:component",
      "title": "Popover range picker",
      "description": "A field-like trigger that opens a range calendar in a popover.",
      "dependencies": [
        "date-fns",
        "motion",
        "react-day-picker"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/calendar-date-picker/calendar-date-picker-28.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/calendar-date-picker-28.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/animated-calendar.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/animated-calendar.tsx"
        },
        {
          "path": "registry/ndeko/components/calendar-date-picker/_parts/swap-text.tsx",
          "type": "registry:component",
          "target": "components/calendar-date-picker/_parts/swap-text.tsx"
        }
      ],
      "categories": [
        "components",
        "calendar-date-picker"
      ]
    },
    {
      "name": "checkbox-01",
      "type": "registry:component",
      "title": "Basic checkbox",
      "description": "A checkbox with its label beside it.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/checkbox/checkbox-01.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "checkbox"
      ]
    },
    {
      "name": "checkbox-02",
      "type": "registry:component",
      "title": "Indeterminate checkbox",
      "description": "A select all box that starts half checked.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/checkbox/checkbox-02.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "checkbox"
      ]
    },
    {
      "name": "checkbox-03",
      "type": "registry:component",
      "title": "Coloured checkbox",
      "description": "A checked box filled with the success hue instead of the primary.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/checkbox/checkbox-03.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "checkbox"
      ]
    },
    {
      "name": "checkbox-04",
      "type": "registry:component",
      "title": "Disabled checkbox",
      "description": "A checkbox and its label dimmed because they cannot be changed.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/checkbox/checkbox-04.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "checkbox"
      ]
    },
    {
      "name": "checkbox-05",
      "type": "registry:component",
      "title": "Todo item",
      "description": "A task whose label is struck through once it is done.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/checkbox/checkbox-05.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "checkbox"
      ]
    },
    {
      "name": "checkbox-06",
      "type": "registry:component",
      "title": "Animated todo item",
      "description": "A round success checkbox that draws a line through its task.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/checkbox/checkbox-06.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "checkbox"
      ]
    },
    {
      "name": "checkbox-07",
      "type": "registry:component",
      "title": "Terms checkbox",
      "description": "An agreement checkbox with a link to the terms in its label.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/checkbox/checkbox-07.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "checkbox"
      ]
    },
    {
      "name": "checkbox-08",
      "type": "registry:component",
      "title": "Inline checkbox group",
      "description": "Three checkboxes side by side.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/checkbox/checkbox-08.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "checkbox"
      ]
    },
    {
      "name": "checkbox-09",
      "type": "registry:component",
      "title": "Stacked checkbox group",
      "description": "Three checkboxes in a column for picking notifications.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/checkbox/checkbox-09.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "checkbox"
      ]
    },
    {
      "name": "checkbox-10",
      "type": "registry:component",
      "title": "Trailing checkbox",
      "description": "A full-width row with the label first and the box at the end.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/checkbox/checkbox-10.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "checkbox"
      ]
    },
    {
      "name": "checkbox-11",
      "type": "registry:component",
      "title": "Checkbox with description",
      "description": "A checkbox with a quiet sublabel and a line of help under it.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/checkbox/checkbox-11.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "checkbox"
      ]
    },
    {
      "name": "checkbox-12",
      "type": "registry:component",
      "title": "Checkbox with field",
      "description": "Checking the box opens a field below it and focuses it.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/collapsible.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/checkbox/checkbox-12.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "checkbox"
      ]
    },
    {
      "name": "checkbox-13",
      "type": "registry:component",
      "title": "Trailing checkbox with description",
      "description": "A label, a sublabel and a description with the box at the end.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/checkbox/checkbox-13.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "checkbox"
      ]
    },
    {
      "name": "checkbox-14",
      "type": "registry:component",
      "title": "Checkbox card",
      "description": "A card that you check as a whole and that takes a primary hairline.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/checkbox/checkbox-14.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "checkbox"
      ]
    },
    {
      "name": "checkbox-15",
      "type": "registry:component",
      "title": "Payment card checkbox",
      "description": "A checkbox card for a saved card, led by its brand mark.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/checkbox/checkbox-15.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "checkbox"
      ]
    },
    {
      "name": "checkbox-16",
      "type": "registry:component",
      "title": "Integration checkbox",
      "description": "A checkbox card for an integration, led by its logo on a key cap.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/checkbox/checkbox-16.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "checkbox"
      ]
    },
    {
      "name": "checkbox-17",
      "type": "registry:component",
      "title": "Checkbox tiles",
      "description": "A two-column grid of tool tiles that can each be checked.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/checkbox/checkbox-17.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "checkbox"
      ]
    },
    {
      "name": "checkbox-18",
      "type": "registry:component",
      "title": "Checkbox tree",
      "description": "Nested checkboxes where a parent shows when only some children are on.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/checkbox-tree.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/checkbox/checkbox-18.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "checkbox"
      ]
    },
    {
      "name": "checkbox-19",
      "type": "registry:component",
      "title": "Weekday picker",
      "description": "Round day chips that fill with the primary when picked.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/checkbox/checkbox-19.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "checkbox"
      ]
    },
    {
      "name": "checkbox-20",
      "type": "registry:component",
      "title": "Theme checkbox",
      "description": "A checkbox drawn as an icon button that swaps the sun for the moon.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/checkbox/checkbox-20.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "checkbox"
      ]
    },
    {
      "name": "comment-01",
      "type": "registry:component",
      "title": "Thread with replies",
      "description": "Comments with replies one level deep, a reply field that opens in place and replies that fold under their count",
      "dependencies": [
        "date-fns",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/comment/comment-01.tsx",
          "type": "registry:component",
          "target": "components/comment/comment-01.tsx"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/comment-field.tsx",
          "type": "registry:component",
          "target": "components/comment/_parts/comment-field.tsx"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/comment-model.ts",
          "type": "registry:component",
          "target": "components/comment/_parts/comment-model.ts"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/comment-parts.tsx",
          "type": "registry:component",
          "target": "components/comment/_parts/comment-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/comment/_parts/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/people.ts",
          "type": "registry:component",
          "target": "components/comment/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/time.ts",
          "type": "registry:component",
          "target": "components/comment/_parts/time.ts"
        }
      ],
      "categories": [
        "components",
        "comment"
      ]
    },
    {
      "name": "comment-02",
      "type": "registry:component",
      "title": "Mention suggestions",
      "description": "A comment field where @ lists the team, arrows and Enter pick a name and each mention is tinted in the text",
      "dependencies": [
        "date-fns",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/comment/comment-02.tsx",
          "type": "registry:component",
          "target": "components/comment/comment-02.tsx"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/comment-model.ts",
          "type": "registry:component",
          "target": "components/comment/_parts/comment-model.ts"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/comment-parts.tsx",
          "type": "registry:component",
          "target": "components/comment/_parts/comment-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/comment/_parts/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/people.ts",
          "type": "registry:component",
          "target": "components/comment/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/time.ts",
          "type": "registry:component",
          "target": "components/comment/_parts/time.ts"
        }
      ],
      "categories": [
        "components",
        "comment"
      ]
    },
    {
      "name": "comment-03",
      "type": "registry:component",
      "title": "Reactions",
      "description": "Reaction chips you toggle with a rolling count and the names in a tooltip, and a picker for a new one",
      "dependencies": [
        "date-fns",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/comment/comment-03.tsx",
          "type": "registry:component",
          "target": "components/comment/comment-03.tsx"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/comment-model.ts",
          "type": "registry:component",
          "target": "components/comment/_parts/comment-model.ts"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/comment-parts.tsx",
          "type": "registry:component",
          "target": "components/comment/_parts/comment-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/comment/_parts/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/people.ts",
          "type": "registry:component",
          "target": "components/comment/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/time.ts",
          "type": "registry:component",
          "target": "components/comment/_parts/time.ts"
        }
      ],
      "categories": [
        "components",
        "comment"
      ]
    },
    {
      "name": "comment-04",
      "type": "registry:component",
      "title": "Edit in place",
      "description": "Your comment turns into its own field to edit, marks itself edited, and leaves an Undo line when deleted",
      "dependencies": [
        "date-fns",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/comment/comment-04.tsx",
          "type": "registry:component",
          "target": "components/comment/comment-04.tsx"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/comment-model.ts",
          "type": "registry:component",
          "target": "components/comment/_parts/comment-model.ts"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/comment-parts.tsx",
          "type": "registry:component",
          "target": "components/comment/_parts/comment-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/comment/_parts/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/people.ts",
          "type": "registry:component",
          "target": "components/comment/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/time.ts",
          "type": "registry:component",
          "target": "components/comment/_parts/time.ts"
        }
      ],
      "categories": [
        "components",
        "comment"
      ]
    },
    {
      "name": "comment-05",
      "type": "registry:component",
      "title": "Resolved thread",
      "description": "A discussion that folds into one resolved line, opens again to read and can be reopened",
      "dependencies": [
        "date-fns",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/comment/comment-05.tsx",
          "type": "registry:component",
          "target": "components/comment/comment-05.tsx"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/comment-model.ts",
          "type": "registry:component",
          "target": "components/comment/_parts/comment-model.ts"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/comment-parts.tsx",
          "type": "registry:component",
          "target": "components/comment/_parts/comment-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/comment/_parts/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/people.ts",
          "type": "registry:component",
          "target": "components/comment/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/time.ts",
          "type": "registry:component",
          "target": "components/comment/_parts/time.ts"
        }
      ],
      "categories": [
        "components",
        "comment"
      ]
    },
    {
      "name": "comment-06",
      "type": "registry:component",
      "title": "Comment with attachments",
      "description": "Files staged as chips while they upload, refused with a reason when too large, and shown as tiles once posted",
      "dependencies": [
        "date-fns",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/sample-scenes.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/comment/comment-06.tsx",
          "type": "registry:component",
          "target": "components/comment/comment-06.tsx"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/comment-model.ts",
          "type": "registry:component",
          "target": "components/comment/_parts/comment-model.ts"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/comment-parts.tsx",
          "type": "registry:component",
          "target": "components/comment/_parts/comment-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/comment/_parts/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/people.ts",
          "type": "registry:component",
          "target": "components/comment/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/time.ts",
          "type": "registry:component",
          "target": "components/comment/_parts/time.ts"
        }
      ],
      "categories": [
        "components",
        "comment"
      ]
    },
    {
      "name": "comment-07",
      "type": "registry:component",
      "title": "Unread marker",
      "description": "A count of new comments above the first unread one, cleared with Mark as read",
      "dependencies": [
        "date-fns",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/comment/comment-07.tsx",
          "type": "registry:component",
          "target": "components/comment/comment-07.tsx"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/comment-model.ts",
          "type": "registry:component",
          "target": "components/comment/_parts/comment-model.ts"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/comment-parts.tsx",
          "type": "registry:component",
          "target": "components/comment/_parts/comment-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/comment/_parts/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/people.ts",
          "type": "registry:component",
          "target": "components/comment/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/time.ts",
          "type": "registry:component",
          "target": "components/comment/_parts/time.ts"
        }
      ],
      "categories": [
        "components",
        "comment"
      ]
    },
    {
      "name": "comment-08",
      "type": "registry:component",
      "title": "Someone is typing",
      "description": "A typing row under the avatar of the person writing, which becomes their comment when it arrives",
      "dependencies": [
        "date-fns",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/comment/comment-08.tsx",
          "type": "registry:component",
          "target": "components/comment/comment-08.tsx"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/comment-field.tsx",
          "type": "registry:component",
          "target": "components/comment/_parts/comment-field.tsx"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/comment-model.ts",
          "type": "registry:component",
          "target": "components/comment/_parts/comment-model.ts"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/comment-parts.tsx",
          "type": "registry:component",
          "target": "components/comment/_parts/comment-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/comment/_parts/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/people.ts",
          "type": "registry:component",
          "target": "components/comment/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/comment/_parts/time.ts",
          "type": "registry:component",
          "target": "components/comment/_parts/time.ts"
        }
      ],
      "categories": [
        "components",
        "comment"
      ]
    },
    {
      "name": "dialog-01",
      "type": "registry:component",
      "title": "Confirmation dialog",
      "description": "An alert dialog that asks before an invoice goes out.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/alert-dialog.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dialog/dialog-01.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dialog"
      ]
    },
    {
      "name": "dialog-02",
      "type": "registry:component",
      "title": "Destructive confirmation",
      "description": "An alert dialog with an error orb that names what gets deleted.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/alert-dialog.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dialog/dialog-02.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dialog"
      ]
    },
    {
      "name": "dialog-03",
      "type": "registry:component",
      "title": "Scrollable dialog",
      "description": "A long FAQ that scrolls with the native scrollbar.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dialog/dialog-03.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dialog"
      ]
    },
    {
      "name": "dialog-04",
      "type": "registry:component",
      "title": "Scrollable dialog with custom scrollbar",
      "description": "The same FAQ inside a scroll area with a thin scrollbar.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/scroll-area.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dialog/dialog-04.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dialog"
      ]
    },
    {
      "name": "dialog-05",
      "type": "registry:component",
      "title": "Dialog with fixed header",
      "description": "The title stays in place while the questions scroll under it.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dialog/dialog-05.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dialog"
      ]
    },
    {
      "name": "dialog-06",
      "type": "registry:component",
      "title": "Dialog with fixed footer",
      "description": "The actions stay at the bottom while the questions scroll.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dialog/dialog-06.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dialog"
      ]
    },
    {
      "name": "dialog-07",
      "type": "registry:component",
      "title": "Terms dialog",
      "description": "Terms that can be accepted only once read to the end.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dialog/dialog-07.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dialog"
      ]
    },
    {
      "name": "dialog-08",
      "type": "registry:component",
      "title": "Typed confirmation",
      "description": "Deleting a project asks for its name before the button turns on.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dialog/dialog-08.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dialog"
      ]
    },
    {
      "name": "dialog-09",
      "type": "registry:component",
      "title": "Newsletter dialog",
      "description": "An email field whose button turns into Subscribed.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dialog/dialog-09.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dialog"
      ]
    },
    {
      "name": "dialog-10",
      "type": "registry:component",
      "title": "Feedback dialog",
      "description": "A short message with links to help, sent in place.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dialog/dialog-10.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dialog"
      ]
    },
    {
      "name": "dialog-11",
      "type": "registry:component",
      "title": "Rating dialog",
      "description": "A scale from 0 to 8 on joined pills, then a reason.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dialog/dialog-11.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dialog"
      ]
    },
    {
      "name": "dialog-12",
      "type": "registry:component",
      "title": "Confirmation code dialog",
      "description": "A 4-digit code that swaps the dialog to its confirmed step.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/otp-field.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dialog/dialog-12.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dialog"
      ]
    },
    {
      "name": "dialog-13",
      "type": "registry:component",
      "title": "Sign-up dialog",
      "description": "Name, email and password, with Google as the other way in.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dialog/dialog-13.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dialog"
      ]
    },
    {
      "name": "dialog-14",
      "type": "registry:component",
      "title": "Sign-in dialog",
      "description": "Email and password with remember me and a reset link.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dialog/dialog-14.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dialog"
      ]
    },
    {
      "name": "dialog-15",
      "type": "registry:component",
      "title": "Invite dialog",
      "description": "Email rows added one at a time and a link to copy.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dialog/dialog-15.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dialog"
      ]
    },
    {
      "name": "dialog-16",
      "type": "registry:component",
      "title": "Card details dialog",
      "description": "Card number, expiry and CVC that format as you type.",
      "dependencies": [
        "react-payment-inputs"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dialog/dialog-16.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dialog"
      ]
    },
    {
      "name": "dialog-17",
      "type": "registry:component",
      "title": "Checkout dialog",
      "description": "A billing period, card fields and a coupon field on demand.",
      "dependencies": [
        "motion",
        "react-payment-inputs"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dialog/dialog-17.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dialog"
      ]
    },
    {
      "name": "dialog-18",
      "type": "registry:component",
      "title": "Plan dialog",
      "description": "Plans as choice cards, with what every paid plan includes.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dialog/dialog-18.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dialog"
      ]
    },
    {
      "name": "dialog-19",
      "type": "registry:component",
      "title": "Profile dialog",
      "description": "Cover, picture and profile fields between a fixed title and fixed actions.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-character-limit.json",
        "https://ui.ndekocode.dev/r/use-file-upload.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dialog/dialog-19.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dialog"
      ]
    },
    {
      "name": "dialog-20",
      "type": "registry:component",
      "title": "Onboarding dialog",
      "description": "Four steps in one dialog that resizes, with an indicator that travels.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dialog/dialog-20.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dialog"
      ]
    },
    {
      "name": "dialog-21",
      "type": "registry:component",
      "title": "Command palette",
      "description": "Commands opened from a search field or with Cmd K.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/command.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dialog/dialog-21.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dialog"
      ]
    },
    {
      "name": "dropdown-01",
      "type": "registry:component",
      "title": "Basic menu",
      "description": "A ghost icon button that opens four plain actions.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dropdown/dropdown-01.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dropdown"
      ]
    },
    {
      "name": "dropdown-02",
      "type": "registry:component",
      "title": "Menu as wide as its trigger",
      "description": "The menu takes at least the width of the button that opens it.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dropdown/dropdown-02.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dropdown"
      ]
    },
    {
      "name": "dropdown-03",
      "type": "registry:component",
      "title": "Menu with icons",
      "description": "Each action leads with a muted icon.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dropdown/dropdown-03.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dropdown"
      ]
    },
    {
      "name": "dropdown-04",
      "type": "registry:component",
      "title": "Grouped menu",
      "description": "Actions in groups split by hairlines, delete last on its own.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dropdown/dropdown-04.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dropdown"
      ]
    },
    {
      "name": "dropdown-05",
      "type": "registry:component",
      "title": "Menu with group labels",
      "description": "Each group of actions opens with a short label.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dropdown/dropdown-05.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dropdown"
      ]
    },
    {
      "name": "dropdown-06",
      "type": "registry:component",
      "title": "Checkbox menu",
      "description": "Options that toggle on and off while the menu stays open.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dropdown/dropdown-06.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dropdown"
      ]
    },
    {
      "name": "dropdown-07",
      "type": "registry:component",
      "title": "Radio menu",
      "description": "One option at a time, marked when picked.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dropdown/dropdown-07.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dropdown"
      ]
    },
    {
      "name": "dropdown-08",
      "type": "registry:component",
      "title": "Menu with shortcuts",
      "description": "Grouped actions with keyboard shortcuts and a submenu.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dropdown/dropdown-08.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dropdown"
      ]
    },
    {
      "name": "dropdown-09",
      "type": "registry:component",
      "title": "Menu with submenus",
      "description": "Icons, shortcuts and submenus holding a radio group and checkboxes.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dropdown/dropdown-09.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dropdown"
      ]
    },
    {
      "name": "dropdown-10",
      "type": "registry:component",
      "title": "Account menu",
      "description": "Shows who is signed in above the account actions.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dropdown/dropdown-10.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dropdown"
      ]
    },
    {
      "name": "dropdown-11",
      "type": "registry:component",
      "title": "Account menu with avatar",
      "description": "A header with avatar, name and email over icon actions.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dropdown/dropdown-11.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dropdown"
      ]
    },
    {
      "name": "dropdown-12",
      "type": "registry:component",
      "title": "Avatar menu",
      "description": "The avatar itself opens the account menu.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dropdown/dropdown-12.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dropdown"
      ]
    },
    {
      "name": "dropdown-13",
      "type": "registry:component",
      "title": "Help menu",
      "description": "Links to documentation, support and contact.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dropdown/dropdown-13.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dropdown"
      ]
    },
    {
      "name": "dropdown-14",
      "type": "registry:component",
      "title": "Add block menu",
      "description": "Block types on key cap tiles with a one line description.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dropdown/dropdown-14.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dropdown"
      ]
    },
    {
      "name": "dropdown-15",
      "type": "registry:component",
      "title": "Theme menu",
      "description": "Picks a theme and swaps the icon of its trigger.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/dropdown/dropdown-15.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "dropdown"
      ]
    },
    {
      "name": "event-calendar-01",
      "type": "registry:component",
      "title": "Event calendar",
      "description": "Day, week, month, year and agenda views behind a segmented switch, with events you drag to a new slot and edit in one dialog",
      "dependencies": [
        "@dnd-kit/core",
        "date-fns",
        "motion",
        "sonner"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/event-calendar/event-calendar-01.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/event-calendar-01.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/agenda-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/agenda-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/calendar-dnd-context.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/calendar-dnd-context.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/calendar-header.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/calendar-header.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/constants.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/constants.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/day-events-panel.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/day-events-panel.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/day-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/day-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/draggable-event.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/draggable-event.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/droppable-cell.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/droppable-cell.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-calendar.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-calendar.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-dialog.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-dialog.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-item.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-item.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-list-row.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-list-row.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/index.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/index.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/mini-month.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/mini-month.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/month-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/month-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/navigation.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/navigation.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/sample-events.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/sample-events.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/time-grid.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/time-grid.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/types.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/types.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-current-time-indicator.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-current-time-indicator.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-event-editor.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-event-editor.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-event-list.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-event-list.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-event-visibility.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-event-visibility.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-roving-day.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-roving-day.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/utils.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/utils.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/view-switcher.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/view-switcher.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/week-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/week-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/year-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/year-view.tsx"
        }
      ],
      "categories": [
        "components",
        "event-calendar"
      ]
    },
    {
      "name": "event-calendar-02",
      "type": "registry:component",
      "title": "Month view",
      "description": "A month of events where spans read as bars and timed events as a dot with their time, and busy days fold into a list",
      "dependencies": [
        "@dnd-kit/core",
        "date-fns",
        "motion",
        "sonner"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/event-calendar/event-calendar-02.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/event-calendar-02.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/agenda-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/agenda-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/calendar-dnd-context.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/calendar-dnd-context.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/calendar-header.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/calendar-header.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/constants.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/constants.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/day-events-panel.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/day-events-panel.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/day-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/day-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/draggable-event.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/draggable-event.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/droppable-cell.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/droppable-cell.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-calendar.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-calendar.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-dialog.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-dialog.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-item.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-item.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-list-row.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-list-row.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/index.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/index.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/mini-month.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/mini-month.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/month-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/month-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/navigation.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/navigation.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/sample-events.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/sample-events.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/time-grid.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/time-grid.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/types.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/types.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-current-time-indicator.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-current-time-indicator.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-event-editor.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-event-editor.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-event-list.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-event-list.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-event-visibility.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-event-visibility.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-roving-day.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-roving-day.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/utils.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/utils.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/view-switcher.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/view-switcher.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/week-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/week-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/year-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/year-view.tsx"
        }
      ],
      "categories": [
        "components",
        "event-calendar"
      ]
    },
    {
      "name": "event-calendar-03",
      "type": "registry:component",
      "title": "Week view",
      "description": "Seven days on an hour grid that opens on the morning, with all-day events on top and a line at the current time",
      "dependencies": [
        "@dnd-kit/core",
        "date-fns",
        "motion",
        "sonner"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/event-calendar/event-calendar-03.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/event-calendar-03.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/agenda-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/agenda-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/calendar-dnd-context.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/calendar-dnd-context.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/calendar-header.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/calendar-header.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/constants.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/constants.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/day-events-panel.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/day-events-panel.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/day-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/day-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/draggable-event.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/draggable-event.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/droppable-cell.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/droppable-cell.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-calendar.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-calendar.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-dialog.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-dialog.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-item.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-item.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-list-row.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-list-row.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/index.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/index.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/mini-month.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/mini-month.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/month-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/month-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/navigation.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/navigation.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/sample-events.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/sample-events.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/time-grid.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/time-grid.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/types.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/types.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-current-time-indicator.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-current-time-indicator.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-event-editor.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-event-editor.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-event-list.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-event-list.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-event-visibility.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-event-visibility.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-roving-day.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-roving-day.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/utils.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/utils.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/view-switcher.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/view-switcher.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/week-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/week-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/year-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/year-view.tsx"
        }
      ],
      "categories": [
        "components",
        "event-calendar"
      ]
    },
    {
      "name": "event-calendar-04",
      "type": "registry:component",
      "title": "Day view",
      "description": "One day on an hour grid where overlapping events sit side by side and a click on a free slot plans a new one",
      "dependencies": [
        "@dnd-kit/core",
        "date-fns",
        "motion",
        "sonner"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/event-calendar/event-calendar-04.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/event-calendar-04.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/agenda-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/agenda-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/calendar-dnd-context.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/calendar-dnd-context.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/calendar-header.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/calendar-header.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/constants.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/constants.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/day-events-panel.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/day-events-panel.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/day-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/day-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/draggable-event.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/draggable-event.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/droppable-cell.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/droppable-cell.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-calendar.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-calendar.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-dialog.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-dialog.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-item.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-item.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-list-row.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-list-row.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/index.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/index.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/mini-month.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/mini-month.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/month-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/month-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/navigation.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/navigation.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/sample-events.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/sample-events.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/time-grid.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/time-grid.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/types.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/types.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-current-time-indicator.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-current-time-indicator.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-event-editor.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-event-editor.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-event-list.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-event-list.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-event-visibility.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-event-visibility.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-roving-day.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-roving-day.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/utils.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/utils.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/view-switcher.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/view-switcher.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/week-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/week-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/year-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/year-view.tsx"
        }
      ],
      "categories": [
        "components",
        "event-calendar"
      ]
    },
    {
      "name": "event-calendar-05",
      "type": "registry:component",
      "title": "Year view",
      "description": "Twelve compact months tinted by how busy each day is, with the picked day listed beside them",
      "dependencies": [
        "@dnd-kit/core",
        "date-fns",
        "motion",
        "sonner"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/event-calendar/event-calendar-05.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/event-calendar-05.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/agenda-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/agenda-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/calendar-dnd-context.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/calendar-dnd-context.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/calendar-header.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/calendar-header.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/constants.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/constants.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/day-events-panel.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/day-events-panel.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/day-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/day-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/draggable-event.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/draggable-event.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/droppable-cell.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/droppable-cell.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-calendar.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-calendar.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-dialog.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-dialog.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-item.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-item.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-list-row.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-list-row.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/index.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/index.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/mini-month.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/mini-month.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/month-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/month-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/navigation.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/navigation.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/sample-events.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/sample-events.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/time-grid.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/time-grid.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/types.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/types.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-current-time-indicator.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-current-time-indicator.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-event-editor.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-event-editor.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-event-list.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-event-list.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-event-visibility.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-event-visibility.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-roving-day.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-roving-day.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/utils.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/utils.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/view-switcher.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/view-switcher.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/week-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/week-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/year-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/year-view.tsx"
        }
      ],
      "categories": [
        "components",
        "event-calendar"
      ]
    },
    {
      "name": "event-calendar-06",
      "type": "registry:component",
      "title": "Agenda",
      "description": "The next thirty days as a list grouped by day, with the time, title and place of every event",
      "dependencies": [
        "@dnd-kit/core",
        "date-fns",
        "motion",
        "sonner"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/event-calendar/event-calendar-06.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/event-calendar-06.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/agenda-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/agenda-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/calendar-dnd-context.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/calendar-dnd-context.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/calendar-header.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/calendar-header.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/constants.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/constants.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/day-events-panel.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/day-events-panel.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/day-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/day-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/draggable-event.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/draggable-event.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/droppable-cell.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/droppable-cell.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-calendar.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-calendar.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-dialog.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-dialog.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-item.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-item.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-list-row.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-list-row.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/index.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/index.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/mini-month.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/mini-month.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/month-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/month-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/navigation.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/navigation.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/sample-events.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/sample-events.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/time-grid.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/time-grid.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/types.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/types.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-current-time-indicator.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-current-time-indicator.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-event-editor.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-event-editor.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-event-list.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-event-list.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-event-visibility.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-event-visibility.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-roving-day.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-roving-day.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/utils.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/utils.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/view-switcher.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/view-switcher.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/week-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/week-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/year-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/year-view.tsx"
        }
      ],
      "categories": [
        "components",
        "event-calendar"
      ]
    },
    {
      "name": "event-calendar-07",
      "type": "registry:component",
      "title": "Month with the day’s events",
      "description": "A small month with a dot on busy days beside the events of the picked day, which change in place",
      "dependencies": [
        "@dnd-kit/core",
        "date-fns",
        "motion",
        "sonner"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/event-calendar/event-calendar-07.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/event-calendar-07.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/agenda-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/agenda-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/calendar-dnd-context.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/calendar-dnd-context.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/calendar-header.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/calendar-header.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/constants.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/constants.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/day-events-panel.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/day-events-panel.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/day-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/day-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/draggable-event.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/draggable-event.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/droppable-cell.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/droppable-cell.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-calendar.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-calendar.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-dialog.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-dialog.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-item.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-item.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-list-row.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-list-row.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/index.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/index.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/mini-month.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/mini-month.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/month-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/month-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/navigation.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/navigation.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/sample-events.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/sample-events.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/time-grid.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/time-grid.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/types.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/types.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-current-time-indicator.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-current-time-indicator.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-event-editor.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-event-editor.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-event-list.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-event-list.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-event-visibility.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-event-visibility.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-roving-day.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-roving-day.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/utils.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/utils.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/view-switcher.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/view-switcher.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/week-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/week-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/year-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/year-view.tsx"
        }
      ],
      "categories": [
        "components",
        "event-calendar"
      ]
    },
    {
      "name": "file-upload-01",
      "type": "registry:component",
      "title": "Image upload button",
      "description": "Picks an image, previews it and lets you remove it.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-file-upload.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/file-upload/file-upload-01.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "file-upload"
      ]
    },
    {
      "name": "file-upload-02",
      "type": "registry:component",
      "title": "Avatar upload button",
      "description": "A round button that shows the chosen avatar, with a remove badge.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-file-upload.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/file-upload/file-upload-02.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "file-upload"
      ]
    },
    {
      "name": "file-upload-03",
      "type": "registry:component",
      "title": "Avatar drop area",
      "description": "A round dashed slot that takes a dropped or picked image as the avatar.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-file-upload.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/file-upload/file-upload-03.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "file-upload"
      ]
    },
    {
      "name": "file-upload-04",
      "type": "registry:component",
      "title": "Image drop zone",
      "description": "A zone you click or drop on that fills with the image, within a size limit.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-file-upload.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/file-upload/file-upload-04.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "file-upload"
      ]
    },
    {
      "name": "file-upload-05",
      "type": "registry:component",
      "title": "Image drop zone with button",
      "description": "A drop zone with a select button that shows the image inside it.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-file-upload.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/file-upload/file-upload-05.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "file-upload"
      ]
    },
    {
      "name": "file-upload-06",
      "type": "registry:component",
      "title": "Image grid uploader",
      "description": "Several images in a grid inside the drop zone, each with a remove badge.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-file-upload.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/file-upload/file-upload-06.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "file-upload"
      ]
    },
    {
      "name": "file-upload-07",
      "type": "registry:component",
      "title": "Image list uploader",
      "description": "A drop zone above a list of images with their sizes.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-file-upload.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/file-upload/file-upload-07.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "file-upload"
      ]
    },
    {
      "name": "file-upload-08",
      "type": "registry:component",
      "title": "Single file uploader",
      "description": "One file at a time, picked or dropped, shown in a row under the zone.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-file-upload.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/file-upload/file-upload-08.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "file-upload"
      ]
    },
    {
      "name": "file-upload-09",
      "type": "registry:component",
      "title": "File list uploader",
      "description": "Files of any type listed under the zone with an icon for their kind.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-file-upload.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/file-upload/file-upload-09.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "file-upload"
      ]
    },
    {
      "name": "file-upload-10",
      "type": "registry:component",
      "title": "File list in the zone",
      "description": "Uploaded files listed inside the drop zone with remove and add actions.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-file-upload.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/file-upload/file-upload-10.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "file-upload"
      ]
    },
    {
      "name": "file-upload-11",
      "type": "registry:component",
      "title": "File table uploader",
      "description": "Uploaded files in a table with their type, size and actions.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/table.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-file-upload.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/file-upload/file-upload-11.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "file-upload"
      ]
    },
    {
      "name": "file-upload-12",
      "type": "registry:component",
      "title": "File card grid",
      "description": "Mixed files as cards with a preview or a kind icon, a name and a size.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-file-upload.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/file-upload/file-upload-12.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "file-upload"
      ]
    },
    {
      "name": "file-upload-13",
      "type": "registry:component",
      "title": "Upload with progress",
      "description": "Each added file shows a progress bar until its simulated upload ends.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/progress.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-file-upload.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/file-upload/file-upload-13.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "file-upload"
      ]
    },
    {
      "name": "file-upload-14",
      "type": "registry:component",
      "title": "Avatar uploader with cropper",
      "description": "Picks an image, opens a dialog to crop and zoom it, then sets it as the avatar.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/cropper.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-file-upload.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/file-upload/file-upload-14.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "file-upload"
      ]
    },
    {
      "name": "image-cropper-01",
      "type": "registry:component",
      "title": "Avatar uploader with cropper",
      "description": "Picks an image, opens a dialog to crop and zoom it, then sets it as the avatar.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/cropper.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-file-upload.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/image-cropper/image-cropper-01.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "image-cropper"
      ]
    },
    {
      "name": "image-cropper-02",
      "type": "registry:component",
      "title": "Image cropper",
      "description": "Drag the image under the crop area and scroll or pinch to zoom.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/cropper.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/image-cropper/image-cropper-02.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "image-cropper"
      ]
    },
    {
      "name": "image-cropper-03",
      "type": "registry:component",
      "title": "Wide cropper",
      "description": "A crop area locked to a 16:9 ratio.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/cropper.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/image-cropper/image-cropper-03.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "image-cropper"
      ]
    },
    {
      "name": "image-cropper-04",
      "type": "registry:component",
      "title": "Brand crop area",
      "description": "The crop area outlined in the brand colour.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/cropper.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/image-cropper/image-cropper-04.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "image-cropper"
      ]
    },
    {
      "name": "image-cropper-05",
      "type": "registry:component",
      "title": "Light mask cropper",
      "description": "A light mask in the card colour around the crop area.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/cropper.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/image-cropper/image-cropper-05.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "image-cropper"
      ]
    },
    {
      "name": "image-cropper-06",
      "type": "registry:component",
      "title": "Full size crop area",
      "description": "A square cropper whose crop area fills it with no padding.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/cropper.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/image-cropper/image-cropper-06.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "image-cropper"
      ]
    },
    {
      "name": "image-cropper-07",
      "type": "registry:component",
      "title": "Round crop area",
      "description": "A circular crop area for avatars.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/cropper.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/image-cropper/image-cropper-07.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "image-cropper"
      ]
    },
    {
      "name": "image-cropper-08",
      "type": "registry:component",
      "title": "Cropper with zoom slider",
      "description": "A slider and its read-out set the zoom of the image.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/cropper.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/image-cropper/image-cropper-08.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "image-cropper"
      ]
    },
    {
      "name": "image-cropper-09",
      "type": "registry:component",
      "title": "Zoom limits",
      "description": "Zoom starts at 2x and goes up to 10x.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/cropper.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/image-cropper/image-cropper-09.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "image-cropper"
      ]
    },
    {
      "name": "image-cropper-10",
      "type": "registry:component",
      "title": "Crop data output",
      "description": "The crop area in pixels, shown as it changes.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/cropper.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/image-cropper/image-cropper-10.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "image-cropper"
      ]
    },
    {
      "name": "image-cropper-11",
      "type": "registry:component",
      "title": "Crop preview",
      "description": "A button crops the selection and shows the result beside it.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/cropper.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/image-cropper/image-cropper-11.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "image-cropper"
      ]
    },
    {
      "name": "input-01",
      "type": "registry:component",
      "title": "Simple input",
      "description": "An email field with its label above.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-01.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-02",
      "type": "registry:component",
      "title": "Required input",
      "description": "A field whose label carries a required mark.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-02.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-03",
      "type": "registry:component",
      "title": "Input with helper text",
      "description": "A field with a short hint under it.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-03.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-04",
      "type": "registry:component",
      "title": "Input with hint",
      "description": "A label with an Optional hint on its right.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-04.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-05",
      "type": "registry:component",
      "title": "Input with brand focus",
      "description": "A field whose border and halo take the brand colour on focus.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-05.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-06",
      "type": "registry:component",
      "title": "Input with error",
      "description": "An invalid field with a message that says how to fix it.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-06.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-07",
      "type": "registry:component",
      "title": "Filled input",
      "description": "A field on a soft grey fill without an outline.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-07.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-08",
      "type": "registry:component",
      "title": "Disabled input",
      "description": "A field and its label dimmed while it cannot be edited.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-08.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-09",
      "type": "registry:component",
      "title": "Input with start icon",
      "description": "An at sign before a username.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-09.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-10",
      "type": "registry:component",
      "title": "Input with end icon",
      "description": "A mail icon at the end of an email field.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-10.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-11",
      "type": "registry:component",
      "title": "Input with start inline add-on",
      "description": "The protocol written inside the field before the address.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-11.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-12",
      "type": "registry:component",
      "title": "Input with end inline add-on",
      "description": "A domain ending written inside the field after the name.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-12.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-13",
      "type": "registry:component",
      "title": "Input with inline add-ons",
      "description": "A price between a currency sign and its code.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-13.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-14",
      "type": "registry:component",
      "title": "Input with start add-on",
      "description": "The protocol in its own segment, inside the outline of the address.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-14.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-15",
      "type": "registry:component",
      "title": "Input with end add-on",
      "description": "A domain ending in its own segment after the name.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-15.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-16",
      "type": "registry:component",
      "title": "Input with inline and end add-ons",
      "description": "A price with an inline currency sign and a segment for its code.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-16.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-17",
      "type": "registry:component",
      "title": "Input with start select",
      "description": "A protocol picked from a native select before the address.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/select-native.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-17.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-18",
      "type": "registry:component",
      "title": "Input with end select",
      "description": "A domain ending picked from a native select after the name.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/select-native.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-18.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-19",
      "type": "registry:component",
      "title": "Input with inline button",
      "description": "A send button inside the end of a newsletter field.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-19.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-20",
      "type": "registry:component",
      "title": "Input with end icon button",
      "description": "A download button in its own segment after an invoice number.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-20.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-21",
      "type": "registry:component",
      "title": "Input with end button",
      "description": "A Send invite segment after an email field.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-21.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-22",
      "type": "registry:component",
      "title": "Input with button",
      "description": "An email field next to an outline Subscribe pill.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-22.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-23",
      "type": "registry:component",
      "title": "Password with show toggle",
      "description": "An eye button reveals or hides the password and swaps its icon.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-23.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-24",
      "type": "registry:component",
      "title": "Input with clear button",
      "description": "A clear button that appears with a value and empties the field.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-24.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-25",
      "type": "registry:component",
      "title": "Search with shortcut",
      "description": "A search field that shows its keyboard shortcut on a key cap.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-25.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-26",
      "type": "registry:component",
      "title": "Search with icon and button",
      "description": "A search icon before the query and a submit arrow after it.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-26.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-27",
      "type": "registry:component",
      "title": "Search with loader",
      "description": "The search icon turns into a spinner while results load.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-27.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-28",
      "type": "registry:component",
      "title": "Number input with steppers",
      "description": "Minus and plus segments around a number.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-28.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-29",
      "type": "registry:component",
      "title": "Number input with chevrons",
      "description": "A euro amount with stacked up and down steppers.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-29.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-30",
      "type": "registry:component",
      "title": "File input",
      "description": "A native file picker with its button inside the field.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-30.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-31",
      "type": "registry:component",
      "title": "Input with overlapping label",
      "description": "A small label sitting on the top edge of the field.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-31.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-32",
      "type": "registry:component",
      "title": "Floating label",
      "description": "A label that moves up to the edge when the field is focused or filled.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-32.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-33",
      "type": "registry:component",
      "title": "Input with inset label",
      "description": "The label and the value inside one outline.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-33.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-34",
      "type": "registry:component",
      "title": "Input with character limit",
      "description": "A counter at the end of the field that slides as you type.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-character-limit.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-34.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-35",
      "type": "registry:component",
      "title": "Input with characters left",
      "description": "A hint under the field that counts what remains.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-character-limit.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-35.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-36",
      "type": "registry:component",
      "title": "Date input",
      "description": "A date typed segment by segment.",
      "dependencies": [
        "react-aria-components"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/datefield-rac.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-36.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-37",
      "type": "registry:component",
      "title": "Time input",
      "description": "A time typed segment by segment.",
      "dependencies": [
        "react-aria-components"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/datefield-rac.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-37.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-38",
      "type": "registry:component",
      "title": "Time input with start icon",
      "description": "A clock before the time segments.",
      "dependencies": [
        "react-aria-components"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/datefield-rac.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-38.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-39",
      "type": "registry:component",
      "title": "Time input with end icon",
      "description": "A clock after the time segments.",
      "dependencies": [
        "react-aria-components"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/datefield-rac.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-39.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-40",
      "type": "registry:component",
      "title": "Date and time input",
      "description": "A date with hours and minutes on a 24 hour clock.",
      "dependencies": [
        "react-aria-components"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/datefield-rac.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-40.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-41",
      "type": "registry:component",
      "title": "Date picker",
      "description": "A typed date with a button that opens a calendar.",
      "dependencies": [
        "react-aria-components"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/calendar-rac.json",
        "https://ui.ndekocode.dev/r/datefield-rac.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-41.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-42",
      "type": "registry:component",
      "title": "Date range picker",
      "description": "Start and end dates with a range calendar.",
      "dependencies": [
        "react-aria-components"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/calendar-rac.json",
        "https://ui.ndekocode.dev/r/datefield-rac.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-42.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-43",
      "type": "registry:component",
      "title": "Date range with unavailable days",
      "description": "Weekends and booked days cannot be picked, and a range over them says why.",
      "dependencies": [
        "@internationalized/date",
        "react-aria",
        "react-aria-components"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/calendar-rac.json",
        "https://ui.ndekocode.dev/r/datefield-rac.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-43.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-44",
      "type": "registry:component",
      "title": "Joined code input",
      "description": "Four code slots joined into one control.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/otp-field.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-44.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-45",
      "type": "registry:component",
      "title": "Split code input",
      "description": "Six code slots in two joined groups of three.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/otp-field.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-45.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-46",
      "type": "registry:component",
      "title": "Spaced code input",
      "description": "Four separate code slots.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/otp-field.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-46.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-47",
      "type": "registry:component",
      "title": "Phone number input",
      "description": "A country picker with its flag before an international number.",
      "dependencies": [
        "@base-ui/react",
        "motion",
        "react-phone-number-input"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-47.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-48",
      "type": "registry:component",
      "title": "Card number input",
      "description": "A card number that formats itself as you type.",
      "dependencies": [
        "react-payment-inputs"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-48.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-49",
      "type": "registry:component",
      "title": "Expiry date input",
      "description": "A card expiry date that formats itself as you type.",
      "dependencies": [
        "react-payment-inputs"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-49.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-50",
      "type": "registry:component",
      "title": "Security code input",
      "description": "A card security code field.",
      "dependencies": [
        "react-payment-inputs"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-50.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-51",
      "type": "registry:component",
      "title": "Card details",
      "description": "Number, expiry and code in one outline, with the card brand once it is known.",
      "dependencies": [
        "@base-ui/react",
        "motion",
        "react-payment-inputs"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-51.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-52",
      "type": "registry:component",
      "title": "Password strength",
      "description": "A meter and a checklist that update as the password grows.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-52.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-53",
      "type": "registry:component",
      "title": "Read-only input",
      "description": "A value on a soft fill that can be selected but not edited.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-53.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-54",
      "type": "registry:component",
      "title": "Copy to clipboard",
      "description": "A read-only link with a copy button that confirms with a check.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-54.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-55",
      "type": "registry:component",
      "title": "Masked input",
      "description": "A license plate field that follows a fixed pattern.",
      "dependencies": [
        "use-mask-input"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-55.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-56",
      "type": "registry:component",
      "title": "Timestamp input",
      "description": "Hours, minutes and seconds typed into a mask.",
      "dependencies": [
        "use-mask-input"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-56.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-57",
      "type": "registry:component",
      "title": "Range input",
      "description": "Minimum and maximum prices side by side in one outline.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-57.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-58",
      "type": "registry:component",
      "title": "Input with tags",
      "description": "A tag is added on Enter and removed from its chip under the field.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-58.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-59",
      "type": "registry:component",
      "title": "Input with inner tags",
      "description": "Tags sit inside the field and Backspace removes the last one.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/combobox.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-59.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-60",
      "type": "registry:component",
      "title": "Password with morphing reveal",
      "description": "Showing the password turns each dot into its character one after the other, in a monospace face.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-60.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-61",
      "type": "registry:component",
      "title": "Password with Caps Lock warning",
      "description": "The hint under the field becomes a warning while Caps Lock is on and the field has focus.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-61.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-62",
      "type": "registry:component",
      "title": "Confirm password with match state",
      "description": "The confirmation stays quiet while it follows the password and shows a cross or a check once it differs or matches.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-62.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-63",
      "type": "registry:component",
      "title": "Segmented strength meter",
      "description": "Four segments fill in turn as the password gets stronger and the strength label slides in the same direction.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-63.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "input-64",
      "type": "registry:component",
      "title": "Password rule chips",
      "description": "Each rule is a chip that turns green and swaps its circle for a check once the password meets it.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/input/input-64.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "input"
      ]
    },
    {
      "name": "modal-01",
      "type": "registry:component",
      "title": "Invite people",
      "description": "Addresses become chips tinted by what sending does to them, with the role of the batch and the pending invitations to resend or revoke",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/modal/modal-01.tsx",
          "type": "registry:component",
          "target": "components/modal/modal-01.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/action-button.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/action-button.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/address-field.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/address-field.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/invite-emails.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/invite-emails.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/modal-frame.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/modal-frame.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/motion.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/motion.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/people.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/person-avatar.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/person-avatar.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/role-select.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/role-select.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/swap.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/swap.tsx"
        }
      ],
      "categories": [
        "components",
        "modal"
      ]
    },
    {
      "name": "modal-02",
      "type": "registry:component",
      "title": "Invite with a seat limit",
      "description": "A seat meter that reserves a seat for each address in the field and flags the ones left without a seat",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/modal/modal-02.tsx",
          "type": "registry:component",
          "target": "components/modal/modal-02.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/action-button.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/action-button.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/address-field.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/address-field.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/invite-emails.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/invite-emails.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/modal-frame.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/modal-frame.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/motion.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/motion.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/people.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/person-avatar.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/person-avatar.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/swap.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/swap.tsx"
        }
      ],
      "categories": [
        "components",
        "modal"
      ]
    },
    {
      "name": "modal-03",
      "type": "registry:component",
      "title": "Invite with a link and a QR code",
      "description": "A link to copy with its expiry and approval, an illustrative QR code and a join code that change together when the link is reset",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/modal/modal-03.tsx",
          "type": "registry:component",
          "target": "components/modal/modal-03.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/action-button.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/action-button.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/copy-button.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/copy-button.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/modal-frame.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/modal-frame.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/motion.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/motion.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/people.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/swap.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/swap.tsx"
        }
      ],
      "categories": [
        "components",
        "modal"
      ]
    },
    {
      "name": "modal-04",
      "type": "registry:component",
      "title": "Invite into a project",
      "description": "Teammates searched and added to the project with an access level, each one changeable or removable in the list",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/combobox.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/modal/modal-04.tsx",
          "type": "registry:component",
          "target": "components/modal/modal-04.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/copy-button.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/copy-button.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/modal-frame.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/modal-frame.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/motion.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/motion.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/people.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/person-avatar.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/person-avatar.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/role-select.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/role-select.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/swap.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/swap.tsx"
        }
      ],
      "categories": [
        "components",
        "modal"
      ]
    },
    {
      "name": "modal-05",
      "type": "registry:component",
      "title": "Share a project",
      "description": "Who can open the project as three access levels with a travelling highlight, what the link allows and the link to copy",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/modal/modal-05.tsx",
          "type": "registry:component",
          "target": "components/modal/modal-05.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/copy-button.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/copy-button.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/modal-frame.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/modal-frame.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/motion.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/motion.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/people.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/person-avatar.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/person-avatar.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/role-select.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/role-select.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/swap.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/swap.tsx"
        }
      ],
      "categories": [
        "components",
        "modal"
      ]
    },
    {
      "name": "modal-06",
      "type": "registry:component",
      "title": "Manage access",
      "description": "A role on a segmented control sets the permission switches, and changing one marks the access as custom with a way back",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/toggle-group.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/modal/modal-06.tsx",
          "type": "registry:component",
          "target": "components/modal/modal-06.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/action-button.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/action-button.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/choice-segments.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/choice-segments.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/invite-emails.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/invite-emails.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/modal-frame.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/modal-frame.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/motion.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/motion.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/swap.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/swap.tsx"
        }
      ],
      "categories": [
        "components",
        "modal"
      ]
    },
    {
      "name": "modal-07",
      "type": "registry:component",
      "title": "Workspace access",
      "description": "A join code to copy or renew, allowed e-mail domains added in a dashed slot and the role of people who join",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/modal/modal-07.tsx",
          "type": "registry:component",
          "target": "components/modal/modal-07.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/action-button.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/action-button.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/copy-button.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/copy-button.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/modal-frame.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/modal-frame.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/motion.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/motion.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/people.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/role-select.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/role-select.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/swap.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/swap.tsx"
        }
      ],
      "categories": [
        "components",
        "modal"
      ]
    },
    {
      "name": "modal-08",
      "type": "registry:component",
      "title": "Add members from the directory",
      "description": "Workspace people outside the team, picked with checkboxes into an avatar stack and added in one go",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/modal/modal-08.tsx",
          "type": "registry:component",
          "target": "components/modal/modal-08.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/action-button.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/action-button.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/modal-frame.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/modal-frame.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/motion.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/motion.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/people.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/person-avatar.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/person-avatar.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/swap.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/swap.tsx"
        }
      ],
      "categories": [
        "components",
        "modal"
      ]
    },
    {
      "name": "modal-09",
      "type": "registry:component",
      "title": "Give feedback",
      "description": "A kind, a five-step scale, a follow-up question that follows the rating, a screenshot slot and a thank-you state",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/toggle-group.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/modal/modal-09.tsx",
          "type": "registry:component",
          "target": "components/modal/modal-09.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/action-button.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/action-button.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/choice-segments.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/choice-segments.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/modal-frame.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/modal-frame.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/motion.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/motion.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/people.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/swap.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/swap.tsx"
        }
      ],
      "categories": [
        "components",
        "modal"
      ]
    },
    {
      "name": "modal-10",
      "type": "registry:component",
      "title": "Schedule a meeting",
      "description": "Attendees as chips, the next free slots, a duration and a meeting link, summed up in one sentence that rewrites itself",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/toggle-group.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/modal/modal-10.tsx",
          "type": "registry:component",
          "target": "components/modal/modal-10.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/action-button.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/action-button.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/choice-segments.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/choice-segments.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/copy-button.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/copy-button.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/modal-frame.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/modal-frame.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/motion.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/motion.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/people.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/person-avatar.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/person-avatar.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/swap.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/swap.tsx"
        }
      ],
      "categories": [
        "components",
        "modal"
      ]
    },
    {
      "name": "modal-11",
      "type": "registry:component",
      "title": "Search people",
      "description": "An @ mention search over members, pending invitations and guests, with highlighted matches and arrow-key picking",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/selected-mark.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/modal/modal-11.tsx",
          "type": "registry:component",
          "target": "components/modal/modal-11.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/modal-frame.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/modal-frame.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/motion.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/motion.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/people.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/person-avatar.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/person-avatar.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/swap.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/swap.tsx"
        }
      ],
      "categories": [
        "components",
        "modal"
      ]
    },
    {
      "name": "modal-12",
      "type": "registry:component",
      "title": "Recent searches",
      "description": "A search with scoped filter pills and a history of recent searches you prune one by one or all at once",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/modal/modal-12.tsx",
          "type": "registry:component",
          "target": "components/modal/modal-12.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/modal-frame.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/modal-frame.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/motion.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/motion.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/swap.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/swap.tsx"
        }
      ],
      "categories": [
        "components",
        "modal"
      ]
    },
    {
      "name": "modal-13",
      "type": "registry:component",
      "title": "Delete a workspace",
      "description": "The workspace and what deleting it does come first, then its name typed to confirm and a restore offer once deleted",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/modal/modal-13.tsx",
          "type": "registry:component",
          "target": "components/modal/modal-13.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/action-button.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/action-button.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/modal-frame.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/modal-frame.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/motion.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/motion.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/people.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/swap.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/swap.tsx"
        }
      ],
      "categories": [
        "components",
        "modal"
      ]
    },
    {
      "name": "modal-14",
      "type": "registry:component",
      "title": "Payment record",
      "description": "Time entries with their total, the earnings breakdown with the take-home figure, an invoice export and a paid status",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/modal/modal-14.tsx",
          "type": "registry:component",
          "target": "components/modal/modal-14.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/action-button.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/action-button.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/modal-frame.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/modal-frame.tsx"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/motion.ts",
          "type": "registry:component",
          "target": "components/modal/_parts/motion.ts"
        },
        {
          "path": "registry/ndeko/components/modal/_parts/swap.tsx",
          "type": "registry:component",
          "target": "components/modal/_parts/swap.tsx"
        }
      ],
      "categories": [
        "components",
        "modal"
      ]
    },
    {
      "name": "navbar-01",
      "type": "registry:component",
      "title": "Simple navbar",
      "description": "A logo, four links with a highlight that travels to the current one, and two actions.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/navigation-menu.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/navbar/navbar-01.tsx",
          "type": "registry:component",
          "target": "components/navbar/navbar-01.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/logo.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/logo.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/mobile-nav.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/mobile-nav.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/nav-links.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/nav-links.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/use-active-link.ts",
          "type": "registry:component",
          "target": "components/navbar/_parts/use-active-link.ts"
        }
      ],
      "categories": [
        "components",
        "navbar"
      ]
    },
    {
      "name": "navbar-02",
      "type": "registry:component",
      "title": "Navbar with menus",
      "description": "Links that open panels; one panel slides and resizes between Features, Pricing and About.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/navigation-menu.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/navbar/navbar-02.tsx",
          "type": "registry:component",
          "target": "components/navbar/navbar-02.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/logo.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/logo.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/mobile-nav.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/mobile-nav.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/nav-links.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/nav-links.tsx"
        }
      ],
      "categories": [
        "components",
        "navbar"
      ]
    },
    {
      "name": "navbar-03",
      "type": "registry:component",
      "title": "Navbar with underline",
      "description": "The current link is marked by an underline that travels along the bottom edge.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/navigation-menu.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/navbar/navbar-03.tsx",
          "type": "registry:component",
          "target": "components/navbar/navbar-03.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/logo.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/logo.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/mobile-nav.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/mobile-nav.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/nav-links.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/nav-links.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/use-active-link.ts",
          "type": "registry:component",
          "target": "components/navbar/_parts/use-active-link.ts"
        }
      ],
      "categories": [
        "components",
        "navbar"
      ]
    },
    {
      "name": "navbar-04",
      "type": "registry:component",
      "title": "Store navbar",
      "description": "Shop links, a search button that grows into a field, and a cart with its count.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/navigation-menu.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/navbar/navbar-04.tsx",
          "type": "registry:component",
          "target": "components/navbar/navbar-04.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/expandable-search.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/expandable-search.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/logo.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/logo.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/mobile-nav.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/mobile-nav.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/nav-links.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/nav-links.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/use-active-link.ts",
          "type": "registry:component",
          "target": "components/navbar/_parts/use-active-link.ts"
        }
      ],
      "categories": [
        "components",
        "navbar"
      ]
    },
    {
      "name": "navbar-05",
      "type": "registry:component",
      "title": "Navbar with account",
      "description": "Links on the left, help, notifications and the account menu on the right.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/navigation-menu.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/navbar/navbar-05.tsx",
          "type": "registry:component",
          "target": "components/navbar/navbar-05.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/info-menu.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/info-menu.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/logo.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/logo.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/mobile-nav.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/mobile-nav.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/nav-links.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/nav-links.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/notification-menu.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/notification-menu.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/use-active-link.ts",
          "type": "registry:component",
          "target": "components/navbar/_parts/use-active-link.ts"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/user-menu.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/user-menu.tsx"
        }
      ],
      "categories": [
        "components",
        "navbar"
      ]
    },
    {
      "name": "navbar-06",
      "type": "registry:component",
      "title": "Icon navbar",
      "description": "Icon links with tooltips, a theme toggle, a language select and the account menu.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/navigation-menu.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/navbar/navbar-06.tsx",
          "type": "registry:component",
          "target": "components/navbar/navbar-06.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/ghost-select.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/ghost-select.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/logo.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/logo.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/mobile-nav.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/mobile-nav.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/morphing-label.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/morphing-label.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/nav-links.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/nav-links.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/theme-toggle.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/theme-toggle.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/use-active-link.ts",
          "type": "registry:component",
          "target": "components/navbar/_parts/use-active-link.ts"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/user-menu.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/user-menu.tsx"
        }
      ],
      "categories": [
        "components",
        "navbar"
      ]
    },
    {
      "name": "navbar-07",
      "type": "registry:component",
      "title": "Breadcrumb navbar",
      "description": "The logo leads a breadcrumb that ends in a project select; parents fold away on small screens.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/breadcrumb.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/navbar/navbar-07.tsx",
          "type": "registry:component",
          "target": "components/navbar/navbar-07.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/ghost-select.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/ghost-select.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/logo.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/logo.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/morphing-label.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/morphing-label.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/notification-menu.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/notification-menu.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/user-menu.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/user-menu.tsx"
        }
      ],
      "categories": [
        "components",
        "navbar"
      ]
    },
    {
      "name": "navbar-08",
      "type": "registry:component",
      "title": "Two-row navbar",
      "description": "A centred search with its shortcut on the first row and the links on the second.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/navigation-menu.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/navbar/navbar-08.tsx",
          "type": "registry:component",
          "target": "components/navbar/navbar-08.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/logo.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/logo.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/mobile-nav.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/mobile-nav.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/nav-links.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/nav-links.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/notification-menu.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/notification-menu.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/search-field.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/search-field.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/use-active-link.ts",
          "type": "registry:component",
          "target": "components/navbar/_parts/use-active-link.ts"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/user-menu.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/user-menu.tsx"
        }
      ],
      "categories": [
        "components",
        "navbar"
      ]
    },
    {
      "name": "navbar-09",
      "type": "registry:component",
      "title": "Messaging navbar",
      "description": "A search button that opens into a field, centred icon links, messages and notifications.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/navigation-menu.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/navbar/navbar-09.tsx",
          "type": "registry:component",
          "target": "components/navbar/navbar-09.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/expandable-search.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/expandable-search.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/logo.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/logo.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/mobile-nav.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/mobile-nav.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/nav-links.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/nav-links.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/notification-menu.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/notification-menu.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/use-active-link.ts",
          "type": "registry:component",
          "target": "components/navbar/_parts/use-active-link.ts"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/user-menu.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/user-menu.tsx"
        }
      ],
      "categories": [
        "components",
        "navbar"
      ]
    },
    {
      "name": "navbar-10",
      "type": "registry:component",
      "title": "Navbar with voice search",
      "description": "A centred search field with a microphone button, two actions and a theme toggle.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/navbar/navbar-10.tsx",
          "type": "registry:component",
          "target": "components/navbar/navbar-10.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/logo.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/logo.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/search-field.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/search-field.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/theme-toggle.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/theme-toggle.tsx"
        }
      ],
      "categories": [
        "components",
        "navbar"
      ]
    },
    {
      "name": "navbar-11",
      "type": "registry:component",
      "title": "Navbar with icon links",
      "description": "Centred links with icons and a search button on the right that grows into a field.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/navigation-menu.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/navbar/navbar-11.tsx",
          "type": "registry:component",
          "target": "components/navbar/navbar-11.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/expandable-search.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/expandable-search.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/logo.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/logo.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/mobile-nav.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/mobile-nav.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/nav-links.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/nav-links.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/use-active-link.ts",
          "type": "registry:component",
          "target": "components/navbar/_parts/use-active-link.ts"
        }
      ],
      "categories": [
        "components",
        "navbar"
      ]
    },
    {
      "name": "navbar-12",
      "type": "registry:component",
      "title": "Centred logo navbar",
      "description": "Links on the left, the logo in the middle, the account and an upgrade action.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/navigation-menu.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/navbar/navbar-12.tsx",
          "type": "registry:component",
          "target": "components/navbar/navbar-12.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/logo.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/logo.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/mobile-nav.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/mobile-nav.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/nav-links.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/nav-links.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/use-active-link.ts",
          "type": "registry:component",
          "target": "components/navbar/_parts/use-active-link.ts"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/user-menu.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/user-menu.tsx"
        }
      ],
      "categories": [
        "components",
        "navbar"
      ]
    },
    {
      "name": "navbar-13",
      "type": "registry:component",
      "title": "Workspace navbar",
      "description": "Account and project selects as a breadcrumb, documentation links and settings.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/breadcrumb.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/navigation-menu.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/navbar/navbar-13.tsx",
          "type": "registry:component",
          "target": "components/navbar/navbar-13.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/ghost-select.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/ghost-select.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/mobile-nav.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/mobile-nav.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/morphing-label.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/morphing-label.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/nav-links.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/nav-links.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/settings-menu.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/settings-menu.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/use-active-link.ts",
          "type": "registry:component",
          "target": "components/navbar/_parts/use-active-link.ts"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/user-menu.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/user-menu.tsx"
        }
      ],
      "categories": [
        "components",
        "navbar"
      ]
    },
    {
      "name": "navbar-14",
      "type": "registry:component",
      "title": "Team navbar",
      "description": "A team switcher, centred icon links and a primary action to write a post.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/navigation-menu.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/navbar/navbar-14.tsx",
          "type": "registry:component",
          "target": "components/navbar/navbar-14.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/mobile-nav.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/mobile-nav.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/morphing-label.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/morphing-label.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/nav-links.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/nav-links.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/notification-menu.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/notification-menu.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/team-switcher.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/team-switcher.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/use-active-link.ts",
          "type": "registry:component",
          "target": "components/navbar/_parts/use-active-link.ts"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/user-menu.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/user-menu.tsx"
        }
      ],
      "categories": [
        "components",
        "navbar"
      ]
    },
    {
      "name": "navbar-15",
      "type": "registry:component",
      "title": "Chat navbar",
      "description": "A model select whose label morphs to the chosen model, a temporary chat button and the account.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/navbar/navbar-15.tsx",
          "type": "registry:component",
          "target": "components/navbar/navbar-15.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/morphing-label.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/morphing-label.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/user-menu.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/user-menu.tsx"
        }
      ],
      "categories": [
        "components",
        "navbar"
      ]
    },
    {
      "name": "navbar-16",
      "type": "registry:component",
      "title": "Dashboard navbar",
      "description": "A search field, a test mode switch, tool menus and a button to create an item.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/navbar/navbar-16.tsx",
          "type": "registry:component",
          "target": "components/navbar/navbar-16.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/info-menu.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/info-menu.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/notification-menu.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/notification-menu.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/search-field.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/search-field.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/settings-menu.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/settings-menu.tsx"
        }
      ],
      "categories": [
        "components",
        "navbar"
      ]
    },
    {
      "name": "navbar-17",
      "type": "registry:component",
      "title": "Report navbar",
      "description": "A breadcrumb with a date range picker, filters and saved reports.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/breadcrumb.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/navbar/navbar-17.tsx",
          "type": "registry:component",
          "target": "components/navbar/navbar-17.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/date-picker.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/date-picker.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/filters.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/filters.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/morphing-label.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/morphing-label.tsx"
        }
      ],
      "categories": [
        "components",
        "navbar"
      ]
    },
    {
      "name": "navbar-18",
      "type": "registry:component",
      "title": "Editor navbar",
      "description": "A team switcher, a segmented view toggle, and export and upgrade actions.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/navbar/navbar-18.tsx",
          "type": "registry:component",
          "target": "components/navbar/navbar-18.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/app-toggle.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/app-toggle.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/morphing-label.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/morphing-label.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/team-switcher.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/team-switcher.tsx"
        }
      ],
      "categories": [
        "components",
        "navbar"
      ]
    },
    {
      "name": "navbar-19",
      "type": "registry:component",
      "title": "Document navbar",
      "description": "A back link and title, document tools and the collaborators with their presence.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/navbar/navbar-19.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "navbar"
      ]
    },
    {
      "name": "navbar-20",
      "type": "registry:component",
      "title": "Server navbar",
      "description": "Section links with a travelling underline, status badges and a power switch.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/navigation-menu.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/navbar/navbar-20.tsx",
          "type": "registry:component",
          "target": "components/navbar/navbar-20.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/mobile-nav.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/mobile-nav.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/nav-links.tsx",
          "type": "registry:component",
          "target": "components/navbar/_parts/nav-links.tsx"
        },
        {
          "path": "registry/ndeko/components/navbar/_parts/use-active-link.ts",
          "type": "registry:component",
          "target": "components/navbar/_parts/use-active-link.ts"
        }
      ],
      "categories": [
        "components",
        "navbar"
      ]
    },
    {
      "name": "notification-01",
      "type": "registry:component",
      "title": "Warning notice",
      "description": "A one-line notice with a warning orb.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-01.tsx",
          "type": "registry:component",
          "target": "components/notification/notification-01.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/collapse.ts",
          "type": "registry:component",
          "target": "components/notification/_parts/collapse.ts"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-02",
      "type": "registry:component",
      "title": "Error notice",
      "description": "A one-line notice for something that failed.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-02.tsx",
          "type": "registry:component",
          "target": "components/notification/notification-02.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/collapse.ts",
          "type": "registry:component",
          "target": "components/notification/_parts/collapse.ts"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-03",
      "type": "registry:component",
      "title": "Success notice",
      "description": "A one-line notice that confirms a save.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-03.tsx",
          "type": "registry:component",
          "target": "components/notification/notification-03.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/collapse.ts",
          "type": "registry:component",
          "target": "components/notification/_parts/collapse.ts"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-04",
      "type": "registry:component",
      "title": "Info notice",
      "description": "A one-line notice about a change ahead.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-04.tsx",
          "type": "registry:component",
          "target": "components/notification/notification-04.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/collapse.ts",
          "type": "registry:component",
          "target": "components/notification/_parts/collapse.ts"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-05",
      "type": "registry:component",
      "title": "Warning notice with link",
      "description": "The warning notice with a link to fix it.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-05.tsx",
          "type": "registry:component",
          "target": "components/notification/notification-05.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/collapse.ts",
          "type": "registry:component",
          "target": "components/notification/_parts/collapse.ts"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-06",
      "type": "registry:component",
      "title": "Error notice with link",
      "description": "The error notice with a link to the reason.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-06.tsx",
          "type": "registry:component",
          "target": "components/notification/notification-06.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/collapse.ts",
          "type": "registry:component",
          "target": "components/notification/_parts/collapse.ts"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-07",
      "type": "registry:component",
      "title": "Success notice with link",
      "description": "The success notice with a link to the result.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-07.tsx",
          "type": "registry:component",
          "target": "components/notification/notification-07.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/collapse.ts",
          "type": "registry:component",
          "target": "components/notification/_parts/collapse.ts"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-08",
      "type": "registry:component",
      "title": "Info notice with link",
      "description": "The info notice with a link to read more.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-08.tsx",
          "type": "registry:component",
          "target": "components/notification/notification-08.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/collapse.ts",
          "type": "registry:component",
          "target": "components/notification/_parts/collapse.ts"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-09",
      "type": "registry:component",
      "title": "Notice with undo",
      "description": "A success notice with an Undo button.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-09.tsx",
          "type": "registry:component",
          "target": "components/notification/notification-09.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/collapse.ts",
          "type": "registry:component",
          "target": "components/notification/_parts/collapse.ts"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-10",
      "type": "registry:component",
      "title": "Notice with text actions",
      "description": "A sent message with View and Undo as links.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-10.tsx",
          "type": "registry:component",
          "target": "components/notification/notification-10.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/collapse.ts",
          "type": "registry:component",
          "target": "components/notification/_parts/collapse.ts"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-11",
      "type": "registry:component",
      "title": "Warning notice with action",
      "description": "A title, the reason and the action that resolves it.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-11.tsx",
          "type": "registry:component",
          "target": "components/notification/notification-11.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/collapse.ts",
          "type": "registry:component",
          "target": "components/notification/_parts/collapse.ts"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-12",
      "type": "registry:component",
      "title": "Error notice with action",
      "description": "A failed payment with the action that fixes it.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-12.tsx",
          "type": "registry:component",
          "target": "components/notification/notification-12.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/collapse.ts",
          "type": "registry:component",
          "target": "components/notification/_parts/collapse.ts"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-13",
      "type": "registry:component",
      "title": "Success notice with action",
      "description": "A finished export with its download.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-13.tsx",
          "type": "registry:component",
          "target": "components/notification/notification-13.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/collapse.ts",
          "type": "registry:component",
          "target": "components/notification/_parts/collapse.ts"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-14",
      "type": "registry:component",
      "title": "Info notice with action",
      "description": "Planned maintenance with a link to the status page.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-14.tsx",
          "type": "registry:component",
          "target": "components/notification/notification-14.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/collapse.ts",
          "type": "registry:component",
          "target": "components/notification/_parts/collapse.ts"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-15",
      "type": "registry:component",
      "title": "Cookie notice",
      "description": "A consent notice where declining is as easy as accepting.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-15.tsx",
          "type": "registry:component",
          "target": "components/notification/notification-15.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/collapse.ts",
          "type": "registry:component",
          "target": "components/notification/_parts/collapse.ts"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-16",
      "type": "registry:component",
      "title": "Update notice",
      "description": "A new version to install now or later.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-16.tsx",
          "type": "registry:component",
          "target": "components/notification/notification-16.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/collapse.ts",
          "type": "registry:component",
          "target": "components/notification/_parts/collapse.ts"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-17",
      "type": "registry:component",
      "title": "Invitation notice",
      "description": "Who invited you to what, with Accept or Decline.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-17.tsx",
          "type": "registry:component",
          "target": "components/notification/notification-17.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/collapse.ts",
          "type": "registry:component",
          "target": "components/notification/_parts/collapse.ts"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-18",
      "type": "registry:component",
      "title": "Event notice",
      "description": "An upcoming live event with a reminder button.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-18.tsx",
          "type": "registry:component",
          "target": "components/notification/notification-18.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/collapse.ts",
          "type": "registry:component",
          "target": "components/notification/_parts/collapse.ts"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-19",
      "type": "registry:component",
      "title": "Error toast with retry",
      "description": "A failed send whose retry turns the toast into loading, then success.",
      "dependencies": [
        "sonner"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-19.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-20",
      "type": "registry:component",
      "title": "Toast with timer",
      "description": "A custom toast that closes after 5 seconds and pauses while hovered.",
      "dependencies": [
        "sonner"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-20.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-21",
      "type": "registry:component",
      "title": "Toast with undo",
      "description": "A toast with a description and an Undo action.",
      "dependencies": [
        "sonner"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-21.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-22",
      "type": "registry:component",
      "title": "Custom toast",
      "description": "A sent message in a custom toast with View and Undo.",
      "dependencies": [
        "sonner"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-22.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-23",
      "type": "registry:component",
      "title": "Inbox with unread states",
      "description": "An inbox where opening a row reads it, the dot shrinks away and Mark all as read clears the count.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-23.tsx",
          "type": "registry:component",
          "target": "components/notification/notification-23.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/people.ts",
          "type": "registry:component",
          "target": "components/notification/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/sender-avatar.tsx",
          "type": "registry:component",
          "target": "components/notification/_parts/sender-avatar.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/sliding-count.tsx",
          "type": "registry:component",
          "target": "components/notification/_parts/sliding-count.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/unread-dot.tsx",
          "type": "registry:component",
          "target": "components/notification/_parts/unread-dot.tsx"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-24",
      "type": "registry:component",
      "title": "Activity grouped by day",
      "description": "Notifications under Today, Yesterday and Earlier, each one snoozed or muted in place, with snoozed ones brought back from the header.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-24.tsx",
          "type": "registry:component",
          "target": "components/notification/notification-24.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/collapse.ts",
          "type": "registry:component",
          "target": "components/notification/_parts/collapse.ts"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/people.ts",
          "type": "registry:component",
          "target": "components/notification/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/sender-avatar.tsx",
          "type": "registry:component",
          "target": "components/notification/_parts/sender-avatar.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/sliding-count.tsx",
          "type": "registry:component",
          "target": "components/notification/_parts/sliding-count.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/swap.tsx",
          "type": "registry:component",
          "target": "components/notification/_parts/swap.tsx"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-25",
      "type": "registry:component",
      "title": "Bell with filtered inbox",
      "description": "A bell that opens the inbox, with All, Mentions and Invites tabs that carry their unread counts.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-25.tsx",
          "type": "registry:component",
          "target": "components/notification/notification-25.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/people.ts",
          "type": "registry:component",
          "target": "components/notification/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/sender-avatar.tsx",
          "type": "registry:component",
          "target": "components/notification/_parts/sender-avatar.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/unread-dot.tsx",
          "type": "registry:component",
          "target": "components/notification/_parts/unread-dot.tsx"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-26",
      "type": "registry:component",
      "title": "Invitation with its answer",
      "description": "A team invitation whose Accept and Decline turn into the result, with Undo.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-26.tsx",
          "type": "registry:component",
          "target": "components/notification/notification-26.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/people.ts",
          "type": "registry:component",
          "target": "components/notification/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/sender-avatar.tsx",
          "type": "registry:component",
          "target": "components/notification/_parts/sender-avatar.tsx"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-27",
      "type": "registry:component",
      "title": "Task activity thread",
      "description": "The latest change on a task under its chip, with the earlier updates folded below.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-27.tsx",
          "type": "registry:component",
          "target": "components/notification/notification-27.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/collapse.ts",
          "type": "registry:component",
          "target": "components/notification/_parts/collapse.ts"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/people.ts",
          "type": "registry:component",
          "target": "components/notification/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/sender-avatar.tsx",
          "type": "registry:component",
          "target": "components/notification/_parts/sender-avatar.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/swap.tsx",
          "type": "registry:component",
          "target": "components/notification/_parts/swap.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/unread-dot.tsx",
          "type": "registry:component",
          "target": "components/notification/_parts/unread-dot.tsx"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-28",
      "type": "registry:component",
      "title": "Stack of notifications",
      "description": "Toasts stacked one behind the other that spread out on hover, focus or a pinned toggle.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-28.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-29",
      "type": "registry:component",
      "title": "Notices in their tone",
      "description": "Success, error and info notices washed in their own hue, each dismissed with its space closing.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-29.tsx",
          "type": "registry:component",
          "target": "components/notification/notification-29.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/collapse.ts",
          "type": "registry:component",
          "target": "components/notification/_parts/collapse.ts"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "notification-30",
      "type": "registry:component",
      "title": "Notification preferences",
      "description": "One switch per kind of notification, saved as it changes, with the kind dimmed when it is off.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/notification/notification-30.tsx",
          "type": "registry:component",
          "target": "components/notification/notification-30.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/people.ts",
          "type": "registry:component",
          "target": "components/notification/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/sender-avatar.tsx",
          "type": "registry:component",
          "target": "components/notification/_parts/sender-avatar.tsx"
        },
        {
          "path": "registry/ndeko/components/notification/_parts/swap.tsx",
          "type": "registry:component",
          "target": "components/notification/_parts/swap.tsx"
        }
      ],
      "categories": [
        "components",
        "notification"
      ]
    },
    {
      "name": "pagination-01",
      "type": "registry:component",
      "title": "Previous and next",
      "description": "Two ghost pills at both ends that step through the pages.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/pagination.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/pagination/pagination-01.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "pagination"
      ]
    },
    {
      "name": "pagination-02",
      "type": "registry:component",
      "title": "Previous and next with arrows",
      "description": "Ghost pills whose arrow leans towards the page they open.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/pagination.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/pagination/pagination-02.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "pagination"
      ]
    },
    {
      "name": "pagination-03",
      "type": "registry:component",
      "title": "Page count between arrows",
      "description": "The current page and the total sit between two arrows at both ends.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/pagination.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/pagination/pagination-03.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "pagination"
      ]
    },
    {
      "name": "pagination-04",
      "type": "registry:component",
      "title": "Compact page count",
      "description": "The page count and its two arrows grouped in the centre.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/pagination.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/pagination/pagination-04.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "pagination"
      ]
    },
    {
      "name": "pagination-05",
      "type": "registry:component",
      "title": "Page count with text links",
      "description": "The page count on the left, Previous and Next on the right.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/pagination.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/pagination/pagination-05.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "pagination"
      ]
    },
    {
      "name": "pagination-06",
      "type": "registry:component",
      "title": "Numbered pages",
      "description": "Page numbers with ellipses and an outline pill that travels to the current page.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/pagination.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-pagination.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/pagination/pagination-06.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "pagination"
      ]
    },
    {
      "name": "pagination-07",
      "type": "registry:component",
      "title": "Numbered pages with first and last",
      "description": "Page numbers framed by jumps to the first and last page.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/pagination.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-pagination.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/pagination/pagination-07.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "pagination"
      ]
    },
    {
      "name": "pagination-08",
      "type": "registry:component",
      "title": "Grouped pages",
      "description": "Page numbers joined into one segmented control; a flat fill travels to the current page.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/pagination.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-pagination.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/pagination/pagination-08.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "pagination"
      ]
    },
    {
      "name": "pagination-09",
      "type": "registry:component",
      "title": "Pages with results per page",
      "description": "The page count, the page numbers and a select for the page size.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/pagination.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-pagination.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/pagination/pagination-09.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "pagination"
      ]
    },
    {
      "name": "pagination-10",
      "type": "registry:component",
      "title": "Table footer",
      "description": "Rows per page, the visible row range and arrows to the first and last page.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/pagination.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/pagination/pagination-10.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "pagination"
      ]
    },
    {
      "name": "pagination-11",
      "type": "registry:component",
      "title": "Page select",
      "description": "A select of every page between the arrows.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/pagination.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/pagination/pagination-11.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "pagination"
      ]
    },
    {
      "name": "pagination-12",
      "type": "registry:component",
      "title": "Go to page",
      "description": "Page numbers next to a field that jumps to a typed page.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/pagination.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-pagination.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/pagination/pagination-12.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "pagination"
      ]
    },
    {
      "name": "popover-01",
      "type": "registry:component",
      "title": "Filter popover",
      "description": "Checkboxes to pick widgets, with clear and apply.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/popover/popover-01.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "popover"
      ]
    },
    {
      "name": "popover-02",
      "type": "registry:component",
      "title": "Notifications popover",
      "description": "A bell with an unread count and a list that marks items as read.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/popover/popover-02.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "popover"
      ]
    },
    {
      "name": "popover-03",
      "type": "registry:component",
      "title": "Notifications with avatars",
      "description": "The notification list with an avatar for each person.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/popover/popover-03.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "popover"
      ]
    },
    {
      "name": "popover-04",
      "type": "registry:component",
      "title": "Hint popover",
      "description": "A compact explanation with one action, too rich for a tooltip.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/popover/popover-04.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "popover"
      ]
    },
    {
      "name": "popover-05",
      "type": "registry:component",
      "title": "Tips popover",
      "description": "Short tips read one after another, then start over.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/popover/popover-05.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "popover"
      ]
    },
    {
      "name": "popover-06",
      "type": "registry:component",
      "title": "Tips with navigation",
      "description": "Tips with previous and next buttons and a step count.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/popover/popover-06.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "popover"
      ]
    },
    {
      "name": "popover-07",
      "type": "registry:component",
      "title": "Share popover",
      "description": "Share buttons and a link to copy in one click.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/popover/popover-07.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "popover"
      ]
    },
    {
      "name": "popover-08",
      "type": "registry:component",
      "title": "Feedback popover",
      "description": "A short form that confirms when the message is sent.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/popover/popover-08.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "popover"
      ]
    },
    {
      "name": "popover-09",
      "type": "registry:component",
      "title": "Guided tour",
      "description": "A popover that moves from one spot to the next with its arrow.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/popover/popover-09.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "popover"
      ]
    },
    {
      "name": "radio-01",
      "type": "registry:component",
      "title": "Basic radio group",
      "description": "Three options stacked, one of them always picked.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/radio/radio-01.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "radio"
      ]
    },
    {
      "name": "radio-02",
      "type": "registry:component",
      "title": "Coloured radio group",
      "description": "A radio group whose picked option takes the info hue.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/radio/radio-02.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "radio"
      ]
    },
    {
      "name": "radio-03",
      "type": "registry:component",
      "title": "Disabled radio group",
      "description": "A radio group and its labels dimmed because they cannot be changed.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/radio/radio-03.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "radio"
      ]
    },
    {
      "name": "radio-04",
      "type": "registry:component",
      "title": "Radio group with descriptions",
      "description": "Each option has a quiet sublabel and a line of help.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/radio/radio-04.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "radio"
      ]
    },
    {
      "name": "radio-05",
      "type": "registry:component",
      "title": "Radio with field",
      "description": "Picking the first option opens a field below it and focuses it.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/collapsible.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/radio/radio-05.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "radio"
      ]
    },
    {
      "name": "radio-06",
      "type": "registry:component",
      "title": "Review filter",
      "description": "Filter reviews by star rating, each option with its count.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/radio/radio-06.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "radio"
      ]
    },
    {
      "name": "radio-07",
      "type": "registry:component",
      "title": "Colour swatches",
      "description": "Round swatches in the theme hues for picking a label colour.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/radio/radio-07.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "radio"
      ]
    },
    {
      "name": "radio-08",
      "type": "registry:component",
      "title": "Radio cards",
      "description": "Two plan cards where the picked one takes a primary hairline.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/radio/radio-08.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "radio"
      ]
    },
    {
      "name": "radio-09",
      "type": "registry:component",
      "title": "Payment card picker",
      "description": "Radio cards for saved cards, each led by its brand mark.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/radio/radio-09.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "radio"
      ]
    },
    {
      "name": "radio-10",
      "type": "registry:component",
      "title": "Provider picker",
      "description": "Radio cards for database providers, each led by its logo on a key cap.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/radio/radio-10.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "radio"
      ]
    },
    {
      "name": "radio-11",
      "type": "registry:component",
      "title": "Radio tiles",
      "description": "A two-column grid of tool tiles where one is picked.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/radio/radio-11.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "radio"
      ]
    },
    {
      "name": "radio-12",
      "type": "registry:component",
      "title": "Payment method tiles",
      "description": "Three centred tiles with an icon and a name for the payment method.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/radio/radio-12.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "radio"
      ]
    },
    {
      "name": "radio-13",
      "type": "registry:component",
      "title": "Option tiles",
      "description": "A grid of CPU sizes where the largest one is not available.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/radio/radio-13.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "radio"
      ]
    },
    {
      "name": "radio-14",
      "type": "registry:component",
      "title": "Radio chips",
      "description": "Small cards in a row for picking a server location.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/radio/radio-14.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "radio"
      ]
    },
    {
      "name": "radio-15",
      "type": "registry:component",
      "title": "Plan list",
      "description": "Joined plan rows with prices and a popular badge.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/radio/radio-15.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "radio"
      ]
    },
    {
      "name": "radio-16",
      "type": "registry:component",
      "title": "Star rating",
      "description": "Five stars that light up under the pointer and keep the chosen rating.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/radio/radio-16.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "radio"
      ]
    },
    {
      "name": "radio-17",
      "type": "registry:component",
      "title": "Mood picker",
      "description": "Five round faces, from angry to laughing.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/radio/radio-17.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "radio"
      ]
    },
    {
      "name": "radio-18",
      "type": "registry:component",
      "title": "Score scale",
      "description": "A joined scale from 0 to 5 with its two ends named below.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/radio/radio-18.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "radio"
      ]
    },
    {
      "name": "radio-19",
      "type": "registry:component",
      "title": "Theme picker",
      "description": "Small sketches of the light, dark and system themes to pick from.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/radio/radio-19.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "radio"
      ]
    },
    {
      "name": "radio-20",
      "type": "registry:component",
      "title": "Billing period toggle",
      "description": "Monthly or yearly, with an indicator that slides to the choice.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/radio/radio-20.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "radio"
      ]
    },
    {
      "name": "select-01",
      "type": "registry:component",
      "title": "Native select",
      "description": "A browser select on the field recipe, with a label.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/select-native.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-01.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-02",
      "type": "registry:component",
      "title": "Native select with placeholder",
      "description": "A disabled first option asks for a choice until one is made.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/select-native.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-02.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-03",
      "type": "registry:component",
      "title": "Native select with icon",
      "description": "A clock icon sits at the start of the field.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/select-native.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-03.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-04",
      "type": "registry:component",
      "title": "Native select with hint",
      "description": "A line of help under the field, linked to it for screen readers.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/select-native.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-04.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-05",
      "type": "registry:component",
      "title": "Native select with brand outline",
      "description": "The hairline and the focus halo take the brand colour.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/select-native.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-05.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-06",
      "type": "registry:component",
      "title": "Native select with error",
      "description": "An invalid field with the message that says how to fix it.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/select-native.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-06.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-07",
      "type": "registry:component",
      "title": "Filled native select",
      "description": "A grey fill without a hairline, for dense forms.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/select-native.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-07.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-08",
      "type": "registry:component",
      "title": "Disabled native select",
      "description": "A field and its label dimmed while the choice is locked.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/select-native.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-08.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-09",
      "type": "registry:component",
      "title": "Required native select",
      "description": "An asterisk after the label marks a field the form needs.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/select-native.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-09.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-10",
      "type": "registry:component",
      "title": "Auto-width native select",
      "description": "The field is as wide as its longest option.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/select-native.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-10.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-11",
      "type": "registry:component",
      "title": "Native select with groups",
      "description": "Options gathered under frontend and backend headings.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/select-native.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-11.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-12",
      "type": "registry:component",
      "title": "Native time zone select",
      "description": "Every time zone of the browser, sorted by its offset from GMT.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/select-native.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-12.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-13",
      "type": "registry:component",
      "title": "Native select with floating label",
      "description": "The label sits on the top edge of the field.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/select-native.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-13.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-14",
      "type": "registry:component",
      "title": "Native select with inset label",
      "description": "The label lives inside the field, above the value.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/select-native.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-14.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-15",
      "type": "registry:component",
      "title": "Select",
      "description": "A custom select with a value picked by default.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-15.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-16",
      "type": "registry:component",
      "title": "Select with placeholder",
      "description": "A dimmed prompt shows until an option is picked.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-16.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-17",
      "type": "registry:component",
      "title": "Select with icon",
      "description": "A clock icon before the value in the trigger.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-17.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-18",
      "type": "registry:component",
      "title": "Select with hint",
      "description": "A line of help under the trigger, read with the field.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-18.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-19",
      "type": "registry:component",
      "title": "Select with brand outline",
      "description": "The hairline, the open state and the focus halo take the brand colour.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-19.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-20",
      "type": "registry:component",
      "title": "Select with error",
      "description": "An invalid field with the message that says how to fix it.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-20.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-21",
      "type": "registry:component",
      "title": "Filled select",
      "description": "A grey fill without a hairline, for dense forms.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-21.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-22",
      "type": "registry:component",
      "title": "Disabled select",
      "description": "A trigger and its label dimmed while the choice is locked.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-22.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-23",
      "type": "registry:component",
      "title": "Required select",
      "description": "An asterisk after the label marks a field the form needs.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-23.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-24",
      "type": "registry:component",
      "title": "Auto-width select",
      "description": "The trigger fits its value, with a minimum width.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-24.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-25",
      "type": "registry:component",
      "title": "Select with groups",
      "description": "Options gathered under frontend and backend headings.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-25.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-26",
      "type": "registry:component",
      "title": "Select with separator",
      "description": "A hairline divides the groups of options.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-26.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-27",
      "type": "registry:component",
      "title": "Select with disabled options",
      "description": "Some options are shown but cannot be picked.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-27.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-28",
      "type": "registry:component",
      "title": "Select with floating label",
      "description": "The label sits on the top edge of the trigger.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-28.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-29",
      "type": "registry:component",
      "title": "Select with inset label",
      "description": "The label lives inside the field, above the value.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-29.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-30",
      "type": "registry:component",
      "title": "Time zone select",
      "description": "Every time zone of the browser, sorted by its offset from GMT.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-30.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-31",
      "type": "registry:component",
      "title": "Select with end mark",
      "description": "The picked row ends with the selected mark.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-31.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-32",
      "type": "registry:component",
      "title": "Status select",
      "description": "Each status carries a coloured dot, in the list and in the trigger.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-32.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-33",
      "type": "registry:component",
      "title": "Select with prefix",
      "description": "A muted prefix names the setting before its value.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-33.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-34",
      "type": "registry:component",
      "title": "Select with icons",
      "description": "Each framework shows its mark, in the list and in the trigger.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-34.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-35",
      "type": "registry:component",
      "title": "Select with icons and end mark",
      "description": "Framework marks at the start of the rows, the selected mark at the end.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-35.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-36",
      "type": "registry:component",
      "title": "Select with descriptions",
      "description": "Each plan has a line of detail in the list; the trigger keeps the name.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-36.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-37",
      "type": "registry:component",
      "title": "Country select",
      "description": "Countries grouped by continent, each with its two-letter code.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-37.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-38",
      "type": "registry:component",
      "title": "Select with avatars",
      "description": "Team members with their avatar, in the list and in the trigger.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-38.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-39",
      "type": "registry:component",
      "title": "Select with initials",
      "description": "Members without a photo get a coloured plate with their initial.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-39.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-40",
      "type": "registry:component",
      "title": "Select with portraits",
      "description": "Two-line rows with an avatar, a name and a handle.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-40.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-41",
      "type": "registry:component",
      "title": "Searchable select",
      "description": "A search field at the top of the list narrows the options.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/combobox.json",
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-41.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-42",
      "type": "registry:component",
      "title": "Organization switcher",
      "description": "A searchable list of organizations with an action to add one.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/command.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/selected-mark.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-42.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-43",
      "type": "registry:component",
      "title": "Searchable time zone select",
      "description": "Every time zone of the browser, found by typing part of its name.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/combobox.json",
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-43.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-44",
      "type": "registry:component",
      "title": "Searchable country select",
      "description": "Countries grouped by continent, narrowed by a search field.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/combobox.json",
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-44.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-45",
      "type": "registry:component",
      "title": "Searchable select with counts",
      "description": "Service categories with an icon and a count on each row.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/combobox.json",
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-45.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-46",
      "type": "registry:component",
      "title": "Multiselect",
      "description": "Picked options become removable chips in the field.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/combobox.json",
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-46.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-47",
      "type": "registry:component",
      "title": "Multiselect with clear",
      "description": "Chips in the field and one button that removes them all.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/combobox.json",
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-47.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-48",
      "type": "registry:component",
      "title": "Native multiple select",
      "description": "A browser list where several options can be picked.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/select-native.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-48.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-49",
      "type": "registry:component",
      "title": "Listbox",
      "description": "An always open list where one option is picked.",
      "dependencies": [
        "react-aria-components"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/selected-mark.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-49.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-50",
      "type": "registry:component",
      "title": "Multiple listbox",
      "description": "An always open list where several options are picked.",
      "dependencies": [
        "react-aria-components"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/selected-mark.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-50.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "select-51",
      "type": "registry:component",
      "title": "Listbox with groups",
      "description": "An always open list of options under headings and hairlines.",
      "dependencies": [
        "react-aria-components"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/selected-mark.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/select/select-51.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "select"
      ]
    },
    {
      "name": "slider-01",
      "type": "registry:component",
      "title": "Basic slider",
      "description": "One thumb on a thin track, with a label above.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/slider/slider-01.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "slider"
      ]
    },
    {
      "name": "slider-02",
      "type": "registry:component",
      "title": "Disabled slider",
      "description": "A dimmed slider and label that cannot be moved.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/slider/slider-02.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "slider"
      ]
    },
    {
      "name": "slider-03",
      "type": "registry:component",
      "title": "Slider with square thumb",
      "description": "A slider that steps by ten with a softly squared thumb.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/slider/slider-03.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "slider"
      ]
    },
    {
      "name": "slider-04",
      "type": "registry:component",
      "title": "Slider with solid thumb",
      "description": "A thumb filled with the brand colour of the track.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/slider/slider-04.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "slider"
      ]
    },
    {
      "name": "slider-05",
      "type": "registry:component",
      "title": "Slider with narrow thumb",
      "description": "A tall, narrow brand thumb carved out of the surface.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/slider/slider-05.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "slider"
      ]
    },
    {
      "name": "slider-06",
      "type": "registry:component",
      "title": "Slider with reference labels",
      "description": "A storage limit with its minimum, middle and maximum below.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/slider/slider-06.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "slider"
      ]
    },
    {
      "name": "slider-07",
      "type": "registry:component",
      "title": "Slider with ticks",
      "description": "A tick for every month and a number on every other one.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/slider/slider-07.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "slider"
      ]
    },
    {
      "name": "slider-08",
      "type": "registry:component",
      "title": "Slider with value",
      "description": "The value beside the label, rolling when it steps.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/slider/slider-08.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "slider"
      ]
    },
    {
      "name": "slider-09",
      "type": "registry:component",
      "title": "Slider with end labels",
      "description": "Low and high written above the two ends of the track.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/slider/slider-09.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "slider"
      ]
    },
    {
      "name": "slider-10",
      "type": "registry:component",
      "title": "Slider with value bubble",
      "description": "End labels and a bubble that shows the value while dragging.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/slider/slider-10.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "slider"
      ]
    },
    {
      "name": "slider-11",
      "type": "registry:component",
      "title": "Range slider",
      "description": "Two thumbs that pick a minimum and a maximum.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/slider/slider-11.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "slider"
      ]
    },
    {
      "name": "slider-12",
      "type": "registry:component",
      "title": "Range slider with values",
      "description": "A range whose two ends are written beside the label.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/slider/slider-12.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "slider"
      ]
    },
    {
      "name": "slider-13",
      "type": "registry:component",
      "title": "Volume slider",
      "description": "A volume track between a muted and a loud speaker.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/slider/slider-13.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "slider"
      ]
    },
    {
      "name": "slider-14",
      "type": "registry:component",
      "title": "Slider with three thumbs",
      "description": "Gradient stops with a percentage bubble on each thumb.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/slider/slider-14.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "slider"
      ]
    },
    {
      "name": "slider-15",
      "type": "registry:component",
      "title": "Slider with reset",
      "description": "A temperature field and slider with a reset that appears once changed.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/use-slider-with-input.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/slider/slider-15.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "slider"
      ]
    },
    {
      "name": "slider-16",
      "type": "registry:component",
      "title": "Slider with input",
      "description": "A slider and a number field that follow each other.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-slider-with-input.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/slider/slider-16.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "slider"
      ]
    },
    {
      "name": "slider-17",
      "type": "registry:component",
      "title": "Rating slider",
      "description": "Five steps between two faces, with the rating in words.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/slider/slider-17.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "slider"
      ]
    },
    {
      "name": "slider-18",
      "type": "registry:component",
      "title": "Rating slider with face",
      "description": "A rating whose face changes and whose bubble names the step.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/slider/slider-18.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "slider"
      ]
    },
    {
      "name": "slider-19",
      "type": "registry:component",
      "title": "Range slider with inputs",
      "description": "A distance range with a number field at each end.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-slider-with-input.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/slider/slider-19.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "slider"
      ]
    },
    {
      "name": "slider-20",
      "type": "registry:component",
      "title": "Slider with steppers",
      "description": "Monthly credits set by dragging or by minus and plus buttons.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/slider/slider-20.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "slider"
      ]
    },
    {
      "name": "slider-21",
      "type": "registry:component",
      "title": "Price range with apply",
      "description": "A price range written in the label, applied with a button.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/slider/slider-21.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "slider"
      ]
    },
    {
      "name": "slider-22",
      "type": "registry:component",
      "title": "Vertical slider",
      "description": "One thumb on an upright track.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/slider/slider-22.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "slider"
      ]
    },
    {
      "name": "slider-23",
      "type": "registry:component",
      "title": "Vertical slider with input",
      "description": "An upright level with a number field below it.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-slider-with-input.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/slider/slider-23.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "slider"
      ]
    },
    {
      "name": "slider-24",
      "type": "registry:component",
      "title": "Vertical range slider",
      "description": "An upright range with a value bubble beside each thumb.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/slider/slider-24.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "slider"
      ]
    },
    {
      "name": "slider-25",
      "type": "registry:component",
      "title": "Position sliders",
      "description": "X, Y and Z offsets with number fields and one reset.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-slider-with-input.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/slider/slider-25.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "slider"
      ]
    },
    {
      "name": "slider-26",
      "type": "registry:component",
      "title": "Price slider with histogram",
      "description": "A price range over a histogram of items, with fields and a result count.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-slider-with-input.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/slider/slider-26.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "slider"
      ]
    },
    {
      "name": "slider-27",
      "type": "registry:component",
      "title": "Equalizer",
      "description": "Five upright bands that show their gain while dragging.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/slider/slider-27.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "slider"
      ]
    },
    {
      "name": "stepper-01",
      "type": "registry:component",
      "title": "Numbered stepper",
      "description": "Four numbered steps joined by a line that fills as you move on.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/stepper.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/stepper/stepper-01.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "stepper"
      ]
    },
    {
      "name": "stepper-02",
      "type": "registry:component",
      "title": "Stepper with checks",
      "description": "A finished step swaps its number for a check.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/stepper.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/stepper/stepper-02.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "stepper"
      ]
    },
    {
      "name": "stepper-03",
      "type": "registry:component",
      "title": "Compact stepper",
      "description": "Small dots, a ring on the current step and a check on done ones.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/stepper.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/stepper/stepper-03.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "stepper"
      ]
    },
    {
      "name": "stepper-04",
      "type": "registry:component",
      "title": "Controlled stepper",
      "description": "Previous and next buttons move through the steps.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/stepper.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/stepper/stepper-04.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "stepper"
      ]
    },
    {
      "name": "stepper-05",
      "type": "registry:component",
      "title": "Stepper with loading",
      "description": "The current step shows a spinner while the next one is saved.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/stepper.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/stepper/stepper-05.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "stepper"
      ]
    },
    {
      "name": "stepper-06",
      "type": "registry:component",
      "title": "Mixed stepper",
      "description": "Steps that hold an avatar, a spinner and an icon.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/stepper.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/stepper/stepper-06.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "stepper"
      ]
    },
    {
      "name": "stepper-07",
      "type": "registry:component",
      "title": "Labelled bars",
      "description": "Bars with a title under each, clickable to jump to a step.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/stepper.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/stepper/stepper-07.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "stepper"
      ]
    },
    {
      "name": "stepper-08",
      "type": "registry:component",
      "title": "Paginated stepper",
      "description": "Progress bars between two arrow buttons.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/stepper.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/stepper/stepper-08.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "stepper"
      ]
    },
    {
      "name": "stepper-09",
      "type": "registry:component",
      "title": "Progress stepper",
      "description": "A segmented bar that fills, with the step count under it.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/stepper.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/stepper/stepper-09.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "stepper"
      ]
    },
    {
      "name": "stepper-10",
      "type": "registry:component",
      "title": "Stepper with descriptions",
      "description": "A title and a description centred under each step.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/stepper.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/stepper/stepper-10.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "stepper"
      ]
    },
    {
      "name": "stepper-11",
      "type": "registry:component",
      "title": "Inline titles",
      "description": "Titles beside each step, stacked under it when space runs out.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/stepper.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/stepper/stepper-11.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "stepper"
      ]
    },
    {
      "name": "stepper-12",
      "type": "registry:component",
      "title": "Inline titles and descriptions",
      "description": "A title and a description beside each step.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/stepper.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/stepper/stepper-12.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "stepper"
      ]
    },
    {
      "name": "stepper-13",
      "type": "registry:component",
      "title": "Titles before steps",
      "description": "The title and description sit before each step.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/stepper.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/stepper/stepper-13.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "stepper"
      ]
    },
    {
      "name": "stepper-14",
      "type": "registry:component",
      "title": "Vertical stepper",
      "description": "Numbered steps stacked down a vertical line.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/stepper.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/stepper/stepper-14.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "stepper"
      ]
    },
    {
      "name": "stepper-15",
      "type": "registry:component",
      "title": "Controlled vertical stepper",
      "description": "A vertical stepper moved with previous and next buttons.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/stepper.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/stepper/stepper-15.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "stepper"
      ]
    },
    {
      "name": "stepper-16",
      "type": "registry:component",
      "title": "Vertical stepper with titles",
      "description": "A title beside each step of a vertical stepper.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/stepper.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/stepper/stepper-16.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "stepper"
      ]
    },
    {
      "name": "stepper-17",
      "type": "registry:component",
      "title": "Vertical stepper with descriptions",
      "description": "A title and a description beside each vertical step.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/stepper.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/stepper/stepper-17.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "stepper"
      ]
    },
    {
      "name": "subtask-01",
      "type": "registry:component",
      "title": "Checklist with progress ring",
      "description": "Sub-tasks you check off, a strike that runs across the title and a ring that fills, then turns into a check",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/subtask/subtask-01.tsx",
          "type": "registry:component",
          "target": "components/subtask/subtask-01.tsx"
        },
        {
          "path": "registry/ndeko/components/subtask/_parts/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/subtask/_parts/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/subtask/_parts/people.ts",
          "type": "registry:component",
          "target": "components/subtask/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/subtask/_parts/subtask-data.ts",
          "type": "registry:component",
          "target": "components/subtask/_parts/subtask-data.ts"
        },
        {
          "path": "registry/ndeko/components/subtask/_parts/subtask-parts.tsx",
          "type": "registry:component",
          "target": "components/subtask/_parts/subtask-parts.tsx"
        }
      ],
      "categories": [
        "components",
        "subtask"
      ]
    },
    {
      "name": "subtask-02",
      "type": "registry:component",
      "title": "Inline add",
      "description": "A dashed add line where Enter adds the sub-task and keeps the cursor for the next one, and rows that fold away on remove",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/subtask/subtask-02.tsx",
          "type": "registry:component",
          "target": "components/subtask/subtask-02.tsx"
        },
        {
          "path": "registry/ndeko/components/subtask/_parts/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/subtask/_parts/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/subtask/_parts/people.ts",
          "type": "registry:component",
          "target": "components/subtask/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/subtask/_parts/subtask-data.ts",
          "type": "registry:component",
          "target": "components/subtask/_parts/subtask-data.ts"
        },
        {
          "path": "registry/ndeko/components/subtask/_parts/subtask-parts.tsx",
          "type": "registry:component",
          "target": "components/subtask/_parts/subtask-parts.tsx"
        }
      ],
      "categories": [
        "components",
        "subtask"
      ]
    },
    {
      "name": "subtask-03",
      "type": "registry:component",
      "title": "Reorder by drag",
      "description": "Rows that move by their handle, by its arrow keys or by the up and down buttons, with the new position announced",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/subtask/subtask-03.tsx",
          "type": "registry:component",
          "target": "components/subtask/subtask-03.tsx"
        },
        {
          "path": "registry/ndeko/components/subtask/_parts/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/subtask/_parts/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/subtask/_parts/people.ts",
          "type": "registry:component",
          "target": "components/subtask/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/subtask/_parts/subtask-data.ts",
          "type": "registry:component",
          "target": "components/subtask/_parts/subtask-data.ts"
        },
        {
          "path": "registry/ndeko/components/subtask/_parts/subtask-parts.tsx",
          "type": "registry:component",
          "target": "components/subtask/_parts/subtask-parts.tsx"
        }
      ],
      "categories": [
        "components",
        "subtask"
      ]
    },
    {
      "name": "subtask-04",
      "type": "registry:component",
      "title": "Status and assignees",
      "description": "Each sub-task with a status menu and an assignee menu, over a bar with one segment per sub-task in its status colour",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/subtask/subtask-04.tsx",
          "type": "registry:component",
          "target": "components/subtask/subtask-04.tsx"
        },
        {
          "path": "registry/ndeko/components/subtask/_parts/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/subtask/_parts/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/subtask/_parts/people.ts",
          "type": "registry:component",
          "target": "components/subtask/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/subtask/_parts/subtask-data.ts",
          "type": "registry:component",
          "target": "components/subtask/_parts/subtask-data.ts"
        },
        {
          "path": "registry/ndeko/components/subtask/_parts/subtask-parts.tsx",
          "type": "registry:component",
          "target": "components/subtask/_parts/subtask-parts.tsx"
        }
      ],
      "categories": [
        "components",
        "subtask"
      ]
    },
    {
      "name": "subtask-05",
      "type": "registry:component",
      "title": "Nested sub-tasks",
      "description": "Phases that fold over their steps, with a parent box that checks every step and shows when only some are done",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/subtask/subtask-05.tsx",
          "type": "registry:component",
          "target": "components/subtask/subtask-05.tsx"
        },
        {
          "path": "registry/ndeko/components/subtask/_parts/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/subtask/_parts/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/subtask/_parts/people.ts",
          "type": "registry:component",
          "target": "components/subtask/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/subtask/_parts/subtask-parts.tsx",
          "type": "registry:component",
          "target": "components/subtask/_parts/subtask-parts.tsx"
        }
      ],
      "categories": [
        "components",
        "subtask"
      ]
    },
    {
      "name": "subtask-06",
      "type": "registry:component",
      "title": "Collapsed summary",
      "description": "A one-line \"4 of 7 done\" with a segment per sub-task that opens into the checklist",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/subtask/subtask-06.tsx",
          "type": "registry:component",
          "target": "components/subtask/subtask-06.tsx"
        },
        {
          "path": "registry/ndeko/components/subtask/_parts/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/subtask/_parts/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/subtask/_parts/people.ts",
          "type": "registry:component",
          "target": "components/subtask/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/subtask/_parts/subtask-data.ts",
          "type": "registry:component",
          "target": "components/subtask/_parts/subtask-data.ts"
        },
        {
          "path": "registry/ndeko/components/subtask/_parts/subtask-parts.tsx",
          "type": "registry:component",
          "target": "components/subtask/_parts/subtask-parts.tsx"
        }
      ],
      "categories": [
        "components",
        "subtask"
      ]
    },
    {
      "name": "subtask-07",
      "type": "registry:component",
      "title": "Convert a note line",
      "description": "A note line that travels into the sub-task list and takes a task number when you convert it",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/subtask/subtask-07.tsx",
          "type": "registry:component",
          "target": "components/subtask/subtask-07.tsx"
        },
        {
          "path": "registry/ndeko/components/subtask/_parts/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/subtask/_parts/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/components/subtask/_parts/people.ts",
          "type": "registry:component",
          "target": "components/subtask/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/subtask/_parts/subtask-data.ts",
          "type": "registry:component",
          "target": "components/subtask/_parts/subtask-data.ts"
        },
        {
          "path": "registry/ndeko/components/subtask/_parts/subtask-parts.tsx",
          "type": "registry:component",
          "target": "components/subtask/_parts/subtask-parts.tsx"
        }
      ],
      "categories": [
        "components",
        "subtask"
      ]
    },
    {
      "name": "switch-01",
      "type": "registry:component",
      "title": "Basic switch",
      "description": "A switch named for screen readers only.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/switch/switch-01.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "switch"
      ]
    },
    {
      "name": "switch-02",
      "type": "registry:component",
      "title": "Small switch",
      "description": "A smaller track and thumb for dense rows.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/switch/switch-02.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "switch"
      ]
    },
    {
      "name": "switch-03",
      "type": "registry:component",
      "title": "Coloured switch",
      "description": "A switch that turns the success hue when it is on.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/switch/switch-03.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "switch"
      ]
    },
    {
      "name": "switch-04",
      "type": "registry:component",
      "title": "Disabled switch",
      "description": "A dimmed switch that cannot be changed.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/switch/switch-04.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "switch"
      ]
    },
    {
      "name": "switch-05",
      "type": "registry:component",
      "title": "Square switch",
      "description": "A switch with a rounded square track and thumb.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/switch/switch-05.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "switch"
      ]
    },
    {
      "name": "switch-06",
      "type": "registry:component",
      "title": "Thin track switch",
      "description": "A large thumb riding over a thin track, in the Material 2 manner.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/switch/switch-06.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "switch"
      ]
    },
    {
      "name": "switch-07",
      "type": "registry:component",
      "title": "Outlined track switch",
      "description": "A small grey thumb that grows and turns white as the track fills, in the Material 3 manner.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/switch/switch-07.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "switch"
      ]
    },
    {
      "name": "switch-08",
      "type": "registry:component",
      "title": "Switch with state label",
      "description": "A switch whose On and Off label swaps as it changes.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/switch/switch-08.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "switch"
      ]
    },
    {
      "name": "switch-09",
      "type": "registry:component",
      "title": "Switch between labels",
      "description": "Off and On on each side, the current one in full ink.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/switch/switch-09.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "switch"
      ]
    },
    {
      "name": "switch-10",
      "type": "registry:component",
      "title": "Switch with icon",
      "description": "A dark mode switch whose icon swaps the sun for the moon.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/switch/switch-10.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "switch"
      ]
    },
    {
      "name": "switch-11",
      "type": "registry:component",
      "title": "Switch between icons",
      "description": "A sun and a moon on each side of a dark mode switch.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/switch/switch-11.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "switch"
      ]
    },
    {
      "name": "switch-12",
      "type": "registry:component",
      "title": "Segmented switch",
      "description": "A wide track whose raised half slides under the chosen icon.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/switch/switch-12.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "switch"
      ]
    },
    {
      "name": "switch-13",
      "type": "registry:component",
      "title": "Wide icon switch",
      "description": "A wide switch that shows the current mode on the free half.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/switch/switch-13.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "switch"
      ]
    },
    {
      "name": "switch-14",
      "type": "registry:component",
      "title": "Wide labelled switch",
      "description": "A wide rounded square switch that reads On or Off on the free half.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/switch/switch-14.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "switch"
      ]
    },
    {
      "name": "switch-15",
      "type": "registry:component",
      "title": "Switch card",
      "description": "A setting card that you switch as a whole and that takes a primary hairline.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/switch/switch-15.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "switch"
      ]
    },
    {
      "name": "switch-16",
      "type": "registry:component",
      "title": "Payment card switch",
      "description": "A switch card for a saved card, led by its brand mark.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/switch/switch-16.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "switch"
      ]
    },
    {
      "name": "switch-17",
      "type": "registry:component",
      "title": "Integration switch",
      "description": "A switch card for an integration, led by its logo on a key cap.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/switch/switch-17.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "switch"
      ]
    },
    {
      "name": "table-01",
      "type": "registry:component",
      "title": "Basic table",
      "description": "Accounts with a status and a balance total in the footer.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/table.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/table/table-01.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "table"
      ]
    },
    {
      "name": "table-02",
      "type": "registry:component",
      "title": "Table with avatars",
      "description": "Each person shows an avatar, a name and a handle.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/table.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/table/table-02.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "table"
      ]
    },
    {
      "name": "table-03",
      "type": "registry:component",
      "title": "Table without row lines",
      "description": "Rows separated by space, with a rounded hover.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/table.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/table/table-03.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "table"
      ]
    },
    {
      "name": "table-04",
      "type": "registry:component",
      "title": "Striped table",
      "description": "Every other row is tinted instead of lined.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/table.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/table/table-04.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "table"
      ]
    },
    {
      "name": "table-05",
      "type": "registry:component",
      "title": "Table with column lines",
      "description": "Hairlines between the columns as well as the rows.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/table.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/table/table-05.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "table"
      ]
    },
    {
      "name": "table-06",
      "type": "registry:component",
      "title": "Dense table",
      "description": "Eight columns of service data in compact rows on a card.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/table.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/table/table-06.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "table"
      ]
    },
    {
      "name": "table-07",
      "type": "registry:component",
      "title": "Selectable rows",
      "description": "Checkboxes select rows one by one or all at once.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/table.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/table/table-07.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "table"
      ]
    },
    {
      "name": "table-08",
      "type": "registry:component",
      "title": "Card table",
      "description": "A table with selectable rows on a card surface.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/table.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/table/table-08.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "table"
      ]
    },
    {
      "name": "table-09",
      "type": "registry:component",
      "title": "Vertical table",
      "description": "Field names on the left and one record's values on the right.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/table.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/table/table-09.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "table"
      ]
    },
    {
      "name": "table-10",
      "type": "registry:component",
      "title": "Sticky header table",
      "description": "The header stays in place while the rows scroll under it.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/table.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/table/table-10.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "table"
      ]
    },
    {
      "name": "table-11",
      "type": "registry:component",
      "title": "Availability matrix",
      "description": "Grouped platform columns with a mark and a version for each feature.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/table.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/table/table-11.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "table"
      ]
    },
    {
      "name": "table-12",
      "type": "registry:component",
      "title": "Basic data table",
      "description": "A TanStack table with row selection and a balance total.",
      "dependencies": [
        "@tanstack/react-table"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/table.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/table/table-12.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "table"
      ]
    },
    {
      "name": "table-13",
      "type": "registry:component",
      "title": "Filterable data table",
      "description": "Search, select and range filters above a sortable table.",
      "dependencies": [
        "@tanstack/react-table",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/table.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/table/table-13.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "table"
      ]
    },
    {
      "name": "table-14",
      "type": "registry:component",
      "title": "Resizable columns",
      "description": "Drag a column edge to resize it and click a header to sort.",
      "dependencies": [
        "@tanstack/react-table",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/table.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/table/table-14.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "table"
      ]
    },
    {
      "name": "table-15",
      "type": "registry:component",
      "title": "Pinnable columns",
      "description": "Stick a column to the left or right edge while the rest scrolls.",
      "dependencies": [
        "@tanstack/react-table",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/table.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/table/table-15.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "table"
      ]
    },
    {
      "name": "table-16",
      "type": "registry:component",
      "title": "Reorderable columns",
      "description": "Drag a column by its handle to move it, and sort from its header.",
      "dependencies": [
        "@dnd-kit/core",
        "@dnd-kit/modifiers",
        "@dnd-kit/sortable",
        "@dnd-kit/utilities",
        "@tanstack/react-table",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/table.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/table/table-16.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "table"
      ]
    },
    {
      "name": "table-17",
      "type": "registry:component",
      "title": "Expandable rows",
      "description": "Rows that carry a note open below to show it.",
      "dependencies": [
        "@tanstack/react-table",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/table.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/table/table-17.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "table"
      ]
    },
    {
      "name": "table-18",
      "type": "registry:component",
      "title": "Paginated table",
      "description": "Rows per page, the visible range and buttons from first to last page.",
      "dependencies": [
        "@tanstack/react-table",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/pagination.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/table.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/table/table-18.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "table"
      ]
    },
    {
      "name": "table-19",
      "type": "registry:component",
      "title": "Numbered pagination",
      "description": "Page numbers with a pill that travels to the current page.",
      "dependencies": [
        "@tanstack/react-table",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/pagination.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/table.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-pagination.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/table/table-19.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "table"
      ]
    },
    {
      "name": "table-20",
      "type": "registry:component",
      "title": "Complete data table",
      "description": "Filters, column toggles, row actions, bulk delete and pagination together.",
      "dependencies": [
        "@tanstack/react-table",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/alert-dialog.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/pagination.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/table.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/table/table-20.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "table"
      ]
    },
    {
      "name": "tabs-01",
      "type": "registry:component",
      "title": "Segmented tabs",
      "description": "A raised plate slides to the active tab on a grey track.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tabs/tabs-01.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tabs"
      ]
    },
    {
      "name": "tabs-02",
      "type": "registry:component",
      "title": "Ghost tabs",
      "description": "A soft tint slides to the active tab, with no track behind.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tabs/tabs-02.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tabs"
      ]
    },
    {
      "name": "tabs-03",
      "type": "registry:component",
      "title": "Pill tabs",
      "description": "A primary pill slides under the active tab.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tabs/tabs-03.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tabs"
      ]
    },
    {
      "name": "tabs-04",
      "type": "registry:component",
      "title": "Underline tabs",
      "description": "A primary line slides under the active tab along a hairline.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tabs/tabs-04.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tabs"
      ]
    },
    {
      "name": "tabs-05",
      "type": "registry:component",
      "title": "Underline tabs with hover",
      "description": "Tabs that tint on hover above a sliding primary line.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tabs/tabs-05.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tabs"
      ]
    },
    {
      "name": "tabs-06",
      "type": "registry:component",
      "title": "Grouped tabs",
      "description": "Tabs joined into one outlined pill, the active segment tinted.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tabs/tabs-06.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tabs"
      ]
    },
    {
      "name": "tabs-07",
      "type": "registry:component",
      "title": "Folder tabs",
      "description": "The active tab opens onto the content below its baseline.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tabs/tabs-07.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tabs"
      ]
    },
    {
      "name": "tabs-08",
      "type": "registry:component",
      "title": "Segmented tabs with icons and badges",
      "description": "Icons, a count and a New badge that dim on inactive tabs.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/scroll-area.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tabs/tabs-08.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tabs"
      ]
    },
    {
      "name": "tabs-09",
      "type": "registry:component",
      "title": "Pill tabs with icons",
      "description": "A primary pill slides between tabs that carry an icon.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/scroll-area.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tabs/tabs-09.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tabs"
      ]
    },
    {
      "name": "tabs-10",
      "type": "registry:component",
      "title": "Grouped tabs with icons",
      "description": "An outlined pill of tabs with icons, the active segment tinted.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/scroll-area.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tabs/tabs-10.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tabs"
      ]
    },
    {
      "name": "tabs-11",
      "type": "registry:component",
      "title": "Folder tabs with icons",
      "description": "Folder tabs with an icon before each label.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/scroll-area.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tabs/tabs-11.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tabs"
      ]
    },
    {
      "name": "tabs-12",
      "type": "registry:component",
      "title": "Scrolling underline tabs",
      "description": "Six tabs with icons, a count and a badge that scroll sideways when space runs out.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/scroll-area.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tabs/tabs-12.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tabs"
      ]
    },
    {
      "name": "tabs-13",
      "type": "registry:component",
      "title": "Stacked underline tabs",
      "description": "An icon above each label and a primary line under the active tab.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tabs/tabs-13.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tabs"
      ]
    },
    {
      "name": "tabs-14",
      "type": "registry:component",
      "title": "Tabs with counts",
      "description": "A count above each label, dimmed until its tab is active.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tabs/tabs-14.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tabs"
      ]
    },
    {
      "name": "tabs-15",
      "type": "registry:component",
      "title": "Icon tabs with tooltips",
      "description": "Icon-only segmented tabs that name themselves in a tooltip.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tabs/tabs-15.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tabs"
      ]
    },
    {
      "name": "tabs-16",
      "type": "registry:component",
      "title": "Vertical icon tabs with tooltips",
      "description": "A column of icon tabs with tooltips on the side, next to a content card.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tabs/tabs-16.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tabs"
      ]
    },
    {
      "name": "tabs-17",
      "type": "registry:component",
      "title": "Vertical segmented tabs",
      "description": "A segmented column of tabs next to a content card.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tabs/tabs-17.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tabs"
      ]
    },
    {
      "name": "tabs-18",
      "type": "registry:component",
      "title": "Vertical underline tabs",
      "description": "A primary line slides along the start edge of a tab column.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tabs/tabs-18.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tabs"
      ]
    },
    {
      "name": "tabs-19",
      "type": "registry:component",
      "title": "Vertical tabs with icons",
      "description": "Icon rows that tint on hover, marked by a sliding primary line.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tabs/tabs-19.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tabs"
      ]
    },
    {
      "name": "tabs-20",
      "type": "registry:component",
      "title": "Vertical ghost tabs",
      "description": "A soft tint slides down a column of tabs.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tabs/tabs-20.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tabs"
      ]
    },
    {
      "name": "teams-01",
      "type": "registry:component",
      "title": "Team card",
      "description": "A team with its member stack, open tasks and time this week, where Join turns into Joined and your face joins the stack.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/teams/teams-01.tsx",
          "type": "registry:component",
          "target": "components/teams/teams-01.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/avatar-stack.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/avatar-stack.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/people.ts",
          "type": "registry:component",
          "target": "components/teams/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/sliding-count.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/sliding-count.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/swap.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/swap.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/team-tile.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/team-tile.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/teams.ts",
          "type": "registry:component",
          "target": "components/teams/_parts/teams.ts"
        }
      ],
      "categories": [
        "components",
        "teams"
      ]
    },
    {
      "name": "teams-02",
      "type": "registry:component",
      "title": "Team switcher",
      "description": "A pill with the current team that opens every team with its tile and member count, the picked one marked.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/teams/teams-02.tsx",
          "type": "registry:component",
          "target": "components/teams/teams-02.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/morph-label.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/morph-label.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/sliding-count.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/sliding-count.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/swap.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/swap.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/team-tile.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/team-tile.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/teams.ts",
          "type": "registry:component",
          "target": "components/teams/_parts/teams.ts"
        }
      ],
      "categories": [
        "components",
        "teams"
      ]
    },
    {
      "name": "teams-03",
      "type": "registry:component",
      "title": "Member row",
      "description": "One member with presence on the avatar, the current task and time today, a role menu, and removal that turns into Undo.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/teams/teams-03.tsx",
          "type": "registry:component",
          "target": "components/teams/teams-03.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/morph-label.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/morph-label.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/people.ts",
          "type": "registry:component",
          "target": "components/teams/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/presence-avatar.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/presence-avatar.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/role-menu.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/role-menu.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/swap.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/swap.tsx"
        }
      ],
      "categories": [
        "components",
        "teams"
      ]
    },
    {
      "name": "teams-04",
      "type": "registry:component",
      "title": "Members with roles",
      "description": "The members of a team with a role menu on each row, a last manager who cannot step down, and a pending invite to revoke.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/teams/teams-04.tsx",
          "type": "registry:component",
          "target": "components/teams/teams-04.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/collapse.ts",
          "type": "registry:component",
          "target": "components/teams/_parts/collapse.ts"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/morph-label.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/morph-label.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/people.ts",
          "type": "registry:component",
          "target": "components/teams/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/presence-avatar.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/presence-avatar.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/role-menu.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/role-menu.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/sliding-count.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/sliding-count.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/teams.ts",
          "type": "registry:component",
          "target": "components/teams/_parts/teams.ts"
        }
      ],
      "categories": [
        "components",
        "teams"
      ]
    },
    {
      "name": "teams-05",
      "type": "registry:component",
      "title": "Empty team that invites",
      "description": "A team with dashed seats that fill with each address invited, the Invite button going through Sending to Sent.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/teams/teams-05.tsx",
          "type": "registry:component",
          "target": "components/teams/teams-05.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/collapse.ts",
          "type": "registry:component",
          "target": "components/teams/_parts/collapse.ts"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/sliding-count.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/sliding-count.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/swap.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/swap.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/team-tile.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/team-tile.tsx"
        }
      ],
      "categories": [
        "components",
        "teams"
      ]
    },
    {
      "name": "teams-06",
      "type": "registry:component",
      "title": "Team settings",
      "description": "Name, colour, visibility, join requests and a hold to archive, with the team tile following every change.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/toggle-group.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/teams/teams-06.tsx",
          "type": "registry:component",
          "target": "components/teams/teams-06.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/segments.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/segments.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/swap.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/swap.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/team-tile.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/team-tile.tsx"
        }
      ],
      "categories": [
        "components",
        "teams"
      ]
    },
    {
      "name": "teams-07",
      "type": "registry:component",
      "title": "Member card that flips",
      "description": "A member card whose Details button turns it over to the email, local time, teams and hours of the week.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/teams/teams-07.tsx",
          "type": "registry:component",
          "target": "components/teams/teams-07.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/people.ts",
          "type": "registry:component",
          "target": "components/teams/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/presence-avatar.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/presence-avatar.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/swap.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/swap.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/team-tile.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/team-tile.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/teams.ts",
          "type": "registry:component",
          "target": "components/teams/_parts/teams.ts"
        }
      ],
      "categories": [
        "components",
        "teams"
      ]
    },
    {
      "name": "teams-08",
      "type": "registry:component",
      "title": "Workload per member",
      "description": "Planned hours against capacity for each member, this week or next, with the people over capacity in warning.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/toggle-group.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/teams/teams-08.tsx",
          "type": "registry:component",
          "target": "components/teams/teams-08.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/people.ts",
          "type": "registry:component",
          "target": "components/teams/_parts/people.ts"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/segments.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/segments.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/sliding-count.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/sliding-count.tsx"
        }
      ],
      "categories": [
        "components",
        "teams"
      ]
    },
    {
      "name": "teams-09",
      "type": "registry:component",
      "title": "Team picker with search",
      "description": "A searchable list of teams for moving a task, where the mark travels to the team picked and an empty search offers a way back.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/command.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/selected-mark.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/teams/teams-09.tsx",
          "type": "registry:component",
          "target": "components/teams/teams-09.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/morph-label.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/morph-label.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/team-tile.tsx",
          "type": "registry:component",
          "target": "components/teams/_parts/team-tile.tsx"
        },
        {
          "path": "registry/ndeko/components/teams/_parts/teams.ts",
          "type": "registry:component",
          "target": "components/teams/_parts/teams.ts"
        }
      ],
      "categories": [
        "components",
        "teams"
      ]
    },
    {
      "name": "textarea-01",
      "type": "registry:component",
      "title": "Basic textarea",
      "description": "A labelled field that grows with its text.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/textarea/textarea-01.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "textarea"
      ]
    },
    {
      "name": "textarea-02",
      "type": "registry:component",
      "title": "Required textarea",
      "description": "A required field marked with an asterisk after its label.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/textarea/textarea-02.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "textarea"
      ]
    },
    {
      "name": "textarea-03",
      "type": "registry:component",
      "title": "Textarea with hint",
      "description": "A field with a short hint below, read out with the field.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/textarea/textarea-03.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "textarea"
      ]
    },
    {
      "name": "textarea-04",
      "type": "registry:component",
      "title": "Optional textarea",
      "description": "A field that says it is optional beside its label.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/textarea/textarea-04.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "textarea"
      ]
    },
    {
      "name": "textarea-05",
      "type": "registry:component",
      "title": "Textarea with brand focus",
      "description": "A field whose border and halo take the brand colour on focus.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/textarea/textarea-05.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "textarea"
      ]
    },
    {
      "name": "textarea-06",
      "type": "registry:component",
      "title": "Textarea with error",
      "description": "An invalid field with the message that explains the fix.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/textarea/textarea-06.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "textarea"
      ]
    },
    {
      "name": "textarea-07",
      "type": "registry:component",
      "title": "Filled textarea",
      "description": "A tinted field without an outline until it takes focus.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/textarea/textarea-07.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "textarea"
      ]
    },
    {
      "name": "textarea-08",
      "type": "registry:component",
      "title": "Compact textarea",
      "description": "A field that starts at two lines before it grows.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/textarea/textarea-08.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "textarea"
      ]
    },
    {
      "name": "textarea-09",
      "type": "registry:component",
      "title": "Disabled textarea",
      "description": "A dimmed field and label that cannot be edited.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/textarea/textarea-09.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "textarea"
      ]
    },
    {
      "name": "textarea-10",
      "type": "registry:component",
      "title": "Textarea with button",
      "description": "A field with its send button aligned to the start.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/textarea/textarea-10.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "textarea"
      ]
    },
    {
      "name": "textarea-11",
      "type": "registry:component",
      "title": "Textarea with end button",
      "description": "A field with its send button aligned to the end.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/textarea/textarea-11.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "textarea"
      ]
    },
    {
      "name": "textarea-12",
      "type": "registry:component",
      "title": "Textarea with full-width button",
      "description": "A field with a send button as wide as the field.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/textarea/textarea-12.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "textarea"
      ]
    },
    {
      "name": "textarea-13",
      "type": "registry:component",
      "title": "Textarea with overlapping label",
      "description": "A small label that sits on the top edge of the field.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/textarea/textarea-13.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "textarea"
      ]
    },
    {
      "name": "textarea-14",
      "type": "registry:component",
      "title": "Textarea with floating label",
      "description": "A label that rises to the top edge on focus or once filled.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/textarea/textarea-14.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "textarea"
      ]
    },
    {
      "name": "textarea-15",
      "type": "registry:component",
      "title": "Textarea with inset label",
      "description": "A label drawn inside the field, above the text.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/textarea/textarea-15.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "textarea"
      ]
    },
    {
      "name": "textarea-16",
      "type": "registry:component",
      "title": "Textarea with character limit",
      "description": "A counter of characters left that warns near the limit and turns red at it.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/use-character-limit.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/textarea/textarea-16.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "textarea"
      ]
    },
    {
      "name": "textarea-17",
      "type": "registry:component",
      "title": "Fixed-height textarea",
      "description": "A field that keeps its height and scrolls instead of growing.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/textarea/textarea-17.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "textarea"
      ]
    },
    {
      "name": "textarea-18",
      "type": "registry:component",
      "title": "Read-only textarea",
      "description": "A flat, tinted field whose text can be read and copied.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/textarea/textarea-18.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "textarea"
      ]
    },
    {
      "name": "textarea-19",
      "type": "registry:component",
      "title": "Auto-growing textarea",
      "description": "A field that starts at one line and grows up to five.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/textarea/textarea-19.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "textarea"
      ]
    },
    {
      "name": "timeline-01",
      "type": "registry:component",
      "title": "Milestone timeline",
      "description": "Milestone titles on a vertical line, the first three done.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/timeline.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/timeline/timeline-01.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "timeline"
      ]
    },
    {
      "name": "timeline-02",
      "type": "registry:component",
      "title": "Dates on the side",
      "description": "Dates move to a column on the left when there is room.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/timeline.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/timeline/timeline-02.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "timeline"
      ]
    },
    {
      "name": "timeline-03",
      "type": "registry:component",
      "title": "Timeline with dates",
      "description": "A date above each title and description.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/timeline.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/timeline/timeline-03.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "timeline"
      ]
    },
    {
      "name": "timeline-04",
      "type": "registry:component",
      "title": "Pull request timeline",
      "description": "Review steps with the time under each description.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/timeline.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/timeline/timeline-04.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "timeline"
      ]
    },
    {
      "name": "timeline-05",
      "type": "registry:component",
      "title": "Checked timeline",
      "description": "Done milestones carry a check in a filled circle.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/timeline.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/timeline/timeline-05.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "timeline"
      ]
    },
    {
      "name": "timeline-06",
      "type": "registry:component",
      "title": "Timeline with icons",
      "description": "Each event has its own icon, filled once it is done.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/timeline.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/timeline/timeline-06.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "timeline"
      ]
    },
    {
      "name": "timeline-07",
      "type": "registry:component",
      "title": "Comment timeline",
      "description": "Avatars on the line and each comment in a card.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/timeline.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/timeline/timeline-07.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "timeline"
      ]
    },
    {
      "name": "timeline-08",
      "type": "registry:component",
      "title": "Alternating timeline",
      "description": "Milestones on both sides of a centred line.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/timeline.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/timeline/timeline-08.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "timeline"
      ]
    },
    {
      "name": "timeline-09",
      "type": "registry:component",
      "title": "Event log",
      "description": "System events with their date and time in one card.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/timeline.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/timeline/timeline-09.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "timeline"
      ]
    },
    {
      "name": "timeline-10",
      "type": "registry:component",
      "title": "Activity feed",
      "description": "Who did what and how long ago, with an icon per action.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/timeline.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/timeline/timeline-10.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "timeline"
      ]
    },
    {
      "name": "timeline-11",
      "type": "registry:component",
      "title": "Horizontal timeline",
      "description": "Milestones along a horizontal line.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/timeline.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/timeline/timeline-11.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "timeline"
      ]
    },
    {
      "name": "timeline-12",
      "type": "registry:component",
      "title": "Horizontal timeline, dates above",
      "description": "Dates above the line, titles and descriptions below it.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/timeline.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/timeline/timeline-12.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "timeline"
      ]
    },
    {
      "name": "tooltip-01",
      "type": "registry:component",
      "title": "Basic tooltip",
      "description": "A short hint that says what the button does not show.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tooltip/tooltip-01.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tooltip"
      ]
    },
    {
      "name": "tooltip-02",
      "type": "registry:component",
      "title": "Dark tooltip",
      "description": "A tooltip that stays dark in both themes.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tooltip/tooltip-02.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tooltip"
      ]
    },
    {
      "name": "tooltip-03",
      "type": "registry:component",
      "title": "Tooltip on a disabled button",
      "description": "Explains why the button cannot be pressed yet.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tooltip/tooltip-03.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tooltip"
      ]
    },
    {
      "name": "tooltip-04",
      "type": "registry:component",
      "title": "Hover card with a title",
      "description": "A term in a sentence that opens its definition on hover.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/hover-card.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tooltip/tooltip-04.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tooltip"
      ]
    },
    {
      "name": "tooltip-05",
      "type": "registry:component",
      "title": "Hover card with an icon",
      "description": "A link that previews a short notice led by an icon.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/hover-card.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tooltip/tooltip-05.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tooltip"
      ]
    },
    {
      "name": "tooltip-06",
      "type": "registry:component",
      "title": "Hover card with a cover",
      "description": "A changelog link that previews a cover, a title and a summary.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/hover-card.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tooltip/tooltip-06.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tooltip"
      ]
    },
    {
      "name": "tooltip-07",
      "type": "registry:component",
      "title": "Tooltips on four sides",
      "description": "Four pan buttons share one tooltip that moves to each side with its shortcut.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tooltip/tooltip-07.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tooltip"
      ]
    },
    {
      "name": "tooltip-08",
      "type": "registry:component",
      "title": "Hover card with stats",
      "description": "A deployment link that previews its status and figures.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/hover-card.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tooltip/tooltip-08.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tooltip"
      ]
    },
    {
      "name": "tooltip-09",
      "type": "registry:component",
      "title": "Chart readout",
      "description": "One readout follows the pointer, a tap or the keyboard from bar to bar.",
      "dependencies": [
        "@base-ui/react"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tooltip/tooltip-09.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tooltip"
      ]
    },
    {
      "name": "tooltip-10",
      "type": "registry:component",
      "title": "Profile hover card",
      "description": "An avatar link that previews the profile behind it.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/hover-card.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tooltip/tooltip-10.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tooltip"
      ]
    },
    {
      "name": "tooltip-11",
      "type": "registry:component",
      "title": "Person hover card",
      "description": "A name that previews the bio and mutual friends.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/hover-card.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tooltip/tooltip-11.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tooltip"
      ]
    },
    {
      "name": "tooltip-12",
      "type": "registry:component",
      "title": "Article hover card",
      "description": "A cover link that previews the article with an arrow.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/hover-card.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tooltip/tooltip-12.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tooltip"
      ]
    },
    {
      "name": "tree-01",
      "type": "registry:component",
      "title": "Basic tree",
      "description": "Teams in folders that open with the arrow keys or a click.",
      "dependencies": [
        "@headless-tree/core"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tree.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tree/tree-01.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tree"
      ]
    },
    {
      "name": "tree-02",
      "type": "registry:component",
      "title": "Tree with guide lines",
      "description": "Vertical lines show which folder each row belongs to.",
      "dependencies": [
        "@headless-tree/core"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tree.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tree/tree-02.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tree"
      ]
    },
    {
      "name": "tree-03",
      "type": "registry:component",
      "title": "Tree with icons",
      "description": "Folder and file icons, the folder opening with its row.",
      "dependencies": [
        "@headless-tree/core"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tree.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tree/tree-03.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tree"
      ]
    },
    {
      "name": "tree-04",
      "type": "registry:component",
      "title": "Chevron on the right",
      "description": "Icons lead each row and the chevron sits at the end.",
      "dependencies": [
        "@headless-tree/core"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tree.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tree/tree-04.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tree"
      ]
    },
    {
      "name": "tree-05",
      "type": "registry:component",
      "title": "Drag and drop tree",
      "description": "Select several rows and drag them to a new place.",
      "dependencies": [
        "@headless-tree/core",
        "@headless-tree/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tree.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tree/tree-05.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tree"
      ]
    },
    {
      "name": "tree-06",
      "type": "registry:component",
      "title": "Renamable tree",
      "description": "Press F2 to rename the focused row; it moves to its new place.",
      "dependencies": [
        "@headless-tree/core",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tree.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tree/tree-06.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tree"
      ]
    },
    {
      "name": "tree-07",
      "type": "registry:component",
      "title": "Searchable tree",
      "description": "Typing opens every folder and highlights the matches.",
      "dependencies": [
        "@headless-tree/core"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tree.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tree/tree-07.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tree"
      ]
    },
    {
      "name": "tree-08",
      "type": "registry:component",
      "title": "Filterable tree",
      "description": "Only the matches and their folders stay in the tree.",
      "dependencies": [
        "@headless-tree/core",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tree.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tree/tree-08.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tree"
      ]
    },
    {
      "name": "tree-09",
      "type": "registry:component",
      "title": "Double-click to open",
      "description": "A click selects a row and a double click opens its folder.",
      "dependencies": [
        "@headless-tree/core"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tree.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tree/tree-09.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tree"
      ]
    },
    {
      "name": "tree-10",
      "type": "registry:component",
      "title": "Expand and collapse all",
      "description": "Two buttons open or close every folder, with child counts.",
      "dependencies": [
        "@headless-tree/core"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tree.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tree/tree-10.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tree"
      ]
    },
    {
      "name": "tree-11",
      "type": "registry:component",
      "title": "File explorer",
      "description": "Project files by type, sorted again after a drop.",
      "dependencies": [
        "@headless-tree/core",
        "@headless-tree/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tree.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tree/tree-11.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tree"
      ]
    },
    {
      "name": "tree-12",
      "type": "registry:component",
      "title": "Navigation tree",
      "description": "Documentation links with the current page open and marked.",
      "dependencies": [
        "@headless-tree/core"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tree.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tree/tree-12.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tree"
      ]
    },
    {
      "name": "tree-13",
      "type": "registry:component",
      "title": "Checkboxes on the right",
      "description": "A checkbox at the end of each row, folders following their items.",
      "dependencies": [
        "@headless-tree/core"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tree.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tree/tree-13.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tree"
      ]
    },
    {
      "name": "tree-14",
      "type": "registry:component",
      "title": "Checkboxes on the left",
      "description": "A checkbox before each row, folders following their items.",
      "dependencies": [
        "@headless-tree/core"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tree.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tree/tree-14.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tree"
      ]
    },
    {
      "name": "tree-15",
      "type": "registry:component",
      "title": "Checkable folders",
      "description": "Checking a folder checks it and everything inside it.",
      "dependencies": [
        "@headless-tree/core"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tree.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/components/tree/tree-15.tsx",
          "type": "registry:component"
        }
      ],
      "categories": [
        "components",
        "tree"
      ]
    },
    {
      "name": "app-shells-01",
      "type": "registry:block",
      "title": "Sidebar and inset panel",
      "description": "A workspace sidebar on the window colour with search, quick create and an account menu, and every page in one rounded panel beside it.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/breadcrumb.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/command.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/sheet.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-01/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-01/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-01/app-sidebar.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-01/app-sidebar.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-01/sidebar-parts.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-01/sidebar-parts.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-01/workspace-switcher.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-01/workspace-switcher.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-01/search-palette.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-01/search-palette.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-01/quick-create-menu.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-01/quick-create-menu.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-01/account-menu.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-01/account-menu.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-01/top-bar.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-01/top-bar.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-01/page-views.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-01/page-views.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-01/data.ts",
          "type": "registry:component",
          "target": "components/blocks/app-shells-01/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "app-shells"
      ]
    },
    {
      "name": "app-shells-02",
      "type": "registry:block",
      "title": "Icon rail sidebar",
      "description": "The same shell with the sidebar folded into an icon rail that explains itself with tooltips and morphs back to full width.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/breadcrumb.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/command.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/sheet.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-02/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-02/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-02/app-sidebar.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-02/app-sidebar.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-02/sidebar-parts.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-02/sidebar-parts.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-02/workspace-switcher.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-02/workspace-switcher.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-02/search-palette.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-02/search-palette.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-02/quick-create-menu.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-02/quick-create-menu.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-02/account-menu.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-02/account-menu.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-02/top-bar.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-02/top-bar.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-02/page-views.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-02/page-views.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-02/data.ts",
          "type": "registry:component",
          "target": "components/blocks/app-shells-02/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "app-shells"
      ]
    },
    {
      "name": "app-shells-03",
      "type": "registry:block",
      "title": "Settings mode",
      "description": "The sidebar switches to a settings rail with a way back to the app, beside a settings page of rows that save as you change them.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/alert-dialog.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/breadcrumb.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/command.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/sheet.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-03/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-03/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-03/app-sidebar.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-03/app-sidebar.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-03/sidebar-parts.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-03/sidebar-parts.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-03/workspace-switcher.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-03/workspace-switcher.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-03/search-palette.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-03/search-palette.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-03/quick-create-menu.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-03/quick-create-menu.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-03/account-menu.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-03/account-menu.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-03/top-bar.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-03/top-bar.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-03/settings-kit.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-03/settings-kit.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-03/settings-pages.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-03/settings-pages.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-03/page-views.tsx",
          "type": "registry:component",
          "target": "components/blocks/app-shells-03/page-views.tsx"
        },
        {
          "path": "registry/ndeko/blocks/app-shells/app-shells-03/data.ts",
          "type": "registry:component",
          "target": "components/blocks/app-shells-03/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "app-shells"
      ]
    },
    {
      "name": "auth-01",
      "type": "registry:block",
      "title": "Sign in with a one-time code",
      "description": "An email, then a six-digit code, then signed in: the card resizes between steps, the button turns into its working state and a wrong code says what to do next.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/otp-field.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/auth/auth-01/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/auth-01/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/auth/auth-01/auth-kit.tsx",
          "type": "registry:component",
          "target": "components/blocks/auth-01/auth-kit.tsx"
        },
        {
          "path": "registry/ndeko/blocks/auth/auth-01/data.ts",
          "type": "registry:component",
          "target": "components/blocks/auth-01/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "auth"
      ]
    },
    {
      "name": "auth-02",
      "type": "registry:block",
      "title": "Sign up with live password rules",
      "description": "Name, email and password with rules that tick as they are met, a reveal button that swaps its eye, and errors that fold away once you type again.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/auth/auth-02/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/auth-02/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/auth/auth-02/password-parts.tsx",
          "type": "registry:component",
          "target": "components/blocks/auth-02/password-parts.tsx"
        },
        {
          "path": "registry/ndeko/blocks/auth/auth-02/auth-kit.tsx",
          "type": "registry:component",
          "target": "components/blocks/auth-02/auth-kit.tsx"
        },
        {
          "path": "registry/ndeko/blocks/auth/auth-02/data.ts",
          "type": "registry:component",
          "target": "components/blocks/auth-02/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "auth"
      ]
    },
    {
      "name": "auth-03",
      "type": "registry:block",
      "title": "Reset password",
      "description": "Ask for a link, check your email with a resend countdown, choose a new password typed twice, then a confirmation, all in one card that resizes to each step.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/auth/auth-03/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/auth-03/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/auth/auth-03/password-parts.tsx",
          "type": "registry:component",
          "target": "components/blocks/auth-03/password-parts.tsx"
        },
        {
          "path": "registry/ndeko/blocks/auth/auth-03/auth-kit.tsx",
          "type": "registry:component",
          "target": "components/blocks/auth-03/auth-kit.tsx"
        },
        {
          "path": "registry/ndeko/blocks/auth/auth-03/data.ts",
          "type": "registry:component",
          "target": "components/blocks/auth-03/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "auth"
      ]
    },
    {
      "name": "automations-01",
      "type": "registry:block",
      "title": "Rule builder",
      "description": "An event, conditions and actions on one rail: rows open and close in place, the rule reads back as a sentence as you edit, mistakes fold in under their row and Save becomes Saving then Saved.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/automations/automations-01/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/automations-01/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/automations/automations-01/rule-parts.tsx",
          "type": "registry:component",
          "target": "components/blocks/automations-01/rule-parts.tsx"
        },
        {
          "path": "registry/ndeko/blocks/automations/automations-01/rule-model.ts",
          "type": "registry:component",
          "target": "components/blocks/automations-01/rule-model.ts"
        },
        {
          "path": "registry/ndeko/blocks/automations/automations-01/save-button.tsx",
          "type": "registry:component",
          "target": "components/blocks/automations-01/save-button.tsx"
        },
        {
          "path": "registry/ndeko/blocks/automations/automations-01/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/blocks/automations-01/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/blocks/automations/automations-01/data.ts",
          "type": "registry:component",
          "target": "components/blocks/automations-01/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "automations"
      ]
    },
    {
      "name": "billing-01",
      "type": "registry:block",
      "title": "Usage with a spending cap",
      "description": "Plan meters that turn amber near their limit, on-demand spending against a cap whose marker follows the slider, a card that grows into its editor, and a next invoice that rolls to its new total once the cap is saved.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/motion-word-roll.json",
        "https://ui.ndekocode.dev/r/slider.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/billing/billing-01/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/billing-01/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/billing/billing-01/spend-cap.tsx",
          "type": "registry:component",
          "target": "components/blocks/billing-01/spend-cap.tsx"
        },
        {
          "path": "registry/ndeko/blocks/billing/billing-01/usage-meters.tsx",
          "type": "registry:component",
          "target": "components/blocks/billing-01/usage-meters.tsx"
        },
        {
          "path": "registry/ndeko/blocks/billing/billing-01/billing-model.ts",
          "type": "registry:component",
          "target": "components/blocks/billing-01/billing-model.ts"
        },
        {
          "path": "registry/ndeko/blocks/billing/billing-01/save-button.tsx",
          "type": "registry:component",
          "target": "components/blocks/billing-01/save-button.tsx"
        },
        {
          "path": "registry/ndeko/blocks/billing/billing-01/data.ts",
          "type": "registry:component",
          "target": "components/blocks/billing-01/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "billing"
      ]
    },
    {
      "name": "boards-01",
      "type": "registry:block",
      "title": "Kanban board",
      "description": "Tinted lanes that scroll on their own, cards with property chips, issue types and worked time, dragged between lanes with the keyboard or the pointer.",
      "dependencies": [
        "@dnd-kit/core",
        "@dnd-kit/sortable",
        "@dnd-kit/utilities",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/boards/boards-01/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/boards-01/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/boards/boards-01/board-lane.tsx",
          "type": "registry:component",
          "target": "components/blocks/boards-01/board-lane.tsx"
        },
        {
          "path": "registry/ndeko/blocks/boards/boards-01/card-parts.tsx",
          "type": "registry:component",
          "target": "components/blocks/boards-01/card-parts.tsx"
        },
        {
          "path": "registry/ndeko/blocks/boards/boards-01/drag-overlay-card.tsx",
          "type": "registry:component",
          "target": "components/blocks/boards-01/drag-overlay-card.tsx"
        },
        {
          "path": "registry/ndeko/blocks/boards/boards-01/board-moves.ts",
          "type": "registry:component",
          "target": "components/blocks/boards-01/board-moves.ts"
        },
        {
          "path": "registry/ndeko/blocks/boards/boards-01/data.ts",
          "type": "registry:component",
          "target": "components/blocks/boards-01/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "boards"
      ]
    },
    {
      "name": "boards-02",
      "type": "registry:block",
      "title": "Board with hidden columns and filters",
      "description": "The same board with folded lanes gathered at the end, still taking drops, and filters that float one pill with the hidden count and Clear filters.",
      "dependencies": [
        "@dnd-kit/core",
        "@dnd-kit/sortable",
        "@dnd-kit/utilities",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/motion-word-roll.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/boards/boards-02/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/boards-02/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/boards/boards-02/board-lane.tsx",
          "type": "registry:component",
          "target": "components/blocks/boards-02/board-lane.tsx"
        },
        {
          "path": "registry/ndeko/blocks/boards/boards-02/card-parts.tsx",
          "type": "registry:component",
          "target": "components/blocks/boards-02/card-parts.tsx"
        },
        {
          "path": "registry/ndeko/blocks/boards/boards-02/drag-overlay-card.tsx",
          "type": "registry:component",
          "target": "components/blocks/boards-02/drag-overlay-card.tsx"
        },
        {
          "path": "registry/ndeko/blocks/boards/boards-02/board-moves.ts",
          "type": "registry:component",
          "target": "components/blocks/boards-02/board-moves.ts"
        },
        {
          "path": "registry/ndeko/blocks/boards/boards-02/board-filters.ts",
          "type": "registry:component",
          "target": "components/blocks/boards-02/board-filters.ts"
        },
        {
          "path": "registry/ndeko/blocks/boards/boards-02/filter-menu.tsx",
          "type": "registry:component",
          "target": "components/blocks/boards-02/filter-menu.tsx"
        },
        {
          "path": "registry/ndeko/blocks/boards/boards-02/filter-pill.tsx",
          "type": "registry:component",
          "target": "components/blocks/boards-02/filter-pill.tsx"
        },
        {
          "path": "registry/ndeko/blocks/boards/boards-02/hidden-columns.tsx",
          "type": "registry:component",
          "target": "components/blocks/boards-02/hidden-columns.tsx"
        },
        {
          "path": "registry/ndeko/blocks/boards/boards-02/data.ts",
          "type": "registry:component",
          "target": "components/blocks/boards-02/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "boards"
      ]
    },
    {
      "name": "calendars-01",
      "type": "registry:block",
      "title": "Calendar app",
      "description": "A sidebar with a month that moves the main calendar and colour toggles that filter it, beside a calendar with day, week, month, year and agenda views",
      "dependencies": [
        "@dnd-kit/core",
        "date-fns",
        "motion",
        "sonner"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/calendar.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/dialog.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/sheet.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/calendars/calendars-01/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/calendars-01/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/calendars/calendars-01/calendar-sidebar.tsx",
          "type": "registry:component",
          "target": "components/blocks/calendars-01/calendar-sidebar.tsx"
        },
        {
          "path": "registry/ndeko/blocks/calendars/calendars-01/data.ts",
          "type": "registry:component",
          "target": "components/blocks/calendars-01/data.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/agenda-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/agenda-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/calendar-dnd-context.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/calendar-dnd-context.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/calendar-header.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/calendar-header.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/constants.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/constants.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/day-events-panel.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/day-events-panel.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/day-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/day-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/draggable-event.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/draggable-event.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/droppable-cell.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/droppable-cell.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-calendar.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-calendar.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-dialog.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-dialog.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-item.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-item.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/event-list-row.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/event-list-row.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/index.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/index.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/mini-month.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/mini-month.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/month-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/month-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/navigation.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/navigation.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/sample-events.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/sample-events.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/time-grid.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/time-grid.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/types.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/types.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-current-time-indicator.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-current-time-indicator.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-event-editor.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-event-editor.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-event-list.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-event-list.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-event-visibility.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-event-visibility.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/use-roving-day.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/use-roving-day.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/utils.ts",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/utils.ts"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/view-switcher.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/view-switcher.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/week-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/week-view.tsx"
        },
        {
          "path": "registry/ndeko/components/event-calendar/_parts/year-view.tsx",
          "type": "registry:component",
          "target": "components/event-calendar/_parts/year-view.tsx"
        }
      ],
      "categories": [
        "blocks",
        "calendars"
      ]
    },
    {
      "name": "changelog-01",
      "type": "registry:block",
      "title": "Release list with Load more",
      "description": "Dated releases with their kind of change as chips, a summary and a short list, and a Load more that adds the next releases while it is still needed.",
      "dependencies": [
        "date-fns",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/motion-word-roll.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/changelog/changelog-01/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/changelog-01/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/changelog/changelog-01/release-entry.tsx",
          "type": "registry:component",
          "target": "components/blocks/changelog-01/release-entry.tsx"
        },
        {
          "path": "registry/ndeko/blocks/changelog/changelog-01/data.ts",
          "type": "registry:component",
          "target": "components/blocks/changelog-01/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "changelog"
      ]
    },
    {
      "name": "chat-01",
      "type": "registry:block",
      "title": "Conversation about a page",
      "description": "A writing assistant beside a docs page: the reply streams in word by word, Send becomes Stop while it does, and the list follows new text until you scroll up.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chat-container.json",
        "https://ui.ndekocode.dev/r/chat-loader.json",
        "https://ui.ndekocode.dev/r/chat-message.json",
        "https://ui.ndekocode.dev/r/chat-motion.json",
        "https://ui.ndekocode.dev/r/chat-prompt-input.json",
        "https://ui.ndekocode.dev/r/chat-response-stream.json",
        "https://ui.ndekocode.dev/r/chat-scroll-button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/chat/chat-01/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/chat-01/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/chat/chat-01/turns.tsx",
          "type": "registry:component",
          "target": "components/blocks/chat-01/turns.tsx"
        },
        {
          "path": "registry/ndeko/blocks/chat/chat-01/reply-actions.tsx",
          "type": "registry:component",
          "target": "components/blocks/chat-01/reply-actions.tsx"
        },
        {
          "path": "registry/ndeko/blocks/chat/chat-01/presence.ts",
          "type": "registry:component",
          "target": "components/blocks/chat-01/presence.ts"
        },
        {
          "path": "registry/ndeko/blocks/chat/chat-01/use-copied.ts",
          "type": "registry:component",
          "target": "components/blocks/chat-01/use-copied.ts"
        },
        {
          "path": "registry/ndeko/blocks/chat/chat-01/data.ts",
          "type": "registry:component",
          "target": "components/blocks/chat-01/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "chat"
      ]
    },
    {
      "name": "chat-02",
      "type": "registry:block",
      "title": "Prompt composer",
      "description": "A composer that grows with the text, takes files from the picker or a drop, lets you pick a model and fills itself from suggested prompts.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chat-file-upload.json",
        "https://ui.ndekocode.dev/r/chat-motion.json",
        "https://ui.ndekocode.dev/r/chat-prompt-input.json",
        "https://ui.ndekocode.dev/r/chat-prompt-suggestion.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/chat/chat-02/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/chat-02/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/chat/chat-02/attachment-list.tsx",
          "type": "registry:component",
          "target": "components/blocks/chat-02/attachment-list.tsx"
        },
        {
          "path": "registry/ndeko/blocks/chat/chat-02/model-picker.tsx",
          "type": "registry:component",
          "target": "components/blocks/chat-02/model-picker.tsx"
        },
        {
          "path": "registry/ndeko/blocks/chat/chat-02/submit-button.tsx",
          "type": "registry:component",
          "target": "components/blocks/chat-02/submit-button.tsx"
        },
        {
          "path": "registry/ndeko/blocks/chat/chat-02/presence.ts",
          "type": "registry:component",
          "target": "components/blocks/chat-02/presence.ts"
        },
        {
          "path": "registry/ndeko/blocks/chat/chat-02/data.ts",
          "type": "registry:component",
          "target": "components/blocks/chat-02/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "chat"
      ]
    },
    {
      "name": "chat-03",
      "type": "registry:block",
      "title": "Reasoning and tool calls",
      "description": "A reply that shows how long it thought, folds its reasoning, runs two tool calls from running to done and cites its sources.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chat-loader.json",
        "https://ui.ndekocode.dev/r/chat-message.json",
        "https://ui.ndekocode.dev/r/chat-motion.json",
        "https://ui.ndekocode.dev/r/chat-reasoning.json",
        "https://ui.ndekocode.dev/r/chat-response-stream.json",
        "https://ui.ndekocode.dev/r/chat-source.json",
        "https://ui.ndekocode.dev/r/chat-tool.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/chat/chat-03/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/chat-03/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/chat/chat-03/reply-sources.tsx",
          "type": "registry:component",
          "target": "components/blocks/chat-03/reply-sources.tsx"
        },
        {
          "path": "registry/ndeko/blocks/chat/chat-03/presence.ts",
          "type": "registry:component",
          "target": "components/blocks/chat-03/presence.ts"
        },
        {
          "path": "registry/ndeko/blocks/chat/chat-03/data.ts",
          "type": "registry:component",
          "target": "components/blocks/chat-03/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "chat"
      ]
    },
    {
      "name": "contact-01",
      "type": "registry:block",
      "title": "Contact form with validation",
      "description": "Contact details beside a form that checks each field on submit and as you fix it, shows a sending state and morphs into a confirmation.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/contact/contact-01/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/contact-01/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/contact/contact-01/contact-form.tsx",
          "type": "registry:component",
          "target": "components/blocks/contact-01/contact-form.tsx"
        },
        {
          "path": "registry/ndeko/blocks/contact/contact-01/validation.ts",
          "type": "registry:component",
          "target": "components/blocks/contact-01/validation.ts"
        },
        {
          "path": "registry/ndeko/blocks/contact/contact-01/data.ts",
          "type": "registry:component",
          "target": "components/blocks/contact-01/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "contact"
      ]
    },
    {
      "name": "ctas-01",
      "type": "registry:block",
      "title": "Call to action band",
      "description": "One lifted band with a title, a short line and a single primary action, stacked on phones.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/ctas/ctas-01/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/ctas-01/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/ctas/ctas-01/data.ts",
          "type": "registry:component",
          "target": "components/blocks/ctas-01/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "ctas"
      ]
    },
    {
      "name": "ctas-02",
      "type": "registry:block",
      "title": "Install command card",
      "description": "A card with a package manager switch, the matching install command and a copy button whose icon swaps to a check.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/ctas/ctas-02/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/ctas-02/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/ctas/ctas-02/command-row.tsx",
          "type": "registry:component",
          "target": "components/blocks/ctas-02/command-row.tsx"
        },
        {
          "path": "registry/ndeko/blocks/ctas/ctas-02/data.ts",
          "type": "registry:component",
          "target": "components/blocks/ctas-02/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "ctas"
      ]
    },
    {
      "name": "dashboards-01",
      "type": "registry:block",
      "title": "Overview with a figures band",
      "description": "Four figures that pick what one line chart draws, a period switch whose figures roll to their new value, and a CSV export built in the browser.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/skeleton.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/dashboards/dashboards-01/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/dashboards-01/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/dashboards/dashboards-01/metric-strip.tsx",
          "type": "registry:component",
          "target": "components/blocks/dashboards-01/metric-strip.tsx"
        },
        {
          "path": "registry/ndeko/blocks/dashboards/dashboards-01/trend-chart.tsx",
          "type": "registry:component",
          "target": "components/blocks/dashboards-01/trend-chart.tsx"
        },
        {
          "path": "registry/ndeko/blocks/dashboards/dashboards-01/chart-kit.tsx",
          "type": "registry:component",
          "target": "components/blocks/dashboards-01/chart-kit.tsx"
        },
        {
          "path": "registry/ndeko/blocks/dashboards/dashboards-01/report-frame.tsx",
          "type": "registry:component",
          "target": "components/blocks/dashboards-01/report-frame.tsx"
        },
        {
          "path": "registry/ndeko/blocks/dashboards/dashboards-01/figures.ts",
          "type": "registry:component",
          "target": "components/blocks/dashboards-01/figures.ts"
        },
        {
          "path": "registry/ndeko/blocks/dashboards/dashboards-01/data.ts",
          "type": "registry:component",
          "target": "components/blocks/dashboards-01/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "dashboards"
      ]
    },
    {
      "name": "dashboards-02",
      "type": "registry:block",
      "title": "Weekly report",
      "description": "Hours by day as rounded bars that move to the new week, days ahead as empty slots, and the projects ranked by share with rows that travel to their new place.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/skeleton.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/dashboards/dashboards-02/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/dashboards-02/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/dashboards/dashboards-02/day-bars.tsx",
          "type": "registry:component",
          "target": "components/blocks/dashboards-02/day-bars.tsx"
        },
        {
          "path": "registry/ndeko/blocks/dashboards/dashboards-02/project-ranking.tsx",
          "type": "registry:component",
          "target": "components/blocks/dashboards-02/project-ranking.tsx"
        },
        {
          "path": "registry/ndeko/blocks/dashboards/dashboards-02/duration-figure.tsx",
          "type": "registry:component",
          "target": "components/blocks/dashboards-02/duration-figure.tsx"
        },
        {
          "path": "registry/ndeko/blocks/dashboards/dashboards-02/chart-kit.tsx",
          "type": "registry:component",
          "target": "components/blocks/dashboards-02/chart-kit.tsx"
        },
        {
          "path": "registry/ndeko/blocks/dashboards/dashboards-02/report-frame.tsx",
          "type": "registry:component",
          "target": "components/blocks/dashboards-02/report-frame.tsx"
        },
        {
          "path": "registry/ndeko/blocks/dashboards/dashboards-02/figures.ts",
          "type": "registry:component",
          "target": "components/blocks/dashboards-02/figures.ts"
        },
        {
          "path": "registry/ndeko/blocks/dashboards/dashboards-02/data.ts",
          "type": "registry:component",
          "target": "components/blocks/dashboards-02/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "dashboards"
      ]
    },
    {
      "name": "dashboards-03",
      "type": "registry:block",
      "title": "Project health",
      "description": "A sprint goal measured against where the team should be by today, and a short table of workstreams with their health and a filter for the ones that need attention.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/skeleton.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/dashboards/dashboards-03/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/dashboards-03/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/dashboards/dashboards-03/goal-card.tsx",
          "type": "registry:component",
          "target": "components/blocks/dashboards-03/goal-card.tsx"
        },
        {
          "path": "registry/ndeko/blocks/dashboards/dashboards-03/workstream-table.tsx",
          "type": "registry:component",
          "target": "components/blocks/dashboards-03/workstream-table.tsx"
        },
        {
          "path": "registry/ndeko/blocks/dashboards/dashboards-03/report-frame.tsx",
          "type": "registry:component",
          "target": "components/blocks/dashboards-03/report-frame.tsx"
        },
        {
          "path": "registry/ndeko/blocks/dashboards/dashboards-03/figures.ts",
          "type": "registry:component",
          "target": "components/blocks/dashboards-03/figures.ts"
        },
        {
          "path": "registry/ndeko/blocks/dashboards/dashboards-03/data.ts",
          "type": "registry:component",
          "target": "components/blocks/dashboards-03/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "dashboards"
      ]
    },
    {
      "name": "dashboards-04",
      "type": "registry:block",
      "title": "Retention cohorts",
      "description": "Weekly sign-up cohorts as a grid shaded by how many still subscribe, weeks to come as empty slots, a selection ring that travels with the arrow keys and a panel whose figure rolls to the picked week.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/dashboards/dashboards-04/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/dashboards-04/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/dashboards/dashboards-04/cohort-table.tsx",
          "type": "registry:component",
          "target": "components/blocks/dashboards-04/cohort-table.tsx"
        },
        {
          "path": "registry/ndeko/blocks/dashboards/dashboards-04/cohort-panel.tsx",
          "type": "registry:component",
          "target": "components/blocks/dashboards-04/cohort-panel.tsx"
        },
        {
          "path": "registry/ndeko/blocks/dashboards/dashboards-04/cohort-model.ts",
          "type": "registry:component",
          "target": "components/blocks/dashboards-04/cohort-model.ts"
        },
        {
          "path": "registry/ndeko/blocks/dashboards/dashboards-04/data.ts",
          "type": "registry:component",
          "target": "components/blocks/dashboards-04/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "dashboards"
      ]
    },
    {
      "name": "empty-states-01",
      "type": "registry:block",
      "title": "Empty list with one action",
      "description": "A project list with nothing in it yet: one sentence on what is missing and the action that adds the first project, which then takes the place of the empty slot.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/empty-states/empty-states-01/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/empty-states-01/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/empty-states/empty-states-01/project-rows.tsx",
          "type": "registry:component",
          "target": "components/blocks/empty-states-01/project-rows.tsx"
        },
        {
          "path": "registry/ndeko/blocks/empty-states/empty-states-01/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/blocks/empty-states-01/motion-parts.tsx"
        }
      ],
      "categories": [
        "blocks",
        "empty-states"
      ]
    },
    {
      "name": "empty-states-02",
      "type": "registry:block",
      "title": "Search with no results",
      "description": "A people list whose search and role filter match nobody, saying what is applied and how to get everyone back with Clear filters.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/empty-states/empty-states-02/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/empty-states-02/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/empty-states/empty-states-02/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/blocks/empty-states-02/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/blocks/empty-states/empty-states-02/data.ts",
          "type": "registry:component",
          "target": "components/blocks/empty-states-02/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "empty-states"
      ]
    },
    {
      "name": "empty-states-03",
      "type": "registry:block",
      "title": "Block that failed to load",
      "description": "A page of cards where one block failed (simulated) and shows a notice with Retry, while the other cards keep working.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/skeleton.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/empty-states/empty-states-03/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/empty-states-03/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/empty-states/empty-states-03/activity-card.tsx",
          "type": "registry:component",
          "target": "components/blocks/empty-states-03/activity-card.tsx"
        },
        {
          "path": "registry/ndeko/blocks/empty-states/empty-states-03/working-cards.tsx",
          "type": "registry:component",
          "target": "components/blocks/empty-states-03/working-cards.tsx"
        },
        {
          "path": "registry/ndeko/blocks/empty-states/empty-states-03/dashboard-card.tsx",
          "type": "registry:component",
          "target": "components/blocks/empty-states-03/dashboard-card.tsx"
        },
        {
          "path": "registry/ndeko/blocks/empty-states/empty-states-03/people.ts",
          "type": "registry:component",
          "target": "components/blocks/empty-states-03/people.ts"
        },
        {
          "path": "registry/ndeko/blocks/empty-states/empty-states-03/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/blocks/empty-states-03/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/blocks/empty-states/empty-states-03/data.ts",
          "type": "registry:component",
          "target": "components/blocks/empty-states-03/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "empty-states"
      ]
    },
    {
      "name": "faqs-01",
      "type": "registry:block",
      "title": "Grouped questions beside the title",
      "description": "The title, topic links and a support action on the left, questions grouped by topic on the right, each answer opening with the panel height transition.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/faqs/faqs-01/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/faqs-01/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/faqs/faqs-01/data.ts",
          "type": "registry:component",
          "target": "components/blocks/faqs-01/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "faqs"
      ]
    },
    {
      "name": "faqs-02",
      "type": "registry:block",
      "title": "Centered questions with a contact line",
      "description": "A centred heading, the questions on one card and a line that names who answers the rest.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/faqs/faqs-02/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/faqs-02/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/faqs/faqs-02/data.ts",
          "type": "registry:component",
          "target": "components/blocks/faqs-02/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "faqs"
      ]
    },
    {
      "name": "features-01",
      "type": "registry:block",
      "title": "Alternating feature rows",
      "description": "Three rows that swap sides on wide screens, each pairing a short text with an invoice, a reminder list or a payment list drawn from primitives.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/features/features-01/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/features-01/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/features/features-01/feature-media.tsx",
          "type": "registry:component",
          "target": "components/blocks/features-01/feature-media.tsx"
        },
        {
          "path": "registry/ndeko/blocks/features/features-01/data.ts",
          "type": "registry:component",
          "target": "components/blocks/features-01/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "features"
      ]
    },
    {
      "name": "features-02",
      "type": "registry:block",
      "title": "Six small features",
      "description": "A split heading above six short items, each led by a key cap icon tile, two of them with their shortcut.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/features/features-02/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/features-02/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/features/features-02/data.ts",
          "type": "registry:component",
          "target": "components/blocks/features-02/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "features"
      ]
    },
    {
      "name": "features-03",
      "type": "registry:block",
      "title": "Feature list with a live preview",
      "description": "Four views in a list whose indicator travels to the picked one, beside a preview that resizes and crossfades to show it.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/features/features-03/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/features-03/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/features/features-03/feature-previews.tsx",
          "type": "registry:component",
          "target": "components/blocks/features-03/feature-previews.tsx"
        },
        {
          "path": "registry/ndeko/blocks/features/features-03/data.ts",
          "type": "registry:component",
          "target": "components/blocks/features-03/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "features"
      ]
    },
    {
      "name": "filters-01",
      "type": "registry:block",
      "title": "Amount filter over a histogram",
      "description": "A popover that draws how the invoices spread by amount, lights the bars inside the range as the handles move, glides them to a common range and counts the matches before the list applies them.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/filters/filters-01/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/filters-01/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/filters/filters-01/amount-filter.tsx",
          "type": "registry:component",
          "target": "components/blocks/filters-01/amount-filter.tsx"
        },
        {
          "path": "registry/ndeko/blocks/filters/filters-01/invoice-model.ts",
          "type": "registry:component",
          "target": "components/blocks/filters-01/invoice-model.ts"
        },
        {
          "path": "registry/ndeko/blocks/filters/filters-01/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/blocks/filters-01/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/blocks/filters/filters-01/data.ts",
          "type": "registry:component",
          "target": "components/blocks/filters-01/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "filters"
      ]
    },
    {
      "name": "footers-01",
      "type": "registry:block",
      "title": "Footer with categories and a newsletter",
      "description": "Four lists of links beside the brand and a newsletter field that checks the address, shows its submitting state and morphs into a confirmation.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/footers/footers-01/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/footers-01/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/footers/footers-01/newsletter-form.tsx",
          "type": "registry:component",
          "target": "components/blocks/footers-01/newsletter-form.tsx"
        },
        {
          "path": "registry/ndeko/blocks/footers/footers-01/brand-mark.tsx",
          "type": "registry:component",
          "target": "components/blocks/footers-01/brand-mark.tsx"
        },
        {
          "path": "registry/ndeko/blocks/footers/footers-01/data.ts",
          "type": "registry:component",
          "target": "components/blocks/footers-01/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "footers"
      ]
    },
    {
      "name": "footers-02",
      "type": "registry:block",
      "title": "Compact footer",
      "description": "The mark and the copyright, one row of links and the social links, centred and stacked on phones.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/footers/footers-02/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/footers-02/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/footers/footers-02/brand-mark.tsx",
          "type": "registry:component",
          "target": "components/blocks/footers-02/brand-mark.tsx"
        },
        {
          "path": "registry/ndeko/blocks/footers/footers-02/data.ts",
          "type": "registry:component",
          "target": "components/blocks/footers-02/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "footers"
      ]
    },
    {
      "name": "footers-03",
      "type": "registry:block",
      "title": "Footer with a wordmark",
      "description": "Three lists of links beside the brand and a contact address, a back to top button whose arrow travels on hover, and the product name set across the full width at the bottom.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/footers/footers-03/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/footers-03/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/footers/footers-03/back-to-top.tsx",
          "type": "registry:component",
          "target": "components/blocks/footers-03/back-to-top.tsx"
        },
        {
          "path": "registry/ndeko/blocks/footers/footers-03/brand-mark.tsx",
          "type": "registry:component",
          "target": "components/blocks/footers-03/brand-mark.tsx"
        },
        {
          "path": "registry/ndeko/blocks/footers/footers-03/data.ts",
          "type": "registry:component",
          "target": "components/blocks/footers-03/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "footers"
      ]
    },
    {
      "name": "footers-04",
      "type": "registry:block",
      "title": "Footer with a folding sitemap",
      "description": "Five link columns that fold into an accordion on phones, a support address with a copy button that confirms with a check, and a language select.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/footers/footers-04/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/footers-04/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/footers/footers-04/sitemap.tsx",
          "type": "registry:component",
          "target": "components/blocks/footers-04/sitemap.tsx"
        },
        {
          "path": "registry/ndeko/blocks/footers/footers-04/copy-email.tsx",
          "type": "registry:component",
          "target": "components/blocks/footers-04/copy-email.tsx"
        },
        {
          "path": "registry/ndeko/blocks/footers/footers-04/language-select.tsx",
          "type": "registry:component",
          "target": "components/blocks/footers-04/language-select.tsx"
        },
        {
          "path": "registry/ndeko/blocks/footers/footers-04/brand-mark.tsx",
          "type": "registry:component",
          "target": "components/blocks/footers-04/brand-mark.tsx"
        },
        {
          "path": "registry/ndeko/blocks/footers/footers-04/data.ts",
          "type": "registry:component",
          "target": "components/blocks/footers-04/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "footers"
      ]
    },
    {
      "name": "footers-05",
      "type": "registry:block",
      "title": "Footer with a closing call to action",
      "description": "A last headline with a primary action whose arrow travels on hover, then the brand, one row of links and a link to the status page.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/footers/footers-05/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/footers-05/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/footers/footers-05/brand-mark.tsx",
          "type": "registry:component",
          "target": "components/blocks/footers-05/brand-mark.tsx"
        },
        {
          "path": "registry/ndeko/blocks/footers/footers-05/data.ts",
          "type": "registry:component",
          "target": "components/blocks/footers-05/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "footers"
      ]
    },
    {
      "name": "headers-01",
      "type": "registry:block",
      "title": "Navbar with a sliding menu panel",
      "description": "A marketing navbar whose menu panel resizes and slides between Product, Solutions and Resources, with an expanding menu on phones.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/collapsible.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/navigation-menu.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/headers/headers-01/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/headers-01/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/headers/headers-01/desktop-nav.tsx",
          "type": "registry:component",
          "target": "components/blocks/headers-01/desktop-nav.tsx"
        },
        {
          "path": "registry/ndeko/blocks/headers/headers-01/mobile-menu.tsx",
          "type": "registry:component",
          "target": "components/blocks/headers-01/mobile-menu.tsx"
        },
        {
          "path": "registry/ndeko/blocks/headers/headers-01/brand-mark.tsx",
          "type": "registry:component",
          "target": "components/blocks/headers-01/brand-mark.tsx"
        },
        {
          "path": "registry/ndeko/blocks/headers/headers-01/data.ts",
          "type": "registry:component",
          "target": "components/blocks/headers-01/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "headers"
      ]
    },
    {
      "name": "headers-02",
      "type": "registry:block",
      "title": "Minimal floating navbar",
      "description": "A rounded bar with four links under a highlight that follows the pointer, and a sheet that holds the links on phones.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/selected-mark.json",
        "https://ui.ndekocode.dev/r/sheet.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/headers/headers-02/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/headers-02/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/headers/headers-02/nav-links.tsx",
          "type": "registry:component",
          "target": "components/blocks/headers-02/nav-links.tsx"
        },
        {
          "path": "registry/ndeko/blocks/headers/headers-02/mobile-sheet.tsx",
          "type": "registry:component",
          "target": "components/blocks/headers-02/mobile-sheet.tsx"
        },
        {
          "path": "registry/ndeko/blocks/headers/headers-02/brand-mark.tsx",
          "type": "registry:component",
          "target": "components/blocks/headers-02/brand-mark.tsx"
        },
        {
          "path": "registry/ndeko/blocks/headers/headers-02/data.ts",
          "type": "registry:component",
          "target": "components/blocks/headers-02/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "headers"
      ]
    },
    {
      "name": "heroes-01",
      "type": "registry:block",
      "title": "Split hero",
      "description": "The title on the left, a short paragraph and two actions on the right, under an announcement link.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/heroes/heroes-01/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/heroes-01/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/heroes/heroes-01/data.ts",
          "type": "registry:component",
          "target": "components/blocks/heroes-01/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "heroes"
      ]
    },
    {
      "name": "heroes-02",
      "type": "registry:block",
      "title": "Centered hero with a live board",
      "description": "A centred title above a planning board drawn from primitives, where one card keeps travelling across the lanes and a rule reacts when it lands in Done.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/heroes/heroes-02/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/heroes-02/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/heroes/heroes-02/board-stage.tsx",
          "type": "registry:component",
          "target": "components/blocks/heroes-02/board-stage.tsx"
        },
        {
          "path": "registry/ndeko/blocks/heroes/heroes-02/data.ts",
          "type": "registry:component",
          "target": "components/blocks/heroes-02/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "heroes"
      ]
    },
    {
      "name": "heroes-03",
      "type": "registry:block",
      "title": "Hero with an email capture",
      "description": "A waitlist field that checks the address, shows its submitting state and morphs into a confirmation.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/heroes/heroes-03/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/heroes-03/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/heroes/heroes-03/waitlist-form.tsx",
          "type": "registry:component",
          "target": "components/blocks/heroes-03/waitlist-form.tsx"
        },
        {
          "path": "registry/ndeko/blocks/heroes/heroes-03/issue-preview.tsx",
          "type": "registry:component",
          "target": "components/blocks/heroes-03/issue-preview.tsx"
        },
        {
          "path": "registry/ndeko/blocks/heroes/heroes-03/data.ts",
          "type": "registry:component",
          "target": "components/blocks/heroes-03/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "heroes"
      ]
    },
    {
      "name": "integrations-01",
      "type": "registry:block",
      "title": "Integrations directory",
      "description": "Real tools with their marks, by category and with a search, where Connect becomes Connecting then Connected in the same pill, an approval error folds in under its card, and the grid closes ranks as cards leave a view.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/brand-logos.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/integrations/integrations-01/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/integrations-01/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/integrations/integrations-01/integration-card.tsx",
          "type": "registry:component",
          "target": "components/blocks/integrations-01/integration-card.tsx"
        },
        {
          "path": "registry/ndeko/blocks/integrations/integrations-01/data.ts",
          "type": "registry:component",
          "target": "components/blocks/integrations-01/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "integrations"
      ]
    },
    {
      "name": "integrations-02",
      "type": "registry:block",
      "title": "Integrations marquee",
      "description": "Three rows of tool marks drifting at their own pace, the middle one the other way, under the product mark, with a heading, a line and one action.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/brand-logos.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/motion-infinite-slider.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/integrations/integrations-02/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/integrations-02/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/integrations/integrations-02/fernhollow-mark.tsx",
          "type": "registry:component",
          "target": "components/blocks/integrations-02/fernhollow-mark.tsx"
        },
        {
          "path": "registry/ndeko/blocks/integrations/integrations-02/data.ts",
          "type": "registry:component",
          "target": "components/blocks/integrations-02/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "integrations"
      ]
    },
    {
      "name": "integrations-03",
      "type": "registry:block",
      "title": "Integration areas",
      "description": "One card per area of tools with a short line, a tool count, a link and a cluster of round marks that float gently.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/brand-logos.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/integrations/integrations-03/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/integrations-03/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/integrations/integrations-03/constellation.tsx",
          "type": "registry:component",
          "target": "components/blocks/integrations-03/constellation.tsx"
        },
        {
          "path": "registry/ndeko/blocks/integrations/integrations-03/data.ts",
          "type": "registry:component",
          "target": "components/blocks/integrations-03/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "integrations"
      ]
    },
    {
      "name": "legal-01",
      "type": "registry:block",
      "title": "Policies with a section index",
      "description": "Terms, privacy and cookies in one page: a rail of documents whose highlight travels, each document crossfading in place with its reading time and a short summary, and an index whose marker follows the section being read.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/legal/legal-01/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/legal-01/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/legal/legal-01/section-index.tsx",
          "type": "registry:component",
          "target": "components/blocks/legal-01/section-index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/legal/legal-01/legal-model.ts",
          "type": "registry:component",
          "target": "components/blocks/legal-01/legal-model.ts"
        },
        {
          "path": "registry/ndeko/blocks/legal/legal-01/data.ts",
          "type": "registry:component",
          "target": "components/blocks/legal-01/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "legal"
      ]
    },
    {
      "name": "logo-clouds-01",
      "type": "registry:block",
      "title": "Marquee of placeholder marks",
      "description": "Neutral drawn marks with fictional names that scroll in a continuous loop, pause under the pointer and wrap into a still row when motion is reduced.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/logo-clouds/logo-clouds-01/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/logo-clouds-01/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/logo-clouds/logo-clouds-01/mark-shape.tsx",
          "type": "registry:component",
          "target": "components/blocks/logo-clouds-01/mark-shape.tsx"
        },
        {
          "path": "registry/ndeko/blocks/logo-clouds/logo-clouds-01/data.ts",
          "type": "registry:component",
          "target": "components/blocks/logo-clouds-01/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "logo-clouds"
      ]
    },
    {
      "name": "logo-clouds-02",
      "type": "registry:block",
      "title": "Static row of placeholder marks",
      "description": "A short line on the left and six drawn marks with fictional names in one row, two columns on phones.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/logo-clouds/logo-clouds-02/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/logo-clouds-02/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/logo-clouds/logo-clouds-02/mark-shape.tsx",
          "type": "registry:component",
          "target": "components/blocks/logo-clouds-02/mark-shape.tsx"
        },
        {
          "path": "registry/ndeko/blocks/logo-clouds/logo-clouds-02/data.ts",
          "type": "registry:component",
          "target": "components/blocks/logo-clouds-02/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "logo-clouds"
      ]
    },
    {
      "name": "notifications-01",
      "type": "registry:block",
      "title": "Inbox from a bell",
      "description": "A bell with a dot while something is unread, opening an inbox where each row leads with the task, then the event, with read and archive actions in the place of the age.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/notifications/notifications-01/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/notifications-01/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/notifications/notifications-01/inbox-row.tsx",
          "type": "registry:component",
          "target": "components/blocks/notifications-01/inbox-row.tsx"
        },
        {
          "path": "registry/ndeko/blocks/notifications/notifications-01/inbox-glyphs.tsx",
          "type": "registry:component",
          "target": "components/blocks/notifications-01/inbox-glyphs.tsx"
        },
        {
          "path": "registry/ndeko/blocks/notifications/notifications-01/data.ts",
          "type": "registry:component",
          "target": "components/blocks/notifications-01/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "notifications"
      ]
    },
    {
      "name": "notifications-02",
      "type": "registry:block",
      "title": "Toasts in context",
      "description": "Four small forms that each raise a toast through the Toaster of sonner.tsx: a success out of view, a failure with its reason and Retry, a loading toast that becomes its result, and an archive with Undo.",
      "dependencies": [
        "motion",
        "sonner"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/label.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/notifications/notifications-02/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/notifications-02/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/notifications/notifications-02/toast-tiles.tsx",
          "type": "registry:component",
          "target": "components/blocks/notifications-02/toast-tiles.tsx"
        },
        {
          "path": "registry/ndeko/blocks/notifications/notifications-02/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/blocks/notifications-02/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/blocks/notifications/notifications-02/data.ts",
          "type": "registry:component",
          "target": "components/blocks/notifications-02/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "notifications"
      ]
    },
    {
      "name": "notifications-03",
      "type": "registry:block",
      "title": "In-page notices",
      "description": "Notices in the flow of a page, each with a status orb, one line, an action that resolves it in place and a quiet link to the source it is about.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/notifications/notifications-03/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/notifications-03/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/notifications/notifications-03/notice.tsx",
          "type": "registry:component",
          "target": "components/blocks/notifications-03/notice.tsx"
        },
        {
          "path": "registry/ndeko/blocks/notifications/notifications-03/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/blocks/notifications-03/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/blocks/notifications/notifications-03/data.ts",
          "type": "registry:component",
          "target": "components/blocks/notifications-03/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "notifications"
      ]
    },
    {
      "name": "notifications-04",
      "type": "registry:block",
      "title": "Inbox with a reading pane",
      "description": "Notifications grouped by day beside the one selected: read, archive with Undo, filter by unread or mentions, and reply in place.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/notifications/notifications-04/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/notifications-04/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/notifications/notifications-04/inbox-list.tsx",
          "type": "registry:component",
          "target": "components/blocks/notifications-04/inbox-list.tsx"
        },
        {
          "path": "registry/ndeko/blocks/notifications/notifications-04/notification-detail.tsx",
          "type": "registry:component",
          "target": "components/blocks/notifications-04/notification-detail.tsx"
        },
        {
          "path": "registry/ndeko/blocks/notifications/notifications-04/glyphs.tsx",
          "type": "registry:component",
          "target": "components/blocks/notifications-04/glyphs.tsx"
        },
        {
          "path": "registry/ndeko/blocks/notifications/notifications-04/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/blocks/notifications-04/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/blocks/notifications/notifications-04/data.ts",
          "type": "registry:component",
          "target": "components/blocks/notifications-04/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "notifications"
      ]
    },
    {
      "name": "pricing-01",
      "type": "registry:block",
      "title": "Two plans with a billing switch",
      "description": "A monthly and yearly segmented switch whose thumb travels while the digits of both prices roll to their new value, over two plans with example prices.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/motion-word-roll.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/pricing/pricing-01/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/pricing-01/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/pricing/pricing-01/data.ts",
          "type": "registry:component",
          "target": "components/blocks/pricing-01/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "pricing"
      ]
    },
    {
      "name": "pricing-02",
      "type": "registry:block",
      "title": "One plan with a feature table",
      "description": "A per-seat plan whose seat count and monthly total roll to their new value when changed, beside a grouped table of everything it includes.",
      "dependencies": [],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/motion-word-roll.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/pricing/pricing-02/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/pricing-02/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/pricing/pricing-02/feature-table.tsx",
          "type": "registry:component",
          "target": "components/blocks/pricing-02/feature-table.tsx"
        },
        {
          "path": "registry/ndeko/blocks/pricing/pricing-02/data.ts",
          "type": "registry:component",
          "target": "components/blocks/pricing-02/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "pricing"
      ]
    },
    {
      "name": "settings-01",
      "type": "registry:block",
      "title": "Profile form",
      "description": "A profile in three sections with a travelling highlight, a photo picked in the browser, errors that fold in and out, and an unsaved-changes bar whose Save becomes Saving then Saved.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/motion-word-roll.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/settings/settings-01/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/settings-01/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/settings/settings-01/profile-fields.tsx",
          "type": "registry:component",
          "target": "components/blocks/settings-01/profile-fields.tsx"
        },
        {
          "path": "registry/ndeko/blocks/settings/settings-01/settings-kit.tsx",
          "type": "registry:component",
          "target": "components/blocks/settings-01/settings-kit.tsx"
        },
        {
          "path": "registry/ndeko/blocks/settings/settings-01/validation.ts",
          "type": "registry:component",
          "target": "components/blocks/settings-01/validation.ts"
        },
        {
          "path": "registry/ndeko/blocks/settings/settings-01/data.ts",
          "type": "registry:component",
          "target": "components/blocks/settings-01/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "settings"
      ]
    },
    {
      "name": "settings-02",
      "type": "registry:block",
      "title": "Notifications by channel",
      "description": "Email, push and desktop as sections, each led by its channel switch that folds its events away, with a digest choice, quiet hours and the same unsaved-changes bar.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/motion-word-roll.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/settings/settings-02/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/settings-02/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/settings/settings-02/channel-sections.tsx",
          "type": "registry:component",
          "target": "components/blocks/settings-02/channel-sections.tsx"
        },
        {
          "path": "registry/ndeko/blocks/settings/settings-02/settings-kit.tsx",
          "type": "registry:component",
          "target": "components/blocks/settings-02/settings-kit.tsx"
        },
        {
          "path": "registry/ndeko/blocks/settings/settings-02/data.ts",
          "type": "registry:component",
          "target": "components/blocks/settings-02/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "settings"
      ]
    },
    {
      "name": "settings-03",
      "type": "registry:block",
      "title": "Workspace settings",
      "description": "Name and address, the default role for new members read against who holds each role, and a danger zone where archiving takes a two-second hold and deleting takes the typed name.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/alert-dialog.json",
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/motion-word-roll.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/settings/settings-03/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/settings-03/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/settings/settings-03/danger-zone.tsx",
          "type": "registry:component",
          "target": "components/blocks/settings-03/danger-zone.tsx"
        },
        {
          "path": "registry/ndeko/blocks/settings/settings-03/role-choice.tsx",
          "type": "registry:component",
          "target": "components/blocks/settings-03/role-choice.tsx"
        },
        {
          "path": "registry/ndeko/blocks/settings/settings-03/settings-kit.tsx",
          "type": "registry:component",
          "target": "components/blocks/settings-03/settings-kit.tsx"
        },
        {
          "path": "registry/ndeko/blocks/settings/settings-03/data.ts",
          "type": "registry:component",
          "target": "components/blocks/settings-03/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "settings"
      ]
    },
    {
      "name": "task-detail-01",
      "type": "registry:block",
      "title": "Task drawer",
      "description": "A task opened in a sheet docked beside the page, with arrows that walk the list, properties to pick in place, child issues, a filtered feed and a comment field pinned at the foot.",
      "dependencies": [
        "date-fns",
        "motion",
        "sonner"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/sheet.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-01/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-01/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-01/drawer-bar.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-01/drawer-bar.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-01/task-band.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-01/task-band.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-01/property-rows.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-01/property-rows.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-01/description-block.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-01/description-block.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-01/child-issues.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-01/child-issues.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-01/task-feed.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-01/task-feed.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-01/comment-composer.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-01/comment-composer.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-01/task-glyphs.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-01/task-glyphs.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-01/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-01/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-01/use-copied.ts",
          "type": "registry:component",
          "target": "components/blocks/task-detail-01/use-copied.ts"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-01/task-edits.ts",
          "type": "registry:component",
          "target": "components/blocks/task-detail-01/task-edits.ts"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-01/detail-model.ts",
          "type": "registry:component",
          "target": "components/blocks/task-detail-01/detail-model.ts"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-01/data.ts",
          "type": "registry:component",
          "target": "components/blocks/task-detail-01/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "task-detail"
      ]
    },
    {
      "name": "task-detail-02",
      "type": "registry:block",
      "title": "Task page with a property rail",
      "description": "The same task as a page: a reading column beside a rail of folding sections for properties, time and details, which joins the column on narrow screens.",
      "dependencies": [
        "date-fns",
        "motion",
        "sonner"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-02/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-02/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-02/page-band.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-02/page-band.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-02/rail-section.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-02/rail-section.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-02/time-summary.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-02/time-summary.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-02/property-rows.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-02/property-rows.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-02/description-block.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-02/description-block.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-02/child-issues.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-02/child-issues.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-02/task-feed.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-02/task-feed.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-02/comment-composer.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-02/comment-composer.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-02/task-glyphs.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-02/task-glyphs.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-02/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-02/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-02/use-copied.ts",
          "type": "registry:component",
          "target": "components/blocks/task-detail-02/use-copied.ts"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-02/task-edits.ts",
          "type": "registry:component",
          "target": "components/blocks/task-detail-02/task-edits.ts"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-02/detail-model.ts",
          "type": "registry:component",
          "target": "components/blocks/task-detail-02/detail-model.ts"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-02/data.ts",
          "type": "registry:component",
          "target": "components/blocks/task-detail-02/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "task-detail"
      ]
    },
    {
      "name": "task-detail-03",
      "type": "registry:block",
      "title": "Task with work tabs",
      "description": "A task page whose sub-tasks, comments and activity share one card behind a segmented switch, each count rolling as you check, add and comment",
      "dependencies": [
        "date-fns",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-03/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-03/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-03/subtask-panel.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-03/subtask-panel.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-03/comment-panel.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-03/comment-panel.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-03/activity-panel.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-03/activity-panel.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-03/comment-composer.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-03/comment-composer.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-03/work-glyphs.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-03/work-glyphs.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-03/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-03/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-03/work-model.ts",
          "type": "registry:component",
          "target": "components/blocks/task-detail-03/work-model.ts"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-03/data.ts",
          "type": "registry:component",
          "target": "components/blocks/task-detail-03/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "task-detail"
      ]
    },
    {
      "name": "task-detail-04",
      "type": "registry:block",
      "title": "Task with a conversation pane",
      "description": "The task beside a pinned conversation where comments and changes interleave, a teammate types an answer and the panes become a switch on phones",
      "dependencies": [
        "date-fns",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/motion-word-roll.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-04/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-04/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-04/conversation-pane.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-04/conversation-pane.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-04/subtask-panel.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-04/subtask-panel.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-04/comment-composer.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-04/comment-composer.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-04/work-glyphs.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-04/work-glyphs.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-04/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-detail-04/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-04/work-model.ts",
          "type": "registry:component",
          "target": "components/blocks/task-detail-04/work-model.ts"
        },
        {
          "path": "registry/ndeko/blocks/task-detail/task-detail-04/data.ts",
          "type": "registry:component",
          "target": "components/blocks/task-detail-04/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "task-detail"
      ]
    },
    {
      "name": "task-lists-01",
      "type": "registry:block",
      "title": "Grouped task list",
      "description": "Tasks grouped by status under sticky bands, on one grid shared with the column labels, with a scope switch, a search field on the slash key and a filter menu.",
      "dependencies": [
        "date-fns",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-01/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-lists-01/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-01/column-labels.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-lists-01/column-labels.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-01/draft-row.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-lists-01/draft-row.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-01/empty-list.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-lists-01/empty-list.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-01/filter-menu.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-lists-01/filter-menu.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-01/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-lists-01/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-01/property-menus.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-lists-01/property-menus.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-01/scope-switch.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-lists-01/scope-switch.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-01/search-field.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-lists-01/search-field.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-01/task-glyphs.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-lists-01/task-glyphs.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-01/task-grid.ts",
          "type": "registry:component",
          "target": "components/blocks/task-lists-01/task-grid.ts"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-01/task-group.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-lists-01/task-group.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-01/task-model.ts",
          "type": "registry:component",
          "target": "components/blocks/task-lists-01/task-model.ts"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-01/task-row.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-lists-01/task-row.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-01/use-delayed-placement.ts",
          "type": "registry:component",
          "target": "components/blocks/task-lists-01/use-delayed-placement.ts"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-01/data.ts",
          "type": "registry:component",
          "target": "components/blocks/task-lists-01/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "task-lists"
      ]
    },
    {
      "name": "task-lists-02",
      "type": "registry:block",
      "title": "Task list with bulk edits",
      "description": "The grouped task list with row selection, shift-click ranges and a floating bar that changes the status, priority or assignees of every selected task.",
      "dependencies": [
        "date-fns",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/checkbox.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-02/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-lists-02/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-02/selection-bar.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-lists-02/selection-bar.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-02/column-labels.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-lists-02/column-labels.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-02/draft-row.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-lists-02/draft-row.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-02/empty-list.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-lists-02/empty-list.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-02/filter-menu.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-lists-02/filter-menu.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-02/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-lists-02/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-02/property-menus.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-lists-02/property-menus.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-02/scope-switch.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-lists-02/scope-switch.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-02/search-field.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-lists-02/search-field.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-02/task-glyphs.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-lists-02/task-glyphs.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-02/task-grid.ts",
          "type": "registry:component",
          "target": "components/blocks/task-lists-02/task-grid.ts"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-02/task-group.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-lists-02/task-group.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-02/task-model.ts",
          "type": "registry:component",
          "target": "components/blocks/task-lists-02/task-model.ts"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-02/task-row.tsx",
          "type": "registry:component",
          "target": "components/blocks/task-lists-02/task-row.tsx"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-02/use-delayed-placement.ts",
          "type": "registry:component",
          "target": "components/blocks/task-lists-02/use-delayed-placement.ts"
        },
        {
          "path": "registry/ndeko/blocks/task-lists/task-lists-02/data.ts",
          "type": "registry:component",
          "target": "components/blocks/task-lists-02/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "task-lists"
      ]
    },
    {
      "name": "team-01",
      "type": "registry:block",
      "title": "Member cards on one grid",
      "description": "The column labels and every member card share one grid: presence, current task with its status, time today, estimate and a total that opens the day.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/team/team-01/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/team-01/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/team/team-01/member-card.tsx",
          "type": "registry:component",
          "target": "components/blocks/team-01/member-card.tsx"
        },
        {
          "path": "registry/ndeko/blocks/team/team-01/member-parts.tsx",
          "type": "registry:component",
          "target": "components/blocks/team-01/member-parts.tsx"
        },
        {
          "path": "registry/ndeko/blocks/team/team-01/estimate-field.tsx",
          "type": "registry:component",
          "target": "components/blocks/team-01/estimate-field.tsx"
        },
        {
          "path": "registry/ndeko/blocks/team/team-01/invitation-row.tsx",
          "type": "registry:component",
          "target": "components/blocks/team-01/invitation-row.tsx"
        },
        {
          "path": "registry/ndeko/blocks/team/team-01/invite-popover.tsx",
          "type": "registry:component",
          "target": "components/blocks/team-01/invite-popover.tsx"
        },
        {
          "path": "registry/ndeko/blocks/team/team-01/data.ts",
          "type": "registry:component",
          "target": "components/blocks/team-01/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "team"
      ]
    },
    {
      "name": "team-02",
      "type": "registry:block",
      "title": "Member table",
      "description": "The same members and columns as one table surface, sortable by name and by time, with pending invitations at the end.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/team/team-02/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/team-02/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/team/team-02/member-row.tsx",
          "type": "registry:component",
          "target": "components/blocks/team-02/member-row.tsx"
        },
        {
          "path": "registry/ndeko/blocks/team/team-02/member-parts.tsx",
          "type": "registry:component",
          "target": "components/blocks/team-02/member-parts.tsx"
        },
        {
          "path": "registry/ndeko/blocks/team/team-02/estimate-field.tsx",
          "type": "registry:component",
          "target": "components/blocks/team-02/estimate-field.tsx"
        },
        {
          "path": "registry/ndeko/blocks/team/team-02/invitation-row.tsx",
          "type": "registry:component",
          "target": "components/blocks/team-02/invitation-row.tsx"
        },
        {
          "path": "registry/ndeko/blocks/team/team-02/invite-popover.tsx",
          "type": "registry:component",
          "target": "components/blocks/team-02/invite-popover.tsx"
        },
        {
          "path": "registry/ndeko/blocks/team/team-02/data.ts",
          "type": "registry:component",
          "target": "components/blocks/team-02/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "team"
      ]
    },
    {
      "name": "team-03",
      "type": "registry:block",
      "title": "Invite flow",
      "description": "A sheet with Invite and Invited tabs that turns addresses into chips, beside the list of pending invitations it keeps up to date.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/sheet.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/team/team-03/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/team-03/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/team/team-03/invite-sheet.tsx",
          "type": "registry:component",
          "target": "components/blocks/team-03/invite-sheet.tsx"
        },
        {
          "path": "registry/ndeko/blocks/team/team-03/email-chips-field.tsx",
          "type": "registry:component",
          "target": "components/blocks/team-03/email-chips-field.tsx"
        },
        {
          "path": "registry/ndeko/blocks/team/team-03/invitation-list.tsx",
          "type": "registry:component",
          "target": "components/blocks/team-03/invitation-list.tsx"
        },
        {
          "path": "registry/ndeko/blocks/team/team-03/data.ts",
          "type": "registry:component",
          "target": "components/blocks/team-03/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "team"
      ]
    },
    {
      "name": "team-04",
      "type": "registry:block",
      "title": "Team overview",
      "description": "A team page with its figures for this week or last, the members with their current task and hours, and the activity of the person picked.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/toggle-group.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/blocks/team/team-04/index.tsx",
          "type": "registry:component",
          "target": "components/blocks/team-04/index.tsx"
        },
        {
          "path": "registry/ndeko/blocks/team/team-04/member-list.tsx",
          "type": "registry:component",
          "target": "components/blocks/team-04/member-list.tsx"
        },
        {
          "path": "registry/ndeko/blocks/team/team-04/activity-feed.tsx",
          "type": "registry:component",
          "target": "components/blocks/team-04/activity-feed.tsx"
        },
        {
          "path": "registry/ndeko/blocks/team/team-04/parts.tsx",
          "type": "registry:component",
          "target": "components/blocks/team-04/parts.tsx"
        },
        {
          "path": "registry/ndeko/blocks/team/team-04/data.ts",
          "type": "registry:component",
          "target": "components/blocks/team-04/data.ts"
        }
      ],
      "categories": [
        "blocks",
        "team"
      ]
    },
    {
      "name": "application-01",
      "type": "registry:block",
      "title": "Team workspace",
      "description": "A Mossline workspace: a sidebar that hides and goes into a sheet on phones, My tasks grouped by status whose rows open a task drawer, an inbox behind the bell and as a page, a board whose moves change the same tasks, and the team with time today.",
      "dependencies": [
        "@dnd-kit/core",
        "@dnd-kit/sortable",
        "@dnd-kit/utilities",
        "date-fns",
        "motion",
        "sonner"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/breadcrumb.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/command.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/popover.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/sheet.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/templates/application/application-01/index.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/index.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/app-sidebar.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/app-sidebar.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/sidebar-parts.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/sidebar-parts.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/workspace-switcher.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/workspace-switcher.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/search-palette.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/search-palette.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/quick-create-menu.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/quick-create-menu.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/account-menu.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/account-menu.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/top-bar.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/top-bar.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/task-list-page.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/task-list-page.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/column-labels.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/column-labels.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/draft-row.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/draft-row.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/empty-list.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/empty-list.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/filter-menu.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/filter-menu.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/property-menus.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/property-menus.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/scope-switch.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/scope-switch.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/search-field.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/search-field.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/task-group.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/task-group.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/task-row.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/task-row.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/task-grid.ts",
          "type": "registry:component",
          "target": "components/templates/application-01/task-grid.ts"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/use-delayed-placement.ts",
          "type": "registry:component",
          "target": "components/templates/application-01/use-delayed-placement.ts"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/task-drawer.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/task-drawer.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/drawer-bar.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/drawer-bar.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/task-band.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/task-band.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/property-rows.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/property-rows.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/description-block.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/description-block.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/child-issues.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/child-issues.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/task-feed.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/task-feed.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/comment-composer.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/comment-composer.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/use-copied.ts",
          "type": "registry:component",
          "target": "components/templates/application-01/use-copied.ts"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/task-edits.ts",
          "type": "registry:component",
          "target": "components/templates/application-01/task-edits.ts"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/detail-model.ts",
          "type": "registry:component",
          "target": "components/templates/application-01/detail-model.ts"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/task-model.ts",
          "type": "registry:component",
          "target": "components/templates/application-01/task-model.ts"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/task-glyphs.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/task-glyphs.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/motion-parts.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/motion-parts.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/inbox-popover.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/inbox-popover.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/inbox-page.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/inbox-page.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/inbox-list.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/inbox-list.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/inbox-row.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/inbox-row.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/inbox-glyphs.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/inbox-glyphs.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/board-page.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/board-page.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/board-lane.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/board-lane.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/card-parts.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/card-parts.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/drag-overlay-card.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/drag-overlay-card.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/board-moves.ts",
          "type": "registry:component",
          "target": "components/templates/application-01/board-moves.ts"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/board-model.ts",
          "type": "registry:component",
          "target": "components/templates/application-01/board-model.ts"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/team-page.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/team-page.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/use-team.ts",
          "type": "registry:component",
          "target": "components/templates/application-01/use-team.ts"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/member-card.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/member-card.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/member-parts.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/member-parts.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/estimate-field.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/estimate-field.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/invitation-row.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/invitation-row.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/invite-popover.tsx",
          "type": "registry:component",
          "target": "components/templates/application-01/invite-popover.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-01/data.ts",
          "type": "registry:component",
          "target": "components/templates/application-01/data.ts"
        }
      ],
      "categories": [
        "templates",
        "application"
      ]
    },
    {
      "name": "application-02",
      "type": "registry:block",
      "title": "Analytics",
      "description": "Tidewell Studio reports in the sidebar shell: an overview whose figures pick what the chart draws, a weekly report with day bars and ranked projects, and project health against the sprint goal, each with a CSV export.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/breadcrumb.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/command.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/sheet.json",
        "https://ui.ndekocode.dev/r/skeleton.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/templates/application/application-02/index.tsx",
          "type": "registry:component",
          "target": "components/templates/application-02/index.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-02/app-sidebar.tsx",
          "type": "registry:component",
          "target": "components/templates/application-02/app-sidebar.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-02/sidebar-parts.tsx",
          "type": "registry:component",
          "target": "components/templates/application-02/sidebar-parts.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-02/workspace-switcher.tsx",
          "type": "registry:component",
          "target": "components/templates/application-02/workspace-switcher.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-02/search-palette.tsx",
          "type": "registry:component",
          "target": "components/templates/application-02/search-palette.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-02/account-menu.tsx",
          "type": "registry:component",
          "target": "components/templates/application-02/account-menu.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-02/top-bar.tsx",
          "type": "registry:component",
          "target": "components/templates/application-02/top-bar.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-02/overview-page.tsx",
          "type": "registry:component",
          "target": "components/templates/application-02/overview-page.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-02/metric-strip.tsx",
          "type": "registry:component",
          "target": "components/templates/application-02/metric-strip.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-02/trend-chart.tsx",
          "type": "registry:component",
          "target": "components/templates/application-02/trend-chart.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-02/chart-kit.tsx",
          "type": "registry:component",
          "target": "components/templates/application-02/chart-kit.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-02/overview-figures.ts",
          "type": "registry:component",
          "target": "components/templates/application-02/overview-figures.ts"
        },
        {
          "path": "registry/ndeko/templates/application/application-02/weekly-report-page.tsx",
          "type": "registry:component",
          "target": "components/templates/application-02/weekly-report-page.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-02/day-bars.tsx",
          "type": "registry:component",
          "target": "components/templates/application-02/day-bars.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-02/project-ranking.tsx",
          "type": "registry:component",
          "target": "components/templates/application-02/project-ranking.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-02/duration-figure.tsx",
          "type": "registry:component",
          "target": "components/templates/application-02/duration-figure.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-02/weekly-figures.ts",
          "type": "registry:component",
          "target": "components/templates/application-02/weekly-figures.ts"
        },
        {
          "path": "registry/ndeko/templates/application/application-02/project-health-page.tsx",
          "type": "registry:component",
          "target": "components/templates/application-02/project-health-page.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-02/goal-card.tsx",
          "type": "registry:component",
          "target": "components/templates/application-02/goal-card.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-02/workstream-table.tsx",
          "type": "registry:component",
          "target": "components/templates/application-02/workstream-table.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-02/health-figures.ts",
          "type": "registry:component",
          "target": "components/templates/application-02/health-figures.ts"
        },
        {
          "path": "registry/ndeko/templates/application/application-02/report-frame.tsx",
          "type": "registry:component",
          "target": "components/templates/application-02/report-frame.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-02/data.ts",
          "type": "registry:component",
          "target": "components/templates/application-02/data.ts"
        }
      ],
      "categories": [
        "templates",
        "application"
      ]
    },
    {
      "name": "application-03",
      "type": "registry:block",
      "title": "Settings",
      "description": "Lattice Studio settings: a settings rail with a way back to the app, a profile, notifications by channel and the workspace page, each saving through one unsaved-changes bar, with saved names showing in the sidebar at once.",
      "dependencies": [
        "@base-ui/react",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/alert-dialog.json",
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/breadcrumb.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/command.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/radio-group.json",
        "https://ui.ndekocode.dev/r/recipes.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/sheet.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/templates/application/application-03/index.tsx",
          "type": "registry:component",
          "target": "components/templates/application-03/index.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-03/app-sidebar.tsx",
          "type": "registry:component",
          "target": "components/templates/application-03/app-sidebar.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-03/sidebar-parts.tsx",
          "type": "registry:component",
          "target": "components/templates/application-03/sidebar-parts.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-03/workspace-switcher.tsx",
          "type": "registry:component",
          "target": "components/templates/application-03/workspace-switcher.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-03/search-palette.tsx",
          "type": "registry:component",
          "target": "components/templates/application-03/search-palette.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-03/account-menu.tsx",
          "type": "registry:component",
          "target": "components/templates/application-03/account-menu.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-03/top-bar.tsx",
          "type": "registry:component",
          "target": "components/templates/application-03/top-bar.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-03/profile-page.tsx",
          "type": "registry:component",
          "target": "components/templates/application-03/profile-page.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-03/profile-fields.tsx",
          "type": "registry:component",
          "target": "components/templates/application-03/profile-fields.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-03/validation.ts",
          "type": "registry:component",
          "target": "components/templates/application-03/validation.ts"
        },
        {
          "path": "registry/ndeko/templates/application/application-03/notifications-page.tsx",
          "type": "registry:component",
          "target": "components/templates/application-03/notifications-page.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-03/channel-sections.tsx",
          "type": "registry:component",
          "target": "components/templates/application-03/channel-sections.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-03/workspace-page.tsx",
          "type": "registry:component",
          "target": "components/templates/application-03/workspace-page.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-03/role-choice.tsx",
          "type": "registry:component",
          "target": "components/templates/application-03/role-choice.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-03/danger-zone.tsx",
          "type": "registry:component",
          "target": "components/templates/application-03/danger-zone.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-03/settings-kit.tsx",
          "type": "registry:component",
          "target": "components/templates/application-03/settings-kit.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-03/data.ts",
          "type": "registry:component",
          "target": "components/templates/application-03/data.ts"
        }
      ],
      "categories": [
        "templates",
        "application"
      ]
    },
    {
      "name": "application-04",
      "type": "registry:block",
      "title": "Sign in",
      "description": "A focused Loomboard page: sign in with a one-time code, with links to create an account and to reset a password, all in one card that resizes from one flow to the next.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/otp-field.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/templates/application/application-04/index.tsx",
          "type": "registry:component",
          "target": "components/templates/application-04/index.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-04/auth-kit.tsx",
          "type": "registry:component",
          "target": "components/templates/application-04/auth-kit.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-04/brand-mark.tsx",
          "type": "registry:component",
          "target": "components/templates/application-04/brand-mark.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-04/sign-in-flow.tsx",
          "type": "registry:component",
          "target": "components/templates/application-04/sign-in-flow.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-04/sign-up-flow.tsx",
          "type": "registry:component",
          "target": "components/templates/application-04/sign-up-flow.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-04/reset-flow.tsx",
          "type": "registry:component",
          "target": "components/templates/application-04/reset-flow.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-04/password-parts.tsx",
          "type": "registry:component",
          "target": "components/templates/application-04/password-parts.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-04/email-check.ts",
          "type": "registry:component",
          "target": "components/templates/application-04/email-check.ts"
        },
        {
          "path": "registry/ndeko/templates/application/application-04/data.ts",
          "type": "registry:component",
          "target": "components/templates/application-04/data.ts"
        }
      ],
      "categories": [
        "templates",
        "application"
      ]
    },
    {
      "name": "application-05",
      "type": "registry:block",
      "title": "Assistant",
      "description": "A Quillstone assistant: conversations on the left that go into a sheet on phones, a reply that streams in while Send becomes Stop, a composer that takes files and a model, a reply that folds its reasoning and runs two tool calls, and a new chat that starts from suggested prompts.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chat-container.json",
        "https://ui.ndekocode.dev/r/chat-file-upload.json",
        "https://ui.ndekocode.dev/r/chat-loader.json",
        "https://ui.ndekocode.dev/r/chat-message.json",
        "https://ui.ndekocode.dev/r/chat-motion.json",
        "https://ui.ndekocode.dev/r/chat-prompt-input.json",
        "https://ui.ndekocode.dev/r/chat-prompt-suggestion.json",
        "https://ui.ndekocode.dev/r/chat-reasoning.json",
        "https://ui.ndekocode.dev/r/chat-response-stream.json",
        "https://ui.ndekocode.dev/r/chat-scroll-button.json",
        "https://ui.ndekocode.dev/r/chat-source.json",
        "https://ui.ndekocode.dev/r/chat-tool.json",
        "https://ui.ndekocode.dev/r/dropdown-menu.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/sheet.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/templates/application/application-05/index.tsx",
          "type": "registry:component",
          "target": "components/templates/application-05/index.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-05/conversation-list.tsx",
          "type": "registry:component",
          "target": "components/templates/application-05/conversation-list.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-05/sidebar-parts.tsx",
          "type": "registry:component",
          "target": "components/templates/application-05/sidebar-parts.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-05/account-menu.tsx",
          "type": "registry:component",
          "target": "components/templates/application-05/account-menu.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-05/conversation-view.tsx",
          "type": "registry:component",
          "target": "components/templates/application-05/conversation-view.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-05/turns.tsx",
          "type": "registry:component",
          "target": "components/templates/application-05/turns.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-05/reply-actions.tsx",
          "type": "registry:component",
          "target": "components/templates/application-05/reply-actions.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-05/use-copied.ts",
          "type": "registry:component",
          "target": "components/templates/application-05/use-copied.ts"
        },
        {
          "path": "registry/ndeko/templates/application/application-05/reasoning-reply.tsx",
          "type": "registry:component",
          "target": "components/templates/application-05/reasoning-reply.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-05/reply-sources.tsx",
          "type": "registry:component",
          "target": "components/templates/application-05/reply-sources.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-05/composer.tsx",
          "type": "registry:component",
          "target": "components/templates/application-05/composer.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-05/attachment-list.tsx",
          "type": "registry:component",
          "target": "components/templates/application-05/attachment-list.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-05/model-picker.tsx",
          "type": "registry:component",
          "target": "components/templates/application-05/model-picker.tsx"
        },
        {
          "path": "registry/ndeko/templates/application/application-05/presence.ts",
          "type": "registry:component",
          "target": "components/templates/application-05/presence.ts"
        },
        {
          "path": "registry/ndeko/templates/application/application-05/data.ts",
          "type": "registry:component",
          "target": "components/templates/application-05/data.ts"
        }
      ],
      "categories": [
        "templates",
        "application"
      ]
    },
    {
      "name": "marketing-01",
      "type": "registry:block",
      "title": "Planning board landing page",
      "description": "A Loomboard home page: a navbar with sliding menu panels, a hero with a working board whose cards drag between lanes by pointer or keyboard, a marquee of placeholder marks, four views beside a live preview, a call to action and a footer with a newsletter field.",
      "dependencies": [
        "@base-ui/react",
        "@dnd-kit/core",
        "@dnd-kit/sortable",
        "@dnd-kit/utilities",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/collapsible.json",
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/kbd.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/navigation-menu.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/switch.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/templates/marketing/marketing-01/index.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-01/index.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-01/site-header.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-01/site-header.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-01/desktop-nav.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-01/desktop-nav.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-01/mobile-menu.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-01/mobile-menu.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-01/section-link.ts",
          "type": "registry:component",
          "target": "components/templates/marketing-01/section-link.ts"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-01/brand-mark.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-01/brand-mark.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-01/hero.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-01/hero.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-01/board-stage.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-01/board-stage.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-01/board-lane.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-01/board-lane.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-01/board-card.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-01/board-card.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-01/board-moves.ts",
          "type": "registry:component",
          "target": "components/templates/marketing-01/board-moves.ts"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-01/logo-cloud.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-01/logo-cloud.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-01/mark-shape.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-01/mark-shape.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-01/features.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-01/features.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-01/feature-previews.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-01/feature-previews.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-01/call-to-action.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-01/call-to-action.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-01/site-footer.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-01/site-footer.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-01/newsletter-form.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-01/newsletter-form.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-01/data.ts",
          "type": "registry:component",
          "target": "components/templates/marketing-01/data.ts"
        }
      ],
      "categories": [
        "templates",
        "marketing"
      ]
    },
    {
      "name": "marketing-02",
      "type": "registry:block",
      "title": "Newsletter landing page",
      "description": "A Fernpost home page: a floating navbar, a waitlist hero that morphs into its confirmation, alternating feature rows, two plans with a Monthly and Yearly switch, questions on one card, an SDK install card and a compact footer.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/badge.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/motion-word-roll.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/selected-mark.json",
        "https://ui.ndekocode.dev/r/sheet.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/tabs.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/tooltip.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/templates/marketing/marketing-02/index.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-02/index.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-02/site-header.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-02/site-header.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-02/nav-links.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-02/nav-links.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-02/mobile-sheet.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-02/mobile-sheet.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-02/section-link.ts",
          "type": "registry:component",
          "target": "components/templates/marketing-02/section-link.ts"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-02/brand-mark.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-02/brand-mark.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-02/hero.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-02/hero.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-02/waitlist-form.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-02/waitlist-form.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-02/issue-preview.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-02/issue-preview.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-02/features.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-02/features.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-02/feature-media.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-02/feature-media.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-02/pricing.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-02/pricing.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-02/faq.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-02/faq.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-02/sdk-card.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-02/sdk-card.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-02/command-row.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-02/command-row.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-02/site-footer.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-02/site-footer.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-02/data.ts",
          "type": "registry:component",
          "target": "components/templates/marketing-02/data.ts"
        }
      ],
      "categories": [
        "templates",
        "marketing"
      ]
    },
    {
      "name": "marketing-03",
      "type": "registry:block",
      "title": "Per-seat pricing page",
      "description": "A Tallyfold pricing page: one plan whose seat count and monthly total roll to their new value when changed, a grouped table of what it includes, questions on one card and a compact footer.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/avatar.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/motion-number.json",
        "https://ui.ndekocode.dev/r/motion-word-roll.json",
        "https://ui.ndekocode.dev/r/sample-avatars.json",
        "https://ui.ndekocode.dev/r/selected-mark.json",
        "https://ui.ndekocode.dev/r/sheet.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/templates/marketing/marketing-03/index.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-03/index.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-03/site-header.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-03/site-header.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-03/nav-links.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-03/nav-links.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-03/mobile-sheet.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-03/mobile-sheet.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-03/section-link.ts",
          "type": "registry:component",
          "target": "components/templates/marketing-03/section-link.ts"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-03/brand-mark.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-03/brand-mark.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-03/pricing.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-03/pricing.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-03/feature-table.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-03/feature-table.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-03/faq.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-03/faq.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-03/site-footer.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-03/site-footer.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-03/data.ts",
          "type": "registry:component",
          "target": "components/templates/marketing-03/data.ts"
        }
      ],
      "categories": [
        "templates",
        "marketing"
      ]
    },
    {
      "name": "marketing-04",
      "type": "registry:block",
      "title": "Changelog page",
      "description": "A Loomboard changelog: the navbar with Changelog marked, dated releases with their kind of change and a Load more that adds the next ones, and a footer with a newsletter field.",
      "dependencies": [
        "date-fns",
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/chip.json",
        "https://ui.ndekocode.dev/r/collapsible.json",
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/navigation-menu.json",
        "https://ui.ndekocode.dev/r/selected-mark.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/templates/marketing/marketing-04/index.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-04/index.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-04/site-header.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-04/site-header.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-04/desktop-nav.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-04/desktop-nav.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-04/mobile-menu.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-04/mobile-menu.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-04/brand-mark.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-04/brand-mark.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-04/changelog.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-04/changelog.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-04/release-entry.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-04/release-entry.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-04/site-footer.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-04/site-footer.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-04/newsletter-form.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-04/newsletter-form.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-04/data.ts",
          "type": "registry:component",
          "target": "components/templates/marketing-04/data.ts"
        }
      ],
      "categories": [
        "templates",
        "marketing"
      ]
    },
    {
      "name": "marketing-05",
      "type": "registry:block",
      "title": "Contact page",
      "description": "A Driftdesk contact page: contact details beside a form that checks each field, shows a sending state and morphs into a confirmation, grouped questions and a compact footer.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "https://ui.ndekocode.dev/r/accordion.json",
        "https://ui.ndekocode.dev/r/animated-size.json",
        "https://ui.ndekocode.dev/r/button.json",
        "https://ui.ndekocode.dev/r/field.json",
        "https://ui.ndekocode.dev/r/icons.json",
        "https://ui.ndekocode.dev/r/input.json",
        "https://ui.ndekocode.dev/r/select.json",
        "https://ui.ndekocode.dev/r/selected-mark.json",
        "https://ui.ndekocode.dev/r/sheet.json",
        "https://ui.ndekocode.dev/r/status-orb.json",
        "https://ui.ndekocode.dev/r/textarea.json",
        "https://ui.ndekocode.dev/r/theme.json",
        "https://ui.ndekocode.dev/r/utils.json"
      ],
      "files": [
        {
          "path": "registry/ndeko/templates/marketing/marketing-05/index.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-05/index.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-05/site-header.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-05/site-header.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-05/nav-links.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-05/nav-links.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-05/mobile-sheet.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-05/mobile-sheet.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-05/section-link.ts",
          "type": "registry:component",
          "target": "components/templates/marketing-05/section-link.ts"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-05/brand-mark.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-05/brand-mark.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-05/contact.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-05/contact.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-05/contact-form.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-05/contact-form.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-05/validation.ts",
          "type": "registry:component",
          "target": "components/templates/marketing-05/validation.ts"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-05/faq.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-05/faq.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-05/site-footer.tsx",
          "type": "registry:component",
          "target": "components/templates/marketing-05/site-footer.tsx"
        },
        {
          "path": "registry/ndeko/templates/marketing/marketing-05/data.ts",
          "type": "registry:component",
          "target": "components/templates/marketing-05/data.ts"
        }
      ],
      "categories": [
        "templates",
        "marketing"
      ]
    }
  ]
}
