{"version":3,"file":"origin-ui-components-input.mjs","sources":["../../../../packages/components/input/src/input.ts","../../../../packages/components/input/origin-ui-components-input.ts"],"sourcesContent":["import { computed, Directive, input, output } from '@angular/core';\nimport { cn } from '@origin-ui/components/utils';\n\n@Directive({\n    selector: '[oriInput]',\n    host: {\n        '[type]': 'type()',\n        '[class]': 'hostClasses()',\n        '(input)': 'handleInput($event)',\n        '(focus)': 'onFocus()',\n        '(blur)': 'onBlur()'\n    }\n})\nexport class OriInput {\n    readonly type = input.required<string>();\n\n    readonly class = input<string>('');\n\n    readonly valueChange = output<string>();\n    readonly focusChange = output<boolean>();\n\n    protected readonly hostClasses = computed(() =>\n        cn(\n            'border-input file:text-foreground placeholder:text-muted-foreground/70 flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-sm shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n            'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n            'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n            this.type() === 'search' &&\n                '[&::-webkit-search-cancel-button]:appearance-none [&::-webkit-search-decoration]:appearance-none [&::-webkit-search-results-button]:appearance-none [&::-webkit-search-results-decoration]:appearance-none',\n            this.type() === 'file' &&\n                'text-muted-foreground/70 file:border-input file:text-foreground p-0 pr-3 italic file:me-3 file:h-full file:border-0 file:border-r file:border-solid file:bg-transparent file:px-3 file:text-sm file:font-medium file:not-italic',\n            this.class()\n        )\n    );\n\n    handleInput(event: Event) {\n        const inputElement = event.target as HTMLInputElement;\n        const newValue = inputElement.value;\n\n        this.valueChange.emit(newValue);\n    }\n\n    onFocus() {\n        this.focusChange.emit(true);\n    }\n\n    onBlur() {\n        this.focusChange.emit(false);\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAaa,QAAQ,CAAA;AACR,IAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAU;AAE/B,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,CAAC;IAEzB,WAAW,GAAG,MAAM,EAAU;IAC9B,WAAW,GAAG,MAAM,EAAW;AAErB,IAAA,WAAW,GAAG,QAAQ,CAAC,MACtC,EAAE,CACE,+WAA+W,EAC/W,+EAA+E,EAC/E,wGAAwG,EACxG,IAAI,CAAC,IAAI,EAAE,KAAK,QAAQ;AACpB,QAAA,4MAA4M,EAChN,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM;AAClB,QAAA,iOAAiO,EACrO,IAAI,CAAC,KAAK,EAAE,CACf,CACJ;AAED,IAAA,WAAW,CAAC,KAAY,EAAA;AACpB,QAAA,MAAM,YAAY,GAAG,KAAK,CAAC,MAA0B;AACrD,QAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK;AAEnC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;;IAGnC,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;;IAG/B,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;;uGAjCvB,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,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,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAVpB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,IAAI,EAAE;AACF,wBAAA,QAAQ,EAAE,QAAQ;AAClB,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,SAAS,EAAE,qBAAqB;AAChC,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,QAAQ,EAAE;AACb;AACJ,iBAAA;;;ACZD;;AAEG;;;;"}