{
  "$schema": "https://uipkge.dev/schema/registry-item.json",
  "name": "quick-actions",
  "title": "Quick Actions",
  "type": "registry:block",
  "files": [
    {
      "path": "packages/registry-angular/blocks/quick-actions/quick-actions.component.ts",
      "content": "// Vertical list of clickable shortcuts in a SectionCard. Spell rows out inline with\n// QuickActionItem — swap the anchor for a routerLink when you need SPA routing.\n// Port of the React block 1:1.\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core'\nimport { ArrowUpRight, LucideAngularModule, type LucideIconData } from 'lucide-angular'\nimport { cn } from '@/lib/utils'\nimport { UiSectionCardComponent } from '@/ui/section-card/section-card.component'\n\n@Component({\n  changeDetection: ChangeDetectionStrategy.Eager,\n  selector: 'ui-quick-actions, [ui-quick-actions]',\n  standalone: true,\n  // React renders the root SectionCard itself: the host stays out of layout and `class` goes to the root.\n  host: { '[attr.class]': '\"contents\"' },\n  imports: [UiSectionCardComponent],\n  template: `\n    <ui-section-card\n      data-slot=\"quick-actions\"\n      [class]=\"rootClass\"\n      [title]=\"title\"\n      [description]=\"description\"\n      contentClassName=\"flex flex-col gap-2\"\n    >\n      <ng-content />\n    </ui-section-card>\n  `,\n})\nexport class UiQuickActionsComponent {\n  @Input() title = 'Quick Actions'\n  @Input() description?: string\n  @Input('class') className?: string\n\n  get rootClass(): string {\n    return cn(this.className)\n  }\n}\n\n/** One shortcut row. Needs no router adapter: paste your own routerLink element in\n *  place of the anchor when you need SPA routing — you own this file. */\n@Component({\n  changeDetection: ChangeDetectionStrategy.Eager,\n  selector: 'ui-quick-action-item',\n  standalone: true,\n  host: { '[attr.class]': '\"contents\"' },\n  imports: [LucideAngularModule],\n  template: `\n    <a data-slot=\"quick-action-item\" [attr.href]=\"href\" [class]=\"hostClass\">\n      @if (icon) {\n        <span\n          class=\"bg-primary/10 text-primary inline-flex size-9 shrink-0 items-center justify-center rounded-lg p-2 transition-colors\"\n        >\n          <lucide-icon [img]=\"icon\" class=\"size-4\" />\n        </span>\n      }\n      <span class=\"flex-1 text-sm font-medium\">{{ label }}</span>\n      <lucide-icon\n        [img]=\"ArrowUpRight\"\n        class=\"text-muted-foreground size-4 opacity-0 transition-colors duration-200 group-hover:opacity-100\"\n      />\n    </a>\n  `,\n})\nexport class UiQuickActionItemComponent {\n  protected readonly ArrowUpRight = ArrowUpRight\n\n  @Input() label = ''\n  @Input() icon?: LucideIconData | null\n  @Input() href?: string\n  @Input('class') className?: string\n\n  get hostClass(): string {\n    return cn(\n      'hover:border-border hover:bg-muted/50 group flex cursor-pointer items-center gap-3 rounded-lg border border-transparent p-3 transition-colors duration-200',\n      this.className,\n    )\n  }\n}\n",
      "type": "registry:block",
      "target": "~/src/app/components/blocks/quick-actions/quick-actions.component.ts"
    },
    {
      "path": "packages/registry-angular/blocks/quick-actions/index.ts",
      "content": "export { UiQuickActionsComponent, UiQuickActionItemComponent } from './quick-actions.component'\n",
      "type": "registry:block",
      "target": "~/src/app/components/blocks/quick-actions/index.ts"
    }
  ],
  "dependencies": [
    "lucide-angular"
  ],
  "devDependencies": [],
  "registryDependencies": [
    "https://uipkge.dev/r/angular/section-card.json",
    "https://uipkge.dev/r/angular/icon-box.json"
  ],
  "description": "Vertical list of clickable shortcuts in a SectionCard. Spell rows out inline with QuickActionItem — swap the anchor for a routerLink when you need SPA routing.",
  "categories": [
    "layout",
    "dashboard"
  ]
}