{"version":3,"file":"origin-ui-components-checkbox.mjs","sources":["../../../../packages/components/checkbox/src/checkbox.component.ts","../../../../packages/components/checkbox/origin-ui-components-checkbox.ts"],"sourcesContent":["import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    Component,\n    computed,\n    EventEmitter,\n    Input,\n    input,\n    model,\n    Output\n} from '@angular/core';\nimport { cn } from '@origin-ui/components/utils';\nimport {\n    RdxCheckboxIndicatorDirective,\n    RdxCheckboxInputDirective,\n    RdxCheckboxRootDirective\n} from '@radix-ng/primitives/checkbox';\nimport { cva } from 'class-variance-authority';\n\nconst variants = cva(\n    'peer size-4 shrink-0 rounded border border-input shadow-sm shadow-black/5 outline-offset-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-ring/70 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:border-primary data-[state=indeterminate]:border-primary data-[state=checked]:bg-primary data-[state=indeterminate]:bg-primary data-[state=checked]:text-primary-foreground data-[state=indeterminate]:text-primary-foreground'\n);\n\n@Component({\n    selector: 'ori-checkbox',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [\n        RdxCheckboxRootDirective,\n        RdxCheckboxIndicatorDirective,\n        RdxCheckboxInputDirective\n    ],\n    host: {\n        // set to null on host element\n        '[attr.id]': 'null',\n        '[attr.data-state]': 'state',\n        // for peer with label\n        '[disabled]': 'disabled()',\n        '[attr.data-disabled]': 'disabled() ? \"true\" : undefined',\n        '[class]': 'hostClasses()'\n    },\n    template: `\n        <button\n            [class]=\"computedClass()\"\n            [checked]=\"checked()\"\n            [indeterminate]=\"indeterminate()\"\n            [disabled]=\"disabled()\"\n            (checkedChange)=\"onChange($event)\"\n            rdxCheckboxRoot\n        >\n            <span class=\"flex items-center justify-center text-current\" rdxCheckboxIndicator>\n                @if (indeterminate()) {\n                    <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\">\n                        <path\n                            fillRule=\"evenodd\"\n                            clipRule=\"evenodd\"\n                            d=\"M0.75 4.5C0.75 4.08579 1.08579 3.75 1.5 3.75H7.5C7.91421 3.75 8.25 4.08579 8.25 4.5C8.25 4.91421 7.91421 5.25 7.5 5.25H1.5C1.08579 5.25 0.75 4.91421 0.75 4.5Z\"\n                        />\n                    </svg>\n                } @else if (checked()) {\n                    <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"currentcolor\" xmlns=\"http://www.w3.org/2000/svg\">\n                        <path\n                            fillRule=\"evenodd\"\n                            clipRule=\"evenodd\"\n                            d=\"M8.53547 0.62293C8.88226 0.849446 8.97976 1.3142 8.75325 1.66099L4.5083 8.1599C4.38833 8.34356 4.19397 8.4655 3.9764 8.49358C3.75883 8.52167 3.53987 8.45309 3.3772 8.30591L0.616113 5.80777C0.308959 5.52987 0.285246 5.05559 0.563148 4.74844C0.84105 4.44128 1.31533 4.41757 1.62249 4.69547L3.73256 6.60459L7.49741 0.840706C7.72393 0.493916 8.18868 0.396414 8.53547 0.62293Z\"\n                        />\n                    </svg>\n                }\n            </span>\n            <input\n                class=\"cdk-visually-hidden\"\n                [id]=\"id()\"\n                [value]=\"checked.asReadonly()\"\n                [disabled]=\"disabled()\"\n                rdxCheckboxInput\n            />\n        </button>\n    `\n})\nexport class OriCheckbox {\n    readonly id = input<string>();\n\n    readonly checked = model<boolean>(false);\n\n    readonly indeterminate = model(false);\n\n    readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n    readonly class = input<string>();\n\n    protected readonly hostClasses = computed(() => cn('flex peer', this.class()));\n\n    readonly className = input<string>();\n\n    protected computedClass = computed(() => cn(variants({ class: this.className() })));\n\n    protected readonly iconName = model('check');\n\n    @Output()\n    checkedChange = new EventEmitter<boolean>();\n\n    @Input({ transform: booleanAttribute })\n    set defaultChecked(value: boolean) {\n        this.checked.set(value);\n    }\n\n    get state(): string {\n        if (this.indeterminate()) {\n            return 'indeterminate';\n        }\n        return this.checked() ? 'checked' : 'unchecked';\n    }\n\n    protected onChange(event: boolean): void {\n        this.checked.set(event);\n        this.checkedChange.emit(event);\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}