taly-shared-ui-lib 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -0
- package/fesm2022/taly-shared-ui-lib.mjs +920 -0
- package/fesm2022/taly-shared-ui-lib.mjs.map +1 -0
- package/index.d.ts +268 -0
- package/package.json +27 -0
- package/styles/_theme.scss +4 -0
- package/styles/_variables.scss +57 -0
- package/styles/index.scss +21 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taly-shared-ui-lib.mjs","sources":["../../../projects/taly-shared-ui-lib/src/lib/taly-shared-ui-lib.ts","../../../projects/taly-shared-ui-lib/src/lib/directives/numeric-only.directive.ts","../../../projects/taly-shared-ui-lib/src/lib/taly-input/taly-input.ts","../../../projects/taly-shared-ui-lib/src/lib/taly-input/taly-input.html","../../../projects/taly-shared-ui-lib/src/lib/taly-select/taly-select.ts","../../../projects/taly-shared-ui-lib/src/lib/taly-select/taly-select.html","../../../projects/taly-shared-ui-lib/src/lib/taly-input-group/taly-input-group.ts","../../../projects/taly-shared-ui-lib/src/lib/taly-input-group/taly-input-group.html","../../../projects/taly-shared-ui-lib/src/lib/taly-table/taly-table.ts","../../../projects/taly-shared-ui-lib/src/lib/taly-table/taly-table.html","../../../projects/taly-shared-ui-lib/src/lib/taly-accordion/taly-accordion.ts","../../../projects/taly-shared-ui-lib/src/lib/taly-accordion/taly-accordion.html","../../../projects/taly-shared-ui-lib/src/lib/taly-password-components/taly-password-components.ts","../../../projects/taly-shared-ui-lib/src/lib/taly-password-components/taly-password-components.html","../../../projects/taly-shared-ui-lib/src/lib/taly-buttons/taly-buttons.ts","../../../projects/taly-shared-ui-lib/src/lib/taly-buttons/taly-buttons.html","../../../projects/taly-shared-ui-lib/src/lib/taly-otp-input/taly-otp-input.ts","../../../projects/taly-shared-ui-lib/src/lib/taly-otp-input/taly-otp-input.html","../../../projects/taly-shared-ui-lib/src/public-api.ts","../../../projects/taly-shared-ui-lib/src/taly-shared-ui-lib.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-taly-shared-ui-lib',\n imports: [],\n template: `\n <p>\n taly-shared-ui-lib works!\n </p>\n `,\n styles: ``,\n})\nexport class TalySharedUiLib {\n\n}\n","import { Directive, HostListener, Input } from '@angular/core';\n\n@Directive({\n selector: '[talyAppNumericOnly]',\n standalone: true\n})\nexport class NumericOnlyDirective {\n @Input() talyAppNumericOnly: boolean = true;\n\n private navigationKeys = [\n 'Backspace',\n 'Delete',\n 'Tab',\n 'Escape',\n 'Enter',\n 'Home',\n 'End',\n 'ArrowLeft',\n 'ArrowRight',\n 'Clear',\n 'Copy',\n 'Paste'\n ];\n\n @HostListener('keydown', ['$event'])\n onKeyDown(e: KeyboardEvent) {\n if (!this.talyAppNumericOnly) {\n return;\n }\n if (\n this.navigationKeys.indexOf(e.key) > -1 || // Allow: navigation keys\n (e.key === 'a' && (e.ctrlKey || e.metaKey)) || // Allow: Ctrl+A\n (e.key === 'c' && (e.ctrlKey || e.metaKey)) || // Allow: Ctrl+C\n (e.key === 'v' && (e.ctrlKey || e.metaKey)) || // Allow: Ctrl+V\n (e.key === 'x' && (e.ctrlKey || e.metaKey)) // Allow: Ctrl+X\n ) {\n // let it happen, don't do anything\n return;\n }\n // Ensure that it is a number and stop the keypress\n if (e.key === ' ' || isNaN(Number(e.key))) {\n e.preventDefault();\n }\n }\n\n @HostListener('paste', ['$event'])\n onPaste(event: ClipboardEvent) {\n if (!this.talyAppNumericOnly) {\n return;\n }\n const pastedInput = event.clipboardData?.getData('text/plain');\n if (pastedInput && !/^\\d+$/.test(pastedInput)) {\n event.preventDefault();\n }\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: DragEvent) {\n if (!this.talyAppNumericOnly) {\n return;\n }\n const textData = event.dataTransfer?.getData('text');\n if (textData && !/^\\d+$/.test(textData)) {\n event.preventDefault();\n }\n }\n}\n","import {\n Component,\n forwardRef,\n Input,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Optional,\n Self,\n inject,\n ViewChild,\n ElementRef\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n Validator,\n NG_VALUE_ACCESSOR,\n NG_VALIDATORS,\n AbstractControl,\n ValidationErrors,\n FormsModule,\n ReactiveFormsModule,\n NgControl\n} from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FloatLabelModule } from 'primeng/floatlabel';\nimport { NumericOnlyDirective } from '../directives/numeric-only.directive';\n\n@Component({\n selector: 'lib-taly-input',\n templateUrl: './taly-input.html',\n styleUrls: ['./taly-input.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, FormsModule, ReactiveFormsModule, InputTextModule, FloatLabelModule, NumericOnlyDirective],\n})\nexport class TalyInput implements ControlValueAccessor, Validator {\n @Input() id = '';\n @Input() label = '';\n @Input() placeholderText = '';\n @Input() inputType = 'text';\n @Input() inputmodeType = 'text';\n @Input() min?: number;\n @Input() max?: number;\n @Input() autofocus = false;\n\n private _disabled = false;\n private _value: any = null;\n isFocused = false;\n @ViewChild('inputRef') inputRef!: ElementRef<HTMLInputElement>;\n\n private onChange = (_: any) => {};\n private onTouched = () => {};\n\n public ngControl = inject(NgControl, { optional: true, self: true }) as NgControl | null;\n\n constructor(\n private cdr: ChangeDetectorRef\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n writeValue(value: any): void {\n this._value = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n get value(): any {\n return this._value;\n }\n\n set value(val: any) {\n if (val !== this._value) {\n this._value = val;\n this.onChange(val);\n this.cdr.markForCheck();\n }\n }\n\n handleInputEvent(value: any) {\n this.value = value;\n }\n\n onFocus() {\n this.isFocused = true;\n }\n\n onBlur() {\n this.isFocused = false;\n this.onTouched();\n }\n\n onReset(event?: Event): void {\n if (event) {\n event.stopPropagation();\n event.preventDefault();\n }\n this._value = null;\n if (this.inputRef) {\n this.inputRef.nativeElement.value = '';\n this.inputRef.nativeElement.focus();\n }\n this.onChange(null);\n this.cdr.markForCheck();\n }\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n return null;\n }\n}\n","<div class=\"relative flex flex-col rounded-lg border bg-white px-4 py-2 h-[60px]\n transition-all\n focus-within:border-2 focus-within:border-gray-400\" [ngClass]=\"{\n 'bg-gray-100 border-gray-300': disabled,\n 'border-red-500 bg-red-50': ngControl?.invalid && ngControl?.touched\n }\">\n <p-floatlabel class=\"block w-full\">\n <input #inputRef pInputText class=\"w-full h-[48px] border-none outline-none bg-transparent\n text-base text-gray-900 pt-5\n disabled:bg-transparent\" [id]=\"id\" [type]=\"inputType\" [placeholder]=\"''\" [attr.inputmode]=\"inputmodeType\"\n [attr.maxlength]=\"max ?? null\" [disabled]=\"!!disabled\" [value]=\"value\"\n [talyAppNumericOnly]=\"inputType === 'number'\" [min]=\"min\" [max]=\"max\" [autofocus]=\"autofocus\"\n (input)=\"handleInputEvent($event.target.value)\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" />\n <label [for]=\"id\" class=\"text-gray-600 font-medium\">\n {{ label }}\n </label>\n </p-floatlabel>\n\n <!-- Clear Icon -->\n <button *ngIf=\"!disabled && value\" type=\"button\" class=\"absolute right-4 top-1/2 -translate-y-1/2\n flex items-center justify-center\n w-5 h-5 rounded-full bg-gray-500 text-white\n hover:bg-gray-700 transition-colors z-20\" (click)=\"onReset($event)\">\n <i class=\"pi pi-times !text-[8px] !m-0 !p-0\"></i>\n </button>\n</div>\n\n<!-- Validation messages -->\n<div *ngIf=\"ngControl && ngControl.invalid && ngControl.touched\" class=\"mt-1 text-sm text-red-600\">\n <span *ngIf=\"ngControl.errors?.['required']\">\n {{ label }} is required\n </span>\n\n <span *ngIf=\"ngControl.errors?.['minlength']\">\n Minimum length is {{ ngControl.errors?.['minlength']?.requiredLength }}\n </span>\n\n <span *ngIf=\"ngControl.errors?.['maxlength']\">\n Maximum length is {{ ngControl.errors?.['maxlength']?.requiredLength }}\n </span>\n\n <span *ngIf=\"ngControl.errors?.['email']\">\n Invalid email address\n </span>\n\n <span *ngIf=\"ngControl.errors?.['pattern']\">\n Please enter a valid {{ label }}\n </span>\n</div>","import {\n Component,\n Input,\n forwardRef,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n inject,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n NG_VALIDATORS,\n Validator,\n FormGroup,\n ReactiveFormsModule,\n NgControl,\n} from '@angular/forms';\nimport { SelectModule } from 'primeng/select';\nimport { FloatLabelModule } from 'primeng/floatlabel';\n\n@Component({\n selector: 'lib-taly-select',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n SelectModule,\n FloatLabelModule,\n ],\n templateUrl: './taly-select.html',\n styleUrls: ['./taly-select.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TalySelect implements ControlValueAccessor, Validator {\n private cdr = inject(ChangeDetectorRef);\n public ngControl = inject(NgControl, { optional: true, self: true }) as any;\n\n constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n // ===== Inputs =====\n @Input({ required: true }) id!: string;\n @Input({ required: true }) label!: string;\n @Input({ required: true }) options: any[] = [];\n\n @Input() optionsValue?: string;\n @Input() optionsLabel!: string;\n @Input() placeholderText = '';\n\n @Input({ required: true }) formGroup!: FormGroup;\n @Input({ required: true }) controlName!: string;\n\n @Input() min?: number;\n @Input() max?: number;\n @Input() textDirection?: string;\n\n @Input()\n set isDisabled(value: boolean) {\n this.disabled = value;\n this.cdr.markForCheck();\n }\n\n disabled = false;\n showErrorMessages = false;\n\n // ===== Internal value =====\n private _value: any = null;\n\n get f() {\n return this.formGroup?.controls;\n }\n\n get value(): any {\n return this._value;\n }\n\n set value(val: any) {\n this._value = val;\n this.onChange(val);\n this.cdr.markForCheck();\n }\n\n // ===== ControlValueAccessor =====\n onChange: (value: any) => void = () => {};\n onTouched: () => void = () => {};\n\n writeValue(value: any): void {\n this._value = value;\n\n if (this.formGroup && this.controlName) {\n this.formGroup.get(this.controlName)?.setValue(value, {\n emitEvent: false,\n });\n }\n\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n // ===== Validator =====\n validate() {\n return null;\n }\n\n // ===== UI Events =====\n onReset(event: any): void {\n event.inputField = null;\n this._value = null;\n this.onChange(null);\n this.cdr.markForCheck();\n }\n\n onHide(): void {\n this.showErrorMessages = true;\n this.cdr.markForCheck();\n }\n}\n","<div [formGroup]=\"formGroup\" class=\"flex flex-col gap-1\" [ngClass]=\"{\n 'opacity-50 pointer-events-none': disabled,\n 'rtl': textDirection === 'rtl'\n }\">\n <!-- Select Wrapper -->\n <div class=\"flex flex-col rounded-lg border bg-white px-4 py-2 h-[60px]\n transition-all\n focus-within:border-2 focus-within:border-gray-400\" [ngClass]=\"{\n 'bg-gray-100 border-gray-300': disabled,\n 'border-red-500 bg-red-50': showErrorMessages && f[controlName].invalid && f[controlName].touched\n }\">\n <p-floatlabel class=\"block w-full\">\n <p-select class=\"w-full\" [options]=\"options\" [placeholder]=\"''\" [formControlName]=\"controlName\"\n [disabled]=\"disabled\" [optionLabel]=\"optionsLabel\" [optionValue]=\"optionsValue\" [inputId]=\"id\"\n (onHide)=\"onHide()\">\n <ng-template pTemplate=\"selectedItem\" let-item>\n {{ item?.[optionsLabel] }}\n </ng-template>\n\n <ng-template pTemplate=\"option\" let-item>\n {{ item?.[optionsLabel] }}\n </ng-template>\n </p-select>\n\n <!-- Label -->\n <label [for]=\"id\" class=\"text-gray-600 font-medium\">\n {{ label }}\n </label>\n </p-floatlabel>\n </div>\n</div>\n\n<!-- Validation Error -->\n@if (showErrorMessages && f[controlName].invalid && f[controlName].touched) {\n<div class=\"mt-1 text-sm text-red-600\">\n @if (f[controlName].hasError('required')) {\n <span>{{ label }} is required</span>\n }\n</div>\n}","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n inject,\n effect,\n forwardRef,\n Optional,\n Self,\n ViewChild,\n ElementRef\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n NG_VALIDATORS,\n FormGroup,\n ReactiveFormsModule,\n NgControl,\n} from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { FloatLabelModule } from 'primeng/floatlabel';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { NumericOnlyDirective } from '../directives/numeric-only.directive';\n\n@Component({\n selector: 'lib-taly-input-group',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FloatLabelModule, InputTextModule, NumericOnlyDirective],\n templateUrl: './taly-input-group.html',\n styleUrls: ['./taly-input-group.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TalyInputGroup implements ControlValueAccessor {\n private cdr = inject(ChangeDetectorRef);\n @ViewChild('inputField') inputField!: ElementRef<HTMLInputElement>;\n\n private ngControl = inject(NgControl, { optional: true, self: true });\n\n // Optional NgControl injection\n constructor() {\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n // ===== Inputs =====\n @Input({ required: true }) id = '';\n @Input({ required: true }) label = '';\n @Input() placeholderText = '';\n @Input() inputType: string = 'text';\n @Input() formGroup!: FormGroup;\n @Input() controlName!: string;\n @Input() min?: number;\n @Input() max?: number;\n @Input() inputmodeType: string = 'none';\n @Input() autofocus = false;\n\n @Input() set isDisabled(disable: boolean) {\n this.disabled = disable;\n this.cdr.markForCheck();\n }\n\n disabled = false;\n textDirection!: string;\n\n get f() {\n return this.formGroup?.controls;\n }\n\n // ===== ControlValueAccessor internal value =====\n private _value: any = null;\n\n set value(val: any) {\n this._value = val;\n this.onChange(val);\n this.cdr.markForCheck();\n }\n\n get value() {\n return this._value;\n }\n\n onChange: (value: any) => void = () => {};\n onTouched: () => void = () => {};\n\n writeValue(value: any): void {\n this._value = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n validate() {\n return null;\n }\n\n onReset(event?: Event): void {\n if (event) {\n event.stopPropagation();\n event.preventDefault();\n }\n const control = this.formGroup?.get(this.controlName);\n if (control) {\n control.setValue(null);\n control.markAsPristine();\n control.markAsUntouched();\n }\n if (this.inputField) {\n this.inputField.nativeElement.value = '';\n }\n this.cdr.markForCheck();\n }\n}\n","<div [formGroup]=\"formGroup\" [class.opacity-50]=\"disabled\" class=\"flex flex-col gap-1 w-full\">\n\n <!-- Input group -->\n <div class=\"relative flex items-center border rounded-lg px-4 py-2\n bg-white\n focus-within:ring-2 focus-within:ring-blue-500\n [&.input-error]:border-red-500 [&.input-error]:bg-red-50\n [&.disabled]:bg-gray-200\" [class.input-error]=\"f[controlName]?.invalid && f[controlName]?.touched\"\n [class.disabled]=\"disabled\" dir=\"ltr\">\n\n <!-- Addon content -->\n <span class=\"mr-2 text-gray-700 flex-shrink-0\">\n <ng-content select=\"[addonContent]\"></ng-content>\n </span>\n\n <p-floatlabel class=\"flex-1\">\n <!-- Input -->\n <input [type]=\"inputType\" [formControlName]=\"controlName\" [id]=\"id\" [placeholder]=\"''\" [disabled]=\"disabled\"\n [attr.inputmode]=\"inputmodeType\" class=\"peer w-full bg-transparent text-gray-900 text-base focus:outline-none\"\n #inputField [talyAppNumericOnly]=\"inputType === 'number'\" pInputText pAutoFocus [min]=\"min\" [max]=\"max\"\n [attr.maxlength]=\"max\" />\n\n <label [for]=\"id\" class=\"text-gray-500 font-medium\">\n {{ label }}\n </label>\n </p-floatlabel>\n\n <!-- Clear icon -->\n <button *ngIf=\"!disabled && f[controlName]?.value\" type=\"button\" class=\"cursor-pointer rounded-full bg-gray-500 text-white\n w-5 h-5 flex-shrink-0 flex items-center justify-center hover:bg-gray-700 ml-2 transition-colors z-20\"\n (click)=\"onReset($event)\">\n <i class=\"pi pi-times !text-[8px] !m-0 !p-0\"></i>\n </button>\n </div>\n\n <!-- Error messages -->\n <div *ngIf=\"f[controlName]?.invalid && f[controlName]?.touched\" class=\"text-red-600 text-sm mt-1\">\n <span *ngIf=\"f[controlName]?.hasError('required')\">{{ label }} is required</span>\n <span *ngIf=\"f[controlName]?.hasError('minlength') && !f[controlName]?.hasError('required')\">\n Minimum length is {{ f[controlName]?.getError('minlength')?.requiredLength }}\n </span>\n <span *ngIf=\"f[controlName]?.hasError('maxlength') && \n !f[controlName]?.hasError('required') &&\n !f[controlName]?.hasError('minlength')\">\n Maximum length is {{ f[controlName]?.getError('maxlength')?.requiredLength }}\n </span>\n <span *ngIf=\"f[controlName]?.hasError('email') &&\n !f[controlName]?.hasError('required')\">\n Invalid email address\n </span>\n <span *ngIf=\"f[controlName]?.hasError('pattern') &&\n !f[controlName]?.hasError('required') &&\n !f[controlName]?.hasError('email') &&\n !f[controlName]?.hasError('minlength') &&\n !f[controlName]?.hasError('maxlength')\">\n Please enter a valid {{ label }}\n </span>\n </div>\n</div>","\n\nimport { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n Output,\n EventEmitter,\n TemplateRef,\n ContentChild,\n} from '@angular/core';\nimport { TableModule } from 'primeng/table';\nimport { LazyLoadEvent } from 'primeng/api';\n\n@Component({\n selector: 'lib-taly-table',\n standalone: true,\n imports: [\n CommonModule,\n TableModule, // required if using p-table\n ],\n templateUrl: './taly-table.html',\n styleUrl: './taly-table.scss',\n})\nexport class TalyTable<T = any> {\n // Table data\n @Input() value: T[] = [];\n\n // Table loading indicator\n @Input() loading = false;\n\n // Pagination options\n @Input() paginator = true;\n @Input() rows = 100;\n @Input() first = 0;\n @Input() lazy = false;\n\n @Input() totalRecords = 0;\n\n // Sorting\n @Input() sortable = true;\n @Input() sortField?: string;\n @Input() sortOrder?: 1 | -1;\n\n // Selection\n @Input() selection?: T | T[];\n @Output() selectionChange = new EventEmitter<T | T[]>();\n @Input() userId!: number;\n\n // Filtering\n @Input() globalFilterFields?: string[];\n\n // Columns\n @Input() columns: Array<{\n field: string;\n header: string;\n sortable?: boolean;\n filter?: boolean;\n style?: any;\n width?: string;\n type?: 'text' | 'date' | 'number' | 'boolean';\n }> = [];\n\n // UI options\n @Input() showSelectionCheckbox = false;\n @Input() showRowIndex = false;\n @Input() selectionMode: 'single' | 'multiple' | null = null;\n @Input() dataKey?: string;\n\n // Templates\n @ContentChild('actionTemplate') actionTemplate?: TemplateRef<any>;\n @ContentChild('statusTemplate') statusTemplate?: TemplateRef<any>;\n\n // Events\n @Output() rowSelect = new EventEmitter<any>();\n @Output() onLazyLoad = new EventEmitter<LazyLoadEvent>();\n @Output() onSort = new EventEmitter<any>();\n @Output() onPage = new EventEmitter<any>();\n @Output() onFilter = new EventEmitter<any>();\n @Output() onRowSelect = new EventEmitter<T>();\n @Output() onRowUnselect = new EventEmitter<T>();\n @Output() pageChange = new EventEmitter<{ page: number; size: number }>();\n @Output() rowClick = new EventEmitter<any>();\n\n onSelectionChange(event: any) {\n this.selectionChange.emit(event.value);\n }\n\n onPageChange(event: any) {\n this.onPage.emit(event);\n }\n\n onSortChange(event: any) {\n this.onSort.emit(event);\n }\n\n onFilterChange(event: any) {\n this.onFilter.emit(event);\n }\n\n onRowSelectEvent(event: any) {\n this.onRowSelect.emit(event.data);\n }\n\n onRowUnselectEvent(event: any) {\n this.onRowUnselect.emit(event.data);\n }\n\n onRowClick(rowData: any) {\n this.rowClick.emit(rowData);\n }\n\n onPaginate(event: any) {\n const page = Math.floor(event.first / event.rows);\n const size = event.rows;\n this.pageChange.emit({ page, size });\n }\n}\n","<p-table [lazy]=\"lazy\" [value]=\"value\" [loading]=\"loading\" [paginator]=\"paginator\" [rows]=\"rows\"\n [totalRecords]=\"totalRecords\" [sortField]=\"sortField\" [sortOrder]=\"sortOrder ?? 1\" [(selection)]=\"selection\"\n [selectionMode]=\"selectionMode\" [dataKey]=\"dataKey\" [rowsPerPageOptions]=\"[50,100,200,300,400,500]\"\n [showCurrentPageReport]=\"true\" [first]=\"first\" [globalFilterFields]=\"globalFilterFields\"\n (onRowSelect)=\"onRowSelectEvent($event)\" (selectionChange)=\"onSelectionChange($event)\" (onSort)=\"onSortChange($event)\"\n (onFilter)=\"onFilterChange($event)\" (onPage)=\"onPaginate($event)\" showGridlines responsiveLayout=\"scroll\"\n currentPageReportTemplate=\"Showing {first} to {last} of {totalRecords} entries\"\n class=\"min-w-full border-separate border-spacing-0 border border-gray-200 rounded-xl overflow-hidden shadow-md bg-white\">\n\n <!-- HEADER -->\n <ng-template pTemplate=\"header\">\n <tr class=\"bg-gray-50 text-left text-gray-700 font-medium text-sm\">\n <th *ngIf=\"showRowIndex\" class=\"px-4 py-2 w-16\">#</th>\n <th *ngIf=\"showSelectionCheckbox\" class=\"px-4 py-2 w-12\">\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n <th *ngFor=\"let col of columns\" [pSortableColumn]=\"(sortable && col.sortable) ? col.field : undefined\"\n class=\"px-4 py-2\" [style.width]=\"col.width || 'auto'\" [ngStyle]=\"col.style\">\n <div class=\"flex items-center gap-2\">\n {{ col.header }}\n <p-sortIcon *ngIf=\"sortable && col.sortable\" [field]=\"col.field\"></p-sortIcon>\n </div>\n <p-columnFilter *ngIf=\"col.filter\" [field]=\"col.field\" matchMode=\"contains\"></p-columnFilter>\n </th>\n\n <th *ngIf=\"actionTemplate\" class=\"px-4 py-2 w-32\">Actions</th>\n </tr>\n </ng-template>\n\n <!-- BODY -->\n <ng-template pTemplate=\"body\" let-rowData let-rowIndex=\"rowIndex\">\n <tr (click)=\"onRowClick(rowData)\" class=\"hover:bg-gray-50 cursor-pointer border-b border-gray-100\">\n <td *ngIf=\"showRowIndex\" class=\"px-4 py-2 text-gray-500\">\n {{ rowIndex + 1 }}\n </td>\n <td *ngIf=\"showSelectionCheckbox\" class=\"px-4 py-2\" (click)=\"$event.stopPropagation()\">\n <p-tableCheckbox [value]=\"rowData\"></p-tableCheckbox>\n </td>\n <td *ngFor=\"let col of columns\" class=\"px-4 py-2\">\n <ng-container [ngSwitch]=\"col.type || 'text'\">\n\n <!-- TEXT -->\n <span *ngSwitchCase=\"'text'\" class=\"text-gray-800\">\n {{ rowData[col.field] }}\n </span>\n\n <!-- DATE -->\n <span *ngSwitchCase=\"'date'\" class=\"text-gray-700\">\n {{ rowData[col.field] | date:'short' }}\n </span>\n\n <!-- NUMBER -->\n <span *ngSwitchCase=\"'number'\" class=\"text-gray-800\">\n {{ rowData[col.field] | number }}\n </span>\n\n <!-- BOOLEAN -->\n <i *ngSwitchCase=\"'boolean'\" class=\"pi\" [ngClass]=\"{\n 'pi-check-circle text-green-500': rowData[col.field],\n 'pi-times-circle text-red-500': !rowData[col.field]\n }\"></i>\n\n <!-- STATUS -->\n <ng-container *ngSwitchCase=\"'status'\">\n <span class=\"px-2 py-1 rounded-full text-xs font-semibold text-white\" [ngClass]=\"{\n 'bg-gray-500': rowData[col.field] === 'PENDING',\n 'bg-blue-500': rowData[col.field] === 'JOINED' || rowData[col.field] === 'ONBOARDED',\n 'bg-green-500': rowData[col.field] === 'APPROVED' || rowData[col.field] === 'PAID' || rowData[col.field] === 'CONFIRMED',\n 'bg-red-500': rowData[col.field] === 'REJECTED' || rowData[col.field] === 'UNPAID' || rowData[col.field] === 'CANCELED' || rowData[col.field] === 'Over Due',\n 'bg-yellow-400': rowData[col.field] === 'Missed'\n }\">\n {{ rowData[col.field] }}\n </span>\n </ng-container>\n\n <!-- DEACTIVATED -->\n <ng-container *ngSwitchCase=\"'deactivated'\">\n <span class=\"px-2 py-1 rounded-full text-xs font-semibold text-white\"\n [ngClass]=\"rowData.deactivated ? 'bg-red-500' : 'bg-green-500'\">\n {{ rowData.deactivated ? 'Deactivated' : 'Active' }}\n </span>\n </ng-container>\n\n <!-- LINK -->\n <ng-container *ngSwitchCase=\"'link'\">\n <span class=\"text-blue-500 hover:underline cursor-pointer\" (click)=\"$event.stopPropagation()\">\n {{ rowData[col.field] }}\n </span>\n </ng-container>\n\n <!-- DEFAULT -->\n <span *ngSwitchDefault class=\"text-gray-800\">\n {{ rowData[col.field] }}\n </span>\n\n </ng-container>\n </td>\n\n <td *ngIf=\"actionTemplate\" class=\"px-4 py-2\">\n <ng-container *ngTemplateOutlet=\"actionTemplate; context: { $implicit: rowData }\"></ng-container>\n </td>\n </tr>\n </ng-template>\n\n <!-- EMPTY -->\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td class=\"text-center text-gray-500 py-4\"\n [attr.colspan]=\"columns.length + (actionTemplate ? 1 : 0) + (showRowIndex ? 1 : 0) + (showSelectionCheckbox ? 1 : 0)\">\n No records found\n </td>\n </tr>\n </ng-template>\n</p-table>","import { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AccordionModule } from 'primeng/accordion';\n\nexport interface AccordionItem {\n itemTitleEn: string;\n itemTitleAr: string;\n descriptionEn: string;\n descriptionAr: string;\n disabled?: boolean;\n}\n\n@Component({\n selector: 'lib-taly-accordion',\n standalone: true,\n imports: [CommonModule, AccordionModule],\n templateUrl: './taly-accordion.html',\n})\nexport class TalyAccordion implements OnInit {\n @Input() items: AccordionItem[] = [];\n @Input() textDirection: 'ltr' | 'rtl' = 'ltr';\n @Input() multiple = true;\n\n /**\n * Value can be a string (single) or string array (multiple).\n */\n value: string | string[] | null = null;\n \n ngOnInit() {\n if (this.multiple) {\n this.value = [];\n } else {\n this.value = null;\n }\n }\n\n isActive(index: number): boolean {\n const sIndex = index.toString();\n if (this.multiple) {\n return Array.isArray(this.value) && this.value.includes(sIndex);\n }\n return this.value === sIndex;\n }\n}\n","<p-accordion [multiple]=\"multiple\" [(value)]=\"value\"\n class=\"w-full rounded-2xl bg-[var(--brand-white)] p-2 font-manrope\">\n <p-accordion-panel *ngFor=\"let item of items; let i = index; let last = last\" [value]=\"i.toString()\"\n [disabled]=\"!!item.disabled\" class=\"mb-2 last:mb-0 border-none\">\n <!-- HEADER -->\n <p-accordion-header>\n <div class=\"flex items-center justify-between w-full\n px-6 py-4\n text-base font-medium leading-7 tracking-[-0.16px]\n text-[var(--ui-taly-dark-black)]\n bg-[var(--brand-white)]\n rounded-t-2xl\n focus:outline-none focus:ring-0\" [class.opacity-50]=\"item.disabled\" [dir]=\"textDirection\">\n <span class=\"flex-grow\">\n {{ textDirection === 'rtl'\n ? item.itemTitleAr\n : item.itemTitleEn }}\n </span>\n\n <!-- ICON CONTAINER -->\n <div class=\"accordion-toggle-icon flex items-center justify-center rounded-full\"\n [ngClass]=\"isActive(i) ? 'is-active bg-transparent' : 'bg-[var(--shades-6)]'\">\n <i class=\"pi font-bold\"\n [ngClass]=\"isActive(i) ? 'pi-minus text-[var(--ui-taly-dark-black)]' : 'pi-plus text-[var(--ui-taly-dark-black)]'\"></i>\n </div>\n </div>\n </p-accordion-header>\n\n <!-- CONTENT -->\n <p-accordion-content>\n <div class=\"px-6 py-4\n text-base font-medium leading-7 tracking-[-0.16px]\n bg-[var(--shades-6)]\n text-[var(--ui-taly-dark-black)]\n rounded-b-2xl\" [dir]=\"textDirection\">\n {{ textDirection === 'rtl'\n ? item.descriptionAr\n : item.descriptionEn }}\n </div>\n </p-accordion-content>\n </p-accordion-panel>\n</p-accordion>","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n inject,\n forwardRef,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n NG_VALIDATORS,\n FormGroup,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n selector: 'lib-taly-password',\n standalone: true,\n imports: [\n CommonModule, \n ReactiveFormsModule, \n InputTextModule, \n ],\n templateUrl: './taly-password-components.html',\n styleUrl: './taly-password-components.scss',\n\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TalyPasswordComponents),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => TalyPasswordComponents),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TalyPasswordComponents implements ControlValueAccessor {\n private cdr = inject(ChangeDetectorRef);\n\n @Input({ required: true }) id = '';\n @Input({ required: true }) label = '';\n @Input() placeholderText = '';\n @Input() formGroup!: FormGroup;\n @Input() controlName!: string;\n @Input() max!: number;\n @Input() inputmodeType = 'password';\n\n disabled = false;\n fieldTextType = false;\n\n get f() {\n return this.formGroup?.controls;\n }\n\n writeValue(value: any): void {\n this._value = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n validate() {\n return null;\n }\n\n onReset() {\n this.formGroup?.get(this.controlName)?.setValue(null);\n }\n\n toggleFieldTextType() {\n this.fieldTextType = !this.fieldTextType;\n }\n\n private _value: any = null;\n onChange = (_: any) => {};\n onTouched = () => {};\n}\n","<div class=\"input-wrapper\" [formGroup]=\"formGroup\" [class.disabled]=\"disabled\"\n [class.input-error]=\"f[controlName].invalid && f[controlName].touched\">\n <span class=\"p-float-label p-input-icon-right\">\n <input class=\"taly-input\" dir=\"ltr\" [formControlName]=\"controlName\" pInputText [id]=\"id\"\n [placeholder]=\"placeholderText\" [type]=\"fieldTextType ? 'text' : 'password'\"\n [attr.inputmode]=\"inputmodeType\" #inputField [disabled]=\"disabled\" [maxlength]=\"max\" />\n\n @if (!disabled && inputField.value) {\n <img class=\"eye\" src=\"assets/images/show-password-icon.svg\" alt=\"password-reset\" role=\"button\" tabindex=\"0\"\n (click)=\"toggleFieldTextType()\" (keyup.enter)=\"toggleFieldTextType()\" />\n }\n\n </span>\n</div>\n\n<div class=\"alert\">\n @if (f[controlName].invalid && f[controlName].touched) {\n @if (f[controlName].hasError('required')) {\n <span class=\"alert-danger\">\n {{ label }} <span translate> is required </span>\n </span>\n }\n }\n\n @if (\n f[controlName]?.invalid &&\n id === 'confirmPassword' &&\n f[controlName]?.errors?.['passwordMismatch'] === true\n ) {\n <div [ngClass]=\"\n f[controlName]?.errors?.['passwordMismatch'] === false\n ? 'text-success'\n : 'alert-danger'\n \">\n <img src=\"assets/images/error-icon.svg\" />\n <span>Passwords don’t match!</span>\n </div>\n }\n\n\n @if (f[controlName]?.dirty && id === 'password' && f[controlName].touched) {\n <div [ngClass]=\"\n f[controlName]?.value?.match('^(?=.*[A-Z])') ? 'text-success' : 'alert-danger alert-grey'\n \">\n <img [src]=\"\n f[controlName]?.value?.match('^(?=.*[A-Z])')\n ? 'assets/images/success-img.svg'\n : 'assets/images/error-icon-grey.svg'\n \" alt=\"statu-icon\" />\n <span> Must contain one uppercase </span>\n </div>\n <div [ngClass]=\"\n f[controlName]?.value?.match('(?=.*[a-z])') ? 'text-success' : 'alert-danger alert-grey'\n \" alt=\"status-icons\">\n <img [src]=\"\n f[controlName]?.value?.match('(?=.*[a-z])')\n ? 'assets/images/success-img.svg'\n : 'assets/images/error-icon-grey.svg'\n \" alt=\"status-icons\" />\n <span> Must contain one lowercase </span>\n </div>\n <div [ngClass]=\"\n f[controlName]?.value?.match('(.*[0-9].*)') ? 'text-success' : 'alert-danger alert-grey'\n \">\n <img [src]=\"\n f[controlName]?.value?.match('(.*[0-9].*)')\n ? 'assets/images/success-img.svg'\n : 'assets/images/error-icon-grey.svg'\n \" alt=\"status-icons\" />\n <span> Must contain one number </span>\n </div>\n <div [ngClass]=\"\n f[controlName]?.value?.match('(?=.*[!@#$%^&*])')\n ? 'text-success'\n : 'alert-danger alert-grey'\n \">\n <img [src]=\"\n f[controlName]?.value?.match('(?=.*[!@#$%^&*])')\n ? 'assets/images/success-img.svg'\n : 'assets/images/error-icon-grey.svg'\n \" alt=\"status-icons\" />\n <span> At least one special character. </span>\n </div>\n\n <div [ngClass]=\"f[controlName]?.value?.match('.{8}') ? 'text-success' : 'alert-danger alert-grey'\">\n <img [src]=\"\n f[controlName]?.value?.match('.{8}')\n ? 'assets/images/success-img.svg'\n : 'assets/images/error-icon-grey.svg'\n \" alt=\"status-icons\" />\n <span> 6 Character minimum </span>\n </div>\n }\n</div>","import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from 'primeng/button';\n\n@Component({\n selector: 'lib-taly-buttons',\n standalone: true,\n imports: [CommonModule, ButtonModule],\n templateUrl: './taly-buttons.html',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TalyButtons {\n @Input() label = '';\n @Input() icon: string = '';\n @Input() iconPosition: 'left' | 'right' = 'left';\n\n @Input() severity:\n | 'primary'\n | 'secondary'\n | 'success'\n | 'info'\n | 'warn'\n | 'help'\n | 'danger'\n | 'contrast'\n | null\n | undefined = 'primary';\n\n @Input() outlined = false;\n @Input() text = false;\n @Input() raised = false;\n @Input() rounded = false;\n @Input() loading = false;\n @Input() disabled = false;\n @Input() fullWidth = false;\n\n @Input() type: 'button' | 'submit' | 'reset' = 'button';\n\n @Output() clicked = new EventEmitter<Event>();\n\n get buttonClasses(): string {\n const classes = [\n this.fullWidth ? 'w-full' : 'w-auto',\n ];\n\n // Severity colors (Tailwind) - Restored to match previous 'working' behavior\n const severityMap: Record<string, string> = {\n primary: '!bg-blue-600 !text-white hover:!bg-blue-700',\n secondary: '!bg-gray-600 !text-white hover:!bg-gray-700',\n success: '!bg-green-600 !text-white hover:!bg-green-700',\n info: '!bg-cyan-500 !text-white hover:!bg-cyan-600',\n warn: '!bg-yellow-400 !text-black hover:!bg-yellow-500', // Changed warning to warn\n help: '!bg-purple-600 !text-white hover:!bg-purple-700',\n danger: '!bg-red-600 !text-white hover:!bg-red-700',\n contrast: '!bg-black !text-white hover:!bg-gray-800',\n };\n\n // Apply colors only if the button is not text/outlined, OR apply specific text/outlined colors\n // We check inputs to decide which map to use, effectively overriding PrimeNG theme colors\n // but letting PrimeNG handle structure (rounded, raised, iconPos).\n\n if (!this.text && !this.outlined) {\n classes.push(severityMap[this.severity || 'primary']);\n }\n\n if (this.outlined) {\n const outlinedMap: Record<string, string> = {\n primary: '!border-blue-600 !text-blue-600 hover:!bg-blue-50',\n secondary: '!border-gray-600 !text-gray-600 hover:!bg-gray-50',\n success: '!border-green-600 !text-green-600 hover:!bg-green-50',\n info: '!border-cyan-500 !text-cyan-500 hover:!bg-cyan-50',\n warn: '!border-yellow-400 !text-yellow-400 hover:!bg-yellow-50',\n help: '!border-purple-600 !text-purple-600 hover:!bg-purple-50',\n danger: '!border-red-600 !text-red-600 hover:!bg-red-50',\n contrast: '!border-black !text-black hover:!bg-gray-100',\n };\n classes.push(outlinedMap[this.severity || 'primary']);\n }\n\n if (this.text) {\n const textMap: Record<string, string> = {\n primary: '!text-blue-600 hover:!underline',\n secondary: '!text-gray-600 hover:!underline',\n success: '!text-green-600 hover:!underline',\n info: '!text-cyan-500 hover:!underline',\n warn: '!text-yellow-400 hover:!underline',\n help: '!text-purple-600 hover:!underline',\n danger: '!text-red-600 hover:!underline',\n contrast: '!text-black hover:!underline',\n };\n classes.push(textMap[this.severity || 'primary']);\n }\n\n return classes.join(' ');\n }\n\n handleClick(event: Event): void {\n if (this.disabled || this.loading) {\n event.preventDefault();\n return;\n }\n this.clicked.emit(event);\n }\n}\n","<button pButton [type]=\"type\" [disabled]=\"disabled || loading\" [icon]=\"icon\" [iconPos]=\"iconPosition\" [label]=\"label\"\n [loading]=\"loading\" [severity]=\"$any(severity)\" [outlined]=\"outlined\" [text]=\"text\" [raised]=\"raised\"\n [rounded]=\"rounded\" [ngClass]=\"buttonClasses\" (click)=\"handleClick($event)\">\n</button>","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n forwardRef,\n inject,\n OnInit,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n Validator,\n NG_VALUE_ACCESSOR,\n NG_VALIDATORS,\n AbstractControl,\n ValidationErrors,\n FormsModule,\n ReactiveFormsModule,\n NgControl,\n} from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { NgOtpInputModule } from 'ng-otp-input';\n\n@Component({\n selector: 'lib-taly-otp-input',\n templateUrl: './taly-otp-input.html',\n styleUrl: './taly-otp-input.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, FormsModule, ReactiveFormsModule, NgOtpInputModule],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TalyOtpInput),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => TalyOtpInput),\n multi: true,\n },\n ],\n})\nexport class TalyOtpInput implements ControlValueAccessor, Validator, OnInit, OnChanges {\n @Input() label = 'OTP';\n @Input() length = 6;\n @Input() numericOnly = true;\n @Input() autofocus = false;\n\n private _value = '';\n private _disabled = false;\n\n otpConfig: any = {};\n\n private onChange = (_: any) => {};\n private onTouched = () => {};\n\n ngControl = inject(NgControl, { optional: true, self: true });\n\n constructor(private cdr: ChangeDetectorRef) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n ngOnInit(): void {\n this.updateOtpConfig();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['length'] || changes['numericOnly'] || changes['autofocus']) {\n this.updateOtpConfig();\n }\n }\n\n private updateOtpConfig(): void {\n this.otpConfig = {\n length: this.length,\n inputClass: 'taly-otp-input',\n allowNumbersOnly: this.numericOnly,\n autofocus: this.autofocus,\n };\n this.cdr.markForCheck();\n }\n\n writeValue(value: any): void {\n this._value = value || '';\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n onOtpChange(value: string): void {\n this._value = value;\n this.onChange(value);\n this.onTouched();\n }\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n if (!control.value) return null;\n if (control.value.length !== this.length) {\n return { minlength: { requiredLength: this.length } };\n }\n return null;\n }\n}\n","<div class=\"block\" [ngClass]=\"{\n 'pointer-events-none opacity-60': disabled,\n 'border-red-500': ngControl?.invalid && ngControl?.touched\n }\">\n <!-- Label -->\n <label class=\"mb-1 block text-sm font-medium text-gray-700\">\n {{ label }}\n </label>\n\n <!-- OTP Input -->\n <ng-otp-input [config]=\"otpConfig\" [disabled]=\"disabled\" (onInputChange)=\"onOtpChange($event)\"></ng-otp-input>\n</div>\n\n<!-- Error Messages -->\n<div *ngIf=\"ngControl?.invalid && ngControl?.touched\" class=\"mt-1 text-sm text-red-600\">\n <div *ngIf=\"ngControl?.errors?.['required']\">\n {{ label }} is required\n </div>\n\n <div *ngIf=\"ngControl?.errors?.['minlength']\">\n OTP must be {{ ngControl?.errors?.['minlength']?.requiredLength }} digits\n </div>\n\n <div *ngIf=\"ngControl?.errors?.['maxlength']\">\n OTP must be {{ ngControl?.errors?.['maxlength']?.requiredLength }} digits\n </div>\n</div>","/*\n * Public API Surface of taly-shared-ui-lib\n */\n\nexport * from './lib/taly-shared-ui-lib';\nexport * from './lib/taly-input/taly-input';\nexport * from './lib/taly-select/taly-select';\nexport * from './lib/taly-input-group/taly-input-group';\nexport * from './lib/taly-table/taly-table'\nexport * from './lib/taly-accordion/taly-accordion'\nexport * from './lib/taly-password-components/taly-password-components'\nexport * from './lib/taly-buttons/taly-buttons'\nexport * from './lib/taly-otp-input/taly-otp-input'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3","i5","i4"],"mappings":"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"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { ElementRef, ChangeDetectorRef, EventEmitter, TemplateRef, OnInit, OnChanges, SimpleChanges } from '@angular/core';
|
|
3
|
+
import * as _angular_forms from '@angular/forms';
|
|
4
|
+
import { ControlValueAccessor, Validator, NgControl, AbstractControl, ValidationErrors, FormGroup } from '@angular/forms';
|
|
5
|
+
import { LazyLoadEvent } from 'primeng/api';
|
|
6
|
+
|
|
7
|
+
declare class TalySharedUiLib {
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TalySharedUiLib, never>;
|
|
9
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TalySharedUiLib, "lib-taly-shared-ui-lib", never, {}, {}, never, never, true, never>;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
declare class TalyInput implements ControlValueAccessor, Validator {
|
|
13
|
+
private cdr;
|
|
14
|
+
id: string;
|
|
15
|
+
label: string;
|
|
16
|
+
placeholderText: string;
|
|
17
|
+
inputType: string;
|
|
18
|
+
inputmodeType: string;
|
|
19
|
+
min?: number;
|
|
20
|
+
max?: number;
|
|
21
|
+
autofocus: boolean;
|
|
22
|
+
private _disabled;
|
|
23
|
+
private _value;
|
|
24
|
+
isFocused: boolean;
|
|
25
|
+
inputRef: ElementRef<HTMLInputElement>;
|
|
26
|
+
private onChange;
|
|
27
|
+
private onTouched;
|
|
28
|
+
ngControl: NgControl | null;
|
|
29
|
+
constructor(cdr: ChangeDetectorRef);
|
|
30
|
+
writeValue(value: any): void;
|
|
31
|
+
registerOnChange(fn: any): void;
|
|
32
|
+
registerOnTouched(fn: any): void;
|
|
33
|
+
setDisabledState(isDisabled: boolean): void;
|
|
34
|
+
get value(): any;
|
|
35
|
+
set value(val: any);
|
|
36
|
+
handleInputEvent(value: any): void;
|
|
37
|
+
onFocus(): void;
|
|
38
|
+
onBlur(): void;
|
|
39
|
+
onReset(event?: Event): void;
|
|
40
|
+
get disabled(): boolean;
|
|
41
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
42
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TalyInput, never>;
|
|
43
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TalyInput, "lib-taly-input", never, { "id": { "alias": "id"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholderText": { "alias": "placeholderText"; "required": false; }; "inputType": { "alias": "inputType"; "required": false; }; "inputmodeType": { "alias": "inputmodeType"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; }, {}, never, never, true, never>;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
declare class TalySelect implements ControlValueAccessor, Validator {
|
|
47
|
+
private cdr;
|
|
48
|
+
ngControl: any;
|
|
49
|
+
constructor();
|
|
50
|
+
id: string;
|
|
51
|
+
label: string;
|
|
52
|
+
options: any[];
|
|
53
|
+
optionsValue?: string;
|
|
54
|
+
optionsLabel: string;
|
|
55
|
+
placeholderText: string;
|
|
56
|
+
formGroup: FormGroup;
|
|
57
|
+
controlName: string;
|
|
58
|
+
min?: number;
|
|
59
|
+
max?: number;
|
|
60
|
+
textDirection?: string;
|
|
61
|
+
set isDisabled(value: boolean);
|
|
62
|
+
disabled: boolean;
|
|
63
|
+
showErrorMessages: boolean;
|
|
64
|
+
private _value;
|
|
65
|
+
get f(): {
|
|
66
|
+
[key: string]: _angular_forms.AbstractControl<any, any, any>;
|
|
67
|
+
};
|
|
68
|
+
get value(): any;
|
|
69
|
+
set value(val: any);
|
|
70
|
+
onChange: (value: any) => void;
|
|
71
|
+
onTouched: () => void;
|
|
72
|
+
writeValue(value: any): void;
|
|
73
|
+
registerOnChange(fn: any): void;
|
|
74
|
+
registerOnTouched(fn: any): void;
|
|
75
|
+
setDisabledState(isDisabled: boolean): void;
|
|
76
|
+
validate(): null;
|
|
77
|
+
onReset(event: any): void;
|
|
78
|
+
onHide(): void;
|
|
79
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TalySelect, never>;
|
|
80
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TalySelect, "lib-taly-select", never, { "id": { "alias": "id"; "required": true; }; "label": { "alias": "label"; "required": true; }; "options": { "alias": "options"; "required": true; }; "optionsValue": { "alias": "optionsValue"; "required": false; }; "optionsLabel": { "alias": "optionsLabel"; "required": false; }; "placeholderText": { "alias": "placeholderText"; "required": false; }; "formGroup": { "alias": "formGroup"; "required": true; }; "controlName": { "alias": "controlName"; "required": true; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "textDirection": { "alias": "textDirection"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; }, {}, never, never, true, never>;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
declare class TalyInputGroup implements ControlValueAccessor {
|
|
84
|
+
private cdr;
|
|
85
|
+
inputField: ElementRef<HTMLInputElement>;
|
|
86
|
+
private ngControl;
|
|
87
|
+
constructor();
|
|
88
|
+
id: string;
|
|
89
|
+
label: string;
|
|
90
|
+
placeholderText: string;
|
|
91
|
+
inputType: string;
|
|
92
|
+
formGroup: FormGroup;
|
|
93
|
+
controlName: string;
|
|
94
|
+
min?: number;
|
|
95
|
+
max?: number;
|
|
96
|
+
inputmodeType: string;
|
|
97
|
+
autofocus: boolean;
|
|
98
|
+
set isDisabled(disable: boolean);
|
|
99
|
+
disabled: boolean;
|
|
100
|
+
textDirection: string;
|
|
101
|
+
get f(): {
|
|
102
|
+
[key: string]: _angular_forms.AbstractControl<any, any, any>;
|
|
103
|
+
};
|
|
104
|
+
private _value;
|
|
105
|
+
set value(val: any);
|
|
106
|
+
get value(): any;
|
|
107
|
+
onChange: (value: any) => void;
|
|
108
|
+
onTouched: () => void;
|
|
109
|
+
writeValue(value: any): void;
|
|
110
|
+
registerOnChange(fn: any): void;
|
|
111
|
+
registerOnTouched(fn: any): void;
|
|
112
|
+
validate(): null;
|
|
113
|
+
onReset(event?: Event): void;
|
|
114
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TalyInputGroup, never>;
|
|
115
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TalyInputGroup, "lib-taly-input-group", never, { "id": { "alias": "id"; "required": true; }; "label": { "alias": "label"; "required": true; }; "placeholderText": { "alias": "placeholderText"; "required": false; }; "inputType": { "alias": "inputType"; "required": false; }; "formGroup": { "alias": "formGroup"; "required": false; }; "controlName": { "alias": "controlName"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "inputmodeType": { "alias": "inputmodeType"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; }, {}, never, ["[addonContent]"], true, never>;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
declare class TalyTable<T = any> {
|
|
119
|
+
value: T[];
|
|
120
|
+
loading: boolean;
|
|
121
|
+
paginator: boolean;
|
|
122
|
+
rows: number;
|
|
123
|
+
first: number;
|
|
124
|
+
lazy: boolean;
|
|
125
|
+
totalRecords: number;
|
|
126
|
+
sortable: boolean;
|
|
127
|
+
sortField?: string;
|
|
128
|
+
sortOrder?: 1 | -1;
|
|
129
|
+
selection?: T | T[];
|
|
130
|
+
selectionChange: EventEmitter<T | T[]>;
|
|
131
|
+
userId: number;
|
|
132
|
+
globalFilterFields?: string[];
|
|
133
|
+
columns: Array<{
|
|
134
|
+
field: string;
|
|
135
|
+
header: string;
|
|
136
|
+
sortable?: boolean;
|
|
137
|
+
filter?: boolean;
|
|
138
|
+
style?: any;
|
|
139
|
+
width?: string;
|
|
140
|
+
type?: 'text' | 'date' | 'number' | 'boolean';
|
|
141
|
+
}>;
|
|
142
|
+
showSelectionCheckbox: boolean;
|
|
143
|
+
showRowIndex: boolean;
|
|
144
|
+
selectionMode: 'single' | 'multiple' | null;
|
|
145
|
+
dataKey?: string;
|
|
146
|
+
actionTemplate?: TemplateRef<any>;
|
|
147
|
+
statusTemplate?: TemplateRef<any>;
|
|
148
|
+
rowSelect: EventEmitter<any>;
|
|
149
|
+
onLazyLoad: EventEmitter<LazyLoadEvent>;
|
|
150
|
+
onSort: EventEmitter<any>;
|
|
151
|
+
onPage: EventEmitter<any>;
|
|
152
|
+
onFilter: EventEmitter<any>;
|
|
153
|
+
onRowSelect: EventEmitter<T>;
|
|
154
|
+
onRowUnselect: EventEmitter<T>;
|
|
155
|
+
pageChange: EventEmitter<{
|
|
156
|
+
page: number;
|
|
157
|
+
size: number;
|
|
158
|
+
}>;
|
|
159
|
+
rowClick: EventEmitter<any>;
|
|
160
|
+
onSelectionChange(event: any): void;
|
|
161
|
+
onPageChange(event: any): void;
|
|
162
|
+
onSortChange(event: any): void;
|
|
163
|
+
onFilterChange(event: any): void;
|
|
164
|
+
onRowSelectEvent(event: any): void;
|
|
165
|
+
onRowUnselectEvent(event: any): void;
|
|
166
|
+
onRowClick(rowData: any): void;
|
|
167
|
+
onPaginate(event: any): void;
|
|
168
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TalyTable<any>, never>;
|
|
169
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TalyTable<any>, "lib-taly-table", never, { "value": { "alias": "value"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "paginator": { "alias": "paginator"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "first": { "alias": "first"; "required": false; }; "lazy": { "alias": "lazy"; "required": false; }; "totalRecords": { "alias": "totalRecords"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "sortField": { "alias": "sortField"; "required": false; }; "sortOrder": { "alias": "sortOrder"; "required": false; }; "selection": { "alias": "selection"; "required": false; }; "userId": { "alias": "userId"; "required": false; }; "globalFilterFields": { "alias": "globalFilterFields"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "showSelectionCheckbox": { "alias": "showSelectionCheckbox"; "required": false; }; "showRowIndex": { "alias": "showRowIndex"; "required": false; }; "selectionMode": { "alias": "selectionMode"; "required": false; }; "dataKey": { "alias": "dataKey"; "required": false; }; }, { "selectionChange": "selectionChange"; "rowSelect": "rowSelect"; "onLazyLoad": "onLazyLoad"; "onSort": "onSort"; "onPage": "onPage"; "onFilter": "onFilter"; "onRowSelect": "onRowSelect"; "onRowUnselect": "onRowUnselect"; "pageChange": "pageChange"; "rowClick": "rowClick"; }, ["actionTemplate", "statusTemplate"], never, true, never>;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
interface AccordionItem {
|
|
173
|
+
itemTitleEn: string;
|
|
174
|
+
itemTitleAr: string;
|
|
175
|
+
descriptionEn: string;
|
|
176
|
+
descriptionAr: string;
|
|
177
|
+
disabled?: boolean;
|
|
178
|
+
}
|
|
179
|
+
declare class TalyAccordion implements OnInit {
|
|
180
|
+
items: AccordionItem[];
|
|
181
|
+
textDirection: 'ltr' | 'rtl';
|
|
182
|
+
multiple: boolean;
|
|
183
|
+
/**
|
|
184
|
+
* Value can be a string (single) or string array (multiple).
|
|
185
|
+
*/
|
|
186
|
+
value: string | string[] | null;
|
|
187
|
+
ngOnInit(): void;
|
|
188
|
+
isActive(index: number): boolean;
|
|
189
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TalyAccordion, never>;
|
|
190
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TalyAccordion, "lib-taly-accordion", never, { "items": { "alias": "items"; "required": false; }; "textDirection": { "alias": "textDirection"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; }, {}, never, never, true, never>;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
declare class TalyPasswordComponents implements ControlValueAccessor {
|
|
194
|
+
private cdr;
|
|
195
|
+
id: string;
|
|
196
|
+
label: string;
|
|
197
|
+
placeholderText: string;
|
|
198
|
+
formGroup: FormGroup;
|
|
199
|
+
controlName: string;
|
|
200
|
+
max: number;
|
|
201
|
+
inputmodeType: string;
|
|
202
|
+
disabled: boolean;
|
|
203
|
+
fieldTextType: boolean;
|
|
204
|
+
get f(): {
|
|
205
|
+
[key: string]: _angular_forms.AbstractControl<any, any, any>;
|
|
206
|
+
};
|
|
207
|
+
writeValue(value: any): void;
|
|
208
|
+
registerOnChange(fn: any): void;
|
|
209
|
+
registerOnTouched(fn: any): void;
|
|
210
|
+
validate(): null;
|
|
211
|
+
onReset(): void;
|
|
212
|
+
toggleFieldTextType(): void;
|
|
213
|
+
private _value;
|
|
214
|
+
onChange: (_: any) => void;
|
|
215
|
+
onTouched: () => void;
|
|
216
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TalyPasswordComponents, never>;
|
|
217
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TalyPasswordComponents, "lib-taly-password", never, { "id": { "alias": "id"; "required": true; }; "label": { "alias": "label"; "required": true; }; "placeholderText": { "alias": "placeholderText"; "required": false; }; "formGroup": { "alias": "formGroup"; "required": false; }; "controlName": { "alias": "controlName"; "required": false; }; "max": { "alias": "max"; "required": false; }; "inputmodeType": { "alias": "inputmodeType"; "required": false; }; }, {}, never, never, true, never>;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
declare class TalyButtons {
|
|
221
|
+
label: string;
|
|
222
|
+
icon: string;
|
|
223
|
+
iconPosition: 'left' | 'right';
|
|
224
|
+
severity: 'primary' | 'secondary' | 'success' | 'info' | 'warn' | 'help' | 'danger' | 'contrast' | null | undefined;
|
|
225
|
+
outlined: boolean;
|
|
226
|
+
text: boolean;
|
|
227
|
+
raised: boolean;
|
|
228
|
+
rounded: boolean;
|
|
229
|
+
loading: boolean;
|
|
230
|
+
disabled: boolean;
|
|
231
|
+
fullWidth: boolean;
|
|
232
|
+
type: 'button' | 'submit' | 'reset';
|
|
233
|
+
clicked: EventEmitter<Event>;
|
|
234
|
+
get buttonClasses(): string;
|
|
235
|
+
handleClick(event: Event): void;
|
|
236
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TalyButtons, never>;
|
|
237
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TalyButtons, "lib-taly-buttons", never, { "label": { "alias": "label"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "iconPosition": { "alias": "iconPosition"; "required": false; }; "severity": { "alias": "severity"; "required": false; }; "outlined": { "alias": "outlined"; "required": false; }; "text": { "alias": "text"; "required": false; }; "raised": { "alias": "raised"; "required": false; }; "rounded": { "alias": "rounded"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "type": { "alias": "type"; "required": false; }; }, { "clicked": "clicked"; }, never, never, true, never>;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
declare class TalyOtpInput implements ControlValueAccessor, Validator, OnInit, OnChanges {
|
|
241
|
+
private cdr;
|
|
242
|
+
label: string;
|
|
243
|
+
length: number;
|
|
244
|
+
numericOnly: boolean;
|
|
245
|
+
autofocus: boolean;
|
|
246
|
+
private _value;
|
|
247
|
+
private _disabled;
|
|
248
|
+
otpConfig: any;
|
|
249
|
+
private onChange;
|
|
250
|
+
private onTouched;
|
|
251
|
+
ngControl: NgControl | null;
|
|
252
|
+
constructor(cdr: ChangeDetectorRef);
|
|
253
|
+
ngOnInit(): void;
|
|
254
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
255
|
+
private updateOtpConfig;
|
|
256
|
+
writeValue(value: any): void;
|
|
257
|
+
registerOnChange(fn: any): void;
|
|
258
|
+
registerOnTouched(fn: any): void;
|
|
259
|
+
setDisabledState(isDisabled: boolean): void;
|
|
260
|
+
onOtpChange(value: string): void;
|
|
261
|
+
get disabled(): boolean;
|
|
262
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
263
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TalyOtpInput, never>;
|
|
264
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TalyOtpInput, "lib-taly-otp-input", never, { "label": { "alias": "label"; "required": false; }; "length": { "alias": "length"; "required": false; }; "numericOnly": { "alias": "numericOnly"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; }, {}, never, never, true, never>;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
export { TalyAccordion, TalyButtons, TalyInput, TalyInputGroup, TalyOtpInput, TalyPasswordComponents, TalySelect, TalySharedUiLib, TalyTable };
|
|
268
|
+
export type { AccordionItem };
|
package/package.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "taly-shared-ui-lib",
|
|
3
|
+
"version": "0.0.6",
|
|
4
|
+
"peerDependencies": {
|
|
5
|
+
"@angular/common": "^20.3.0",
|
|
6
|
+
"@angular/core": "^20.3.0",
|
|
7
|
+
"primeflex": "^4.0.0",
|
|
8
|
+
"primeicons": "^7.0.0",
|
|
9
|
+
"primeng": "^20.4.0",
|
|
10
|
+
"ng-otp-input": "^2.0.9"
|
|
11
|
+
},
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"tslib": "^2.3.0"
|
|
14
|
+
},
|
|
15
|
+
"sideEffects": false,
|
|
16
|
+
"module": "fesm2022/taly-shared-ui-lib.mjs",
|
|
17
|
+
"typings": "index.d.ts",
|
|
18
|
+
"exports": {
|
|
19
|
+
"./package.json": {
|
|
20
|
+
"default": "./package.json"
|
|
21
|
+
},
|
|
22
|
+
".": {
|
|
23
|
+
"types": "./index.d.ts",
|
|
24
|
+
"default": "./fesm2022/taly-shared-ui-lib.mjs"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/* variables.scss */
|
|
2
|
+
:root {
|
|
3
|
+
--shades-1: #1c2e40;
|
|
4
|
+
--shades-2: #354250;
|
|
5
|
+
--shades-3: #cad3db;
|
|
6
|
+
--shades-4: #e3e8ed;
|
|
7
|
+
--shades-5: #cad3db;
|
|
8
|
+
--shades-6: #e3e7ed;
|
|
9
|
+
--shades-7: #f3f5f7;
|
|
10
|
+
--shades-8: #65717d;
|
|
11
|
+
--shades-9: #bf581d;
|
|
12
|
+
--shades-10: #354050;
|
|
13
|
+
--shades-11: #656f7d;
|
|
14
|
+
--shaded-12: #deeeff;
|
|
15
|
+
--shaded-13: #ff3b6a;
|
|
16
|
+
--shaded-14: #f3f4f7;
|
|
17
|
+
--shades-15: #6b7885;
|
|
18
|
+
--ui-black: #000000;
|
|
19
|
+
--ui-success: #2dd494;
|
|
20
|
+
--ui-success-dark: #007d53;
|
|
21
|
+
--ui-taly-black: #131f2b;
|
|
22
|
+
--ui-taly-dialog-black: #131d2b;
|
|
23
|
+
--ui-taly-dark-black: #1c2b40;
|
|
24
|
+
--brand-white: #ffffff;
|
|
25
|
+
--brand-taly-sky-blue: #0e85ff;
|
|
26
|
+
--hero-banner-bg: #001a3f;
|
|
27
|
+
--brand-taly-sky-blue-shade: #0c72db;
|
|
28
|
+
--brand-taly-sky-blue-dark-shade: #0c62db;
|
|
29
|
+
--brand-taly-sky-dialog-shade: #0e6ff7;
|
|
30
|
+
--manrope: 'Manrope';
|
|
31
|
+
--brand-translucid-white: rgba(242, 243, 244, 0.8);
|
|
32
|
+
--ui-error-dark: #d12e55;
|
|
33
|
+
--ui-error: #ff3b6a;
|
|
34
|
+
--ui-error-light: #fcf3f6;
|
|
35
|
+
--border-radius: #cad1db;
|
|
36
|
+
--brand-taly-sky-blue-shade-1: #2e93ff;
|
|
37
|
+
--brand-taly-sky-footer-shade-1: #8593a6;
|
|
38
|
+
--brand-taly-sky-light: #ddeeff;
|
|
39
|
+
--brand-taly-sky-light-shade: #1974e8;
|
|
40
|
+
--other-translucid-white: rgba(242, 243, 244, 0.8);
|
|
41
|
+
--brand-header: #f2f3f5;
|
|
42
|
+
--shades-2-dark: #68737f;
|
|
43
|
+
--dark-grey: #818c98;
|
|
44
|
+
--dark-black-grey: #354250;
|
|
45
|
+
--dark-border-radius: #646466;
|
|
46
|
+
--light-banner: #a9cfff;
|
|
47
|
+
--border-shades: #ff3b6a1a;
|
|
48
|
+
--shades-16: #6c757d;
|
|
49
|
+
--shades-17: #f2f2f2;
|
|
50
|
+
--shades-18: #f3f3f3;
|
|
51
|
+
--shades-19: #131f2b8c;
|
|
52
|
+
--spinner-size: 50px;
|
|
53
|
+
--spinner-border: 5px;
|
|
54
|
+
--spinner-bg: #e0e0e0;
|
|
55
|
+
--spinner-color: #007bff;
|
|
56
|
+
--loader-text-color: var(--ui-taly-dark-black);
|
|
57
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
@use './_variables' as *;
|
|
2
|
+
@use './_theme' as *;
|
|
3
|
+
|
|
4
|
+
@tailwind base;
|
|
5
|
+
@tailwind components;
|
|
6
|
+
@tailwind utilities;
|
|
7
|
+
|
|
8
|
+
/* PrimeFlex */
|
|
9
|
+
@import "primeflex/primeflex.css";
|
|
10
|
+
|
|
11
|
+
/* PrimeIcons */
|
|
12
|
+
@import "primeicons/primeicons.css";
|
|
13
|
+
|
|
14
|
+
.taly-otp-input {
|
|
15
|
+
@apply w-10 h-10 mr-1 text-lg text-center rounded-md border border-gray-300
|
|
16
|
+
focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.input-error .taly-otp-input {
|
|
20
|
+
@apply border-red-500;
|
|
21
|
+
}
|