diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/checkbox/checkbox.component.html b/npm/ng-packs/packages/theme-shared/src/lib/components/checkbox/checkbox.component.html
new file mode 100644
index 0000000000..fa5ea40c91
--- /dev/null
+++ b/npm/ng-packs/packages/theme-shared/src/lib/components/checkbox/checkbox.component.html
@@ -0,0 +1,15 @@
+
+
+
+
\ No newline at end of file
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/checkbox/checkbox.component.scss b/npm/ng-packs/packages/theme-shared/src/lib/components/checkbox/checkbox.component.scss
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/checkbox/checkbox.component.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/checkbox/checkbox.component.spec.ts
new file mode 100644
index 0000000000..8abc252968
--- /dev/null
+++ b/npm/ng-packs/packages/theme-shared/src/lib/components/checkbox/checkbox.component.spec.ts
@@ -0,0 +1,22 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { CheckboxComponent } from './checkbox.component';
+
+describe('CheckboxComponent', () => {
+ let component: CheckboxComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ declarations: [CheckboxComponent],
+ }).compileComponents();
+
+ fixture = TestBed.createComponent(CheckboxComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/checkbox/checkbox.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/checkbox/checkbox.component.ts
new file mode 100644
index 0000000000..1d7435a8a2
--- /dev/null
+++ b/npm/ng-packs/packages/theme-shared/src/lib/components/checkbox/checkbox.component.ts
@@ -0,0 +1,32 @@
+import { AbstractNgModelComponent } from '@abp/ng.core';
+import { Component, EventEmitter, forwardRef, Injector, Input, Output } from '@angular/core';
+import { CheckboxControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';
+
+@Component({
+ selector: 'abp-checkbox',
+ templateUrl: './checkbox.component.html',
+ styleUrls: ['./checkbox.component.scss'],
+ providers: [
+ {
+ provide: NG_VALUE_ACCESSOR,
+ useExisting: forwardRef(() => CheckboxComponent),
+ multi: true,
+ },
+ ]
+})
+export class CheckboxComponent extends AbstractNgModelComponent {
+
+ @Input() label: string;
+ @Input() checkboxId!: string;
+ @Input() formControl!: string;
+ @Input() checkboxStyle: string = '';
+ @Input() checkboxClass: string = '';
+ @Input() checkboxReadonly: boolean = false;
+ @Output() onBlur = new EventEmitter();
+ @Output() onFocus = new EventEmitter();
+
+ constructor(injector: Injector) {
+ super(injector);
+ }
+
+}