ms-design-system 0.0.24 → 0.0.26
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/fesm2022/ms-design-system.mjs +304 -18
- package/fesm2022/ms-design-system.mjs.map +1 -1
- package/package.json +1 -1
- package/src/styles.scss +102 -19
- package/types/ms-design-system.d.ts +75 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ms-design-system.mjs","sources":["../../../projects/ui-library/src/lib/components/button/ms-button.component.ts","../../../projects/ui-library/src/lib/components/button/ms-button.component.html","../../../projects/ui-library/src/lib/components/dropdown/dropdown.ts","../../../projects/ui-library/src/lib/components/dropdown/dropdown.html","../../../projects/ui-library/src/lib/components/ms-checkbox/ms-checkbox.ts","../../../projects/ui-library/src/lib/components/ms-checkbox/ms-checkbox.html","../../../projects/ui-library/src/lib/components/ms-badge/ms-badge.ts","../../../projects/ui-library/src/lib/components/ms-badge/ms-badge.html","../../../projects/ui-library/src/lib/components/ms-toggle/ms-toggle.ts","../../../projects/ui-library/src/lib/components/ms-toggle/ms-toggle.html","../../../projects/ui-library/src/lib/components/ms-radio-button/ms-radio-button.ts","../../../projects/ui-library/src/lib/components/ms-radio-button/ms-radio-button.html","../../../projects/ui-library/src/lib/ms-design-system.module.ts","../../../projects/ui-library/src/lib/providers/ms-design-system.ts","../../../projects/ui-library/src/lib/index.ts","../../../projects/ui-library/src/ms-design-system.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, ContentChild, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\n\n\ntype IconPosition = 'prefix' | 'suffix';\n\n@Component({\n selector: 'ms-button',\n imports: [CommonModule],\n templateUrl: './ms-button.component.html',\n styleUrls: ['./ms-button.component.scss']\n})\nexport class MsButton implements OnChanges, OnInit {\n @Input() type: 'button' | 'submit' | 'reset' = 'button';\n @Input() variant: string = '';\n @Input() size: string = '';\n @Input() radiussize: string = '';\n @Input() block: boolean = false;\n @Input() disabled: boolean = false;\n @Input() isBorder: boolean = false;\n @Input() textSrc: string = '';\n\n // Icon support\n @Input() icon: string | null = null; // e.g. 'fa fa-plus' or 'bi bi-search'\n @Input() iconPosition: IconPosition = 'prefix'; // 'prefix' or 'suffix'\n @Input() iconOnly: boolean = false; // icon-only mode (no text)\n\n @Input() class: string = '';\n @Input() buttonType: string = '';\n @Output() htmlChange = new EventEmitter<string>();\n @Output() click = new EventEmitter<Event>();\n @ContentChild('projectedContent', { static: false }) projectedContent: any;\n /** Dynamic class computation */\n get classes(): string {\n const radiusClass = this.radiussize !== 'none' ? `ms-rounded-${this.radiussize}` : '';\n const variant = this.variant !== 'default' ? `ms-btn-${this.variant}` : '';\n const link = this.variant !== 'link' ? `ms-btn` : '';\n const size = this.size !== '' ? `ms-btn-${this.size}` : '';\n const isBorder = this.isBorder ? `ms-border` : '';\n return [\n link,\n variant,\n size,\n radiusClass,\n this.block ? 'block' : '',\n isBorder,\n this.iconOnly ? 'icon-only' : ''\n ]\n .filter(Boolean)\n .join(' ')\n .trim();\n }\n\n get userClass() {\n return this.class;\n }\n\n /** Generate HTML string */\n getHtmlString(): string {\n const disabledAttr = this.disabled ? ' disabled' : '';\n const iconHtml = this.icon\n ? `<i class=\"${this.icon}\"></i>`\n : '';\n\n let innerHtml = '';\n\n if (this.iconOnly) {\n // Icon-only → just icon, centered\n innerHtml = `<i class=\"${this.icon} btn-icon\"></i>`;\n }\n else if (this.icon && this.iconPosition === 'prefix') {\n // Prefix → icon before text\n innerHtml = `<i class=\"${this.icon} btn-icon prefix\"></i> ${this.textSrc}`;\n }\n else if (this.icon && this.iconPosition === 'suffix') {\n // Suffix → icon after text\n innerHtml = `${this.textSrc} <i class=\"${this.icon} btn-icon suffix\"></i>`;\n }\n else {\n // Text only\n innerHtml = this.textSrc;\n }\n \n\n return `<ms-button type=\"${this.type}\" class=\"${this.classes}\"${disabledAttr}>${innerHtml}</ms-button>`;\n }\n\n\n constructor(private el: ElementRef) { }\n\n\n ngOnChanges(changes: SimpleChanges): void {\n this.htmlChange.emit(this.getHtmlString());\n // if(this.radiussize === 'none' || this.radiussize === 'xs' || this.radiussize === 'default'){\n // this.radiussize = ''\n // }\n // if(this.variant === 'default'){\n // this.variant = ''\n // }else{\n // this.variant = `-${this.variant}`\n // }\n }\n\n ngOnInit(): void {\n this.htmlChange.emit(this.getHtmlString());\n // if(this.radiussize === 'none' || this.radiussize === 'xs' || this.radiussize === 'default'){\n // this.radiussize = ''\n // }\n // if(this.variant === 'default'){\n // this.variant = ''\n // }else{\n // this.variant = `-${this.variant}`\n // }\n }\n\n ngAfterContentInit() {\n const inner = this.el.nativeElement.innerText.trim();\n if (inner && !this.textSrc) {\n this.textSrc = inner;\n }\n // if(this.radiussize === 'none' || this.radiussize === 'xs' || this.radiussize === 'default'){\n // this.radiussize = ''\n // }\n // if(this.variant === 'default'){\n // this.variant = ''\n // }else{\n // this.variant = `-${this.variant}`\n // }\n }\n\n onClick(event: Event) {\n if (!this.disabled) {\n this.click.emit(event);\n } else {\n event.preventDefault();\n }\n }\n\n}\n\n","@if (buttonType ==='Playground') {\n <a [type]=\"type\" [class.disabled]=\"disabled\" [class]=\"classes + ' ' + userClass\" (click)=\"onClick($event)\">\n\n <!-- @if (icon && iconPosition === 'prefix') {\n <i [ngClass]=\"iconOnly ? [icon, 'btn-icon'] : [icon, 'btn-icon', 'prefix']\"></i>\n } -->\n\n <!-- 👇 IMPORTANT: This shows <ms-button>Click Me</ms-button> -->\n @if (!iconOnly && !textSrc) {\n <span><ng-content></ng-content></span>\n }\n\n <!-- If textSrc is given -->\n @if (!iconOnly && textSrc) {\n <span>{{ textSrc }}</span>\n }\n\n <!-- @if (icon && iconPosition === 'suffix') {\n <i [ngClass]=\"iconOnly ? [icon, 'btn-icon'] : [icon, 'btn-icon', 'suffix']\"></i>\n } -->\n</a>\n}@else {\n <ng-content [type]=\"type\" [class.disabled]=\"disabled\" [class]=\"classes + ' ' + userClass\" (click)=\"onClick($event)\">\n\n <!-- @if (icon && iconPosition === 'prefix') {\n <i [ngClass]=\"iconOnly ? [icon, 'btn-icon'] : [icon, 'btn-icon', 'prefix']\"></i>\n } -->\n\n <!-- 👇 IMPORTANT: This shows <ms-button>Click Me</ms-button> -->\n @if (!iconOnly && !textSrc) {\n <span><ng-content></ng-content></span>\n }\n\n <!-- If textSrc is given -->\n @if (!iconOnly && textSrc) {\n <span>{{ textSrc }}</span>\n }\n\n <!-- @if (icon && iconPosition === 'suffix') {\n <i [ngClass]=\"iconOnly ? [icon, 'btn-icon'] : [icon, 'btn-icon', 'suffix']\"></i>\n } -->\n</ng-content>\n}","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'ms-dropdown',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './dropdown.html',\n styleUrls: ['./dropdown.scss']\n})\nexport class MsDropdown {\n\n}\n","<p>dropdown works!</p>\n","import { AfterViewInit, booleanAttribute, Component, ElementRef, EventEmitter, forwardRef, Input, Output, ViewChild } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\n\n@Component({\n selector: 'ms-checkbox',\n imports: [],\n templateUrl: './ms-checkbox.html',\n styleUrl: './ms-checkbox.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MsCheckbox),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MsCheckbox),\n multi: true\n }\n ]\n})\nexport class MsCheckbox implements ControlValueAccessor, Validator{\n\n @Input() label?: string;\n\n @Input({ transform: booleanAttribute }) disabled = false;\n @Input({ transform: booleanAttribute }) skeleton = false;\n @Input({ transform: booleanAttribute }) required = false;\n @Input({ transform: booleanAttribute }) indeterminate = false;\n @Input({ transform: booleanAttribute }) invalidBox = false;\n @Input({ transform: booleanAttribute }) checked = false;\n\n /* ---------- Internal state ---------- */\n touched = false;\n\n /* ---------- CVA ---------- */\n private onChange = (_: boolean) => {};\n private onTouched = () => {};\n\n writeValue(value: boolean): void {\n this.checked = !!value;\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 }\n\n /* ---------- Validation ---------- */\n validate(control: AbstractControl): ValidationErrors | null {\n if (this.required && !this.checked) {\n return { required: true };\n }\n return null;\n }\n\n /* ---------- UI Logic ---------- */\n toggle(): void {\n if (this.disabled || this.skeleton) return;\n\n this.indeterminate = false; // ✅ FIX\n this.checked = !this.checked;\n\n this.onChange(this.checked);\n this.markTouched();\n }\n\n markTouched(): void {\n if (!this.touched) {\n this.touched = true;\n this.onTouched();\n }\n }\n\n get invalid(): boolean {\n if(this.invalidBox){\n return true\n }\n return this.required && this.touched && !this.checked;\n }\n\n\n}","<label\n class=\"ms-checkbox\"\n [class.disabled]=\"disabled\"\n [class.invalid]=\"invalid\"\n [class.skeleton]=\"skeleton\"\n>\n @if (skeleton) {\n <div class=\"ms-checkbox-skeleton\"></div>\n } @else {\n\n <input\n type=\"checkbox\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"toggle()\"\n (blur)=\"markTouched()\"\n />\n\n <span class=\"ms-checkbox-box\">\n @if (indeterminate) {\n <span class=\"ms-indeterminate\"></span>\n } @else if (checked) {\n <span class=\"ms-checkmark\">✓</span>\n }\n </span>\n\n @if (label) {\n <span class=\"ms-label\">{{ label }}</span>\n }\n }\n</label>\n\n","import { Component, ContentChild, ElementRef, EventEmitter, Input, Output, SimpleChanges } from '@angular/core';\n\ntype IconPosition = 'prefix' | 'suffix';\n@Component({\n selector: 'ms-badge',\n imports: [],\n templateUrl: './ms-badge.html',\n styleUrl: './ms-badge.scss',\n})\nexport class MsBadge {\n @Input() color: string = '';\n @Input() radiussize: string = '';\n @Input() block: boolean = false;\n @Input() disabled: boolean = false;\n @Input() isDark: boolean = false;\n @Input() text: string = '';\n\n // Icon support\n @Input() icon: string | null = null; // e.g. 'fa fa-plus' or 'bi bi-search'\n @Input() iconOnly: string | null = null; // e.g. 'fa fa-plus' or 'bi bi-search'\n @Input() iconPosition: IconPosition = 'prefix'; // 'prefix' or 'suffix'\n\n @Input() class: string = '';\n @Output() htmlChange = new EventEmitter<string>();\n @Output() click = new EventEmitter<Event>();\n @ContentChild('projectedContent', { static: false }) projectedContent: any;\n\n get classes(): string {\n const radiusClass = this.radiussize !== 'none' ? `ms-rounded-${this.radiussize}` : '';\n // const color = `ms-badge-${this.color}` ;\n const color = this.isDark ? `ms-badge-${this.color}-dark` : `ms-badge-${this.color}`;\n const badge = `ms-badge`;\n return [\n // link,\n color,\n badge,\n radiusClass,\n this.block ? 'block' : '',\n ]\n .filter(Boolean)\n .join(' ')\n .trim();\n }\n\n get userClass() {\n return this.class;\n }\n\n /** Generate HTML string */\n getHtmlString(): string {\n const disabledAttr = this.disabled ? ' disabled' : '';\n const iconHtml = this.icon\n ? `<i class=\"${this.icon}\"></i>`\n : '';\n\n let innerHtml = '';\n\n if (this.iconOnly) {\n // Icon-only → just icon, centered\n innerHtml = `<i class=\"${this.icon} btn-icon\"></i>`;\n }\n else if (this.icon && this.iconPosition === 'prefix') {\n // Prefix → icon before text\n innerHtml = `<i class=\"${this.icon} btn-icon prefix\"></i> ${this.text}`;\n }\n else if (this.icon && this.iconPosition === 'suffix') {\n // Suffix → icon after text\n innerHtml = `${this.text} <i class=\"${this.icon} btn-icon suffix\"></i>`;\n }\n else {\n // Text only\n innerHtml = this.text;\n }\n \n\n return `<ms-badge text=\"${innerHtml}\" class=\"${this.classes}\"${disabledAttr}></ms-badge>`;\n }\n\n\n constructor(private el: ElementRef) { }\n\n\n ngOnChanges(changes: SimpleChanges): void {\n this.htmlChange.emit(this.getHtmlString());\n }\n\n ngOnInit(): void {\n this.htmlChange.emit(this.getHtmlString());\n }\n\n ngAfterContentInit() {\n // const inner = this.el.nativeElement.innerText.trim();\n // if (inner && !this.text) {\n // this.text = inner;\n // }\n }\n\n onClick(event: Event) {\n if (!this.disabled) {\n this.click.emit(event);\n } else {\n event.preventDefault();\n }\n }\n}\n","<span [class.disabled]=\"disabled\" [class]=\"classes + ' ' + userClass\" (click)=\"onClick($event)\">\n <span>{{ text }}</span>\n</span>","import { booleanAttribute, Component, EventEmitter, forwardRef, Input, Output, SimpleChanges } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\n\n@Component({\n selector: 'ms-toggle',\n imports: [],\n templateUrl: './ms-toggle.html',\n styleUrl: './ms-toggle.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MsToggle),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MsToggle),\n multi: true\n }\n ]\n})\nexport class MsToggle implements ControlValueAccessor, Validator {\n @Input() label?: any;\n @Input() class: string = '';\n @Input() size: string = '';\n @Input({ transform: booleanAttribute }) disabled = false;\n @Input({ transform: booleanAttribute }) required = false;\n @Input({ transform: booleanAttribute }) invalid = false;\n @Input({ transform: booleanAttribute }) checked = false;\n @Output() htmlChange = new EventEmitter<string>();\n /* ---------- Internal ---------- */\n touched = false;\n\n /* ---------- CVA ---------- */\n private onChange = (_: boolean) => { };\n private onTouched = () => { };\n\n writeValue(value: boolean): void {\n this.checked = !!value;\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 }\n\n /* ---------- Validation ---------- */\n validate(_: AbstractControl): ValidationErrors | null {\n if (this.required && !this.checked) {\n return { required: true };\n }\n return null;\n }\n\n /* ---------- UI ---------- */\n toggle(): void {\n if (this.disabled) return;\n\n this.checked = !this.checked;\n this.onChange(this.checked);\n this.markTouched();\n }\n\n markTouched(): void {\n if (!this.touched) {\n this.touched = true;\n this.onTouched();\n }\n }\n\n get userClass() {\n return this.class;\n }\n\n get classes(): string {\n return ['ms-toggle-' + this.size].filter(Boolean).join(' ');\n }\n /** Generate HTML string */\n getHtmlString(): string {\n const disabledAttr = this.disabled ? ' disabled' : '';\n let innerHtml = '';\n innerHtml = this.label;\n return `<ms-toggle label=\"${innerHtml}\" class=\"${this.classes}\"${disabledAttr}></ms-toggle>`;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.htmlChange.emit(this.getHtmlString());\n }\n\n ngOnInit(): void {\n this.htmlChange.emit(this.getHtmlString());\n }\n}\n","<label class=\"ms-toggle\" [class.disabled]=\"disabled\" [class]=\"classes + ' ' + userClass\" [class.invalid]=\"invalid\">\n <input type=\"checkbox\" [checked]=\"checked\" [disabled]=\"disabled\" (change)=\"toggle()\" (blur)=\"markTouched()\" />\n <span class=\"ms-toggle-track\">\n <span class=\"ms-toggle-thumb\"></span>\n </span>\n @if (label) {\n <span class=\"ms-label\">{{ label }}</span>\n }\n</label>\n\n\n","import {\n Component,\n forwardRef,\n Input\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n AbstractControl,\n ValidationErrors,\n Validator\n} from '@angular/forms';\n\n@Component({\n selector: 'ms-radio-button',\n templateUrl: './ms-radio-button.html',\n styleUrls: ['./ms-radio-button.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MsRadioButton),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MsRadioButton),\n multi: true\n }\n ]\n})\nexport class MsRadioButton implements ControlValueAccessor, Validator {\n @Input() label?: string;\n @Input() name!: string;\n @Input() value!: any;\n\n @Input() disabled = false;\n @Input() required = false;\n @Input() invalidBox = false;\n @Input() skeleton = false;\n @Input() checked = false;\n\n touched = false;\n\n private onChange = (_: any) => {};\n private onTouched = () => {};\n\n // CVA Methods\n writeValue(value: any): void {\n this.checked = value === this.value;\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 }\n\n // Validation\n validate(control: AbstractControl): ValidationErrors | null {\n if (this.required && !control.value) {\n return { required: true };\n }\n return null;\n }\n\n // UI\n select(): void {\n if (this.disabled) return;\n\n this.checked = true;\n this.onChange(this.value);\n this.markTouched();\n }\n\n markTouched(): void {\n if (!this.touched) {\n this.touched = true;\n this.onTouched();\n }\n }\n\n get invalid(): boolean {\n return this.invalidBox; // 🔥 only rely on parent input for border\n }\n}\n","<label class=\"ms-radio\"\n [class.checked]=\"checked\"\n [class.disabled]=\"disabled\"\n [class.skeleton]=\"skeleton\"\n [class.invalid]=\"invalid\">\n \n @if (skeleton) {\n <div class=\"ms-radio-skeleton\"></div>\n } @else {\n <input\n type=\"radio\"\n [name]=\"name\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"select()\"\n (blur)=\"markTouched()\"\n />\n\n <span class=\"ms-radio-circle\">\n <span class=\"ms-radio-dot\"></span>\n </span>\n\n @if (label) {\n <span class=\"ms-label\">{{ label }}</span>\n }\n}\n</label>\n","import { NgModule } from '@angular/core';\nimport { MsButton } from './components/button/ms-button.component';\nimport { MsDropdown } from './components/dropdown/dropdown';\nimport { MsCheckbox } from './components/ms-checkbox/ms-checkbox';\nimport { MsBadge } from './components/ms-badge/ms-badge';\nimport { MsToggle } from './components/ms-toggle/ms-toggle';\nimport { MsRadioButton } from './components/ms-radio-button/ms-radio-button';\n\n@NgModule({\n imports: [MsButton, MsDropdown,MsCheckbox,MsBadge,MsToggle, MsRadioButton], // standalone components can be imported\n exports: [MsButton, MsDropdown,MsCheckbox,MsBadge,MsToggle,MsRadioButton]\n})\nexport class MsDesignSystemModule {}\n","import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\n\nexport function provideMsDesignSystem(): EnvironmentProviders {\n return makeEnvironmentProviders([]);\n}\n","// Components\nexport * from './components/button/ms-button.component';\nexport * from './components/dropdown/dropdown';\nexport * from './components/ms-checkbox/ms-checkbox';\nexport * from './components/ms-badge/ms-badge';\nexport * from './components/ms-toggle/ms-toggle';\nexport * from './components/ms-radio-button/ms-radio-button';\n\n// NgModule\nexport * from './ms-design-system.module';\n\n// Providers\nexport * from './providers/ms-design-system';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ms-design-system.mjs","sources":["../../../projects/ui-library/src/lib/components/button/ms-button.component.ts","../../../projects/ui-library/src/lib/components/button/ms-button.component.html","../../../projects/ui-library/src/lib/components/dropdown/dropdown.ts","../../../projects/ui-library/src/lib/components/dropdown/dropdown.html","../../../projects/ui-library/src/lib/components/ms-checkbox/ms-checkbox.ts","../../../projects/ui-library/src/lib/components/ms-checkbox/ms-checkbox.html","../../../projects/ui-library/src/lib/components/ms-badge/ms-badge.ts","../../../projects/ui-library/src/lib/components/ms-badge/ms-badge.html","../../../projects/ui-library/src/lib/components/ms-toggle/ms-toggle.ts","../../../projects/ui-library/src/lib/components/ms-toggle/ms-toggle.html","../../../projects/ui-library/src/lib/components/ms-radio-button/ms-radio-button.ts","../../../projects/ui-library/src/lib/components/ms-radio-button/ms-radio-button.html","../../../projects/ui-library/src/lib/components/ms-input-field/ms-input-field.ts","../../../projects/ui-library/src/lib/components/ms-input-field/ms-input-field.html","../../../projects/ui-library/src/lib/components/ms-text-area/ms-text-area.ts","../../../projects/ui-library/src/lib/components/ms-text-area/ms-text-area.html","../../../projects/ui-library/src/lib/ms-design-system.module.ts","../../../projects/ui-library/src/lib/providers/ms-design-system.ts","../../../projects/ui-library/src/lib/index.ts","../../../projects/ui-library/src/ms-design-system.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, ContentChild, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\n\n\ntype IconPosition = 'prefix' | 'suffix';\n\n@Component({\n selector: 'ms-button',\n imports: [CommonModule],\n templateUrl: './ms-button.component.html',\n styleUrls: ['./ms-button.component.scss']\n})\nexport class MsButton implements OnChanges, OnInit {\n @Input() type: 'button' | 'submit' | 'reset' = 'button';\n @Input() variant: string = '';\n @Input() size: string = '';\n @Input() radiussize: string = '';\n @Input() block: boolean = false;\n @Input() disabled: boolean = false;\n @Input() isBorder: boolean = false;\n @Input() textSrc: string = '';\n\n // Icon support\n @Input() icon: string | null = null; // e.g. 'fa fa-plus' or 'bi bi-search'\n @Input() iconPosition: IconPosition = 'prefix'; // 'prefix' or 'suffix'\n @Input() iconOnly: boolean = false; // icon-only mode (no text)\n\n @Input() class: string = '';\n @Input() buttonType: string = '';\n @Output() htmlChange = new EventEmitter<string>();\n @Output() click = new EventEmitter<Event>();\n @ContentChild('projectedContent', { static: false }) projectedContent: any;\n /** Dynamic class computation */\n get classes(): string {\n const radiusClass = this.radiussize !== 'none' ? `ms-rounded-${this.radiussize}` : '';\n const variant = this.variant !== 'default' ? `ms-btn-${this.variant}` : '';\n const link = this.variant !== 'link' ? `ms-btn` : '';\n const size = this.size !== '' ? `ms-btn-${this.size}` : '';\n const isBorder = this.isBorder ? `ms-border` : '';\n return [\n link,\n variant,\n size,\n radiusClass,\n this.block ? 'block' : '',\n isBorder,\n this.iconOnly ? 'icon-only' : ''\n ]\n .filter(Boolean)\n .join(' ')\n .trim();\n }\n\n get userClass() {\n return this.class;\n }\n\n /** Generate HTML string */\n getHtmlString(): string {\n const disabledAttr = this.disabled ? ' disabled' : '';\n const iconHtml = this.icon\n ? `<i class=\"${this.icon}\"></i>`\n : '';\n\n let innerHtml = '';\n\n if (this.iconOnly) {\n // Icon-only → just icon, centered\n innerHtml = `<i class=\"${this.icon} btn-icon\"></i>`;\n }\n else if (this.icon && this.iconPosition === 'prefix') {\n // Prefix → icon before text\n innerHtml = `<i class=\"${this.icon} btn-icon prefix\"></i> ${this.textSrc}`;\n }\n else if (this.icon && this.iconPosition === 'suffix') {\n // Suffix → icon after text\n innerHtml = `${this.textSrc} <i class=\"${this.icon} btn-icon suffix\"></i>`;\n }\n else {\n // Text only\n innerHtml = this.textSrc;\n }\n \n\n return `<ms-button type=\"${this.type}\" class=\"${this.classes}\"${disabledAttr}>${innerHtml}</ms-button>`;\n }\n\n\n constructor(private el: ElementRef) { }\n\n\n ngOnChanges(changes: SimpleChanges): void {\n this.htmlChange.emit(this.getHtmlString());\n // if(this.radiussize === 'none' || this.radiussize === 'xs' || this.radiussize === 'default'){\n // this.radiussize = ''\n // }\n // if(this.variant === 'default'){\n // this.variant = ''\n // }else{\n // this.variant = `-${this.variant}`\n // }\n }\n\n ngOnInit(): void {\n this.htmlChange.emit(this.getHtmlString());\n // if(this.radiussize === 'none' || this.radiussize === 'xs' || this.radiussize === 'default'){\n // this.radiussize = ''\n // }\n // if(this.variant === 'default'){\n // this.variant = ''\n // }else{\n // this.variant = `-${this.variant}`\n // }\n }\n\n ngAfterContentInit() {\n const inner = this.el.nativeElement.innerText.trim();\n if (inner && !this.textSrc) {\n this.textSrc = inner;\n }\n // if(this.radiussize === 'none' || this.radiussize === 'xs' || this.radiussize === 'default'){\n // this.radiussize = ''\n // }\n // if(this.variant === 'default'){\n // this.variant = ''\n // }else{\n // this.variant = `-${this.variant}`\n // }\n }\n\n onClick(event: Event) {\n if (!this.disabled) {\n this.click.emit(event);\n } else {\n event.preventDefault();\n }\n }\n\n}\n\n","@if (buttonType ==='Playground') {\n <a [type]=\"type\" [class.disabled]=\"disabled\" [class]=\"classes + ' ' + userClass\" (click)=\"onClick($event)\">\n\n <!-- @if (icon && iconPosition === 'prefix') {\n <i [ngClass]=\"iconOnly ? [icon, 'btn-icon'] : [icon, 'btn-icon', 'prefix']\"></i>\n } -->\n\n <!-- 👇 IMPORTANT: This shows <ms-button>Click Me</ms-button> -->\n @if (!iconOnly && !textSrc) {\n <span><ng-content></ng-content></span>\n }\n\n <!-- If textSrc is given -->\n @if (!iconOnly && textSrc) {\n <span>{{ textSrc }}</span>\n }\n\n <!-- @if (icon && iconPosition === 'suffix') {\n <i [ngClass]=\"iconOnly ? [icon, 'btn-icon'] : [icon, 'btn-icon', 'suffix']\"></i>\n } -->\n</a>\n}@else {\n <ng-content [type]=\"type\" [class.disabled]=\"disabled\" [class]=\"classes + ' ' + userClass\" (click)=\"onClick($event)\">\n\n <!-- @if (icon && iconPosition === 'prefix') {\n <i [ngClass]=\"iconOnly ? [icon, 'btn-icon'] : [icon, 'btn-icon', 'prefix']\"></i>\n } -->\n\n <!-- 👇 IMPORTANT: This shows <ms-button>Click Me</ms-button> -->\n @if (!iconOnly && !textSrc) {\n <span><ng-content></ng-content></span>\n }\n\n <!-- If textSrc is given -->\n @if (!iconOnly && textSrc) {\n <span>{{ textSrc }}</span>\n }\n\n <!-- @if (icon && iconPosition === 'suffix') {\n <i [ngClass]=\"iconOnly ? [icon, 'btn-icon'] : [icon, 'btn-icon', 'suffix']\"></i>\n } -->\n</ng-content>\n}","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'ms-dropdown',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './dropdown.html',\n styleUrls: ['./dropdown.scss']\n})\nexport class MsDropdown {\n\n}\n","<p>dropdown works!</p>\n","import { AfterViewInit, booleanAttribute, Component, ElementRef, EventEmitter, forwardRef, Input, Output, ViewChild } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\n\n@Component({\n selector: 'ms-checkbox',\n imports: [],\n templateUrl: './ms-checkbox.html',\n styleUrl: './ms-checkbox.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MsCheckbox),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MsCheckbox),\n multi: true\n }\n ]\n})\nexport class MsCheckbox implements ControlValueAccessor, Validator{\n\n @Input() label?: string;\n\n @Input({ transform: booleanAttribute }) disabled = false;\n @Input({ transform: booleanAttribute }) skeleton = false;\n @Input({ transform: booleanAttribute }) required = false;\n @Input({ transform: booleanAttribute }) indeterminate = false;\n @Input({ transform: booleanAttribute }) invalidBox = false;\n @Input({ transform: booleanAttribute }) checked = false;\n\n /* ---------- Internal state ---------- */\n touched = false;\n\n /* ---------- CVA ---------- */\n private onChange = (_: boolean) => {};\n private onTouched = () => {};\n\n writeValue(value: boolean): void {\n this.checked = !!value;\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 }\n\n /* ---------- Validation ---------- */\n validate(control: AbstractControl): ValidationErrors | null {\n if (this.required && !this.checked) {\n return { required: true };\n }\n return null;\n }\n\n /* ---------- UI Logic ---------- */\n toggle(): void {\n if (this.disabled || this.skeleton) return;\n\n this.indeterminate = false; // ✅ FIX\n this.checked = !this.checked;\n\n this.onChange(this.checked);\n this.markTouched();\n }\n\n markTouched(): void {\n if (!this.touched) {\n this.touched = true;\n this.onTouched();\n }\n }\n\n get invalid(): boolean {\n if(this.invalidBox){\n return true\n }\n return this.required && this.touched && !this.checked;\n }\n\n\n}","<label\n class=\"ms-checkbox\"\n [class.disabled]=\"disabled\"\n [class.invalid]=\"invalid\"\n [class.skeleton]=\"skeleton\"\n>\n @if (skeleton) {\n <div class=\"ms-checkbox-skeleton\"></div>\n } @else {\n\n <input\n type=\"checkbox\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"toggle()\"\n (blur)=\"markTouched()\"\n />\n\n <span class=\"ms-checkbox-box\">\n @if (indeterminate) {\n <span class=\"ms-indeterminate\"></span>\n } @else if (checked) {\n <span class=\"ms-checkmark\">✓</span>\n }\n </span>\n\n @if (label) {\n <span class=\"ms-label\">{{ label }}</span>\n }\n }\n</label>\n\n","import { Component, ContentChild, ElementRef, EventEmitter, Input, Output, SimpleChanges } from '@angular/core';\n\ntype IconPosition = 'prefix' | 'suffix';\n@Component({\n selector: 'ms-badge',\n imports: [],\n templateUrl: './ms-badge.html',\n styleUrl: './ms-badge.scss',\n})\nexport class MsBadge {\n @Input() color: string = '';\n @Input() radiussize: string = '';\n @Input() block: boolean = false;\n @Input() disabled: boolean = false;\n @Input() isDark: boolean = false;\n @Input() text: string = '';\n\n // Icon support\n @Input() icon: string | null = null; // e.g. 'fa fa-plus' or 'bi bi-search'\n @Input() iconOnly: string | null = null; // e.g. 'fa fa-plus' or 'bi bi-search'\n @Input() iconPosition: IconPosition = 'prefix'; // 'prefix' or 'suffix'\n\n @Input() class: string = '';\n @Output() htmlChange = new EventEmitter<string>();\n @Output() click = new EventEmitter<Event>();\n @ContentChild('projectedContent', { static: false }) projectedContent: any;\n\n get classes(): string {\n const radiusClass = this.radiussize !== 'none' ? `ms-rounded-${this.radiussize}` : '';\n // const color = `ms-badge-${this.color}` ;\n const color = this.isDark ? `ms-badge-${this.color}-dark` : `ms-badge-${this.color}`;\n const badge = `ms-badge`;\n return [\n // link,\n color,\n badge,\n radiusClass,\n this.block ? 'block' : '',\n ]\n .filter(Boolean)\n .join(' ')\n .trim();\n }\n\n get userClass() {\n return this.class;\n }\n\n /** Generate HTML string */\n getHtmlString(): string {\n const disabledAttr = this.disabled ? ' disabled' : '';\n const iconHtml = this.icon\n ? `<i class=\"${this.icon}\"></i>`\n : '';\n\n let innerHtml = '';\n\n if (this.iconOnly) {\n // Icon-only → just icon, centered\n innerHtml = `<i class=\"${this.icon} btn-icon\"></i>`;\n }\n else if (this.icon && this.iconPosition === 'prefix') {\n // Prefix → icon before text\n innerHtml = `<i class=\"${this.icon} btn-icon prefix\"></i> ${this.text}`;\n }\n else if (this.icon && this.iconPosition === 'suffix') {\n // Suffix → icon after text\n innerHtml = `${this.text} <i class=\"${this.icon} btn-icon suffix\"></i>`;\n }\n else {\n // Text only\n innerHtml = this.text;\n }\n \n\n return `<ms-badge text=\"${innerHtml}\" class=\"${this.classes}\"${disabledAttr}></ms-badge>`;\n }\n\n\n constructor(private el: ElementRef) { }\n\n\n ngOnChanges(changes: SimpleChanges): void {\n this.htmlChange.emit(this.getHtmlString());\n }\n\n ngOnInit(): void {\n this.htmlChange.emit(this.getHtmlString());\n }\n\n ngAfterContentInit() {\n // const inner = this.el.nativeElement.innerText.trim();\n // if (inner && !this.text) {\n // this.text = inner;\n // }\n }\n\n onClick(event: Event) {\n if (!this.disabled) {\n this.click.emit(event);\n } else {\n event.preventDefault();\n }\n }\n}\n","<span [class.disabled]=\"disabled\" [class]=\"classes + ' ' + userClass\" (click)=\"onClick($event)\">\n <span>{{ text }}</span>\n</span>","import { booleanAttribute, Component, EventEmitter, forwardRef, Input, Output, SimpleChanges } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\n\n@Component({\n selector: 'ms-toggle',\n imports: [],\n templateUrl: './ms-toggle.html',\n styleUrl: './ms-toggle.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MsToggle),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MsToggle),\n multi: true\n }\n ]\n})\nexport class MsToggle implements ControlValueAccessor, Validator {\n @Input() label?: any;\n @Input() class: string = '';\n @Input() size: string = '';\n @Input({ transform: booleanAttribute }) disabled = false;\n @Input({ transform: booleanAttribute }) required = false;\n @Input({ transform: booleanAttribute }) invalid = false;\n @Input({ transform: booleanAttribute }) checked = false;\n @Output() htmlChange = new EventEmitter<string>();\n /* ---------- Internal ---------- */\n touched = false;\n\n /* ---------- CVA ---------- */\n private onChange = (_: boolean) => { };\n private onTouched = () => { };\n\n writeValue(value: boolean): void {\n this.checked = !!value;\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 }\n\n /* ---------- Validation ---------- */\n validate(_: AbstractControl): ValidationErrors | null {\n if (this.required && !this.checked) {\n return { required: true };\n }\n return null;\n }\n\n /* ---------- UI ---------- */\n toggle(): void {\n if (this.disabled) return;\n\n this.checked = !this.checked;\n this.onChange(this.checked);\n this.markTouched();\n }\n\n markTouched(): void {\n if (!this.touched) {\n this.touched = true;\n this.onTouched();\n }\n }\n\n get userClass() {\n return this.class;\n }\n\n get classes(): string {\n return ['ms-toggle-' + this.size].filter(Boolean).join(' ');\n }\n /** Generate HTML string */\n getHtmlString(): string {\n const disabledAttr = this.disabled ? ' disabled' : '';\n let innerHtml = '';\n innerHtml = this.label;\n return `<ms-toggle label=\"${innerHtml}\" class=\"${this.classes}\"${disabledAttr}></ms-toggle>`;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.htmlChange.emit(this.getHtmlString());\n }\n\n ngOnInit(): void {\n this.htmlChange.emit(this.getHtmlString());\n }\n}\n","<label class=\"ms-toggle\" [class.disabled]=\"disabled\" [class]=\"classes + ' ' + userClass\" [class.invalid]=\"invalid\">\n <input type=\"checkbox\" [checked]=\"checked\" [disabled]=\"disabled\" (change)=\"toggle()\" (blur)=\"markTouched()\" />\n <span class=\"ms-toggle-track\">\n <span class=\"ms-toggle-thumb\"></span>\n </span>\n @if (label) {\n <span class=\"ms-label\">{{ label }}</span>\n }\n</label>\n\n\n","import {\n Component,\n forwardRef,\n Input\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n AbstractControl,\n ValidationErrors,\n Validator\n} from '@angular/forms';\n\n@Component({\n selector: 'ms-radio-button',\n templateUrl: './ms-radio-button.html',\n styleUrls: ['./ms-radio-button.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MsRadioButton),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MsRadioButton),\n multi: true\n }\n ]\n})\nexport class MsRadioButton implements ControlValueAccessor, Validator {\n @Input() label?: string;\n @Input() name!: string;\n @Input() value!: any;\n\n @Input() disabled = false;\n @Input() required = false;\n @Input() invalidBox = false;\n @Input() skeleton = false;\n @Input() checked = false;\n\n touched = false;\n\n private onChange = (_: any) => {};\n private onTouched = () => {};\n\n // CVA Methods\n writeValue(value: any): void {\n this.checked = value === this.value;\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 }\n\n // Validation\n validate(control: AbstractControl): ValidationErrors | null {\n if (this.required && !control.value) {\n return { required: true };\n }\n return null;\n }\n\n // UI\n select(): void {\n if (this.disabled) return;\n\n this.checked = true;\n this.onChange(this.value);\n this.markTouched();\n }\n\n markTouched(): void {\n if (!this.touched) {\n this.touched = true;\n this.onTouched();\n }\n }\n\n get invalid(): boolean {\n return this.invalidBox; // 🔥 only rely on parent input for border\n }\n}\n","<label class=\"ms-radio\"\n [class.checked]=\"checked\"\n [class.disabled]=\"disabled\"\n [class.skeleton]=\"skeleton\"\n [class.invalid]=\"invalid\">\n \n @if (skeleton) {\n <div class=\"ms-radio-skeleton\"></div>\n } @else {\n <input\n type=\"radio\"\n [name]=\"name\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"select()\"\n (blur)=\"markTouched()\"\n />\n\n <span class=\"ms-radio-circle\">\n <span class=\"ms-radio-dot\"></span>\n </span>\n\n @if (label) {\n <span class=\"ms-label\">{{ label }}</span>\n }\n}\n</label>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, forwardRef, Input, signal } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\n\n@Component({\n selector: 'ms-input-field',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './ms-input-field.html',\n styleUrls: ['./ms-input-field.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MsInputField),\n multi: true,\n },\n ],\n})\nexport class MsInputField implements ControlValueAccessor {\n @Input() type: 'text' | 'email' | 'password' | 'number' | 'date' | 'time' | 'tel' | 'url' | 'search' | 'color' | 'file' = 'text';\n @Input() id?: string;\n @Input() name?: string;\n @Input() placeholder?: string;\n @Input() state?: string;\n @Input() autocomplete?: string;\n @Input() readonly = false;\n @Input() disabled = false;\n @Input() required = false;\n @Input() invalid = false;\n@Input() min?: number;\n@Input() max?: number;\n@Input() maxlength?: number;\n@Input() minlength?: number;\n\n @Input() step?: number | string;\n @Input() pattern?: string;\n @Input() inputmode?: 'text' | 'numeric' | 'decimal' | 'tel' | 'email' | 'url' | 'search';\n\n @Input() loading = false;\n\n value = signal<string>('');\n hasError = signal<boolean>(false);\n isSuccess = signal<boolean>(false);\n\n\n // Events\n change = new EventEmitter<Event>();\n focus = new EventEmitter<Event>();\n blur = new EventEmitter<Event>();\n keydown = new EventEmitter<KeyboardEvent>();\n keyup = new EventEmitter<KeyboardEvent>();\n\n // CVA hooks\n private onChange: (val: any) => void = () => {};\n private onTouched: () => void = () => {};\n\n writeValue(val: any): void {\n this.value.set(val ?? '');\n }\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n handleInput(event: Event) {\n const target = event.target as HTMLInputElement;\n const newVal = target.value;\n this.value.set(newVal);\n this.onChange(newVal);\n if (this.required && !newVal) {\n this.hasError.set(true);\n } else {\n this.hasError.set(false);\n }\n if ((this.type === 'email' || this.type === 'password') && this.pattern) {\n const regex = new RegExp(this.pattern);\n if (regex.test(newVal)) {\n this.isSuccess.set(true); // ✅ border green\n } else {\n this.hasError.set(true); // ❌ border red\n }\n }\n\n }\nhandleBlur(event: Event) {\n const val = this.value();\n this.blur.emit(event);\n\n // Required check\n if (this.required && !val) {\n this.hasError.set(true);\n return;\n }\n\n // Text length check\n if (['text','email','password','url','search'].includes(this.type)) {\n if ((this.minlength && val.length < this.minlength) ||\n (this.maxlength && val.length > this.maxlength)) {\n this.hasError.set(true);\n return;\n }\n }\n\n // Number/date/time check\n if (['number','date','time'].includes(this.type)) {\n const num = Number(val);\n if ((this.min !== undefined && num < this.min) ||\n (this.max !== undefined && num > this.max)) {\n this.hasError.set(true);\n return;\n }\n }\n\n // Pattern check\n if (this.pattern) {\n const regex = new RegExp(this.pattern);\n if (!regex.test(val)) {\n this.hasError.set(true);\n return;\n }\n }\n\n this.hasError.set(false);\n}\n\n\n// handleBlur(event: Event) {\n// this.blur.emit(event);\n// if (this.required && !this.value()) {\n// this.hasError.set(true);\n// } else {\n// this.hasError.set(false);\n// }\n// }\n}","<ng-container *ngIf=\"!loading; else skeleton\">\n <input\n class=\"ms-form-control\"\n [class.ms-error]=\"hasError()\"\n [class.ms-success]=\"isSuccess()\"\n [class]=\"state\"\n [attr.type]=\"type\"\n [attr.id]=\"id || null\"\n [attr.name]=\"name || null\"\n [attr.placeholder]=\"placeholder || null\"\n [attr.autocomplete]=\"autocomplete || null\"\n [attr.min]=\"min ?? null\"\n [attr.max]=\"max ?? null\"\n [attr.step]=\"step ?? null\"\n [attr.minlength]=\"minlength ?? null\"\n [attr.maxlength]=\"maxlength ?? null\"\n[class.invalid]=\"invalid\"\n [attr.pattern]=\"pattern || null\"\n [attr.inputmode]=\"inputmode || null\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [value]=\"value()\"\n (input)=\"handleInput($event)\"\n (change)=\"change.emit($event)\"\n (focus)=\"focus.emit($event)\"\n (blur)=\"handleBlur($event)\"\n (keydown)=\"keydown.emit($event)\"\n (keyup)=\"keyup.emit($event)\"\n />\n</ng-container>\n\n<ng-template #skeleton>\n <div class=\"ms-skeleton\"></div>\n</ng-template>","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, forwardRef, Input, signal } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'ms-text-area',\n imports: [CommonModule],\n templateUrl: './ms-text-area.html',\n styleUrl: './ms-text-area.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MsTextArea),\n multi: true,\n },\n ],\n})\nexport class MsTextArea {\n @Input() id?: string;\n @Input() name?: string;\n @Input() placeholder?: string;\n @Input() autocomplete?: string;\n @Input() readonly = false;\n @Input() disabled = false;\n @Input() required = false;\n @Input() loading = false;\n @Input() minlength?: number =0;\n @Input() maxlength?: number = 0;\n @Input() ms_rows: number = 0; // default rows\n @Input() cols?: number;\n @Input() autoResize = false; // auto expand/shrink height\n @Input() resize: 'none' | 'both' | 'horizontal' | 'vertical' = 'vertical';\n@Input() scrollable = true; // allow scrollbars\n\n@Input() showResizeIcon: boolean = false;\n\n value = signal<string>('');\n hasError = signal<boolean>(false);\n\n // Events\n change = new EventEmitter<Event>();\n focus = new EventEmitter<Event>();\n blur = new EventEmitter<Event>();\n\n // CVA hooks\n private onChange: (val: any) => void = () => {};\n private onTouched: () => void = () => {};\n\n writeValue(val: any): void {\n this.value.set(val ?? '');\n }\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n handleInput(event: Event) {\n const target = event.target as HTMLTextAreaElement;\n const newVal = target.value;\n this.value.set(newVal);\n this.onChange(newVal);\n\n // Required check\n if (this.required && !newVal) {\n this.hasError.set(true);\n return;\n }\n\n // Length check\n if ((this.minlength && newVal.length < this.minlength) ||\n (this.maxlength && newVal.length > this.maxlength)) {\n this.hasError.set(true);\n return;\n }\n // Auto resize logic\n if (this.autoResize) {\n target.style.height = 'auto'; // reset\n target.style.overflowY = this.scrollable ? 'auto' : 'hidden';\n\n const lineHeight = 24; // adjust based on CSS\n const minHeight = this.minlength * lineHeight;\n const maxHeight = this.maxlength ? this.maxlength * lineHeight : Infinity;\n\n const newHeight = Math.min(Math.max(target.scrollHeight, minHeight), maxHeight);\n target.style.height = `${newHeight}px`;\n }\n\n\n \n\n this.hasError.set(false);\n }\n\n handleBlur(event: Event) {\n this.blur.emit(event);\n this.onTouched();\n const val = this.value();\n this.blur.emit(event);\n\n // Required check\n if (this.required && !val) {\n this.hasError.set(true);\n return;\n }\n this.hasError.set(false);\n }\n\n}\n","<ng-container *ngIf=\"!loading; else skeleton\">\n<textarea\n class=\"ms-textArea\"\n [class.ms-error]=\"hasError()\"\n [id]=\"id\"\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [autocomplete]=\"autocomplete\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [attr.minlength]=\"minlength ?? null\"\n [attr.maxlength]=\"maxlength ?? null\"\n [rows]=\"ms_rows\"\n [cols]=\"cols\"\n [value]=\"value()\"\n (input)=\"handleInput($event)\"\n (blur)=\"handleBlur($event)\"\n [style.resize]=\"showResizeIcon ? 'vertical' : 'none'\"\n [style.overflowY]=\"scrollable ? 'auto' : 'hidden'\"\n\n></textarea>\n\n</ng-container>\n\n<ng-template #skeleton>\n <div class=\"ms-skeleton\"></div>\n</ng-template>","import { NgModule } from '@angular/core';\nimport { MsButton } from './components/button/ms-button.component';\nimport { MsDropdown } from './components/dropdown/dropdown';\nimport { MsCheckbox } from './components/ms-checkbox/ms-checkbox';\nimport { MsBadge } from './components/ms-badge/ms-badge';\nimport { MsToggle } from './components/ms-toggle/ms-toggle';\nimport { MsRadioButton } from './components/ms-radio-button/ms-radio-button';\nimport { MsInputField } from './components/ms-input-field/ms-input-field';\nimport { MsTextArea } from './components/ms-text-area/ms-text-area';\n\n@NgModule({\n imports: [MsButton, MsDropdown,MsCheckbox,MsBadge,MsToggle, MsRadioButton,MsInputField,MsTextArea], // standalone components can be imported\n exports: [MsButton, MsDropdown,MsCheckbox,MsBadge,MsToggle,MsRadioButton,MsInputField,MsTextArea]\n})\nexport class MsDesignSystemModule {}\n","import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\n\nexport function provideMsDesignSystem(): EnvironmentProviders {\n return makeEnvironmentProviders([]);\n}\n","// Components\nexport * from './components/button/ms-button.component';\nexport * from './components/dropdown/dropdown';\nexport * from './components/ms-checkbox/ms-checkbox';\nexport * from './components/ms-badge/ms-badge';\nexport * from './components/ms-toggle/ms-toggle';\nexport * from './components/ms-radio-button/ms-radio-button';\nexport * from './components/ms-input-field/ms-input-field';\nexport * from './components/ms-text-area/ms-text-area';\n\n\n// NgModule\nexport * from './ms-design-system.module';\n\n// Providers\nexport * from './providers/ms-design-system';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/styles.scss
CHANGED
|
@@ -920,25 +920,6 @@ ms-button {
|
|
|
920
920
|
margin-bottom: 3rem !important;
|
|
921
921
|
}
|
|
922
922
|
|
|
923
|
-
.ms-form-control {
|
|
924
|
-
//width: 196;
|
|
925
|
-
height: 12px !important;
|
|
926
|
-
gap: 6 !important;
|
|
927
|
-
opacity: 1 !important;
|
|
928
|
-
border-width: 1px !important;
|
|
929
|
-
padding-top: 12px !important;
|
|
930
|
-
padding-right: 8px !important;
|
|
931
|
-
padding-bottom: 12px !important;
|
|
932
|
-
padding-left: 8px !important;
|
|
933
|
-
border-radius: 8px !important;
|
|
934
|
-
background: var(--semantics-surface-subtle-primary-default, #FFFFFF) !important;
|
|
935
|
-
border: 1px solid var(--semantics-border-subtle-secondary, #E0E0E0) !important;
|
|
936
|
-
-webkit-border-radius: 8px !important;
|
|
937
|
-
-moz-border-radius: 8px !important;
|
|
938
|
-
-ms-border-radius: 8px !important;
|
|
939
|
-
-o-border-radius: 8px !important;
|
|
940
|
-
}
|
|
941
|
-
|
|
942
923
|
label {
|
|
943
924
|
font-family: Family/Sans !important;
|
|
944
925
|
font-weight: 450 !important;
|
|
@@ -1909,4 +1890,106 @@ ms-button .ms-btn-default {
|
|
|
1909
1890
|
background: #e5e7eb;
|
|
1910
1891
|
}
|
|
1911
1892
|
|
|
1893
|
+
}
|
|
1894
|
+
|
|
1895
|
+
// input field
|
|
1896
|
+
|
|
1897
|
+
.ms-form-control {
|
|
1898
|
+
padding: 0.6rem 0.8rem;
|
|
1899
|
+
border: 1px solid var(--semantics-border-subtle-secondary, #E0E0E0);
|
|
1900
|
+
border-radius: 8px;
|
|
1901
|
+
font-size: 0.95rem;
|
|
1902
|
+
transition: border-color 0.2s, box-shadow 0.2s;
|
|
1903
|
+
background: #fff;
|
|
1904
|
+
color: #1B1F22;
|
|
1905
|
+
font-family: "Segoe UI", sans-serif;
|
|
1906
|
+
-webkit-border-radius: 8px;
|
|
1907
|
+
-moz-border-radius: 8px;
|
|
1908
|
+
-ms-border-radius: 8px;
|
|
1909
|
+
-o-border-radius: 8px;
|
|
1910
|
+
height: 12px;
|
|
1911
|
+
gap: 6 ;
|
|
1912
|
+
opacity: 1 ;
|
|
1913
|
+
border-width: 1px ;
|
|
1914
|
+
padding-top: 12px ;
|
|
1915
|
+
padding-right: 8px ;
|
|
1916
|
+
padding-bottom: 12px ;
|
|
1917
|
+
padding-left: 8px ;
|
|
1918
|
+
|
|
1919
|
+
&.disabled,
|
|
1920
|
+
&:disabled {
|
|
1921
|
+
opacity: 0.65 !important;
|
|
1922
|
+
cursor: not-allowed !important;
|
|
1923
|
+
// background-color: #f5f5f5 !important;
|
|
1924
|
+
// color: #b0b0b0 !important;
|
|
1925
|
+
}
|
|
1926
|
+
&.ms-error {
|
|
1927
|
+
border-color: #DA3E37;
|
|
1928
|
+
background-color: #fbeaea;
|
|
1929
|
+
}
|
|
1930
|
+
|
|
1931
|
+
// Disabled state
|
|
1932
|
+
&:disabled {
|
|
1933
|
+
background-color: #f5f5f5;
|
|
1934
|
+
cursor: not-allowed;
|
|
1935
|
+
}
|
|
1936
|
+
|
|
1937
|
+
// Readonly state
|
|
1938
|
+
&:read-only {
|
|
1939
|
+
background-color: #fafafa;
|
|
1940
|
+
}
|
|
1941
|
+
|
|
1942
|
+
}
|
|
1943
|
+
|
|
1944
|
+
/* Readonly state */
|
|
1945
|
+
.ms-form-control[readonly] {
|
|
1946
|
+
background-color: #f4f5f7; /* light gray background */
|
|
1947
|
+
color: #6b778c; /* dimmed text color */
|
|
1948
|
+
cursor: not-allowed; /* show not-allowed cursor */
|
|
1949
|
+
border-color: #dfe1e6; /* neutral border */
|
|
1950
|
+
}
|
|
1951
|
+
|
|
1952
|
+
/* Readonly + placeholder */
|
|
1953
|
+
.ms-form-control[readonly]::placeholder {
|
|
1954
|
+
color: #a5adba; /* lighter gray for placeholder */
|
|
1955
|
+
}
|
|
1956
|
+
|
|
1957
|
+
|
|
1958
|
+
.ms-form-control::placeholder {
|
|
1959
|
+
color: #ABABAB; /* 👈 placeholder ka color */
|
|
1960
|
+
opacity: 1; /* ensure consistent visibility */
|
|
1961
|
+
}
|
|
1962
|
+
|
|
1963
|
+
|
|
1964
|
+
.ms-form-control:focus {
|
|
1965
|
+
// border-color: #0052cc;
|
|
1966
|
+
box-shadow: 0px 0px 0px 1px var(--primitivesbrandblue-100);
|
|
1967
|
+
border: 1px solid var(--semantics-border-brand-default, #0084FF);
|
|
1968
|
+
box-shadow: 0 0 0 2px rgba(0,82,204,0.2);
|
|
1969
|
+
outline: none;
|
|
1970
|
+
}
|
|
1971
|
+
|
|
1972
|
+
.ms-skeleton {
|
|
1973
|
+
border: 1px solid var(--semantics-border-brand-default, #f4f5f7);
|
|
1974
|
+
border-radius: 8px;
|
|
1975
|
+
background: #f4f5f7;
|
|
1976
|
+
background-size: 200% 100%;
|
|
1977
|
+
// animation: skeleton-loading 1.5s infinite;
|
|
1978
|
+
-webkit-border-radius: 8px;
|
|
1979
|
+
-moz-border-radius: 8px;
|
|
1980
|
+
-ms-border-radius: 8px;
|
|
1981
|
+
-o-border-radius: 8px;
|
|
1982
|
+
}
|
|
1983
|
+
|
|
1984
|
+
|
|
1985
|
+
|
|
1986
|
+
.ms-form-control.ms-error {
|
|
1987
|
+
box-shadow: 0px 0px 0px 1px var(--primitiveserrorred-500-25);
|
|
1988
|
+
border: 1px solid var(--semantics-border-status-error-primary-default, #DA3E37)
|
|
1989
|
+
|
|
1990
|
+
}
|
|
1991
|
+
.ms-form-control.invalid {
|
|
1992
|
+
box-shadow: 0px 0px 0px 1px var(--primitiveserrorred-500-25);
|
|
1993
|
+
border: 1px solid var(--semantics-border-status-error-primary-default, #DA3E37)
|
|
1994
|
+
|
|
1912
1995
|
}
|
|
@@ -155,12 +155,85 @@ declare class MsRadioButton implements ControlValueAccessor, Validator {
|
|
|
155
155
|
static ɵcmp: i0.ɵɵComponentDeclaration<MsRadioButton, "ms-radio-button", never, { "label": { "alias": "label"; "required": false; }; "name": { "alias": "name"; "required": false; }; "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; "invalidBox": { "alias": "invalidBox"; "required": false; }; "skeleton": { "alias": "skeleton"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; }, {}, never, never, true, never>;
|
|
156
156
|
}
|
|
157
157
|
|
|
158
|
+
declare class MsInputField implements ControlValueAccessor {
|
|
159
|
+
type: 'text' | 'email' | 'password' | 'number' | 'date' | 'time' | 'tel' | 'url' | 'search' | 'color' | 'file';
|
|
160
|
+
id?: string;
|
|
161
|
+
name?: string;
|
|
162
|
+
placeholder?: string;
|
|
163
|
+
state?: string;
|
|
164
|
+
autocomplete?: string;
|
|
165
|
+
readonly: boolean;
|
|
166
|
+
disabled: boolean;
|
|
167
|
+
required: boolean;
|
|
168
|
+
invalid: boolean;
|
|
169
|
+
min?: number;
|
|
170
|
+
max?: number;
|
|
171
|
+
maxlength?: number;
|
|
172
|
+
minlength?: number;
|
|
173
|
+
step?: number | string;
|
|
174
|
+
pattern?: string;
|
|
175
|
+
inputmode?: 'text' | 'numeric' | 'decimal' | 'tel' | 'email' | 'url' | 'search';
|
|
176
|
+
loading: boolean;
|
|
177
|
+
value: i0.WritableSignal<string>;
|
|
178
|
+
hasError: i0.WritableSignal<boolean>;
|
|
179
|
+
isSuccess: i0.WritableSignal<boolean>;
|
|
180
|
+
change: EventEmitter<Event>;
|
|
181
|
+
focus: EventEmitter<Event>;
|
|
182
|
+
blur: EventEmitter<Event>;
|
|
183
|
+
keydown: EventEmitter<KeyboardEvent>;
|
|
184
|
+
keyup: EventEmitter<KeyboardEvent>;
|
|
185
|
+
private onChange;
|
|
186
|
+
private onTouched;
|
|
187
|
+
writeValue(val: any): void;
|
|
188
|
+
registerOnChange(fn: any): void;
|
|
189
|
+
registerOnTouched(fn: any): void;
|
|
190
|
+
setDisabledState(isDisabled: boolean): void;
|
|
191
|
+
handleInput(event: Event): void;
|
|
192
|
+
handleBlur(event: Event): void;
|
|
193
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MsInputField, never>;
|
|
194
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MsInputField, "ms-input-field", never, { "type": { "alias": "type"; "required": false; }; "id": { "alias": "id"; "required": false; }; "name": { "alias": "name"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "state": { "alias": "state"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "maxlength": { "alias": "maxlength"; "required": false; }; "minlength": { "alias": "minlength"; "required": false; }; "step": { "alias": "step"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "inputmode": { "alias": "inputmode"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; }, {}, never, never, true, never>;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
declare class MsTextArea {
|
|
198
|
+
id?: string;
|
|
199
|
+
name?: string;
|
|
200
|
+
placeholder?: string;
|
|
201
|
+
autocomplete?: string;
|
|
202
|
+
readonly: boolean;
|
|
203
|
+
disabled: boolean;
|
|
204
|
+
required: boolean;
|
|
205
|
+
loading: boolean;
|
|
206
|
+
minlength?: number;
|
|
207
|
+
maxlength?: number;
|
|
208
|
+
ms_rows: number;
|
|
209
|
+
cols?: number;
|
|
210
|
+
autoResize: boolean;
|
|
211
|
+
resize: 'none' | 'both' | 'horizontal' | 'vertical';
|
|
212
|
+
scrollable: boolean;
|
|
213
|
+
showResizeIcon: boolean;
|
|
214
|
+
value: i0.WritableSignal<string>;
|
|
215
|
+
hasError: i0.WritableSignal<boolean>;
|
|
216
|
+
change: EventEmitter<Event>;
|
|
217
|
+
focus: EventEmitter<Event>;
|
|
218
|
+
blur: EventEmitter<Event>;
|
|
219
|
+
private onChange;
|
|
220
|
+
private onTouched;
|
|
221
|
+
writeValue(val: any): void;
|
|
222
|
+
registerOnChange(fn: any): void;
|
|
223
|
+
registerOnTouched(fn: any): void;
|
|
224
|
+
setDisabledState(isDisabled: boolean): void;
|
|
225
|
+
handleInput(event: Event): void;
|
|
226
|
+
handleBlur(event: Event): void;
|
|
227
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MsTextArea, never>;
|
|
228
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MsTextArea, "ms-text-area", never, { "id": { "alias": "id"; "required": false; }; "name": { "alias": "name"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "minlength": { "alias": "minlength"; "required": false; }; "maxlength": { "alias": "maxlength"; "required": false; }; "ms_rows": { "alias": "ms_rows"; "required": false; }; "cols": { "alias": "cols"; "required": false; }; "autoResize": { "alias": "autoResize"; "required": false; }; "resize": { "alias": "resize"; "required": false; }; "scrollable": { "alias": "scrollable"; "required": false; }; "showResizeIcon": { "alias": "showResizeIcon"; "required": false; }; }, {}, never, never, true, never>;
|
|
229
|
+
}
|
|
230
|
+
|
|
158
231
|
declare class MsDesignSystemModule {
|
|
159
232
|
static ɵfac: i0.ɵɵFactoryDeclaration<MsDesignSystemModule, never>;
|
|
160
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<MsDesignSystemModule, never, [typeof MsButton, typeof MsDropdown, typeof MsCheckbox, typeof MsBadge, typeof MsToggle, typeof MsRadioButton], [typeof MsButton, typeof MsDropdown, typeof MsCheckbox, typeof MsBadge, typeof MsToggle, typeof MsRadioButton]>;
|
|
233
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<MsDesignSystemModule, never, [typeof MsButton, typeof MsDropdown, typeof MsCheckbox, typeof MsBadge, typeof MsToggle, typeof MsRadioButton, typeof MsInputField, typeof MsTextArea], [typeof MsButton, typeof MsDropdown, typeof MsCheckbox, typeof MsBadge, typeof MsToggle, typeof MsRadioButton, typeof MsInputField, typeof MsTextArea]>;
|
|
161
234
|
static ɵinj: i0.ɵɵInjectorDeclaration<MsDesignSystemModule>;
|
|
162
235
|
}
|
|
163
236
|
|
|
164
237
|
declare function provideMsDesignSystem(): EnvironmentProviders;
|
|
165
238
|
|
|
166
|
-
export { MsBadge, MsButton, MsCheckbox, MsDesignSystemModule, MsDropdown, MsRadioButton, MsToggle, provideMsDesignSystem };
|
|
239
|
+
export { MsBadge, MsButton, MsCheckbox, MsDesignSystemModule, MsDropdown, MsInputField, MsRadioButton, MsTextArea, MsToggle, provideMsDesignSystem };
|