@ng-solid/design-system 22.1.1 → 22.2.0
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 +99 -41
- package/fesm2022/ng-solid-design-system.mjs +6697 -1617
- package/fesm2022/ng-solid-design-system.mjs.map +1 -1
- package/package.json +27 -12
- package/themes/README.md +75 -0
- package/themes/fonts/InterVariable.woff2 +0 -0
- package/themes/fonts/OFL.txt +92 -0
- package/themes/fonts/ROBOTO-OFL.txt +93 -0
- package/themes/fonts/Roboto-Variable.ttf +0 -0
- package/themes/index.scss +1 -0
- package/themes/tailwind.css +87 -0
- package/types/ng-solid-design-system.d.ts +1031 -367
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-solid-design-system.mjs","sources":["../../../../packages/design-system/src/lib/avatar/avatar.component.ts","../../../../packages/design-system/src/lib/button/button.component.ts","../../../../packages/design-system/src/lib/form/models/value-accessor.ts","../../../../packages/design-system/src/lib/form/components/checkbox/checkbox.component.ts","../../../../packages/design-system/src/lib/form/components/date-picker/date-utils.ts","../../../../packages/design-system/src/lib/form/components/date-picker/calendar.ts","../../../../packages/design-system/src/lib/form/components/date-picker/date-picker.service.ts","../../../../packages/design-system/src/lib/form/components/date-picker/date-parser-formatter.ts","../../../../packages/design-system/src/lib/form/components/date-picker/date-picker-month.component.ts","../../../../packages/design-system/src/lib/form/components/date-picker/date-picker-navigation.component.ts","../../../../packages/design-system/src/lib/form/components/date-picker/date-picker-menu.component.ts","../../../../packages/design-system/src/lib/dropdown/directives/dropdown-item.directive.ts","../../../../packages/design-system/src/lib/dropdown/dropdown.component.ts","../../../../packages/design-system/src/lib/dropdown/dropdown.component.html","../../../../packages/design-system/src/lib/form/components/date-picker/date-picker.component.ts","../../../../packages/design-system/src/lib/form/directives/date-range.directive.ts","../../../../packages/design-system/src/lib/form/components/date-picker/date-range-picker.component.ts","../../../../packages/design-system/src/lib/form/components/input/input.component.ts","../../../../packages/design-system/src/lib/form/components/input/input.component.html","../../../../packages/design-system/src/lib/form/components/input-group/input-group-addon.component.ts","../../../../packages/design-system/src/lib/form/components/input-group/input-group.component.ts","../../../../packages/design-system/src/lib/form/components/input-group/input-group.component.html","../../../../packages/design-system/src/lib/form/components/input-number/utils.ts","../../../../packages/design-system/src/lib/form/components/input-number/input-number.component.ts","../../../../packages/design-system/src/lib/form/components/password/password.component.ts","../../../../packages/design-system/src/lib/form/components/password/password.component.html","../../../../packages/design-system/src/lib/form/components/switch/switch.component.ts","../../../../packages/design-system/src/lib/form/components/text-area/text-area.component.ts","../../../../packages/design-system/src/lib/form/directives/content-editable.directive.ts","../../../../packages/design-system/src/lib/form/index.ts","../../../../packages/design-system/src/lib/button-group/button-group.component.ts","../../../../packages/design-system/src/lib/comment/comment.component.ts","../../../../packages/design-system/src/lib/comment/comment.component.html","../../../../packages/design-system/src/lib/editor/enums/commands.enum.ts","../../../../packages/design-system/src/lib/editor/models/labels.ts","../../../../packages/design-system/src/lib/editor/services/editor.service.ts","../../../../packages/design-system/src/lib/editor/components/color-picker/color-picker.component.ts","../../../../packages/design-system/src/lib/editor/components/color-picker/color-picker.component.html","../../../../packages/design-system/src/lib/editor/pipes/editor-label.pipe.ts","../../../../packages/design-system/src/lib/editor/components/link/link.component.ts","../../../../packages/design-system/src/lib/editor/components/link/link.component.html","../../../../packages/design-system/src/lib/editor/components/list/list.component.ts","../../../../packages/design-system/src/lib/editor/components/list/list.component.html","../../../../packages/design-system/src/lib/editor/components/paragraph/paragraph.component.ts","../../../../packages/design-system/src/lib/editor/components/paragraph/paragraph.component.html","../../../../packages/design-system/src/lib/editor/components/toogle/toggle.component.ts","../../../../packages/design-system/src/lib/editor/components/toogle/toggle.component.html","../../../../packages/design-system/src/lib/editor/editor.component.ts","../../../../packages/design-system/src/lib/editor/editor.component.html","../../../../packages/design-system/src/lib/image-upload/pipes/image-url.pipe.ts","../../../../packages/design-system/src/lib/image-upload/image-upload.component.ts","../../../../packages/design-system/src/lib/image-upload/image-upload.component.html","../../../../packages/design-system/src/lib/modal/models/modal-ref.ts","../../../../packages/design-system/src/lib/modal/modal.component.ts","../../../../packages/design-system/src/lib/modal/modal.component.html","../../../../packages/design-system/src/lib/modal/services/modal.service.ts","../../../../packages/design-system/src/lib/schedule/models/schedule.ts","../../../../packages/design-system/src/lib/schedule/services/schedule.service.ts","../../../../packages/design-system/src/lib/schedule/components/cell/cell.component.ts","../../../../packages/design-system/src/lib/schedule/pipes/week-day.pipe.ts","../../../../packages/design-system/src/lib/schedule/pipes/filter-by-day.pipe.ts","../../../../packages/design-system/src/lib/schedule/components/event/event.component.ts","../../../../packages/design-system/src/lib/schedule/components/event/event.component.html","../../../../packages/design-system/src/lib/schedule/components/day/day.component.ts","../../../../packages/design-system/src/lib/schedule/components/day/day.component.html","../../../../packages/design-system/src/lib/schedule/components/week/week.component.ts","../../../../packages/design-system/src/lib/schedule/components/week/week.component.html","../../../../packages/design-system/src/lib/schedule/components/workweek/workweek.component.ts","../../../../packages/design-system/src/lib/schedule/components/workweek/workweek.component.html","../../../../packages/design-system/src/lib/schedule/schedule.component.ts","../../../../packages/design-system/src/lib/schedule/schedule.component.html","../../../../packages/design-system/src/lib/schema/schema.component.ts","../../../../packages/design-system/src/lib/template/template.directive.ts","../../../../packages/design-system/src/lib/toast/enums/toast-type.ts","../../../../packages/design-system/src/lib/toast/interfaces/toast-ref.ts","../../../../packages/design-system/src/lib/toast/interfaces/toast-setup.ts","../../../../packages/design-system/src/lib/toast/toast.component.ts","../../../../packages/design-system/src/lib/toast/services/toast.service.ts","../../../../packages/design-system/src/index.ts","../../../../packages/design-system/src/ng-solid-design-system.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n inject,\n NgZone,\n numberAttribute,\n OnChanges,\n PLATFORM_ID,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n input\n} from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { isValidURL } from '@ng-solid/core';\n\n@Component({\n selector: 'ns-avatar',\n template: `\n @if (hasCover) {\n <img\n class=\"ns-avatar__cover\"\n [attr.src]=\"src()\"\n [attr.alt]=\"atl()\"\n (error)=\"imgError($event)\"\n />\n } @else {\n <span class=\"ns-avatar__text\" #textRef>{{ src() }}</span>\n }\n `,\n styleUrls: ['./avatar.component.scss'],\n host: {\n class: 'ns-avatar',\n '[class.ns-avatar--circle]': `shape() === 'circle'`,\n '[class.ns-avatar--square]': `shape() === 'square'`,\n '[class.ns-avatar--large]': `size() === 'large'`,\n '[class.ns-avatar--medium]': `size() === 'medium'`,\n '[class.ns-avatar--small]': `size() === 'small'`\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n encapsulation: ViewEncapsulation.None\n})\nexport class NsAvatarComponent implements OnChanges {\n readonly src = input<string>(undefined);\n readonly atl = input<string>(undefined);\n readonly icon = input<string>(undefined);\n readonly shape = input<'circle' | 'square'>('circle');\n readonly size = input<'large' | 'medium' | 'small'>('small');\n readonly gap = input<number, unknown>(4, { transform: numberAttribute });\n @ViewChild('textRef', { static: false })\n textRef?: ElementRef<HTMLSpanElement>;\n public hasCover: boolean;\n public hasIcon: boolean;\n private elementRef = inject(ElementRef);\n private cdr = inject(ChangeDetectorRef);\n private platformId = inject(PLATFORM_ID);\n private renderer = inject(Renderer2);\n private ngZone = inject(NgZone);\n\n ngOnChanges() {\n this.hasCover = isValidURL(this.src());\n this.hasIcon = !this.src() && !!this.icon();\n this.notifyCalc();\n }\n\n imgError($event: ErrorEvent) {\n if (!$event.defaultPrevented) {\n this.hasIcon = false;\n this.hasCover = false;\n if (this.icon()) {\n this.hasIcon = true;\n } else if (isValidURL(this.src())) {\n this.hasCover = true;\n }\n this.cdr.detectChanges();\n this.notifyCalc();\n }\n }\n\n private calcStringSize() {\n const textEl = this.textRef?.nativeElement;\n if (this.hasCover || !textEl) {\n return;\n }\n\n const childrenWidth = textEl.offsetWidth;\n const avatarWidth =\n this.elementRef.nativeElement.getBoundingClientRect().width;\n const offset = this.gap() * 2 < avatarWidth ? this.gap() * 2 : 8;\n const scale =\n avatarWidth - offset < childrenWidth\n ? (avatarWidth - offset) / childrenWidth\n : 1;\n this.renderer.setStyle(\n textEl,\n 'transform',\n `scale(${scale}) translateX(-50%)`\n );\n }\n\n private notifyCalc(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.ngZone.runOutsideAngular(() =>\n setTimeout(() => this.calcStringSize())\n );\n }\n }\n}\n","import { booleanAttribute, Component, input } from '@angular/core';\nimport { NgClass } from '@angular/common';\nimport { NsIconsComponent } from '@ng-solid/icons';\n\n@Component({\n selector: 'ns-button',\n imports: [NgClass, NsIconsComponent],\n template: `\n <button\n [attr.type]=\"type()\"\n class=\"btn\"\n [ngClass]=\"{\n btn__primary: theme() == 'primary',\n btn__secondary: theme() == 'secondary',\n btn__success: theme() == 'success',\n btn__block: block(),\n 'btn--icon': icon()\n }\"\n [disabled]=\"disabled() || loading()\"\n >\n @if (!loading()) {\n @if (icon()) {\n <ns-icon [name]=\"icon()\" size=\"16\" />\n }\n {{ label() }}\n } @else {\n <ns-icon name=\"preload\" size=\"16\" />\n }\n </button>\n `,\n styleUrls: ['./button.component.scss'],\n host: {\n '[class.ns-button]': 'true',\n '[class.ns-button__grid]': 'block()',\n '[class.ns-button--loading]': 'loading()',\n '[class.ns-button--disabled]': 'disabled()'\n }\n})\nexport class NsButtonComponent {\n readonly label = input<string>(undefined);\n readonly type = input<'submit' | 'button'>('button');\n readonly theme = input<'primary' | 'secondary' | 'success'>('secondary');\n readonly block = input<boolean, unknown>(undefined, {\n transform: booleanAttribute\n });\n readonly disabled = input<boolean, unknown>(undefined, {\n transform: booleanAttribute\n });\n readonly loading = input<boolean, unknown>(undefined, {\n transform: booleanAttribute\n });\n readonly icon = input<string>(undefined);\n readonly value = input<string | number>(undefined);\n}\n","import { ControlValueAccessor } from '@angular/forms';\nimport { Directive, input, model } from '@angular/core';\nimport { Guid } from '@ng-solid/core';\n\n@Directive()\nexport abstract class NsValueAccessor<\n T = string\n> implements ControlValueAccessor {\n public readonly type = input('text');\n public readonly placeholder = input('');\n public readonly label = input<string>(undefined);\n public readonly disabled = model<boolean>(undefined);\n public readonly readonly = input<boolean>(undefined);\n\n public id = Guid.create();\n\n public readonly value = model<T>(undefined);\n\n public setValue(value: T): void {\n if (`${this.value()}` !== `${value}`) {\n this.onChange(value);\n }\n this.value.set(value);\n }\n\n public onTouched = () => {};\n\n public onChange: (value: T) => void = () => {};\n\n writeValue(value: T): void {\n if (typeof value !== 'undefined') {\n this.value.set(value);\n }\n }\n\n registerOnChange(fn: (value: T) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","import { Component, forwardRef } from '@angular/core';\nimport { NsValueAccessor } from '../../models/value-accessor';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'ns-checkbox',\n imports: [FormsModule],\n template: `\n <label class=\"form-check-label\">\n <input\n class=\"form-check-input\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"setValue($event)\"\n type=\"checkbox\"\n (blur)=\"onTouched()\"\n [disabled]=\"disabled()\"\n />\n {{ label() }}\n </label>\n `,\n styleUrls: ['./checkbox.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsCheckboxComponent),\n multi: true\n }\n ]\n})\nexport class NsCheckboxComponent extends NsValueAccessor<boolean> {}\n","import { NsDatepickerView } from './date-picker-view';\nimport { DateValue, isSameMonth } from '@internationalized/date';\n\nexport function isDateSelectable(date: DateValue, state: NsDatepickerView) {\n const { minDate, maxDate, disabled } = state;\n return !(\n date === null ||\n date === undefined ||\n disabled ||\n (minDate && isSameMonth(date, minDate)) ||\n (maxDate && isSameMonth(date, maxDate))\n );\n}\n","import { Injectable } from '@angular/core';\nimport {\n DateFormatter,\n DateTimeDuration,\n DateValue,\n DayOfWeek,\n getDayOfWeek,\n getLocalTimeZone,\n getWeeksInMonth,\n isToday,\n startOfWeek,\n today\n} from '@internationalized/date';\nimport { NsDayView, NsWeekView, WeekdayStyle } from './date-picker-view';\n\n@Injectable({ providedIn: 'root', useFactory: () => new NsCalendarGregorian() })\nexport abstract class NsCalendar {\n abstract today(): string;\n\n abstract add(duration: DateTimeDuration): string;\n\n abstract subtract(duration: DateTimeDuration): string;\n\n abstract getWeekDays(\n date: DateValue,\n weekdayStyle: WeekdayStyle,\n locale: string,\n firstDayOfWeek: DayOfWeek\n ): string[];\n\n abstract getWeeksInMonth(\n date: DateValue,\n locale: string,\n firstDayOfWeek: DayOfWeek\n ): NsWeekView[];\n\n abstract getDatesInWeek(\n weekIndex: number,\n from: DateValue,\n locale: string,\n firstDayOfWeek: DayOfWeek\n ): NsDayView[];\n\n abstract getFormattedMonth(startDate: DateValue, locale: string): string;\n\n abstract getHoursInDay(): number[];\n}\n\n@Injectable()\nexport class NsCalendarGregorian extends NsCalendar {\n private readonly timeZone = getLocalTimeZone();\n private readonly _today = today(this.timeZone);\n\n today(): string {\n return this._today.toString();\n }\n\n add(duration: DateTimeDuration): string {\n return this._today.add(duration).toString();\n }\n\n subtract(duration: DateTimeDuration): string {\n return this._today.subtract(duration).toString();\n }\n\n getFormattedMonth(date: DateValue, locale: string): string {\n const formatter = new DateFormatter(locale, {\n month: 'long',\n year: 'numeric'\n });\n const segments = formatter.formatToParts(date.toDate(this.timeZone));\n return `${segments[0].value} ${segments[2].value}`;\n }\n\n getWeekDays(\n date: DateValue,\n weekdayStyle: WeekdayStyle,\n locale: string,\n firstDayOfWeek: DayOfWeek\n ) {\n const weekStart = startOfWeek(date, locale, firstDayOfWeek);\n const formatter = new DateFormatter(locale, {\n calendar: weekStart.calendar.identifier,\n weekday: weekdayStyle,\n timeZone: this.timeZone\n });\n return [...new Array(7).keys()].map((index) => {\n const date = weekStart.add({ days: index });\n return formatter.format(date.toDate(this.timeZone));\n });\n }\n\n getWeeksInMonth(date: DateValue, locale: string, firstDayOfWeek: DayOfWeek) {\n const weeks = [];\n const weeksInMonth = getWeeksInMonth(date, locale, firstDayOfWeek);\n for (let weekIndex = 0; weekIndex < weeksInMonth; weekIndex++) {\n weeks.push({\n number: weekIndex,\n days: this.getDatesInWeek(weekIndex, date, locale, firstDayOfWeek)\n });\n }\n return weeks;\n }\n\n getDatesInWeek(\n weekIndex: number,\n from: DateValue,\n locale: string,\n firstDayOfWeek: DayOfWeek\n ): NsDayView[] {\n let date = startOfWeek(\n from.add({ weeks: weekIndex }),\n locale,\n firstDayOfWeek\n );\n const daysPerWeek = getDayOfWeek(date, locale, firstDayOfWeek);\n\n const formatter = new DateFormatter(locale, {\n month: 'numeric',\n day: 'numeric',\n year: 'numeric',\n timeZone: this.timeZone\n });\n const dates: NsDayView[] = Array(daysPerWeek).fill(null);\n\n // week has days\n while (dates.length < 7) {\n dates.push({\n number: date.day,\n date: date,\n context: {\n $implicit: date,\n date: date,\n month: date.month,\n year: date.year,\n disabled: false,\n selected: false,\n isToday: isToday(date, this.timeZone)\n },\n tabindex: -1,\n ariaLabel: formatter.format(date.toDate(this.timeZone))\n });\n\n date = date.add({ days: 1 });\n }\n return dates;\n }\n\n getHoursInDay(): number[] {\n return Array.from({ length: 24 }, (_, i) => i);\n }\n}\n","import { inject, Injectable, LOCALE_ID } from '@angular/core';\nimport {\n NsDatepickerView,\n NsMonthView,\n WeekdayStyle\n} from './date-picker-view';\nimport { filter, Observable, Subject } from 'rxjs';\nimport { isDateSelectable } from './date-utils';\nimport { NsCalendar } from './calendar';\nimport {\n DateValue,\n DayOfWeek,\n endOfMonth,\n isEqualDay,\n isSameMonth,\n parseDate,\n startOfMonth\n} from '@internationalized/date';\n\nexport type DatepickerInputs = Partial<{\n visibleMonths: number;\n firstDayOfWeek: DayOfWeek;\n maxDate?: DateValue;\n minDate?: DateValue;\n navigation: 'select' | 'arrows' | 'none';\n weekdayStyle: WeekdayStyle;\n}>;\n\n@Injectable({ providedIn: 'root' })\nexport class NsDatepickerService {\n private readonly calendar = inject(NsCalendar);\n private readonly locale = inject(LOCALE_ID);\n\n private _state: NsDatepickerView = {\n maxDate: null,\n minDate: null,\n visibleMonths: 1,\n startDate: null,\n firstDayOfWeek: 'sun',\n endDate: null,\n months: [],\n navigation: 'select',\n weekdayStyle: 'narrow',\n locale: this.locale,\n weekdaysVisible: true,\n disabled: false\n };\n\n private _selected$ = new Subject<DateValue>();\n\n get selected$(): Observable<DateValue> {\n return this._selected$.pipe(filter((date) => date !== null));\n }\n\n private _model$ = new Subject<NsDatepickerView>();\n\n get model$(): Observable<NsDatepickerView> {\n return this._model$.pipe(filter((model) => !!model.months.length));\n }\n\n today(): DateValue {\n return parseDate(this.calendar.today());\n }\n\n set(patch: DatepickerInputs) {\n if (Object.keys(patch).length > 0) {\n this._nextState(patch);\n }\n }\n\n getMonth(startDate: DateValue) {\n for (let month of this._state.months) {\n if (isSameMonth(startDate, month.startDate)) {\n return month;\n }\n }\n throw new Error(\n `month ${startDate.month} of year ${startDate.year} not found`\n );\n }\n\n navigate(startDate: DateValue) {\n if (startDate != null && !this._state.disabled) {\n this._nextState({ startDate });\n }\n }\n\n select(selectedDate: DateValue, options: { emitEvent?: boolean } = {}) {\n if (selectedDate != null && !this._state.disabled) {\n if (\n !this._state.selectedDate ||\n !isEqualDay(this._state.selectedDate, selectedDate)\n ) {\n this._nextState({ selectedDate });\n }\n\n if (options.emitEvent && isDateSelectable(selectedDate, this._state)) {\n this._selected$.next(selectedDate);\n }\n }\n }\n\n buildMonths(date: DateValue, state: NsDatepickerView): NsMonthView[] {\n const { visibleMonths, months: existingMonths } = state;\n\n // ensure start date for the first month\n const currentMonth = startOfMonth(date);\n\n // move old months to a temporary array\n const monthsToReuse = existingMonths.slice();\n\n // generate new first dates, nullify or reuse months\n return Array.from({ length: visibleMonths }, (_, i) => {\n const startDate = currentMonth.add({ months: i });\n\n const reusedIndex = monthsToReuse.findIndex((month) =>\n isEqualDay(month.startDate, startDate)\n );\n if (reusedIndex !== -1) {\n return monthsToReuse.splice(reusedIndex, 1)[0];\n }\n\n return this.buildMonth(\n startDate,\n state,\n monthsToReuse.shift() || ({} as NsMonthView)\n );\n });\n }\n\n buildMonth(\n startDate: DateValue,\n state: NsDatepickerView,\n month: NsMonthView = {} as NsMonthView\n ): NsMonthView {\n const { firstDayOfWeek, weekdayStyle, locale, weekdaysVisible } = state;\n\n month.label = this.calendar.getFormattedMonth(startDate, locale);\n month.startDate = startDate;\n month.endDate = endOfMonth(startDate);\n month.number = startDate.month;\n month.year = startDate.year;\n month.weeks = month.weeks || [];\n month.weekdays = [];\n\n // month has weekdays\n if (weekdaysVisible) {\n month.weekdays = this.calendar.getWeekDays(\n month.startDate,\n weekdayStyle,\n locale,\n firstDayOfWeek\n );\n }\n\n // month has weeks\n month.weeks = this.calendar.getWeeksInMonth(\n month.startDate,\n locale,\n firstDayOfWeek\n );\n\n return month;\n }\n\n private _nextState(patch: Partial<NsDatepickerView>) {\n const newState = this._updateState(patch);\n this._patchContexts(newState);\n this._state = newState;\n this._model$.next(this._state);\n }\n\n private _updateState(patch: Partial<NsDatepickerView>) {\n const state = Object.assign({}, this._state, patch);\n\n let startDate = state.startDate || this.today();\n\n // initial rebuild via 'select()'\n if ('selectedDate' in patch && this._state.months.length === 0) {\n startDate = startOfMonth(state.selectedDate);\n }\n // initial rebuild via 'navigate()'\n if (startDate) {\n state.months = this.buildMonths(startDate, state);\n state.startDate = state.months[0].startDate;\n state.endDate = state.months[state.months.length - 1].endDate;\n }\n\n return state;\n }\n\n private _patchContexts(state: NsDatepickerView) {\n const { selectedDate, minDate, maxDate, disabled } = state;\n state.months.forEach((month) => {\n month.weeks.forEach((week) => {\n week.days.forEach((day) => {\n // patch selection flag\n if (selectedDate !== undefined) {\n day.context.selected =\n selectedDate !== null && isEqualDay(selectedDate, day.date);\n }\n\n // disability\n const isUnavailable = !isSameMonth(month.startDate, day.date);\n const isNotValid =\n (typeof minDate !== 'undefined' && day.date.compare(minDate) < 0) ||\n (typeof maxDate !== 'undefined' && day.date.compare(maxDate) > 0);\n day.context.disabled = disabled || isUnavailable || isNotValid;\n });\n });\n });\n }\n\n ensureDateValue(date: Date | DateValue | string | null): DateValue | null {\n if (!date) {\n return null;\n }\n if (typeof date === 'string') {\n return parseDate(date);\n }\n if (date instanceof Date) {\n return parseDate(date.toISOString());\n }\n return date as DateValue;\n }\n}\n","import { inject, Injectable, LOCALE_ID } from '@angular/core';\nimport { DATE_PIPE_DEFAULT_OPTIONS } from '@angular/common';\nimport {\n DateFormatter,\n DateValue,\n getLocalTimeZone,\n parseDate\n} from '@internationalized/date';\n\n@Injectable({\n providedIn: 'root',\n useFactory: () => new NsDateISOParserFormatter()\n})\nexport abstract class NsDateParserFormatter {\n abstract parse(value: string): DateValue | null;\n\n abstract format(date: DateValue): string;\n}\n\n@Injectable()\nexport class NsDateISOParserFormatter extends NsDateParserFormatter {\n private readonly locale = inject(LOCALE_ID);\n private readonly config = inject(DATE_PIPE_DEFAULT_OPTIONS, {\n optional: true\n });\n private readonly formatter = new DateFormatter(this.locale, {\n day: '2-digit',\n month: 'short',\n year: 'numeric'\n });\n private readonly timeZone = getLocalTimeZone();\n private readonly defaultFormat = 'dd MMM, yyyy';\n\n parse(value: string): DateValue | null {\n return value ? parseDate(value) : null;\n }\n\n format(date: DateValue): string {\n const dateTimeFormat = this.config?.dateFormat || this.defaultFormat;\n\n if (!date) {\n return dateTimeFormat;\n }\n\n const parts = this.formatter.formatToParts(date.toDate(this.timeZone));\n const day = parts.find((p) => p.type === 'day')?.value || '';\n const month = parts.find((p) => p.type === 'month')?.value || '';\n const year = parts.find((p) => p.type === 'year')?.value || '';\n\n return dateTimeFormat\n .replace('dd', day)\n .replace('MMM', month)\n .replace('yyyy', year);\n }\n}\n","import { Component, inject, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NsDatepickerService } from './date-picker.service';\nimport { NsDayView, NsMonthView } from './date-picker-view';\n\n@Component({\n selector: 'ns-date-picker-month',\n imports: [CommonModule],\n template: `\n <table class=\"ns-date-picker__month\">\n <thead>\n <tr>\n @for (weekday of month().weekdays; track weekday) {\n <th class=\"ns-date-picker__weekday\">{{ weekday | titlecase }}</th>\n }\n </tr>\n </thead>\n\n <tbody>\n @for (week of month().weeks; track week.number) {\n <tr>\n @for (day of week.days; track day.number) {\n <td\n [ngClass]=\"{\n 'ns-date-picker--selected': day.context.selected,\n 'ns-date-picker--disabled': day.context.disabled,\n 'ns-date-picker--current': day.context.isToday\n }\"\n >\n <button\n class=\"ns-date-picker__day\"\n (click)=\"doSelect(day)\"\n [disabled]=\"day.context.disabled\"\n >\n {{ day.date.day }}\n </button>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n `,\n styleUrl: './date-picker-month.component.scss'\n})\nexport class NsDatePickerMonthComponent {\n readonly month = input<NsMonthView>(undefined);\n\n private readonly service = inject(NsDatepickerService);\n\n doSelect(day: NsDayView) {\n if (!day.context.disabled) {\n this.service.select(day.date, { emitEvent: true });\n }\n }\n}\n","import { Component, inject, input } from '@angular/core';\nimport { NsButtonComponent } from '../../../button';\nimport { NsMonthView } from './date-picker-view';\nimport { NsDatepickerService } from './date-picker.service';\nimport { TitleCasePipe } from '@angular/common';\n\n@Component({\n selector: 'ns-date-picker-navigation',\n imports: [NsButtonComponent, TitleCasePipe],\n standalone: true,\n template: `\n <div class=\"ns-date-picker__wrap\">\n <ns-button icon=\"angle-left\" (click)=\"prev()\" />\n <span class=\"ns-date-picker__month-title\">{{\n month().label | titlecase\n }}</span>\n <ns-button icon=\"angle-right\" (click)=\"next()\" />\n </div>\n `,\n host: {\n '[class.ns-date-picker__navigation]': 'true'\n },\n styles: `\n .ns-date-picker__wrap {\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-bottom: 1px solid #eee;\n padding: 0.5rem;\n margin-bottom: 0.5rem;\n\n &::ng-deep .btn {\n min-width: unset;\n padding: unset;\n }\n }\n `\n})\nexport class NsDatePickerNavigationComponent {\n readonly month = input<NsMonthView>(undefined);\n\n private readonly service = inject(NsDatepickerService);\n\n prev() {\n this.service.navigate(this.month().startDate.subtract({ months: 1 }));\n }\n\n next() {\n this.service.navigate(this.month().startDate.add({ months: 1 }));\n }\n}\n","import { Component, effect, inject, input } from '@angular/core';\n\nimport { NsDatePickerMonthComponent } from './date-picker-month.component';\nimport { NsDatePickerNavigationComponent } from './date-picker-navigation.component';\nimport { NsMonthView } from './date-picker-view';\nimport { NsDatepickerService } from './date-picker.service';\nimport { NsPlacement } from '../../../../types';\nimport { DateValue } from '@internationalized/date';\n\n@Component({\n selector: 'ns-date-picker-menu',\n standalone: true,\n imports: [NsDatePickerMonthComponent, NsDatePickerNavigationComponent],\n template: `\n <ns-date-picker-navigation [month]=\"model\" />\n <ns-date-picker-month [month]=\"model\" />\n `,\n host: {\n '[class.ns-date-picker__menu]': 'true',\n '[class.ns-date-picker__menu--start]': 'placement() == \"bottom-start\"',\n '[class.ns-date-picker__menu--end]': 'placement() == \"bottom-end\"'\n },\n styleUrls: ['./date-picker-menu.component.scss']\n})\nexport class NsDatePickerMenuComponent {\n public model: NsMonthView;\n\n readonly placement = input<NsPlacement>(undefined);\n readonly startDate = input<DateValue>(undefined);\n\n private readonly service = inject(NsDatepickerService);\n\n private readonly syncStartDate = effect(() => {\n const firstDate = this.startDate();\n if (firstDate) {\n this.model = this.service.getMonth(firstDate);\n }\n });\n}\n","import { Directive, input } from '@angular/core';\n\n@Directive({\n selector: 'ns-dropdown-item'\n})\nexport class NsDropdownItemDirective {\n readonly label = input<string>(undefined);\n readonly value = input<string | number>(undefined);\n readonly disabled = input<boolean>(false);\n\n constructor() {}\n}\n","import {\n AfterContentInit,\n Component,\n ContentChildren,\n ElementRef,\n effect,\n forwardRef,\n HostListener,\n OnInit,\n QueryList,\n ViewChild,\n input\n} from '@angular/core';\nimport { NsValueAccessor } from '../form/models/value-accessor';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NsDropdownItemDirective } from './directives/dropdown-item.directive';\nimport { NgClass } from '@angular/common';\nimport { NsIconsComponent } from '@ng-solid/icons';\n\n@Component({\n selector: 'ns-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss'],\n host: {\n '[class.dropdown]': 'true',\n '[class.ns-dropdown__filterable]': 'filterable()',\n '[class.show]': 'show'\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsDropdownComponent),\n multi: true\n }\n ],\n imports: [NgClass, FormsModule, NsIconsComponent]\n})\nexport class NsDropdownComponent\n extends NsValueAccessor<string | number>\n implements OnInit, AfterContentInit\n{\n readonly labelField = input('label');\n readonly valueField = input('value');\n readonly iconName = input<string>(undefined);\n readonly defaultFirst = input<boolean>(undefined);\n readonly placement = input<'start' | 'end'>('start');\n readonly filterable = input<boolean>(undefined);\n readonly collectionInput = input<Record<string, unknown>[]>([], {\n alias: 'collection'\n });\n\n @ViewChild('input', { read: ElementRef })\n searchRef: ElementRef<HTMLInputElement>;\n @ContentChildren(NsDropdownItemDirective)\n items: QueryList<NsDropdownItemDirective>;\n\n public show: boolean = false;\n\n private _filtered: Record<string, unknown>[];\n private _collection: Record<string, unknown>[] = [];\n private _search: string;\n\n constructor() {\n super();\n effect(() => this.setCollection(this.collectionInput()));\n }\n\n ngOnInit(): void {}\n\n ngAfterContentInit() {\n if (!this.collection.length && !!this.items) {\n this.setCollection(\n this.items.toArray().map((item) => ({\n label: item.label(),\n value: item.value(),\n disabled: item.disabled()\n }))\n );\n }\n }\n\n private setCollection(source: Record<string, unknown>[]): void {\n this._collection = this._filtered = source;\n }\n\n get collection() {\n return this.filterable() ? this._filtered : this._collection;\n }\n\n get selected() {\n return this.collection.find(\n (item) => item[this.valueField()] == this.value()\n );\n }\n\n set search(value: string) {\n this._search = value;\n this._filtered = this._collection.filter((item) =>\n String(item[this.labelField()])\n .toLowerCase()\n .includes(value.toLowerCase())\n );\n this.show = !!value;\n }\n\n get search() {\n return this._search;\n }\n\n select(item: Record<string, unknown>): void {\n const value = item[this.valueField()];\n if (typeof value === 'string' || typeof value === 'number') {\n this.setValue(value);\n }\n }\n\n @HostListener('click', ['$event'])\n toggle(event: MouseEvent) {\n event.preventDefault();\n if (!this.disabled()) {\n this.show = !this.show;\n if (this.filterable()) {\n if (this.show) {\n this.searchRef.nativeElement.focus();\n } else {\n this._search = '';\n this._filtered = this._collection;\n }\n }\n }\n }\n\n @HostListener('keydown', ['$event'])\n keyDown(event: KeyboardEvent) {\n if (this.show) {\n let index: number = this.selected\n ? this.collection.findIndex(\n (item) =>\n this.selected[this.valueField()] === item[this.valueField()]\n )\n : -1;\n switch (event.key) {\n case 'ArrowUp':\n if (index >= 1) {\n this.setValue(String(this.collection[--index][this.valueField()]));\n }\n break;\n case 'ArrowDown':\n if (index < this.collection.length - 1) {\n this.setValue(String(this.collection[++index][this.valueField()]));\n }\n break;\n case 'Enter':\n event.preventDefault();\n this._search = '';\n this.show = false;\n }\n } else if (event.key == 'Enter') {\n event.preventDefault();\n this._search = '';\n this._filtered = this._collection;\n this.show = true;\n }\n }\n}\n","@if (label()) {\n <label class=\"form-label\" [attr.for]=\"id\">{{ label() }}</label>\n}\n@if (filterable()) {\n <div class=\"ns-dropdown__search\" [class.disabled]=\"disabled()\">\n <div\n class=\"ns-dropdown__value\"\n [ngClass]=\"{ 'ns-dropdown__placeholder': !selected || show }\"\n [hidden]=\"!!search\"\n >\n <span class=\"ns-dropdown__value-label\">\n {{ !!selected ? selected[labelField()] : placeholder() }}\n </span>\n </div>\n\n <div class=\"ns-dropdown__input\">\n <input\n class=\"form-control\"\n [(ngModel)]=\"search\"\n #input\n [disabled]=\"disabled()\"\n [id]=\"id\"\n />\n </div>\n\n <svg\n class=\"dropdown-toggle\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n height=\"12px\"\n width=\"12px\"\n >\n <path\n d=\"M14,11.75a.74.74,0,0,1-.53-.22L8,6.06,2.53,11.53a.75.75,0,0,1-1.06-1.06l6-6a.75.75,0,0,1,1.06,0l6,6a.75.75,0,0,1,0,1.06A.74.74,0,0,1,14,11.75Z\"\n ></path>\n </svg>\n </div>\n} @else {\n <button\n class=\"btn btn__secondary\"\n [id]=\"id\"\n type=\"button\"\n [disabled]=\"disabled()\"\n >\n @if (iconName()) {\n <ns-icon [name]=\"iconName()\" [size]=\"16\" />\n }\n @if (placeholder() && selected) {\n <label class=\"form-label\">\n {{ placeholder() }}: <span [innerHtml]=\"selected[labelField()]\"></span>\n </label>\n } @else {\n <label\n class=\"form-label\"\n [innerHtml]=\"!!selected ? selected[labelField()] : placeholder()\"\n ></label>\n }\n\n <svg\n class=\"dropdown-toggle\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n height=\"12px\"\n width=\"12px\"\n >\n <path\n d=\"M14,11.75a.74.74,0,0,1-.53-.22L8,6.06,2.53,11.53a.75.75,0,0,1-1.06-1.06l6-6a.75.75,0,0,1,1.06,0l6,6a.75.75,0,0,1,0,1.06A.74.74,0,0,1,14,11.75Z\"\n ></path>\n </svg>\n </button>\n}\n\n<ul\n class=\"dropdown-menu\"\n [attr.aria-labelledby]=\"id\"\n [ngClass]=\"{\n show: show,\n 'dropdown-start': placement() !== 'end',\n 'dropdown-end': placement() == 'end'\n }\"\n (mouseleave)=\"show = false\"\n>\n @for (item of collection; track item) {\n <li>\n <button\n class=\"dropdown-item\"\n [ngClass]=\"{ active: selected === item }\"\n (click)=\"select(item)\"\n >\n <svg\n class=\"icon-check-mark\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n height=\"16px\"\n width=\"16px\"\n >\n <path\n d=\"M6.19,14.51a.77.77,0,0,1-.57-.25l-4.2-4.8a.75.75,0,0,1,1.13-1l3.56,4.06L13.36,1.82a.75.75,0,0,1,1-.21.76.76,0,0,1,.21,1.05L6.81,14.18a.73.73,0,0,1-.58.33Z\"\n ></path>\n </svg>\n <span>{{ item[labelField()] }}</span>\n </button>\n </li>\n }\n @if (!collection?.length) {\n <button class=\"dropdown-item\">\n <span>No items found</span>\n </button>\n }\n</ul>\n","import {\n ApplicationRef,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n createComponent,\n DestroyRef,\n ElementRef,\n EnvironmentInjector,\n forwardRef,\n inject,\n Injector,\n NgZone,\n OnInit,\n Type,\n DOCUMENT,\n input\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NsValueAccessor } from '../../models/value-accessor';\nimport { NsDatepickerView, WeekdayStyle } from './date-picker-view';\nimport { DatepickerInputs, NsDatepickerService } from './date-picker.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NsDateParserFormatter } from './date-parser-formatter';\n\nimport { NsDatePickerMenuComponent } from './date-picker-menu.component';\nimport { nsAutoClose } from '@ng-solid/core';\nimport { Subject } from 'rxjs';\nimport { NsIconsComponent } from '@ng-solid/icons';\nimport { DateValue, DayOfWeek } from '@internationalized/date';\nimport { NsDateView, NsPlacement } from '../../../../types';\nimport {\n NsDropdownComponent,\n NsDropdownItemDirective\n} from '../../../dropdown';\n\n@Component({\n selector: 'ns-date-picker',\n imports: [\n FormsModule,\n NsIconsComponent,\n NsDropdownComponent,\n NsDropdownItemDirective\n ],\n standalone: true,\n template: `\n @if (label()) {\n <label class=\"form-label\" [attr.for]=\"id\">{{ label() }}</label>\n }\n\n <div class=\"row\">\n <div class=\"col-md-8\">\n <div class=\"form-control\" (click)=\"toggleCalendar()\">\n <ns-icon name=\"calendar\" size=\"18\" />\n\n <input\n type=\"text\"\n class=\"ns-date-picker__input\"\n readonly\n [ngModel]=\"value()\"\n [attr.id]=\"id\"\n [attr.placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n (blur)=\"onTouched()\"\n #input\n />\n </div>\n </div>\n\n <div class=\"col-md-4\">\n <ns-dropdown iconName=\"clock\">\n <ns-dropdown-item label=\"12:00 AM\" value=\"0\" />\n </ns-dropdown>\n </div>\n </div>\n `,\n styleUrls: ['./date-picker.component.scss'],\n host: {\n '[class.ns-date-picker]': 'true',\n '[class.ns-date-picker--show]': 'isOpen()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsDatePickerComponent),\n multi: true\n },\n NsDatepickerService\n ]\n})\nexport class NsDatePickerComponent\n extends NsValueAccessor<string>\n implements OnInit\n{\n model: NsDatepickerView;\n\n private readonly service = inject(NsDatepickerService);\n private readonly parserFormatter = inject(NsDateParserFormatter);\n private readonly elRef = inject(ElementRef<HTMLInputElement>);\n private readonly appRef = inject(ApplicationRef);\n private readonly cdRef = inject(ChangeDetectorRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly injector = inject(EnvironmentInjector);\n private readonly ngZone = inject(NgZone);\n private readonly document = inject(DOCUMENT);\n\n readonly autoClose = input<boolean | 'inside' | 'outside'>(true);\n readonly placement = input<NsPlacement>('bottom-start');\n readonly view = input<NsDateView>(undefined);\n readonly visibleMonths = input(1);\n readonly firstDayOfWeek = input<DayOfWeek>('sun');\n readonly maxDate = input<DateValue | Date | string>(undefined);\n readonly minDate = input<DateValue | Date | string>(undefined);\n readonly navigation = input<'select' | 'arrows' | 'none'>('select');\n readonly weekdayStyle = input<WeekdayStyle>('short');\n\n private controlValue: DateValue;\n private popupRef: ComponentRef<NsDatePickerMenuComponent> | null = null;\n private destroyCloseHandlers$ = new Subject<void>();\n\n ngOnInit(): void {\n if (this.model === undefined) {\n const inputs: DatepickerInputs = {\n visibleMonths: this.visibleMonths(),\n firstDayOfWeek: this.firstDayOfWeek(),\n navigation: this.navigation(),\n minDate: this.service.ensureDateValue(this.minDate()) || undefined,\n maxDate: this.service.ensureDateValue(this.maxDate()) || undefined,\n weekdayStyle: this.weekdayStyle()\n };\n this.service.set(inputs);\n }\n\n this.service.selected$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((date) => {\n this.value.set(this.parserFormatter.format(date));\n this.onChange(date.toString());\n const autoClose = this.autoClose();\n if (autoClose === true || autoClose === 'inside') {\n this.close();\n }\n this.cdRef.markForCheck();\n });\n\n this.service.model$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((model) => {\n this.model = model;\n this.cdRef.markForCheck();\n });\n }\n\n override writeValue(value: string) {\n this.controlValue = this.service.ensureDateValue(value);\n this.value.set(this.parserFormatter.format(this.controlValue));\n }\n\n isOpen() {\n return !!this.popupRef;\n }\n\n toggleCalendar(): void {\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n }\n\n private open() {\n if (!this.isOpen()) {\n this.popupRef = this._createComponent(NsDatePickerMenuComponent);\n this.appRef.attachView(this.popupRef.hostView);\n this.elRef.nativeElement.appendChild(\n this.popupRef.location.nativeElement\n );\n this._applyDatepickerInputs(this.popupRef);\n this._setCloseHandlers();\n this.popupRef.changeDetectorRef.detectChanges();\n }\n }\n\n private _createComponent<T>(component: Type<T>) {\n return createComponent(component, {\n environmentInjector: this.injector,\n elementInjector: Injector.create({\n providers: [\n {\n provide: NsDatepickerService,\n useFactory: () => this.service\n }\n ]\n })\n });\n }\n\n private _applyDatepickerInputs(\n menuRef: ComponentRef<NsDatePickerMenuComponent>\n ): void {\n menuRef.setInput(\n 'startDate',\n this.model?.startDate || this.service.today()\n );\n menuRef.setInput('placement', this.placement());\n }\n\n private close() {\n if (this.isOpen()) {\n this.elRef.nativeElement.removeChild(\n this.popupRef.location.nativeElement\n );\n this.popupRef?.destroy();\n this.popupRef = null;\n this.destroyCloseHandlers$.next();\n this.cdRef.markForCheck();\n }\n }\n\n private _setCloseHandlers() {\n const popupRef = this.popupRef;\n if (!popupRef) {\n return;\n }\n\n nsAutoClose(\n this.ngZone,\n this.document,\n this.autoClose(),\n () => this.close(),\n this.destroyCloseHandlers$,\n [],\n [this.elRef.nativeElement, popupRef.location.nativeElement]\n );\n }\n}\n","import { Directive, forwardRef, inject } from '@angular/core';\nimport { NsValueAccessor } from '../models/value-accessor';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NsDateParserFormatter } from '../components/date-picker/date-parser-formatter';\n\n@Directive({\n selector: 'ns-date-range-start',\n standalone: true,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsDateRangeStartDirective),\n multi: true\n }\n ]\n})\nexport class NsDateRangeStartDirective extends NsValueAccessor<string> {\n private parserFormatter = inject(NsDateParserFormatter);\n\n override writeValue(value: string) {\n const nsDate = this.parserFormatter.parse(value);\n this.value.set(this.parserFormatter.format(nsDate));\n }\n}\n\n@Directive({\n selector: 'ns-date-range-end',\n standalone: true,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsDateRangeEndDirective),\n multi: true\n }\n ]\n})\nexport class NsDateRangeEndDirective extends NsValueAccessor<string> {\n private parserFormatter = inject(NsDateParserFormatter);\n\n override writeValue(value: string) {\n const nsDate = this.parserFormatter.parse(value);\n this.value.set(this.parserFormatter.format(nsDate));\n }\n}\n","import { Component, ContentChild, input } from '@angular/core';\n\nimport {\n NsDateRangeEndDirective,\n NsDateRangeStartDirective\n} from '../../directives/date-range.directive';\n\nimport { NsDatePickerComponent } from './date-picker.component';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'ns-date-range',\n standalone: true,\n imports: [NsDatePickerComponent, FormsModule],\n template: `\n <div class=\"ns-date-range__wrap\">\n @if (start) {\n <ns-date-picker\n [label]=\"start.label()\"\n [placeholder]=\"placeholder()\"\n [ngModel]=\"start.value()\"\n (ngModelChange)=\"start.setValue($event)\"\n />\n }\n @if (end) {\n <ns-date-picker\n [label]=\"end.label()\"\n [placeholder]=\"placeholder()\"\n [ngModel]=\"end.value()\"\n (ngModelChange)=\"end.setValue($event)\"\n />\n }\n </div>\n `,\n styles: `\n :host {\n display: block;\n position: relative;\n max-width: 30rem;\n }\n\n .ns-date-range__wrap {\n display: grid;\n grid-template-columns: 1fr 1fr;\n column-gap: 1rem;\n }\n `,\n host: {\n '[class.ns-date-range]': 'true'\n }\n})\nexport class NsDateRangePickerComponent {\n readonly placeholder = input<string>(undefined);\n\n @ContentChild(NsDateRangeStartDirective) start: NsDateRangeStartDirective;\n @ContentChild(NsDateRangeEndDirective) end: NsDateRangeEndDirective;\n}\n","import { Component, forwardRef, input } from '@angular/core';\nimport { NsValueAccessor } from '../../models/value-accessor';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'ns-input',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsInputComponent),\n multi: true\n }\n ],\n imports: [FormsModule]\n})\nexport class NsInputComponent extends NsValueAccessor<string> {\n readonly ariaLabel = input<string>(undefined);\n readonly ariaDescribedBy = input<string>(undefined);\n}\n","@if (label()) {\n <label class=\"form-label\" [attr.for]=\"id\">{{ label() }}</label>\n}\n\n<input\n [ngModel]=\"value()\"\n (ngModelChange)=\"setValue($event)\"\n class=\"form-control\"\n [attr.id]=\"id\"\n [type]=\"type()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [attr.readonly]=\"readonly()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n (blur)=\"onTouched()\"\n/>\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ns-input-group-addon',\n template: '<ng-content></ng-content>',\n styleUrls: ['./input-group-addon.component.scss'],\n encapsulation: ViewEncapsulation.ShadowDom,\n host: {\n '[class.ns-input-group-addon]': 'true'\n }\n})\nexport class NsInputGroupAddonComponent {}\n","import {\n booleanAttribute,\n Component,\n ContentChild,\n ViewEncapsulation,\n input\n} from '@angular/core';\nimport { NsInputComponent } from '../input';\nimport { NsInputGroupAddonComponent } from './input-group-addon.component';\n\nexport type NsInputGroupSize = 'sm' | 'md' | 'lg';\n\n@Component({\n selector: 'ns-input-group',\n templateUrl: './input-group.component.html',\n styleUrls: ['./input-group.component.scss'],\n encapsulation: ViewEncapsulation.ShadowDom,\n imports: [NsInputGroupAddonComponent],\n host: {\n '[class.ns-input-group]': 'true'\n }\n})\nexport class NsInputGroupComponent {\n readonly label = input<string>(undefined);\n readonly prepend = input<string>(undefined);\n readonly append = input<string>(undefined);\n\n readonly size = input<NsInputGroupSize>('md');\n\n readonly wrap = input(true, { transform: booleanAttribute });\n\n @ContentChild(NsInputComponent)\n primaryInput?: NsInputComponent;\n}\n","@if (label()) {\n <label class=\"form-label\" [attr.for]=\"primaryInput?.id\">{{ label() }}</label>\n}\n\n<div\n class=\"input-group\"\n [class.input-group--sm]=\"size() === 'sm'\"\n [class.input-group--lg]=\"size() === 'lg'\"\n [class.input-group--nowrap]=\"!wrap()\"\n>\n @if (prepend()) {\n <ns-input-group-addon>{{ prepend() }}</ns-input-group-addon>\n }\n <ng-content></ng-content>\n @if (append()) {\n <ns-input-group-addon>{{ append() }}</ns-input-group-addon>\n }\n</div>\n","export function clamp(\n value: number,\n min: number = -Infinity,\n max: number = Infinity\n): number {\n return Math.min(Math.max(value, min), max);\n}\n\nexport function roundToStepPrecision(value: number, step: number): number {\n let roundedValue = value;\n let stepString = step.toString();\n let pointIndex = stepString.indexOf('.');\n let precision = pointIndex >= 0 ? stepString.length - pointIndex : 0;\n if (precision > 0) {\n let pow = Math.pow(10, precision);\n roundedValue = Math.round(roundedValue * pow) / pow;\n }\n return roundedValue;\n}\n\nexport function snapValueToStep(\n value: number,\n min: number | undefined,\n max: number | undefined,\n step: number\n): number {\n min = Number(min);\n max = Number(max);\n let remainder = (value - (isNaN(min) ? 0 : min)) % step;\n let snappedValue = roundToStepPrecision(\n Math.abs(remainder) * 2 >= step\n ? value + Math.sign(remainder) * (step - Math.abs(remainder))\n : value - remainder,\n step\n );\n\n if (!isNaN(min)) {\n if (snappedValue < min) {\n snappedValue = min;\n } else if (!isNaN(max) && snappedValue > max) {\n snappedValue =\n min + Math.floor(roundToStepPrecision((max - min) / step, step)) * step;\n }\n } else if (!isNaN(max) && snappedValue > max) {\n snappedValue = Math.floor(roundToStepPrecision(max / step, step)) * step;\n }\n\n // correct floating point behavior by rounding to step precision\n snappedValue = roundToStepPrecision(snappedValue, step);\n\n return snappedValue;\n}\n\nexport const handleDecimalOperation = (\n operator: '-' | '+',\n value1: number,\n value2: number\n): number => {\n let result = operator === '+' ? value1 + value2 : value1 - value2;\n\n // Check if we have decimals\n if (value1 % 1 !== 0 || value2 % 1 !== 0) {\n const value1Decimal = value1.toString().split('.');\n const value2Decimal = value2.toString().split('.');\n const value1DecimalLength =\n (value1Decimal[1] && value1Decimal[1].length) || 0;\n const value2DecimalLength =\n (value2Decimal[1] && value2Decimal[1].length) || 0;\n const multiplier = Math.pow(\n 10,\n Math.max(value1DecimalLength, value2DecimalLength)\n );\n\n // Transform the decimals to integers based on the precision\n value1 = Math.round(value1 * multiplier);\n value2 = Math.round(value2 * multiplier);\n\n // Perform the operation on integers values to make sure we don't get a fancy decimal value\n result = operator === '+' ? value1 + value2 : value1 - value2;\n\n // Transform the integer result back to decimal\n result /= multiplier;\n }\n\n return result;\n};\n","import {\n Component,\n DEFAULT_CURRENCY_CODE,\n ElementRef,\n forwardRef,\n HostListener,\n inject,\n LOCALE_ID,\n numberAttribute,\n OnInit,\n Provider,\n Renderer2,\n ViewChild,\n input\n} from '@angular/core';\nimport { NsValueAccessor } from '../../models/value-accessor';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NumberFormatter, NumberParser } from '@internationalized/number';\nimport { clamp, handleDecimalOperation, snapValueToStep } from './utils';\nimport { NS_FORMAT_OPTIONS } from '@ng-solid/core';\n\nconst NS_INPUT_NUMBER_PROVIDER: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsInputNumberComponent),\n multi: true\n};\n\n@Component({\n selector: 'ns-input-number',\n imports: [FormsModule],\n template: ` @if (label()) {\n <label class=\"form-label\" [attr.for]=\"id\">{{ label() }}</label>\n }\n\n <div class=\"input-group\">\n <input\n #input\n class=\"form-control\"\n type=\"text\"\n autocomplete=\"off\"\n [attr.id]=\"id\"\n [attr.min]=\"minValue()\"\n [attr.max]=\"maxValue()\"\n [attr.readonly]=\"readonly()\"\n [attr.step]=\"step()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [ngModel]=\"value()\"\n (input)=\"onInput($event)\"\n />\n </div>`,\n styleUrls: ['./input-number.component.scss'],\n providers: [NS_INPUT_NUMBER_PROVIDER]\n})\nexport class NsInputNumberComponent\n extends NsValueAccessor<string | number>\n implements OnInit\n{\n readonly step = input<number, unknown>(undefined, {\n transform: numberAttribute\n });\n readonly precision = input<number, unknown>(undefined, {\n transform: numberAttribute\n });\n readonly minValue = input<number, unknown>(undefined, {\n transform: numberAttribute\n });\n readonly maxValue = input<number, unknown>(undefined, {\n transform: numberAttribute\n });\n readonly formatStyle = input<Intl.NumberFormatOptions['style']>('decimal');\n\n @ViewChild('input', { static: true }) input: ElementRef<HTMLInputElement>;\n\n public numberInput: number = 0;\n\n private readonly defaultOptions = inject(NS_FORMAT_OPTIONS);\n private readonly currency = inject(DEFAULT_CURRENCY_CODE);\n private readonly renderer = inject(Renderer2);\n private readonly locale = inject(LOCALE_ID);\n\n private formatter: NumberFormatter;\n private parser: NumberParser;\n\n ngOnInit() {\n this.formatter = new NumberFormatter(this.locale, this.formatOptions);\n this.parser = new NumberParser(this.locale, this.formatOptions);\n }\n\n get formatOptions(): Intl.NumberFormatOptions {\n return {\n ...this.defaultOptions.number,\n style: this.formatStyle(),\n currency: this.currency,\n minimumFractionDigits: this.precision(),\n maximumFractionDigits: this.precision()\n };\n }\n\n writeValue(value: string | number) {\n if (value === null) {\n value = NaN;\n } else if (typeof value === 'string') {\n value = Number(value);\n }\n\n if (value === undefined && !isNaN(value)) {\n const step = this.step();\n if (step !== undefined && !isNaN(step)) {\n value = snapValueToStep(value, this.minValue(), this.maxValue(), step);\n } else {\n value = clamp(value, this.minValue(), this.maxValue());\n }\n }\n\n const formattedValue = this.formatter.format(!isNaN(value) ? value : 0);\n this.value.set(formattedValue);\n this.numberInput = this.parser.parse(formattedValue);\n }\n\n override setValue(value: string): void {\n if (this.value() !== value) {\n let parsedValue = this.parser.parse(value);\n\n const step = this.step();\n if (step !== undefined && !isNaN(step)) {\n parsedValue = snapValueToStep(\n parsedValue,\n this.minValue(),\n this.maxValue(),\n step\n );\n } else {\n parsedValue = clamp(parsedValue, this.minValue(), this.maxValue());\n }\n\n if (isNaN(parsedValue)) {\n parsedValue = 0; // Reset to 0 if parsing fails\n }\n\n if (this.numberInput !== parsedValue) {\n this.value.set(value);\n this.numberInput = parsedValue;\n this.onChange(parsedValue);\n }\n }\n }\n\n onInput(event: Event) {\n const { value } = event.target as HTMLInputElement;\n if (!this.parser.isValidPartialNumber(value)) {\n if (this.type() === 'currency') {\n this.renderer.setProperty(\n this.input.nativeElement,\n 'value',\n this.formatOptions.currency\n );\n }\n this.setValue('');\n } else {\n this.setValue(value);\n }\n }\n\n @HostListener('keydown', ['$event'])\n onKeyUp(event: KeyboardEvent) {\n if (!this.disabled()) {\n let newValue: number | null = NaN;\n\n if (event.key === 'ArrowUp') {\n newValue = this.safeNextStep('+', this.minValue());\n } else if (event.key === 'ArrowDown') {\n newValue = this.safeNextStep('-', this.maxValue());\n }\n\n if (!isNaN(newValue)) {\n event?.preventDefault();\n this.setValue(this.formatter.format(newValue));\n }\n }\n }\n\n @HostListener('focusout', ['$event'])\n onFocusOut(event: FocusEvent) {\n if (!this.disabled()) {\n event?.preventDefault();\n this.value.set(this.formatter.format(this.numberInput));\n }\n }\n\n private safeNextStep = (operation: '+' | '-', minMax: number = 0) => {\n let prev = this.numberInput;\n\n const step = this.step();\n let clampStep = step !== undefined && !isNaN(step) ? step : 1;\n const stepValue = this.step();\n if (\n this.formatOptions.style === 'percent' &&\n (stepValue === undefined || isNaN(stepValue))\n ) {\n clampStep = 0.01;\n }\n\n if (isNaN(prev)) {\n // if the input is empty, start from the min/max value when incrementing/decrementing,\n // or zero if there is no min/max value defined.\n let newValue = isNaN(minMax) ? 0 : minMax;\n return snapValueToStep(\n newValue,\n this.minValue(),\n this.maxValue(),\n clampStep\n );\n } else {\n // otherwise, first snap the current value to the nearest step. if it moves in the direction\n // we're going, use that value, otherwise add the step and snap that value.\n let newValue = snapValueToStep(\n prev,\n this.minValue(),\n this.maxValue(),\n clampStep\n );\n if (\n (operation === '+' && newValue > prev) ||\n (operation === '-' && newValue < prev)\n ) {\n return newValue;\n }\n\n return snapValueToStep(\n handleDecimalOperation(operation, prev, clampStep),\n this.minValue(),\n this.maxValue(),\n clampStep\n );\n }\n };\n}\n","import { Component, forwardRef, OnInit, input } from '@angular/core';\nimport { NsValueAccessor } from '../../models/value-accessor';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { RouterLink } from '@angular/router';\nimport { NsIconsComponent } from '@ng-solid/icons';\n\n@Component({\n selector: 'ns-password',\n templateUrl: './password.component.html',\n styleUrls: ['./password.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsPasswordComponent),\n multi: true\n }\n ],\n imports: [RouterLink, FormsModule, NsIconsComponent]\n})\nexport class NsPasswordComponent extends NsValueAccessor implements OnInit {\n readonly forgotLink = input<string>(undefined);\n readonly showAndHide = input<boolean>(undefined);\n\n public show: boolean;\n\n constructor() {\n super();\n }\n\n ngOnInit() {}\n\n toggle() {\n this.show = !this.show;\n }\n}\n","@if (label()) {\n <label class=\"form-label\">\n {{ label() }}\n @if (forgotLink()) {\n <a [routerLink]=\"forgotLink()\">Olvido su contraseña?</a>\n }\n </label>\n}\n\n<div class=\"input-group\">\n <input\n class=\"form-control\"\n [type]=\"show ? 'input' : 'password'\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"setValue($event)\"\n [placeholder]=\"placeholder()\"\n (blur)=\"onTouched()\"\n [disabled]=\"disabled()\"\n />\n\n @if (showAndHide()) {\n <div class=\"input-group-append\" (click)=\"toggle()\">\n <span class=\"input-group-text\">\n <ns-icon [name]=\"show ? 'eye-hide' : 'eye-show'\" />\n </span>\n </div>\n }\n</div>\n","import {\n booleanAttribute,\n Component,\n computed,\n forwardRef,\n input\n} from '@angular/core';\nimport { NsValueAccessor } from '../../models/value-accessor';\nimport { YesNo } from '@ng-solid/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'ns-switch',\n imports: [FormsModule, NgClass],\n template: `\n <input\n type=\"checkbox\"\n class=\"ns-switch__input\"\n role=\"switch\"\n [ngModel]=\"checked()\"\n (ngModelChange)=\"setValue($event)\"\n [ngClass]=\"{ 'ns-switch__input--success': theme() == 'success' }\"\n [attr.id]=\"id\"\n [disabled]=\"disabled()\"\n />\n <label class=\"ns-switch__label\" [attr.for]=\"id\">{{ label() }}</label>\n `,\n styleUrls: ['./switch.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsSwitchComponent),\n multi: true\n }\n ],\n host: {\n '[class.ns-switch]': 'true',\n '[class.ns-switch--small]': 'size() === \"small\"',\n '[class.ns-switch--large]': 'size() === \"large\"'\n }\n})\nexport class NsSwitchComponent extends NsValueAccessor<boolean | string> {\n readonly boolean = input<boolean, unknown>(true, {\n transform: booleanAttribute\n });\n readonly size = input<'large' | 'small'>('small');\n readonly theme = input<'primary' | 'success'>('primary');\n\n readonly checked = computed(() => {\n const value = this.value();\n return typeof value === 'boolean' ? value : YesNo.isYes(value);\n });\n\n override setValue(checked: boolean): void {\n super.setValue(this.boolean() ? checked : YesNo.yesOrNo(checked));\n }\n}\n","import { Component, forwardRef, input } from '@angular/core';\nimport { NsValueAccessor } from '../../models/value-accessor';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'ns-textarea',\n template: `\n @if (label()) {\n <label class=\"form-label\" [attr.for]=\"id\">{{ label() }}</label>\n }\n\n <textarea\n class=\"form-control\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"setValue($event)\"\n [id]=\"id\"\n [rows]=\"rows()\"\n [placeholder]=\"placeholder()\"\n (blur)=\"onTouched()\"\n [disabled]=\"disabled()\"\n ></textarea>\n `,\n styleUrls: ['./text-area.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsTextAreaComponent),\n multi: true\n }\n ],\n imports: [FormsModule]\n})\nexport class NsTextAreaComponent extends NsValueAccessor<string> {\n readonly rows = input<number>(3);\n}\n","import {\n Component,\n ElementRef,\n forwardRef,\n HostBinding,\n HostListener,\n inject,\n Renderer2,\n input\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NsValueAccessor } from '../models/value-accessor';\n\n@Component({\n selector: 'ns-content-editable',\n template: '',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsContentEditableComponent),\n multi: true\n }\n ],\n styles: [\n ':host{display:block; position:relative; background-color:var(--ns-content-bg, #fff); width:100%; height:fit-content; min-height:7rem; outline:none;}',\n ':host.ns-content--disabled{background-color: var(--ns-content-disabled-bg,#e9ecef); opacity: 0.65;}'\n ],\n host: {\n '[class.ns-content--disabled]': 'disabled()'\n }\n})\nexport class NsContentEditableComponent extends NsValueAccessor<string> {\n private elementRef = inject(ElementRef);\n private renderer = inject(Renderer2);\n\n readonly maxLength = input<number>(undefined, { alias: 'maxlength' });\n\n @HostBinding('attr.contenteditable')\n enabled: boolean = true;\n\n override writeValue(value: string): void {\n if (typeof value !== 'undefined') {\n this.renderer.setProperty(\n this.elementRef.nativeElement,\n 'innerHTML',\n value || ''\n );\n }\n }\n\n @HostListener('input')\n onInput(): void {\n this.onChange(this.elementRef.nativeElement.innerHTML);\n }\n\n @HostListener('blur')\n onBlur(): void {\n this.onTouched();\n }\n\n @HostListener('keydown', ['$event'])\n onKeyUp(event: KeyboardEvent) {\n const maxLength = this.maxLength();\n if (\n maxLength &&\n this.elementRef.nativeElement.innerText.length >= maxLength &&\n event.key !== 'Backspace'\n ) {\n event.preventDefault();\n }\n }\n\n override setDisabledState(isDisabled: boolean) {\n this.disabled.set(isDisabled);\n this.enabled = !isDisabled;\n }\n}\n","// COMPONENTS\nexport * from './components/checkbox';\nexport * from './components/date-picker';\nexport * from './components/input';\nexport * from './components/input-group';\nexport * from './components/input-number';\nexport * from './components/password';\nexport * from './components/switch';\nexport * from './components/text-area';\n\n// DIRECTIVES\nexport * from './directives';\n\n// MODELS\nexport * from './models';\n","import {\n Component,\n ContentChildren,\n forwardRef,\n QueryList\n} from '@angular/core';\n\nimport { NsValueAccessor } from '../form';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NsButtonComponent } from '../button';\n\n@Component({\n selector: 'ns-button-group',\n standalone: true,\n imports: [],\n template: `\n @if (label()) {\n <label class=\"form-label\">{{ label() }}</label>\n }\n\n <div\n class=\"btn__group\"\n role=\"group\"\n aria-label=\"Basic radio toggle button group\"\n >\n @for (item of items; track item; let i = $index; let isFirst = $first) {\n <input\n type=\"radio\"\n class=\"btn__check\"\n autocomplete=\"off\"\n [attr.id]=\"'btn-group__' + i\"\n [checked]=\"value() == item.value()\"\n (click)=\"setValue(item.value())\"\n />\n <label class=\"btn btn__outline-primary\" [attr.for]=\"'btn-group__' + i\">\n {{ item.label() }}\n </label>\n }\n </div>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsButtonGroupComponent),\n multi: true\n }\n ],\n styleUrls: ['./button-group.component.scss'],\n host: {\n '[class.ns-button-group]': 'true'\n }\n})\nexport class NsButtonGroupComponent extends NsValueAccessor<string | number> {\n @ContentChildren(NsButtonComponent) items: QueryList<NsButtonComponent>;\n}\n","import { Component, OnInit, input, output } from '@angular/core';\nimport { NsComment } from './interfaces/comment';\nimport { NgClass } from '@angular/common';\nimport { NsAvatarComponent } from '../avatar';\nimport { NsContentEditableComponent } from '../form';\nimport { FormsModule } from '@angular/forms';\nimport { NsHumanizePipe, NsSafeHtmlPipe } from '@ng-solid/core';\n\n@Component({\n selector: 'ns-comment',\n templateUrl: './comment.component.html',\n styleUrls: ['./comment.component.scss'],\n imports: [\n NgClass,\n NsAvatarComponent,\n NsContentEditableComponent,\n FormsModule,\n NsSafeHtmlPipe,\n NsHumanizePipe\n ]\n})\nexport class NsCommentComponent implements OnInit {\n readonly title = input<string>(undefined);\n readonly description = input<string>(undefined);\n readonly placeholder = input<string>(undefined);\n readonly messages = input<NsComment[]>([]);\n readonly cover = input<{\n url: string;\n alt?: string;\n }>(undefined);\n readonly submitText = input<string>(undefined);\n readonly logged = input<boolean>(undefined);\n readonly maxLength = input<number>(128);\n readonly disabled = input<boolean>(undefined);\n\n readonly commit = output<string>();\n\n public invalid: boolean = false;\n public content: string = '';\n\n private clearEmptyValues: RegExp = new RegExp(/(<div><br><\\/div>)*/g);\n\n constructor() {}\n\n ngOnInit(): void {}\n\n publish() {\n if (this.content) {\n this.commit.emit(this.content.replace(this.clearEmptyValues, ''));\n this.content = '';\n } else {\n this.invalid = true;\n }\n }\n\n get counter() {\n const characters = this.maxLength() - this.content.length;\n return characters > 0 ? characters : 0;\n }\n}\n","@if (logged()) {\n <div class=\"ns-comment-box\" [ngClass]=\"{ 'ns-comment-invalid': invalid }\">\n <ns-avatar class=\"ns-comment-avatar\" [src]=\"cover()?.url\" />\n\n <div class=\"ns-comment-input-wrap\">\n <div class=\"ns-comment-input\">\n <ns-content-editable\n class=\"ns-comment-input-content\"\n [maxlength]=\"maxLength()\"\n [(ngModel)]=\"content\"\n [disabled]=\"disabled()\"\n />\n\n @if (!content) {\n <span class=\"ns-comment-input-placeholder\">{{ placeholder() }}</span>\n }\n </div>\n\n <div class=\"ns-comment-footer\">\n <span class=\"ns-comment-counter\">Quedan {{ counter }} caracteres</span>\n\n @if (submitText()) {\n <button\n class=\"ns-comment-submit\"\n (click)=\"publish()\"\n [disabled]=\"disabled()\"\n >\n {{ submitText() }}\n </button>\n }\n </div>\n </div>\n </div>\n} @else {\n <h4 class=\"ns-comment-title\">\n {{ title() }} <br />\n <small\n class=\"ns-comment-description\"\n [innerHTML]=\"description() | nsSafeHtml\"\n ></small>\n </h4>\n\n <div class=\"ns-comment-logout\">\n <ng-content />\n </div>\n}\n@if (messages().length) {\n <ul class=\"ns-comment-list\">\n @for (comment of messages(); track comment) {\n <li class=\"ns-comment\">\n <ns-avatar\n class=\"ns-comment-cover\"\n [src]=\"comment.cover?.url\"\n size=\"medium\"\n />\n\n <div class=\"ns-comment-wrap\">\n <div class=\"ns-comment-user-wrap\">\n @if (comment?.author; as author) {\n <a [attr.href]=\"author.link\" class=\"ns-comment-author\">\n {{ author.name }}\n </a>\n }\n @if (comment?.created; as date) {\n <span class=\"ns-comment-date\">{{ date | nsHumanize }}</span>\n }\n\n <div\n class=\"ns-comment-message\"\n [innerHTML]=\"comment?.message | nsSafeHtml\"\n ></div>\n </div>\n </div>\n </li>\n }\n </ul>\n}\n","export enum Commands {\n BOLD = 'bold',\n CREATE_LINK = 'createLink',\n FONT_NAME = 'fontName',\n FONT_SIZE = 'fontSize',\n FORMAT_BLOCK = 'formatBlock',\n INSERT_HTML = 'insertHTML',\n INSERT_IMAGE = 'insertImage',\n INSERT_ORDERED_LIST = 'insertOrderedList',\n INSERT_UNORDERED_LIST = 'insertUnorderedList',\n INSERT_TEXT = 'insertText',\n ITALIC = 'italic',\n JUSTIFY_CENTER = 'justifyCenter',\n JUSTIFY_FULL = 'justifyFull',\n JUSTIFY_LEFT = 'justifyLeft',\n JUSTIFY_RIGHT = 'justifyRight',\n UNDERLINE = 'underline',\n UNLINK = 'unlink',\n TEXT_COLOR = 'foreColor',\n BACKGROUND_COLOR = 'backColor'\n}\n","export const LABELS_DEFAULT: Record<string, string> = {\n bold: 'Bold',\n italic: 'Italic',\n code: 'Code',\n underline: 'Underline',\n strike: 'Strike',\n blockquote: 'Blockquote',\n bullet_list: 'Bullet List',\n ordered_list: 'Ordered List',\n paragraph: 'Paragraph',\n h1: 'Header 1',\n h2: 'Header 2',\n h3: 'Header 3',\n h4: 'Header 4',\n h5: 'Header 5',\n h6: 'Header 6',\n align_left: 'Left Align',\n align_center: 'Center Align',\n align_right: 'Right Align',\n align_justify: 'Justify',\n text_color: 'Text Color',\n background_color: 'Background Color',\n insert_link: 'Insert Link',\n link: 'Paste your link',\n text: 'Text to display',\n tooltip_link: 'Tooltip',\n open_new_window: 'Open link in new window',\n submit_link: 'Insert',\n remove_color: 'Remove'\n};\n\nexport type LabelsKeys = keyof typeof LABELS_DEFAULT;\n\nexport class Labels {\n private readonly storage = LABELS_DEFAULT;\n\n constructor(newLabels: Partial<Record<LabelsKeys, string>> = {}) {\n this.storage = { ...LABELS_DEFAULT, ...newLabels };\n }\n\n get = (key: string): string => {\n return this.storage[key] ?? '';\n };\n}\n","import { Labels } from '../models/labels';\nimport { NsEditorSetup } from '../interfaces/editor-config';\nimport { Commands } from '../enums/commands.enum';\nimport { inject, Injectable, InjectionToken, DOCUMENT } from '@angular/core';\n\nexport const NS_EDITOR_SETUP = new InjectionToken<NsEditorSetup>(\n 'NsEditorSetup'\n);\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NsEditorService {\n private config = inject<NsEditorSetup>(NS_EDITOR_SETUP, { optional: true });\n private doc = inject(DOCUMENT);\n\n private savedSelection: Range | null;\n private selectedText: string;\n private readonly labels: Labels;\n\n constructor() {\n const config = this.config;\n\n this.labels = new Labels(config ? config.labels : {});\n }\n\n translate(key: string): string {\n return this.labels.get(key);\n }\n\n saveSelection() {\n switch (true) {\n case !!this.doc.getSelection:\n const sel = this.doc.getSelection();\n if (sel.getRangeAt && sel.rangeCount) {\n this.savedSelection = sel.getRangeAt(0);\n this.selectedText = sel.toString();\n }\n break;\n case !!this.doc.getSelection && !!this.doc.createRange:\n this.savedSelection = document.createRange();\n break;\n default:\n this.savedSelection = null;\n }\n }\n\n command(name: Commands, value?: string) {\n this.doc.execCommand(name, false, value);\n }\n\n formatBlock(heading: string) {\n const headings = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'pre'];\n if (headings.includes(heading)) {\n this.doc.execCommand(Commands.FORMAT_BLOCK, false, heading);\n }\n }\n\n createLink(link: {\n text: string;\n url: string;\n tooltip: string;\n openNewWindow: boolean;\n }) {\n const newUrl = `<a href=\"${link.url}\" title=\"${link.tooltip}\" target=\"${\n link.openNewWindow ? '_blank' : '_self'\n }\">${link.text}</a>`;\n this.insertHtml(newUrl);\n }\n\n insertHtml(html: string): void {\n const isHTMLInserted = this.doc.execCommand(\n Commands.INSERT_HTML,\n false,\n html\n );\n if (!isHTMLInserted) {\n throw new Error('Unable to perform the operation');\n }\n }\n}\n","import { Component, OnInit, inject, input } from '@angular/core';\nimport { Commands } from '../../enums/commands.enum';\nimport { NsEditorService } from '../../services/editor.service';\nimport { NgStyle } from '@angular/common';\n\n@Component({\n selector: 'ns-editor-color-picker',\n templateUrl: './color-picker.component.html',\n styleUrls: ['./color-picker.component.scss'],\n imports: [NgStyle]\n})\nexport class NsEditorColorPickerComponent implements OnInit {\n private editor = inject(NsEditorService);\n\n readonly presets = input<string[][]>(undefined);\n readonly type = input<'text_color' | 'background_color'>('text_color');\n\n showPopup: boolean;\n activeColor?: string;\n isActive: boolean;\n\n trackByIndex = (index: number): number => index;\n\n ngOnInit(): void {}\n\n private get command(): Commands {\n return this.type() === 'text_color'\n ? Commands.TEXT_COLOR\n : Commands.BACKGROUND_COLOR;\n }\n\n toggle() {\n this.showPopup = !this.showPopup;\n }\n\n getContrastYIQ(hexadecimal: string): string {\n const color = hexadecimal.replace('#', '');\n const r = parseInt(color.substring(0, 2), 16);\n const g = parseInt(color.substring(2, 4), 16);\n const b = parseInt(color.substring(4, 6), 16);\n const yiq = (r * 299 + g * 587 + b * 114) / 1000;\n return yiq >= 128 ? 'black' : 'white';\n }\n\n onColorSelect(color: string): void {\n this.editor.command(this.command, (this.activeColor = color));\n this.toggle();\n }\n\n remove() {}\n}\n","<button type=\"button\" class=\"btn\" (click)=\"toggle()\">\n <span class=\"ns-editor__color-text\">\n <svg role=\"presentation\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M14 12.5h-4l-.874 2.186A.5.5 0 0 1 8.66 15H7.273a.5.5 0 0 1-.456-.705l4.05-9A.5.5 0 0 1 11.323 5h1.354a.5.5 0 0 1 .456.295l4.05 9a.5.5 0 0 1-.456.705h-1.388a.5.5 0 0 1-.465-.314L14 12.5zm-.6-1.5L12 7.5 10.6 11h2.8z\"\n fill-rule=\"evenodd\"\n ></path>\n </svg>\n <span></span>\n </span>\n\n <svg\n role=\"presentation\"\n class=\"ns-editor__toggle\"\n fill=\"currentColor\"\n height=\"12px\"\n viewBox=\"0 0 16 16\"\n width=\"12px\"\n >\n <path\n d=\"M14,11.75a.74.74,0,0,1-.53-.22L8,6.06,2.53,11.53a.75.75,0,0,1-1.06-1.06l6-6a.75.75,0,0,1,1.06,0l6,6a.75.75,0,0,1,0,1.06A.74.74,0,0,1,14,11.75Z\"\n ></path>\n </svg>\n</button>\n\n@if (showPopup) {\n <div class=\"ns-editor__popup\">\n @for (colorGroup of presets(); track $index) {\n <div class=\"ns-editor__color--container\">\n @for (color of colorGroup; track $index) {\n <button\n class=\"ns-editor__color\"\n type=\"button\"\n [ngStyle]=\"{ backgroundColor: color, color: getContrastYIQ(color) }\"\n [title]=\"color\"\n (click)=\"onColorSelect(color)\"\n ></button>\n }\n </div>\n }\n </div>\n}\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { NsEditorService } from '../services/editor.service';\n\n@Pipe({\n name: 'nsEditorLabel'\n})\nexport class NsEditorLabelPipe implements PipeTransform {\n private editor = inject(NsEditorService);\n\n transform(key: string): string {\n return this.editor.translate(key);\n }\n}\n","import { Component, inject, OnInit } from '@angular/core';\nimport {\n FormBuilder,\n FormGroup,\n ReactiveFormsModule,\n Validators\n} from '@angular/forms';\nimport { NsEditorService } from '../../services/editor.service';\nimport { NgClass } from '@angular/common';\nimport { NsEditorLabelPipe } from '../../pipes/editor-label.pipe';\nimport { NsCheckboxComponent, NsInputComponent } from '../../../form';\nimport { NsButtonComponent } from '../../../button';\n\n@Component({\n selector: 'ns-editor-link',\n templateUrl: './link.component.html',\n styleUrls: ['./link.component.scss'],\n imports: [\n ReactiveFormsModule,\n NgClass,\n NsEditorLabelPipe,\n NsInputComponent,\n NsCheckboxComponent,\n NsButtonComponent\n ]\n})\nexport class NsEditorLinkComponent implements OnInit {\n public formLink: FormGroup;\n public show: boolean;\n private fb = inject(FormBuilder);\n private editor = inject(NsEditorService);\n\n ngOnInit(): void {\n this.formLink = this.fb.group({\n text: ['', Validators.required],\n url: ['', Validators.required],\n tooltip: [''],\n openNewWindow: [true]\n });\n }\n\n insert() {\n if (this.formLink.valid) {\n this.editor.createLink(this.formLink.getRawValue());\n this.formLink.reset();\n this.show = false;\n }\n }\n}\n","<button type=\"button\" class=\"btn\" id=\"ns-editor-link\" (click)=\"show = true\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"presentation\">\n <path\n d=\"M12.654 8.764a.858.858 0 01-1.213-1.213l1.214-1.214a3.717 3.717 0 015.257 0 3.714 3.714 0 01.001 5.258l-1.214 1.214-.804.804a3.72 3.72 0 01-5.263.005.858.858 0 011.214-1.214c.781.782 2.05.78 2.836-.005l.804-.803 1.214-1.214a1.998 1.998 0 00-.001-2.831 2 2 0 00-2.83 0l-1.215 1.213zm-.808 6.472a.858.858 0 011.213 1.213l-1.214 1.214a3.717 3.717 0 01-5.257 0 3.714 3.714 0 01-.001-5.258l1.214-1.214.804-.804a3.72 3.72 0 015.263-.005.858.858 0 01-1.214 1.214 2.005 2.005 0 00-2.836.005l-.804.803L7.8 13.618a1.998 1.998 0 00.001 2.831 2 2 0 002.83 0l1.215-1.213z\"\n ></path>\n </svg>\n</button>\n\n<form\n [formGroup]=\"formLink\"\n class=\"ns-editor__form-link\"\n aria-labelledby=\"ns-editor-link\"\n [ngClass]=\"{ show: show }\"\n (ngSubmit)=\"insert()\"\n>\n <header>\n <label>{{ 'insert_link' | nsEditorLabel }}</label>\n <button type=\"button\" class=\"btn-close\" (click)=\"show = false\"></button>\n </header>\n\n <ns-input [formControlName]=\"'url'\" [placeholder]=\"'link' | nsEditorLabel\" />\n <ns-input [formControlName]=\"'text'\" [placeholder]=\"'text' | nsEditorLabel\" />\n <ns-input\n [formControlName]=\"'tooltip'\"\n [placeholder]=\"'tooltip_link' | nsEditorLabel\"\n />\n <ns-checkbox\n [formControlName]=\"'openNewWindow'\"\n [label]=\"'open_new_window' | nsEditorLabel\"\n />\n\n <footer>\n <ns-button type=\"submit\" [label]=\"'submit_link' | nsEditorLabel\" />\n </footer>\n</form>\n","import { Component, OnInit, inject } from '@angular/core';\nimport { Commands } from '../../enums/commands.enum';\nimport { NsEditorService } from '../../services/editor.service';\n\n@Component({\n selector: 'ns-editor-list',\n templateUrl: './list.component.html'\n})\nexport class NsEditorListComponent implements OnInit {\n private editor = inject(NsEditorService);\n\n public commands = Commands;\n\n ngOnInit(): void {}\n\n command(name: Commands) {\n this.editor.command(name);\n }\n}\n","<button\n type=\"button\"\n class=\"btn\"\n (click)=\"command(commands.INSERT_UNORDERED_LIST)\"\n>\n <svg viewBox=\"0 0 24 24\" role=\"presentation\">\n <path\n d=\"M6 8c0-.552.444-1 1-1 .552 0 1 .444 1 1 0 .552-.444 1-1 1-.552 0-1-.444-1-1zm5-1h6a1 1 0 010 2h-6a1 1 0 010-2zm-5 5c0-.552.444-1 1-1 .552 0 1 .444 1 1 0 .552-.444 1-1 1-.552 0-1-.444-1-1zm5-1h6a1 1 0 010 2h-6a1 1 0 010-2zm-5 5c0-.552.444-1 1-1 .552 0 1 .444 1 1 0 .552-.444 1-1 1-.552 0-1-.444-1-1zm5-1h6a1 1 0 010 2h-6a1 1 0 010-2z\"\n fill-rule=\"evenodd\"\n ></path>\n </svg>\n</button>\n\n<button\n type=\"button\"\n class=\"btn\"\n (click)=\"command(commands.INSERT_ORDERED_LIST)\"\n>\n <svg viewBox=\"0 0 24 24\" role=\"presentation\">\n <path\n d=\"M11 7h6a1 1 0 010 2h-6a1 1 0 010-2zm0 4h6a1 1 0 010 2h-6a1 1 0 010-2zm0 4h6a1 1 0 010 2h-6a1 1 0 010-2zm-5 0h3v1H6v-1zm0 2h3v1H6v-1zm1-9H6V7h2v3H7V8zm-1 3h3v1.333h-.6V13H7.2v-.667H6V11zm0 2h3v1H6v-1zm2 3h2v1H8v-1z\"\n fill-rule=\"evenodd\"\n ></path>\n </svg>\n</button>\n","import { Component, inject } from '@angular/core';\nimport { Guid } from '@ng-solid/core';\nimport { NsEditorService } from '../../services/editor.service';\nimport {\n NsDropdownComponent,\n NsDropdownItemDirective\n} from '../../../dropdown';\nimport { FormsModule } from '@angular/forms';\nimport { NsEditorLabelPipe } from '../../pipes/editor-label.pipe';\n\n@Component({\n selector: 'ns-editor-paragraph',\n templateUrl: './paragraph.component.html',\n styleUrls: ['./paragraph.component.scss'],\n imports: [\n NsDropdownComponent,\n NsDropdownItemDirective,\n FormsModule,\n NsEditorLabelPipe\n ]\n})\nexport class NsEditorParagraphComponent {\n private editor = inject(NsEditorService);\n\n public id: string = Guid.create();\n\n private _value: string = 'p';\n\n get value() {\n return this._value;\n }\n\n set value(heading) {\n this.editor.formatBlock(heading);\n }\n}\n","<ns-dropdown [(ngModel)]=\"value\">\n <ns-dropdown-item [label]=\"'paragraph' | nsEditorLabel\" [value]=\"'p'\" />\n <ns-dropdown-item [label]=\"'h1' | nsEditorLabel\" [value]=\"'h1'\" />\n <ns-dropdown-item [label]=\"'h2' | nsEditorLabel\" [value]=\"'h2'\" />\n <ns-dropdown-item [label]=\"'h3' | nsEditorLabel\" [value]=\"'h3'\" />\n <ns-dropdown-item [label]=\"'h4' | nsEditorLabel\" [value]=\"'h4'\" />\n <ns-dropdown-item [label]=\"'h5' | nsEditorLabel\" [value]=\"'h5'\" />\n <ns-dropdown-item [label]=\"'h6' | nsEditorLabel\" [value]=\"'h6'\" />\n</ns-dropdown>\n","import { Component, inject } from '@angular/core';\nimport { Commands } from '../../enums/commands.enum';\nimport { NsEditorService } from '../../services/editor.service';\n\n@Component({\n selector: 'ns-editor-toggle',\n templateUrl: './toggle.component.html',\n styleUrls: ['./toggle.component.scss']\n})\nexport class NsEditorToggleCommandComponent {\n private editor = inject(NsEditorService);\n\n public commands = Commands;\n\n command(name: Commands) {\n this.editor.command(name);\n }\n}\n","<button type=\"button\" class=\"btn\" (click)=\"command(commands.BOLD)\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n focusable=\"false\"\n aria-hidden=\"true\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M8 5a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h4.5c2.481 0 4.5-1.165 4.5-4 0-1.698-.724-2.796-1.837-3.405C15.69 10.967 16 10.112 16 9c0-2.835-2.019-4-4.5-4H8Zm1 2v4h3c1.379 0 2-.857 2-2s-.621-2-2-2H9Zm0 6v4h4c1.379 0 2-.857 2-2s-.621-2-2-2H9Z\"\n clip-rule=\"evenodd\"\n ></path>\n </svg>\n</button>\n\n<button type=\"button\" class=\"btn\" (click)=\"command(commands.ITALIC)\">\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n focusable=\"false\"\n aria-hidden=\"true\"\n >\n <path\n clip-rule=\"evenodd\"\n d=\"M9 6a1 1 0 0 1 1-1h6a1 1 0 1 1 0 2h-2.167l-1.666 10H14a1 1 0 1 1 0 2H8a1 1 0 1 1 0-2h2.167l1.666-10H10a1 1 0 0 1-1-1Z\"\n ></path>\n </svg>\n</button>\n\n<button type=\"button\" class=\"btn\" (click)=\"command(commands.UNDERLINE)\">\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n focusable=\"false\"\n aria-hidden=\"true\"\n >\n <path\n clip-rule=\"evenodd\"\n d=\"M9 5a1 1 0 0 1 1 1v5.5c0 1.343.556 2.5 2 2.5s2-1.157 2-2.5V6a1 1 0 1 1 2 0v5.657C16 13.804 14.469 16 12 16c-2.462 0-4-2.196-4-4.343V6a1 1 0 0 1 1-1ZM6 17a1 1 0 1 0 0 2h12a1 1 0 1 0 0-2H6Z\"\n ></path>\n </svg>\n</button>\n","import {\n Component,\n ElementRef,\n forwardRef,\n HostListener,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewEncapsulation,\n inject,\n input\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NsEditorService } from './services/editor.service';\nimport { NsContentEditableComponent, NsValueAccessor } from '../form';\nimport { NsEditorParagraphComponent } from './components/paragraph/paragraph.component';\nimport { NsEditorToggleCommandComponent } from './components/toogle/toggle.component';\nimport { NsEditorColorPickerComponent } from './components/color-picker/color-picker.component';\nimport { NsEditorListComponent } from './components/list/list.component';\nimport { NsEditorLinkComponent } from './components/link/link.component';\n\nconst DEFAULT_COLOR_PRESETS = [\n '#b60205',\n '#d93f0b',\n '#fbca04',\n '#0e8a16',\n '#006b75',\n '#1d76db',\n '#0052cc',\n '#5319e7',\n '#e99695',\n '#f9d0c4',\n '#fef2c0',\n '#c2e0c6',\n '#bfdadc',\n '#c5def5',\n '#bfd4f2',\n '#d4c5f9'\n];\n\n@Component({\n selector: 'ns-editor',\n templateUrl: './editor.component.html',\n styleUrls: ['./editor.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsEditorComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.ns-editor]': 'true',\n '[class.ns-editor--disabled]': 'disabled()'\n },\n imports: [\n NsEditorParagraphComponent,\n NsEditorToggleCommandComponent,\n NsEditorColorPickerComponent,\n NsEditorListComponent,\n NsEditorLinkComponent,\n NsContentEditableComponent,\n FormsModule\n ]\n})\nexport class NsEditorComponent\n extends NsValueAccessor<string>\n implements OnInit, OnDestroy\n{\n private editor = inject(NsEditorService);\n\n readonly rows = input<number>(3);\n readonly maxLength = input<number>(undefined);\n readonly colorPresets = input<string[]>(DEFAULT_COLOR_PRESETS);\n\n @ViewChild(NsContentEditableComponent, { read: ElementRef, static: true })\n textArea: ElementRef<HTMLElement>;\n\n @HostListener('click')\n focused = () => this.textArea.nativeElement.focus();\n\n ngOnInit(): void {}\n\n get presets(): string[][] {\n const col = 8;\n const colors: string[][] = [];\n\n this.colorPresets().forEach((color, index) => {\n const row = Math.floor(index / col);\n if (!colors[row]) {\n colors.push([]);\n }\n colors[row].push(color);\n });\n\n return colors;\n }\n\n blur(): void {\n this.editor.saveSelection();\n this.onTouched();\n }\n\n ngOnDestroy() {}\n}\n","@if (label()) {\n <label class=\"form-label\" [attr.for]=\"id\">{{ label() }}</label>\n}\n\n<ul class=\"ns-editor__toolbar\">\n <li class=\"ns-editor__item\">\n <ns-editor-paragraph />\n </li>\n\n <li class=\"ns-editor__item\">\n <ns-editor-toggle />\n </li>\n\n <li class=\"ns-editor__item\">\n <ns-editor-color-picker [presets]=\"presets\" />\n </li>\n\n <li class=\"ns-editor__item\">\n <ns-editor-list />\n </li>\n\n <li class=\"ns-editor__item\">\n <ns-editor-link />\n </li>\n</ul>\n\n<ns-content-editable\n class=\"ns-editor__content\"\n [id]=\"id\"\n (blur)=\"blur()\"\n [maxlength]=\"maxLength()\"\n [disabled]=\"disabled()\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"setValue($event)\"\n/>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { NsFile } from '@ng-solid/core';\n\n@Pipe({\n name: 'nsImageUrl',\n standalone: true\n})\nexport class NsImageUrlPipe implements PipeTransform {\n transform(image: NsFile): string {\n let url = '';\n if (image && image.data && typeof image.data === 'string') {\n switch (true) {\n case URL.canParse(image.data) || /data:/.test(image.data):\n url = image.data;\n break;\n default:\n url = `data:${image.type};base64,${image.data}`;\n }\n }\n return url;\n }\n}\n","import {\n booleanAttribute,\n Component,\n ElementRef,\n forwardRef,\n inject,\n numberAttribute,\n Renderer2,\n ViewChild,\n input\n} from '@angular/core';\nimport { NsValueAccessor } from '../form';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { NsImageUrlPipe } from './pipes/image-url.pipe';\nimport { NsIconsComponent } from '@ng-solid/icons';\nimport { NS_UPLOAD_CLIENT, NsFile } from '@ng-solid/core';\n\n@Component({\n selector: 'ns-image-upload',\n templateUrl: './image-upload.component.html',\n imports: [CommonModule, NsImageUrlPipe, NsIconsComponent],\n standalone: true,\n host: {\n '[class.ns-image--loaded]': '!multi() && !!value()',\n '[class.ns-image--disabled]': 'disabled()'\n },\n styleUrls: ['./image-upload.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsImageUploadComponent),\n multi: true\n }\n ]\n})\nexport class NsImageUploadComponent extends NsValueAccessor<\n NsFile | NsFile[] | null\n> {\n private client = inject(NS_UPLOAD_CLIENT, { optional: true });\n private renderer = inject(Renderer2);\n\n readonly accept = input('.jpg,.jpeg,.png,.webp,.avif,.gif');\n readonly multi = input(false, { transform: booleanAttribute });\n readonly limit = input(5, { transform: numberAttribute });\n\n @ViewChild('input', { static: false, read: ElementRef })\n imgRef: ElementRef<HTMLInputElement>;\n\n public loading: Set<string> = new Set<string>();\n private _fromIndex: number;\n private _toIndex: number;\n\n get images(): NsFile[] {\n const value = this.value();\n return Array.isArray(value) ? value : [];\n }\n\n get image(): NsFile | null {\n const value = this.value();\n return Array.isArray(value) ? null : value;\n }\n\n override writeValue(value: NsFile | NsFile[] | null) {\n if (Array.isArray(value)) {\n this.value.set(value);\n } else {\n this.value.set(this.multi() && !value ? [] : value);\n }\n }\n\n onClick() {\n this.imgRef.nativeElement.click();\n }\n\n load() {\n const { files } = this.imgRef.nativeElement;\n if (files.length) {\n this.add(NsFile.parse(files.item(0)));\n this.imgRef.nativeElement.value = null;\n }\n }\n\n add(image: NsFile) {\n this.loading.add(image.name);\n const reader = new FileReader();\n reader.readAsDataURL(image.data as File);\n reader.onload = () => {\n if (this.client) {\n this.client.upload(image).subscribe({\n next: (data) => {\n if (this.multi()) {\n this.value.set(\n this.images.filter(\n (img: NsFile) => !this.compareWith(img, image)\n )\n );\n }\n this.loading.delete(image.name);\n this.assignValue(data);\n },\n error: () => {\n this.loading.delete(image.name);\n }\n });\n image.data = reader.result as string;\n this.assignValue(image);\n } else {\n image.data = reader.result as string;\n this.loading.delete(image.name);\n this.assignValue(image);\n }\n };\n }\n\n private assignValue(image: NsFile) {\n if (this.multi()) {\n this.value.set([...this.images, image]);\n } else {\n this.value.set(image);\n }\n this.onChange(this.value());\n }\n\n private compareWith(from: NsFile, to: NsFile): boolean {\n return from.id === to.id || from.name === to.name;\n }\n\n remove(image: NsFile) {\n this.loading.add(image.name);\n if (this.client && !!image.id) {\n this.client.remove(image.id).subscribe({\n next: () => {\n this.value.set(\n this.multi() ? this.images.filter((img) => img !== image) : null\n );\n this.loading.delete(image.name);\n this.onChange(this.value());\n },\n error: () => {\n this.loading.delete(image.name);\n }\n });\n } else {\n this.value.set(\n this.multi() ? this.images.filter((img) => img !== image) : null\n );\n this.loading.delete(image.name);\n }\n }\n\n dragstart(event: DragEvent, index: number) {\n this.renderer.setStyle(event.target, 'opacity', 0.4);\n event.dataTransfer.dropEffect = 'move';\n this._fromIndex = index;\n }\n\n dragover(event: DragEvent, index: number) {\n event.preventDefault();\n this._toIndex = index;\n }\n\n dragend(event: DragEvent) {\n this.renderer.setStyle(event.target, 'opacity', 1);\n }\n\n drop(event: DragEvent) {\n event.stopPropagation();\n if (this._fromIndex !== this._toIndex) {\n const images = this.images;\n const element = images[this._fromIndex];\n images.splice(this._fromIndex, 1);\n images.splice(this._toIndex, 0, element);\n this.value.set(images);\n this.onChange(this.value());\n }\n }\n}\n","<div\n class=\"ns-image__wrap\"\n [ngClass]=\"{ 'ns-image__multi': multi() && images.length }\"\n>\n @if (multi()) {\n @for (image of images; let i = $index; track i) {\n <div\n class=\"ns-image__thumbnail\"\n [draggable]=\"!disabled() && images.length > 1\"\n (dragstart)=\"dragstart($event, i)\"\n (dragend)=\"dragend($event)\"\n (dragover)=\"dragover($event, i)\"\n (drop)=\"drop($event)\"\n >\n <button\n type=\"button\"\n class=\"ns-image__button\"\n [ngClass]=\"{ 'ns-image__loading': loading.has(image.name) }\"\n [disabled]=\"disabled()\"\n >\n <img\n class=\"ns-image\"\n [attr.src]=\"image | nsImageUrl\"\n [attr.alt]=\"image.name\"\n />\n <ns-icon class=\"ns-image__preload\" name=\"preload\" />\n\n <div class=\"ns-image__overlay\">\n <ns-icon class=\"ns-image__drag\" name=\"drag-handle\" />\n <button\n type=\"button\"\n class=\"ns-image__remove\"\n (click)=\"remove(image)\"\n >\n <ns-icon name=\"trash\" />\n </button>\n </div>\n </button>\n </div>\n }\n }\n\n <button\n type=\"button\"\n class=\"ns-image__drag-container\"\n (click)=\"onClick()\"\n [ngClass]=\"{\n 'ns-image--loading': image && !multi() && loading.has(image.name)\n }\"\n [hidden]=\"multi() && images.length >= limit()\"\n [disabled]=\"disabled()\"\n >\n @if (image && !multi()) {\n <img\n class=\"ns-image__fluid\"\n [attr.src]=\"image | nsImageUrl\"\n [ngClass]=\"{ disabled: disabled() }\"\n alt\n />\n }\n\n <div class=\"ns-image__overlay\">\n <div class=\"ns-image__empty\">\n <ns-icon name=\"picture\" />\n <span>{{ label() }}</span>\n </div>\n </div>\n\n <input\n [hidden]=\"true\"\n type=\"file\"\n (change)=\"load()\"\n [multiple]=\"false\"\n [accept]=\"accept()\"\n #input\n [disabled]=\"disabled()\"\n />\n </button>\n</div>\n","import { ComponentRef } from '@angular/core';\nimport { timer } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { NsModalComponent } from '../modal.component';\nimport { TemplateDirective } from '../../template';\n\nexport class NsModalRef {\n ref: ComponentRef<NsModalComponent> | null = null;\n\n get instance(): NsModalComponent {\n if (!this.ref) {\n throw new Error('Modal reference has already been destroyed');\n }\n\n return this.ref.instance;\n }\n\n addTemplate(template: TemplateDirective) {\n switch (template.name()) {\n case 'header':\n this.instance.headerRef = template.ref;\n break;\n case 'footer':\n this.instance.footerRef = template.ref;\n break;\n default:\n throw new Error('Cannot add template in modal');\n }\n }\n\n close(timeout: number = 300) {\n if (!this.ref) {\n return;\n }\n\n const ref = this.ref;\n ref.instance.show = false;\n ref.changeDetectorRef.detectChanges();\n\n timer(timeout)\n .pipe(take(1))\n .subscribe(() => {\n const { nativeElement } = ref.location;\n nativeElement.parentNode.removeChild(nativeElement);\n\n ref.destroy();\n ref.changeDetectorRef.detectChanges();\n this.ref = null;\n });\n }\n\n onDestroy(callback: () => void) {\n this.ref?.onDestroy(callback);\n }\n}\n","import {\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostListener,\n inject,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TemplateDirective } from '../template';\n\n@Component({\n selector: 'ns-modal',\n imports: [CommonModule],\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n standalone: true,\n host: {\n '[class.ns-modal]': 'true'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsModalComponent implements AfterViewInit, AfterViewChecked {\n title: string;\n size: 'lg' | 'sm' | 'xl';\n component: Type<unknown>;\n context: Record<string, unknown>;\n close: () => void;\n\n show: boolean;\n headerRef: TemplateRef<TemplateDirective>;\n footerRef: TemplateRef<TemplateDirective>;\n\n @ViewChild('container', { read: ViewContainerRef })\n containerRef: ViewContainerRef;\n\n private readonly cd = inject(ChangeDetectorRef);\n\n @HostListener('window:keydown', ['$event'])\n keydown(event: KeyboardEvent) {\n if (event.key == 'Escape') {\n this.close();\n }\n }\n\n ngAfterViewInit() {\n if (this.containerRef) {\n const componentRef = this.containerRef.createComponent(this.component);\n Object.assign(componentRef.instance, this.context);\n this.cd.detectChanges();\n }\n }\n\n ngAfterViewChecked() {\n this.cd.detectChanges();\n }\n}\n","<div\n role=\"document\"\n class=\"ns-modal__dialog\"\n [ngClass]=\"{ 'ns-modal__lg': size == 'lg', 'ns-modal__xl': size == 'xl' }\"\n>\n <div class=\"ns-modal__content\">\n <div class=\"ns-modal__header\">\n @if (headerRef) {\n <ng-template [ngTemplateOutlet]=\"headerRef\"></ng-template>\n } @else {\n <h4 class=\"ns-modal__title\">{{ title }}</h4>\n <button\n type=\"button\"\n aria-label=\"Close\"\n class=\"btn-close\"\n (click)=\"close()\"\n ></button>\n }\n\n <ng-template #defaultHeaderRef>\n <h4 class=\"ns-modal__title\">{{ title }}</h4>\n <button\n type=\"button\"\n aria-label=\"Close\"\n class=\"btn-close\"\n (click)=\"close()\"\n ></button>\n </ng-template>\n </div>\n\n <div class=\"ns-modal__body\">\n <ng-template #container />\n </div>\n\n @if (footerRef) {\n <div class=\"ns-modal__footer\">\n <ng-template [ngTemplateOutlet]=\"footerRef\"></ng-template>\n </div>\n }\n </div>\n</div>\n\n<div class=\"ns-modal__backdrop\" (click)=\"close()\"></div>\n","import {\n ApplicationRef,\n createComponent,\n EnvironmentInjector,\n inject,\n Injectable,\n Injector,\n RendererFactory2,\n Type,\n DOCUMENT\n} from '@angular/core';\n\nimport { NsModalRef } from '../models/modal-ref';\nimport { NsModalComponent } from '../modal.component';\nimport { NsModalSetup } from '../interfaces/modal-setup';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NsModalService {\n private readonly appRef = inject(ApplicationRef);\n private readonly injector = inject(EnvironmentInjector);\n private readonly document: Document = inject(DOCUMENT);\n private readonly factory = inject(RendererFactory2);\n private readonly renderer = this.factory.createRenderer(null, null);\n private readonly stack: Set<NsModalRef> = new Set<NsModalRef>();\n\n open<T = unknown>(component: Type<T>, setup: NsModalSetup<T>): NsModalRef {\n const nsModalRef = this.attachComponent(this.document.body);\n this.renderer.addClass(this.document.body, 'ns-modal__open');\n\n this.registerModalRef(nsModalRef);\n Object.assign(nsModalRef.instance, {\n component: component,\n title: setup.title,\n context: setup.context ?? {},\n size: setup.size ?? 'lg',\n close: nsModalRef.close.bind(nsModalRef)\n });\n\n return nsModalRef;\n }\n\n close() {\n this.stack.forEach((modal) => modal.close());\n }\n\n private attachComponent(container: Element) {\n const nsModalRef = new NsModalRef();\n const providers = [\n {\n provide: NsModalRef,\n useFactory: () => nsModalRef\n }\n ];\n\n nsModalRef.ref = createComponent(NsModalComponent, {\n environmentInjector: this.injector,\n elementInjector: Injector.create({\n providers\n })\n });\n\n const componentRef = nsModalRef.ref;\n if (!componentRef) {\n throw new Error('Failed to create modal component');\n }\n\n this.appRef.attachView(componentRef.hostView);\n container.appendChild(componentRef.location.nativeElement);\n\n return nsModalRef;\n }\n\n private registerModalRef(ref: NsModalRef) {\n this.stack.add(ref);\n\n ref.onDestroy(() => {\n if (this.stack.has(ref)) {\n this.stack.delete(ref);\n }\n });\n }\n}\n","export class NsSchedule {\n public id: number;\n public subject: string;\n public body: string;\n public startTime: string;\n public endTime: string;\n public created: string;\n public updated: string;\n\n constructor(props: Partial<NsSchedule> = {}) {\n Object.assign(this, props);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { NsSchedule } from '../models/schedule';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NsScheduleService {\n public readonly onClick$: Subject<NsSchedule> = new Subject<NsSchedule>();\n private _date: Date;\n\n constructor() {}\n\n setCurrentDate(date) {\n this._date = date;\n }\n\n get currentDate() {\n return this._date;\n }\n\n send(schedule: Partial<NsSchedule>) {\n this.onClick$.next(new NsSchedule(schedule));\n }\n\n formatDate(date: Date) {\n const pad = (num) => ('00' + num).slice(-2);\n return (\n date.getFullYear() +\n '-' +\n pad(date.getMonth() + 1) +\n '-' +\n pad(date.getDate()) +\n ' ' +\n pad(date.getHours()) +\n ':' +\n pad(date.getMinutes()) +\n ':' +\n pad(date.getSeconds())\n );\n }\n}\n","import { Component, HostListener, OnInit, inject, input } from '@angular/core';\nimport { NsScheduleService } from '../../services/schedule.service';\n\n@Component({\n selector: 'ns-schedule-cell',\n template: '',\n standalone: true,\n host: {\n '[class.ns-schedule__timeline-cell]': 'true'\n }\n})\nexport class NsScheduleCellComponent implements OnInit {\n private service = inject(NsScheduleService);\n\n readonly day = input<number>(undefined);\n readonly timeline = input<number>(undefined);\n readonly startIn = input<number>(undefined);\n readonly endIn = input<number>(undefined);\n\n ngOnInit(): void {}\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n event.preventDefault();\n const startTime = new Date(\n this.service.currentDate.getFullYear(),\n this.service.currentDate.getMonth(),\n this.day(),\n this.timeline(),\n this.startIn()\n );\n const endTime = new Date(\n this.service.currentDate.getFullYear(),\n this.service.currentDate.getMonth(),\n this.day(),\n this.timeline(),\n this.endIn()\n );\n\n this.service.send({\n startTime: this.service.formatDate(startTime),\n endTime: this.service.formatDate(endTime)\n });\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'nsWeekday',\n standalone: true\n})\nexport class WeekDayPipe implements PipeTransform {\n private weekdays: string[] = [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday'\n ];\n\n transform(day: number): string {\n return this.weekdays[day];\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { NsSchedule } from '../models/schedule';\nimport { notEmpty } from '@ng-solid/core';\nimport { NsScheduleService } from '../services/schedule.service';\n\n@Pipe({\n name: 'filterByDay',\n standalone: true\n})\nexport class FilterByDayPipe implements PipeTransform {\n private service = inject(NsScheduleService);\n\n transform(schedules: NsSchedule[], day: number): NsSchedule[] {\n const current = this.service.currentDate;\n const selector = ({ startTime }: NsSchedule) => {\n const date = new Date(startTime);\n return (\n day === date.getDate() &&\n current.getMonth() === date.getMonth() &&\n current.getFullYear() === date.getFullYear()\n );\n };\n return notEmpty(schedules) ? schedules.filter(selector) : [];\n }\n}\n","import {\n AfterContentInit,\n Component,\n HostListener,\n inject,\n ViewEncapsulation,\n input\n} from '@angular/core';\nimport { NsSchedule } from '../../models/schedule';\nimport { NsScheduleService } from '../../services/schedule.service';\n\n@Component({\n selector: 'ns-schedule-event',\n templateUrl: './event.component.html',\n styleUrls: ['./event.component.scss'],\n host: {\n '[class.ns-schedule__event]': 'true',\n '[class.ns-schedule__event--show]': 'schedule() && matchHour',\n '[style.height.px]': 'height'\n },\n encapsulation: ViewEncapsulation.None\n})\nexport class NsScheduleEventComponent implements AfterContentInit {\n readonly schedule = input<NsSchedule>(undefined);\n readonly timeline = input<number>(undefined);\n\n public height: number;\n private service = inject(NsScheduleService);\n\n get matchHour() {\n const schedule = this.schedule();\n return (\n !!schedule && new Date(schedule.startTime).getHours() === this.timeline()\n );\n }\n\n ngAfterContentInit() {\n const schedule = this.schedule();\n if (schedule) {\n const startTime = new Date(schedule.startTime);\n const endTime = new Date(schedule.endTime);\n const hours = Math.abs(startTime.getTime() - endTime.getTime()) / 36e5;\n this.height = hours > 0.5 ? 49.5 * (hours / 0.5) : 45;\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n event.preventDefault();\n const schedule = this.schedule();\n if (schedule) {\n this.service.send(schedule);\n }\n }\n}\n","@if (schedule(); as currentSchedule) {\n <span class=\"ns-schedule__event--subject\">{{ currentSchedule.subject }}</span>\n <div\n class=\"ns-schedule__event--body\"\n [innerHtml]=\"currentSchedule.body\"\n ></div>\n}\n","import { Component, effect, inject, OnInit, input } from '@angular/core';\nimport { NsScheduleService } from '../../services/schedule.service';\nimport { NsSchedule } from '../../models/schedule';\nimport { NsScheduleCellComponent } from '../cell/cell.component';\nimport { WeekDayPipe } from '../../pipes/week-day.pipe';\nimport { FilterByDayPipe } from '../../pipes/filter-by-day.pipe';\nimport { NsScheduleEventComponent } from '../event/event.component';\n\n@Component({\n selector: 'ns-schedule-day',\n templateUrl: './day.component.html',\n imports: [\n NsScheduleCellComponent,\n WeekDayPipe,\n FilterByDayPipe,\n NsScheduleEventComponent\n ],\n styles: [\n '.ns-schedule__header-wrap,.ns-schedule__timeline {grid-template-columns: [index] 3rem [timeline] 1fr;}'\n ]\n})\nexport class DayComponent implements OnInit {\n readonly schedules = input<NsSchedule[]>(undefined);\n readonly currentDate = input<Date>(undefined);\n public current: number;\n public first: number;\n public days: number[];\n public hours: number[];\n private service = inject(NsScheduleService);\n private DAYS_OF_WEEK: number = 7;\n\n private readonly syncCurrentDate = effect(() => {\n const date = this.currentDate();\n if (date instanceof Date) {\n this.current = date.getDate();\n this.first = date.getDate() - date.getDay();\n this.days = Array(this.DAYS_OF_WEEK)\n .fill(this.first)\n .map((x, y) => x + y);\n this.service.setCurrentDate(date);\n }\n });\n\n ngOnInit(): void {\n this.hours = Array(24)\n .fill(0)\n .map((x, y) => x + y);\n }\n}\n","<div class=\"ns-schedule__header-wrap\">\n <div class=\"ns-schedule__header\"></div>\n <div class=\"ns-schedule__header ns-schedule__selected\">\n <div class=\"ns-schedule__header-date\">{{ current }}</div>\n <div class=\"ns-schedule__header-day\">\n {{ days.indexOf(current) | nsWeekday }}\n </div>\n </div>\n</div>\n\n<div class=\"ns-schedule__timeline-wrap\">\n @for (timeline of hours; track timeline) {\n <div class=\"ns-schedule__timeline\">\n <div class=\"ns-schedule__timeline-day\">{{ timeline }}</div>\n <div class=\"ns-schedule__timeline-day ns-schedule__selected\">\n <ns-schedule-cell\n [day]=\"current\"\n [timeline]=\"timeline\"\n [startIn]=\"0\"\n [endIn]=\"30\"\n />\n <ns-schedule-cell\n [day]=\"current\"\n [timeline]=\"timeline + 1\"\n [startIn]=\"30\"\n [endIn]=\"0\"\n />\n\n @for (schedule of schedules() | filterByDay: current; track schedule) {\n <ns-schedule-event [schedule]=\"schedule\" [timeline]=\"timeline\" />\n }\n </div>\n </div>\n }\n</div>\n","import { Component, effect, OnInit, inject, input } from '@angular/core';\nimport { NsScheduleService } from '../../services/schedule.service';\nimport { NsSchedule } from '../../models/schedule';\nimport { CommonModule } from '@angular/common';\nimport { WeekDayPipe } from '../../pipes/week-day.pipe';\nimport { NsScheduleCellComponent } from '../cell/cell.component';\nimport { FilterByDayPipe } from '../../pipes/filter-by-day.pipe';\nimport { NsScheduleEventComponent } from '../event/event.component';\n\n@Component({\n selector: 'ns-schedule-week',\n imports: [\n CommonModule,\n WeekDayPipe,\n NsScheduleCellComponent,\n FilterByDayPipe,\n NsScheduleEventComponent\n ],\n templateUrl: './week.component.html',\n styles: [\n '.ns-schedule__header-wrap,.ns-schedule__timeline {grid-template-columns: [index] 3rem repeat(7, 1fr);}'\n ],\n standalone: true\n})\nexport class WeekComponent implements OnInit {\n private service = inject(NsScheduleService);\n\n readonly schedules = input<NsSchedule[]>(undefined);\n readonly currentDate = input<Date>(undefined);\n\n public currentDay: number;\n public first: number;\n public last: number;\n public days: number[];\n public hours: number[];\n\n private DAYS_OF_WEEK: number = 7;\n\n private readonly syncCurrentDate = effect(() => {\n const date = this.currentDate();\n if (date instanceof Date) {\n this.first = date.getDate() - date.getDay();\n this.last = this.first + 6;\n this.service.setCurrentDate(date);\n let lastDayOfPrevMonth = new Date(\n date.getFullYear(),\n date.getMonth() + 1,\n 0\n ).getDate();\n this.days = Array(this.DAYS_OF_WEEK)\n .fill(this.first)\n .map((day, index) => (day > 0 ? day + index : lastDayOfPrevMonth--));\n }\n });\n\n get current() {\n return this.service.currentDate;\n }\n\n ngOnInit(): void {\n this.currentDay = new Date().getDate();\n this.hours = Array(24)\n .fill(0)\n .map((x, y) => x + y);\n }\n}\n","<div class=\"ns-schedule__header-wrap\">\n <div class=\"ns-schedule__header\"></div>\n @for (day of days; track day; let i = $index) {\n <div\n class=\"ns-schedule__header\"\n [ngClass]=\"{ 'ns-schedule__selected': currentDay === day }\"\n >\n <div class=\"ns-schedule__header-date\">{{ day }}</div>\n <div class=\"ns-schedule__header-day\">{{ i | nsWeekday }}</div>\n </div>\n }\n</div>\n\n<div class=\"ns-schedule__timeline-wrap\">\n @for (timeline of hours; track timeline) {\n <div class=\"ns-schedule__timeline\">\n <div class=\"ns-schedule__timeline-day\">{{ timeline }}</div>\n @for (day of days; track day) {\n <div\n class=\"ns-schedule__timeline-day\"\n [ngClass]=\"{ 'ns-schedule__selected': currentDay === day }\"\n >\n <ns-schedule-cell\n [day]=\"day\"\n [timeline]=\"timeline\"\n [startIn]=\"0\"\n [endIn]=\"30\"\n />\n <ns-schedule-cell\n [day]=\"day\"\n [timeline]=\"timeline + 1\"\n [startIn]=\"30\"\n [endIn]=\"0\"\n />\n\n @for (schedule of schedules() | filterByDay: day; track schedule) {\n <ns-schedule-event [schedule]=\"schedule\" [timeline]=\"timeline\" />\n }\n </div>\n }\n </div>\n }\n</div>\n","import { Component, effect, OnInit, inject, input } from '@angular/core';\nimport { NsScheduleService } from '../../services/schedule.service';\nimport { NsSchedule } from '../../models/schedule';\nimport { CommonModule } from '@angular/common';\nimport { WeekDayPipe } from '../../pipes/week-day.pipe';\nimport { NsScheduleCellComponent } from '../cell/cell.component';\nimport { NsScheduleEventComponent } from '../event/event.component';\nimport { FilterByDayPipe } from '../../pipes/filter-by-day.pipe';\n\n@Component({\n selector: 'ns-schedule-workweek',\n imports: [\n CommonModule,\n WeekDayPipe,\n NsScheduleCellComponent,\n NsScheduleEventComponent,\n FilterByDayPipe\n ],\n templateUrl: './workweek.component.html',\n styles: [\n '.ns-schedule__header-wrap,.ns-schedule__timeline {grid-template-columns: [index] 3rem repeat(5, 1fr);}'\n ],\n standalone: true\n})\nexport class NsWorkweekComponent implements OnInit {\n private service = inject(NsScheduleService);\n\n readonly schedules = input<NsSchedule[]>(undefined);\n readonly currentDate = input<Date>(undefined);\n\n public current: number;\n public first: number;\n public last: number;\n public days: number[] = [];\n public hours: number[];\n private DAYS_OF_WORKWEEK: number = 5;\n\n private readonly syncCurrentDate = effect(() => {\n const date = this.currentDate();\n if (date instanceof Date) {\n this.first = date.getDate() - date.getDay() + 1;\n this.last = this.first + 4;\n this.days = [];\n this.service.setCurrentDate(date);\n let lastDayOfPrevMonth = new Date(\n date.getFullYear(),\n date.getMonth() - 1,\n -1\n ).getDate();\n\n let current = 0;\n while (current < this.DAYS_OF_WORKWEEK) {\n this.days.push(this.first < 1 ? lastDayOfPrevMonth : this.first);\n this.first++;\n lastDayOfPrevMonth--;\n current++;\n }\n }\n });\n\n identityDay = (index, item: NsSchedule) => item.id;\n\n ngOnInit(): void {\n this.current = new Date().getDate();\n this.hours = Array(24)\n .fill(0)\n .map((x, y) => x + y);\n }\n}\n","<div class=\"ns-schedule__header-wrap\">\n <div class=\"ns-schedule__header\"></div>\n @for (day of days; track day; let i = $index) {\n <div\n class=\"ns-schedule__header\"\n [ngClass]=\"{ 'ns-schedule__selected': current === day }\"\n >\n <div class=\"ns-schedule__header-date\">{{ day }}</div>\n <div class=\"ns-schedule__header-day\">{{ i + 1 | nsWeekday }}</div>\n </div>\n }\n</div>\n\n<div class=\"ns-schedule__timeline-wrap\">\n @for (timeline of hours; track timeline) {\n <div class=\"ns-schedule__timeline\">\n <div class=\"ns-schedule__timeline-day\">{{ timeline }}</div>\n @for (day of days; track day) {\n <div\n class=\"ns-schedule__timeline-day\"\n [ngClass]=\"{ 'ns-schedule__selected': current === day }\"\n >\n <ns-schedule-cell\n [day]=\"current\"\n [timeline]=\"timeline\"\n [startIn]=\"0\"\n [endIn]=\"30\"\n />\n <ns-schedule-cell\n [day]=\"current\"\n [timeline]=\"timeline + 1\"\n [startIn]=\"30\"\n [endIn]=\"0\"\n />\n\n @for (\n schedule of schedules() | filterByDay: day;\n track identityDay($index, schedule)\n ) {\n <ns-schedule-event [schedule]=\"schedule\" [timeline]=\"timeline\" />\n }\n </div>\n }\n </div>\n }\n</div>\n","import {\n Component,\n inject,\n ViewEncapsulation,\n input,\n model\n} from '@angular/core';\nimport { outputFromObservable } from '@angular/core/rxjs-interop';\nimport { NsScheduleService } from './services/schedule.service';\nimport { NsSchedule } from './models/schedule';\nimport { NsDateView } from '../../types';\nimport { NsButtonComponent } from '../button';\nimport { NsDatePickerComponent } from '../form';\nimport { FormsModule } from '@angular/forms';\n\nimport { DayComponent } from './components/day/day.component';\nimport { WeekComponent } from './components/week/week.component';\nimport { NsWorkweekComponent } from './components/workweek/workweek.component';\nimport { NsDropdownComponent, NsDropdownItemDirective } from '../dropdown';\n\n@Component({\n selector: 'ns-schedule',\n imports: [\n NsButtonComponent,\n FormsModule,\n DayComponent,\n WeekComponent,\n NsWorkweekComponent,\n NsDatePickerComponent,\n NsDropdownComponent,\n NsDropdownItemDirective\n ],\n templateUrl: './schedule.component.html',\n styleUrls: ['./schedule.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.ns-schedule]': 'true'\n }\n})\nexport class NsScheduleComponent {\n readonly view = model<NsDateView>('workweek');\n readonly selected = model<Date>(new Date());\n readonly height = input<number>(520);\n readonly data = input<NsSchedule[]>(undefined);\n private readonly service = inject(NsScheduleService);\n readonly onClick = outputFromObservable(this.service.onClick$);\n\n goToday() {\n this.selected.set(new Date());\n }\n}\n","<div class=\"ns-schedule__tools\">\n <ns-button class=\"ns-scheduler__today\" label=\"Today\" (click)=\"goToday()\" />\n\n <ns-date-picker\n [ngModel]=\"selected()\"\n (ngModelChange)=\"selected.set($event)\"\n [view]=\"view()\"\n />\n\n <ns-dropdown\n class=\"ns-schedule__view\"\n [ngModel]=\"view()\"\n (ngModelChange)=\"view.set($event)\"\n >\n <ns-dropdown-item label=\"Day\" value=\"day\" />\n <ns-dropdown-item label=\"Work week\" value=\"workweek\" />\n <ns-dropdown-item label=\"Week\" value=\"week\" />\n </ns-dropdown>\n</div>\n\n@switch (view()) {\n @case ('day') {\n <ns-schedule-day\n [currentDate]=\"selected()\"\n [schedules]=\"data()\"\n [style.height.px]=\"height()\"\n />\n }\n @case ('week') {\n <ns-schedule-week\n [currentDate]=\"selected()\"\n [schedules]=\"data()\"\n [style.height.px]=\"height()\"\n />\n }\n @default {\n <ns-schedule-workweek\n [currentDate]=\"selected()\"\n [schedules]=\"data()\"\n [style.height.px]=\"height()\"\n />\n }\n}\n","import {\n Component,\n HostBinding,\n OnChanges,\n OnInit,\n SimpleChanges,\n inject,\n input\n} from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { NsSchemaMarkup } from './models/schema';\n\n@Component({\n selector: 'ns-schema',\n template: ''\n})\nexport class NsSchemaMarkupComponent implements OnInit, OnChanges {\n private sanitizer = inject<DomSanitizer>(DomSanitizer);\n\n readonly data = input<Partial<NsSchemaMarkup>>(undefined);\n\n @HostBinding('innerHTML') innerHTML: SafeHtml;\n\n ngOnInit() {}\n\n ngOnChanges({ data }: SimpleChanges) {\n const json = { '@context': 'https://schema.org', ...data.currentValue };\n const template = `<script type=\"application/ld+json\">${JSON.stringify(\n json,\n null,\n 2\n )}</script>`;\n this.innerHTML = this.sanitizer.bypassSecurityTrustHtml(template);\n }\n}\n","import { Directive, inject, OnInit, TemplateRef, input } from '@angular/core';\nimport { NsModalRef } from '../modal/models/modal-ref';\n\n@Directive({\n selector: '[nsTemplate]',\n standalone: true\n})\nexport class TemplateDirective implements OnInit {\n readonly name = input<string>(undefined, { alias: 'nsTemplate' });\n readonly styleClass = input<string>(undefined);\n\n public readonly ref: TemplateRef<TemplateDirective> = inject(TemplateRef);\n private readonly modalRef = inject(NsModalRef, { optional: true });\n\n ngOnInit() {\n if (this.modalRef) {\n this.modalRef.addTemplate(this);\n }\n }\n}\n","export enum ToastType {\n SUCCESS = 'success',\n WARNING = 'warning',\n INFO = 'info',\n ERROR = 'error'\n}\n","import { ComponentRef } from '@angular/core';\nimport { Observable, take, tap, timer } from 'rxjs';\nimport { NsToastComponent } from '../toast.component';\n\nexport class ToastRef {\n ref: ComponentRef<NsToastComponent> | null = null;\n readonly timeout: Observable<0>;\n\n constructor(props: Partial<ToastRef> = {}) {\n Object.assign(this, props);\n this.timeout = timer(5000).pipe(take(1));\n }\n\n get instance() {\n return this.ref?.instance;\n }\n\n destroy(timeout: number) {\n if (!this.ref) {\n return timer(timeout).pipe(take(1));\n }\n\n const ref = this.ref;\n ref.instance.state = 'destroy';\n ref.changeDetectorRef.detectChanges();\n\n return timer(timeout).pipe(\n take(1),\n tap(() => {\n const { nativeElement } = ref.location;\n nativeElement.parentNode.removeChild(nativeElement);\n\n ref.destroy();\n this.ref = null;\n })\n );\n }\n}\n","import { ToastType } from '../enums/toast-type';\n\nexport class ToastSetup {\n public parent?: string;\n public type?: ToastType;\n public message!: string;\n public callback?: () => void;\n}\n","import { Component, ElementRef, inject, input } from '@angular/core';\nimport { ToastType } from './enums/toast-type';\nimport { NsIconsComponent } from '@ng-solid/icons';\n\n@Component({\n selector: 'ns-toast',\n imports: [NsIconsComponent],\n template: `\n <span class=\"ns-toast__message\" [innerHTML]=\"message()\"></span>\n <ns-icon [name]=\"iconName\" [size]=\"24\" />\n `,\n styleUrls: ['./toast.component.scss'],\n host: {\n '[class.ns-toast]': 'true',\n '[class.ns-toast--success]': \"type() ==='success'\",\n '[class.ns-toast--warning]': \"type() ==='warning'\",\n '[class.ns-toast--info]': \"type() ==='info'\",\n '[class.ns-toast--error]': \"type() ==='error'\",\n '[class.ns-toast--leaving]': \"state === 'destroy'\",\n '[style.margin-left.px]': 'marginLeft'\n }\n})\nexport class NsToastComponent {\n readonly type = input<ToastType>(ToastType.SUCCESS);\n readonly message = input<string>(undefined);\n state: 'display' | 'destroy' = 'display';\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef);\n\n get marginLeft() {\n return -(this.element.nativeElement.offsetWidth / 2);\n }\n\n get iconName() {\n switch (this.type()) {\n case ToastType.WARNING:\n return 'exclamation-triangle';\n case ToastType.ERROR:\n return 'exclamation-circle';\n case ToastType.INFO:\n return 'info-circle';\n default:\n return 'check-circle';\n }\n }\n}\n","import {\n ApplicationRef,\n ComponentRef,\n createComponent,\n Injectable,\n Type,\n inject,\n DOCUMENT\n} from '@angular/core';\nimport { NsToastComponent } from '../toast.component';\nimport { ToastSetup } from '../interfaces/toast-setup';\nimport { ToastRef } from '../interfaces/toast-ref';\n\n@Injectable({ providedIn: 'root' })\nexport class NsToastService {\n private readonly appRef = inject(ApplicationRef);\n private readonly document = inject<Document>(DOCUMENT);\n\n private readonly stack: Set<ComponentRef<NsToastComponent>> = new Set<\n ComponentRef<NsToastComponent>\n >();\n\n public add(setup: ToastSetup): ToastRef {\n const parent = setup.parent\n ? this.document.querySelector<HTMLElement>(setup.parent)\n : this.document.body;\n if (!parent) {\n throw new Error(`Toast parent \"${setup.parent}\" was not found`);\n }\n const componentRef = this.attachComponent(parent, NsToastComponent);\n this.registerToast(componentRef);\n\n const toastRef = new ToastRef({\n ref: componentRef\n });\n\n toastRef.timeout.subscribe(() => {\n toastRef.destroy(500).subscribe(() => {\n if (typeof setup.callback === 'function') {\n setup.callback();\n }\n });\n });\n\n Object.assign(componentRef.instance, setup);\n return toastRef;\n }\n\n private attachComponent<T>(container: Element, type: Type<T>) {\n const componentRef = createComponent(type, {\n environmentInjector: this.appRef.injector\n });\n this.appRef.attachView(componentRef.hostView);\n container.appendChild(componentRef.location.nativeElement);\n return componentRef;\n }\n\n private registerToast(toast: ComponentRef<NsToastComponent>) {\n this.stack.add(toast);\n toast.onDestroy(() => {\n if (this.stack.has(toast)) {\n this.stack.delete(toast);\n }\n });\n }\n}\n","/*\n * Public API Surface of @ng-solid/design-system\n */\n\nexport * from './lib/avatar';\nexport * from './lib/button';\nexport * from './lib/button-group';\nexport * from './lib/comment';\nexport * from './lib/dropdown';\nexport * from './lib/editor';\nexport * from './lib/form';\nexport * from './lib/image-upload';\nexport * from './lib/modal';\nexport * from './lib/schedule';\nexport * from './lib/schema';\nexport * from './lib/template';\nexport * from './lib/toast';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","take"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-solid-design-system.mjs","sources":["../../../../packages/design-system/src/lib/a11y/aria-id.service.ts","../../../../packages/design-system/src/lib/a11y/field-context.ts","../../../../packages/design-system/src/lib/a11y/focus.ts","../../../../packages/design-system/src/lib/a11y/navigation.ts","../../../../packages/design-system/src/lib/a11y/typeahead.ts","../../../../packages/design-system/src/lib/accordion/accordion.component.ts","../../../../packages/design-system/src/lib/alert/alert.component.ts","../../../../packages/design-system/src/lib/avatar/avatar.component.ts","../../../../packages/design-system/src/lib/badge/badge.component.ts","../../../../packages/design-system/src/lib/breadcrumbs/breadcrumb-item.component.ts","../../../../packages/design-system/src/lib/breadcrumbs/breadcrumbs.component.ts","../../../../packages/design-system/src/lib/button/button.component.ts","../../../../packages/design-system/src/lib/button-group/button-group.component.ts","../../../../packages/design-system/src/lib/card/card.component.ts","../../../../packages/design-system/src/lib/chip/chip.component.ts","../../../../packages/design-system/src/lib/collection/collection.controller.ts","../../../../packages/design-system/src/lib/form/models/value-accessor.ts","../../../../packages/design-system/src/lib/form/components/checkbox/checkbox.component.ts","../../../../packages/design-system/src/lib/overlay/overlay.service.ts","../../../../packages/design-system/src/lib/form/components/date-picker/date-picker-calendar.component.ts","../../../../packages/design-system/src/lib/form/components/date-picker/date-picker.component.ts","../../../../packages/design-system/src/lib/form/components/date-picker/date-range-picker.component.ts","../../../../packages/design-system/src/lib/form/components/input/input.component.ts","../../../../packages/design-system/src/lib/form/components/input/input.component.html","../../../../packages/design-system/src/lib/form/components/input-code/input-code.component.ts","../../../../packages/design-system/src/lib/form/components/input-group/input-group.component.ts","../../../../packages/design-system/src/lib/form/components/input-group/input-group-addon.component.ts","../../../../packages/design-system/src/lib/form/components/input-number/input-number.component.ts","../../../../packages/design-system/src/lib/form/components/input-search/input-search.component.ts","../../../../packages/design-system/src/lib/form/components/password/password.component.ts","../../../../packages/design-system/src/lib/form/components/password/password.component.html","../../../../packages/design-system/src/lib/form/components/radio/radio-context.ts","../../../../packages/design-system/src/lib/form/components/radio/radio.component.ts","../../../../packages/design-system/src/lib/form/components/radio/radio-group.component.ts","../../../../packages/design-system/src/lib/form/components/slider/slider.component.ts","../../../../packages/design-system/src/lib/form/components/switch/switch.component.ts","../../../../packages/design-system/src/lib/form/components/text-area/text-area.component.ts","../../../../packages/design-system/src/lib/form/directives/content-editable.directive.ts","../../../../packages/design-system/src/lib/form/index.ts","../../../../packages/design-system/src/lib/comment/comment.component.ts","../../../../packages/design-system/src/lib/comment/comment.component.html","../../../../packages/design-system/src/lib/description/description.component.ts","../../../../packages/design-system/src/lib/divider/divider.component.ts","../../../../packages/design-system/src/lib/drawer/drawer.component.ts","../../../../packages/design-system/src/lib/drawer/models/drawer-ref.ts","../../../../packages/design-system/src/lib/drawer/services/drawer.service.ts","../../../../packages/design-system/src/lib/editor/enums/commands.enum.ts","../../../../packages/design-system/src/lib/editor/models/labels.ts","../../../../packages/design-system/src/lib/editor/services/editor.service.ts","../../../../packages/design-system/src/lib/editor/pipes/editor-label.pipe.ts","../../../../packages/design-system/src/lib/editor/components/color-picker/color-picker.component.ts","../../../../packages/design-system/src/lib/editor/components/color-picker/color-picker.component.html","../../../../packages/design-system/src/lib/editor/components/link/link.component.ts","../../../../packages/design-system/src/lib/editor/components/link/link.component.html","../../../../packages/design-system/src/lib/editor/components/list/list.component.ts","../../../../packages/design-system/src/lib/editor/components/list/list.component.html","../../../../packages/design-system/src/lib/selector-list/selector-list.component.ts","../../../../packages/design-system/src/lib/editor/components/paragraph/paragraph.component.ts","../../../../packages/design-system/src/lib/editor/components/paragraph/paragraph.component.html","../../../../packages/design-system/src/lib/editor/components/toogle/toggle.component.ts","../../../../packages/design-system/src/lib/editor/components/toogle/toggle.component.html","../../../../packages/design-system/src/lib/editor/editor.component.ts","../../../../packages/design-system/src/lib/editor/editor.component.html","../../../../packages/design-system/src/lib/image-upload/pipes/image-url.pipe.ts","../../../../packages/design-system/src/lib/image-upload/image-upload.component.ts","../../../../packages/design-system/src/lib/image-upload/image-upload.component.html","../../../../packages/design-system/src/lib/link/link.component.ts","../../../../packages/design-system/src/lib/list-box/list-box.component.ts","../../../../packages/design-system/src/lib/meter/meter.component.ts","../../../../packages/design-system/src/lib/modal/modal.component.ts","../../../../packages/design-system/src/lib/modal/models/modal-ref.ts","../../../../packages/design-system/src/lib/modal/services/modal.service.ts","../../../../packages/design-system/src/lib/pagination/pagination.component.ts","../../../../packages/design-system/src/lib/popover/popover.component.ts","../../../../packages/design-system/src/lib/progress-bar/progress-bar.component.ts","../../../../packages/design-system/src/lib/schedule/models/schedule.ts","../../../../packages/design-system/src/lib/schedule/services/schedule.service.ts","../../../../packages/design-system/src/lib/schedule/components/cell/cell.component.ts","../../../../packages/design-system/src/lib/schedule/pipes/week-day.pipe.ts","../../../../packages/design-system/src/lib/schedule/pipes/filter-by-day.pipe.ts","../../../../packages/design-system/src/lib/schedule/components/event/event.component.ts","../../../../packages/design-system/src/lib/schedule/components/event/event.component.html","../../../../packages/design-system/src/lib/schedule/components/day/day.component.ts","../../../../packages/design-system/src/lib/schedule/components/day/day.component.html","../../../../packages/design-system/src/lib/schedule/components/week/week.component.ts","../../../../packages/design-system/src/lib/schedule/components/week/week.component.html","../../../../packages/design-system/src/lib/schedule/components/workweek/workweek.component.ts","../../../../packages/design-system/src/lib/schedule/components/workweek/workweek.component.html","../../../../packages/design-system/src/lib/schedule/schedule.component.ts","../../../../packages/design-system/src/lib/schedule/schedule.component.html","../../../../packages/design-system/src/lib/schema/schema.component.ts","../../../../packages/design-system/src/lib/skeleton/skeleton.component.ts","../../../../packages/design-system/src/lib/template/template.directive.ts","../../../../packages/design-system/src/lib/theme/presets/arvisfy.preset.ts","../../../../packages/design-system/src/lib/theme/theme.provider.ts","../../../../packages/design-system/src/lib/theme/utils/theme.utils.ts","../../../../packages/design-system/src/lib/theme/services/theme.service.ts","../../../../packages/design-system/src/lib/toast/models/toast-handle.ts","../../../../packages/design-system/src/lib/toast/toast.component.ts","../../../../packages/design-system/src/lib/toast/toast-region.component.ts","../../../../packages/design-system/src/lib/toast/services/toast.service.ts","../../../../packages/design-system/src/lib/surface/surface.component.ts","../../../../packages/design-system/src/lib/tabs/tabs.component.ts","../../../../packages/design-system/src/lib/tag-group/tag-group.component.ts","../../../../packages/design-system/src/lib/tooltip/tooltip.component.ts","../../../../packages/design-system/src/lib/tooltip/tooltip.directive.ts","../../../../packages/design-system/src/index.ts","../../../../packages/design-system/src/ng-solid-design-system.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n/** Generates deterministic-within-a-session ids for ARIA relationships. */\n@Injectable({ providedIn: 'root' })\nexport class NsAriaIdService {\n private nextId = 0;\n\n create(prefix = 'ns'): string {\n this.nextId += 1;\n return `${prefix}-${this.nextId}`;\n }\n}\n","import { Directive, effect, inject, input } from '@angular/core';\nimport { NsAriaIdService } from './aria-id.service';\n\nexport class NsFieldContext {\n private readonly descriptions = new Set<string>();\n private controlId = '';\n\n setControlId(controlId: string): void {\n this.controlId = controlId;\n }\n\n getControlId(): string {\n return this.controlId;\n }\n\n getDescribedBy(): string | undefined {\n return this.descriptions.size\n ? [...this.descriptions].join(' ')\n : undefined;\n }\n\n registerDescription(id: string): void {\n this.descriptions.add(id);\n }\n\n unregisterDescription(id: string): void {\n this.descriptions.delete(id);\n }\n}\n\n@Directive({\n selector: '[nsField]',\n standalone: true,\n providers: [NsFieldContext]\n})\nexport class NsFieldDirective {\n private readonly context = inject(NsFieldContext);\n private readonly ariaIds = inject(NsAriaIdService);\n\n readonly controlId = input(this.ariaIds.create('ns-field'), {\n alias: 'nsField'\n });\n\n constructor() {\n effect(() => this.context.setControlId(this.controlId()));\n }\n}\n","export const NS_FOCUSABLE_SELECTOR = [\n 'a[href]',\n 'area[href]',\n 'button:not([disabled])',\n 'input:not([disabled]):not([type=\"hidden\"])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[contenteditable=\"true\"]',\n '[tabindex]:not([tabindex=\"-1\"])'\n].join(',');\n\nexport function getNsFocusableElements(container: HTMLElement): HTMLElement[] {\n return Array.from(\n container.querySelectorAll<HTMLElement>(NS_FOCUSABLE_SELECTOR)\n ).filter((element) => !element.hasAttribute('hidden') && !element.inert);\n}\n\nexport function focusNsFirst(container: HTMLElement): boolean {\n const element = getNsFocusableElements(container)[0];\n element?.focus();\n return Boolean(element);\n}\n\nexport function focusNsLast(container: HTMLElement): boolean {\n const elements = getNsFocusableElements(container);\n const element = elements[elements.length - 1];\n element?.focus();\n return Boolean(element);\n}\n\nexport function isNsEventInside(\n event: Event,\n ...elements: Array<HTMLElement | undefined>\n): boolean {\n const path = event.composedPath();\n return elements.some((element) => Boolean(element && path.includes(element)));\n}\n","import { NsKey } from '../../types';\n\nexport interface NsNavigableItem {\n key: NsKey;\n disabled?: boolean;\n}\n\nexport type NsNavigationKey =\n 'ArrowDown' | 'ArrowLeft' | 'ArrowRight' | 'ArrowUp' | 'End' | 'Home';\n\nexport function getNsNextNavigableIndex(\n items: readonly NsNavigableItem[],\n currentIndex: number,\n key: NsNavigationKey,\n orientation: 'horizontal' | 'vertical' = 'vertical',\n loop = true\n): number {\n if (!items.length) {\n return -1;\n }\n\n const forward = key === 'ArrowDown' || key === 'ArrowRight';\n const backward = key === 'ArrowUp' || key === 'ArrowLeft';\n if (\n (key === 'ArrowLeft' || key === 'ArrowRight') &&\n orientation !== 'horizontal'\n ) {\n return currentIndex;\n }\n if (\n (key === 'ArrowUp' || key === 'ArrowDown') &&\n orientation !== 'vertical'\n ) {\n return currentIndex;\n }\n if (key === 'Home') {\n return getNsEnabledIndex(items, 0, 1);\n }\n if (key === 'End') {\n return getNsEnabledIndex(items, items.length - 1, -1);\n }\n if (!forward && !backward) {\n return currentIndex;\n }\n\n const step = forward ? 1 : -1;\n const start = currentIndex < 0 ? (forward ? -1 : items.length) : currentIndex;\n for (let offset = 1; offset <= items.length; offset += 1) {\n let index = start + step * offset;\n if (loop) {\n index = ((index % items.length) + items.length) % items.length;\n }\n if (index < 0 || index >= items.length) {\n return currentIndex;\n }\n if (!items[index].disabled) {\n return index;\n }\n }\n return currentIndex;\n}\n\nfunction getNsEnabledIndex(\n items: readonly NsNavigableItem[],\n start: number,\n step: 1 | -1\n): number {\n for (let index = start; index >= 0 && index < items.length; index += step) {\n if (!items[index].disabled) {\n return index;\n }\n }\n return -1;\n}\n","export interface NsTypeaheadItem {\n label?: string;\n disabled?: boolean;\n}\n\nexport class NsTypeaheadController<T extends NsTypeaheadItem> {\n private query = '';\n private lastInputAt = 0;\n\n constructor(private readonly timeout = 500) {}\n\n find(items: readonly T[], key: string, currentIndex = -1): number {\n if (key.length !== 1 || key.trim().length === 0) {\n return -1;\n }\n const now = Date.now();\n this.query = now - this.lastInputAt > this.timeout ? key : this.query + key;\n this.lastInputAt = now;\n const normalized = this.query.toLocaleLowerCase();\n\n for (let offset = 1; offset <= items.length; offset += 1) {\n const index = (currentIndex + offset + items.length) % items.length;\n const item = items[index];\n if (\n !item.disabled &&\n item.label?.toLocaleLowerCase().startsWith(normalized)\n ) {\n return index;\n }\n }\n return -1;\n }\n\n reset(): void {\n this.query = '';\n this.lastInputAt = 0;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n contentChildren,\n effect,\n inject,\n input,\n model\n} from '@angular/core';\nimport { NsKey } from '../../types';\nimport { getNsNextNavigableIndex, NsAriaIdService } from '../a11y';\n\n@Component({\n selector: 'ns-accordion-item',\n standalone: true,\n template: `\n <button\n class=\"ns-accordion-item__trigger\"\n type=\"button\"\n [attr.data-ns-accordion-key]=\"key()\"\n [attr.data-state]=\"expanded() ? 'open' : 'closed'\"\n [attr.aria-expanded]=\"expanded()\"\n [attr.aria-controls]=\"panelId\"\n [disabled]=\"disabled()\"\n >\n {{ label() }}\n </button>\n <div\n class=\"ns-accordion-item__panel\"\n [id]=\"panelId\"\n role=\"region\"\n [attr.aria-label]=\"label()\"\n [hidden]=\"!expanded()\"\n >\n <ng-content />\n </div>\n `,\n styleUrls: ['./accordion.component.scss'],\n host: {\n '[class.ns-accordion-item]': 'true',\n '[class.ns-accordion-item--expanded]': 'expanded()',\n '[class.ns-accordion-item--disabled]': 'disabled()',\n '[attr.data-state]':\n \"disabled() ? 'disabled' : (expanded() ? 'open' : 'closed')\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsAccordionItemComponent {\n readonly key = input.required<NsKey>();\n readonly label = input.required<string>();\n readonly disabled = input(false);\n readonly expanded = model(false);\n readonly panelId = inject(NsAriaIdService).create('ns-accordion-panel');\n\n readonly element = inject(ElementRef<HTMLElement>);\n}\n\n@Component({\n selector: 'ns-accordion',\n standalone: true,\n template: '<ng-content />',\n styleUrls: ['./accordion.component.scss'],\n host: {\n '[class.ns-accordion]': 'true'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsAccordionComponent {\n readonly multiple = input(false);\n readonly expandedKeys = model<readonly NsKey[]>([]);\n readonly items = contentChildren(NsAccordionItemComponent);\n\n constructor() {\n effect(() => {\n const expanded = new Set(this.expandedKeys());\n for (const item of this.items()) {\n item.expanded.set(expanded.has(item.key()));\n }\n });\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n const trigger = (event.target as HTMLElement | null)?.closest<HTMLElement>(\n '[data-ns-accordion-key]'\n );\n const key = this.findKey(trigger);\n if (key !== undefined) {\n this.toggle(key);\n }\n }\n\n @HostListener('keydown', ['$event'])\n onKeydown(event: KeyboardEvent): void {\n if (!['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) {\n return;\n }\n const items = this.items();\n const current = items.findIndex((item) =>\n item.element.nativeElement.contains(event.target as Node)\n );\n const index = getNsNextNavigableIndex(\n items.map((item) => ({ key: item.key(), disabled: item.disabled() })),\n current,\n event.key as 'ArrowDown' | 'ArrowUp' | 'Home' | 'End'\n );\n if (index >= 0) {\n event.preventDefault();\n const itemElement = items[index].element.nativeElement as HTMLElement;\n itemElement.querySelector<HTMLButtonElement>('button')?.focus();\n }\n }\n\n toggle(key: NsKey): void {\n const item = this.items().find((candidate) => candidate.key() === key);\n if (!item || item.disabled()) {\n return;\n }\n const expanded = new Set(this.expandedKeys());\n if (expanded.has(key)) {\n expanded.delete(key);\n } else {\n if (!this.multiple()) {\n expanded.clear();\n }\n expanded.add(key);\n }\n const next = [...expanded];\n this.expandedKeys.set(next);\n }\n\n private findKey(trigger: HTMLElement | null): NsKey | undefined {\n if (!trigger) {\n return undefined;\n }\n return this.items()\n .find((item) => item.element.nativeElement.contains(trigger))\n ?.key();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n booleanAttribute,\n input,\n output\n} from '@angular/core';\nimport { NsIconsComponent } from '@ng-solid/icons';\n\nexport type NsAlertVariant = 'info' | 'warning' | 'danger' | 'success';\n\n@Component({\n selector: 'ns-alert',\n standalone: true,\n imports: [NsIconsComponent],\n template: `\n <ns-icon\n class=\"ns-alert__icon\"\n [name]=\"iconName()\"\n [size]=\"20\"\n aria-hidden=\"true\"\n />\n <div class=\"ns-alert__content\">\n @if (title()) {\n <strong class=\"ns-alert__title\">{{ title() }}</strong>\n }\n <div class=\"ns-alert__message\"><ng-content /></div>\n <div class=\"ns-alert__footer\"><ng-content select=\"ns-link\" /></div>\n </div>\n @if (dismissible()) {\n <button\n class=\"ns-alert__dismiss\"\n type=\"button\"\n [attr.aria-label]=\"dismissLabel()\"\n (click)=\"dismissed.emit()\"\n >\n ×\n </button>\n }\n `,\n styleUrl: './alert.component.scss',\n host: {\n role: 'alert',\n '[class.ns-alert]': 'true',\n '[class.ns-alert--info]': \"variant() === 'info'\",\n '[class.ns-alert--success]': \"variant() === 'success'\",\n '[class.ns-alert--warning]': \"variant() === 'warning'\",\n '[class.ns-alert--danger]': \"variant() === 'danger'\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsAlertComponent {\n readonly variant = input<NsAlertVariant>('info');\n readonly title = input<string>('');\n readonly dismissible = input(false, { transform: booleanAttribute });\n readonly dismissLabel = input<string>('Dismiss alert');\n readonly dismissed = output<void>();\n\n iconName(): string {\n switch (this.variant()) {\n case 'success':\n return 'circle-check';\n case 'warning':\n return 'triangle-alert';\n case 'danger':\n return 'circle-x';\n default:\n return 'info';\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n signal\n} from '@angular/core';\nimport { NsSize } from '../../types';\n\n@Component({\n selector: 'ns-avatar',\n standalone: true,\n template: `\n @if (showImage()) {\n <img\n class=\"ns-avatar__image\"\n [src]=\"src()\"\n [alt]=\"alt()\"\n (error)=\"onImageError()\"\n />\n } @else if (initials()) {\n <span class=\"ns-avatar__initials\">{{ initials() }}</span>\n } @else if (icon()) {\n <span class=\"ns-avatar__icon\" aria-hidden=\"true\">{{ icon() }}</span>\n }\n `,\n styleUrl: './avatar.component.scss',\n host: {\n '[class.ns-avatar]': 'true',\n '[class.ns-avatar--circle]': \"shape() === 'circle'\",\n '[class.ns-avatar--square]': \"shape() === 'square'\",\n '[class.ns-avatar--sm]': \"size() === 'sm'\",\n '[class.ns-avatar--md]': \"size() === 'md'\",\n '[class.ns-avatar--lg]': \"size() === 'lg'\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsAvatarComponent {\n readonly src = input<string>('');\n readonly alt = input<string>('');\n readonly initials = input<string>('');\n readonly icon = input<string>('');\n readonly shape = input<'circle' | 'square'>('circle');\n readonly size = input<NsSize>('md');\n\n private readonly imageFailed = signal(false);\n readonly showImage = computed(\n () => Boolean(this.src().trim()) && !this.imageFailed()\n );\n\n onImageError(): void {\n this.imageFailed.set(true);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n numberAttribute\n} from '@angular/core';\n\nexport type NsBadgeMode = 'count' | 'dot';\n\nfunction numberOrUndefined(value: unknown): number | undefined {\n return value === undefined || value === null\n ? undefined\n : numberAttribute(value);\n}\n\n@Component({\n selector: 'ns-badge',\n standalone: true,\n template: \"@if (isVisible() && mode() === 'count') { {{ displayCount() }} }\",\n styleUrl: './badge.component.scss',\n host: {\n '[class.ns-badge]': 'true',\n '[class.ns-badge--single]': \"appearance() === 'single'\",\n '[class.ns-badge--double]': \"appearance() === 'double'\",\n '[class.ns-badge--overflow]': \"appearance() === 'overflow'\",\n '[class.ns-badge--dot]': \"appearance() === 'dot'\",\n '[class.ns-badge--hidden]': \"appearance() === 'hidden'\",\n '[attr.hidden]': 'isVisible() ? null : true',\n '[attr.aria-hidden]': \"isVisible() && ariaLabel() ? null : 'true'\",\n '[attr.role]': \"isVisible() && ariaLabel() ? 'img' : null\",\n '[attr.aria-label]': 'isVisible() && ariaLabel() ? ariaLabel() : null'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsBadgeComponent {\n readonly count = input<number | undefined, unknown>(undefined, {\n transform: numberOrUndefined\n });\n readonly mode = input<NsBadgeMode>('count');\n readonly ariaLabel = input<string | undefined>(undefined);\n\n readonly normalizedCount = computed(() => {\n const count = this.count();\n if (count === undefined || !Number.isFinite(count)) return undefined;\n\n const normalized = Math.trunc(count);\n return normalized > 0 ? normalized : undefined;\n });\n\n readonly isVisible = computed(\n () => this.mode() === 'dot' || this.normalizedCount() !== undefined\n );\n\n readonly displayCount = computed(() => {\n const count = this.normalizedCount();\n if (count === undefined) return '';\n return count >= 100 ? '99+' : String(count);\n });\n\n readonly appearance = computed<\n 'single' | 'double' | 'overflow' | 'dot' | 'hidden'\n >(() => {\n if (!this.isVisible()) return 'hidden';\n if (this.mode() === 'dot') return 'dot';\n\n const count = this.normalizedCount() as number;\n if (count >= 100) return 'overflow';\n return count >= 10 ? 'double' : 'single';\n });\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'ns-breadcrumb-item',\n standalone: true,\n template: `\n @if (href() && !current()) {\n <a class=\"ns-breadcrumb-item__link\" [href]=\"href()\"><ng-content /></a>\n } @else {\n <span class=\"ns-breadcrumb-item__label\"><ng-content /></span>\n }\n `,\n styleUrl: './breadcrumbs.component.scss',\n host: {\n '[attr.aria-current]': \"current() ? 'page' : null\",\n '[class.ns-breadcrumb-item]': 'true',\n '[class.ns-breadcrumb-item--current]': 'current()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsBreadcrumbItemComponent {\n readonly href = input<string>('');\n readonly current = input(false);\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'ns-breadcrumbs',\n standalone: true,\n template: '<ol class=\"ns-breadcrumbs__list\"><ng-content /></ol>',\n styleUrl: './breadcrumbs.component.scss',\n host: {\n role: 'navigation',\n '[attr.aria-label]': 'ariaLabel()',\n '[class.ns-breadcrumbs]': 'true'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsBreadcrumbsComponent {\n readonly ariaLabel = input<string>('Breadcrumb');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n booleanAttribute,\n input\n} from '@angular/core';\nimport { NsIconsComponent } from '@ng-solid/icons';\nimport { NsSize } from '../../types';\n\nexport type NsButtonVariant =\n 'primary' | 'secondary' | 'tertiary' | 'success' | 'danger';\n\nfunction booleanOrUndefined(value: unknown): boolean | undefined {\n return value === undefined ? undefined : booleanAttribute(value);\n}\n\n@Component({\n selector: 'ns-button',\n standalone: true,\n imports: [NsIconsComponent],\n template: `\n <button\n class=\"ns-button__control\"\n [attr.type]=\"type()\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-busy]=\"loading() || null\"\n [attr.aria-pressed]=\"selected() === undefined ? null : selected()\"\n [disabled]=\"disabled() || loading()\"\n >\n @if (loading()) {\n <span class=\"ns-button__spinner\" aria-hidden=\"true\"></span>\n } @else if (icon()) {\n <ns-icon\n class=\"ns-button__icon\"\n [name]=\"icon()\"\n size=\"16\"\n aria-hidden=\"true\"\n />\n }\n <ng-content />\n </button>\n `,\n styleUrl: './button.component.scss',\n host: {\n '[class.ns-button]': 'true',\n '[class.ns-button--block]': 'block()',\n '[class.ns-button--icon-only]': 'iconOnly()',\n '[class.ns-button--loading]': 'loading()',\n '[class.ns-button--selected]': 'selected() === true',\n '[class.ns-button--unselected]': 'selected() === false',\n '[attr.data-selected]': 'selected() === undefined ? null : selected()',\n '[class.ns-button--sm]': \"size() === 'sm'\",\n '[class.ns-button--md]': \"size() === 'md'\",\n '[class.ns-button--lg]': \"size() === 'lg'\",\n '[class.ns-button--primary]': \"variant() === 'primary'\",\n '[class.ns-button--secondary]': \"variant() === 'secondary'\",\n '[class.ns-button--tertiary]': \"variant() === 'tertiary'\",\n '[class.ns-button--success]': \"variant() === 'success'\",\n '[class.ns-button--danger]': \"variant() === 'danger'\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsButtonComponent {\n readonly type = input<'button' | 'submit' | 'reset'>('button');\n readonly variant = input<NsButtonVariant>('primary');\n readonly size = input<NsSize>('md');\n readonly icon = input<string>('');\n readonly iconOnly = input(false, { transform: booleanAttribute });\n readonly ariaLabel = input<string>('');\n readonly block = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly loading = input(false, { transform: booleanAttribute });\n readonly selected = input<boolean | undefined, unknown>(undefined, {\n transform: booleanOrUndefined\n });\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { NsOrientation } from '../../types';\n\n@Component({\n selector: 'ns-button-group',\n standalone: true,\n template: '<ng-content />',\n styleUrl: './button-group.component.scss',\n host: {\n role: 'group',\n '[attr.aria-label]': 'ariaLabel()',\n '[class.ns-button-group]': 'true',\n '[class.ns-button-group--horizontal]': \"orientation() === 'horizontal'\",\n '[class.ns-button-group--vertical]': \"orientation() === 'vertical'\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n/**\n * Segmented geometry is applied when direct `ns-button` children are projected\n * into the group. Wrapping a button is not part of this contract.\n */\nexport class NsButtonGroupComponent {\n readonly ariaLabel = input<string>('Actions');\n readonly orientation = input<NsOrientation>('horizontal');\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { NsVariant } from '../../types';\n\n@Component({\n selector: 'ns-card',\n standalone: true,\n template: '<ng-content />',\n styleUrl: './card.component.scss',\n host: {\n '[attr.aria-label]': 'ariaLabel() || null',\n '[class.ns-card]': 'true',\n '[class.ns-card--solid]': \"variant() === 'solid'\",\n '[class.ns-card--soft]': \"variant() === 'soft'\",\n '[class.ns-card--outline]': \"variant() === 'outline'\",\n '[class.ns-card--ghost]': \"variant() === 'ghost'\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsCardComponent {\n readonly ariaLabel = input<string>('');\n readonly variant = input<NsVariant>('solid');\n}\n\n@Component({\n selector: 'ns-card-header',\n standalone: true,\n template: '<ng-content />',\n styleUrl: './card.component.scss',\n host: { '[class.ns-card__header]': 'true' },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsCardHeaderComponent {}\n\n@Component({\n selector: 'ns-card-body',\n standalone: true,\n template: '<ng-content />',\n styleUrl: './card.component.scss',\n host: { '[class.ns-card__body]': 'true' },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsCardBodyComponent {}\n\n@Component({\n selector: 'ns-card-footer',\n standalone: true,\n template: '<ng-content />',\n styleUrl: './card.component.scss',\n host: { '[class.ns-card__footer]': 'true' },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsCardFooterComponent {}\n","import {\n ChangeDetectionStrategy,\n Component,\n booleanAttribute,\n input,\n output\n} from '@angular/core';\nimport { NsColor, NsVariant } from '../../types';\n\n@Component({\n selector: 'ns-chip',\n standalone: true,\n template: `\n <span class=\"ns-chip__label\"><ng-content /></span>\n @if (dismissible()) {\n <button\n class=\"ns-chip__dismiss\"\n type=\"button\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"dismissLabel()\"\n (click)=\"removed.emit()\"\n >\n ×\n </button>\n }\n `,\n styleUrl: './chip.component.scss',\n host: {\n '[class.ns-chip]': 'true',\n '[class.ns-chip--disabled]': 'disabled()',\n '[class.ns-chip--solid]': \"variant() === 'solid'\",\n '[class.ns-chip--soft]': \"variant() === 'soft'\",\n '[class.ns-chip--outline]': \"variant() === 'outline'\",\n '[class.ns-chip--neutral]': \"color() === 'neutral'\",\n '[class.ns-chip--primary]': \"color() === 'primary'\",\n '[class.ns-chip--success]': \"color() === 'success'\",\n '[class.ns-chip--warning]': \"color() === 'warning'\",\n '[class.ns-chip--danger]': \"color() === 'danger'\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsChipComponent {\n readonly color = input<NsColor>('neutral');\n readonly variant = input<Exclude<NsVariant, 'ghost'>>('soft');\n readonly dismissible = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly dismissLabel = input<string>('Remove');\n readonly removed = output<void>();\n}\n","import { computed, signal } from '@angular/core';\nimport { NsCollectionItem, NsKey, NsSelectionMode } from '../../types';\n\nexport class NsCollectionController<T = unknown, TKey extends NsKey = NsKey> {\n private readonly itemsState = signal<readonly NsCollectionItem<T, TKey>[]>(\n []\n );\n private readonly selectedKeysState = signal<ReadonlySet<TKey>>(\n new Set<TKey>()\n );\n\n readonly items = this.itemsState.asReadonly();\n readonly selectedKeys = this.selectedKeysState.asReadonly();\n readonly selectedItems = computed(() =>\n this.itemsState().filter((item) => this.selectedKeysState().has(item.key))\n );\n\n constructor(private readonly selectionMode: NsSelectionMode = 'single') {}\n\n setItems(items: readonly NsCollectionItem<T, TKey>[]): void {\n this.itemsState.set(items);\n const knownKeys = new Set(items.map((item) => item.key));\n this.selectedKeysState.update(\n (keys) => new Set([...keys].filter((key) => knownKeys.has(key)))\n );\n }\n\n isSelected(key: TKey): boolean {\n return this.selectedKeysState().has(key);\n }\n\n select(key: TKey): void {\n const item = this.itemsState().find((candidate) => candidate.key === key);\n if (!item || item.disabled || this.selectionMode === 'none') {\n return;\n }\n if (this.selectionMode === 'single') {\n this.selectedKeysState.set(new Set([key]));\n return;\n }\n this.selectedKeysState.update((keys) => new Set(keys).add(key));\n }\n\n toggle(key: TKey): void {\n if (this.selectionMode !== 'multiple') {\n this.select(key);\n return;\n }\n const item = this.itemsState().find((candidate) => candidate.key === key);\n if (!item || item.disabled) {\n return;\n }\n this.selectedKeysState.update((keys) => {\n const next = new Set(keys);\n if (next.has(key)) {\n next.delete(key);\n } else {\n next.add(key);\n }\n return next;\n });\n }\n\n clear(): void {\n this.selectedKeysState.set(new Set<TKey>());\n }\n}\n","import { Directive, computed, inject, input, model } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { NsAriaIdService, NsFieldContext } from '../../a11y';\n\n@Directive()\nexport abstract class NsValueAccessor<\n T = string\n> implements ControlValueAccessor {\n private readonly ariaIds = inject(NsAriaIdService);\n private readonly field = inject(NsFieldContext, {\n optional: true,\n skipSelf: true\n });\n\n public readonly type = input('text');\n public readonly placeholder = input('');\n public readonly label = input<string | undefined>(undefined);\n public readonly description = input<string | undefined>(undefined);\n public readonly errorMessage = input<string | undefined>(undefined);\n public readonly required = input(false);\n public readonly invalid = input(false);\n public readonly disabled = model(false);\n public readonly readonly = input(false);\n public readonly name = input<string | undefined>(undefined);\n public readonly ariaLabel = input<string | undefined>(undefined);\n public readonly ariaDescribedBy = input<string | undefined>(undefined);\n public readonly size = input<'sm' | 'md' | 'lg'>('md');\n public readonly color = input<\n 'neutral' | 'primary' | 'success' | 'warning' | 'danger'\n >('neutral');\n public readonly variant = input<'solid' | 'soft' | 'outline' | 'ghost'>(\n 'outline'\n );\n\n public readonly id = this.ariaIds.create('ns-control');\n public readonly descriptionId = `${this.id}-description`;\n public readonly errorId = `${this.id}-error`;\n public readonly controlId = computed(\n () => this.field?.getControlId() || this.id\n );\n public readonly describedBy = computed(() => {\n const ids = [\n this.ariaDescribedBy(),\n this.field?.getDescribedBy(),\n this.description() ? this.descriptionId : undefined,\n this.invalid() && this.errorMessage() ? this.errorId : undefined\n ].filter((id): id is string => Boolean(id));\n return ids.length ? ids.join(' ') : undefined;\n });\n\n public readonly value = model<T>(undefined as T);\n\n public setValue(value: T): void {\n if (!Object.is(this.value(), value)) {\n this.value.set(value);\n this.onChange(value);\n }\n }\n\n public onTouched = () => {};\n\n public onChange: (value: T) => void = () => {};\n\n writeValue(value: T): void {\n this.value.set(value);\n }\n\n registerOnChange(fn: (value: T) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","import { ChangeDetectionStrategy, Component, forwardRef } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NsValueAccessor } from '../../models/value-accessor';\n\n@Component({\n selector: 'ns-checkbox',\n standalone: true,\n imports: [FormsModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<label class=\"ns-checkbox__label\" [for]=\"controlId()\"\n ><input\n class=\"ns-checkbox__input\"\n [id]=\"controlId()\"\n [name]=\"name()\"\n type=\"checkbox\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"setValue($event)\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n [attr.aria-invalid]=\"invalid() || null\"\n [attr.aria-describedby]=\"describedBy()\"\n (blur)=\"onTouched()\"\n /><span>{{ label() }}</span>\n @if (required()) {\n <span aria-hidden=\"true\"> *</span>\n }\n </label>\n @if (description()) {\n <p class=\"ns-checkbox__description\" [id]=\"descriptionId\">\n {{ description() }}\n </p>\n }\n @if (invalid() && errorMessage()) {\n <p class=\"ns-checkbox__error\" [id]=\"errorId\" role=\"alert\">\n {{ errorMessage() }}\n </p>\n }`,\n styleUrls: ['./checkbox.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsCheckboxComponent),\n multi: true\n }\n ],\n host: { '[class.ns-checkbox]': 'true' }\n})\nexport class NsCheckboxComponent extends NsValueAccessor<boolean> {}\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { Injectable, PLATFORM_ID, inject, signal } from '@angular/core';\nimport { NsPlacement } from '../../types';\nimport {\n focusNsFirst,\n focusNsLast,\n getNsFocusableElements,\n isNsEventInside\n} from '../a11y';\n\nexport type NsOverlayCloseReason = 'dismiss' | 'escape' | 'programmatic';\n\nexport interface NsOverlayConfig {\n origin?: HTMLElement;\n matchOriginWidth?: boolean;\n placement?: NsPlacement;\n offset?: number;\n closeOnEscape?: boolean;\n closeOnOutsidePointer?: boolean;\n trapFocus?: boolean;\n restoreFocus?: boolean;\n inert?: boolean;\n lockScroll?: boolean;\n}\n\nexport interface NsOverlayPosition {\n top: number;\n left: number;\n placement: NsPlacement;\n}\n\ninterface NsResolvedOverlayConfig {\n origin?: HTMLElement;\n matchOriginWidth: boolean;\n placement: NsPlacement;\n offset: number;\n closeOnEscape: boolean;\n closeOnOutsidePointer: boolean;\n trapFocus: boolean;\n restoreFocus: boolean;\n inert: boolean;\n lockScroll: boolean;\n}\n\ninterface NsAttachedContent {\n element: HTMLElement;\n parent: Node | null;\n nextSibling: Node | null;\n}\n\ninterface NsInertState {\n inert: boolean;\n ariaHidden: string | null;\n}\n\nconst VIEWPORT_GUTTER = 8;\n\nexport class NsOverlayRef {\n private readonly closeListeners = new Set<\n (reason: NsOverlayCloseReason) => void\n >();\n private attachedContent?: NsAttachedContent;\n private closedState = false;\n private readonly priorFocusedElement: HTMLElement | null;\n\n readonly closed = signal<NsOverlayCloseReason | undefined>(undefined);\n\n constructor(\n readonly portal: HTMLElement,\n readonly config: NsResolvedOverlayConfig,\n private readonly document: Document,\n private readonly closeOverlay: (\n ref: NsOverlayRef,\n reason: NsOverlayCloseReason\n ) => void\n ) {\n const activeElement = document.activeElement;\n this.priorFocusedElement =\n activeElement instanceof HTMLElement ? activeElement : null;\n }\n\n attach(element: HTMLElement): void {\n if (this.closedState) {\n throw new Error('Cannot attach content to a closed overlay.');\n }\n this.detachContent();\n this.attachedContent = {\n element,\n parent: element.parentNode,\n nextSibling: element.nextSibling\n };\n this.portal.appendChild(element);\n this.updatePosition();\n }\n\n updatePosition(): void {\n if (this.closedState || !this.config.origin) {\n return;\n }\n const view = this.document.defaultView;\n if (!view) {\n return;\n }\n const origin = this.config.origin.getBoundingClientRect();\n if (this.config.matchOriginWidth) {\n this.portal.style.width = `${origin.width}px`;\n }\n const position = getNsOverlayPosition(\n origin,\n this.portal.getBoundingClientRect(),\n this.config.placement,\n this.config.offset,\n view.innerWidth,\n view.innerHeight\n );\n this.portal.style.top = `${position.top}px`;\n this.portal.style.left = `${position.left}px`;\n this.portal.dataset['nsPlacement'] = position.placement;\n }\n\n focusInitial(): void {\n if (\n !this.config.trapFocus ||\n this.closedState ||\n this.portal.inert ||\n this.portal.getAttribute('aria-hidden') === 'true'\n ) {\n return;\n }\n queueMicrotask(() => {\n if (!this.closedState) {\n focusNsFirst(this.portal) || this.portal.focus();\n }\n });\n }\n\n close(reason: NsOverlayCloseReason = 'programmatic'): void {\n this.closeOverlay(this, reason);\n }\n\n onClose(listener: (reason: NsOverlayCloseReason) => void): () => void {\n this.closeListeners.add(listener);\n return () => this.closeListeners.delete(listener);\n }\n\n isClosed(): boolean {\n return this.closedState;\n }\n\n finalizeClose(reason: NsOverlayCloseReason): void {\n if (this.closedState) {\n return;\n }\n this.closedState = true;\n this.detachContent();\n this.portal.remove();\n this.closed.set(reason);\n for (const listener of this.closeListeners) {\n listener(reason);\n }\n this.closeListeners.clear();\n }\n\n restoreFocus(): void {\n if (this.config.restoreFocus && this.priorFocusedElement?.isConnected) {\n this.priorFocusedElement.focus();\n }\n }\n\n private detachContent(): void {\n const attachedContent = this.attachedContent;\n if (!attachedContent || !attachedContent.parent) {\n return;\n }\n if (attachedContent.nextSibling?.parentNode === attachedContent.parent) {\n attachedContent.parent.insertBefore(\n attachedContent.element,\n attachedContent.nextSibling\n );\n } else {\n attachedContent.parent.appendChild(attachedContent.element);\n }\n this.attachedContent = undefined;\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class NsOverlayService {\n private readonly document = inject(DOCUMENT);\n private readonly platformId = inject(PLATFORM_ID);\n private readonly browser = isPlatformBrowser(this.platformId);\n private readonly overlays: NsOverlayRef[] = [];\n private readonly inertStates = new Map<HTMLElement, NsInertState>();\n private readonly overlayStackStates = new Map<HTMLElement, NsInertState>();\n private scrollOverflow?: string;\n private resizeObserver?: ResizeObserver;\n\n open(config: NsOverlayConfig = {}): NsOverlayRef {\n if (!this.browser) {\n throw new Error('NsOverlayService requires a browser document.');\n }\n const portal = this.document.createElement('div');\n portal.className = 'ns-overlay__portal';\n portal.tabIndex = -1;\n portal.inert = false;\n portal.style.position = 'fixed';\n portal.style.zIndex = `calc(var(--ns-component-overlay-layer) + ${this.overlays.length})`;\n portal.style.borderStyle = 'solid';\n portal.style.borderWidth = 'var(--ns-component-overlay-border-width)';\n portal.style.borderColor = 'var(--ns-component-overlay-border-color)';\n portal.style.borderRadius = 'var(--ns-component-overlay-radius)';\n portal.style.background = 'var(--ns-component-overlay-background)';\n portal.style.boxShadow = 'var(--ns-component-overlay-shadow)';\n this.document.body.appendChild(portal);\n this.overlayStackStates.set(portal, {\n inert: portal.inert,\n ariaHidden: portal.getAttribute('aria-hidden')\n });\n\n const ref = new NsOverlayRef(\n portal,\n {\n origin: config.origin,\n matchOriginWidth: config.matchOriginWidth ?? false,\n placement: config.placement ?? 'bottom-start',\n offset: config.offset ?? VIEWPORT_GUTTER,\n closeOnEscape: config.closeOnEscape ?? true,\n closeOnOutsidePointer: config.closeOnOutsidePointer ?? true,\n trapFocus: config.trapFocus ?? false,\n restoreFocus: config.restoreFocus ?? true,\n inert: config.inert ?? false,\n lockScroll: config.lockScroll ?? false\n },\n this.document,\n (overlay, reason) => this.close(overlay, reason)\n );\n this.overlays.push(ref);\n this.syncDocumentState();\n ref.updatePosition();\n ref.focusInitial();\n return ref;\n }\n\n closeAll(): void {\n [...this.overlays].reverse().forEach((overlay) => overlay.close());\n }\n\n private close(ref: NsOverlayRef, reason: NsOverlayCloseReason): void {\n const index = this.overlays.indexOf(ref);\n if (index < 0) {\n return;\n }\n this.overlays.splice(index, 1);\n ref.finalizeClose(reason);\n this.overlayStackStates.delete(ref.portal);\n this.syncDocumentState();\n ref.restoreFocus();\n }\n\n private syncDocumentState(): void {\n const top = this.overlays.at(-1);\n if (!top) {\n this.removeDocumentListeners();\n this.restoreDocumentState();\n return;\n }\n this.addDocumentListeners();\n this.syncOverlayStackState(top);\n this.updatePositions();\n if (this.overlays.some((overlay) => overlay.config.lockScroll)) {\n this.lockScroll();\n } else {\n this.unlockScroll();\n }\n if (this.overlays.some((overlay) => overlay.config.inert)) {\n this.applyInert();\n } else {\n this.restoreInert();\n }\n }\n\n private addDocumentListeners(): void {\n const view = this.document.defaultView;\n this.document.addEventListener('keydown', this.handleKeydown);\n this.document.addEventListener('pointerdown', this.handlePointerDown, true);\n this.document.addEventListener('scroll', this.updatePositions, true);\n view?.addEventListener('resize', this.updatePositions);\n if (!this.resizeObserver && view?.ResizeObserver) {\n this.resizeObserver = new view.ResizeObserver(this.updatePositions);\n }\n if (this.resizeObserver) {\n for (const overlay of this.overlays) {\n this.resizeObserver.observe(overlay.portal);\n if (overlay.config.origin) {\n this.resizeObserver.observe(overlay.config.origin);\n }\n }\n }\n }\n\n private removeDocumentListeners(): void {\n const view = this.document.defaultView;\n this.document.removeEventListener('keydown', this.handleKeydown);\n this.document.removeEventListener(\n 'pointerdown',\n this.handlePointerDown,\n true\n );\n this.document.removeEventListener('scroll', this.updatePositions, true);\n view?.removeEventListener('resize', this.updatePositions);\n this.resizeObserver?.disconnect();\n this.resizeObserver = undefined;\n }\n\n private readonly handleKeydown = (event: KeyboardEvent): void => {\n const top = this.overlays.at(-1);\n if (!top) {\n return;\n }\n if (event.key === 'Escape' && top.config.closeOnEscape) {\n event.preventDefault();\n top.close('escape');\n return;\n }\n if (event.key !== 'Tab' || !top.config.trapFocus) {\n return;\n }\n const focusable = getNsFocusableElements(top.portal);\n if (!focusable.length) {\n event.preventDefault();\n top.portal.focus();\n return;\n }\n const activeElement = this.document.activeElement;\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n if (\n event.shiftKey &&\n (activeElement === first || !top.portal.contains(activeElement))\n ) {\n event.preventDefault();\n focusNsLast(top.portal);\n } else if (!event.shiftKey && activeElement === last) {\n event.preventDefault();\n focusNsFirst(top.portal);\n }\n };\n\n private readonly handlePointerDown = (event: PointerEvent): void => {\n const top = this.overlays.at(-1);\n if (\n !top ||\n !top.config.closeOnOutsidePointer ||\n isNsEventInside(event, top.portal, top.config.origin)\n ) {\n return;\n }\n top.close('dismiss');\n };\n\n private readonly updatePositions = (): void => {\n for (const overlay of this.overlays) {\n overlay.updatePosition();\n }\n };\n\n private lockScroll(): void {\n if (this.scrollOverflow !== undefined) {\n return;\n }\n this.scrollOverflow = this.document.body.style.overflow;\n this.document.body.style.overflow = 'hidden';\n }\n\n private unlockScroll(): void {\n if (this.scrollOverflow === undefined) {\n return;\n }\n this.document.body.style.overflow = this.scrollOverflow;\n this.scrollOverflow = undefined;\n }\n\n private applyInert(): void {\n const children = Array.from(this.document.body.children).filter(\n (child): child is HTMLElement => child instanceof HTMLElement\n );\n for (const child of children) {\n if (child.classList.contains('ns-overlay__portal')) {\n continue;\n }\n if (!this.inertStates.has(child)) {\n this.inertStates.set(child, {\n inert: child.inert,\n ariaHidden: child.getAttribute('aria-hidden')\n });\n }\n child.inert = true;\n child.setAttribute('aria-hidden', 'true');\n }\n }\n\n private syncOverlayStackState(top: NsOverlayRef): void {\n for (const overlay of this.overlays) {\n const portal = overlay.portal;\n const state = this.overlayStackStates.get(portal);\n if (!state) {\n continue;\n }\n if (overlay === top) {\n portal.inert = state.inert;\n if (state.ariaHidden === null) {\n portal.removeAttribute('aria-hidden');\n } else {\n portal.setAttribute('aria-hidden', state.ariaHidden);\n }\n } else {\n portal.inert = true;\n portal.setAttribute('aria-hidden', 'true');\n }\n }\n }\n\n private restoreInert(): void {\n for (const [element, state] of this.inertStates) {\n element.inert = state.inert;\n if (state.ariaHidden === null) {\n element.removeAttribute('aria-hidden');\n } else {\n element.setAttribute('aria-hidden', state.ariaHidden);\n }\n }\n this.inertStates.clear();\n }\n\n private restoreDocumentState(): void {\n this.unlockScroll();\n this.restoreInert();\n }\n}\n\nexport function getNsOverlayPosition(\n origin: DOMRect,\n overlay: DOMRect,\n placement: NsPlacement,\n offset: number,\n viewportWidth: number,\n viewportHeight: number\n): NsOverlayPosition {\n const candidate = getCandidatePosition(origin, overlay, placement, offset);\n const flippedPlacement = getFlippedPlacement(placement);\n const flippedCandidate = getCandidatePosition(\n origin,\n overlay,\n flippedPlacement,\n offset\n );\n const selected = hasPrimaryAxisOverflow(\n candidate,\n placement,\n overlay,\n viewportWidth,\n viewportHeight\n )\n ? flippedCandidate\n : candidate;\n return {\n top: clamp(\n selected.top,\n VIEWPORT_GUTTER,\n viewportHeight - overlay.height - VIEWPORT_GUTTER\n ),\n left: clamp(\n selected.left,\n VIEWPORT_GUTTER,\n viewportWidth - overlay.width - VIEWPORT_GUTTER\n ),\n placement: selected === flippedCandidate ? flippedPlacement : placement\n };\n}\n\nfunction getCandidatePosition(\n origin: DOMRect,\n overlay: DOMRect,\n placement: NsPlacement,\n offset: number\n): NsOverlayPosition {\n const [side, alignment] = placement.split('-') as [\n 'top' | 'right' | 'bottom' | 'left',\n 'start' | 'end' | undefined\n ];\n let top = origin.bottom + offset;\n let left = origin.left;\n\n if (side === 'top') {\n top = origin.top - overlay.height - offset;\n } else if (side === 'right') {\n top = origin.top;\n left = origin.right + offset;\n } else if (side === 'left') {\n top = origin.top;\n left = origin.left - overlay.width - offset;\n }\n if (side === 'top' || side === 'bottom') {\n if (alignment === 'end') {\n left = origin.right - overlay.width;\n } else if (!alignment) {\n left = origin.left + (origin.width - overlay.width) / 2;\n }\n } else if (alignment === 'end') {\n top = origin.bottom - overlay.height;\n } else if (!alignment) {\n top = origin.top + (origin.height - overlay.height) / 2;\n }\n return { top, left, placement };\n}\n\nfunction getFlippedPlacement(placement: NsPlacement): NsPlacement {\n const [side, alignment] = placement.split('-') as [\n string,\n string | undefined\n ];\n const opposite: Record<string, string> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right'\n };\n return `${opposite[side]}${alignment ? `-${alignment}` : ''}` as NsPlacement;\n}\n\nfunction hasPrimaryAxisOverflow(\n position: NsOverlayPosition,\n placement: NsPlacement,\n overlay: DOMRect,\n viewportWidth: number,\n viewportHeight: number\n): boolean {\n return placement.startsWith('top') || placement.startsWith('bottom')\n ? position.top < VIEWPORT_GUTTER ||\n position.top + overlay.height > viewportHeight - VIEWPORT_GUTTER\n : position.left < VIEWPORT_GUTTER ||\n position.left + overlay.width > viewportWidth - VIEWPORT_GUTTER;\n}\n\nfunction clamp(value: number, min: number, max: number): number {\n return Math.max(min, Math.max(min, max) < min ? min : Math.min(value, max));\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n LOCALE_ID,\n computed,\n effect,\n inject,\n input,\n output\n} from '@angular/core';\nimport {\n DateFormatter,\n DateValue,\n DayOfWeek,\n endOfMonth,\n getDayOfWeek,\n isToday,\n startOfMonth,\n startOfWeek\n} from '@internationalized/date';\nimport { NsCollectionController } from '../../../collection';\nimport { NsDateRangeValue } from '../../../../types';\n\ntype CalendarDay = {\n readonly date: DateValue;\n readonly key: string;\n readonly outside: boolean;\n readonly disabled: boolean;\n readonly current: boolean;\n readonly selected: boolean;\n readonly inRange: boolean;\n readonly label: string;\n};\n\n@Component({\n selector: 'ns-date-picker-calendar',\n standalone: true,\n imports: [CommonModule],\n template: `\n <table\n class=\"ns-date-picker__month\"\n role=\"grid\"\n [attr.aria-label]=\"monthLabel()\"\n (keydown)=\"onKeydown($event)\"\n >\n <thead>\n <tr role=\"row\">\n @for (weekday of weekdays(); track weekday.label) {\n <th\n class=\"ns-date-picker__weekday\"\n scope=\"col\"\n [attr.aria-label]=\"weekday.fullLabel\"\n >\n {{ weekday.label }}\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (week of days(); track week[0]?.key) {\n <tr role=\"row\">\n @for (day of week; track day.key) {\n @if (day.outside) {\n <td class=\"ns-date-picker__cell\" aria-hidden=\"true\"></td>\n } @else {\n <td\n class=\"ns-date-picker__cell\"\n role=\"gridcell\"\n [class.ns-date-picker__cell--selected]=\"day.selected\"\n [class.ns-date-picker__cell--range]=\"day.inRange\"\n [class.ns-date-picker__cell--disabled]=\"day.disabled\"\n [class.ns-date-picker__cell--current]=\"day.current\"\n [attr.data-state]=\"\n day.disabled\n ? 'unavailable'\n : day.selected\n ? 'selected'\n : day.inRange\n ? 'range'\n : 'available'\n \"\n [attr.aria-selected]=\"day.selected\"\n [attr.aria-current]=\"day.current ? 'date' : null\"\n [attr.aria-disabled]=\"day.disabled\"\n >\n <button\n class=\"ns-date-picker__day\"\n type=\"button\"\n [attr.data-date]=\"day.key\"\n [attr.aria-label]=\"day.label\"\n [attr.aria-selected]=\"day.selected\"\n [attr.aria-current]=\"day.current ? 'date' : null\"\n [attr.aria-disabled]=\"day.disabled\"\n [attr.tabindex]=\"isFocused(day.date) ? 0 : -1\"\n [disabled]=\"day.disabled\"\n (focus)=\"dateFocused.emit(day.date)\"\n (click)=\"select(day)\"\n >\n {{ day.date.day }}\n </button>\n </td>\n }\n }\n </tr>\n }\n </tbody>\n </table>\n `,\n styleUrl: './date-picker-calendar.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsDatePickerCalendarComponent {\n readonly month = input.required<DateValue>();\n readonly selected = input<DateValue | null>(null);\n readonly range = input<NsDateRangeValue<DateValue> | null>(null);\n readonly focused = input<DateValue | null>(null);\n readonly minDate = input<DateValue | null>(null);\n readonly maxDate = input<DateValue | null>(null);\n readonly unavailableDates = input<readonly DateValue[]>([]);\n readonly firstDayOfWeek = input<DayOfWeek>('sun');\n readonly dateSelected = output<DateValue>();\n readonly dateFocused = output<DateValue>();\n\n private readonly locale = inject(LOCALE_ID);\n private readonly collection = new NsCollectionController<DateValue, string>(\n 'single'\n );\n private readonly weekdayFormatter = new DateFormatter(this.locale, {\n weekday: 'short',\n timeZone: 'UTC'\n });\n private readonly weekdayLongFormatter = new DateFormatter(this.locale, {\n weekday: 'long',\n timeZone: 'UTC'\n });\n private readonly dayFormatter = new DateFormatter(this.locale, {\n weekday: 'long',\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n timeZone: 'UTC'\n });\n private readonly monthFormatter = new DateFormatter(this.locale, {\n month: 'long',\n year: 'numeric',\n timeZone: 'UTC'\n });\n\n readonly monthLabel = computed(() =>\n this.format(this.monthFormatter, this.month())\n );\n readonly weekdays = computed(() => {\n const start = startOfWeek(this.month(), this.locale, this.firstDayOfWeek());\n return Array.from({ length: 7 }, (_, index) => {\n const date = start.add({ days: index });\n return {\n label: this.format(this.weekdayFormatter, date),\n fullLabel: this.format(this.weekdayLongFormatter, date)\n };\n });\n });\n readonly days = computed(() => this.buildDays());\n\n constructor() {\n effect(() => {\n this.collection.setItems(\n this.days()\n .flat()\n .map((day) => ({\n key: day.key,\n value: day.date,\n label: day.label,\n disabled: day.disabled\n }))\n );\n const selected = this.selected();\n if (selected) {\n this.collection.select(selected.toString());\n }\n });\n }\n\n onKeydown(event: KeyboardEvent): void {\n const focused =\n this.focused() || this.selected() || this.firstAvailableDay();\n if (!focused) {\n return;\n }\n const delta = this.keyDelta(event.key, focused);\n if (!delta) {\n return;\n }\n event.preventDefault();\n const next = focused.add(delta);\n if (event.key === 'PageUp' || event.key === 'PageDown') {\n this.dateFocused.emit(next);\n return;\n }\n this.dateFocused.emit(this.closestAvailable(next, delta.days || 1));\n }\n\n isFocused(date: DateValue): boolean {\n const focused = this.focused();\n return !!focused && focused.compare(date) === 0;\n }\n\n select(day: CalendarDay): void {\n if (!day.disabled) {\n this.collection.select(day.key);\n this.dateSelected.emit(day.date);\n }\n }\n\n private buildDays(): readonly CalendarDay[][] {\n const firstMonthDay = startOfMonth(this.month());\n const gridStart = startOfWeek(\n firstMonthDay,\n this.locale,\n this.firstDayOfWeek()\n );\n const leadingDays = getDayOfWeek(\n firstMonthDay,\n this.locale,\n this.firstDayOfWeek()\n );\n const trailingDays =\n 6 -\n getDayOfWeek(\n endOfMonth(firstMonthDay),\n this.locale,\n this.firstDayOfWeek()\n );\n const totalDays = leadingDays + this.daysInMonth() + trailingDays;\n const weeks = Array.from({ length: totalDays / 7 }, (_, week) =>\n Array.from({ length: 7 }, (_, day) =>\n this.toCalendarDay(gridStart.add({ days: week * 7 + day }))\n )\n );\n const firstBlankDay = gridStart.add({ days: totalDays });\n\n while (weeks.length < 6) {\n weeks.push(\n Array.from({ length: 7 }, (_, day) =>\n this.toCalendarDay(\n firstBlankDay.add({ days: weeks.length * 7 + day })\n )\n )\n );\n }\n\n return weeks;\n }\n\n private daysInMonth(): number {\n return this.month().add({ months: 1 }).subtract({ days: 1 }).day;\n }\n\n private toCalendarDay(date: DateValue): CalendarDay {\n const visibleMonth = this.month();\n const range = this.range();\n const selected = this.selected();\n const isStart = !!range?.start && range.start.compare(date) === 0;\n const isEnd = !!range?.end && range.end.compare(date) === 0;\n return {\n date,\n key: date.toString(),\n outside:\n date.month !== visibleMonth.month || date.year !== visibleMonth.year,\n disabled: !this.isAvailable(date),\n current: isToday(date, 'UTC'),\n selected:\n (!!selected && selected.compare(date) === 0) || isStart || isEnd,\n inRange:\n !!range?.start &&\n !!range.end &&\n date.compare(range.start) >= 0 &&\n date.compare(range.end) <= 0,\n label: this.format(this.dayFormatter, date)\n };\n }\n\n private isAvailable(date: DateValue): boolean {\n const month = this.month();\n const minDate = this.minDate();\n const maxDate = this.maxDate();\n return (\n date.month === month.month &&\n date.year === month.year &&\n (!minDate || date.compare(minDate) >= 0) &&\n (!maxDate || date.compare(maxDate) <= 0) &&\n !this.unavailableDates().some(\n (unavailable) => unavailable.compare(date) === 0\n )\n );\n }\n\n private firstAvailableDay(): DateValue | null {\n return (\n this.days()\n .flat()\n .find((day) => !day.disabled)?.date || null\n );\n }\n\n private closestAvailable(date: DateValue, direction: number): DateValue {\n let candidate = date;\n for (let attempt = 0; attempt < 366; attempt += 1) {\n if (this.isAvailable(candidate)) {\n return candidate;\n }\n candidate = candidate.add({ days: direction });\n }\n return date;\n }\n\n private keyDelta(\n key: string,\n focused: DateValue\n ): { days?: number; months?: number } | null {\n switch (key) {\n case 'ArrowLeft':\n return { days: -1 };\n case 'ArrowRight':\n return { days: 1 };\n case 'ArrowUp':\n return { days: -7 };\n case 'ArrowDown':\n return { days: 7 };\n case 'Home':\n return {\n days: -getDayOfWeek(focused, this.locale, this.firstDayOfWeek())\n };\n case 'End':\n return {\n days: 6 - getDayOfWeek(focused, this.locale, this.firstDayOfWeek())\n };\n case 'PageUp':\n return { months: -1 };\n case 'PageDown':\n return { months: 1 };\n default:\n return null;\n }\n }\n\n private format(formatter: DateFormatter, date: DateValue): string {\n return formatter.format(date.toDate('UTC'));\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n LOCALE_ID,\n ViewChild,\n computed,\n inject,\n input,\n signal\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n DateFormatter,\n DateValue,\n DayOfWeek,\n today\n} from '@internationalized/date';\nimport { NsIconsComponent } from '@ng-solid/icons';\nimport { NsOverlayRef, NsOverlayService } from '../../../overlay';\nimport { NsValueAccessor } from '../../models/value-accessor';\nimport { NsDatePickerCalendarComponent } from './date-picker-calendar.component';\n\ntype PickerView = 'calendar' | 'months' | 'years';\n\ntype PickerOptionState = {\n readonly current: boolean;\n readonly selected: boolean;\n readonly visible: boolean;\n readonly focused: boolean;\n};\n\n@Component({\n selector: 'ns-date-picker',\n standalone: true,\n imports: [NsIconsComponent, NsDatePickerCalendarComponent],\n template: `\n @if (label()) {\n <label class=\"ns-date-picker__label\" [attr.for]=\"controlId()\">{{\n label()\n }}</label>\n }\n <button\n #trigger\n class=\"ns-date-picker__control\"\n type=\"button\"\n [attr.id]=\"controlId()\"\n [attr.name]=\"name() || null\"\n [attr.aria-label]=\"ariaLabel() || label() || placeholder()\"\n [attr.aria-describedby]=\"describedBy()\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-controls]=\"calendarId\"\n [attr.aria-invalid]=\"invalid() || null\"\n [attr.aria-required]=\"required() || null\"\n [disabled]=\"disabled() || readonly()\"\n (click)=\"toggle()\"\n (blur)=\"onTouched()\"\n >\n <ns-icon name=\"calendar-plus\" size=\"20\" aria-hidden=\"true\" />\n <span class=\"ns-date-picker__value\">{{ displayValue() }}</span>\n </button>\n\n <section\n #calendar\n class=\"ns-date-picker__menu\"\n [attr.id]=\"calendarId\"\n role=\"dialog\"\n [attr.aria-label]=\"calendarLabel\"\n [hidden]=\"!isOpen()\"\n >\n <header class=\"ns-date-picker__header\">\n <h2 class=\"ns-date-picker__title\">Seleccionar fecha</h2>\n <div class=\"ns-date-picker__selectors\">\n <button\n class=\"ns-date-picker__selector\"\n type=\"button\"\n aria-label=\"Seleccionar mes\"\n [attr.aria-expanded]=\"isPickerView('months')\"\n [attr.aria-controls]=\"calendarId + '-months'\"\n [class.ns-date-picker__selector--active]=\"isPickerView('months')\"\n (click)=\"openMonthPicker()\"\n >\n <span>{{ monthOnlyLabel() }}</span>\n <ns-icon name=\"chevron-down\" size=\"18\" aria-hidden=\"true\" />\n </button>\n <button\n class=\"ns-date-picker__selector\"\n type=\"button\"\n aria-label=\"Seleccionar año\"\n [attr.aria-expanded]=\"isPickerView('years')\"\n [attr.aria-controls]=\"calendarId + '-years'\"\n [class.ns-date-picker__selector--active]=\"isPickerView('years')\"\n (click)=\"openYearPicker()\"\n >\n <span>{{ visibleMonth().year }}</span>\n <ns-icon name=\"chevron-down\" size=\"18\" aria-hidden=\"true\" />\n </button>\n </div>\n </header>\n @if (isPickerView('calendar')) {\n <ns-date-picker-calendar\n [month]=\"visibleMonth()\"\n [selected]=\"value()\"\n [focused]=\"focusedDate()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [unavailableDates]=\"unavailableDates()\"\n [firstDayOfWeek]=\"firstDayOfWeek()\"\n (dateSelected)=\"select($event)\"\n (dateFocused)=\"focusDate($event)\"\n ></ns-date-picker-calendar>\n } @else if (isPickerView('months')) {\n <div\n class=\"ns-date-picker__month-grid\"\n [attr.id]=\"calendarId + '-months'\"\n aria-label=\"Meses\"\n >\n @for (month of monthOptions(); track month.value) {\n <button\n class=\"ns-date-picker__picker-option\"\n type=\"button\"\n [disabled]=\"month.disabled\"\n [attr.aria-current]=\"month.current ? 'true' : null\"\n [attr.aria-pressed]=\"month.selected ? 'true' : null\"\n [class.ns-date-picker__picker-option--current]=\"month.current\"\n [class.ns-date-picker__picker-option--selected]=\"month.selected\"\n [class.ns-date-picker__picker-option--visible]=\"month.visible\"\n (click)=\"selectMonth(month.value)\"\n >\n {{ month.label }}\n </button>\n }\n </div>\n } @else {\n <div class=\"ns-date-picker__years\" [attr.id]=\"calendarId + '-years'\">\n <div class=\"ns-date-picker__year-pagination\">\n <button\n class=\"ns-date-picker__year-navigation\"\n type=\"button\"\n aria-label=\"Página de años anterior\"\n [disabled]=\"!canGoToPreviousYearPage()\"\n (click)=\"moveYearPage(-1)\"\n >\n <ns-icon name=\"chevron-left\" size=\"18\" aria-hidden=\"true\" />\n </button>\n <span class=\"ns-date-picker__year-range\">{{\n yearPageLabel()\n }}</span>\n <button\n class=\"ns-date-picker__year-navigation\"\n type=\"button\"\n aria-label=\"Página de años siguiente\"\n [disabled]=\"!canGoToNextYearPage()\"\n (click)=\"moveYearPage(1)\"\n >\n <ns-icon name=\"chevron-right\" size=\"18\" aria-hidden=\"true\" />\n </button>\n </div>\n <div class=\"ns-date-picker__year-grid\" aria-label=\"Años\">\n @for (year of yearPageOptionStates(); track $index) {\n <button\n class=\"ns-date-picker__picker-option\"\n type=\"button\"\n [attr.aria-current]=\"year.current ? 'true' : null\"\n [attr.aria-pressed]=\"year.selected ? 'true' : null\"\n [class.ns-date-picker__picker-option--current]=\"year.current\"\n [class.ns-date-picker__picker-option--selected]=\"year.selected\"\n [class.ns-date-picker__picker-option--visible]=\"year.visible\"\n (click)=\"selectYear(year.value)\"\n >\n {{ year.value }}\n </button>\n }\n </div>\n </div>\n }\n <p class=\"ns-date-picker__announcement\" aria-live=\"polite\">\n {{ calendarAnnouncement() }}\n </p>\n </section>\n `,\n styleUrl: './date-picker.component.scss',\n host: {\n '[class.ns-date-picker]': 'true',\n '[class.ns-date-picker--open]': 'isOpen()',\n '[attr.data-state]': \"isOpen() ? 'open' : 'closed'\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NsDatePickerComponent,\n multi: true\n }\n ]\n})\nexport class NsDatePickerComponent extends NsValueAccessor<DateValue | null> {\n readonly minDate = input<DateValue | null>(null);\n readonly maxDate = input<DateValue | null>(null);\n readonly unavailableDates = input<readonly DateValue[]>([]);\n readonly firstDayOfWeek = input<DayOfWeek>('sun');\n\n @ViewChild('calendar') private calendar?: ElementRef<HTMLElement>;\n @ViewChild('trigger') private trigger?: ElementRef<HTMLElement>;\n\n readonly calendarId = `${this.id}-calendar`;\n readonly calendarLabel = 'Date picker';\n readonly isOpen = signal(false);\n readonly focusedDate = signal<DateValue | null>(null);\n readonly visibleMonth = signal<DateValue>(today('UTC'));\n readonly yearAnchor = signal(today('UTC').year);\n private readonly pickerView = signal<PickerView>('calendar');\n private readonly yearPageStart = signal(today('UTC').year);\n\n private readonly overlay = inject(NsOverlayService);\n private readonly changeDetector = inject(ChangeDetectorRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly locale = inject(LOCALE_ID);\n private readonly monthFormatter = new DateFormatter(this.locale, {\n month: 'long',\n year: 'numeric',\n timeZone: 'UTC'\n });\n private readonly monthOnlyFormatter = new DateFormatter(this.locale, {\n month: 'long',\n timeZone: 'UTC'\n });\n private overlayRef: NsOverlayRef | null = null;\n\n readonly displayValue = computed(() => {\n const value = this.value();\n if (!value) {\n return this.placeholder();\n }\n return new DateFormatter(this.locale, {\n day: 'numeric',\n month: 'short',\n year: 'numeric',\n timeZone: 'UTC'\n }).format(value.toDate('UTC'));\n });\n readonly monthLabel = computed(() =>\n this.monthFormatter.format(this.visibleMonth().toDate('UTC'))\n );\n readonly monthOnlyLabel = computed(() =>\n this.monthOnlyFormatter.format(this.visibleMonth().toDate('UTC'))\n );\n readonly monthOptions = computed(() =>\n Array.from({ length: 12 }, (_, index) => {\n const value = index + 1;\n const month = this.visibleMonth().set({ month: value, day: 1 });\n return {\n value,\n label: this.monthOnlyFormatter.format(month.toDate('UTC')),\n disabled: !this.isMonthAvailable(month),\n ...this.monthOptionState(month)\n };\n })\n );\n readonly yearOptions = computed(() => {\n const minYear = this.minDate()?.year;\n const maxYear = this.maxDate()?.year;\n const visibleYear = this.visibleMonth().year;\n const selectedYear = this.value()?.year;\n const anchor = this.yearAnchor();\n let start = anchor - 100;\n let end = anchor + 100;\n const earliestRequired = Math.min(visibleYear, selectedYear ?? visibleYear);\n const latestRequired = Math.max(visibleYear, selectedYear ?? visibleYear);\n\n if (earliestRequired < start) {\n start = earliestRequired;\n end = start + 200;\n }\n if (latestRequired > end) {\n end = latestRequired;\n start = end - 200;\n }\n start = Math.max(start, minYear ?? start);\n end = Math.min(end, maxYear ?? end);\n return Array.from(\n { length: Math.max(0, end - start + 1) },\n (_, index) => start + index\n );\n });\n readonly yearPageOptions = computed(() => {\n const years = this.yearOptions();\n const start = this.yearPageStart();\n const index = Math.max(0, years.indexOf(start));\n return years.slice(index, index + 20);\n });\n readonly yearPageOptionStates = computed(() =>\n this.yearPageOptions().map((year) => ({\n value: year,\n ...this.yearOptionState(year)\n }))\n );\n readonly yearPageLabel = computed(() => {\n const years = this.yearPageOptions();\n if (!years.length) {\n return '';\n }\n return `${years[0]} - ${years[years.length - 1]}`;\n });\n readonly calendarAnnouncement = computed(() => {\n if (this.pickerView() === 'months') {\n return `Seleccionar mes de ${this.visibleMonth().year}`;\n }\n if (this.pickerView() === 'years') {\n return `Seleccionar año, ${this.yearPageLabel()}`;\n }\n return this.monthLabel();\n });\n\n constructor() {\n super();\n this.destroyRef.onDestroy(() => this.overlayRef?.close('programmatic'));\n }\n\n override writeValue(value: DateValue | null): void {\n this.value.set(value || null);\n if (value) {\n this.visibleMonth.set(value.set({ day: 1 }));\n this.focusedDate.set(value);\n }\n }\n\n toggle(): void {\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n }\n\n navigate(months: number): void {\n if (!Number.isInteger(months) || months === 0) {\n return;\n }\n const target = this.visibleMonth().add({ months }).set({ day: 1 });\n this.updateVisibleMonth({ year: target.year, month: target.month });\n }\n\n isPickerView(view: PickerView): boolean {\n return this.pickerView() === view;\n }\n\n openMonthPicker(): void {\n this.pickerView.set('months');\n }\n\n openYearPicker(): void {\n this.yearPageStart.set(\n this.pageStartForYear(this.visibleMonth().year, this.yearOptions())\n );\n this.pickerView.set('years');\n }\n\n selectMonth(month: number): void {\n if (!Number.isInteger(month) || month < 1 || month > 12) {\n return;\n }\n this.updateVisibleMonth({ month });\n this.pickerView.set('calendar');\n }\n\n selectYear(year: number): void {\n if (!this.yearOptions().includes(year)) {\n return;\n }\n this.updateVisibleMonth({ year });\n this.pickerView.set('calendar');\n }\n\n canGoToPreviousYearPage(): boolean {\n const years = this.yearOptions();\n return years.indexOf(this.yearPageOptions()[0]) > 0;\n }\n\n canGoToNextYearPage(): boolean {\n const years = this.yearOptions();\n const current = years.indexOf(this.yearPageOptions()[0]);\n return current >= 0 && current + 20 < years.length;\n }\n\n moveYearPage(direction: -1 | 1): void {\n const years = this.yearOptions();\n const current = Math.max(0, years.indexOf(this.yearPageOptions()[0]));\n const next = Math.min(\n Math.max(0, current + direction * 20),\n Math.max(0, years.length - 20)\n );\n if (years[next] !== undefined) {\n this.yearPageStart.set(years[next]);\n }\n }\n\n select(date: DateValue): void {\n if (!this.isSelectable(date)) {\n return;\n }\n this.value.set(date);\n this.onChange(date);\n this.onTouched();\n this.close();\n }\n\n focusDate(date: DateValue): void {\n if (\n date.month !== this.visibleMonth().month ||\n date.year !== this.visibleMonth().year\n ) {\n this.visibleMonth.set(date.set({ day: 1 }));\n }\n this.focusedDate.set(date);\n queueMicrotask(() => {\n const button = this.calendar?.nativeElement.querySelector<HTMLElement>(\n `[data-date=\"${date.toString()}\"]`\n );\n button?.focus();\n });\n }\n\n private open(): void {\n const trigger = this.trigger?.nativeElement;\n const calendar = this.calendar?.nativeElement;\n if (!trigger || !calendar || this.disabled() || this.readonly()) {\n return;\n }\n const selected = this.value();\n const focus =\n selected && this.isSelectable(selected)\n ? selected\n : this.firstSelectableDate();\n if (!focus) {\n return;\n }\n this.isOpen.set(true);\n this.changeDetector.detectChanges();\n this.focusedDate.set(focus);\n this.visibleMonth.set(focus.set({ day: 1 }));\n this.yearAnchor.set(focus.year);\n this.pickerView.set('calendar');\n this.overlayRef = this.overlay.open({\n origin: trigger,\n matchOriginWidth: true,\n placement: 'bottom-start',\n closeOnEscape: true,\n closeOnOutsidePointer: true,\n restoreFocus: true\n });\n this.overlayRef.attach(calendar);\n this.overlayRef.portal.style.border = '0';\n this.overlayRef.portal.style.borderRadius = '0';\n this.overlayRef.portal.style.background = 'transparent';\n this.overlayRef.portal.style.boxShadow = 'none';\n this.overlayRef.onClose(() => {\n this.overlayRef = null;\n this.isOpen.set(false);\n this.pickerView.set('calendar');\n this.changeDetector.markForCheck();\n });\n this.focusDate(focus);\n }\n\n private close(): void {\n this.overlayRef?.close('programmatic');\n }\n\n private firstSelectableDate(): DateValue | null {\n let candidate = this.minDate() || today('UTC');\n const maxDate = this.maxDate();\n const attempts = maxDate\n ? Number.POSITIVE_INFINITY\n : this.unavailableDates().length + 1;\n\n for (\n let attempt = 0;\n attempt < attempts && (!maxDate || candidate.compare(maxDate) <= 0);\n attempt += 1\n ) {\n if (this.isSelectable(candidate)) {\n return candidate;\n }\n candidate = candidate.add({ days: 1 });\n }\n\n return null;\n }\n\n private isSelectable(date: DateValue): boolean {\n const minDate = this.minDate();\n const maxDate = this.maxDate();\n return (\n (!minDate || date.compare(minDate) >= 0) &&\n (!maxDate || date.compare(maxDate) <= 0) &&\n !this.unavailableDates().some(\n (unavailable) => unavailable.compare(date) === 0\n )\n );\n }\n\n private updateVisibleMonth(change: { month?: number; year?: number }): void {\n const focused = this.focusedDate() || this.visibleMonth();\n const visibleMonth = this.visibleMonth().set({ ...change, day: 1 });\n if (!this.isMonthAvailable(visibleMonth)) {\n return;\n }\n const nextFocus = focused.set({\n ...change,\n day: Math.min(focused.day, this.daysInMonth(visibleMonth))\n });\n this.visibleMonth.set(visibleMonth);\n this.focusedDate.set(nextFocus);\n queueMicrotask(() => {\n const button = this.calendar?.nativeElement.querySelector<HTMLElement>(\n `[data-date=\"${nextFocus.toString()}\"]`\n );\n button?.focus();\n });\n }\n\n private isMonthAvailable(month: DateValue): boolean {\n const monthEnd = month.add({ months: 1 }).subtract({ days: 1 });\n const minDate = this.minDate();\n const maxDate = this.maxDate();\n return (\n (!minDate || monthEnd.compare(minDate) >= 0) &&\n (!maxDate || month.compare(maxDate) <= 0)\n );\n }\n\n private daysInMonth(month: DateValue): number {\n return month.add({ months: 1 }).subtract({ days: 1 }).day;\n }\n\n private pageStartForYear(year: number, years: readonly number[]): number {\n if (!years.length) {\n return year;\n }\n const index = Math.max(0, years.indexOf(year));\n const start = Math.min(\n Math.max(0, index - 9),\n Math.max(0, years.length - 20)\n );\n return years[start];\n }\n\n private monthOptionState(date: DateValue): PickerOptionState {\n const current = today('UTC');\n const selected = this.value();\n const visible = this.visibleMonth();\n const focused = this.focusedDate();\n return {\n current: this.isSameMonth(date, current),\n selected: !!selected && this.isSameMonth(date, selected),\n visible: this.isSameMonth(date, visible),\n focused: !!focused && this.isSameMonth(date, focused)\n };\n }\n\n private yearOptionState(year: number): PickerOptionState {\n const current = today('UTC');\n const selected = this.value();\n const visible = this.visibleMonth();\n const focused = this.focusedDate();\n return {\n current: current.year === year,\n selected: selected?.year === year,\n visible: visible.year === year,\n focused: focused?.year === year\n };\n }\n\n private isSameMonth(first: DateValue, second: DateValue): boolean {\n return first.year === second.year && first.month === second.month;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n LOCALE_ID,\n ViewChild,\n computed,\n inject,\n input,\n signal\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n DateFormatter,\n DateValue,\n DayOfWeek,\n today\n} from '@internationalized/date';\nimport { NsIconsComponent } from '@ng-solid/icons';\nimport { NsDateRangeValue } from '../../../../types';\nimport { NsOverlayRef, NsOverlayService } from '../../../overlay';\nimport { NsValueAccessor } from '../../models/value-accessor';\nimport { NsDatePickerCalendarComponent } from './date-picker-calendar.component';\n\n@Component({\n selector: 'ns-date-range-picker',\n standalone: true,\n imports: [NsIconsComponent, NsDatePickerCalendarComponent],\n template: `\n @if (label()) {\n <label class=\"ns-date-range-picker__label\" [attr.for]=\"controlId()\">{{\n label()\n }}</label>\n }\n <button\n #trigger\n class=\"ns-date-range-picker__control\"\n type=\"button\"\n [attr.id]=\"controlId()\"\n [attr.name]=\"name() || null\"\n [attr.aria-label]=\"ariaLabel() || label() || placeholder()\"\n [attr.aria-describedby]=\"describedBy()\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-controls]=\"calendarId\"\n [attr.aria-invalid]=\"invalid() || null\"\n [attr.aria-required]=\"required() || null\"\n [disabled]=\"disabled() || readonly()\"\n (click)=\"toggle()\"\n (blur)=\"onTouched()\"\n >\n <ns-icon name=\"calendar\" size=\"18\" aria-hidden=\"true\" />\n <span class=\"ns-date-range-picker__value\">{{ displayValue() }}</span>\n </button>\n\n <section\n #calendar\n class=\"ns-date-range-picker__menu\"\n [attr.id]=\"calendarId\"\n role=\"dialog\"\n [attr.aria-label]=\"calendarLabel\"\n [hidden]=\"!isOpen()\"\n >\n <header class=\"ns-date-range-picker__navigation\">\n <button\n class=\"ns-date-range-picker__navigation-button\"\n type=\"button\"\n aria-label=\"Previous month\"\n (click)=\"navigate(-1)\"\n >\n ‹\n </button>\n <span class=\"ns-date-range-picker__month-title\">{{\n monthLabel()\n }}</span>\n <button\n class=\"ns-date-range-picker__navigation-button\"\n type=\"button\"\n aria-label=\"Next month\"\n (click)=\"navigate(1)\"\n >\n ›\n </button>\n </header>\n <ns-date-picker-calendar\n [month]=\"visibleMonth()\"\n [range]=\"value()\"\n [focused]=\"focusedDate()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [unavailableDates]=\"unavailableDates()\"\n [firstDayOfWeek]=\"firstDayOfWeek()\"\n (dateSelected)=\"select($event)\"\n (dateFocused)=\"focusDate($event)\"\n ></ns-date-picker-calendar>\n </section>\n `,\n styleUrl: './date-range-picker.component.scss',\n host: {\n '[class.ns-date-range-picker]': 'true',\n '[class.ns-date-range-picker--open]': 'isOpen()',\n '[attr.data-state]': \"isOpen() ? 'open' : 'closed'\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NsDateRangePickerComponent,\n multi: true\n }\n ]\n})\nexport class NsDateRangePickerComponent extends NsValueAccessor<NsDateRangeValue<DateValue> | null> {\n readonly minDate = input<DateValue | null>(null);\n readonly maxDate = input<DateValue | null>(null);\n readonly unavailableDates = input<readonly DateValue[]>([]);\n readonly firstDayOfWeek = input<DayOfWeek>('sun');\n\n @ViewChild('calendar') private calendar?: ElementRef<HTMLElement>;\n @ViewChild('trigger') private trigger?: ElementRef<HTMLElement>;\n\n readonly calendarId = `${this.id}-calendar`;\n readonly calendarLabel = 'Date range picker';\n readonly isOpen = signal(false);\n readonly focusedDate = signal<DateValue | null>(null);\n readonly visibleMonth = signal<DateValue>(today('UTC'));\n\n private readonly overlay = inject(NsOverlayService);\n private readonly changeDetector = inject(ChangeDetectorRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly locale = inject(LOCALE_ID);\n private readonly monthFormatter = new DateFormatter(this.locale, {\n month: 'long',\n year: 'numeric',\n timeZone: 'UTC'\n });\n private readonly dateFormatter = new DateFormatter(this.locale, {\n day: 'numeric',\n month: 'short',\n year: 'numeric',\n timeZone: 'UTC'\n });\n private overlayRef: NsOverlayRef | null = null;\n\n readonly displayValue = computed(() => {\n const range = this.value();\n if (!range?.start) {\n return this.placeholder();\n }\n const start = this.formatDate(range.start);\n return range.end ? `${start} – ${this.formatDate(range.end)}` : start;\n });\n readonly monthLabel = computed(() =>\n this.monthFormatter.format(this.visibleMonth().toDate('UTC'))\n );\n\n constructor() {\n super();\n this.destroyRef.onDestroy(() => this.overlayRef?.close('programmatic'));\n }\n\n override writeValue(value: NsDateRangeValue<DateValue> | null): void {\n const normalized = this.normalizeRange(value);\n this.value.set(normalized);\n const focus = normalized?.start || normalized?.end;\n if (focus) {\n this.visibleMonth.set(focus.set({ day: 1 }));\n this.focusedDate.set(focus);\n }\n }\n\n toggle(): void {\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n }\n\n navigate(months: number): void {\n this.visibleMonth.update((month) => month.add({ months }).set({ day: 1 }));\n this.focusDate(this.visibleMonth());\n }\n\n select(date: DateValue): void {\n if (!this.isSelectable(date)) {\n return;\n }\n const range = this.value();\n if (!range?.start || range.end || date.compare(range.start) < 0) {\n this.value.set({ start: date, end: null });\n this.focusDate(date);\n return;\n }\n const next = { start: range.start, end: date };\n this.value.set(next);\n this.onChange(next);\n this.onTouched();\n this.close();\n }\n\n focusDate(date: DateValue): void {\n if (\n date.month !== this.visibleMonth().month ||\n date.year !== this.visibleMonth().year\n ) {\n this.visibleMonth.set(date.set({ day: 1 }));\n }\n this.focusedDate.set(date);\n queueMicrotask(() => {\n const button = this.calendar?.nativeElement.querySelector<HTMLElement>(\n `[data-date=\"${date.toString()}\"]`\n );\n button?.focus();\n });\n }\n\n private open(): void {\n const trigger = this.trigger?.nativeElement;\n const calendar = this.calendar?.nativeElement;\n if (!trigger || !calendar || this.disabled() || this.readonly()) {\n return;\n }\n const selected = this.value()?.start;\n const focus =\n selected && this.isSelectable(selected)\n ? selected\n : this.firstSelectableDate();\n if (!focus) {\n return;\n }\n this.isOpen.set(true);\n this.changeDetector.detectChanges();\n this.focusedDate.set(focus);\n this.visibleMonth.set(focus.set({ day: 1 }));\n this.overlayRef = this.overlay.open({\n origin: trigger,\n placement: 'bottom-start',\n closeOnEscape: true,\n closeOnOutsidePointer: true,\n restoreFocus: true\n });\n this.overlayRef.attach(calendar);\n this.overlayRef.onClose(() => {\n this.overlayRef = null;\n this.isOpen.set(false);\n this.changeDetector.markForCheck();\n });\n this.focusDate(focus);\n }\n\n private close(): void {\n this.overlayRef?.close('programmatic');\n }\n\n private normalizeRange(\n value: NsDateRangeValue<DateValue> | null\n ): NsDateRangeValue<DateValue> | null {\n if (!value) {\n return null;\n }\n if (value.start && value.end && value.start.compare(value.end) > 0) {\n return { start: value.end, end: value.start };\n }\n return { start: value.start || null, end: value.end || null };\n }\n\n private firstSelectableDate(): DateValue | null {\n let candidate = this.minDate() || today('UTC');\n const maxDate = this.maxDate();\n const attempts = maxDate\n ? Number.POSITIVE_INFINITY\n : this.unavailableDates().length + 1;\n\n for (\n let attempt = 0;\n attempt < attempts && (!maxDate || candidate.compare(maxDate) <= 0);\n attempt += 1\n ) {\n if (this.isSelectable(candidate)) {\n return candidate;\n }\n candidate = candidate.add({ days: 1 });\n }\n\n return null;\n }\n\n private isSelectable(date: DateValue): boolean {\n const minDate = this.minDate();\n const maxDate = this.maxDate();\n return (\n (!minDate || date.compare(minDate) >= 0) &&\n (!maxDate || date.compare(maxDate) <= 0) &&\n !this.unavailableDates().some(\n (unavailable) => unavailable.compare(date) === 0\n )\n );\n }\n\n private formatDate(date: DateValue): string {\n return this.dateFormatter.format(date.toDate('UTC'));\n }\n}\n","import { ChangeDetectionStrategy, Component, forwardRef } from '@angular/core';\nimport { NsValueAccessor } from '../../models/value-accessor';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'ns-input',\n standalone: true,\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsInputComponent),\n multi: true\n }\n ],\n imports: [FormsModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.ns-input]': 'true',\n '[class.ns-input--invalid]': 'invalid()',\n '[class.ns-input--disabled]': 'disabled()'\n }\n})\nexport class NsInputComponent extends NsValueAccessor<string> {}\n","@if (label()) {\n <label class=\"ns-input__label\" [for]=\"controlId()\"\n >{{ label() }}\n @if (required()) {\n <span aria-hidden=\"true\"> *</span>\n }\n </label>\n}\n<input\n class=\"ns-input__control\"\n [id]=\"controlId()\"\n [type]=\"type()\"\n [name]=\"name()\"\n [placeholder]=\"placeholder()\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"setValue($event)\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readonly()\"\n [required]=\"required()\"\n [attr.aria-invalid]=\"invalid() || null\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-describedby]=\"describedBy()\"\n (blur)=\"onTouched()\"\n/>\n@if (description()) {\n <p class=\"ns-input__description\" [id]=\"descriptionId\">{{ description() }}</p>\n}\n@if (invalid() && errorMessage()) {\n <p class=\"ns-input__error\" [id]=\"errorId\" role=\"alert\">\n {{ errorMessage() }}\n </p>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n input\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NsValueAccessor } from '../../models/value-accessor';\n\n@Component({\n selector: 'ns-input-code',\n standalone: true,\n imports: [FormsModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `@if (label()) {\n <label class=\"ns-input-code__label\" [for]=\"controlId()\">{{\n label()\n }}</label>\n }\n <input\n class=\"ns-input-code__control\"\n [id]=\"controlId()\"\n [name]=\"name()\"\n type=\"text\"\n inputmode=\"text\"\n autocomplete=\"one-time-code\"\n [attr.maxlength]=\"length()\"\n [placeholder]=\"placeholder()\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"setValue($event)\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readonly()\"\n [attr.aria-invalid]=\"invalid() || null\"\n [attr.aria-describedby]=\"describedBy()\"\n (blur)=\"onTouched()\"\n />\n @if (description()) {\n <p class=\"ns-input-code__description\" [id]=\"descriptionId\">\n {{ description() }}\n </p>\n }\n @if (invalid() && errorMessage()) {\n <p class=\"ns-input-code__error\" [id]=\"errorId\" role=\"alert\">\n {{ errorMessage() }}\n </p>\n }`,\n styleUrls: ['./input-code.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsInputCodeComponent),\n multi: true\n }\n ],\n host: { '[class.ns-input-code]': 'true' }\n})\nexport class NsInputCodeComponent extends NsValueAccessor<string> {\n readonly length = input(6);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation\n} from '@angular/core';\n\n/** Visual-only composition primitive. Projected controls own their form state. */\n@Component({\n selector: 'ns-input-group',\n standalone: true,\n template: '<div class=\"ns-input-group__control\"><ng-content /></div>',\n styleUrls: ['./input-group.component.scss'],\n encapsulation: ViewEncapsulation.ShadowDom,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class.ns-input-group]': 'true' }\n})\nexport class NsInputGroupComponent {}\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ns-input-group-addon',\n template: '<ng-content></ng-content>',\n styleUrls: ['./input-group-addon.component.scss'],\n encapsulation: ViewEncapsulation.ShadowDom,\n host: {\n '[class.ns-input-group-addon]': 'true'\n }\n})\nexport class NsInputGroupAddonComponent {}\n","import {\n ChangeDetectionStrategy,\n Component,\n LOCALE_ID,\n forwardRef,\n inject,\n input,\n signal\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NsValueAccessor } from '../../models/value-accessor';\n\n@Component({\n selector: 'ns-input-number',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `@if (label()) {\n <label class=\"ns-input-number__label\" [for]=\"controlId()\"\n >{{ label() }}\n @if (required()) {\n <span aria-hidden=\"true\"> *</span>\n }\n </label>\n }\n <div class=\"ns-input-number__group\">\n <input\n class=\"ns-input-number__control\"\n type=\"text\"\n inputmode=\"decimal\"\n role=\"spinbutton\"\n [id]=\"controlId()\"\n [name]=\"name()\"\n [value]=\"displayValue()\"\n (input)=\"onInputEvent($event)\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readonly()\"\n [required]=\"required()\"\n [attr.min]=\"min()\"\n [attr.max]=\"max()\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"value()\"\n [attr.aria-invalid]=\"invalid() || null\"\n [attr.aria-describedby]=\"describedBy()\"\n (keydown)=\"onKeydown($event)\"\n (blur)=\"formatValue(); onTouched()\"\n />\n <div class=\"ns-input-number__steppers\" aria-hidden=\"true\">\n <button\n type=\"button\"\n tabindex=\"-1\"\n (click)=\"stepBy(1)\"\n [disabled]=\"disabled() || readonly()\"\n >\n +</button\n ><button\n type=\"button\"\n tabindex=\"-1\"\n (click)=\"stepBy(-1)\"\n [disabled]=\"disabled() || readonly()\"\n >\n −\n </button>\n </div>\n </div>\n @if (description()) {\n <p class=\"ns-input-number__description\" [id]=\"descriptionId\">\n {{ description() }}\n </p>\n }\n @if (invalid() && errorMessage()) {\n <p class=\"ns-input-number__error\" [id]=\"errorId\" role=\"alert\">\n {{ errorMessage() }}\n </p>\n }`,\n styleUrls: ['./input-number.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsInputNumberComponent),\n multi: true\n }\n ],\n host: { '[class.ns-input-number]': 'true' }\n})\nexport class NsInputNumberComponent extends NsValueAccessor<number | null> {\n private readonly locale = inject(LOCALE_ID);\n readonly min = input<number | undefined>(undefined);\n readonly max = input<number | undefined>(undefined);\n readonly step = input(1);\n readonly currency = input<string | undefined>(undefined);\n readonly format = input<Intl.NumberFormatOptions>({});\n readonly displayValue = signal('');\n\n override writeValue(value: number | null): void {\n super.writeValue(value);\n this.displayValue.set(\n value === null || value === undefined ? '' : this.formatter.format(value)\n );\n }\n onInput(text: string): void {\n this.displayValue.set(text);\n const value = this.parse(text);\n this.setValue(value === null ? null : this.constrain(value));\n }\n onInputEvent(event: Event): void {\n const target = event.target;\n if (!(target instanceof HTMLInputElement)) {\n return;\n }\n this.onInput(target.value);\n }\n formatValue(): void {\n const value = this.value();\n this.displayValue.set(\n value === null || value === undefined ? '' : this.formatter.format(value)\n );\n }\n onKeydown(event: KeyboardEvent): void {\n if (this.disabled() || this.readonly()) return;\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n this.stepBy(1);\n } else if (event.key === 'ArrowDown') {\n event.preventDefault();\n this.stepBy(-1);\n } else if (event.key === 'Home' && this.min() !== undefined) {\n event.preventDefault();\n this.setValue(this.min() ?? null);\n this.formatValue();\n } else if (event.key === 'End' && this.max() !== undefined) {\n event.preventDefault();\n this.setValue(this.max() ?? null);\n this.formatValue();\n }\n }\n stepBy(direction: 1 | -1): void {\n if (this.disabled() || this.readonly()) return;\n const current =\n this.value() ?? (direction > 0 ? (this.min() ?? 0) : (this.max() ?? 0));\n this.setValue(this.constrain(current + direction * this.step()));\n this.formatValue();\n }\n private get formatter(): Intl.NumberFormat {\n return new Intl.NumberFormat(this.locale, {\n ...this.format(),\n ...(this.currency()\n ? { style: 'currency', currency: this.currency() }\n : {})\n });\n }\n private parse(text: string): number | null {\n const parts = this.formatter.formatToParts(12345.6);\n const group = parts.find((part) => part.type === 'group')?.value ?? ',';\n const decimal = parts.find((part) => part.type === 'decimal')?.value ?? '.';\n const normalized = text\n .replaceAll(group, '')\n .replace(decimal, '.')\n .replace(/[^0-9+-.]/g, '');\n const value = Number(normalized);\n return normalized === '' || !Number.isFinite(value) ? null : value;\n }\n private constrain(value: number): number {\n const min = this.min();\n const max = this.max();\n return Math.min(max ?? Infinity, Math.max(min ?? -Infinity, value));\n }\n}\n","import { ChangeDetectionStrategy, Component, forwardRef } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NsValueAccessor } from '../../models/value-accessor';\n\n@Component({\n selector: 'ns-input-search',\n standalone: true,\n imports: [FormsModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `@if (label()) {\n <label class=\"ns-input-search__label\" [for]=\"controlId()\">{{\n label()\n }}</label>\n }\n <div class=\"ns-input-search__group\">\n <span aria-hidden=\"true\">⌕</span\n ><input\n class=\"ns-input-search__control\"\n type=\"search\"\n [id]=\"controlId()\"\n [name]=\"name()\"\n [placeholder]=\"placeholder()\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"setValue($event)\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readonly()\"\n [attr.aria-label]=\"ariaLabel() || label() || 'Search'\"\n [attr.aria-describedby]=\"describedBy()\"\n [attr.aria-invalid]=\"invalid() || null\"\n (blur)=\"onTouched()\"\n />\n @if (value() && !disabled() && !readonly()) {\n <button type=\"button\" aria-label=\"Clear search\" (click)=\"setValue('')\">\n ×\n </button>\n }\n </div>\n @if (description()) {\n <p class=\"ns-input-search__description\" [id]=\"descriptionId\">\n {{ description() }}\n </p>\n }\n @if (invalid() && errorMessage()) {\n <p class=\"ns-input-search__error\" [id]=\"errorId\" role=\"alert\">\n {{ errorMessage() }}\n </p>\n }`,\n styleUrls: ['./input-search.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsInputSearchComponent),\n multi: true\n }\n ],\n host: { '[class.ns-input-search]': 'true' }\n})\nexport class NsInputSearchComponent extends NsValueAccessor<string> {}\n","import { Component, forwardRef, OnInit, input } from '@angular/core';\nimport { NsValueAccessor } from '../../models/value-accessor';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { RouterLink } from '@angular/router';\nimport { NsIconsComponent } from '@ng-solid/icons';\n\n@Component({\n selector: 'ns-password',\n templateUrl: './password.component.html',\n styleUrls: ['./password.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsPasswordComponent),\n multi: true\n }\n ],\n imports: [RouterLink, FormsModule, NsIconsComponent],\n host: {\n '[class.ns-password]': 'true'\n }\n})\nexport class NsPasswordComponent extends NsValueAccessor implements OnInit {\n readonly forgotLink = input<string>(undefined);\n readonly showAndHide = input<boolean>(undefined);\n\n public show = false;\n\n constructor() {\n super();\n }\n\n ngOnInit() {}\n\n toggle() {\n this.show = !this.show;\n }\n}\n","@if (label()) {\n <label class=\"ns-password__label\">\n {{ label() }}\n @if (forgotLink()) {\n <a [routerLink]=\"forgotLink()\">Olvido su contraseña?</a>\n }\n </label>\n}\n\n<div class=\"ns-password__group\">\n <input\n class=\"ns-password__control\"\n [type]=\"show ? 'text' : 'password'\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"setValue($event)\"\n [placeholder]=\"placeholder()\"\n (blur)=\"onTouched()\"\n [disabled]=\"disabled()\"\n />\n\n @if (showAndHide()) {\n <button\n type=\"button\"\n class=\"ns-password__append\"\n [attr.aria-label]=\"show ? 'Hide password' : 'Show password'\"\n [attr.aria-pressed]=\"show\"\n [disabled]=\"disabled()\"\n (click)=\"toggle()\"\n >\n <ns-icon class=\"ns-password__toggle\" [name]=\"show ? 'eye-off' : 'eye'\" />\n </button>\n }\n</div>\n","import { signal } from '@angular/core';\n\nexport class NsRadioGroupContext {\n readonly value = signal<string | null>(null);\n readonly disabled = signal(false);\n select: (value: string) => void = () => {};\n onTouched: () => void = () => {};\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n input\n} from '@angular/core';\nimport { NsAriaIdService } from '../../../a11y';\nimport { NsRadioGroupContext } from './radio-context';\n\n@Component({\n selector: 'ns-radio',\n standalone: true,\n template: `<label class=\"ns-radio__label\" [for]=\"id\"\n ><input\n class=\"ns-radio__input\"\n [id]=\"id\"\n type=\"radio\"\n [name]=\"name()\"\n [value]=\"value()\"\n [checked]=\"group?.value() === value()\"\n [disabled]=\"disabled() || group?.disabled()\"\n (change)=\"select()\"\n (blur)=\"group?.onTouched()\"\n /><span>{{ label() }}</span></label\n >`,\n styleUrls: ['./radio.component.scss'],\n host: { '[class.ns-radio]': 'true' },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsRadioComponent {\n private readonly ids = inject(NsAriaIdService);\n readonly group = inject(NsRadioGroupContext, {\n optional: true,\n skipSelf: true\n });\n readonly id = this.ids.create('ns-radio');\n readonly value = input.required<string>();\n readonly label = input<string | undefined>(undefined);\n readonly name = input<string | undefined>(undefined);\n readonly disabled = input(false);\n select(): void {\n if (!this.disabled() && !this.group?.disabled()) {\n this.group?.select(this.value());\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n inject\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NsValueAccessor } from '../../models/value-accessor';\nimport { NsRadioGroupContext } from './radio-context';\n\n@Component({\n selector: 'ns-radio-group',\n standalone: true,\n template: `@if (label()) {\n <span class=\"ns-radio-group__label\" [id]=\"controlId()\"\n >{{ label() }}\n @if (required()) {\n <span aria-hidden=\"true\"> *</span>\n }\n </span>\n }\n <div\n class=\"ns-radio-group__control\"\n role=\"radiogroup\"\n [attr.aria-labelledby]=\"label() ? controlId() : null\"\n [attr.aria-describedby]=\"describedBy()\"\n [attr.aria-invalid]=\"invalid() || null\"\n >\n <ng-content />\n </div>\n @if (description()) {\n <p class=\"ns-radio-group__description\" [id]=\"descriptionId\">\n {{ description() }}\n </p>\n }\n @if (invalid() && errorMessage()) {\n <p class=\"ns-radio-group__error\" [id]=\"errorId\" role=\"alert\">\n {{ errorMessage() }}\n </p>\n }`,\n styleUrls: ['./radio.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsRadioGroupComponent),\n multi: true\n },\n NsRadioGroupContext\n ],\n host: { '[class.ns-radio-group]': 'true' },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsRadioGroupComponent extends NsValueAccessor<string | null> {\n private readonly context = inject(NsRadioGroupContext);\n constructor() {\n super();\n this.context.select = (value) => this.setValue(value);\n }\n override writeValue(value: string | null): void {\n super.writeValue(value);\n this.context.value.set(value);\n }\n override setValue(value: string | null): void {\n super.setValue(value);\n this.context.value.set(value);\n }\n override setDisabledState(disabled: boolean): void {\n super.setDisabledState(disabled);\n this.context.disabled.set(disabled);\n }\n override registerOnChange(fn: (value: string | null) => void): void {\n super.registerOnChange(fn);\n }\n override registerOnTouched(fn: () => void): void {\n super.registerOnTouched(fn);\n this.context.onTouched = fn;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n input\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NsValueAccessor } from '../../models/value-accessor';\n\nexport type NsSliderValue = number | readonly [number, number];\n@Component({\n selector: 'ns-slider',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `@if (range()) {\n <fieldset\n class=\"ns-slider__range\"\n [attr.aria-describedby]=\"describedBy()\"\n >\n @if (label()) {\n <legend class=\"ns-slider__label\" [id]=\"rangeLabelId\">\n {{ label() }}\n </legend>\n }\n <input\n [id]=\"rangeStartId\"\n type=\"range\"\n [attr.aria-labelledby]=\"rangeStartLabelledBy()\"\n [min]=\"min()\"\n [max]=\"max()\"\n [step]=\"step()\"\n [disabled]=\"disabled()\"\n [value]=\"start()\"\n (input)=\"setRangeStart($event)\"\n (blur)=\"onTouched()\"\n /><input\n [id]=\"rangeEndId\"\n type=\"range\"\n [attr.aria-labelledby]=\"rangeEndLabelledBy()\"\n [min]=\"min()\"\n [max]=\"max()\"\n [step]=\"step()\"\n [disabled]=\"disabled()\"\n [value]=\"end()\"\n (input)=\"setRangeEnd($event)\"\n (blur)=\"onTouched()\"\n />\n <span\n class=\"ns-slider__range-description\"\n [id]=\"rangeStartDescriptionId\"\n >Start</span\n >\n <span class=\"ns-slider__range-description\" [id]=\"rangeEndDescriptionId\"\n >End</span\n >\n </fieldset>\n } @else {\n @if (label()) {\n <label class=\"ns-slider__label\" [for]=\"controlId()\">{{\n label()\n }}</label>\n }\n <input\n class=\"ns-slider__control\"\n [id]=\"controlId()\"\n type=\"range\"\n [name]=\"name()\"\n [min]=\"min()\"\n [max]=\"max()\"\n [step]=\"step()\"\n [disabled]=\"disabled()\"\n [value]=\"single()\"\n [attr.aria-describedby]=\"describedBy()\"\n (input)=\"setSingle($event)\"\n (blur)=\"onTouched()\"\n />\n }\n @if (description()) {\n <p class=\"ns-slider__description\" [id]=\"descriptionId\">\n {{ description() }}\n </p>\n }`,\n styleUrls: ['./slider.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsSliderComponent),\n multi: true\n }\n ],\n host: { '[class.ns-slider]': 'true' }\n})\nexport class NsSliderComponent extends NsValueAccessor<NsSliderValue> {\n readonly min = input(0);\n readonly max = input(100);\n readonly step = input(1);\n readonly range = input(false);\n readonly rangeStartId = `${this.id}-start`;\n readonly rangeEndId = `${this.id}-end`;\n readonly rangeLabelId = `${this.id}-range-label`;\n readonly rangeStartDescriptionId = `${this.id}-range-start`;\n readonly rangeEndDescriptionId = `${this.id}-range-end`;\n readonly rangeStartLabelledBy = () =>\n this.label()\n ? `${this.rangeLabelId} ${this.rangeStartDescriptionId}`\n : this.rangeStartDescriptionId;\n readonly rangeEndLabelledBy = () =>\n this.label()\n ? `${this.rangeLabelId} ${this.rangeEndDescriptionId}`\n : this.rangeEndDescriptionId;\n single(): number {\n const value = this.value();\n return typeof value === 'number' ? value : this.min();\n }\n start(): number {\n const value = this.value();\n return Array.isArray(value) ? value[0] : this.min();\n }\n end(): number {\n const value = this.value();\n return Array.isArray(value) ? value[1] : this.max();\n }\n setSingle(event: Event): void {\n this.setValue(Number((event.target as HTMLInputElement).value));\n }\n setRangeStart(event: Event): void {\n this.setValue([\n Math.min(Number((event.target as HTMLInputElement).value), this.end()),\n this.end()\n ]);\n }\n setRangeEnd(event: Event): void {\n this.setValue([\n this.start(),\n Math.max(Number((event.target as HTMLInputElement).value), this.start())\n ]);\n }\n}\n","import { ChangeDetectionStrategy, Component, forwardRef } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NsValueAccessor } from '../../models/value-accessor';\n\n@Component({\n selector: 'ns-switch',\n standalone: true,\n imports: [FormsModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<input\n type=\"checkbox\"\n class=\"ns-switch__input\"\n role=\"switch\"\n [id]=\"controlId()\"\n [name]=\"name()\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"setValue($event)\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n [attr.aria-invalid]=\"invalid() || null\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-describedby]=\"describedBy()\"\n (blur)=\"onTouched()\"\n /><label class=\"ns-switch__label\" [for]=\"controlId()\"\n >{{ label() }}\n @if (required()) {\n <span aria-hidden=\"true\"> *</span>\n }\n </label>\n @if (description()) {\n <p class=\"ns-switch__description\" [id]=\"descriptionId\">\n {{ description() }}\n </p>\n }\n @if (invalid() && errorMessage()) {\n <p class=\"ns-switch__error\" [id]=\"errorId\" role=\"alert\">\n {{ errorMessage() }}\n </p>\n }`,\n styleUrls: ['./switch.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsSwitchComponent),\n multi: true\n }\n ],\n host: { '[class.ns-switch]': 'true' }\n})\nexport class NsSwitchComponent extends NsValueAccessor<boolean> {}\n","import {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n input\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NsValueAccessor } from '../../models/value-accessor';\n\n@Component({\n selector: 'ns-textarea',\n standalone: true,\n imports: [FormsModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `@if (label()) {\n <label class=\"ns-textarea__label\" [for]=\"controlId()\"\n >{{ label() }}\n @if (required()) {\n <span aria-hidden=\"true\"> *</span>\n }\n </label>\n }\n <textarea\n class=\"ns-textarea__control\"\n [id]=\"controlId()\"\n [name]=\"name()\"\n [rows]=\"rows()\"\n [placeholder]=\"placeholder()\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"setValue($event)\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readonly()\"\n [required]=\"required()\"\n [attr.aria-invalid]=\"invalid() || null\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-describedby]=\"describedBy()\"\n (blur)=\"onTouched()\"\n ></textarea>\n @if (description()) {\n <p class=\"ns-textarea__description\" [id]=\"descriptionId\">\n {{ description() }}\n </p>\n }\n @if (invalid() && errorMessage()) {\n <p class=\"ns-textarea__error\" [id]=\"errorId\" role=\"alert\">\n {{ errorMessage() }}\n </p>\n }`,\n styleUrls: ['./text-area.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsTextAreaComponent),\n multi: true\n }\n ],\n host: {\n '[class.ns-textarea]': 'true',\n '[class.ns-textarea--invalid]': 'invalid()'\n }\n})\nexport class NsTextAreaComponent extends NsValueAccessor<string> {\n readonly rows = input(3);\n}\n","import {\n Component,\n ElementRef,\n forwardRef,\n HostBinding,\n HostListener,\n inject,\n Renderer2,\n input\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NsValueAccessor } from '../models/value-accessor';\n\n@Component({\n selector: 'ns-content-editable',\n template: '',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsContentEditableComponent),\n multi: true\n }\n ],\n styleUrl: './content-editable.component.scss',\n host: {\n '[class.ns-content-editable]': 'true',\n '[class.ns-content-editable--disabled]': 'disabled()'\n }\n})\nexport class NsContentEditableComponent extends NsValueAccessor<string> {\n private elementRef = inject(ElementRef);\n private renderer = inject(Renderer2);\n\n readonly maxLength = input<number>(undefined, { alias: 'maxlength' });\n\n @HostBinding('attr.contenteditable')\n enabled: boolean = true;\n\n override writeValue(value: string): void {\n if (typeof value !== 'undefined') {\n this.renderer.setProperty(\n this.elementRef.nativeElement,\n 'innerHTML',\n value || ''\n );\n }\n }\n\n @HostListener('input')\n onInput(): void {\n this.onChange(this.elementRef.nativeElement.innerHTML);\n }\n\n @HostListener('blur')\n onBlur(): void {\n this.onTouched();\n }\n\n @HostListener('keydown', ['$event'])\n onKeyUp(event: KeyboardEvent) {\n const maxLength = this.maxLength();\n if (\n maxLength &&\n this.elementRef.nativeElement.innerText.length >= maxLength &&\n event.key !== 'Backspace'\n ) {\n event.preventDefault();\n }\n }\n\n override setDisabledState(isDisabled: boolean) {\n this.disabled.set(isDisabled);\n this.enabled = !isDisabled;\n }\n}\n","// COMPONENTS\nexport * from './components/checkbox';\nexport * from './components/date-picker';\nexport * from './components/input';\nexport * from './components/input-code';\nexport * from './components/input-group';\nexport * from './components/input-number';\nexport * from './components/input-search';\nexport * from './components/password';\nexport * from './components/radio';\nexport * from './components/slider';\nexport * from './components/switch';\nexport * from './components/text-area';\n\n// DIRECTIVES\nexport * from './directives';\n\n// FOUNDATION\nexport * from './foundation';\n\n// MODELS\nexport * from './models';\n","import { Component, OnInit, input, output } from '@angular/core';\nimport { NsComment } from './interfaces/comment';\nimport { NgClass } from '@angular/common';\nimport { NsAvatarComponent } from '../avatar';\nimport { NsContentEditableComponent } from '../form';\nimport { FormsModule } from '@angular/forms';\nimport { NsHumanizePipe, NsSafeHtmlPipe } from '@ng-solid/core';\n\n@Component({\n selector: 'ns-comment',\n templateUrl: './comment.component.html',\n styleUrls: ['./comment.component.scss'],\n imports: [\n NgClass,\n NsAvatarComponent,\n NsContentEditableComponent,\n FormsModule,\n NsSafeHtmlPipe,\n NsHumanizePipe\n ]\n})\nexport class NsCommentComponent implements OnInit {\n readonly title = input<string>(undefined);\n readonly description = input<string>(undefined);\n readonly placeholder = input<string>(undefined);\n readonly messages = input<NsComment[]>([]);\n readonly cover = input<{\n url: string;\n alt?: string;\n }>(undefined);\n readonly submitText = input<string>(undefined);\n readonly logged = input<boolean>(undefined);\n readonly maxLength = input<number>(128);\n readonly disabled = input<boolean>(undefined);\n\n readonly commit = output<string>();\n\n public invalid: boolean = false;\n public content: string = '';\n\n private clearEmptyValues: RegExp = new RegExp(/(<div><br><\\/div>)*/g);\n\n constructor() {}\n\n ngOnInit(): void {}\n\n publish() {\n if (this.content) {\n this.commit.emit(this.content.replace(this.clearEmptyValues, ''));\n this.content = '';\n } else {\n this.invalid = true;\n }\n }\n\n get counter() {\n const characters = this.maxLength() - this.content.length;\n return characters > 0 ? characters : 0;\n }\n}\n","@if (logged()) {\n <div\n class=\"ns-comment__box\"\n [ngClass]=\"{ 'ns-comment__box--invalid': invalid }\"\n >\n <ns-avatar class=\"ns-comment__avatar\" [src]=\"cover()?.url\" />\n\n <div class=\"ns-comment__input-wrap\">\n <div class=\"ns-comment__input\">\n <ns-content-editable\n class=\"ns-comment__input-content\"\n [maxlength]=\"maxLength()\"\n [(ngModel)]=\"content\"\n [disabled]=\"disabled()\"\n />\n\n @if (!content) {\n <span class=\"ns-comment__input-placeholder\">{{ placeholder() }}</span>\n }\n </div>\n\n <div class=\"ns-comment__footer\">\n <span class=\"ns-comment__counter\">Quedan {{ counter }} caracteres</span>\n\n @if (submitText()) {\n <button\n class=\"ns-comment__submit\"\n (click)=\"publish()\"\n [disabled]=\"disabled()\"\n >\n {{ submitText() }}\n </button>\n }\n </div>\n </div>\n </div>\n} @else {\n <h4 class=\"ns-comment__title\">\n {{ title() }} <br />\n <small\n class=\"ns-comment__description\"\n [innerHTML]=\"description() | nsSafeHtml\"\n ></small>\n </h4>\n\n <div class=\"ns-comment__logout\">\n <ng-content />\n </div>\n}\n@if (messages().length) {\n <ul class=\"ns-comment__list\">\n @for (comment of messages(); track comment) {\n <li class=\"ns-comment__item\">\n <ns-avatar\n class=\"ns-comment__cover\"\n [src]=\"comment.cover?.url\"\n size=\"md\"\n />\n\n <div class=\"ns-comment__wrap\">\n <div class=\"ns-comment__user-wrap\">\n @if (comment?.author; as author) {\n <a [attr.href]=\"author.link\" class=\"ns-comment__author\">\n {{ author.name }}\n </a>\n }\n @if (comment?.created; as date) {\n <span class=\"ns-comment__date\">{{ date | nsHumanize }}</span>\n }\n\n <div\n class=\"ns-comment__message\"\n [innerHTML]=\"comment?.message | nsSafeHtml\"\n ></div>\n </div>\n </div>\n </li>\n }\n </ul>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n effect,\n inject,\n input\n} from '@angular/core';\nimport { NsAriaIdService, NsFieldContext } from '../a11y';\n\n@Component({\n selector: 'ns-description',\n standalone: true,\n template: '<ng-content />',\n styleUrl: './description.component.scss',\n host: {\n '[attr.id]': 'id()',\n '[attr.aria-live]': 'live()',\n '[class.ns-description]': 'true'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsDescriptionComponent {\n private readonly ariaIds = inject(NsAriaIdService);\n private readonly field = inject(NsFieldContext, {\n optional: true,\n host: true\n });\n private readonly destroyRef = inject(DestroyRef);\n\n readonly id = input(this.ariaIds.create('ns-description'));\n readonly live = input<'off' | 'polite' | 'assertive'>('off');\n\n constructor() {\n if (!this.field) {\n return;\n }\n const field = this.field;\n const registration = effect(() => {\n const id = this.id();\n field.registerDescription(id);\n return () => field.unregisterDescription(id);\n });\n this.destroyRef.onDestroy(() => registration.destroy());\n }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { NsOrientation } from '../../types';\n\n@Component({\n selector: 'ns-divider',\n standalone: true,\n template: '',\n styleUrl: './divider.component.scss',\n host: {\n role: 'separator',\n '[attr.aria-orientation]': 'orientation()',\n '[class.ns-divider]': 'true',\n '[class.ns-divider--horizontal]': \"orientation() === 'horizontal'\",\n '[class.ns-divider--vertical]': \"orientation() === 'vertical'\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsDividerComponent {\n readonly orientation = input<NsOrientation>('horizontal');\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n ElementRef,\n OnDestroy,\n Type,\n ViewChild,\n ViewContainerRef,\n effect,\n inject,\n input,\n model,\n output,\n signal\n} from '@angular/core';\nimport {\n NsOverlayCloseReason,\n NsOverlayRef,\n NsOverlayService\n} from '../overlay';\nimport { NsDrawerPosition } from './interfaces/drawer-config';\n\n@Component({\n selector: 'ns-drawer',\n standalone: true,\n template: `\n <div class=\"ns-drawer__backdrop\" aria-hidden=\"true\"></div>\n <aside\n class=\"ns-drawer__panel\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-label]=\"title() || null\"\n [class.ns-drawer__panel--start]=\"position() === 'start'\"\n tabindex=\"-1\"\n >\n <header class=\"ns-drawer__header\">\n @if (title()) {\n <h2 class=\"ns-drawer__title\">{{ title() }}</h2>\n }\n <button\n class=\"ns-drawer__close\"\n type=\"button\"\n [attr.aria-label]=\"closeLabel()\"\n (click)=\"close()\"\n >\n ×\n </button>\n </header>\n <div class=\"ns-drawer__body\">\n @if (contentComponent()) {\n <ng-template #contentHost />\n } @else {\n <ng-content />\n }\n </div>\n </aside>\n `,\n styleUrl: './drawer.component.scss',\n host: {\n '[class.ns-drawer]': 'true',\n '[attr.data-state]': \"isOpen() ? 'open' : 'closed'\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsDrawerComponent implements AfterViewInit, OnDestroy {\n readonly isOpen = model(false);\n readonly title = input('');\n readonly position = input<NsDrawerPosition>('end');\n readonly closeLabel = input('Close drawer');\n readonly closeOnEscape = input(true);\n readonly closed = output<NsOverlayCloseReason>();\n readonly contentComponent = input<Type<object> | null>(null);\n readonly contentInputs = input<Record<string, unknown>>({});\n readonly closeReason = signal<NsOverlayCloseReason | undefined>(undefined);\n\n @ViewChild('contentHost', { read: ViewContainerRef })\n private contentHost?: ViewContainerRef;\n\n private readonly element = inject(ElementRef<HTMLElement>);\n private readonly overlay = inject(NsOverlayService);\n private overlayRef?: NsOverlayRef;\n private contentRef?: ComponentRef<object>;\n private viewInitialized = false;\n\n constructor() {\n effect(() => {\n const open = this.isOpen();\n if (!this.viewInitialized) {\n return;\n }\n open ? this.openOverlay() : this.overlayRef?.close('programmatic');\n });\n effect(() => this.createContent());\n }\n\n ngAfterViewInit(): void {\n this.viewInitialized = true;\n if (this.isOpen()) {\n this.openOverlay();\n }\n this.createContent();\n }\n\n ngOnDestroy(): void {\n this.overlayRef?.close('programmatic');\n this.contentRef?.destroy();\n }\n\n close(): void {\n this.isOpen.set(false);\n }\n\n getContent<T extends object>(): T {\n if (!this.contentRef) {\n throw new Error('Drawer content could not be created.');\n }\n return this.contentRef.instance as T;\n }\n\n private openOverlay(): void {\n if (this.overlayRef) {\n return;\n }\n const overlayRef = this.overlay.open({\n closeOnEscape: this.closeOnEscape(),\n closeOnOutsidePointer: false,\n trapFocus: true,\n restoreFocus: true,\n inert: true,\n lockScroll: true\n });\n overlayRef.portal.classList.add('ns-drawer__portal');\n overlayRef.portal.style.inset = '0';\n overlayRef.portal.style.border = '0';\n overlayRef.portal.style.borderRadius = '0';\n overlayRef.portal.style.background = 'transparent';\n overlayRef.portal.style.boxShadow = 'none';\n overlayRef.attach(this.element.nativeElement);\n this.overlayRef = overlayRef;\n overlayRef.onClose((reason) => {\n if (this.overlayRef !== overlayRef) {\n return;\n }\n this.overlayRef = undefined;\n this.closeReason.set(reason);\n if (this.isOpen()) {\n this.isOpen.set(false);\n }\n this.closed.emit(reason);\n });\n }\n\n private createContent(): void {\n const component = this.contentComponent();\n if (\n !this.viewInitialized ||\n !component ||\n !this.contentHost ||\n this.contentRef\n ) {\n return;\n }\n this.contentRef = this.contentHost.createComponent(component);\n for (const [name, value] of Object.entries(this.contentInputs())) {\n this.contentRef.setInput(name, value);\n }\n }\n}\n","import { ComponentRef, Signal } from '@angular/core';\nimport { NsOverlayCloseReason } from '../../overlay';\nimport { NsDrawerComponent } from '../drawer.component';\n\nexport class NsDrawerRef<T> {\n constructor(\n private readonly componentRef: ComponentRef<NsDrawerComponent>,\n readonly content: T,\n readonly closed: Signal<NsOverlayCloseReason | undefined>\n ) {}\n\n close(): void {\n this.componentRef.instance.close();\n }\n}\n","import {\n ApplicationRef,\n EnvironmentInjector,\n Injectable,\n createComponent,\n inject\n} from '@angular/core';\nimport { NsDrawerConfig } from '../interfaces/drawer-config';\nimport { NsDrawerComponent } from '../drawer.component';\nimport { NsDrawerRef } from '../models/drawer-ref';\n\n@Injectable({ providedIn: 'root' })\nexport class NsDrawerService {\n private readonly applicationRef = inject(ApplicationRef);\n private readonly environmentInjector = inject(EnvironmentInjector);\n\n open<T extends object>(config: NsDrawerConfig<T>): NsDrawerRef<T> {\n const componentRef = createComponent(NsDrawerComponent, {\n environmentInjector: this.environmentInjector\n });\n componentRef.setInput('title', config.title ?? '');\n componentRef.setInput('position', config.position ?? 'end');\n componentRef.setInput('closeOnEscape', config.closeOnEscape ?? true);\n componentRef.setInput('contentComponent', config.component);\n componentRef.setInput('contentInputs', config.inputs ?? {});\n this.applicationRef.attachView(componentRef.hostView);\n componentRef.changeDetectorRef.detectChanges();\n componentRef.instance.isOpen.set(true);\n\n const drawerRef = new NsDrawerRef(\n componentRef,\n componentRef.instance.getContent<T>(),\n componentRef.instance.closeReason\n );\n componentRef.instance.closed.subscribe(() => {\n this.applicationRef.detachView(componentRef.hostView);\n componentRef.destroy();\n });\n return drawerRef;\n }\n}\n","export enum Commands {\n BOLD = 'bold',\n CREATE_LINK = 'createLink',\n FONT_NAME = 'fontName',\n FONT_SIZE = 'fontSize',\n FORMAT_BLOCK = 'formatBlock',\n INSERT_HTML = 'insertHTML',\n INSERT_IMAGE = 'insertImage',\n INSERT_ORDERED_LIST = 'insertOrderedList',\n INSERT_UNORDERED_LIST = 'insertUnorderedList',\n INSERT_TEXT = 'insertText',\n ITALIC = 'italic',\n JUSTIFY_CENTER = 'justifyCenter',\n JUSTIFY_FULL = 'justifyFull',\n JUSTIFY_LEFT = 'justifyLeft',\n JUSTIFY_RIGHT = 'justifyRight',\n UNDERLINE = 'underline',\n UNLINK = 'unlink',\n TEXT_COLOR = 'foreColor',\n BACKGROUND_COLOR = 'backColor'\n}\n","export const LABELS_DEFAULT: Record<string, string> = {\n bold: 'Bold',\n italic: 'Italic',\n code: 'Code',\n underline: 'Underline',\n strike: 'Strike',\n blockquote: 'Blockquote',\n bullet_list: 'Bullet List',\n ordered_list: 'Ordered List',\n paragraph: 'Paragraph',\n h1: 'Header 1',\n h2: 'Header 2',\n h3: 'Header 3',\n h4: 'Header 4',\n h5: 'Header 5',\n h6: 'Header 6',\n align_left: 'Left Align',\n align_center: 'Center Align',\n align_right: 'Right Align',\n align_justify: 'Justify',\n text_color: 'Text Color',\n background_color: 'Background Color',\n insert_link: 'Insert Link',\n close_link: 'Close link form',\n link: 'Paste your link',\n text: 'Text to display',\n tooltip_link: 'Tooltip',\n open_new_window: 'Open link in new window',\n submit_link: 'Insert',\n remove_color: 'Remove'\n};\n\nexport type LabelsKeys = keyof typeof LABELS_DEFAULT;\n\nexport class Labels {\n private readonly storage = LABELS_DEFAULT;\n\n constructor(newLabels: Partial<Record<LabelsKeys, string>> = {}) {\n this.storage = { ...LABELS_DEFAULT, ...newLabels };\n }\n\n get = (key: string): string => {\n return this.storage[key] ?? '';\n };\n}\n","import { Labels } from '../models/labels';\nimport { NsEditorSetup } from '../interfaces/editor-config';\nimport { Commands } from '../enums/commands.enum';\nimport { inject, Injectable, InjectionToken, DOCUMENT } from '@angular/core';\n\nexport const NS_EDITOR_SETUP = new InjectionToken<NsEditorSetup>(\n 'NsEditorSetup'\n);\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NsEditorService {\n private config = inject<NsEditorSetup>(NS_EDITOR_SETUP, { optional: true });\n private doc = inject(DOCUMENT);\n\n private savedSelection: Range | null;\n private selectedText: string;\n private readonly labels: Labels;\n\n constructor() {\n const config = this.config;\n\n this.labels = new Labels(config ? config.labels : {});\n }\n\n translate(key: string): string {\n return this.labels.get(key);\n }\n\n saveSelection() {\n switch (true) {\n case !!this.doc.getSelection:\n const sel = this.doc.getSelection();\n if (sel.getRangeAt && sel.rangeCount) {\n this.savedSelection = sel.getRangeAt(0);\n this.selectedText = sel.toString();\n }\n break;\n case !!this.doc.getSelection && !!this.doc.createRange:\n this.savedSelection = document.createRange();\n break;\n default:\n this.savedSelection = null;\n }\n }\n\n command(name: Commands, value?: string) {\n this.doc.execCommand(name, false, value);\n }\n\n formatBlock(heading: string) {\n const headings = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'pre'];\n if (headings.includes(heading)) {\n this.doc.execCommand(Commands.FORMAT_BLOCK, false, heading);\n }\n }\n\n createLink(link: {\n text: string;\n url: string;\n tooltip: string;\n openNewWindow: boolean;\n }) {\n const newUrl = `<a href=\"${link.url}\" title=\"${link.tooltip}\" target=\"${\n link.openNewWindow ? '_blank' : '_self'\n }\">${link.text}</a>`;\n this.insertHtml(newUrl);\n }\n\n insertHtml(html: string): void {\n const isHTMLInserted = this.doc.execCommand(\n Commands.INSERT_HTML,\n false,\n html\n );\n if (!isHTMLInserted) {\n throw new Error('Unable to perform the operation');\n }\n }\n}\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { NsEditorService } from '../services/editor.service';\n\n@Pipe({\n name: 'nsEditorLabel'\n})\nexport class NsEditorLabelPipe implements PipeTransform {\n private editor = inject(NsEditorService);\n\n transform(key: string): string {\n return this.editor.translate(key);\n }\n}\n","import { Component, OnInit, inject, input } from '@angular/core';\nimport { Commands } from '../../enums/commands.enum';\nimport { NsEditorService } from '../../services/editor.service';\nimport { NgStyle } from '@angular/common';\nimport { NsEditorLabelPipe } from '../../pipes/editor-label.pipe';\n\n@Component({\n selector: 'ns-editor-color-picker',\n templateUrl: './color-picker.component.html',\n styleUrls: ['./color-picker.component.scss'],\n imports: [NgStyle, NsEditorLabelPipe]\n})\nexport class NsEditorColorPickerComponent implements OnInit {\n private editor = inject(NsEditorService);\n\n readonly presets = input<string[][]>(undefined);\n readonly type = input<'text_color' | 'background_color'>('text_color');\n\n showPopup = false;\n activeColor?: string;\n isActive: boolean;\n\n trackByIndex = (index: number): number => index;\n\n ngOnInit(): void {}\n\n private get command(): Commands {\n return this.type() === 'text_color'\n ? Commands.TEXT_COLOR\n : Commands.BACKGROUND_COLOR;\n }\n\n toggle() {\n this.showPopup = !this.showPopup;\n }\n\n getContrastYIQ(hexadecimal: string): string {\n const color = hexadecimal.replace('#', '');\n const r = parseInt(color.substring(0, 2), 16);\n const g = parseInt(color.substring(2, 4), 16);\n const b = parseInt(color.substring(4, 6), 16);\n const yiq = (r * 299 + g * 587 + b * 114) / 1000;\n return yiq >= 128 ? 'black' : 'white';\n }\n\n onColorSelect(color: string): void {\n this.editor.command(this.command, (this.activeColor = color));\n this.toggle();\n }\n\n remove() {}\n}\n","<button\n type=\"button\"\n class=\"ns-editor__button\"\n [attr.aria-label]=\"type() | nsEditorLabel\"\n [attr.aria-expanded]=\"showPopup\"\n (click)=\"toggle()\"\n>\n <span class=\"ns-editor__color-text\">\n <svg role=\"presentation\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M14 12.5h-4l-.874 2.186A.5.5 0 0 1 8.66 15H7.273a.5.5 0 0 1-.456-.705l4.05-9A.5.5 0 0 1 11.323 5h1.354a.5.5 0 0 1 .456.295l4.05 9a.5.5 0 0 1-.456.705h-1.388a.5.5 0 0 1-.465-.314L14 12.5zm-.6-1.5L12 7.5 10.6 11h2.8z\"\n fill-rule=\"evenodd\"\n ></path>\n </svg>\n <span></span>\n </span>\n\n <svg\n role=\"presentation\"\n class=\"ns-editor__toggle\"\n fill=\"currentColor\"\n height=\"12px\"\n viewBox=\"0 0 16 16\"\n width=\"12px\"\n >\n <path\n d=\"M14,11.75a.74.74,0,0,1-.53-.22L8,6.06,2.53,11.53a.75.75,0,0,1-1.06-1.06l6-6a.75.75,0,0,1,1.06,0l6,6a.75.75,0,0,1,0,1.06A.74.74,0,0,1,14,11.75Z\"\n ></path>\n </svg>\n</button>\n\n@if (showPopup) {\n <div class=\"ns-editor__popup\">\n @for (colorGroup of presets(); track $index) {\n <div class=\"ns-editor__color-container\">\n @for (color of colorGroup; track $index) {\n <button\n class=\"ns-editor__color\"\n type=\"button\"\n [ngStyle]=\"{ backgroundColor: color, color: getContrastYIQ(color) }\"\n [title]=\"color\"\n [attr.aria-label]=\"color\"\n (click)=\"onColorSelect(color)\"\n ></button>\n }\n </div>\n }\n </div>\n}\n","import { Component, inject, OnInit } from '@angular/core';\nimport {\n FormBuilder,\n FormGroup,\n ReactiveFormsModule,\n Validators\n} from '@angular/forms';\nimport { NsEditorService } from '../../services/editor.service';\nimport { NgClass } from '@angular/common';\nimport { NsEditorLabelPipe } from '../../pipes/editor-label.pipe';\nimport { NsCheckboxComponent, NsInputComponent } from '../../../form';\nimport { NsButtonComponent } from '../../../button';\n\n@Component({\n selector: 'ns-editor-link',\n templateUrl: './link.component.html',\n styleUrls: ['./link.component.scss'],\n imports: [\n ReactiveFormsModule,\n NgClass,\n NsEditorLabelPipe,\n NsInputComponent,\n NsCheckboxComponent,\n NsButtonComponent\n ]\n})\nexport class NsEditorLinkComponent implements OnInit {\n public formLink: FormGroup;\n public show: boolean;\n private fb = inject(FormBuilder);\n private editor = inject(NsEditorService);\n\n ngOnInit(): void {\n this.formLink = this.fb.group({\n text: ['', Validators.required],\n url: ['', Validators.required],\n tooltip: [''],\n openNewWindow: [true]\n });\n }\n\n insert() {\n if (this.formLink.valid) {\n this.editor.createLink(this.formLink.getRawValue());\n this.formLink.reset();\n this.show = false;\n }\n }\n}\n","<button\n type=\"button\"\n class=\"ns-editor__button\"\n id=\"ns-editor-link\"\n [attr.aria-label]=\"'insert_link' | nsEditorLabel\"\n (click)=\"show = true\"\n>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"presentation\">\n <path\n d=\"M12.654 8.764a.858.858 0 01-1.213-1.213l1.214-1.214a3.717 3.717 0 015.257 0 3.714 3.714 0 01.001 5.258l-1.214 1.214-.804.804a3.72 3.72 0 01-5.263.005.858.858 0 011.214-1.214c.781.782 2.05.78 2.836-.005l.804-.803 1.214-1.214a1.998 1.998 0 00-.001-2.831 2 2 0 00-2.83 0l-1.215 1.213zm-.808 6.472a.858.858 0 011.213 1.213l-1.214 1.214a3.717 3.717 0 01-5.257 0 3.714 3.714 0 01-.001-5.258l1.214-1.214.804-.804a3.72 3.72 0 015.263-.005.858.858 0 01-1.214 1.214 2.005 2.005 0 00-2.836.005l-.804.803L7.8 13.618a1.998 1.998 0 00.001 2.831 2 2 0 002.83 0l1.215-1.213z\"\n ></path>\n </svg>\n</button>\n\n<form\n [formGroup]=\"formLink\"\n class=\"ns-editor__form-link\"\n aria-labelledby=\"ns-editor-link\"\n [ngClass]=\"{ 'ns-editor__form-link--visible': show }\"\n (ngSubmit)=\"insert()\"\n>\n <header>\n <label>{{ 'insert_link' | nsEditorLabel }}</label>\n <button\n type=\"button\"\n class=\"ns-editor__close\"\n [attr.aria-label]=\"'close_link' | nsEditorLabel\"\n (click)=\"show = false\"\n ></button>\n </header>\n\n <ns-input [formControlName]=\"'url'\" [placeholder]=\"'link' | nsEditorLabel\" />\n <ns-input [formControlName]=\"'text'\" [placeholder]=\"'text' | nsEditorLabel\" />\n <ns-input\n [formControlName]=\"'tooltip'\"\n [placeholder]=\"'tooltip_link' | nsEditorLabel\"\n />\n <ns-checkbox\n [formControlName]=\"'openNewWindow'\"\n [label]=\"'open_new_window' | nsEditorLabel\"\n />\n\n <footer>\n <ns-button type=\"submit\">{{ 'submit_link' | nsEditorLabel }}</ns-button>\n </footer>\n</form>\n","import { Component, OnInit, inject } from '@angular/core';\nimport { Commands } from '../../enums/commands.enum';\nimport { NsEditorService } from '../../services/editor.service';\nimport { NsEditorLabelPipe } from '../../pipes/editor-label.pipe';\n\n@Component({\n selector: 'ns-editor-list',\n templateUrl: './list.component.html',\n styleUrl: './list.component.scss',\n imports: [NsEditorLabelPipe]\n})\nexport class NsEditorListComponent implements OnInit {\n private editor = inject(NsEditorService);\n\n public commands = Commands;\n\n ngOnInit(): void {}\n\n command(name: Commands) {\n this.editor.command(name);\n }\n}\n","<button\n type=\"button\"\n class=\"ns-editor__button\"\n [attr.aria-label]=\"'bullet_list' | nsEditorLabel\"\n (click)=\"command(commands.INSERT_UNORDERED_LIST)\"\n>\n <svg viewBox=\"0 0 24 24\" role=\"presentation\">\n <path\n d=\"M6 8c0-.552.444-1 1-1 .552 0 1 .444 1 1 0 .552-.444 1-1 1-.552 0-1-.444-1-1zm5-1h6a1 1 0 010 2h-6a1 1 0 010-2zm-5 5c0-.552.444-1 1-1 .552 0 1 .444 1 1 0 .552-.444 1-1 1-.552 0-1-.444-1-1zm5-1h6a1 1 0 010 2h-6a1 1 0 010-2zm-5 5c0-.552.444-1 1-1 .552 0 1 .444 1 1 0 .552-.444 1-1 1-.552 0-1-.444-1-1zm5-1h6a1 1 0 010 2h-6a1 1 0 010-2z\"\n fill-rule=\"evenodd\"\n ></path>\n </svg>\n</button>\n\n<button\n type=\"button\"\n class=\"ns-editor__button\"\n [attr.aria-label]=\"'ordered_list' | nsEditorLabel\"\n (click)=\"command(commands.INSERT_ORDERED_LIST)\"\n>\n <svg viewBox=\"0 0 24 24\" role=\"presentation\">\n <path\n d=\"M11 7h6a1 1 0 010 2h-6a1 1 0 010-2zm0 4h6a1 1 0 010 2h-6a1 1 0 010-2zm0 4h6a1 1 0 010 2h-6a1 1 0 010-2zm-5 0h3v1H6v-1zm0 2h3v1H6v-1zm1-9H6V7h2v3H7V8zm-1 3h3v1.333h-.6V13H7.2v-.667H6V11zm0 2h3v1H6v-1zm2 3h2v1H8v-1z\"\n fill-rule=\"evenodd\"\n ></path>\n </svg>\n</button>\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n ViewChild,\n contentChildren,\n effect,\n forwardRef,\n inject,\n input,\n model\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NsKey, NsPlacement } from '../../types';\nimport { getNsNextNavigableIndex, NsTypeaheadController } from '../a11y';\nimport { NsValueAccessor } from '../form/models/value-accessor';\nimport { NsOverlayRef, NsOverlayService } from '../overlay';\n\n@Component({\n selector: 'ns-selector-list-item',\n standalone: true,\n template: '<ng-content />',\n styleUrls: ['./selector-list.component.scss'],\n host: {\n role: 'option',\n '[attr.data-ns-selector-key]': 'key()',\n '[attr.aria-disabled]': 'disabled()',\n '[class.ns-selector-list-item]': 'true',\n '[class.ns-selector-list-item--disabled]': 'disabled()',\n '[attr.data-disabled]': 'disabled()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsSelectorListItemComponent {\n readonly key = input.required<NsKey>();\n readonly label = input.required<string>();\n readonly disabled = input(false);\n\n readonly element = inject(ElementRef<HTMLElement>);\n}\n\n@Component({\n selector: 'ns-selector-list',\n standalone: true,\n template: `\n @if (label()) {\n <label class=\"ns-selector-list__label\" [attr.for]=\"id\">{{\n label()\n }}</label>\n }\n <button\n #trigger\n class=\"ns-selector-list__trigger\"\n type=\"button\"\n role=\"combobox\"\n [id]=\"id\"\n [attr.aria-expanded]=\"open()\"\n [attr.aria-controls]=\"listboxId\"\n [attr.aria-activedescendant]=\"activeId\"\n [disabled]=\"disabled()\"\n (click)=\"toggle()\"\n (keydown)=\"onKeydown($event)\"\n >\n {{ selectedLabel() || placeholder() }}\n </button>\n <select\n class=\"ns-selector-list__native-control\"\n [attr.name]=\"name()\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n (change)=\"selectNative($event)\"\n (blur)=\"onTouched()\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n >\n @for (item of items(); track item.key()) {\n <option [value]=\"item.key()\" [disabled]=\"item.disabled()\">\n {{ item.label() }}\n </option>\n }\n </select>\n <div\n #menu\n class=\"ns-selector-list__menu\"\n [id]=\"listboxId\"\n role=\"listbox\"\n [attr.aria-labelledby]=\"id\"\n >\n <ng-content />\n </div>\n `,\n styleUrls: ['./selector-list.component.scss'],\n host: {\n '[class.ns-selector-list]': 'true',\n '[class.ns-selector-list--open]': 'open()',\n '[attr.data-state]': \"open() ? 'open' : 'closed'\"\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsSelectorListComponent),\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsSelectorListComponent extends NsValueAccessor<NsKey> {\n readonly name = input<string>(undefined);\n readonly placement = input<NsPlacement>('bottom-start');\n readonly items = contentChildren(NsSelectorListItemComponent);\n @ViewChild('trigger', { read: ElementRef })\n private trigger?: ElementRef<HTMLButtonElement>;\n @ViewChild('menu', { read: ElementRef })\n private menu?: ElementRef<HTMLElement>;\n private readonly overlay = inject(NsOverlayService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly typeahead = new NsTypeaheadController<{\n label: string;\n disabled: boolean;\n }>();\n private overlayRef?: NsOverlayRef;\n private activeIndex = -1;\n private destroyed = false;\n readonly open = model(false);\n readonly listboxId = `${this.id}-listbox`;\n\n constructor() {\n super();\n effect(() => this.syncSelection());\n this.destroyRef.onDestroy(() => {\n this.destroyed = true;\n this.menu?.nativeElement.removeEventListener(\n 'click',\n this.onMenuClickBound\n );\n this.overlayRef?.close('programmatic');\n });\n }\n\n get activeId(): string | undefined {\n const item = this.items()[this.activeIndex];\n return item ? `${this.listboxId}-${String(item.key())}` : undefined;\n }\n\n selectedLabel(): string | undefined {\n return this.items()\n .find((item) => item.key() === this.value())\n ?.label();\n }\n\n toggle(): void {\n this.open() ? this.close() : this.show();\n }\n\n select(key: NsKey): void {\n const item = this.items().find((candidate) => candidate.key() === key);\n if (!item || item.disabled()) {\n return;\n }\n this.setValue(key);\n this.onTouched();\n this.close();\n }\n\n selectNative(event: Event): void {\n const value = (event.target as HTMLSelectElement).value;\n const item = this.items().find(\n (candidate) => String(candidate.key()) === value\n );\n if (item) {\n this.select(item.key());\n }\n }\n\n onKeydown(event: KeyboardEvent): void {\n const items = this.items();\n if (event.key === 'Escape' && this.open()) {\n event.preventDefault();\n this.close();\n return;\n }\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n if (this.open() && this.activeIndex >= 0) {\n this.select(items[this.activeIndex].key());\n } else {\n this.show();\n }\n return;\n }\n let next = -1;\n if (['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) {\n next = getNsNextNavigableIndex(\n items.map((item) => ({ key: item.key(), disabled: item.disabled() })),\n this.activeIndex,\n event.key as 'ArrowDown' | 'ArrowUp' | 'Home' | 'End'\n );\n } else {\n next = this.typeahead.find(\n items.map((item) => ({\n label: item.label(),\n disabled: item.disabled()\n })),\n event.key,\n this.activeIndex\n );\n }\n if (next >= 0) {\n event.preventDefault();\n this.activeIndex = next;\n if (!this.open()) {\n this.show();\n }\n }\n }\n\n onMenuClick(event: MouseEvent): void {\n const target = event.target as Node;\n const item = this.items().find((candidate) =>\n candidate.element.nativeElement.contains(target)\n );\n if (item) {\n this.select(item.key());\n }\n }\n\n private show(): void {\n if (this.disabled() || this.open() || !this.menu || !this.trigger) {\n return;\n }\n this.open.set(true);\n this.activeIndex = this.selectedIndex();\n this.overlayRef = this.overlay.open({\n origin: this.trigger.nativeElement,\n placement: this.placement(),\n restoreFocus: false\n });\n this.overlayRef.attach(this.menu.nativeElement);\n this.menu.nativeElement.addEventListener('click', this.onMenuClickBound);\n this.overlayRef.onClose(() => {\n if (!this.destroyed) {\n this.open.set(false);\n }\n this.menu?.nativeElement.removeEventListener(\n 'click',\n this.onMenuClickBound\n );\n this.overlayRef = undefined;\n });\n }\n\n private close(): void {\n this.overlayRef?.close();\n }\n\n private selectedIndex(): number {\n return this.items().findIndex((item) => item.key() === this.value());\n }\n\n private syncSelection(): void {\n const selected = this.value();\n for (const item of this.items()) {\n item.element.nativeElement.id = `${this.listboxId}-${String(item.key())}`;\n item.element.nativeElement.setAttribute(\n 'aria-selected',\n String(item.key() === selected)\n );\n }\n }\n\n private readonly onMenuClickBound = (event: MouseEvent) =>\n this.onMenuClick(event);\n}\n","import { Component, inject } from '@angular/core';\nimport { Guid } from '@ng-solid/core';\nimport { NsEditorService } from '../../services/editor.service';\nimport {\n NsSelectorListComponent,\n NsSelectorListItemComponent\n} from '../../../selector-list';\nimport { FormsModule } from '@angular/forms';\nimport { NsEditorLabelPipe } from '../../pipes/editor-label.pipe';\n\n@Component({\n selector: 'ns-editor-paragraph',\n templateUrl: './paragraph.component.html',\n styleUrls: ['./paragraph.component.scss'],\n imports: [\n NsSelectorListComponent,\n NsSelectorListItemComponent,\n FormsModule,\n NsEditorLabelPipe\n ]\n})\nexport class NsEditorParagraphComponent {\n private editor = inject(NsEditorService);\n\n public id: string = Guid.create();\n\n private _value: string = 'p';\n\n get value() {\n return this._value;\n }\n\n set value(heading) {\n this.editor.formatBlock(heading);\n }\n}\n","<ns-selector-list [(ngModel)]=\"value\">\n <ns-selector-list-item [label]=\"'paragraph' | nsEditorLabel\" key=\"p\">{{\n 'paragraph' | nsEditorLabel\n }}</ns-selector-list-item>\n <ns-selector-list-item [label]=\"'h1' | nsEditorLabel\" key=\"h1\">{{\n 'h1' | nsEditorLabel\n }}</ns-selector-list-item>\n <ns-selector-list-item [label]=\"'h2' | nsEditorLabel\" key=\"h2\">{{\n 'h2' | nsEditorLabel\n }}</ns-selector-list-item>\n <ns-selector-list-item [label]=\"'h3' | nsEditorLabel\" key=\"h3\">{{\n 'h3' | nsEditorLabel\n }}</ns-selector-list-item>\n <ns-selector-list-item [label]=\"'h4' | nsEditorLabel\" key=\"h4\">{{\n 'h4' | nsEditorLabel\n }}</ns-selector-list-item>\n <ns-selector-list-item [label]=\"'h5' | nsEditorLabel\" key=\"h5\">{{\n 'h5' | nsEditorLabel\n }}</ns-selector-list-item>\n <ns-selector-list-item [label]=\"'h6' | nsEditorLabel\" key=\"h6\">{{\n 'h6' | nsEditorLabel\n }}</ns-selector-list-item>\n</ns-selector-list>\n","import { Component, inject } from '@angular/core';\nimport { Commands } from '../../enums/commands.enum';\nimport { NsEditorService } from '../../services/editor.service';\nimport { NsEditorLabelPipe } from '../../pipes/editor-label.pipe';\n\n@Component({\n selector: 'ns-editor-toggle',\n templateUrl: './toggle.component.html',\n styleUrls: ['./toggle.component.scss'],\n imports: [NsEditorLabelPipe]\n})\nexport class NsEditorToggleCommandComponent {\n private editor = inject(NsEditorService);\n\n public commands = Commands;\n\n command(name: Commands) {\n this.editor.command(name);\n }\n}\n","<button\n type=\"button\"\n class=\"ns-editor__button\"\n [attr.aria-label]=\"'bold' | nsEditorLabel\"\n (click)=\"command(commands.BOLD)\"\n>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n focusable=\"false\"\n aria-hidden=\"true\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M8 5a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h4.5c2.481 0 4.5-1.165 4.5-4 0-1.698-.724-2.796-1.837-3.405C15.69 10.967 16 10.112 16 9c0-2.835-2.019-4-4.5-4H8Zm1 2v4h3c1.379 0 2-.857 2-2s-.621-2-2-2H9Zm0 6v4h4c1.379 0 2-.857 2-2s-.621-2-2-2H9Z\"\n clip-rule=\"evenodd\"\n ></path>\n </svg>\n</button>\n\n<button\n type=\"button\"\n class=\"ns-editor__button\"\n [attr.aria-label]=\"'italic' | nsEditorLabel\"\n (click)=\"command(commands.ITALIC)\"\n>\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n focusable=\"false\"\n aria-hidden=\"true\"\n >\n <path\n clip-rule=\"evenodd\"\n d=\"M9 6a1 1 0 0 1 1-1h6a1 1 0 1 1 0 2h-2.167l-1.666 10H14a1 1 0 1 1 0 2H8a1 1 0 1 1 0-2h2.167l1.666-10H10a1 1 0 0 1-1-1Z\"\n ></path>\n </svg>\n</button>\n\n<button\n type=\"button\"\n class=\"ns-editor__button\"\n [attr.aria-label]=\"'underline' | nsEditorLabel\"\n (click)=\"command(commands.UNDERLINE)\"\n>\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n focusable=\"false\"\n aria-hidden=\"true\"\n >\n <path\n clip-rule=\"evenodd\"\n d=\"M9 5a1 1 0 0 1 1 1v5.5c0 1.343.556 2.5 2 2.5s2-1.157 2-2.5V6a1 1 0 1 1 2 0v5.657C16 13.804 14.469 16 12 16c-2.462 0-4-2.196-4-4.343V6a1 1 0 0 1 1-1ZM6 17a1 1 0 1 0 0 2h12a1 1 0 1 0 0-2H6Z\"\n ></path>\n </svg>\n</button>\n","import {\n Component,\n ElementRef,\n forwardRef,\n HostListener,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewEncapsulation,\n inject,\n input\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NsEditorService } from './services/editor.service';\nimport { NsContentEditableComponent, NsValueAccessor } from '../form';\nimport { NsEditorParagraphComponent } from './components/paragraph/paragraph.component';\nimport { NsEditorToggleCommandComponent } from './components/toogle/toggle.component';\nimport { NsEditorColorPickerComponent } from './components/color-picker/color-picker.component';\nimport { NsEditorListComponent } from './components/list/list.component';\nimport { NsEditorLinkComponent } from './components/link/link.component';\n\nconst DEFAULT_COLOR_PRESETS = [\n '#b60205',\n '#d93f0b',\n '#fbca04',\n '#0e8a16',\n '#006b75',\n '#1d76db',\n '#0052cc',\n '#5319e7',\n '#e99695',\n '#f9d0c4',\n '#fef2c0',\n '#c2e0c6',\n '#bfdadc',\n '#c5def5',\n '#bfd4f2',\n '#d4c5f9'\n];\n\n@Component({\n selector: 'ns-editor',\n templateUrl: './editor.component.html',\n styleUrls: ['./editor.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsEditorComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.ns-editor]': 'true',\n '[class.ns-editor--disabled]': 'disabled()'\n },\n imports: [\n NsEditorParagraphComponent,\n NsEditorToggleCommandComponent,\n NsEditorColorPickerComponent,\n NsEditorListComponent,\n NsEditorLinkComponent,\n NsContentEditableComponent,\n FormsModule\n ]\n})\nexport class NsEditorComponent\n extends NsValueAccessor<string>\n implements OnInit, OnDestroy\n{\n private editor = inject(NsEditorService);\n\n readonly rows = input<number>(3);\n readonly maxLength = input<number>(undefined);\n readonly colorPresets = input<string[]>(DEFAULT_COLOR_PRESETS);\n\n @ViewChild(NsContentEditableComponent, { read: ElementRef, static: true })\n textArea: ElementRef<HTMLElement>;\n\n @HostListener('click')\n focused = () => this.textArea.nativeElement.focus();\n\n ngOnInit(): void {}\n\n get presets(): string[][] {\n const col = 8;\n const colors: string[][] = [];\n\n this.colorPresets().forEach((color, index) => {\n const row = Math.floor(index / col);\n if (!colors[row]) {\n colors.push([]);\n }\n colors[row].push(color);\n });\n\n return colors;\n }\n\n blur(): void {\n this.editor.saveSelection();\n this.onTouched();\n }\n\n ngOnDestroy() {}\n}\n","@if (label()) {\n <label class=\"ns-editor__label\" [attr.for]=\"id\">{{ label() }}</label>\n}\n\n<ul class=\"ns-editor__toolbar\">\n <li class=\"ns-editor__item\">\n <ns-editor-paragraph />\n </li>\n\n <li class=\"ns-editor__item\">\n <ns-editor-toggle />\n </li>\n\n <li class=\"ns-editor__item\">\n <ns-editor-color-picker [presets]=\"presets\" />\n </li>\n\n <li class=\"ns-editor__item\">\n <ns-editor-list />\n </li>\n\n <li class=\"ns-editor__item\">\n <ns-editor-link />\n </li>\n</ul>\n\n<ns-content-editable\n class=\"ns-editor__content\"\n [id]=\"id\"\n (blur)=\"blur()\"\n [maxlength]=\"maxLength()\"\n [disabled]=\"disabled()\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"setValue($event)\"\n/>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { NsFile } from '@ng-solid/core';\n\n@Pipe({\n name: 'nsImageUrl',\n standalone: true\n})\nexport class NsImageUrlPipe implements PipeTransform {\n transform(image: NsFile): string {\n let url = '';\n if (image && image.data && typeof image.data === 'string') {\n switch (true) {\n case URL.canParse(image.data) || /data:/.test(image.data):\n url = image.data;\n break;\n default:\n url = `data:${image.type};base64,${image.data}`;\n }\n }\n return url;\n }\n}\n","import {\n booleanAttribute,\n Component,\n ElementRef,\n forwardRef,\n inject,\n numberAttribute,\n Renderer2,\n ViewChild,\n input\n} from '@angular/core';\nimport { NsValueAccessor } from '../form';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { NsImageUrlPipe } from './pipes/image-url.pipe';\nimport { NsIconsComponent } from '@ng-solid/icons';\nimport { NS_UPLOAD_CLIENT, NsFile } from '@ng-solid/core';\n\n@Component({\n selector: 'ns-image-upload',\n templateUrl: './image-upload.component.html',\n imports: [CommonModule, NsImageUrlPipe, NsIconsComponent],\n standalone: true,\n host: {\n '[class.ns-image--loaded]': '!multi() && !!value()',\n '[class.ns-image--disabled]': 'disabled()'\n },\n styleUrls: ['./image-upload.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NsImageUploadComponent),\n multi: true\n }\n ]\n})\nexport class NsImageUploadComponent extends NsValueAccessor<\n NsFile | NsFile[] | null\n> {\n private client = inject(NS_UPLOAD_CLIENT, { optional: true });\n private renderer = inject(Renderer2);\n\n readonly accept = input('.jpg,.jpeg,.png,.webp,.avif,.gif');\n readonly multi = input(false, { transform: booleanAttribute });\n readonly limit = input(5, { transform: numberAttribute });\n\n @ViewChild('input', { static: false, read: ElementRef })\n imgRef: ElementRef<HTMLInputElement>;\n\n public loading: Set<string> = new Set<string>();\n private _fromIndex: number;\n private _toIndex: number;\n\n get images(): NsFile[] {\n const value = this.value();\n return Array.isArray(value) ? value : [];\n }\n\n get image(): NsFile | null {\n const value = this.value();\n return Array.isArray(value) ? null : value;\n }\n\n override writeValue(value: NsFile | NsFile[] | null) {\n if (Array.isArray(value)) {\n this.value.set(value);\n } else {\n this.value.set(this.multi() && !value ? [] : value);\n }\n }\n\n onClick() {\n if (!this.disabled()) {\n this.imgRef.nativeElement.click();\n }\n }\n\n load() {\n const { files } = this.imgRef.nativeElement;\n if (files.length) {\n this.add(NsFile.parse(files.item(0)));\n this.imgRef.nativeElement.value = null;\n }\n }\n\n add(image: NsFile) {\n this.loading.add(image.name);\n const reader = new FileReader();\n reader.readAsDataURL(image.data as File);\n reader.onload = () => {\n if (this.client) {\n this.client.upload(image).subscribe({\n next: (data) => {\n if (this.multi()) {\n this.value.set(\n this.images.filter(\n (img: NsFile) => !this.compareWith(img, image)\n )\n );\n }\n this.loading.delete(image.name);\n this.assignValue(data);\n },\n error: () => {\n this.loading.delete(image.name);\n }\n });\n image.data = reader.result as string;\n this.assignValue(image);\n } else {\n image.data = reader.result as string;\n this.loading.delete(image.name);\n this.assignValue(image);\n }\n };\n }\n\n private assignValue(image: NsFile) {\n if (this.multi()) {\n this.value.set([...this.images, image]);\n } else {\n this.value.set(image);\n }\n this.onChange(this.value());\n }\n\n private compareWith(from: NsFile, to: NsFile): boolean {\n return from.id === to.id || from.name === to.name;\n }\n\n remove(image: NsFile) {\n this.loading.add(image.name);\n if (this.client && !!image.id) {\n this.client.remove(image.id).subscribe({\n next: () => {\n this.value.set(\n this.multi() ? this.images.filter((img) => img !== image) : null\n );\n this.loading.delete(image.name);\n this.onChange(this.value());\n },\n error: () => {\n this.loading.delete(image.name);\n }\n });\n } else {\n this.value.set(\n this.multi() ? this.images.filter((img) => img !== image) : null\n );\n this.loading.delete(image.name);\n this.onChange(this.value());\n }\n }\n\n dragstart(event: DragEvent, index: number) {\n this.renderer.setStyle(event.target, 'opacity', 0.4);\n event.dataTransfer.dropEffect = 'move';\n this._fromIndex = index;\n }\n\n dragover(event: DragEvent, index: number) {\n event.preventDefault();\n this._toIndex = index;\n }\n\n dragend(event: DragEvent) {\n this.renderer.setStyle(event.target, 'opacity', 1);\n }\n\n drop(event: DragEvent) {\n event.stopPropagation();\n if (this._fromIndex !== this._toIndex) {\n const images = this.images;\n const element = images[this._fromIndex];\n images.splice(this._fromIndex, 1);\n images.splice(this._toIndex, 0, element);\n this.value.set(images);\n this.onChange(this.value());\n }\n }\n}\n","<div\n class=\"ns-image__wrap\"\n [ngClass]=\"{ 'ns-image__wrap--multiple': multi() && images.length }\"\n>\n @if (multi()) {\n @for (image of images; let i = $index; track i) {\n <div\n class=\"ns-image__thumbnail\"\n [draggable]=\"!disabled() && images.length > 1\"\n (dragstart)=\"dragstart($event, i)\"\n (dragend)=\"dragend($event)\"\n (dragover)=\"dragover($event, i)\"\n (drop)=\"drop($event)\"\n >\n <button\n type=\"button\"\n class=\"ns-image__button ns-image__button--upload\"\n (click)=\"onClick()\"\n [ngClass]=\"{ 'ns-image__button--loading': loading.has(image.name) }\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"label()\"\n >\n <img\n class=\"ns-image__preview\"\n [attr.src]=\"image | nsImageUrl\"\n [attr.alt]=\"image.name\"\n />\n <ns-icon class=\"ns-image__preload\" name=\"loader-circle\" />\n\n <div class=\"ns-image__overlay\">\n <ns-icon class=\"ns-image__drag\" name=\"grip\" />\n </div>\n </button>\n <button\n type=\"button\"\n class=\"ns-image__remove\"\n [disabled]=\"disabled() || loading.has(image.name)\"\n [attr.aria-label]=\"'Remove ' + image.name\"\n (click)=\"remove(image); $event.stopPropagation()\"\n >\n <ns-icon name=\"trash-2\" />\n </button>\n </div>\n }\n }\n\n <button\n type=\"button\"\n class=\"ns-image__drag-container\"\n (click)=\"onClick()\"\n [ngClass]=\"{\n 'ns-image__drag-container--loading':\n image && !multi() && loading.has(image.name)\n }\"\n [hidden]=\"multi() && images.length >= limit()\"\n [disabled]=\"disabled()\"\n >\n @if (image && !multi()) {\n <img\n class=\"ns-image__fluid\"\n [attr.src]=\"image | nsImageUrl\"\n [ngClass]=\"{ 'ns-image__fluid--disabled': disabled() }\"\n alt\n />\n }\n\n @if (!image || multi()) {\n <div class=\"ns-image__empty\">\n <ns-icon name=\"image\" />\n <span>{{ label() }}</span>\n </div>\n }\n\n <input\n [hidden]=\"true\"\n type=\"file\"\n (change)=\"load()\"\n [multiple]=\"multi()\"\n [accept]=\"accept()\"\n #input\n [disabled]=\"disabled()\"\n />\n </button>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n booleanAttribute,\n input\n} from '@angular/core';\nimport { NsColor } from '../../types';\n\n@Component({\n selector: 'ns-link',\n standalone: true,\n template: `\n <a\n class=\"ns-link__anchor\"\n [href]=\"disabled() ? null : href()\"\n [target]=\"target() || null\"\n [rel]=\"rel() || null\"\n [attr.aria-disabled]=\"disabled() || null\"\n [attr.tabindex]=\"disabled() ? -1 : null\"\n (click)=\"onClick($event)\"\n ><ng-content\n /></a>\n `,\n styleUrl: './link.component.scss',\n host: {\n '[class.ns-link]': 'true',\n '[class.ns-link--disabled]': 'disabled()',\n '[class.ns-link--neutral]': \"color() === 'neutral'\",\n '[class.ns-link--primary]': \"color() === 'primary'\",\n '[class.ns-link--success]': \"color() === 'success'\",\n '[class.ns-link--warning]': \"color() === 'warning'\",\n '[class.ns-link--danger]': \"color() === 'danger'\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsLinkComponent {\n readonly href = input<string>('');\n readonly target = input<'_self' | '_blank' | '_parent' | '_top' | ''>('');\n readonly rel = input<string>('');\n readonly color = input<NsColor>('primary');\n readonly disabled = input(false, { transform: booleanAttribute });\n\n onClick(event: MouseEvent): void {\n if (this.disabled()) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n contentChildren,\n inject,\n input,\n model,\n signal\n} from '@angular/core';\nimport { NsKey, NsSelectionMode } from '../../types';\nimport { getNsNextNavigableIndex, NsTypeaheadController } from '../a11y';\n\n@Component({\n selector: 'ns-list-box-option',\n standalone: true,\n template: '<ng-content />',\n styleUrls: ['./list-box.component.scss'],\n host: {\n role: 'option',\n '[attr.data-ns-list-box-key]': 'key()',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.aria-selected]': 'selected()',\n '[attr.tabindex]': 'active() ? 0 : -1',\n '[class.ns-list-box-option]': 'true',\n '[class.ns-list-box-option--selected]': 'selected()',\n '[class.ns-list-box-option--disabled]': 'disabled()',\n '[attr.data-selected]': 'selected()',\n '[attr.data-disabled]': 'disabled()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsListBoxOptionComponent {\n readonly key = input.required<NsKey>();\n readonly label = input.required<string>();\n readonly disabled = input(false);\n readonly selected = signal(false);\n readonly active = signal(false);\n\n readonly element = inject(ElementRef<HTMLElement>);\n}\n\n@Component({\n selector: 'ns-list-box',\n standalone: true,\n template: '<ng-content />',\n styleUrls: ['./list-box.component.scss'],\n host: {\n role: 'listbox',\n '[attr.aria-label]': 'label()',\n '[attr.aria-multiselectable]': \"selectionMode() === 'multiple'\",\n '[attr.tabindex]': '0',\n '[class.ns-list-box]': 'true'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsListBoxComponent implements AfterContentInit {\n readonly label = input('Options');\n readonly selectionMode = input<NsSelectionMode>('single');\n readonly selectedKeys = model<readonly NsKey[]>([]);\n readonly options = contentChildren(NsListBoxOptionComponent);\n private readonly typeahead = new NsTypeaheadController<{\n label: string;\n disabled: boolean;\n }>();\n private activeIndex = -1;\n\n ngAfterContentInit(): void {\n this.syncState();\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n const option = this.optionFor(event.target as Node);\n if (option) {\n this.select(option.key());\n }\n }\n\n @HostListener('keydown', ['$event'])\n onKeydown(event: KeyboardEvent): void {\n const options = this.options();\n if (!options.length) {\n return;\n }\n if (event.key === ' ' || event.key === 'Enter') {\n const option =\n options[this.activeIndex] ?? options.find((item) => !item.disabled());\n if (option) {\n event.preventDefault();\n this.select(option.key());\n }\n return;\n }\n let next = -1;\n if (['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) {\n next = getNsNextNavigableIndex(\n options.map((option) => ({\n key: option.key(),\n disabled: option.disabled()\n })),\n this.activeIndex,\n event.key as 'ArrowDown' | 'ArrowUp' | 'Home' | 'End'\n );\n } else {\n next = this.typeahead.find(\n options.map((option) => ({\n label: option.label(),\n disabled: option.disabled()\n })),\n event.key,\n this.activeIndex\n );\n }\n if (next >= 0) {\n event.preventDefault();\n this.focus(next);\n }\n }\n\n select(key: NsKey): void {\n const option = this.options().find((candidate) => candidate.key() === key);\n if (!option || option.disabled() || this.selectionMode() === 'none') {\n return;\n }\n const selected = new Set(this.selectedKeys());\n if (this.selectionMode() === 'multiple') {\n selected.has(key) ? selected.delete(key) : selected.add(key);\n } else {\n selected.clear();\n selected.add(key);\n }\n this.selectedKeys.set([...selected]);\n this.syncState();\n }\n\n private optionFor(target: Node): NsListBoxOptionComponent | undefined {\n return this.options().find((option) =>\n option.element.nativeElement.contains(target)\n );\n }\n\n private focus(index: number): void {\n this.activeIndex = index;\n for (const [optionIndex, option] of this.options().entries()) {\n option.active.set(optionIndex === index);\n }\n this.options()[index].element.nativeElement.focus();\n }\n\n private syncState(): void {\n const selected = new Set(this.selectedKeys());\n for (const option of this.options()) {\n option.selected.set(selected.has(option.key()));\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n numberAttribute\n} from '@angular/core';\nimport { NsColor } from '../../types';\n\n@Component({\n selector: 'ns-meter',\n standalone: true,\n template:\n '<span class=\"ns-meter__value\" [style.inline-size.%]=\"percentage()\"></span>',\n styleUrl: './meter.component.scss',\n host: {\n role: 'meter',\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.aria-valuemin]': 'min()',\n '[attr.aria-valuemax]': 'max()',\n '[attr.aria-valuenow]': 'value()',\n '[class.ns-meter]': 'true',\n '[class.ns-meter--neutral]': \"color() === 'neutral'\",\n '[class.ns-meter--primary]': \"color() === 'primary'\",\n '[class.ns-meter--success]': \"color() === 'success'\",\n '[class.ns-meter--warning]': \"color() === 'warning'\",\n '[class.ns-meter--danger]': \"color() === 'danger'\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsMeterComponent {\n readonly value = input(0, { transform: numberAttribute });\n readonly min = input(0, { transform: numberAttribute });\n readonly max = input(100, { transform: numberAttribute });\n readonly ariaLabel = input<string>('Meter');\n readonly color = input<NsColor>('primary');\n readonly percentage = computed(() => {\n const range = this.max() - this.min();\n if (range <= 0) return 0;\n return Math.min(\n 100,\n Math.max(0, ((this.value() - this.min()) / range) * 100)\n );\n });\n}\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n ElementRef,\n OnDestroy,\n Type,\n ViewChild,\n ViewContainerRef,\n effect,\n inject,\n input,\n model,\n output,\n signal\n} from '@angular/core';\nimport { NsIconsComponent } from '@ng-solid/icons';\nimport {\n NsOverlayCloseReason,\n NsOverlayRef,\n NsOverlayService\n} from '../overlay';\nimport { NsModalSize } from './interfaces/modal-config';\n\n@Component({\n selector: 'ns-modal',\n standalone: true,\n imports: [CommonModule, NsIconsComponent],\n template: `\n <div class=\"ns-modal__backdrop\" aria-hidden=\"true\"></div>\n <section\n #dialog\n class=\"ns-modal__dialog\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-label]=\"title() || null\"\n [class.ns-modal__dialog--sm]=\"size() === 'sm'\"\n [class.ns-modal__dialog--lg]=\"size() === 'lg'\"\n [class.ns-modal__dialog--xl]=\"size() === 'xl'\"\n tabindex=\"-1\"\n >\n <header class=\"ns-modal__header\">\n <div class=\"ns-modal__heading\">\n @if (title()) {\n <h2 class=\"ns-modal__title\">{{ title() }}</h2>\n }\n <ng-content select=\"[modal-description]\" />\n </div>\n <button\n class=\"ns-modal__close\"\n type=\"button\"\n [attr.aria-label]=\"closeLabel()\"\n (click)=\"close()\"\n >\n <ns-icon name=\"x\" size=\"18\" aria-hidden=\"true\" />\n </button>\n </header>\n <div class=\"ns-modal__body\">\n @if (contentComponent()) {\n <ng-template #contentHost />\n } @else {\n <ng-content />\n }\n </div>\n <footer class=\"ns-modal__footer\">\n <ng-content select=\"[modal-footer]\" />\n </footer>\n </section>\n `,\n styleUrl: './modal.component.scss',\n host: {\n '[class.ns-modal]': 'true',\n '[attr.data-state]': \"isOpen() ? 'open' : 'closed'\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsModalComponent implements AfterViewInit, OnDestroy {\n readonly isOpen = model(false);\n readonly title = input('');\n readonly size = input<NsModalSize>('md');\n readonly closeLabel = input('Close modal');\n readonly closeOnEscape = input(true);\n readonly closed = output<NsOverlayCloseReason>();\n\n readonly contentComponent = input<Type<object> | null>(null);\n readonly contentInputs = input<Record<string, unknown>>({});\n readonly closeReason = signal<NsOverlayCloseReason | undefined>(undefined);\n\n @ViewChild('contentHost', { read: ViewContainerRef })\n private contentHost?: ViewContainerRef;\n\n private readonly element = inject(ElementRef<HTMLElement>);\n private readonly overlay = inject(NsOverlayService);\n private overlayRef?: NsOverlayRef;\n private contentRef?: ComponentRef<object>;\n private viewInitialized = false;\n\n constructor() {\n effect(() => {\n const open = this.isOpen();\n if (!this.viewInitialized) {\n return;\n }\n open ? this.openOverlay() : this.overlayRef?.close('programmatic');\n });\n effect(() => this.createContent());\n }\n\n ngAfterViewInit(): void {\n this.viewInitialized = true;\n if (this.isOpen()) {\n this.openOverlay();\n }\n this.createContent();\n }\n\n ngOnDestroy(): void {\n this.overlayRef?.close('programmatic');\n this.contentRef?.destroy();\n }\n\n close(): void {\n this.isOpen.set(false);\n }\n\n getContent<T extends object>(): T {\n if (!this.contentRef) {\n throw new Error('Modal content could not be created.');\n }\n return this.contentRef.instance as T;\n }\n\n private openOverlay(): void {\n if (this.overlayRef) {\n return;\n }\n const overlayRef = this.overlay.open({\n closeOnEscape: this.closeOnEscape(),\n closeOnOutsidePointer: false,\n trapFocus: true,\n restoreFocus: true,\n inert: true,\n lockScroll: true\n });\n overlayRef.portal.classList.add('ns-modal__portal');\n overlayRef.portal.style.inset = '0';\n overlayRef.portal.style.border = '0';\n overlayRef.portal.style.borderRadius = '0';\n overlayRef.portal.style.background = 'transparent';\n overlayRef.portal.style.boxShadow = 'none';\n overlayRef.attach(this.element.nativeElement);\n this.overlayRef = overlayRef;\n overlayRef.onClose((reason) => {\n if (this.overlayRef !== overlayRef) {\n return;\n }\n this.overlayRef = undefined;\n this.closeReason.set(reason);\n if (this.isOpen()) {\n this.isOpen.set(false);\n }\n this.closed.emit(reason);\n });\n }\n\n private createContent(): void {\n const component = this.contentComponent();\n if (\n !this.viewInitialized ||\n !component ||\n !this.contentHost ||\n this.contentRef\n ) {\n return;\n }\n this.contentRef = this.contentHost.createComponent(component);\n for (const [name, value] of Object.entries(this.contentInputs())) {\n this.contentRef.setInput(name, value);\n }\n }\n}\n","import { ComponentRef, Signal } from '@angular/core';\nimport { NsOverlayCloseReason } from '../../overlay';\nimport { NsModalComponent } from '../modal.component';\n\n/** A programmatically opened modal and its typed content instance. */\nexport class NsModalRef<T> {\n constructor(\n private readonly componentRef: ComponentRef<NsModalComponent>,\n readonly content: T,\n readonly closed: Signal<NsOverlayCloseReason | undefined>\n ) {}\n\n close(): void {\n this.componentRef.instance.close();\n }\n}\n","import {\n ApplicationRef,\n EnvironmentInjector,\n Injectable,\n createComponent,\n inject\n} from '@angular/core';\nimport { NsModalConfig } from '../interfaces/modal-config';\nimport { NsModalComponent } from '../modal.component';\nimport { NsModalRef } from '../models/modal-ref';\n\n@Injectable({ providedIn: 'root' })\nexport class NsModalService {\n private readonly applicationRef = inject(ApplicationRef);\n private readonly environmentInjector = inject(EnvironmentInjector);\n\n open<T extends object>(config: NsModalConfig<T>): NsModalRef<T> {\n const componentRef = createComponent(NsModalComponent, {\n environmentInjector: this.environmentInjector\n });\n componentRef.setInput('title', config.title ?? '');\n componentRef.setInput('size', config.size ?? 'md');\n componentRef.setInput('closeOnEscape', config.closeOnEscape ?? true);\n componentRef.setInput('contentComponent', config.component);\n componentRef.setInput('contentInputs', config.inputs ?? {});\n this.applicationRef.attachView(componentRef.hostView);\n componentRef.changeDetectorRef.detectChanges();\n componentRef.instance.isOpen.set(true);\n\n const modalRef = new NsModalRef(\n componentRef,\n componentRef.instance.getContent<T>(),\n componentRef.instance.closeReason\n );\n componentRef.instance.closed.subscribe(() => {\n this.applicationRef.detachView(componentRef.hostView);\n componentRef.destroy();\n });\n return modalRef;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model\n} from '@angular/core';\n\n@Component({\n selector: 'ns-pagination',\n standalone: true,\n template: `\n <nav class=\"ns-pagination__navigation\" aria-label=\"Pagination\">\n <button\n class=\"ns-pagination__control\"\n type=\"button\"\n (click)=\"goTo(page() - 1)\"\n [disabled]=\"page() <= 1\"\n >\n Previous\n </button>\n @for (item of pages(); track item) {\n <button\n class=\"ns-pagination__control\"\n type=\"button\"\n [class.ns-pagination__control--current]=\"item === page()\"\n [attr.data-current]=\"item === page()\"\n [attr.aria-current]=\"item === page() ? 'page' : null\"\n (click)=\"goTo(item)\"\n >\n {{ item }}\n </button>\n }\n <button\n class=\"ns-pagination__control\"\n type=\"button\"\n (click)=\"goTo(page() + 1)\"\n [disabled]=\"page() >= pageCount()\"\n >\n Next\n </button>\n </nav>\n `,\n styleUrls: ['./pagination.component.scss'],\n host: { '[class.ns-pagination]': 'true' },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsPaginationComponent {\n readonly total = input.required<number>();\n readonly pageSize = input(10);\n readonly siblingCount = input(1);\n readonly page = model(1);\n readonly pageCount = computed(() =>\n Math.max(\n 1,\n Math.ceil(Math.max(0, this.total()) / Math.max(1, this.pageSize()))\n )\n );\n readonly pages = computed(() => {\n const count = this.pageCount();\n const current = Math.min(Math.max(1, this.page()), count);\n const start = Math.max(1, current - this.siblingCount());\n const end = Math.min(count, current + this.siblingCount());\n return Array.from({ length: end - start + 1 }, (_, index) => start + index);\n });\n\n goTo(page: number): void {\n this.page.set(Math.min(Math.max(1, page), this.pageCount()));\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnDestroy,\n effect,\n inject,\n input,\n model,\n output\n} from '@angular/core';\nimport { NsPlacement } from '../../types';\nimport {\n NsOverlayCloseReason,\n NsOverlayRef,\n NsOverlayService\n} from '../overlay';\n\n@Component({\n selector: 'ns-popover',\n standalone: true,\n template: '<ng-content />',\n styleUrl: './popover.component.scss',\n host: {\n role: 'dialog',\n '[class.ns-popover]': 'true',\n '[attr.aria-modal]': 'false',\n '[attr.aria-hidden]': '!isOpen()',\n '[attr.data-state]': \"isOpen() ? 'open' : 'closed'\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsPopoverComponent implements AfterViewInit, OnDestroy {\n readonly isOpen = model(false);\n readonly origin = input.required<HTMLElement>();\n readonly placement = input<NsPlacement>('bottom-start');\n readonly closeOnEscape = input(true);\n readonly closed = output<NsOverlayCloseReason>();\n\n private readonly element = inject(ElementRef<HTMLElement>);\n private readonly overlay = inject(NsOverlayService);\n private overlayRef?: NsOverlayRef;\n private viewInitialized = false;\n\n constructor() {\n effect(() => {\n const open = this.isOpen();\n if (!this.viewInitialized) {\n return;\n }\n open ? this.openOverlay() : this.overlayRef?.close('programmatic');\n });\n }\n\n ngAfterViewInit(): void {\n this.viewInitialized = true;\n if (this.isOpen()) {\n this.openOverlay();\n }\n }\n\n ngOnDestroy(): void {\n this.overlayRef?.close('programmatic');\n }\n\n close(): void {\n this.isOpen.set(false);\n }\n\n private openOverlay(): void {\n if (this.overlayRef) {\n return;\n }\n const overlayRef = this.overlay.open({\n origin: this.origin(),\n placement: this.placement(),\n closeOnEscape: this.closeOnEscape(),\n closeOnOutsidePointer: true,\n trapFocus: false,\n restoreFocus: false\n });\n overlayRef.attach(this.element.nativeElement);\n this.overlayRef = overlayRef;\n overlayRef.onClose((reason) => {\n if (this.overlayRef !== overlayRef) {\n return;\n }\n this.overlayRef = undefined;\n if (this.isOpen()) {\n this.isOpen.set(false);\n }\n this.closed.emit(reason);\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n booleanAttribute,\n computed,\n input,\n numberAttribute\n} from '@angular/core';\nimport { NsColor } from '../../types';\n\n@Component({\n selector: 'ns-progress-bar',\n standalone: true,\n template:\n '<span class=\"ns-progress-bar__value\" [style.inline-size.%]=\"percentage()\"></span>',\n styleUrl: './progress-bar.component.scss',\n host: {\n role: 'progressbar',\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.aria-valuemin]': 'min()',\n '[attr.aria-valuemax]': 'max()',\n '[attr.aria-valuenow]': 'indeterminate() ? null : value()',\n '[attr.aria-busy]': 'indeterminate() || null',\n '[class.ns-progress-bar]': 'true',\n '[class.ns-progress-bar--indeterminate]': 'indeterminate()',\n '[class.ns-progress-bar--neutral]': \"color() === 'neutral'\",\n '[class.ns-progress-bar--primary]': \"color() === 'primary'\",\n '[class.ns-progress-bar--success]': \"color() === 'success'\",\n '[class.ns-progress-bar--warning]': \"color() === 'warning'\",\n '[class.ns-progress-bar--danger]': \"color() === 'danger'\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsProgressBarComponent {\n readonly value = input(0, { transform: numberAttribute });\n readonly min = input(0, { transform: numberAttribute });\n readonly max = input(100, { transform: numberAttribute });\n readonly indeterminate = input(false, { transform: booleanAttribute });\n readonly ariaLabel = input<string>('Progress');\n readonly color = input<NsColor>('primary');\n readonly percentage = computed(() => {\n const range = this.max() - this.min();\n if (range <= 0 || this.indeterminate()) return 0;\n return Math.min(\n 100,\n Math.max(0, ((this.value() - this.min()) / range) * 100)\n );\n });\n}\n","export class NsSchedule {\n public id: number;\n public subject: string;\n public body: string;\n public startTime: string;\n public endTime: string;\n public created: string;\n public updated: string;\n\n constructor(props: Partial<NsSchedule> = {}) {\n Object.assign(this, props);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { NsSchedule } from '../models/schedule';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NsScheduleService {\n public readonly onClick$: Subject<NsSchedule> = new Subject<NsSchedule>();\n private _date: Date;\n\n constructor() {}\n\n setCurrentDate(date) {\n this._date = date;\n }\n\n get currentDate() {\n return this._date;\n }\n\n send(schedule: Partial<NsSchedule>) {\n this.onClick$.next(new NsSchedule(schedule));\n }\n\n formatDate(date: Date) {\n const pad = (num) => ('00' + num).slice(-2);\n return (\n date.getFullYear() +\n '-' +\n pad(date.getMonth() + 1) +\n '-' +\n pad(date.getDate()) +\n ' ' +\n pad(date.getHours()) +\n ':' +\n pad(date.getMinutes()) +\n ':' +\n pad(date.getSeconds())\n );\n }\n}\n","import { Component, HostListener, OnInit, inject, input } from '@angular/core';\nimport { NsScheduleService } from '../../services/schedule.service';\n\n@Component({\n selector: 'ns-schedule-cell',\n template: '',\n standalone: true,\n host: {\n '[class.ns-schedule__timeline-cell]': 'true'\n }\n})\nexport class NsScheduleCellComponent implements OnInit {\n private service = inject(NsScheduleService);\n\n readonly day = input<number>(undefined);\n readonly timeline = input<number>(undefined);\n readonly startIn = input<number>(undefined);\n readonly endIn = input<number>(undefined);\n\n ngOnInit(): void {}\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n event.preventDefault();\n const startTime = new Date(\n this.service.currentDate.getFullYear(),\n this.service.currentDate.getMonth(),\n this.day(),\n this.timeline(),\n this.startIn()\n );\n const endTime = new Date(\n this.service.currentDate.getFullYear(),\n this.service.currentDate.getMonth(),\n this.day(),\n this.timeline(),\n this.endIn()\n );\n\n this.service.send({\n startTime: this.service.formatDate(startTime),\n endTime: this.service.formatDate(endTime)\n });\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'nsWeekday',\n standalone: true\n})\nexport class WeekDayPipe implements PipeTransform {\n private weekdays: string[] = [\n 'Domingo',\n 'Lunes',\n 'Martes',\n 'Miércoles',\n 'Jueves',\n 'Viernes',\n 'Sábado'\n ];\n\n transform(day: number): string {\n return this.weekdays[day];\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { NsSchedule } from '../models/schedule';\nimport { notEmpty } from '@ng-solid/core';\nimport { NsScheduleService } from '../services/schedule.service';\n\n@Pipe({\n name: 'filterByDay',\n standalone: true\n})\nexport class FilterByDayPipe implements PipeTransform {\n private service = inject(NsScheduleService);\n\n transform(schedules: NsSchedule[], day: number): NsSchedule[] {\n const current = this.service.currentDate;\n const selector = ({ startTime }: NsSchedule) => {\n const date = new Date(startTime);\n return (\n day === date.getDate() &&\n current.getMonth() === date.getMonth() &&\n current.getFullYear() === date.getFullYear()\n );\n };\n return notEmpty(schedules) ? schedules.filter(selector) : [];\n }\n}\n","import {\n AfterContentInit,\n Component,\n HostListener,\n inject,\n ViewEncapsulation,\n input\n} from '@angular/core';\nimport { NsSchedule } from '../../models/schedule';\nimport { NsScheduleService } from '../../services/schedule.service';\n\n@Component({\n selector: 'ns-schedule-event',\n templateUrl: './event.component.html',\n styleUrls: ['./event.component.scss'],\n host: {\n '[class.ns-schedule__event]': 'true',\n '[class.ns-schedule__event--show]': 'schedule() && matchHour',\n '[style.height.px]': 'height'\n },\n encapsulation: ViewEncapsulation.None\n})\nexport class NsScheduleEventComponent implements AfterContentInit {\n readonly schedule = input<NsSchedule>(undefined);\n readonly timeline = input<number>(undefined);\n\n public height: number;\n private service = inject(NsScheduleService);\n\n get matchHour() {\n const schedule = this.schedule();\n return (\n !!schedule && new Date(schedule.startTime).getHours() === this.timeline()\n );\n }\n\n ngAfterContentInit() {\n const schedule = this.schedule();\n if (schedule) {\n const startTime = new Date(schedule.startTime);\n const endTime = new Date(schedule.endTime);\n const hours = Math.abs(startTime.getTime() - endTime.getTime()) / 36e5;\n this.height = hours > 0.5 ? 49.5 * (hours / 0.5) : 45;\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n event.preventDefault();\n const schedule = this.schedule();\n if (schedule) {\n this.service.send(schedule);\n }\n }\n}\n","@if (schedule(); as currentSchedule) {\n <span class=\"ns-schedule__event-subject\">{{ currentSchedule.subject }}</span>\n <div class=\"ns-schedule__event-body\" [innerHtml]=\"currentSchedule.body\"></div>\n}\n","import { Component, effect, inject, OnInit, input } from '@angular/core';\nimport { NsScheduleService } from '../../services/schedule.service';\nimport { NsSchedule } from '../../models/schedule';\nimport { NsScheduleCellComponent } from '../cell/cell.component';\nimport { WeekDayPipe } from '../../pipes/week-day.pipe';\nimport { FilterByDayPipe } from '../../pipes/filter-by-day.pipe';\nimport { NsScheduleEventComponent } from '../event/event.component';\n\n@Component({\n selector: 'ns-schedule-day',\n templateUrl: './day.component.html',\n imports: [\n NsScheduleCellComponent,\n WeekDayPipe,\n FilterByDayPipe,\n NsScheduleEventComponent\n ],\n styleUrl: './day.component.scss'\n})\nexport class DayComponent implements OnInit {\n readonly schedules = input<NsSchedule[]>(undefined);\n readonly currentDate = input<Date>(undefined);\n public current: number;\n public first: number;\n public days: number[];\n public hours: number[];\n private service = inject(NsScheduleService);\n private DAYS_OF_WEEK: number = 7;\n\n private readonly syncCurrentDate = effect(() => {\n const date = this.currentDate();\n if (date instanceof Date) {\n this.current = date.getDate();\n this.first = date.getDate() - date.getDay();\n this.days = Array(this.DAYS_OF_WEEK)\n .fill(this.first)\n .map((x, y) => x + y);\n this.service.setCurrentDate(date);\n }\n });\n\n ngOnInit(): void {\n this.hours = Array(24)\n .fill(0)\n .map((x, y) => x + y);\n }\n}\n","<div class=\"ns-schedule__header-wrap\">\n <div class=\"ns-schedule__header\"></div>\n <div class=\"ns-schedule__header ns-schedule__selected\">\n <div class=\"ns-schedule__header-date\">{{ current }}</div>\n <div class=\"ns-schedule__header-day\">\n {{ days.indexOf(current) | nsWeekday }}\n </div>\n </div>\n</div>\n\n<div class=\"ns-schedule__timeline-wrap\">\n @for (timeline of hours; track timeline) {\n <div class=\"ns-schedule__timeline\">\n <div class=\"ns-schedule__timeline-day\">{{ timeline }}</div>\n <div class=\"ns-schedule__timeline-day ns-schedule__selected\">\n <ns-schedule-cell\n [day]=\"current\"\n [timeline]=\"timeline\"\n [startIn]=\"0\"\n [endIn]=\"30\"\n />\n <ns-schedule-cell\n [day]=\"current\"\n [timeline]=\"timeline + 1\"\n [startIn]=\"30\"\n [endIn]=\"0\"\n />\n\n @for (schedule of schedules() | filterByDay: current; track schedule) {\n <ns-schedule-event [schedule]=\"schedule\" [timeline]=\"timeline\" />\n }\n </div>\n </div>\n }\n</div>\n","import { Component, effect, OnInit, inject, input } from '@angular/core';\nimport { NsScheduleService } from '../../services/schedule.service';\nimport { NsSchedule } from '../../models/schedule';\nimport { CommonModule } from '@angular/common';\nimport { WeekDayPipe } from '../../pipes/week-day.pipe';\nimport { NsScheduleCellComponent } from '../cell/cell.component';\nimport { FilterByDayPipe } from '../../pipes/filter-by-day.pipe';\nimport { NsScheduleEventComponent } from '../event/event.component';\n\n@Component({\n selector: 'ns-schedule-week',\n imports: [\n CommonModule,\n WeekDayPipe,\n NsScheduleCellComponent,\n FilterByDayPipe,\n NsScheduleEventComponent\n ],\n templateUrl: './week.component.html',\n styleUrl: './week.component.scss',\n standalone: true\n})\nexport class WeekComponent implements OnInit {\n private service = inject(NsScheduleService);\n\n readonly schedules = input<NsSchedule[]>(undefined);\n readonly currentDate = input<Date>(undefined);\n\n public currentDay: number;\n public first: number;\n public last: number;\n public days: number[];\n public hours: number[];\n\n private DAYS_OF_WEEK: number = 7;\n\n private readonly syncCurrentDate = effect(() => {\n const date = this.currentDate();\n if (date instanceof Date) {\n this.first = date.getDate() - date.getDay();\n this.last = this.first + 6;\n this.service.setCurrentDate(date);\n let lastDayOfPrevMonth = new Date(\n date.getFullYear(),\n date.getMonth() + 1,\n 0\n ).getDate();\n this.days = Array(this.DAYS_OF_WEEK)\n .fill(this.first)\n .map((day, index) => (day > 0 ? day + index : lastDayOfPrevMonth--));\n }\n });\n\n get current() {\n return this.service.currentDate;\n }\n\n ngOnInit(): void {\n this.currentDay = new Date().getDate();\n this.hours = Array(24)\n .fill(0)\n .map((x, y) => x + y);\n }\n}\n","<div class=\"ns-schedule__header-wrap\">\n <div class=\"ns-schedule__header\"></div>\n @for (day of days; track day; let i = $index) {\n <div\n class=\"ns-schedule__header\"\n [ngClass]=\"{ 'ns-schedule__selected': currentDay === day }\"\n >\n <div class=\"ns-schedule__header-date\">{{ day }}</div>\n <div class=\"ns-schedule__header-day\">{{ i | nsWeekday }}</div>\n </div>\n }\n</div>\n\n<div class=\"ns-schedule__timeline-wrap\">\n @for (timeline of hours; track timeline) {\n <div class=\"ns-schedule__timeline\">\n <div class=\"ns-schedule__timeline-day\">{{ timeline }}</div>\n @for (day of days; track day) {\n <div\n class=\"ns-schedule__timeline-day\"\n [ngClass]=\"{ 'ns-schedule__selected': currentDay === day }\"\n >\n <ns-schedule-cell\n [day]=\"day\"\n [timeline]=\"timeline\"\n [startIn]=\"0\"\n [endIn]=\"30\"\n />\n <ns-schedule-cell\n [day]=\"day\"\n [timeline]=\"timeline + 1\"\n [startIn]=\"30\"\n [endIn]=\"0\"\n />\n\n @for (schedule of schedules() | filterByDay: day; track schedule) {\n <ns-schedule-event [schedule]=\"schedule\" [timeline]=\"timeline\" />\n }\n </div>\n }\n </div>\n }\n</div>\n","import { Component, effect, OnInit, inject, input } from '@angular/core';\nimport { NsScheduleService } from '../../services/schedule.service';\nimport { NsSchedule } from '../../models/schedule';\nimport { CommonModule } from '@angular/common';\nimport { WeekDayPipe } from '../../pipes/week-day.pipe';\nimport { NsScheduleCellComponent } from '../cell/cell.component';\nimport { NsScheduleEventComponent } from '../event/event.component';\nimport { FilterByDayPipe } from '../../pipes/filter-by-day.pipe';\n\n@Component({\n selector: 'ns-schedule-workweek',\n imports: [\n CommonModule,\n WeekDayPipe,\n NsScheduleCellComponent,\n NsScheduleEventComponent,\n FilterByDayPipe\n ],\n templateUrl: './workweek.component.html',\n styleUrl: './workweek.component.scss',\n standalone: true\n})\nexport class NsWorkweekComponent implements OnInit {\n private service = inject(NsScheduleService);\n\n readonly schedules = input<NsSchedule[]>(undefined);\n readonly currentDate = input<Date>(undefined);\n\n public current: number;\n public first: number;\n public last: number;\n public days: number[] = [];\n public hours: number[];\n private DAYS_OF_WORKWEEK: number = 5;\n\n private readonly syncCurrentDate = effect(() => {\n const date = this.currentDate();\n if (date instanceof Date) {\n this.first = date.getDate() - date.getDay() + 1;\n this.last = this.first + 4;\n this.days = [];\n this.service.setCurrentDate(date);\n let lastDayOfPrevMonth = new Date(\n date.getFullYear(),\n date.getMonth() - 1,\n -1\n ).getDate();\n\n let current = 0;\n while (current < this.DAYS_OF_WORKWEEK) {\n this.days.push(this.first < 1 ? lastDayOfPrevMonth : this.first);\n this.first++;\n lastDayOfPrevMonth--;\n current++;\n }\n }\n });\n\n identityDay = (index, item: NsSchedule) => item.id;\n\n ngOnInit(): void {\n this.current = new Date().getDate();\n this.hours = Array(24)\n .fill(0)\n .map((x, y) => x + y);\n }\n}\n","<div class=\"ns-schedule__header-wrap\">\n <div class=\"ns-schedule__header\"></div>\n @for (day of days; track day; let i = $index) {\n <div\n class=\"ns-schedule__header\"\n [ngClass]=\"{ 'ns-schedule__selected': current === day }\"\n >\n <div class=\"ns-schedule__header-date\">{{ day }}</div>\n <div class=\"ns-schedule__header-day\">{{ i + 1 | nsWeekday }}</div>\n </div>\n }\n</div>\n\n<div class=\"ns-schedule__timeline-wrap\">\n @for (timeline of hours; track timeline) {\n <div class=\"ns-schedule__timeline\">\n <div class=\"ns-schedule__timeline-day\">{{ timeline }}</div>\n @for (day of days; track day) {\n <div\n class=\"ns-schedule__timeline-day\"\n [ngClass]=\"{ 'ns-schedule__selected': current === day }\"\n >\n <ns-schedule-cell\n [day]=\"current\"\n [timeline]=\"timeline\"\n [startIn]=\"0\"\n [endIn]=\"30\"\n />\n <ns-schedule-cell\n [day]=\"current\"\n [timeline]=\"timeline + 1\"\n [startIn]=\"30\"\n [endIn]=\"0\"\n />\n\n @for (\n schedule of schedules() | filterByDay: day;\n track identityDay($index, schedule)\n ) {\n <ns-schedule-event [schedule]=\"schedule\" [timeline]=\"timeline\" />\n }\n </div>\n }\n </div>\n }\n</div>\n","import {\n Component,\n inject,\n ViewEncapsulation,\n input,\n model\n} from '@angular/core';\nimport { outputFromObservable } from '@angular/core/rxjs-interop';\nimport { NsScheduleService } from './services/schedule.service';\nimport { NsSchedule } from './models/schedule';\nimport { NsDateView } from '../../types';\nimport { NsButtonComponent } from '../button';\nimport { NsDatePickerComponent } from '../form';\nimport { FormsModule } from '@angular/forms';\nimport { DateValue, getLocalTimeZone, today } from '@internationalized/date';\n\nimport { DayComponent } from './components/day/day.component';\nimport { WeekComponent } from './components/week/week.component';\nimport { NsWorkweekComponent } from './components/workweek/workweek.component';\nimport {\n NsSelectorListComponent,\n NsSelectorListItemComponent\n} from '../selector-list';\n\n@Component({\n selector: 'ns-schedule',\n imports: [\n NsButtonComponent,\n FormsModule,\n DayComponent,\n WeekComponent,\n NsWorkweekComponent,\n NsDatePickerComponent,\n NsSelectorListComponent,\n NsSelectorListItemComponent\n ],\n templateUrl: './schedule.component.html',\n styleUrls: ['./schedule.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.ns-schedule]': 'true'\n }\n})\nexport class NsScheduleComponent {\n readonly view = model<NsDateView>('workweek');\n readonly selected = model<Date>(new Date());\n readonly selectedDay = model<DateValue>(today(getLocalTimeZone()));\n readonly height = input<number>(520);\n readonly data = input<NsSchedule[]>(undefined);\n private readonly service = inject(NsScheduleService);\n readonly onClick = outputFromObservable(this.service.onClick$);\n\n goToday(): void {\n const date = today(getLocalTimeZone());\n this.selectedDay.set(date);\n this.selected.set(new Date(date.year, date.month - 1, date.day));\n }\n\n selectDate(date: DateValue): void {\n this.selectedDay.set(date);\n this.selected.set(new Date(date.year, date.month - 1, date.day));\n }\n}\n","<div class=\"ns-schedule__tools\">\n <ns-button class=\"ns-schedule__today\" (click)=\"goToday()\">Hoy</ns-button>\n\n <ns-date-picker\n [ngModel]=\"selectedDay()\"\n (ngModelChange)=\"selectDate($event)\"\n />\n\n <ns-selector-list\n class=\"ns-schedule__view\"\n [ngModel]=\"view()\"\n (ngModelChange)=\"view.set($event)\"\n >\n <ns-selector-list-item label=\"Day\" key=\"day\">Day</ns-selector-list-item>\n <ns-selector-list-item label=\"Work week\" key=\"workweek\"\n >Work week</ns-selector-list-item\n >\n <ns-selector-list-item label=\"Week\" key=\"week\">Week</ns-selector-list-item>\n </ns-selector-list>\n</div>\n\n@switch (view()) {\n @case ('day') {\n <ns-schedule-day\n [currentDate]=\"selected()\"\n [schedules]=\"data()\"\n [style.height.px]=\"height()\"\n />\n }\n @case ('week') {\n <ns-schedule-week\n [currentDate]=\"selected()\"\n [schedules]=\"data()\"\n [style.height.px]=\"height()\"\n />\n }\n @default {\n <ns-schedule-workweek\n [currentDate]=\"selected()\"\n [schedules]=\"data()\"\n [style.height.px]=\"height()\"\n />\n }\n}\n","import {\n Component,\n HostBinding,\n OnChanges,\n OnInit,\n SimpleChanges,\n inject,\n input\n} from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { NsSchemaMarkup } from './models/schema';\n\n@Component({\n selector: 'ns-schema',\n template: ''\n})\nexport class NsSchemaMarkupComponent implements OnInit, OnChanges {\n private sanitizer = inject<DomSanitizer>(DomSanitizer);\n\n readonly data = input<Partial<NsSchemaMarkup>>(undefined);\n\n @HostBinding('innerHTML') innerHTML: SafeHtml;\n\n ngOnInit() {}\n\n ngOnChanges({ data }: SimpleChanges) {\n const json = { '@context': 'https://schema.org', ...data.currentValue };\n const template = `<script type=\"application/ld+json\">${JSON.stringify(\n json,\n null,\n 2\n )}</script>`;\n this.innerHTML = this.sanitizer.bypassSecurityTrustHtml(template);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n booleanAttribute,\n input\n} from '@angular/core';\n\n@Component({\n selector: 'ns-skeleton',\n standalone: true,\n template: '',\n styleUrl: './skeleton.component.scss',\n host: {\n 'aria-hidden': 'true',\n '[class.ns-skeleton]': 'true',\n '[class.ns-skeleton--animated]': 'animated()',\n '[style.inline-size]': 'width()',\n '[style.block-size]': 'height()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsSkeletonComponent {\n readonly width = input<string>('100%');\n readonly height = input<string>('1rem');\n readonly animated = input(true, { transform: booleanAttribute });\n}\n","import { Directive, TemplateRef, inject, input } from '@angular/core';\n\n@Directive({\n selector: '[nsTemplate]',\n standalone: true\n})\nexport class TemplateDirective {\n readonly name = input<string | undefined>(undefined, { alias: 'nsTemplate' });\n readonly styleClass = input<string | undefined>(undefined);\n\n /** Template handle for consumers that render templates through their own API. */\n readonly ref = inject<TemplateRef<unknown>>(TemplateRef);\n}\n","import { NsThemePreset } from '../models/theme.model';\n\nexport const Arvisfy: NsThemePreset = {\n name: 'Arvisfy',\n primitive: {\n color: {\n white: '#FFFFFF',\n black: '#000000',\n klein: {\n 50: '#E6EEFD',\n 100: '#C9D6F5',\n 200: '#AFC7FF',\n 300: '#89A6FF',\n 400: '#6F92FF',\n 500: '#3665F3',\n 600: '#1F4BD8',\n 700: '#0847A6',\n 800: '#05367F',\n 900: '#03285F',\n 950: '#021B40'\n },\n neutral: {\n 0: '#FFFFFF',\n 50: '#F7F8FA',\n 100: '#F5F5F4',\n 200: '#E8E8E6',\n 300: '#E4E4E2',\n 400: '#A9AAAF',\n 500: '#8A8C93',\n 600: '#6E7078',\n 700: '#4A4F58',\n 800: '#12182B',\n 900: '#151C2B',\n 950: '#0C1220'\n },\n success: {\n 50: '#E8F7EC',\n 500: '#0CAC42',\n 600: '#0A9138',\n 700: '#087A30'\n },\n warning: {\n 50: '#FDF6E3',\n 500: '#C08A1E',\n 600: '#A5620A',\n 700: '#804D08'\n },\n danger: {\n 50: '#FEF3F2',\n 500: '#E5514A',\n 600: '#C0362C',\n 700: '#982B24'\n },\n switch: {\n on: '#3CA040',\n off: '#D7D8DC'\n },\n button: {\n success: '#4EAA50',\n secondaryForeground: '#13182A',\n tertiaryForeground: '#13182A'\n },\n dark: {\n canvas: '#0C1220',\n surface: '#151C2B',\n surfaceRaised: '#1C2536',\n text: '#F5F7FB',\n muted: '#A7B0C0',\n border: '#2B3447',\n separator: '#202A3B',\n infoBackground: '#17284A',\n infoText: '#AFC7FF',\n successBackground: '#142F22',\n successText: '#8FEDAF',\n warningBackground: '#382D17',\n warningText: '#FFD58A',\n dangerBackground: '#3A1F28',\n dangerText: '#FFAAA5',\n neutralBackground: '#202A3B',\n neutralText: '#C8D0DD',\n nav: '#3F72D8',\n navActive: '#2959B9'\n },\n toast: {\n backgroundLight: '#FFFFFF',\n backgroundDark: '#1C2536',\n foregroundLight: '#12182B',\n foregroundDark: '#F5F7FB'\n }\n },\n font: {\n family: {\n sans: \"'Inter Variable', Inter, ui-sans-serif, system-ui, sans-serif\",\n display:\n \"Roboto, 'Inter Variable', Inter, ui-sans-serif, system-ui, sans-serif\",\n mono: 'JetBrains Mono, ui-monospace, monospace'\n },\n size: {\n xs: '0.75rem',\n sm: '0.875rem',\n md: '1rem',\n lg: '1.125rem',\n xl: '1.25rem'\n },\n weight: { regular: 400, medium: 500, semibold: 600, bold: 700 },\n lineHeight: { compact: 1.25, normal: 1.5 }\n },\n space: {\n 0: '0',\n 1: '0.25rem',\n 2: '0.5rem',\n 3: '0.75rem',\n 4: '1rem',\n 5: '1.25rem',\n 6: '1.5rem',\n 7: '1.875rem',\n 8: '2rem',\n 10: '2.5rem',\n 12: '3rem'\n },\n radius: {\n none: '0',\n sm: '0.75rem',\n md: '1rem',\n lg: '1.125rem',\n tab: '0.6875rem',\n pill: '0.5rem',\n full: '9999px'\n },\n border: {\n thin: '1px'\n },\n opacity: {\n backdrop: 0.7,\n modal: 0.28,\n buttonGroupUnselected: 0.72\n },\n shadow: {\n lightSm: '0 1px 2px rgb(18 24 43 / 5%), 0 8px 24px rgb(18 24 43 / 6%)',\n lightMd: '0 8px 24px rgb(18 24 43 / 10%)',\n lightLg: '0 24px 60px rgba(18,24,43,.18)',\n lightFocus: '0 0 0 3px rgb(54 101 243 / 28%)',\n toast: '0 12px 32px rgb(18 24 43 / 16%)',\n darkSm: '0 1px 2px rgb(0 0 0 / 24%), 0 8px 24px rgb(0 0 0 / 22%)',\n darkMd: '0 12px 28px rgb(0 0 0 / 30%)',\n darkLg: '0 20px 52px rgb(0 0 0 / 42%)',\n darkFocus: '0 0 0 3px rgb(111 146 255 / 36%)'\n },\n duration: {\n fast: '150ms',\n enter: '250ms',\n exit: '60ms',\n normal: '250ms',\n slow: '500ms',\n indeterminate: '1500ms',\n shimmer: '2000ms',\n buttonLoading: '800ms',\n reduced: '0ms'\n },\n content: { breadcrumbSeparator: \"'/'\" },\n decoration: { link: 'underline' },\n outline: { focus: '1px solid currentColor' },\n offset: { link: '0.125rem' },\n transform: {\n toastHidden: 'translate(-50%, 100%)',\n toastVisible: 'translate(-50%, 0)'\n },\n easing: { standard: 'cubic-bezier(0.2, 0, 0, 1)' },\n size: {\n controlSm: '2.375rem',\n controlMd: '2.5rem',\n controlLg: '3rem',\n buttonMin: '5rem',\n meterHeight: '0.5rem',\n progressBarHeight: '0.5rem',\n progressBarIndeterminateWidth: '40%',\n switchTrackWidth: '42px',\n switchTrackHeight: '24px',\n switchThumbSize: '20px',\n switchThumbInset: '2px',\n switchThumbTranslate: '18px',\n drawer: '32rem',\n datePickerMenu: '18rem',\n modalSm: '24rem',\n modalMd: '31.25rem',\n modalLg: '42.5rem',\n modalXl: '71.25rem',\n modalViewportInset: '2rem',\n popover: '12rem',\n selectorListMenu: '15rem',\n tooltip: '20rem',\n toastMaxWidth: '25rem',\n toastMinHeight: '3.5rem'\n },\n layout: {\n scheduleDay: '[index] 3rem [timeline] minmax(0, 1fr)',\n scheduleWeek: '[index] 3rem repeat(7, minmax(0, 1fr))',\n scheduleWorkweek: '[index] 3rem repeat(5, minmax(0, 1fr))'\n },\n zIndex: { overlay: 1000, backdrop: 1050, modal: 1060, toast: 1080 }\n },\n semantic: {\n common: {\n font: {\n body: '{primitive.font.family.sans}',\n display: '{primitive.font.family.display}',\n code: '{primitive.font.family.mono}'\n },\n text: {\n xs: '{primitive.font.size.xs}',\n sm: '{primitive.font.size.sm}',\n md: '{primitive.font.size.md}',\n lg: '{primitive.font.size.lg}'\n },\n fontWeight: {\n regular: '{primitive.font.weight.regular}',\n medium: '{primitive.font.weight.medium}',\n semibold: '{primitive.font.weight.semibold}',\n bold: '{primitive.font.weight.bold}'\n },\n lineHeight: {\n compact: '{primitive.font.lineHeight.compact}',\n normal: '{primitive.font.lineHeight.normal}'\n },\n space: {\n none: '{primitive.space.0}',\n xs: '{primitive.space.1}',\n sm: '{primitive.space.2}',\n md: '{primitive.space.3}',\n lg: '{primitive.space.4}',\n xl: '{primitive.space.6}',\n modal: '{primitive.space.7}',\n xxl: '{primitive.space.8}'\n },\n radius: {\n control: '{primitive.radius.sm}',\n surface: '{primitive.radius.lg}',\n overlay: '{primitive.radius.md}',\n tab: '{primitive.radius.tab}',\n pill: '{primitive.radius.pill}',\n round: '{primitive.radius.full}'\n },\n border: {\n thin: '{primitive.border.thin}'\n },\n opacity: {\n backdrop: '{primitive.opacity.backdrop}',\n modal: '{primitive.opacity.modal}',\n buttonGroupUnselected: '{primitive.opacity.buttonGroupUnselected}'\n },\n motion: {\n fast: '{primitive.duration.fast}',\n enter: '{primitive.duration.enter}',\n exit: '{primitive.duration.exit}',\n normal: '{primitive.duration.normal}',\n slow: '{primitive.duration.slow}',\n indeterminate: '{primitive.duration.indeterminate}',\n shimmer: '{primitive.duration.shimmer}',\n buttonLoading: '{primitive.duration.buttonLoading}',\n easing: '{primitive.easing.standard}',\n toastHidden: '{primitive.transform.toastHidden}',\n toastVisible: '{primitive.transform.toastVisible}'\n },\n content: {\n breadcrumbSeparator: '{primitive.content.breadcrumbSeparator}'\n },\n decoration: {\n link: '{primitive.decoration.link}'\n },\n outline: {\n focus: '{primitive.outline.focus}'\n },\n offset: {\n link: '{primitive.offset.link}'\n },\n size: {\n controlSm: '{primitive.size.controlSm}',\n controlMd: '{primitive.size.controlMd}',\n controlLg: '{primitive.size.controlLg}',\n buttonMin: '{primitive.size.buttonMin}',\n meterHeight: '{primitive.size.meterHeight}',\n progressBarHeight: '{primitive.size.progressBarHeight}',\n progressBarIndeterminateWidth:\n '{primitive.size.progressBarIndeterminateWidth}',\n switchTrackWidth: '{primitive.size.switchTrackWidth}',\n switchTrackHeight: '{primitive.size.switchTrackHeight}',\n switchThumbSize: '{primitive.size.switchThumbSize}',\n switchThumbInset: '{primitive.size.switchThumbInset}',\n switchThumbTranslate: '{primitive.size.switchThumbTranslate}',\n drawer: '{primitive.size.drawer}',\n datePickerMenu: '{primitive.size.datePickerMenu}',\n modalSm: '{primitive.size.modalSm}',\n modalMd: '{primitive.size.modalMd}',\n modalLg: '{primitive.size.modalLg}',\n modalXl: '{primitive.size.modalXl}',\n modalViewportInset: '{primitive.size.modalViewportInset}',\n popover: '{primitive.size.popover}',\n selectorListMenu: '{primitive.size.selectorListMenu}',\n tooltip: '{primitive.size.tooltip}',\n toastMaxWidth: '{primitive.size.toastMaxWidth}',\n toastMinHeight: '{primitive.size.toastMinHeight}'\n },\n layer: {\n overlay: '{primitive.zIndex.overlay}',\n backdrop: '{primitive.zIndex.backdrop}',\n modal: '{primitive.zIndex.modal}',\n toast: '{primitive.zIndex.toast}'\n },\n layout: {\n scheduleDay: '{primitive.layout.scheduleDay}',\n scheduleWeek: '{primitive.layout.scheduleWeek}',\n scheduleWorkweek: '{primitive.layout.scheduleWorkweek}'\n },\n status: {\n primarySoft: '{primitive.color.klein.50}',\n successSoft: '{primitive.color.success.50}',\n warningSoft: '{primitive.color.warning.50}',\n dangerSoft: '{primitive.color.danger.50}',\n primarySoftForeground: '{primitive.color.klein.600}',\n successSoftForeground: '{primitive.color.success.700}',\n warningSoftForeground: '{primitive.color.warning.600}',\n dangerSoftForeground: '{primitive.color.danger.600}',\n success: '{primitive.color.success.500}',\n successHover: '{primitive.color.success.600}',\n successActive: '{primitive.color.success.700}',\n warning: '{primitive.color.warning.500}',\n warningHover: '{primitive.color.warning.600}',\n warningActive: '{primitive.color.warning.700}',\n danger: '{primitive.color.danger.500}',\n dangerHover: '{primitive.color.danger.600}',\n dangerActive: '{primitive.color.danger.700}',\n successForeground: '{primitive.color.neutral.950}',\n successHoverForeground: '{primitive.color.neutral.950}',\n successActiveForeground: '{primitive.color.white}',\n warningForeground: '{primitive.color.neutral.950}',\n warningHoverForeground: '{primitive.color.white}',\n warningActiveForeground: '{primitive.color.white}',\n dangerForeground: '{primitive.color.neutral.950}',\n dangerHoverForeground: '{primitive.color.white}',\n dangerActiveForeground: '{primitive.color.white}',\n dangerBadgeForeground: '{primitive.color.white}'\n },\n color: {\n switchOn: '{primitive.color.switch.on}',\n switchOff: '{primitive.color.switch.off}'\n },\n button: {\n solidForeground: '{primitive.color.white}',\n successBackground: '{primitive.color.button.success}',\n successForeground: '{primitive.color.white}',\n dangerBackground: '{primitive.color.danger.500}'\n },\n reducedMotion: {\n fast: '{primitive.duration.reduced}',\n enter: '{primitive.duration.reduced}',\n exit: '{primitive.duration.reduced}',\n normal: '{primitive.duration.reduced}',\n slow: '{primitive.duration.reduced}',\n indeterminate: '{primitive.duration.reduced}',\n shimmer: '{primitive.duration.reduced}'\n }\n },\n colorScheme: {\n light: {\n color: {\n background: '{primitive.color.neutral.50}',\n content1: '{primitive.color.white}',\n content2: '{primitive.color.neutral.100}',\n content3: '{primitive.color.neutral.200}',\n content4: '{primitive.color.neutral.300}',\n surface: '{primitive.color.white}',\n surfaceMuted: '{primitive.color.neutral.100}',\n surfaceEmphasis: '{primitive.color.neutral.200}',\n emphasisBackground: '{primitive.color.neutral.800}',\n emphasisForeground: '{primitive.color.white}',\n text: '{primitive.color.neutral.800}',\n toastBackground: '{primitive.color.toast.backgroundLight}',\n toastForeground: '{primitive.color.toast.foregroundLight}',\n textMuted: '{primitive.color.neutral.500}',\n border: '{primitive.color.neutral.300}',\n borderStrong: '{primitive.color.neutral.400}',\n separator: '{primitive.color.neutral.100}',\n primary: '{primitive.color.klein.500}',\n primaryHover: '{primitive.color.klein.600}',\n primaryActive: '{primitive.color.klein.700}',\n primaryForeground: '{primitive.color.white}',\n actionBackground: '{primitive.color.klein.500}',\n actionBackgroundHover: '{primitive.color.klein.600}',\n actionBackgroundActive: '{primitive.color.klein.700}',\n actionForeground: '{primitive.color.white}',\n focus: '{primitive.color.klein.500}',\n nav: '{primitive.color.klein.700}',\n navActive: '{primitive.color.klein.800}',\n chart: '{primitive.color.klein.500}'\n },\n button: {\n secondaryBackground: '{primitive.color.white}',\n secondaryBorderColor: '{primitive.color.neutral.200}',\n secondaryColor: '{primitive.color.button.secondaryForeground}',\n tertiaryColor: '{primitive.color.button.tertiaryForeground}'\n },\n status: {\n primarySoft: '{primitive.color.klein.50}',\n successSoft: '{primitive.color.success.50}',\n warningSoft: '{primitive.color.warning.50}',\n dangerSoft: '{primitive.color.danger.50}',\n primarySoftForeground: '{primitive.color.klein.600}',\n successSoftForeground: '{primitive.color.success.700}',\n warningSoftForeground: '{primitive.color.warning.600}',\n dangerSoftForeground: '{primitive.color.danger.600}',\n success: '{primitive.color.success.500}',\n successHover: '{primitive.color.success.600}',\n successActive: '{primitive.color.success.700}',\n warning: '{primitive.color.warning.500}',\n warningHover: '{primitive.color.warning.600}',\n warningActive: '{primitive.color.warning.700}',\n danger: '{primitive.color.danger.500}',\n dangerHover: '{primitive.color.danger.600}',\n dangerActive: '{primitive.color.danger.700}',\n successForeground: '{primitive.color.neutral.950}',\n successHoverForeground: '{primitive.color.neutral.950}',\n successActiveForeground: '{primitive.color.white}',\n warningForeground: '{primitive.color.neutral.950}',\n warningHoverForeground: '{primitive.color.white}',\n warningActiveForeground: '{primitive.color.white}',\n dangerForeground: '{primitive.color.neutral.950}',\n dangerHoverForeground: '{primitive.color.white}',\n dangerActiveForeground: '{primitive.color.white}',\n infoBackground: '{primitive.color.klein.50}',\n infoText: '{primitive.color.klein.600}',\n successBackground: '{primitive.color.success.50}',\n successText: '{primitive.color.success.700}',\n warningBackground: '{primitive.color.warning.50}',\n warningText: '{primitive.color.warning.600}',\n dangerBackground: '{primitive.color.danger.50}',\n dangerText: '{primitive.color.danger.600}',\n neutralBackground: '{primitive.color.neutral.100}',\n neutralText: '{primitive.color.neutral.700}'\n },\n shadow: {\n subtle: '{primitive.shadow.lightSm}',\n overlay: '{primitive.shadow.lightMd}',\n modal: '{primitive.shadow.lightMd}',\n focus: '{primitive.shadow.lightFocus}',\n toast: '{primitive.shadow.toast}'\n }\n },\n dark: {\n color: {\n background: '{primitive.color.dark.canvas}',\n content1: '{primitive.color.dark.surface}',\n content2: '{primitive.color.dark.surfaceRaised}',\n content3: '{primitive.color.dark.separator}',\n content4: '{primitive.color.dark.border}',\n surface: '{primitive.color.dark.surface}',\n surfaceMuted: '{primitive.color.dark.surfaceRaised}',\n surfaceEmphasis: '{primitive.color.dark.separator}',\n emphasisBackground: '{primitive.color.dark.surfaceRaised}',\n emphasisForeground: '{primitive.color.dark.text}',\n text: '{primitive.color.dark.text}',\n toastBackground: '{primitive.color.toast.backgroundDark}',\n toastForeground: '{primitive.color.toast.foregroundDark}',\n textMuted: '{primitive.color.dark.muted}',\n border: '{primitive.color.dark.border}',\n borderStrong: '{primitive.color.neutral.600}',\n separator: '{primitive.color.dark.separator}',\n primary: '{primitive.color.klein.400}',\n primaryHover: '{primitive.color.klein.300}',\n primaryActive: '{primitive.color.klein.500}',\n primaryForeground: '{primitive.color.dark.canvas}',\n actionBackground: '{primitive.color.klein.400}',\n actionBackgroundHover: '{primitive.color.klein.300}',\n actionBackgroundActive: '{primitive.color.klein.500}',\n actionForeground: '{primitive.color.dark.canvas}',\n focus: '{primitive.color.klein.400}',\n nav: '{primitive.color.dark.nav}',\n navActive: '{primitive.color.dark.navActive}',\n chart: '{primitive.color.klein.300}'\n },\n button: {\n secondaryBackground: '{primitive.color.dark.surface}',\n secondaryBorderColor: '{primitive.color.dark.border}',\n secondaryColor: '{primitive.color.dark.text}',\n tertiaryColor: '{primitive.color.dark.text}'\n },\n status: {\n primarySoft: '{primitive.color.dark.infoBackground}',\n successSoft: '{primitive.color.dark.successBackground}',\n warningSoft: '{primitive.color.dark.warningBackground}',\n dangerSoft: '{primitive.color.dark.dangerBackground}',\n primarySoftForeground: '{primitive.color.dark.infoText}',\n successSoftForeground: '{primitive.color.dark.successText}',\n warningSoftForeground: '{primitive.color.dark.warningText}',\n dangerSoftForeground: '{primitive.color.dark.dangerText}',\n success: '{primitive.color.success.500}',\n successHover: '{primitive.color.success.600}',\n successActive: '{primitive.color.success.700}',\n warning: '{primitive.color.warning.500}',\n warningHover: '{primitive.color.warning.600}',\n warningActive: '{primitive.color.warning.700}',\n danger: '{primitive.color.danger.500}',\n dangerHover: '{primitive.color.danger.600}',\n dangerActive: '{primitive.color.danger.700}',\n successForeground: '{primitive.color.neutral.950}',\n successHoverForeground: '{primitive.color.neutral.950}',\n successActiveForeground: '{primitive.color.white}',\n warningForeground: '{primitive.color.neutral.950}',\n warningHoverForeground: '{primitive.color.white}',\n warningActiveForeground: '{primitive.color.white}',\n dangerForeground: '{primitive.color.neutral.950}',\n dangerHoverForeground: '{primitive.color.white}',\n dangerActiveForeground: '{primitive.color.white}',\n infoBackground: '{primitive.color.dark.infoBackground}',\n infoText: '{primitive.color.dark.infoText}',\n successBackground: '{primitive.color.dark.successBackground}',\n successText: '{primitive.color.dark.successText}',\n warningBackground: '{primitive.color.dark.warningBackground}',\n warningText: '{primitive.color.dark.warningText}',\n dangerBackground: '{primitive.color.dark.dangerBackground}',\n dangerText: '{primitive.color.dark.dangerText}',\n neutralBackground: '{primitive.color.dark.neutralBackground}',\n neutralText: '{primitive.color.dark.neutralText}'\n },\n shadow: {\n subtle: '{primitive.shadow.darkSm}',\n overlay: '{primitive.shadow.darkMd}',\n modal: '{primitive.shadow.darkMd}',\n focus: '{primitive.shadow.darkFocus}',\n toast: '{primitive.shadow.toast}'\n }\n }\n }\n },\n components: {\n description: {\n color: '{semantic.color.textMuted}',\n fontSize: '{semantic.text.sm}',\n lineHeight: '{semantic.lineHeight.normal}'\n },\n divider: {\n color: '{semantic.color.border}',\n thickness: '{semantic.border.thin}',\n opacity: '{semantic.opacity.backdrop}'\n },\n surface: {\n background: '{semantic.color.surface}',\n softBackground: '{semantic.color.surfaceMuted}',\n color: '{semantic.color.text}',\n borderColor: '{semantic.color.border}',\n borderWidth: '{semantic.border.thin}',\n radius: '{semantic.radius.surface}',\n shadow: '{semantic.shadow.subtle}',\n transitionDuration: '{semantic.motion.fast}'\n },\n input: {\n labelColor: '{semantic.color.text}',\n labelSize: '{semantic.text.sm}',\n labelWeight: '{semantic.fontWeight.medium}',\n background: '{semantic.color.surface}',\n color: '{semantic.color.text}',\n placeholder: '{semantic.color.textMuted}',\n borderColor: '{semantic.color.border}',\n borderHoverColor: '{semantic.color.borderStrong}',\n borderFocusColor: '{semantic.color.focus}',\n radius: '{semantic.radius.control}',\n paddingBlock: '{semantic.space.sm}',\n paddingInline: '{semantic.space.md}',\n minHeight: '{semantic.size.controlMd}',\n focusShadow: '{semantic.shadow.focus}',\n disabledBackground: '{semantic.color.surfaceMuted}',\n disabledColor: '{semantic.color.textMuted}',\n invalidBorderColor: '{semantic.status.danger}',\n descriptionColor: '{semantic.color.textMuted}',\n errorColor: '{semantic.status.danger}'\n },\n button: {\n background: '{semantic.color.actionBackground}',\n backgroundHover: '{semantic.color.actionBackgroundHover}',\n backgroundActive: '{semantic.color.actionBackgroundActive}',\n color: '{semantic.button.solidForeground}',\n radius: '{semantic.radius.control}',\n paddingBlock: '{semantic.space.sm}',\n paddingInline: '{semantic.space.lg}',\n minWidth: '{semantic.size.buttonMin}',\n minHeight: '{semantic.size.controlMd}',\n fontSize: '{semantic.text.sm}',\n fontWeight: '{semantic.fontWeight.regular}',\n gap: '{semantic.space.sm}',\n focusShadow: '{semantic.shadow.focus}',\n successBackground: '{semantic.button.successBackground}',\n successBackgroundHover: '{semantic.status.successHover}',\n successSolidColor: '{semantic.button.solidForeground}',\n successSolidColorHover: '{semantic.button.solidForeground}',\n successBackgroundActive: '{semantic.status.successActive}',\n successSolidColorActive: '{semantic.button.solidForeground}',\n dangerBackground: '{semantic.button.dangerBackground}',\n dangerSolidColor: '{semantic.button.solidForeground}',\n dangerBackgroundHover: '{semantic.status.dangerHover}',\n dangerSolidColorHover: '{semantic.button.solidForeground}',\n dangerBackgroundActive: '{semantic.status.dangerActive}',\n dangerSolidColorActive: '{semantic.button.solidForeground}',\n secondaryBackground: '{semantic.button.secondaryBackground}',\n secondaryBorderColor: '{semantic.button.secondaryBorderColor}',\n secondaryColor: '{semantic.button.secondaryColor}',\n secondaryBackgroundHover: '{semantic.color.content2}',\n secondaryBackgroundActive: '{semantic.color.content3}',\n tertiaryColor: '{semantic.button.tertiaryColor}',\n tertiaryBackgroundHover: '{semantic.color.content2}',\n tertiaryBackgroundActive: '{semantic.color.content3}',\n selectedShadow: '{semantic.shadow.subtle}',\n selectedFontWeight: '{semantic.fontWeight.semibold}',\n secondarySelectedBackground: '{semantic.color.surface}',\n secondarySelectedBorderColor: '{semantic.color.surface}',\n secondarySelectedColor: '{semantic.button.secondaryColor}',\n secondarySelectedBackgroundHover: '{semantic.color.content2}',\n secondarySelectedBorderColorHover: '{semantic.color.content2}',\n secondarySelectedBackgroundActive: '{semantic.color.content3}',\n secondarySelectedBorderColorActive: '{semantic.color.content3}',\n tertiarySelectedBackground: '{semantic.color.surfaceMuted}',\n tertiarySelectedBorderColor: '{semantic.color.surfaceMuted}',\n tertiarySelectedColor: '{semantic.button.tertiaryColor}',\n tertiarySelectedBackgroundHover: '{semantic.color.content3}',\n tertiarySelectedBorderColorHover: '{semantic.color.content3}',\n tertiarySelectedBackgroundActive: '{semantic.color.content4}',\n tertiarySelectedBorderColorActive: '{semantic.color.content4}',\n iconPaddingInline: '{semantic.space.sm}',\n minHeightSm: '{semantic.size.controlSm}',\n minHeightLg: '{semantic.size.controlLg}',\n loadingDuration: '{semantic.motion.buttonLoading}',\n spinnerSize: '{semantic.text.md}',\n transitionDuration: '{semantic.motion.fast}'\n },\n avatar: {\n background: '{semantic.color.surfaceEmphasis}',\n color: '{semantic.color.primaryForeground}',\n borderColor: '{semantic.color.surface}',\n radius: '{semantic.radius.round}',\n radiusSquare: '{semantic.radius.control}',\n fontSize: '{semantic.text.sm}',\n fontWeight: '{semantic.fontWeight.semibold}',\n sizeSm: '{semantic.size.controlSm}',\n sizeMd: '{semantic.size.controlMd}',\n sizeLg: '{semantic.size.controlLg}',\n imageTransitionDuration: '{semantic.motion.slow}'\n },\n buttonGroup: {\n controlGap: '{semantic.space.none}',\n background: '{semantic.color.surfaceMuted}',\n padding: '{semantic.space.xs}',\n radius: '{semantic.radius.control}',\n segmentRadius: '{semantic.radius.control}',\n unselectedOpacity: '{semantic.opacity.buttonGroupUnselected}'\n },\n comment: {\n background: '{semantic.color.surface}',\n color: '{semantic.color.text}',\n mutedColor: '{semantic.color.textMuted}',\n borderColor: '{semantic.color.border}',\n invalidBorderColor: '{semantic.status.danger}',\n actionBackground: '{semantic.color.actionBackground}',\n actionBackgroundHover: '{semantic.color.actionBackgroundHover}',\n actionColor: '{semantic.color.actionForeground}',\n radius: '{semantic.radius.surface}',\n padding: '{semantic.space.xl}',\n gap: '{semantic.space.lg}',\n borderWidth: '{semantic.border.thin}',\n shadow: '{semantic.shadow.subtle}',\n inputBorderColor: '{semantic.color.border}',\n inputRadius: '{semantic.radius.control}',\n inputBackground: '{semantic.color.surface}',\n inputColor: '{semantic.color.text}',\n inputBorderFocusColor: '{semantic.color.focus}',\n inputFocusShadow: '{semantic.shadow.focus}',\n transitionDuration: '{semantic.motion.fast}'\n },\n editor: {\n labelColor: '{semantic.color.text}',\n labelSize: '{semantic.text.sm}',\n labelWeight: '{semantic.fontWeight.medium}',\n background: '{semantic.color.surface}',\n toolbarBackground: '{semantic.color.surfaceMuted}',\n color: '{semantic.color.text}',\n borderColor: '{semantic.color.border}',\n radius: '{semantic.radius.control}',\n overlayRadius: '{semantic.radius.overlay}',\n overlayShadow: '{semantic.shadow.overlay}',\n padding: '{semantic.space.sm}',\n gap: '{semantic.space.sm}',\n layer: '{semantic.layer.overlay}',\n focusBorderColor: '{semantic.color.focus}',\n focusShadow: '{semantic.shadow.focus}',\n actionBackground: '{semantic.color.surfaceEmphasis}',\n actionFocusShadow: '{semantic.shadow.focus}'\n },\n checkbox: {\n color: '{semantic.color.text}',\n accent: '{semantic.color.primary}',\n gap: '{semantic.space.sm}',\n borderColor: '{semantic.color.borderStrong}',\n background: '{semantic.color.surface}',\n radius: '{semantic.radius.control}',\n checkBorderWidth: '{semantic.border.thin}',\n checkColor: '{semantic.color.primaryForeground}',\n focusShadow: '{semantic.shadow.focus}',\n invalidBorderColor: '{semantic.status.danger}',\n disabledColor: '{semantic.color.textMuted}',\n descriptionColor: '{semantic.color.textMuted}',\n errorColor: '{semantic.status.danger}',\n transitionDuration: '{semantic.motion.fast}',\n transitionEasing: '{semantic.motion.easing}'\n },\n datePicker: {\n labelColor: '{semantic.color.text}',\n labelSize: '{semantic.text.sm}',\n labelWeight: '{semantic.fontWeight.medium}',\n bodyFontFamily: '{semantic.font.body}',\n titleFontFamily: '{semantic.font.display}',\n titleSize: '{semantic.text.lg}',\n titleWeight: '{semantic.fontWeight.semibold}',\n titleLineHeight: '{semantic.lineHeight.compact}',\n background: '{semantic.color.surface}',\n color: '{semantic.color.text}',\n mutedColor: '{semantic.color.textMuted}',\n borderColor: '{semantic.color.border}',\n activeBackground: '{semantic.status.success}',\n activeBackgroundHover: '{semantic.status.successHover}',\n activeBackgroundActive: '{semantic.status.successActive}',\n activeColor: '{semantic.status.successActiveForeground}',\n currentBackground: '{semantic.status.successSoft}',\n currentBackgroundHover: '{semantic.status.successSoft}',\n currentBackgroundActive: '{semantic.status.successSoft}',\n currentColor: '{semantic.status.successSoftForeground}',\n currentColorHover: '{semantic.status.successSoftForeground}',\n currentColorActive: '{semantic.status.successSoftForeground}',\n focusColor: '{semantic.color.focus}',\n radius: '{semantic.radius.control}',\n overlayRadius: '{semantic.radius.overlay}',\n overlayShadow: '{semantic.shadow.overlay}',\n padding: '{semantic.space.sm}',\n gap: '{semantic.space.sm}',\n menuPadding: '{semantic.space.md}',\n headerGap: '{semantic.space.md}',\n selectorGap: '{semantic.space.lg}',\n selectorIconGap: '{semantic.space.lg}',\n selectorSize: '{semantic.text.md}',\n selectorWeight: '{semantic.fontWeight.medium}',\n yearRangeRadius: '{semantic.radius.pill}',\n daySize: '{semantic.size.controlMd}',\n weekdayGap: '{semantic.space.md}',\n weekdaySize: '{semantic.text.sm}',\n focusOutlineWidth: '{semantic.border.thin}',\n focusOutlineOffset: '{semantic.space.sm}',\n navigationOutlineOffset: '{semantic.space.xs}',\n menuMinWidth: '{semantic.size.datePickerMenu}',\n minHeight: '{semantic.size.controlLg}',\n borderHoverColor: '{semantic.color.borderStrong}',\n invalidBorderColor: '{semantic.status.danger}',\n disabledBackground: '{semantic.color.surfaceMuted}',\n overlayDuration: '{semantic.motion.enter}',\n overlayEasing: '{semantic.motion.easing}',\n dayBackgroundHover: '{semantic.color.surfaceMuted}'\n },\n inputGroup: {\n addonBackground: '{semantic.color.surface}',\n addonColor: '{semantic.color.text}',\n borderColor: '{semantic.color.border}',\n radius: '{semantic.radius.control}',\n paddingBlock: '{semantic.space.sm}',\n paddingInline: '{semantic.space.md}',\n borderWidth: '{semantic.border.thin}',\n borderFocusColor: '{semantic.color.focus}'\n },\n inputNumber: {\n labelColor: '{semantic.color.text}',\n labelSize: '{semantic.text.sm}',\n labelWeight: '{semantic.fontWeight.medium}',\n background: '{semantic.color.surface}',\n color: '{semantic.color.text}',\n borderColor: '{semantic.color.border}',\n borderFocusColor: '{semantic.color.focus}',\n radius: '{semantic.radius.control}',\n paddingBlock: '{semantic.space.sm}',\n paddingInline: '{semantic.space.md}',\n focusShadow: '{semantic.shadow.focus}',\n borderHoverColor: '{semantic.color.borderStrong}',\n stepperBorderWidth: '{semantic.border.thin}',\n stepperBackgroundHover: '{semantic.color.surfaceMuted}',\n stepperMutedColor: '{semantic.color.textMuted}',\n descriptionColor: '{semantic.color.textMuted}',\n errorColor: '{semantic.status.danger}'\n },\n inputSearch: {\n labelColor: '{semantic.color.text}',\n borderColor: '{semantic.color.border}',\n borderHoverColor: '{semantic.color.borderStrong}',\n borderFocusColor: '{semantic.color.focus}',\n radius: '{semantic.radius.control}',\n background: '{semantic.color.surface}',\n color: '{semantic.color.text}',\n placeholder: '{semantic.color.textMuted}',\n paddingInline: '{semantic.space.md}',\n focusShadow: '{semantic.shadow.focus}',\n actionColor: '{semantic.color.textMuted}',\n actionBackgroundHover: '{semantic.color.surfaceMuted}',\n descriptionColor: '{semantic.color.textMuted}',\n errorColor: '{semantic.status.danger}'\n },\n inputCode: {\n labelColor: '{semantic.color.text}',\n minHeight: '{semantic.size.controlMd}',\n paddingInline: '{semantic.space.md}',\n borderColor: '{semantic.color.border}',\n borderHoverColor: '{semantic.color.borderStrong}',\n borderFocusColor: '{semantic.color.focus}',\n radius: '{semantic.radius.control}',\n background: '{semantic.color.surface}',\n color: '{semantic.color.text}',\n focusShadow: '{semantic.shadow.focus}',\n disabledBackground: '{semantic.color.surfaceMuted}',\n disabledColor: '{semantic.color.textMuted}',\n fontFamily: '{semantic.font.code}',\n letterSpacing: '{semantic.space.sm}',\n textIndent: '{semantic.space.sm}',\n invalidBorderColor: '{semantic.status.danger}',\n descriptionColor: '{semantic.color.textMuted}',\n errorColor: '{semantic.status.danger}'\n },\n password: {\n labelColor: '{semantic.color.text}',\n labelSize: '{semantic.text.sm}',\n labelWeight: '{semantic.fontWeight.medium}',\n background: '{semantic.color.surface}',\n color: '{semantic.color.text}',\n borderColor: '{semantic.color.border}',\n borderFocusColor: '{semantic.color.focus}',\n radius: '{semantic.radius.control}',\n paddingBlock: '{semantic.space.sm}',\n paddingInline: '{semantic.space.md}',\n focusShadow: '{semantic.shadow.focus}',\n borderHoverColor: '{semantic.color.borderStrong}',\n appendBackgroundHover: '{semantic.color.surfaceMuted}',\n appendDisabledColor: '{semantic.color.textMuted}'\n },\n switch: {\n background: '{semantic.color.switchOff}',\n activeBackground: '{semantic.color.switchOn}',\n thumbColor: '{semantic.color.surface}',\n color: '{semantic.color.text}',\n radius: '{semantic.radius.round}',\n focusShadow: '{semantic.shadow.focus}',\n invalidBorderColor: '{semantic.status.danger}',\n descriptionColor: '{semantic.color.textMuted}',\n errorColor: '{semantic.status.danger}',\n trackWidth: '{semantic.size.switchTrackWidth}',\n trackHeight: '{semantic.size.switchTrackHeight}',\n thumbSize: '{semantic.size.switchThumbSize}',\n thumbInset: '{semantic.size.switchThumbInset}',\n thumbTranslate: '{semantic.size.switchThumbTranslate}'\n },\n textarea: {\n labelColor: '{semantic.color.text}',\n labelSize: '{semantic.text.sm}',\n labelWeight: '{semantic.fontWeight.medium}',\n background: '{semantic.color.surface}',\n color: '{semantic.color.text}',\n placeholder: '{semantic.color.textMuted}',\n borderColor: '{semantic.color.border}',\n borderFocusColor: '{semantic.color.focus}',\n disabledBackground: '{semantic.color.surfaceMuted}',\n radius: '{semantic.radius.control}',\n paddingBlock: '{semantic.space.sm}',\n paddingInline: '{semantic.space.md}',\n focusShadow: '{semantic.shadow.focus}',\n borderHoverColor: '{semantic.color.borderStrong}',\n lineHeight: '{semantic.lineHeight.normal}',\n invalidBorderColor: '{semantic.status.danger}',\n descriptionColor: '{semantic.color.textMuted}',\n errorColor: '{semantic.status.danger}'\n },\n radio: {\n labelColor: '{semantic.color.text}',\n borderColor: '{semantic.color.borderStrong}',\n background: '{semantic.color.surface}',\n inset: '{semantic.space.sm}',\n checkedBackground: '{semantic.color.primary}',\n focusShadow: '{semantic.shadow.focus}',\n disabledColor: '{semantic.color.textMuted}',\n descriptionColor: '{semantic.color.textMuted}',\n errorColor: '{semantic.status.danger}'\n },\n slider: {\n labelColor: '{semantic.color.text}',\n trackHeight: '{semantic.space.xs}',\n trackRadius: '{semantic.radius.control}',\n trackBackground: '{semantic.color.surfaceEmphasis}',\n thumbSize: '{semantic.space.lg}',\n thumbBorderWidth: '{semantic.border.thin}',\n thumbBorderColor: '{semantic.color.surface}',\n thumbRadius: '{semantic.radius.round}',\n thumbBackground: '{semantic.color.primary}',\n thumbShadow: '{semantic.shadow.subtle}',\n focusShadow: '{semantic.shadow.focus}',\n descriptionColor: '{semantic.color.textMuted}'\n },\n imageUpload: {\n borderHoverColor: '{semantic.color.borderStrong}',\n dangerColor: '{semantic.status.danger}',\n gap: '{semantic.space.sm}',\n padding: '{semantic.space.lg}',\n controlBorderColor: '{semantic.color.border}',\n controlRadius: '{semantic.radius.control}',\n controlBackground: '{semantic.color.surface}',\n controlShadow: '{semantic.shadow.subtle}',\n thumbnailRadius: '{semantic.radius.surface}',\n thumbnailShadow: '{semantic.shadow.overlay}',\n overlayColor: '{semantic.color.surface}',\n transitionDuration: '{semantic.motion.fast}'\n },\n scheduleEvent: {\n background: '{semantic.color.surfaceEmphasis}',\n color: '{semantic.color.primary}',\n borderColor: '{semantic.color.primary}',\n radius: '{semantic.radius.control}',\n padding: '{semantic.space.xs}',\n layer: '{semantic.layer.overlay}'\n },\n toast: {\n background: '{semantic.color.toastBackground}',\n color: '{semantic.color.toastForeground}',\n radius: '{semantic.radius.surface}',\n paddingBlock: '{semantic.space.md}',\n paddingInline: '{semantic.space.lg}',\n gapBlock: '{semantic.space.none}',\n duration: '{semantic.motion.enter}',\n exitDuration: '{semantic.motion.exit}',\n easing: '{semantic.motion.easing}',\n hiddenTransform: '{semantic.motion.toastHidden}',\n visibleTransform: '{semantic.motion.toastVisible}',\n gap: '{semantic.space.md}',\n actionGap: '{semantic.space.sm}',\n offset: '{semantic.space.xl}',\n mobileOffset: '{semantic.space.lg}',\n entryOffset: '{semantic.space.lg}',\n maxWidth: '{semantic.size.toastMaxWidth}',\n minHeight: '{semantic.size.toastMinHeight}',\n focusShadow: '{semantic.shadow.focus}',\n shadow: '{semantic.shadow.toast}',\n viewportInset: '{semantic.space.xxl}',\n actionBackground: '{semantic.color.surfaceMuted}',\n actionBackgroundHover: '{semantic.color.surfaceEmphasis}',\n actionPaddingBlock: '{semantic.space.xs}',\n actionPaddingInline: '{semantic.space.sm}',\n closeSize: '{semantic.size.controlSm}',\n closePadding: '{semantic.space.none}'\n },\n accordion: {\n borderColor: '{semantic.color.border}',\n borderWidth: '{semantic.border.thin}',\n background: '{semantic.color.surface}',\n color: '{semantic.color.text}',\n radius: '{semantic.radius.surface}',\n padding: '{semantic.space.md}',\n gap: '{semantic.space.sm}',\n focusShadow: '{semantic.shadow.focus}',\n triggerFontSize: '{semantic.text.sm}',\n triggerFontWeight: '{semantic.fontWeight.semibold}',\n triggerDuration: '{semantic.motion.normal}',\n triggerEasing: '{semantic.motion.easing}',\n triggerBackgroundHover: '{semantic.color.surfaceMuted}'\n },\n alert: {\n color: '{semantic.color.text}',\n radius: '{semantic.radius.surface}',\n padding: '{semantic.space.md}',\n gap: '{semantic.space.sm}',\n titleGap: '{semantic.space.xs}',\n focusShadow: '{semantic.shadow.focus}',\n dismissBackgroundHover: '{semantic.color.content3}',\n transitionDuration: '{semantic.motion.fast}',\n infoBackground: '{semantic.status.primarySoft}',\n infoIconColor: '{semantic.status.primarySoftForeground}',\n successBackground: '{semantic.status.successSoft}',\n successIconColor: '{semantic.status.successSoftForeground}',\n warningBackground: '{semantic.status.warningSoft}',\n warningIconColor: '{semantic.status.warningSoftForeground}',\n dangerBackground: '{semantic.status.dangerSoft}',\n dangerIconColor: '{semantic.status.dangerSoftForeground}'\n },\n badge: {\n radius: '{semantic.radius.round}',\n fontSize: '{semantic.text.xs}',\n fontWeight: '{semantic.fontWeight.semibold}',\n lineHeight: '{semantic.lineHeight.compact}',\n borderWidth: '{semantic.border.thin}',\n background: '{semantic.status.danger}',\n color: '{semantic.status.dangerBadgeForeground}',\n borderColor: '{semantic.color.surface}',\n size: '{semantic.space.xl}',\n overflowSize: '{semantic.size.controlMd}',\n dotSize: '{semantic.space.sm}'\n },\n breadcrumbs: {\n color: '{semantic.color.textMuted}',\n currentColor: '{semantic.color.text}',\n fontSize: '{semantic.text.sm}',\n gap: '{semantic.space.sm}',\n separator: '{semantic.content.breadcrumbSeparator}',\n separatorColor: '{semantic.color.textMuted}',\n linkColor: '{semantic.color.primary}',\n linkDecoration: '{semantic.decoration.link}',\n focusOutline: '{semantic.outline.focus}',\n listRadius: '{semantic.radius.surface}',\n linkRadius: '{semantic.radius.control}',\n underlineOffset: '{semantic.offset.link}',\n transitionDuration: '{semantic.motion.fast}',\n hoverOpacity: '{semantic.opacity.backdrop}'\n },\n card: {\n background: '{semantic.color.surface}',\n softBackground: '{semantic.color.surfaceMuted}',\n color: '{semantic.color.text}',\n borderColor: '{semantic.color.border}',\n borderWidth: '{semantic.border.thin}',\n dividerColor: '{semantic.color.border}',\n dividerWidth: '{semantic.border.thin}',\n radius: '{semantic.radius.surface}',\n padding: '{semantic.space.xl}',\n shadow: '{semantic.shadow.subtle}',\n transitionDuration: '{semantic.motion.fast}'\n },\n chip: {\n background: '{semantic.color.surfaceMuted}',\n color: '{semantic.color.text}',\n borderColor: '{semantic.color.border}',\n radius: '{semantic.radius.round}',\n gap: '{semantic.space.xs}',\n minHeight: '{semantic.size.controlSm}',\n paddingInline: '{semantic.space.sm}',\n fontSize: '{semantic.text.sm}',\n dismissSize: '{semantic.text.md}',\n focusShadow: '{semantic.shadow.focus}',\n solidBackground: '{semantic.color.primary}',\n solidColor: '{semantic.color.primaryForeground}',\n outlineColor: '{semantic.color.primary}',\n primaryBackground: '{semantic.color.primary}',\n primaryColor: '{semantic.color.primaryForeground}',\n successBackground: '{semantic.status.success}',\n successColor: '{semantic.status.successForeground}',\n warningBackground: '{semantic.status.warning}',\n warningColor: '{semantic.status.warningForeground}',\n dangerBackground: '{semantic.status.danger}',\n dangerColor: '{semantic.status.dangerForeground}',\n dismissBackgroundHover: '{semantic.color.content3}',\n softPrimaryBackground: '{semantic.status.primarySoft}',\n softPrimaryColor: '{semantic.status.primarySoftForeground}',\n softSuccessBackground: '{semantic.status.successSoft}',\n softSuccessColor: '{semantic.status.successSoftForeground}',\n softWarningBackground: '{semantic.status.warningSoft}',\n softWarningColor: '{semantic.status.warningSoftForeground}',\n softDangerBackground: '{semantic.status.dangerSoft}',\n softDangerColor: '{semantic.status.dangerSoftForeground}',\n transitionDuration: '{semantic.motion.fast}'\n },\n drawer: {\n backdrop: '{semantic.color.background}',\n backdropOpacity: '{semantic.opacity.backdrop}',\n width: '{semantic.size.drawer}',\n background: '{semantic.color.surface}',\n color: '{semantic.color.text}',\n borderColor: '{semantic.color.border}',\n radius: '{semantic.radius.control}',\n shadow: '{semantic.shadow.overlay}',\n padding: '{semantic.space.lg}',\n focusShadow: '{semantic.shadow.focus}',\n borderWidth: '{semantic.border.thin}',\n enterDuration: '{semantic.motion.enter}',\n enterEasing: '{semantic.motion.easing}',\n closeRadius: '{semantic.radius.control}',\n closeBackgroundHover: '{semantic.color.surfaceMuted}'\n },\n link: {\n color: '{semantic.color.primary}',\n disabledColor: '{semantic.color.textMuted}',\n successColor: '{semantic.status.success}',\n warningColor: '{semantic.status.warning}',\n dangerColor: '{semantic.status.danger}',\n fontWeight: '{semantic.fontWeight.medium}',\n decoration: '{semantic.decoration.link}',\n underlineOffset: '{semantic.offset.link}',\n focusOutline: '{semantic.outline.focus}',\n focusOffset: '{semantic.space.xs}',\n radius: '{semantic.radius.control}',\n transitionDuration: '{semantic.motion.fast}',\n hoverOpacity: '{semantic.opacity.backdrop}'\n },\n meter: {\n height: '{semantic.size.meterHeight}',\n radius: '{semantic.radius.round}',\n trackBackground: '{semantic.color.surfaceEmphasis}',\n valueBackground: '{semantic.color.primary}',\n successBackground: '{semantic.status.success}',\n warningBackground: '{semantic.status.warning}',\n dangerBackground: '{semantic.status.danger}',\n valueTransitionDuration: '{semantic.motion.normal}',\n backgroundTransitionDuration: '{semantic.motion.fast}'\n },\n popover: {\n minWidth: '{semantic.size.popover}',\n padding: '{semantic.space.md}',\n borderWidth: '{semantic.border.thin}',\n borderColor: '{semantic.color.border}',\n radius: '{semantic.radius.overlay}',\n background: '{semantic.color.surface}',\n color: '{semantic.color.text}',\n shadow: '{semantic.shadow.overlay}',\n enterDuration: '{semantic.motion.enter}',\n enterEasing: '{semantic.motion.easing}'\n },\n progressBar: {\n height: '{semantic.size.progressBarHeight}',\n radius: '{semantic.radius.round}',\n trackBackground: '{semantic.color.surfaceEmphasis}',\n valueBackground: '{semantic.color.primary}',\n successBackground: '{semantic.status.success}',\n warningBackground: '{semantic.status.warning}',\n dangerBackground: '{semantic.status.danger}',\n indeterminateWidth: '{semantic.size.progressBarIndeterminateWidth}',\n indeterminateDuration: '{semantic.motion.indeterminate}',\n valueTransitionDuration: '{semantic.motion.normal}',\n backgroundTransitionDuration: '{semantic.motion.fast}'\n },\n selectorList: {\n menuMaxHeight: '{semantic.size.selectorListMenu}',\n menuBackground: '{semantic.color.surface}',\n menuColor: '{semantic.color.text}',\n itemPaddingBlock: '{semantic.space.sm}',\n itemPaddingInline: '{semantic.space.md}',\n itemActiveBackground: '{semantic.color.surfaceMuted}',\n labelGap: '{semantic.space.sm}',\n labelColor: '{semantic.color.text}',\n labelSize: '{semantic.text.sm}',\n labelWeight: '{semantic.fontWeight.medium}',\n triggerMinHeight: '{semantic.size.controlMd}',\n triggerPaddingBlock: '{semantic.space.sm}',\n triggerPaddingInline: '{semantic.space.md}',\n triggerBorderColor: '{semantic.color.border}',\n triggerBorderHoverColor: '{semantic.color.borderStrong}',\n triggerBorderFocusColor: '{semantic.color.focus}',\n triggerRadius: '{semantic.radius.control}',\n triggerBackground: '{semantic.color.surface}',\n triggerColor: '{semantic.color.text}',\n triggerFocusShadow: '{semantic.shadow.focus}',\n triggerBorderWidth: '{semantic.border.thin}',\n triggerDuration: '{semantic.motion.normal}',\n triggerEasing: '{semantic.motion.easing}',\n menuBorderWidth: '{semantic.border.thin}',\n menuBorderColor: '{semantic.color.border}',\n menuRadius: '{semantic.radius.overlay}',\n menuShadow: '{semantic.shadow.overlay}',\n itemRadius: '{semantic.radius.control}',\n itemSelectedColor: '{semantic.color.primary}',\n itemSelectedWeight: '{semantic.fontWeight.semibold}'\n },\n skeleton: {\n background: '{semantic.color.surfaceMuted}',\n highlight: '{semantic.color.surface}',\n radius: '{semantic.radius.control}',\n duration: '{semantic.motion.shimmer}'\n },\n tooltip: {\n maxWidth: '{semantic.size.tooltip}',\n paddingBlock: '{semantic.space.sm}',\n paddingInline: '{semantic.space.md}',\n radius: '{semantic.radius.control}',\n background: '{semantic.color.text}',\n color: '{semantic.color.background}',\n shadow: '{semantic.shadow.overlay}',\n enterDuration: '{semantic.motion.enter}',\n enterEasing: '{semantic.motion.easing}'\n },\n modal: {\n background: '{semantic.color.surface}',\n color: '{semantic.color.text}',\n borderColor: '{semantic.color.border}',\n borderWidth: '{semantic.border.thin}',\n radius: '{semantic.radius.overlay}',\n shadow: '{semantic.shadow.modal}',\n padding: '{semantic.space.modal}',\n margin: '{semantic.space.lg}',\n viewportInset: '{semantic.size.modalViewportInset}',\n headerPaddingBlockStart: '{semantic.space.modal}',\n headerPaddingBlockEnd: '{semantic.space.sm}',\n bodyPaddingBlock: '{semantic.space.sm}',\n footerPaddingBlock: '{semantic.space.lg}',\n backdrop: '{semantic.color.background}',\n width: '{semantic.size.modalMd}',\n widthSm: '{semantic.size.modalSm}',\n widthLg: '{semantic.size.modalLg}',\n widthXl: '{semantic.size.modalXl}',\n backdropOpacity: '{semantic.opacity.modal}',\n enterDuration: '{semantic.motion.enter}',\n enterEasing: '{semantic.motion.easing}',\n footerGap: '{semantic.space.sm}',\n closeRadius: '{semantic.radius.control}',\n closeBackgroundHover: '{semantic.color.surfaceMuted}',\n closeFocusShadow: '{semantic.shadow.focus}'\n },\n listBox: {\n borderWidth: '{semantic.border.thin}',\n borderColor: '{semantic.color.border}',\n radius: '{semantic.radius.surface}',\n background: '{semantic.color.surface}',\n color: '{semantic.color.text}',\n optionPaddingBlock: '{semantic.space.sm}',\n optionPaddingInline: '{semantic.space.md}',\n optionFocusShadow: '{semantic.shadow.focus}',\n optionBackgroundHover: '{semantic.color.surfaceMuted}',\n optionSelectedBackground: '{semantic.color.surfaceMuted}',\n optionSelectedColor: '{semantic.color.primary}',\n optionSelectedWeight: '{semantic.fontWeight.semibold}'\n },\n pagination: {\n gap: '{semantic.space.sm}',\n minWidth: '{semantic.size.buttonMin}',\n minHeight: '{semantic.size.controlMd}',\n paddingBlock: '{semantic.space.sm}',\n paddingInline: '{semantic.space.lg}',\n borderColor: '{semantic.color.border}',\n radius: '{semantic.radius.control}',\n background: '{semantic.color.surface}',\n color: '{semantic.color.text}',\n backgroundHover: '{semantic.color.surfaceMuted}',\n colorHover: '{semantic.color.primary}',\n currentBorderColor: '{semantic.color.primary}',\n currentBackground: '{semantic.color.actionBackground}',\n currentColor: '{semantic.color.actionForeground}',\n currentWeight: '{semantic.fontWeight.semibold}',\n focusShadow: '{semantic.shadow.focus}'\n },\n schedule: {\n surface: '{semantic.color.surface}',\n surfaceMuted: '{semantic.color.surfaceMuted}',\n color: '{semantic.color.textMuted}',\n borderColor: '{semantic.color.border}',\n borderRadius: '{semantic.radius.surface}',\n shadow: '{semantic.shadow.subtle}',\n padding: '{semantic.space.lg}',\n dividerColor: '{semantic.color.border}',\n primary: '{semantic.color.primary}',\n selectedBackground: '{semantic.color.surfaceMuted}',\n gap: '{semantic.space.sm}',\n dayColumns: '{semantic.layout.scheduleDay}',\n weekColumns: '{semantic.layout.scheduleWeek}',\n workweekColumns: '{semantic.layout.scheduleWorkweek}'\n },\n tabs: {\n gap: '{semantic.space.sm}',\n borderColor: '{semantic.color.border}',\n listBackground: '{semantic.color.surfaceMuted}',\n listRadius: '{semantic.radius.tab}',\n paddingBlock: '{semantic.space.sm}',\n paddingInline: '{semantic.space.lg}',\n tabMinHeight: '{semantic.size.controlMd}',\n tabRadius: '{semantic.radius.tab}',\n color: '{semantic.color.text}',\n hoverColor: '{semantic.color.primary}',\n selectedColor: '{semantic.color.primary}',\n selectedBackground: '{semantic.color.actionBackground}',\n selectedForeground: '{semantic.color.actionForeground}',\n selectedShadow: '{semantic.shadow.subtle}',\n focusShadow: '{semantic.shadow.focus}'\n },\n tagGroup: {\n gap: '{semantic.space.xs}',\n minHeight: '{semantic.size.controlSm}',\n paddingInline: '{semantic.space.sm}',\n borderColor: '{semantic.color.border}',\n radius: '{semantic.radius.round}',\n background: '{semantic.color.surfaceMuted}',\n color: '{semantic.color.text}',\n fontSize: '{semantic.text.sm}',\n backgroundHover: '{semantic.color.surfaceMuted}',\n selectedBorderColor: '{semantic.color.primary}',\n selectedBackground: '{semantic.color.primary}',\n selectedColor: '{semantic.color.primaryForeground}',\n focusShadow: '{semantic.shadow.focus}'\n },\n contentEditable: {\n background: '{semantic.color.surface}',\n disabledBackground: '{semantic.color.surfaceMuted}',\n color: '{semantic.color.text}',\n paddingBlock: '{semantic.space.sm}',\n paddingInline: '{semantic.space.md}',\n focusBorderWidth: '{semantic.border.thin}',\n focusBorderColor: '{semantic.color.focus}',\n focusShadow: '{semantic.shadow.focus}'\n }\n }\n};\n","import {\n ENVIRONMENT_INITIALIZER,\n EnvironmentProviders,\n InjectionToken,\n inject,\n makeEnvironmentProviders\n} from '@angular/core';\nimport {\n NsResolvedThemeOptions,\n NsResolvedToastThemeOptions,\n NsThemeOptions\n} from './models/theme.model';\nimport { Arvisfy } from './presets/arvisfy.preset';\nimport { NsThemeService } from './services/theme.service';\n\nconst DEFAULT_TOAST_OPTIONS: NsResolvedToastThemeOptions = {\n placement: 'top-end'\n};\n\nconst DEFAULT_THEME_OPTIONS: NsResolvedThemeOptions = {\n preset: Arvisfy,\n colorScheme: 'system',\n storageKey: 'ns-color-scheme',\n toast: DEFAULT_TOAST_OPTIONS\n};\n\nexport const NS_THEME_OPTIONS = new InjectionToken<NsResolvedThemeOptions>(\n 'NS_THEME_OPTIONS',\n { factory: () => DEFAULT_THEME_OPTIONS }\n);\n\nexport const NS_TOAST_OPTIONS = new InjectionToken<NsResolvedToastThemeOptions>(\n 'NS_TOAST_OPTIONS',\n { factory: () => DEFAULT_TOAST_OPTIONS }\n);\n\nexport function provideNsTheme(\n options: NsThemeOptions = {}\n): EnvironmentProviders {\n const resolvedOptions: NsResolvedThemeOptions = {\n ...DEFAULT_THEME_OPTIONS,\n ...options,\n toast: { ...DEFAULT_TOAST_OPTIONS, ...options.toast }\n };\n return makeEnvironmentProviders([\n {\n provide: NS_THEME_OPTIONS,\n useValue: resolvedOptions\n },\n {\n provide: NS_TOAST_OPTIONS,\n useValue: resolvedOptions.toast\n },\n {\n provide: ENVIRONMENT_INITIALIZER,\n multi: true,\n useValue: () => inject(NsThemeService)\n }\n ]);\n}\n","import {\n NsPrimitiveReference,\n NsPrimitiveTokenValue,\n NsSemanticReference,\n NsThemePreset,\n NsThemePresetOverrides,\n NsTokenTree\n} from '../models/theme.model';\n\nconst TOKEN_KEY = /^(?:[a-z][a-zA-Z0-9]*|[0-9]+)$/;\nconst UNSAFE_CSS_VALUE = /[;{}]/;\nconst PRIMITIVE_REFERENCE = /^\\{primitive\\.([a-zA-Z0-9.]+)\\}$/;\nconst SEMANTIC_REFERENCE = /^\\{semantic\\.([a-zA-Z0-9.]+)\\}$/;\n\nexport function defineNsPreset(\n base: NsThemePreset,\n overrides: NsThemePresetOverrides\n): NsThemePreset {\n const preset = mergeObjects(base, overrides) as NsThemePreset;\n validateNsPreset(preset);\n return preset;\n}\n\nexport function validateNsPreset(preset: NsThemePreset): void {\n if (!/^[a-z][a-z0-9-]*$/i.test(preset.name)) {\n throw new Error(`Invalid preset name: ${preset.name}`);\n }\n\n const primitives = flattenTokens(preset.primitive);\n const semanticCommon = flattenTokens(preset.semantic.common);\n const semanticLight = flattenTokens(preset.semantic.colorScheme.light);\n const semanticDark = flattenTokens(preset.semantic.colorScheme.dark);\n const components = flattenTokens(preset.components);\n\n for (const [path, value] of primitives) {\n if (\n typeof value === 'string' &&\n (UNSAFE_CSS_VALUE.test(value) || value.trim().length === 0)\n ) {\n throw new Error(`Unsafe primitive token value at primitive.${path}`);\n }\n }\n\n for (const tokens of [semanticCommon, semanticLight, semanticDark]) {\n validateReferences(tokens, PRIMITIVE_REFERENCE, primitives, 'primitive');\n }\n\n const semanticPaths = new Map([\n ...semanticCommon,\n ...semanticLight,\n ...semanticDark\n ]);\n validateReferences(components, SEMANTIC_REFERENCE, semanticPaths, 'semantic');\n\n for (const path of components.keys()) {\n const reference = components.get(path) as string;\n const semanticPath = SEMANTIC_REFERENCE.exec(reference)?.[1];\n if (\n semanticPath &&\n !semanticCommon.has(semanticPath) &&\n !(semanticLight.has(semanticPath) && semanticDark.has(semanticPath))\n ) {\n throw new Error(\n `Component token components.${path} must reference a common semantic token or one available in both color schemes`\n );\n }\n }\n}\n\nexport function flattenTokens<T>(tree: NsTokenTree<T>): Map<string, T> {\n const tokens = new Map<string, T>();\n\n const visit = (value: NsTokenTree<T>, prefix = ''): void => {\n for (const [key, token] of Object.entries(value)) {\n if (!TOKEN_KEY.test(key)) {\n throw new Error(`Invalid token key: ${prefix}${key}`);\n }\n\n const path = prefix ? `${prefix}.${key}` : key;\n if (isRecord(token)) {\n visit(token as NsTokenTree<T>, path);\n } else {\n tokens.set(path, token as T);\n }\n }\n };\n\n visit(tree);\n return tokens;\n}\n\nexport function tokenPathToCssVariable(\n tier: 'primitive' | 'semantic' | 'component',\n path: string\n): string {\n return `--ns-${tier}-${path\n .replace(/([a-z0-9])([A-Z])/g, '$1-$2')\n .replaceAll('.', '-')\n .toLowerCase()}`;\n}\n\nexport function referenceToCssVariable(\n reference: NsPrimitiveReference | NsSemanticReference\n): string {\n const match = /^\\{(primitive|semantic)\\.(.+)\\}$/.exec(reference);\n if (!match) {\n throw new Error(`Invalid token reference: ${reference}`);\n }\n return `var(${tokenPathToCssVariable(match[1] as 'primitive' | 'semantic', match[2])})`;\n}\n\nfunction validateReferences<T>(\n tokens: Map<string, T>,\n pattern: RegExp,\n targets: Map<string, unknown>,\n tier: string\n): void {\n for (const [path, value] of tokens) {\n if (typeof value !== 'string') {\n throw new Error(`Token ${path} must reference the ${tier} tier`);\n }\n\n const target = pattern.exec(value)?.[1];\n if (!target || !targets.has(target)) {\n throw new Error(`Invalid ${tier} reference at ${path}: ${value}`);\n }\n }\n}\n\nfunction mergeObjects(\n base: unknown,\n overrides: unknown\n): Record<string, unknown> | unknown {\n if (!isRecord(base) || !isRecord(overrides)) {\n return overrides === undefined ? base : overrides;\n }\n\n const merged: Record<string, unknown> = { ...base };\n for (const [key, value] of Object.entries(overrides)) {\n merged[key] = mergeObjects(base[key], value);\n }\n return merged;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nexport type NsFlattenedPrimitiveTokens = Map<string, NsPrimitiveTokenValue>;\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n DestroyRef,\n Injectable,\n PLATFORM_ID,\n computed,\n inject,\n signal\n} from '@angular/core';\nimport {\n NsColorScheme,\n NsResolvedColorScheme,\n NsThemePreset\n} from '../models/theme.model';\nimport { NS_THEME_OPTIONS } from '../theme.provider';\nimport {\n flattenTokens,\n referenceToCssVariable,\n tokenPathToCssVariable,\n validateNsPreset\n} from '../utils/theme.utils';\n\n@Injectable({ providedIn: 'root' })\nexport class NsThemeService {\n private readonly document = inject(DOCUMENT);\n private readonly platformId = inject(PLATFORM_ID);\n private readonly destroyRef = inject(DestroyRef);\n private readonly options = inject(NS_THEME_OPTIONS);\n private readonly browser = isPlatformBrowser(this.platformId);\n private readonly activeVariables = new Set<string>();\n private readonly mediaQuery = this.createMediaQuery();\n private readonly systemScheme = signal<NsResolvedColorScheme>(\n this.mediaQuery?.matches ? 'dark' : 'light'\n );\n private readonly presetState = signal(this.options.preset);\n private readonly schemeState = signal<NsColorScheme>(\n this.readStoredScheme() ?? this.options.colorScheme\n );\n\n readonly preset = this.presetState.asReadonly();\n readonly colorScheme = this.schemeState.asReadonly();\n readonly scheme = this.colorScheme;\n readonly resolvedColorScheme = computed<NsResolvedColorScheme>(() =>\n this.schemeState() === 'system'\n ? this.systemScheme()\n : (this.schemeState() as NsResolvedColorScheme)\n );\n\n constructor() {\n validateNsPreset(this.options.preset);\n this.mediaQuery?.addEventListener('change', this.onSystemSchemeChange);\n this.destroyRef.onDestroy(() =>\n this.mediaQuery?.removeEventListener('change', this.onSystemSchemeChange)\n );\n this.applyTheme();\n }\n\n setPreset(preset: NsThemePreset): void {\n validateNsPreset(preset);\n this.presetState.set(preset);\n this.applyTheme();\n }\n\n setColorScheme(colorScheme: NsColorScheme): void {\n this.schemeState.set(colorScheme);\n this.persistScheme(colorScheme);\n this.applyTheme();\n }\n\n setScheme(colorScheme: NsColorScheme): void {\n this.setColorScheme(colorScheme);\n }\n\n private readonly onSystemSchemeChange = (\n event: MediaQueryListEvent\n ): void => {\n this.systemScheme.set(event.matches ? 'dark' : 'light');\n if (this.schemeState() === 'system') {\n this.applyTheme();\n }\n };\n\n private applyTheme(): void {\n const root = this.document.documentElement;\n const preset = this.presetState();\n const scheme = this.resolvedColorScheme();\n const variables = new Map<string, string>();\n\n for (const [path, value] of flattenTokens(preset.primitive)) {\n variables.set(tokenPathToCssVariable('primitive', path), String(value));\n }\n\n const semanticCommon = flattenTokens(preset.semantic.common);\n const semanticScheme = flattenTokens(preset.semantic.colorScheme[scheme]);\n const semantic = new Map([...semanticCommon, ...semanticScheme]);\n for (const [path, reference] of semantic) {\n variables.set(\n tokenPathToCssVariable('semantic', path),\n referenceToCssVariable(reference)\n );\n }\n for (const [path, reference] of semanticCommon) {\n variables.set(\n tokenPathToCssVariable('semantic', `common.${path}`),\n referenceToCssVariable(reference)\n );\n }\n\n for (const [path, reference] of flattenTokens(preset.components)) {\n variables.set(\n tokenPathToCssVariable('component', path),\n referenceToCssVariable(reference)\n );\n }\n\n for (const variable of this.activeVariables) {\n if (!variables.has(variable)) {\n root.style.removeProperty(variable);\n }\n }\n for (const [variable, value] of variables) {\n root.style.setProperty(variable, value);\n }\n\n this.activeVariables.clear();\n for (const variable of variables.keys()) {\n this.activeVariables.add(variable);\n }\n\n root.dataset['nsPreset'] = preset.name;\n root.dataset['nsColorScheme'] = scheme;\n root.style.colorScheme = scheme;\n }\n\n private createMediaQuery(): MediaQueryList | undefined {\n const view = this.document.defaultView;\n return this.browser && typeof view?.matchMedia === 'function'\n ? view.matchMedia('(prefers-color-scheme: dark)')\n : undefined;\n }\n\n private readStoredScheme(): NsResolvedColorScheme | undefined {\n if (!this.browser || this.options.storageKey === false) {\n return undefined;\n }\n\n try {\n const stored = this.document.defaultView?.localStorage.getItem(\n this.options.storageKey\n );\n return stored === 'light' || stored === 'dark' ? stored : undefined;\n } catch {\n return undefined;\n }\n }\n\n private persistScheme(colorScheme: NsColorScheme): void {\n if (!this.browser || this.options.storageKey === false) {\n return;\n }\n\n try {\n const storage = this.document.defaultView?.localStorage;\n if (colorScheme === 'system') {\n storage?.removeItem(this.options.storageKey);\n } else {\n storage?.setItem(this.options.storageKey, colorScheme);\n }\n } catch {\n // Storage can be unavailable in privacy-restricted browser contexts.\n }\n }\n}\n","import { Signal, signal } from '@angular/core';\nimport { NsToastCloseReason } from '../interfaces/toast-config';\n\nexport class NsToastHandle {\n private readonly closeReason = signal<NsToastCloseReason | undefined>(\n undefined\n );\n readonly closed: Signal<NsToastCloseReason | undefined> = this.closeReason;\n\n constructor(\n private readonly closeToast: (reason: NsToastCloseReason) => void\n ) {}\n\n dismiss(): void {\n this.closeToast('programmatic');\n }\n\n resolve(reason: NsToastCloseReason): void {\n this.closeReason.set(reason);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnDestroy,\n TemplateRef,\n inject,\n input,\n output\n} from '@angular/core';\nimport {\n NsToastAction,\n NsToastCloseReason,\n NsToastPlacement,\n NsToastVariant\n} from './interfaces/toast-config';\n\n@Component({\n selector: 'ns-toast',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div class=\"ns-toast__message\">\n @if (textMessage() !== null) {\n {{ textMessage() }}\n } @else if (templateMessage()) {\n <ng-container [ngTemplateOutlet]=\"templateMessage()\" />\n }\n </div>\n @if (action()) {\n <button class=\"ns-toast__action\" type=\"button\" (click)=\"triggerAction()\">\n {{ action()?.label }}\n </button>\n }\n @if (closable()) {\n <button\n class=\"ns-toast__close\"\n type=\"button\"\n aria-label=\"Close notification\"\n (click)=\"dismiss('close')\"\n >\n ×\n </button>\n }\n `,\n styleUrl: './toast.component.scss',\n host: {\n role: 'status',\n '[class.ns-toast]': 'true',\n '[class.ns-toast--success]': \"variant() === 'success'\",\n '[class.ns-toast--warning]': \"variant() === 'warning'\",\n '[class.ns-toast--info]': \"variant() === 'info'\",\n '[class.ns-toast--danger]': \"variant() === 'danger'\",\n '[attr.data-variant]': 'variant()',\n '[attr.data-placement]': 'placement()',\n '(mouseenter)': 'pause()',\n '(mouseleave)': 'resume()',\n '(focusin)': 'pause()',\n '(focusout)': 'onFocusOut($event)'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsToastComponent implements AfterViewInit, OnDestroy {\n readonly message = input.required<string | TemplateRef<unknown>>();\n readonly variant = input<NsToastVariant>('info');\n readonly placement = input<NsToastPlacement>('top-end');\n readonly duration = input(5000);\n readonly action = input<NsToastAction | undefined>();\n readonly closable = input(true);\n readonly dismissed = output<NsToastCloseReason>();\n\n private readonly element = inject(ElementRef<HTMLElement>);\n private timer?: ReturnType<typeof setTimeout>;\n private remaining = 0;\n private startedAt = 0;\n\n ngAfterViewInit(): void {\n this.remaining = this.duration();\n this.resume();\n }\n\n ngOnDestroy(): void {\n this.pause();\n }\n\n textMessage(): string | null {\n const message = this.message();\n return typeof message === 'string' ? message : null;\n }\n\n templateMessage(): TemplateRef<unknown> | null {\n const message = this.message();\n return message instanceof TemplateRef ? message : null;\n }\n\n pause(): void {\n if (!this.timer) {\n return;\n }\n clearTimeout(this.timer);\n this.timer = undefined;\n this.remaining -= Date.now() - this.startedAt;\n }\n\n resume(): void {\n if (this.timer || this.remaining <= 0) {\n return;\n }\n this.startedAt = Date.now();\n this.timer = setTimeout(() => this.dismiss('timeout'), this.remaining);\n }\n\n dismiss(reason: NsToastCloseReason): void {\n this.pause();\n this.dismissed.emit(reason);\n }\n\n triggerAction(): void {\n this.dismiss('action');\n }\n\n onFocusOut(event: FocusEvent): void {\n const next = event.relatedTarget as Node | null;\n if (!next || !this.element.nativeElement.contains(next)) {\n this.resume();\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { NsToastPlacement } from './interfaces/toast-config';\n\n@Component({\n selector: 'ns-toast-region',\n standalone: true,\n template: '',\n styleUrl: './toast-region.component.scss',\n host: {\n '[attr.data-placement]': 'placement()',\n 'aria-live': 'polite',\n 'aria-relevant': 'additions',\n 'aria-label': 'Notifications'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsToastRegionComponent {\n readonly placement = input<NsToastPlacement>('top-end');\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n ApplicationRef,\n ComponentRef,\n DOCUMENT,\n EnvironmentInjector,\n Injectable,\n PLATFORM_ID,\n createComponent,\n inject,\n type OnDestroy\n} from '@angular/core';\nimport { NS_TOAST_OPTIONS } from '../../theme/theme.provider';\nimport { NsToastCloseReason, NsToastOptions } from '../interfaces/toast-config';\nimport { NsToastHandle } from '../models/toast-handle';\nimport { NsToastComponent } from '../toast.component';\nimport { NsToastRegionComponent } from '../toast-region.component';\n\ninterface QueuedToast {\n options: NsToastOptions;\n handle: NsToastHandle;\n}\n\ninterface VisibleToast {\n componentRef: ComponentRef<NsToastComponent>;\n options: NsToastOptions;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class NsToastService implements OnDestroy {\n private readonly leaveDuration = 200;\n\n private readonly applicationRef = inject(ApplicationRef);\n private readonly environmentInjector = inject(EnvironmentInjector);\n private readonly document = inject(DOCUMENT);\n private readonly platformId = inject(PLATFORM_ID);\n private readonly browser = isPlatformBrowser(this.platformId);\n private readonly toastOptions = inject(NS_TOAST_OPTIONS);\n private readonly pending: QueuedToast[] = [];\n private readonly visible = new Map<NsToastHandle, VisibleToast>();\n private region?: ComponentRef<NsToastRegionComponent>;\n\n get maxVisible(): number {\n return this.document.defaultView?.innerWidth &&\n this.document.defaultView.innerWidth < 768\n ? 1\n : 2;\n }\n\n /** SSR resolves immediately because notifications have no browser region. */\n show(options: NsToastOptions): NsToastHandle {\n if (!this.browser) {\n const handle = new NsToastHandle(() => undefined);\n handle.resolve('programmatic');\n return handle;\n }\n const handle = new NsToastHandle((reason) => this.dismiss(handle, reason));\n this.pending.push({ options, handle });\n this.showPending();\n return handle;\n }\n\n private showPending(): void {\n while (this.visible.size < this.maxVisible && this.pending.length) {\n const toast = this.pending.shift();\n if (toast) {\n this.showToast(toast);\n }\n }\n }\n\n private showToast({ options, handle }: QueuedToast): void {\n const componentRef = createComponent(NsToastComponent, {\n environmentInjector: this.environmentInjector\n });\n componentRef.setInput('message', options.message);\n componentRef.setInput('variant', options.variant ?? 'info');\n componentRef.setInput('placement', this.toastOptions.placement);\n componentRef.setInput('duration', options.duration ?? 5000);\n componentRef.setInput('action', options.action);\n componentRef.setInput('closable', options.closable ?? true);\n componentRef.instance.dismissed.subscribe((reason) => {\n if (reason === 'action') {\n options.action?.handler();\n }\n this.dismiss(handle, reason);\n });\n this.applicationRef.attachView(componentRef.hostView);\n this.getRegion().location.nativeElement.appendChild(\n componentRef.location.nativeElement\n );\n componentRef.changeDetectorRef.detectChanges();\n this.visible.set(handle, { componentRef, options });\n }\n\n private dismiss(handle: NsToastHandle, reason: NsToastCloseReason): void {\n const queuedIndex = this.pending.findIndex(\n (toast) => toast.handle === handle\n );\n if (queuedIndex >= 0) {\n const [toast] = this.pending.splice(queuedIndex, 1);\n toast.handle.resolve(reason);\n toast.options.onClose?.(reason);\n return;\n }\n const visibleToast = this.visible.get(handle);\n if (!visibleToast) {\n return;\n }\n this.visible.delete(handle);\n handle.resolve(reason);\n visibleToast.options.onClose?.(reason);\n visibleToast.componentRef.location.nativeElement.classList.add(\n 'ns-toast--leaving'\n );\n this.showPending();\n setTimeout(\n () => this.destroyToast(visibleToast.componentRef),\n this.leaveDuration\n );\n }\n\n ngOnDestroy(): void {\n for (const { componentRef } of this.visible.values()) {\n if (!this.applicationRef.destroyed) {\n this.applicationRef.detachView(componentRef.hostView);\n }\n componentRef.location.nativeElement.remove();\n componentRef.destroy();\n }\n this.visible.clear();\n this.pending.length = 0;\n this.destroyRegion(false);\n }\n\n private destroyToast(componentRef: ComponentRef<NsToastComponent>): void {\n this.applicationRef.detachView(componentRef.hostView);\n componentRef.location.nativeElement.remove();\n componentRef.destroy();\n this.destroyRegionIfEmpty();\n }\n\n private getRegion(): ComponentRef<NsToastRegionComponent> {\n if (this.region) {\n return this.region;\n }\n const region = createComponent(NsToastRegionComponent, {\n environmentInjector: this.environmentInjector\n });\n region.setInput('placement', this.toastOptions.placement);\n this.applicationRef.attachView(region.hostView);\n region.location.nativeElement.setAttribute(\n 'dir',\n this.document.documentElement.dir === 'rtl' ? 'rtl' : 'ltr'\n );\n this.document.body.appendChild(region.location.nativeElement);\n region.changeDetectorRef.detectChanges();\n this.region = region;\n return region;\n }\n\n private destroyRegionIfEmpty(): void {\n if (\n this.visible.size ||\n this.pending.length ||\n this.region?.location.nativeElement.querySelector('ns-toast')\n ) {\n return;\n }\n this.destroyRegion();\n }\n\n private destroyRegion(detachView = true): void {\n if (!this.region) {\n return;\n }\n if (detachView) {\n this.applicationRef.detachView(this.region.hostView);\n }\n this.region.location.nativeElement.remove();\n this.region.destroy();\n this.region = undefined;\n }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { NsVariant } from '../../types';\n\n@Component({\n selector: 'ns-surface',\n standalone: true,\n template: '<ng-content />',\n styleUrl: './surface.component.scss',\n host: {\n '[class.ns-surface]': 'true',\n '[class.ns-surface--solid]': \"variant() === 'solid'\",\n '[class.ns-surface--soft]': \"variant() === 'soft'\",\n '[class.ns-surface--outline]': \"variant() === 'outline'\",\n '[class.ns-surface--ghost]': \"variant() === 'ghost'\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsSurfaceComponent {\n readonly variant = input<NsVariant>('solid');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n contentChildren,\n effect,\n inject,\n input,\n model,\n signal\n} from '@angular/core';\nimport { NsKey, NsOrientation } from '../../types';\nimport { getNsNextNavigableIndex, NsAriaIdService } from '../a11y';\n\n@Component({\n selector: 'ns-tab',\n standalone: true,\n template: `<section\n class=\"ns-tab__panel\"\n role=\"tabpanel\"\n [id]=\"panelId\"\n [attr.aria-labelledby]=\"tabId\"\n [hidden]=\"!selected()\"\n >\n <ng-content />\n </section>`,\n styleUrls: ['./tabs.component.scss'],\n host: {\n '[class.ns-tab]': 'true',\n '[attr.data-state]': \"selected() ? 'active' : 'inactive'\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsTabComponent {\n readonly key = input.required<NsKey>();\n readonly label = input.required<string>();\n readonly disabled = input(false);\n readonly selected = signal(false);\n readonly tabId = inject(NsAriaIdService).create('ns-tab');\n readonly panelId = `${this.tabId}-panel`;\n\n readonly element = inject(ElementRef<HTMLElement>);\n}\n\n@Component({\n selector: 'ns-tabs',\n standalone: true,\n template: `\n <div\n class=\"ns-tabs__list\"\n role=\"tablist\"\n [attr.aria-orientation]=\"orientation()\"\n >\n @for (tab of tabs(); track tab.key(); let index = $index) {\n <button\n class=\"ns-tabs__tab\"\n type=\"button\"\n role=\"tab\"\n [id]=\"tab.tabId\"\n [attr.aria-controls]=\"tab.panelId\"\n [attr.aria-selected]=\"tab.selected()\"\n [attr.data-state]=\"tab.selected() ? 'active' : 'inactive'\"\n [attr.tabindex]=\"tab.selected() ? 0 : -1\"\n [disabled]=\"tab.disabled()\"\n (click)=\"select(tab.key())\"\n (keydown)=\"onKeydown($event, index)\"\n >\n {{ tab.label() }}\n </button>\n }\n </div>\n <ng-content />\n `,\n styleUrls: ['./tabs.component.scss'],\n host: { '[class.ns-tabs]': 'true' },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsTabsComponent {\n readonly orientation = input<NsOrientation>('horizontal');\n readonly selectedKey = model<NsKey | undefined>(undefined);\n readonly tabs = contentChildren(NsTabComponent);\n private readonly element = inject(ElementRef<HTMLElement>);\n\n constructor() {\n effect(() => this.syncSelection());\n }\n\n select(key: NsKey): void {\n const tab = this.tabs().find((candidate) => candidate.key() === key);\n if (!tab || tab.disabled()) {\n return;\n }\n this.selectedKey.set(key);\n }\n\n onKeydown(event: KeyboardEvent, index: number): void {\n const key = event.key;\n if (\n ![\n 'ArrowDown',\n 'ArrowUp',\n 'ArrowLeft',\n 'ArrowRight',\n 'Home',\n 'End'\n ].includes(key)\n ) {\n return;\n }\n const next = getNsNextNavigableIndex(\n this.tabs().map((tab) => ({ key: tab.key(), disabled: tab.disabled() })),\n index,\n key as\n 'ArrowDown' | 'ArrowUp' | 'ArrowLeft' | 'ArrowRight' | 'Home' | 'End',\n this.orientation()\n );\n if (next >= 0) {\n event.preventDefault();\n const tab = this.tabs()[next];\n this.select(tab.key());\n const button = this.element.nativeElement.querySelector(\n `[aria-controls=\"${tab.panelId}\"]`\n ) as HTMLButtonElement | null;\n button?.focus();\n }\n }\n\n private syncSelection(): void {\n const tabs = this.tabs();\n const selected =\n this.selectedKey() ?? tabs.find((tab) => !tab.disabled())?.key();\n if (selected !== undefined && this.selectedKey() !== selected) {\n this.selectedKey.set(selected);\n }\n for (const tab of tabs) {\n tab.selected.set(tab.key() === selected);\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n contentChildren,\n effect,\n inject,\n input,\n model,\n signal\n} from '@angular/core';\nimport { NsKey, NsSelectionMode } from '../../types';\nimport { getNsNextNavigableIndex, NsTypeaheadController } from '../a11y';\n\n@Component({\n selector: 'ns-tag',\n standalone: true,\n template: '<ng-content />',\n styleUrls: ['./tag-group.component.scss'],\n host: {\n role: 'option',\n '[attr.data-ns-tag-key]': 'key()',\n '[attr.aria-selected]': 'selected()',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.tabindex]': 'active() ? 0 : -1',\n '[class.ns-tag]': 'true',\n '[class.ns-tag--selected]': 'selected()',\n '[class.ns-tag--disabled]': 'disabled()',\n '[attr.data-selected]': 'selected()',\n '[attr.data-disabled]': 'disabled()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsTagComponent {\n readonly key = input.required<NsKey>();\n readonly label = input.required<string>();\n readonly disabled = input(false);\n readonly selected = signal(false);\n readonly active = signal(false);\n readonly element = inject(ElementRef<HTMLElement>);\n}\n\n@Component({\n selector: 'ns-tag-group',\n standalone: true,\n template: '<ng-content />',\n styleUrls: ['./tag-group.component.scss'],\n host: {\n role: 'listbox',\n '[class.ns-tag-group]': 'true',\n '[attr.aria-label]': 'label()',\n '[attr.aria-multiselectable]': \"selectionMode() === 'multiple'\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsTagGroupComponent {\n readonly label = input('Tags');\n readonly selectionMode = input<NsSelectionMode>('multiple');\n readonly selectedKeys = model<readonly NsKey[]>([]);\n readonly tags = contentChildren(NsTagComponent);\n private readonly typeahead = new NsTypeaheadController<{\n label: string;\n disabled: boolean;\n }>();\n private activeIndex = -1;\n\n constructor() {\n effect(() => this.syncState());\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n const tag = this.tags().find((candidate) =>\n candidate.element.nativeElement.contains(event.target as Node)\n );\n if (tag) {\n this.select(tag.key());\n }\n }\n\n @HostListener('keydown', ['$event'])\n onKeydown(event: KeyboardEvent): void {\n const tags = this.tags();\n if (!tags.length) {\n return;\n }\n if (event.key === ' ' || event.key === 'Enter') {\n const tag =\n tags[this.activeIndex] ?? tags.find((item) => !item.disabled());\n if (tag) {\n event.preventDefault();\n this.select(tag.key());\n }\n return;\n }\n let next = -1;\n if (['ArrowLeft', 'ArrowRight', 'Home', 'End'].includes(event.key)) {\n next = getNsNextNavigableIndex(\n tags.map((tag) => ({ key: tag.key(), disabled: tag.disabled() })),\n this.activeIndex,\n event.key as 'ArrowLeft' | 'ArrowRight' | 'Home' | 'End',\n 'horizontal'\n );\n } else {\n next = this.typeahead.find(\n tags.map((tag) => ({ label: tag.label(), disabled: tag.disabled() })),\n event.key,\n this.activeIndex\n );\n }\n if (next >= 0) {\n event.preventDefault();\n this.focus(next);\n }\n }\n\n select(key: NsKey): void {\n const tag = this.tags().find((candidate) => candidate.key() === key);\n if (!tag || tag.disabled() || this.selectionMode() === 'none') {\n return;\n }\n const selected = new Set(this.selectedKeys());\n if (this.selectionMode() === 'multiple') {\n selected.has(key) ? selected.delete(key) : selected.add(key);\n } else {\n selected.clear();\n selected.add(key);\n }\n this.selectedKeys.set([...selected]);\n }\n\n private focus(index: number): void {\n this.activeIndex = index;\n this.tags()[index].element.nativeElement.focus();\n this.syncState();\n }\n\n private syncState(): void {\n const selected = new Set(this.selectedKeys());\n for (const [index, tag] of this.tags().entries()) {\n tag.selected.set(selected.has(tag.key()));\n tag.active.set(index === this.activeIndex);\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnDestroy,\n effect,\n inject,\n input,\n model,\n output\n} from '@angular/core';\nimport { NsPlacement } from '../../types';\nimport {\n NsOverlayCloseReason,\n NsOverlayRef,\n NsOverlayService\n} from '../overlay';\n\n@Component({\n selector: 'ns-tooltip',\n standalone: true,\n template: '{{ message() }}',\n styleUrl: './tooltip.component.scss',\n host: {\n role: 'tooltip',\n '[id]': 'id()',\n '[class.ns-tooltip]': 'true',\n '[attr.data-state]': \"isOpen() ? 'open' : 'closed'\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NsTooltipComponent implements AfterViewInit, OnDestroy {\n readonly isOpen = model(false);\n readonly origin = input.required<HTMLElement>();\n readonly message = input.required<string>();\n readonly id = input.required<string>();\n readonly placement = input<NsPlacement>('top');\n readonly closed = output<NsOverlayCloseReason>();\n\n private readonly element = inject(ElementRef<HTMLElement>);\n private readonly overlay = inject(NsOverlayService);\n private overlayRef?: NsOverlayRef;\n private viewInitialized = false;\n\n constructor() {\n effect(() => {\n const open = this.isOpen();\n if (!this.viewInitialized) {\n return;\n }\n open ? this.openOverlay() : this.overlayRef?.close('programmatic');\n });\n }\n\n ngAfterViewInit(): void {\n this.viewInitialized = true;\n if (this.isOpen()) {\n this.openOverlay();\n }\n }\n\n ngOnDestroy(): void {\n this.overlayRef?.close('programmatic');\n }\n\n private openOverlay(): void {\n if (this.overlayRef) {\n return;\n }\n const overlayRef = this.overlay.open({\n origin: this.origin(),\n placement: this.placement(),\n closeOnEscape: true,\n closeOnOutsidePointer: false,\n trapFocus: false,\n restoreFocus: false\n });\n overlayRef.attach(this.element.nativeElement);\n this.overlayRef = overlayRef;\n overlayRef.onClose((reason) => {\n if (this.overlayRef !== overlayRef) {\n return;\n }\n this.overlayRef = undefined;\n if (this.isOpen()) {\n this.isOpen.set(false);\n }\n this.closed.emit(reason);\n });\n }\n}\n","import {\n ComponentRef,\n Directive,\n ElementRef,\n OnDestroy,\n ViewContainerRef,\n input,\n inject\n} from '@angular/core';\nimport { NsPlacement } from '../../types';\nimport { NsTooltipComponent } from './tooltip.component';\n\nlet tooltipId = 0;\n\n@Directive({\n selector: '[nsTooltip]',\n standalone: true,\n host: {\n '(mouseenter)': 'show()',\n '(mouseleave)': 'hide()',\n '(focusin)': 'show()',\n '(focusout)': 'hide()'\n }\n})\nexport class NsTooltipDirective implements OnDestroy {\n readonly message = input.required<string>({ alias: 'nsTooltip' });\n readonly placement = input<NsPlacement>('top', {\n alias: 'nsTooltipPlacement'\n });\n readonly delay = input(300, { alias: 'nsTooltipDelay' });\n\n private readonly origin = inject(ElementRef<HTMLElement>);\n private readonly viewContainer = inject(ViewContainerRef);\n private readonly id = `ns-tooltip-${tooltipId++}`;\n private componentRef?: ComponentRef<NsTooltipComponent>;\n private timer?: ReturnType<typeof setTimeout>;\n private previousDescription: string | null = null;\n\n show(): void {\n this.cancelPendingHide();\n if (this.componentRef?.instance.isOpen()) {\n return;\n }\n if (this.delay() === 0) {\n this.open();\n return;\n }\n this.timer = setTimeout(() => this.open(), this.delay());\n }\n\n hide(): void {\n this.cancelPendingHide();\n this.componentRef?.instance.isOpen.set(false);\n }\n\n ngOnDestroy(): void {\n this.cancelPendingHide();\n this.componentRef?.destroy();\n }\n\n private open(): void {\n const componentRef = this.componentRef ?? this.createComponent();\n this.addDescription();\n componentRef.instance.isOpen.set(true);\n }\n\n private createComponent(): ComponentRef<NsTooltipComponent> {\n const componentRef = this.viewContainer.createComponent(NsTooltipComponent);\n componentRef.setInput('origin', this.origin.nativeElement);\n componentRef.setInput('message', this.message());\n componentRef.setInput('id', this.id);\n componentRef.setInput('placement', this.placement());\n componentRef.instance.closed.subscribe(() => this.removeDescription());\n this.componentRef = componentRef;\n return componentRef;\n }\n\n private addDescription(): void {\n const element = this.origin.nativeElement;\n this.previousDescription ??= element.getAttribute('aria-describedby');\n const descriptions = new Set(\n (this.previousDescription ?? '').split(' ').filter(Boolean)\n );\n descriptions.add(this.id);\n element.setAttribute('aria-describedby', [...descriptions].join(' '));\n }\n\n private removeDescription(): void {\n if (this.previousDescription === null) {\n this.origin.nativeElement.removeAttribute('aria-describedby');\n } else {\n this.origin.nativeElement.setAttribute(\n 'aria-describedby',\n this.previousDescription\n );\n }\n this.previousDescription = null;\n }\n\n private cancelPendingHide(): void {\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = undefined;\n }\n }\n}\n","/*\n * Public API Surface of @ng-solid/design-system\n */\n\nexport * from './types';\nexport * from './lib/accordion';\nexport * from './lib/alert';\nexport * from './lib/avatar';\nexport * from './lib/badge';\nexport * from './lib/breadcrumbs';\nexport * from './lib/button';\nexport * from './lib/button-group';\nexport * from './lib/card';\nexport * from './lib/chip';\nexport * from './lib/collection';\nexport * from './lib/comment';\nexport * from './lib/description';\nexport * from './lib/divider';\nexport * from './lib/drawer';\nexport * from './lib/editor';\nexport * from './lib/form';\nexport * from './lib/image-upload';\nexport * from './lib/link';\nexport * from './lib/list-box';\nexport * from './lib/meter';\nexport * from './lib/modal';\nexport * from './lib/overlay';\nexport * from './lib/pagination';\nexport * from './lib/popover';\nexport * from './lib/progress-bar';\nexport * from './lib/schedule';\nexport * from './lib/schema';\nexport * from './lib/selector-list';\nexport * from './lib/skeleton';\nexport * from './lib/template';\nexport * from './lib/theme';\nexport * from './lib/toast';\nexport * from './lib/surface';\nexport * from './lib/tabs';\nexport * from './lib/tag-group';\nexport * from './lib/tooltip';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["DOCUMENT","i1"],"mappings":"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"}
|