{"version":3,"file":"origin-ui-components-button.mjs","sources":["../../../../packages/components/button/src/button.ts","../../../../packages/components/button/origin-ui-components-button.ts"],"sourcesContent":["import { computed, Directive, input } from '@angular/core';\nimport { cn } from '@origin-ui/components/utils';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst buttonVariants = cva(\n    \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-[color,box-shadow] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n    {\n        variants: {\n            variant: {\n                default: 'bg-primary text-primary-foreground shadow-sm hover:bg-primary/90',\n                destructive:\n                    'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40',\n                outline: 'border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground',\n                secondary: 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80',\n                ghost: 'hover:bg-accent hover:text-accent-foreground',\n                link: 'text-primary underline-offset-4 hover:underline'\n            },\n            size: {\n                default: 'h-9 px-4 py-2',\n                sm: 'h-8 rounded-lg px-3 text-xs',\n                lg: 'h-10 rounded-lg px-8',\n                icon: 'h-9 w-9'\n            }\n        },\n        defaultVariants: {\n            variant: 'default',\n            size: 'default'\n        }\n    }\n);\n\ntype ButtonProps = VariantProps<typeof buttonVariants>;\n\ntype OriButtonSize = NonNullable<ButtonProps['size']>;\ntype OriButtonVariant = NonNullable<ButtonProps['variant']>;\n\n@Directive({\n    selector: '[oriButton]',\n    host: {\n        '[class]': 'hostClasses()'\n    }\n})\nclass OriButton {\n    readonly class = input<string>();\n\n    readonly variant = input<OriButtonVariant>('default');\n\n    readonly size = input<OriButtonSize>('default');\n\n    protected hostClasses = computed(() =>\n        cn(buttonVariants({ variant: this.variant(), size: this.size(), class: this.class() }))\n    );\n}\n\nexport { buttonVariants, OriButton, OriButtonSize, OriButtonVariant };\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAIA,MAAM,cAAc,GAAG,GAAG,CACtB,4VAA4V,EAC5V;AACI,IAAA,QAAQ,EAAE;AACN,QAAA,OAAO,EAAE;AACL,YAAA,OAAO,EAAE,kEAAkE;AAC3E,YAAA,WAAW,EACP,sIAAsI;AAC1I,YAAA,OAAO,EAAE,0FAA0F;AACnG,YAAA,SAAS,EAAE,wEAAwE;AACnF,YAAA,KAAK,EAAE,8CAA8C;AACrD,YAAA,IAAI,EAAE;AACT,SAAA;AACD,QAAA,IAAI,EAAE;AACF,YAAA,OAAO,EAAE,eAAe;AACxB,YAAA,EAAE,EAAE,6BAA6B;AACjC,YAAA,EAAE,EAAE,sBAAsB;AAC1B,YAAA,IAAI,EAAE;AACT;AACJ,KAAA;AACD,IAAA,eAAe,EAAE;AACb,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,IAAI,EAAE;AACT;AACJ,CAAA;AAQL,MAMM,SAAS,CAAA;IACF,KAAK,GAAG,KAAK,EAAU;AAEvB,IAAA,OAAO,GAAG,KAAK,CAAmB,SAAS,CAAC;AAE5C,IAAA,IAAI,GAAG,KAAK,CAAgB,SAAS,CAAC;AAErC,IAAA,WAAW,GAAG,QAAQ,CAAC,MAC7B,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAC1F;uGATC,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBANd,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE;AACd;AACJ,iBAAA;;;ACzCD;;AAEG;;;;"}