@uni-design-system/uni-angular 4.0.0 → 5.1.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.
@@ -1 +1 @@
1
- {"version":3,"file":"uni-design-system-uni-angular.mjs","sources":["../../src/lib/cdk/datasource/base-datasource.ts","../../src/lib/cdk/datasource/record-datasource.ts","../../src/lib/cdk/datasource/server-side-datasource.ts","../../src/lib/cdk/helpers/memoize.helper.ts","../../src/lib/cdk/local-storage/local-storage.service.ts","../../src/lib/cdk/notification/notification.service.ts","../../src/lib/cdk/timer/timer.ts","../../src/lib/cdk/file/file.helper.ts","../../src/lib/theming/theme.token.ts","../../src/lib/cdk/helpers/number.helper.ts","../../src/lib/theming/theme.service.ts","../../src/lib/components/background/background.component.ts","../../src/lib/components/background/index.ts","../../src/lib/components/base/base.component.ts","../../src/lib/components/badge/badge.component.ts","../../src/lib/components/icon/icon.component.ts","../../src/lib/components/layout/box/box.component.ts","../../src/lib/components/layout/center/center.component.ts","../../src/lib/components/layout/grid/grid-area/grid-area.component.ts","../../src/lib/components/layout/grid/grid.component.ts","../../src/lib/components/layout/row/row.component.ts","../../src/lib/components/layout/stack/stack.component.ts","../../src/lib/components/layout/wrap/wrap.component.ts","../../src/lib/components/symbol/symbol.component.ts","../../src/lib/directives/ripple/ripple.directive.ts","../../src/lib/components/button/button.component.ts","../../src/lib/components/button-group/button-group.component.ts","../../src/lib/components/button-group/index.ts","../../src/lib/components/card/card-content/card-content.component.ts","../../src/lib/components/card/card-content/card-content.component.html","../../src/lib/components/text/text.component.ts","../../src/lib/components/card/card.component.ts","../../src/lib/components/card/card.component.html","../../src/lib/components/card/card-header/card-header.component.ts","../../src/lib/components/card/card-header/card-header.component.html","../../src/lib/components/checkbox/checkbox.component.ts","../../src/lib/components/checkbox/checkbox.component.html","../../src/lib/directives/body-render/body-render.directive.ts","../../src/lib/directives/drag-and-drop/drag-and-drop.directive.ts","../../src/lib/components/icon-button/icon-button.component.ts","../../src/lib/components/data-search/data-search.component.ts","../../src/lib/components/data-search/data-search.component.html","../../src/lib/components/data-search/index.ts","../../src/lib/components/scroll-area/scroll-area.component.ts","../../src/lib/components/sort-header/sort-header.component.ts","../../src/lib/components/sort-header/sort-header.component.html","../../src/lib/components/data-table/data-table.component.ts","../../src/lib/components/data-table/data-table.component.html","../../src/lib/components/data-table/index.ts","../../src/lib/components/dialog/dialog.component.ts","../../src/lib/components/dialog/dialog-buttons/dialog-buttons.component.ts","../../src/lib/components/dialog/dialog-buttons/dialog-buttons.component.html","../../src/lib/components/dialog/dialog-header/dialog-header.component.ts","../../src/lib/components/dialog/dialog-header/dialog-header.component.html","../../src/lib/components/divider/divider.component.ts","../../src/lib/components/dropdown/dropdown.component.ts","../../src/lib/components/expand/expand.component.ts","../../src/lib/components/expand/index.ts","../../src/lib/components/tooltip/tooltip.component.ts","../../src/lib/components/expand-toggle/expand-toggle.component.ts","../../src/lib/components/expand-area/expand-area.component.ts","../../src/lib/components/expand-area/index.ts","../../src/lib/components/expand-toggle/index.ts","../../src/lib/components/file-drop-zone/file-drop-zone.component.ts","../../src/lib/components/file-drop-zone/file-drop-zone.component.html","../../src/lib/components/file-drop-zone/index.ts","../../src/lib/components/forms/debounce-input/debounce-input.component.ts","../../src/lib/components/forms/debounce-input/debounce-input.component.html","../../src/lib/components/input-box/input-box.component.ts","../../src/lib/components/input-box/input-box.component.html","../../src/lib/components/input/input.component.ts","../../src/lib/components/input/input.component.html","../../src/lib/components/json-view/json-view.component.ts","../../src/lib/components/json-view/json-view.component.html","../../src/lib/components/json-view/index.ts","../../src/lib/components/menu/menu-item/menu-item.component.ts","../../src/lib/components/menu/menu-item/menu-item.component.html","../../src/lib/components/menu/menu.component.ts","../../src/lib/components/multi-select/multi-select.component.ts","../../src/lib/components/multi-select/multi-select.component.html","../../src/lib/components/multi-select-dropdown/multi-select-dropdown.component.ts","../../src/lib/components/multi-select-dropdown/multi-select-dropdown.component.html","../../src/lib/components/notification-badge/notification-badge.ts","../../src/lib/components/notification-badge/notification-badge.html","../../src/lib/components/notifications/alert/alert.component.ts","../../src/lib/components/notifications/alert/alert.component.html","../../src/lib/components/notifications/confirmation-dialog/confirmation-dialog.component.ts","../../src/lib/components/notifications/confirmation-dialog/confirmation-dialog.component.html","../../src/lib/components/notifications/snackbar/snackbar.component.ts","../../src/lib/components/notifications/snackbar/snackbar.component.html","../../src/lib/components/notifications/notifications/notifications.component.ts","../../src/lib/components/notifications/notifications/notifications.component.html","../../src/lib/components/paginator/paginator.component.ts","../../src/lib/components/paginator/paginator.component.html","../../src/lib/components/paginator/index.ts","../../src/lib/components/popover/popover.component.ts","../../src/lib/components/popover/popover.component.html","../../src/lib/components/popover/index.ts","../../src/lib/components/progress-bar/progress-bar.component.ts","../../src/lib/components/progress-bar/progress-bar.component.html","../../src/lib/components/progress-bar/index.ts","../../src/lib/components/progress-gauge/progress-gauge.component.ts","../../src/lib/components/progress-gauge/progress-gauge.component.html","../../src/lib/components/progress-gauge/index.ts","../../src/lib/components/radio/radio.component.ts","../../src/lib/components/radio/radio.component.html","../../src/lib/components/scroll-area/index.ts","../../src/lib/components/search-input/search-input.component.ts","../../src/lib/components/search-input/search-input.component.html","../../src/lib/components/search-input/index.ts","../../src/lib/components/select-input/select-input.component.ts","../../src/lib/components/select-input/select-input.component.html","../../src/lib/components/sort-header/index.ts","../../src/lib/components/tag/tag.component.ts","../../src/lib/components/tag/tag.component.html","../../src/lib/components/tag/index.ts","../../src/lib/components/toggle/toggle.component.ts","../../src/lib/components/toggle/toggle.component.html","../../src/uni-design-system-uni-angular.ts"],"sourcesContent":["import { computed, signal, Signal, WritableSignal } from '@angular/core';\n\nexport type SortDirection = 'asc' | 'desc' | 'indet';\n\nexport interface Sort<T> {\n column?: keyof T;\n direction: SortDirection;\n}\n\nexport abstract class UniBaseDatasource<T> {\n abstract records: Signal<T[]>;\n abstract recordCount: Signal<number>;\n\n selections = signal<T[]>([]);\n\n sort: WritableSignal<Sort<T>> = signal({\n column: undefined,\n direction: 'indet',\n });\n\n sortColumn = computed(() => this.sort().column);\n sortDirection = computed(() => this.sort().direction);\n\n abstract pageIndex: Signal<number>;\n abstract pageSize: Signal<number>;\n abstract pageCount: Signal<number>;\n\n pages = computed(() => Array.from({ length: this.pageCount() }, (_, index) => index + 1));\n\n startIndex = computed(() => {\n const pageSize = this.pageSize();\n const pageIndex = this.pageIndex();\n return pageSize > 0 ? pageIndex * pageSize : 0;\n });\n\n endIndex = computed(() => {\n const pageSize = this.pageSize();\n const total = this.recordCount();\n\n // If unpaginated (pageSize = 0), return total count\n if (pageSize === 0) {\n return total;\n }\n\n const start = this.startIndex();\n return Math.min(start + pageSize, total);\n });\n\n disablePrevious = computed(() => {\n const pageSize = this.pageSize();\n return pageSize === 0 ? true : this.pageIndex() === 0;\n });\n\n disableNext = computed(() => {\n const pageSize = this.pageSize();\n return pageSize === 0 ? true : this.pageIndex() + 1 >= this.pageCount();\n });\n\n truncatedPages = computed(() => {\n const currentPage = this.pageIndex() + 1;\n const displayRange = 3;\n const totalPages = this.pageCount();\n\n const pages: (number | string)[] = [];\n const startPage = Math.max(1, currentPage - displayRange);\n const endPage = Math.min(totalPages, currentPage + displayRange);\n\n if (startPage > 1) {\n pages.push(1);\n if (startPage > 2) {\n pages.push('...');\n }\n }\n\n for (let i = startPage; i <= endPage; i++) {\n pages.push(i);\n }\n\n if (endPage < totalPages) {\n if (endPage < totalPages - 1) {\n pages.push('...');\n }\n pages.push(totalPages);\n }\n return pages;\n });\n\n isSelected(row: T): boolean {\n return this.selections().some((selection) => selection === row);\n }\n\n toggleSelection(row: T) {\n this.selections.update((selections) => {\n return selections.includes(row) ? selections.filter((i) => i !== row) : [...selections, row];\n });\n }\n\n clearSelections() {\n this.selections.set([]);\n }\n\n selectAll() {\n this.selections.set([...this.records()]);\n }\n\n abstract sortRecords(sort: Sort<T>): void;\n abstract firstPage(): void;\n abstract nextPage(): void;\n abstract previousPage(): void;\n abstract lastPage(): void;\n abstract jumpToPage(page: number): void;\n abstract setPageSize(size: number): void;\n}\n","import { computed, signal } from '@angular/core';\nimport { UniBaseDatasource, Sort } from './base-datasource';\n\nexport class UniRecordDatasource<T> extends UniBaseDatasource<T> {\n private _pageNumber = signal(1);\n private _pageSize = signal<number>(0); // 0 = unpaginated (show all)\n\n initialRecords = signal<T[]>([]);\n override recordCount = computed((): number => this.initialRecords().filter(this.filter()).length);\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n filter = signal<(value: T) => boolean>((value) => true);\n\n override pageIndex = signal<number>(0);\n override pageSize = computed(() => this._pageSize());\n\n override pageCount = computed(() => {\n const pageSize = this.pageSize();\n return pageSize > 0 ? Math.ceil(this.recordCount() / pageSize) : 1;\n });\n\n override records = computed(() => {\n const { column, direction } = this.sort();\n const filter = this.filter();\n const pageSize = this.pageSize();\n\n let filteredRecords = this.initialRecords().filter(filter);\n\n // Apply sorting if specified\n if (column && direction !== 'indet') {\n filteredRecords = [...filteredRecords].sort((a, b) => {\n const valueA = a[column];\n const valueB = b[column];\n\n const isString = typeof valueA === 'string';\n const isAsc = direction === 'asc';\n\n return isString\n ? stringCompare(valueA as string, valueB as string, isAsc)\n : numberCompare(valueA as number, valueB as number, isAsc);\n });\n }\n\n // Apply pagination only if pageSize > 0\n if (pageSize > 0) {\n return filteredRecords.slice(this.startIndex(), this.endIndex());\n }\n\n // Return all records (unpaginated)\n return filteredRecords;\n });\n\n constructor(data: T[]) {\n super();\n this.initialRecords.set(data);\n }\n\n override sortRecords(sort: Sort<T>) {\n this.sort.set(sort);\n }\n\n override firstPage() {\n this.pageIndex.set(0);\n }\n\n override nextPage() {\n if (this.pageIndex() < this.pageCount() - 1) {\n this.pageIndex.update((i) => i + 1);\n }\n }\n\n override previousPage() {\n this.pageIndex.update((i) => (i > 1 ? i - 1 : 0));\n }\n\n override lastPage() {\n this.pageIndex.set(this.pageCount() - 1);\n }\n\n override jumpToPage(page: number) {\n const i = page - 1;\n if (i >= 0 && i < this.pageCount()) {\n this.pageIndex.set(i);\n }\n }\n\n override setPageSize(size: number) {\n this._pageSize.set(size);\n if (size > 0) {\n this._pageNumber.set(1);\n this.pageIndex.set(0);\n }\n }\n\n setFilter(filter: (value: T) => boolean) {\n this.filter.set(filter);\n }\n\n clearFilter() {\n this.filter.set(() => true);\n }\n}\n\nfunction stringCompare(a = 'zzz', b = 'zzz', isAsc: boolean): number {\n a = a.toString();\n b = b.toString();\n\n return isAsc\n ? a.localeCompare(b, undefined, { sensitivity: 'base' })\n : b.localeCompare(a, undefined, { sensitivity: 'base' });\n}\n\nfunction numberCompare(a = 0, b = 0, isAsc: boolean): number {\n return isAsc ? a - b : b - a;\n}\n","import {\n computed,\n linkedSignal,\n resource,\n ResourceLoaderParams,\n ResourceRef,\n type ResourceStatus,\n signal,\n} from '@angular/core';\nimport { UniBaseDatasource, Sort, SortDirection } from './base-datasource';\n\nexport interface PageRequest {\n pageNumber: number;\n pageSize: number;\n sortColumn?: string;\n sortDirection?: SortDirection;\n filter?: Record<string, any>;\n}\n\nexport interface PageResponse<T> {\n data: T[];\n totalRecords: number;\n pageNumber: number;\n pageSize: number;\n}\n\nexport type DataLoader<T> = (request: PageRequest) => Promise<PageResponse<T>>;\n\nexport class UniServerSideDatasource<T> extends UniBaseDatasource<T> {\n private _pageNumber = signal(1);\n private _pageSize = signal(10);\n private _sortColumn = signal<keyof T | undefined>(undefined);\n private _sortDirection = signal<SortDirection>('indet');\n private filter = signal<Record<string, any>>({});\n\n override sortColumn = computed(() => this._sortColumn());\n override sortDirection = computed(() => this._sortDirection());\n\n private totalRecords = signal(0);\n\n private dataResource: ResourceRef<PageResponse<T> | undefined>;\n\n override pageIndex = computed(() => this._pageNumber() - 1);\n override pageSize = computed(() => this._pageSize());\n\n override pageCount = computed(() => {\n const total = this.totalRecords();\n const size = this.pageSize();\n return total > 0 ? Math.ceil(total / size) : 0;\n });\n\n private readonly _records = linkedSignal<\n {\n val: PageResponse<T> | undefined;\n status: ResourceStatus;\n },\n T[]\n >({\n source: () => ({\n val: this.dataResource.value(),\n status: this.dataResource.status(),\n }),\n computation: (source, previous) => {\n if (source.status === 'loading' && previous) {\n return previous.value;\n }\n return source.val?.data ?? [];\n },\n });\n\n override records = this._records.asReadonly();\n\n override recordCount = computed(() => this.totalRecords());\n\n isLoading = computed(() => this.dataResource.isLoading());\n\n error = computed(() => this.dataResource.error());\n\n hasError = computed(() => this.dataResource.hasValue() === false && this.error() !== undefined);\n\n constructor(\n private dataLoader: DataLoader<T>,\n initialPageSize = 10\n ) {\n super();\n this._pageSize.set(initialPageSize);\n\n this.dataResource = resource({\n params: () => ({\n pageNumber: this._pageNumber(),\n pageSize: this._pageSize(),\n sortColumn: this._sortColumn() as string | undefined,\n sortDirection: this._sortDirection(),\n filter: this.filter(),\n }),\n loader: async (params: ResourceLoaderParams<PageRequest>) => {\n const request = params.params;\n const response = await this.dataLoader(request);\n\n if (request.pageNumber === 1 || this.totalRecords() === 0) {\n this.totalRecords.set(response.totalRecords);\n }\n\n return response;\n },\n });\n }\n\n override sortRecords(sort: Sort<T>) {\n this.sort.set(sort);\n this._sortColumn.set(sort.column);\n this._sortDirection.set(sort.direction);\n this._pageNumber.set(1);\n }\n\n override firstPage() {\n this._pageNumber.set(1);\n }\n\n override nextPage() {\n if (this._pageNumber() < this.pageCount()) {\n this._pageNumber.update((n) => n + 1);\n }\n }\n\n override previousPage() {\n if (this._pageNumber() > 1) {\n this._pageNumber.update((n) => n - 1);\n }\n }\n\n override lastPage() {\n this._pageNumber.set(this.pageCount());\n }\n\n override jumpToPage(page: number) {\n if (page >= 1 && page <= this.pageCount()) {\n this._pageNumber.set(page);\n }\n }\n\n override setPageSize(size: number) {\n if (size > 0) {\n this._pageSize.set(size);\n this._pageNumber.set(1);\n }\n }\n\n setFilter(filterValues: Record<string, any>) {\n this.filter.set(filterValues);\n this._pageNumber.set(1);\n }\n\n clearFilter() {\n this.filter.set({});\n this._pageNumber.set(1);\n }\n\n refresh() {\n this.dataResource.reload();\n }\n\n getPageRequest(): PageRequest {\n return {\n pageNumber: this._pageNumber(),\n pageSize: this._pageSize(),\n sortColumn: this._sortColumn() as string | undefined,\n sortDirection: this._sortDirection(),\n filter: this.filter(),\n };\n }\n}\n","export function memoize<T extends (...args: any[]) => any>(fn: T): T {\n const cache = new Map<string, ReturnType<T>>();\n\n return ((...args: Parameters<T>): ReturnType<T> => {\n const key = JSON.stringify(args);\n\n if (cache.has(key)) {\n return cache.get(key)!;\n }\n\n const result = fn(...args);\n cache.set(key, result);\n return result;\n }) as T;\n}\n","import { Injectable } from '@angular/core';\nimport { memoize } from '../helpers/memoize.helper';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LocalStorageService {\n private isLocalStorageAvailable = memoize((): boolean => {\n try {\n const test = '__localStorage_test__';\n localStorage.setItem(test, test);\n localStorage.removeItem(test);\n return true;\n } catch {\n return false;\n }\n });\n\n setItem<T>(key: string, value: T): boolean {\n if (!this.isLocalStorageAvailable()) {\n console.warn('LocalStorage is not available');\n return false;\n }\n\n try {\n const stringValue = typeof value === 'string' ? value : JSON.stringify(value);\n localStorage.setItem(key, stringValue);\n return true;\n } catch (error) {\n console.error('Error saving to localStorage:', error);\n return false;\n }\n }\n\n getItem<T>(key: string): T | null {\n if (!this.isLocalStorageAvailable()) {\n return null;\n }\n\n try {\n const item = localStorage.getItem(key);\n if (item === null) {\n return null;\n }\n\n try {\n return JSON.parse(item) as T;\n } catch {\n return item as T;\n }\n } catch (error) {\n console.error('Error reading from localStorage:', error);\n return null;\n }\n }\n\n removeItem(key: string): boolean {\n if (!this.isLocalStorageAvailable()) {\n return false;\n }\n\n try {\n localStorage.removeItem(key);\n return true;\n } catch (error) {\n console.error('Error removing from localStorage:', error);\n return false;\n }\n }\n\n clear(): boolean {\n if (!this.isLocalStorageAvailable()) {\n return false;\n }\n\n try {\n localStorage.clear();\n return true;\n } catch (error) {\n console.error('Error clearing localStorage:', error);\n return false;\n }\n }\n\n hasKey(key: string): boolean {\n if (!this.isLocalStorageAvailable()) {\n return false;\n }\n\n return localStorage.getItem(key) !== null;\n }\n\n getAllKeys(): string[] {\n if (!this.isLocalStorageAvailable()) {\n return [];\n }\n\n try {\n return Object.keys(localStorage);\n } catch (error) {\n console.error('Error getting localStorage keys:', error);\n return [];\n }\n }\n\n getSize(): number {\n if (!this.isLocalStorageAvailable()) {\n return 0;\n }\n\n try {\n let total = 0;\n for (const key in localStorage) {\n if (Object.prototype.hasOwnProperty.call(localStorage, key)) {\n total += localStorage[key].length + key.length;\n }\n }\n return total;\n } catch (error) {\n console.error('Error calculating localStorage size:', error);\n return 0;\n }\n }\n}\n","import { Injectable, signal } from '@angular/core';\nimport { Alert, Confirmation, Snackbar } from './notification.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NotificationService {\n /* Alert */\n alert = signal<Alert | undefined>(undefined);\n showAlert = (alert: Alert) => this.alert.set(alert);\n hideAlert = () => this.alert.set(undefined);\n\n /* Snackbar */\n snackbar = signal<Snackbar | undefined>(undefined);\n showSnackbar = (snackbar: Snackbar) => this.snackbar.set(snackbar);\n hideSnackbar = () => this.snackbar.set(undefined);\n\n /* Confirmation */\n confirmation = signal<Confirmation | undefined>(undefined);\n showConfirmation = (confirmation: Confirmation) => this.confirmation.set(confirmation);\n hideConfirmation = () => this.confirmation.set(undefined);\n}\n","import { computed, DestroyRef, inject, signal } from '@angular/core';\n\nexport function useTimer() {\n const destroyRef = inject(DestroyRef);\n\n const msRemaining = signal<number>(0);\n const isPaused = signal<boolean>(false);\n const isActive = computed(() => msRemaining() > 0);\n\n let intervalId: any = null;\n let endTime = 0;\n let onCompleteCallback: (() => void) | undefined;\n\n const stop = () => {\n if (intervalId) clearInterval(intervalId);\n intervalId = null;\n };\n\n const tick = () => {\n const remaining = Math.max(0, endTime - Date.now());\n msRemaining.set(remaining);\n\n if (remaining <= 0) {\n stop();\n if (onCompleteCallback) onCompleteCallback();\n }\n };\n\n const start = (durationMs: number, onComplete?: () => void) => {\n stop();\n onCompleteCallback = onComplete;\n isPaused.set(false);\n msRemaining.set(durationMs);\n endTime = Date.now() + durationMs;\n intervalId = setInterval(tick, 100);\n };\n\n const pause = () => {\n if (!isActive() || isPaused()) return;\n stop();\n isPaused.set(true);\n };\n\n const resume = () => {\n if (!isActive() || !isPaused()) return;\n isPaused.set(false);\n endTime = Date.now() + msRemaining();\n intervalId = setInterval(tick, 100);\n };\n\n destroyRef.onDestroy(() => stop());\n\n return {\n start,\n pause,\n resume,\n stop: () => {\n stop();\n msRemaining.set(0);\n },\n msRemaining,\n isPaused,\n isActive,\n secondsRemaining: computed(() => Math.ceil(msRemaining() / 1000)),\n };\n}\n","export const acceptableFile = (\n file: File,\n acceptedFileExtensions: string[] | undefined\n): boolean => {\n if (!acceptedFileExtensions || acceptedFileExtensions.length < 1) return true;\n return acceptedFileExtensions.includes(getFileExtension(file));\n};\n\nexport const getFileExtension = (file: File): string => '.' + file.name.split('.').pop();\n","import { InjectionToken } from '@angular/core';\nimport { type UniTheme, UniThemes } from '@uni-design-system/uni-core';\n\nexport const UNI_THEMES = new InjectionToken<Record<string, UniTheme>>('', {\n providedIn: 'root',\n factory: () => UniThemes,\n});\n","export const safeParseInt = (n: string | number) => (typeof n === 'number' ? n : parseInt(n));\n","// noinspection JSUnusedGlobalSymbols\n\nimport { computed, inject, Injectable, linkedSignal, Signal, signal } from '@angular/core';\nimport { css } from '@emotion/css';\nimport { LocalStorageService, Options } from '../cdk';\nimport {\n LightTheme,\n type NullableSize,\n type ThemeName,\n type Typeface,\n type UniTheme,\n Z_INDEX,\n type ZIndexableElements,\n ColorToken,\n ComponentName,\n ComponentTheme,\n ContainerColorToken,\n ContentColorToken,\n NullableStyleExpression,\n OptionalSize,\n Size,\n TextRole,\n Thickness,\n Variant,\n type ColorKey,\n type Radius,\n type Border,\n type Shadow,\n} from '@uni-design-system/uni-core';\n\nimport { UNI_THEMES } from './theme.token';\nimport { safeParseInt } from '../cdk/helpers/number.helper';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ThemeService {\n private themes = inject(UNI_THEMES);\n private localStorage = inject(LocalStorageService);\n\n theme = signal<UniTheme>(LightTheme);\n themeOptions = signal<Options<ThemeName>>([]);\n\n components = computed(() => this.theme().components);\n component = <T>(componentName: ComponentName): Signal<ComponentTheme<T>> =>\n computed(() => (this.components()[componentName] as ComponentTheme<T>) || {});\n colors = computed(() => this.theme().colors);\n typeFaces = computed(() => this.theme().typefaces);\n spacing = computed(() => this.theme().spacing);\n thicknesses = computed(() => this.theme().thicknesses);\n radii = computed(() => this.theme().radii);\n borders = computed(() => this.theme().borders);\n shadows = computed(() => this.theme().shadows);\n icons = computed(() => this.theme().icons);\n\n constructor() {\n this.themeOptions.set(\n Object.keys(this.themes).map((key) => {\n return { label: this.themes[key].name, value: key };\n })\n );\n\n this.selectTheme(this.localStorage.getItem('theme') || Object.keys(this.themes)[0] || 'base');\n }\n\n public selectTheme(themeName: ThemeName): void {\n this.selectedThemeKey.set(themeName);\n if (this.themes[themeName]) this.theme.set(this.themes[themeName]);\n this.localStorage.setItem('theme', themeName);\n }\n\n public selectedThemeName = computed(() => this.theme().name);\n public selectedThemeKey = signal<string>('');\n\n textClass = (textRole: TextRole, textColor?: ContentColorToken) => {\n return css([\n {\n ...this.typeFaces()[textRole],\n },\n textColor && {\n color: this.colors()[textColor],\n },\n ]);\n };\n\n componentStyle = (componentName: ComponentName, variant: Variant, size: Size) =>\n computed(() => {\n const component = this.component(componentName)();\n const { fixed, colors, sizes } = component;\n const colorStyle = colors && colors[variant];\n const sizeStyle = sizes && sizes[size];\n return { ...fixed, ...colorStyle, ...sizeStyle };\n });\n\n getSpacing = (size: NullableSize) => {\n return size === 'none' ? 'none' : this.spacing()[size];\n };\n\n getThickness = (thickness: Thickness) => this.theme().thicknesses[thickness];\n\n getContentColor = (token: ContainerColorToken, useVariant?: boolean) =>\n useVariant\n ? this.colors()[`on-${token}-variant` as ColorToken]\n : this.colors()[`on-${token}` as ColorToken];\n\n colorPair = (token?: ContainerColorToken, colorVariant?: boolean): NullableStyleExpression => {\n if (!token) return;\n const backgroundColor = this.colors()[token];\n const color = this.getContentColor(token, colorVariant);\n return { color, backgroundColor };\n };\n\n backgroundColor = (token?: ColorKey): NullableStyleExpression => {\n return !token ? undefined : { backgroundColor: this.colors()[token] };\n };\n\n backgroundImage = (url?: string): NullableStyleExpression => {\n return !url ? undefined : { backgroundImage: `url(${url})` };\n };\n\n getContainerColors = (color: Variant, useVariant?: boolean) => {\n const token = (color + '-container') as ContainerColorToken;\n return this.colorPair(token, useVariant);\n };\n\n typeface = (typeface?: Typeface) => {\n const typefaces = this.typeFaces();\n return typeface && typefaces[typeface];\n };\n\n colorPalette = () => this.colors();\n\n color(color?: ColorKey): NullableStyleExpression {\n return !color ? undefined : { color: this.colors()[color] };\n }\n\n getDashedBorder(\n color: ColorKey | undefined,\n radius: Radius | undefined\n ): NullableStyleExpression {\n if (!color) return;\n\n const r = radius && this.radii()[radius];\n const borderRadius = r ? safeParseInt(r) : 0;\n const colors = this.colors()[color];\n const strokeColor = colors?.replace('#', '%23');\n\n return {\n backgroundImage: `url(\"data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='${borderRadius}' ry='${borderRadius}' stroke='${strokeColor}' stroke-width='4' stroke-dasharray='6%2c 14' stroke-dashoffset='0' stroke-linecap='square'/%3e%3c/svg%3e\")`,\n borderRadius,\n };\n }\n\n radius(size: Radius | undefined): NullableStyleExpression {\n return !size ? undefined : { borderRadius: this.radii()[size] };\n }\n\n getRadiusLeft(size: Radius | undefined): NullableStyleExpression {\n if (!size) return;\n return {\n borderBottomLeftRadius: this.radii()[size],\n borderTopLeftRadius: this.radii()[size],\n };\n }\n\n getRadiusRight(size: Radius | undefined): NullableStyleExpression {\n if (!size) return;\n return {\n borderBottomRightRadius: this.radii()[size],\n borderTopRightRadius: this.radii()[size],\n };\n }\n\n getRadiusTop(size: Radius | undefined): NullableStyleExpression {\n if (!size) return;\n return {\n borderTopLeftRadius: this.radii()[size],\n borderTopRightRadius: this.radii()[size],\n };\n }\n\n getRadiusBottom(size: Radius | undefined): NullableStyleExpression {\n if (!size) return;\n return {\n borderBottomLeftRadius: this.radii()[size],\n borderBottomRightRadius: this.radii()[size],\n };\n }\n\n padding(size: OptionalSize): NullableStyleExpression {\n return !size ? undefined : { padding: this.spacing()[size] };\n }\n\n horizontalPadding(size: OptionalSize): NullableStyleExpression {\n return !size ? undefined : { paddingInline: this.spacing()[size] };\n }\n\n verticalPadding(size: OptionalSize): NullableStyleExpression {\n return !size ? undefined : { paddingBlock: this.spacing()[size] };\n }\n\n paddingLeft(size: OptionalSize): NullableStyleExpression {\n return !size ? undefined : { paddingLeft: this.spacing()[size] };\n }\n\n paddingRight(size: OptionalSize): NullableStyleExpression {\n return !size ? undefined : { paddingRight: this.spacing()[size] };\n }\n\n paddingTop(size: OptionalSize): NullableStyleExpression {\n return !size ? undefined : { paddingTop: this.spacing()[size] };\n }\n\n paddingBottom(size: OptionalSize): NullableStyleExpression {\n return !size ? undefined : { paddingBottom: this.spacing()[size] };\n }\n\n border(border: Border | undefined): NullableStyleExpression {\n return !border ? undefined : { border: this.borders()[border] };\n }\n\n borderTop(border: Border | undefined): NullableStyleExpression {\n return !border ? undefined : { borderTop: this.borders()[border] };\n }\n\n borderBottom(border: Border | undefined): NullableStyleExpression {\n return !border ? undefined : { borderBottom: this.borders()[border] };\n }\n\n borderLeft(border: Border | undefined): NullableStyleExpression {\n return !border ? undefined : { borderLeft: this.borders()[border] };\n }\n\n borderRight(border: Border | undefined): NullableStyleExpression {\n return !border ? undefined : { borderRight: this.borders()[border] };\n }\n\n boxShadow(shadow: Shadow | undefined) {\n return !shadow ? undefined : { boxShadow: this.shadows()[shadow] };\n }\n\n gap(gap: OptionalSize): NullableStyleExpression {\n return !gap || gap === 'none' ? undefined : { gap: this.spacing()[gap] };\n }\n\n zIndex(element: ZIndexableElements | undefined): NullableStyleExpression {\n return !element ? undefined : { zIndex: Z_INDEX[element] };\n }\n\n borderColor(borderColor: ColorToken): NullableStyleExpression {\n return { borderColor: this.colors()[borderColor] };\n }\n\n getComponentTheme<T>(componentName: ComponentName) {\n return this.component<T>(componentName);\n }\n\n // Used to get an \"always-defined\" options object from a component theme.\n getComponentOptions = <T>(componentName: ComponentName) =>\n linkedSignal({\n source: this.getComponentTheme<T>(componentName),\n computation: () => {\n return this.getComponentTheme<T>(componentName)().options || ({} as T);\n },\n });\n\n componentOptions = (componentName: ComponentName) =>\n computed(() => this.component(componentName)().options || {});\n\n style(prop: string, value: string | number | undefined): NullableStyleExpression {\n return !value ? undefined : { [prop]: value };\n }\n}\n","import { Component, HostBinding, inject, input } from '@angular/core';\nimport { css } from '@emotion/css';\nimport { ThemeService } from '../../theming';\n\nexport type ImagePosition = 'top' | 'bottom' | 'left' | 'right' | 'center' | string;\n\n@Component({\n selector: 'uni-background, Background',\n standalone: true,\n imports: [],\n template: `<ng-content></ng-content>`,\n})\nexport class UniBackgroundComponent {\n theme = inject(ThemeService);\n\n image = input<string>();\n imagePosition = input<ImagePosition>();\n imageSize = input<'cover' | 'contain' | number | string>();\n height = input<number | string>('100%');\n width = input<number | string>();\n\n @HostBinding('class') get className() {\n return css([\n {\n backgroundRepeat: 'no-repeat',\n display: 'block',\n ...this.theme.backgroundImage(this.image()),\n },\n this.theme.style('backgroundPosition', this.imagePosition()),\n this.theme.style('backgroundSize', this.imageSize()),\n this.theme.style('height', this.height()),\n this.theme.style('width', this.width()),\n ]);\n }\n}\n","/**\n * Background Component Barrel File\n *\n * This file exports all public-facing elements of the background component.\n */\n\nexport { UniBackgroundComponent } from './background.component';\nexport type { ImagePosition } from './background.component';\n","import { Component, computed, inject, InjectionToken, input } from '@angular/core';\nimport type { ComponentName, Size, Variant } from '@uni-design-system/uni-core';\nimport { ThemeService } from '../../theming';\n\nexport const COMPONENT_NAME = new InjectionToken<ComponentName>('');\n\n@Component({\n standalone: true,\n imports: [],\n template: ``,\n})\nexport class BaseComponent<T = unknown> {\n protected componentName = inject(COMPONENT_NAME);\n theme = inject(ThemeService);\n\n variant = input<Variant>('primary'); // TODO: Make Variant support undefined\n size = input<Size>('lg');\n\n componentTheme = computed(() => this.theme.getComponentTheme<T>(this.componentName)());\n\n componentOptions = computed(() => this.theme.getComponentOptions<T>(this.componentName)());\n\n style = computed(() =>\n this.theme.componentStyle(this.componentName, this.variant(), this.size())()\n );\n}\n","import { Component, HostBinding, input, Input } from '@angular/core';\nimport { css } from '@emotion/css';\n\nimport { BaseComponent } from '../base';\nimport { COMPONENT_NAME } from '../base/base.component';\nimport type { UniBadgeOptions } from './badge.model';\nimport type { Variant } from '@uni-design-system/uni-core';\n\n@Component({\n selector: 'div[uni-badge], Badge',\n standalone: true,\n imports: [],\n template: `<ng-content></ng-content>`,\n providers: [{ provide: COMPONENT_NAME, useValue: 'badge' }],\n})\nexport class UniBadgeComponent extends BaseComponent<UniBadgeOptions> {\n color = input<Variant | undefined>(undefined);\n useVariant = input<boolean>(false);\n\n @Input() width?: number;\n\n @HostBinding('class') get className() {\n const color = this.color();\n\n return css([\n {\n ...this.theme.getContainerColors(color || 'primary', this.useVariant()),\n ...this.theme.typeface('badge'),\n display: 'inline-block',\n padding: '0 16px',\n ...this.theme.radius(this.componentOptions().borderRadius),\n textAlign: 'center',\n letterSpacing: 1,\n },\n this.width && {\n minWidth: this.width - 32,\n },\n ]);\n }\n}\n","import { Component, HostBinding, inject, input, Input } from '@angular/core';\nimport { css } from '@emotion/css';\n\nimport { ThemeService } from '../../theming/theme.service';\nimport type { ColorToken, Icons } from '@uni-design-system/uni-core';\n\n@Component({\n selector: 'uni-icon, Icon',\n standalone: true,\n imports: [],\n template: '',\n styleUrls: ['./icon.component.scss'],\n})\nexport class UniIconComponent {\n private themeService = inject(ThemeService);\n\n color = input<ColorToken>();\n\n @HostBinding('style.-webkit-mask-image')\n protected _path!: string;\n\n @HostBinding('class') get className() {\n return css([{ ...this.themeService.color(this.color()) }]);\n }\n\n @Input()\n public set name(iconName: keyof Icons) {\n const theme = this.themeService.theme();\n this._path = `url(\"${theme.icons[iconName]}\")`;\n }\n}\n","import { Component, HostBinding, inject, input } from '@angular/core';\nimport { css } from '@emotion/css';\n\nimport type {\n ContainerColorToken,\n OptionalAlignContent,\n OptionalAlignItems,\n OptionalAlignSelf,\n OptionalBorder,\n OptionalColor,\n OptionalDisplay,\n OptionalFlexDirection,\n OptionalJustifyContent,\n OptionalOverflow,\n OptionalPosition,\n OptionalRadius,\n OptionalSize,\n OptionalTextAlign,\n OptionalWrap,\n Shadow,\n Variant,\n ZIndexableElements,\n} from '@uni-design-system/uni-core';\n\nimport { ThemeService } from '../../../theming';\n\n@Component({\n selector: 'div[uni-box-layout], Box, div[box-layout]',\n standalone: true,\n imports: [],\n template: `<ng-content></ng-content>`,\n})\nexport class UniBoxComponent {\n theme = inject(ThemeService);\n\n color = input<ContainerColorToken>();\n backgroundColor = input<OptionalColor>();\n borderRadius = input<OptionalRadius>();\n borderRadiusLeft = input<OptionalRadius>();\n borderRadiusRight = input<OptionalRadius>();\n borderRadiusTop = input<OptionalRadius>();\n borderRadiusBottom = input<OptionalRadius>();\n padding = input<OptionalSize>();\n paddingHorizontal = input<OptionalSize>();\n paddingVertical = input<OptionalSize>();\n paddingLeft = input<OptionalSize>();\n paddingRight = input<OptionalSize>();\n paddingTop = input<OptionalSize>();\n paddingBottom = input<OptionalSize>();\n border = input<OptionalBorder>();\n borderTop = input<OptionalBorder>();\n borderBottom = input<OptionalBorder>();\n borderLeft = input<OptionalBorder>();\n borderRight = input<OptionalBorder>();\n dashBorder = input<boolean>(false);\n alignSelf = input<OptionalAlignSelf>();\n alignItems = input<OptionalAlignItems>();\n alignContent = input<OptionalAlignContent>();\n justifyContent = input<OptionalJustifyContent>();\n grow = input<number>();\n display = input<OptionalDisplay>();\n position = input<OptionalPosition>();\n inset = input<number | string>();\n height = input<number | string>();\n minHeight = input<number | string>();\n maxHeight = input<number | string>();\n width = input<number | string>();\n minWidth = input<number | string>();\n maxWidth = input<number | string>();\n ignoreDir = input(true);\n gridArea = input<string>();\n gridColumn = input<string>();\n gridRow = input<string>();\n overflow = input<OptionalOverflow>();\n elevation = input<Shadow>(); // Deprecated, use shadow instead\n shadow = input<Shadow>();\n gap = input<OptionalSize>();\n fullWidth = input<boolean>();\n fullHeight = input<boolean>();\n flexDirection = input<OptionalFlexDirection>();\n textAlign = input<OptionalTextAlign>();\n wrapItems = input<OptionalWrap>(undefined);\n zIndex = input<ZIndexableElements>();\n\n @HostBinding('class') get boxClassName() {\n return css([\n {\n ...this.theme.colorPair(this.color()),\n ...this.theme.backgroundColor(this.backgroundColor()),\n display: this.alignSelf() ? 'flex' : 'block',\n position: this.position(),\n inset: this.inset(),\n boxSizing: 'border-box',\n height: this.height(),\n minHeight: this.minHeight(),\n maxHeight: this.maxHeight(),\n width: this.width(),\n minWidth: this.minWidth(),\n maxWidth: this.maxWidth(),\n flexWrap: this.wrapItems(),\n overflow: this.overflow(),\n ...this.theme.padding(this.padding()),\n ...this.theme.horizontalPadding(this.paddingHorizontal()),\n ...this.theme.verticalPadding(this.paddingVertical()),\n ...this.theme.paddingLeft(this.paddingLeft()),\n ...this.theme.paddingRight(this.paddingRight()),\n ...this.theme.paddingTop(this.paddingTop()),\n ...this.theme.paddingBottom(this.paddingBottom()),\n ...this.theme.boxShadow(this.elevation()),\n ...this.theme.boxShadow(this.shadow()),\n ...this.theme.radius(this.borderRadius()),\n ...this.theme.getRadiusLeft(this.borderRadiusLeft()),\n ...this.theme.getRadiusRight(this.borderRadiusRight()),\n ...this.theme.getRadiusTop(this.borderRadiusTop()),\n ...this.theme.getRadiusBottom(this.borderRadiusBottom()),\n ...this.theme.borderTop(this.borderTop()),\n ...this.theme.borderBottom(this.borderBottom()),\n ...this.theme.borderLeft(this.borderLeft()),\n ...this.theme.borderRight(this.borderRight()),\n ...this.theme.gap(this.gap()),\n ...this.theme.style('display', this.display()),\n ...this.theme.style('alignSelf', this.alignSelf()),\n ...this.theme.style('alignItems', this.alignItems()),\n ...this.theme.style('justifyContent', this.justifyContent()),\n ...this.theme.style('alignContent', this.alignContent()),\n ...this.theme.style('flexGrow', this.grow()),\n ...this.theme.style('flexDirection', this.flexDirection()),\n ...this.theme.style('gridArea', this.gridArea()),\n ...this.theme.style('gridColumn', this.gridColumn()),\n ...this.theme.style('gridRow', this.gridRow()),\n ...this.theme.style('textAlign', this.textAlign()),\n ...this.theme.zIndex(this.zIndex()),\n },\n this.border() &&\n !this.dashBorder() && {\n ...this.theme.border(this.border()),\n },\n this.border() &&\n this.dashBorder() && {\n ...this.theme.getDashedBorder(this.border() as Variant, this.borderRadius()),\n },\n\n this.fullWidth() && {\n width: '100%',\n },\n this.fullHeight() && {\n height: '100%',\n },\n\n this.ignoreDir() &&\n (this.flexDirection() ?? 'row') === 'row' && {\n '&:dir(rtl)': {\n flexDirection: 'row-reverse',\n },\n },\n this.ignoreDir() &&\n (this.flexDirection() ?? 'row') === 'row-reverse' && {\n '&:dir(rtl)': {\n flexDirection: 'row',\n },\n },\n ]);\n }\n}\n","import { Component, input } from '@angular/core';\nimport { UniBoxComponent } from '../box/box.component';\nimport type {\n OptionalAlignItems,\n OptionalDisplay,\n OptionalJustifyContent,\n} from '@uni-design-system/uni-core';\n\n@Component({\n selector: 'div[uni-center-layout], div[center-layout]',\n standalone: true,\n imports: [],\n template: `<ng-content></ng-content>`,\n})\nexport class UniCenterComponent extends UniBoxComponent {\n override display = input<OptionalDisplay>('flex');\n override justifyContent = input<OptionalJustifyContent>('center');\n override alignItems = input<OptionalAlignItems>('center');\n\n constructor() {\n super();\n }\n}\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { css } from '@emotion/css';\n\n@Component({\n selector: 'GridArea',\n standalone: true,\n imports: [],\n template: `<ng-content></ng-content>`,\n})\nexport class UniGridAreaComponent {\n @Input() area!: string;\n\n @HostBinding('class') get className() {\n return css([{ gridArea: this.area }]);\n }\n}\n","import { Component, HostBinding, input, Input } from '@angular/core';\nimport { css } from '@emotion/css';\n\nimport { UniBoxComponent } from '../box/box.component';\nimport type { OptionalDisplay, Thickness, Variant } from '@uni-design-system/uni-core';\n\n@Component({\n selector: 'div[uni-grid-layout], Grid, div[grid-layout]',\n standalone: true,\n imports: [],\n template: `<ng-content></ng-content>`,\n})\nexport class UniGridComponent extends UniBoxComponent {\n override display = input<OptionalDisplay>('grid');\n\n constructor() {\n super();\n }\n\n @Input() templateAreas?: string;\n @Input() templateColumns?: string;\n @Input() templateRows?: string;\n @Input() outline?: Thickness;\n @Input() outlineColor?: Variant;\n\n @HostBinding('class')\n get className() {\n return css([\n this.templateAreas && {\n gridTemplateAreas: this.templateAreas,\n },\n this.templateColumns && {\n gridTemplateColumns: this.templateColumns,\n },\n this.templateRows && {\n gridTemplateRows: this.templateRows,\n },\n this.outline && {\n gap: this.theme.getThickness(this.outline),\n },\n this.outlineColor && {\n backgroundColor: this.theme.colorPalette()[this.outlineColor],\n },\n ]);\n }\n}\n","import { Component, input } from '@angular/core';\nimport { UniBoxComponent } from '../box/box.component';\nimport type { OptionalDisplay, OptionalFlexDirection } from '@uni-design-system/uni-core';\n\n@Component({\n selector: 'div[uni-row-layout], Row, div[row-layout]',\n standalone: true,\n template: `<ng-content></ng-content>`,\n})\nexport class UniRowComponent extends UniBoxComponent {\n override display = input<OptionalDisplay>('flex');\n override flexDirection = input<OptionalFlexDirection>('row');\n override minWidth = input<number | string | undefined>('fit-content');\n\n constructor() {\n super();\n }\n}\n","import { Component, input } from '@angular/core';\nimport { UniBoxComponent } from '../box/box.component';\nimport type { OptionalDisplay, OptionalFlexDirection } from '@uni-design-system/uni-core';\n\n@Component({\n selector: 'div[uni-stack-layout], Stack, div[stack-layout]',\n standalone: true,\n template: `<ng-content></ng-content>`,\n})\nexport class UniStackComponent extends UniBoxComponent {\n override display = input<OptionalDisplay>('flex');\n override flexDirection = input<OptionalFlexDirection>('column');\n override minHeight = input<number | string | undefined>('fit-content');\n\n constructor() {\n super();\n }\n}\n","import { Component, input } from '@angular/core';\n\nimport { UniBoxComponent } from '../box/box.component';\nimport type { OptionalDisplay, OptionalWrap } from '@uni-design-system/uni-core';\n\n@Component({\n selector: 'div[uni-wrap-layout], Wrap, div[wrap-layout]',\n imports: [],\n template: `<ng-content></ng-content>`,\n})\nexport class UniWrapComponent extends UniBoxComponent {\n override display = input<OptionalDisplay>('flex');\n override wrapItems = input<OptionalWrap>('wrap');\n\n constructor() {\n super();\n }\n}\n","import { Component, HostBinding, input, Input } from '@angular/core';\nimport { css } from '@emotion/css';\nimport { BaseComponent } from '../base';\nimport type { SymbolFill, SymbolGrade, SymbolOptions, SymbolWeight } from './symbol.model';\nimport { COMPONENT_NAME } from '../base/base.component';\n\n@Component({\n selector: 'uni-symbol, Symbol',\n standalone: true,\n imports: [],\n template: `{{ name() }}`,\n providers: [{ provide: COMPONENT_NAME, useValue: 'symbol' }],\n})\nexport class UniSymbolComponent extends BaseComponent<SymbolOptions> {\n name = input.required<string>();\n\n fill = input<SymbolFill>();\n weight = input<SymbolWeight>();\n grade = input<SymbolGrade>();\n opticalSize = input<number>();\n\n @HostBinding('class') get className() {\n const settings =\n `'FILL' ${this.fill() || this.componentOptions().fill || 0}, ` +\n `'wght' ${this.weight() || this.componentOptions().weight || 400}, ` +\n `'GRAD' ${this.grade() || this.componentOptions().grade || 0}, ` +\n `'opsz' ${this.opticalSize() || this.componentOptions().opticalSize || 24}`;\n\n return (\n 'material-symbols-rounded ' +\n css({\n fontVariationSettings: settings,\n fontSize: `${this.opticalSize() || this.componentOptions().opticalSize || 24}px`,\n })\n );\n }\n}\n","// https://css-tricks.com/how-to-recreate-the-ripple-effect-of-material-design-buttons/\nimport { Directive, ElementRef, HostListener, inject, Renderer2 } from '@angular/core';\nimport { css } from '@emotion/css';\n\n@Directive({\n selector: '[uniRipple]',\n standalone: true,\n})\nexport class RippleDirective {\n private renderer = inject(Renderer2);\n el = inject(ElementRef);\n\n hostEl;\n\n constructor() {\n this.hostEl = this.el.nativeElement;\n }\n\n @HostListener('click', ['$event']) onClick(e: MouseEvent) {\n if (!e) return;\n let ripple, d;\n if (this.hostEl.querySelector(`.${this.rippleClass}`) === null) {\n ripple = this.renderer.createElement('span');\n this.renderer.addClass(ripple, this.rippleClass);\n this.renderer.appendChild(this.hostEl, ripple);\n }\n\n ripple = this.hostEl.querySelector(`.${this.rippleClass}`);\n this.renderer.appendChild(this.hostEl, ripple);\n this.renderer.removeClass(ripple, this.animateClass);\n\n if (!ripple.offsetHeight && !ripple.offsetWidth) {\n d = Math.max(this.hostEl.offsetWidth, this.hostEl.offsetHeight);\n this.renderer.setStyle(ripple, 'width', d + 'px');\n this.renderer.setStyle(ripple, 'height', d + 'px');\n }\n\n const x = e.pageX - this.hostEl.offsetLeft - ripple.offsetWidth / 2;\n const y = e.pageY - this.hostEl.offsetTop - ripple.offsetHeight / 2;\n\n this.renderer.setStyle(ripple, 'top', y + 'px');\n this.renderer.setStyle(ripple, 'left', x + 'px');\n this.renderer.addClass(ripple, this.animateClass);\n }\n\n rippleClass = css({\n display: 'block',\n position: 'absolute',\n background: 'rgba(255, 255, 255, 0.3)',\n borderRadius: '100%',\n transform: 'scale(0)',\n });\n\n animateClass = css({\n animation: 'ripple 0.65s linear',\n\n '@keyframes ripple': {\n '100%': {\n opacity: 0,\n transform: 'scale(2.5)',\n },\n },\n });\n}\n","import { Component, computed, HostBinding, input, Input } from '@angular/core';\nimport { css } from '@emotion/css';\n\nimport { BaseComponent, COMPONENT_NAME } from '../base/base.component';\nimport { UniIconComponent } from '../icon';\nimport { UniBoxComponent } from '../layout';\nimport { UniSymbolComponent } from '../symbol';\nimport { RippleDirective } from '../../directives/ripple';\n\n@Component({\n selector: 'button[uni-text-button], Button, button[text-button]',\n template: `@if (loading()) {\n <Box [class]=\"spinnerBox\"><uni-icon name=\"spinner\" /></Box>\n }\n @if (symbolLeft) {\n <Symbol [name]=\"symbolLeft\" class=\"symbolLeft\" />\n }\n <span><ng-content></ng-content></span>\n @if (symbolRight) {\n <Symbol [name]=\"symbolRight\" class=\"symbolRight\" />\n } `,\n providers: [{ provide: COMPONENT_NAME, useValue: 'button' }],\n imports: [\n RippleDirective, // Keep this import\n UniIconComponent,\n UniBoxComponent,\n UniSymbolComponent,\n ],\n host: {\n '[attr.disabled]': 'disable() || loading() || null',\n },\n hostDirectives: [{ directive: RippleDirective }],\n})\nexport class UniButtonComponent extends BaseComponent {\n readonly disable = input<boolean | undefined>(false);\n readonly loading = input<boolean | undefined>(false);\n readonly fullWidth = input<boolean>(false);\n\n @Input() symbolLeft?: string;\n @Input() symbolRight?: string;\n\n spinnerBox = css({\n position: 'absolute',\n left: 0,\n width: '100%',\n height: '100%',\n paddingTop: '6%',\n paddingBottom: '6%',\n });\n\n @HostBinding('class') get className() {\n return css([\n this.style() && {\n ...this.style(), // TODO: Set priority on theme-defined styles\n },\n {\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n overflow: 'hidden',\n outline: 0,\n border: 0,\n cursor: 'pointer',\n transition: 'all 0.28s ease',\n\n '&:disabled': {\n cursor: 'not-allowed !important',\n },\n '& .symbolLeft': {\n marginLeft: -6,\n marginRight: 4,\n fontSize: this.symbolSize(),\n },\n '& span': {\n alignContent: 'center',\n flexGrow: 1,\n whiteSpace: 'nowrap',\n },\n '& .symbolRight': {\n marginRight: -6,\n marginLeft: 4,\n fontSize: this.symbolSize(),\n },\n },\n this.variant() !== 'ghost' && {\n '&:hover, &:focus': {\n ...this.theme.boxShadow('raised'),\n },\n '&:focus-visible': {\n outline: `2px solid ${this.theme.colors()[this.variant()]}`,\n outlineOffset: '2px',\n },\n },\n this.variant() === 'ghost' && {\n '&:hover, &:focus': {\n backgroundColor: 'rgba(0,0,0,0.1) !important',\n },\n '&:focus-visible': {\n outline: `2px solid ${this.theme.colors()[this.variant()]}`,\n outlineOffset: '2px',\n },\n },\n this.fullWidth() && {\n width: '100%',\n },\n !this.loading() && {\n '&:disabled': {\n ...this.componentTheme().colors?.disabled,\n },\n },\n this.loading() && {\n '&:disabled symbol': {\n opacity: 0,\n },\n '&:disabled span': {\n opacity: 0,\n },\n },\n ]);\n }\n\n symbolSize = computed(() => {\n const style = this.style();\n const fontString = style['fontSize'] as string;\n const fontSize = parseFloat(fontString);\n return fontSize + 4;\n });\n}\n","import { Component, HostBinding, inject } from '@angular/core';\nimport { css } from '@emotion/css';\nimport { ThemeService } from '../../theming';\n\n@Component({\n selector: 'uni-button-group, ButtonGroup',\n standalone: true,\n imports: [],\n template: ` <ng-content></ng-content>`,\n})\nexport class UniButtonGroupComponent {\n private themeService = inject(ThemeService);\n\n @HostBinding('class') get className() {\n return css({\n display: 'inline-flex',\n\n '& button': {\n ...this.themeService.border('quaternary'),\n marginRight: -1,\n },\n\n '& button:first-child': {\n borderTopLeftRadius: 4,\n borderBottomLeftRadius: 4,\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n },\n\n '& button:not(:first-child):not(:last-child)': {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n },\n\n '& button:last-child': {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n borderTopRightRadius: 4,\n borderBottomRightRadius: 4,\n marginRight: 0,\n },\n });\n }\n}\n","/**\n * UniButtonGroupComponent Barrel File\n *\n * This file exports all public-facing elements of the button-group component.\n */\n\nexport { UniButtonGroupComponent } from './button-group.component';\nexport type { ButtonGroupConfig, ButtonGroupItem } from './button-group.model';\n","import { Component } from '@angular/core';\nimport { BaseComponent, COMPONENT_NAME } from '../../base/base.component';\n\n@Component({\n selector: 'uni-card-content, CardContent',\n standalone: true,\n imports: [],\n templateUrl: './card-content.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'cardContent' }],\n styleUrls: ['./card-content.component.scss'],\n})\nexport class UniCardContentComponent extends BaseComponent {}\n","<div [style]=\"style()\">\n <ng-content></ng-content>\n</div>\n","import { Component, HostBinding, inject, input } from '@angular/core';\nimport { css } from '@emotion/css';\n\nimport type {\n ColorKey,\n OptionalDisplay,\n OptionalTextAlign,\n Typeface,\n} from '@uni-design-system/uni-core';\nimport { ThemeService } from '../../theming';\n\n@Component({\n selector: 'uni-text, Text',\n standalone: true,\n imports: [],\n template: '<ng-content></ng-content>',\n})\nexport class UniTextComponent {\n theme = inject(ThemeService);\n\n typeface = input<Typeface>('title-small');\n color = input<ColorKey>();\n display = input<OptionalDisplay>();\n align = input<OptionalTextAlign>();\n nowrap = input<boolean>();\n maxWidth = input<number>();\n ellipsis = input<boolean>(false);\n\n @HostBinding('class') get className() {\n return css([\n {\n ...this.theme.typeface(this.typeface()),\n ...this.theme.color(this.color()),\n display: this.display(),\n },\n this.align() && {\n textAlign: this.align(),\n },\n this.nowrap() && {\n whiteSpace: 'nowrap',\n },\n this.maxWidth() && {\n maxWidth: this.maxWidth(),\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n display: 'inline-block',\n },\n this.ellipsis() && {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n minWidth: 0,\n },\n ]);\n }\n}\n","import { Component } from '@angular/core';\nimport { BaseComponent, COMPONENT_NAME } from '../base/base.component';\nimport type { UniCardOptions } from './card.model';\n\n@Component({\n selector: 'uni-card, Card',\n standalone: true,\n imports: [],\n templateUrl: './card.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'card' }],\n})\nexport class UniCardComponent extends BaseComponent<UniCardOptions> {}\n","<div [style]=\"style()\">\n <ng-content></ng-content>\n</div>\n","import { NgClass } from '@angular/common';\nimport { Component, inject, input } from '@angular/core';\nimport { css } from '@emotion/css';\nimport { BaseComponent, COMPONENT_NAME } from '../../base/base.component';\nimport { UniTextComponent } from '../../text';\nimport { UniCardComponent } from '../card.component';\nimport type { Typeface } from '@uni-design-system/uni-core';\n\n@Component({\n selector: 'uni-card-header, CardHeader',\n standalone: true,\n imports: [UniTextComponent, NgClass],\n templateUrl: './card-header.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'cardHeader' }],\n styleUrls: ['./card-header.component.scss'],\n})\nexport class UniCardHeaderComponent extends BaseComponent {\n private card = inject(UniCardComponent, {\n optional: true,\n host: true,\n skipSelf: true,\n });\n\n title = input<string>('');\n titleTextRole = input<Typeface>('title-large');\n\n constructor() {\n super();\n\n // this.variant = this.card?.variant;\n }\n\n className = css({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n });\n}\n","<div [style]=\"style()\" [ngClass]=\"className\">\n <Text [typeface]=\"titleTextRole()\">{{ title() }}</Text>\n <ng-content></ng-content>\n</div>\n","import { Component, computed, effect, input, model } from '@angular/core';\nimport { FormCheckboxControl } from '@angular/forms/signals';\nimport { css } from '@emotion/css';\nimport type { ColorToken } from '@uni-design-system/uni-core';\nimport { BaseComponent } from '../base';\nimport { COMPONENT_NAME } from '../base/base.component';\nimport { UniTextComponent } from '../text/text.component';\nimport type { UniCheckboxOptions } from './checkbox.model';\n\n@Component({\n selector: 'uni-checkbox, Checkbox',\n standalone: true,\n imports: [UniTextComponent],\n templateUrl: './checkbox.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'checkbox' }],\n})\nexport class UniCheckboxComponent\n extends BaseComponent<UniCheckboxOptions>\n implements FormCheckboxControl\n{\n checkboxLabel!: string;\n checkboxInput!: string;\n\n // --- REQUIRED SIGNALS (populated by FormCheckboxControl) ---\n readonly checked = model<boolean>(false);\n readonly disabled = input(false);\n readonly touched = model(false);\n readonly invalid = input(false);\n readonly dirty = input(false);\n\n // --- CONFIGURATION ---\n readonly label = input<string>();\n\n // Only show errors if the user has actually interacted with the field\n protected readonly showError = computed(\n () => this.invalid() && (this.touched() || this.dirty())\n );\n\n markAsTouched() {\n this.touched.set(true);\n }\n\n constructor() {\n super();\n\n effect(() => {\n this.checkboxLabel = css({\n userSelect: 'none',\n cursor: this.disabled() ? 'not-allowed' : 'pointer',\n marginBottom: 0,\n display: 'flex',\n alignItems: 'center',\n gap: 8,\n opacity: this.disabled() ? 0.6 : 1,\n\n '&:hover .checkbox svg path': this.disabled()\n ? {}\n : {\n strokeDashoffset: 0,\n },\n\n '& .checkbox': {\n height: this.componentOptions().size,\n width: this.componentOptions().size,\n },\n\n '& .checkbox svg': {\n display: 'block',\n },\n\n '& .checkbox svg .checkbox-box': {\n fill: '#FFF',\n stroke: this.getThemeColor(this.variant()),\n strokeWidth: 2,\n rx: this.componentOptions().borderRadius || 2,\n ry: this.componentOptions().borderRadius || 2,\n transition: 'all 0.2s ease',\n },\n\n '& .checkbox svg .checkbox-check': {\n fill: 'none',\n stroke: '#FFF',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n strokeDasharray: 18,\n strokeDashoffset: 18,\n transition: 'all 0.5s ease',\n },\n });\n\n this.checkboxInput = css({\n position: 'absolute',\n zIndex: -1,\n width: 0,\n height: 0,\n opacity: 0,\n\n '&:checked + .checkbox': {\n borderColor: this.getThemeColor(this.variant()),\n },\n\n '&:checked + .checkbox svg .checkbox-box': {\n fill: this.getThemeColor(this.variant()),\n },\n\n '&:checked + .checkbox svg .checkbox-check': {\n strokeDashoffset: 0,\n },\n\n '&:disabled + .checkbox': {\n cursor: 'not-allowed',\n },\n\n '&:focus + .checkbox': {\n position: 'relative',\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n top: '-4px',\n left: '-4px',\n right: '-4px',\n bottom: '-4px',\n border: `2px solid ${this.getThemeColor(this.variant())}`,\n borderRadius: `${(Number(this.componentOptions().borderRadius) || 2) + 4}px`,\n pointerEvents: 'none',\n },\n },\n });\n });\n }\n\n getThemeColor(token: ColorToken) {\n const colors = this.theme.colors();\n return colors[token] ? colors[token] : colors['primary'];\n }\n}\n","<label [class]=\"checkboxLabel\">\n <input\n type=\"checkbox\"\n [class]=\"checkboxInput\"\n [checked]=\"checked()\"\n (change)=\"checked.set($any($event.target).checked); markAsTouched()\"\n [disabled]=\"disabled()\"\n />\n <div class=\"checkbox\">\n <svg viewBox=\"0 0 20 20\">\n <rect class=\"checkbox-box\" x=\"1\" y=\"1\" width=\"18\" height=\"18\"></rect>\n <polyline class=\"checkbox-check\" points=\"4 11 8 15 16 6\"></polyline>\n </svg>\n </div>\n @if (label()) {\n <Text typeface=\"label\">{{ label() }}</Text>\n }\n</label>\n","import { Directive, ElementRef, inject, OnInit, Renderer2 } from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: '[uniBodyRender]',\n})\nexport class BodyRenderDirective implements OnInit {\n private el = inject(ElementRef);\n private renderer = inject(Renderer2);\n\n ngOnInit() {\n const element = this.el.nativeElement;\n this.renderer.appendChild(document.body, element);\n }\n}\n","import { Directive, output, signal } from '@angular/core';\n\n@Directive({\n selector: '[uni-drag-n-drop], [dragAndDrop]',\n standalone: true,\n host: {\n '[style.opacity]': 'workspaceOpacity()',\n '(dragover)': 'onDragOver($event)',\n '(dragleave)': 'onDragLeave($event)',\n '(drop)': 'onDrop($event)',\n },\n})\nexport class DragAndDropDirective {\n onFileDropped = output<FileList>();\n\n protected workspaceOpacity = signal('1');\n\n // Dragover listener, when files are dragged over our host element\n onDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.workspaceOpacity.set('0.5');\n }\n\n // Dragleave listener, when files are dragged away from our host element\n onDragLeave(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.workspaceOpacity.set('1');\n }\n\n // Drop listener, when files are dropped on our host element\n onDrop(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.workspaceOpacity.set('1');\n const files = event.dataTransfer?.files;\n if (files && files.length > 0) {\n this.onFileDropped.emit(files);\n }\n }\n}\n","import { Component, HostBinding, inject, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { css } from '@emotion/css';\n\nimport { type IconName } from '../icon/icon.record';\nimport { RippleDirective } from '../../directives';\nimport { UniSymbolComponent } from '../symbol';\nimport { UniIconComponent } from '../icon';\nimport { ThemeService } from '../../theming/theme.service';\nimport type { Size, Variant } from '@uni-design-system/uni-core';\n\n@Component({\n selector: 'button[uni-icon-button], button[icon-button]',\n standalone: true,\n imports: [\n RippleDirective,\n UniSymbolComponent,\n UniIconComponent,\n // Keep this import\n ],\n template: `\n @if (symbolName && !loading) {\n <Symbol [name]=\"symbolName\" [opticalSize]=\"opticalSize\" />\n } @else if (iconName && !loading) {\n <Icon [name]=\"iconName\" />\n }\n `,\n host: {\n '[attr.disabled]': 'disable || loading || null',\n },\n hostDirectives: [{ directive: RippleDirective }],\n})\nexport class UniIconButtonComponent implements OnChanges {\n private theme = inject(ThemeService);\n config = this.theme.component('iconButton');\n\n @Input() iconName?: IconName;\n @Input() symbolName?: string;\n @Input() variant: Variant = 'ghost';\n @Input() size: Size = 'lg';\n @Input() disable?: boolean;\n @Input() loading?: boolean;\n @Input() opticalSize = 24;\n\n @HostBinding('class') get className() {\n const { sizes, colors } = this.config();\n const sizeConfig = sizes && sizes[this.size];\n const colorConfig = colors && colors[this.variant];\n\n return css([\n {\n position: 'relative',\n overflow: 'hidden',\n outline: 0,\n border: 0,\n cursor: 'pointer',\n transition: 'all 0.28s ease',\n borderRadius: 999,\n display: 'block',\n\n '&:disabled': {\n cursor: 'not-allowed !important',\n },\n\n '& symbol': {\n fontSize: 'inherit',\n lineHeight: 'inherit',\n },\n },\n sizeConfig && {\n ...sizeConfig,\n },\n colorConfig && {\n ...colorConfig,\n },\n this.symbolName &&\n !this.loading && {\n padding: 0,\n },\n this.variant !== 'ghost' && {\n '&:hover': {\n ...this.theme.boxShadow('raised'),\n },\n },\n this.variant === 'ghost' && {\n '&:hover': {\n backgroundColor: 'rgba(0,0,0,0.1)',\n },\n },\n !this.loading && {\n '&:disabled': {\n ...this.config().colors?.disabled,\n },\n },\n ]);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const { sizes, colors } = this.config();\n const sizeConfig = sizes && sizes[this.size];\n\n if (this.loading) this.iconName = 'spinner';\n }\n}\n","import { Component, effect, input, signal } from '@angular/core';\nimport { css } from '@emotion/css';\nimport { UniDatasource, UniRecordDatasource, UniServerSideDatasource } from '../../cdk';\nimport { BaseComponent } from '../base';\nimport { COMPONENT_NAME } from '../base/base.component';\nimport { UniIconComponent } from '../icon';\nimport { UniIconButtonComponent } from '../icon-button/icon-button.component';\nimport { UniCenterComponent, UniRowComponent } from '../layout';\nimport type { UniDataSearchOptions } from './data-search.model';\n\n@Component({\n selector: 'uni-data-search',\n imports: [UniRowComponent, UniIconButtonComponent, UniIconComponent, UniCenterComponent],\n templateUrl: './data-search.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'dataSearch' }],\n})\nexport class UniDataSearchComponent<T> extends BaseComponent<UniDataSearchOptions> {\n datasource = input<UniDatasource<T>>();\n placeholder = input<string>('Search');\n fields = input<string[]>();\n\n searchValue = signal('');\n\n inputClassName!: string;\n\n constructor() {\n super();\n\n effect(() => {\n this.inputClassName = css({\n border: 'none',\n padding: 0,\n fontSize: 16,\n flexGrow: 1,\n height: 18,\n\n '&:focus-visible': {\n outline: 'none',\n },\n\n '&::placeholder': {\n ...this.theme.color(this.componentOptions().placeholderColor),\n },\n });\n });\n }\n\n onInput(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this.searchValue.set(value);\n this.filterData(value);\n }\n\n filterData(value: string) {\n const datasource = this.datasource();\n if (!datasource) return;\n\n const fields = this.fields();\n\n if (datasource instanceof UniRecordDatasource) {\n // Client-side filtering with predicate function\n datasource.setFilter((object) => {\n let searchObject = object;\n if (fields && fields.length > 0) {\n searchObject = pick(object as Record<string, unknown>, fields) as T;\n }\n\n return Object.values(searchObject as object)\n .join(' ')\n .toLowerCase()\n .includes(value.toLowerCase());\n });\n } else if (datasource instanceof UniServerSideDatasource) {\n // Server-side filtering with filter object\n const filterObject: Record<string, unknown> = {};\n\n if (fields && fields.length > 0) {\n // Apply search to specific fields\n fields.forEach((field) => {\n filterObject[field] = value;\n });\n } else {\n // Generic search filter\n filterObject['search'] = value;\n }\n\n datasource.setFilter(filterObject);\n }\n }\n\n clearFilter() {\n const datasource = this.datasource();\n if (!datasource) return;\n\n if (datasource instanceof UniRecordDatasource) {\n datasource.setFilter(() => true);\n } else if (datasource instanceof UniServerSideDatasource) {\n datasource.clearFilter();\n }\n\n this.searchValue.set('');\n }\n}\n\nfunction pick(obj: Record<string, unknown>, keys: string[]) {\n return keys.reduce<Record<string, unknown>>((acc, key) => {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n acc[key] = obj[key];\n }\n return acc;\n }, {});\n}\n","<div\n row-layout\n alignItems=\"center\"\n [border]=\"componentOptions().border\"\n [height]=\"26\"\n [borderRadius]=\"componentOptions().borderRadius\"\n paddingLeft=\"xs\"\n>\n <div center-layout [height]=\"18\" [width]=\"18\" paddingRight=\"xs\">\n <uni-icon name=\"search\" />\n </div>\n <input\n type=\"text\"\n (input)=\"onInput($event)\"\n [class]=\"inputClassName\"\n [placeholder]=\"placeholder()\"\n [value]=\"searchValue()\"\n />\n <div row-layout alignItems=\"center\" [width]=\"22\">\n @if (!!searchValue()) {\n <button icon-button (click)=\"clearFilter()\" symbolName=\"close\" size=\"sm\">\n Clear Search\n </button>\n }\n </div>\n</div>\n","/**\n * UniDataSearchComponent Barrel File\n *\n * This file exports all public-facing elements of the data-search component.\n */\n\nexport { UniDataSearchComponent } from './data-search.component';\nexport type { UniDataSearchOptions } from './data-search.model';\n","import {\n afterNextRender,\n Component,\n computed,\n DestroyRef,\n ElementRef,\n HostBinding,\n inject,\n input,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { css } from '@emotion/css';\nimport type {\n ContainerColorToken,\n OptionalSize,\n Radius,\n Variant,\n} from '@uni-design-system/uni-core';\nimport { ThemeService } from '../../theming';\nimport type { ScrollbarAppearance } from './scroll-area.types';\n\ntype OptionalValue = string | number | undefined;\n\n/**\n * Native scroll area with theme-driven scrollbar styling.\n *\n * Scrollbars are styled entirely through Emotion-generated CSS:\n * `::-webkit-scrollbar` rules cover Chromium/Safari, with a\n * `scrollbar-width`/`scrollbar-color` fallback for Firefox.\n */\n@Component({\n selector: 'div[uni-scroll-area], ScrollArea, div[scroll-area]',\n standalone: true,\n imports: [],\n template: `<div #viewport [class]=\"viewportClassName()\">\n <div\n #content\n [class]=\"contentClassName()\"\n [class.isVerticallyScrollable]=\"isVerticallyScrollable()\"\n >\n <ng-content></ng-content>\n </div>\n </div>`,\n})\nexport class UniScrollAreaComponent {\n theme = inject(ThemeService);\n\n isVerticallyScrollable = signal<boolean>(false);\n\n viewport = viewChild.required<ElementRef<HTMLDivElement>>('viewport');\n content = viewChild.required<ElementRef<HTMLDivElement>>('content');\n\n color = input<ContainerColorToken>();\n borderRadius = input<Radius>('sm');\n padding = input<OptionalSize>();\n paddingHorizontal = input<OptionalSize>();\n paddingVertical = input<OptionalSize>();\n paddingLeft = input<OptionalSize>();\n paddingRight = input<OptionalSize>();\n paddingTop = input<OptionalSize>();\n paddingBottom = input<OptionalSize>();\n border = input<Variant>();\n height = input<OptionalValue>();\n width = input<OptionalValue>();\n appearance = input<ScrollbarAppearance>('compact');\n autoHeightDisabled = input<boolean>(false);\n verticalScrollPadding = input<number>(29);\n\n scrollable = output<boolean>();\n\n public scrollToBottom() {\n const viewport = this.viewport().nativeElement;\n viewport.scrollTo({ top: viewport.scrollHeight, behavior: 'smooth' });\n }\n\n public scrollToTop() {\n this.viewport().nativeElement.scrollTo({ top: 0, behavior: 'smooth' });\n }\n\n @HostBinding('class') get className() {\n return css({\n display: 'block',\n overflow: 'hidden',\n height: this.height(),\n width: this.width(),\n\n ...this.theme.colorPair(this.color()),\n ...this.theme.radius(this.borderRadius()),\n ...this.theme.border(this.border()),\n });\n }\n\n protected viewportClassName = computed(() => {\n const palette = this.theme.colors();\n const thumbColor = palette['on-primary-surface'];\n const trackColor = palette['primary-surface'];\n const thickness = this.appearance() === 'standard' ? 13 : 8;\n\n return css([\n {\n height: '100%',\n width: '100%',\n overflow: 'auto',\n\n '&::-webkit-scrollbar': {\n width: thickness,\n height: thickness,\n },\n\n '&::-webkit-scrollbar-thumb': {\n backgroundColor: thumbColor,\n borderRadius: 7,\n border: `3px solid ${trackColor}`,\n boxSizing: 'border-box',\n },\n\n '&::-webkit-scrollbar-track': {\n backgroundColor: trackColor,\n borderRadius: 12,\n },\n\n // Firefox has no ::-webkit-scrollbar support; fall back to the\n // standard scrollbar properties there.\n '@supports not selector(::-webkit-scrollbar)': {\n scrollbarWidth: this.appearance() === 'standard' ? 'auto' : 'thin',\n scrollbarColor: `${thumbColor} ${trackColor}`,\n },\n },\n this.appearance() === 'standard' && {\n '&::-webkit-scrollbar-track': {\n backgroundColor: trackColor,\n borderRadius: 12,\n ...this.theme.border('quaternary'),\n },\n },\n ]);\n });\n\n protected contentClassName = computed(() =>\n css({\n ...this.theme.padding(this.padding()),\n ...this.theme.horizontalPadding(this.paddingHorizontal()),\n ...this.theme.verticalPadding(this.paddingVertical()),\n ...this.theme.paddingLeft(this.paddingLeft()),\n ...this.theme.paddingRight(this.paddingRight()),\n ...this.theme.paddingTop(this.paddingTop()),\n ...this.theme.paddingBottom(this.paddingBottom()),\n\n '&.isVerticallyScrollable': {\n paddingRight: this.verticalScrollPadding(),\n },\n })\n );\n\n constructor() {\n const destroyRef = inject(DestroyRef);\n\n afterNextRender(() => {\n const viewport = this.viewport().nativeElement;\n const content = this.content().nativeElement;\n\n const updateScrollable = () => {\n const scrollable = viewport.scrollHeight > viewport.clientHeight;\n if (scrollable !== this.isVerticallyScrollable()) {\n this.isVerticallyScrollable.set(scrollable);\n this.scrollable.emit(scrollable);\n }\n };\n\n const observer = new ResizeObserver(updateScrollable);\n observer.observe(viewport);\n observer.observe(content);\n destroyRef.onDestroy(() => observer.disconnect());\n\n updateScrollable();\n });\n }\n}\n","import { Component, computed, HostBinding, input } from '@angular/core';\nimport { css } from '@emotion/css';\nimport { type UniDatasource, SortDirection } from '../../cdk';\nimport { UniSymbolComponent } from '../symbol/symbol.component';\n\n@Component({\n selector: 'uni-sort-header',\n imports: [UniSymbolComponent],\n templateUrl: './sort-header.component.html',\n standalone: true,\n host: {\n '(click)': 'cycleSort()',\n },\n})\nexport class UniSortHeaderComponent<T> {\n column = input<keyof T>();\n datasource = input<UniDatasource<T>>();\n\n direction = computed(() => {\n const ds = this.datasource();\n if (!ds) return 'indet';\n\n return ds.sortColumn() === this.column() ? ds.sortDirection() : 'indet';\n });\n\n @HostBinding('class')\n get className() {\n return css({\n cursor: 'pointer',\n position: 'relative',\n height: 24,\n\n '& .sort-icon': {\n position: 'absolute',\n right: -24,\n top: -4,\n height: 24,\n width: 24,\n\n transition: 'all 350ms ease-in-out',\n transform: 'rotate(0)',\n },\n\n '& .sort-icon.asc': {\n transform: 'rotate(-180deg)',\n },\n\n '& .sort-icon.indet': {\n opacity: 0,\n transform: 'rotate(0)',\n },\n });\n }\n\n cycleSort() {\n const cycle: SortDirection[] = ['asc', 'desc', 'indet'];\n this.sortDatasource(cycle[cycle.indexOf(this.direction()) + 1] || cycle[0]);\n }\n\n sortDatasource(direction: SortDirection) {\n this.datasource()?.sortRecords({\n column: this.column(),\n direction,\n });\n }\n}\n","<ng-content></ng-content>\n<div class=\"sort-icon\" [class]=\"direction()\">\n <uni-symbol name=\"arrow_upward\" />\n</div>\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n effect,\n input,\n linkedSignal,\n output,\n signal,\n type TemplateRef,\n} from '@angular/core';\nimport { css } from '@emotion/css';\nimport { UniDatasource, UniServerSideDatasource } from '../../cdk';\nimport { fadeIn, Z_INDEX } from '@uni-design-system/uni-core';\nimport { BaseComponent } from '../base';\nimport { COMPONENT_NAME } from '../base/base.component';\nimport { UniIconComponent } from '../icon';\nimport { UniBoxComponent, UniCenterComponent } from '../layout';\nimport { UniScrollAreaComponent } from '../scroll-area/scroll-area.component';\nimport { UniSortHeaderComponent } from '../sort-header/sort-header.component';\nimport { UniTextComponent } from '../text/text.component';\nimport { ColumnDefinition, type UniDataTableOptions } from './data-table.models';\n\n@Component({\n selector: 'uni-data-table, DataTable',\n imports: [\n NgTemplateOutlet,\n UniBoxComponent,\n UniScrollAreaComponent,\n UniTextComponent,\n UniSortHeaderComponent,\n UniIconComponent,\n UniCenterComponent,\n ],\n templateUrl: './data-table.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'dataTable' }],\n})\nexport class UniDataTableComponent<T> extends BaseComponent<UniDataTableOptions> {\n datasource = input.required<UniDatasource<T>>();\n columns = input.required<ColumnDefinition<T>[]>();\n\n detailRowTemplate = input<TemplateRef<{ $implicit: T; index: number }>>();\n expandedIndex = signal<number | null>(null);\n\n useMultiSelect = input<boolean>(false);\n useRowClick = input<boolean>(true);\n highlight? = input<(row: T) => boolean>();\n\n height = input<string>();\n scrollable = signal(false);\n\n tableClass!: string;\n headerClass!: string;\n footerClass!: string;\n thClass!: string;\n tdClass!: string;\n trClass!: string;\n detailRowClass!: string;\n\n loadingOverlayClass = css({\n animation: 'fadeIn 350ms ease-in-out',\n '@keyframes fadeIn': { ...fadeIn },\n });\n\n rowSelect = output<T>();\n rowClick = output<T>();\n\n displayedColumns = signal<string[]>([]);\n\n constructor() {\n super();\n\n effect(() => {\n this.displayedColumns.set(this.columns().map((c) => c.columnDef as string));\n\n this.tableClass = css({\n ...this.theme.colorPair(this.componentOptions().color),\n width: '100%',\n borderSpacing: 0,\n });\n\n this.headerClass = css({\n borderBottom: this.getBorder(this.componentOptions().thHorizontalBorder),\n\n '&:empty': {\n display: 'none',\n },\n });\n\n this.footerClass = css({\n borderTop: this.getBorder(this.componentOptions().thHorizontalBorder),\n\n '&:empty': {\n display: 'none',\n },\n });\n\n this.thClass = css({\n ...this.theme.colorPair(this.componentOptions().thColor),\n\n position: 'sticky',\n top: 0,\n textAlign: 'center',\n padding: 0, // Reset renderers default padding\n\n ...this.theme.padding(this.componentOptions().thPadding),\n\n borderBottom: this.getBorder(this.componentOptions().thHorizontalBorder),\n '&:not(:last-child)': {\n borderRight: this.getBorder(this.componentOptions().thVerticalBorder),\n },\n '&:last-child.scrollable': {\n paddingRight: 29,\n },\n '&.sticky': {\n position: 'sticky',\n left: 0,\n zIndex: Z_INDEX.sticky,\n },\n });\n\n this.tdClass = css([\n {\n textAlign: 'center',\n padding: 0, // Reset renderers default padding\n '&:not(:last-child)': {\n borderRight: this.getBorder(this.componentOptions().tdVerticalBorder),\n },\n '&:last-child.scrollable': {\n // The last scrollable column allows space for the scrollbar.\n paddingRight: 29,\n },\n '&.sticky': {\n position: 'sticky',\n left: 0,\n zIndex: Z_INDEX.sticky,\n ...this.theme.colorPair(this.componentOptions().tdStickyColor),\n },\n '&:not(.template)': {\n // Allow templates to define their own styles\n ...this.theme.padding(this.componentOptions().tdPadding),\n },\n },\n ]);\n\n this.trClass = css(\n {\n '& td': {\n ...this.theme.backgroundColor('transparent'),\n transition: 'all 0.28s ease',\n },\n ':not(:last-child) td': {\n borderBottom: this.getBorder(this.componentOptions().tdHorizontalBorder),\n },\n },\n this.useRowClick() && {\n '&:hover td': {\n ...this.theme.backgroundColor(this.componentOptions().rowHoverColor),\n cursor: 'pointer',\n },\n }\n );\n\n this.detailRowClass = css({\n display: 'table-row',\n visibility: 'hidden',\n '&.expanded': {\n visibility: 'visible',\n },\n '& td': {\n padding: 0,\n borderBottom: this.getBorder(this.componentOptions().tdHorizontalBorder),\n },\n '& td .detail-content-wrapper': {\n display: 'grid',\n gridTemplateRows: '0fr',\n transition: 'grid-template-rows 0.3s ease',\n overflow: 'hidden',\n\n '& .detail-inner': {\n minHeight: 0,\n },\n },\n '&.expanded td .detail-content-wrapper': {\n gridTemplateRows: '1fr',\n },\n });\n });\n }\n\n // Loading state detection\n isLoading = linkedSignal(() => {\n const datasource = this.datasource();\n if (datasource && datasource instanceof UniServerSideDatasource) {\n // For server-side datasource, use the built-in loading state\n return datasource.isLoading();\n } else {\n // For client-side datasource, no loading state needed\n return false;\n }\n });\n\n toggleRow(index: number) {\n this.expandedIndex.update((current) => (current === index ? null : index));\n }\n\n handleRowClick(row: T, index: number) {\n this.rowClick.emit(row);\n\n this.toggleRow(index);\n }\n\n isHighlighted(row: T) {\n const callback = this.highlight && this.highlight();\n if (!callback) return false;\n return callback(row);\n }\n\n protected readonly String = String;\n\n handleScrollable(scrollable: boolean) {\n this.scrollable.set(scrollable);\n }\n\n getBorder(name: string | undefined) {\n return name ? this.theme.theme().borders[name] : undefined;\n }\n}\n","@let ds = datasource();\n@if (ds) {\n <div\n box-layout\n [color]=\"componentOptions().color\"\n [border]=\"componentOptions().border\"\n [borderRadius]=\"componentOptions().borderRadius\"\n [elevation]=\"componentOptions().elevation\"\n overflow=\"hidden\"\n >\n <div\n box-layout\n [padding]=\"componentOptions().headerPadding\"\n [color]=\"componentOptions().headerColor\"\n [class]=\"headerClass\"\n >\n <ng-content select=\"data-table-header\"></ng-content>\n </div>\n\n <div box-layout [height]=\"height()\" position=\"relative\">\n <ScrollArea\n [verticalScrollPadding]=\"0\"\n (scrollable)=\"handleScrollable($event)\"\n >\n <table [class]=\"tableClass\">\n <thead>\n <tr>\n @for (column of columns(); track column) {\n <th\n [class]=\"thClass\"\n [class.scrollable]=\"scrollable()\"\n [class.sticky]=\"column.isSticky\"\n [style.text-align]=\"column.textAlign\"\n >\n <uni-sort-header\n [datasource]=\"datasource()\"\n [column]=\"column.columnDef\"\n >\n <Text [typeface]=\"componentOptions().thTextRole\">{{\n column.header\n }}</Text>\n </uni-sort-header>\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (record of ds.records(); track record; let i = $index) {\n <tr [class]=\"trClass\" (click)=\"handleRowClick(record, $index)\">\n @for (column of columns(); track column) {\n <td\n [class]=\"tdClass\"\n [class.scrollable]=\"scrollable()\"\n [class.sticky]=\"column.isSticky\"\n [class.template]=\"!!column.template\"\n [style.text-align]=\"column.textAlign\"\n >\n @if (column.template) {\n <ng-container\n [ngTemplateOutlet]=\"column.template\"\n [ngTemplateOutletContext]=\"record\"\n ></ng-container>\n } @else {\n <Text [typeface]=\"componentOptions().tdTextRole\">\n @if (!column.cell) {\n {{ record[column.columnDef] }}\n } @else {\n {{ column.cell(record) }}\n }\n </Text>\n }\n </td>\n }\n </tr>\n @if (detailRowTemplate()) {\n <tr\n [class]=\"detailRowClass\"\n [class.expanded]=\"expandedIndex() === $index\"\n >\n <td [attr.colspan]=\"columns().length\">\n <div class=\"detail-content-wrapper\">\n <div class=\"detail-inner\">\n <ng-container\n [ngTemplateOutlet]=\"detailRowTemplate()\"\n [ngTemplateOutletContext]=\"{\n $implicit: record,\n index: i,\n }\"\n ></ng-container>\n </div>\n </div>\n </td>\n </tr>\n }\n }\n </tbody>\n </table>\n </ScrollArea>\n\n <!-- Loading Overlay -->\n @if (isLoading()) {\n <div\n uni-center-layout\n position=\"absolute\"\n [inset]=\"0\"\n [backgroundColor]=\"componentOptions().loadingOverlayColor\"\n [class]=\"loadingOverlayClass\"\n zIndex=\"overlay\"\n >\n <!-- Loading Spinner -->\n <div\n uni-box-layout\n [height]=\"componentOptions().loadingSpinnerSize\"\n [width]=\"componentOptions().loadingSpinnerSize\"\n >\n <uni-icon\n name=\"spinner\"\n [color]=\"componentOptions().loadingSpinnerColor\"\n />\n </div>\n </div>\n }\n </div>\n\n <div\n box-layout\n [padding]=\"componentOptions().footerPadding\"\n [color]=\"componentOptions().footerColor\"\n [class]=\"footerClass\"\n >\n <ng-content select=\"data-table-footer\"></ng-content>\n </div>\n </div>\n}\n","/**\n * UniDataTableComponent Barrel File\n *\n * This file exports all public-facing elements of the data-table component.\n */\n\nexport { UniDataTableComponent } from './data-table.component';\nexport type { ColumnDefinition, UniDataTableOptions } from './data-table.models';\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n effect,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n inject,\n input,\n Input,\n linkedSignal,\n Output,\n} from '@angular/core';\nimport { css, keyframes } from '@emotion/css';\nimport { BaseComponent } from '../base';\nimport { COMPONENT_NAME } from '../base/base.component';\nimport { UniIconButtonComponent } from '../icon-button';\nimport type { UniDialogOptions } from './dialog.model';\nimport { fadeIn, fadeOut } from '@uni-design-system/uni-core';\n\n@Component({\n selector: 'dialog[uni-dialog], Dialog',\n standalone: true,\n imports: [UniIconButtonComponent, CommonModule],\n template: `\n @if (defaultCloseButton) {\n <button\n icon-button\n iconName=\"close\"\n variant=\"ghost\"\n (click)=\"close()\"\n [class]=\"closeButton\"\n size=\"md\"\n >\n Close\n </button>\n }\n <ng-content></ng-content>\n `,\n providers: [{ provide: COMPONENT_NAME, useValue: 'dialog' }],\n})\nexport class UniDialogComponent extends BaseComponent<UniDialogOptions> {\n private elem = inject(ElementRef);\n\n show = input<boolean>(false);\n private readonly _show = linkedSignal(() => this.show());\n\n @Input() defaultCloseButton?: boolean;\n @Output() showing = new EventEmitter();\n\n constructor() {\n super();\n effect(() => (this._show() ? this.open() : this.close()));\n }\n\n private get _dialog(): HTMLDialogElement {\n return this.elem.nativeElement;\n }\n\n @HostBinding('class') get className() {\n return css([\n {\n ...this.theme.radius(this.componentOptions().borderRadius),\n ...this.theme.colorPair(this.componentOptions().color),\n ...this.theme.border(this.componentOptions().border),\n ...this.theme.boxShadow(this.componentOptions().elevation),\n ...this.theme.padding(this.componentOptions().padding || 'none'),\n\n '&::backdrop': {\n ...this.componentOptions().backdrop,\n },\n\n '&[open], &::backdrop': {\n animation: `${this.dialogFadeIn} ease-in 350ms`,\n },\n\n '&[closing], &[closing]::backdrop': {\n animation: `${this.dialogFadeOut} ease-in 350ms`,\n },\n },\n ]);\n }\n\n @HostListener('click', ['$event']) BackdropClick(event: Event) {\n if ((event.target as any).nodeName === 'DIALOG') {\n this.close();\n }\n }\n\n @HostListener('animationend', ['$event']) ClosingAnimation(e: AnimationEvent) {\n // Close the dialog if the animation is finished\n if (e.animationName.includes(this.dialogFadeOut)) {\n this._dialog.close();\n this._dialog.removeAttribute('closing');\n this.showing.emit(false);\n }\n }\n\n closeButton = css({\n position: 'absolute',\n right: 12,\n top: 12,\n });\n\n private dialogFadeIn = keyframes({ ...fadeIn });\n private dialogFadeOut = keyframes({ ...fadeOut });\n\n open() {\n this._dialog.removeAttribute('closing');\n this._dialog.showModal();\n this._show.set(true);\n this.showing.emit(true);\n }\n\n close() {\n this._dialog.setAttribute('closing', 'true');\n this._show.set(false);\n }\n}\n","import { Component, EventEmitter, inject, Input, Output } from '@angular/core';\nimport { UniButtonComponent } from '../../button';\nimport { UniRowComponent } from '../../layout';\nimport { UniDialogComponent } from '../dialog.component';\nimport type { JustifyContent, NullableSize, Variant } from '@uni-design-system/uni-core';\n\n@Component({\n selector: 'uni-dialog-buttons, DialogButtons, div[dialog-buttons]',\n standalone: true,\n imports: [UniRowComponent, UniButtonComponent],\n templateUrl: './dialog-buttons.component.html',\n})\nexport class UniDialogButtonsComponent {\n private dialog = inject(UniDialogComponent, {\n optional: true,\n host: true,\n skipSelf: true,\n });\n\n @Input() confirmButtonText?: string;\n @Input() confirmButtonVariant: Variant = 'primary';\n @Input() cancelButtonText?: string;\n @Input() disableConfirm?: boolean;\n @Input() padding?: NullableSize = 'md';\n @Input() paddingBottom?: NullableSize = 'lg';\n @Input() justifyContent?: JustifyContent = 'center';\n\n @Output() confirmed = new EventEmitter();\n\n closeDialog() {\n this.dialog?.close();\n }\n}\n","<div\n row-layout\n gap=\"md\"\n [padding]=\"padding\"\n [paddingBottom]=\"paddingBottom\"\n [justifyContent]=\"justifyContent\"\n>\n <button\n text-button\n [variant]=\"confirmButtonVariant\"\n (click)=\"confirmed.emit(); closeDialog()\"\n [disable]=\"disableConfirm\"\n >\n {{ confirmButtonText || 'Confirm' }}\n </button>\n <button text-button variant=\"warn\" (click)=\"closeDialog()\">\n {{ cancelButtonText || 'Cancel' }}\n </button>\n</div>\n","import { Component, inject } from '@angular/core';\nimport { BaseComponent } from '../../base';\nimport { COMPONENT_NAME } from '../../base/base.component';\nimport { UniIconButtonComponent } from '../../icon-button';\nimport { UniBoxComponent, UniRowComponent } from '../../layout';\nimport { UniTextComponent } from '../../text';\nimport { UniDialogComponent } from '../dialog.component';\nimport type { UniDialogHeaderOptions } from './dialog-header.model';\n\n@Component({\n selector: 'div[uni-dialog-header], DialogHeader',\n standalone: true,\n imports: [UniBoxComponent, UniIconButtonComponent, UniTextComponent, UniRowComponent],\n templateUrl: './dialog-header.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'dialogHeader' }],\n})\nexport class UniDialogHeaderComponent extends BaseComponent<UniDialogHeaderOptions> {\n private dialog = inject(UniDialogComponent, {\n optional: true,\n host: true,\n skipSelf: true,\n });\n\n closeDialog() {\n this.dialog?.close();\n }\n}\n","<div\n row-layout\n [color]=\"componentOptions().color\"\n [borderRadius]=\"componentOptions().borderRadius\"\n [height]=\"componentOptions().height\"\n alignItems=\"center\"\n paddingHorizontal=\"sm\"\n>\n <Box [width]=\"26\"></Box>\n <Box [grow]=\"1\">\n <Text\n [typeface]=\"componentOptions().textRole\"\n [color]=\"componentOptions().textColor\"\n display=\"block\"\n [align]=\"componentOptions().textAlign || 'center'\"\n ><ng-content></ng-content\n ></Text>\n </Box>\n <button\n icon-button\n [iconName]=\"componentOptions().closeButtonIcon\"\n [symbolName]=\"componentOptions().closeButtonSymbol\"\n variant=\"ghost\"\n (click)=\"closeDialog()\"\n [size]=\"componentOptions().closeButtonSize || 'md'\"\n >\n Close\n </button>\n</div>\n","import { Component, HostBinding, inject, input } from '@angular/core';\nimport { css } from '@emotion/css';\nimport { ThemeService } from '../../theming';\nimport type { Border, Orientation } from '@uni-design-system/uni-core';\n\n@Component({\n selector: 'uni-divider, Divider',\n standalone: true,\n imports: [],\n template: ``,\n})\nexport class UniDividerComponent {\n themeService = inject(ThemeService);\n\n orientation = input<Orientation>('horizontal');\n border = input<Border>('primary');\n\n @HostBinding('class') get className() {\n return css([\n {\n display: 'block',\n },\n this.orientation() === 'horizontal' && {\n ...this.themeService.borderBottom(this.border()),\n width: '100%',\n },\n this.orientation() === 'vertical' && {\n ...this.themeService.borderLeft(this.border()),\n height: '100%',\n },\n ]);\n }\n}\n","import {\n Component,\n computed,\n ElementRef,\n inject,\n input,\n OnDestroy,\n OnInit,\n output,\n Renderer2,\n signal,\n ViewChild,\n} from '@angular/core';\nimport { css } from '@emotion/css';\nimport {\n autoUpdate,\n computePosition,\n offset,\n OffsetOptions,\n Placement,\n shift,\n} from '@floating-ui/dom';\n\nimport { BaseComponent } from '../base';\nimport { COMPONENT_NAME } from '../base/base.component';\nimport { UniBoxComponent } from '../layout';\nimport type { UniDropdownOptions } from './dropdown.model';\nimport type { NullableSize } from '@uni-design-system/uni-core';\n\n@Component({\n selector: 'uni-dropdown, Dropdown',\n standalone: true,\n imports: [UniBoxComponent],\n template: `\n <!-- 1. The native 'popover' attribute brings it to the top layer with native light-dismiss -->\n <div #dropdown popover=\"auto\" [class]=\"dropdownClass()\">\n <div\n box-layout\n [border]=\"componentOptions().border\"\n [borderRadius]=\"componentOptions().borderRadius\"\n [paddingVertical]=\"paddingVertical()\"\n [paddingHorizontal]=\"paddingHorizontal()\"\n [color]=\"componentOptions().color\"\n [shadow]=\"componentOptions().shadow\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n `,\n providers: [{ provide: COMPONENT_NAME, useValue: 'dropdown' }],\n})\nexport class UniDropdownComponent\n extends BaseComponent<UniDropdownOptions>\n implements OnInit, OnDestroy\n{\n private renderer = inject(Renderer2);\n private cleanupAutoUpdate?: () => void;\n private delay = 100;\n\n // Reactively track visibility status using Signals\n showing = signal<boolean>(false);\n\n trigger = input.required<HTMLElement>();\n placement = input<Placement>('bottom-start');\n offset = input<OffsetOptions>({ mainAxis: 4, alignmentAxis: 12 });\n\n paddingVertical = input<NullableSize>();\n paddingHorizontal = input<NullableSize>();\n\n dropdownShowing = output<boolean>();\n dropdownHiding = output<boolean>();\n\n @ViewChild('dropdown', { static: true })\n dropdownRef!: ElementRef<HTMLDivElement>;\n\n private get _trigger(): HTMLElement {\n return this.trigger();\n }\n private get _dropdown(): HTMLDivElement {\n return this.dropdownRef.nativeElement;\n }\n\n private transformOriginMap: Record<Placement, string> = {\n top: 'bottom center',\n right: 'center left',\n bottom: 'top center',\n left: 'center right',\n 'top-start': 'bottom left',\n 'top-end': 'bottom right',\n 'right-start': 'top left',\n 'right-end': 'bottom left',\n 'bottom-start': 'top left',\n 'bottom-end': 'top right',\n 'left-start': 'top right',\n 'left-end': 'bottom right',\n };\n\n dropdownClass = computed(() => {\n const currentPlacement = this.placement();\n\n return css([\n {\n // Reset browser agent default popover styles\n border: 'none',\n background: 'transparent',\n margin: 0,\n padding: 0,\n overflow: 'visible',\n width: 'max-content',\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: 1,\n\n // 2. Animate discrete properties across top layer layout contexts\n transitionProperty: 'transform, opacity, display, overlay',\n transitionDuration: `${this.delay}ms`,\n transitionTimingFunction: 'linear',\n transitionBehavior: 'allow-discrete',\n\n // Hidden State (Closed)\n opacity: 0,\n transform: 'scale(0.8)',\n transformOrigin: this.transformOriginMap[currentPlacement],\n\n // 3. Active state styling controlled via the native browser pseudo-class\n ['&:popover-open']: {\n opacity: 1,\n transform: 'scale(1)',\n },\n\n // 4. Starting-style rules what properties animate *from* when transitioning in\n ['@starting-style']: {\n ['&:popover-open']: {\n opacity: 0,\n transform: 'scale(0.8)',\n },\n },\n },\n ]);\n });\n\n ngOnInit(): void {\n // Single native click binding to manage open/close commands\n this.renderer.listen(this._trigger, 'click', (e: Event) => {\n e.stopPropagation();\n this.toggleDropdown();\n });\n\n // Sync state if user invokes light-dismiss via outside click or Escape key\n this.renderer.listen(this._dropdown, 'toggle', (event: any) => {\n const isOpened = event.newState === 'open';\n this.showing.set(isOpened);\n\n if (isOpened) {\n this.dropdownShowing.emit(true);\n this.cleanupAutoUpdate = autoUpdate(this._trigger, this._dropdown, () =>\n this.updatePosition()\n );\n } else {\n this.dropdownHiding.emit(true);\n if (this.cleanupAutoUpdate) {\n this.cleanupAutoUpdate();\n this.cleanupAutoUpdate = undefined;\n }\n }\n });\n }\n\n toggleDropdown() {\n if (this.showing()) {\n this._dropdown.hidePopover();\n } else {\n this._dropdown.showPopover();\n }\n }\n\n hideDropdown() {\n this._dropdown.hidePopover();\n }\n\n private async updatePosition() {\n const { x, y } = await computePosition(this._trigger, this._dropdown, {\n placement: this.placement(),\n middleware: [offset(this.offset()), shift({ padding: 5 })],\n });\n\n this.renderer.setStyle(this._dropdown, 'left', `${x}px`);\n this.renderer.setStyle(this._dropdown, 'top', `${y}px`);\n }\n\n ngOnDestroy() {\n if (this.cleanupAutoUpdate) this.cleanupAutoUpdate();\n try {\n this._dropdown.hidePopover();\n } catch {}\n }\n}\n","import { Component, model } from '@angular/core';\nimport { css, keyframes } from '@emotion/css';\nimport { collapseFadeOut, expandFadeIn } from '@uni-design-system/uni-core';\n\n@Component({\n selector: 'uni-expand, Expand',\n standalone: true,\n imports: [],\n template: `@if (!collapsed()) {\n <div\n [animate.enter]=\"expandAnimation\"\n [animate.leave]=\"collapseAnimation\"\n [class]=\"expandClassName\"\n >\n <div [class]=\"contentClassName\">\n <ng-content></ng-content>\n </div>\n </div>\n }`,\n})\nexport class UniExpandComponent {\n collapsed = model(true);\n\n toggle() {\n this.collapsed.update((collapsed) => !collapsed);\n }\n\n expandClassName = css({\n display: 'grid',\n });\n\n contentClassName = css({\n minHeight: 0,\n });\n\n private expand = keyframes({ ...expandFadeIn });\n private collapse = keyframes({ ...collapseFadeOut });\n\n expandAnimation = css({\n overflow: 'hidden',\n animation: `${this.expand} ease-in 350ms`,\n });\n\n collapseAnimation = css({\n overflow: 'hidden',\n animation: `${this.collapse} ease-in 350ms`,\n });\n}\n","/**\n * UniExpandComponent Barrel File\n *\n * This file exports all public-facing elements of the expand component.\n */\n\nexport { UniExpandComponent } from './expand.component';\n","import {\n Component,\n effect,\n ElementRef,\n HostBinding,\n inject,\n input,\n Input,\n OnDestroy,\n Renderer2,\n signal,\n} from '@angular/core';\nimport { css, keyframes } from '@emotion/css';\nimport { arrow, computePosition, flip, offset, shift } from '@floating-ui/dom';\n\nimport { BaseComponent } from '../base';\nimport { COMPONENT_NAME } from '../base/base.component';\nimport type { UniTooltipOptions } from './tooltip.model';\nimport { Placement } from './tooltip.types';\nimport { fadeIn, fadeOut, Z_INDEX } from '@uni-design-system/uni-core';\nimport { useTimer } from '../../cdk';\n\n@Component({\n selector: 'uni-tooltip, Tooltip',\n standalone: true,\n imports: [],\n template: `<ng-content></ng-content>`,\n providers: [{ provide: COMPONENT_NAME, useValue: 'tooltip' }],\n host: {\n '(click)': 'toggleTooltip()',\n '(mouseenter)': 'mouseenter()',\n '(mouseleave)': 'mouseleave()',\n },\n})\nexport class UniTooltipComponent extends BaseComponent<UniTooltipOptions> implements OnDestroy {\n private elRef = inject(ElementRef);\n private renderer = inject(Renderer2);\n\n private timer = useTimer();\n hoverDelayMs = signal(500);\n isMouseInside = signal(false);\n\n private tooltip!: HTMLElement | null;\n private arrow!: HTMLElement | null;\n\n hoverDelay = input<number>(500);\n label = input.required<string>();\n placement = input<Placement>('top');\n inlineText = input<boolean>(false);\n\n @Input() appendToBody?: boolean;\n\n constructor() {\n super();\n\n effect(() => {\n const timerActive = this.timer.isActive();\n const mouseInside = this.isMouseInside();\n\n // If the timer finished and the mouse is still inside, show tooltip\n if (!timerActive && mouseInside) {\n this.showTooltip();\n }\n // If the mouse left and the timer is not running, hide tooltip\n else if (!mouseInside) {\n this.hideTooltip();\n }\n });\n }\n\n toggleTooltip() {\n if (this.tooltip) {\n this.hideTooltip();\n } else {\n this.showTooltip();\n }\n }\n\n mouseenter() {\n this.isMouseInside.set(true);\n this.timer.start(this.hoverDelayMs());\n }\n\n mouseleave() {\n this.isMouseInside.set(false);\n this.timer.stop();\n }\n\n showTooltip() {\n if (this.tooltip) return;\n this.initializeTooltip();\n this.renderer.setAttribute(this.tooltip, 'fade', 'in');\n }\n\n hideTooltip() {\n if (!this.tooltip) return;\n this.renderer.setAttribute(this.tooltip, 'fade', 'out');\n }\n\n @HostBinding('class') get className() {\n return css(\n {\n display: 'inline-flex',\n },\n this.inlineText() && {\n cursor: 'help',\n textDecoration: 'underline',\n textDecorationStyle: 'dotted',\n }\n );\n }\n\n private tooltipFadeIn = keyframes({ ...fadeIn });\n private tooltipFadeOut = keyframes({ ...fadeOut });\n\n private tooltipClassName = css([\n {\n ...this.theme.colorPair(this.componentOptions().color),\n ...this.theme.radius(this.componentOptions().borderRadius),\n ...this.theme.boxShadow(this.componentOptions().shadow),\n ...this.theme.typeface(this.componentOptions().typeface),\n padding: 5,\n width: 'max-content',\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: Z_INDEX.tooltip,\n\n '&[fade=\"in\"]': {\n animation: `${this.tooltipFadeIn} ease-in 350ms`,\n },\n\n '&[fade=\"out\"]': {\n animation: `${this.tooltipFadeOut} ease-in 350ms`,\n },\n },\n ]);\n\n private arrowClassName = css({\n position: 'absolute',\n ...this.theme.colorPair(this.componentOptions().color),\n width: 8,\n height: 8,\n transform: 'rotate(45deg)',\n });\n\n private createTooltip() {\n this.tooltip = this.renderer.createElement('span');\n\n this.renderer.appendChild(\n this.tooltip,\n this.renderer.createText(this.label()) // textNode\n );\n\n this.renderer.appendChild(\n this.appendToBody ? document.body : this.elRef.nativeElement,\n this.tooltip\n );\n this.renderer.addClass(this.tooltip, this.tooltipClassName);\n this.renderer.listen(this.tooltip, 'animationend', (event) => {\n if (event.animationName.includes(this.tooltipFadeOut)) this.destroyTooltip();\n });\n }\n\n private createArrow() {\n this.arrow = this.renderer.createElement('div');\n this.renderer.appendChild(this.tooltip, this.arrow);\n this.renderer.addClass(this.arrow, this.arrowClassName);\n }\n\n private setPosition() {\n if (!this.tooltip || !this.arrow) return;\n computePosition(this.elRef.nativeElement, this.tooltip, {\n placement: this.placement(),\n middleware: [offset(6), flip(), shift({ padding: 5 }), arrow({ element: this.arrow })],\n }).then(({ x, y, placement, middlewareData }) => {\n this.renderer.setStyle(this.tooltip, 'top', `${y}px`);\n this.renderer.setStyle(this.tooltip, 'left', `${x}px`);\n\n // Accessing the data\n const arrowX = middlewareData.arrow?.x;\n const arrowY = middlewareData.arrow?.y;\n\n const staticSide = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n }[placement.split('-')[0]];\n\n this.renderer.setStyle(this.arrow, 'top', `${arrowY}px`);\n this.renderer.setStyle(this.arrow, 'left', `${arrowX}px`);\n this.renderer.setStyle(this.arrow, 'right', ``);\n this.renderer.setStyle(this.arrow, 'bottom', ``);\n\n if (staticSide) {\n this.renderer.setStyle(this.arrow, staticSide, `-4px`);\n }\n });\n }\n\n private initializeTooltip() {\n this.createTooltip();\n this.createArrow();\n this.setPosition();\n }\n\n private destroyTooltip() {\n this.renderer.removeChild(\n this.appendToBody ? document.body : this.elRef.nativeElement,\n this.tooltip\n );\n this.renderer.removeChild(\n this.appendToBody ? document.body : this.elRef.nativeElement,\n this.arrow\n );\n this.tooltip = null;\n this.arrow = null;\n }\n\n ngOnDestroy() {\n this.hideTooltip();\n }\n}\n","import { Component, HostBinding, model } from '@angular/core';\nimport { css } from '@emotion/css';\nimport { UniIconButtonComponent } from '../icon-button/icon-button.component';\nimport { UniTooltipComponent } from '../tooltip/tooltip.component';\n\n@Component({\n selector: 'uni-expand-toggle, ExpandToggle',\n standalone: true,\n imports: [UniIconButtonComponent, UniTooltipComponent],\n template: `<Tooltip\n [label]=\"collapsed() ? 'Expand' : 'Collapse'\"\n placement=\"right\"\n [appendToBody]=\"true\"\n >\n <button icon-button iconName=\"chevronUp\" (click)=\"toggle()\">\n {{ collapsed() ? 'Expand' : 'Collapse' }}\n </button>\n </Tooltip>`,\n host: {\n '[attr.toggled]': 'collapsed() || null',\n },\n})\nexport class UniExpandToggleComponent {\n collapsed = model(true);\n\n @HostBinding('class') get className() {\n return css({\n display: 'inline-flex',\n cursor: 'pointer',\n\n transition: 'transform 350ms ease-in-out',\n transform: 'rotate(0)',\n\n '&[toggled]': {\n transform: 'rotate(-180deg)',\n },\n });\n }\n\n toggle() {\n this.collapsed.update((collapsed) => !collapsed);\n }\n}\n","import { Component, input, output, viewChild } from '@angular/core';\nimport type { NullableSize } from '@uni-design-system/uni-core';\nimport { UniExpandToggleComponent } from '../expand-toggle/expand-toggle.component';\nimport { UniExpandComponent } from '../expand/expand.component';\nimport { UniBoxComponent } from '../layout';\nimport { UniTextComponent } from '../text/text.component';\n\n@Component({\n selector: 'uni-expand-area, ExpandArea',\n standalone: true,\n imports: [UniBoxComponent, UniTextComponent, UniExpandToggleComponent, UniExpandComponent],\n template: `\n <Box\n color=\"tertiary-surface\"\n borderRadius=\"sm\"\n border=\"quaternary\"\n overflow=\"hidden\"\n >\n <Box\n border=\"quaternary\"\n borderRadius=\"sm\"\n color=\"primary-surface\"\n style=\"margin-top: -1px; margin-left: -1px; margin-right: -1px\"\n [style.margin-bottom]=\"toggle.collapsed() ? '-1px' : 0\"\n justifyContent=\"space-between\"\n display=\"flex\"\n alignItems=\"center\"\n >\n <Box [width]=\"36\"></Box>\n <Box paddingHorizontal=\"md\">\n <Text typeface=\"title-small\" display=\"block\">\n {{ title() }}\n </Text>\n </Box>\n\n <ExpandToggle\n #toggle\n style=\"display: inline-flex; margin: -2px\"\n [collapsed]=\"initCollapsed()\"\n />\n </Box>\n\n <Expand [collapsed]=\"toggle.collapsed()\">\n <Box [padding]=\"padding()\">\n <ng-content></ng-content>\n </Box>\n </Expand>\n </Box>\n `,\n})\nexport class UniExpandAreaComponent {\n title = input.required<string>();\n initCollapsed = input(false);\n padding = input<NullableSize>('md');\n\n collapsed = output<boolean>();\n\n toggleRef = viewChild.required<UniExpandToggleComponent>('toggle');\n\n public toggleExpand() {\n this.toggleRef().toggle();\n }\n}\n","/**\n * UniExpandAreaComponent Barrel File\n *\n * This file exports all public-facing elements of the expand-area component.\n */\n\nexport { UniExpandAreaComponent } from './expand-area.component';\n","/**\n * UniExpandToggleComponent Barrel File\n *\n * This file exports all public-facing elements of the expand-toggle component.\n */\n\nexport { UniExpandToggleComponent } from './expand-toggle.component';\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n computed,\n effect,\n ElementRef,\n input,\n output,\n signal,\n TemplateRef,\n viewChild,\n} from '@angular/core';\nimport { acceptableFile } from '../../cdk';\nimport { DragAndDropDirective } from '../../directives/drag-and-drop/drag-and-drop.directive';\nimport type { NullableSize, Radius, Variant } from '@uni-design-system/uni-core';\nimport { UniButtonComponent } from '../button/button.component';\nimport { UniBoxComponent, UniStackComponent } from '../layout';\nimport { UniTextComponent } from '../text/text.component';\n\n@Component({\n selector: 'uni-file-drop-zone',\n imports: [\n DragAndDropDirective,\n UniBoxComponent,\n UniButtonComponent,\n UniStackComponent,\n UniTextComponent,\n NgTemplateOutlet,\n ],\n templateUrl: './file-drop-zone.component.html',\n standalone: true,\n})\nexport class UniFileDropZoneComponent {\n selectedFile = signal<File | undefined>(undefined);\n selectedFileName = computed(() => this.selectedFile()?.name);\n attachmentState = signal<'upload' | undefined>(undefined);\n\n fileSelectorRef = viewChild.required<ElementRef<HTMLInputElement>>('fileSelector');\n\n get fileSelectorElement() {\n return this.fileSelectorRef().nativeElement;\n }\n\n height = input<number | string>();\n borderRadius = input<Radius>('md');\n border = input<Variant>('light');\n padding = input<NullableSize>('lg');\n useBrowseButton = input<boolean>(false);\n browseButtonText = input<string>('Browse for file');\n allowedFileExtensions = input<string[]>([]);\n label = input<string>();\n\n helpTemplate = input<TemplateRef<unknown> | null>(null);\n helpTemplateContext = input<unknown | null>(null);\n\n fileAttached = output<File | undefined>();\n fileRemoved = output();\n\n sanitizedFileExtensions = computed(() =>\n this.allowedFileExtensions().map((ext) => (ext.includes('.') ? ext : '.' + ext))\n );\n\n helpText = computed(() => {\n const extensions = this.sanitizedFileExtensions();\n let text = '';\n\n if (extensions.length === 1) {\n text = `${extensions[0]} format allowed`;\n }\n\n if (extensions.length > 1) {\n text = extensions.join(', ') + ' formats allowed';\n }\n\n return text;\n });\n\n constructor() {\n effect(() => {\n const files = this.selectedFile();\n\n if (files) {\n this.attachmentState.set('upload');\n } else {\n this.attachmentState.set(undefined);\n }\n });\n }\n\n openFileSelector() {\n this.fileSelectorElement.click();\n }\n\n selectFiles(fileList: FileList | null): void {\n if (!fileList) return;\n if (!acceptableFile(fileList[0], this.sanitizedFileExtensions())) return;\n this.selectedFile.set(fileList[0]);\n this.fileAttached.emit(fileList[0]);\n }\n\n onFileInputChange() {\n this.selectFiles(this.fileSelectorElement.files);\n this.fileSelectorElement.value = '';\n }\n\n cancelUpload() {\n this.selectedFile.set(undefined);\n this.fileAttached.emit(undefined);\n this.fileRemoved.emit();\n }\n\n removeAttachment() {\n this.selectedFile.set(undefined);\n }\n}\n","<div\n box-layout\n [border]=\"border()\"\n [borderRadius]=\"borderRadius()\"\n [dashBorder]=\"[undefined, 'replace'].includes(attachmentState())\"\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n [padding]=\"padding()\"\n dragAndDrop\n (onFileDropped)=\"selectFiles($event)\"\n [height]=\"height()\"\n>\n <div stack-layout gap=\"md\" alignItems=\"center\">\n @switch (attachmentState()) {\n @case ('upload') {\n <div stack-layout alignItems=\"center\">\n <Text typeface=\"headline-small\">{{ label() }}</Text>\n <Text typeface=\"title-small\">{{ selectedFileName() }}</Text>\n </div>\n <button text-button (click)=\"removeAttachment()\" variant=\"warn\">\n Cancel\n </button>\n }\n\n @default {\n @if (useBrowseButton()) {\n <button text-button (click)=\"openFileSelector()\">\n {{ browseButtonText() }}\n </button>\n <Text>OR</Text>\n }\n\n @if (!helpTemplate()) {\n <div stack-layout alignItems=\"center\">\n <Text typeface=\"headline-small\">Drag and drop the file here</Text>\n @if (helpText()) {\n <Text typeface=\"title-small\">{{ helpText() }}</Text>\n }\n </div>\n } @else {\n <ng-container\n [ngTemplateOutlet]=\"helpTemplate()\"\n [ngTemplateOutletContext]=\"helpTemplateContext()\"\n ></ng-container>\n }\n }\n }\n </div>\n\n <input\n #fileSelector\n type=\"file\"\n style=\"display: none\"\n (change)=\"onFileInputChange()\"\n [accept]=\"sanitizedFileExtensions().join(',')\"\n [multiple]=\"false\"\n />\n</div>\n","/**\n * UniFileDropZoneComponent Barrel File\n *\n * This file exports all public-facing elements of the file-drop-zone component.\n */\n\nexport { UniFileDropZoneComponent } from './file-drop-zone.component';\n","import { Component, DestroyRef, inject, input, output, signal } from '@angular/core';\nimport { css } from '@emotion/css';\n\n@Component({\n selector: 'DebounceInput, uni-debounce-input',\n standalone: true,\n imports: [],\n templateUrl: './debounce-input.component.html',\n})\nexport class UniDebounceInputComponent {\n inputName = input<string>();\n inputId = input<string>();\n debounceTime = input<number>(400);\n\n change = output<string>();\n\n value = signal<string | undefined>(undefined);\n\n private timeoutId: ReturnType<typeof setTimeout> | null = null;\n private lastEmitted: string | undefined;\n\n constructor() {\n inject(DestroyRef).onDestroy(() => {\n if (this.timeoutId) clearTimeout(this.timeoutId);\n });\n }\n\n handleInput(value: string) {\n this.value.set(value);\n\n // Debounce, emitting only when the value actually changed.\n if (this.timeoutId) clearTimeout(this.timeoutId);\n this.timeoutId = setTimeout(() => {\n if (value !== this.lastEmitted) {\n this.lastEmitted = value;\n this.change.emit(value);\n }\n }, this.debounceTime());\n }\n\n inputClass = css({\n border: 'none',\n fontSize: 18,\n width: '100%',\n\n '&:focus-visible': {\n outline: 'none',\n },\n });\n}\n","<input\n [class]=\"inputClass\"\n type=\"text\"\n [name]=\"inputName()\"\n [id]=\"inputId()\"\n [value]=\"value() ?? ''\"\n (input)=\"handleInput($any($event.target).value)\"\n/>\n","import { Component, computed, HostBinding, input } from '@angular/core';\nimport { css } from '@emotion/css';\nimport { removeInputPlatformStyling } from '@uni-design-system/uni-core';\nimport { BaseComponent } from '../base';\nimport { COMPONENT_NAME } from '../base/base.component';\nimport { UniRowComponent } from '../layout';\nimport type { UniInputBoxOptions } from './input-box.model';\n\n@Component({\n selector: 'uni-input-box',\n imports: [UniRowComponent],\n templateUrl: './input-box.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'input' }],\n})\nexport class UniInputBoxComponent extends BaseComponent<UniInputBoxOptions> {\n @HostBinding('class') className = css({ display: 'contents' });\n\n disabled = input<boolean>(false);\n error = input<boolean>(false);\n minWidth = input<string>('0');\n\n protected readonly color = computed(() =>\n this.error() ? this.componentOptions().errorColor : this.componentOptions().color\n );\n\n protected readonly border = computed(() =>\n this.error() ? this.componentOptions().errorBorder : this.componentOptions().border\n );\n\n protected readonly shadow = computed(() =>\n this.error() ? this.componentOptions().errorShadow : this.componentOptions().shadow\n );\n\n protected readonly inputBoxClass = computed(() =>\n css([\n this.disabled() && {\n ...this.theme.color(this.componentOptions().disabledTextColor),\n ...this.theme.backgroundColor(this.componentOptions().disabledColor),\n cursor: 'not-allowed !important',\n },\n {\n '& input, select': {\n ...removeInputPlatformStyling,\n height: '100%',\n ...this.theme.paddingLeft(this.componentOptions().paddingLeft),\n ...this.theme.color(this.componentOptions().textColor),\n ...this.theme.typeface(this.componentOptions().typeFace),\n },\n\n '&:has(input:disabled, select:disabled)': {\n ...this.theme.color(this.componentOptions().disabledTextColor),\n ...this.theme.backgroundColor(this.componentOptions().disabledColor),\n },\n\n '& input:disabled, select:disabled': {\n cursor: 'not-allowed !important',\n },\n\n '&:has(input:focus, select:focus)': {\n outline: this.componentOptions().focusOutline,\n outlineOffset: this.componentOptions().focusOutlineOffset,\n },\n },\n ])\n );\n}\n","<div\n row-layout\n alignItems=\"center\"\n [height]=\"componentOptions().height\"\n [color]=\"color()\"\n [border]=\"border()\"\n [borderRadius]=\"componentOptions().borderRadius\"\n [shadow]=\"shadow()\"\n [minWidth]=\"minWidth()\"\n [class]=\"inputBoxClass()\"\n position=\"relative\"\n>\n <ng-content></ng-content>\n</div>\n","import { Component, computed, input, model } from '@angular/core';\nimport { FormValueControl } from '@angular/forms/signals';\nimport { css } from '@emotion/css';\nimport { UniInputBoxComponent } from '../input-box/input-box.component';\n\n@Component({\n selector: 'uni-input',\n imports: [UniInputBoxComponent],\n templateUrl: './input.component.html',\n})\nexport class UniInputComponent implements FormValueControl<string> {\n // --- REQUIRED SIGNALS (populated by FormValueControl) ---\n readonly value = model<string>('');\n readonly disabled = input(false);\n readonly touched = model(false);\n readonly invalid = input(false);\n readonly dirty = input(false);\n\n // --- CONFIGURATION ---\n label = input.required<string>();\n placeholder = input('');\n\n // Only show errors if the user has actually interacted with the field\n protected readonly showError = computed(\n () => this.invalid() && (this.touched() || this.dirty())\n );\n\n markAsTouched() {\n this.touched.set(true);\n }\n\n inputClass = css({});\n}\n","<uni-input-box [error]=\"showError()\">\n <ng-content select=\"pre-input\" />\n <input\n [value]=\"value()\"\n (input)=\"value.set($any($event.target).value)\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n (blur)=\"markAsTouched()\"\n [class]=\"inputClass\"\n />\n <ng-content select=\"post-input\" />\n</uni-input-box>\n","import { Component, computed, input } from '@angular/core';\nimport { css } from '@emotion/css';\nimport type { AbsoluteSize } from '@uni-design-system/uni-core';\n\n@Component({\n selector: 'uni-json-view',\n imports: [],\n templateUrl: './json-view.component.html',\n})\nexport class UniJsonViewComponent {\n json = input<unknown>();\n rows = input<number>(6);\n fontSize = input<AbsoluteSize | string>('medium');\n width = input<string | number>('100%');\n selectOnClick = input<boolean>(true);\n\n jsonString = computed(() => JSON.stringify(this.json(), null, 2));\n\n className = computed(() =>\n css({\n fontSize: this.fontSize(),\n width: this.width(),\n })\n );\n\n selectContents(jsonArea: HTMLTextAreaElement) {\n if (!this.selectOnClick()) return;\n jsonArea.select();\n }\n}\n","<textarea\n #jsonArea\n (click)=\"selectContents(jsonArea)\"\n [class]=\"className()\"\n [rows]=\"rows()\"\n >{{ jsonString() }}</textarea\n>\n","/**\n * UniJsonViewComponent Barrel File\n *\n * This file exports all public-facing elements of the json-view component.\n */\n\nexport { UniJsonViewComponent } from './json-view.component';\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, ElementRef, HostBinding, inject, input, TemplateRef } from '@angular/core';\nimport { css } from '@emotion/css';\n\nimport { UniBoxComponent } from '../../layout';\nimport { UniTextComponent } from '../../text';\nimport { UniSymbolComponent } from '../../symbol';\nimport type {\n ContainerColorToken,\n OptionalAlignItems,\n OptionalDisplay,\n OptionalFlexDirection,\n OptionalSize,\n} from '@uni-design-system/uni-core';\n\n@Component({\n selector: 'div[uni-menu-item], div[menu-item]',\n standalone: true,\n imports: [UniTextComponent, UniSymbolComponent, UniBoxComponent, NgTemplateOutlet],\n templateUrl: './menu-item.component.html',\n styles: [\n `\n :host:focus {\n background: #ccc;\n color: #fff;\n }\n\n :host.disabled {\n color: #ddd;\n pointer-events: none;\n }\n `,\n ],\n})\nexport class UniMenuItemComponent<T = any> extends UniBoxComponent {\n private _elementRef = inject(ElementRef);\n\n override display = input<OptionalDisplay>('flex');\n override flexDirection = input<OptionalFlexDirection>('row');\n override alignItems = input<OptionalAlignItems>('center');\n override paddingHorizontal = input<OptionalSize>('md');\n override gap = input<OptionalSize>('md');\n\n label = input<string>();\n template = input<TemplateRef<T>>();\n context = input<T>();\n symbolName = input<string>();\n active = input<boolean>();\n hoverColor = input<ContainerColorToken>('primary-container');\n disabled = input<boolean>(false);\n\n @HostBinding('class') get className() {\n return css([\n {\n cursor: 'pointer',\n transition: 'all 0.35s ease',\n height: 38,\n\n '&:hover': {\n ...this.theme.colorPair(this.hoverColor()),\n },\n },\n ]);\n }\n\n focus() {\n this._elementRef.nativeElement.focus();\n }\n}\n","@let tpl = template();\n@let symbol = symbolName();\n@if (symbol) {\n <Symbol [name]=\"symbol\"></Symbol>\n}\n<div box-layout [grow]=\"1\">\n @if (tpl) {\n <ng-container [ngTemplateOutlet]=\"tpl\" [ngTemplateOutletContext]=\"context()\"></ng-container>\n } @else {\n <Text role=\"label\" display=\"block\" [nowrap]=\"true\">\n {{ label() }}\n </Text>\n }\n</div>\n@if (active()) {\n <Symbol name=\"check\"></Symbol>\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { css } from '@emotion/css';\nimport { Placement } from '@floating-ui/dom';\n\nimport { UniMenuItemComponent } from './menu-item/menu-item.component';\nimport { MenuItem } from './menu-item/menu-item.model';\nimport { UniDropdownComponent } from '../dropdown';\n\n@Component({\n selector: 'Menu, uni-menu',\n standalone: true,\n imports: [UniMenuItemComponent, UniDropdownComponent],\n changeDetection: ChangeDetectionStrategy.OnPush, // Crucial for zoneless\n template: `\n <div #trigger [class]=\"TriggerClassName\">\n <ng-content></ng-content>\n </div>\n\n @if (menuItems()) {\n <Dropdown [trigger]=\"trigger\" [placement]=\"placement()\" paddingVertical=\"xs\" #dropdown>\n @for (item of menuItems(); track item) {\n <div\n menu-item\n [label]=\"item.label\"\n [symbolName]=\"item.symbolName\"\n [active]=\"activeItem() === item\"\n [template]=\"item.template\"\n [context]=\"item.context\"\n (click)=\"handleMenuItemClick(item, dropdown)\"\n ></div>\n }\n </Dropdown>\n }\n `,\n})\nexport class UniMenuComponent {\n private cdr = inject(ChangeDetectorRef);\n\n // Modern Signal Inputs for perfect Zoneless tracking\n menuItems = input.required<MenuItem[]>();\n activeItem = input<MenuItem>();\n placement = input<Placement>('bottom-start');\n\n // Modern Signal Output\n menuItemClicked = output<MenuItem>();\n\n TriggerClassName = css({ display: 'inline-block' });\n\n @HostBinding('class') get className() {\n return css({\n margin: 'unset',\n padding: 'unset',\n });\n }\n\n handleMenuItemClick(item: MenuItem, dropdown: UniDropdownComponent) {\n if (item.action) {\n item.action();\n }\n\n this.menuItemClicked.emit(item);\n dropdown.hideDropdown();\n\n // Explicitly request a render tick if item.action() updated any internal state\n this.cdr.markForCheck();\n }\n}\n","import { Component, effect, HostBinding, input, output } from '@angular/core';\nimport { css } from '@emotion/css';\n\nimport { Option } from '../../cdk';\nimport type { NullableSize } from '@uni-design-system/uni-core';\nimport { UniBoxComponent } from '../layout';\nimport { UniCheckboxComponent } from '../checkbox/checkbox.component';\n\n@Component({\n selector: 'uni-multi-select, MultiSelect',\n imports: [UniCheckboxComponent, UniBoxComponent],\n templateUrl: './multi-select.component.html',\n})\nexport class UniMultiSelectComponent<T = unknown> {\n // Data Inputs\n options = input<Option<T>[]>([]);\n selections = input<T[] | null | undefined>(undefined);\n updates = output<T[] | undefined>();\n\n // Styling Inputs\n flexDirection = input<'row' | 'row-reverse' | 'column' | 'column-reverse'>('column');\n checkboxGap = input<NullableSize | undefined>('sm');\n\n optionsWithSelections: Option<T>[] = [];\n values: unknown[] = [];\n\n @HostBinding('class') className = css({ display: 'contents' });\n\n constructor() {\n effect(() => {\n this.values = this.selections() || [];\n this.optionsWithSelections = this.options().map((option) => ({\n ...option,\n selected: this.values.includes(option.value),\n }));\n });\n }\n\n handleCheck(checked: boolean, value: T) {\n const selections = this.selections();\n\n if (!selections && !checked) return;\n\n if (selections && !checked) {\n const filteredSelections = selections.filter((item) => item != value);\n const isEmpty = filteredSelections.length === 0;\n this.updates.emit(isEmpty ? undefined : filteredSelections);\n return;\n }\n\n if (checked) {\n this.updates.emit([...(selections || []), value]);\n return;\n }\n }\n\n selectAll() {\n const allValues = this.options().map((option) => option.value);\n this.updates.emit(allValues);\n }\n\n deselectAll() {\n this.updates.emit(undefined);\n }\n\n optionWrapper = css({\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n });\n}\n","<div\n box-layout\n display=\"flex\"\n [flexDirection]=\"flexDirection()\"\n [gap]=\"checkboxGap()\"\n>\n @for (option of options(); track option) {\n <div [class]=\"optionWrapper\">\n <uni-checkbox\n [label]=\"option.label\"\n [checked]=\"values.indexOf(option.value) > -1\"\n (checkedChange)=\"handleCheck($event, option.value)\"\n variant=\"primary\"\n >\n </uni-checkbox>\n </div>\n }\n</div>\n","import {\n Component,\n computed,\n effect,\n HostBinding,\n input,\n model,\n signal,\n} from '@angular/core';\nimport { FormValueControl } from '@angular/forms/signals';\nimport { css } from '@emotion/css';\nimport { Option, type Options } from '../../cdk';\nimport { removeInputPlatformStyling } from '@uni-design-system/uni-core';\nimport { UniBoxComponent, UniRowComponent, UniStackComponent } from '../layout';\nimport { UniButtonComponent } from '../button/button.component';\nimport { UniDividerComponent } from '../divider';\nimport { UniDropdownComponent } from '../dropdown/dropdown.component';\nimport { UniSymbolComponent } from '../symbol';\nimport { UniTextComponent } from '../text/text.component';\nimport { BaseComponent, COMPONENT_NAME } from '../base/base.component';\nimport { UniCheckboxComponent } from '../checkbox/checkbox.component';\nimport { UniInputBoxComponent } from '../input-box/input-box.component';\nimport { UniMultiSelectDropdownOptions } from './multi-select-dropdown.model';\n\n@Component({\n selector: 'uni-multi-select-dropdown, MultiSelectDropdown',\n imports: [\n UniCheckboxComponent,\n UniBoxComponent,\n UniDropdownComponent,\n UniStackComponent,\n UniDividerComponent,\n UniButtonComponent,\n UniTextComponent,\n UniSymbolComponent,\n UniRowComponent,\n UniInputBoxComponent,\n ],\n templateUrl: './multi-select-dropdown.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'multiSelectDropdown' }],\n})\nexport class UniMultiSelectDropdownComponent<T = unknown>\n extends BaseComponent<UniMultiSelectDropdownOptions>\n implements FormValueControl<T[]>\n{\n @HostBinding('class') className = css({ display: 'contents' });\n\n // --- REQUIRED SIGNALS (populated by FormValueControl) ---\n readonly value = model<T[]>([]);\n readonly disabled = input(false);\n readonly touched = model(false);\n readonly invalid = input(false);\n readonly dirty = input(false);\n\n // --- CONFIGURATION ---\n readonly options = input.required<Options<T>>();\n readonly placeholder = input<string>('');\n\n protected readonly query = signal('');\n\n protected readonly filteredOptions = computed<Options<T>>(() => {\n const filterText = this.query().toLowerCase();\n return this.options().filter((opt) => opt.label.toLowerCase().includes(filterText));\n });\n\n // Derived display string\n readonly selectedLabelsText = computed(() => {\n const selections = this.value();\n const allOptions = this.options();\n\n // Find labels for each selected ID\n const labels = selections\n .map((value) => allOptions.find((opt) => opt.value === value)?.label)\n .filter((label) => !!label); // Remove undefined if an ID isn't found\n\n return labels.length > 0 ? labels.join(', ') : this.placeholder();\n });\n\n protected readonly showError = computed(\n () => this.invalid() && (this.touched() || this.dirty())\n );\n\n protected readonly textColor = computed(() => {\n return this.selectedLabelsText() === this.placeholder()\n ? this.componentOptions().placeholderTextColor\n : this.componentOptions().textColor;\n });\n\n triggerClass = css({\n all: 'unset',\n display: 'block',\n cursor: 'pointer',\n width: '100%',\n\n '&:focus > :first-child > :first-child': {\n outline: this.componentOptions().focusOutline,\n outlineOffset: this.componentOptions().focusOutlineOffset,\n },\n });\n\n searchInputClass!: string;\n\n constructor() {\n super();\n\n effect(() => {\n this.searchInputClass = css({\n ...removeInputPlatformStyling,\n ...this.theme.border(this.componentOptions().searchInputBorder),\n ...this.theme.radius(this.componentOptions().searchInputBorderRadius),\n paddingBlock: 4,\n paddingInline: 8,\n width: 'auto',\n\n '&:focus': {\n outline: this.componentOptions().focusOutline,\n outlineOffset: this.componentOptions().focusOutlineOffset,\n },\n });\n });\n }\n\n selectAll() {\n if (this.disabled()) return;\n\n this.touched.set(true);\n const allValues = this.options().map((option) => option.value);\n this.value.set(allValues);\n }\n\n deselectAll() {\n if (this.disabled()) return;\n\n this.touched.set(true);\n this.value.set([]);\n }\n\n protected isOptionSelected(option: Option<T>) {\n return computed(() => this.value().includes(option.value));\n }\n\n toggleOption(option: Option<T>, checked: boolean) {\n if (this.disabled()) return;\n\n this.touched.set(true);\n const { value } = option;\n this.value.update((current) => {\n if (checked) {\n // Add selection if not already present\n return current.includes(value) ? current : [...current, value];\n } else {\n // Remove selection\n return current.filter((item) => item !== value);\n }\n });\n }\n}\n","<button\n [class]=\"triggerClass\"\n #trigger\n [style.cursor]=\"disabled() ? 'default' : 'pointer'\"\n (click)=\"!disabled() && touched.set(true)\"\n>\n <uni-input-box [error]=\"showError()\" [disabled]=\"disabled()\">\n <div\n row-layout\n alignItems=\"center\"\n justifyContent=\"space-between\"\n [fullWidth]=\"true\"\n [minWidth]=\"0\"\n paddingLeft=\"sm\"\n >\n <Text\n display=\"block\"\n [typeface]=\"componentOptions().textRole\"\n [color]=\"textColor()\"\n [ellipsis]=\"true\"\n [style.flex-grow]=\"1\"\n >{{ selectedLabelsText() }}</Text\n >\n <Symbol name=\"keyboard_arrow_down\" [style.flex-shrink]=\"0\"></Symbol>\n </div>\n </uni-input-box>\n</button>\n<uni-dropdown\n #dropdown\n [trigger]=\"trigger\"\n (dropdownShowing)=\"$event && searchInput.focus()\"\n (dropdownHiding)=\"$event && trigger.focus()\"\n>\n <div box-layout gap=\"xs\" padding=\"xs\">\n <input\n #searchInput\n type=\"text\"\n [class]=\"searchInputClass\"\n [value]=\"query()\"\n (input)=\"query.set($any($event.target).value)\"\n placeholder=\"Search...\"\n (click)=\"$event.stopPropagation()\"\n [disabled]=\"disabled()\"\n />\n </div>\n\n <uni-divider [border]=\"componentOptions().dividerBorder\" />\n\n <div stack-layout gap=\"xs\" padding=\"xs\">\n @for (option of filteredOptions(); track option.value) {\n <uni-checkbox\n [label]=\"option.label\"\n [checked]=\"isOptionSelected(option)()\"\n (checkedChange)=\"toggleOption(option, $event)\"\n variant=\"primary\"\n [disabled]=\"disabled()\"\n >\n </uni-checkbox>\n }\n </div>\n\n <uni-divider [border]=\"componentOptions().dividerBorder\" />\n\n <div row-layout gap=\"xs\" justifyContent=\"space-around\" padding=\"xs\">\n <button\n text-button\n (click)=\"dropdown.hideDropdown()\"\n size=\"sm\"\n variant=\"ghost\"\n >\n Done\n </button>\n </div>\n</uni-dropdown>\n","import { Component, computed, HostBinding, input } from '@angular/core';\nimport { css } from '@emotion/css';\nimport type { Variant } from '@uni-design-system/uni-core';\nimport { BaseComponent } from '../base';\nimport { COMPONENT_NAME } from '../base/base.component';\nimport { UniTextComponent } from '../text';\nimport type { UniNotificationBadgeOptions } from './notification-badge.model';\n\n@Component({\n selector: 'uni-notification-badge',\n imports: [UniTextComponent],\n templateUrl: './notification-badge.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'notificationBadge' }],\n})\nexport class UniNotificationBadgeComponent extends BaseComponent<UniNotificationBadgeOptions> {\n count = input<number | undefined>(undefined);\n maxCount = input<number>(99);\n badgeVariant = input<'dot' | 'count' | 'pill'>('count');\n color = input<Variant | undefined>(undefined);\n position = input<'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'>('top-right');\n show = input<boolean>(true);\n\n displayValue = computed(() => {\n const count = this.count();\n const maxCount = this.maxCount();\n const variant = this.badgeVariant();\n\n if (variant === 'dot') {\n return '';\n }\n\n if (count === undefined || count <= 0) {\n return '';\n }\n\n if (count > maxCount) {\n return `${maxCount}+`;\n }\n\n return count.toString();\n });\n\n shouldShow = computed(() => {\n const show = this.show();\n const count = this.count();\n const variant = this.badgeVariant();\n\n if (!show) return false;\n\n if (variant === 'dot') return true;\n\n return count !== undefined && count > 0;\n });\n\n @HostBinding('class') get className() {\n const variant = this.badgeVariant();\n const color = this.color();\n const position = this.position();\n const offset = this.componentOptions().offset + 'px';\n\n const positionStyles = {\n 'top-right': { top: offset, right: offset },\n 'top-left': { top: offset, left: offset },\n 'bottom-right': { bottom: offset, right: offset },\n 'bottom-left': { bottom: offset, left: offset },\n }[position];\n\n const variantStyles = {\n dot: {\n width: '8px',\n height: '8px',\n borderRadius: '50%',\n minWidth: 'unset',\n },\n count: {\n width: 20,\n height: 20,\n borderRadius: 10,\n },\n pill: {\n minWidth: '24px',\n height: '20px',\n borderRadius: '10px',\n padding: '0 8px',\n },\n }[variant];\n\n return css({\n position: 'relative',\n display: 'inline-block',\n\n '& .notification-badge-indicator': {\n position: 'absolute',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n ...this.theme.getContainerColors(color || 'warn'),\n zIndex: 1,\n\n ...positionStyles,\n ...variantStyles,\n },\n });\n }\n}\n","<ng-content></ng-content>\n@if (shouldShow()) {\n<div class=\"notification-badge-indicator\">\n <uni-text\n typeface=\"overline\"\n align=\"center\"\n [style.max-width]=\"badgeVariant() !== 'pill' ? (displayValue().length * 5 + 'px') : ''\"\n >{{ displayValue() }}</uni-text\n >\n</div>\n}\n","import {\n AfterViewInit,\n Component,\n computed,\n effect,\n ElementRef,\n EventEmitter,\n input,\n model,\n Output,\n signal,\n ViewChild,\n} from '@angular/core';\nimport { css, keyframes } from '@emotion/css';\n\nimport { fadeOut, type Variant } from '@uni-design-system/uni-core';\n\nimport { BaseComponent } from '../../base';\nimport { COMPONENT_NAME } from '../../base/base.component';\nimport { UniIconButtonComponent } from '../../icon-button';\nimport { UniIconComponent } from '../../icon';\nimport { IconName } from '../../icon/icon.record';\nimport { UniBoxComponent, UniRowComponent } from '../../layout';\nimport { UniSymbolComponent } from '../../symbol';\nimport { UniTextComponent } from '../../text';\nimport type { UniAlertOptions } from './alert.model';\n\n@Component({\n selector: 'uni-alert, Alert',\n standalone: true,\n imports: [\n UniRowComponent,\n UniIconButtonComponent,\n UniTextComponent,\n UniBoxComponent,\n UniIconComponent,\n UniSymbolComponent,\n ],\n templateUrl: './alert.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'alert' }],\n})\nexport class UniAlertComponent extends BaseComponent<UniAlertOptions> implements AfterViewInit {\n show = model<boolean>();\n iconName = input<IconName | undefined>(undefined);\n symbolName = input<string | undefined>(undefined);\n useVariant = input<boolean>(false);\n\n @Output() showing = new EventEmitter<boolean>();\n\n @ViewChild('alert') alertRef?: ElementRef<HTMLDialogElement>;\n\n private readonly alertState = signal<'open' | 'closing' | 'closed'>('closed');\n\n private readonly effectiveVariant = computed<Variant>(\n () => this.variant() || this.componentOptions().defaultVariant\n );\n\n protected readonly alertClass = computed(() =>\n css({\n ...this.theme.getContainerColors(this.effectiveVariant(), this.useVariant()),\n ...this.theme.radius(this.componentOptions().borderRadius),\n ...this.theme.border(this.effectiveVariant()),\n ...this.theme.boxShadow(this.componentOptions().elevation),\n\n transition: `all ${this.componentOptions().transitionSpeed}s ease-in-out`,\n transitionBehavior: 'allow-discrete',\n opacity: 1,\n top: this.componentOptions().topPosition,\n\n '&[open]': {\n '@starting-style': {\n top: 0,\n opacity: 0,\n },\n },\n\n '&[closing]': {\n animation: `${this.fadeOut} 0.3s forwards`,\n },\n })\n );\n\n private readonly fadeOut = keyframes({ ...fadeOut });\n\n constructor() {\n super();\n effect(() => {\n if (this.show() === true) {\n this.open();\n } else if (this.show() === false) {\n this.close();\n }\n });\n }\n\n ngAfterViewInit() {\n this.alertRef?.nativeElement.addEventListener('animationend', (e) => {\n if (e.animationName === this.fadeOut.toString()) {\n this.alertRef?.nativeElement.close();\n this.showing.emit(false);\n this.alertState.set('closed');\n }\n });\n }\n\n open() {\n if (!this.alertRef?.nativeElement) return;\n\n this.alertRef.nativeElement.removeAttribute('closing');\n this.alertRef.nativeElement.show();\n this.alertState.set('open');\n this.showing.emit(true);\n }\n\n close() {\n if (!this.alertRef?.nativeElement) return;\n\n this.alertRef.nativeElement.setAttribute('closing', 'true');\n this.alertState.set('closing');\n this.show.set(false);\n }\n\n protected readonly effectiveIconName = computed<IconName | undefined>(() => this.iconName());\n}\n","<dialog #alert [class]=\"alertClass()\">\n <div row-layout gap=\"md\">\n @if (iconName() || symbolName()) {\n <div box-layout [height]=\"26\" [width]=\"26\">\n @if (effectiveIconName()) {\n <Icon [name]=\"effectiveIconName()!\" />\n } @else {\n <Symbol [name]=\"symbolName()!\" [opticalSize]=\"26\" />\n }\n </div>\n }\n <Text>\n <ng-content></ng-content>\n </Text>\n <button icon-button (click)=\"close()\" iconName=\"close\" size=\"md\">close</button>\n </div>\n</dialog>\n","import { Component, EventEmitter, input, Input, Output } from '@angular/core';\n\nimport {\n UniDialogButtonsComponent,\n UniDialogComponent,\n UniDialogHeaderComponent,\n} from '../../dialog';\nimport { UniBoxComponent } from '../../layout';\nimport { UniTextComponent } from '../../text';\nimport type { Confirmation } from '../../../cdk/notification';\n\n@Component({\n selector: 'uni-confirmation-dialog, Confirmation',\n standalone: true,\n imports: [\n UniDialogComponent,\n UniDialogHeaderComponent,\n UniBoxComponent,\n UniTextComponent,\n UniDialogButtonsComponent,\n ],\n templateUrl: './confirmation-dialog.component.html',\n})\nexport class ConfirmationDialogComponent {\n show = input(false);\n @Input() confirmation?: Confirmation;\n @Output() showing = new EventEmitter();\n}\n","<dialog uni-dialog [show]=\"show()\" (showing)=\"showing.emit($event)\">\n <div uni-dialog-header>\n {{ confirmation?.title }}\n </div>\n <div box-layout padding=\"md\">\n <Text>\n {{ confirmation?.message }}\n </Text>\n </div>\n <div\n dialog-buttons\n [confirmButtonText]=\"confirmation?.actionLabel\"\n (confirmed)=\"confirmation?.action()\"\n [cancelButtonText]=\"confirmation?.dismissLabel\"\n ></div>\n</dialog>\n","import {\n AfterViewInit,\n Component,\n effect,\n ElementRef,\n EventEmitter,\n input,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { css, keyframes } from '@emotion/css';\nimport { useTimer } from '../../../cdk';\nimport { Z_INDEX } from '@uni-design-system/uni-core';\nimport { BaseComponent } from '../../base';\nimport { COMPONENT_NAME } from '../../base/base.component';\nimport { UniButtonComponent } from '../../button';\nimport { UniIconButtonComponent } from '../../icon-button';\nimport { UniIconComponent } from '../../icon';\nimport { IconName } from '../../icon/icon.record';\nimport { UniBoxComponent, UniRowComponent } from '../../layout';\nimport { UniSymbolComponent } from '../../symbol';\nimport { UniTextComponent } from '../../text';\nimport type { UniSnackbarOptions } from './snackbar.model';\n\n@Component({\n selector: 'uni-snackbar, Snackbar',\n standalone: true,\n imports: [\n UniRowComponent,\n UniBoxComponent,\n UniTextComponent,\n UniIconButtonComponent,\n UniSymbolComponent,\n UniIconComponent,\n UniButtonComponent,\n ],\n templateUrl: './snackbar.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'snackbar' }],\n})\nexport class UniSnackbarComponent\n extends BaseComponent<UniSnackbarOptions>\n implements AfterViewInit, OnChanges\n{\n timer = useTimer();\n\n snackbarClass?: string;\n\n @Input() show?: boolean;\n iconName = input<IconName>();\n symbolName = input<string>();\n timeout = input<number | string | 'disabled'>();\n actionLabel = input<string>();\n\n useVariant = input<boolean>(false);\n\n @Output() action = new EventEmitter();\n @Output() showing = new EventEmitter();\n\n @ViewChild('snackbar') snackbarRef?: ElementRef;\n\n private get _snackbar(): HTMLDialogElement | undefined {\n return this.snackbarRef?.nativeElement;\n }\n\n constructor() {\n super();\n\n effect(() => {\n this.snackbarClass = css({\n ...this.theme.getContainerColors(this.variant() || 'primary', this.useVariant()),\n ...this.theme.radius('sm'),\n ...this.theme.border(this.variant() || 'primary'),\n ...this.theme.boxShadow('dialog'),\n padding: 0,\n transition: `all ${this.componentOptions().transitionDelay} ease-in-out`,\n transitionBehavior: 'allow-discrete',\n opacity: 1,\n bottom: this.componentOptions().bottomPosition,\n zIndex: Z_INDEX.dialog,\n position: 'fixed',\n\n '&[open]': {\n '@starting-style': {\n bottom: 0,\n opacity: 0,\n },\n },\n\n '&[closing]': {\n animation: `${this.fadeOut} 0.3s forwards`,\n },\n });\n });\n }\n\n fadeOut = keyframes({\n '0% ': {\n opacity: 1,\n },\n '100%': {\n opacity: 0,\n },\n });\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['show'] && changes['show'].currentValue) {\n this.open();\n } else {\n this.close();\n }\n }\n\n ngAfterViewInit() {\n this._snackbar?.addEventListener('animationend', (e) => {\n if (e.animationName == this.fadeOut) {\n this._snackbar?.close();\n this.showing.emit(false);\n }\n });\n }\n\n private get _timeout(): number | undefined {\n const timeout = this.timeout();\n if (timeout === 'disabled') return undefined;\n\n return typeof timeout === 'string'\n ? parseFloat(timeout)\n : timeout || this.componentOptions().autoCloseDelay;\n }\n\n open() {\n this._snackbar?.removeAttribute('closing');\n this._snackbar?.show();\n this.show = true;\n this.showing.emit(true);\n\n if (this._timeout) this.timer.start(this._timeout, () => this.close());\n }\n\n close() {\n this._snackbar?.setAttribute('closing', 'true');\n this.show = false;\n }\n\n protected pauseTimer() {\n this.timer.pause();\n }\n\n protected resumeTimer() {\n this.timer.resume();\n }\n}\n","@let icon = iconName();\n@let symbol = symbolName();\n<dialog\n #snackbar\n [class]=\"snackbarClass\"\n (mouseenter)=\"pauseTimer()\"\n (mouseleave)=\"resumeTimer()\"\n (focusin)=\"pauseTimer()\"\n (focusout)=\"resumeTimer()\"\n>\n <Row alignItems=\"center\">\n @if (icon || symbol) {\n <Box [height]=\"26\" [width]=\"26\" paddingLeft=\"sm\">\n @if (icon) {\n <Icon [name]=\"icon\"></Icon>\n } @else if (symbol) {\n <Symbol [name]=\"symbol\" [opticalSize]=\"26\"></Symbol>\n }\n </Box>\n }\n <Box padding=\"sm\">\n <Text>\n <ng-content></ng-content>\n </Text>\n </Box>\n <Box paddingRight=\"sm\">\n @if (!actionLabel()) {\n <button icon-button (click)=\"close()\" iconName=\"close\" size=\"md\">Close</button>\n } @else {\n <button text-button variant=\"ghost\" (click)=\"this.action.emit(); close()\">\n {{ actionLabel() }}\n </button>\n }\n </Box>\n </Row>\n</dialog>\n","import { Component, computed, effect, inject, signal } from '@angular/core';\nimport { Alert, Confirmation, NotificationService, Snackbar } from '../../../cdk';\nimport { UniAlertComponent } from '../alert/alert.component';\nimport { ConfirmationDialogComponent } from '../confirmation-dialog/confirmation-dialog.component';\nimport { UniSnackbarComponent } from '../snackbar/snackbar.component';\n\n@Component({\n selector: 'uni-notifications, Notifications',\n standalone: true,\n imports: [UniAlertComponent, UniSnackbarComponent, ConfirmationDialogComponent],\n templateUrl: './notifications.component.html',\n})\nexport class NotificationsComponent {\n notifications = inject(NotificationService);\n\n private readonly alertState = signal<Alert | undefined>(undefined);\n private readonly snackbarState = signal<Snackbar | undefined>(undefined);\n private readonly confirmationState = signal<Confirmation | undefined>(undefined);\n\n // Computed values for the show states\n protected readonly showAlert = computed(() => !!this.alertState());\n protected readonly showSnackbar = computed(() => !!this.snackbarState());\n protected readonly showConfirmation = computed(() => !!this.confirmationState());\n\n // Expose the alert state\n protected readonly alert = computed(() => this.alertState());\n protected readonly snackbar = computed(() => this.snackbarState());\n protected readonly confirmation = computed(() => this.confirmationState());\n\n constructor() {\n effect(() => {\n this.alertState.set(this.notifications.alert());\n });\n effect(() => {\n this.snackbarState.set(this.notifications.snackbar());\n });\n effect(() => {\n this.confirmationState.set(this.notifications.confirmation());\n });\n }\n\n handleConfirmationShowingEvent(showing: boolean) {\n if (!showing) this.notifications.hideConfirmation();\n }\n\n handleSnackbarShowingEvent(showing: boolean) {\n if (!showing) this.notifications.hideSnackbar();\n }\n\n handleAlertShowingEvent(showing: boolean) {\n if (!showing) this.notifications.hideAlert();\n }\n}\n","<Alert\n [show]=\"showAlert()\"\n (showing)=\"handleAlertShowingEvent($event)\"\n [variant]=\"alert()?.variant || 'primary'\"\n [iconName]=\"alert()?.iconName\"\n [symbolName]=\"alert()?.symbolName\"\n >{{ alert()?.message }}</Alert\n>\n\n<Snackbar\n [show]=\"showSnackbar()\"\n (showing)=\"handleSnackbarShowingEvent($event)\"\n [variant]=\"snackbar()?.variant || 'primary'\"\n [actionLabel]=\"snackbar()?.actionLabel\"\n (action)=\"snackbar()?.action?.()\"\n [timeout]=\"snackbar()?.timeout\"\n [iconName]=\"snackbar()?.iconName\"\n [symbolName]=\"snackbar()?.symbolName\"\n >{{ snackbar()?.message }}</Snackbar\n>\n\n<Confirmation\n [show]=\"showConfirmation()\"\n (showing)=\"handleConfirmationShowingEvent($event)\"\n [confirmation]=\"confirmation()\"\n></Confirmation>\n","import { Component, effect, input } from '@angular/core';\nimport { css } from '@emotion/css';\nimport { type UniDatasource } from '../../cdk';\nimport { BaseComponent } from '../base';\nimport { COMPONENT_NAME } from '../base/base.component';\nimport { UniIconButtonComponent } from '../icon-button/icon-button.component';\nimport { UniRowComponent } from '../layout';\nimport { UniTextComponent } from '../text/text.component';\nimport type { UniPaginatorOptions } from './paginator.model';\n\n@Component({\n selector: 'uni-paginator, Paginator',\n imports: [UniRowComponent, UniIconButtonComponent, UniTextComponent],\n templateUrl: './paginator.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'paginator' }],\n standalone: true,\n})\nexport class UniPaginatorComponent<T> extends BaseComponent<UniPaginatorOptions> {\n datasource = input<UniDatasource<T>>();\n initPageSize = input<number>();\n\n showPageSize = input<boolean>(true);\n showPageJumper = input<boolean>(true);\n showPageNumbers = input<boolean>(true);\n\n inputClass!: string;\n pageClass!: string;\n\n constructor() {\n super();\n effect(() => {\n const pageSize = this.initPageSize();\n if (!pageSize) return;\n const ds = this.datasource();\n if (ds) ds.setPageSize(pageSize);\n });\n\n effect(() => {\n this.inputClass = css({\n textAlign: 'center',\n ...this.theme.border(this.componentOptions().inputBorder),\n ...this.theme.radius(this.componentOptions().inputBorderRadius),\n height: 22,\n fontSize: 16,\n padding: '2px 0 0 2px',\n\n '&:focus': {\n outline: 'none',\n },\n });\n\n this.pageClass = css({\n ...this.theme.radius(this.componentOptions().pageBorderRadius),\n padding: 2,\n width: 20,\n display: 'flex',\n justifyContent: 'center',\n cursor: 'pointer',\n border: 'solid 1px transparent',\n\n '&.current': {\n ...this.theme.border(this.componentOptions().currentPageBorder),\n ...this.theme.radius(this.componentOptions().currentPageBorderRadius),\n cursor: 'unset',\n },\n\n '&:hover:not(.current)': {\n backgroundColor: 'rgba(0,0,0,0.1)',\n },\n });\n });\n }\n\n updatePageSize(event: Event) {\n const ds = this.datasource();\n const pageSize = (event.target as HTMLInputElement).value;\n if (ds) ds.setPageSize(parseInt(pageSize));\n }\n\n jumpToPage(event: Event) {\n const ds = this.datasource();\n const page = (event.target as HTMLInputElement).value;\n if (ds) ds.jumpToPage(parseInt(page));\n }\n\n isNumber(page: unknown) {\n return typeof page === 'number';\n }\n}\n","@let ds = datasource();\n@if (ds) {\n <div row-layout alignItems=\"center\" [gap]=\"componentOptions().gap\">\n @if (showPageSize()) {\n <div row-layout alignItems=\"center\" gap=\"sm\" paddingRight=\"sm\">\n <Text [typeface]=\"componentOptions().textRole\">Show</Text>\n <input\n type=\"number\"\n [class]=\"inputClass\"\n (change)=\"updatePageSize($event)\"\n min=\"1\"\n [max]=\"ds.recordCount()\"\n [value]=\"ds.pageSize()\"\n />\n </div>\n }\n\n @if (showPageNumbers()) {\n <button\n icon-button\n variant=\"ghost\"\n size=\"md\"\n symbolName=\"keyboard_double_arrow_left\"\n (click)=\"ds.firstPage()\"\n [disable]=\"ds.disablePrevious()\"\n >\n First Page\n </button>\n\n <button\n icon-button\n variant=\"ghost\"\n size=\"md\"\n symbolName=\"chevron_left\"\n (click)=\"ds.previousPage()\"\n [disable]=\"ds.disablePrevious()\"\n >\n Previous Page\n </button>\n\n @for (page of ds.truncatedPages(); track page) {\n @if (isNumber(page)) {\n <div\n [class]=\"pageClass\"\n [class.current]=\"page === ds.pageIndex() + 1\"\n (click)=\"ds.jumpToPage(page)\"\n >\n <Text [typeface]=\"componentOptions().textRole\" display=\"block\">\n {{ page }}\n </Text>\n </div>\n } @else {\n <div>\n <Text [typeface]=\"componentOptions().textRole\" display=\"block\">\n {{ page }}\n </Text>\n </div>\n }\n }\n\n <button\n icon-button\n variant=\"ghost\"\n size=\"md\"\n symbolName=\"chevron_right\"\n (click)=\"ds.nextPage()\"\n [disable]=\"ds.disableNext()\"\n >\n Next Page\n </button>\n\n <button\n icon-button\n variant=\"ghost\"\n size=\"md\"\n symbolName=\"keyboard_double_arrow_right\"\n (click)=\"ds.lastPage()\"\n [disable]=\"ds.disableNext()\"\n >\n Last Page\n </button>\n }\n\n @if (showPageJumper()) {\n <div row-layout alignItems=\"center\" gap=\"sm\" paddingLeft=\"sm\">\n <Text [typeface]=\"componentOptions().textRole\">Jump to</Text>\n <input\n type=\"number\"\n [class]=\"inputClass\"\n (change)=\"jumpToPage($event)\"\n min=\"1\"\n [max]=\"ds.pageCount()\"\n [value]=\"ds.pageIndex() + 1\"\n />\n </div>\n }\n </div>\n}\n","/**\n * UniPaginatorComponent Barrel File\n *\n * This file exports all public-facing elements of the paginator component.\n */\n\nexport { UniPaginatorComponent } from './paginator.component';\nexport type { UniPaginatorOptions } from './paginator.model';\n","import {\n Component,\n ElementRef,\n inject,\n input,\n OnDestroy,\n OnInit,\n Renderer2,\n viewChild,\n} from '@angular/core';\nimport { css } from '@emotion/css';\nimport { arrow, computePosition, flip, offset, shift } from '@floating-ui/dom';\nimport { Z_INDEX } from '@uni-design-system/uni-core';\nimport { BodyRenderDirective } from '../../directives/body-render/body-render.directive';\nimport { ThemeService } from '../../theming';\nimport { Placement } from '../tooltip/tooltip.types';\n\n@Component({\n selector: 'uni-popover, Popover',\n standalone: true,\n imports: [BodyRenderDirective],\n templateUrl: './popover.component.html',\n})\nexport class UniPopoverComponent implements OnInit, OnDestroy {\n private renderer = inject(Renderer2);\n private theme = inject(ThemeService);\n\n private delay = 500;\n private showing = false;\n private clickListener?: () => void;\n\n placement = input<Placement>();\n autoClose = input(true);\n\n triggerRef = viewChild.required<ElementRef>('trigger');\n popoverRef = viewChild.required<ElementRef>('popover');\n arrowRef = viewChild.required<ElementRef>('arrow');\n\n private get _trigger(): HTMLSpanElement {\n return this.triggerRef().nativeElement.firstChild;\n }\n\n private get _popover(): HTMLDivElement {\n return this.popoverRef().nativeElement;\n }\n\n private get _arrow(): HTMLDivElement {\n return this.arrowRef().nativeElement;\n }\n\n ngOnInit() {\n if (this.autoClose()) {\n this.clickListener = this.renderer.listen('window', 'click', (e: Event) => {\n if (!e.composedPath().includes(this._popover) && this.showing) this.hidePopover();\n });\n }\n }\n\n showPopover() {\n this.setPosition();\n this.renderer.addClass(this._popover, this.showClassName);\n this.showing = true;\n }\n\n hidePopover() {\n this.renderer.removeClass(this._popover, this.showClassName);\n this.showing = false;\n\n setTimeout(() => {\n this.renderer.setStyle(this._popover, 'left', `-1000px`);\n }, this.delay);\n }\n\n togglePopover(event: MouseEvent) {\n if (this.showing) {\n this.hidePopover();\n } else {\n this.showPopover();\n }\n event.stopPropagation();\n }\n\n popoverClassName = css([\n {\n ...this.theme.colorPair('primary-surface'),\n ...this.theme.radius('xs'),\n ...this.theme.boxShadow('raised'),\n ...this.theme.typeface('label'),\n ...this.theme.border('quaternary'),\n padding: '6px 12px',\n width: 'max-content',\n position: 'absolute',\n top: 0,\n left: 0,\n transition: `opacity ${this.delay}ms`,\n opacity: 0,\n zIndex: Z_INDEX.popover,\n },\n ]);\n\n arrowClassName = css({\n position: 'absolute',\n ...this.theme.colorPair('primary-surface'),\n width: 8,\n height: 8,\n transform: 'rotate(45deg)',\n });\n\n private showClassName = css({\n opacity: '1 !important',\n });\n\n private arrowClasses: Record<string, string> = {\n top: css({\n top: '-5px',\n ...this.theme.borderLeft('quaternary'),\n ...this.theme.borderTop('quaternary'),\n }),\n bottom: css({\n bottom: '-5px',\n ...this.theme.borderRight('quaternary'),\n ...this.theme.borderBottom('quaternary'),\n }),\n left: css({\n left: '-5px',\n ...this.theme.borderLeft('quaternary'),\n ...this.theme.borderBottom('quaternary'),\n }),\n right: css({\n right: '-5px',\n ...this.theme.borderRight('quaternary'),\n ...this.theme.borderTop('quaternary'),\n }),\n };\n\n private setPosition() {\n computePosition(this._trigger, this._popover, {\n placement: this.placement(),\n middleware: [offset(7), flip(), shift({ padding: 5 }), arrow({ element: this._arrow })],\n }).then(({ x, y, placement, middlewareData }) => {\n this.renderer.setStyle(this._popover, 'top', `${y}px`);\n this.renderer.setStyle(this._popover, 'left', `${x}px`);\n\n const arrowX = middlewareData.arrow?.x;\n const arrowY = middlewareData.arrow?.y;\n\n const staticSide = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n }[placement.split('-')[0]];\n\n this.renderer.setStyle(this._arrow, 'top', `${arrowY}px`);\n this.renderer.setStyle(this._arrow, 'left', `${arrowX}px`);\n this.renderer.setStyle(this._arrow, 'right', ``);\n this.renderer.setStyle(this._arrow, 'bottom', ``);\n\n if (staticSide) {\n this.renderer.addClass(this._arrow, this.arrowClasses[staticSide]);\n }\n });\n }\n\n ngOnDestroy() {\n if (this.clickListener) {\n this.clickListener();\n }\n }\n}\n","<span #trigger (click)=\"togglePopover($event)\">\n <ng-content select=\"[trigger]\"></ng-content>\n</span>\n<div uniBodyRender #popover [class]=\"popoverClassName\">\n <ng-content></ng-content>\n <div #arrow [class]=\"arrowClassName\"></div>\n</div>\n","/**\n * UniPopoverComponent Barrel File\n *\n * This file exports all public-facing elements of the popover component.\n */\n\nexport { UniPopoverComponent } from './popover.component';\n","import { Component, HostBinding, inject, input } from '@angular/core';\nimport { css } from '@emotion/css';\nimport { ThemeService } from '../../theming';\n\n@Component({\n selector: 'uni-progress-bar, ProgressBar',\n standalone: true,\n imports: [],\n templateUrl: './progress-bar.component.html',\n})\nexport class UniProgressBarComponent {\n theme = inject(ThemeService);\n\n palette = this.theme.colors;\n\n width = input<number>(560);\n height = input<number>(24);\n percent = input<number>(0);\n stroke = 1;\n\n @HostBinding('class') get className() {\n return css([{ display: 'block' }]);\n }\n\n protected readonly Math = Math;\n}\n","<svg [attr.width]=\"width()\" [attr.height]=\"height()\">\n <rect\n [attr.x]=\"stroke\"\n [attr.y]=\"stroke\"\n [attr.width]=\"width() - stroke * 2\"\n [attr.height]=\"height() - stroke * 2\"\n [attr.fill]=\"palette()['primary-surface']\"\n [attr.stroke]=\"palette()['on-background-variant']\"\n [attr.stroke-width]=\"stroke\"\n [attr.ry]=\"height() / 2 - stroke\"\n [attr.rx]=\"height() / 2 - stroke\"\n />\n\n <rect\n [attr.x]=\"stroke\"\n [attr.y]=\"stroke\"\n [attr.width]=\"\n Math.max(height() - stroke * 2, (percent() / 100) * width() - stroke * 2)\n \"\n [attr.height]=\"height() - stroke * 2\"\n [attr.fill]=\"\n percent() === 100 ? palette()['secondary'] : palette()['secondary-surface']\n \"\n [attr.stroke]=\"palette()['on-background-variant']\"\n [attr.stroke-width]=\"stroke\"\n [attr.ry]=\"height() / 2 - stroke\"\n [attr.rx]=\"height() / 2 - stroke\"\n />\n</svg>\n","/**\n * UniProgressBarComponent Barrel File\n *\n * This file exports all public-facing elements of the progress-bar component.\n */\n\nexport { UniProgressBarComponent } from './progress-bar.component';\n","import { Component, computed, HostBinding, input } from '@angular/core';\nimport { css, keyframes } from '@emotion/css';\nimport { BaseComponent, COMPONENT_NAME } from '../base/base.component';\n\n@Component({\n selector: 'uni-progress-gauge, ProgressGauge',\n standalone: true,\n imports: [],\n templateUrl: './progress-gauge.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'progressGauge' }],\n})\nexport class UniProgressGaugeComponent extends BaseComponent {\n percent = input<number>(0);\n\n textStyle = computed(() => {\n const theme = this.componentTheme();\n return theme.fixed && theme.fixed['textFill'];\n });\n\n private progress = keyframes({\n '0%': { strokeDasharray: '0 100' },\n });\n\n @HostBinding('class') get className() {\n return css({\n display: 'block',\n\n '& .circular-chart': {\n display: 'block',\n },\n\n '& .circle-bg': {\n fill: 'none',\n strokeWidth: 3.8,\n },\n\n '& .circle': {\n fill: 'none',\n strokeWidth: 3.8,\n animation: `${this.progress} 1s ease-out forwards`,\n },\n\n '& .percentage': {\n fontFamily: 'sans-serif',\n fontSize: '0.5em',\n textAnchor: 'middle',\n },\n });\n }\n}\n","<svg\n viewBox=\"0 0 36 36\"\n class=\"circular-chart\"\n [style.height]=\"style()['height']\"\n>\n <path\n class=\"circle-bg\"\n [attr.stroke]=\"style()['backgroundColor']\"\n d=\"M18 2.0845\n a 15.9155 15.9155 0 0 1 0 31.831\n a 15.9155 15.9155 0 0 1 0 -31.831\"\n />\n <path\n class=\"circle\"\n [attr.stroke]=\"style()['color']\"\n [attr.stroke-dasharray]=\"percent() + ', 100'\"\n d=\"M18 2.0845\n a 15.9155 15.9155 0 0 1 0 31.831\n a 15.9155 15.9155 0 0 1 0 -31.831\"\n />\n <text x=\"18.5\" y=\"20.82\" class=\"percentage\" [style.fill]=\"textStyle()\">\n {{ percent() }}%\n </text>\n</svg>\n","/**\n * UniProgressGaugeComponent Barrel File\n *\n * This file exports all public-facing elements of the progress-gauge component.\n */\n\nexport { UniProgressGaugeComponent } from './progress-gauge.component';\n","import { Component, computed, effect, input, model } from '@angular/core';\nimport { FormValueControl } from '@angular/forms/signals';\nimport { css } from '@emotion/css';\nimport type { ColorToken } from '@uni-design-system/uni-core';\nimport { BaseComponent } from '../base';\nimport { COMPONENT_NAME } from '../base/base.component';\nimport { UniTextComponent } from '../text/text.component';\nimport type { UniRadioOption, UniRadioOptions } from './radio.model';\n\n@Component({\n selector: 'uni-radio, Radio',\n standalone: true,\n imports: [UniTextComponent],\n templateUrl: './radio.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'radio' }],\n})\nexport class UniRadioComponent\n extends BaseComponent<UniRadioOptions>\n implements FormValueControl<string>\n{\n radioGroupClass!: string;\n radioOptionClass!: string;\n radioInputClass!: string;\n\n // --- REQUIRED SIGNALS (populated by FormValueControl) ---\n readonly value = model<string>('');\n readonly disabled = input(false);\n readonly touched = model(false);\n readonly invalid = input(false);\n readonly dirty = input(false);\n\n // --- CONFIGURATION ---\n readonly options = input<UniRadioOption[]>([]);\n readonly label = input<string>();\n readonly name = input<string>('radio-group');\n\n // Only show errors if the user has actually interacted with the field\n protected readonly showError = computed(\n () => this.invalid() && (this.touched() || this.dirty())\n );\n\n markAsTouched() {\n this.touched.set(true);\n }\n\n constructor() {\n super();\n\n effect(() => {\n const radioSize = this.componentOptions().size || 20;\n const outerCircleSize = radioSize;\n const innerCircleSize = radioSize * 0.6;\n const innerCircleOffset = (radioSize - innerCircleSize) / 2;\n\n this.radioGroupClass = css({\n display: 'flex',\n flexDirection: 'column',\n gap: 12,\n });\n\n this.radioOptionClass = css({\n userSelect: 'none',\n cursor: this.disabled() ? 'not-allowed' : 'pointer',\n display: 'flex',\n alignItems: 'center',\n gap: 8,\n opacity: this.disabled() ? 0.6 : 1,\n\n '& .radio-button': {\n width: outerCircleSize,\n height: outerCircleSize,\n borderRadius: '50%',\n border: `2px solid ${this.disabled() ? '#ccc' : '#d0d0d0'}`,\n position: 'relative',\n transition: 'all 0.3s ease',\n backgroundColor: '#fff',\n flexShrink: 0,\n },\n\n '& .radio-inner': {\n width: innerCircleSize,\n height: innerCircleSize,\n borderRadius: '50%',\n backgroundColor: this.getThemeColor(this.variant()),\n position: 'absolute',\n top: innerCircleOffset,\n left: innerCircleOffset,\n transform: 'scale(0)',\n transition: 'all 0.3s ease',\n },\n\n '&:hover .radio-button': this.disabled()\n ? {}\n : {\n borderColor: this.getThemeColor(this.variant()),\n },\n\n '&.disabled': {\n cursor: 'not-allowed',\n opacity: 0.6,\n\n '& .radio-button': {\n borderColor: '#ccc',\n },\n },\n });\n\n this.radioInputClass = css({\n position: 'absolute',\n zIndex: -1,\n width: 0,\n height: 0,\n opacity: 0,\n\n '&:checked + .radio-button': {\n borderColor: this.getThemeColor(this.variant()),\n },\n\n '&:checked + .radio-button .radio-inner': {\n transform: 'scale(1)',\n },\n\n '&:focus + .radio-button': {\n outline: `2px solid ${this.getThemeColor(this.variant())}`,\n outlineOffset: '2px',\n },\n });\n });\n }\n\n handleRadioChange(optionValue: string) {\n this.value.set(optionValue);\n this.markAsTouched();\n }\n\n getThemeColor(token: ColorToken) {\n const colors = this.theme.colors();\n return colors[token] ? colors[token] : colors['primary'];\n }\n}\n","<div [class]=\"radioGroupClass\">\n @if (label()) {\n <Text typeface=\"label\">{{ label() }}</Text>\n }\n\n @for (option of options(); track option.value) {\n <label\n [class]=\"radioOptionClass\"\n [class.disabled]=\"disabled() || option.disabled\"\n (click)=\"\n !disabled() && !option.disabled && handleRadioChange(option.value)\n \"\n >\n <input\n type=\"radio\"\n [class]=\"radioInputClass\"\n [value]=\"option.value\"\n [name]=\"name()\"\n [checked]=\"value() === option.value\"\n [disabled]=\"disabled() || option.disabled\"\n (change)=\"handleRadioChange(option.value)\"\n />\n <div class=\"radio-button\">\n <div class=\"radio-inner\"></div>\n </div>\n <Text typeface=\"label\">{{ option.label }}</Text>\n </label>\n }\n</div>\n","/**\n * UniScrollAreaComponent Barrel File\n *\n * This file exports all public-facing elements of the scroll-area component.\n */\n\nexport { UniScrollAreaComponent } from './scroll-area.component';\nexport type { ScrollbarAppearance } from './scroll-area.types';\n","import { Component, HostBinding, input, output } from '@angular/core';\nimport { css } from '@emotion/css';\nimport { UniDebounceInputComponent } from '../forms/debounce-input/debounce-input.component';\nimport { UniIconButtonComponent } from '../icon-button/icon-button.component';\nimport { UniBoxComponent } from '../layout';\nimport { UniTextComponent } from '../text/text.component';\n\n@Component({\n selector: 'SearchInput, uni-search-input',\n standalone: true,\n imports: [UniDebounceInputComponent, UniTextComponent, UniBoxComponent, UniIconButtonComponent],\n templateUrl: './search-input.component.html',\n})\nexport class UniSearchInputComponent {\n label = input.required<string>();\n width = input<string | number>('100%');\n\n change = output<string>();\n search = output<string>();\n\n @HostBinding('class') get className() {\n return css([\n {\n display: 'flex',\n alignItems: 'center',\n },\n ]);\n }\n\n handleSearchInput(searchInput: string) {\n this.change.emit(searchInput);\n }\n\n handleSearch(searchInput: string | undefined) {\n this.search.emit(searchInput ?? '');\n }\n}\n","<Box\n color=\"primary\"\n borderRadius=\"max\"\n paddingHorizontal=\"sm\"\n display=\"flex\"\n border=\"quaternary\"\n alignItems=\"center\"\n [width]=\"width()\"\n>\n <Box alignSelf=\"center\" paddingHorizontal=\"md\">\n <Text display=\"block\" typeface=\"title-large\">{{ label() }}</Text>\n </Box>\n <Box\n borderRadius=\"max\"\n display=\"block\"\n paddingHorizontal=\"md\"\n paddingVertical=\"sm\"\n color=\"primary-surface\"\n [grow]=\"1\"\n >\n <DebounceInput (change)=\"handleSearchInput($event)\" #searchInput />\n </Box>\n <button\n icon-button\n iconName=\"search\"\n variant=\"ghost\"\n (click)=\"handleSearch(searchInput.value())\"\n ></button>\n</Box>\n","/**\n * UniSearchInputComponent Barrel File\n *\n * This file exports all public-facing elements of the search-input component.\n */\n\nexport { UniSearchInputComponent } from './search-input.component';\n","import { Component, computed, input, model } from '@angular/core';\nimport { FormValueControl } from '@angular/forms/signals';\nimport { css } from '@emotion/css';\nimport type { Options } from '../../cdk';\nimport { UniInputBoxComponent } from '../input-box/input-box.component';\nimport { UniSymbolComponent } from '../symbol';\n\n@Component({\n selector: 'uni-select, SelectInput',\n imports: [UniInputBoxComponent, UniSymbolComponent],\n templateUrl: './select-input.component.html',\n})\nexport class UniSelectComponent<T> implements FormValueControl<T | null> {\n // --- REQUIRED SIGNALS (populated by FormValueControl) ---\n readonly value = model<T | null>(null);\n readonly disabled = input(false);\n readonly touched = model(false);\n readonly invalid = input(false);\n readonly dirty = input(false);\n\n // --- CONFIGURATION ---\n readonly options = input<Options<T>>([]);\n readonly placeholder = input<string>();\n\n protected readonly UNSELECTED = -1;\n\n /**\n * We use the index as the HTML value to avoid issues with\n * stringifying complex objects or duplicate labels.\n */\n protected readonly currentSelectedIndex = computed(() => {\n const currentVal = this.value();\n if (currentVal === null || currentVal === undefined) return this.UNSELECTED;\n\n // Find the index of the option that contains our current value\n const index = this.options().findIndex((opt) => opt.value === currentVal);\n return index.toString();\n });\n\n protected readonly showError = computed(\n () => this.invalid() && (this.touched() || this.dirty())\n );\n\n protected handleSelectChange(event: Event): void {\n const select = event.target as HTMLSelectElement;\n const index = parseInt(select.value, 10);\n\n if (index === this.UNSELECTED) {\n this.value.set(null);\n } else {\n const selectedOption = this.options()[index];\n // Update the model with the 'value' property of the Option interface\n this.value.set(selectedOption.value);\n }\n }\n\n selectClass = css({\n '& select': {\n paddingRight: 24, // Prevent arrow from overlapping\n cursor: 'pointer',\n '&::-ms-expand': { display: 'none' },\n },\n\n [`& select:has(option[value=\"${this.UNSELECTED}\"]:checked)`]: {\n color: 'color-mix(in srgb, currentColor 50%, transparent)',\n },\n });\n\n arrowClass = css({\n position: 'absolute',\n right: 0,\n pointerEvents: 'none' /* Crucial for clicking through */,\n });\n}\n","<uni-input-box [error]=\"showError()\" [class]=\"selectClass\">\n <select\n [disabled]=\"disabled()\"\n [value]=\"currentSelectedIndex()\"\n (change)=\"handleSelectChange($event)\"\n (blur)=\"touched.set(true)\"\n >\n @if (placeholder()) {\n <option [value]=\"UNSELECTED\" disabled selected>\n {{ placeholder() }}\n </option>\n }\n\n @for (opt of options(); track opt.label; let i = $index) {\n <option [value]=\"i\">\n {{ opt.label }}\n </option>\n }\n </select>\n <uni-symbol name=\"keyboard_arrow_down\" [class]=\"arrowClass\" />\n</uni-input-box>\n","/**\n * UniSortHeaderComponent Barrel File\n *\n * This file exports all public-facing elements of the sort-header component.\n */\n\nexport { UniSortHeaderComponent } from './sort-header.component';\n","import { Component, input, output } from '@angular/core';\nimport { UniIconButtonComponent } from '../icon-button/icon-button.component';\nimport { UniBoxComponent, UniRowComponent } from '../layout';\nimport { UniTextComponent } from '../text/text.component';\n\n@Component({\n selector: 'Tag, uni-tag',\n imports: [UniBoxComponent, UniIconButtonComponent, UniTextComponent, UniRowComponent],\n templateUrl: './tag.component.html',\n})\nexport class UniTagComponent {\n label = input<string>();\n value = input<string | number>();\n\n close = output<string | number>();\n\n handleClose() {\n const v = this.value();\n if (v) this.close.emit(v);\n }\n}\n","<div box-layout color=\"primary\" borderRadius=\"max\" display=\"inline-block\">\n <div row-layout paddingLeft=\"sm\" gap=\"xs\">\n <Text display=\"block\" typeface=\"tag\">{{ label() }}</Text>\n <button icon-button symbolName=\"close\" size=\"sm\" (click)=\"handleClose()\">\n close\n </button>\n </div>\n</div>\n","/**\n * UniTagComponent Barrel File\n *\n * This file exports all public-facing elements of the tag component.\n */\n\nexport { UniTagComponent } from './tag.component';\n","import { Component, computed, effect, input, model } from '@angular/core';\nimport { FormCheckboxControl } from '@angular/forms/signals';\nimport { css } from '@emotion/css';\nimport type { ColorToken } from '@uni-design-system/uni-core';\nimport { BaseComponent } from '../base';\nimport { COMPONENT_NAME } from '../base/base.component';\nimport { UniTextComponent } from '../text/text.component';\nimport type { UniToggleOptions } from './toggle.model';\n\n@Component({\n selector: 'uni-toggle, Toggle',\n standalone: true,\n imports: [UniTextComponent],\n templateUrl: './toggle.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'toggle' }],\n})\nexport class UniToggleComponent\n extends BaseComponent<UniToggleOptions>\n implements FormCheckboxControl\n{\n toggleLabel!: string;\n toggleInput!: string;\n\n // --- REQUIRED SIGNALS (populated by FormCheckboxControl) ---\n readonly checked = model<boolean>(false);\n readonly disabled = input(false);\n readonly touched = model(false);\n readonly invalid = input(false);\n readonly dirty = input(false);\n\n // --- CONFIGURATION ---\n readonly label = input<string>();\n\n // Only show errors if the user has actually interacted with the field\n protected readonly showError = computed(\n () => this.invalid() && (this.touched() || this.dirty())\n );\n\n markAsTouched() {\n this.touched.set(true);\n }\n\n constructor() {\n super();\n\n effect(() => {\n const toggleSize = this.componentOptions().size || 20;\n const toggleWidth = toggleSize * 2;\n const sliderSize = toggleSize * 0.8;\n const sliderOffset = (toggleSize - sliderSize) / 2;\n\n this.toggleLabel = css({\n userSelect: 'none',\n cursor: this.disabled() ? 'not-allowed' : 'pointer',\n marginBottom: 0,\n display: 'flex',\n alignItems: 'center',\n gap: 8,\n opacity: this.disabled() ? 0.6 : 1,\n\n '& .toggle-switch': {\n width: toggleWidth,\n height: toggleSize,\n backgroundColor: this.disabled() ? '#ccc' : '#e0e0e0',\n borderRadius: toggleSize / 2,\n position: 'relative',\n transition: 'all 0.3s ease',\n },\n\n '& .toggle-slider': {\n width: sliderSize,\n height: sliderSize,\n backgroundColor: '#fff',\n borderRadius: '50%',\n position: 'absolute',\n top: sliderOffset,\n left: sliderOffset,\n transition: 'all 0.3s ease',\n boxShadow: '0 2px 4px rgba(0, 0, 0, 0.2)',\n },\n\n '&:hover .toggle-switch': this.disabled()\n ? {}\n : {\n backgroundColor: '#d0d0d0',\n },\n });\n\n this.toggleInput = css({\n position: 'absolute',\n zIndex: -1,\n width: 0,\n height: 0,\n opacity: 0,\n\n '&:checked + .toggle-switch': {\n backgroundColor: this.getThemeColor(this.variant()),\n borderColor: this.getThemeColor(this.variant()),\n },\n\n '&:checked + .toggle-switch .toggle-slider': {\n transform: `translateX(${toggleSize}px)`,\n },\n\n '&:disabled + .toggle-switch': {\n cursor: 'not-allowed',\n },\n\n '&:focus + .toggle-switch': {\n outline: `2px solid ${this.getThemeColor(this.variant())}`,\n outlineOffset: '2px',\n },\n });\n });\n }\n\n getThemeColor(token: ColorToken) {\n const colors = this.theme.colors();\n return colors[token] ? colors[token] : colors['primary'];\n }\n}\n","<label [class]=\"toggleLabel\">\n <input\n type=\"checkbox\"\n [class]=\"toggleInput\"\n [checked]=\"checked()\"\n (change)=\"checked.set($any($event.target).checked); markAsTouched()\"\n [disabled]=\"disabled()\"\n />\n <div class=\"toggle-switch\">\n <div class=\"toggle-slider\"></div>\n </div>\n @if (label()) {\n <Text typeface=\"label\">{{ label() }}</Text>\n }\n</label>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.RippleDirective"],"mappings":"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"}
1
+ {"version":3,"file":"uni-design-system-uni-angular.mjs","sources":["../../src/lib/cdk/a11y/a11y.ts","../../src/lib/cdk/position/anchor.ts","../../src/lib/cdk/datasource/base-datasource.ts","../../src/lib/cdk/datasource/record-datasource.ts","../../src/lib/cdk/datasource/server-side-datasource.ts","../../src/lib/cdk/helpers/memoize.helper.ts","../../src/lib/cdk/local-storage/local-storage.service.ts","../../src/lib/cdk/notification/notification.service.ts","../../src/lib/cdk/timer/timer.ts","../../src/lib/cdk/file/file.helper.ts","../../src/lib/theming/theme.token.ts","../../src/lib/cdk/helpers/number.helper.ts","../../src/lib/theming/theme.service.ts","../../src/lib/components/background/background.component.ts","../../src/lib/components/background/index.ts","../../src/lib/components/base/base.component.ts","../../src/lib/components/badge/badge.component.ts","../../src/lib/components/icon/icon.component.ts","../../src/lib/components/layout/box/box.component.ts","../../src/lib/components/layout/center/center.component.ts","../../src/lib/components/layout/grid/grid-area/grid-area.component.ts","../../src/lib/components/layout/grid/grid.component.ts","../../src/lib/components/layout/row/row.component.ts","../../src/lib/components/layout/stack/stack.component.ts","../../src/lib/components/layout/wrap/wrap.component.ts","../../src/lib/components/symbol/symbol.component.ts","../../src/lib/directives/ripple/ripple.directive.ts","../../src/lib/components/button/button.component.ts","../../src/lib/components/button-group/button-group.component.ts","../../src/lib/components/button-group/index.ts","../../src/lib/components/card/card-content/card-content.component.ts","../../src/lib/components/card/card-content/card-content.component.html","../../src/lib/components/text/text.component.ts","../../src/lib/components/card/card.component.ts","../../src/lib/components/card/card.component.html","../../src/lib/components/card/card-header/card-header.component.ts","../../src/lib/components/card/card-header/card-header.component.html","../../src/lib/components/checkbox/checkbox.component.ts","../../src/lib/components/checkbox/checkbox.component.html","../../src/lib/directives/body-render/body-render.directive.ts","../../src/lib/directives/drag-and-drop/drag-and-drop.directive.ts","../../src/lib/components/icon-button/icon-button.component.ts","../../src/lib/components/data-search/data-search.component.ts","../../src/lib/components/data-search/data-search.component.html","../../src/lib/components/data-search/index.ts","../../src/lib/components/scroll-area/scroll-area.component.ts","../../src/lib/components/sort-header/sort-header.component.ts","../../src/lib/components/sort-header/sort-header.component.html","../../src/lib/components/data-table/data-table.component.ts","../../src/lib/components/data-table/data-table.component.html","../../src/lib/components/data-table/index.ts","../../src/lib/components/dialog/dialog.component.ts","../../src/lib/components/dialog/dialog-buttons/dialog-buttons.component.ts","../../src/lib/components/dialog/dialog-buttons/dialog-buttons.component.html","../../src/lib/components/dialog/dialog-header/dialog-header.component.ts","../../src/lib/components/dialog/dialog-header/dialog-header.component.html","../../src/lib/components/divider/divider.component.ts","../../src/lib/components/dropdown/dropdown.component.ts","../../src/lib/components/expand/expand.component.ts","../../src/lib/components/expand/index.ts","../../src/lib/components/tooltip/tooltip.component.ts","../../src/lib/components/expand-toggle/expand-toggle.component.ts","../../src/lib/components/expand-area/expand-area.component.ts","../../src/lib/components/expand-area/index.ts","../../src/lib/components/expand-toggle/index.ts","../../src/lib/components/file-drop-zone/file-drop-zone.component.ts","../../src/lib/components/file-drop-zone/file-drop-zone.component.html","../../src/lib/components/file-drop-zone/index.ts","../../src/lib/components/forms/debounce-input/debounce-input.component.ts","../../src/lib/components/forms/debounce-input/debounce-input.component.html","../../src/lib/components/input-box/input-box.component.ts","../../src/lib/components/input-box/input-box.component.html","../../src/lib/components/input/input.component.ts","../../src/lib/components/input/input.component.html","../../src/lib/components/json-view/json-view.component.ts","../../src/lib/components/json-view/json-view.component.html","../../src/lib/components/json-view/index.ts","../../src/lib/components/menu/menu-item/menu-item.component.ts","../../src/lib/components/menu/menu-item/menu-item.component.html","../../src/lib/components/menu/menu.component.ts","../../src/lib/components/multi-select/multi-select.component.ts","../../src/lib/components/multi-select/multi-select.component.html","../../src/lib/components/multi-select-dropdown/multi-select-dropdown.component.ts","../../src/lib/components/multi-select-dropdown/multi-select-dropdown.component.html","../../src/lib/components/notification-badge/notification-badge.ts","../../src/lib/components/notification-badge/notification-badge.html","../../src/lib/components/notifications/alert/alert.component.ts","../../src/lib/components/notifications/alert/alert.component.html","../../src/lib/components/notifications/confirmation-dialog/confirmation-dialog.component.ts","../../src/lib/components/notifications/confirmation-dialog/confirmation-dialog.component.html","../../src/lib/components/notifications/snackbar/snackbar.component.ts","../../src/lib/components/notifications/snackbar/snackbar.component.html","../../src/lib/components/notifications/notifications/notifications.component.ts","../../src/lib/components/notifications/notifications/notifications.component.html","../../src/lib/components/paginator/paginator.component.ts","../../src/lib/components/paginator/paginator.component.html","../../src/lib/components/paginator/index.ts","../../src/lib/components/popover/popover.component.ts","../../src/lib/components/popover/popover.component.html","../../src/lib/components/popover/index.ts","../../src/lib/components/progress-bar/progress-bar.component.ts","../../src/lib/components/progress-bar/progress-bar.component.html","../../src/lib/components/progress-bar/index.ts","../../src/lib/components/progress-gauge/progress-gauge.component.ts","../../src/lib/components/progress-gauge/progress-gauge.component.html","../../src/lib/components/progress-gauge/index.ts","../../src/lib/components/radio/radio.component.ts","../../src/lib/components/radio/radio.component.html","../../src/lib/components/scroll-area/index.ts","../../src/lib/components/search-input/search-input.component.ts","../../src/lib/components/search-input/search-input.component.html","../../src/lib/components/search-input/index.ts","../../src/lib/components/select-input/select-input.component.ts","../../src/lib/components/select-input/select-input.component.html","../../src/lib/components/sort-header/index.ts","../../src/lib/components/tag/tag.component.ts","../../src/lib/components/tag/tag.component.html","../../src/lib/components/tag/index.ts","../../src/lib/components/theme-builder/theme-builder.component.ts","../../src/lib/components/toggle/toggle.component.ts","../../src/lib/components/toggle/toggle.component.html","../../src/uni-design-system-uni-angular.ts"],"sourcesContent":["let nextUniqueId = 0;\n\n/**\n * Returns a document-unique id for wiring ARIA relationships\n * (aria-controls, aria-describedby, aria-labelledby, ...).\n */\nexport function uniqueId(prefix = 'uni'): string {\n return `${prefix}-${nextUniqueId++}`;\n}\n\n/**\n * Selector matching natively focusable elements. Used to locate the\n * interactive element inside a projected trigger so ARIA attributes land\n * on the element that actually receives focus.\n */\nexport const FOCUSABLE_SELECTOR =\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n\n/**\n * Resolves the element that should carry ARIA state for a trigger:\n * the element itself when focusable, otherwise its first focusable descendant.\n */\nexport function resolveFocusTarget(element: HTMLElement): HTMLElement {\n if (element.matches(FOCUSABLE_SELECTOR)) return element;\n return element.querySelector<HTMLElement>(FOCUSABLE_SELECTOR) ?? element;\n}\n\n/**\n * Visually hides content while keeping it available to screen readers.\n * Use for text alternatives (e.g. badge counts, icon-only affordances).\n */\nexport const visuallyHidden = {\n position: 'absolute',\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: 'hidden',\n clipPath: 'inset(50%)',\n whiteSpace: 'nowrap',\n border: 0,\n} as const;\n\n/**\n * Wraps animation/transition styles so they only apply when the user has\n * not requested reduced motion (WCAG 2.3.3).\n */\nexport function motionSafe<T extends object>(styles: T) {\n return { '@media (prefers-reduced-motion: no-preference)': styles };\n}\n","import { uniqueId } from '../a11y/a11y';\n\n/**\n * Native CSS Anchor Positioning helpers (Baseline 2026). These replace the\n * former @floating-ui/dom dependency: the browser tracks the anchor natively\n * (no scroll/resize listeners), and `position-try-fallbacks` flips the panel\n * at viewport edges where supported (Chrome 125+, Firefox 147+, Safari 26+;\n * older Baseline browsers still position correctly but do not auto-flip).\n */\n\nexport type Placement =\n | 'top'\n | 'right'\n | 'bottom'\n | 'left'\n | 'top-start'\n | 'right-start'\n | 'bottom-start'\n | 'left-start'\n | 'top-end'\n | 'right-end'\n | 'bottom-end'\n | 'left-end';\n\n/** Distances between the anchor and the positioned panel, in px. */\nexport interface AnchorOffset {\n /** Gap along the placement axis (anchor → panel). */\n mainAxis?: number;\n /** Shift along the cross axis, from the aligned edge. */\n alignmentAxis?: number;\n}\n\n/** Returns a document-unique dashed-ident usable as a CSS `anchor-name`. */\nexport function newAnchorName(): string {\n return `--${uniqueId('uni-anchor')}`;\n}\n\nconst POSITION_AREA: Record<Placement, string> = {\n top: 'top',\n bottom: 'bottom',\n left: 'left',\n right: 'right',\n 'top-start': 'top span-right',\n 'top-end': 'top span-left',\n 'bottom-start': 'bottom span-right',\n 'bottom-end': 'bottom span-left',\n 'left-start': 'left span-bottom',\n 'left-end': 'left span-top',\n 'right-start': 'right span-bottom',\n 'right-end': 'right span-top',\n};\n\nconst MAIN_MARGIN: Record<string, string> = {\n top: 'marginBottom',\n bottom: 'marginTop',\n left: 'marginRight',\n right: 'marginLeft',\n};\n\n/**\n * Emotion style object anchoring a panel to `anchor` at `placement`.\n * Spread into the panel's `css()` styles. The trigger element must carry\n * `anchor-name: <anchor>` (see `newAnchorName`).\n */\nexport function anchorStyles(\n anchor: string,\n placement: Placement,\n offset: AnchorOffset = {}\n): Record<string, string | number> {\n const [side, align] = placement.split('-') as [string, string | undefined];\n\n const styles: Record<string, string | number> = {\n position: 'fixed',\n positionAnchor: anchor,\n positionArea: POSITION_AREA[placement],\n positionTryFallbacks: 'flip-block, flip-inline, flip-block flip-inline',\n // Popover UA styles set inset:0 + margin:auto; anchored elements must not\n inset: 'auto',\n margin: 0,\n };\n\n styles[MAIN_MARGIN[side]] = offset.mainAxis ?? 0;\n\n const cross = offset.alignmentAxis ?? 0;\n if (align && cross) {\n const horizontal = side === 'top' || side === 'bottom';\n const crossMargin = horizontal\n ? align === 'start'\n ? 'marginLeft'\n : 'marginRight'\n : align === 'start'\n ? 'marginTop'\n : 'marginBottom';\n styles[crossMargin] = cross;\n }\n\n return styles;\n}\n\n/**\n * Absolute positioning for a rotated-square arrow sitting on the panel edge\n * that faces the anchor. Static per placement: if the browser flips the panel\n * via position-try, the arrow stays on the configured side (cosmetic-only\n * degradation, matching the flip-support caveat above).\n */\nexport function anchorArrowStyles(placement: Placement, size = 8): Record<string, string | number> {\n const [side, align] = placement.split('-') as [string, string | undefined];\n const overlap = -(size / 2);\n const styles: Record<string, string | number> = {\n position: 'absolute',\n width: size,\n height: size,\n transform: 'rotate(45deg)',\n };\n\n // Edge facing the anchor\n const facing: Record<string, string> = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n };\n styles[facing[side]] = overlap;\n\n // Cross-axis position along that edge\n const horizontal = side === 'top' || side === 'bottom';\n const crossProp = horizontal ? 'left' : 'top';\n const crossPropEnd = horizontal ? 'right' : 'bottom';\n if (!align) {\n styles[crossProp] = `calc(50% - ${size / 2}px)`;\n } else if (align === 'start') {\n styles[crossProp] = size * 1.5;\n } else {\n styles[crossPropEnd] = size * 1.5;\n }\n\n return styles;\n}\n","import { computed, signal, Signal, WritableSignal } from '@angular/core';\n\nexport type SortDirection = 'asc' | 'desc' | 'indet';\n\nexport interface Sort<T> {\n column?: keyof T;\n direction: SortDirection;\n}\n\nexport abstract class UniBaseDatasource<T> {\n abstract records: Signal<T[]>;\n abstract recordCount: Signal<number>;\n\n selections = signal<T[]>([]);\n\n sort: WritableSignal<Sort<T>> = signal({\n column: undefined,\n direction: 'indet',\n });\n\n sortColumn = computed(() => this.sort().column);\n sortDirection = computed(() => this.sort().direction);\n\n abstract pageIndex: Signal<number>;\n abstract pageSize: Signal<number>;\n abstract pageCount: Signal<number>;\n\n pages = computed(() => Array.from({ length: this.pageCount() }, (_, index) => index + 1));\n\n startIndex = computed(() => {\n const pageSize = this.pageSize();\n const pageIndex = this.pageIndex();\n return pageSize > 0 ? pageIndex * pageSize : 0;\n });\n\n endIndex = computed(() => {\n const pageSize = this.pageSize();\n const total = this.recordCount();\n\n // If unpaginated (pageSize = 0), return total count\n if (pageSize === 0) {\n return total;\n }\n\n const start = this.startIndex();\n return Math.min(start + pageSize, total);\n });\n\n disablePrevious = computed(() => {\n const pageSize = this.pageSize();\n return pageSize === 0 ? true : this.pageIndex() === 0;\n });\n\n disableNext = computed(() => {\n const pageSize = this.pageSize();\n return pageSize === 0 ? true : this.pageIndex() + 1 >= this.pageCount();\n });\n\n truncatedPages = computed(() => {\n const currentPage = this.pageIndex() + 1;\n const displayRange = 3;\n const totalPages = this.pageCount();\n\n const pages: (number | string)[] = [];\n const startPage = Math.max(1, currentPage - displayRange);\n const endPage = Math.min(totalPages, currentPage + displayRange);\n\n if (startPage > 1) {\n pages.push(1);\n if (startPage > 2) {\n pages.push('...');\n }\n }\n\n for (let i = startPage; i <= endPage; i++) {\n pages.push(i);\n }\n\n if (endPage < totalPages) {\n if (endPage < totalPages - 1) {\n pages.push('...');\n }\n pages.push(totalPages);\n }\n return pages;\n });\n\n isSelected(row: T): boolean {\n return this.selections().some((selection) => selection === row);\n }\n\n toggleSelection(row: T) {\n this.selections.update((selections) => {\n return selections.includes(row) ? selections.filter((i) => i !== row) : [...selections, row];\n });\n }\n\n clearSelections() {\n this.selections.set([]);\n }\n\n selectAll() {\n this.selections.set([...this.records()]);\n }\n\n abstract sortRecords(sort: Sort<T>): void;\n abstract firstPage(): void;\n abstract nextPage(): void;\n abstract previousPage(): void;\n abstract lastPage(): void;\n abstract jumpToPage(page: number): void;\n abstract setPageSize(size: number): void;\n}\n","import { computed, signal } from '@angular/core';\nimport { UniBaseDatasource, Sort } from './base-datasource';\n\nexport class UniRecordDatasource<T> extends UniBaseDatasource<T> {\n private _pageNumber = signal(1);\n private _pageSize = signal<number>(0); // 0 = unpaginated (show all)\n\n initialRecords = signal<T[]>([]);\n override recordCount = computed((): number => this.initialRecords().filter(this.filter()).length);\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n filter = signal<(value: T) => boolean>((value) => true);\n\n override pageIndex = signal<number>(0);\n override pageSize = computed(() => this._pageSize());\n\n override pageCount = computed(() => {\n const pageSize = this.pageSize();\n return pageSize > 0 ? Math.ceil(this.recordCount() / pageSize) : 1;\n });\n\n override records = computed(() => {\n const { column, direction } = this.sort();\n const filter = this.filter();\n const pageSize = this.pageSize();\n\n let filteredRecords = this.initialRecords().filter(filter);\n\n // Apply sorting if specified\n if (column && direction !== 'indet') {\n filteredRecords = [...filteredRecords].sort((a, b) => {\n const valueA = a[column];\n const valueB = b[column];\n\n const isString = typeof valueA === 'string';\n const isAsc = direction === 'asc';\n\n return isString\n ? stringCompare(valueA as string, valueB as string, isAsc)\n : numberCompare(valueA as number, valueB as number, isAsc);\n });\n }\n\n // Apply pagination only if pageSize > 0\n if (pageSize > 0) {\n return filteredRecords.slice(this.startIndex(), this.endIndex());\n }\n\n // Return all records (unpaginated)\n return filteredRecords;\n });\n\n constructor(data: T[]) {\n super();\n this.initialRecords.set(data);\n }\n\n override sortRecords(sort: Sort<T>) {\n this.sort.set(sort);\n }\n\n override firstPage() {\n this.pageIndex.set(0);\n }\n\n override nextPage() {\n if (this.pageIndex() < this.pageCount() - 1) {\n this.pageIndex.update((i) => i + 1);\n }\n }\n\n override previousPage() {\n this.pageIndex.update((i) => (i > 1 ? i - 1 : 0));\n }\n\n override lastPage() {\n this.pageIndex.set(this.pageCount() - 1);\n }\n\n override jumpToPage(page: number) {\n const i = page - 1;\n if (i >= 0 && i < this.pageCount()) {\n this.pageIndex.set(i);\n }\n }\n\n override setPageSize(size: number) {\n this._pageSize.set(size);\n if (size > 0) {\n this._pageNumber.set(1);\n this.pageIndex.set(0);\n }\n }\n\n setFilter(filter: (value: T) => boolean) {\n this.filter.set(filter);\n }\n\n clearFilter() {\n this.filter.set(() => true);\n }\n}\n\nfunction stringCompare(a = 'zzz', b = 'zzz', isAsc: boolean): number {\n a = a.toString();\n b = b.toString();\n\n return isAsc\n ? a.localeCompare(b, undefined, { sensitivity: 'base' })\n : b.localeCompare(a, undefined, { sensitivity: 'base' });\n}\n\nfunction numberCompare(a = 0, b = 0, isAsc: boolean): number {\n return isAsc ? a - b : b - a;\n}\n","import {\n computed,\n linkedSignal,\n resource,\n ResourceLoaderParams,\n ResourceRef,\n type ResourceStatus,\n signal,\n} from '@angular/core';\nimport { UniBaseDatasource, Sort, SortDirection } from './base-datasource';\n\nexport interface PageRequest {\n pageNumber: number;\n pageSize: number;\n sortColumn?: string;\n sortDirection?: SortDirection;\n filter?: Record<string, any>;\n}\n\nexport interface PageResponse<T> {\n data: T[];\n totalRecords: number;\n pageNumber: number;\n pageSize: number;\n}\n\nexport type DataLoader<T> = (request: PageRequest) => Promise<PageResponse<T>>;\n\nexport class UniServerSideDatasource<T> extends UniBaseDatasource<T> {\n private _pageNumber = signal(1);\n private _pageSize = signal(10);\n private _sortColumn = signal<keyof T | undefined>(undefined);\n private _sortDirection = signal<SortDirection>('indet');\n private filter = signal<Record<string, any>>({});\n\n override sortColumn = computed(() => this._sortColumn());\n override sortDirection = computed(() => this._sortDirection());\n\n private totalRecords = signal(0);\n\n private dataResource: ResourceRef<PageResponse<T> | undefined>;\n\n override pageIndex = computed(() => this._pageNumber() - 1);\n override pageSize = computed(() => this._pageSize());\n\n override pageCount = computed(() => {\n const total = this.totalRecords();\n const size = this.pageSize();\n return total > 0 ? Math.ceil(total / size) : 0;\n });\n\n private readonly _records = linkedSignal<\n {\n val: PageResponse<T> | undefined;\n status: ResourceStatus;\n },\n T[]\n >({\n source: () => ({\n val: this.dataResource.value(),\n status: this.dataResource.status(),\n }),\n computation: (source, previous) => {\n if (source.status === 'loading' && previous) {\n return previous.value;\n }\n return source.val?.data ?? [];\n },\n });\n\n override records = this._records.asReadonly();\n\n override recordCount = computed(() => this.totalRecords());\n\n isLoading = computed(() => this.dataResource.isLoading());\n\n error = computed(() => this.dataResource.error());\n\n hasError = computed(() => this.dataResource.hasValue() === false && this.error() !== undefined);\n\n constructor(\n private dataLoader: DataLoader<T>,\n initialPageSize = 10\n ) {\n super();\n this._pageSize.set(initialPageSize);\n\n this.dataResource = resource({\n params: () => ({\n pageNumber: this._pageNumber(),\n pageSize: this._pageSize(),\n sortColumn: this._sortColumn() as string | undefined,\n sortDirection: this._sortDirection(),\n filter: this.filter(),\n }),\n loader: async (params: ResourceLoaderParams<PageRequest>) => {\n const request = params.params;\n const response = await this.dataLoader(request);\n\n if (request.pageNumber === 1 || this.totalRecords() === 0) {\n this.totalRecords.set(response.totalRecords);\n }\n\n return response;\n },\n });\n }\n\n override sortRecords(sort: Sort<T>) {\n this.sort.set(sort);\n this._sortColumn.set(sort.column);\n this._sortDirection.set(sort.direction);\n this._pageNumber.set(1);\n }\n\n override firstPage() {\n this._pageNumber.set(1);\n }\n\n override nextPage() {\n if (this._pageNumber() < this.pageCount()) {\n this._pageNumber.update((n) => n + 1);\n }\n }\n\n override previousPage() {\n if (this._pageNumber() > 1) {\n this._pageNumber.update((n) => n - 1);\n }\n }\n\n override lastPage() {\n this._pageNumber.set(this.pageCount());\n }\n\n override jumpToPage(page: number) {\n if (page >= 1 && page <= this.pageCount()) {\n this._pageNumber.set(page);\n }\n }\n\n override setPageSize(size: number) {\n if (size > 0) {\n this._pageSize.set(size);\n this._pageNumber.set(1);\n }\n }\n\n setFilter(filterValues: Record<string, any>) {\n this.filter.set(filterValues);\n this._pageNumber.set(1);\n }\n\n clearFilter() {\n this.filter.set({});\n this._pageNumber.set(1);\n }\n\n refresh() {\n this.dataResource.reload();\n }\n\n getPageRequest(): PageRequest {\n return {\n pageNumber: this._pageNumber(),\n pageSize: this._pageSize(),\n sortColumn: this._sortColumn() as string | undefined,\n sortDirection: this._sortDirection(),\n filter: this.filter(),\n };\n }\n}\n","export function memoize<T extends (...args: any[]) => any>(fn: T): T {\n const cache = new Map<string, ReturnType<T>>();\n\n return ((...args: Parameters<T>): ReturnType<T> => {\n const key = JSON.stringify(args);\n\n if (cache.has(key)) {\n return cache.get(key)!;\n }\n\n const result = fn(...args);\n cache.set(key, result);\n return result;\n }) as T;\n}\n","import { Injectable } from '@angular/core';\nimport { memoize } from '../helpers/memoize.helper';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LocalStorageService {\n private isLocalStorageAvailable = memoize((): boolean => {\n try {\n const test = '__localStorage_test__';\n localStorage.setItem(test, test);\n localStorage.removeItem(test);\n return true;\n } catch {\n return false;\n }\n });\n\n setItem<T>(key: string, value: T): boolean {\n if (!this.isLocalStorageAvailable()) {\n console.warn('LocalStorage is not available');\n return false;\n }\n\n try {\n const stringValue = typeof value === 'string' ? value : JSON.stringify(value);\n localStorage.setItem(key, stringValue);\n return true;\n } catch (error) {\n console.error('Error saving to localStorage:', error);\n return false;\n }\n }\n\n getItem<T>(key: string): T | null {\n if (!this.isLocalStorageAvailable()) {\n return null;\n }\n\n try {\n const item = localStorage.getItem(key);\n if (item === null) {\n return null;\n }\n\n try {\n return JSON.parse(item) as T;\n } catch {\n return item as T;\n }\n } catch (error) {\n console.error('Error reading from localStorage:', error);\n return null;\n }\n }\n\n removeItem(key: string): boolean {\n if (!this.isLocalStorageAvailable()) {\n return false;\n }\n\n try {\n localStorage.removeItem(key);\n return true;\n } catch (error) {\n console.error('Error removing from localStorage:', error);\n return false;\n }\n }\n\n clear(): boolean {\n if (!this.isLocalStorageAvailable()) {\n return false;\n }\n\n try {\n localStorage.clear();\n return true;\n } catch (error) {\n console.error('Error clearing localStorage:', error);\n return false;\n }\n }\n\n hasKey(key: string): boolean {\n if (!this.isLocalStorageAvailable()) {\n return false;\n }\n\n return localStorage.getItem(key) !== null;\n }\n\n getAllKeys(): string[] {\n if (!this.isLocalStorageAvailable()) {\n return [];\n }\n\n try {\n return Object.keys(localStorage);\n } catch (error) {\n console.error('Error getting localStorage keys:', error);\n return [];\n }\n }\n\n getSize(): number {\n if (!this.isLocalStorageAvailable()) {\n return 0;\n }\n\n try {\n let total = 0;\n for (const key in localStorage) {\n if (Object.prototype.hasOwnProperty.call(localStorage, key)) {\n total += localStorage[key].length + key.length;\n }\n }\n return total;\n } catch (error) {\n console.error('Error calculating localStorage size:', error);\n return 0;\n }\n }\n}\n","import { Injectable, signal } from '@angular/core';\nimport { Alert, Confirmation, Snackbar } from './notification.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NotificationService {\n /* Alert */\n alert = signal<Alert | undefined>(undefined);\n showAlert = (alert: Alert) => this.alert.set(alert);\n hideAlert = () => this.alert.set(undefined);\n\n /* Snackbar */\n snackbar = signal<Snackbar | undefined>(undefined);\n showSnackbar = (snackbar: Snackbar) => this.snackbar.set(snackbar);\n hideSnackbar = () => this.snackbar.set(undefined);\n\n /* Confirmation */\n confirmation = signal<Confirmation | undefined>(undefined);\n showConfirmation = (confirmation: Confirmation) => this.confirmation.set(confirmation);\n hideConfirmation = () => this.confirmation.set(undefined);\n}\n","import { computed, DestroyRef, inject, signal } from '@angular/core';\n\nexport function useTimer() {\n const destroyRef = inject(DestroyRef);\n\n const msRemaining = signal<number>(0);\n const isPaused = signal<boolean>(false);\n const isActive = computed(() => msRemaining() > 0);\n\n let intervalId: any = null;\n let endTime = 0;\n let onCompleteCallback: (() => void) | undefined;\n\n const stop = () => {\n if (intervalId) clearInterval(intervalId);\n intervalId = null;\n };\n\n const tick = () => {\n const remaining = Math.max(0, endTime - Date.now());\n msRemaining.set(remaining);\n\n if (remaining <= 0) {\n stop();\n if (onCompleteCallback) onCompleteCallback();\n }\n };\n\n const start = (durationMs: number, onComplete?: () => void) => {\n stop();\n onCompleteCallback = onComplete;\n isPaused.set(false);\n msRemaining.set(durationMs);\n endTime = Date.now() + durationMs;\n intervalId = setInterval(tick, 100);\n };\n\n const pause = () => {\n if (!isActive() || isPaused()) return;\n stop();\n isPaused.set(true);\n };\n\n const resume = () => {\n if (!isActive() || !isPaused()) return;\n isPaused.set(false);\n endTime = Date.now() + msRemaining();\n intervalId = setInterval(tick, 100);\n };\n\n destroyRef.onDestroy(() => stop());\n\n return {\n start,\n pause,\n resume,\n stop: () => {\n stop();\n msRemaining.set(0);\n },\n msRemaining,\n isPaused,\n isActive,\n secondsRemaining: computed(() => Math.ceil(msRemaining() / 1000)),\n };\n}\n","export const acceptableFile = (\n file: File,\n acceptedFileExtensions: string[] | undefined\n): boolean => {\n if (!acceptedFileExtensions || acceptedFileExtensions.length < 1) return true;\n return acceptedFileExtensions.includes(getFileExtension(file));\n};\n\nexport const getFileExtension = (file: File): string => '.' + file.name.split('.').pop();\n","import { InjectionToken } from '@angular/core';\nimport { type UniTheme, UniThemes } from '@uni-design-system/uni-core';\n\nexport const UNI_THEMES = new InjectionToken<Record<string, UniTheme>>('', {\n providedIn: 'root',\n factory: () => UniThemes,\n});\n","export const safeParseInt = (n: string | number) => (typeof n === 'number' ? n : parseInt(n));\n","// noinspection JSUnusedGlobalSymbols\n\nimport { computed, inject, Injectable, linkedSignal, Signal, signal } from '@angular/core';\nimport { css, injectGlobal } from '@emotion/css';\nimport { LocalStorageService, Options } from '../cdk';\nimport {\n LightTheme,\n type NullableSize,\n type ThemeName,\n type Typeface,\n type UniTheme,\n Z_INDEX,\n type ZIndexableElements,\n ColorToken,\n ComponentName,\n ComponentTheme,\n ContainerColorToken,\n ContentColorToken,\n NullableStyleExpression,\n OptionalSize,\n Size,\n TextRole,\n Thickness,\n Variant,\n toTypefaces,\n createThemeFromPalette,\n type GenerateColorsConfig,\n type PaletteConfig,\n type ColorKey,\n type Radius,\n type Border,\n type Shadow,\n} from '@uni-design-system/uni-core';\n\nimport { UNI_THEMES } from './theme.token';\nimport { safeParseInt } from '../cdk/helpers/number.helper';\n\n/**\n * The editable shape a theme builder manipulates: a seed + scheme + category\n * (plus optional saturation floor, brand colors, and light/dark mode).\n * Everything else in a theme is derived from this. Brand colors come in two\n * strengths: `brand` pins are emitted verbatim (may fail contrast), `targets`\n * are brand-faithful but the WCAG guard-rail may adjust their lightness.\n */\nexport type BrandPaletteConfig = Required<Pick<PaletteConfig, 'seed' | 'scheme' | 'category'>> &\n Pick<GenerateColorsConfig, 'mode' | 'accentSaturationFloor' | 'brand' | 'targets'>;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ThemeService {\n /** localStorage key marking the custom brand theme as active. */\n static readonly CUSTOM_KEY = 'CustomTheme';\n /** localStorage key holding the serialized brand palette config. */\n static readonly PALETTE_KEY = 'uni-custom-palette';\n\n private themes = inject(UNI_THEMES);\n private localStorage = inject(LocalStorageService);\n\n theme = signal<UniTheme>(LightTheme);\n themeOptions = signal<Options<ThemeName>>([]);\n\n components = computed(() => this.theme().components);\n component = <T>(componentName: ComponentName): Signal<ComponentTheme<T>> =>\n computed(() => (this.components()[componentName] as ComponentTheme<T>) || {});\n colors = computed(() => this.theme().colors);\n // CSS-ready typefaces are derived from the theme's numeric type scale,\n // never stored twice on the theme.\n typeFaces = computed(() => toTypefaces(this.theme().typography));\n spacing = computed(() => this.theme().spacing);\n thicknesses = computed(() => this.theme().thicknesses);\n radii = computed(() => this.theme().radii);\n borders = computed(() => this.theme().borders);\n shadows = computed(() => this.theme().shadows);\n icons = computed(() => this.theme().icons);\n\n constructor() {\n // Honor the user's reduced-motion preference across every component\n // (WCAG 2.3.3): collapse all animations/transitions to a single frame.\n injectGlobal`\n @media (prefers-reduced-motion: reduce) {\n *, *::before, *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n scroll-behavior: auto !important;\n }\n }\n `;\n\n this.themeOptions.set(\n Object.keys(this.themes).map((key) => {\n return { label: this.themes[key].name, value: key };\n })\n );\n\n // Rehydrate a custom brand theme if one is active — this is what lets a\n // palette built in one story reskin every other story: each story spins up\n // a fresh ThemeService, and it reads the persisted config here on init.\n const savedTheme = this.localStorage.getItem<string>('theme');\n const savedPalette = this.localStorage.getItem<BrandPaletteConfig>(ThemeService.PALETTE_KEY);\n if (savedTheme === ThemeService.CUSTOM_KEY && savedPalette) {\n this.applyPalette(savedPalette, false);\n } else {\n this.selectTheme(savedTheme || Object.keys(this.themes)[0] || 'base');\n }\n }\n\n public selectTheme(themeName: ThemeName): void {\n this.selectedThemeKey.set(themeName);\n if (this.themes[themeName]) this.theme.set(this.themes[themeName]);\n this.localStorage.setItem('theme', themeName);\n }\n\n /** The live brand palette config, when a custom theme is active. */\n public customPalette = signal<BrandPaletteConfig | null>(null);\n public isCustomTheme = computed(() => this.selectedThemeKey() === ThemeService.CUSTOM_KEY);\n\n /**\n * Generate a full theme from a brand palette config and make it active. When\n * `persist` is true the config is saved so every subsequent story (and\n * reload) renders with the same brand.\n */\n public applyPalette(config: BrandPaletteConfig, persist = true): void {\n this.customPalette.set(config);\n this.theme.set(\n createThemeFromPalette({ ...config, id: ThemeService.CUSTOM_KEY, name: 'Your Brand' })\n );\n this.selectedThemeKey.set(ThemeService.CUSTOM_KEY);\n if (persist) {\n this.localStorage.setItem(ThemeService.PALETTE_KEY, config);\n this.localStorage.setItem('theme', ThemeService.CUSTOM_KEY);\n }\n }\n\n /** Drop the custom brand theme and fall back to the first built-in theme. */\n public clearCustomPalette(): void {\n this.customPalette.set(null);\n this.localStorage.removeItem(ThemeService.PALETTE_KEY);\n this.selectTheme(Object.keys(this.themes)[0] || 'base');\n }\n\n public selectedThemeName = computed(() => this.theme().name);\n public selectedThemeKey = signal<string>('');\n\n textClass = (textRole: TextRole, textColor?: ContentColorToken) => {\n return css([\n {\n ...this.typeFaces()[textRole],\n },\n textColor && {\n color: this.colors()[textColor],\n },\n ]);\n };\n\n componentStyle = (componentName: ComponentName, variant: Variant, size: Size) =>\n computed(() => {\n const component = this.component(componentName)();\n const { fixed, variants, sizes } = component;\n const variantStyle = variants && variants[variant];\n const sizeStyle = sizes && sizes[size];\n return { ...fixed, ...variantStyle, ...sizeStyle };\n });\n\n getSpacing = (size: NullableSize) => {\n return size === 'none' ? 'none' : this.spacing()[size];\n };\n\n getThickness = (thickness: Thickness) => this.theme().thicknesses[thickness];\n\n getContentColor = (token: ContainerColorToken, useVariant?: boolean) =>\n useVariant\n ? this.colors()[`on-${token}-variant` as ColorToken]\n : this.colors()[`on-${token}` as ColorToken];\n\n colorPair = (token?: ContainerColorToken, colorVariant?: boolean): NullableStyleExpression => {\n if (!token) return;\n const backgroundColor = this.colors()[token];\n const color = this.getContentColor(token, colorVariant);\n return { color, backgroundColor };\n };\n\n backgroundColor = (token?: ColorKey): NullableStyleExpression => {\n return !token ? undefined : { backgroundColor: this.colors()[token] };\n };\n\n backgroundImage = (url?: string): NullableStyleExpression => {\n return !url ? undefined : { backgroundImage: `url(${url})` };\n };\n\n getContainerColors = (color: Variant, useVariant?: boolean) => {\n const token = (color + '-container') as ContainerColorToken;\n return this.colorPair(token, useVariant);\n };\n\n /**\n * Shared keyboard-focus indicator (WCAG 2.4.7). Spread into a component's\n * Emotion styles: `...this.theme.focusRing()` or `focusRing('primary')`.\n */\n focusRing = (token?: ColorToken) => ({\n '&:focus-visible': {\n outline: `2px solid ${token ? this.colors()[token] : 'currentColor'}`,\n outlineOffset: '2px',\n },\n });\n\n typeface = (typeface?: Typeface) => {\n const typefaces = this.typeFaces();\n return typeface && typefaces[typeface];\n };\n\n colorPalette = () => this.colors();\n\n color(color?: ColorKey): NullableStyleExpression {\n return !color ? undefined : { color: this.colors()[color] };\n }\n\n getDashedBorder(\n color: ColorKey | undefined,\n radius: Radius | undefined\n ): NullableStyleExpression {\n if (!color) return;\n\n const r = radius && this.radii()[radius];\n const borderRadius = r ? safeParseInt(r) : 0;\n const colors = this.colors()[color];\n const strokeColor = colors?.replace('#', '%23');\n\n return {\n backgroundImage: `url(\"data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='${borderRadius}' ry='${borderRadius}' stroke='${strokeColor}' stroke-width='4' stroke-dasharray='6%2c 14' stroke-dashoffset='0' stroke-linecap='square'/%3e%3c/svg%3e\")`,\n borderRadius,\n };\n }\n\n radius(size: Radius | undefined): NullableStyleExpression {\n return !size ? undefined : { borderRadius: this.radii()[size] };\n }\n\n getRadiusLeft(size: Radius | undefined): NullableStyleExpression {\n if (!size) return;\n return {\n borderBottomLeftRadius: this.radii()[size],\n borderTopLeftRadius: this.radii()[size],\n };\n }\n\n getRadiusRight(size: Radius | undefined): NullableStyleExpression {\n if (!size) return;\n return {\n borderBottomRightRadius: this.radii()[size],\n borderTopRightRadius: this.radii()[size],\n };\n }\n\n getRadiusTop(size: Radius | undefined): NullableStyleExpression {\n if (!size) return;\n return {\n borderTopLeftRadius: this.radii()[size],\n borderTopRightRadius: this.radii()[size],\n };\n }\n\n getRadiusBottom(size: Radius | undefined): NullableStyleExpression {\n if (!size) return;\n return {\n borderBottomLeftRadius: this.radii()[size],\n borderBottomRightRadius: this.radii()[size],\n };\n }\n\n padding(size: OptionalSize): NullableStyleExpression {\n return !size ? undefined : { padding: this.spacing()[size] };\n }\n\n horizontalPadding(size: OptionalSize): NullableStyleExpression {\n return !size ? undefined : { paddingInline: this.spacing()[size] };\n }\n\n verticalPadding(size: OptionalSize): NullableStyleExpression {\n return !size ? undefined : { paddingBlock: this.spacing()[size] };\n }\n\n paddingLeft(size: OptionalSize): NullableStyleExpression {\n return !size ? undefined : { paddingLeft: this.spacing()[size] };\n }\n\n paddingRight(size: OptionalSize): NullableStyleExpression {\n return !size ? undefined : { paddingRight: this.spacing()[size] };\n }\n\n paddingTop(size: OptionalSize): NullableStyleExpression {\n return !size ? undefined : { paddingTop: this.spacing()[size] };\n }\n\n paddingBottom(size: OptionalSize): NullableStyleExpression {\n return !size ? undefined : { paddingBottom: this.spacing()[size] };\n }\n\n border(border: Border | undefined): NullableStyleExpression {\n return !border ? undefined : { border: this.borders()[border] };\n }\n\n borderTop(border: Border | undefined): NullableStyleExpression {\n return !border ? undefined : { borderTop: this.borders()[border] };\n }\n\n borderBottom(border: Border | undefined): NullableStyleExpression {\n return !border ? undefined : { borderBottom: this.borders()[border] };\n }\n\n borderLeft(border: Border | undefined): NullableStyleExpression {\n return !border ? undefined : { borderLeft: this.borders()[border] };\n }\n\n borderRight(border: Border | undefined): NullableStyleExpression {\n return !border ? undefined : { borderRight: this.borders()[border] };\n }\n\n boxShadow(shadow: Shadow | undefined) {\n return !shadow ? undefined : { boxShadow: this.shadows()[shadow] };\n }\n\n gap(gap: OptionalSize): NullableStyleExpression {\n return !gap || gap === 'none' ? undefined : { gap: this.spacing()[gap] };\n }\n\n zIndex(element: ZIndexableElements | undefined): NullableStyleExpression {\n return !element ? undefined : { zIndex: Z_INDEX[element] };\n }\n\n borderColor(borderColor: ColorToken): NullableStyleExpression {\n return { borderColor: this.colors()[borderColor] };\n }\n\n getComponentTheme<T>(componentName: ComponentName) {\n return this.component<T>(componentName);\n }\n\n // Used to get an \"always-defined\" options object from a component theme.\n getComponentOptions = <T>(componentName: ComponentName) =>\n linkedSignal({\n source: this.getComponentTheme<T>(componentName),\n computation: () => {\n return this.getComponentTheme<T>(componentName)().options || ({} as T);\n },\n });\n\n componentOptions = (componentName: ComponentName) =>\n computed(() => this.component(componentName)().options || {});\n\n style(prop: string, value: string | number | undefined): NullableStyleExpression {\n return !value ? undefined : { [prop]: value };\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { css } from '@emotion/css';\nimport { ThemeService } from '../../theming';\n\nexport type ImagePosition = 'top' | 'bottom' | 'left' | 'right' | 'center' | string;\n\n@Component({\n selector: 'uni-background, Background',\n imports: [],\n template: `<ng-content></ng-content>`,\n host: { '[class]': 'className()' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UniBackgroundComponent {\n theme = inject(ThemeService);\n\n image = input<string>();\n imagePosition = input<ImagePosition>();\n imageSize = input<'cover' | 'contain' | number | string>();\n height = input<number | string>('100%');\n width = input<number | string>();\n\n protected readonly className = computed(() => {\n return css([\n {\n backgroundRepeat: 'no-repeat',\n display: 'block',\n ...this.theme.backgroundImage(this.image()),\n },\n this.theme.style('backgroundPosition', this.imagePosition()),\n this.theme.style('backgroundSize', this.imageSize()),\n this.theme.style('height', this.height()),\n this.theme.style('width', this.width()),\n ]);\n });\n}\n","/**\n * Background Component Barrel File\n *\n * This file exports all public-facing elements of the background component.\n */\n\nexport { UniBackgroundComponent } from './background.component';\nexport type { ImagePosition } from './background.component';\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n InjectionToken,\n input,\n} from '@angular/core';\nimport type { ComponentName, Size, Variant } from '@uni-design-system/uni-core';\nimport { ThemeService } from '../../theming';\n\nexport const COMPONENT_NAME = new InjectionToken<ComponentName>('');\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [],\n template: ``,\n})\nexport class BaseComponent<T = unknown> {\n protected componentName = inject(COMPONENT_NAME);\n theme = inject(ThemeService);\n\n variant = input<Variant>('primary'); // TODO: Make Variant support undefined\n size = input<Size>('lg');\n\n componentTheme = computed(() => this.theme.getComponentTheme<T>(this.componentName)());\n\n componentOptions = computed(() => this.theme.getComponentOptions<T>(this.componentName)());\n\n style = computed(() =>\n this.theme.componentStyle(this.componentName, this.variant(), this.size())()\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { css } from '@emotion/css';\n\nimport { BaseComponent } from '../base';\nimport { COMPONENT_NAME } from '../base/base.component';\nimport type { UniBadgeOptions } from './badge.model';\nimport type { Variant } from '@uni-design-system/uni-core';\n\n@Component({\n selector: 'div[uni-badge], Badge',\n imports: [],\n template: `<ng-content></ng-content>`,\n providers: [{ provide: COMPONENT_NAME, useValue: 'badge' }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'className()' },\n})\nexport class UniBadgeComponent extends BaseComponent<UniBadgeOptions> {\n color = input<Variant | undefined>(undefined);\n useVariant = input<boolean>(false);\n width = input<number>();\n\n protected readonly className = computed(() => {\n const width = this.width();\n\n return css([\n {\n ...this.theme.getContainerColors(this.color() || 'primary', this.useVariant()),\n ...this.theme.typeface('badge'),\n display: 'inline-block',\n padding: '0 16px',\n ...this.theme.radius(this.componentOptions().borderRadius),\n textAlign: 'center',\n letterSpacing: 1,\n },\n width !== undefined && {\n minWidth: width - 32,\n },\n ]);\n });\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { css } from '@emotion/css';\n\nimport { ThemeService } from '../../theming/theme.service';\nimport type { ColorToken, Icons } from '@uni-design-system/uni-core';\n\n@Component({\n selector: 'uni-icon, Icon',\n imports: [],\n template: '',\n styleUrls: ['./icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n // Icons are decorative; meaningful icons get their name from the parent control\n host: {\n 'aria-hidden': 'true',\n '[class]': 'className()',\n '[style.-webkit-mask-image]': 'path()',\n },\n})\nexport class UniIconComponent {\n private themeService = inject(ThemeService);\n\n color = input<ColorToken>();\n name = input.required<keyof Icons>();\n\n protected readonly path = computed(\n () => `url(\"${this.themeService.theme().icons[this.name()]}\")`\n );\n\n protected readonly className = computed(() =>\n css([{ ...this.themeService.color(this.color()) }])\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { css } from '@emotion/css';\n\nimport type {\n ContainerColorToken,\n OptionalAlignContent,\n OptionalAlignItems,\n OptionalAlignSelf,\n OptionalBorder,\n OptionalColor,\n OptionalDisplay,\n OptionalFlexDirection,\n OptionalJustifyContent,\n OptionalOverflow,\n OptionalPosition,\n OptionalRadius,\n OptionalSize,\n OptionalTextAlign,\n OptionalWrap,\n Shadow,\n Variant,\n ZIndexableElements,\n} from '@uni-design-system/uni-core';\n\nimport { ThemeService } from '../../../theming';\n\n@Component({\n selector: 'div[uni-box-layout], Box, div[box-layout]',\n imports: [],\n template: `<ng-content></ng-content>`,\n host: { '[class]': 'boxClassName()' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UniBoxComponent {\n theme = inject(ThemeService);\n\n color = input<ContainerColorToken>();\n backgroundColor = input<OptionalColor>();\n borderRadius = input<OptionalRadius>();\n borderRadiusLeft = input<OptionalRadius>();\n borderRadiusRight = input<OptionalRadius>();\n borderRadiusTop = input<OptionalRadius>();\n borderRadiusBottom = input<OptionalRadius>();\n padding = input<OptionalSize>();\n paddingHorizontal = input<OptionalSize>();\n paddingVertical = input<OptionalSize>();\n paddingLeft = input<OptionalSize>();\n paddingRight = input<OptionalSize>();\n paddingTop = input<OptionalSize>();\n paddingBottom = input<OptionalSize>();\n border = input<OptionalBorder>();\n borderTop = input<OptionalBorder>();\n borderBottom = input<OptionalBorder>();\n borderLeft = input<OptionalBorder>();\n borderRight = input<OptionalBorder>();\n dashBorder = input<boolean>(false);\n alignSelf = input<OptionalAlignSelf>();\n alignItems = input<OptionalAlignItems>();\n alignContent = input<OptionalAlignContent>();\n justifyContent = input<OptionalJustifyContent>();\n grow = input<number>();\n display = input<OptionalDisplay>();\n position = input<OptionalPosition>();\n inset = input<number | string>();\n height = input<number | string>();\n minHeight = input<number | string>();\n maxHeight = input<number | string>();\n width = input<number | string>();\n minWidth = input<number | string>();\n maxWidth = input<number | string>();\n ignoreDir = input(true);\n gridArea = input<string>();\n gridColumn = input<string>();\n gridRow = input<string>();\n overflow = input<OptionalOverflow>();\n elevation = input<Shadow>(); // Deprecated, use shadow instead\n shadow = input<Shadow>();\n gap = input<OptionalSize>();\n fullWidth = input<boolean>();\n fullHeight = input<boolean>();\n flexDirection = input<OptionalFlexDirection>();\n textAlign = input<OptionalTextAlign>();\n wrapItems = input<OptionalWrap>(undefined);\n zIndex = input<ZIndexableElements>();\n\n protected readonly boxClassName = computed(() => {\n return css([\n {\n ...this.theme.colorPair(this.color()),\n ...this.theme.backgroundColor(this.backgroundColor()),\n display: this.alignSelf() ? 'flex' : 'block',\n position: this.position(),\n inset: this.inset(),\n boxSizing: 'border-box',\n height: this.height(),\n minHeight: this.minHeight(),\n maxHeight: this.maxHeight(),\n width: this.width(),\n minWidth: this.minWidth(),\n maxWidth: this.maxWidth(),\n flexWrap: this.wrapItems(),\n overflow: this.overflow(),\n ...this.theme.padding(this.padding()),\n ...this.theme.horizontalPadding(this.paddingHorizontal()),\n ...this.theme.verticalPadding(this.paddingVertical()),\n ...this.theme.paddingLeft(this.paddingLeft()),\n ...this.theme.paddingRight(this.paddingRight()),\n ...this.theme.paddingTop(this.paddingTop()),\n ...this.theme.paddingBottom(this.paddingBottom()),\n ...this.theme.boxShadow(this.elevation()),\n ...this.theme.boxShadow(this.shadow()),\n ...this.theme.radius(this.borderRadius()),\n ...this.theme.getRadiusLeft(this.borderRadiusLeft()),\n ...this.theme.getRadiusRight(this.borderRadiusRight()),\n ...this.theme.getRadiusTop(this.borderRadiusTop()),\n ...this.theme.getRadiusBottom(this.borderRadiusBottom()),\n ...this.theme.borderTop(this.borderTop()),\n ...this.theme.borderBottom(this.borderBottom()),\n ...this.theme.borderLeft(this.borderLeft()),\n ...this.theme.borderRight(this.borderRight()),\n ...this.theme.gap(this.gap()),\n ...this.theme.style('display', this.display()),\n ...this.theme.style('alignSelf', this.alignSelf()),\n ...this.theme.style('alignItems', this.alignItems()),\n ...this.theme.style('justifyContent', this.justifyContent()),\n ...this.theme.style('alignContent', this.alignContent()),\n ...this.theme.style('flexGrow', this.grow()),\n ...this.theme.style('flexDirection', this.flexDirection()),\n ...this.theme.style('gridArea', this.gridArea()),\n ...this.theme.style('gridColumn', this.gridColumn()),\n ...this.theme.style('gridRow', this.gridRow()),\n ...this.theme.style('textAlign', this.textAlign()),\n ...this.theme.zIndex(this.zIndex()),\n },\n this.border() &&\n !this.dashBorder() && {\n ...this.theme.border(this.border()),\n },\n this.border() &&\n this.dashBorder() && {\n ...this.theme.getDashedBorder(this.border() as Variant, this.borderRadius()),\n },\n\n this.fullWidth() && {\n width: '100%',\n },\n this.fullHeight() && {\n height: '100%',\n },\n\n this.ignoreDir() &&\n (this.flexDirection() ?? 'row') === 'row' && {\n '&:dir(rtl)': {\n flexDirection: 'row-reverse',\n },\n },\n this.ignoreDir() &&\n (this.flexDirection() ?? 'row') === 'row-reverse' && {\n '&:dir(rtl)': {\n flexDirection: 'row',\n },\n },\n ]);\n });\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { UniBoxComponent } from '../box/box.component';\nimport type {\n OptionalAlignItems,\n OptionalDisplay,\n OptionalJustifyContent,\n} from '@uni-design-system/uni-core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'div[uni-center-layout], div[center-layout]',\n imports: [],\n template: `<ng-content></ng-content>`,\n})\nexport class UniCenterComponent extends UniBoxComponent {\n override display = input<OptionalDisplay>('flex');\n override justifyContent = input<OptionalJustifyContent>('center');\n override alignItems = input<OptionalAlignItems>('center');\n\n constructor() {\n super();\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { css } from '@emotion/css';\n\n@Component({\n selector: 'GridArea',\n imports: [],\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'className()' },\n})\nexport class UniGridAreaComponent {\n area = input.required<string>();\n\n protected readonly className = computed(() => css({ gridArea: this.area() }));\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { css } from '@emotion/css';\n\nimport { UniBoxComponent } from '../box/box.component';\nimport type { OptionalDisplay, Thickness, Variant } from '@uni-design-system/uni-core';\n\n@Component({\n selector: 'div[uni-grid-layout], Grid, div[grid-layout]',\n imports: [],\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'gridClassName()' },\n})\nexport class UniGridComponent extends UniBoxComponent {\n override display = input<OptionalDisplay>('grid');\n\n templateAreas = input<string>();\n templateColumns = input<string>();\n templateRows = input<string>();\n outline = input<Thickness>();\n outlineColor = input<Variant>();\n\n protected readonly gridClassName = computed(() =>\n css([\n this.templateAreas() && {\n gridTemplateAreas: this.templateAreas(),\n },\n this.templateColumns() && {\n gridTemplateColumns: this.templateColumns(),\n },\n this.templateRows() && {\n gridTemplateRows: this.templateRows(),\n },\n this.outline() && {\n gap: this.theme.getThickness(this.outline()!),\n },\n this.outlineColor() && {\n backgroundColor: this.theme.colorPalette()[this.outlineColor()!],\n },\n ])\n );\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { UniBoxComponent } from '../box/box.component';\nimport type { OptionalDisplay, OptionalFlexDirection } from '@uni-design-system/uni-core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'div[uni-row-layout], Row, div[row-layout]',\n template: `<ng-content></ng-content>`,\n})\nexport class UniRowComponent extends UniBoxComponent {\n override display = input<OptionalDisplay>('flex');\n override flexDirection = input<OptionalFlexDirection>('row');\n override minWidth = input<number | string | undefined>('fit-content');\n\n constructor() {\n super();\n }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { UniBoxComponent } from '../box/box.component';\nimport type { OptionalDisplay, OptionalFlexDirection } from '@uni-design-system/uni-core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'div[uni-stack-layout], Stack, div[stack-layout]',\n template: `<ng-content></ng-content>`,\n})\nexport class UniStackComponent extends UniBoxComponent {\n override display = input<OptionalDisplay>('flex');\n override flexDirection = input<OptionalFlexDirection>('column');\n override minHeight = input<number | string | undefined>('fit-content');\n\n constructor() {\n super();\n }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { UniBoxComponent } from '../box/box.component';\nimport type { OptionalDisplay, OptionalWrap } from '@uni-design-system/uni-core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'div[uni-wrap-layout], Wrap, div[wrap-layout]',\n imports: [],\n template: `<ng-content></ng-content>`,\n})\nexport class UniWrapComponent extends UniBoxComponent {\n override display = input<OptionalDisplay>('flex');\n override wrapItems = input<OptionalWrap>('wrap');\n\n constructor() {\n super();\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { css } from '@emotion/css';\nimport { BaseComponent } from '../base';\nimport type { SymbolFill, SymbolGrade, SymbolOptions, SymbolWeight } from './symbol.model';\nimport { COMPONENT_NAME } from '../base/base.component';\n\n@Component({\n selector: 'uni-symbol, Symbol',\n imports: [],\n template: `{{ name() }}`,\n providers: [{ provide: COMPONENT_NAME, useValue: 'symbol' }],\n // Icons are decorative: hide the ligature text (e.g. \"chevron_left\") from\n // screen readers. Meaningful icons get their name from the parent control.\n host: {\n '[class]': 'className()',\n 'aria-hidden': 'true',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UniSymbolComponent extends BaseComponent<SymbolOptions> {\n name = input.required<string>();\n\n fill = input<SymbolFill>();\n weight = input<SymbolWeight>();\n grade = input<SymbolGrade>();\n opticalSize = input<number>();\n\n protected readonly className = computed(() => {\n const settings =\n `'FILL' ${this.fill() || this.componentOptions().fill || 0}, ` +\n `'wght' ${this.weight() || this.componentOptions().weight || 400}, ` +\n `'GRAD' ${this.grade() || this.componentOptions().grade || 0}, ` +\n `'opsz' ${this.opticalSize() || this.componentOptions().opticalSize || 24}`;\n\n return (\n 'material-symbols-rounded ' +\n css({\n fontVariationSettings: settings,\n fontSize: `${this.opticalSize() || this.componentOptions().opticalSize || 24}px`,\n })\n );\n });\n}\n","// https://css-tricks.com/how-to-recreate-the-ripple-effect-of-material-design-buttons/\nimport { Directive, ElementRef, inject, Renderer2 } from '@angular/core';\nimport { css } from '@emotion/css';\n\n@Directive({\n selector: '[uniRipple]',\n host: {\n '(click)': 'onClick($event)',\n },\n})\nexport class RippleDirective {\n private renderer = inject(Renderer2);\n el = inject(ElementRef);\n\n hostEl;\n\n constructor() {\n this.hostEl = this.el.nativeElement;\n }\n\n onClick(e: MouseEvent) {\n if (!e) return;\n let ripple, d;\n if (this.hostEl.querySelector(`.${this.rippleClass}`) === null) {\n ripple = this.renderer.createElement('span');\n this.renderer.addClass(ripple, this.rippleClass);\n this.renderer.appendChild(this.hostEl, ripple);\n }\n\n ripple = this.hostEl.querySelector(`.${this.rippleClass}`);\n this.renderer.appendChild(this.hostEl, ripple);\n this.renderer.removeClass(ripple, this.animateClass);\n\n if (!ripple.offsetHeight && !ripple.offsetWidth) {\n d = Math.max(this.hostEl.offsetWidth, this.hostEl.offsetHeight);\n this.renderer.setStyle(ripple, 'width', d + 'px');\n this.renderer.setStyle(ripple, 'height', d + 'px');\n }\n\n const x = e.pageX - this.hostEl.offsetLeft - ripple.offsetWidth / 2;\n const y = e.pageY - this.hostEl.offsetTop - ripple.offsetHeight / 2;\n\n this.renderer.setStyle(ripple, 'top', y + 'px');\n this.renderer.setStyle(ripple, 'left', x + 'px');\n this.renderer.addClass(ripple, this.animateClass);\n }\n\n rippleClass = css({\n display: 'block',\n position: 'absolute',\n background: 'rgba(255, 255, 255, 0.3)',\n borderRadius: '100%',\n transform: 'scale(0)',\n });\n\n animateClass = css({\n animation: 'ripple 0.65s linear',\n\n '@keyframes ripple': {\n '100%': {\n opacity: 0,\n transform: 'scale(2.5)',\n },\n },\n });\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { css } from '@emotion/css';\n\nimport { BaseComponent, COMPONENT_NAME } from '../base/base.component';\nimport { UniIconComponent } from '../icon';\nimport { UniBoxComponent } from '../layout';\nimport { UniSymbolComponent } from '../symbol';\nimport { RippleDirective } from '../../directives/ripple';\n\n@Component({\n selector: 'button[uni-text-button], Button, button[text-button]',\n template: `@if (loading()) {\n <Box [class]=\"spinnerBox\"><uni-icon name=\"spinner\" /></Box>\n }\n @if (symbolLeft()) {\n <Symbol [name]=\"symbolLeft()!\" class=\"symbolLeft\" />\n }\n <span><ng-content></ng-content></span>\n @if (symbolRight()) {\n <Symbol [name]=\"symbolRight()!\" class=\"symbolRight\" />\n } `,\n providers: [{ provide: COMPONENT_NAME, useValue: 'button' }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n RippleDirective, // Keep this import\n UniIconComponent,\n UniBoxComponent,\n UniSymbolComponent,\n ],\n host: {\n '[attr.disabled]': 'disable() || loading() || null',\n '[attr.aria-busy]': \"loading() ? 'true' : null\",\n '[class]': 'className()',\n },\n hostDirectives: [{ directive: RippleDirective }],\n})\nexport class UniButtonComponent extends BaseComponent {\n readonly disable = input<boolean | undefined>(false);\n readonly loading = input<boolean | undefined>(false);\n readonly fullWidth = input<boolean>(false);\n\n readonly symbolLeft = input<string>();\n readonly symbolRight = input<string>();\n\n spinnerBox = css({\n position: 'absolute',\n left: 0,\n width: '100%',\n height: '100%',\n paddingTop: '6%',\n paddingBottom: '6%',\n });\n\n protected readonly className = computed(() =>\n css([\n this.style() && {\n ...this.style(), // TODO: Set priority on theme-defined styles\n },\n {\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n overflow: 'hidden',\n outline: 0,\n border: 0,\n cursor: 'pointer',\n transition: 'all 0.28s ease',\n\n '&:disabled': {\n cursor: 'not-allowed !important',\n },\n '& .symbolLeft': {\n marginLeft: -6,\n marginRight: 4,\n fontSize: this.symbolSize(),\n },\n '& span': {\n alignContent: 'center',\n flexGrow: 1,\n whiteSpace: 'nowrap',\n },\n '& .symbolRight': {\n marginRight: -6,\n marginLeft: 4,\n fontSize: this.symbolSize(),\n },\n },\n // Hover/pressed styling now lives in the theme's button variants\n // (solid vs. hollow, per-variant states). Only the keyboard-focus\n // indicator (WCAG 2.4.7) stays component-owned.\n {\n '&:focus-visible': {\n outline: `2px solid ${this.theme.colors()[this.variant()]}`,\n outlineOffset: '2px',\n },\n },\n this.fullWidth() && {\n width: '100%',\n },\n !this.loading() && {\n '&:disabled': {\n ...this.componentTheme().variants?.disabled,\n },\n },\n this.loading() && {\n '&:disabled symbol': {\n opacity: 0,\n },\n '&:disabled span': {\n opacity: 0,\n },\n },\n ])\n );\n\n symbolSize = computed(() => {\n const fontSize = parseFloat(String(this.style()['fontSize'] ?? ''));\n // Fall back to the default icon size when the theme defines no fontSize\n return (Number.isNaN(fontSize) ? 16 : fontSize) + 4;\n });\n}\n","import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';\nimport { css } from '@emotion/css';\nimport { ThemeService } from '../../theming';\n\n@Component({\n selector: 'uni-button-group, ButtonGroup',\n imports: [],\n template: ` <ng-content></ng-content>`,\n host: { '[class]': 'className()' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UniButtonGroupComponent {\n private themeService = inject(ThemeService);\n\n protected readonly className = computed(() => {\n return css({\n display: 'inline-flex',\n\n '& button': {\n ...this.themeService.border('quaternary'),\n marginRight: -1,\n },\n\n '& button:first-child': {\n borderTopLeftRadius: 4,\n borderBottomLeftRadius: 4,\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n },\n\n '& button:not(:first-child):not(:last-child)': {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n },\n\n '& button:last-child': {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n borderTopRightRadius: 4,\n borderBottomRightRadius: 4,\n marginRight: 0,\n },\n });\n });\n}\n","/**\n * UniButtonGroupComponent Barrel File\n *\n * This file exports all public-facing elements of the button-group component.\n */\n\nexport { UniButtonGroupComponent } from './button-group.component';\nexport type { ButtonGroupConfig, ButtonGroupItem } from './button-group.model';\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { BaseComponent, COMPONENT_NAME } from '../../base/base.component';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'uni-card-content, CardContent',\n imports: [],\n templateUrl: './card-content.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'cardContent' }],\n styleUrls: ['./card-content.component.scss'],\n})\nexport class UniCardContentComponent extends BaseComponent {}\n","<div [style]=\"style()\">\n <ng-content></ng-content>\n</div>\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { css } from '@emotion/css';\n\nimport type {\n ColorKey,\n OptionalDisplay,\n OptionalTextAlign,\n Typeface,\n} from '@uni-design-system/uni-core';\nimport { ThemeService } from '../../theming';\n\n@Component({\n selector: 'uni-text, Text',\n imports: [],\n template: '<ng-content></ng-content>',\n host: { '[class]': 'className()' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UniTextComponent {\n theme = inject(ThemeService);\n\n typeface = input<Typeface>('title-small');\n color = input<ColorKey>();\n display = input<OptionalDisplay>();\n align = input<OptionalTextAlign>();\n nowrap = input<boolean>();\n maxWidth = input<number>();\n ellipsis = input<boolean>(false);\n\n protected readonly className = computed(() => {\n return css([\n {\n ...this.theme.typeface(this.typeface()),\n ...this.theme.color(this.color()),\n display: this.display(),\n },\n this.align() && {\n textAlign: this.align(),\n },\n this.nowrap() && {\n whiteSpace: 'nowrap',\n },\n this.maxWidth() && {\n maxWidth: this.maxWidth(),\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n display: 'inline-block',\n },\n this.ellipsis() && {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n minWidth: 0,\n },\n ]);\n });\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { BaseComponent, COMPONENT_NAME } from '../base/base.component';\nimport type { UniCardOptions } from './card.model';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'uni-card, Card',\n imports: [],\n templateUrl: './card.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'card' }],\n})\nexport class UniCardComponent extends BaseComponent<UniCardOptions> {}\n","<div [style]=\"style()\">\n <ng-content></ng-content>\n</div>\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { css } from '@emotion/css';\nimport { BaseComponent, COMPONENT_NAME } from '../../base/base.component';\nimport { UniTextComponent } from '../../text';\nimport { UniCardComponent } from '../card.component';\nimport type { Typeface } from '@uni-design-system/uni-core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'uni-card-header, CardHeader',\n imports: [UniTextComponent, NgClass],\n templateUrl: './card-header.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'cardHeader' }],\n styleUrls: ['./card-header.component.scss'],\n})\nexport class UniCardHeaderComponent extends BaseComponent {\n private card = inject(UniCardComponent, {\n optional: true,\n host: true,\n skipSelf: true,\n });\n\n title = input<string>('');\n titleTextRole = input<Typeface>('title-large');\n\n constructor() {\n super();\n\n // this.variant = this.card?.variant;\n }\n\n className = css({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n });\n}\n","<div [style]=\"style()\" [ngClass]=\"className\">\n <Text [typeface]=\"titleTextRole()\">{{ title() }}</Text>\n <ng-content></ng-content>\n</div>\n","import { ChangeDetectionStrategy, Component, computed, input, model } from '@angular/core';\nimport { FormCheckboxControl } from '@angular/forms/signals';\nimport { css } from '@emotion/css';\nimport type { ColorToken } from '@uni-design-system/uni-core';\nimport { BaseComponent } from '../base';\nimport { COMPONENT_NAME } from '../base/base.component';\nimport { UniTextComponent } from '../text/text.component';\nimport type { UniCheckboxOptions } from './checkbox.model';\n\n@Component({\n selector: 'uni-checkbox, Checkbox',\n imports: [UniTextComponent],\n templateUrl: './checkbox.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'checkbox' }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UniCheckboxComponent\n extends BaseComponent<UniCheckboxOptions>\n implements FormCheckboxControl\n{\n // --- REQUIRED SIGNALS (populated by FormCheckboxControl) ---\n readonly checked = model<boolean>(false);\n readonly disabled = input(false);\n readonly touched = model(false);\n readonly invalid = input(false);\n readonly dirty = input(false);\n\n /** Synced from required() validators by the Signal Forms [field] directive. */\n readonly required = input(false);\n\n /**\n * Id(s) of external element(s) describing this control — typically your\n * app-rendered error message — exposed as aria-describedby.\n */\n readonly ariaDescribedBy = input<string>();\n\n // --- CONFIGURATION ---\n readonly label = input<string>();\n\n /**\n * Mixed state for \"select all\"-style parent checkboxes. Cleared\n * automatically on the next user interaction, matching native behavior.\n */\n readonly indeterminate = model<boolean>(false);\n\n // Only show errors if the user has actually interacted with the field\n protected readonly showError = computed(() => this.invalid() && (this.touched() || this.dirty()));\n\n markAsTouched() {\n this.touched.set(true);\n }\n\n handleChange(event: Event) {\n this.indeterminate.set(false);\n this.checked.set((event.target as HTMLInputElement).checked);\n this.markAsTouched();\n }\n\n protected readonly checkboxLabel = computed(() =>\n css({\n userSelect: 'none',\n cursor: this.disabled() ? 'not-allowed' : 'pointer',\n marginBottom: 0,\n display: 'flex',\n alignItems: 'center',\n gap: 8,\n opacity: this.disabled() ? 0.6 : 1,\n\n '&:hover .checkbox svg path': this.disabled()\n ? {}\n : {\n strokeDashoffset: 0,\n },\n\n '& .checkbox': {\n height: this.componentOptions().size,\n width: this.componentOptions().size,\n },\n\n '& .checkbox svg': {\n display: 'block',\n },\n\n '& .checkbox svg .checkbox-box': {\n fill: '#FFF',\n stroke: this.getThemeColor(this.variant()),\n strokeWidth: 2,\n rx: this.componentOptions().borderRadius || 2,\n ry: this.componentOptions().borderRadius || 2,\n transition: 'all 0.2s ease',\n },\n\n '& .checkbox svg .checkbox-check': {\n fill: 'none',\n stroke: '#FFF',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n strokeDasharray: 18,\n strokeDashoffset: 18,\n transition: 'all 0.5s ease',\n },\n\n '& .checkbox svg .checkbox-dash': {\n stroke: '#FFF',\n strokeWidth: 2,\n strokeLinecap: 'round',\n opacity: 0,\n transition: 'opacity 0.2s ease',\n },\n })\n );\n\n protected readonly checkboxInput = computed(() =>\n css({\n position: 'absolute',\n zIndex: -1,\n width: 0,\n height: 0,\n opacity: 0,\n\n '&:checked + .checkbox': {\n borderColor: this.getThemeColor(this.variant()),\n },\n\n '&:checked + .checkbox svg .checkbox-box': {\n fill: this.getThemeColor(this.variant()),\n },\n\n '&:checked + .checkbox svg .checkbox-check': {\n strokeDashoffset: 0,\n },\n\n '&:indeterminate + .checkbox svg .checkbox-box': {\n fill: this.getThemeColor(this.variant()),\n },\n\n '&:indeterminate + .checkbox svg .checkbox-dash': {\n opacity: 1,\n },\n\n '&:disabled + .checkbox': {\n cursor: 'not-allowed',\n },\n\n '&:focus + .checkbox': {\n position: 'relative',\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n top: '-4px',\n left: '-4px',\n right: '-4px',\n bottom: '-4px',\n border: `2px solid ${this.getThemeColor(this.variant())}`,\n borderRadius: `${(Number(this.componentOptions().borderRadius) || 2) + 4}px`,\n pointerEvents: 'none',\n },\n },\n })\n );\n\n getThemeColor(token: ColorToken) {\n const colors = this.theme.colors();\n return colors[token] ? colors[token] : colors['primary'];\n }\n}\n","<label [class]=\"checkboxLabel()\">\n <input\n type=\"checkbox\"\n [class]=\"checkboxInput()\"\n [checked]=\"checked()\"\n [indeterminate]=\"indeterminate()\"\n (change)=\"handleChange($event)\"\n [disabled]=\"disabled()\"\n [attr.aria-invalid]=\"showError() ? true : null\"\n [attr.aria-required]=\"required() ? true : null\"\n [attr.aria-describedby]=\"ariaDescribedBy() || null\"\n />\n <div class=\"checkbox\">\n <svg viewBox=\"0 0 20 20\" aria-hidden=\"true\">\n <rect class=\"checkbox-box\" x=\"1\" y=\"1\" width=\"18\" height=\"18\"></rect>\n <polyline class=\"checkbox-check\" points=\"4 11 8 15 16 6\"></polyline>\n <line class=\"checkbox-dash\" x1=\"5\" y1=\"10\" x2=\"15\" y2=\"10\"></line>\n </svg>\n </div>\n @if (label()) {\n <Text typeface=\"label\">{{ label() }}</Text>\n }\n</label>\n","import { Directive, ElementRef, inject, OnInit, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[uniBodyRender]',\n})\nexport class BodyRenderDirective implements OnInit {\n private el = inject(ElementRef);\n private renderer = inject(Renderer2);\n\n ngOnInit() {\n const element = this.el.nativeElement;\n this.renderer.appendChild(document.body, element);\n }\n}\n","import { Directive, output, signal } from '@angular/core';\n\n@Directive({\n selector: '[uni-drag-n-drop], [dragAndDrop]',\n host: {\n '[style.opacity]': 'workspaceOpacity()',\n '(dragover)': 'onDragOver($event)',\n '(dragleave)': 'onDragLeave($event)',\n '(drop)': 'onDrop($event)',\n },\n})\nexport class DragAndDropDirective {\n // TODO(v4): rename to fileDropped — renaming is breaking\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onFileDropped = output<FileList>();\n\n protected workspaceOpacity = signal('1');\n\n // Dragover listener, when files are dragged over our host element\n onDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.workspaceOpacity.set('0.5');\n }\n\n // Dragleave listener, when files are dragged away from our host element\n onDragLeave(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.workspaceOpacity.set('1');\n }\n\n // Drop listener, when files are dropped on our host element\n onDrop(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.workspaceOpacity.set('1');\n const files = event.dataTransfer?.files;\n if (files && files.length > 0) {\n this.onFileDropped.emit(files);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { css } from '@emotion/css';\n\nimport { type IconName } from '../icon/icon.record';\nimport { RippleDirective } from '../../directives';\nimport { UniSymbolComponent } from '../symbol';\nimport { UniIconComponent } from '../icon';\nimport { ThemeService } from '../../theming/theme.service';\nimport { visuallyHidden } from '../../cdk';\nimport type { Size, Variant } from '@uni-design-system/uni-core';\n\n@Component({\n selector: 'button[uni-icon-button], button[icon-button]',\n imports: [UniSymbolComponent, UniIconComponent],\n template: `\n @if (loading()) {\n <Icon name=\"spinner\" />\n } @else if (symbolName()) {\n <Symbol [name]=\"symbolName()!\" [opticalSize]=\"opticalSize()\" />\n } @else if (iconName()) {\n <Icon [name]=\"iconName()!\" />\n }\n <!-- Projected text is the button's accessible name (visually hidden) -->\n <span [class]=\"srOnlyClass\"><ng-content /></span>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.disabled]': 'disable() || loading() || null',\n '[attr.aria-busy]': \"loading() ? 'true' : null\",\n '[attr.aria-label]': 'ariaLabel() || null',\n '[class]': 'className()',\n },\n hostDirectives: [{ directive: RippleDirective }],\n})\nexport class UniIconButtonComponent {\n private theme = inject(ThemeService);\n config = this.theme.component('iconButton');\n\n /**\n * Accessible name for the button. Alternative to projecting text content\n * (`<button icon-button>Close</button>`); one of the two is required for\n * an icon-only button to be announced correctly.\n */\n ariaLabel = input<string>();\n\n iconName = input<IconName>();\n symbolName = input<string>();\n variant = input<Variant>('ghost');\n size = input<Size>('lg');\n disable = input<boolean>();\n loading = input<boolean>();\n opticalSize = input(24);\n\n protected readonly srOnlyClass = css(visuallyHidden);\n\n protected readonly className = computed(() => {\n const { sizes, variants } = this.config();\n const sizeConfig = sizes && sizes[this.size()];\n const colorConfig = variants && variants[this.variant()];\n\n return css([\n {\n position: 'relative',\n overflow: 'hidden',\n outline: 0,\n border: 0,\n cursor: 'pointer',\n transition: 'all 0.28s ease',\n borderRadius: 999,\n display: 'block',\n\n '&:disabled': {\n cursor: 'not-allowed !important',\n },\n\n '& symbol': {\n fontSize: 'inherit',\n lineHeight: 'inherit',\n },\n },\n sizeConfig && {\n ...sizeConfig,\n },\n colorConfig && {\n ...colorConfig,\n },\n this.symbolName() &&\n !this.loading() && {\n padding: 0,\n },\n this.variant() !== 'ghost' && {\n '&:hover': {\n ...this.theme.boxShadow('raised'),\n },\n },\n this.variant() === 'ghost' && {\n '&:hover': {\n backgroundColor: 'rgba(0,0,0,0.1)',\n },\n },\n !this.loading() && {\n '&:disabled': {\n ...this.config().variants?.disabled,\n },\n },\n ]);\n });\n}\n","import { ChangeDetectionStrategy, Component, effect, input, signal } from '@angular/core';\nimport { css } from '@emotion/css';\nimport { UniDatasource, UniRecordDatasource, UniServerSideDatasource } from '../../cdk';\nimport { BaseComponent } from '../base';\nimport { COMPONENT_NAME } from '../base/base.component';\nimport { UniIconComponent } from '../icon';\nimport { UniIconButtonComponent } from '../icon-button/icon-button.component';\nimport { UniCenterComponent, UniRowComponent } from '../layout';\nimport type { UniDataSearchOptions } from './data-search.model';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'uni-data-search',\n imports: [UniRowComponent, UniIconButtonComponent, UniIconComponent, UniCenterComponent],\n templateUrl: './data-search.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'dataSearch' }],\n})\nexport class UniDataSearchComponent<T> extends BaseComponent<UniDataSearchOptions> {\n datasource = input<UniDatasource<T>>();\n placeholder = input<string>('Search');\n fields = input<string[]>();\n\n searchValue = signal('');\n\n inputClassName!: string;\n\n constructor() {\n super();\n\n effect(() => {\n this.inputClassName = css({\n border: 'none',\n padding: 0,\n fontSize: 16,\n flexGrow: 1,\n height: 18,\n\n '&:focus-visible': {\n outline: 'none',\n },\n\n '&::placeholder': {\n ...this.theme.color(this.componentOptions().placeholderColor),\n },\n });\n });\n }\n\n onInput(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this.searchValue.set(value);\n this.filterData(value);\n }\n\n filterData(value: string) {\n const datasource = this.datasource();\n if (!datasource) return;\n\n const fields = this.fields();\n\n if (datasource instanceof UniRecordDatasource) {\n // Client-side filtering with predicate function\n datasource.setFilter((object) => {\n let searchObject = object;\n if (fields && fields.length > 0) {\n searchObject = pick(object as Record<string, unknown>, fields) as T;\n }\n\n return Object.values(searchObject as object)\n .join(' ')\n .toLowerCase()\n .includes(value.toLowerCase());\n });\n } else if (datasource instanceof UniServerSideDatasource) {\n // Server-side filtering with filter object\n const filterObject: Record<string, unknown> = {};\n\n if (fields && fields.length > 0) {\n // Apply search to specific fields\n fields.forEach((field) => {\n filterObject[field] = value;\n });\n } else {\n // Generic search filter\n filterObject['search'] = value;\n }\n\n datasource.setFilter(filterObject);\n }\n }\n\n clearFilter() {\n const datasource = this.datasource();\n if (!datasource) return;\n\n if (datasource instanceof UniRecordDatasource) {\n datasource.setFilter(() => true);\n } else if (datasource instanceof UniServerSideDatasource) {\n datasource.clearFilter();\n }\n\n this.searchValue.set('');\n }\n}\n\nfunction pick(obj: Record<string, unknown>, keys: string[]) {\n return keys.reduce<Record<string, unknown>>((acc, key) => {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n acc[key] = obj[key];\n }\n return acc;\n }, {});\n}\n","<div\n row-layout\n alignItems=\"center\"\n [border]=\"componentOptions().border\"\n [height]=\"26\"\n [borderRadius]=\"componentOptions().borderRadius\"\n paddingLeft=\"xs\"\n>\n <div center-layout [height]=\"18\" [width]=\"18\" paddingRight=\"xs\">\n <uni-icon name=\"search\" />\n </div>\n <input\n type=\"text\"\n (input)=\"onInput($event)\"\n [class]=\"inputClassName\"\n [placeholder]=\"placeholder()\"\n [value]=\"searchValue()\"\n />\n <div row-layout alignItems=\"center\" [width]=\"22\">\n @if (!!searchValue()) {\n <button icon-button (click)=\"clearFilter()\" symbolName=\"close\" size=\"sm\">Clear Search</button>\n }\n </div>\n</div>\n","/**\n * UniDataSearchComponent Barrel File\n *\n * This file exports all public-facing elements of the data-search component.\n */\n\nexport { UniDataSearchComponent } from './data-search.component';\nexport type { UniDataSearchOptions } from './data-search.model';\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n ElementRef,\n inject,\n input,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { css } from '@emotion/css';\nimport type {\n ContainerColorToken,\n OptionalSize,\n Radius,\n Variant,\n} from '@uni-design-system/uni-core';\nimport { ThemeService } from '../../theming';\nimport type { ScrollbarAppearance } from './scroll-area.types';\n\ntype OptionalValue = string | number | undefined;\n\n/**\n * Native scroll area with theme-driven scrollbar styling.\n *\n * Scrollbars are styled entirely through Emotion-generated CSS:\n * `::-webkit-scrollbar` rules cover Chromium/Safari, with a\n * `scrollbar-width`/`scrollbar-color` fallback for Firefox.\n */\n@Component({\n selector: 'div[uni-scroll-area], ScrollArea, div[scroll-area]',\n imports: [],\n template: `<div #viewport [class]=\"viewportClassName()\">\n <div\n #content\n [class]=\"contentClassName()\"\n [class.isVerticallyScrollable]=\"isVerticallyScrollable()\"\n >\n <ng-content></ng-content>\n </div>\n </div>`,\n host: { '[class]': 'className()' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UniScrollAreaComponent {\n theme = inject(ThemeService);\n\n isVerticallyScrollable = signal<boolean>(false);\n\n viewport = viewChild.required<ElementRef<HTMLDivElement>>('viewport');\n content = viewChild.required<ElementRef<HTMLDivElement>>('content');\n\n color = input<ContainerColorToken>();\n borderRadius = input<Radius>('sm');\n padding = input<OptionalSize>();\n paddingHorizontal = input<OptionalSize>();\n paddingVertical = input<OptionalSize>();\n paddingLeft = input<OptionalSize>();\n paddingRight = input<OptionalSize>();\n paddingTop = input<OptionalSize>();\n paddingBottom = input<OptionalSize>();\n border = input<Variant>();\n height = input<OptionalValue>();\n width = input<OptionalValue>();\n appearance = input<ScrollbarAppearance>('compact');\n autoHeightDisabled = input<boolean>(false);\n verticalScrollPadding = input<number>(29);\n\n scrollable = output<boolean>();\n\n public scrollToBottom() {\n const viewport = this.viewport().nativeElement;\n viewport.scrollTo({ top: viewport.scrollHeight, behavior: 'smooth' });\n }\n\n public scrollToTop() {\n this.viewport().nativeElement.scrollTo({ top: 0, behavior: 'smooth' });\n }\n\n protected readonly className = computed(() => {\n return css({\n display: 'block',\n overflow: 'hidden',\n height: this.height(),\n width: this.width(),\n\n ...this.theme.colorPair(this.color()),\n ...this.theme.radius(this.borderRadius()),\n ...this.theme.border(this.border()),\n });\n });\n\n protected viewportClassName = computed(() => {\n const palette = this.theme.colors();\n const thumbColor = palette['on-primary-surface'];\n const trackColor = palette['primary-surface'];\n const thickness = this.appearance() === 'standard' ? 13 : 8;\n\n return css([\n {\n height: '100%',\n width: '100%',\n overflow: 'auto',\n\n '&::-webkit-scrollbar': {\n width: thickness,\n height: thickness,\n },\n\n '&::-webkit-scrollbar-thumb': {\n backgroundColor: thumbColor,\n borderRadius: 7,\n border: `3px solid ${trackColor}`,\n boxSizing: 'border-box',\n },\n\n '&::-webkit-scrollbar-track': {\n backgroundColor: trackColor,\n borderRadius: 12,\n },\n\n // Firefox has no ::-webkit-scrollbar support; fall back to the\n // standard scrollbar properties there.\n '@supports not selector(::-webkit-scrollbar)': {\n scrollbarWidth: this.appearance() === 'standard' ? 'auto' : 'thin',\n scrollbarColor: `${thumbColor} ${trackColor}`,\n },\n },\n this.appearance() === 'standard' && {\n '&::-webkit-scrollbar-track': {\n backgroundColor: trackColor,\n borderRadius: 12,\n ...this.theme.border('quaternary'),\n },\n },\n ]);\n });\n\n protected contentClassName = computed(() =>\n css({\n ...this.theme.padding(this.padding()),\n ...this.theme.horizontalPadding(this.paddingHorizontal()),\n ...this.theme.verticalPadding(this.paddingVertical()),\n ...this.theme.paddingLeft(this.paddingLeft()),\n ...this.theme.paddingRight(this.paddingRight()),\n ...this.theme.paddingTop(this.paddingTop()),\n ...this.theme.paddingBottom(this.paddingBottom()),\n\n '&.isVerticallyScrollable': {\n paddingRight: this.verticalScrollPadding(),\n },\n })\n );\n\n constructor() {\n const destroyRef = inject(DestroyRef);\n\n afterNextRender(() => {\n const viewport = this.viewport().nativeElement;\n const content = this.content().nativeElement;\n\n const updateScrollable = () => {\n const scrollable = viewport.scrollHeight > viewport.clientHeight;\n if (scrollable !== this.isVerticallyScrollable()) {\n this.isVerticallyScrollable.set(scrollable);\n this.scrollable.emit(scrollable);\n }\n };\n\n const observer = new ResizeObserver(updateScrollable);\n observer.observe(viewport);\n observer.observe(content);\n destroyRef.onDestroy(() => observer.disconnect());\n\n updateScrollable();\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { css } from '@emotion/css';\nimport { type UniDatasource, SortDirection } from '../../cdk';\nimport { UniSymbolComponent } from '../symbol/symbol.component';\n\n@Component({\n selector: 'uni-sort-header',\n imports: [UniSymbolComponent],\n templateUrl: './sort-header.component.html',\n host: { '[class]': 'className()' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UniSortHeaderComponent<T> {\n column = input<keyof T>();\n datasource = input<UniDatasource<T>>();\n\n // A real <button> makes sorting keyboard-operable (Enter/Space) for free\n protected readonly buttonClass = css({\n all: 'unset',\n cursor: 'pointer',\n display: 'inline-block',\n\n '&:focus-visible': {\n outline: '2px solid currentColor',\n outlineOffset: 2,\n },\n });\n\n direction = computed(() => {\n const ds = this.datasource();\n if (!ds) return 'indet';\n\n return ds.sortColumn() === this.column() ? ds.sortDirection() : 'indet';\n });\n\n protected readonly className = computed(() => {\n return css({\n cursor: 'pointer',\n position: 'relative',\n height: 24,\n\n '& .sort-icon': {\n position: 'absolute',\n right: -24,\n top: -4,\n height: 24,\n width: 24,\n\n transition: 'all 350ms ease-in-out',\n transform: 'rotate(0)',\n },\n\n '& .sort-icon.asc': {\n transform: 'rotate(-180deg)',\n },\n\n '& .sort-icon.indet': {\n opacity: 0,\n transform: 'rotate(0)',\n },\n });\n });\n\n cycleSort() {\n const cycle: SortDirection[] = ['asc', 'desc', 'indet'];\n this.sortDatasource(cycle[cycle.indexOf(this.direction()) + 1] || cycle[0]);\n }\n\n sortDatasource(direction: SortDirection) {\n this.datasource()?.sortRecords({\n column: this.column(),\n direction,\n });\n }\n}\n","<button type=\"button\" [class]=\"buttonClass\" (click)=\"cycleSort()\">\n <ng-content></ng-content>\n <div class=\"sort-icon\" [class]=\"direction()\">\n <uni-symbol name=\"arrow_upward\" />\n </div>\n</button>\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n linkedSignal,\n output,\n signal,\n type TemplateRef,\n} from '@angular/core';\nimport { css } from '@emotion/css';\nimport { UniDatasource, UniServerSideDatasource } from '../../cdk';\nimport { fadeIn, Z_INDEX } from '@uni-design-system/uni-core';\nimport { BaseComponent } from '../base';\nimport { COMPONENT_NAME } from '../base/base.component';\nimport { UniIconComponent } from '../icon';\nimport { UniBoxComponent, UniCenterComponent } from '../layout';\nimport { UniScrollAreaComponent } from '../scroll-area/scroll-area.component';\nimport { UniSortHeaderComponent } from '../sort-header/sort-header.component';\nimport { UniTextComponent } from '../text/text.component';\nimport { ColumnDefinition, type UniDataTableOptions } from './data-table.models';\n\n@Component({\n selector: 'uni-data-table, DataTable',\n imports: [\n NgTemplateOutlet,\n UniBoxComponent,\n UniScrollAreaComponent,\n UniTextComponent,\n UniSortHeaderComponent,\n UniIconComponent,\n UniCenterComponent,\n ],\n templateUrl: './data-table.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'dataTable' }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UniDataTableComponent<T> extends BaseComponent<UniDataTableOptions> {\n datasource = input.required<UniDatasource<T>>();\n columns = input.required<ColumnDefinition<T>[]>();\n\n detailRowTemplate = input<TemplateRef<{ $implicit: T; index: number }>>();\n expandedIndex = signal<number | null>(null);\n\n useMultiSelect = input<boolean>(false);\n useRowClick = input<boolean>(true);\n highlight? = input<(row: T) => boolean>();\n\n height = input<string>();\n scrollable = signal(false);\n\n loadingOverlayClass = css({\n animation: 'fadeIn 350ms ease-in-out',\n '@keyframes fadeIn': { ...fadeIn },\n });\n\n rowSelect = output<T>();\n rowClick = output<T>();\n\n protected readonly tableClass = computed(() =>\n css({\n ...this.theme.colorPair(this.componentOptions().color),\n width: '100%',\n borderSpacing: 0,\n })\n );\n\n protected readonly headerClass = computed(() =>\n css({\n borderBottom: this.getBorder(this.componentOptions().thHorizontalBorder),\n\n '&:empty': {\n display: 'none',\n },\n })\n );\n\n protected readonly footerClass = computed(() =>\n css({\n borderTop: this.getBorder(this.componentOptions().thHorizontalBorder),\n\n '&:empty': {\n display: 'none',\n },\n })\n );\n\n protected readonly thClass = computed(() =>\n css({\n ...this.theme.colorPair(this.componentOptions().thColor),\n\n position: 'sticky',\n top: 0,\n textAlign: 'center',\n padding: 0, // Reset renderers default padding\n\n ...this.theme.padding(this.componentOptions().thPadding),\n\n borderBottom: this.getBorder(this.componentOptions().thHorizontalBorder),\n '&:not(:last-child)': {\n borderRight: this.getBorder(this.componentOptions().thVerticalBorder),\n },\n '&:last-child.scrollable': {\n paddingRight: 29,\n },\n '&.sticky': {\n position: 'sticky',\n left: 0,\n zIndex: Z_INDEX.sticky,\n },\n })\n );\n\n protected readonly tdClass = computed(() =>\n css([\n {\n textAlign: 'center',\n padding: 0, // Reset renderers default padding\n '&:not(:last-child)': {\n borderRight: this.getBorder(this.componentOptions().tdVerticalBorder),\n },\n '&:last-child.scrollable': {\n // The last scrollable column allows space for the scrollbar.\n paddingRight: 29,\n },\n '&.sticky': {\n position: 'sticky',\n left: 0,\n zIndex: Z_INDEX.sticky,\n ...this.theme.colorPair(this.componentOptions().tdStickyColor),\n },\n '&:not(.template)': {\n // Allow templates to define their own styles\n ...this.theme.padding(this.componentOptions().tdPadding),\n },\n },\n ])\n );\n\n protected readonly trClass = computed(() =>\n css(\n {\n '& td': {\n ...this.theme.backgroundColor('transparent'),\n transition: 'all 0.28s ease',\n },\n ':not(:last-child) td': {\n borderBottom: this.getBorder(this.componentOptions().tdHorizontalBorder),\n },\n },\n this.useRowClick() && {\n '&:hover td': {\n ...this.theme.backgroundColor(this.componentOptions().rowHoverColor),\n cursor: 'pointer',\n },\n }\n )\n );\n\n protected readonly detailRowClass = computed(() =>\n css({\n display: 'table-row',\n visibility: 'hidden',\n '&.expanded': {\n visibility: 'visible',\n },\n '& td': {\n padding: 0,\n borderBottom: this.getBorder(this.componentOptions().tdHorizontalBorder),\n },\n '& td .detail-content-wrapper': {\n display: 'grid',\n gridTemplateRows: '0fr',\n transition: 'grid-template-rows 0.3s ease',\n overflow: 'hidden',\n\n '& .detail-inner': {\n minHeight: 0,\n },\n },\n '&.expanded td .detail-content-wrapper': {\n gridTemplateRows: '1fr',\n },\n })\n );\n\n // Loading state detection\n isLoading = linkedSignal(() => {\n const datasource = this.datasource();\n if (datasource && datasource instanceof UniServerSideDatasource) {\n // For server-side datasource, use the built-in loading state\n return datasource.isLoading();\n } else {\n // For client-side datasource, no loading state needed\n return false;\n }\n });\n\n toggleRow(index: number) {\n this.expandedIndex.update((current) => (current === index ? null : index));\n }\n\n handleRowClick(row: T, index: number) {\n this.rowClick.emit(row);\n\n this.toggleRow(index);\n }\n\n /** aria-sort value for a column header, or null when the column is unsorted. */\n protected ariaSort(column: ColumnDefinition<T>): 'ascending' | 'descending' | null {\n const ds = this.datasource();\n if (!ds || ds.sortColumn() !== column.columnDef) return null;\n const direction = ds.sortDirection();\n return direction === 'asc' ? 'ascending' : direction === 'desc' ? 'descending' : null;\n }\n\n isHighlighted(row: T) {\n const callback = this.highlight && this.highlight();\n if (!callback) return false;\n return callback(row);\n }\n\n protected readonly String = String;\n\n handleScrollable(scrollable: boolean) {\n this.scrollable.set(scrollable);\n }\n\n getBorder(name: string | undefined) {\n return name ? this.theme.theme().borders[name] : undefined;\n }\n}\n","@let ds = datasource();\n@if (ds) {\n <div\n box-layout\n [color]=\"componentOptions().color\"\n [border]=\"componentOptions().border\"\n [borderRadius]=\"componentOptions().borderRadius\"\n [elevation]=\"componentOptions().elevation\"\n overflow=\"hidden\"\n >\n <div\n box-layout\n [padding]=\"componentOptions().headerPadding\"\n [color]=\"componentOptions().headerColor\"\n [class]=\"headerClass()\"\n >\n <ng-content select=\"data-table-header\"></ng-content>\n </div>\n\n <div box-layout [height]=\"height()\" position=\"relative\" [attr.aria-busy]=\"isLoading()\">\n <ScrollArea [verticalScrollPadding]=\"0\" (scrollable)=\"handleScrollable($event)\">\n <table [class]=\"tableClass()\">\n <thead>\n <tr>\n @for (column of columns(); track column) {\n <th\n scope=\"col\"\n [attr.aria-sort]=\"ariaSort(column)\"\n [class]=\"thClass()\"\n [class.scrollable]=\"scrollable()\"\n [class.sticky]=\"column.isSticky\"\n [style.text-align]=\"column.textAlign\"\n >\n <uni-sort-header [datasource]=\"datasource()\" [column]=\"column.columnDef\">\n <Text [typeface]=\"componentOptions().thTextRole\">{{ column.header }}</Text>\n </uni-sort-header>\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (record of ds.records(); track record; let i = $index) {\n <tr\n [class]=\"trClass()\"\n [attr.tabindex]=\"useRowClick() ? 0 : null\"\n (click)=\"handleRowClick(record, $index)\"\n (keydown.enter)=\"useRowClick() && handleRowClick(record, $index)\"\n (keydown.space)=\"\n useRowClick() && handleRowClick(record, $index);\n useRowClick() && $event.preventDefault()\n \"\n >\n @for (column of columns(); track column) {\n <td\n [class]=\"tdClass()\"\n [class.scrollable]=\"scrollable()\"\n [class.sticky]=\"column.isSticky\"\n [class.template]=\"!!column.template\"\n [style.text-align]=\"column.textAlign\"\n >\n @if (column.template) {\n <ng-container\n [ngTemplateOutlet]=\"column.template\"\n [ngTemplateOutletContext]=\"record\"\n ></ng-container>\n } @else {\n <Text [typeface]=\"componentOptions().tdTextRole\">\n @if (!column.cell) {\n {{ record[column.columnDef] }}\n } @else {\n {{ column.cell(record) }}\n }\n </Text>\n }\n </td>\n }\n </tr>\n @if (detailRowTemplate()) {\n <!-- Collapsed detail rows are inert: invisible to screen\n readers and unreachable by keyboard until expanded -->\n <tr\n [class]=\"detailRowClass()\"\n [class.expanded]=\"expandedIndex() === $index\"\n [attr.inert]=\"expandedIndex() === $index ? null : ''\"\n >\n <td [attr.colspan]=\"columns().length\">\n <div class=\"detail-content-wrapper\">\n <div class=\"detail-inner\">\n <ng-container\n [ngTemplateOutlet]=\"detailRowTemplate()\"\n [ngTemplateOutletContext]=\"{\n $implicit: record,\n index: i,\n }\"\n ></ng-container>\n </div>\n </div>\n </td>\n </tr>\n }\n }\n </tbody>\n </table>\n </ScrollArea>\n\n <!-- Loading Overlay -->\n @if (isLoading()) {\n <div\n uni-center-layout\n role=\"status\"\n aria-label=\"Loading\"\n position=\"absolute\"\n [inset]=\"0\"\n [backgroundColor]=\"componentOptions().loadingOverlayColor\"\n [class]=\"loadingOverlayClass\"\n zIndex=\"overlay\"\n >\n <!-- Loading Spinner -->\n <div\n uni-box-layout\n [height]=\"componentOptions().loadingSpinnerSize\"\n [width]=\"componentOptions().loadingSpinnerSize\"\n >\n <uni-icon name=\"spinner\" [color]=\"componentOptions().loadingSpinnerColor\" />\n </div>\n </div>\n }\n </div>\n\n <div\n box-layout\n [padding]=\"componentOptions().footerPadding\"\n [color]=\"componentOptions().footerColor\"\n [class]=\"footerClass()\"\n >\n <ng-content select=\"data-table-footer\"></ng-content>\n </div>\n </div>\n}\n","/**\n * UniDataTableComponent Barrel File\n *\n * This file exports all public-facing elements of the data-table component.\n */\n\nexport { UniDataTableComponent } from './data-table.component';\nexport type { ColumnDefinition, UniDataTableOptions } from './data-table.models';\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n inject,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { css, keyframes } from '@emotion/css';\nimport { BaseComponent } from '../base';\nimport { COMPONENT_NAME } from '../base/base.component';\nimport { UniIconButtonComponent } from '../icon-button';\nimport type { UniDialogOptions } from './dialog.model';\nimport { fadeIn, fadeOut } from '@uni-design-system/uni-core';\nimport { uniqueId } from '../../cdk';\n\n@Component({\n selector: 'dialog[uni-dialog], Dialog',\n imports: [UniIconButtonComponent, CommonModule],\n template: `\n @if (defaultCloseButton()) {\n <button\n icon-button\n iconName=\"close\"\n variant=\"ghost\"\n (click)=\"close()\"\n [class]=\"closeButton\"\n size=\"md\"\n >\n Close\n </button>\n }\n <ng-content></ng-content>\n `,\n providers: [{ provide: COMPONENT_NAME, useValue: 'dialog' }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.aria-labelledby]': 'hasTitle() ? titleId : null',\n '[attr.aria-label]': 'ariaLabel() ?? null',\n '[class]': 'className()',\n '(click)': 'backdropClick($event)',\n '(cancel)': 'escapeCancel($event)',\n '(animationend)': 'closingAnimation($event)',\n },\n})\nexport class UniDialogComponent extends BaseComponent<UniDialogOptions> {\n private elem = inject(ElementRef);\n\n /** Two-way bindable open state: [(show)]. */\n show = model<boolean>(false);\n\n /**\n * Accessible name for dialogs without a DialogHeader. When a DialogHeader\n * is present it labels the dialog automatically via aria-labelledby.\n */\n ariaLabel = input<string>();\n\n /**\n * CSS selector for the element to focus when the dialog opens. Defaults to\n * the browser's native behavior (first focusable element).\n */\n initialFocus = input<string>();\n\n defaultCloseButton = input<boolean>();\n\n /** Id referenced by aria-labelledby; DialogHeader attaches it to the title. */\n readonly titleId = uniqueId('uni-dialog-title');\n readonly hasTitle = signal(false);\n\n /** Emits true once opened and false once the closing animation finishes. */\n showing = output<boolean>();\n\n constructor() {\n super();\n effect(() => (this.show() ? this.open() : this.close()));\n }\n\n private get _dialog(): HTMLDialogElement {\n return this.elem.nativeElement;\n }\n\n protected readonly className = computed(() =>\n css([\n {\n ...this.theme.radius(this.componentOptions().borderRadius),\n ...this.theme.colorPair(this.componentOptions().color),\n ...this.theme.border(this.componentOptions().border),\n ...this.theme.boxShadow(this.componentOptions().elevation),\n ...this.theme.padding(this.componentOptions().padding || 'none'),\n\n '&::backdrop': {\n ...this.componentOptions().backdrop,\n },\n\n '&[open], &::backdrop': {\n animation: `${this.dialogFadeIn} ease-in 350ms`,\n },\n\n '&[closing], &[closing]::backdrop': {\n animation: `${this.dialogFadeOut} ease-in 350ms`,\n },\n },\n ])\n );\n\n protected backdropClick(event: Event) {\n if ((event.target as HTMLElement).nodeName === 'DIALOG') {\n this.close();\n }\n }\n\n /**\n * Escape fires the native 'cancel' event, which would close the dialog\n * instantly and leave our show-state out of sync. Route it through the\n * animated close() instead.\n */\n protected escapeCancel(event: Event) {\n event.preventDefault();\n this.close();\n }\n\n protected closingAnimation(e: AnimationEvent) {\n // Close the dialog if the animation is finished\n if (e.animationName.includes(this.dialogFadeOut)) {\n this._dialog.close();\n this._dialog.removeAttribute('closing');\n this.showing.emit(false);\n }\n }\n\n closeButton = css({\n position: 'absolute',\n right: 12,\n top: 12,\n });\n\n private dialogFadeIn = keyframes({ ...fadeIn });\n private dialogFadeOut = keyframes({ ...fadeOut });\n\n open() {\n if (this._dialog.open) return;\n\n this._dialog.removeAttribute('closing');\n this._dialog.showModal();\n\n // Native showModal focuses the first focusable element; allow consumers\n // to direct initial focus somewhere more useful (e.g. past the close\n // button, onto a primary action or first form field).\n const selector = this.initialFocus();\n if (selector) {\n this._dialog.querySelector<HTMLElement>(selector)?.focus();\n }\n\n this.show.set(true);\n this.showing.emit(true);\n }\n\n close() {\n // Strict check: outside a real <dialog> host (e.g. unit tests) `open`\n // is undefined and close() should still run.\n if (this._dialog.open === false) return;\n\n this._dialog.setAttribute('closing', 'true');\n this.show.set(false);\n }\n}\n","import { ChangeDetectionStrategy, Component, inject, input, output } from '@angular/core';\nimport { UniButtonComponent } from '../../button';\nimport { UniRowComponent } from '../../layout';\nimport { UniDialogComponent } from '../dialog.component';\nimport type { JustifyContent, NullableSize, Variant } from '@uni-design-system/uni-core';\n\n@Component({\n selector: 'uni-dialog-buttons, DialogButtons, div[dialog-buttons]',\n imports: [UniRowComponent, UniButtonComponent],\n templateUrl: './dialog-buttons.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UniDialogButtonsComponent {\n private dialog = inject(UniDialogComponent, {\n optional: true,\n host: true,\n skipSelf: true,\n });\n\n confirmButtonText = input<string>();\n confirmButtonVariant = input<Variant>('primary');\n cancelButtonText = input<string>();\n disableConfirm = input<boolean>();\n padding = input<NullableSize>('md');\n paddingBottom = input<NullableSize>('lg');\n justifyContent = input<JustifyContent>('center');\n\n confirmed = output();\n\n closeDialog() {\n this.dialog?.close();\n }\n}\n","<div\n row-layout\n gap=\"md\"\n [padding]=\"padding()\"\n [paddingBottom]=\"paddingBottom()\"\n [justifyContent]=\"justifyContent()\"\n>\n <button\n text-button\n [variant]=\"confirmButtonVariant()\"\n (click)=\"confirmed.emit(); closeDialog()\"\n [disable]=\"disableConfirm()\"\n >\n {{ confirmButtonText() || 'Confirm' }}\n </button>\n <button text-button variant=\"warn\" (click)=\"closeDialog()\">\n {{ cancelButtonText() || 'Cancel' }}\n </button>\n</div>\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { BaseComponent } from '../../base';\nimport { COMPONENT_NAME } from '../../base/base.component';\nimport { UniIconButtonComponent } from '../../icon-button';\nimport { UniBoxComponent, UniRowComponent } from '../../layout';\nimport { UniTextComponent } from '../../text';\nimport { UniDialogComponent } from '../dialog.component';\nimport type { UniDialogHeaderOptions } from './dialog-header.model';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'div[uni-dialog-header], DialogHeader',\n imports: [UniBoxComponent, UniIconButtonComponent, UniTextComponent, UniRowComponent],\n templateUrl: './dialog-header.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'dialogHeader' }],\n})\nexport class UniDialogHeaderComponent extends BaseComponent<UniDialogHeaderOptions> {\n private dialog = inject(UniDialogComponent, {\n optional: true,\n host: true,\n skipSelf: true,\n });\n\n /** Attached to the title element so the parent dialog is labelled by it. */\n protected readonly titleId = this.dialog?.titleId ?? null;\n\n constructor() {\n super();\n this.dialog?.hasTitle.set(true);\n }\n\n closeDialog() {\n this.dialog?.close();\n }\n}\n","<div\n row-layout\n [color]=\"componentOptions().color\"\n [borderRadius]=\"componentOptions().borderRadius\"\n [height]=\"componentOptions().height\"\n alignItems=\"center\"\n paddingHorizontal=\"sm\"\n>\n <Box [width]=\"26\"></Box>\n <Box [grow]=\"1\" [attr.id]=\"titleId\">\n <Text\n [typeface]=\"componentOptions().textRole\"\n [color]=\"componentOptions().textColor\"\n display=\"block\"\n [align]=\"componentOptions().textAlign || 'center'\"\n ><ng-content></ng-content\n ></Text>\n </Box>\n <button\n icon-button\n [iconName]=\"componentOptions().closeButtonIcon\"\n [symbolName]=\"componentOptions().closeButtonSymbol\"\n variant=\"ghost\"\n (click)=\"closeDialog()\"\n [size]=\"componentOptions().closeButtonSize || 'md'\"\n >\n Close\n </button>\n</div>\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { css } from '@emotion/css';\nimport { ThemeService } from '../../theming';\nimport type { Border, Orientation } from '@uni-design-system/uni-core';\n\n@Component({\n selector: 'uni-divider, Divider',\n imports: [],\n template: ``,\n host: { '[class]': 'className()' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UniDividerComponent {\n themeService = inject(ThemeService);\n\n orientation = input<Orientation>('horizontal');\n border = input<Border>('primary');\n\n protected readonly className = computed(() => {\n return css([\n {\n display: 'block',\n },\n this.orientation() === 'horizontal' && {\n ...this.themeService.borderBottom(this.border()),\n width: '100%',\n },\n this.orientation() === 'vertical' && {\n ...this.themeService.borderLeft(this.border()),\n height: '100%',\n },\n ]);\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n OnDestroy,\n OnInit,\n output,\n Renderer2,\n signal,\n ViewChild,\n} from '@angular/core';\nimport { css } from '@emotion/css';\n\nimport { BaseComponent } from '../base';\nimport { COMPONENT_NAME } from '../base/base.component';\nimport { UniBoxComponent } from '../layout';\nimport type { UniDropdownOptions } from './dropdown.model';\nimport type { NullableSize } from '@uni-design-system/uni-core';\nimport {\n anchorStyles,\n newAnchorName,\n resolveFocusTarget,\n uniqueId,\n type AnchorOffset,\n type Placement,\n} from '../../cdk';\n\nexport type AriaHasPopup = 'menu' | 'listbox' | 'dialog' | 'grid' | 'tree' | 'true';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'uni-dropdown, Dropdown',\n imports: [UniBoxComponent],\n template: `\n <!-- 1. The native 'popover' attribute brings it to the top layer with native light-dismiss -->\n <div #dropdown popover=\"auto\" [id]=\"popoverId\" [class]=\"dropdownClass()\">\n <div\n box-layout\n [border]=\"componentOptions().border\"\n [borderRadius]=\"componentOptions().borderRadius\"\n [paddingVertical]=\"paddingVertical()\"\n [paddingHorizontal]=\"paddingHorizontal()\"\n [color]=\"componentOptions().color\"\n [shadow]=\"componentOptions().shadow\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n `,\n providers: [{ provide: COMPONENT_NAME, useValue: 'dropdown' }],\n})\nexport class UniDropdownComponent\n extends BaseComponent<UniDropdownOptions>\n implements OnInit, OnDestroy\n{\n private renderer = inject(Renderer2);\n private delay = 100;\n\n // Reactively track visibility status using Signals\n showing = signal<boolean>(false);\n\n trigger = input.required<HTMLElement>();\n placement = input<Placement>('bottom-start');\n offset = input<AnchorOffset>({ mainAxis: 4, alignmentAxis: 12 });\n\n /** CSS anchor-name linking the trigger to the popover panel. */\n private readonly anchorName = newAnchorName();\n\n /**\n * Value for aria-haspopup on the trigger, describing what the popover\n * contains (e.g. 'menu' for Menu, 'dialog' for rich content). When unset,\n * only aria-expanded/aria-controls are managed.\n */\n ariaHasPopup = input<AriaHasPopup | null>(null);\n\n /** Document-unique id of the popover element, for aria-controls wiring. */\n readonly popoverId = uniqueId('uni-dropdown');\n\n paddingVertical = input<NullableSize>();\n paddingHorizontal = input<NullableSize>();\n\n dropdownShowing = output<boolean>();\n dropdownHiding = output<boolean>();\n\n @ViewChild('dropdown', { static: true })\n dropdownRef!: ElementRef<HTMLDivElement>;\n\n private get _trigger(): HTMLElement {\n return this.trigger();\n }\n private get _dropdown(): HTMLDivElement {\n return this.dropdownRef.nativeElement;\n }\n\n private transformOriginMap: Record<Placement, string> = {\n top: 'bottom center',\n right: 'center left',\n bottom: 'top center',\n left: 'center right',\n 'top-start': 'bottom left',\n 'top-end': 'bottom right',\n 'right-start': 'top left',\n 'right-end': 'bottom left',\n 'bottom-start': 'top left',\n 'bottom-end': 'top right',\n 'left-start': 'top right',\n 'left-end': 'bottom right',\n };\n\n dropdownClass = computed(() => {\n const currentPlacement = this.placement();\n\n return css([\n {\n // Reset browser agent default popover styles\n border: 'none',\n background: 'transparent',\n padding: 0,\n overflow: 'visible',\n width: 'max-content',\n\n // Native anchor positioning: the browser keeps the panel attached to\n // the trigger (no scroll/resize listeners needed)\n ...anchorStyles(this.anchorName, currentPlacement, this.offset()),\n\n // 2. Animate discrete properties across top layer layout contexts\n transitionProperty: 'transform, opacity, display, overlay',\n transitionDuration: `${this.delay}ms`,\n transitionTimingFunction: 'linear',\n transitionBehavior: 'allow-discrete',\n\n // Hidden State (Closed)\n opacity: 0,\n transform: 'scale(0.8)',\n transformOrigin: this.transformOriginMap[currentPlacement],\n\n // 3. Active state styling controlled via the native browser pseudo-class\n ['&:popover-open']: {\n opacity: 1,\n transform: 'scale(1)',\n },\n\n // 4. Starting-style rules what properties animate *from* when transitioning in\n ['@starting-style']: {\n ['&:popover-open']: {\n opacity: 0,\n transform: 'scale(0.8)',\n },\n },\n },\n ]);\n });\n\n /** The element that receives focus and carries the ARIA popup state. */\n private get _focusTarget(): HTMLElement {\n return resolveFocusTarget(this._trigger);\n }\n\n ngOnInit(): void {\n // Single native click binding to manage open/close commands\n this.renderer.listen(this._trigger, 'click', (e: Event) => {\n e.stopPropagation();\n this.toggleDropdown();\n });\n\n // Anchor the popover panel to the trigger element\n this.renderer.setStyle(this._trigger, 'anchor-name', this.anchorName);\n\n // Wire the ARIA popup contract onto the focusable trigger element\n const focusTarget = this._focusTarget;\n this.renderer.setAttribute(focusTarget, 'aria-expanded', 'false');\n this.renderer.setAttribute(focusTarget, 'aria-controls', this.popoverId);\n if (this.ariaHasPopup()) {\n this.renderer.setAttribute(focusTarget, 'aria-haspopup', this.ariaHasPopup()!);\n }\n\n // Sync state if user invokes light-dismiss via outside click or Escape key\n this.renderer.listen(this._dropdown, 'toggle', (event: any) => {\n const isOpened = event.newState === 'open';\n this.showing.set(isOpened);\n this.renderer.setAttribute(this._focusTarget, 'aria-expanded', `${isOpened}`);\n\n if (isOpened) {\n this.dropdownShowing.emit(true);\n } else {\n this.dropdownHiding.emit(true);\n this.restoreFocus();\n }\n });\n }\n\n /**\n * Returns focus to the trigger when the popover closes while focus was\n * inside it (or was dropped on <body> by the top layer closing), so\n * keyboard users are never stranded (WCAG 2.4.3).\n */\n private restoreFocus() {\n const active = document.activeElement;\n if (active === document.body || (active && this._dropdown.contains(active))) {\n this._focusTarget.focus();\n }\n }\n\n toggleDropdown() {\n if (this.showing()) {\n this._dropdown.hidePopover();\n } else {\n this._dropdown.showPopover();\n }\n }\n\n hideDropdown() {\n this._dropdown.hidePopover();\n }\n\n ngOnDestroy() {\n try {\n this._dropdown.hidePopover();\n } catch {\n // popover was already closed or detached\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, model } from '@angular/core';\nimport { css, keyframes } from '@emotion/css';\nimport { collapseFadeOut, expandFadeIn } from '@uni-design-system/uni-core';\nimport { uniqueId } from '../../cdk';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'uni-expand, Expand',\n imports: [],\n template: `@if (!collapsed()) {\n <div\n [animate.enter]=\"expandAnimation\"\n [animate.leave]=\"collapseAnimation\"\n [class]=\"expandClassName\"\n >\n <div [class]=\"contentClassName\">\n <ng-content></ng-content>\n </div>\n </div>\n }`,\n host: {\n '[attr.id]': 'regionId',\n },\n})\nexport class UniExpandComponent {\n collapsed = model(true);\n\n /** Referenced by the controlling toggle's aria-controls. */\n readonly regionId = uniqueId('uni-expand');\n\n toggle() {\n this.collapsed.update((collapsed) => !collapsed);\n }\n\n expandClassName = css({\n display: 'grid',\n });\n\n contentClassName = css({\n minHeight: 0,\n });\n\n private expand = keyframes({ ...expandFadeIn });\n private collapse = keyframes({ ...collapseFadeOut });\n\n expandAnimation = css({\n overflow: 'hidden',\n animation: `${this.expand} ease-in 350ms`,\n });\n\n collapseAnimation = css({\n overflow: 'hidden',\n animation: `${this.collapse} ease-in 350ms`,\n });\n}\n","/**\n * UniExpandComponent Barrel File\n *\n * This file exports all public-facing elements of the expand component.\n */\n\nexport { UniExpandComponent } from './expand.component';\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n inject,\n input,\n Renderer2,\n signal,\n viewChild,\n} from '@angular/core';\nimport { css, keyframes } from '@emotion/css';\n\nimport { BaseComponent } from '../base';\nimport { COMPONENT_NAME } from '../base/base.component';\nimport type { UniTooltipOptions } from './tooltip.model';\nimport { fadeIn, fadeOut } from '@uni-design-system/uni-core';\nimport {\n anchorArrowStyles,\n anchorStyles,\n newAnchorName,\n resolveFocusTarget,\n uniqueId,\n useTimer,\n FOCUSABLE_SELECTOR,\n type Placement,\n} from '../../cdk';\n\n@Component({\n selector: 'uni-tooltip, Tooltip',\n imports: [],\n // The bubble lives declaratively in the template as a manual popover: the\n // top layer escapes any overflow context (which made appendToBody obsolete)\n // and native CSS anchor positioning keeps it attached to the host.\n template: `<ng-content></ng-content\n ><span\n #tip\n popover=\"manual\"\n role=\"tooltip\"\n [id]=\"tooltipId\"\n [class]=\"tooltipClassName()\"\n (mouseenter)=\"isMouseInside.set(true)\"\n (mouseleave)=\"isMouseInside.set(false)\"\n (animationend)=\"onAnimationEnd($event)\"\n >{{ label() }}<span [class]=\"arrowClassName()\"></span\n ></span>`,\n providers: [{ provide: COMPONENT_NAME, useValue: 'tooltip' }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'className()',\n '(click)': 'toggleTooltip()',\n '(mouseenter)': 'mouseenter()',\n '(mouseleave)': 'mouseleave()',\n '(focusin)': 'onFocusIn($event)',\n '(focusout)': 'onFocusOut()',\n '(keydown.escape)': 'onEscape($event)',\n },\n})\nexport class UniTooltipComponent extends BaseComponent<UniTooltipOptions> {\n private elRef = inject(ElementRef);\n private renderer = inject(Renderer2);\n\n private timer = useTimer();\n isMouseInside = signal(false);\n\n /** Whether the bubble is currently shown (or fading out). */\n private readonly visible = signal(false);\n\n readonly tooltipId = uniqueId('uni-tooltip');\n private readonly anchorName = newAnchorName();\n\n hoverDelay = input<number>(500);\n label = input.required<string>();\n placement = input<Placement>('top');\n inlineText = input<boolean>(false);\n\n /** @deprecated The tooltip renders in the native top layer; ignored. */\n appendToBody = input<boolean>(false);\n\n private tipRef = viewChild.required<ElementRef<HTMLElement>>('tip');\n\n constructor() {\n super();\n\n effect(() => {\n const timerActive = this.timer.isActive();\n const mouseInside = this.isMouseInside();\n\n // If the timer finished and the mouse is still inside, show tooltip\n if (!timerActive && mouseInside) {\n this.showTooltip();\n }\n // If the mouse left and the timer is not running, hide tooltip\n else if (!mouseInside) {\n this.hideTooltip();\n }\n });\n\n // A tooltip must be reachable by keyboard (WCAG 1.4.13): when the\n // projected content has no focusable element, the host itself joins\n // the tab sequence. The bubble is always in the DOM, so the describedby\n // relationship is wired once, on the element that receives focus.\n afterNextRender(() => {\n const host = this.elRef.nativeElement as HTMLElement;\n if (!host.querySelector(FOCUSABLE_SELECTOR) && !host.matches(FOCUSABLE_SELECTOR)) {\n this.renderer.setAttribute(host, 'tabindex', '0');\n }\n this.renderer.setAttribute(resolveFocusTarget(host), 'aria-describedby', this.tooltipId);\n });\n }\n\n onFocusIn(event: FocusEvent) {\n // Only keyboard-driven focus shows the tooltip immediately; mouse\n // interaction keeps the hover-delay behavior.\n if ((event.target as HTMLElement).matches(':focus-visible')) {\n this.showTooltip();\n }\n }\n\n onFocusOut() {\n if (!this.isMouseInside()) {\n this.hideTooltip();\n }\n }\n\n onEscape(event: Event) {\n if (this.visible()) {\n // Dismiss only the tooltip, not an enclosing dialog/popover\n event.stopPropagation();\n this.hideTooltip();\n }\n }\n\n toggleTooltip() {\n if (this.visible()) {\n this.hideTooltip();\n } else {\n this.showTooltip();\n }\n }\n\n mouseenter() {\n this.isMouseInside.set(true);\n this.timer.start(this.hoverDelay());\n }\n\n mouseleave() {\n this.isMouseInside.set(false);\n this.timer.stop();\n }\n\n showTooltip() {\n if (this.visible()) return;\n const tip = this.tipRef().nativeElement;\n tip.showPopover();\n this.renderer.setAttribute(tip, 'fade', 'in');\n this.visible.set(true);\n }\n\n hideTooltip() {\n if (!this.visible()) return;\n this.renderer.setAttribute(this.tipRef().nativeElement, 'fade', 'out');\n }\n\n protected onAnimationEnd(event: AnimationEvent) {\n if (event.animationName.includes(this.tooltipFadeOut)) {\n this.tipRef().nativeElement.hidePopover();\n this.visible.set(false);\n }\n }\n\n protected readonly className = computed(() =>\n css(\n {\n display: 'inline-flex',\n anchorName: this.anchorName,\n },\n this.inlineText() && {\n cursor: 'help',\n textDecoration: 'underline',\n textDecorationStyle: 'dotted',\n }\n )\n );\n\n private tooltipFadeIn = keyframes({ ...fadeIn });\n private tooltipFadeOut = keyframes({ ...fadeOut });\n\n protected readonly tooltipClassName = computed(() =>\n css([\n {\n ...this.theme.colorPair(this.componentOptions().color),\n ...this.theme.radius(this.componentOptions().borderRadius),\n ...this.theme.boxShadow(this.componentOptions().shadow),\n ...this.theme.typeface(this.componentOptions().typeface),\n border: 'none',\n padding: 5,\n width: 'max-content',\n ...anchorStyles(this.anchorName, this.placement(), { mainAxis: 6 }),\n\n '&[fade=\"in\"]': {\n animation: `${this.tooltipFadeIn} ease-in 350ms`,\n },\n\n '&[fade=\"out\"]': {\n animation: `${this.tooltipFadeOut} ease-in 350ms`,\n },\n },\n ])\n );\n\n protected readonly arrowClassName = computed(() =>\n css({\n ...this.theme.colorPair(this.componentOptions().color),\n ...anchorArrowStyles(this.placement()),\n })\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input, model } from '@angular/core';\nimport { css } from '@emotion/css';\nimport { UniIconButtonComponent } from '../icon-button/icon-button.component';\nimport { UniTooltipComponent } from '../tooltip/tooltip.component';\n\n@Component({\n selector: 'uni-expand-toggle, ExpandToggle',\n imports: [UniIconButtonComponent, UniTooltipComponent],\n template: `<Tooltip\n [label]=\"collapsed() ? 'Expand' : 'Collapse'\"\n placement=\"right\"\n >\n <button\n icon-button\n iconName=\"chevronUp\"\n (click)=\"toggle()\"\n [attr.aria-expanded]=\"!collapsed()\"\n [attr.aria-controls]=\"ariaControls() || null\"\n >\n {{ collapsed() ? 'Expand' : 'Collapse' }}\n </button>\n </Tooltip>`,\n host: {\n '[class]': 'className()',\n '[attr.toggled]': 'collapsed() || null',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UniExpandToggleComponent {\n collapsed = model(true);\n\n /** Id of the Expand region this toggle controls (see UniExpandComponent.regionId). */\n ariaControls = input<string>();\n\n protected readonly className = computed(() => {\n return css({\n display: 'inline-flex',\n cursor: 'pointer',\n\n transition: 'transform 350ms ease-in-out',\n transform: 'rotate(0)',\n\n '&[toggled]': {\n transform: 'rotate(-180deg)',\n },\n });\n });\n\n toggle() {\n this.collapsed.update((collapsed) => !collapsed);\n }\n}\n","import { ChangeDetectionStrategy, Component, input, output, viewChild } from '@angular/core';\nimport type { NullableSize } from '@uni-design-system/uni-core';\nimport { UniExpandToggleComponent } from '../expand-toggle/expand-toggle.component';\nimport { UniExpandComponent } from '../expand/expand.component';\nimport { UniBoxComponent } from '../layout';\nimport { UniTextComponent } from '../text/text.component';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'uni-expand-area, ExpandArea',\n imports: [UniBoxComponent, UniTextComponent, UniExpandToggleComponent, UniExpandComponent],\n template: `\n <Box color=\"tertiary-surface\" borderRadius=\"sm\" border=\"quaternary\" overflow=\"hidden\">\n <Box\n border=\"quaternary\"\n borderRadius=\"sm\"\n color=\"primary-surface\"\n style=\"margin-top: -1px; margin-left: -1px; margin-right: -1px\"\n [style.margin-bottom]=\"toggle.collapsed() ? '-1px' : 0\"\n justifyContent=\"space-between\"\n display=\"flex\"\n alignItems=\"center\"\n >\n <Box [width]=\"36\"></Box>\n <Box paddingHorizontal=\"md\">\n <Text typeface=\"title-small\" display=\"block\">\n {{ title() }}\n </Text>\n </Box>\n\n <ExpandToggle\n #toggle\n style=\"display: inline-flex; margin: -2px\"\n [collapsed]=\"initCollapsed()\"\n [ariaControls]=\"expand.regionId\"\n />\n </Box>\n\n <Expand #expand [collapsed]=\"toggle.collapsed()\">\n <Box [padding]=\"padding()\">\n <ng-content></ng-content>\n </Box>\n </Expand>\n </Box>\n `,\n})\nexport class UniExpandAreaComponent {\n title = input.required<string>();\n initCollapsed = input(false);\n padding = input<NullableSize>('md');\n\n collapsed = output<boolean>();\n\n toggleRef = viewChild.required<UniExpandToggleComponent>('toggle');\n\n public toggleExpand() {\n this.toggleRef().toggle();\n }\n}\n","/**\n * UniExpandAreaComponent Barrel File\n *\n * This file exports all public-facing elements of the expand-area component.\n */\n\nexport { UniExpandAreaComponent } from './expand-area.component';\n","/**\n * UniExpandToggleComponent Barrel File\n *\n * This file exports all public-facing elements of the expand-toggle component.\n */\n\nexport { UniExpandToggleComponent } from './expand-toggle.component';\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n input,\n output,\n signal,\n TemplateRef,\n viewChild,\n} from '@angular/core';\nimport { acceptableFile } from '../../cdk';\nimport { DragAndDropDirective } from '../../directives/drag-and-drop/drag-and-drop.directive';\nimport type { NullableSize, Radius, Variant } from '@uni-design-system/uni-core';\nimport { UniButtonComponent } from '../button/button.component';\nimport { UniBoxComponent, UniStackComponent } from '../layout';\nimport { UniTextComponent } from '../text/text.component';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'uni-file-drop-zone',\n imports: [\n DragAndDropDirective,\n UniBoxComponent,\n UniButtonComponent,\n UniStackComponent,\n UniTextComponent,\n NgTemplateOutlet,\n ],\n templateUrl: './file-drop-zone.component.html',\n})\nexport class UniFileDropZoneComponent {\n selectedFile = signal<File | undefined>(undefined);\n selectedFileName = computed(() => this.selectedFile()?.name);\n attachmentState = signal<'upload' | undefined>(undefined);\n\n fileSelectorRef = viewChild.required<ElementRef<HTMLInputElement>>('fileSelector');\n\n get fileSelectorElement() {\n return this.fileSelectorRef().nativeElement;\n }\n\n height = input<number | string>();\n borderRadius = input<Radius>('md');\n border = input<Variant>('light');\n padding = input<NullableSize>('lg');\n useBrowseButton = input<boolean>(false);\n browseButtonText = input<string>('Browse for file');\n allowedFileExtensions = input<string[]>([]);\n label = input<string>();\n\n helpTemplate = input<TemplateRef<unknown> | null>(null);\n helpTemplateContext = input<unknown | null>(null);\n\n fileAttached = output<File | undefined>();\n fileRemoved = output();\n\n /**\n * The zone acts as the keyboard-reachable file picker only when no browse\n * button is rendered (nesting a button inside a button-role zone would be\n * invalid ARIA) and no file is attached yet.\n */\n zoneIsInteractive = computed(() => !this.useBrowseButton() && !this.attachmentState());\n\n sanitizedFileExtensions = computed(() =>\n this.allowedFileExtensions().map((ext) => (ext.includes('.') ? ext : '.' + ext))\n );\n\n helpText = computed(() => {\n const extensions = this.sanitizedFileExtensions();\n let text = '';\n\n if (extensions.length === 1) {\n text = `${extensions[0]} format allowed`;\n }\n\n if (extensions.length > 1) {\n text = extensions.join(', ') + ' formats allowed';\n }\n\n return text;\n });\n\n constructor() {\n effect(() => {\n const files = this.selectedFile();\n\n if (files) {\n this.attachmentState.set('upload');\n } else {\n this.attachmentState.set(undefined);\n }\n });\n }\n\n openFileSelector() {\n this.fileSelectorElement.click();\n }\n\n selectFiles(fileList: FileList | null): void {\n if (!fileList) return;\n if (!acceptableFile(fileList[0], this.sanitizedFileExtensions())) return;\n this.selectedFile.set(fileList[0]);\n this.fileAttached.emit(fileList[0]);\n }\n\n onFileInputChange() {\n this.selectFiles(this.fileSelectorElement.files);\n this.fileSelectorElement.value = '';\n }\n\n cancelUpload() {\n this.selectedFile.set(undefined);\n this.fileAttached.emit(undefined);\n this.fileRemoved.emit();\n }\n\n removeAttachment() {\n this.selectedFile.set(undefined);\n }\n}\n","<!-- Without a browse button the zone itself is the keyboard path to the\n native file picker; with one, the button already provides it -->\n<div\n box-layout\n [border]=\"border()\"\n [borderRadius]=\"borderRadius()\"\n [dashBorder]=\"[undefined, 'replace'].includes(attachmentState())\"\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n [padding]=\"padding()\"\n dragAndDrop\n (onFileDropped)=\"selectFiles($event)\"\n [height]=\"height()\"\n [attr.role]=\"zoneIsInteractive() ? 'button' : null\"\n [attr.tabindex]=\"zoneIsInteractive() ? 0 : null\"\n [attr.aria-label]=\"zoneIsInteractive() ? label() || 'Choose a file' : null\"\n (keydown.enter)=\"zoneIsInteractive() && openFileSelector()\"\n (keydown.space)=\"\n zoneIsInteractive() && openFileSelector(); zoneIsInteractive() && $event.preventDefault()\n \"\n>\n <div stack-layout gap=\"md\" alignItems=\"center\">\n @switch (attachmentState()) {\n @case ('upload') {\n <div stack-layout alignItems=\"center\">\n <Text typeface=\"headline-small\">{{ label() }}</Text>\n <Text typeface=\"title-small\">{{ selectedFileName() }}</Text>\n </div>\n <button text-button (click)=\"removeAttachment()\" variant=\"warn\">Cancel</button>\n }\n\n @default {\n @if (useBrowseButton()) {\n <button text-button (click)=\"openFileSelector()\">\n {{ browseButtonText() }}\n </button>\n <Text>OR</Text>\n }\n\n @if (!helpTemplate()) {\n <div stack-layout alignItems=\"center\">\n <Text typeface=\"headline-small\">Drag and drop the file here</Text>\n @if (helpText()) {\n <Text typeface=\"title-small\">{{ helpText() }}</Text>\n }\n </div>\n } @else {\n <ng-container\n [ngTemplateOutlet]=\"helpTemplate()\"\n [ngTemplateOutletContext]=\"helpTemplateContext()\"\n ></ng-container>\n }\n }\n }\n </div>\n\n <input\n #fileSelector\n type=\"file\"\n style=\"display: none\"\n (change)=\"onFileInputChange()\"\n [accept]=\"sanitizedFileExtensions().join(',')\"\n [multiple]=\"false\"\n />\n</div>\n","/**\n * UniFileDropZoneComponent Barrel File\n *\n * This file exports all public-facing elements of the file-drop-zone component.\n */\n\nexport { UniFileDropZoneComponent } from './file-drop-zone.component';\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { css } from '@emotion/css';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'DebounceInput, uni-debounce-input',\n imports: [],\n templateUrl: './debounce-input.component.html',\n})\nexport class UniDebounceInputComponent {\n inputName = input<string>();\n inputId = input<string>();\n debounceTime = input<number>(400);\n\n // TODO(v4): rename to valueChange — renaming is breaking\n // eslint-disable-next-line @angular-eslint/no-output-native\n change = output<string>();\n\n value = signal<string | undefined>(undefined);\n\n private timeoutId: ReturnType<typeof setTimeout> | null = null;\n private lastEmitted: string | undefined;\n\n constructor() {\n inject(DestroyRef).onDestroy(() => {\n if (this.timeoutId) clearTimeout(this.timeoutId);\n });\n }\n\n handleInput(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this.value.set(value);\n\n // Debounce, emitting only when the value actually changed.\n if (this.timeoutId) clearTimeout(this.timeoutId);\n this.timeoutId = setTimeout(() => {\n if (value !== this.lastEmitted) {\n this.lastEmitted = value;\n this.change.emit(value);\n }\n }, this.debounceTime());\n }\n\n inputClass = css({\n border: 'none',\n fontSize: 18,\n width: '100%',\n\n '&:focus-visible': {\n outline: 'none',\n },\n });\n}\n","<input\n [class]=\"inputClass\"\n type=\"text\"\n [name]=\"inputName()\"\n [id]=\"inputId()\"\n [value]=\"value() ?? ''\"\n (input)=\"handleInput($event)\"\n/>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { css } from '@emotion/css';\nimport { removeInputPlatformStyling } from '@uni-design-system/uni-core';\nimport { BaseComponent } from '../base';\nimport { COMPONENT_NAME } from '../base/base.component';\nimport { UniRowComponent } from '../layout';\nimport type { UniInputBoxOptions } from './input-box.model';\n\n@Component({\n selector: 'uni-input-box',\n imports: [UniRowComponent],\n templateUrl: './input-box.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'input' }],\n host: { '[class]': 'className' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UniInputBoxComponent extends BaseComponent<UniInputBoxOptions> {\n protected readonly className = css({ display: 'contents' });\n\n disabled = input<boolean>(false);\n error = input<boolean>(false);\n minWidth = input<string>('0');\n\n protected readonly color = computed(() =>\n this.error() ? this.componentOptions().errorColor : this.componentOptions().color\n );\n\n protected readonly border = computed(() =>\n this.error() ? this.componentOptions().errorBorder : this.componentOptions().border\n );\n\n protected readonly shadow = computed(() =>\n this.error() ? this.componentOptions().errorShadow : this.componentOptions().shadow\n );\n\n protected readonly inputBoxClass = computed(() =>\n css([\n this.disabled() && {\n ...this.theme.color(this.componentOptions().disabledTextColor),\n ...this.theme.backgroundColor(this.componentOptions().disabledColor),\n cursor: 'not-allowed !important',\n },\n {\n '& input, select': {\n ...removeInputPlatformStyling,\n height: '100%',\n ...this.theme.paddingLeft(this.componentOptions().paddingLeft),\n ...this.theme.color(this.componentOptions().textColor),\n ...this.theme.typeface(this.componentOptions().typeFace),\n },\n\n '&:has(input:disabled, select:disabled)': {\n ...this.theme.color(this.componentOptions().disabledTextColor),\n ...this.theme.backgroundColor(this.componentOptions().disabledColor),\n },\n\n '& input:disabled, select:disabled': {\n cursor: 'not-allowed !important',\n },\n\n '&:has(input:focus, select:focus)': {\n outline: this.componentOptions().focusOutline,\n outlineOffset: this.componentOptions().focusOutlineOffset,\n },\n },\n ])\n );\n}\n","<div\n row-layout\n alignItems=\"center\"\n [height]=\"componentOptions().height\"\n [color]=\"color()\"\n [border]=\"border()\"\n [borderRadius]=\"componentOptions().borderRadius\"\n [shadow]=\"shadow()\"\n [minWidth]=\"minWidth()\"\n [class]=\"inputBoxClass()\"\n position=\"relative\"\n>\n <ng-content></ng-content>\n</div>\n","import { ChangeDetectionStrategy, Component, computed, input, model } from '@angular/core';\nimport { FormValueControl } from '@angular/forms/signals';\nimport { css } from '@emotion/css';\nimport { UniInputBoxComponent } from '../input-box/input-box.component';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'uni-input',\n imports: [UniInputBoxComponent],\n templateUrl: './input.component.html',\n})\nexport class UniInputComponent implements FormValueControl<string> {\n // --- REQUIRED SIGNALS (populated by FormValueControl) ---\n readonly value = model<string>('');\n readonly disabled = input(false);\n readonly touched = model(false);\n readonly invalid = input(false);\n readonly dirty = input(false);\n\n /** Synced from required() validators by the Signal Forms [field] directive. */\n readonly required = input(false);\n\n /**\n * Id(s) of external element(s) describing this control — typically your\n * app-rendered error message — exposed as aria-describedby.\n */\n readonly ariaDescribedBy = input<string>();\n\n // --- CONFIGURATION ---\n label = input.required<string>();\n placeholder = input('');\n\n // Only show errors if the user has actually interacted with the field\n protected readonly showError = computed(() => this.invalid() && (this.touched() || this.dirty()));\n\n markAsTouched() {\n this.touched.set(true);\n }\n\n handleInput(event: Event) {\n this.value.set((event.target as HTMLInputElement).value);\n }\n\n inputClass = css({});\n}\n","<uni-input-box [error]=\"showError()\">\n <ng-content select=\"pre-input\" />\n <input\n [value]=\"value()\"\n (input)=\"handleInput($event)\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n (blur)=\"markAsTouched()\"\n [class]=\"inputClass\"\n [attr.aria-label]=\"label()\"\n [attr.aria-invalid]=\"showError() ? true : null\"\n [attr.aria-required]=\"required() ? true : null\"\n [attr.aria-describedby]=\"ariaDescribedBy() || null\"\n />\n <ng-content select=\"post-input\" />\n</uni-input-box>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { css } from '@emotion/css';\nimport type { AbsoluteSize } from '@uni-design-system/uni-core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'uni-json-view',\n imports: [],\n templateUrl: './json-view.component.html',\n})\nexport class UniJsonViewComponent {\n json = input<unknown>();\n rows = input<number>(6);\n fontSize = input<AbsoluteSize | string>('medium');\n width = input<string | number>('100%');\n selectOnClick = input<boolean>(true);\n\n jsonString = computed(() => JSON.stringify(this.json(), null, 2));\n\n className = computed(() =>\n css({\n fontSize: this.fontSize(),\n width: this.width(),\n })\n );\n\n selectContents(jsonArea: HTMLTextAreaElement) {\n if (!this.selectOnClick()) return;\n jsonArea.select();\n }\n}\n","<textarea #jsonArea (click)=\"selectContents(jsonArea)\" [class]=\"className()\" [rows]=\"rows()\">{{\n jsonString()\n}}</textarea>\n","/**\n * UniJsonViewComponent Barrel File\n *\n * This file exports all public-facing elements of the json-view component.\n */\n\nexport { UniJsonViewComponent } from './json-view.component';\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n TemplateRef,\n} from '@angular/core';\nimport { css } from '@emotion/css';\n\nimport { UniBoxComponent } from '../../layout';\nimport { UniTextComponent } from '../../text';\nimport { UniSymbolComponent } from '../../symbol';\nimport type {\n ContainerColorToken,\n OptionalAlignItems,\n OptionalDisplay,\n OptionalFlexDirection,\n OptionalSize,\n} from '@uni-design-system/uni-core';\n\n@Component({\n selector: 'div[uni-menu-item], div[menu-item]',\n imports: [UniTextComponent, UniSymbolComponent, UniBoxComponent, NgTemplateOutlet],\n templateUrl: './menu-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'menuitem',\n tabindex: '-1',\n '[attr.aria-disabled]': \"disabled() ? 'true' : null\",\n '[attr.aria-current]': \"active() ? 'true' : null\",\n '[class]': 'menuItemClassName()',\n },\n styles: [\n `\n :host.disabled {\n color: #ddd;\n pointer-events: none;\n }\n `,\n ],\n})\nexport class UniMenuItemComponent<T = any> extends UniBoxComponent {\n private _elementRef = inject(ElementRef);\n\n override display = input<OptionalDisplay>('flex');\n override flexDirection = input<OptionalFlexDirection>('row');\n override alignItems = input<OptionalAlignItems>('center');\n override paddingHorizontal = input<OptionalSize>('md');\n override gap = input<OptionalSize>('md');\n\n label = input<string>();\n template = input<TemplateRef<T>>();\n context = input<T>();\n symbolName = input<string>();\n active = input<boolean>();\n hoverColor = input<ContainerColorToken>('primary-container');\n disabled = input<boolean>(false);\n\n protected readonly menuItemClassName = computed(() =>\n css([\n {\n cursor: 'pointer',\n transition: 'all 0.35s ease',\n height: 38,\n\n // Roving focus highlights items the same way hover does\n '&:hover, &:focus': {\n ...this.theme.colorPair(this.hoverColor()),\n outline: 'none',\n },\n },\n ])\n );\n\n /** Host element, used by Menu for roving-focus bookkeeping. */\n get host(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n\n focus() {\n this._elementRef.nativeElement.focus();\n }\n}\n","@let tpl = template();\n@let symbol = symbolName();\n@if (symbol) {\n <Symbol [name]=\"symbol\"></Symbol>\n}\n<div box-layout [grow]=\"1\">\n @if (tpl) {\n <ng-container [ngTemplateOutlet]=\"tpl\" [ngTemplateOutletContext]=\"context()\"></ng-container>\n } @else {\n <Text typeface=\"label\" display=\"block\" [nowrap]=\"true\">\n {{ label() }}\n </Text>\n }\n</div>\n@if (active()) {\n <Symbol name=\"check\"></Symbol>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n output,\n viewChild,\n viewChildren,\n} from '@angular/core';\nimport { css } from '@emotion/css';\nimport { type Placement } from '../../cdk';\n\nimport { UniMenuItemComponent } from './menu-item/menu-item.component';\nimport { MenuItem } from './menu-item/menu-item.model';\nimport { UniDropdownComponent } from '../dropdown';\n\n@Component({\n selector: 'Menu, uni-menu',\n imports: [UniMenuItemComponent, UniDropdownComponent],\n changeDetection: ChangeDetectionStrategy.OnPush, // Crucial for zoneless\n template: `\n <!-- Keydown listens for arrow keys bubbling from the projected (focusable)\n trigger; the wrapper itself must stay out of the tab order. -->\n <!-- eslint-disable-next-line @angular-eslint/template/interactive-supports-focus -->\n <div #trigger [class]=\"TriggerClassName\" (keydown)=\"onTriggerKeydown($event)\">\n <ng-content></ng-content>\n </div>\n\n @if (menuItems()) {\n <Dropdown\n [trigger]=\"trigger\"\n [placement]=\"placement()\"\n ariaHasPopup=\"menu\"\n paddingVertical=\"xs\"\n #dropdown\n (dropdownShowing)=\"onOpened()\"\n >\n <!-- Roving-focus composite: the container handles keys bubbling from\n the focused item (menu-item hosts carry tabindex=\"-1\"), and\n Enter/Space activation is dispatched from onMenuKeydown. -->\n <!-- eslint-disable-next-line @angular-eslint/template/interactive-supports-focus -->\n <div role=\"menu\" (keydown)=\"onMenuKeydown($event, dropdown)\">\n @for (item of menuItems(); track item) {\n <!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus -->\n <div\n menu-item\n [label]=\"item.label\"\n [symbolName]=\"item.symbolName\"\n [active]=\"activeItem() === item\"\n [template]=\"item.template\"\n [context]=\"item.context\"\n (click)=\"handleMenuItemClick(item, dropdown)\"\n ></div>\n }\n </div>\n </Dropdown>\n }\n `,\n host: { '[class]': 'className()' },\n})\nexport class UniMenuComponent {\n // Modern Signal Inputs for perfect Zoneless tracking\n menuItems = input.required<MenuItem[]>();\n activeItem = input<MenuItem>();\n placement = input<Placement>('bottom-start');\n\n // Modern Signal Output\n menuItemClicked = output<MenuItem>();\n\n TriggerClassName = css({ display: 'inline-block' });\n\n private itemComponents = viewChildren(UniMenuItemComponent);\n private dropdownComponent = viewChild(UniDropdownComponent);\n\n /** Which item receives focus when the menu opens (ArrowUp opens onto the last item). */\n private pendingFocus: 'first' | 'last' = 'first';\n\n protected readonly className = computed(() => {\n return css({\n margin: 'unset',\n padding: 'unset',\n });\n });\n\n handleMenuItemClick(item: MenuItem, dropdown: UniDropdownComponent) {\n if (item.action) {\n item.action();\n }\n\n this.menuItemClicked.emit(item);\n dropdown.hideDropdown();\n }\n\n /** Enabled items participating in keyboard navigation. */\n private get navigableItems(): UniMenuItemComponent[] {\n return this.itemComponents().filter((item) => !item.disabled());\n }\n\n onOpened() {\n const items = this.navigableItems;\n if (items.length === 0) return;\n const target = this.pendingFocus === 'last' ? items[items.length - 1] : items[0];\n this.pendingFocus = 'first';\n target.focus();\n }\n\n onTriggerKeydown(event: KeyboardEvent) {\n const dropdown = this.dropdownComponent();\n if (!dropdown || (event.key !== 'ArrowDown' && event.key !== 'ArrowUp')) return;\n event.preventDefault();\n\n this.pendingFocus = event.key === 'ArrowUp' ? 'last' : 'first';\n if (dropdown.showing()) {\n this.onOpened();\n } else {\n dropdown.toggleDropdown();\n }\n }\n\n onMenuKeydown(event: KeyboardEvent, dropdown: UniDropdownComponent) {\n const items = this.navigableItems;\n if (items.length === 0) return;\n\n const currentIndex = items.findIndex((item) => item.host === event.target);\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n items[(currentIndex + 1) % items.length].focus();\n break;\n case 'ArrowUp':\n event.preventDefault();\n items[(currentIndex - 1 + items.length) % items.length].focus();\n break;\n case 'Home':\n event.preventDefault();\n items[0].focus();\n break;\n case 'End':\n event.preventDefault();\n items[items.length - 1].focus();\n break;\n case 'Enter':\n case ' ':\n event.preventDefault();\n (event.target as HTMLElement).click();\n break;\n case 'Tab':\n // A menu is not part of the page tab sequence: close and let focus\n // return to the trigger, then continue tabbing naturally.\n dropdown.hideDropdown();\n break;\n default:\n this.typeahead(event, items, currentIndex);\n }\n }\n\n /** First-character matching, starting after the focused item and wrapping. */\n private typeahead(event: KeyboardEvent, items: UniMenuItemComponent[], currentIndex: number) {\n if (event.key.length !== 1 || event.altKey || event.ctrlKey || event.metaKey) return;\n const char = event.key.toLowerCase();\n if (char === ' ') return;\n\n for (let i = 1; i <= items.length; i++) {\n const item = items[(currentIndex + i) % items.length];\n if (item.label()?.toLowerCase().startsWith(char)) {\n event.preventDefault();\n item.focus();\n return;\n }\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';\nimport { css } from '@emotion/css';\n\nimport { Option } from '../../cdk';\nimport type { NullableSize } from '@uni-design-system/uni-core';\nimport { UniBoxComponent } from '../layout';\nimport { UniCheckboxComponent } from '../checkbox/checkbox.component';\n\n@Component({\n selector: 'uni-multi-select, MultiSelect',\n imports: [UniCheckboxComponent, UniBoxComponent],\n templateUrl: './multi-select.component.html',\n host: { '[class]': 'className' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UniMultiSelectComponent<T = unknown> {\n // Data Inputs\n options = input<Option<T>[]>([]);\n selections = input<T[] | null | undefined>(undefined);\n updates = output<T[] | undefined>();\n\n // Styling Inputs\n flexDirection = input<'row' | 'row-reverse' | 'column' | 'column-reverse'>('column');\n checkboxGap = input<NullableSize | undefined>('sm');\n\n protected readonly values = computed<unknown[]>(() => this.selections() || []);\n\n protected readonly optionsWithSelections = computed<Option<T>[]>(() =>\n this.options().map((option) => ({\n ...option,\n selected: this.values().includes(option.value),\n }))\n );\n\n protected readonly className = css({ display: 'contents' });\n\n handleCheck(checked: boolean, value: T) {\n const selections = this.selections();\n\n if (!selections && !checked) return;\n\n if (selections && !checked) {\n const filteredSelections = selections.filter((item) => item != value);\n const isEmpty = filteredSelections.length === 0;\n this.updates.emit(isEmpty ? undefined : filteredSelections);\n return;\n }\n\n if (checked) {\n this.updates.emit([...(selections || []), value]);\n return;\n }\n }\n\n selectAll() {\n const allValues = this.options().map((option) => option.value);\n this.updates.emit(allValues);\n }\n\n deselectAll() {\n this.updates.emit(undefined);\n }\n\n optionWrapper = css({\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n });\n}\n","<div box-layout display=\"flex\" [flexDirection]=\"flexDirection()\" [gap]=\"checkboxGap()\">\n @for (option of options(); track option) {\n <div [class]=\"optionWrapper\">\n <uni-checkbox\n [label]=\"option.label\"\n [checked]=\"values().indexOf(option.value) > -1\"\n (checkedChange)=\"handleCheck($event, option.value)\"\n variant=\"primary\"\n >\n </uni-checkbox>\n </div>\n }\n</div>\n","import { ChangeDetectionStrategy, Component, computed, input, model, signal } from '@angular/core';\nimport { FormValueControl } from '@angular/forms/signals';\nimport { css } from '@emotion/css';\nimport { Option, type Options } from '../../cdk';\nimport { removeInputPlatformStyling } from '@uni-design-system/uni-core';\nimport { UniBoxComponent, UniRowComponent, UniStackComponent } from '../layout';\nimport { UniButtonComponent } from '../button/button.component';\nimport { UniDividerComponent } from '../divider';\nimport { UniDropdownComponent } from '../dropdown/dropdown.component';\nimport { UniSymbolComponent } from '../symbol';\nimport { UniTextComponent } from '../text/text.component';\nimport { BaseComponent, COMPONENT_NAME } from '../base/base.component';\nimport { UniCheckboxComponent } from '../checkbox/checkbox.component';\nimport { UniInputBoxComponent } from '../input-box/input-box.component';\nimport { UniMultiSelectDropdownOptions } from './multi-select-dropdown.model';\n\n@Component({\n selector: 'uni-multi-select-dropdown, MultiSelectDropdown',\n imports: [\n UniCheckboxComponent,\n UniBoxComponent,\n UniDropdownComponent,\n UniStackComponent,\n UniDividerComponent,\n UniButtonComponent,\n UniTextComponent,\n UniSymbolComponent,\n UniRowComponent,\n UniInputBoxComponent,\n ],\n templateUrl: './multi-select-dropdown.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'multiSelectDropdown' }],\n host: { '[class]': 'className' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UniMultiSelectDropdownComponent<T = unknown>\n extends BaseComponent<UniMultiSelectDropdownOptions>\n implements FormValueControl<T[]>\n{\n protected readonly className = css({ display: 'contents' });\n\n // --- REQUIRED SIGNALS (populated by FormValueControl) ---\n readonly value = model<T[]>([]);\n readonly disabled = input(false);\n readonly touched = model(false);\n readonly invalid = input(false);\n readonly dirty = input(false);\n\n /** Synced from required() validators by the Signal Forms [field] directive. */\n readonly required = input(false);\n\n /**\n * Id(s) of external element(s) describing this control — typically your\n * app-rendered error message — exposed as aria-describedby.\n */\n readonly ariaDescribedBy = input<string>();\n\n // --- CONFIGURATION ---\n readonly options = input.required<Options<T>>();\n readonly placeholder = input<string>('');\n\n protected readonly query = signal('');\n\n protected readonly filteredOptions = computed<Options<T>>(() => {\n const filterText = this.query().toLowerCase();\n return this.options().filter((opt) => opt.label.toLowerCase().includes(filterText));\n });\n\n // Derived display string\n readonly selectedLabelsText = computed(() => {\n const selections = this.value();\n const allOptions = this.options();\n\n // Find labels for each selected ID\n const labels = selections\n .map((value) => allOptions.find((opt) => opt.value === value)?.label)\n .filter((label) => !!label); // Remove undefined if an ID isn't found\n\n return labels.length > 0 ? labels.join(', ') : this.placeholder();\n });\n\n protected readonly showError = computed(() => this.invalid() && (this.touched() || this.dirty()));\n\n protected readonly textColor = computed(() => {\n return this.selectedLabelsText() === this.placeholder()\n ? this.componentOptions().placeholderTextColor\n : this.componentOptions().textColor;\n });\n\n triggerClass = css({\n all: 'unset',\n display: 'block',\n cursor: 'pointer',\n width: '100%',\n\n '&:focus > :first-child > :first-child': {\n outline: this.componentOptions().focusOutline,\n outlineOffset: this.componentOptions().focusOutlineOffset,\n },\n });\n\n protected readonly searchInputClass = computed(() =>\n css({\n ...removeInputPlatformStyling,\n ...this.theme.border(this.componentOptions().searchInputBorder),\n ...this.theme.radius(this.componentOptions().searchInputBorderRadius),\n paddingBlock: 4,\n paddingInline: 8,\n width: 'auto',\n\n '&:focus': {\n outline: this.componentOptions().focusOutline,\n outlineOffset: this.componentOptions().focusOutlineOffset,\n },\n })\n );\n\n protected handleQueryInput(event: Event) {\n this.query.set((event.target as HTMLInputElement).value);\n }\n\n selectAll() {\n if (this.disabled()) return;\n\n this.touched.set(true);\n const allValues = this.options().map((option) => option.value);\n this.value.set(allValues);\n }\n\n deselectAll() {\n if (this.disabled()) return;\n\n this.touched.set(true);\n this.value.set([]);\n }\n\n protected isOptionSelected(option: Option<T>) {\n return computed(() => this.value().includes(option.value));\n }\n\n toggleOption(option: Option<T>, checked: boolean) {\n if (this.disabled()) return;\n\n this.touched.set(true);\n const { value } = option;\n this.value.update((current) => {\n if (checked) {\n // Add selection if not already present\n return current.includes(value) ? current : [...current, value];\n } else {\n // Remove selection\n return current.filter((item) => item !== value);\n }\n });\n }\n}\n","<button\n [class]=\"triggerClass\"\n #trigger\n [style.cursor]=\"disabled() ? 'default' : 'pointer'\"\n [attr.aria-required]=\"required() ? true : null\"\n [attr.aria-invalid]=\"showError() ? true : null\"\n [attr.aria-describedby]=\"ariaDescribedBy() || null\"\n (click)=\"!disabled() && touched.set(true)\"\n>\n <uni-input-box [error]=\"showError()\" [disabled]=\"disabled()\">\n <div\n row-layout\n alignItems=\"center\"\n justifyContent=\"space-between\"\n [fullWidth]=\"true\"\n [minWidth]=\"0\"\n paddingLeft=\"sm\"\n >\n <Text\n display=\"block\"\n [typeface]=\"componentOptions().textRole\"\n [color]=\"textColor()\"\n [ellipsis]=\"true\"\n [style.flex-grow]=\"1\"\n >{{ selectedLabelsText() }}</Text\n >\n <Symbol name=\"keyboard_arrow_down\" [style.flex-shrink]=\"0\"></Symbol>\n </div>\n </uni-input-box>\n</button>\n<uni-dropdown\n #dropdown\n [trigger]=\"trigger\"\n ariaHasPopup=\"dialog\"\n (dropdownShowing)=\"$event && searchInput.focus()\"\n (dropdownHiding)=\"$event && trigger.focus()\"\n>\n <div box-layout gap=\"xs\" padding=\"xs\">\n <input\n #searchInput\n type=\"text\"\n [class]=\"searchInputClass()\"\n [value]=\"query()\"\n (input)=\"handleQueryInput($event)\"\n placeholder=\"Search...\"\n aria-label=\"Filter options\"\n (click)=\"$event.stopPropagation()\"\n [disabled]=\"disabled()\"\n />\n </div>\n\n <uni-divider [border]=\"componentOptions().dividerBorder\" />\n\n <div stack-layout gap=\"xs\" padding=\"xs\">\n @for (option of filteredOptions(); track option.value) {\n <uni-checkbox\n [label]=\"option.label\"\n [checked]=\"isOptionSelected(option)()\"\n (checkedChange)=\"toggleOption(option, $event)\"\n variant=\"primary\"\n [disabled]=\"disabled()\"\n >\n </uni-checkbox>\n }\n </div>\n\n <uni-divider [border]=\"componentOptions().dividerBorder\" />\n\n <div row-layout gap=\"xs\" justifyContent=\"space-around\" padding=\"xs\">\n <button text-button (click)=\"dropdown.hideDropdown()\" size=\"sm\" variant=\"ghost\">Done</button>\n </div>\n</uni-dropdown>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { css } from '@emotion/css';\nimport type { Variant } from '@uni-design-system/uni-core';\nimport { BaseComponent } from '../base';\nimport { COMPONENT_NAME } from '../base/base.component';\nimport { UniTextComponent } from '../text';\nimport { visuallyHidden } from '../../cdk';\nimport type { UniNotificationBadgeOptions } from './notification-badge.model';\n\n@Component({\n selector: 'uni-notification-badge',\n imports: [UniTextComponent],\n templateUrl: './notification-badge.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'notificationBadge' }],\n host: { '[class]': 'className()' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UniNotificationBadgeComponent extends BaseComponent<UniNotificationBadgeOptions> {\n count = input<number | undefined>(undefined);\n maxCount = input<number>(99);\n badgeVariant = input<'dot' | 'count' | 'pill'>('count');\n color = input<Variant | undefined>(undefined);\n position = input<'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'>('top-right');\n show = input<boolean>(true);\n\n /**\n * Screen-reader text for the badge (e.g. \"5 unread messages\"). Without it\n * a sensible default is announced; a bare number or dot carries no meaning.\n */\n ariaLabel = input<string>();\n\n protected readonly srOnlyClass = css(visuallyHidden);\n\n protected readonly announcement = computed(() => {\n const label = this.ariaLabel();\n if (label) return label;\n if (this.badgeVariant() === 'dot') return 'New notifications';\n return `${this.displayValue()} notifications`;\n });\n\n displayValue = computed(() => {\n const count = this.count();\n const maxCount = this.maxCount();\n const variant = this.badgeVariant();\n\n if (variant === 'dot') {\n return '';\n }\n\n if (count === undefined || count <= 0) {\n return '';\n }\n\n if (count > maxCount) {\n return `${maxCount}+`;\n }\n\n return count.toString();\n });\n\n shouldShow = computed(() => {\n const show = this.show();\n const count = this.count();\n const variant = this.badgeVariant();\n\n if (!show) return false;\n\n if (variant === 'dot') return true;\n\n return count !== undefined && count > 0;\n });\n\n protected readonly className = computed(() => {\n const variant = this.badgeVariant();\n const color = this.color();\n const position = this.position();\n const offset = this.componentOptions().offset + 'px';\n\n const positionStyles = {\n 'top-right': { top: offset, right: offset },\n 'top-left': { top: offset, left: offset },\n 'bottom-right': { bottom: offset, right: offset },\n 'bottom-left': { bottom: offset, left: offset },\n }[position];\n\n const variantStyles = {\n dot: {\n width: '8px',\n height: '8px',\n borderRadius: '50%',\n minWidth: 'unset',\n },\n count: {\n width: 20,\n height: 20,\n borderRadius: 10,\n },\n pill: {\n minWidth: '24px',\n height: '20px',\n borderRadius: '10px',\n padding: '0 8px',\n },\n }[variant];\n\n return css({\n position: 'relative',\n display: 'inline-block',\n\n '& .notification-badge-indicator': {\n position: 'absolute',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n ...this.theme.getContainerColors(color || 'warn'),\n zIndex: 1,\n\n ...positionStyles,\n ...variantStyles,\n },\n });\n });\n}\n","<ng-content></ng-content>\n@if (shouldShow()) {\n<div class=\"notification-badge-indicator\" aria-hidden=\"true\">\n <uni-text\n typeface=\"overline\"\n align=\"center\"\n [style.max-width]=\"badgeVariant() !== 'pill' ? (displayValue().length * 5 + 'px') : ''\"\n >{{ displayValue() }}</uni-text\n >\n</div>\n<span [class]=\"srOnlyClass\">{{ announcement() }}</span>\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n input,\n model,\n output,\n signal,\n ViewChild,\n} from '@angular/core';\nimport { css, keyframes } from '@emotion/css';\n\nimport { fadeOut, type Variant } from '@uni-design-system/uni-core';\n\nimport { BaseComponent } from '../../base';\nimport { COMPONENT_NAME } from '../../base/base.component';\nimport { UniIconButtonComponent } from '../../icon-button';\nimport { UniIconComponent } from '../../icon';\nimport { IconName } from '../../icon/icon.record';\nimport { UniBoxComponent, UniRowComponent } from '../../layout';\nimport { UniSymbolComponent } from '../../symbol';\nimport { UniTextComponent } from '../../text';\nimport type { UniAlertOptions } from './alert.model';\n\n@Component({\n selector: 'uni-alert, Alert',\n imports: [\n UniRowComponent,\n UniIconButtonComponent,\n UniTextComponent,\n UniBoxComponent,\n UniIconComponent,\n UniSymbolComponent,\n ],\n templateUrl: './alert.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'alert' }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UniAlertComponent extends BaseComponent<UniAlertOptions> implements AfterViewInit {\n show = model<boolean>();\n iconName = input<IconName | undefined>(undefined);\n symbolName = input<string | undefined>(undefined);\n useVariant = input<boolean>(false);\n\n showing = output<boolean>();\n\n @ViewChild('alert') alertRef?: ElementRef<HTMLDialogElement>;\n\n private readonly alertState = signal<'open' | 'closing' | 'closed'>('closed');\n\n private readonly effectiveVariant = computed<Variant>(\n () => this.variant() || this.componentOptions().defaultVariant\n );\n\n protected readonly alertClass = computed(() =>\n css({\n ...this.theme.getContainerColors(this.effectiveVariant(), this.useVariant()),\n ...this.theme.radius(this.componentOptions().borderRadius),\n ...this.theme.border(this.effectiveVariant()),\n ...this.theme.boxShadow(this.componentOptions().elevation),\n\n transition: `all ${this.componentOptions().transitionSpeed}s ease-in-out`,\n transitionBehavior: 'allow-discrete',\n opacity: 1,\n top: this.componentOptions().topPosition,\n\n '&[open]': {\n '@starting-style': {\n top: 0,\n opacity: 0,\n },\n },\n\n '&[closing]': {\n animation: `${this.fadeOut} 0.3s forwards`,\n },\n })\n );\n\n private readonly fadeOut = keyframes({ ...fadeOut });\n\n constructor() {\n super();\n effect(() => {\n if (this.show() === true) {\n this.open();\n } else if (this.show() === false) {\n this.close();\n }\n });\n }\n\n ngAfterViewInit() {\n this.alertRef?.nativeElement.addEventListener('animationend', (e) => {\n if (e.animationName === this.fadeOut.toString()) {\n this.alertRef?.nativeElement.close();\n this.showing.emit(false);\n this.alertState.set('closed');\n }\n });\n }\n\n open() {\n if (!this.alertRef?.nativeElement) return;\n\n this.alertRef.nativeElement.removeAttribute('closing');\n this.alertRef.nativeElement.show();\n this.alertState.set('open');\n this.showing.emit(true);\n }\n\n close() {\n if (!this.alertRef?.nativeElement) return;\n\n this.alertRef.nativeElement.setAttribute('closing', 'true');\n this.alertState.set('closing');\n this.show.set(false);\n }\n\n protected readonly effectiveIconName = computed<IconName | undefined>(() => this.iconName());\n}\n","<!-- role=\"alert\" makes the message announce immediately when shown -->\n<dialog #alert [class]=\"alertClass()\" role=\"alert\">\n <div row-layout gap=\"md\">\n @if (iconName() || symbolName()) {\n <div box-layout [height]=\"26\" [width]=\"26\">\n @if (effectiveIconName()) {\n <Icon [name]=\"effectiveIconName()!\" />\n } @else {\n <Symbol [name]=\"symbolName()!\" [opticalSize]=\"26\" />\n }\n </div>\n }\n <Text>\n <ng-content></ng-content>\n </Text>\n <button icon-button (click)=\"close()\" iconName=\"close\" size=\"md\">close</button>\n </div>\n</dialog>\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\n\nimport {\n UniDialogButtonsComponent,\n UniDialogComponent,\n UniDialogHeaderComponent,\n} from '../../dialog';\nimport { UniBoxComponent } from '../../layout';\nimport { UniTextComponent } from '../../text';\nimport type { Confirmation } from '../../../cdk/notification';\n\n@Component({\n selector: 'uni-confirmation-dialog, Confirmation',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n UniDialogComponent,\n UniDialogHeaderComponent,\n UniBoxComponent,\n UniTextComponent,\n UniDialogButtonsComponent,\n ],\n templateUrl: './confirmation-dialog.component.html',\n})\nexport class ConfirmationDialogComponent {\n show = input(false);\n confirmation = input<Confirmation>();\n showing = output<boolean>();\n}\n","<dialog uni-dialog [show]=\"show()\" (showing)=\"showing.emit($event)\">\n <div uni-dialog-header>\n {{ confirmation()?.title }}\n </div>\n <div box-layout padding=\"md\">\n <Text>\n {{ confirmation()?.message }}\n </Text>\n </div>\n <div\n dialog-buttons\n [confirmButtonText]=\"confirmation()?.actionLabel\"\n (confirmed)=\"confirmation()?.action()\"\n [cancelButtonText]=\"confirmation()?.dismissLabel\"\n ></div>\n</dialog>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n input,\n model,\n output,\n viewChild,\n} from '@angular/core';\nimport { css, keyframes } from '@emotion/css';\nimport { useTimer } from '../../../cdk';\nimport { Z_INDEX } from '@uni-design-system/uni-core';\nimport { BaseComponent } from '../../base';\nimport { COMPONENT_NAME } from '../../base/base.component';\nimport { UniButtonComponent } from '../../button';\nimport { UniIconButtonComponent } from '../../icon-button';\nimport { UniIconComponent } from '../../icon';\nimport { IconName } from '../../icon/icon.record';\nimport { UniBoxComponent, UniRowComponent } from '../../layout';\nimport { UniSymbolComponent } from '../../symbol';\nimport { UniTextComponent } from '../../text';\nimport type { UniSnackbarOptions } from './snackbar.model';\n\n@Component({\n selector: 'uni-snackbar, Snackbar',\n imports: [\n UniRowComponent,\n UniBoxComponent,\n UniTextComponent,\n UniIconButtonComponent,\n UniSymbolComponent,\n UniIconComponent,\n UniButtonComponent,\n ],\n templateUrl: './snackbar.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'snackbar' }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UniSnackbarComponent\n extends BaseComponent<UniSnackbarOptions>\n implements AfterViewInit\n{\n timer = useTimer();\n\n /** Two-way bindable open state: [(show)]. */\n show = model<boolean>();\n iconName = input<IconName>();\n symbolName = input<string>();\n timeout = input<number | string | 'disabled'>();\n actionLabel = input<string>();\n\n useVariant = input<boolean>(false);\n\n action = output();\n showing = output<boolean>();\n\n snackbarRef = viewChild<ElementRef>('snackbar');\n\n private get _snackbar(): HTMLDialogElement | undefined {\n return this.snackbarRef()?.nativeElement;\n }\n\n constructor() {\n super();\n\n effect(() => (this.show() ? this.open() : this.close()));\n }\n\n protected readonly snackbarClass = computed(() =>\n css({\n ...this.theme.getContainerColors(this.variant() || 'primary', this.useVariant()),\n ...this.theme.radius('sm'),\n ...this.theme.border(this.variant() || 'primary'),\n ...this.theme.boxShadow('dialog'),\n padding: 0,\n transition: `all ${this.componentOptions().transitionDelay} ease-in-out`,\n transitionBehavior: 'allow-discrete',\n opacity: 1,\n bottom: this.componentOptions().bottomPosition,\n zIndex: Z_INDEX.dialog,\n position: 'fixed',\n\n '&[open]': {\n '@starting-style': {\n bottom: 0,\n opacity: 0,\n },\n },\n\n '&[closing]': {\n animation: `${this.fadeOut} 0.3s forwards`,\n },\n })\n );\n\n fadeOut = keyframes({\n '0% ': {\n opacity: 1,\n },\n '100%': {\n opacity: 0,\n },\n });\n\n ngAfterViewInit() {\n this._snackbar?.addEventListener('animationend', (e) => {\n if (e.animationName == this.fadeOut) {\n this._snackbar?.close();\n this.showing.emit(false);\n }\n });\n }\n\n private get _timeout(): number | undefined {\n const timeout = this.timeout();\n if (timeout === 'disabled') return undefined;\n\n return typeof timeout === 'string'\n ? parseFloat(timeout)\n : timeout || this.componentOptions().autoCloseDelay;\n }\n\n open() {\n this._snackbar?.removeAttribute('closing');\n this._snackbar?.show();\n this.show.set(true);\n this.showing.emit(true);\n\n if (this._timeout) this.timer.start(this._timeout, () => this.close());\n }\n\n close() {\n this._snackbar?.setAttribute('closing', 'true');\n this.show.set(false);\n }\n\n protected pauseTimer() {\n this.timer.pause();\n }\n\n protected resumeTimer() {\n this.timer.resume();\n }\n}\n","@let icon = iconName();\n@let symbol = symbolName();\n<!-- role=\"status\" announces the message politely without stealing focus -->\n<dialog\n #snackbar\n [class]=\"snackbarClass()\"\n role=\"status\"\n (mouseenter)=\"pauseTimer()\"\n (mouseleave)=\"resumeTimer()\"\n (focusin)=\"pauseTimer()\"\n (focusout)=\"resumeTimer()\"\n>\n <Row alignItems=\"center\">\n @if (icon || symbol) {\n <Box [height]=\"26\" [width]=\"26\" paddingLeft=\"sm\">\n @if (icon) {\n <Icon [name]=\"icon\"></Icon>\n } @else if (symbol) {\n <Symbol [name]=\"symbol\" [opticalSize]=\"26\"></Symbol>\n }\n </Box>\n }\n <Box padding=\"sm\">\n <Text>\n <ng-content></ng-content>\n </Text>\n </Box>\n <Box paddingRight=\"sm\">\n @if (!actionLabel()) {\n <button icon-button (click)=\"close()\" iconName=\"close\" size=\"md\">Close</button>\n } @else {\n <button text-button variant=\"ghost\" (click)=\"this.action.emit(); close()\">\n {{ actionLabel() }}\n </button>\n }\n </Box>\n </Row>\n</dialog>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n inject,\n signal,\n} from '@angular/core';\nimport { Alert, Confirmation, NotificationService, Snackbar } from '../../../cdk';\nimport { UniAlertComponent } from '../alert/alert.component';\nimport { ConfirmationDialogComponent } from '../confirmation-dialog/confirmation-dialog.component';\nimport { UniSnackbarComponent } from '../snackbar/snackbar.component';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'uni-notifications, Notifications',\n imports: [UniAlertComponent, UniSnackbarComponent, ConfirmationDialogComponent],\n templateUrl: './notifications.component.html',\n})\nexport class NotificationsComponent {\n notifications = inject(NotificationService);\n\n private readonly alertState = signal<Alert | undefined>(undefined);\n private readonly snackbarState = signal<Snackbar | undefined>(undefined);\n private readonly confirmationState = signal<Confirmation | undefined>(undefined);\n\n // Computed values for the show states\n protected readonly showAlert = computed(() => !!this.alertState());\n protected readonly showSnackbar = computed(() => !!this.snackbarState());\n protected readonly showConfirmation = computed(() => !!this.confirmationState());\n\n // Expose the alert state\n protected readonly alert = computed(() => this.alertState());\n protected readonly snackbar = computed(() => this.snackbarState());\n protected readonly confirmation = computed(() => this.confirmationState());\n\n constructor() {\n effect(() => {\n this.alertState.set(this.notifications.alert());\n });\n effect(() => {\n this.snackbarState.set(this.notifications.snackbar());\n });\n effect(() => {\n this.confirmationState.set(this.notifications.confirmation());\n });\n }\n\n handleConfirmationShowingEvent(showing: boolean) {\n if (!showing) this.notifications.hideConfirmation();\n }\n\n handleSnackbarShowingEvent(showing: boolean) {\n if (!showing) this.notifications.hideSnackbar();\n }\n\n handleAlertShowingEvent(showing: boolean) {\n if (!showing) this.notifications.hideAlert();\n }\n}\n","<Alert\n [show]=\"showAlert()\"\n (showing)=\"handleAlertShowingEvent($event)\"\n [variant]=\"alert()?.variant || 'primary'\"\n [iconName]=\"alert()?.iconName\"\n [symbolName]=\"alert()?.symbolName\"\n >{{ alert()?.message }}</Alert\n>\n\n<Snackbar\n [show]=\"showSnackbar()\"\n (showing)=\"handleSnackbarShowingEvent($event)\"\n [variant]=\"snackbar()?.variant || 'primary'\"\n [actionLabel]=\"snackbar()?.actionLabel\"\n (action)=\"snackbar()?.action?.()\"\n [timeout]=\"snackbar()?.timeout\"\n [iconName]=\"snackbar()?.iconName\"\n [symbolName]=\"snackbar()?.symbolName\"\n >{{ snackbar()?.message }}</Snackbar\n>\n\n<Confirmation\n [show]=\"showConfirmation()\"\n (showing)=\"handleConfirmationShowingEvent($event)\"\n [confirmation]=\"confirmation()\"\n></Confirmation>\n","import { ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { css } from '@emotion/css';\nimport { type UniDatasource } from '../../cdk';\nimport { BaseComponent } from '../base';\nimport { COMPONENT_NAME } from '../base/base.component';\nimport { UniIconButtonComponent } from '../icon-button/icon-button.component';\nimport { UniRowComponent } from '../layout';\nimport { UniTextComponent } from '../text/text.component';\nimport type { UniPaginatorOptions } from './paginator.model';\n\n@Component({\n selector: 'uni-paginator, Paginator',\n imports: [UniRowComponent, UniIconButtonComponent, UniTextComponent],\n templateUrl: './paginator.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'paginator' }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'navigation',\n 'aria-label': 'Pagination',\n },\n})\nexport class UniPaginatorComponent<T> extends BaseComponent<UniPaginatorOptions> {\n datasource = input<UniDatasource<T>>();\n initPageSize = input<number>();\n\n showPageSize = input<boolean>(true);\n showPageJumper = input<boolean>(true);\n showPageNumbers = input<boolean>(true);\n\n constructor() {\n super();\n effect(() => {\n const pageSize = this.initPageSize();\n if (!pageSize) return;\n const ds = this.datasource();\n if (ds) ds.setPageSize(pageSize);\n });\n }\n\n protected readonly inputClass = computed(() =>\n css({\n textAlign: 'center',\n ...this.theme.border(this.componentOptions().inputBorder),\n ...this.theme.radius(this.componentOptions().inputBorderRadius),\n height: 22,\n fontSize: 16,\n padding: '2px 0 0 2px',\n\n '&:focus-visible': {\n outline: '2px solid currentColor',\n outlineOffset: 1,\n },\n })\n );\n\n protected readonly pageClass = computed(() =>\n css({\n all: 'unset',\n boxSizing: 'border-box',\n ...this.theme.radius(this.componentOptions().pageBorderRadius),\n padding: 2,\n width: 20,\n display: 'flex',\n justifyContent: 'center',\n cursor: 'pointer',\n border: 'solid 1px transparent',\n\n '&:focus-visible': {\n outline: '2px solid currentColor',\n outlineOffset: 1,\n },\n\n '&.current': {\n ...this.theme.border(this.componentOptions().currentPageBorder),\n ...this.theme.radius(this.componentOptions().currentPageBorderRadius),\n cursor: 'unset',\n },\n\n '&:hover:not(.current)': {\n backgroundColor: 'rgba(0,0,0,0.1)',\n },\n })\n );\n\n updatePageSize(event: Event) {\n const ds = this.datasource();\n const pageSize = (event.target as HTMLInputElement).value;\n if (ds) ds.setPageSize(parseInt(pageSize));\n }\n\n jumpToPage(event: Event) {\n const ds = this.datasource();\n const page = (event.target as HTMLInputElement).value;\n if (ds) ds.jumpToPage(parseInt(page));\n }\n\n isNumber(page: unknown) {\n return typeof page === 'number';\n }\n}\n","@let ds = datasource();\n@if (ds) {\n <div row-layout alignItems=\"center\" [gap]=\"componentOptions().gap\">\n @if (showPageSize()) {\n <div row-layout alignItems=\"center\" gap=\"sm\" paddingRight=\"sm\">\n <Text [typeface]=\"componentOptions().textRole\">Show</Text>\n <input\n type=\"number\"\n aria-label=\"Items per page\"\n [class]=\"inputClass()\"\n (change)=\"updatePageSize($event)\"\n min=\"1\"\n [max]=\"ds.recordCount()\"\n [value]=\"ds.pageSize()\"\n />\n </div>\n }\n\n @if (showPageNumbers()) {\n <button\n icon-button\n variant=\"ghost\"\n size=\"md\"\n symbolName=\"keyboard_double_arrow_left\"\n (click)=\"ds.firstPage()\"\n [disable]=\"ds.disablePrevious()\"\n >\n First Page\n </button>\n\n <button\n icon-button\n variant=\"ghost\"\n size=\"md\"\n symbolName=\"chevron_left\"\n (click)=\"ds.previousPage()\"\n [disable]=\"ds.disablePrevious()\"\n >\n Previous Page\n </button>\n\n @for (page of ds.truncatedPages(); track page) {\n @if (isNumber(page)) {\n <button\n type=\"button\"\n [class]=\"pageClass()\"\n [class.current]=\"page === ds.pageIndex() + 1\"\n [attr.aria-label]=\"'Page ' + page\"\n [attr.aria-current]=\"page === ds.pageIndex() + 1 ? 'page' : null\"\n (click)=\"ds.jumpToPage(page)\"\n >\n <Text [typeface]=\"componentOptions().textRole\" display=\"block\">\n {{ page }}\n </Text>\n </button>\n } @else {\n <div>\n <Text [typeface]=\"componentOptions().textRole\" display=\"block\">\n {{ page }}\n </Text>\n </div>\n }\n }\n\n <button\n icon-button\n variant=\"ghost\"\n size=\"md\"\n symbolName=\"chevron_right\"\n (click)=\"ds.nextPage()\"\n [disable]=\"ds.disableNext()\"\n >\n Next Page\n </button>\n\n <button\n icon-button\n variant=\"ghost\"\n size=\"md\"\n symbolName=\"keyboard_double_arrow_right\"\n (click)=\"ds.lastPage()\"\n [disable]=\"ds.disableNext()\"\n >\n Last Page\n </button>\n }\n\n @if (showPageJumper()) {\n <div row-layout alignItems=\"center\" gap=\"sm\" paddingLeft=\"sm\">\n <Text [typeface]=\"componentOptions().textRole\">Jump to</Text>\n <input\n type=\"number\"\n aria-label=\"Jump to page\"\n [class]=\"inputClass()\"\n (change)=\"jumpToPage($event)\"\n min=\"1\"\n [max]=\"ds.pageCount()\"\n [value]=\"ds.pageIndex() + 1\"\n />\n </div>\n }\n </div>\n}\n","/**\n * UniPaginatorComponent Barrel File\n *\n * This file exports all public-facing elements of the paginator component.\n */\n\nexport { UniPaginatorComponent } from './paginator.component';\nexport type { UniPaginatorOptions } from './paginator.model';\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n Renderer2,\n signal,\n viewChild,\n} from '@angular/core';\nimport { css } from '@emotion/css';\nimport { ThemeService } from '../../theming';\nimport {\n anchorArrowStyles,\n anchorStyles,\n newAnchorName,\n resolveFocusTarget,\n uniqueId,\n type Placement,\n} from '../../cdk';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'uni-popover, Popover',\n imports: [],\n templateUrl: './popover.component.html',\n})\nexport class UniPopoverComponent {\n private renderer = inject(Renderer2);\n private theme = inject(ThemeService);\n\n placement = input<Placement>('bottom');\n\n /** Light-dismiss on outside click / Escape (native popover=\"auto\"). */\n autoClose = input(true);\n\n readonly panelId = uniqueId('uni-popover');\n private readonly anchorName = newAnchorName();\n private readonly showing = signal(false);\n\n private triggerRef = viewChild.required<ElementRef<HTMLElement>>('trigger');\n private panelRef = viewChild.required<ElementRef<HTMLElement>>('panel');\n\n constructor() {\n // Wire the ARIA disclosure contract onto the focusable trigger element\n afterNextRender(() => {\n const target = resolveFocusTarget(this.triggerRef().nativeElement);\n this.renderer.setAttribute(target, 'aria-expanded', 'false');\n this.renderer.setAttribute(target, 'aria-controls', this.panelId);\n });\n }\n\n protected onToggle(event: Event) {\n const open = (event as ToggleEvent).newState === 'open';\n this.showing.set(open);\n this.renderer.setAttribute(\n resolveFocusTarget(this.triggerRef().nativeElement),\n 'aria-expanded',\n `${open}`\n );\n }\n\n showPopover() {\n this.panelRef().nativeElement.showPopover();\n }\n\n hidePopover() {\n this.panelRef().nativeElement.hidePopover();\n }\n\n togglePopover(event: MouseEvent) {\n if (this.showing()) {\n this.hidePopover();\n } else {\n this.showPopover();\n }\n event.stopPropagation();\n }\n\n protected readonly triggerClassName = css({\n display: 'inline-block',\n anchorName: this.anchorName,\n });\n\n protected readonly popoverClassName = computed(() =>\n css([\n {\n ...this.theme.colorPair('primary-surface'),\n ...this.theme.radius('xs'),\n ...this.theme.boxShadow('raised'),\n ...this.theme.typeface('label'),\n ...this.theme.border('quaternary'),\n padding: '6px 12px',\n width: 'max-content',\n overflow: 'visible',\n ...anchorStyles(this.anchorName, this.placement(), { mainAxis: 7 }),\n\n // Fade via discrete transitions across the top layer\n transitionProperty: 'opacity, display, overlay',\n transitionDuration: '250ms',\n transitionBehavior: 'allow-discrete',\n opacity: 0,\n\n '&:popover-open': {\n opacity: 1,\n },\n\n '@starting-style': {\n '&:popover-open': {\n opacity: 0,\n },\n },\n },\n ])\n );\n\n protected readonly arrowClassName = computed(() => {\n const side = this.placement().split('-')[0];\n // Border on the two edges of the rotated square that face outward\n const borders: Record<string, object> = {\n top: { ...this.theme.borderRight('quaternary'), ...this.theme.borderBottom('quaternary') },\n bottom: { ...this.theme.borderLeft('quaternary'), ...this.theme.borderTop('quaternary') },\n left: { ...this.theme.borderRight('quaternary'), ...this.theme.borderTop('quaternary') },\n right: { ...this.theme.borderLeft('quaternary'), ...this.theme.borderBottom('quaternary') },\n };\n return css({\n ...this.theme.colorPair('primary-surface'),\n ...anchorArrowStyles(this.placement()),\n ...borders[side],\n });\n });\n}\n","<!-- Click bubbles up from the projected [trigger] content, which is expected\n to be focusable (a button); keyboard activation arrives as a click. -->\n<!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus -->\n<span #trigger (click)=\"togglePopover($event)\" [class]=\"triggerClassName\">\n <ng-content select=\"[trigger]\"></ng-content>\n</span>\n<div\n #panel\n [id]=\"panelId\"\n [attr.popover]=\"autoClose() ? 'auto' : 'manual'\"\n [class]=\"popoverClassName()\"\n (toggle)=\"onToggle($event)\"\n>\n <ng-content></ng-content>\n <span [class]=\"arrowClassName()\"></span>\n</div>\n","/**\n * UniPopoverComponent Barrel File\n *\n * This file exports all public-facing elements of the popover component.\n */\n\nexport { UniPopoverComponent } from './popover.component';\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { css } from '@emotion/css';\nimport { ThemeService } from '../../theming';\n\n@Component({\n selector: 'uni-progress-bar, ProgressBar',\n imports: [],\n templateUrl: './progress-bar.component.html',\n host: {\n '[class]': 'className()',\n role: 'progressbar',\n 'aria-valuemin': '0',\n 'aria-valuemax': '100',\n '[attr.aria-valuenow]': 'percent()',\n '[attr.aria-label]': \"ariaLabel() || 'Progress'\",\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UniProgressBarComponent {\n theme = inject(ThemeService);\n\n palette = this.theme.colors;\n\n width = input<number>(560);\n height = input<number>(24);\n percent = input<number>(0);\n\n /** Accessible name describing what is progressing (e.g. \"Upload progress\"). */\n ariaLabel = input<string>();\n\n stroke = 1;\n\n protected readonly className = computed(() => {\n return css([{ display: 'block' }]);\n });\n\n protected readonly Math = Math;\n}\n","<svg aria-hidden=\"true\" [attr.width]=\"width()\" [attr.height]=\"height()\">\n <rect\n [attr.x]=\"stroke\"\n [attr.y]=\"stroke\"\n [attr.width]=\"width() - stroke * 2\"\n [attr.height]=\"height() - stroke * 2\"\n [attr.fill]=\"palette()['primary-surface']\"\n [attr.stroke]=\"palette()['on-background-variant']\"\n [attr.stroke-width]=\"stroke\"\n [attr.ry]=\"height() / 2 - stroke\"\n [attr.rx]=\"height() / 2 - stroke\"\n />\n\n <rect\n [attr.x]=\"stroke\"\n [attr.y]=\"stroke\"\n [attr.width]=\"Math.max(height() - stroke * 2, (percent() / 100) * width() - stroke * 2)\"\n [attr.height]=\"height() - stroke * 2\"\n [attr.fill]=\"percent() === 100 ? palette()['secondary'] : palette()['secondary-surface']\"\n [attr.stroke]=\"palette()['on-background-variant']\"\n [attr.stroke-width]=\"stroke\"\n [attr.ry]=\"height() / 2 - stroke\"\n [attr.rx]=\"height() / 2 - stroke\"\n />\n</svg>\n","/**\n * UniProgressBarComponent Barrel File\n *\n * This file exports all public-facing elements of the progress-bar component.\n */\n\nexport { UniProgressBarComponent } from './progress-bar.component';\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { css, keyframes } from '@emotion/css';\nimport { BaseComponent, COMPONENT_NAME } from '../base/base.component';\n\n@Component({\n selector: 'uni-progress-gauge, ProgressGauge',\n imports: [],\n templateUrl: './progress-gauge.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'progressGauge' }],\n host: {\n '[class]': 'className()',\n role: 'progressbar',\n 'aria-valuemin': '0',\n 'aria-valuemax': '100',\n '[attr.aria-valuenow]': 'percent()',\n '[attr.aria-label]': \"ariaLabel() || 'Progress'\",\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UniProgressGaugeComponent extends BaseComponent {\n percent = input<number>(0);\n\n /** Accessible name describing what is progressing. */\n ariaLabel = input<string>();\n\n textStyle = computed(() => {\n const theme = this.componentTheme();\n return theme.fixed && theme.fixed['textFill'];\n });\n\n private progress = keyframes({\n '0%': { strokeDasharray: '0 100' },\n });\n\n protected readonly className = computed(() => {\n return css({\n display: 'block',\n\n '& .circular-chart': {\n display: 'block',\n },\n\n '& .circle-bg': {\n fill: 'none',\n strokeWidth: 3.8,\n },\n\n '& .circle': {\n fill: 'none',\n strokeWidth: 3.8,\n animation: `${this.progress} 1s ease-out forwards`,\n },\n\n '& .percentage': {\n fontFamily: 'sans-serif',\n fontSize: '0.5em',\n textAnchor: 'middle',\n },\n });\n });\n}\n","<svg\n viewBox=\"0 0 36 36\"\n class=\"circular-chart\"\n aria-hidden=\"true\"\n [style.height]=\"style()['height']\"\n>\n <path\n class=\"circle-bg\"\n [attr.stroke]=\"style()['backgroundColor']\"\n d=\"M18 2.0845\n a 15.9155 15.9155 0 0 1 0 31.831\n a 15.9155 15.9155 0 0 1 0 -31.831\"\n />\n <path\n class=\"circle\"\n [attr.stroke]=\"style()['color']\"\n [attr.stroke-dasharray]=\"percent() + ', 100'\"\n d=\"M18 2.0845\n a 15.9155 15.9155 0 0 1 0 31.831\n a 15.9155 15.9155 0 0 1 0 -31.831\"\n />\n <text x=\"18.5\" y=\"20.82\" class=\"percentage\" [style.fill]=\"textStyle()\">{{ percent() }}%</text>\n</svg>\n","/**\n * UniProgressGaugeComponent Barrel File\n *\n * This file exports all public-facing elements of the progress-gauge component.\n */\n\nexport { UniProgressGaugeComponent } from './progress-gauge.component';\n","import { ChangeDetectionStrategy, Component, computed, input, model } from '@angular/core';\nimport { FormValueControl } from '@angular/forms/signals';\nimport { css } from '@emotion/css';\nimport type { ColorToken } from '@uni-design-system/uni-core';\nimport { BaseComponent } from '../base';\nimport { COMPONENT_NAME } from '../base/base.component';\nimport { UniTextComponent } from '../text/text.component';\nimport type { UniRadioOption, UniRadioOptions } from './radio.model';\nimport { uniqueId } from '../../cdk';\n\n@Component({\n selector: 'uni-radio, Radio',\n imports: [UniTextComponent],\n templateUrl: './radio.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'radio' }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UniRadioComponent\n extends BaseComponent<UniRadioOptions>\n implements FormValueControl<string>\n{\n // --- REQUIRED SIGNALS (populated by FormValueControl) ---\n readonly value = model<string>('');\n readonly disabled = input(false);\n readonly touched = model(false);\n readonly invalid = input(false);\n readonly dirty = input(false);\n\n /** Synced from required() validators by the Signal Forms [field] directive. */\n readonly required = input(false);\n\n /**\n * Id(s) of external element(s) describing this control — typically your\n * app-rendered error message — exposed as aria-describedby.\n */\n readonly ariaDescribedBy = input<string>();\n\n // --- CONFIGURATION ---\n readonly options = input<UniRadioOption[]>([]);\n readonly label = input<string>();\n // Unique default so multiple radio groups on a page never share a name\n readonly name = input<string>(uniqueId('uni-radio-group'));\n\n /** Links the group label to the radiogroup container. */\n protected readonly groupLabelId = uniqueId('uni-radio-label');\n\n // Only show errors if the user has actually interacted with the field\n protected readonly showError = computed(() => this.invalid() && (this.touched() || this.dirty()));\n\n markAsTouched() {\n this.touched.set(true);\n }\n\n private readonly metrics = computed(() => {\n const radioSize = (this.componentOptions().size as number) || 20;\n const innerCircleSize = radioSize * 0.6;\n return {\n outerCircleSize: radioSize,\n innerCircleSize,\n innerCircleOffset: (radioSize - innerCircleSize) / 2,\n };\n });\n\n protected readonly radioGroupClass = css({\n display: 'flex',\n flexDirection: 'column',\n gap: 12,\n });\n\n protected readonly radioOptionClass = computed(() => {\n const { outerCircleSize, innerCircleSize, innerCircleOffset } = this.metrics();\n return css({\n userSelect: 'none',\n cursor: this.disabled() ? 'not-allowed' : 'pointer',\n display: 'flex',\n alignItems: 'center',\n gap: 8,\n opacity: this.disabled() ? 0.6 : 1,\n\n '& .radio-button': {\n width: outerCircleSize,\n height: outerCircleSize,\n borderRadius: '50%',\n border: `2px solid ${this.disabled() ? '#ccc' : '#d0d0d0'}`,\n position: 'relative',\n transition: 'all 0.3s ease',\n backgroundColor: '#fff',\n flexShrink: 0,\n },\n\n '& .radio-inner': {\n width: innerCircleSize,\n height: innerCircleSize,\n borderRadius: '50%',\n backgroundColor: this.getThemeColor(this.variant()),\n position: 'absolute',\n top: innerCircleOffset,\n left: innerCircleOffset,\n transform: 'scale(0)',\n transition: 'all 0.3s ease',\n },\n\n '&:hover .radio-button': this.disabled()\n ? {}\n : {\n borderColor: this.getThemeColor(this.variant()),\n },\n\n '&.disabled': {\n cursor: 'not-allowed',\n opacity: 0.6,\n\n '& .radio-button': {\n borderColor: '#ccc',\n },\n },\n });\n });\n\n protected readonly radioInputClass = computed(() =>\n css({\n position: 'absolute',\n zIndex: -1,\n width: 0,\n height: 0,\n opacity: 0,\n\n '&:checked + .radio-button': {\n borderColor: this.getThemeColor(this.variant()),\n },\n\n '&:checked + .radio-button .radio-inner': {\n transform: 'scale(1)',\n },\n\n '&:focus + .radio-button': {\n outline: `2px solid ${this.getThemeColor(this.variant())}`,\n outlineOffset: '2px',\n },\n })\n );\n\n handleRadioChange(optionValue: string) {\n this.value.set(optionValue);\n this.markAsTouched();\n }\n\n getThemeColor(token: ColorToken) {\n const colors = this.theme.colors();\n return colors[token] ? colors[token] : colors['primary'];\n }\n}\n","<div\n [class]=\"radioGroupClass\"\n role=\"radiogroup\"\n [attr.aria-labelledby]=\"label() ? groupLabelId : null\"\n [attr.aria-invalid]=\"showError() ? true : null\"\n [attr.aria-required]=\"required() ? true : null\"\n [attr.aria-describedby]=\"ariaDescribedBy() || null\"\n>\n @if (label()) {\n <Text typeface=\"label\" [attr.id]=\"groupLabelId\">{{ label() }}</Text>\n }\n\n @for (option of options(); track option.value) {\n <label [class]=\"radioOptionClass()\" [class.disabled]=\"disabled() || option.disabled\">\n <input\n type=\"radio\"\n [class]=\"radioInputClass()\"\n [value]=\"option.value\"\n [name]=\"name()\"\n [checked]=\"value() === option.value\"\n [disabled]=\"disabled() || option.disabled\"\n (change)=\"handleRadioChange(option.value)\"\n />\n <div class=\"radio-button\">\n <div class=\"radio-inner\"></div>\n </div>\n <Text typeface=\"label\">{{ option.label }}</Text>\n </label>\n }\n</div>\n","/**\n * UniScrollAreaComponent Barrel File\n *\n * This file exports all public-facing elements of the scroll-area component.\n */\n\nexport { UniScrollAreaComponent } from './scroll-area.component';\nexport type { ScrollbarAppearance } from './scroll-area.types';\n","import { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';\nimport { css } from '@emotion/css';\nimport { UniDebounceInputComponent } from '../forms/debounce-input/debounce-input.component';\nimport { UniIconButtonComponent } from '../icon-button/icon-button.component';\nimport { UniBoxComponent } from '../layout';\nimport { UniTextComponent } from '../text/text.component';\n\n@Component({\n selector: 'SearchInput, uni-search-input',\n imports: [UniDebounceInputComponent, UniTextComponent, UniBoxComponent, UniIconButtonComponent],\n templateUrl: './search-input.component.html',\n host: { '[class]': 'className()' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UniSearchInputComponent {\n label = input.required<string>();\n width = input<string | number>('100%');\n\n // TODO(v4): rename to searchChange/searchSubmit — renaming is breaking\n // eslint-disable-next-line @angular-eslint/no-output-native\n change = output<string>();\n // eslint-disable-next-line @angular-eslint/no-output-native\n search = output<string>();\n\n protected readonly className = computed(() => {\n return css([\n {\n display: 'flex',\n alignItems: 'center',\n },\n ]);\n });\n\n handleSearchInput(searchInput: string) {\n this.change.emit(searchInput);\n }\n\n handleSearch(searchInput: string | undefined) {\n this.search.emit(searchInput ?? '');\n }\n}\n","<Box\n color=\"primary\"\n borderRadius=\"max\"\n paddingHorizontal=\"sm\"\n display=\"flex\"\n border=\"quaternary\"\n alignItems=\"center\"\n [width]=\"width()\"\n>\n <Box alignSelf=\"center\" paddingHorizontal=\"md\">\n <Text display=\"block\" typeface=\"title-large\">{{ label() }}</Text>\n </Box>\n <Box\n borderRadius=\"max\"\n display=\"block\"\n paddingHorizontal=\"md\"\n paddingVertical=\"sm\"\n color=\"primary-surface\"\n [grow]=\"1\"\n >\n <DebounceInput (change)=\"handleSearchInput($event)\" #searchInput />\n </Box>\n <button icon-button iconName=\"search\" variant=\"ghost\" (click)=\"handleSearch(searchInput.value())\">\n Search\n </button>\n</Box>\n","/**\n * UniSearchInputComponent Barrel File\n *\n * This file exports all public-facing elements of the search-input component.\n */\n\nexport { UniSearchInputComponent } from './search-input.component';\n","import { ChangeDetectionStrategy, Component, computed, input, model } from '@angular/core';\nimport { FormValueControl } from '@angular/forms/signals';\nimport { css } from '@emotion/css';\nimport type { Options } from '../../cdk';\nimport { UniInputBoxComponent } from '../input-box/input-box.component';\nimport { UniSymbolComponent } from '../symbol';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'uni-select, SelectInput',\n imports: [UniInputBoxComponent, UniSymbolComponent],\n templateUrl: './select-input.component.html',\n})\nexport class UniSelectComponent<T> implements FormValueControl<T | null> {\n // --- REQUIRED SIGNALS (populated by FormValueControl) ---\n readonly value = model<T | null>(null);\n readonly disabled = input(false);\n readonly touched = model(false);\n readonly invalid = input(false);\n readonly dirty = input(false);\n\n /** Synced from required() validators by the Signal Forms [field] directive. */\n readonly required = input(false);\n\n /**\n * Id(s) of external element(s) describing this control — typically your\n * app-rendered error message — exposed as aria-describedby.\n */\n readonly ariaDescribedBy = input<string>();\n\n // --- CONFIGURATION ---\n readonly options = input<Options<T>>([]);\n readonly placeholder = input<string>();\n\n /** Accessible name for the select; a placeholder is not a label. */\n readonly ariaLabel = input<string>();\n\n protected readonly UNSELECTED = -1;\n\n /**\n * We use the index as the HTML value to avoid issues with\n * stringifying complex objects or duplicate labels.\n */\n protected readonly currentSelectedIndex = computed(() => {\n const currentVal = this.value();\n if (currentVal === null || currentVal === undefined) return this.UNSELECTED;\n\n // Find the index of the option that contains our current value\n const index = this.options().findIndex((opt) => opt.value === currentVal);\n return index.toString();\n });\n\n protected readonly showError = computed(() => this.invalid() && (this.touched() || this.dirty()));\n\n protected handleSelectChange(event: Event): void {\n const select = event.target as HTMLSelectElement;\n const index = parseInt(select.value, 10);\n\n if (index === this.UNSELECTED) {\n this.value.set(null);\n } else {\n const selectedOption = this.options()[index];\n // Update the model with the 'value' property of the Option interface\n this.value.set(selectedOption.value);\n }\n }\n\n selectClass = css({\n '& select': {\n paddingRight: 24, // Prevent arrow from overlapping\n cursor: 'pointer',\n '&::-ms-expand': { display: 'none' },\n },\n\n [`& select:has(option[value=\"${this.UNSELECTED}\"]:checked)`]: {\n color: 'color-mix(in srgb, currentColor 50%, transparent)',\n },\n });\n\n arrowClass = css({\n position: 'absolute',\n right: 0,\n pointerEvents: 'none' /* Crucial for clicking through */,\n });\n}\n","<uni-input-box [error]=\"showError()\" [class]=\"selectClass\">\n <select\n [disabled]=\"disabled()\"\n [value]=\"currentSelectedIndex()\"\n (change)=\"handleSelectChange($event)\"\n (blur)=\"touched.set(true)\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-invalid]=\"showError() ? true : null\"\n [attr.aria-required]=\"required() ? true : null\"\n [attr.aria-describedby]=\"ariaDescribedBy() || null\"\n >\n @if (placeholder()) {\n <option [value]=\"UNSELECTED\" disabled selected>\n {{ placeholder() }}\n </option>\n }\n\n @for (opt of options(); track opt.label; let i = $index) {\n <option [value]=\"i\">\n {{ opt.label }}\n </option>\n }\n </select>\n <uni-symbol name=\"keyboard_arrow_down\" [class]=\"arrowClass\" />\n</uni-input-box>\n","/**\n * UniSortHeaderComponent Barrel File\n *\n * This file exports all public-facing elements of the sort-header component.\n */\n\nexport { UniSortHeaderComponent } from './sort-header.component';\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { UniIconButtonComponent } from '../icon-button/icon-button.component';\nimport { UniBoxComponent, UniRowComponent } from '../layout';\nimport { UniTextComponent } from '../text/text.component';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'Tag, uni-tag',\n imports: [UniBoxComponent, UniIconButtonComponent, UniTextComponent, UniRowComponent],\n templateUrl: './tag.component.html',\n})\nexport class UniTagComponent {\n label = input<string>();\n value = input<string | number>();\n\n // TODO(v4): rename to closed — renaming is breaking\n // eslint-disable-next-line @angular-eslint/no-output-native\n close = output<string | number>();\n\n handleClose() {\n const v = this.value();\n if (v) this.close.emit(v);\n }\n}\n","<div box-layout color=\"primary\" borderRadius=\"max\" display=\"inline-block\">\n <div row-layout paddingLeft=\"sm\" gap=\"xs\">\n <Text display=\"block\" typeface=\"tag\">{{ label() }}</Text>\n <button icon-button symbolName=\"close\" size=\"sm\" (click)=\"handleClose()\">\n Remove {{ label() }}\n </button>\n </div>\n</div>\n","/**\n * UniTagComponent Barrel File\n *\n * This file exports all public-facing elements of the tag component.\n */\n\nexport { UniTagComponent } from './tag.component';\n","import { ChangeDetectionStrategy, Component, computed, inject, signal } from '@angular/core';\nimport { css } from '@emotion/css';\nimport type { ColorCategory, ColorScheme, ColorToken, Variant } from '@uni-design-system/uni-core';\n\nimport { ThemeService, type BrandPaletteConfig } from '../../theming';\nimport { UniButtonComponent } from '../button';\n\nconst SCHEMES: ColorScheme[] = [\n 'monochromatic',\n 'analogous',\n 'complimentary',\n 'splitComplimentary',\n 'triadic',\n];\nconst CATEGORIES: ColorCategory[] = ['jewel', 'pastel', 'earth', 'neutral', 'florescent', 'shades'];\nconst VARIANTS: Variant[] = ['primary', 'secondary', 'tertiary', 'warn', 'ghost'];\n\n// Representative tokens to show as swatches — the brand-derived spine of the theme.\nconst SWATCHES: { label: string; token: ColorToken; on: ColorToken }[] = [\n { label: 'primary', token: 'primary', on: 'on-primary' },\n { label: 'secondary', token: 'secondary', on: 'on-secondary' },\n { label: 'tertiary', token: 'tertiary', on: 'on-tertiary' },\n { label: 'quaternary', token: 'quaternary', on: 'on-quaternary' },\n { label: 'error', token: 'error', on: 'on-error' },\n { label: 'warn', token: 'warn', on: 'on-warn' },\n { label: 'success', token: 'success', on: 'on-success' },\n { label: 'surface', token: 'surface', on: 'on-surface' },\n];\n\ninterface Preset {\n label: string;\n config: BrandPaletteConfig;\n}\n\n// Curated presets for the OKLCH engine. Brand colors ride as soft `targets`:\n// emitted exactly where they already meet WCAG AA, lightness-adjusted (never\n// hue) where they don't — so every preset is AA-clean in both modes.\nconst PRESETS: Preset[] = [\n {\n label: 'Indigo',\n config: { seed: '#4F46E5', scheme: 'analogous', category: 'jewel', targets: { primary: '#4F46E5' } },\n },\n {\n label: 'Ocean',\n config: { seed: '#0066B2', scheme: 'complimentary', category: 'jewel', targets: { primary: '#0066B2' } },\n },\n {\n label: 'Emerald',\n config: { seed: '#047857', scheme: 'analogous', category: 'jewel', targets: { primary: '#047857' } },\n },\n {\n label: 'Sunset',\n config: { seed: '#DC2626', scheme: 'splitComplimentary', category: 'jewel', targets: { primary: '#DC2626' } },\n },\n {\n label: 'Berry',\n config: { seed: '#C2185B', scheme: 'triadic', category: 'jewel', targets: { primary: '#C2185B' } },\n },\n {\n label: 'Heritage',\n config: {\n seed: '#2C3E35',\n scheme: 'complimentary',\n category: 'earth',\n targets: { primary: '#2C3E35', secondary: '#D4A373' },\n },\n },\n {\n label: 'Sage & Clay',\n config: {\n seed: '#6B8F71',\n scheme: 'analogous',\n category: 'earth',\n targets: { primary: '#6B8F71', secondary: '#B3593C' },\n },\n },\n {\n label: 'Pastel',\n config: { seed: '#A78BFA', scheme: 'analogous', category: 'pastel', targets: { primary: '#A78BFA' } },\n },\n {\n label: 'Graphite',\n config: {\n seed: '#475569',\n scheme: 'monochromatic',\n category: 'neutral',\n accentSaturationFloor: 10,\n targets: { primary: '#475569' },\n },\n },\n];\n\n@Component({\n selector: 'uni-theme-builder',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [UniButtonComponent],\n host: { '[class]': 'shell()' },\n template: `\n <aside [class]=\"controls()\">\n <header class=\"tb-head\">\n <span class=\"tb-eyebrow\">Theme builder · Color</span>\n <h2 class=\"tb-title\">Make Uni your brand</h2>\n <p class=\"tb-lede\">\n Every token is derived in OKLCH from a seed color, a scheme and a category — or bring\n exact brand colors. Presets are WCAG AA in light and dark. Changes apply to\n <b>every</b> component in this Storybook, live.\n </p>\n </header>\n\n <div class=\"tb-presets\">\n @for (p of presets; track p.label) {\n <button type=\"button\" class=\"tb-preset\" (click)=\"applyPreset(p.config)\">\n <span\n class=\"tb-dot\"\n [style.background]=\"p.config.targets?.primary ?? p.config.brand?.primary ?? p.config.seed\"\n ></span>\n {{ p.label }}\n </button>\n }\n </div>\n\n <label class=\"tb-field\">\n <span>Seed color</span>\n <div class=\"tb-row\">\n <input type=\"color\" [value]=\"seed()\" (input)=\"setSeed($any($event.target).value)\" />\n <input type=\"text\" [value]=\"seed()\" (input)=\"setSeed($any($event.target).value)\" spellcheck=\"false\" />\n </div>\n </label>\n\n <label class=\"tb-field\">\n <span>Scheme</span>\n <select (change)=\"setScheme($any($event.target).value)\">\n @for (s of schemes; track s) {\n <option [value]=\"s\" [selected]=\"s === scheme()\">{{ s }}</option>\n }\n </select>\n </label>\n\n <label class=\"tb-field\">\n <span>Category</span>\n <select (change)=\"setCategory($any($event.target).value)\">\n @for (c of categories; track c) {\n <option [value]=\"c\" [selected]=\"c === category()\">{{ c }}</option>\n }\n </select>\n </label>\n\n <label class=\"tb-field\">\n <span>Accent saturation floor · {{ floor() }}</span>\n <input type=\"range\" min=\"0\" max=\"45\" [value]=\"floor()\" (input)=\"setFloor($any($event.target).value)\" />\n </label>\n\n <div class=\"tb-field\">\n <span>Mode</span>\n <div class=\"tb-toggle\">\n <button type=\"button\" [class.on]=\"mode() === 'light'\" (click)=\"setMode('light')\">Light</button>\n <button type=\"button\" [class.on]=\"mode() === 'dark'\" (click)=\"setMode('dark')\">Dark</button>\n </div>\n </div>\n\n <label class=\"tb-field tb-pin\" [class.dim]=\"!pinPrimary()\">\n <span>\n <input type=\"checkbox\" [checked]=\"pinPrimary()\" (change)=\"setPinPrimary($any($event.target).checked)\" />\n Pin primary <em>{{ pinPrimary() ? 'exact' : 'off' }}</em>\n </span>\n <div class=\"tb-row\">\n <input type=\"color\" [value]=\"primaryHex()\" (input)=\"setPrimaryHex($any($event.target).value)\" />\n <input type=\"text\" [value]=\"primaryHex()\" (input)=\"setPrimaryHex($any($event.target).value)\" spellcheck=\"false\" />\n </div>\n </label>\n\n <label class=\"tb-field tb-pin\" [class.dim]=\"!pinSecondary()\">\n <span>\n <input type=\"checkbox\" [checked]=\"pinSecondary()\" (change)=\"setPinSecondary($any($event.target).checked)\" />\n Pin secondary <em>{{ pinSecondary() ? 'exact' : 'off' }}</em>\n </span>\n <div class=\"tb-row\">\n <input type=\"color\" [value]=\"secondaryHex()\" (input)=\"setSecondaryHex($any($event.target).value)\" />\n <input type=\"text\" [value]=\"secondaryHex()\" (input)=\"setSecondaryHex($any($event.target).value)\" spellcheck=\"false\" />\n </div>\n </label>\n\n <div class=\"tb-actions\">\n <button type=\"button\" class=\"tb-reset\" (click)=\"reset()\">Reset to default</button>\n </div>\n <code class=\"tb-snippet\">{{ snippet() }}</code>\n </aside>\n\n <section [class]=\"preview()\">\n <p class=\"tb-group\">Palette</p>\n <div class=\"tb-swatches\">\n @for (s of swatches; track s.label) {\n <div class=\"tb-swatch\" [style.background]=\"color(s.token)\" [style.color]=\"color(s.on)\">\n <span>{{ s.label }}</span>\n <code>{{ color(s.token) }}</code>\n </div>\n }\n </div>\n\n <p class=\"tb-group\">Buttons — your brand, our variants</p>\n <div class=\"tb-buttons\">\n @for (v of variants; track v) {\n <button text-button [variant]=\"v\" size=\"lg\">{{ v }}</button>\n }\n </div>\n <div class=\"tb-buttons\">\n @for (sz of sizes; track sz) {\n <button text-button variant=\"primary\" [size]=\"sz\">{{ sz }}</button>\n }\n </div>\n\n <p class=\"tb-group\">Surfaces</p>\n <div class=\"tb-cards\">\n <div class=\"tb-card\" [style.background]=\"color('surface')\" [style.borderColor]=\"color('outline')\">\n <div class=\"tb-card-head\" [style.background]=\"color('primary')\" [style.color]=\"color('on-primary')\">\n Card header\n </div>\n <div class=\"tb-card-body\" [style.color]=\"color('on-surface')\">\n Body copy on a surface with the outline token as its border. Semantic states stay legible:\n <b [style.color]=\"color('error')\">error</b> ·\n <b [style.color]=\"color('warn')\">warn</b> ·\n <b [style.color]=\"color('success')\">success</b>.\n </div>\n </div>\n <div class=\"tb-card\" [style.background]=\"color('primary-container')\" [style.borderColor]=\"color('primary')\">\n <div class=\"tb-card-body\" [style.color]=\"color('on-primary-container')\">\n <b>primary-container</b> — a soft brand tint for chips, highlights and callouts, with its\n own legible on-color.\n </div>\n </div>\n </div>\n\n <p class=\"tb-hint\">Tip: browse to any component story in the sidebar — it's wearing your brand now.</p>\n </section>\n `,\n})\nexport class UniThemeBuilderComponent {\n protected theme = inject(ThemeService);\n\n protected readonly schemes = SCHEMES;\n protected readonly categories = CATEGORIES;\n protected readonly variants = VARIANTS;\n protected readonly sizes = ['sm', 'md', 'lg', 'xl'] as const;\n protected readonly swatches = SWATCHES;\n protected readonly presets = PRESETS;\n\n protected seed = signal('#4F46E5');\n protected scheme = signal<ColorScheme>('triadic');\n protected category = signal<ColorCategory>('neutral');\n protected floor = signal(18);\n protected mode = signal<'light' | 'dark'>('light');\n protected pinPrimary = signal(false);\n protected primaryHex = signal('#2C3E35');\n protected pinSecondary = signal(false);\n protected secondaryHex = signal('#D4A373');\n /** Soft brand targets carried by the active preset (cleared on seed edits). */\n protected targets = signal<BrandPaletteConfig['targets']>(undefined);\n\n constructor() {\n // Seed the controls from an already-active custom palette, if any.\n const existing = this.theme.customPalette();\n if (existing) {\n this.seed.set(existing.seed);\n this.scheme.set(existing.scheme);\n this.category.set(existing.category);\n this.floor.set(existing.accentSaturationFloor ?? 18);\n this.mode.set(existing.mode ?? 'light');\n if (existing.brand?.primary) {\n this.pinPrimary.set(true);\n this.primaryHex.set(existing.brand.primary);\n }\n if (existing.brand?.secondary) {\n this.pinSecondary.set(true);\n this.secondaryHex.set(existing.brand.secondary);\n }\n this.targets.set(existing.targets);\n }\n }\n\n protected config = computed<BrandPaletteConfig>(() => ({\n seed: this.seed(),\n scheme: this.scheme(),\n category: this.category(),\n mode: this.mode(),\n accentSaturationFloor: this.floor(),\n ...(this.targets() ? { targets: this.targets() } : {}),\n brand: {\n ...(this.pinPrimary() ? { primary: this.primaryHex() } : {}),\n ...(this.pinSecondary() ? { secondary: this.secondaryHex() } : {}),\n },\n }));\n\n protected snippet = computed(() => JSON.stringify(this.config()));\n\n protected color(token: ColorToken): string {\n return this.theme.colors()[token] ?? 'transparent';\n }\n\n private apply(): void {\n this.theme.applyPalette(this.config());\n }\n\n protected setSeed(v: string) {\n if (/^#?[0-9a-fA-F]{6}$/.test(v.replace('#', ''))) {\n this.seed.set(v.startsWith('#') ? v : `#${v}`);\n // A hand-edited seed takes over from any preset's soft brand targets.\n this.targets.set(undefined);\n this.apply();\n }\n }\n protected setScheme(v: ColorScheme) {\n this.scheme.set(v);\n this.apply();\n }\n protected setCategory(v: ColorCategory) {\n this.category.set(v);\n this.apply();\n }\n protected setFloor(v: string) {\n this.floor.set(Number(v));\n this.apply();\n }\n protected setMode(v: 'light' | 'dark') {\n this.mode.set(v);\n this.apply();\n }\n protected setPinPrimary(v: boolean) {\n this.pinPrimary.set(v);\n this.apply();\n }\n protected setPrimaryHex(v: string) {\n this.primaryHex.set(v.startsWith('#') ? v : `#${v}`);\n if (this.pinPrimary()) this.apply();\n }\n protected setPinSecondary(v: boolean) {\n this.pinSecondary.set(v);\n this.apply();\n }\n protected setSecondaryHex(v: string) {\n this.secondaryHex.set(v.startsWith('#') ? v : `#${v}`);\n if (this.pinSecondary()) this.apply();\n }\n\n protected applyPreset(config: BrandPaletteConfig) {\n this.seed.set(config.seed);\n this.scheme.set(config.scheme);\n this.category.set(config.category);\n this.floor.set(config.accentSaturationFloor ?? 18);\n this.targets.set(config.targets);\n this.pinPrimary.set(!!config.brand?.primary);\n if (config.brand?.primary) this.primaryHex.set(config.brand.primary);\n this.pinSecondary.set(!!config.brand?.secondary);\n if (config.brand?.secondary) this.secondaryHex.set(config.brand.secondary);\n this.apply();\n }\n\n protected reset() {\n this.theme.clearCustomPalette();\n this.seed.set('#4F46E5');\n this.scheme.set('triadic');\n this.category.set('neutral');\n this.floor.set(18);\n this.mode.set('light');\n this.targets.set(undefined);\n this.pinPrimary.set(false);\n this.pinSecondary.set(false);\n }\n\n // ── Styling (reads live theme tokens so the builder wears the brand too) ──\n private c = (token: ColorToken) => this.theme.colors()[token] ?? 'transparent';\n\n protected shell = computed(() =>\n css({\n display: 'grid',\n gridTemplateColumns: 'minmax(280px, 340px) 1fr',\n gap: 24,\n alignItems: 'start',\n padding: 24,\n background: this.c('background'),\n color: this.c('on-background'),\n minHeight: '100vh',\n fontFamily: 'Red Hat Display, system-ui, sans-serif',\n '@media (max-width: 820px)': { gridTemplateColumns: '1fr' },\n '& .tb-eyebrow': {\n fontSize: 11,\n letterSpacing: '0.14em',\n textTransform: 'uppercase',\n opacity: 0.6,\n },\n '& .tb-title': { fontSize: 26, margin: '6px 0 8px', letterSpacing: '-0.02em' },\n '& .tb-lede': { fontSize: 14, lineHeight: 1.5, opacity: 0.8, margin: 0 },\n '& .tb-group': {\n fontSize: 11,\n letterSpacing: '0.14em',\n textTransform: 'uppercase',\n opacity: 0.55,\n margin: '4px 0 12px',\n },\n })\n );\n\n protected controls = computed(() =>\n css({\n position: 'sticky',\n top: 16,\n display: 'flex',\n flexDirection: 'column',\n gap: 16,\n padding: 20,\n borderRadius: 14,\n background: this.c('surface'),\n border: `1px solid ${this.c('outline')}`,\n '& .tb-head': { display: 'flex', flexDirection: 'column' },\n '& .tb-presets': { display: 'flex', flexWrap: 'wrap', gap: 8 },\n '& .tb-preset': {\n display: 'inline-flex',\n alignItems: 'center',\n gap: 7,\n cursor: 'pointer',\n borderRadius: 999,\n padding: '5px 11px 5px 6px',\n fontSize: 12.5,\n border: `1px solid ${this.c('outline')}`,\n background: this.c('surface'),\n color: this.c('on-surface'),\n },\n '& .tb-dot': { width: 13, height: 13, borderRadius: '50%' },\n '& .tb-field': { display: 'flex', flexDirection: 'column', gap: 6, fontSize: 13 },\n '& .tb-field > span': { fontSize: 12, opacity: 0.7 },\n '& .tb-row': { display: 'flex', gap: 8, alignItems: 'center' },\n '& input[type=color]': {\n width: 40,\n height: 34,\n padding: 0,\n border: `1px solid ${this.c('outline')}`,\n borderRadius: 8,\n background: 'none',\n cursor: 'pointer',\n },\n '& input[type=text], & select': {\n width: '100%',\n height: 34,\n padding: '0 10px',\n borderRadius: 8,\n border: `1px solid ${this.c('outline')}`,\n background: this.c('background'),\n color: this.c('on-background'),\n fontSize: 13,\n },\n '& input[type=range]': { width: '100%', accentColor: this.c('primary') },\n '& .tb-toggle': { display: 'flex', gap: 6 },\n '& .tb-toggle button': {\n flex: 1,\n height: 32,\n borderRadius: 8,\n cursor: 'pointer',\n border: `1px solid ${this.c('outline')}`,\n background: this.c('background'),\n color: this.c('on-background'),\n },\n '& .tb-toggle button.on': {\n background: this.c('primary'),\n color: this.c('on-primary'),\n borderColor: this.c('primary'),\n },\n '& .tb-pin.dim input[type=color], & .tb-pin.dim input[type=text]': { opacity: 0.45 },\n '& .tb-pin em': {\n fontStyle: 'normal',\n fontSize: 10,\n padding: '1px 6px',\n borderRadius: 5,\n marginLeft: 4,\n background: this.c('primary-container'),\n color: this.c('on-primary-container'),\n },\n '& .tb-reset': {\n cursor: 'pointer',\n borderRadius: 8,\n padding: '8px 14px',\n border: `1px solid ${this.c('outline')}`,\n background: this.c('background'),\n color: this.c('on-background'),\n fontSize: 13,\n },\n '& .tb-snippet': {\n display: 'block',\n fontFamily: 'monospace',\n fontSize: 10.5,\n lineHeight: 1.5,\n wordBreak: 'break-all',\n opacity: 0.6,\n },\n })\n );\n\n protected preview = computed(() =>\n css({\n display: 'flex',\n flexDirection: 'column',\n gap: 10,\n '& .tb-swatches': {\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fill, minmax(120px, 1fr))',\n gap: 10,\n marginBottom: 20,\n },\n '& .tb-swatch': {\n borderRadius: 12,\n padding: '16px 14px',\n minHeight: 74,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n },\n '& .tb-swatch span': { fontSize: 13, fontWeight: 600 },\n '& .tb-swatch code': { fontFamily: 'monospace', fontSize: 11, opacity: 0.85 },\n '& .tb-buttons': { display: 'flex', flexWrap: 'wrap', gap: 12, alignItems: 'center', marginBottom: 14 },\n '& .tb-cards': { display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(240px, 1fr))', gap: 14, marginBottom: 12 },\n '& .tb-card': { borderRadius: 12, overflow: 'hidden', border: '1px solid' },\n '& .tb-card-head': { padding: '10px 16px', fontWeight: 600 },\n '& .tb-card-body': { padding: '14px 16px', fontSize: 13.5, lineHeight: 1.5 },\n '& .tb-hint': { fontSize: 12.5, opacity: 0.6, marginTop: 8 },\n })\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input, model } from '@angular/core';\nimport { FormCheckboxControl } from '@angular/forms/signals';\nimport { css } from '@emotion/css';\nimport type { ColorToken } from '@uni-design-system/uni-core';\nimport { BaseComponent } from '../base';\nimport { COMPONENT_NAME } from '../base/base.component';\nimport { UniTextComponent } from '../text/text.component';\nimport type { UniToggleOptions } from './toggle.model';\n\n@Component({\n selector: 'uni-toggle, Toggle',\n imports: [UniTextComponent],\n templateUrl: './toggle.component.html',\n providers: [{ provide: COMPONENT_NAME, useValue: 'toggle' }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UniToggleComponent\n extends BaseComponent<UniToggleOptions>\n implements FormCheckboxControl\n{\n // --- REQUIRED SIGNALS (populated by FormCheckboxControl) ---\n readonly checked = model<boolean>(false);\n readonly disabled = input(false);\n readonly touched = model(false);\n readonly invalid = input(false);\n readonly dirty = input(false);\n\n /** Synced from required() validators by the Signal Forms [field] directive. */\n readonly required = input(false);\n\n /**\n * Id(s) of external element(s) describing this control — typically your\n * app-rendered error message — exposed as aria-describedby.\n */\n readonly ariaDescribedBy = input<string>();\n\n // --- CONFIGURATION ---\n readonly label = input<string>();\n\n // Only show errors if the user has actually interacted with the field\n protected readonly showError = computed(() => this.invalid() && (this.touched() || this.dirty()));\n\n markAsTouched() {\n this.touched.set(true);\n }\n\n handleChange(event: Event) {\n this.checked.set((event.target as HTMLInputElement).checked);\n this.markAsTouched();\n }\n\n private readonly metrics = computed(() => {\n const toggleSize = (this.componentOptions().size as number) || 20;\n const sliderSize = toggleSize * 0.8;\n return {\n toggleSize,\n toggleWidth: toggleSize * 2,\n sliderSize,\n sliderOffset: (toggleSize - sliderSize) / 2,\n };\n });\n\n protected readonly toggleLabel = computed(() => {\n const { toggleSize, toggleWidth, sliderSize, sliderOffset } = this.metrics();\n return css({\n userSelect: 'none',\n cursor: this.disabled() ? 'not-allowed' : 'pointer',\n marginBottom: 0,\n display: 'flex',\n alignItems: 'center',\n gap: 8,\n opacity: this.disabled() ? 0.6 : 1,\n\n '& .toggle-switch': {\n width: toggleWidth,\n height: toggleSize,\n backgroundColor: this.disabled() ? '#ccc' : '#e0e0e0',\n borderRadius: toggleSize / 2,\n position: 'relative',\n transition: 'all 0.3s ease',\n },\n\n '& .toggle-slider': {\n width: sliderSize,\n height: sliderSize,\n backgroundColor: '#fff',\n borderRadius: '50%',\n position: 'absolute',\n top: sliderOffset,\n left: sliderOffset,\n transition: 'all 0.3s ease',\n boxShadow: '0 2px 4px rgba(0, 0, 0, 0.2)',\n },\n\n '&:hover .toggle-switch': this.disabled()\n ? {}\n : {\n backgroundColor: '#d0d0d0',\n },\n });\n });\n\n protected readonly toggleInput = computed(() => {\n const { toggleSize } = this.metrics();\n return css({\n position: 'absolute',\n zIndex: -1,\n width: 0,\n height: 0,\n opacity: 0,\n\n '&:checked + .toggle-switch': {\n backgroundColor: this.getThemeColor(this.variant()),\n borderColor: this.getThemeColor(this.variant()),\n },\n\n '&:checked + .toggle-switch .toggle-slider': {\n transform: `translateX(${toggleSize}px)`,\n },\n\n '&:disabled + .toggle-switch': {\n cursor: 'not-allowed',\n },\n\n '&:focus + .toggle-switch': {\n outline: `2px solid ${this.getThemeColor(this.variant())}`,\n outlineOffset: '2px',\n },\n });\n });\n\n getThemeColor(token: ColorToken) {\n const colors = this.theme.colors();\n return colors[token] ? colors[token] : colors['primary'];\n }\n}\n","<label [class]=\"toggleLabel()\">\n <input\n type=\"checkbox\"\n role=\"switch\"\n [class]=\"toggleInput()\"\n [checked]=\"checked()\"\n (change)=\"handleChange($event)\"\n [disabled]=\"disabled()\"\n [attr.aria-invalid]=\"showError() ? true : null\"\n [attr.aria-required]=\"required() ? true : null\"\n [attr.aria-describedby]=\"ariaDescribedBy() || null\"\n />\n <div class=\"toggle-switch\">\n <div class=\"toggle-slider\"></div>\n </div>\n @if (label()) {\n <Text typeface=\"label\">{{ label() }}</Text>\n }\n</label>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.RippleDirective"],"mappings":"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"}