neural-ui-mcp 0.2.5 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"schemaVersion":1,"api":{"schemaVersion":1,"package":"@neural-ui/native","version":"0.1.0-beta.6","entrypoints":{"@neural-ui/native":{"types":"./dist/index.d.ts","sha256":"5b19365dec13edadd0d640fd1b9bdb49d3623437d2bda6c77e173c20b22b63c6","symbols":[{"name":"formatMask","kind":"FunctionDeclaration","declaration":"export declare function formatMask(value: string, mask: string): {\n raw: string;\n display: string;\n};"},{"name":"NEU_CHECK_ICON","kind":"VariableDeclaration","declaration":"NEU_CHECK_ICON = \"<svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"m5 12 4 4 10-10\\\"/></svg>\""},{"name":"NEU_DARK_TOKENS","kind":"VariableDeclaration","declaration":"NEU_DARK_TOKENS: Readonly<NeuTokens>"},{"name":"NEU_FILE_PICKER","kind":"VariableDeclaration","declaration":"NEU_FILE_PICKER: InjectionToken<NeuFilePicker>"},{"name":"NEU_HAPTICS_DRIVER","kind":"VariableDeclaration","declaration":"NEU_HAPTICS_DRIVER: InjectionToken<NeuHapticsDriver | null>"},{"name":"NEU_HAPTICS_OPTIONS","kind":"VariableDeclaration","declaration":"NEU_HAPTICS_OPTIONS: InjectionToken<NeuHapticsOptions>"},{"name":"NEU_LIGHT_TOKENS","kind":"VariableDeclaration","declaration":"NEU_LIGHT_TOKENS: Readonly<NeuTokens>"},{"name":"NEU_PLUS_ICON","kind":"VariableDeclaration","declaration":"NEU_PLUS_ICON = \"<svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\"><path d=\\\"M12 5v14M5 12h14\\\"/></svg>\""},{"name":"NEU_TABS","kind":"VariableDeclaration","declaration":"NEU_TABS: InjectionToken<{\n value: Signal<string>;\n tabs?: Signal<readonly NeuOption[]>;\n}>"},{"name":"NEU_THEME","kind":"VariableDeclaration","declaration":"NEU_THEME: InjectionToken<Signal<Readonly<NeuTokens>>>"},{"name":"NeuAccordionComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-accordion","inputs":[{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"expanded","alias":"expanded","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"multiple","alias":"multiple","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"expanded","alias":"expandedChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"}],"members":[]},{"name":"NeuAlertComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-alert","inputs":[{"name":"title","alias":"title","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"},{"name":"variant","alias":"variant","required":false,"type":"import(\"@angular/core\").InputSignal<NeuAlertVariant>"},{"name":"showIcon","alias":"showIcon","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"svg","alias":"svg","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"message","alias":"message","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"visible","alias":"visible","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"closable","alias":"closable","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"visible","alias":"visibleChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"closed","alias":"closed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuAlertVariant","kind":"TypeAliasDeclaration","declaration":"export type NeuAlertVariant = 'soft' | 'outline';"},{"name":"NeuAutocompleteComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-autocomplete","inputs":[{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"minLength","alias":"minLength","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuAvatarComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-avatar","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"uri","alias":"uri","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"},{"name":"size","alias":"size","required":false,"type":"import(\"@angular/core\").InputSignal<NeuSize>"}],"outputs":[],"members":[]},{"name":"NeuAvatarGroupComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-avatar-group","inputs":[{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly (NeuOption & {\n readonly uri?: string;\n readonly tone?: NeuTone;\n})[]>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"moreLabel","alias":"moreLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"},{"name":"size","alias":"size","required":false,"type":"import(\"@angular/core\").InputSignal<NeuSize>"}],"outputs":[],"members":[]},{"name":"NeuBadgeComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-badge","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[],"members":[]},{"name":"NeuBottomSheetComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-bottom-sheet","inputs":[{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"title","alias":"title","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"dismissible","alias":"dismissible","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"height","alias":"height","required":false,"type":"import(\"@angular/core\").InputSignal<NeuBottomSheetHeight>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"closed","alias":"closed","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"opened","alias":"opened","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"dismissed","alias":"dismissed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":["close(): void;"]},{"name":"NeuBottomSheetHeight","kind":"TypeAliasDeclaration","declaration":"export type NeuBottomSheetHeight = 'auto' | 'sm' | 'md' | 'lg' | 'full';"},{"name":"NeuButtonComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-button","inputs":[{"name":"haptic","alias":"haptic","required":false,"type":"import(\"@angular/core\").InputSignal<false | NeuHapticFeedback>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"accessibilityLabel","alias":"accessibilityLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"variant","alias":"variant","required":false,"type":"import(\"@angular/core\").InputSignal<NeuVariant>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"},{"name":"size","alias":"size","required":false,"type":"import(\"@angular/core\").InputSignal<NeuSize>"},{"name":"fullWidth","alias":"fullWidth","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"loading","alias":"loading","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"pressed","alias":"pressed","type":"import(\"@angular/core\").OutputEmitterRef<import(\"@ng-native/components\").TouchEvent>"}],"members":[]},{"name":"NeuButtonGroupComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-button-group","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[{"name":"activated","alias":"activated","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]},{"name":"NeuCalendarComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-calendar","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"month","alias":"month","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"locale","alias":"locale","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"firstDay","alias":"firstDay","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"min","alias":"min","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"previousLabel","alias":"previousLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextLabel","alias":"nextLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousYearLabel","alias":"previousYearLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextYearLabel","alias":"nextYearLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousYearsLabel","alias":"previousYearsLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextYearsLabel","alias":"nextYearsLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"events","alias":"events","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuCalendarEvent[]>"},{"name":"showAgenda","alias":"showAgenda","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"editable","alias":"editable","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"agendaLabel","alias":"agendaLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyAgendaLabel","alias":"emptyAgendaLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"hasEventsLabel","alias":"hasEventsLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"addEventLabel","alias":"addEventLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"editEventLabel","alias":"editEventLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"deleteEventLabel","alias":"deleteEventLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"month","alias":"monthChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"eventCreateRequested","alias":"eventCreateRequested","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"eventEditRequested","alias":"eventEditRequested","type":"import(\"@angular/core\").OutputEmitterRef<NeuCalendarEvent>"},{"name":"eventDeleteRequested","alias":"eventDeleteRequested","type":"import(\"@angular/core\").OutputEmitterRef<NeuCalendarEvent>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuCalendarEvent","kind":"InterfaceDeclaration","declaration":"export interface NeuCalendarEvent extends NeuOption {\n readonly date: string;\n}"},{"name":"NeuCardComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-card","inputs":[{"name":"title","alias":"title","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"description","alias":"description","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"variant","alias":"variant","required":false,"type":"import(\"@angular/core\").InputSignal<\"tonal\" | \"surface\" | \"outlined\">"}],"outputs":[],"members":[]},{"name":"NeuCardFooterDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"[neuCardFooter]","inputs":[],"outputs":[],"members":[]},{"name":"NeuCardHeaderDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"[neuCardHeader]","inputs":[],"outputs":[],"members":[]},{"name":"NeuCarouselComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-carousel","inputs":[{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuImageItem[]>"},{"name":"index","alias":"index","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"preview","alias":"preview","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"viewerLabels","alias":"viewerLabels","required":false,"type":"import(\"@angular/core\").InputSignal<NeuImageViewerLabels>"},{"name":"loop","alias":"loop","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"autoplay","alias":"autoplay","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"autoplayInterval","alias":"autoplayInterval","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"pauseLabel","alias":"pauseLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"playLabel","alias":"playLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousLabel","alias":"previousLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextLabel","alias":"nextLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"index","alias":"indexChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"}],"members":[]},{"name":"NeuCascadeSelectComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-cascade-select","inputs":[{"name":"nodes","alias":"nodes","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuTreeNode[]>"},{"name":"backLabel","alias":"backLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"rootLabel","alias":"rootLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuCheckboxComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-checkbox","inputs":[{"name":"haptic","alias":"haptic","required":false,"type":"import(\"@angular/core\").InputSignal<false | NeuHapticFeedback>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"labelPosition","alias":"labelPosition","required":false,"type":"import(\"@angular/core\").InputSignal<\"left\" | \"right\">"},{"name":"checked","alias":"checked","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"checked","alias":"checkedChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuChipComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-chip","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"},{"name":"selected","alias":"selected","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"selectable","alias":"selectable","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"removable","alias":"removable","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"removeLabel","alias":"removeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"selected","alias":"selectedChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"removed","alias":"removed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuColorScheme","kind":"TypeAliasDeclaration","declaration":"export type NeuColorScheme = 'system' | 'light' | 'dark';"},{"name":"NeuConfirmDialogComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-confirm-dialog","inputs":[{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"title","alias":"title","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"message","alias":"message","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"confirmLabel","alias":"confirmLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"cancelLabel","alias":"cancelLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"intent","alias":"intent","required":false,"type":"import(\"@angular/core\").InputSignal<\"danger\" | \"default\">"},{"name":"busy","alias":"busy","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"showCloseButton","alias":"showCloseButton","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeOnConfirm","alias":"closeOnConfirm","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"confirmed","alias":"confirmed","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"cancelled","alias":"cancelled","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"opened","alias":"opened","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"dismissed","alias":"dismissed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuContextMenuComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-context-menu","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"actionsLabel","alias":"actionsLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"activated","alias":"activated","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"pressed","alias":"pressed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuDataViewComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-data-view","inputs":[{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"itemTemplate","alias":"itemTemplate","required":false,"type":"import(\"@angular/core\").InputSignal<TemplateRef<NeuDataViewItemContext> | undefined>"},{"name":"query","alias":"query","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"descending","alias":"descending","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"loading","alias":"loading","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"searchLabel","alias":"searchLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"sortLabel","alias":"sortLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"refreshLabel","alias":"refreshLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"query","alias":"queryChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"descending","alias":"descendingChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"selected","alias":"selected","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"refresh","alias":"refresh","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuDataViewItemContext","kind":"InterfaceDeclaration","declaration":"export interface NeuDataViewItemContext {\n readonly $implicit: NeuOption;\n readonly index: number;\n}"},{"name":"NeuDataViewItemDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuDataViewItem]","inputs":[],"outputs":[],"members":[]},{"name":"NeuDateInputComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-date-input","inputs":[{"name":"min","alias":"min","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"locale","alias":"locale","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousLabel","alias":"previousLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextLabel","alias":"nextLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousYearLabel","alias":"previousYearLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextYearLabel","alias":"nextYearLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousYearsLabel","alias":"previousYearsLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextYearsLabel","alias":"nextYearsLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuDividerComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-divider","inputs":[{"name":"orientation","alias":"orientation","required":false,"type":"import(\"@angular/core\").InputSignal<\"horizontal\" | \"vertical\">"}],"outputs":[],"members":[]},{"name":"NeuEmptyStateComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-empty-state","inputs":[{"name":"title","alias":"title","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"description","alias":"description","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"actionLabel","alias":"actionLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"action","alias":"action","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuFile","kind":"InterfaceDeclaration","declaration":"export interface NeuFile {\n readonly uri: string;\n readonly name: string;\n readonly size?: number;\n readonly mimeType?: string;\n}"},{"name":"NeuFilePicker","kind":"InterfaceDeclaration","declaration":"export interface NeuFilePicker {\n pick(options: {\n type: readonly string[];\n multiple: boolean;\n }): Promise<readonly NeuFile[] | null>;\n}"},{"name":"NeuFilterBarComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-filter-bar","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"query","alias":"query","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"searchLabel","alias":"searchLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"clearLabel","alias":"clearLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"query","alias":"queryChange","type":"import(\"@angular/core\").ModelSignal<string>"}],"members":[]},{"name":"NeuFormFieldComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-form-field","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[],"members":[]},{"name":"NeuGalleryCaptionDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuGalleryCaption]","inputs":[],"outputs":[],"members":[]},{"name":"NeuGalleryComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-gallery","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"viewerLabels","alias":"viewerLabels","required":false,"type":"import(\"@angular/core\").InputSignal<NeuGalleryViewerLabels>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuImageItem[]>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"layout","alias":"layout","required":false,"type":"import(\"@angular/core\").InputSignal<NeuGalleryLayout>"},{"name":"columns","alias":"columns","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"gap","alias":"gap","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"aspectRatio","alias":"aspectRatio","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"borderRadius","alias":"borderRadius","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"showCaptions","alias":"showCaptions","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"index","alias":"index","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"}],"outputs":[{"name":"index","alias":"indexChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"}],"members":[]},{"name":"NeuGalleryItemContext","kind":"InterfaceDeclaration","declaration":"export interface NeuGalleryItemContext {\n readonly $implicit: NeuImageItem;\n readonly index: number;\n readonly aspectRatio: number;\n readonly borderRadius: number;\n}"},{"name":"NeuGalleryItemDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuGalleryItem]","inputs":[],"outputs":[],"members":[]},{"name":"NeuGalleryLayout","kind":"TypeAliasDeclaration","declaration":"export type NeuGalleryLayout = 'grid' | 'mosaic';"},{"name":"NeuGalleryViewerLabels","kind":"InterfaceDeclaration","declaration":"export interface NeuGalleryViewerLabels {\n readonly label?: string;\n readonly closeLabel?: string;\n readonly previousLabel?: string;\n readonly nextLabel?: string;\n readonly zoomLabel?: string;\n readonly zoomOutLabel?: string;\n readonly errorLabel?: string;\n}"},{"name":"NeuHapticFeedback","kind":"TypeAliasDeclaration","declaration":"export type NeuHapticFeedback = 'press' | 'selection' | NeuHapticImpact | 'success' | 'warning' | 'error';"},{"name":"NeuHapticImpact","kind":"TypeAliasDeclaration","declaration":"export type NeuHapticImpact = 'light' | 'medium' | 'heavy' | 'soft' | 'rigid';"},{"name":"NeuHaptics","kind":"ClassDeclaration","members":["readonly enabled: import(\"@angular/core\").WritableSignal<boolean>;","get available(): boolean;","play(feedback?: NeuHapticFeedback | false): boolean;"]},{"name":"NeuHapticsDriver","kind":"InterfaceDeclaration","declaration":"export interface NeuHapticsDriver {\n available(): boolean;\n play(feedback: Exclude<NeuHapticFeedback, \"press\">): void | Promise<void>;\n}"},{"name":"NeuHapticsOptions","kind":"InterfaceDeclaration","declaration":"export interface NeuHapticsOptions {\n enabled?: boolean;\n minimumIntervalMs?: number;\n pressStyle?: NeuHapticImpact;\n}"},{"name":"NeuIconButtonComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-icon-button","inputs":[{"name":"haptic","alias":"haptic","required":false,"type":"import(\"@angular/core\").InputSignal<false | NeuHapticFeedback>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"svg","alias":"svg","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"variant","alias":"variant","required":false,"type":"import(\"@angular/core\").InputSignal<NeuVariant>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"loading","alias":"loading","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"pressed","alias":"pressed","type":"import(\"@angular/core\").OutputEmitterRef<import(\"@ng-native/components\").TouchEvent>"}],"members":[]},{"name":"NeuImageItem","kind":"InterfaceDeclaration","declaration":"export interface NeuImageItem {\n readonly id: string;\n readonly uri: string;\n readonly label: string;\n}"},{"name":"NeuImageViewerComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-image-viewer","inputs":[{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuImageItem[]>"},{"name":"index","alias":"index","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousLabel","alias":"previousLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextLabel","alias":"nextLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"zoomLabel","alias":"zoomLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"zoomOutLabel","alias":"zoomOutLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"errorLabel","alias":"errorLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"index","alias":"indexChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"closed","alias":"closed","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"opened","alias":"opened","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"dismissed","alias":"dismissed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":["close(): void;"]},{"name":"NeuImageViewerLabels","kind":"InterfaceDeclaration","declaration":"export interface NeuImageViewerLabels {\n readonly label?: string;\n readonly closeLabel?: string;\n readonly previousLabel?: string;\n readonly nextLabel?: string;\n readonly zoomLabel?: string;\n readonly zoomOutLabel?: string;\n readonly errorLabel?: string;\n}"},{"name":"NeuInlineEditorComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-inline-editor","inputs":[{"name":"editing","alias":"editing","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"saveLabel","alias":"saveLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"cancelLabel","alias":"cancelLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"editing","alias":"editingChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"saved","alias":"saved","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"cancelled","alias":"cancelled","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuInputComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-input","inputs":[{"name":"keyboardType","alias":"keyboardType","required":false,"type":"import(\"@angular/core\").InputSignal<\"default\" | \"email-address\" | \"numeric\" | \"phone-pad\">"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"maxLength","alias":"maxLength","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<number | undefined, number | undefined>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuInputMaskComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-input-mask","inputs":[{"name":"mask","alias":"mask","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"keyboardType","alias":"keyboardType","required":false,"type":"import(\"@angular/core\").InputSignal<\"default\" | \"numeric\" | \"phone-pad\">"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuInputOtpComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-input-otp","inputs":[{"name":"length","alias":"length","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"completed","alias":"completed","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuInputTagsComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-input-tags","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"addLabel","alias":"addLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"removeLabel","alias":"removeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuListboxComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-listbox","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"appearance","alias":"appearance","required":false,"type":"import(\"@angular/core\").InputSignal<\"cards\" | \"plain\">"},{"name":"itemTemplate","alias":"itemTemplate","required":false,"type":"import(\"@angular/core\").InputSignal<TemplateRef<NeuListboxItemContext> | undefined>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"multiple","alias":"multiple","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"selected","alias":"selected","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuListboxItemContext","kind":"InterfaceDeclaration","declaration":"export interface NeuListboxItemContext {\n readonly $implicit: NeuOption;\n readonly index: number;\n readonly selected: boolean;\n readonly disabled: boolean;\n}"},{"name":"NeuListboxItemDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuListboxItem]","inputs":[],"outputs":[],"members":[]},{"name":"NeuMenuComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-menu","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"showTrigger","alias":"showTrigger","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"activated","alias":"activated","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]},{"name":"NeuMeterGroupComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-meter-group","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly (NeuOption & {\n readonly value: number;\n})[]>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number | undefined>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[],"members":[]},{"name":"NeuModalComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-modal","inputs":[{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"title","alias":"title","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"dismissible","alias":"dismissible","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"showCloseButton","alias":"showCloseButton","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"closed","alias":"closed","type":"import(\"@angular/core\").OutputEmitterRef<\"native\" | \"action\" | \"backdrop\">"},{"name":"opened","alias":"opened","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"dismissed","alias":"dismissed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":["close(reason?: 'native' | 'action' | 'backdrop'): void;"]},{"name":"NeuModalFooterDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuModalFooter]","inputs":[],"outputs":[],"members":[]},{"name":"NeuModalHeaderDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuModalHeader]","inputs":[],"outputs":[],"members":[]},{"name":"NeuNavComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-nav","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuNavItem[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"navigate","alias":"navigate","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]},{"name":"NeuNavItem","kind":"InterfaceDeclaration","declaration":"export interface NeuNavItem extends NeuOption {\n readonly svg?: string;\n}"},{"name":"NeuNotificationCenterComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-notification-center","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"readIds","alias":"readIds","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"markAllLabel","alias":"markAllLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"unreadLabel","alias":"unreadLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"readIds","alias":"readIdsChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"activated","alias":"activated","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]},{"name":"NeuNumberInputComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-number-input","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"min","alias":"min","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"step","alias":"step","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"decreaseLabel","alias":"decreaseLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"increaseLabel","alias":"increaseLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuOption","kind":"InterfaceDeclaration","declaration":"export interface NeuOption {\n readonly id: string;\n readonly label: string;\n readonly description?: string;\n readonly disabled?: boolean;\n}"},{"name":"NeuPanelComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-panel","inputs":[{"name":"title","alias":"title","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"collapsed","alias":"collapsed","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"collapsible","alias":"collapsible","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"collapsed","alias":"collapsedChange","type":"import(\"@angular/core\").ModelSignal<boolean>"}],"members":[]},{"name":"NeuPanelFooterDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"[neuPanelFooter]","inputs":[],"outputs":[],"members":[]},{"name":"NeuPanelHeaderDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"[neuPanelHeader]","inputs":[],"outputs":[],"members":[]},{"name":"NeuPasswordComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-password","inputs":[{"name":"revealed","alias":"revealed","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"showLabel","alias":"showLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"hideLabel","alias":"hideLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"revealed","alias":"revealedChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuPickListComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-pick-list","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"selectedLabel","alias":"selectedLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"availableLabel","alias":"availableLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"upLabel","alias":"upLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"downLabel","alias":"downLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"removeLabel","alias":"removeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"addLabel","alias":"addLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptySelectedLabel","alias":"emptySelectedLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyAvailableLabel","alias":"emptyAvailableLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuPopoverComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-popover","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"title","alias":"title","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"dismissLabel","alias":"dismissLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"}],"members":[]},{"name":"NeuProgressBarComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-progress-bar","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[],"members":[]},{"name":"NeuRadioGroupComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-radio","inputs":[{"name":"haptic","alias":"haptic","required":false,"type":"import(\"@angular/core\").InputSignal<false | NeuHapticFeedback>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuRatingComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-rating","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"clearable","alias":"clearable","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"clearLabel","alias":"clearLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuSelectComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-select","inputs":[{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"multiple","alias":"multiple","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"values","alias":"values","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"searchable","alias":"searchable","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"searchLabel","alias":"searchLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"searchPlaceholder","alias":"searchPlaceholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"values","alias":"valuesChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuSelectItemContext","kind":"TypeAliasDeclaration","declaration":"export type NeuSelectItemContext = NeuListboxItemContext;"},{"name":"NeuSelectItemDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuSelectItem]","inputs":[],"outputs":[],"members":[]},{"name":"NeuSelectSelectedContext","kind":"InterfaceDeclaration","declaration":"export interface NeuSelectSelectedContext {\n readonly $implicit: readonly NeuOption[];\n readonly value: string;\n readonly values: readonly string[];\n readonly placeholder: string;\n}"},{"name":"NeuSelectSelectedDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuSelectSelected]","inputs":[],"outputs":[],"members":[]},{"name":"NeuSidebarComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-sidebar","inputs":[{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"title","alias":"title","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"fullWidth","alias":"fullWidth","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"navigate","alias":"navigate","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"opened","alias":"opened","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"dismissed","alias":"dismissed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuSize","kind":"TypeAliasDeclaration","declaration":"export type NeuSize = 'sm' | 'md' | 'lg';"},{"name":"NeuSkeletonAnimation","kind":"TypeAliasDeclaration","declaration":"export type NeuSkeletonAnimation = 'pulse' | 'none';"},{"name":"NeuSkeletonComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-skeleton","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"lines","alias":"lines","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"variant","alias":"variant","required":false,"type":"import(\"@angular/core\").InputSignal<NeuSkeletonVariant>"},{"name":"width","alias":"width","required":false,"type":"import(\"@angular/core\").InputSignal<string | number | undefined>"},{"name":"height","alias":"height","required":false,"type":"import(\"@angular/core\").InputSignal<number | undefined>"},{"name":"borderRadius","alias":"borderRadius","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"gap","alias":"gap","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"lastLineWidth","alias":"lastLineWidth","required":false,"type":"import(\"@angular/core\").InputSignal<string | number>"},{"name":"animation","alias":"animation","required":false,"type":"import(\"@angular/core\").InputSignal<NeuSkeletonAnimation>"}],"outputs":[],"members":[]},{"name":"NeuSkeletonVariant","kind":"TypeAliasDeclaration","declaration":"export type NeuSkeletonVariant = 'text' | 'rect' | 'circle';"},{"name":"NeuSliderComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-slider","inputs":[{"name":"haptic","alias":"haptic","required":false,"type":"import(\"@angular/core\").InputSignal<false | NeuHapticFeedback>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"min","alias":"min","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"step","alias":"step","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"showButtons","alias":"showButtons","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"increaseLabel","alias":"increaseLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"decreaseLabel","alias":"decreaseLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuSpeedDialAction","kind":"InterfaceDeclaration","declaration":"export interface NeuSpeedDialAction extends NeuOption {\n readonly svg?: string;\n}"},{"name":"NeuSpeedDialComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-speed-dial","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"actions","alias":"actions","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuSpeedDialAction[]>"},{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"activated","alias":"activated","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]},{"name":"NeuSpinnerComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-spinner","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"size","alias":"size","required":false,"type":"import(\"@angular/core\").InputSignal<\"small\" | \"large\">"},{"name":"active","alias":"active","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"showLabel","alias":"showLabel","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[],"members":[]},{"name":"NeuStatsCardComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-stats-card","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":true,"type":"import(\"@angular/core\").InputSignal<string | number>"},{"name":"change","alias":"change","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"description","alias":"description","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"svg","alias":"svg","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[],"members":[]},{"name":"NeuStepperComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-stepper","inputs":[{"name":"steps","alias":"steps","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"activeStep","alias":"activeStep","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"linear","alias":"linear","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"completed","alias":"completed","required":false,"type":"import(\"@angular/core\").InputSignal<readonly string[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"previousLabel","alias":"previousLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextLabel","alias":"nextLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"finishLabel","alias":"finishLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"activeStep","alias":"activeStepChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"finished","alias":"finished","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":["goTo(index: number): void;"]},{"name":"NeuSwitchComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-switch","inputs":[{"name":"haptic","alias":"haptic","required":false,"type":"import(\"@angular/core\").InputSignal<false | NeuHapticFeedback>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"labelPosition","alias":"labelPosition","required":false,"type":"import(\"@angular/core\").InputSignal<\"left\" | \"right\">"},{"name":"size","alias":"size","required":false,"type":"import(\"@angular/core\").InputSignal<NeuSize>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"checked","alias":"checked","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"checked","alias":"checkedChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuTabPanelComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-tab-panel","inputs":[{"name":"id","alias":"id","required":true,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[],"members":[]},{"name":"NeuTabsComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-tabs","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tabs","alias":"tabs","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignal<boolean>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"}],"members":[]},{"name":"NeuTextareaComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-textarea","inputs":[{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"maxLength","alias":"maxLength","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<number | undefined, number | undefined>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuThemeComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-theme","inputs":[{"name":"scheme","alias":"scheme","required":false,"type":"import(\"@angular/core\").InputSignal<NeuColorScheme>"},{"name":"tokens","alias":"tokens","required":false,"type":"import(\"@angular/core\").InputSignal<Partial<NeuTokens>>"}],"outputs":[],"members":["readonly resolvedTokens: import(\"@angular/core\").Signal<Readonly<NeuTokens>>;"]},{"name":"NeuTimelineComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-timeline","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"completedLabel","alias":"completedLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"pendingLabel","alias":"pendingLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly (NeuOption & {\n readonly date?: string;\n readonly done?: boolean;\n})[]>"}],"outputs":[],"members":[]},{"name":"NeuToastComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-toast","inputs":[{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"message","alias":"message","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"duration","alias":"duration","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"actionLabel","alias":"actionLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"action","alias":"action","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"dismissed","alias":"dismissed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuToggleButtonGroupComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-toggle-button-group","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"multiple","alias":"multiple","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuTokens","kind":"InterfaceDeclaration","declaration":"export interface NeuTokens {\n accent: string;\n onAccent: string;\n surface: string;\n canvas: string;\n text: string;\n muted: string;\n border: string;\n tonal: string;\n danger: string;\n success: string;\n warning: string;\n warningText: string;\n onWarning: string;\n info: string;\n accentText?: string;\n dangerText?: string;\n successText?: string;\n infoText?: string;\n radius: number;\n spacing: number;\n fontSize: number;\n duration: number;\n surfaceBorder?: string;\n divider?: string;\n surfaceSecondary?: string;\n mediaCanvas?: string;\n mediaText?: string;\n mediaBarStyle?: \"light\" | \"dark\";\n}"},{"name":"NeuTone","kind":"TypeAliasDeclaration","declaration":"export type NeuTone = 'neutral' | 'brand' | 'accent' | 'success' | 'info' | 'warning' | 'danger';"},{"name":"NeuToolbarAction","kind":"InterfaceDeclaration","declaration":"export interface NeuToolbarAction extends NeuOption {\n readonly svg?: string;\n}"},{"name":"NeuToolbarComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-toolbar","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"actions","alias":"actions","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuToolbarAction[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"activated","alias":"activated","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]},{"name":"NeuTreeComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-tree","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nodes","alias":"nodes","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuTreeNode[]>"},{"name":"expanded","alias":"expanded","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"leafOnly","alias":"leafOnly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"expandLabel","alias":"expandLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"expanded","alias":"expandedChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"selected","alias":"selected","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuTreeNode","kind":"InterfaceDeclaration","declaration":"export interface NeuTreeNode extends NeuOption {\n readonly children?: readonly NeuTreeNode[];\n}"},{"name":"NeuTreeSelectComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-tree-select","inputs":[{"name":"nodes","alias":"nodes","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuTreeNode[]>"},{"name":"leafOnly","alias":"leafOnly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"expandLabel","alias":"expandLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuUpload","kind":"TypeAliasDeclaration","declaration":"export type NeuUpload = (file: NeuFile, progress: (percent: number) => void, signal: AbortSignal) => Promise<void>;"},{"name":"NeuUploaderComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-uploader","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"files","alias":"files","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly NeuUploadItem[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"types","alias":"types","required":false,"type":"import(\"@angular/core\").InputSignal<readonly string[]>"},{"name":"multiple","alias":"multiple","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"maxFiles","alias":"maxFiles","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"maxBytes","alias":"maxBytes","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"chooseLabel","alias":"chooseLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"uploadLabel","alias":"uploadLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"removeLabel","alias":"removeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"stateLabels","alias":"stateLabels","required":false,"type":"import(\"@angular/core\").InputSignal<Readonly<Record<\"error\" | \"selected\" | \"uploading\" | \"complete\", string>>>"},{"name":"upload","alias":"upload","required":false,"type":"import(\"@angular/core\").InputSignal<NeuUpload | undefined>"}],"outputs":[{"name":"files","alias":"filesChange","type":"import(\"@angular/core\").ModelSignal<readonly NeuUploadItem[]>"},{"name":"selected","alias":"selected","type":"import(\"@angular/core\").OutputEmitterRef<readonly NeuFile[]>"},{"name":"completed","alias":"completed","type":"import(\"@angular/core\").OutputEmitterRef<NeuFile>"},{"name":"rejected","alias":"rejected","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]},{"name":"NeuUploadItem","kind":"InterfaceDeclaration","declaration":"export interface NeuUploadItem {\n readonly id: string;\n readonly file: NeuFile;\n readonly state: \"selected\" | \"uploading\" | \"complete\" | \"error\";\n readonly progress: number;\n readonly error?: string;\n}"},{"name":"NeuVariant","kind":"TypeAliasDeclaration","declaration":"export type NeuVariant = 'solid' | 'tonal' | 'outline' | 'text';"},{"name":"NeuVirtualListComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-virtual-list","inputs":[{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"estimatedItemHeight","alias":"estimatedItemHeight","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"height","alias":"height","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"selected","alias":"selected","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"endReached","alias":"endReached","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":["scrollToIndex(index: number): void;","scrollToTop(): void;"]},{"name":"NeuVirtualListItemContext","kind":"InterfaceDeclaration","declaration":"export interface NeuVirtualListItemContext {\n readonly $implicit: NeuOption;\n readonly index: number;\n readonly disabled: boolean;\n}"},{"name":"NeuVirtualListItemDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuVirtualListItem]","inputs":[],"outputs":[],"members":[]}]},"@neural-ui/native/accordion":{"types":"./dist/accordion/index.d.ts","sha256":"6d40566b1f55b7cc26c95e7bfb9f00bae1eea4efdf7dfa15a0374c4466181027","symbols":[{"name":"NeuAccordionComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-accordion","inputs":[{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"expanded","alias":"expanded","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"multiple","alias":"multiple","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"expanded","alias":"expandedChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"}],"members":[]}]},"@neural-ui/native/alert":{"types":"./dist/alert/index.d.ts","sha256":"0d96b9612039eb646f5ef32d5bf691c9fbb61ef4c6d295f33c86b4c7e1dcd40b","symbols":[{"name":"NeuAlertComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-alert","inputs":[{"name":"title","alias":"title","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"},{"name":"variant","alias":"variant","required":false,"type":"import(\"@angular/core\").InputSignal<NeuAlertVariant>"},{"name":"showIcon","alias":"showIcon","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"svg","alias":"svg","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"message","alias":"message","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"visible","alias":"visible","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"closable","alias":"closable","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"visible","alias":"visibleChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"closed","alias":"closed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuAlertVariant","kind":"TypeAliasDeclaration","declaration":"export type NeuAlertVariant = 'soft' | 'outline';"}]},"@neural-ui/native/autocomplete":{"types":"./dist/autocomplete/index.d.ts","sha256":"68c26f2a6e9b79f2f060698da02a51b8c3ec9c75187bf025e9d54eaaae6b7813","symbols":[{"name":"NeuAutocompleteComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-autocomplete","inputs":[{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"minLength","alias":"minLength","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/avatar":{"types":"./dist/avatar/index.d.ts","sha256":"95dfeda449ed2fb1210356c6bb8da140e5a5a94540485f87a4b4d8e1cb2e932e","symbols":[{"name":"NeuAvatarComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-avatar","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"uri","alias":"uri","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"},{"name":"size","alias":"size","required":false,"type":"import(\"@angular/core\").InputSignal<NeuSize>"}],"outputs":[],"members":[]}]},"@neural-ui/native/avatar-group":{"types":"./dist/avatar-group/index.d.ts","sha256":"c41b5cc6fa6928d374e6633851cabc379950e9e643cc9dc48488d911f109754a","symbols":[{"name":"NeuAvatarGroupComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-avatar-group","inputs":[{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly (NeuOption & {\n readonly uri?: string;\n readonly tone?: NeuTone;\n})[]>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"moreLabel","alias":"moreLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"},{"name":"size","alias":"size","required":false,"type":"import(\"@angular/core\").InputSignal<NeuSize>"}],"outputs":[],"members":[]}]},"@neural-ui/native/badge":{"types":"./dist/badge/index.d.ts","sha256":"a0ec29f932461a78f66408d256f876f612a378fc2fe175aa227e4d603d3ad3b5","symbols":[{"name":"NeuBadgeComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-badge","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[],"members":[]}]},"@neural-ui/native/bottom-sheet":{"types":"./dist/bottom-sheet/index.d.ts","sha256":"9769afb627e2817bf6ce8fd60dacc78d819f10c6f4680a476bb14d356627a592","symbols":[{"name":"NeuBottomSheetComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-bottom-sheet","inputs":[{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"title","alias":"title","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"dismissible","alias":"dismissible","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"height","alias":"height","required":false,"type":"import(\"@angular/core\").InputSignal<NeuBottomSheetHeight>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"closed","alias":"closed","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"opened","alias":"opened","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"dismissed","alias":"dismissed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":["close(): void;"]},{"name":"NeuBottomSheetHeight","kind":"TypeAliasDeclaration","declaration":"export type NeuBottomSheetHeight = 'auto' | 'sm' | 'md' | 'lg' | 'full';"}]},"@neural-ui/native/button":{"types":"./dist/button/index.d.ts","sha256":"86c073df766369e08e0cf8f3ced994229259d2fd212f4e0d0442f4abcc1440fe","symbols":[{"name":"NeuButtonComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-button","inputs":[{"name":"haptic","alias":"haptic","required":false,"type":"import(\"@angular/core\").InputSignal<false | NeuHapticFeedback>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"accessibilityLabel","alias":"accessibilityLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"variant","alias":"variant","required":false,"type":"import(\"@angular/core\").InputSignal<NeuVariant>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"},{"name":"size","alias":"size","required":false,"type":"import(\"@angular/core\").InputSignal<NeuSize>"},{"name":"fullWidth","alias":"fullWidth","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"loading","alias":"loading","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"pressed","alias":"pressed","type":"import(\"@angular/core\").OutputEmitterRef<import(\"@ng-native/components\").TouchEvent>"}],"members":[]}]},"@neural-ui/native/button-group":{"types":"./dist/button-group/index.d.ts","sha256":"c96273281aa7fd7fa526c9591d8cf54ac4bf12e4f81174acaf2e5cee250a2c57","symbols":[{"name":"NeuButtonGroupComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-button-group","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[{"name":"activated","alias":"activated","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]}]},"@neural-ui/native/calendar":{"types":"./dist/calendar/index.d.ts","sha256":"393a45c2b6f69615ee5ec034f1b3989f628be005b93934ac9ac428d89d8dcccf","symbols":[{"name":"NeuCalendarComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-calendar","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"month","alias":"month","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"locale","alias":"locale","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"firstDay","alias":"firstDay","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"min","alias":"min","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"previousLabel","alias":"previousLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextLabel","alias":"nextLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousYearLabel","alias":"previousYearLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextYearLabel","alias":"nextYearLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousYearsLabel","alias":"previousYearsLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextYearsLabel","alias":"nextYearsLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"events","alias":"events","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuCalendarEvent[]>"},{"name":"showAgenda","alias":"showAgenda","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"editable","alias":"editable","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"agendaLabel","alias":"agendaLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyAgendaLabel","alias":"emptyAgendaLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"hasEventsLabel","alias":"hasEventsLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"addEventLabel","alias":"addEventLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"editEventLabel","alias":"editEventLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"deleteEventLabel","alias":"deleteEventLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"month","alias":"monthChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"eventCreateRequested","alias":"eventCreateRequested","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"eventEditRequested","alias":"eventEditRequested","type":"import(\"@angular/core\").OutputEmitterRef<NeuCalendarEvent>"},{"name":"eventDeleteRequested","alias":"eventDeleteRequested","type":"import(\"@angular/core\").OutputEmitterRef<NeuCalendarEvent>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuCalendarEvent","kind":"InterfaceDeclaration","declaration":"export interface NeuCalendarEvent extends NeuOption {\n readonly date: string;\n}"}]},"@neural-ui/native/card":{"types":"./dist/card/index.d.ts","sha256":"0c145d4c22fe342ebe92399aea8a440e6e7ee0ce16ee54d548ec5bfce475a1ee","symbols":[{"name":"NeuCardComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-card","inputs":[{"name":"title","alias":"title","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"description","alias":"description","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"variant","alias":"variant","required":false,"type":"import(\"@angular/core\").InputSignal<\"tonal\" | \"surface\" | \"outlined\">"}],"outputs":[],"members":[]},{"name":"NeuCardFooterDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"[neuCardFooter]","inputs":[],"outputs":[],"members":[]},{"name":"NeuCardHeaderDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"[neuCardHeader]","inputs":[],"outputs":[],"members":[]}]},"@neural-ui/native/carousel":{"types":"./dist/carousel/index.d.ts","sha256":"4931ab1dc6b3acdf222fe094d65b14b73d9f81226fac51692124e32b8bba1427","symbols":[{"name":"NeuCarouselComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-carousel","inputs":[{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuImageItem[]>"},{"name":"index","alias":"index","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"preview","alias":"preview","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"viewerLabels","alias":"viewerLabels","required":false,"type":"import(\"@angular/core\").InputSignal<NeuImageViewerLabels>"},{"name":"loop","alias":"loop","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"autoplay","alias":"autoplay","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"autoplayInterval","alias":"autoplayInterval","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"pauseLabel","alias":"pauseLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"playLabel","alias":"playLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousLabel","alias":"previousLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextLabel","alias":"nextLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"index","alias":"indexChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"}],"members":[]}]},"@neural-ui/native/cascade-select":{"types":"./dist/cascade-select/index.d.ts","sha256":"56dd0a5a45588d436e415b0264d6dd0f8b26bbd09f7bd03d3b97537676e38459","symbols":[{"name":"NeuCascadeSelectComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-cascade-select","inputs":[{"name":"nodes","alias":"nodes","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuTreeNode[]>"},{"name":"backLabel","alias":"backLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"rootLabel","alias":"rootLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/checkbox":{"types":"./dist/checkbox/index.d.ts","sha256":"453d7d5858643cc8718ac8e7260cb691a1e6b97a24ef6011945a298afdf88a69","symbols":[{"name":"NeuCheckboxComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-checkbox","inputs":[{"name":"haptic","alias":"haptic","required":false,"type":"import(\"@angular/core\").InputSignal<false | NeuHapticFeedback>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"labelPosition","alias":"labelPosition","required":false,"type":"import(\"@angular/core\").InputSignal<\"left\" | \"right\">"},{"name":"checked","alias":"checked","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"checked","alias":"checkedChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/chip":{"types":"./dist/chip/index.d.ts","sha256":"ca37662c4250ab32a42769254dfc220dac65f075b0418294f915ab761d5f4008","symbols":[{"name":"NeuChipComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-chip","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"},{"name":"selected","alias":"selected","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"selectable","alias":"selectable","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"removable","alias":"removable","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"removeLabel","alias":"removeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"selected","alias":"selectedChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"removed","alias":"removed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/confirm-dialog":{"types":"./dist/confirm-dialog/index.d.ts","sha256":"4e1029b3d350bf46371f00d3a65fa6144664b71dc55a6daa38894d75265c4f86","symbols":[{"name":"NeuConfirmDialogComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-confirm-dialog","inputs":[{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"title","alias":"title","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"message","alias":"message","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"confirmLabel","alias":"confirmLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"cancelLabel","alias":"cancelLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"intent","alias":"intent","required":false,"type":"import(\"@angular/core\").InputSignal<\"danger\" | \"default\">"},{"name":"busy","alias":"busy","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"showCloseButton","alias":"showCloseButton","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeOnConfirm","alias":"closeOnConfirm","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"confirmed","alias":"confirmed","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"cancelled","alias":"cancelled","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"opened","alias":"opened","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"dismissed","alias":"dismissed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/context-menu":{"types":"./dist/context-menu/index.d.ts","sha256":"77e1555f2b4cee2d3164f5d403383b9bb5aadfda25a714a8f67bf31ca68729e0","symbols":[{"name":"NeuContextMenuComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-context-menu","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"actionsLabel","alias":"actionsLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"activated","alias":"activated","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"pressed","alias":"pressed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/data-view":{"types":"./dist/data-view/index.d.ts","sha256":"89bbff4f1680816b9b69085f3744394e3c1efe26b3ef22e637a9a0c5e47889d4","symbols":[{"name":"NeuDataViewComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-data-view","inputs":[{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"itemTemplate","alias":"itemTemplate","required":false,"type":"import(\"@angular/core\").InputSignal<TemplateRef<NeuDataViewItemContext> | undefined>"},{"name":"query","alias":"query","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"descending","alias":"descending","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"loading","alias":"loading","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"searchLabel","alias":"searchLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"sortLabel","alias":"sortLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"refreshLabel","alias":"refreshLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"query","alias":"queryChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"descending","alias":"descendingChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"selected","alias":"selected","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"refresh","alias":"refresh","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuDataViewItemContext","kind":"InterfaceDeclaration","declaration":"export interface NeuDataViewItemContext {\n readonly $implicit: NeuOption;\n readonly index: number;\n}"},{"name":"NeuDataViewItemDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuDataViewItem]","inputs":[],"outputs":[],"members":[]}]},"@neural-ui/native/date-input":{"types":"./dist/date-input/index.d.ts","sha256":"f63a0b5969c1d7b9289d6be50cd3eee025fe4e7127a3de44ff39a5c4bbd9bcea","symbols":[{"name":"NeuDateInputComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-date-input","inputs":[{"name":"min","alias":"min","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"locale","alias":"locale","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousLabel","alias":"previousLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextLabel","alias":"nextLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousYearLabel","alias":"previousYearLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextYearLabel","alias":"nextYearLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousYearsLabel","alias":"previousYearsLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextYearsLabel","alias":"nextYearsLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/divider":{"types":"./dist/divider/index.d.ts","sha256":"b7f31d5aa559bf544f5ac879dd8a8272ac073f6231631dadb965410119340017","symbols":[{"name":"NeuDividerComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-divider","inputs":[{"name":"orientation","alias":"orientation","required":false,"type":"import(\"@angular/core\").InputSignal<\"horizontal\" | \"vertical\">"}],"outputs":[],"members":[]}]},"@neural-ui/native/empty-state":{"types":"./dist/empty-state/index.d.ts","sha256":"966ff23d04587f76cb85a013f40bb8c94249941ef576234bfe039129bd1ea00e","symbols":[{"name":"NeuEmptyStateComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-empty-state","inputs":[{"name":"title","alias":"title","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"description","alias":"description","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"actionLabel","alias":"actionLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"action","alias":"action","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/filter-bar":{"types":"./dist/filter-bar/index.d.ts","sha256":"d48a15ef7336d22ea13446f4334f2689b627731575a576a8ba4f9590f2c8706f","symbols":[{"name":"NeuFilterBarComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-filter-bar","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"query","alias":"query","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"searchLabel","alias":"searchLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"clearLabel","alias":"clearLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"query","alias":"queryChange","type":"import(\"@angular/core\").ModelSignal<string>"}],"members":[]}]},"@neural-ui/native/form-field":{"types":"./dist/form-field/index.d.ts","sha256":"c4d880fdf381d4c203fbcb01afab0fbea23375d3d76afa29a5bd955095b93c5a","symbols":[{"name":"NeuFormFieldComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-form-field","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[],"members":[]}]},"@neural-ui/native/foundation":{"types":"./dist/foundation/index.d.ts","sha256":"75500ce10ca61cd1e1ff88f59f325a981fc7d156deeff2ca40346699d60c7609","symbols":[{"name":"NEU_CHECK_ICON","kind":"VariableDeclaration","declaration":"NEU_CHECK_ICON = \"<svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"m5 12 4 4 10-10\\\"/></svg>\""},{"name":"NEU_DARK_TOKENS","kind":"VariableDeclaration","declaration":"NEU_DARK_TOKENS: Readonly<NeuTokens>"},{"name":"NEU_HAPTICS_DRIVER","kind":"VariableDeclaration","declaration":"NEU_HAPTICS_DRIVER: InjectionToken<NeuHapticsDriver | null>"},{"name":"NEU_HAPTICS_OPTIONS","kind":"VariableDeclaration","declaration":"NEU_HAPTICS_OPTIONS: InjectionToken<NeuHapticsOptions>"},{"name":"NEU_LIGHT_TOKENS","kind":"VariableDeclaration","declaration":"NEU_LIGHT_TOKENS: Readonly<NeuTokens>"},{"name":"NEU_PLUS_ICON","kind":"VariableDeclaration","declaration":"NEU_PLUS_ICON = \"<svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\"><path d=\\\"M12 5v14M5 12h14\\\"/></svg>\""},{"name":"NEU_THEME","kind":"VariableDeclaration","declaration":"NEU_THEME: InjectionToken<Signal<Readonly<NeuTokens>>>"},{"name":"NeuColorScheme","kind":"TypeAliasDeclaration","declaration":"export type NeuColorScheme = 'system' | 'light' | 'dark';"},{"name":"NeuHapticFeedback","kind":"TypeAliasDeclaration","declaration":"export type NeuHapticFeedback = 'press' | 'selection' | NeuHapticImpact | 'success' | 'warning' | 'error';"},{"name":"NeuHapticImpact","kind":"TypeAliasDeclaration","declaration":"export type NeuHapticImpact = 'light' | 'medium' | 'heavy' | 'soft' | 'rigid';"},{"name":"NeuHaptics","kind":"ClassDeclaration","members":["readonly enabled: import(\"@angular/core\").WritableSignal<boolean>;","get available(): boolean;","play(feedback?: NeuHapticFeedback | false): boolean;"]},{"name":"NeuHapticsDriver","kind":"InterfaceDeclaration","declaration":"export interface NeuHapticsDriver {\n available(): boolean;\n play(feedback: Exclude<NeuHapticFeedback, \"press\">): void | Promise<void>;\n}"},{"name":"NeuHapticsOptions","kind":"InterfaceDeclaration","declaration":"export interface NeuHapticsOptions {\n enabled?: boolean;\n minimumIntervalMs?: number;\n pressStyle?: NeuHapticImpact;\n}"},{"name":"NeuSize","kind":"TypeAliasDeclaration","declaration":"export type NeuSize = 'sm' | 'md' | 'lg';"},{"name":"NeuTokens","kind":"InterfaceDeclaration","declaration":"export interface NeuTokens {\n accent: string;\n onAccent: string;\n surface: string;\n canvas: string;\n text: string;\n muted: string;\n border: string;\n tonal: string;\n danger: string;\n success: string;\n warning: string;\n warningText: string;\n onWarning: string;\n info: string;\n accentText?: string;\n dangerText?: string;\n successText?: string;\n infoText?: string;\n radius: number;\n spacing: number;\n fontSize: number;\n duration: number;\n surfaceBorder?: string;\n divider?: string;\n surfaceSecondary?: string;\n mediaCanvas?: string;\n mediaText?: string;\n mediaBarStyle?: \"light\" | \"dark\";\n}"},{"name":"NeuTone","kind":"TypeAliasDeclaration","declaration":"export type NeuTone = 'neutral' | 'brand' | 'accent' | 'success' | 'info' | 'warning' | 'danger';"},{"name":"NeuVariant","kind":"TypeAliasDeclaration","declaration":"export type NeuVariant = 'solid' | 'tonal' | 'outline' | 'text';"}]},"@neural-ui/native/gallery":{"types":"./dist/gallery/index.d.ts","sha256":"17510c5d94a2a6d1e8a9ad3216832318e51cc6aec035c566e9621ec2c1270c03","symbols":[{"name":"NeuGalleryCaptionDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuGalleryCaption]","inputs":[],"outputs":[],"members":[]},{"name":"NeuGalleryComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-gallery","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"viewerLabels","alias":"viewerLabels","required":false,"type":"import(\"@angular/core\").InputSignal<NeuGalleryViewerLabels>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuImageItem[]>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"layout","alias":"layout","required":false,"type":"import(\"@angular/core\").InputSignal<NeuGalleryLayout>"},{"name":"columns","alias":"columns","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"gap","alias":"gap","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"aspectRatio","alias":"aspectRatio","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"borderRadius","alias":"borderRadius","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"showCaptions","alias":"showCaptions","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"index","alias":"index","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"}],"outputs":[{"name":"index","alias":"indexChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"}],"members":[]},{"name":"NeuGalleryItemContext","kind":"InterfaceDeclaration","declaration":"export interface NeuGalleryItemContext {\n readonly $implicit: NeuImageItem;\n readonly index: number;\n readonly aspectRatio: number;\n readonly borderRadius: number;\n}"},{"name":"NeuGalleryItemDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuGalleryItem]","inputs":[],"outputs":[],"members":[]},{"name":"NeuGalleryLayout","kind":"TypeAliasDeclaration","declaration":"export type NeuGalleryLayout = 'grid' | 'mosaic';"},{"name":"NeuGalleryViewerLabels","kind":"InterfaceDeclaration","declaration":"export interface NeuGalleryViewerLabels {\n readonly label?: string;\n readonly closeLabel?: string;\n readonly previousLabel?: string;\n readonly nextLabel?: string;\n readonly zoomLabel?: string;\n readonly zoomOutLabel?: string;\n readonly errorLabel?: string;\n}"}]},"@neural-ui/native/haptics":{"types":"./dist/haptics/index.d.ts","sha256":"401fe22b083895b314c1828337b7d254087d5624fd62fefe39a31be0fd09201f","symbols":[{"name":"NEU_HAPTICS_DRIVER","kind":"VariableDeclaration","declaration":"NEU_HAPTICS_DRIVER: InjectionToken<NeuHapticsDriver | null>"},{"name":"NEU_HAPTICS_OPTIONS","kind":"VariableDeclaration","declaration":"NEU_HAPTICS_OPTIONS: InjectionToken<NeuHapticsOptions>"},{"name":"NEU_NATIVE_HAPTICS","kind":"VariableDeclaration","declaration":"NEU_NATIVE_HAPTICS: InjectionToken<NeuNativeHaptics | null>"},{"name":"NeuHapticFeedback","kind":"TypeAliasDeclaration","declaration":"export type NeuHapticFeedback = 'press' | 'selection' | NeuHapticImpact | 'success' | 'warning' | 'error';"},{"name":"NeuHapticImpact","kind":"TypeAliasDeclaration","declaration":"export type NeuHapticImpact = 'light' | 'medium' | 'heavy' | 'soft' | 'rigid';"},{"name":"NeuHaptics","kind":"ClassDeclaration","members":["readonly enabled: import(\"@angular/core\").WritableSignal<boolean>;","get available(): boolean;","play(feedback?: NeuHapticFeedback | false): boolean;"]},{"name":"NeuHapticsDriver","kind":"InterfaceDeclaration","declaration":"export interface NeuHapticsDriver {\n available(): boolean;\n play(feedback: Exclude<NeuHapticFeedback, \"press\">): void | Promise<void>;\n}"},{"name":"NeuHapticsOptions","kind":"InterfaceDeclaration","declaration":"export interface NeuHapticsOptions {\n enabled?: boolean;\n minimumIntervalMs?: number;\n pressStyle?: NeuHapticImpact;\n}"},{"name":"NeuNativeHaptics","kind":"InterfaceDeclaration","declaration":"export interface NeuNativeHaptics {\n impactAsync(style: NeuHapticImpact): Promise<void>;\n notificationAsync(type: \"success\" | \"warning\" | \"error\"): Promise<void>;\n selectionAsync(): Promise<void>;\n}"},{"name":"provideNeuHaptics","kind":"FunctionDeclaration","declaration":"export declare function provideNeuHaptics(options?: NeuHapticsOptions): EnvironmentProviders;"}]},"@neural-ui/native/icon-button":{"types":"./dist/icon-button/index.d.ts","sha256":"00b6064424b83f52fb3e0713c3a1609c0be6ab205e60254467413abad57ec0af","symbols":[{"name":"NeuIconButtonComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-icon-button","inputs":[{"name":"haptic","alias":"haptic","required":false,"type":"import(\"@angular/core\").InputSignal<false | NeuHapticFeedback>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"svg","alias":"svg","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"variant","alias":"variant","required":false,"type":"import(\"@angular/core\").InputSignal<NeuVariant>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"loading","alias":"loading","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"pressed","alias":"pressed","type":"import(\"@angular/core\").OutputEmitterRef<import(\"@ng-native/components\").TouchEvent>"}],"members":[]}]},"@neural-ui/native/image-viewer":{"types":"./dist/image-viewer/index.d.ts","sha256":"1208faefec9c30fe41bfc9d9063d53fdb28399513a4e9e7abb6a7065a3951540","symbols":[{"name":"NeuImageViewerComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-image-viewer","inputs":[{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuImageItem[]>"},{"name":"index","alias":"index","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousLabel","alias":"previousLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextLabel","alias":"nextLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"zoomLabel","alias":"zoomLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"zoomOutLabel","alias":"zoomOutLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"errorLabel","alias":"errorLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"index","alias":"indexChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"closed","alias":"closed","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"opened","alias":"opened","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"dismissed","alias":"dismissed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":["close(): void;"]},{"name":"NeuImageViewerLabels","kind":"InterfaceDeclaration","declaration":"export interface NeuImageViewerLabels {\n readonly label?: string;\n readonly closeLabel?: string;\n readonly previousLabel?: string;\n readonly nextLabel?: string;\n readonly zoomLabel?: string;\n readonly zoomOutLabel?: string;\n readonly errorLabel?: string;\n}"}]},"@neural-ui/native/inline-editor":{"types":"./dist/inline-editor/index.d.ts","sha256":"69b936053d472e06c807cd9ff5e60c398c146174212a409db3e7d6eb124832c3","symbols":[{"name":"NeuInlineEditorComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-inline-editor","inputs":[{"name":"editing","alias":"editing","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"saveLabel","alias":"saveLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"cancelLabel","alias":"cancelLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"editing","alias":"editingChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"saved","alias":"saved","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"cancelled","alias":"cancelled","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/input":{"types":"./dist/input/index.d.ts","sha256":"bbc6d97552ff3aacf52d5093a43572f742147268aa241a2fc20f318b25c61924","symbols":[{"name":"NeuInputComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-input","inputs":[{"name":"keyboardType","alias":"keyboardType","required":false,"type":"import(\"@angular/core\").InputSignal<\"default\" | \"email-address\" | \"numeric\" | \"phone-pad\">"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"maxLength","alias":"maxLength","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<number | undefined, number | undefined>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/input-mask":{"types":"./dist/input-mask/index.d.ts","sha256":"c93bd7115d7ee102f64ca5f4caf38262524370f46b12acdab6e0be349c013f4e","symbols":[{"name":"formatMask","kind":"FunctionDeclaration","declaration":"export declare function formatMask(value: string, mask: string): {\n raw: string;\n display: string;\n};"},{"name":"NeuInputMaskComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-input-mask","inputs":[{"name":"mask","alias":"mask","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"keyboardType","alias":"keyboardType","required":false,"type":"import(\"@angular/core\").InputSignal<\"default\" | \"numeric\" | \"phone-pad\">"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/input-otp":{"types":"./dist/input-otp/index.d.ts","sha256":"3a4b8b2265dbeea20d7aeefdea29b25629e074aad2cc4ef71ab01e9f4909b8cd","symbols":[{"name":"NeuInputOtpComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-input-otp","inputs":[{"name":"length","alias":"length","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"completed","alias":"completed","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/input-tags":{"types":"./dist/input-tags/index.d.ts","sha256":"dafce233b09859287454c54b3dd6707179e75d68321df6df0dae52e3a2750fa3","symbols":[{"name":"NeuInputTagsComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-input-tags","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"addLabel","alias":"addLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"removeLabel","alias":"removeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/listbox":{"types":"./dist/listbox/index.d.ts","sha256":"3a1162b2c663b9abfa90c173cf64ba6ca0afafcbf67f5c605bd624b543a92a49","symbols":[{"name":"NeuListboxComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-listbox","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"appearance","alias":"appearance","required":false,"type":"import(\"@angular/core\").InputSignal<\"cards\" | \"plain\">"},{"name":"itemTemplate","alias":"itemTemplate","required":false,"type":"import(\"@angular/core\").InputSignal<TemplateRef<NeuListboxItemContext> | undefined>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"multiple","alias":"multiple","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"selected","alias":"selected","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuListboxItemContext","kind":"InterfaceDeclaration","declaration":"export interface NeuListboxItemContext {\n readonly $implicit: NeuOption;\n readonly index: number;\n readonly selected: boolean;\n readonly disabled: boolean;\n}"},{"name":"NeuListboxItemDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuListboxItem]","inputs":[],"outputs":[],"members":[]}]},"@neural-ui/native/menu":{"types":"./dist/menu/index.d.ts","sha256":"558b078748fb6601ce8937c2d55d61c0587b95865f94749a56a5dce755810039","symbols":[{"name":"NeuMenuComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-menu","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"showTrigger","alias":"showTrigger","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"activated","alias":"activated","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]}]},"@neural-ui/native/meter-group":{"types":"./dist/meter-group/index.d.ts","sha256":"0bed2508ba0f330e6386242dcd2e26e922d294a6839ce17ca6acfeb976059818","symbols":[{"name":"NeuMeterGroupComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-meter-group","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly (NeuOption & {\n readonly value: number;\n})[]>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number | undefined>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[],"members":[]}]},"@neural-ui/native/modal":{"types":"./dist/modal/index.d.ts","sha256":"82b2cda7dca107a8c0bd3054b4471d2c91a5bd67f5e3cbd053d4a5330b2bc3c5","symbols":[{"name":"NeuModalComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-modal","inputs":[{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"title","alias":"title","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"dismissible","alias":"dismissible","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"showCloseButton","alias":"showCloseButton","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"closed","alias":"closed","type":"import(\"@angular/core\").OutputEmitterRef<\"native\" | \"action\" | \"backdrop\">"},{"name":"opened","alias":"opened","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"dismissed","alias":"dismissed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":["close(reason?: 'native' | 'action' | 'backdrop'): void;"]},{"name":"NeuModalFooterDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuModalFooter]","inputs":[],"outputs":[],"members":[]},{"name":"NeuModalHeaderDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuModalHeader]","inputs":[],"outputs":[],"members":[]}]},"@neural-ui/native/nav":{"types":"./dist/nav/index.d.ts","sha256":"7212e849aa6f6bfaead99ae6582c798af1d356057b8ba40270dc2998d5ffb897","symbols":[{"name":"NeuNavComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-nav","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuNavItem[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"navigate","alias":"navigate","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]},{"name":"NeuNavItem","kind":"InterfaceDeclaration","declaration":"export interface NeuNavItem extends NeuOption {\n readonly svg?: string;\n}"}]},"@neural-ui/native/notification-center":{"types":"./dist/notification-center/index.d.ts","sha256":"c38ca548051f12c6a38dd4b92b87c36a747bd2bf5ffa8b53fdb74ac2abe9904f","symbols":[{"name":"NeuNotificationCenterComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-notification-center","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"readIds","alias":"readIds","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"markAllLabel","alias":"markAllLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"unreadLabel","alias":"unreadLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"readIds","alias":"readIdsChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"activated","alias":"activated","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]}]},"@neural-ui/native/number-input":{"types":"./dist/number-input/index.d.ts","sha256":"53de296ce1ae25475316c124a3e20916db6cb0ae1b1df5c6c39895b5f6550c79","symbols":[{"name":"NeuNumberInputComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-number-input","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"min","alias":"min","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"step","alias":"step","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"decreaseLabel","alias":"decreaseLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"increaseLabel","alias":"increaseLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/panel":{"types":"./dist/panel/index.d.ts","sha256":"14153a8e4973de84ddb2417af6834dd6dcbea851379fc840c5f84e91f1c02fcf","symbols":[{"name":"NeuPanelComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-panel","inputs":[{"name":"title","alias":"title","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"collapsed","alias":"collapsed","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"collapsible","alias":"collapsible","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"collapsed","alias":"collapsedChange","type":"import(\"@angular/core\").ModelSignal<boolean>"}],"members":[]},{"name":"NeuPanelFooterDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"[neuPanelFooter]","inputs":[],"outputs":[],"members":[]},{"name":"NeuPanelHeaderDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"[neuPanelHeader]","inputs":[],"outputs":[],"members":[]}]},"@neural-ui/native/password":{"types":"./dist/password/index.d.ts","sha256":"157e2768d0fee7e3dca4a4ce17d15952eccbf42b3b541dc182b97e5bad45b3ae","symbols":[{"name":"NeuPasswordComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-password","inputs":[{"name":"revealed","alias":"revealed","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"showLabel","alias":"showLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"hideLabel","alias":"hideLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"revealed","alias":"revealedChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/pick-list":{"types":"./dist/pick-list/index.d.ts","sha256":"0752d5559e6403f846b8634926ef23be9d672df4ca77fbe2aa4b6955136aa8e6","symbols":[{"name":"NeuPickListComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-pick-list","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"selectedLabel","alias":"selectedLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"availableLabel","alias":"availableLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"upLabel","alias":"upLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"downLabel","alias":"downLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"removeLabel","alias":"removeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"addLabel","alias":"addLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptySelectedLabel","alias":"emptySelectedLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyAvailableLabel","alias":"emptyAvailableLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/popover":{"types":"./dist/popover/index.d.ts","sha256":"aba539bb90e74ff18392ac2852d845121804b03eac6f2bd8a7668ee723e107d2","symbols":[{"name":"NeuPopoverComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-popover","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"title","alias":"title","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"dismissLabel","alias":"dismissLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"}],"members":[]}]},"@neural-ui/native/progress-bar":{"types":"./dist/progress-bar/index.d.ts","sha256":"fc460379bee23b746ed8b2affdd94ded7ded20b1d080e483f123172c530df23f","symbols":[{"name":"NeuProgressBarComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-progress-bar","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[],"members":[]}]},"@neural-ui/native/radio":{"types":"./dist/radio/index.d.ts","sha256":"023111b324e07f1106b8c48ca62bfc00a5b14e07225ef3584b6edd953fc9ab37","symbols":[{"name":"NeuRadioGroupComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-radio","inputs":[{"name":"haptic","alias":"haptic","required":false,"type":"import(\"@angular/core\").InputSignal<false | NeuHapticFeedback>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/rating":{"types":"./dist/rating/index.d.ts","sha256":"f95db2c1e5b2957533778f236591c7e8aa2caf29fbb90d93b308ea2bca9b1167","symbols":[{"name":"NeuRatingComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-rating","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"clearable","alias":"clearable","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"clearLabel","alias":"clearLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/select":{"types":"./dist/select/index.d.ts","sha256":"8bebc9cd1c16d4b452aa3e83a6e1477b18f35328f48cfe0a3d8dd9db186f1cf9","symbols":[{"name":"NeuSelectComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-select","inputs":[{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"multiple","alias":"multiple","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"values","alias":"values","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"searchable","alias":"searchable","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"searchLabel","alias":"searchLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"searchPlaceholder","alias":"searchPlaceholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"values","alias":"valuesChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuSelectItemContext","kind":"TypeAliasDeclaration","declaration":"export type NeuSelectItemContext = NeuListboxItemContext;"},{"name":"NeuSelectItemDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuSelectItem]","inputs":[],"outputs":[],"members":[]},{"name":"NeuSelectSelectedContext","kind":"InterfaceDeclaration","declaration":"export interface NeuSelectSelectedContext {\n readonly $implicit: readonly NeuOption[];\n readonly value: string;\n readonly values: readonly string[];\n readonly placeholder: string;\n}"},{"name":"NeuSelectSelectedDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuSelectSelected]","inputs":[],"outputs":[],"members":[]}]},"@neural-ui/native/sidebar":{"types":"./dist/sidebar/index.d.ts","sha256":"6e10e61e3270c2bd5ede8f8973792339fbd5e07fdc4ebd12a0ac51db60304130","symbols":[{"name":"NeuSidebarComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-sidebar","inputs":[{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"title","alias":"title","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"fullWidth","alias":"fullWidth","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"navigate","alias":"navigate","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"opened","alias":"opened","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"dismissed","alias":"dismissed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/skeleton":{"types":"./dist/skeleton/index.d.ts","sha256":"780843e163a1b9db406e643856f041f06b678fa64c44cc847fdc10874b3cf8c6","symbols":[{"name":"NeuSkeletonAnimation","kind":"TypeAliasDeclaration","declaration":"export type NeuSkeletonAnimation = 'pulse' | 'none';"},{"name":"NeuSkeletonComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-skeleton","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"lines","alias":"lines","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"variant","alias":"variant","required":false,"type":"import(\"@angular/core\").InputSignal<NeuSkeletonVariant>"},{"name":"width","alias":"width","required":false,"type":"import(\"@angular/core\").InputSignal<string | number | undefined>"},{"name":"height","alias":"height","required":false,"type":"import(\"@angular/core\").InputSignal<number | undefined>"},{"name":"borderRadius","alias":"borderRadius","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"gap","alias":"gap","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"lastLineWidth","alias":"lastLineWidth","required":false,"type":"import(\"@angular/core\").InputSignal<string | number>"},{"name":"animation","alias":"animation","required":false,"type":"import(\"@angular/core\").InputSignal<NeuSkeletonAnimation>"}],"outputs":[],"members":[]},{"name":"NeuSkeletonVariant","kind":"TypeAliasDeclaration","declaration":"export type NeuSkeletonVariant = 'text' | 'rect' | 'circle';"}]},"@neural-ui/native/slider":{"types":"./dist/slider/index.d.ts","sha256":"f7f68892924699ad3bf7f5b768bb79e4e1cec05235c65fd59db1e09d4643c8eb","symbols":[{"name":"NeuSliderComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-slider","inputs":[{"name":"haptic","alias":"haptic","required":false,"type":"import(\"@angular/core\").InputSignal<false | NeuHapticFeedback>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"min","alias":"min","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"step","alias":"step","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"showButtons","alias":"showButtons","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"increaseLabel","alias":"increaseLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"decreaseLabel","alias":"decreaseLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/speed-dial":{"types":"./dist/speed-dial/index.d.ts","sha256":"825fb916a6e93b8960ee6a5aa4707092c40887cac81623e8f339c37b45ca05e4","symbols":[{"name":"NeuSpeedDialAction","kind":"InterfaceDeclaration","declaration":"export interface NeuSpeedDialAction extends NeuOption {\n readonly svg?: string;\n}"},{"name":"NeuSpeedDialComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-speed-dial","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"actions","alias":"actions","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuSpeedDialAction[]>"},{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"activated","alias":"activated","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]}]},"@neural-ui/native/spinner":{"types":"./dist/spinner/index.d.ts","sha256":"22cb3f20b7a2499038891762db8990124409d78dde8c66e4f0533c736b114bbe","symbols":[{"name":"NeuSpinnerComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-spinner","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"size","alias":"size","required":false,"type":"import(\"@angular/core\").InputSignal<\"small\" | \"large\">"},{"name":"active","alias":"active","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"showLabel","alias":"showLabel","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[],"members":[]}]},"@neural-ui/native/stats-card":{"types":"./dist/stats-card/index.d.ts","sha256":"93f80538d09192b5b1eed844145631650ad28b4bc45db61fc6bdd2f2e29317ab","symbols":[{"name":"NeuStatsCardComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-stats-card","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":true,"type":"import(\"@angular/core\").InputSignal<string | number>"},{"name":"change","alias":"change","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"description","alias":"description","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"svg","alias":"svg","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[],"members":[]}]},"@neural-ui/native/stepper":{"types":"./dist/stepper/index.d.ts","sha256":"ededf2ea8550e1f1f113f11f210b56475aae9283e526b7e97609460db66185d7","symbols":[{"name":"NeuStepperComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-stepper","inputs":[{"name":"steps","alias":"steps","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"activeStep","alias":"activeStep","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"linear","alias":"linear","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"completed","alias":"completed","required":false,"type":"import(\"@angular/core\").InputSignal<readonly string[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"previousLabel","alias":"previousLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextLabel","alias":"nextLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"finishLabel","alias":"finishLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"activeStep","alias":"activeStepChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"finished","alias":"finished","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":["goTo(index: number): void;"]}]},"@neural-ui/native/switch":{"types":"./dist/switch/index.d.ts","sha256":"2ac7220d88270898f14938c5480cf72519cb30c37de867bc3e26b321e76822b2","symbols":[{"name":"NeuSwitchComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-switch","inputs":[{"name":"haptic","alias":"haptic","required":false,"type":"import(\"@angular/core\").InputSignal<false | NeuHapticFeedback>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"labelPosition","alias":"labelPosition","required":false,"type":"import(\"@angular/core\").InputSignal<\"left\" | \"right\">"},{"name":"size","alias":"size","required":false,"type":"import(\"@angular/core\").InputSignal<NeuSize>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"checked","alias":"checked","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"checked","alias":"checkedChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/tabs":{"types":"./dist/tabs/index.d.ts","sha256":"99929f6d14993eab62015f75c5cd6834348f39969b84d12b34b8d1c87a2421cb","symbols":[{"name":"NEU_TABS","kind":"VariableDeclaration","declaration":"NEU_TABS: InjectionToken<{\n value: Signal<string>;\n tabs?: Signal<readonly NeuOption[]>;\n}>"},{"name":"NeuTabPanelComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-tab-panel","inputs":[{"name":"id","alias":"id","required":true,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[],"members":[]},{"name":"NeuTabsComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-tabs","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tabs","alias":"tabs","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignal<boolean>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"}],"members":[]}]},"@neural-ui/native/textarea":{"types":"./dist/textarea/index.d.ts","sha256":"8fa47f1a74dfcc12843518b057f1939899ed7adf34dda541f944a952f71e0f28","symbols":[{"name":"NeuTextareaComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-textarea","inputs":[{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"maxLength","alias":"maxLength","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<number | undefined, number | undefined>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/theme":{"types":"./dist/theme/index.d.ts","sha256":"e912c95c6bd86cb6522af7a505580f24806823fef8b9415f40578b3835c9e45b","symbols":[{"name":"NeuThemeComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-theme","inputs":[{"name":"scheme","alias":"scheme","required":false,"type":"import(\"@angular/core\").InputSignal<NeuColorScheme>"},{"name":"tokens","alias":"tokens","required":false,"type":"import(\"@angular/core\").InputSignal<Partial<NeuTokens>>"}],"outputs":[],"members":["readonly resolvedTokens: import(\"@angular/core\").Signal<Readonly<NeuTokens>>;"]}]},"@neural-ui/native/timeline":{"types":"./dist/timeline/index.d.ts","sha256":"eaa9deccfe12247c88aa486e59d4194d6c1f24b20d3ec4ec5e4ccd7e02517ada","symbols":[{"name":"NeuTimelineComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-timeline","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"completedLabel","alias":"completedLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"pendingLabel","alias":"pendingLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly (NeuOption & {\n readonly date?: string;\n readonly done?: boolean;\n})[]>"}],"outputs":[],"members":[]}]},"@neural-ui/native/toast":{"types":"./dist/toast/index.d.ts","sha256":"0b40ce99ddbd825688892f2b267a0e93f6186d38ab813744aee4598587b2a47e","symbols":[{"name":"NeuToastComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-toast","inputs":[{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"message","alias":"message","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"duration","alias":"duration","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"actionLabel","alias":"actionLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"action","alias":"action","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"dismissed","alias":"dismissed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/toggle-button-group":{"types":"./dist/toggle-button-group/index.d.ts","sha256":"d845761cf7b67ab5e648678ebc7e24ebd67dc31927d04b46e4130256184309ad","symbols":[{"name":"NeuToggleButtonGroupComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-toggle-button-group","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"multiple","alias":"multiple","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/toolbar":{"types":"./dist/toolbar/index.d.ts","sha256":"f494436e45ff1a79d231fbc06ad9cd7c32cc36526c60400a9e6ec99e5b4535d2","symbols":[{"name":"NeuToolbarAction","kind":"InterfaceDeclaration","declaration":"export interface NeuToolbarAction extends NeuOption {\n readonly svg?: string;\n}"},{"name":"NeuToolbarComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-toolbar","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"actions","alias":"actions","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuToolbarAction[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"activated","alias":"activated","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]}]},"@neural-ui/native/tree":{"types":"./dist/tree/index.d.ts","sha256":"8786a8448d4f651a0ca65f57b59207fa251e65afe910c7eb15ab6fa35ea8294a","symbols":[{"name":"NeuTreeComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-tree","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nodes","alias":"nodes","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuTreeNode[]>"},{"name":"expanded","alias":"expanded","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"leafOnly","alias":"leafOnly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"expandLabel","alias":"expandLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"expanded","alias":"expandedChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"selected","alias":"selected","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/tree-select":{"types":"./dist/tree-select/index.d.ts","sha256":"9b9d49c460676bf099f8ab2c56998bf2331388803df620d43fa211ffb6165388","symbols":[{"name":"NeuTreeSelectComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-tree-select","inputs":[{"name":"nodes","alias":"nodes","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuTreeNode[]>"},{"name":"leafOnly","alias":"leafOnly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"expandLabel","alias":"expandLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/uploader":{"types":"./dist/uploader/index.d.ts","sha256":"facd99fc0133547fe4fc7356047fd0fbff076a6072535ddc1b9066c942e7b703","symbols":[{"name":"NEU_FILE_PICKER","kind":"VariableDeclaration","declaration":"NEU_FILE_PICKER: InjectionToken<NeuFilePicker>"},{"name":"NeuFile","kind":"InterfaceDeclaration","declaration":"export interface NeuFile {\n readonly uri: string;\n readonly name: string;\n readonly size?: number;\n readonly mimeType?: string;\n}"},{"name":"NeuFilePicker","kind":"InterfaceDeclaration","declaration":"export interface NeuFilePicker {\n pick(options: {\n type: readonly string[];\n multiple: boolean;\n }): Promise<readonly NeuFile[] | null>;\n}"},{"name":"NeuUpload","kind":"TypeAliasDeclaration","declaration":"export type NeuUpload = (file: NeuFile, progress: (percent: number) => void, signal: AbortSignal) => Promise<void>;"},{"name":"NeuUploaderComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-uploader","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"files","alias":"files","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly NeuUploadItem[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"types","alias":"types","required":false,"type":"import(\"@angular/core\").InputSignal<readonly string[]>"},{"name":"multiple","alias":"multiple","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"maxFiles","alias":"maxFiles","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"maxBytes","alias":"maxBytes","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"chooseLabel","alias":"chooseLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"uploadLabel","alias":"uploadLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"removeLabel","alias":"removeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"stateLabels","alias":"stateLabels","required":false,"type":"import(\"@angular/core\").InputSignal<Readonly<Record<\"error\" | \"selected\" | \"uploading\" | \"complete\", string>>>"},{"name":"upload","alias":"upload","required":false,"type":"import(\"@angular/core\").InputSignal<NeuUpload | undefined>"}],"outputs":[{"name":"files","alias":"filesChange","type":"import(\"@angular/core\").ModelSignal<readonly NeuUploadItem[]>"},{"name":"selected","alias":"selected","type":"import(\"@angular/core\").OutputEmitterRef<readonly NeuFile[]>"},{"name":"completed","alias":"completed","type":"import(\"@angular/core\").OutputEmitterRef<NeuFile>"},{"name":"rejected","alias":"rejected","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]},{"name":"NeuUploadItem","kind":"InterfaceDeclaration","declaration":"export interface NeuUploadItem {\n readonly id: string;\n readonly file: NeuFile;\n readonly state: \"selected\" | \"uploading\" | \"complete\" | \"error\";\n readonly progress: number;\n readonly error?: string;\n}"}]},"@neural-ui/native/virtual-list":{"types":"./dist/virtual-list/index.d.ts","sha256":"0b32397ea878681b0dc5d384900482deac9309b402299bf350d7a6a610568701","symbols":[{"name":"NeuVirtualListComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-virtual-list","inputs":[{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"estimatedItemHeight","alias":"estimatedItemHeight","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"height","alias":"height","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"selected","alias":"selected","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"endReached","alias":"endReached","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":["scrollToIndex(index: number): void;","scrollToTop(): void;"]},{"name":"NeuVirtualListItemContext","kind":"InterfaceDeclaration","declaration":"export interface NeuVirtualListItemContext {\n readonly $implicit: NeuOption;\n readonly index: number;\n readonly disabled: boolean;\n}"},{"name":"NeuVirtualListItemDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuVirtualListItem]","inputs":[],"outputs":[],"members":[]}]}},"tokens":[{"name":"accent","type":"string","optional":false,"category":"theme","default":"#006ee6","darkDefault":"#b5c4ff"},{"name":"onAccent","type":"string","optional":false,"category":"theme","default":"#ffffff","darkDefault":"#172955"},{"name":"surface","type":"string","optional":false,"category":"theme","default":"#ffffff","darkDefault":"#1b2230"},{"name":"canvas","type":"string","optional":false,"category":"theme","default":"#f4f5f7","darkDefault":"#111722"},{"name":"text","type":"string","optional":false,"category":"theme","default":"#172033","darkDefault":"#edf1fa"},{"name":"muted","type":"string","optional":false,"category":"theme","default":"#596477","darkDefault":"#b4bed0"},{"name":"border","type":"string","optional":false,"category":"theme","default":"#a5afbf","darkDefault":"#6c7a92"},{"name":"tonal","type":"string","optional":false,"category":"theme","default":"#eff6ff","darkDefault":"#293756"},{"name":"danger","type":"string","optional":false,"category":"theme","default":"#dc2626","darkDefault":"#ffb4ab"},{"name":"success","type":"string","optional":false,"category":"theme","default":"#15803d","darkDefault":"#8fdeb1"},{"name":"warning","type":"string","optional":false,"category":"theme","default":"#f59e0b","darkDefault":"#efd48f"},{"name":"warningText","type":"string","optional":false,"category":"theme","default":"#92400e","darkDefault":"#efd48f"},{"name":"onWarning","type":"string","optional":false,"category":"theme","default":"#111827","darkDefault":"#111722"},{"name":"info","type":"string","optional":false,"category":"theme","default":"#0064d1","darkDefault":"#7dd3fc"},{"name":"accentText","type":"string","optional":true,"category":"theme","default":"resolved from theme surfaces","darkDefault":"resolved from theme surfaces"},{"name":"dangerText","type":"string","optional":true,"category":"theme","default":"resolved from theme surfaces","darkDefault":"resolved from theme surfaces"},{"name":"successText","type":"string","optional":true,"category":"theme","default":"resolved from theme surfaces","darkDefault":"resolved from theme surfaces"},{"name":"infoText","type":"string","optional":true,"category":"theme","default":"resolved from theme surfaces","darkDefault":"resolved from theme surfaces"},{"name":"radius","type":"number","optional":false,"category":"theme","default":12,"darkDefault":12},{"name":"spacing","type":"number","optional":false,"category":"theme","default":16,"darkDefault":16},{"name":"fontSize","type":"number","optional":false,"category":"theme","default":16,"darkDefault":16},{"name":"duration","type":"number","optional":false,"category":"theme","default":120,"darkDefault":120},{"name":"surfaceBorder","type":"string","optional":true,"category":"theme","default":"#e1e6ed","darkDefault":"#354052"},{"name":"divider","type":"string","optional":true,"category":"theme","default":"#e7ebf0","darkDefault":"#303b4c"},{"name":"surfaceSecondary","type":"string","optional":true,"category":"theme","default":"#eef1f5","darkDefault":"#222d3f"},{"name":"mediaCanvas","type":"string","optional":true,"category":"theme","default":"#111722","darkDefault":"#111722"},{"name":"mediaText","type":"string","optional":true,"category":"theme","default":"#edf1fa","darkDefault":"#edf1fa"},{"name":"mediaBarStyle","type":"\"light\" | \"dark\"","optional":true,"category":"theme","default":"light","darkDefault":"light"}],"assets":{"dist/foundation/index.js":"72b4ff3cc18a00dd2fb94ba592695514694d07ed884a5d9f0e1f8eefcb011eed","dist/foundation/index.d.ts":"75500ce10ca61cd1e1ff88f59f325a981fc7d156deeff2ca40346699d60c7609"}},"documents":[{"id":"references/api/accordion","source":"skills/neural-native/references/api/accordion.md","text":"# @neural-ui/native/accordion\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuAccordionComponent\n\nSelector: `neu-accordion`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| expanded | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| multiple | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| expandedChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n"},{"id":"references/api/alert","source":"skills/neural-native/references/api/alert.md","text":"# @neural-ui/native/alert\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuAlertComponent\n\nSelector: `neu-alert`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| title | no | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n| variant | no | `import(\"@angular/core\").InputSignal<NeuAlertVariant>` |\n| showIcon | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| svg | no | `import(\"@angular/core\").InputSignal<string>` |\n| message | yes | `import(\"@angular/core\").InputSignal<string>` |\n| visible | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| closable | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| visibleChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| closed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuAlertVariant\n\n```typescript\nexport type NeuAlertVariant = 'soft' | 'outline';\n```\n"},{"id":"references/api/autocomplete","source":"skills/neural-native/references/api/autocomplete.md","text":"# @neural-ui/native/autocomplete\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuAutocompleteComponent\n\nSelector: `neu-autocomplete`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| minLength | no | `import(\"@angular/core\").InputSignal<number>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/avatar-group","source":"skills/neural-native/references/api/avatar-group.md","text":"# @neural-ui/native/avatar-group\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuAvatarGroupComponent\n\nSelector: `neu-avatar-group`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| items | no | `import(\"@angular/core\").InputSignal<readonly (NeuOption & {\n readonly uri?: string;\n readonly tone?: NeuTone;\n})[]>` |\n| max | no | `import(\"@angular/core\").InputSignal<number>` |\n| moreLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n| size | no | `import(\"@angular/core\").InputSignal<NeuSize>` |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/avatar","source":"skills/neural-native/references/api/avatar.md","text":"# @neural-ui/native/avatar\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuAvatarComponent\n\nSelector: `neu-avatar`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| uri | no | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n| size | no | `import(\"@angular/core\").InputSignal<NeuSize>` |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/badge","source":"skills/neural-native/references/api/badge.md","text":"# @neural-ui/native/badge\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuBadgeComponent\n\nSelector: `neu-badge`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/bottom-sheet","source":"skills/neural-native/references/api/bottom-sheet.md","text":"# @neural-ui/native/bottom-sheet\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuBottomSheetComponent\n\nSelector: `neu-bottom-sheet`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| title | yes | `import(\"@angular/core\").InputSignal<string>` |\n| dismissible | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| height | no | `import(\"@angular/core\").InputSignal<NeuBottomSheetHeight>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| closed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| opened | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| dismissed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\nSupported imperative members:\n\n```typescript\nclose(): void;\n```\n\n## NeuBottomSheetHeight\n\n```typescript\nexport type NeuBottomSheetHeight = 'auto' | 'sm' | 'md' | 'lg' | 'full';\n```\n"},{"id":"references/api/button-group","source":"skills/neural-native/references/api/button-group.md","text":"# @neural-ui/native/button-group\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuButtonGroupComponent\n\nSelector: `neu-button-group`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n| activated | `import(\"@angular/core\").OutputEmitterRef<string>` |\n"},{"id":"references/api/button","source":"skills/neural-native/references/api/button.md","text":"# @neural-ui/native/button\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuButtonComponent\n\nSelector: `neu-button`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| haptic | no | `import(\"@angular/core\").InputSignal<false \\| NeuHapticFeedback>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| accessibilityLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| variant | no | `import(\"@angular/core\").InputSignal<NeuVariant>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n| size | no | `import(\"@angular/core\").InputSignal<NeuSize>` |\n| fullWidth | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| loading | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| pressed | `import(\"@angular/core\").OutputEmitterRef<import(\"@ng-native/components\").TouchEvent>` |\n"},{"id":"references/api/calendar","source":"skills/neural-native/references/api/calendar.md","text":"# @neural-ui/native/calendar\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuCalendarComponent\n\nSelector: `neu-calendar`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| month | no | `import(\"@angular/core\").ModelSignal<string>` |\n| locale | no | `import(\"@angular/core\").InputSignal<string>` |\n| firstDay | no | `import(\"@angular/core\").InputSignal<number>` |\n| min | no | `import(\"@angular/core\").InputSignal<string>` |\n| max | no | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| previousLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousYearLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextYearLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousYearsLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextYearsLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| events | no | `import(\"@angular/core\").InputSignal<readonly NeuCalendarEvent[]>` |\n| showAgenda | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| editable | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| agendaLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyAgendaLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| hasEventsLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| addEventLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| editEventLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| deleteEventLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| monthChange | `import(\"@angular/core\").ModelSignal<string>` |\n| eventCreateRequested | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| eventEditRequested | `import(\"@angular/core\").OutputEmitterRef<NeuCalendarEvent>` |\n| eventDeleteRequested | `import(\"@angular/core\").OutputEmitterRef<NeuCalendarEvent>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuCalendarEvent\n\n```typescript\nexport interface NeuCalendarEvent extends NeuOption {\n readonly date: string;\n}\n```\n"},{"id":"references/api/card","source":"skills/neural-native/references/api/card.md","text":"# @neural-ui/native/card\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuCardComponent\n\nSelector: `neu-card`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| title | no | `import(\"@angular/core\").InputSignal<string>` |\n| description | no | `import(\"@angular/core\").InputSignal<string>` |\n| variant | no | `import(\"@angular/core\").InputSignal<\"tonal\" \\| \"surface\" \\| \"outlined\">` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuCardFooterDirective\n\nSelector: `[neuCardFooter]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuCardHeaderDirective\n\nSelector: `[neuCardHeader]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/carousel","source":"skills/neural-native/references/api/carousel.md","text":"# @neural-ui/native/carousel\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuCarouselComponent\n\nSelector: `neu-carousel`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuImageItem[]>` |\n| index | no | `import(\"@angular/core\").ModelSignal<number>` |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| preview | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| viewerLabels | no | `import(\"@angular/core\").InputSignal<NeuImageViewerLabels>` |\n| loop | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| autoplay | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| autoplayInterval | no | `import(\"@angular/core\").InputSignal<number>` |\n| pauseLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| playLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| indexChange | `import(\"@angular/core\").ModelSignal<number>` |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n"},{"id":"references/api/cascade-select","source":"skills/neural-native/references/api/cascade-select.md","text":"# @neural-ui/native/cascade-select\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuCascadeSelectComponent\n\nSelector: `neu-cascade-select`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| nodes | no | `import(\"@angular/core\").InputSignal<readonly NeuTreeNode[]>` |\n| backLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| rootLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/checkbox","source":"skills/neural-native/references/api/checkbox.md","text":"# @neural-ui/native/checkbox\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuCheckboxComponent\n\nSelector: `neu-checkbox`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| haptic | no | `import(\"@angular/core\").InputSignal<false \\| NeuHapticFeedback>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| labelPosition | no | `import(\"@angular/core\").InputSignal<\"left\" \\| \"right\">` |\n| checked | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| checkedChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/chip","source":"skills/neural-native/references/api/chip.md","text":"# @neural-ui/native/chip\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuChipComponent\n\nSelector: `neu-chip`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n| selected | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| selectable | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| removable | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| removeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| selectedChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| removed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/confirm-dialog","source":"skills/neural-native/references/api/confirm-dialog.md","text":"# @neural-ui/native/confirm-dialog\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuConfirmDialogComponent\n\nSelector: `neu-confirm-dialog`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| title | yes | `import(\"@angular/core\").InputSignal<string>` |\n| message | yes | `import(\"@angular/core\").InputSignal<string>` |\n| confirmLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| cancelLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| intent | no | `import(\"@angular/core\").InputSignal<\"danger\" \\| \"default\">` |\n| busy | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| showCloseButton | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeOnConfirm | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| confirmed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| cancelled | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| opened | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| dismissed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/context-menu","source":"skills/neural-native/references/api/context-menu.md","text":"# @neural-ui/native/context-menu\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuContextMenuComponent\n\nSelector: `neu-context-menu`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| actionsLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| activated | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| pressed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/core","source":"skills/neural-native/references/api/core.md","text":"# @neural-ui/native\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## formatMask\n\n```typescript\nexport declare function formatMask(value: string, mask: string): {\n raw: string;\n display: string;\n};\n```\n\n## NEU_CHECK_ICON\n\n```typescript\nNEU_CHECK_ICON = \"<svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"m5 12 4 4 10-10\\\"/></svg>\"\n```\n\n## NEU_DARK_TOKENS\n\n```typescript\nNEU_DARK_TOKENS: Readonly<NeuTokens>\n```\n\n## NEU_FILE_PICKER\n\n```typescript\nNEU_FILE_PICKER: InjectionToken<NeuFilePicker>\n```\n\n## NEU_HAPTICS_DRIVER\n\n```typescript\nNEU_HAPTICS_DRIVER: InjectionToken<NeuHapticsDriver | null>\n```\n\n## NEU_HAPTICS_OPTIONS\n\n```typescript\nNEU_HAPTICS_OPTIONS: InjectionToken<NeuHapticsOptions>\n```\n\n## NEU_LIGHT_TOKENS\n\n```typescript\nNEU_LIGHT_TOKENS: Readonly<NeuTokens>\n```\n\n## NEU_PLUS_ICON\n\n```typescript\nNEU_PLUS_ICON = \"<svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\"><path d=\\\"M12 5v14M5 12h14\\\"/></svg>\"\n```\n\n## NEU_TABS\n\n```typescript\nNEU_TABS: InjectionToken<{\n value: Signal<string>;\n tabs?: Signal<readonly NeuOption[]>;\n}>\n```\n\n## NEU_THEME\n\n```typescript\nNEU_THEME: InjectionToken<Signal<Readonly<NeuTokens>>>\n```\n\n## NeuAccordionComponent\n\nSelector: `neu-accordion`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| expanded | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| multiple | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| expandedChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n\n## NeuAlertComponent\n\nSelector: `neu-alert`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| title | no | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n| variant | no | `import(\"@angular/core\").InputSignal<NeuAlertVariant>` |\n| showIcon | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| svg | no | `import(\"@angular/core\").InputSignal<string>` |\n| message | yes | `import(\"@angular/core\").InputSignal<string>` |\n| visible | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| closable | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| visibleChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| closed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuAlertVariant\n\n```typescript\nexport type NeuAlertVariant = 'soft' | 'outline';\n```\n\n## NeuAutocompleteComponent\n\nSelector: `neu-autocomplete`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| minLength | no | `import(\"@angular/core\").InputSignal<number>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuAvatarComponent\n\nSelector: `neu-avatar`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| uri | no | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n| size | no | `import(\"@angular/core\").InputSignal<NeuSize>` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuAvatarGroupComponent\n\nSelector: `neu-avatar-group`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| items | no | `import(\"@angular/core\").InputSignal<readonly (NeuOption & {\n readonly uri?: string;\n readonly tone?: NeuTone;\n})[]>` |\n| max | no | `import(\"@angular/core\").InputSignal<number>` |\n| moreLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n| size | no | `import(\"@angular/core\").InputSignal<NeuSize>` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuBadgeComponent\n\nSelector: `neu-badge`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuBottomSheetComponent\n\nSelector: `neu-bottom-sheet`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| title | yes | `import(\"@angular/core\").InputSignal<string>` |\n| dismissible | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| height | no | `import(\"@angular/core\").InputSignal<NeuBottomSheetHeight>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| closed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| opened | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| dismissed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\nSupported imperative members:\n\n```typescript\nclose(): void;\n```\n\n## NeuBottomSheetHeight\n\n```typescript\nexport type NeuBottomSheetHeight = 'auto' | 'sm' | 'md' | 'lg' | 'full';\n```\n\n## NeuButtonComponent\n\nSelector: `neu-button`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| haptic | no | `import(\"@angular/core\").InputSignal<false \\| NeuHapticFeedback>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| accessibilityLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| variant | no | `import(\"@angular/core\").InputSignal<NeuVariant>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n| size | no | `import(\"@angular/core\").InputSignal<NeuSize>` |\n| fullWidth | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| loading | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| pressed | `import(\"@angular/core\").OutputEmitterRef<import(\"@ng-native/components\").TouchEvent>` |\n\n## NeuButtonGroupComponent\n\nSelector: `neu-button-group`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n| activated | `import(\"@angular/core\").OutputEmitterRef<string>` |\n\n## NeuCalendarComponent\n\nSelector: `neu-calendar`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| month | no | `import(\"@angular/core\").ModelSignal<string>` |\n| locale | no | `import(\"@angular/core\").InputSignal<string>` |\n| firstDay | no | `import(\"@angular/core\").InputSignal<number>` |\n| min | no | `import(\"@angular/core\").InputSignal<string>` |\n| max | no | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| previousLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousYearLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextYearLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousYearsLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextYearsLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| events | no | `import(\"@angular/core\").InputSignal<readonly NeuCalendarEvent[]>` |\n| showAgenda | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| editable | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| agendaLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyAgendaLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| hasEventsLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| addEventLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| editEventLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| deleteEventLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| monthChange | `import(\"@angular/core\").ModelSignal<string>` |\n| eventCreateRequested | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| eventEditRequested | `import(\"@angular/core\").OutputEmitterRef<NeuCalendarEvent>` |\n| eventDeleteRequested | `import(\"@angular/core\").OutputEmitterRef<NeuCalendarEvent>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuCalendarEvent\n\n```typescript\nexport interface NeuCalendarEvent extends NeuOption {\n readonly date: string;\n}\n```\n\n## NeuCardComponent\n\nSelector: `neu-card`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| title | no | `import(\"@angular/core\").InputSignal<string>` |\n| description | no | `import(\"@angular/core\").InputSignal<string>` |\n| variant | no | `import(\"@angular/core\").InputSignal<\"tonal\" \\| \"surface\" \\| \"outlined\">` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuCardFooterDirective\n\nSelector: `[neuCardFooter]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuCardHeaderDirective\n\nSelector: `[neuCardHeader]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuCarouselComponent\n\nSelector: `neu-carousel`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuImageItem[]>` |\n| index | no | `import(\"@angular/core\").ModelSignal<number>` |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| preview | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| viewerLabels | no | `import(\"@angular/core\").InputSignal<NeuImageViewerLabels>` |\n| loop | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| autoplay | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| autoplayInterval | no | `import(\"@angular/core\").InputSignal<number>` |\n| pauseLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| playLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| indexChange | `import(\"@angular/core\").ModelSignal<number>` |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n## NeuCascadeSelectComponent\n\nSelector: `neu-cascade-select`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| nodes | no | `import(\"@angular/core\").InputSignal<readonly NeuTreeNode[]>` |\n| backLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| rootLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuCheckboxComponent\n\nSelector: `neu-checkbox`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| haptic | no | `import(\"@angular/core\").InputSignal<false \\| NeuHapticFeedback>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| labelPosition | no | `import(\"@angular/core\").InputSignal<\"left\" \\| \"right\">` |\n| checked | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| checkedChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuChipComponent\n\nSelector: `neu-chip`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n| selected | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| selectable | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| removable | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| removeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| selectedChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| removed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuColorScheme\n\n```typescript\nexport type NeuColorScheme = 'system' | 'light' | 'dark';\n```\n\n## NeuConfirmDialogComponent\n\nSelector: `neu-confirm-dialog`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| title | yes | `import(\"@angular/core\").InputSignal<string>` |\n| message | yes | `import(\"@angular/core\").InputSignal<string>` |\n| confirmLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| cancelLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| intent | no | `import(\"@angular/core\").InputSignal<\"danger\" \\| \"default\">` |\n| busy | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| showCloseButton | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeOnConfirm | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| confirmed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| cancelled | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| opened | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| dismissed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuContextMenuComponent\n\nSelector: `neu-context-menu`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| actionsLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| activated | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| pressed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuDataViewComponent\n\nSelector: `neu-data-view`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| itemTemplate | no | `import(\"@angular/core\").InputSignal<TemplateRef<NeuDataViewItemContext> \\| undefined>` |\n| query | no | `import(\"@angular/core\").ModelSignal<string>` |\n| descending | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| loading | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n| searchLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| sortLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| refreshLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| queryChange | `import(\"@angular/core\").ModelSignal<string>` |\n| descendingChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| selected | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| refresh | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuDataViewItemContext\n\n```typescript\nexport interface NeuDataViewItemContext {\n readonly $implicit: NeuOption;\n readonly index: number;\n}\n```\n\n## NeuDataViewItemDirective\n\nSelector: `ng-template[neuDataViewItem]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuDateInputComponent\n\nSelector: `neu-date-input`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| min | no | `import(\"@angular/core\").InputSignal<string>` |\n| max | no | `import(\"@angular/core\").InputSignal<string>` |\n| locale | no | `import(\"@angular/core\").InputSignal<string>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousYearLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextYearLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousYearsLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextYearsLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuDividerComponent\n\nSelector: `neu-divider`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| orientation | no | `import(\"@angular/core\").InputSignal<\"horizontal\" \\| \"vertical\">` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuEmptyStateComponent\n\nSelector: `neu-empty-state`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| title | yes | `import(\"@angular/core\").InputSignal<string>` |\n| description | no | `import(\"@angular/core\").InputSignal<string>` |\n| actionLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| action | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuFile\n\n```typescript\nexport interface NeuFile {\n readonly uri: string;\n readonly name: string;\n readonly size?: number;\n readonly mimeType?: string;\n}\n```\n\n## NeuFilePicker\n\n```typescript\nexport interface NeuFilePicker {\n pick(options: {\n type: readonly string[];\n multiple: boolean;\n }): Promise<readonly NeuFile[] | null>;\n}\n```\n\n## NeuFilterBarComponent\n\nSelector: `neu-filter-bar`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| query | no | `import(\"@angular/core\").ModelSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| searchLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| clearLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| queryChange | `import(\"@angular/core\").ModelSignal<string>` |\n\n## NeuFormFieldComponent\n\nSelector: `neu-form-field`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuGalleryCaptionDirective\n\nSelector: `ng-template[neuGalleryCaption]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuGalleryComponent\n\nSelector: `neu-gallery`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| viewerLabels | no | `import(\"@angular/core\").InputSignal<NeuGalleryViewerLabels>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuImageItem[]>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| layout | no | `import(\"@angular/core\").InputSignal<NeuGalleryLayout>` |\n| columns | no | `import(\"@angular/core\").InputSignal<number>` |\n| gap | no | `import(\"@angular/core\").InputSignal<number>` |\n| aspectRatio | no | `import(\"@angular/core\").InputSignal<number>` |\n| borderRadius | no | `import(\"@angular/core\").InputSignal<number>` |\n| showCaptions | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| index | no | `import(\"@angular/core\").ModelSignal<number>` |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n| Output | Type |\n| --- | --- |\n| indexChange | `import(\"@angular/core\").ModelSignal<number>` |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n## NeuGalleryItemContext\n\n```typescript\nexport interface NeuGalleryItemContext {\n readonly $implicit: NeuImageItem;\n readonly index: number;\n readonly aspectRatio: number;\n readonly borderRadius: number;\n}\n```\n\n## NeuGalleryItemDirective\n\nSelector: `ng-template[neuGalleryItem]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuGalleryLayout\n\n```typescript\nexport type NeuGalleryLayout = 'grid' | 'mosaic';\n```\n\n## NeuGalleryViewerLabels\n\n```typescript\nexport interface NeuGalleryViewerLabels {\n readonly label?: string;\n readonly closeLabel?: string;\n readonly previousLabel?: string;\n readonly nextLabel?: string;\n readonly zoomLabel?: string;\n readonly zoomOutLabel?: string;\n readonly errorLabel?: string;\n}\n```\n\n## NeuHapticFeedback\n\n```typescript\nexport type NeuHapticFeedback = 'press' | 'selection' | NeuHapticImpact | 'success' | 'warning' | 'error';\n```\n\n## NeuHapticImpact\n\n```typescript\nexport type NeuHapticImpact = 'light' | 'medium' | 'heavy' | 'soft' | 'rigid';\n```\n\n## NeuHaptics\n\nSupported imperative members:\n\n```typescript\nreadonly enabled: import(\"@angular/core\").WritableSignal<boolean>;\nget available(): boolean;\nplay(feedback?: NeuHapticFeedback | false): boolean;\n```\n\n## NeuHapticsDriver\n\n```typescript\nexport interface NeuHapticsDriver {\n available(): boolean;\n play(feedback: Exclude<NeuHapticFeedback, \"press\">): void | Promise<void>;\n}\n```\n\n## NeuHapticsOptions\n\n```typescript\nexport interface NeuHapticsOptions {\n enabled?: boolean;\n minimumIntervalMs?: number;\n pressStyle?: NeuHapticImpact;\n}\n```\n\n## NeuIconButtonComponent\n\nSelector: `neu-icon-button`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| haptic | no | `import(\"@angular/core\").InputSignal<false \\| NeuHapticFeedback>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| svg | yes | `import(\"@angular/core\").InputSignal<string>` |\n| variant | no | `import(\"@angular/core\").InputSignal<NeuVariant>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| loading | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| pressed | `import(\"@angular/core\").OutputEmitterRef<import(\"@ng-native/components\").TouchEvent>` |\n\n## NeuImageItem\n\n```typescript\nexport interface NeuImageItem {\n readonly id: string;\n readonly uri: string;\n readonly label: string;\n}\n```\n\n## NeuImageViewerComponent\n\nSelector: `neu-image-viewer`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuImageItem[]>` |\n| index | no | `import(\"@angular/core\").ModelSignal<number>` |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| zoomLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| zoomOutLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| errorLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| indexChange | `import(\"@angular/core\").ModelSignal<number>` |\n| closed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| opened | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| dismissed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\nSupported imperative members:\n\n```typescript\nclose(): void;\n```\n\n## NeuImageViewerLabels\n\n```typescript\nexport interface NeuImageViewerLabels {\n readonly label?: string;\n readonly closeLabel?: string;\n readonly previousLabel?: string;\n readonly nextLabel?: string;\n readonly zoomLabel?: string;\n readonly zoomOutLabel?: string;\n readonly errorLabel?: string;\n}\n```\n\n## NeuInlineEditorComponent\n\nSelector: `neu-inline-editor`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| editing | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| saveLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| cancelLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| editingChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| saved | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| cancelled | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuInputComponent\n\nSelector: `neu-input`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| keyboardType | no | `import(\"@angular/core\").InputSignal<\"default\" \\| \"email-address\" \\| \"numeric\" \\| \"phone-pad\">` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| maxLength | no | `import(\"@angular/core\").InputSignalWithTransform<number \\| undefined, number \\| undefined>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuInputMaskComponent\n\nSelector: `neu-input-mask`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| mask | yes | `import(\"@angular/core\").InputSignal<string>` |\n| keyboardType | no | `import(\"@angular/core\").InputSignal<\"default\" \\| \"numeric\" \\| \"phone-pad\">` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuInputOtpComponent\n\nSelector: `neu-input-otp`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| length | no | `import(\"@angular/core\").InputSignal<number>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| completed | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuInputTagsComponent\n\nSelector: `neu-input-tags`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| max | no | `import(\"@angular/core\").InputSignal<number>` |\n| addLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| removeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuListboxComponent\n\nSelector: `neu-listbox`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| appearance | no | `import(\"@angular/core\").InputSignal<\"cards\" \\| \"plain\">` |\n| itemTemplate | no | `import(\"@angular/core\").InputSignal<TemplateRef<NeuListboxItemContext> \\| undefined>` |\n| value | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| multiple | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| selected | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuListboxItemContext\n\n```typescript\nexport interface NeuListboxItemContext {\n readonly $implicit: NeuOption;\n readonly index: number;\n readonly selected: boolean;\n readonly disabled: boolean;\n}\n```\n\n## NeuListboxItemDirective\n\nSelector: `ng-template[neuListboxItem]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuMenuComponent\n\nSelector: `neu-menu`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| showTrigger | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| activated | `import(\"@angular/core\").OutputEmitterRef<string>` |\n\n## NeuMeterGroupComponent\n\nSelector: `neu-meter-group`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly (NeuOption & {\n readonly value: number;\n})[]>` |\n| max | no | `import(\"@angular/core\").InputSignal<number \\| undefined>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuModalComponent\n\nSelector: `neu-modal`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| title | yes | `import(\"@angular/core\").InputSignal<string>` |\n| dismissible | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| showCloseButton | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| closed | `import(\"@angular/core\").OutputEmitterRef<\"native\" \\| \"action\" \\| \"backdrop\">` |\n| opened | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| dismissed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\nSupported imperative members:\n\n```typescript\nclose(reason?: 'native' | 'action' | 'backdrop'): void;\n```\n\n## NeuModalFooterDirective\n\nSelector: `ng-template[neuModalFooter]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuModalHeaderDirective\n\nSelector: `ng-template[neuModalHeader]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuNavComponent\n\nSelector: `neu-nav`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuNavItem[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| navigate | `import(\"@angular/core\").OutputEmitterRef<string>` |\n\n## NeuNavItem\n\n```typescript\nexport interface NeuNavItem extends NeuOption {\n readonly svg?: string;\n}\n```\n\n## NeuNotificationCenterComponent\n\nSelector: `neu-notification-center`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| readIds | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| markAllLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| unreadLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| readIdsChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| activated | `import(\"@angular/core\").OutputEmitterRef<string>` |\n\n## NeuNumberInputComponent\n\nSelector: `neu-number-input`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<number>` |\n| min | no | `import(\"@angular/core\").InputSignal<number>` |\n| max | no | `import(\"@angular/core\").InputSignal<number>` |\n| step | no | `import(\"@angular/core\").InputSignal<number>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| decreaseLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| increaseLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<number>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuOption\n\n```typescript\nexport interface NeuOption {\n readonly id: string;\n readonly label: string;\n readonly description?: string;\n readonly disabled?: boolean;\n}\n```\n\n## NeuPanelComponent\n\nSelector: `neu-panel`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| title | yes | `import(\"@angular/core\").InputSignal<string>` |\n| collapsed | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| collapsible | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| collapsedChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n## NeuPanelFooterDirective\n\nSelector: `[neuPanelFooter]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuPanelHeaderDirective\n\nSelector: `[neuPanelHeader]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuPasswordComponent\n\nSelector: `neu-password`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| revealed | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| showLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| hideLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| revealedChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuPickListComponent\n\nSelector: `neu-pick-list`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| selectedLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| availableLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| upLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| downLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| removeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| addLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptySelectedLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyAvailableLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuPopoverComponent\n\nSelector: `neu-popover`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| title | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| dismissLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n## NeuProgressBarComponent\n\nSelector: `neu-progress-bar`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").InputSignal<number>` |\n| max | no | `import(\"@angular/core\").InputSignal<number>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuRadioGroupComponent\n\nSelector: `neu-radio`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| haptic | no | `import(\"@angular/core\").InputSignal<false \\| NeuHapticFeedback>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuRatingComponent\n\nSelector: `neu-rating`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<number>` |\n| max | no | `import(\"@angular/core\").InputSignal<number>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| clearable | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| clearLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<number>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuSelectComponent\n\nSelector: `neu-select`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| multiple | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| values | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| searchable | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| searchLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| searchPlaceholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valuesChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuSelectItemContext\n\n```typescript\nexport type NeuSelectItemContext = NeuListboxItemContext;\n```\n\n## NeuSelectItemDirective\n\nSelector: `ng-template[neuSelectItem]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuSelectSelectedContext\n\n```typescript\nexport interface NeuSelectSelectedContext {\n readonly $implicit: readonly NeuOption[];\n readonly value: string;\n readonly values: readonly string[];\n readonly placeholder: string;\n}\n```\n\n## NeuSelectSelectedDirective\n\nSelector: `ng-template[neuSelectSelected]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuSidebarComponent\n\nSelector: `neu-sidebar`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| title | yes | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| fullWidth | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| navigate | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| opened | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| dismissed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuSize\n\n```typescript\nexport type NeuSize = 'sm' | 'md' | 'lg';\n```\n\n## NeuSkeletonAnimation\n\n```typescript\nexport type NeuSkeletonAnimation = 'pulse' | 'none';\n```\n\n## NeuSkeletonComponent\n\nSelector: `neu-skeleton`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| lines | no | `import(\"@angular/core\").InputSignal<number>` |\n| variant | no | `import(\"@angular/core\").InputSignal<NeuSkeletonVariant>` |\n| width | no | `import(\"@angular/core\").InputSignal<string \\| number \\| undefined>` |\n| height | no | `import(\"@angular/core\").InputSignal<number \\| undefined>` |\n| borderRadius | no | `import(\"@angular/core\").InputSignal<number>` |\n| gap | no | `import(\"@angular/core\").InputSignal<number>` |\n| lastLineWidth | no | `import(\"@angular/core\").InputSignal<string \\| number>` |\n| animation | no | `import(\"@angular/core\").InputSignal<NeuSkeletonAnimation>` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuSkeletonVariant\n\n```typescript\nexport type NeuSkeletonVariant = 'text' | 'rect' | 'circle';\n```\n\n## NeuSliderComponent\n\nSelector: `neu-slider`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| haptic | no | `import(\"@angular/core\").InputSignal<false \\| NeuHapticFeedback>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<number>` |\n| min | no | `import(\"@angular/core\").InputSignal<number>` |\n| max | no | `import(\"@angular/core\").InputSignal<number>` |\n| step | no | `import(\"@angular/core\").InputSignal<number>` |\n| showButtons | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| increaseLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| decreaseLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<number>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuSpeedDialAction\n\n```typescript\nexport interface NeuSpeedDialAction extends NeuOption {\n readonly svg?: string;\n}\n```\n\n## NeuSpeedDialComponent\n\nSelector: `neu-speed-dial`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| actions | no | `import(\"@angular/core\").InputSignal<readonly NeuSpeedDialAction[]>` |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| activated | `import(\"@angular/core\").OutputEmitterRef<string>` |\n\n## NeuSpinnerComponent\n\nSelector: `neu-spinner`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| size | no | `import(\"@angular/core\").InputSignal<\"small\" \\| \"large\">` |\n| active | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| showLabel | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuStatsCardComponent\n\nSelector: `neu-stats-card`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| value | yes | `import(\"@angular/core\").InputSignal<string \\| number>` |\n| change | no | `import(\"@angular/core\").InputSignal<string>` |\n| description | no | `import(\"@angular/core\").InputSignal<string>` |\n| svg | no | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuStepperComponent\n\nSelector: `neu-stepper`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| steps | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| activeStep | no | `import(\"@angular/core\").ModelSignal<number>` |\n| linear | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| completed | no | `import(\"@angular/core\").InputSignal<readonly string[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| previousLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| finishLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| activeStepChange | `import(\"@angular/core\").ModelSignal<number>` |\n| finished | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\nSupported imperative members:\n\n```typescript\ngoTo(index: number): void;\n```\n\n## NeuSwitchComponent\n\nSelector: `neu-switch`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| haptic | no | `import(\"@angular/core\").InputSignal<false \\| NeuHapticFeedback>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| labelPosition | no | `import(\"@angular/core\").InputSignal<\"left\" \\| \"right\">` |\n| size | no | `import(\"@angular/core\").InputSignal<NeuSize>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n| checked | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| checkedChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuTabPanelComponent\n\nSelector: `neu-tab-panel`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| id | yes | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuTabsComponent\n\nSelector: `neu-tabs`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| tabs | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignal<boolean>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n\n## NeuTextareaComponent\n\nSelector: `neu-textarea`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| maxLength | no | `import(\"@angular/core\").InputSignalWithTransform<number \\| undefined, number \\| undefined>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuThemeComponent\n\nSelector: `neu-theme`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| scheme | no | `import(\"@angular/core\").InputSignal<NeuColorScheme>` |\n| tokens | no | `import(\"@angular/core\").InputSignal<Partial<NeuTokens>>` |\n\n| Output | Type |\n| --- | --- |\n\nSupported imperative members:\n\n```typescript\nreadonly resolvedTokens: import(\"@angular/core\").Signal<Readonly<NeuTokens>>;\n```\n\n## NeuTimelineComponent\n\nSelector: `neu-timeline`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| completedLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| pendingLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly (NeuOption & {\n readonly date?: string;\n readonly done?: boolean;\n})[]>` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuToastComponent\n\nSelector: `neu-toast`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| message | yes | `import(\"@angular/core\").InputSignal<string>` |\n| duration | no | `import(\"@angular/core\").InputSignal<number>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| actionLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| action | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| dismissed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuToggleButtonGroupComponent\n\nSelector: `neu-toggle-button-group`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| multiple | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuTokens\n\n```typescript\nexport interface NeuTokens {\n accent: string;\n onAccent: string;\n surface: string;\n canvas: string;\n text: string;\n muted: string;\n border: string;\n tonal: string;\n danger: string;\n success: string;\n warning: string;\n warningText: string;\n onWarning: string;\n info: string;\n accentText?: string;\n dangerText?: string;\n successText?: string;\n infoText?: string;\n radius: number;\n spacing: number;\n fontSize: number;\n duration: number;\n surfaceBorder?: string;\n divider?: string;\n surfaceSecondary?: string;\n mediaCanvas?: string;\n mediaText?: string;\n mediaBarStyle?: \"light\" | \"dark\";\n}\n```\n\n## NeuTone\n\n```typescript\nexport type NeuTone = 'neutral' | 'brand' | 'accent' | 'success' | 'info' | 'warning' | 'danger';\n```\n\n## NeuToolbarAction\n\n```typescript\nexport interface NeuToolbarAction extends NeuOption {\n readonly svg?: string;\n}\n```\n\n## NeuToolbarComponent\n\nSelector: `neu-toolbar`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| actions | no | `import(\"@angular/core\").InputSignal<readonly NeuToolbarAction[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| activated | `import(\"@angular/core\").OutputEmitterRef<string>` |\n\n## NeuTreeComponent\n\nSelector: `neu-tree`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| nodes | no | `import(\"@angular/core\").InputSignal<readonly NeuTreeNode[]>` |\n| expanded | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| leafOnly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| expandLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| expandedChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| selected | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuTreeNode\n\n```typescript\nexport interface NeuTreeNode extends NeuOption {\n readonly children?: readonly NeuTreeNode[];\n}\n```\n\n## NeuTreeSelectComponent\n\nSelector: `neu-tree-select`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| nodes | no | `import(\"@angular/core\").InputSignal<readonly NeuTreeNode[]>` |\n| leafOnly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| expandLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuUpload\n\n```typescript\nexport type NeuUpload = (file: NeuFile, progress: (percent: number) => void, signal: AbortSignal) => Promise<void>;\n```\n\n## NeuUploaderComponent\n\nSelector: `neu-uploader`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| files | no | `import(\"@angular/core\").ModelSignal<readonly NeuUploadItem[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| types | no | `import(\"@angular/core\").InputSignal<readonly string[]>` |\n| multiple | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| maxFiles | no | `import(\"@angular/core\").InputSignal<number>` |\n| maxBytes | no | `import(\"@angular/core\").InputSignal<number>` |\n| chooseLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| uploadLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| removeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| stateLabels | no | `import(\"@angular/core\").InputSignal<Readonly<Record<\"error\" \\| \"selected\" \\| \"uploading\" \\| \"complete\", string>>>` |\n| upload | no | `import(\"@angular/core\").InputSignal<NeuUpload \\| undefined>` |\n\n| Output | Type |\n| --- | --- |\n| filesChange | `import(\"@angular/core\").ModelSignal<readonly NeuUploadItem[]>` |\n| selected | `import(\"@angular/core\").OutputEmitterRef<readonly NeuFile[]>` |\n| completed | `import(\"@angular/core\").OutputEmitterRef<NeuFile>` |\n| rejected | `import(\"@angular/core\").OutputEmitterRef<string>` |\n\n## NeuUploadItem\n\n```typescript\nexport interface NeuUploadItem {\n readonly id: string;\n readonly file: NeuFile;\n readonly state: \"selected\" | \"uploading\" | \"complete\" | \"error\";\n readonly progress: number;\n readonly error?: string;\n}\n```\n\n## NeuVariant\n\n```typescript\nexport type NeuVariant = 'solid' | 'tonal' | 'outline' | 'text';\n```\n\n## NeuVirtualListComponent\n\nSelector: `neu-virtual-list`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| estimatedItemHeight | no | `import(\"@angular/core\").InputSignal<number>` |\n| height | no | `import(\"@angular/core\").InputSignal<number>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| selected | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| endReached | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\nSupported imperative members:\n\n```typescript\nscrollToIndex(index: number): void;\nscrollToTop(): void;\n```\n\n## NeuVirtualListItemContext\n\n```typescript\nexport interface NeuVirtualListItemContext {\n readonly $implicit: NeuOption;\n readonly index: number;\n readonly disabled: boolean;\n}\n```\n\n## NeuVirtualListItemDirective\n\nSelector: `ng-template[neuVirtualListItem]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/data-view","source":"skills/neural-native/references/api/data-view.md","text":"# @neural-ui/native/data-view\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuDataViewComponent\n\nSelector: `neu-data-view`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| itemTemplate | no | `import(\"@angular/core\").InputSignal<TemplateRef<NeuDataViewItemContext> \\| undefined>` |\n| query | no | `import(\"@angular/core\").ModelSignal<string>` |\n| descending | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| loading | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n| searchLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| sortLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| refreshLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| queryChange | `import(\"@angular/core\").ModelSignal<string>` |\n| descendingChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| selected | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| refresh | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuDataViewItemContext\n\n```typescript\nexport interface NeuDataViewItemContext {\n readonly $implicit: NeuOption;\n readonly index: number;\n}\n```\n\n## NeuDataViewItemDirective\n\nSelector: `ng-template[neuDataViewItem]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/date-input","source":"skills/neural-native/references/api/date-input.md","text":"# @neural-ui/native/date-input\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuDateInputComponent\n\nSelector: `neu-date-input`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| min | no | `import(\"@angular/core\").InputSignal<string>` |\n| max | no | `import(\"@angular/core\").InputSignal<string>` |\n| locale | no | `import(\"@angular/core\").InputSignal<string>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousYearLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextYearLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousYearsLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextYearsLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/divider","source":"skills/neural-native/references/api/divider.md","text":"# @neural-ui/native/divider\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuDividerComponent\n\nSelector: `neu-divider`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| orientation | no | `import(\"@angular/core\").InputSignal<\"horizontal\" \\| \"vertical\">` |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/empty-state","source":"skills/neural-native/references/api/empty-state.md","text":"# @neural-ui/native/empty-state\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuEmptyStateComponent\n\nSelector: `neu-empty-state`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| title | yes | `import(\"@angular/core\").InputSignal<string>` |\n| description | no | `import(\"@angular/core\").InputSignal<string>` |\n| actionLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| action | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/filter-bar","source":"skills/neural-native/references/api/filter-bar.md","text":"# @neural-ui/native/filter-bar\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuFilterBarComponent\n\nSelector: `neu-filter-bar`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| query | no | `import(\"@angular/core\").ModelSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| searchLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| clearLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| queryChange | `import(\"@angular/core\").ModelSignal<string>` |\n"},{"id":"references/api/form-field","source":"skills/neural-native/references/api/form-field.md","text":"# @neural-ui/native/form-field\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuFormFieldComponent\n\nSelector: `neu-form-field`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/foundation","source":"skills/neural-native/references/api/foundation.md","text":"# @neural-ui/native/foundation\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NEU_CHECK_ICON\n\n```typescript\nNEU_CHECK_ICON = \"<svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"m5 12 4 4 10-10\\\"/></svg>\"\n```\n\n## NEU_DARK_TOKENS\n\n```typescript\nNEU_DARK_TOKENS: Readonly<NeuTokens>\n```\n\n## NEU_HAPTICS_DRIVER\n\n```typescript\nNEU_HAPTICS_DRIVER: InjectionToken<NeuHapticsDriver | null>\n```\n\n## NEU_HAPTICS_OPTIONS\n\n```typescript\nNEU_HAPTICS_OPTIONS: InjectionToken<NeuHapticsOptions>\n```\n\n## NEU_LIGHT_TOKENS\n\n```typescript\nNEU_LIGHT_TOKENS: Readonly<NeuTokens>\n```\n\n## NEU_PLUS_ICON\n\n```typescript\nNEU_PLUS_ICON = \"<svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\"><path d=\\\"M12 5v14M5 12h14\\\"/></svg>\"\n```\n\n## NEU_THEME\n\n```typescript\nNEU_THEME: InjectionToken<Signal<Readonly<NeuTokens>>>\n```\n\n## NeuColorScheme\n\n```typescript\nexport type NeuColorScheme = 'system' | 'light' | 'dark';\n```\n\n## NeuHapticFeedback\n\n```typescript\nexport type NeuHapticFeedback = 'press' | 'selection' | NeuHapticImpact | 'success' | 'warning' | 'error';\n```\n\n## NeuHapticImpact\n\n```typescript\nexport type NeuHapticImpact = 'light' | 'medium' | 'heavy' | 'soft' | 'rigid';\n```\n\n## NeuHaptics\n\nSupported imperative members:\n\n```typescript\nreadonly enabled: import(\"@angular/core\").WritableSignal<boolean>;\nget available(): boolean;\nplay(feedback?: NeuHapticFeedback | false): boolean;\n```\n\n## NeuHapticsDriver\n\n```typescript\nexport interface NeuHapticsDriver {\n available(): boolean;\n play(feedback: Exclude<NeuHapticFeedback, \"press\">): void | Promise<void>;\n}\n```\n\n## NeuHapticsOptions\n\n```typescript\nexport interface NeuHapticsOptions {\n enabled?: boolean;\n minimumIntervalMs?: number;\n pressStyle?: NeuHapticImpact;\n}\n```\n\n## NeuSize\n\n```typescript\nexport type NeuSize = 'sm' | 'md' | 'lg';\n```\n\n## NeuTokens\n\n```typescript\nexport interface NeuTokens {\n accent: string;\n onAccent: string;\n surface: string;\n canvas: string;\n text: string;\n muted: string;\n border: string;\n tonal: string;\n danger: string;\n success: string;\n warning: string;\n warningText: string;\n onWarning: string;\n info: string;\n accentText?: string;\n dangerText?: string;\n successText?: string;\n infoText?: string;\n radius: number;\n spacing: number;\n fontSize: number;\n duration: number;\n surfaceBorder?: string;\n divider?: string;\n surfaceSecondary?: string;\n mediaCanvas?: string;\n mediaText?: string;\n mediaBarStyle?: \"light\" | \"dark\";\n}\n```\n\n## NeuTone\n\n```typescript\nexport type NeuTone = 'neutral' | 'brand' | 'accent' | 'success' | 'info' | 'warning' | 'danger';\n```\n\n## NeuVariant\n\n```typescript\nexport type NeuVariant = 'solid' | 'tonal' | 'outline' | 'text';\n```\n"},{"id":"references/api/gallery","source":"skills/neural-native/references/api/gallery.md","text":"# @neural-ui/native/gallery\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuGalleryCaptionDirective\n\nSelector: `ng-template[neuGalleryCaption]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuGalleryComponent\n\nSelector: `neu-gallery`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| viewerLabels | no | `import(\"@angular/core\").InputSignal<NeuGalleryViewerLabels>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuImageItem[]>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| layout | no | `import(\"@angular/core\").InputSignal<NeuGalleryLayout>` |\n| columns | no | `import(\"@angular/core\").InputSignal<number>` |\n| gap | no | `import(\"@angular/core\").InputSignal<number>` |\n| aspectRatio | no | `import(\"@angular/core\").InputSignal<number>` |\n| borderRadius | no | `import(\"@angular/core\").InputSignal<number>` |\n| showCaptions | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| index | no | `import(\"@angular/core\").ModelSignal<number>` |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n| Output | Type |\n| --- | --- |\n| indexChange | `import(\"@angular/core\").ModelSignal<number>` |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n## NeuGalleryItemContext\n\n```typescript\nexport interface NeuGalleryItemContext {\n readonly $implicit: NeuImageItem;\n readonly index: number;\n readonly aspectRatio: number;\n readonly borderRadius: number;\n}\n```\n\n## NeuGalleryItemDirective\n\nSelector: `ng-template[neuGalleryItem]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuGalleryLayout\n\n```typescript\nexport type NeuGalleryLayout = 'grid' | 'mosaic';\n```\n\n## NeuGalleryViewerLabels\n\n```typescript\nexport interface NeuGalleryViewerLabels {\n readonly label?: string;\n readonly closeLabel?: string;\n readonly previousLabel?: string;\n readonly nextLabel?: string;\n readonly zoomLabel?: string;\n readonly zoomOutLabel?: string;\n readonly errorLabel?: string;\n}\n```\n"},{"id":"references/api/haptics","source":"skills/neural-native/references/api/haptics.md","text":"# @neural-ui/native/haptics\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NEU_HAPTICS_DRIVER\n\n```typescript\nNEU_HAPTICS_DRIVER: InjectionToken<NeuHapticsDriver | null>\n```\n\n## NEU_HAPTICS_OPTIONS\n\n```typescript\nNEU_HAPTICS_OPTIONS: InjectionToken<NeuHapticsOptions>\n```\n\n## NEU_NATIVE_HAPTICS\n\n```typescript\nNEU_NATIVE_HAPTICS: InjectionToken<NeuNativeHaptics | null>\n```\n\n## NeuHapticFeedback\n\n```typescript\nexport type NeuHapticFeedback = 'press' | 'selection' | NeuHapticImpact | 'success' | 'warning' | 'error';\n```\n\n## NeuHapticImpact\n\n```typescript\nexport type NeuHapticImpact = 'light' | 'medium' | 'heavy' | 'soft' | 'rigid';\n```\n\n## NeuHaptics\n\nSupported imperative members:\n\n```typescript\nreadonly enabled: import(\"@angular/core\").WritableSignal<boolean>;\nget available(): boolean;\nplay(feedback?: NeuHapticFeedback | false): boolean;\n```\n\n## NeuHapticsDriver\n\n```typescript\nexport interface NeuHapticsDriver {\n available(): boolean;\n play(feedback: Exclude<NeuHapticFeedback, \"press\">): void | Promise<void>;\n}\n```\n\n## NeuHapticsOptions\n\n```typescript\nexport interface NeuHapticsOptions {\n enabled?: boolean;\n minimumIntervalMs?: number;\n pressStyle?: NeuHapticImpact;\n}\n```\n\n## NeuNativeHaptics\n\n```typescript\nexport interface NeuNativeHaptics {\n impactAsync(style: NeuHapticImpact): Promise<void>;\n notificationAsync(type: \"success\" | \"warning\" | \"error\"): Promise<void>;\n selectionAsync(): Promise<void>;\n}\n```\n\n## provideNeuHaptics\n\n```typescript\nexport declare function provideNeuHaptics(options?: NeuHapticsOptions): EnvironmentProviders;\n```\n"},{"id":"references/api/icon-button","source":"skills/neural-native/references/api/icon-button.md","text":"# @neural-ui/native/icon-button\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuIconButtonComponent\n\nSelector: `neu-icon-button`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| haptic | no | `import(\"@angular/core\").InputSignal<false \\| NeuHapticFeedback>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| svg | yes | `import(\"@angular/core\").InputSignal<string>` |\n| variant | no | `import(\"@angular/core\").InputSignal<NeuVariant>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| loading | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| pressed | `import(\"@angular/core\").OutputEmitterRef<import(\"@ng-native/components\").TouchEvent>` |\n"},{"id":"references/api/image-viewer","source":"skills/neural-native/references/api/image-viewer.md","text":"# @neural-ui/native/image-viewer\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuImageViewerComponent\n\nSelector: `neu-image-viewer`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuImageItem[]>` |\n| index | no | `import(\"@angular/core\").ModelSignal<number>` |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| zoomLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| zoomOutLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| errorLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| indexChange | `import(\"@angular/core\").ModelSignal<number>` |\n| closed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| opened | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| dismissed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\nSupported imperative members:\n\n```typescript\nclose(): void;\n```\n\n## NeuImageViewerLabels\n\n```typescript\nexport interface NeuImageViewerLabels {\n readonly label?: string;\n readonly closeLabel?: string;\n readonly previousLabel?: string;\n readonly nextLabel?: string;\n readonly zoomLabel?: string;\n readonly zoomOutLabel?: string;\n readonly errorLabel?: string;\n}\n```\n"},{"id":"references/api/index","source":"skills/neural-native/references/api/index.md","text":"# Public API — @neural-ui/native@0.1.0-beta.6\n\nGenerated from the installed npm declarations, filtered by the reviewed upstream support policy. Read only the relevant entrypoint. Angular metadata and private implementation methods are excluded.\n\n| Entrypoint | Exports |\n| --- | ---: |\n| [@neural-ui/native](core.md) | 123 |\n| [@neural-ui/native/accordion](accordion.md) | 1 |\n| [@neural-ui/native/alert](alert.md) | 2 |\n| [@neural-ui/native/autocomplete](autocomplete.md) | 1 |\n| [@neural-ui/native/avatar](avatar.md) | 1 |\n| [@neural-ui/native/avatar-group](avatar-group.md) | 1 |\n| [@neural-ui/native/badge](badge.md) | 1 |\n| [@neural-ui/native/bottom-sheet](bottom-sheet.md) | 2 |\n| [@neural-ui/native/button](button.md) | 1 |\n| [@neural-ui/native/button-group](button-group.md) | 1 |\n| [@neural-ui/native/calendar](calendar.md) | 2 |\n| [@neural-ui/native/card](card.md) | 3 |\n| [@neural-ui/native/carousel](carousel.md) | 1 |\n| [@neural-ui/native/cascade-select](cascade-select.md) | 1 |\n| [@neural-ui/native/checkbox](checkbox.md) | 1 |\n| [@neural-ui/native/chip](chip.md) | 1 |\n| [@neural-ui/native/confirm-dialog](confirm-dialog.md) | 1 |\n| [@neural-ui/native/context-menu](context-menu.md) | 1 |\n| [@neural-ui/native/data-view](data-view.md) | 3 |\n| [@neural-ui/native/date-input](date-input.md) | 1 |\n| [@neural-ui/native/divider](divider.md) | 1 |\n| [@neural-ui/native/empty-state](empty-state.md) | 1 |\n| [@neural-ui/native/filter-bar](filter-bar.md) | 1 |\n| [@neural-ui/native/form-field](form-field.md) | 1 |\n| [@neural-ui/native/foundation](foundation.md) | 17 |\n| [@neural-ui/native/gallery](gallery.md) | 6 |\n| [@neural-ui/native/haptics](haptics.md) | 10 |\n| [@neural-ui/native/icon-button](icon-button.md) | 1 |\n| [@neural-ui/native/image-viewer](image-viewer.md) | 2 |\n| [@neural-ui/native/inline-editor](inline-editor.md) | 1 |\n| [@neural-ui/native/input](input.md) | 1 |\n| [@neural-ui/native/input-mask](input-mask.md) | 2 |\n| [@neural-ui/native/input-otp](input-otp.md) | 1 |\n| [@neural-ui/native/input-tags](input-tags.md) | 1 |\n| [@neural-ui/native/listbox](listbox.md) | 3 |\n| [@neural-ui/native/menu](menu.md) | 1 |\n| [@neural-ui/native/meter-group](meter-group.md) | 1 |\n| [@neural-ui/native/modal](modal.md) | 3 |\n| [@neural-ui/native/nav](nav.md) | 2 |\n| [@neural-ui/native/notification-center](notification-center.md) | 1 |\n| [@neural-ui/native/number-input](number-input.md) | 1 |\n| [@neural-ui/native/panel](panel.md) | 3 |\n| [@neural-ui/native/password](password.md) | 1 |\n| [@neural-ui/native/pick-list](pick-list.md) | 1 |\n| [@neural-ui/native/popover](popover.md) | 1 |\n| [@neural-ui/native/progress-bar](progress-bar.md) | 1 |\n| [@neural-ui/native/radio](radio.md) | 1 |\n| [@neural-ui/native/rating](rating.md) | 1 |\n| [@neural-ui/native/select](select.md) | 5 |\n| [@neural-ui/native/sidebar](sidebar.md) | 1 |\n| [@neural-ui/native/skeleton](skeleton.md) | 3 |\n| [@neural-ui/native/slider](slider.md) | 1 |\n| [@neural-ui/native/speed-dial](speed-dial.md) | 2 |\n| [@neural-ui/native/spinner](spinner.md) | 1 |\n| [@neural-ui/native/stats-card](stats-card.md) | 1 |\n| [@neural-ui/native/stepper](stepper.md) | 1 |\n| [@neural-ui/native/switch](switch.md) | 1 |\n| [@neural-ui/native/tabs](tabs.md) | 3 |\n| [@neural-ui/native/textarea](textarea.md) | 1 |\n| [@neural-ui/native/theme](theme.md) | 1 |\n| [@neural-ui/native/timeline](timeline.md) | 1 |\n| [@neural-ui/native/toast](toast.md) | 1 |\n| [@neural-ui/native/toggle-button-group](toggle-button-group.md) | 1 |\n| [@neural-ui/native/toolbar](toolbar.md) | 2 |\n| [@neural-ui/native/tree](tree.md) | 1 |\n| [@neural-ui/native/tree-select](tree-select.md) | 1 |\n| [@neural-ui/native/uploader](uploader.md) | 6 |\n| [@neural-ui/native/virtual-list](virtual-list.md) | 3 |\n\n[Public design tokens](tokens.md)\n"},{"id":"references/api/inline-editor","source":"skills/neural-native/references/api/inline-editor.md","text":"# @neural-ui/native/inline-editor\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuInlineEditorComponent\n\nSelector: `neu-inline-editor`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| editing | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| saveLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| cancelLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| editingChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| saved | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| cancelled | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/input-mask","source":"skills/neural-native/references/api/input-mask.md","text":"# @neural-ui/native/input-mask\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## formatMask\n\n```typescript\nexport declare function formatMask(value: string, mask: string): {\n raw: string;\n display: string;\n};\n```\n\n## NeuInputMaskComponent\n\nSelector: `neu-input-mask`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| mask | yes | `import(\"@angular/core\").InputSignal<string>` |\n| keyboardType | no | `import(\"@angular/core\").InputSignal<\"default\" \\| \"numeric\" \\| \"phone-pad\">` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/input-otp","source":"skills/neural-native/references/api/input-otp.md","text":"# @neural-ui/native/input-otp\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuInputOtpComponent\n\nSelector: `neu-input-otp`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| length | no | `import(\"@angular/core\").InputSignal<number>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| completed | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/input-tags","source":"skills/neural-native/references/api/input-tags.md","text":"# @neural-ui/native/input-tags\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuInputTagsComponent\n\nSelector: `neu-input-tags`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| max | no | `import(\"@angular/core\").InputSignal<number>` |\n| addLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| removeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/input","source":"skills/neural-native/references/api/input.md","text":"# @neural-ui/native/input\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuInputComponent\n\nSelector: `neu-input`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| keyboardType | no | `import(\"@angular/core\").InputSignal<\"default\" \\| \"email-address\" \\| \"numeric\" \\| \"phone-pad\">` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| maxLength | no | `import(\"@angular/core\").InputSignalWithTransform<number \\| undefined, number \\| undefined>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/listbox","source":"skills/neural-native/references/api/listbox.md","text":"# @neural-ui/native/listbox\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuListboxComponent\n\nSelector: `neu-listbox`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| appearance | no | `import(\"@angular/core\").InputSignal<\"cards\" \\| \"plain\">` |\n| itemTemplate | no | `import(\"@angular/core\").InputSignal<TemplateRef<NeuListboxItemContext> \\| undefined>` |\n| value | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| multiple | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| selected | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuListboxItemContext\n\n```typescript\nexport interface NeuListboxItemContext {\n readonly $implicit: NeuOption;\n readonly index: number;\n readonly selected: boolean;\n readonly disabled: boolean;\n}\n```\n\n## NeuListboxItemDirective\n\nSelector: `ng-template[neuListboxItem]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/menu","source":"skills/neural-native/references/api/menu.md","text":"# @neural-ui/native/menu\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuMenuComponent\n\nSelector: `neu-menu`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| showTrigger | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| activated | `import(\"@angular/core\").OutputEmitterRef<string>` |\n"},{"id":"references/api/meter-group","source":"skills/neural-native/references/api/meter-group.md","text":"# @neural-ui/native/meter-group\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuMeterGroupComponent\n\nSelector: `neu-meter-group`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly (NeuOption & {\n readonly value: number;\n})[]>` |\n| max | no | `import(\"@angular/core\").InputSignal<number \\| undefined>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/modal","source":"skills/neural-native/references/api/modal.md","text":"# @neural-ui/native/modal\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuModalComponent\n\nSelector: `neu-modal`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| title | yes | `import(\"@angular/core\").InputSignal<string>` |\n| dismissible | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| showCloseButton | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| closed | `import(\"@angular/core\").OutputEmitterRef<\"native\" \\| \"action\" \\| \"backdrop\">` |\n| opened | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| dismissed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\nSupported imperative members:\n\n```typescript\nclose(reason?: 'native' | 'action' | 'backdrop'): void;\n```\n\n## NeuModalFooterDirective\n\nSelector: `ng-template[neuModalFooter]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuModalHeaderDirective\n\nSelector: `ng-template[neuModalHeader]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/nav","source":"skills/neural-native/references/api/nav.md","text":"# @neural-ui/native/nav\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuNavComponent\n\nSelector: `neu-nav`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuNavItem[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| navigate | `import(\"@angular/core\").OutputEmitterRef<string>` |\n\n## NeuNavItem\n\n```typescript\nexport interface NeuNavItem extends NeuOption {\n readonly svg?: string;\n}\n```\n"},{"id":"references/api/notification-center","source":"skills/neural-native/references/api/notification-center.md","text":"# @neural-ui/native/notification-center\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuNotificationCenterComponent\n\nSelector: `neu-notification-center`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| readIds | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| markAllLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| unreadLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| readIdsChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| activated | `import(\"@angular/core\").OutputEmitterRef<string>` |\n"},{"id":"references/api/number-input","source":"skills/neural-native/references/api/number-input.md","text":"# @neural-ui/native/number-input\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuNumberInputComponent\n\nSelector: `neu-number-input`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<number>` |\n| min | no | `import(\"@angular/core\").InputSignal<number>` |\n| max | no | `import(\"@angular/core\").InputSignal<number>` |\n| step | no | `import(\"@angular/core\").InputSignal<number>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| decreaseLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| increaseLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<number>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/panel","source":"skills/neural-native/references/api/panel.md","text":"# @neural-ui/native/panel\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuPanelComponent\n\nSelector: `neu-panel`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| title | yes | `import(\"@angular/core\").InputSignal<string>` |\n| collapsed | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| collapsible | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| collapsedChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n## NeuPanelFooterDirective\n\nSelector: `[neuPanelFooter]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuPanelHeaderDirective\n\nSelector: `[neuPanelHeader]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/password","source":"skills/neural-native/references/api/password.md","text":"# @neural-ui/native/password\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuPasswordComponent\n\nSelector: `neu-password`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| revealed | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| showLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| hideLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| revealedChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/pick-list","source":"skills/neural-native/references/api/pick-list.md","text":"# @neural-ui/native/pick-list\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuPickListComponent\n\nSelector: `neu-pick-list`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| selectedLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| availableLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| upLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| downLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| removeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| addLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptySelectedLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyAvailableLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/popover","source":"skills/neural-native/references/api/popover.md","text":"# @neural-ui/native/popover\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuPopoverComponent\n\nSelector: `neu-popover`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| title | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| dismissLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n"},{"id":"references/api/progress-bar","source":"skills/neural-native/references/api/progress-bar.md","text":"# @neural-ui/native/progress-bar\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuProgressBarComponent\n\nSelector: `neu-progress-bar`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").InputSignal<number>` |\n| max | no | `import(\"@angular/core\").InputSignal<number>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/radio","source":"skills/neural-native/references/api/radio.md","text":"# @neural-ui/native/radio\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuRadioGroupComponent\n\nSelector: `neu-radio`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| haptic | no | `import(\"@angular/core\").InputSignal<false \\| NeuHapticFeedback>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/rating","source":"skills/neural-native/references/api/rating.md","text":"# @neural-ui/native/rating\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuRatingComponent\n\nSelector: `neu-rating`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<number>` |\n| max | no | `import(\"@angular/core\").InputSignal<number>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| clearable | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| clearLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<number>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/select","source":"skills/neural-native/references/api/select.md","text":"# @neural-ui/native/select\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuSelectComponent\n\nSelector: `neu-select`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| multiple | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| values | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| searchable | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| searchLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| searchPlaceholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valuesChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuSelectItemContext\n\n```typescript\nexport type NeuSelectItemContext = NeuListboxItemContext;\n```\n\n## NeuSelectItemDirective\n\nSelector: `ng-template[neuSelectItem]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuSelectSelectedContext\n\n```typescript\nexport interface NeuSelectSelectedContext {\n readonly $implicit: readonly NeuOption[];\n readonly value: string;\n readonly values: readonly string[];\n readonly placeholder: string;\n}\n```\n\n## NeuSelectSelectedDirective\n\nSelector: `ng-template[neuSelectSelected]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/sidebar","source":"skills/neural-native/references/api/sidebar.md","text":"# @neural-ui/native/sidebar\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuSidebarComponent\n\nSelector: `neu-sidebar`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| title | yes | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| fullWidth | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| navigate | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| opened | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| dismissed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/skeleton","source":"skills/neural-native/references/api/skeleton.md","text":"# @neural-ui/native/skeleton\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuSkeletonAnimation\n\n```typescript\nexport type NeuSkeletonAnimation = 'pulse' | 'none';\n```\n\n## NeuSkeletonComponent\n\nSelector: `neu-skeleton`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| lines | no | `import(\"@angular/core\").InputSignal<number>` |\n| variant | no | `import(\"@angular/core\").InputSignal<NeuSkeletonVariant>` |\n| width | no | `import(\"@angular/core\").InputSignal<string \\| number \\| undefined>` |\n| height | no | `import(\"@angular/core\").InputSignal<number \\| undefined>` |\n| borderRadius | no | `import(\"@angular/core\").InputSignal<number>` |\n| gap | no | `import(\"@angular/core\").InputSignal<number>` |\n| lastLineWidth | no | `import(\"@angular/core\").InputSignal<string \\| number>` |\n| animation | no | `import(\"@angular/core\").InputSignal<NeuSkeletonAnimation>` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuSkeletonVariant\n\n```typescript\nexport type NeuSkeletonVariant = 'text' | 'rect' | 'circle';\n```\n"},{"id":"references/api/slider","source":"skills/neural-native/references/api/slider.md","text":"# @neural-ui/native/slider\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuSliderComponent\n\nSelector: `neu-slider`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| haptic | no | `import(\"@angular/core\").InputSignal<false \\| NeuHapticFeedback>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<number>` |\n| min | no | `import(\"@angular/core\").InputSignal<number>` |\n| max | no | `import(\"@angular/core\").InputSignal<number>` |\n| step | no | `import(\"@angular/core\").InputSignal<number>` |\n| showButtons | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| increaseLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| decreaseLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<number>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/speed-dial","source":"skills/neural-native/references/api/speed-dial.md","text":"# @neural-ui/native/speed-dial\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuSpeedDialAction\n\n```typescript\nexport interface NeuSpeedDialAction extends NeuOption {\n readonly svg?: string;\n}\n```\n\n## NeuSpeedDialComponent\n\nSelector: `neu-speed-dial`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| actions | no | `import(\"@angular/core\").InputSignal<readonly NeuSpeedDialAction[]>` |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| activated | `import(\"@angular/core\").OutputEmitterRef<string>` |\n"},{"id":"references/api/spinner","source":"skills/neural-native/references/api/spinner.md","text":"# @neural-ui/native/spinner\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuSpinnerComponent\n\nSelector: `neu-spinner`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| size | no | `import(\"@angular/core\").InputSignal<\"small\" \\| \"large\">` |\n| active | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| showLabel | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/stats-card","source":"skills/neural-native/references/api/stats-card.md","text":"# @neural-ui/native/stats-card\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuStatsCardComponent\n\nSelector: `neu-stats-card`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| value | yes | `import(\"@angular/core\").InputSignal<string \\| number>` |\n| change | no | `import(\"@angular/core\").InputSignal<string>` |\n| description | no | `import(\"@angular/core\").InputSignal<string>` |\n| svg | no | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/stepper","source":"skills/neural-native/references/api/stepper.md","text":"# @neural-ui/native/stepper\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuStepperComponent\n\nSelector: `neu-stepper`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| steps | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| activeStep | no | `import(\"@angular/core\").ModelSignal<number>` |\n| linear | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| completed | no | `import(\"@angular/core\").InputSignal<readonly string[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| previousLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| finishLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| activeStepChange | `import(\"@angular/core\").ModelSignal<number>` |\n| finished | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\nSupported imperative members:\n\n```typescript\ngoTo(index: number): void;\n```\n"},{"id":"references/api/switch","source":"skills/neural-native/references/api/switch.md","text":"# @neural-ui/native/switch\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuSwitchComponent\n\nSelector: `neu-switch`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| haptic | no | `import(\"@angular/core\").InputSignal<false \\| NeuHapticFeedback>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| labelPosition | no | `import(\"@angular/core\").InputSignal<\"left\" \\| \"right\">` |\n| size | no | `import(\"@angular/core\").InputSignal<NeuSize>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n| checked | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| checkedChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/tabs","source":"skills/neural-native/references/api/tabs.md","text":"# @neural-ui/native/tabs\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NEU_TABS\n\n```typescript\nNEU_TABS: InjectionToken<{\n value: Signal<string>;\n tabs?: Signal<readonly NeuOption[]>;\n}>\n```\n\n## NeuTabPanelComponent\n\nSelector: `neu-tab-panel`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| id | yes | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuTabsComponent\n\nSelector: `neu-tabs`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| tabs | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignal<boolean>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n"},{"id":"references/api/textarea","source":"skills/neural-native/references/api/textarea.md","text":"# @neural-ui/native/textarea\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuTextareaComponent\n\nSelector: `neu-textarea`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| maxLength | no | `import(\"@angular/core\").InputSignalWithTransform<number \\| undefined, number \\| undefined>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/theme","source":"skills/neural-native/references/api/theme.md","text":"# @neural-ui/native/theme\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuThemeComponent\n\nSelector: `neu-theme`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| scheme | no | `import(\"@angular/core\").InputSignal<NeuColorScheme>` |\n| tokens | no | `import(\"@angular/core\").InputSignal<Partial<NeuTokens>>` |\n\n| Output | Type |\n| --- | --- |\n\nSupported imperative members:\n\n```typescript\nreadonly resolvedTokens: import(\"@angular/core\").Signal<Readonly<NeuTokens>>;\n```\n"},{"id":"references/api/timeline","source":"skills/neural-native/references/api/timeline.md","text":"# @neural-ui/native/timeline\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuTimelineComponent\n\nSelector: `neu-timeline`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| completedLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| pendingLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly (NeuOption & {\n readonly date?: string;\n readonly done?: boolean;\n})[]>` |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/toast","source":"skills/neural-native/references/api/toast.md","text":"# @neural-ui/native/toast\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuToastComponent\n\nSelector: `neu-toast`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| message | yes | `import(\"@angular/core\").InputSignal<string>` |\n| duration | no | `import(\"@angular/core\").InputSignal<number>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| actionLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| action | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| dismissed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/toggle-button-group","source":"skills/neural-native/references/api/toggle-button-group.md","text":"# @neural-ui/native/toggle-button-group\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuToggleButtonGroupComponent\n\nSelector: `neu-toggle-button-group`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| multiple | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/tokens","source":"skills/neural-native/references/api/tokens.md","text":"# Native theme tokens\n\nGenerated from @neural-ui/native@0.1.0-beta.6, NeuTokens and the literal light/dark defaults.\nApply typed overrides through neu-theme. Optional semantic inks resolve from surfaces when not supplied; these are not the Web v2 CSS token catalogue.\n\n| Token | Type | Optional | Light default | Dark default |\n| --- | --- | --- | --- | --- |\n| `accent` | `string` | no | `#006ee6` | `#b5c4ff` |\n| `onAccent` | `string` | no | `#ffffff` | `#172955` |\n| `surface` | `string` | no | `#ffffff` | `#1b2230` |\n| `canvas` | `string` | no | `#f4f5f7` | `#111722` |\n| `text` | `string` | no | `#172033` | `#edf1fa` |\n| `muted` | `string` | no | `#596477` | `#b4bed0` |\n| `border` | `string` | no | `#a5afbf` | `#6c7a92` |\n| `tonal` | `string` | no | `#eff6ff` | `#293756` |\n| `danger` | `string` | no | `#dc2626` | `#ffb4ab` |\n| `success` | `string` | no | `#15803d` | `#8fdeb1` |\n| `warning` | `string` | no | `#f59e0b` | `#efd48f` |\n| `warningText` | `string` | no | `#92400e` | `#efd48f` |\n| `onWarning` | `string` | no | `#111827` | `#111722` |\n| `info` | `string` | no | `#0064d1` | `#7dd3fc` |\n| `accentText` | `string` | yes | `resolved from theme surfaces` | `resolved from theme surfaces` |\n| `dangerText` | `string` | yes | `resolved from theme surfaces` | `resolved from theme surfaces` |\n| `successText` | `string` | yes | `resolved from theme surfaces` | `resolved from theme surfaces` |\n| `infoText` | `string` | yes | `resolved from theme surfaces` | `resolved from theme surfaces` |\n| `radius` | `number` | no | `12` | `12` |\n| `spacing` | `number` | no | `16` | `16` |\n| `fontSize` | `number` | no | `16` | `16` |\n| `duration` | `number` | no | `120` | `120` |\n| `surfaceBorder` | `string` | yes | `#e1e6ed` | `#354052` |\n| `divider` | `string` | yes | `#e7ebf0` | `#303b4c` |\n| `surfaceSecondary` | `string` | yes | `#eef1f5` | `#222d3f` |\n| `mediaCanvas` | `string` | yes | `#111722` | `#111722` |\n| `mediaText` | `string` | yes | `#edf1fa` | `#edf1fa` |\n| `mediaBarStyle` | `\"light\" \\| \"dark\"` | yes | `light` | `light` |\n"},{"id":"references/api/toolbar","source":"skills/neural-native/references/api/toolbar.md","text":"# @neural-ui/native/toolbar\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuToolbarAction\n\n```typescript\nexport interface NeuToolbarAction extends NeuOption {\n readonly svg?: string;\n}\n```\n\n## NeuToolbarComponent\n\nSelector: `neu-toolbar`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| actions | no | `import(\"@angular/core\").InputSignal<readonly NeuToolbarAction[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| activated | `import(\"@angular/core\").OutputEmitterRef<string>` |\n"},{"id":"references/api/tree-select","source":"skills/neural-native/references/api/tree-select.md","text":"# @neural-ui/native/tree-select\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuTreeSelectComponent\n\nSelector: `neu-tree-select`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| nodes | no | `import(\"@angular/core\").InputSignal<readonly NeuTreeNode[]>` |\n| leafOnly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| expandLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/tree","source":"skills/neural-native/references/api/tree.md","text":"# @neural-ui/native/tree\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuTreeComponent\n\nSelector: `neu-tree`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| nodes | no | `import(\"@angular/core\").InputSignal<readonly NeuTreeNode[]>` |\n| expanded | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| leafOnly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| expandLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| expandedChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| selected | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/uploader","source":"skills/neural-native/references/api/uploader.md","text":"# @neural-ui/native/uploader\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NEU_FILE_PICKER\n\n```typescript\nNEU_FILE_PICKER: InjectionToken<NeuFilePicker>\n```\n\n## NeuFile\n\n```typescript\nexport interface NeuFile {\n readonly uri: string;\n readonly name: string;\n readonly size?: number;\n readonly mimeType?: string;\n}\n```\n\n## NeuFilePicker\n\n```typescript\nexport interface NeuFilePicker {\n pick(options: {\n type: readonly string[];\n multiple: boolean;\n }): Promise<readonly NeuFile[] | null>;\n}\n```\n\n## NeuUpload\n\n```typescript\nexport type NeuUpload = (file: NeuFile, progress: (percent: number) => void, signal: AbortSignal) => Promise<void>;\n```\n\n## NeuUploaderComponent\n\nSelector: `neu-uploader`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| files | no | `import(\"@angular/core\").ModelSignal<readonly NeuUploadItem[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| types | no | `import(\"@angular/core\").InputSignal<readonly string[]>` |\n| multiple | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| maxFiles | no | `import(\"@angular/core\").InputSignal<number>` |\n| maxBytes | no | `import(\"@angular/core\").InputSignal<number>` |\n| chooseLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| uploadLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| removeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| stateLabels | no | `import(\"@angular/core\").InputSignal<Readonly<Record<\"error\" \\| \"selected\" \\| \"uploading\" \\| \"complete\", string>>>` |\n| upload | no | `import(\"@angular/core\").InputSignal<NeuUpload \\| undefined>` |\n\n| Output | Type |\n| --- | --- |\n| filesChange | `import(\"@angular/core\").ModelSignal<readonly NeuUploadItem[]>` |\n| selected | `import(\"@angular/core\").OutputEmitterRef<readonly NeuFile[]>` |\n| completed | `import(\"@angular/core\").OutputEmitterRef<NeuFile>` |\n| rejected | `import(\"@angular/core\").OutputEmitterRef<string>` |\n\n## NeuUploadItem\n\n```typescript\nexport interface NeuUploadItem {\n readonly id: string;\n readonly file: NeuFile;\n readonly state: \"selected\" | \"uploading\" | \"complete\" | \"error\";\n readonly progress: number;\n readonly error?: string;\n}\n```\n"},{"id":"references/api/virtual-list","source":"skills/neural-native/references/api/virtual-list.md","text":"# @neural-ui/native/virtual-list\n\nVerified against @neural-ui/native@0.1.0-beta.6. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuVirtualListComponent\n\nSelector: `neu-virtual-list`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| estimatedItemHeight | no | `import(\"@angular/core\").InputSignal<number>` |\n| height | no | `import(\"@angular/core\").InputSignal<number>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| selected | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| endReached | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\nSupported imperative members:\n\n```typescript\nscrollToIndex(index: number): void;\nscrollToTop(): void;\n```\n\n## NeuVirtualListItemContext\n\n```typescript\nexport interface NeuVirtualListItemContext {\n readonly $implicit: NeuOption;\n readonly index: number;\n readonly disabled: boolean;\n}\n```\n\n## NeuVirtualListItemDirective\n\nSelector: `ng-template[neuVirtualListItem]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/components","source":"skills/neural-native/references/components.md","text":"# Components and public contracts\n\nUse the generated [API index](api/index.md); it contains 67 typed entrypoints for the 64 component entries plus the root, theme and foundation. Native barrel exports duplicate many secondary exports; prefer secondary imports for discovery and application code.\n\nRead the specific contract before using a binding. Common differences from Neural Web:\n\n| Concern | Native contract |\n| --- | --- |\n| Action | `NeuButtonComponent`, `neu-button`, required `label`, output `pressed` |\n| Text control | `neu-input`, inherited `value`/`valueChange`, label, hint, required, disabled, readonly and validation inputs |\n| Checkbox or Switch | `checked`/`checkedChange`, not a string `value` |\n| Modal | Required `title`, `open`/`openChange`, `closed`, platform presentation events |\n| Collections | `NeuOption` uses stable `id`, `label`, optional `description` and `disabled` |\n| Data View | `items`, `query`, `descending`, `selected` and `refresh`; no Web Table row API |\n\nThe API references merge inherited input/output declarations; a binding absent from the derived class's own metadata may still be public. The references do not expose protected methods or Angular `ɵ` metadata. They do not authorize importing an internal physical file such as `@neural-ui/native/dist/foundation/mobile.js`.\n\nLoad collection states explicitly: loading, error, empty, populated, selected and disabled. Refresh emits an application request; provide real data loading or clearly explain an in-memory demonstration. Match the surrounding description to what the example actually does.\n\nSee [collections example](../examples/collections.ts), [forms](forms.md) and [customization](customization.md).\n"},{"id":"references/customization","source":"skills/neural-native/references/customization.md","text":"# Projection and typed templates\n\nChoose the customization API actually exported by the component; Web's similarly named directives do not apply.\n\n- Card and Panel accept projected content and their exported header/footer marker directives. Use native `view`/`text` inside them.\n- Modal and Bottom Sheet project body content and export `NeuModalHeaderDirective`/`NeuModalFooterDirective` or their Bottom Sheet counterparts for `ng-template` slots. Keep title and close semantics accessible.\n- Data View exports `NeuDataViewItemDirective` and `NeuDataViewItemContext`; Select exports item/selected directives and contexts. Listbox, Gallery and Virtual List have their own contracts. Read the corresponding [API entry](api/index.md) before choosing context fields.\n\nFor Select, the selected-template context contains the selected option array as `$implicit`, plus `value`, `values` and `placeholder`. Its item template uses the Listbox item context. Do not assume an undocumented `row`, `record`, `onSelect` or Web template variable.\n\nThe [overlay example](../examples/overlays.ts) uses a real `neuModalFooter` slot and application-owned `open` state. The supplied footer button closes the requested state; native presentation completion is a separate event. `dismissed` is an iOS native completion event and does not mean Android has failed when it is absent.\n\nAvoid placing a second large modal/calendar over a constrained modal body unless the flow and the actual platform presentation support it. Verify overflow and dismissal on the target device, not only in the browser preview.\n"},{"id":"references/forms","source":"skills/neural-native/references/forms.md","text":"# Forms and owned state\n\nUse writable signals in the application. An input's `value` model owns text; Checkbox/Switch use `checked`. Single Select uses string `value`; multiple Select uses `values: readonly string[]`. Keep option IDs stable when translating labels.\n\n```html\n<neu-input label=\"Full name\" [(value)]=\"name\" [required]=\"true\" />\n<neu-select label=\"Team\" [options]=\"teams\" [(value)]=\"team\" />\n<neu-checkbox label=\"Product updates\" [(checked)]=\"updates\" />\n<neu-button label=\"Save profile\" (pressed)=\"save()\" />\n```\n\nImport every component used; see the complete [forms example](../examples/forms.ts). `pressed` requests an action, while the application validates and saves. Do not attach a Web `click` handler to a Native Neural component in place of its declared output.\n\nAngular Signal Forms is optional. If used, import `FormField` from the matching `@angular/forms/signals` release and bind `[formField]` to the actual form tree field. Let that form own the control; do not also bind its `value`/`checked` model or a second form owner. Run strict Angular template checking for the actual field types. Classic CVA assumptions and Web Neural examples are not substitutes for checking the Native control.\n\nNeural's `NeuFormFieldComponent` arranges projected content and messages. It is not Angular's `FormField` directive. Apply the accessible name and requirement to the projected control itself.\n\nLocalize exposed hint, error, empty, search and action labels. Check date/number contracts for supported formats instead of storing translated display strings as canonical values.\n"},{"id":"references/haptics","source":"skills/neural-native/references/haptics.md","text":"# Optional native haptic feedback\n\nAvailable from `@neural-ui/native@0.1.0-beta.5`. Feedback is off unless the application opts in. Ordinary component imports do not load the optional adapter.\n\nFor a native app, install the compatible module and rebuild the application:\n\n```sh\nnpx expo install expo-haptics\n```\n\nAdd the provider to the existing Angular Native `mount()` options, preserving the template's other providers and native renderer setup:\n\n```ts\nimport { provideNeuHaptics } from '@neural-ui/native/haptics';\n\n// In the existing mount options:\nproviders: [provideNeuHaptics({\n enabled: true,\n pressStyle: 'light',\n minimumIntervalMs: 80,\n})]\n```\n\nInject `NeuHaptics` from the optional entry or from `@neural-ui/native/foundation`. Its public members are `enabled`, `available` and `play()`. `enabled` is a writable signal and supports runtime opt-out without recreating controls. `available` detects the linked native module, not the presence or state of a vibration motor. `play()` returns whether a request was dispatched; it does not confirm physical vibration.\n\nButton and internal pressable actions use the configured press style. Checkbox, Switch, Radio and Slider request a selection tick for user value changes. Disabled/readonly controls, programmatic model changes, an already-selected radio and a slider already at its bound do not request an extra selection tick. The global interval coalesces rapid calls.\n\nButton, IconButton, Checkbox, Switch, Radio and Slider expose `haptic`. Use `[haptic]=\"false\"` to silence a control, `press` to inherit the configured press style, or `selection`, `light`, `medium`, `heavy`, `soft`, `rigid`, `success`, `warning` or `error`. Do not invent this input for other component APIs merely because their internal actions can use the shared service.\n\nExplicit operation feedback belongs to the application. Call `play('success')` only after a real operation succeeds. Silence a button's ordinary press feedback when its handler explicitly requests a notification pulse, avoiding two requests for one tap. Haptics complement visible feedback and accessible state.\n\nThe [preference example](../examples/haptics.ts) runs safely without the adapter; it reports an unavailable request instead of pretending the web preview vibrated. Native applications opt in through the provider above. The browser test checks fallback behavior, not physical output. Emulators/simulators can verify calls into a real native module; physical sensation needs hardware.\n\nPublic contracts: [haptics](api/haptics.md), [foundation](api/foundation.md).\nPublished guide: https://native.neuralui.org/en/haptics\n"},{"id":"references/installation","source":"skills/neural-native/references/installation.md","text":"# Installation and renderer boundary\n\nReviewed: Neural Native `0.1.0-beta.6`, Angular Native `0.21.0`, Angular `22.2.2`, TypeScript `6.0.3`. Use the app's generated tooling and lockfile.\n\nFor a new app, follow the official template:\n\n```sh\nnpx create-expo-app@latest my-neural-app --template @ng-native/template@0.21.0\ncd my-neural-app\nnpm install --save-exact @neural-ui/native@0.1.0-beta.6\n```\n\nIn an existing compatible app only the last command is needed. Keep `@ng-native/components`, `device`, `fabric`, `icons` and the app's other framework packages aligned to the same compatible release. The package requires `react-native-svg` 15.15.4. Its published README's tested application baseline is Expo 57.0.27 / React Native 0.86.3; additional native modules must exist in the Expo/runtime or development build.\n\nThere is no Neural global CSS stylesheet or mandatory Web provider to install. Compose `neu-theme` and the controls in the generated `App`; preserve its exported name and bootstrapping. Run the template's `npm start` workflow and open its compatible native host.\n\n`@ng-native/web` 0.21.0 is a browser host for previews using `mount` and its Vite plugin. Use it for rapid interaction feedback, while retaining actual device verification for safe areas, native presentations, file selection and accessibility. Do not import `@angular/platform-browser` bootstrap as a substitute for the native app entry point.\n\nUse the skill's [forms example](../examples/forms.ts) inside the app's screen/safe-area shell. Wrap the app with `SafeAreaProvider` and use `SafeAreaView` for content that must respect insets.\n\nOfficial setup: https://ng-native.com/guide/getting-started\nLibrary installation: https://native.neuralui.org/en/installation\n"},{"id":"references/layout-accessibility","source":"skills/neural-native/references/layout-accessibility.md","text":"# Layout, accessibility and localization\n\nUse native primitives and the app's safe-area shell. `SafeAreaProvider` supplies insets; `SafeAreaView` applies them. Respect all needed edges in landscape, not just the top inset in portrait. Let collection content scroll inside a bounded layout, and leave deliberate padding/gaps between labels, fields, cards and buttons.\n\n`ScrollView`'s `contentContainerStyle` controls content padding/gap. When a focused field must not consume the first tap on another control, choose `keyboardShouldPersistTaps=\"handled\"` for that flow and verify the actual renderer behavior. Avoid focusing a search input on opening every selection popup if that unnecessarily summons the mobile keyboard.\n\nGive Neural buttons visible labels and icon actions useful accessible names through their declared inputs. Use native `text` for readable content. Keep selection visible without relying on color alone, and preserve reduced-motion behavior when styling transitions.\n\nAngular Native's `aria-live` and `accessibilityLiveRegion` announce updates on Android. iOS does not support those live regions: inject `Accessibility` from `@ng-native/device` and call `announce(message)` when an important application change is not conveyed by a focus change. Announce the change once rather than from every render. Verify spoken feedback with the platform screen reader; neither browser output nor a simulator screenshot proves it was spoken.\n\nTranslate the component's exposed action/search/empty/error/close labels and date locale. Keep option IDs and stored values independent of language. Preserve prerelease names such as Beta/Alpha as product/version terms rather than translating a package version.\n\nExercise each changed flow at a narrow width, both orientations, enlarged system text and light/dark themes. Check keyboard dismissal, scrolling, focus and return from overlays. Browser preview checks help catch clipping and action failures; they do not verify native VoiceOver/TalkBack announcements, touch exploration or native module availability. Report these as separate checks, with observed evidence rather than an accessibility certification.\n"},{"id":"references/navigation","source":"skills/neural-native/references/navigation.md","text":"# Navigation and composed screens\n\n`NeuNavComponent` is a selection/navigation control, not an application router. Supply `NeuNavItem[]`, maintain the `value` model and handle `navigate` when the app needs a navigation side effect. Do not perform the same navigation in both valueChange and navigate.\n\nThe [navigation example](../examples/navigation.ts) changes real screen content through owned state. It is an in-memory example, not a claim that a native router or persisted history has been configured.\n\nFor an actual application stack, follow Angular Native's routing documentation and the generated app configuration. Neural emits actions and state; the app owns routes, back behavior and persistence. Do not transplant Web v2 routing providers, a browser URL strategy or a Web dock into a native app without checking the framework contract.\n\nKeep a bottom navigation bar full-width in its intended layout, with readable labels and a clear selected state. Apply bottom safe-area insets at the app shell; do not add identical insets to both the shell and every nested screen. Provide distinct useful content for each destination.\n\nFramework source: https://ng-native.com\n"},{"id":"references/theming","source":"skills/neural-native/references/theming.md","text":"# Native themes and tokens\n\nWrap a screen or app in `NeuThemeComponent` from `@neural-ui/native/theme`. `scheme` is `system`, `light` or `dark`. `tokens` is `Partial<NeuTokens>` from `@neural-ui/native/foundation`; `resolvedTokens` exposes the resolved read-only theme.\n\nThe generated [token contract](api/tokens.md) lists all 28 public `NeuTokens` properties. Numeric radius, spacing, fontSize and duration are native values, not CSS strings. Optional semantic text inks resolve from theme surfaces when omitted. Light and dark defaults are recorded in the generated API snapshot.\n\n```ts\nimport type { NeuTokens } from '@neural-ui/native/foundation';\nconst brand = { accent: '#3b5bdb', onAccent: '#ffffff', radius: 16 } satisfies Partial<NeuTokens>;\n```\n\nBind `[tokens]=\"brand\"` to `neu-theme`. Fixed overrides apply in both modes, so use mode-specific values where a brand color needs different readable ink in dark mode. The [theme example](../examples/theme.ts) demonstrates a mode switch with a readable palette in each mode.\n\nUse supported native styles and resolved `--neu-*` theme variables, such as `color: var(--neu-text)` or `background-color: var(--neu-surface)`. Do not copy the Web v2 catalogue's hundreds of CSS tokens or assume each is a Native override. Component-specific styles still belong to the actual renderer; browser DOM CSS and arbitrary layout features may not map to iOS/Android.\n\nPreserve safe-area and text-scaling behavior when changing density. Customizing a theme does not justify changing a control's data or action contract.\n"},{"id":"references/versioning","source":"skills/neural-native/references/versioning.md","text":"# Versions, maintenance and optional MCP\n\nThis skill release is 0.1.2 and its verified package baseline is `@neural-ui/native@0.1.0-beta.6`, Angular Native 0.21.0 and Angular 22.2.2. Beta APIs can change before 1.0. The installed package and lockfile are the contract for an existing application.\n\nUse `neural-ui-mcp@0.2.3` for this Native baseline and Web Core 2.0.4. MCP 0.2.2 retains Native beta.2; use that release for applications that still require the older contract. MCP 0.1.0 only understands Web and cannot answer Native requests.\n\nUse an explicitly selected Native call:\n\n```json\n{\"library\":\"native\",\"version\":\"0.1.0-beta.6\",\"entrypoint\":\"@neural-ui/native/input\",\"symbol\":\"NeuInputComponent\"}\n```\n\nThis is an input for `get_api`. `list_components`, `search_documentation`, `get_example` and `validate_usage` use the same `library`/`version` fields. Native example IDs are forms, collections, navigation, overlays, theme and haptics. Resources use `neural-native://docs/` or `neural-native://examples/`; Web resources retain `neural-ui://`.\n\nThe server is local stdio and read-only. It does not install dependencies, inspect user files, execute supplied code, modify projects or certify a build. The skill also works without MCP using its packaged references.\n\nFor maintainers, update the exact dependency and reviewed source/integrity record, regenerate the declaration-derived API, review removed/changed bindings and token defaults, adapt examples and rerun compilation, browser and MCP consumer tests. Do not silently serve another version under the existing baseline. Keep native device validation separate from Web preview results.\n"}],"examples":[{"id":"examples/collections","source":"skills/neural-native/examples/collections.ts","text":"import { Component, signal } from '@angular/core';\nimport { Text, View } from '@ng-native/components';\nimport type { NeuOption } from '@neural-ui/native';\nimport { NeuDataViewComponent } from '@neural-ui/native/data-view';\n\n@Component({\n selector: 'native-collection-example',\n imports: [Text, View, NeuDataViewComponent],\n template: `\n <view class=\"content\">\n <text class=\"heading\">The people behind it.</text>\n <text class=\"muted\">Find a teammate, change the order or refresh this local list.</text>\n <neu-data-view [items]=\"people\" [(query)]=\"query\" [(descending)]=\"descending\"\n searchLabel=\"Search people\" sortLabel=\"Reverse name order\" refreshLabel=\"Refresh local list\"\n emptyLabel=\"No people match your search\" (selected)=\"select($event)\" (refresh)=\"refresh()\" />\n <text class=\"muted\">{{ feedback() }}</text>\n </view>\n `,\n styles: `\n .content { padding: 20px; gap: 16px; }\n .heading { font-size: 26px; font-weight: 700; color: var(--neu-text); }\n .muted { font-size: 14px; color: var(--neu-muted); }\n `,\n})\nexport class NativeCollectionsExample {\n readonly query = signal('');\n readonly descending = signal(false);\n readonly feedback = signal('Choose a person to see their name.');\n readonly people: readonly NeuOption[] = [\n { id: 'ada', label: 'Ada Lovelace', description: 'Product designer' },\n { id: 'grace', label: 'Grace Hopper', description: 'Mobile engineer' },\n { id: 'linus', label: 'Linus Torvalds', description: 'Platform engineer' },\n ];\n select(id: string): void {\n this.feedback.set(`Selected: ${this.people.find(person => person.id === id)?.label ?? id}`);\n }\n refresh(): void {\n this.query.set('');\n this.feedback.set('Local list refreshed. No server request was made.');\n }\n}\n"},{"id":"examples/forms","source":"skills/neural-native/examples/forms.ts","text":"import { Component, signal } from '@angular/core';\nimport { Text, View } from '@ng-native/components';\nimport type { NeuOption } from '@neural-ui/native';\nimport { NeuButtonComponent } from '@neural-ui/native/button';\nimport { NeuCheckboxComponent } from '@neural-ui/native/checkbox';\nimport { NeuInputComponent } from '@neural-ui/native/input';\nimport { NeuSelectComponent } from '@neural-ui/native/select';\n\n@Component({\n selector: 'native-profile-example',\n imports: [Text, View, NeuButtonComponent, NeuCheckboxComponent, NeuInputComponent, NeuSelectComponent],\n template: `\n <view class=\"content\">\n <text class=\"eyebrow\">YOUR WORKSPACE</text>\n <text class=\"heading\">Make it yours.</text>\n <text class=\"muted\">A name and a team to help everyone find you.</text>\n <neu-input label=\"Full name\" [(value)]=\"name\" [required]=\"true\" hint=\"Visible to your teammates\" />\n <neu-select label=\"Team\" [options]=\"teams\" [(value)]=\"team\" closeLabel=\"Close teams\" />\n <neu-checkbox label=\"Send me product updates\" [(checked)]=\"updates\" />\n <neu-button label=\"Save profile\" [fullWidth]=\"true\" (pressed)=\"save()\" />\n <text class=\"muted\">{{ feedback() }}</text>\n </view>\n `,\n styles: `\n .content { padding: 20px; gap: 16px; }\n .eyebrow { font-size: 12px; color: var(--neu-muted); }\n .heading { font-size: 28px; font-weight: 700; color: var(--neu-text); }\n .muted { font-size: 14px; color: var(--neu-muted); }\n `,\n})\nexport class NativeFormsExample {\n readonly name = signal('Ada Lovelace');\n readonly team = signal('design');\n readonly updates = signal(false);\n readonly feedback = signal('Changes stay in this example.');\n readonly teams: readonly NeuOption[] = [\n { id: 'design', label: 'Design', description: 'Product interfaces' },\n { id: 'engineering', label: 'Engineering', description: 'Application development' },\n ];\n save(): void {\n this.feedback.set(this.name().trim() ? `Saved locally: ${this.name().trim()}` : 'Enter your name.');\n }\n}\n"},{"id":"examples/haptics","source":"skills/neural-native/examples/haptics.ts","text":"import { Component, inject, signal } from '@angular/core';\nimport { Text, View } from '@ng-native/components';\nimport { NeuHaptics } from '@neural-ui/native/foundation';\nimport { NeuSwitchComponent } from '@neural-ui/native/switch';\nimport { NeuButtonComponent } from '@neural-ui/native/button';\n\n@Component({\n selector: 'native-haptics-example',\n imports: [Text, View, NeuSwitchComponent, NeuButtonComponent],\n template: `\n <view class=\"content\">\n <neu-switch label=\"Touch feedback\"\n [checked]=\"haptics.enabled()\"\n (checkedChange)=\"haptics.enabled.set($event)\"\n [haptic]=\"false\" />\n <neu-button label=\"Test feedback\" [haptic]=\"false\"\n [disabled]=\"!haptics.enabled()\" (pressed)=\"testFeedback()\" />\n <text>{{ feedback() }}</text>\n </view>\n `,\n styles: `.content { padding: 24px; gap: 16px; }`,\n})\nexport class NativeHapticsExample {\n readonly haptics = inject(NeuHaptics);\n readonly feedback = signal('Feedback is optional.');\n\n testFeedback(): void {\n this.feedback.set(this.haptics.play('success')\n ? 'Native feedback requested.'\n : 'Native feedback is unavailable or disabled.');\n }\n}\n"},{"id":"examples/navigation","source":"skills/neural-native/examples/navigation.ts","text":"import { Component, signal } from '@angular/core';\nimport { Text, View } from '@ng-native/components';\nimport { NeuCardComponent } from '@neural-ui/native/card';\nimport { NeuNavComponent, type NeuNavItem } from '@neural-ui/native/nav';\n\n@Component({\n selector: 'native-navigation-example',\n imports: [Text, View, NeuCardComponent, NeuNavComponent],\n template: `\n <view class=\"screen\">\n <view class=\"body\">\n @switch (destination()) {\n @case ('projects') {\n <text class=\"heading\">Room for the next idea.</text>\n <neu-card title=\"Mobile launch\" description=\"Design review ready\">\n <text class=\"muted\">Three screens to review with your team.</text>\n </neu-card>\n }\n @case ('account') {\n <text class=\"heading\">Your workspace profile.</text>\n <neu-card title=\"Ada Lovelace\" description=\"Product designer\">\n <text class=\"muted\">Design team · Notifications enabled</text>\n </neu-card>\n }\n @default {\n <text class=\"heading\">A good day to make something.</text>\n <neu-card title=\"Today\" description=\"Your team is in sync\">\n <text class=\"muted\">Two reviews complete. One new idea to explore.</text>\n </neu-card>\n }\n }\n </view>\n <neu-nav label=\"Workspace destinations\" [items]=\"destinations\" [(value)]=\"destination\" />\n </view>\n `,\n styles: `\n :host, .screen { flex: 1; }\n .body { flex: 1; padding: 20px; gap: 20px; }\n .heading { font-size: 28px; font-weight: 700; color: var(--neu-text); }\n .muted { font-size: 15px; color: var(--neu-muted); }\n `,\n})\nexport class NativeNavigationExample {\n readonly destination = signal('home');\n readonly destinations: readonly NeuNavItem[] = [\n { id: 'home', label: 'Home' },\n { id: 'projects', label: 'Projects' },\n { id: 'account', label: 'Account' },\n ];\n}\n"},{"id":"examples/overlays","source":"skills/neural-native/examples/overlays.ts","text":"import { Component, signal } from '@angular/core';\nimport { Text, View } from '@ng-native/components';\nimport { NeuButtonComponent } from '@neural-ui/native/button';\nimport { NeuModalComponent, NeuModalFooterDirective } from '@neural-ui/native/modal';\n\n@Component({\n selector: 'native-overlay-example',\n imports: [Text, View, NeuButtonComponent, NeuModalComponent, NeuModalFooterDirective],\n template: `\n <view class=\"content\">\n <text class=\"heading\">One place for your team.</text>\n <text class=\"muted\">A short explanation, with an explicit way back.</text>\n <neu-button label=\"About this workspace\" (pressed)=\"open.set(true)\" />\n <text class=\"muted\">{{ feedback() }}</text>\n <neu-modal title=\"Product workspace\" [(open)]=\"open\" closeLabel=\"Close workspace details\"\n (closed)=\"feedback.set('Workspace details closed.')\">\n <text class=\"message\">A shared place for your team's plans and documents.</text>\n <ng-template neuModalFooter>\n <neu-button label=\"Got it\" size=\"sm\" (pressed)=\"open.set(false)\" />\n </ng-template>\n </neu-modal>\n </view>\n `,\n styles: `\n .content { padding: 20px; gap: 16px; }\n .heading { font-size: 26px; font-weight: 700; color: var(--neu-text); }\n .message { font-size: 16px; color: var(--neu-text); }\n .muted { font-size: 14px; color: var(--neu-muted); }\n `,\n})\nexport class NativeOverlaysExample {\n readonly open = signal(false);\n readonly feedback = signal('Details are closed.');\n}\n"},{"id":"examples/theme","source":"skills/neural-native/examples/theme.ts","text":"import { Component, computed, signal } from '@angular/core';\nimport { Text, View } from '@ng-native/components';\nimport type { NeuTokens } from '@neural-ui/native/foundation';\nimport { NeuThemeComponent } from '@neural-ui/native/theme';\nimport { NeuSwitchComponent } from '@neural-ui/native/switch';\nimport { NeuCardComponent } from '@neural-ui/native/card';\nimport { NeuButtonComponent } from '@neural-ui/native/button';\n\n@Component({\n selector: 'native-theme-example',\n imports: [Text, View, NeuThemeComponent, NeuSwitchComponent, NeuCardComponent, NeuButtonComponent],\n template: `\n <neu-theme [scheme]=\"dark() ? 'dark' : 'light'\" [tokens]=\"brand()\">\n <view class=\"content\">\n <text class=\"heading\">A little more you.</text>\n <neu-switch label=\"Dark appearance\" [(checked)]=\"dark\" />\n <neu-card title=\"Neural, with your palette\" description=\"Shared tokens, real controls\">\n <view class=\"card-content\">\n <text class=\"muted\">Readable surfaces and controls in both appearances.</text>\n <neu-button label=\"Try the brand color\" (pressed)=\"feedback.set('Brand action pressed.')\" />\n </view>\n </neu-card>\n <text class=\"muted\">{{ feedback() }}</text>\n </view>\n </neu-theme>\n `,\n styles: `\n .content { padding: 20px; gap: 16px; background-color: var(--neu-canvas); }\n .card-content { gap: 16px; }\n .heading { font-size: 28px; font-weight: 700; color: var(--neu-text); }\n .muted { font-size: 14px; color: var(--neu-muted); }\n `,\n})\nexport class NativeThemeExample {\n readonly dark = signal(false);\n readonly feedback = signal('Switch appearance to compare the palette.');\n readonly brand = computed(() => ({\n accent: this.dark() ? '#b9b1ff' : '#5941c6',\n onAccent: this.dark() ? '#23164b' : '#ffffff',\n radius: 16,\n } satisfies Partial<NeuTokens>));\n}\n"}]}
1
+ {"schemaVersion":1,"api":{"schemaVersion":1,"package":"@neural-ui/native","version":"0.1.0-beta.7","entrypoints":{"@neural-ui/native":{"types":"./dist/index.d.ts","sha256":"5b19365dec13edadd0d640fd1b9bdb49d3623437d2bda6c77e173c20b22b63c6","symbols":[{"name":"formatMask","kind":"FunctionDeclaration","declaration":"export declare function formatMask(value: string, mask: string): {\n raw: string;\n display: string;\n};"},{"name":"NEU_CHECK_ICON","kind":"VariableDeclaration","declaration":"NEU_CHECK_ICON = \"<svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"m5 12 4 4 10-10\\\"/></svg>\""},{"name":"NEU_DARK_TOKENS","kind":"VariableDeclaration","declaration":"NEU_DARK_TOKENS: Readonly<NeuTokens>"},{"name":"NEU_FILE_PICKER","kind":"VariableDeclaration","declaration":"NEU_FILE_PICKER: InjectionToken<NeuFilePicker>"},{"name":"NEU_HAPTICS_DRIVER","kind":"VariableDeclaration","declaration":"NEU_HAPTICS_DRIVER: InjectionToken<NeuHapticsDriver | null>"},{"name":"NEU_HAPTICS_OPTIONS","kind":"VariableDeclaration","declaration":"NEU_HAPTICS_OPTIONS: InjectionToken<NeuHapticsOptions>"},{"name":"NEU_LIGHT_TOKENS","kind":"VariableDeclaration","declaration":"NEU_LIGHT_TOKENS: Readonly<NeuTokens>"},{"name":"NEU_PLUS_ICON","kind":"VariableDeclaration","declaration":"NEU_PLUS_ICON = \"<svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\"><path d=\\\"M12 5v14M5 12h14\\\"/></svg>\""},{"name":"NEU_TABS","kind":"VariableDeclaration","declaration":"NEU_TABS: InjectionToken<{\n value: Signal<string>;\n tabs?: Signal<readonly NeuOption[]>;\n}>"},{"name":"NEU_THEME","kind":"VariableDeclaration","declaration":"NEU_THEME: InjectionToken<Signal<Readonly<NeuTokens>>>"},{"name":"NeuAccordionComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-accordion","inputs":[{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"expanded","alias":"expanded","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"multiple","alias":"multiple","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"expanded","alias":"expandedChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"}],"members":[]},{"name":"NeuAlertComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-alert","inputs":[{"name":"title","alias":"title","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"},{"name":"variant","alias":"variant","required":false,"type":"import(\"@angular/core\").InputSignal<NeuAlertVariant>"},{"name":"showIcon","alias":"showIcon","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"svg","alias":"svg","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"message","alias":"message","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"visible","alias":"visible","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"closable","alias":"closable","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"visible","alias":"visibleChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"closed","alias":"closed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuAlertVariant","kind":"TypeAliasDeclaration","declaration":"export type NeuAlertVariant = 'soft' | 'outline';"},{"name":"NeuAutocompleteComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-autocomplete","inputs":[{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"minLength","alias":"minLength","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuAvatarComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-avatar","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"uri","alias":"uri","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"},{"name":"size","alias":"size","required":false,"type":"import(\"@angular/core\").InputSignal<NeuSize>"}],"outputs":[],"members":[]},{"name":"NeuAvatarGroupComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-avatar-group","inputs":[{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly (NeuOption & {\n readonly uri?: string;\n readonly tone?: NeuTone;\n})[]>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"moreLabel","alias":"moreLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"},{"name":"size","alias":"size","required":false,"type":"import(\"@angular/core\").InputSignal<NeuSize>"}],"outputs":[],"members":[]},{"name":"NeuBadgeComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-badge","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[],"members":[]},{"name":"NeuBottomSheetComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-bottom-sheet","inputs":[{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"title","alias":"title","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"dismissible","alias":"dismissible","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"height","alias":"height","required":false,"type":"import(\"@angular/core\").InputSignal<NeuBottomSheetHeight>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"closed","alias":"closed","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"opened","alias":"opened","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"dismissed","alias":"dismissed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":["close(): void;"]},{"name":"NeuBottomSheetHeight","kind":"TypeAliasDeclaration","declaration":"export type NeuBottomSheetHeight = 'auto' | 'sm' | 'md' | 'lg' | 'full';"},{"name":"NeuButtonComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-button","inputs":[{"name":"haptic","alias":"haptic","required":false,"type":"import(\"@angular/core\").InputSignal<false | NeuHapticFeedback>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"accessibilityLabel","alias":"accessibilityLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"variant","alias":"variant","required":false,"type":"import(\"@angular/core\").InputSignal<NeuVariant>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"},{"name":"size","alias":"size","required":false,"type":"import(\"@angular/core\").InputSignal<NeuSize>"},{"name":"fullWidth","alias":"fullWidth","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"loading","alias":"loading","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"pressed","alias":"pressed","type":"import(\"@angular/core\").OutputEmitterRef<import(\"@ng-native/components\").TouchEvent>"}],"members":[]},{"name":"NeuButtonGroupComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-button-group","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[{"name":"activated","alias":"activated","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]},{"name":"NeuCalendarComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-calendar","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"month","alias":"month","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"locale","alias":"locale","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"firstDay","alias":"firstDay","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"min","alias":"min","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"previousLabel","alias":"previousLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextLabel","alias":"nextLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousYearLabel","alias":"previousYearLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextYearLabel","alias":"nextYearLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousYearsLabel","alias":"previousYearsLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextYearsLabel","alias":"nextYearsLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"events","alias":"events","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuCalendarEvent[]>"},{"name":"showAgenda","alias":"showAgenda","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"editable","alias":"editable","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"agendaLabel","alias":"agendaLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyAgendaLabel","alias":"emptyAgendaLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"hasEventsLabel","alias":"hasEventsLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"addEventLabel","alias":"addEventLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"editEventLabel","alias":"editEventLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"deleteEventLabel","alias":"deleteEventLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"month","alias":"monthChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"eventCreateRequested","alias":"eventCreateRequested","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"eventEditRequested","alias":"eventEditRequested","type":"import(\"@angular/core\").OutputEmitterRef<NeuCalendarEvent>"},{"name":"eventDeleteRequested","alias":"eventDeleteRequested","type":"import(\"@angular/core\").OutputEmitterRef<NeuCalendarEvent>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuCalendarEvent","kind":"InterfaceDeclaration","declaration":"export interface NeuCalendarEvent extends NeuOption {\n readonly date: string;\n}"},{"name":"NeuCardComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-card","inputs":[{"name":"title","alias":"title","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"description","alias":"description","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"variant","alias":"variant","required":false,"type":"import(\"@angular/core\").InputSignal<\"tonal\" | \"surface\" | \"outlined\">"}],"outputs":[],"members":[]},{"name":"NeuCardFooterDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"[neuCardFooter]","inputs":[],"outputs":[],"members":[]},{"name":"NeuCardHeaderDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"[neuCardHeader]","inputs":[],"outputs":[],"members":[]},{"name":"NeuCarouselComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-carousel","inputs":[{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuImageItem[]>"},{"name":"index","alias":"index","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"preview","alias":"preview","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"viewerLabels","alias":"viewerLabels","required":false,"type":"import(\"@angular/core\").InputSignal<NeuImageViewerLabels>"},{"name":"loop","alias":"loop","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"autoplay","alias":"autoplay","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"autoplayInterval","alias":"autoplayInterval","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"pauseLabel","alias":"pauseLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"playLabel","alias":"playLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousLabel","alias":"previousLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextLabel","alias":"nextLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"index","alias":"indexChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"}],"members":[]},{"name":"NeuCascadeSelectComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-cascade-select","inputs":[{"name":"nodes","alias":"nodes","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuTreeNode[]>"},{"name":"backLabel","alias":"backLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"rootLabel","alias":"rootLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuCheckboxComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-checkbox","inputs":[{"name":"haptic","alias":"haptic","required":false,"type":"import(\"@angular/core\").InputSignal<false | NeuHapticFeedback>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"labelPosition","alias":"labelPosition","required":false,"type":"import(\"@angular/core\").InputSignal<\"left\" | \"right\">"},{"name":"checked","alias":"checked","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"checked","alias":"checkedChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuChipComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-chip","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"},{"name":"selected","alias":"selected","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"selectable","alias":"selectable","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"removable","alias":"removable","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"removeLabel","alias":"removeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"selected","alias":"selectedChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"removed","alias":"removed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuColorScheme","kind":"TypeAliasDeclaration","declaration":"export type NeuColorScheme = 'system' | 'light' | 'dark';"},{"name":"NeuConfirmDialogComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-confirm-dialog","inputs":[{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"title","alias":"title","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"message","alias":"message","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"confirmLabel","alias":"confirmLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"cancelLabel","alias":"cancelLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"intent","alias":"intent","required":false,"type":"import(\"@angular/core\").InputSignal<\"danger\" | \"default\">"},{"name":"busy","alias":"busy","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"showCloseButton","alias":"showCloseButton","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeOnConfirm","alias":"closeOnConfirm","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"confirmed","alias":"confirmed","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"cancelled","alias":"cancelled","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"opened","alias":"opened","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"dismissed","alias":"dismissed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuContextMenuComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-context-menu","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"actionsLabel","alias":"actionsLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"activated","alias":"activated","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"pressed","alias":"pressed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuDataViewComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-data-view","inputs":[{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"itemTemplate","alias":"itemTemplate","required":false,"type":"import(\"@angular/core\").InputSignal<TemplateRef<NeuDataViewItemContext> | undefined>"},{"name":"query","alias":"query","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"descending","alias":"descending","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"loading","alias":"loading","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"searchLabel","alias":"searchLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"sortLabel","alias":"sortLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"refreshLabel","alias":"refreshLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"query","alias":"queryChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"descending","alias":"descendingChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"selected","alias":"selected","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"refresh","alias":"refresh","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuDataViewItemContext","kind":"InterfaceDeclaration","declaration":"export interface NeuDataViewItemContext {\n readonly $implicit: NeuOption;\n readonly index: number;\n}"},{"name":"NeuDataViewItemDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuDataViewItem]","inputs":[],"outputs":[],"members":[]},{"name":"NeuDateInputComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-date-input","inputs":[{"name":"min","alias":"min","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"locale","alias":"locale","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousLabel","alias":"previousLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextLabel","alias":"nextLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousYearLabel","alias":"previousYearLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextYearLabel","alias":"nextYearLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousYearsLabel","alias":"previousYearsLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextYearsLabel","alias":"nextYearsLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuDividerComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-divider","inputs":[{"name":"orientation","alias":"orientation","required":false,"type":"import(\"@angular/core\").InputSignal<\"horizontal\" | \"vertical\">"}],"outputs":[],"members":[]},{"name":"NeuEmptyStateComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-empty-state","inputs":[{"name":"title","alias":"title","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"description","alias":"description","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"actionLabel","alias":"actionLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"action","alias":"action","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuFile","kind":"InterfaceDeclaration","declaration":"export interface NeuFile {\n readonly uri: string;\n readonly name: string;\n readonly size?: number;\n readonly mimeType?: string;\n}"},{"name":"NeuFilePicker","kind":"InterfaceDeclaration","declaration":"export interface NeuFilePicker {\n pick(options: {\n type: readonly string[];\n multiple: boolean;\n }): Promise<readonly NeuFile[] | null>;\n}"},{"name":"NeuFilterBarComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-filter-bar","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"query","alias":"query","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"searchLabel","alias":"searchLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"clearLabel","alias":"clearLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"query","alias":"queryChange","type":"import(\"@angular/core\").ModelSignal<string>"}],"members":[]},{"name":"NeuFormFieldComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-form-field","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[],"members":[]},{"name":"NeuGalleryCaptionDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuGalleryCaption]","inputs":[],"outputs":[],"members":[]},{"name":"NeuGalleryComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-gallery","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"viewerLabels","alias":"viewerLabels","required":false,"type":"import(\"@angular/core\").InputSignal<NeuGalleryViewerLabels>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuImageItem[]>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"layout","alias":"layout","required":false,"type":"import(\"@angular/core\").InputSignal<NeuGalleryLayout>"},{"name":"columns","alias":"columns","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"gap","alias":"gap","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"aspectRatio","alias":"aspectRatio","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"borderRadius","alias":"borderRadius","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"showCaptions","alias":"showCaptions","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"index","alias":"index","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"}],"outputs":[{"name":"index","alias":"indexChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"}],"members":[]},{"name":"NeuGalleryItemContext","kind":"InterfaceDeclaration","declaration":"export interface NeuGalleryItemContext {\n readonly $implicit: NeuImageItem;\n readonly index: number;\n readonly aspectRatio: number;\n readonly borderRadius: number;\n}"},{"name":"NeuGalleryItemDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuGalleryItem]","inputs":[],"outputs":[],"members":[]},{"name":"NeuGalleryLayout","kind":"TypeAliasDeclaration","declaration":"export type NeuGalleryLayout = 'grid' | 'mosaic';"},{"name":"NeuGalleryViewerLabels","kind":"InterfaceDeclaration","declaration":"export interface NeuGalleryViewerLabels {\n readonly label?: string;\n readonly closeLabel?: string;\n readonly previousLabel?: string;\n readonly nextLabel?: string;\n readonly zoomLabel?: string;\n readonly zoomOutLabel?: string;\n readonly errorLabel?: string;\n}"},{"name":"NeuHapticFeedback","kind":"TypeAliasDeclaration","declaration":"export type NeuHapticFeedback = 'press' | 'selection' | NeuHapticImpact | 'success' | 'warning' | 'error';"},{"name":"NeuHapticImpact","kind":"TypeAliasDeclaration","declaration":"export type NeuHapticImpact = 'light' | 'medium' | 'heavy' | 'soft' | 'rigid';"},{"name":"NeuHaptics","kind":"ClassDeclaration","members":["readonly enabled: import(\"@angular/core\").WritableSignal<boolean>;","get available(): boolean;","play(feedback?: NeuHapticFeedback | false): boolean;"]},{"name":"NeuHapticsDriver","kind":"InterfaceDeclaration","declaration":"export interface NeuHapticsDriver {\n available(): boolean;\n play(feedback: Exclude<NeuHapticFeedback, \"press\">): void | Promise<void>;\n}"},{"name":"NeuHapticsOptions","kind":"InterfaceDeclaration","declaration":"export interface NeuHapticsOptions {\n enabled?: boolean;\n minimumIntervalMs?: number;\n pressStyle?: NeuHapticImpact;\n}"},{"name":"NeuIconButtonComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-icon-button","inputs":[{"name":"haptic","alias":"haptic","required":false,"type":"import(\"@angular/core\").InputSignal<false | NeuHapticFeedback>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"svg","alias":"svg","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"variant","alias":"variant","required":false,"type":"import(\"@angular/core\").InputSignal<NeuVariant>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"loading","alias":"loading","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"pressed","alias":"pressed","type":"import(\"@angular/core\").OutputEmitterRef<import(\"@ng-native/components\").TouchEvent>"}],"members":[]},{"name":"NeuImageItem","kind":"InterfaceDeclaration","declaration":"export interface NeuImageItem {\n readonly id: string;\n readonly uri: string;\n readonly label: string;\n}"},{"name":"NeuImageViewerComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-image-viewer","inputs":[{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuImageItem[]>"},{"name":"index","alias":"index","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousLabel","alias":"previousLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextLabel","alias":"nextLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"zoomLabel","alias":"zoomLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"zoomOutLabel","alias":"zoomOutLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"errorLabel","alias":"errorLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"index","alias":"indexChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"closed","alias":"closed","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"opened","alias":"opened","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"dismissed","alias":"dismissed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":["close(): void;"]},{"name":"NeuImageViewerLabels","kind":"InterfaceDeclaration","declaration":"export interface NeuImageViewerLabels {\n readonly label?: string;\n readonly closeLabel?: string;\n readonly previousLabel?: string;\n readonly nextLabel?: string;\n readonly zoomLabel?: string;\n readonly zoomOutLabel?: string;\n readonly errorLabel?: string;\n}"},{"name":"NeuInlineEditorComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-inline-editor","inputs":[{"name":"editing","alias":"editing","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"saveLabel","alias":"saveLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"cancelLabel","alias":"cancelLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"editing","alias":"editingChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"saved","alias":"saved","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"cancelled","alias":"cancelled","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuInputComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-input","inputs":[{"name":"keyboardType","alias":"keyboardType","required":false,"type":"import(\"@angular/core\").InputSignal<\"default\" | \"email-address\" | \"numeric\" | \"phone-pad\">"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"maxLength","alias":"maxLength","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<number | undefined, number | undefined>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuInputMaskComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-input-mask","inputs":[{"name":"mask","alias":"mask","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"keyboardType","alias":"keyboardType","required":false,"type":"import(\"@angular/core\").InputSignal<\"default\" | \"numeric\" | \"phone-pad\">"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuInputOtpComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-input-otp","inputs":[{"name":"length","alias":"length","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"completed","alias":"completed","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuInputTagsComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-input-tags","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"addLabel","alias":"addLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"removeLabel","alias":"removeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuListboxComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-listbox","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"appearance","alias":"appearance","required":false,"type":"import(\"@angular/core\").InputSignal<\"cards\" | \"plain\">"},{"name":"itemTemplate","alias":"itemTemplate","required":false,"type":"import(\"@angular/core\").InputSignal<TemplateRef<NeuListboxItemContext> | undefined>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"multiple","alias":"multiple","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"selected","alias":"selected","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuListboxItemContext","kind":"InterfaceDeclaration","declaration":"export interface NeuListboxItemContext {\n readonly $implicit: NeuOption;\n readonly index: number;\n readonly selected: boolean;\n readonly disabled: boolean;\n}"},{"name":"NeuListboxItemDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuListboxItem]","inputs":[],"outputs":[],"members":[]},{"name":"NeuMenuComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-menu","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"showTrigger","alias":"showTrigger","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"activated","alias":"activated","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]},{"name":"NeuMeterGroupComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-meter-group","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly (NeuOption & {\n readonly value: number;\n})[]>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number | undefined>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[],"members":[]},{"name":"NeuModalComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-modal","inputs":[{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"title","alias":"title","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"dismissible","alias":"dismissible","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"showCloseButton","alias":"showCloseButton","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"closed","alias":"closed","type":"import(\"@angular/core\").OutputEmitterRef<\"native\" | \"action\" | \"backdrop\">"},{"name":"opened","alias":"opened","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"dismissed","alias":"dismissed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":["close(reason?: 'native' | 'action' | 'backdrop'): void;"]},{"name":"NeuModalFooterDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuModalFooter]","inputs":[],"outputs":[],"members":[]},{"name":"NeuModalHeaderDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuModalHeader]","inputs":[],"outputs":[],"members":[]},{"name":"NeuNavComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-nav","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuNavItem[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"navigate","alias":"navigate","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]},{"name":"NeuNavItem","kind":"InterfaceDeclaration","declaration":"export interface NeuNavItem extends NeuOption {\n readonly svg?: string;\n}"},{"name":"NeuNotificationCenterComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-notification-center","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"readIds","alias":"readIds","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"markAllLabel","alias":"markAllLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"unreadLabel","alias":"unreadLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"readIds","alias":"readIdsChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"activated","alias":"activated","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]},{"name":"NeuNumberInputComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-number-input","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"min","alias":"min","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"step","alias":"step","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"decreaseLabel","alias":"decreaseLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"increaseLabel","alias":"increaseLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuOption","kind":"InterfaceDeclaration","declaration":"export interface NeuOption {\n readonly id: string;\n readonly label: string;\n readonly description?: string;\n readonly disabled?: boolean;\n}"},{"name":"NeuPanelComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-panel","inputs":[{"name":"title","alias":"title","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"collapsed","alias":"collapsed","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"collapsible","alias":"collapsible","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"collapsed","alias":"collapsedChange","type":"import(\"@angular/core\").ModelSignal<boolean>"}],"members":[]},{"name":"NeuPanelFooterDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"[neuPanelFooter]","inputs":[],"outputs":[],"members":[]},{"name":"NeuPanelHeaderDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"[neuPanelHeader]","inputs":[],"outputs":[],"members":[]},{"name":"NeuPasswordComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-password","inputs":[{"name":"revealed","alias":"revealed","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"showLabel","alias":"showLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"hideLabel","alias":"hideLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"revealed","alias":"revealedChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuPickListComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-pick-list","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"selectedLabel","alias":"selectedLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"availableLabel","alias":"availableLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"upLabel","alias":"upLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"downLabel","alias":"downLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"removeLabel","alias":"removeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"addLabel","alias":"addLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptySelectedLabel","alias":"emptySelectedLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyAvailableLabel","alias":"emptyAvailableLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuPopoverComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-popover","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"title","alias":"title","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"dismissLabel","alias":"dismissLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"}],"members":[]},{"name":"NeuProgressBarComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-progress-bar","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[],"members":[]},{"name":"NeuRadioGroupComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-radio","inputs":[{"name":"haptic","alias":"haptic","required":false,"type":"import(\"@angular/core\").InputSignal<false | NeuHapticFeedback>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuRatingComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-rating","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"clearable","alias":"clearable","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"clearLabel","alias":"clearLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuSelectComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-select","inputs":[{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"multiple","alias":"multiple","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"values","alias":"values","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"searchable","alias":"searchable","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"searchLabel","alias":"searchLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"searchPlaceholder","alias":"searchPlaceholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"values","alias":"valuesChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuSelectItemContext","kind":"TypeAliasDeclaration","declaration":"export type NeuSelectItemContext = NeuListboxItemContext;"},{"name":"NeuSelectItemDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuSelectItem]","inputs":[],"outputs":[],"members":[]},{"name":"NeuSelectSelectedContext","kind":"InterfaceDeclaration","declaration":"export interface NeuSelectSelectedContext {\n readonly $implicit: readonly NeuOption[];\n readonly value: string;\n readonly values: readonly string[];\n readonly placeholder: string;\n}"},{"name":"NeuSelectSelectedDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuSelectSelected]","inputs":[],"outputs":[],"members":[]},{"name":"NeuSidebarComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-sidebar","inputs":[{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"title","alias":"title","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"fullWidth","alias":"fullWidth","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"navigate","alias":"navigate","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"opened","alias":"opened","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"dismissed","alias":"dismissed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuSize","kind":"TypeAliasDeclaration","declaration":"export type NeuSize = 'sm' | 'md' | 'lg';"},{"name":"NeuSkeletonAnimation","kind":"TypeAliasDeclaration","declaration":"export type NeuSkeletonAnimation = 'pulse' | 'none';"},{"name":"NeuSkeletonComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-skeleton","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"lines","alias":"lines","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"variant","alias":"variant","required":false,"type":"import(\"@angular/core\").InputSignal<NeuSkeletonVariant>"},{"name":"width","alias":"width","required":false,"type":"import(\"@angular/core\").InputSignal<string | number | undefined>"},{"name":"height","alias":"height","required":false,"type":"import(\"@angular/core\").InputSignal<number | undefined>"},{"name":"borderRadius","alias":"borderRadius","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"gap","alias":"gap","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"lastLineWidth","alias":"lastLineWidth","required":false,"type":"import(\"@angular/core\").InputSignal<string | number>"},{"name":"animation","alias":"animation","required":false,"type":"import(\"@angular/core\").InputSignal<NeuSkeletonAnimation>"}],"outputs":[],"members":[]},{"name":"NeuSkeletonVariant","kind":"TypeAliasDeclaration","declaration":"export type NeuSkeletonVariant = 'text' | 'rect' | 'circle';"},{"name":"NeuSliderComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-slider","inputs":[{"name":"haptic","alias":"haptic","required":false,"type":"import(\"@angular/core\").InputSignal<false | NeuHapticFeedback>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"min","alias":"min","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"step","alias":"step","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"showButtons","alias":"showButtons","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"increaseLabel","alias":"increaseLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"decreaseLabel","alias":"decreaseLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuSpeedDialAction","kind":"InterfaceDeclaration","declaration":"export interface NeuSpeedDialAction extends NeuOption {\n readonly svg?: string;\n}"},{"name":"NeuSpeedDialComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-speed-dial","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"actions","alias":"actions","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuSpeedDialAction[]>"},{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"activated","alias":"activated","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]},{"name":"NeuSpinnerComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-spinner","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"size","alias":"size","required":false,"type":"import(\"@angular/core\").InputSignal<\"small\" | \"large\">"},{"name":"active","alias":"active","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"showLabel","alias":"showLabel","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[],"members":[]},{"name":"NeuStatsCardComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-stats-card","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":true,"type":"import(\"@angular/core\").InputSignal<string | number>"},{"name":"change","alias":"change","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"description","alias":"description","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"svg","alias":"svg","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[],"members":[]},{"name":"NeuStepperComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-stepper","inputs":[{"name":"steps","alias":"steps","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"activeStep","alias":"activeStep","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"linear","alias":"linear","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"completed","alias":"completed","required":false,"type":"import(\"@angular/core\").InputSignal<readonly string[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"previousLabel","alias":"previousLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextLabel","alias":"nextLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"finishLabel","alias":"finishLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"activeStep","alias":"activeStepChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"finished","alias":"finished","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":["goTo(index: number): void;"]},{"name":"NeuSwitchComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-switch","inputs":[{"name":"haptic","alias":"haptic","required":false,"type":"import(\"@angular/core\").InputSignal<false | NeuHapticFeedback>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"labelPosition","alias":"labelPosition","required":false,"type":"import(\"@angular/core\").InputSignal<\"left\" | \"right\">"},{"name":"size","alias":"size","required":false,"type":"import(\"@angular/core\").InputSignal<NeuSize>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"checked","alias":"checked","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"checked","alias":"checkedChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuTabPanelComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-tab-panel","inputs":[{"name":"id","alias":"id","required":true,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[],"members":[]},{"name":"NeuTabsComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-tabs","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tabs","alias":"tabs","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignal<boolean>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"}],"members":[]},{"name":"NeuTextareaComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-textarea","inputs":[{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"maxLength","alias":"maxLength","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<number | undefined, number | undefined>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuThemeComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-theme","inputs":[{"name":"scheme","alias":"scheme","required":false,"type":"import(\"@angular/core\").InputSignal<NeuColorScheme>"},{"name":"tokens","alias":"tokens","required":false,"type":"import(\"@angular/core\").InputSignal<Partial<NeuTokens>>"}],"outputs":[],"members":["readonly resolvedTokens: import(\"@angular/core\").Signal<Readonly<NeuTokens>>;"]},{"name":"NeuTimelineComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-timeline","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"completedLabel","alias":"completedLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"pendingLabel","alias":"pendingLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly (NeuOption & {\n readonly date?: string;\n readonly done?: boolean;\n})[]>"}],"outputs":[],"members":[]},{"name":"NeuToastComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-toast","inputs":[{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"message","alias":"message","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"duration","alias":"duration","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"actionLabel","alias":"actionLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"action","alias":"action","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"dismissed","alias":"dismissed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuToggleButtonGroupComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-toggle-button-group","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"multiple","alias":"multiple","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuTokens","kind":"InterfaceDeclaration","declaration":"export interface NeuTokens {\n accent: string;\n onAccent: string;\n surface: string;\n canvas: string;\n text: string;\n muted: string;\n border: string;\n tonal: string;\n danger: string;\n success: string;\n warning: string;\n warningText: string;\n onWarning: string;\n info: string;\n accentText?: string;\n dangerText?: string;\n successText?: string;\n infoText?: string;\n radius: number;\n spacing: number;\n fontSize: number;\n duration: number;\n surfaceBorder?: string;\n divider?: string;\n surfaceSecondary?: string;\n mediaCanvas?: string;\n mediaText?: string;\n mediaBarStyle?: \"light\" | \"dark\";\n}"},{"name":"NeuTone","kind":"TypeAliasDeclaration","declaration":"export type NeuTone = 'neutral' | 'brand' | 'accent' | 'success' | 'info' | 'warning' | 'danger';"},{"name":"NeuToolbarAction","kind":"InterfaceDeclaration","declaration":"export interface NeuToolbarAction extends NeuOption {\n readonly svg?: string;\n}"},{"name":"NeuToolbarComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-toolbar","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"actions","alias":"actions","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuToolbarAction[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"activated","alias":"activated","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]},{"name":"NeuTreeComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-tree","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nodes","alias":"nodes","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuTreeNode[]>"},{"name":"expanded","alias":"expanded","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"leafOnly","alias":"leafOnly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"expandLabel","alias":"expandLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"expanded","alias":"expandedChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"selected","alias":"selected","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuTreeNode","kind":"InterfaceDeclaration","declaration":"export interface NeuTreeNode extends NeuOption {\n readonly children?: readonly NeuTreeNode[];\n}"},{"name":"NeuTreeSelectComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-tree-select","inputs":[{"name":"nodes","alias":"nodes","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuTreeNode[]>"},{"name":"leafOnly","alias":"leafOnly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"expandLabel","alias":"expandLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuUpload","kind":"TypeAliasDeclaration","declaration":"export type NeuUpload = (file: NeuFile, progress: (percent: number) => void, signal: AbortSignal) => Promise<void>;"},{"name":"NeuUploaderComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-uploader","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"files","alias":"files","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly NeuUploadItem[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"types","alias":"types","required":false,"type":"import(\"@angular/core\").InputSignal<readonly string[]>"},{"name":"multiple","alias":"multiple","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"maxFiles","alias":"maxFiles","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"maxBytes","alias":"maxBytes","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"chooseLabel","alias":"chooseLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"uploadLabel","alias":"uploadLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"removeLabel","alias":"removeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"stateLabels","alias":"stateLabels","required":false,"type":"import(\"@angular/core\").InputSignal<Readonly<Record<\"error\" | \"selected\" | \"uploading\" | \"complete\", string>>>"},{"name":"upload","alias":"upload","required":false,"type":"import(\"@angular/core\").InputSignal<NeuUpload | undefined>"}],"outputs":[{"name":"files","alias":"filesChange","type":"import(\"@angular/core\").ModelSignal<readonly NeuUploadItem[]>"},{"name":"selected","alias":"selected","type":"import(\"@angular/core\").OutputEmitterRef<readonly NeuFile[]>"},{"name":"completed","alias":"completed","type":"import(\"@angular/core\").OutputEmitterRef<NeuFile>"},{"name":"rejected","alias":"rejected","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]},{"name":"NeuUploadItem","kind":"InterfaceDeclaration","declaration":"export interface NeuUploadItem {\n readonly id: string;\n readonly file: NeuFile;\n readonly state: \"selected\" | \"uploading\" | \"complete\" | \"error\";\n readonly progress: number;\n readonly error?: string;\n}"},{"name":"NeuVariant","kind":"TypeAliasDeclaration","declaration":"export type NeuVariant = 'solid' | 'tonal' | 'outline' | 'text';"},{"name":"NeuVirtualListComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-virtual-list","inputs":[{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"estimatedItemHeight","alias":"estimatedItemHeight","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"height","alias":"height","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"selected","alias":"selected","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"endReached","alias":"endReached","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":["scrollToIndex(index: number): void;","scrollToTop(): void;"]},{"name":"NeuVirtualListItemContext","kind":"InterfaceDeclaration","declaration":"export interface NeuVirtualListItemContext {\n readonly $implicit: NeuOption;\n readonly index: number;\n readonly disabled: boolean;\n}"},{"name":"NeuVirtualListItemDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuVirtualListItem]","inputs":[],"outputs":[],"members":[]}]},"@neural-ui/native/accordion":{"types":"./dist/accordion/index.d.ts","sha256":"6d40566b1f55b7cc26c95e7bfb9f00bae1eea4efdf7dfa15a0374c4466181027","symbols":[{"name":"NeuAccordionComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-accordion","inputs":[{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"expanded","alias":"expanded","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"multiple","alias":"multiple","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"expanded","alias":"expandedChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"}],"members":[]}]},"@neural-ui/native/alert":{"types":"./dist/alert/index.d.ts","sha256":"0d96b9612039eb646f5ef32d5bf691c9fbb61ef4c6d295f33c86b4c7e1dcd40b","symbols":[{"name":"NeuAlertComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-alert","inputs":[{"name":"title","alias":"title","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"},{"name":"variant","alias":"variant","required":false,"type":"import(\"@angular/core\").InputSignal<NeuAlertVariant>"},{"name":"showIcon","alias":"showIcon","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"svg","alias":"svg","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"message","alias":"message","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"visible","alias":"visible","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"closable","alias":"closable","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"visible","alias":"visibleChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"closed","alias":"closed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuAlertVariant","kind":"TypeAliasDeclaration","declaration":"export type NeuAlertVariant = 'soft' | 'outline';"}]},"@neural-ui/native/autocomplete":{"types":"./dist/autocomplete/index.d.ts","sha256":"68c26f2a6e9b79f2f060698da02a51b8c3ec9c75187bf025e9d54eaaae6b7813","symbols":[{"name":"NeuAutocompleteComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-autocomplete","inputs":[{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"minLength","alias":"minLength","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/avatar":{"types":"./dist/avatar/index.d.ts","sha256":"95dfeda449ed2fb1210356c6bb8da140e5a5a94540485f87a4b4d8e1cb2e932e","symbols":[{"name":"NeuAvatarComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-avatar","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"uri","alias":"uri","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"},{"name":"size","alias":"size","required":false,"type":"import(\"@angular/core\").InputSignal<NeuSize>"}],"outputs":[],"members":[]}]},"@neural-ui/native/avatar-group":{"types":"./dist/avatar-group/index.d.ts","sha256":"c41b5cc6fa6928d374e6633851cabc379950e9e643cc9dc48488d911f109754a","symbols":[{"name":"NeuAvatarGroupComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-avatar-group","inputs":[{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly (NeuOption & {\n readonly uri?: string;\n readonly tone?: NeuTone;\n})[]>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"moreLabel","alias":"moreLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"},{"name":"size","alias":"size","required":false,"type":"import(\"@angular/core\").InputSignal<NeuSize>"}],"outputs":[],"members":[]}]},"@neural-ui/native/badge":{"types":"./dist/badge/index.d.ts","sha256":"a0ec29f932461a78f66408d256f876f612a378fc2fe175aa227e4d603d3ad3b5","symbols":[{"name":"NeuBadgeComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-badge","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[],"members":[]}]},"@neural-ui/native/bottom-sheet":{"types":"./dist/bottom-sheet/index.d.ts","sha256":"9769afb627e2817bf6ce8fd60dacc78d819f10c6f4680a476bb14d356627a592","symbols":[{"name":"NeuBottomSheetComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-bottom-sheet","inputs":[{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"title","alias":"title","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"dismissible","alias":"dismissible","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"height","alias":"height","required":false,"type":"import(\"@angular/core\").InputSignal<NeuBottomSheetHeight>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"closed","alias":"closed","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"opened","alias":"opened","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"dismissed","alias":"dismissed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":["close(): void;"]},{"name":"NeuBottomSheetHeight","kind":"TypeAliasDeclaration","declaration":"export type NeuBottomSheetHeight = 'auto' | 'sm' | 'md' | 'lg' | 'full';"}]},"@neural-ui/native/button":{"types":"./dist/button/index.d.ts","sha256":"86c073df766369e08e0cf8f3ced994229259d2fd212f4e0d0442f4abcc1440fe","symbols":[{"name":"NeuButtonComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-button","inputs":[{"name":"haptic","alias":"haptic","required":false,"type":"import(\"@angular/core\").InputSignal<false | NeuHapticFeedback>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"accessibilityLabel","alias":"accessibilityLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"variant","alias":"variant","required":false,"type":"import(\"@angular/core\").InputSignal<NeuVariant>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"},{"name":"size","alias":"size","required":false,"type":"import(\"@angular/core\").InputSignal<NeuSize>"},{"name":"fullWidth","alias":"fullWidth","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"loading","alias":"loading","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"pressed","alias":"pressed","type":"import(\"@angular/core\").OutputEmitterRef<import(\"@ng-native/components\").TouchEvent>"}],"members":[]}]},"@neural-ui/native/button-group":{"types":"./dist/button-group/index.d.ts","sha256":"c96273281aa7fd7fa526c9591d8cf54ac4bf12e4f81174acaf2e5cee250a2c57","symbols":[{"name":"NeuButtonGroupComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-button-group","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[{"name":"activated","alias":"activated","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]}]},"@neural-ui/native/calendar":{"types":"./dist/calendar/index.d.ts","sha256":"393a45c2b6f69615ee5ec034f1b3989f628be005b93934ac9ac428d89d8dcccf","symbols":[{"name":"NeuCalendarComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-calendar","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"month","alias":"month","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"locale","alias":"locale","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"firstDay","alias":"firstDay","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"min","alias":"min","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"previousLabel","alias":"previousLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextLabel","alias":"nextLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousYearLabel","alias":"previousYearLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextYearLabel","alias":"nextYearLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousYearsLabel","alias":"previousYearsLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextYearsLabel","alias":"nextYearsLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"events","alias":"events","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuCalendarEvent[]>"},{"name":"showAgenda","alias":"showAgenda","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"editable","alias":"editable","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"agendaLabel","alias":"agendaLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyAgendaLabel","alias":"emptyAgendaLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"hasEventsLabel","alias":"hasEventsLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"addEventLabel","alias":"addEventLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"editEventLabel","alias":"editEventLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"deleteEventLabel","alias":"deleteEventLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"month","alias":"monthChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"eventCreateRequested","alias":"eventCreateRequested","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"eventEditRequested","alias":"eventEditRequested","type":"import(\"@angular/core\").OutputEmitterRef<NeuCalendarEvent>"},{"name":"eventDeleteRequested","alias":"eventDeleteRequested","type":"import(\"@angular/core\").OutputEmitterRef<NeuCalendarEvent>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuCalendarEvent","kind":"InterfaceDeclaration","declaration":"export interface NeuCalendarEvent extends NeuOption {\n readonly date: string;\n}"}]},"@neural-ui/native/card":{"types":"./dist/card/index.d.ts","sha256":"0c145d4c22fe342ebe92399aea8a440e6e7ee0ce16ee54d548ec5bfce475a1ee","symbols":[{"name":"NeuCardComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-card","inputs":[{"name":"title","alias":"title","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"description","alias":"description","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"variant","alias":"variant","required":false,"type":"import(\"@angular/core\").InputSignal<\"tonal\" | \"surface\" | \"outlined\">"}],"outputs":[],"members":[]},{"name":"NeuCardFooterDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"[neuCardFooter]","inputs":[],"outputs":[],"members":[]},{"name":"NeuCardHeaderDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"[neuCardHeader]","inputs":[],"outputs":[],"members":[]}]},"@neural-ui/native/carousel":{"types":"./dist/carousel/index.d.ts","sha256":"4931ab1dc6b3acdf222fe094d65b14b73d9f81226fac51692124e32b8bba1427","symbols":[{"name":"NeuCarouselComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-carousel","inputs":[{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuImageItem[]>"},{"name":"index","alias":"index","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"preview","alias":"preview","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"viewerLabels","alias":"viewerLabels","required":false,"type":"import(\"@angular/core\").InputSignal<NeuImageViewerLabels>"},{"name":"loop","alias":"loop","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"autoplay","alias":"autoplay","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"autoplayInterval","alias":"autoplayInterval","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"pauseLabel","alias":"pauseLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"playLabel","alias":"playLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousLabel","alias":"previousLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextLabel","alias":"nextLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"index","alias":"indexChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"}],"members":[]}]},"@neural-ui/native/cascade-select":{"types":"./dist/cascade-select/index.d.ts","sha256":"56dd0a5a45588d436e415b0264d6dd0f8b26bbd09f7bd03d3b97537676e38459","symbols":[{"name":"NeuCascadeSelectComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-cascade-select","inputs":[{"name":"nodes","alias":"nodes","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuTreeNode[]>"},{"name":"backLabel","alias":"backLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"rootLabel","alias":"rootLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/checkbox":{"types":"./dist/checkbox/index.d.ts","sha256":"453d7d5858643cc8718ac8e7260cb691a1e6b97a24ef6011945a298afdf88a69","symbols":[{"name":"NeuCheckboxComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-checkbox","inputs":[{"name":"haptic","alias":"haptic","required":false,"type":"import(\"@angular/core\").InputSignal<false | NeuHapticFeedback>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"labelPosition","alias":"labelPosition","required":false,"type":"import(\"@angular/core\").InputSignal<\"left\" | \"right\">"},{"name":"checked","alias":"checked","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"checked","alias":"checkedChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/chip":{"types":"./dist/chip/index.d.ts","sha256":"ca37662c4250ab32a42769254dfc220dac65f075b0418294f915ab761d5f4008","symbols":[{"name":"NeuChipComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-chip","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"},{"name":"selected","alias":"selected","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"selectable","alias":"selectable","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"removable","alias":"removable","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"removeLabel","alias":"removeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"selected","alias":"selectedChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"removed","alias":"removed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/confirm-dialog":{"types":"./dist/confirm-dialog/index.d.ts","sha256":"4e1029b3d350bf46371f00d3a65fa6144664b71dc55a6daa38894d75265c4f86","symbols":[{"name":"NeuConfirmDialogComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-confirm-dialog","inputs":[{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"title","alias":"title","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"message","alias":"message","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"confirmLabel","alias":"confirmLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"cancelLabel","alias":"cancelLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"intent","alias":"intent","required":false,"type":"import(\"@angular/core\").InputSignal<\"danger\" | \"default\">"},{"name":"busy","alias":"busy","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"showCloseButton","alias":"showCloseButton","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeOnConfirm","alias":"closeOnConfirm","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"confirmed","alias":"confirmed","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"cancelled","alias":"cancelled","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"opened","alias":"opened","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"dismissed","alias":"dismissed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/context-menu":{"types":"./dist/context-menu/index.d.ts","sha256":"77e1555f2b4cee2d3164f5d403383b9bb5aadfda25a714a8f67bf31ca68729e0","symbols":[{"name":"NeuContextMenuComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-context-menu","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"actionsLabel","alias":"actionsLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"activated","alias":"activated","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"pressed","alias":"pressed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/data-view":{"types":"./dist/data-view/index.d.ts","sha256":"89bbff4f1680816b9b69085f3744394e3c1efe26b3ef22e637a9a0c5e47889d4","symbols":[{"name":"NeuDataViewComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-data-view","inputs":[{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"itemTemplate","alias":"itemTemplate","required":false,"type":"import(\"@angular/core\").InputSignal<TemplateRef<NeuDataViewItemContext> | undefined>"},{"name":"query","alias":"query","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"descending","alias":"descending","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"loading","alias":"loading","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"searchLabel","alias":"searchLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"sortLabel","alias":"sortLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"refreshLabel","alias":"refreshLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"query","alias":"queryChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"descending","alias":"descendingChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"selected","alias":"selected","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"refresh","alias":"refresh","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuDataViewItemContext","kind":"InterfaceDeclaration","declaration":"export interface NeuDataViewItemContext {\n readonly $implicit: NeuOption;\n readonly index: number;\n}"},{"name":"NeuDataViewItemDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuDataViewItem]","inputs":[],"outputs":[],"members":[]}]},"@neural-ui/native/date-input":{"types":"./dist/date-input/index.d.ts","sha256":"f63a0b5969c1d7b9289d6be50cd3eee025fe4e7127a3de44ff39a5c4bbd9bcea","symbols":[{"name":"NeuDateInputComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-date-input","inputs":[{"name":"min","alias":"min","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"locale","alias":"locale","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousLabel","alias":"previousLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextLabel","alias":"nextLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousYearLabel","alias":"previousYearLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextYearLabel","alias":"nextYearLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousYearsLabel","alias":"previousYearsLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextYearsLabel","alias":"nextYearsLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/divider":{"types":"./dist/divider/index.d.ts","sha256":"b7f31d5aa559bf544f5ac879dd8a8272ac073f6231631dadb965410119340017","symbols":[{"name":"NeuDividerComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-divider","inputs":[{"name":"orientation","alias":"orientation","required":false,"type":"import(\"@angular/core\").InputSignal<\"horizontal\" | \"vertical\">"}],"outputs":[],"members":[]}]},"@neural-ui/native/empty-state":{"types":"./dist/empty-state/index.d.ts","sha256":"966ff23d04587f76cb85a013f40bb8c94249941ef576234bfe039129bd1ea00e","symbols":[{"name":"NeuEmptyStateComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-empty-state","inputs":[{"name":"title","alias":"title","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"description","alias":"description","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"actionLabel","alias":"actionLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"action","alias":"action","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/filter-bar":{"types":"./dist/filter-bar/index.d.ts","sha256":"d48a15ef7336d22ea13446f4334f2689b627731575a576a8ba4f9590f2c8706f","symbols":[{"name":"NeuFilterBarComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-filter-bar","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"query","alias":"query","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"searchLabel","alias":"searchLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"clearLabel","alias":"clearLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"query","alias":"queryChange","type":"import(\"@angular/core\").ModelSignal<string>"}],"members":[]}]},"@neural-ui/native/form-field":{"types":"./dist/form-field/index.d.ts","sha256":"c4d880fdf381d4c203fbcb01afab0fbea23375d3d76afa29a5bd955095b93c5a","symbols":[{"name":"NeuFormFieldComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-form-field","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[],"members":[]}]},"@neural-ui/native/foundation":{"types":"./dist/foundation/index.d.ts","sha256":"75500ce10ca61cd1e1ff88f59f325a981fc7d156deeff2ca40346699d60c7609","symbols":[{"name":"NEU_CHECK_ICON","kind":"VariableDeclaration","declaration":"NEU_CHECK_ICON = \"<svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"m5 12 4 4 10-10\\\"/></svg>\""},{"name":"NEU_DARK_TOKENS","kind":"VariableDeclaration","declaration":"NEU_DARK_TOKENS: Readonly<NeuTokens>"},{"name":"NEU_HAPTICS_DRIVER","kind":"VariableDeclaration","declaration":"NEU_HAPTICS_DRIVER: InjectionToken<NeuHapticsDriver | null>"},{"name":"NEU_HAPTICS_OPTIONS","kind":"VariableDeclaration","declaration":"NEU_HAPTICS_OPTIONS: InjectionToken<NeuHapticsOptions>"},{"name":"NEU_LIGHT_TOKENS","kind":"VariableDeclaration","declaration":"NEU_LIGHT_TOKENS: Readonly<NeuTokens>"},{"name":"NEU_PLUS_ICON","kind":"VariableDeclaration","declaration":"NEU_PLUS_ICON = \"<svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\"><path d=\\\"M12 5v14M5 12h14\\\"/></svg>\""},{"name":"NEU_THEME","kind":"VariableDeclaration","declaration":"NEU_THEME: InjectionToken<Signal<Readonly<NeuTokens>>>"},{"name":"NeuColorScheme","kind":"TypeAliasDeclaration","declaration":"export type NeuColorScheme = 'system' | 'light' | 'dark';"},{"name":"NeuHapticFeedback","kind":"TypeAliasDeclaration","declaration":"export type NeuHapticFeedback = 'press' | 'selection' | NeuHapticImpact | 'success' | 'warning' | 'error';"},{"name":"NeuHapticImpact","kind":"TypeAliasDeclaration","declaration":"export type NeuHapticImpact = 'light' | 'medium' | 'heavy' | 'soft' | 'rigid';"},{"name":"NeuHaptics","kind":"ClassDeclaration","members":["readonly enabled: import(\"@angular/core\").WritableSignal<boolean>;","get available(): boolean;","play(feedback?: NeuHapticFeedback | false): boolean;"]},{"name":"NeuHapticsDriver","kind":"InterfaceDeclaration","declaration":"export interface NeuHapticsDriver {\n available(): boolean;\n play(feedback: Exclude<NeuHapticFeedback, \"press\">): void | Promise<void>;\n}"},{"name":"NeuHapticsOptions","kind":"InterfaceDeclaration","declaration":"export interface NeuHapticsOptions {\n enabled?: boolean;\n minimumIntervalMs?: number;\n pressStyle?: NeuHapticImpact;\n}"},{"name":"NeuSize","kind":"TypeAliasDeclaration","declaration":"export type NeuSize = 'sm' | 'md' | 'lg';"},{"name":"NeuTokens","kind":"InterfaceDeclaration","declaration":"export interface NeuTokens {\n accent: string;\n onAccent: string;\n surface: string;\n canvas: string;\n text: string;\n muted: string;\n border: string;\n tonal: string;\n danger: string;\n success: string;\n warning: string;\n warningText: string;\n onWarning: string;\n info: string;\n accentText?: string;\n dangerText?: string;\n successText?: string;\n infoText?: string;\n radius: number;\n spacing: number;\n fontSize: number;\n duration: number;\n surfaceBorder?: string;\n divider?: string;\n surfaceSecondary?: string;\n mediaCanvas?: string;\n mediaText?: string;\n mediaBarStyle?: \"light\" | \"dark\";\n}"},{"name":"NeuTone","kind":"TypeAliasDeclaration","declaration":"export type NeuTone = 'neutral' | 'brand' | 'accent' | 'success' | 'info' | 'warning' | 'danger';"},{"name":"NeuVariant","kind":"TypeAliasDeclaration","declaration":"export type NeuVariant = 'solid' | 'tonal' | 'outline' | 'text';"}]},"@neural-ui/native/gallery":{"types":"./dist/gallery/index.d.ts","sha256":"17510c5d94a2a6d1e8a9ad3216832318e51cc6aec035c566e9621ec2c1270c03","symbols":[{"name":"NeuGalleryCaptionDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuGalleryCaption]","inputs":[],"outputs":[],"members":[]},{"name":"NeuGalleryComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-gallery","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"viewerLabels","alias":"viewerLabels","required":false,"type":"import(\"@angular/core\").InputSignal<NeuGalleryViewerLabels>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuImageItem[]>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"layout","alias":"layout","required":false,"type":"import(\"@angular/core\").InputSignal<NeuGalleryLayout>"},{"name":"columns","alias":"columns","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"gap","alias":"gap","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"aspectRatio","alias":"aspectRatio","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"borderRadius","alias":"borderRadius","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"showCaptions","alias":"showCaptions","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"index","alias":"index","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"}],"outputs":[{"name":"index","alias":"indexChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"}],"members":[]},{"name":"NeuGalleryItemContext","kind":"InterfaceDeclaration","declaration":"export interface NeuGalleryItemContext {\n readonly $implicit: NeuImageItem;\n readonly index: number;\n readonly aspectRatio: number;\n readonly borderRadius: number;\n}"},{"name":"NeuGalleryItemDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuGalleryItem]","inputs":[],"outputs":[],"members":[]},{"name":"NeuGalleryLayout","kind":"TypeAliasDeclaration","declaration":"export type NeuGalleryLayout = 'grid' | 'mosaic';"},{"name":"NeuGalleryViewerLabels","kind":"InterfaceDeclaration","declaration":"export interface NeuGalleryViewerLabels {\n readonly label?: string;\n readonly closeLabel?: string;\n readonly previousLabel?: string;\n readonly nextLabel?: string;\n readonly zoomLabel?: string;\n readonly zoomOutLabel?: string;\n readonly errorLabel?: string;\n}"}]},"@neural-ui/native/haptics":{"types":"./dist/haptics/index.d.ts","sha256":"401fe22b083895b314c1828337b7d254087d5624fd62fefe39a31be0fd09201f","symbols":[{"name":"NEU_HAPTICS_DRIVER","kind":"VariableDeclaration","declaration":"NEU_HAPTICS_DRIVER: InjectionToken<NeuHapticsDriver | null>"},{"name":"NEU_HAPTICS_OPTIONS","kind":"VariableDeclaration","declaration":"NEU_HAPTICS_OPTIONS: InjectionToken<NeuHapticsOptions>"},{"name":"NEU_NATIVE_HAPTICS","kind":"VariableDeclaration","declaration":"NEU_NATIVE_HAPTICS: InjectionToken<NeuNativeHaptics | null>"},{"name":"NeuHapticFeedback","kind":"TypeAliasDeclaration","declaration":"export type NeuHapticFeedback = 'press' | 'selection' | NeuHapticImpact | 'success' | 'warning' | 'error';"},{"name":"NeuHapticImpact","kind":"TypeAliasDeclaration","declaration":"export type NeuHapticImpact = 'light' | 'medium' | 'heavy' | 'soft' | 'rigid';"},{"name":"NeuHaptics","kind":"ClassDeclaration","members":["readonly enabled: import(\"@angular/core\").WritableSignal<boolean>;","get available(): boolean;","play(feedback?: NeuHapticFeedback | false): boolean;"]},{"name":"NeuHapticsDriver","kind":"InterfaceDeclaration","declaration":"export interface NeuHapticsDriver {\n available(): boolean;\n play(feedback: Exclude<NeuHapticFeedback, \"press\">): void | Promise<void>;\n}"},{"name":"NeuHapticsOptions","kind":"InterfaceDeclaration","declaration":"export interface NeuHapticsOptions {\n enabled?: boolean;\n minimumIntervalMs?: number;\n pressStyle?: NeuHapticImpact;\n}"},{"name":"NeuNativeHaptics","kind":"InterfaceDeclaration","declaration":"export interface NeuNativeHaptics {\n impactAsync(style: NeuHapticImpact): Promise<void>;\n notificationAsync(type: \"success\" | \"warning\" | \"error\"): Promise<void>;\n selectionAsync(): Promise<void>;\n}"},{"name":"provideNeuHaptics","kind":"FunctionDeclaration","declaration":"export declare function provideNeuHaptics(options?: NeuHapticsOptions): EnvironmentProviders;"}]},"@neural-ui/native/icon-button":{"types":"./dist/icon-button/index.d.ts","sha256":"00b6064424b83f52fb3e0713c3a1609c0be6ab205e60254467413abad57ec0af","symbols":[{"name":"NeuIconButtonComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-icon-button","inputs":[{"name":"haptic","alias":"haptic","required":false,"type":"import(\"@angular/core\").InputSignal<false | NeuHapticFeedback>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"svg","alias":"svg","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"variant","alias":"variant","required":false,"type":"import(\"@angular/core\").InputSignal<NeuVariant>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"loading","alias":"loading","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"pressed","alias":"pressed","type":"import(\"@angular/core\").OutputEmitterRef<import(\"@ng-native/components\").TouchEvent>"}],"members":[]}]},"@neural-ui/native/image-viewer":{"types":"./dist/image-viewer/index.d.ts","sha256":"1208faefec9c30fe41bfc9d9063d53fdb28399513a4e9e7abb6a7065a3951540","symbols":[{"name":"NeuImageViewerComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-image-viewer","inputs":[{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuImageItem[]>"},{"name":"index","alias":"index","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"previousLabel","alias":"previousLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextLabel","alias":"nextLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"zoomLabel","alias":"zoomLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"zoomOutLabel","alias":"zoomOutLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"errorLabel","alias":"errorLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"index","alias":"indexChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"closed","alias":"closed","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"opened","alias":"opened","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"dismissed","alias":"dismissed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":["close(): void;"]},{"name":"NeuImageViewerLabels","kind":"InterfaceDeclaration","declaration":"export interface NeuImageViewerLabels {\n readonly label?: string;\n readonly closeLabel?: string;\n readonly previousLabel?: string;\n readonly nextLabel?: string;\n readonly zoomLabel?: string;\n readonly zoomOutLabel?: string;\n readonly errorLabel?: string;\n}"}]},"@neural-ui/native/inline-editor":{"types":"./dist/inline-editor/index.d.ts","sha256":"69b936053d472e06c807cd9ff5e60c398c146174212a409db3e7d6eb124832c3","symbols":[{"name":"NeuInlineEditorComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-inline-editor","inputs":[{"name":"editing","alias":"editing","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"saveLabel","alias":"saveLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"cancelLabel","alias":"cancelLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"editing","alias":"editingChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"saved","alias":"saved","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"cancelled","alias":"cancelled","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/input":{"types":"./dist/input/index.d.ts","sha256":"bbc6d97552ff3aacf52d5093a43572f742147268aa241a2fc20f318b25c61924","symbols":[{"name":"NeuInputComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-input","inputs":[{"name":"keyboardType","alias":"keyboardType","required":false,"type":"import(\"@angular/core\").InputSignal<\"default\" | \"email-address\" | \"numeric\" | \"phone-pad\">"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"maxLength","alias":"maxLength","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<number | undefined, number | undefined>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/input-mask":{"types":"./dist/input-mask/index.d.ts","sha256":"c93bd7115d7ee102f64ca5f4caf38262524370f46b12acdab6e0be349c013f4e","symbols":[{"name":"formatMask","kind":"FunctionDeclaration","declaration":"export declare function formatMask(value: string, mask: string): {\n raw: string;\n display: string;\n};"},{"name":"NeuInputMaskComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-input-mask","inputs":[{"name":"mask","alias":"mask","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"keyboardType","alias":"keyboardType","required":false,"type":"import(\"@angular/core\").InputSignal<\"default\" | \"numeric\" | \"phone-pad\">"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/input-otp":{"types":"./dist/input-otp/index.d.ts","sha256":"3a4b8b2265dbeea20d7aeefdea29b25629e074aad2cc4ef71ab01e9f4909b8cd","symbols":[{"name":"NeuInputOtpComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-input-otp","inputs":[{"name":"length","alias":"length","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"completed","alias":"completed","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/input-tags":{"types":"./dist/input-tags/index.d.ts","sha256":"dafce233b09859287454c54b3dd6707179e75d68321df6df0dae52e3a2750fa3","symbols":[{"name":"NeuInputTagsComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-input-tags","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"addLabel","alias":"addLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"removeLabel","alias":"removeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/listbox":{"types":"./dist/listbox/index.d.ts","sha256":"3a1162b2c663b9abfa90c173cf64ba6ca0afafcbf67f5c605bd624b543a92a49","symbols":[{"name":"NeuListboxComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-listbox","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"appearance","alias":"appearance","required":false,"type":"import(\"@angular/core\").InputSignal<\"cards\" | \"plain\">"},{"name":"itemTemplate","alias":"itemTemplate","required":false,"type":"import(\"@angular/core\").InputSignal<TemplateRef<NeuListboxItemContext> | undefined>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"multiple","alias":"multiple","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"selected","alias":"selected","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuListboxItemContext","kind":"InterfaceDeclaration","declaration":"export interface NeuListboxItemContext {\n readonly $implicit: NeuOption;\n readonly index: number;\n readonly selected: boolean;\n readonly disabled: boolean;\n}"},{"name":"NeuListboxItemDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuListboxItem]","inputs":[],"outputs":[],"members":[]}]},"@neural-ui/native/menu":{"types":"./dist/menu/index.d.ts","sha256":"558b078748fb6601ce8937c2d55d61c0587b95865f94749a56a5dce755810039","symbols":[{"name":"NeuMenuComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-menu","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"showTrigger","alias":"showTrigger","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"activated","alias":"activated","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]}]},"@neural-ui/native/meter-group":{"types":"./dist/meter-group/index.d.ts","sha256":"0bed2508ba0f330e6386242dcd2e26e922d294a6839ce17ca6acfeb976059818","symbols":[{"name":"NeuMeterGroupComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-meter-group","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly (NeuOption & {\n readonly value: number;\n})[]>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number | undefined>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[],"members":[]}]},"@neural-ui/native/modal":{"types":"./dist/modal/index.d.ts","sha256":"82b2cda7dca107a8c0bd3054b4471d2c91a5bd67f5e3cbd053d4a5330b2bc3c5","symbols":[{"name":"NeuModalComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-modal","inputs":[{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"title","alias":"title","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"dismissible","alias":"dismissible","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"showCloseButton","alias":"showCloseButton","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"closed","alias":"closed","type":"import(\"@angular/core\").OutputEmitterRef<\"native\" | \"action\" | \"backdrop\">"},{"name":"opened","alias":"opened","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"dismissed","alias":"dismissed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":["close(reason?: 'native' | 'action' | 'backdrop'): void;"]},{"name":"NeuModalFooterDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuModalFooter]","inputs":[],"outputs":[],"members":[]},{"name":"NeuModalHeaderDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuModalHeader]","inputs":[],"outputs":[],"members":[]}]},"@neural-ui/native/nav":{"types":"./dist/nav/index.d.ts","sha256":"7212e849aa6f6bfaead99ae6582c798af1d356057b8ba40270dc2998d5ffb897","symbols":[{"name":"NeuNavComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-nav","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuNavItem[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"navigate","alias":"navigate","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]},{"name":"NeuNavItem","kind":"InterfaceDeclaration","declaration":"export interface NeuNavItem extends NeuOption {\n readonly svg?: string;\n}"}]},"@neural-ui/native/notification-center":{"types":"./dist/notification-center/index.d.ts","sha256":"c38ca548051f12c6a38dd4b92b87c36a747bd2bf5ffa8b53fdb74ac2abe9904f","symbols":[{"name":"NeuNotificationCenterComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-notification-center","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"readIds","alias":"readIds","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"markAllLabel","alias":"markAllLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"unreadLabel","alias":"unreadLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"readIds","alias":"readIdsChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"activated","alias":"activated","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]}]},"@neural-ui/native/number-input":{"types":"./dist/number-input/index.d.ts","sha256":"53de296ce1ae25475316c124a3e20916db6cb0ae1b1df5c6c39895b5f6550c79","symbols":[{"name":"NeuNumberInputComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-number-input","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"min","alias":"min","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"step","alias":"step","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"decreaseLabel","alias":"decreaseLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"increaseLabel","alias":"increaseLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/panel":{"types":"./dist/panel/index.d.ts","sha256":"14153a8e4973de84ddb2417af6834dd6dcbea851379fc840c5f84e91f1c02fcf","symbols":[{"name":"NeuPanelComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-panel","inputs":[{"name":"title","alias":"title","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"collapsed","alias":"collapsed","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"collapsible","alias":"collapsible","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"collapsed","alias":"collapsedChange","type":"import(\"@angular/core\").ModelSignal<boolean>"}],"members":[]},{"name":"NeuPanelFooterDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"[neuPanelFooter]","inputs":[],"outputs":[],"members":[]},{"name":"NeuPanelHeaderDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"[neuPanelHeader]","inputs":[],"outputs":[],"members":[]}]},"@neural-ui/native/password":{"types":"./dist/password/index.d.ts","sha256":"157e2768d0fee7e3dca4a4ce17d15952eccbf42b3b541dc182b97e5bad45b3ae","symbols":[{"name":"NeuPasswordComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-password","inputs":[{"name":"revealed","alias":"revealed","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"showLabel","alias":"showLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"hideLabel","alias":"hideLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"revealed","alias":"revealedChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/pick-list":{"types":"./dist/pick-list/index.d.ts","sha256":"0752d5559e6403f846b8634926ef23be9d672df4ca77fbe2aa4b6955136aa8e6","symbols":[{"name":"NeuPickListComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-pick-list","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"selectedLabel","alias":"selectedLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"availableLabel","alias":"availableLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"upLabel","alias":"upLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"downLabel","alias":"downLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"removeLabel","alias":"removeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"addLabel","alias":"addLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptySelectedLabel","alias":"emptySelectedLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyAvailableLabel","alias":"emptyAvailableLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/popover":{"types":"./dist/popover/index.d.ts","sha256":"aba539bb90e74ff18392ac2852d845121804b03eac6f2bd8a7668ee723e107d2","symbols":[{"name":"NeuPopoverComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-popover","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"title","alias":"title","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"dismissLabel","alias":"dismissLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"}],"members":[]}]},"@neural-ui/native/progress-bar":{"types":"./dist/progress-bar/index.d.ts","sha256":"fc460379bee23b746ed8b2affdd94ded7ded20b1d080e483f123172c530df23f","symbols":[{"name":"NeuProgressBarComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-progress-bar","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[],"members":[]}]},"@neural-ui/native/radio":{"types":"./dist/radio/index.d.ts","sha256":"023111b324e07f1106b8c48ca62bfc00a5b14e07225ef3584b6edd953fc9ab37","symbols":[{"name":"NeuRadioGroupComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-radio","inputs":[{"name":"haptic","alias":"haptic","required":false,"type":"import(\"@angular/core\").InputSignal<false | NeuHapticFeedback>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/rating":{"types":"./dist/rating/index.d.ts","sha256":"f95db2c1e5b2957533778f236591c7e8aa2caf29fbb90d93b308ea2bca9b1167","symbols":[{"name":"NeuRatingComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-rating","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"clearable","alias":"clearable","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"clearLabel","alias":"clearLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/select":{"types":"./dist/select/index.d.ts","sha256":"8bebc9cd1c16d4b452aa3e83a6e1477b18f35328f48cfe0a3d8dd9db186f1cf9","symbols":[{"name":"NeuSelectComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-select","inputs":[{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"multiple","alias":"multiple","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"values","alias":"values","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"searchable","alias":"searchable","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"searchLabel","alias":"searchLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"searchPlaceholder","alias":"searchPlaceholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"values","alias":"valuesChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]},{"name":"NeuSelectItemContext","kind":"TypeAliasDeclaration","declaration":"export type NeuSelectItemContext = NeuListboxItemContext;"},{"name":"NeuSelectItemDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuSelectItem]","inputs":[],"outputs":[],"members":[]},{"name":"NeuSelectSelectedContext","kind":"InterfaceDeclaration","declaration":"export interface NeuSelectSelectedContext {\n readonly $implicit: readonly NeuOption[];\n readonly value: string;\n readonly values: readonly string[];\n readonly placeholder: string;\n}"},{"name":"NeuSelectSelectedDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuSelectSelected]","inputs":[],"outputs":[],"members":[]}]},"@neural-ui/native/sidebar":{"types":"./dist/sidebar/index.d.ts","sha256":"6e10e61e3270c2bd5ede8f8973792339fbd5e07fdc4ebd12a0ac51db60304130","symbols":[{"name":"NeuSidebarComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-sidebar","inputs":[{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"title","alias":"title","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"fullWidth","alias":"fullWidth","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"navigate","alias":"navigate","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"opened","alias":"opened","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"dismissed","alias":"dismissed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/skeleton":{"types":"./dist/skeleton/index.d.ts","sha256":"780843e163a1b9db406e643856f041f06b678fa64c44cc847fdc10874b3cf8c6","symbols":[{"name":"NeuSkeletonAnimation","kind":"TypeAliasDeclaration","declaration":"export type NeuSkeletonAnimation = 'pulse' | 'none';"},{"name":"NeuSkeletonComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-skeleton","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"lines","alias":"lines","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"variant","alias":"variant","required":false,"type":"import(\"@angular/core\").InputSignal<NeuSkeletonVariant>"},{"name":"width","alias":"width","required":false,"type":"import(\"@angular/core\").InputSignal<string | number | undefined>"},{"name":"height","alias":"height","required":false,"type":"import(\"@angular/core\").InputSignal<number | undefined>"},{"name":"borderRadius","alias":"borderRadius","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"gap","alias":"gap","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"lastLineWidth","alias":"lastLineWidth","required":false,"type":"import(\"@angular/core\").InputSignal<string | number>"},{"name":"animation","alias":"animation","required":false,"type":"import(\"@angular/core\").InputSignal<NeuSkeletonAnimation>"}],"outputs":[],"members":[]},{"name":"NeuSkeletonVariant","kind":"TypeAliasDeclaration","declaration":"export type NeuSkeletonVariant = 'text' | 'rect' | 'circle';"}]},"@neural-ui/native/slider":{"types":"./dist/slider/index.d.ts","sha256":"f7f68892924699ad3bf7f5b768bb79e4e1cec05235c65fd59db1e09d4643c8eb","symbols":[{"name":"NeuSliderComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-slider","inputs":[{"name":"haptic","alias":"haptic","required":false,"type":"import(\"@angular/core\").InputSignal<false | NeuHapticFeedback>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"min","alias":"min","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"max","alias":"max","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"step","alias":"step","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"showButtons","alias":"showButtons","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"increaseLabel","alias":"increaseLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"decreaseLabel","alias":"decreaseLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/speed-dial":{"types":"./dist/speed-dial/index.d.ts","sha256":"825fb916a6e93b8960ee6a5aa4707092c40887cac81623e8f339c37b45ca05e4","symbols":[{"name":"NeuSpeedDialAction","kind":"InterfaceDeclaration","declaration":"export interface NeuSpeedDialAction extends NeuOption {\n readonly svg?: string;\n}"},{"name":"NeuSpeedDialComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-speed-dial","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"actions","alias":"actions","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuSpeedDialAction[]>"},{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"activated","alias":"activated","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]}]},"@neural-ui/native/spinner":{"types":"./dist/spinner/index.d.ts","sha256":"22cb3f20b7a2499038891762db8990124409d78dde8c66e4f0533c736b114bbe","symbols":[{"name":"NeuSpinnerComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-spinner","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"size","alias":"size","required":false,"type":"import(\"@angular/core\").InputSignal<\"small\" | \"large\">"},{"name":"active","alias":"active","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"showLabel","alias":"showLabel","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[],"members":[]}]},"@neural-ui/native/stats-card":{"types":"./dist/stats-card/index.d.ts","sha256":"93f80538d09192b5b1eed844145631650ad28b4bc45db61fc6bdd2f2e29317ab","symbols":[{"name":"NeuStatsCardComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-stats-card","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":true,"type":"import(\"@angular/core\").InputSignal<string | number>"},{"name":"change","alias":"change","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"description","alias":"description","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"svg","alias":"svg","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[],"members":[]}]},"@neural-ui/native/stepper":{"types":"./dist/stepper/index.d.ts","sha256":"ededf2ea8550e1f1f113f11f210b56475aae9283e526b7e97609460db66185d7","symbols":[{"name":"NeuStepperComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-stepper","inputs":[{"name":"steps","alias":"steps","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"activeStep","alias":"activeStep","required":false,"type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"linear","alias":"linear","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"completed","alias":"completed","required":false,"type":"import(\"@angular/core\").InputSignal<readonly string[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"previousLabel","alias":"previousLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nextLabel","alias":"nextLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"finishLabel","alias":"finishLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"activeStep","alias":"activeStepChange","type":"import(\"@angular/core\").ModelSignal<number>"},{"name":"finished","alias":"finished","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":["goTo(index: number): void;"]}]},"@neural-ui/native/switch":{"types":"./dist/switch/index.d.ts","sha256":"2ac7220d88270898f14938c5480cf72519cb30c37de867bc3e26b321e76822b2","symbols":[{"name":"NeuSwitchComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-switch","inputs":[{"name":"haptic","alias":"haptic","required":false,"type":"import(\"@angular/core\").InputSignal<false | NeuHapticFeedback>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"labelPosition","alias":"labelPosition","required":false,"type":"import(\"@angular/core\").InputSignal<\"left\" | \"right\">"},{"name":"size","alias":"size","required":false,"type":"import(\"@angular/core\").InputSignal<NeuSize>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"checked","alias":"checked","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"checked","alias":"checkedChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/tabs":{"types":"./dist/tabs/index.d.ts","sha256":"99929f6d14993eab62015f75c5cd6834348f39969b84d12b34b8d1c87a2421cb","symbols":[{"name":"NEU_TABS","kind":"VariableDeclaration","declaration":"NEU_TABS: InjectionToken<{\n value: Signal<string>;\n tabs?: Signal<readonly NeuOption[]>;\n}>"},{"name":"NeuTabPanelComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-tab-panel","inputs":[{"name":"id","alias":"id","required":true,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[],"members":[]},{"name":"NeuTabsComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-tabs","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tabs","alias":"tabs","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignal<boolean>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"}],"members":[]}]},"@neural-ui/native/textarea":{"types":"./dist/textarea/index.d.ts","sha256":"8fa47f1a74dfcc12843518b057f1939899ed7adf34dda541f944a952f71e0f28","symbols":[{"name":"NeuTextareaComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-textarea","inputs":[{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"maxLength","alias":"maxLength","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<number | undefined, number | undefined>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/theme":{"types":"./dist/theme/index.d.ts","sha256":"e912c95c6bd86cb6522af7a505580f24806823fef8b9415f40578b3835c9e45b","symbols":[{"name":"NeuThemeComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-theme","inputs":[{"name":"scheme","alias":"scheme","required":false,"type":"import(\"@angular/core\").InputSignal<NeuColorScheme>"},{"name":"tokens","alias":"tokens","required":false,"type":"import(\"@angular/core\").InputSignal<Partial<NeuTokens>>"}],"outputs":[],"members":["readonly resolvedTokens: import(\"@angular/core\").Signal<Readonly<NeuTokens>>;"]}]},"@neural-ui/native/timeline":{"types":"./dist/timeline/index.d.ts","sha256":"eaa9deccfe12247c88aa486e59d4194d6c1f24b20d3ec4ec5e4ccd7e02517ada","symbols":[{"name":"NeuTimelineComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-timeline","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"completedLabel","alias":"completedLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"pendingLabel","alias":"pendingLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly (NeuOption & {\n readonly date?: string;\n readonly done?: boolean;\n})[]>"}],"outputs":[],"members":[]}]},"@neural-ui/native/toast":{"types":"./dist/toast/index.d.ts","sha256":"0b40ce99ddbd825688892f2b267a0e93f6186d38ab813744aee4598587b2a47e","symbols":[{"name":"NeuToastComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-toast","inputs":[{"name":"open","alias":"open","required":false,"type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"message","alias":"message","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"duration","alias":"duration","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"actionLabel","alias":"actionLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[{"name":"open","alias":"openChange","type":"import(\"@angular/core\").ModelSignal<boolean>"},{"name":"action","alias":"action","type":"import(\"@angular/core\").OutputEmitterRef<void>"},{"name":"dismissed","alias":"dismissed","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/toggle-button-group":{"types":"./dist/toggle-button-group/index.d.ts","sha256":"d845761cf7b67ab5e648678ebc7e24ebd67dc31927d04b46e4130256184309ad","symbols":[{"name":"NeuToggleButtonGroupComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-toggle-button-group","inputs":[{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"options","alias":"options","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"multiple","alias":"multiple","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"tone","alias":"tone","required":false,"type":"import(\"@angular/core\").InputSignal<NeuTone>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/toolbar":{"types":"./dist/toolbar/index.d.ts","sha256":"f494436e45ff1a79d231fbc06ad9cd7c32cc36526c60400a9e6ec99e5b4535d2","symbols":[{"name":"NeuToolbarAction","kind":"InterfaceDeclaration","declaration":"export interface NeuToolbarAction extends NeuOption {\n readonly svg?: string;\n}"},{"name":"NeuToolbarComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-toolbar","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"actions","alias":"actions","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuToolbarAction[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"}],"outputs":[{"name":"activated","alias":"activated","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]}]},"@neural-ui/native/tree":{"types":"./dist/tree/index.d.ts","sha256":"8786a8448d4f651a0ca65f57b59207fa251e65afe910c7eb15ab6fa35ea8294a","symbols":[{"name":"NeuTreeComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-tree","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"nodes","alias":"nodes","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuTreeNode[]>"},{"name":"expanded","alias":"expanded","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"leafOnly","alias":"leafOnly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"expandLabel","alias":"expandLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"expanded","alias":"expandedChange","type":"import(\"@angular/core\").ModelSignal<readonly string[]>"},{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"selected","alias":"selected","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/tree-select":{"types":"./dist/tree-select/index.d.ts","sha256":"9b9d49c460676bf099f8ab2c56998bf2331388803df620d43fa211ffb6165388","symbols":[{"name":"NeuTreeSelectComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-tree-select","inputs":[{"name":"nodes","alias":"nodes","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuTreeNode[]>"},{"name":"leafOnly","alias":"leafOnly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"placeholder","alias":"placeholder","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"closeLabel","alias":"closeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"expandLabel","alias":"expandLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"value","alias":"value","required":false,"type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"label","alias":"label","required":true,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"readonly","alias":"readonly","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"invalid","alias":"invalid","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"touched","alias":"touched","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"hint","alias":"hint","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"required","alias":"required","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"requiredLabel","alias":"requiredLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"error","alias":"error","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"value","alias":"valueChange","type":"import(\"@angular/core\").ModelSignal<string>"},{"name":"touch","alias":"touch","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":[]}]},"@neural-ui/native/uploader":{"types":"./dist/uploader/index.d.ts","sha256":"facd99fc0133547fe4fc7356047fd0fbff076a6072535ddc1b9066c942e7b703","symbols":[{"name":"NEU_FILE_PICKER","kind":"VariableDeclaration","declaration":"NEU_FILE_PICKER: InjectionToken<NeuFilePicker>"},{"name":"NeuFile","kind":"InterfaceDeclaration","declaration":"export interface NeuFile {\n readonly uri: string;\n readonly name: string;\n readonly size?: number;\n readonly mimeType?: string;\n}"},{"name":"NeuFilePicker","kind":"InterfaceDeclaration","declaration":"export interface NeuFilePicker {\n pick(options: {\n type: readonly string[];\n multiple: boolean;\n }): Promise<readonly NeuFile[] | null>;\n}"},{"name":"NeuUpload","kind":"TypeAliasDeclaration","declaration":"export type NeuUpload = (file: NeuFile, progress: (percent: number) => void, signal: AbortSignal) => Promise<void>;"},{"name":"NeuUploaderComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-uploader","inputs":[{"name":"label","alias":"label","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"files","alias":"files","required":false,"type":"import(\"@angular/core\").ModelSignal<readonly NeuUploadItem[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"types","alias":"types","required":false,"type":"import(\"@angular/core\").InputSignal<readonly string[]>"},{"name":"multiple","alias":"multiple","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"maxFiles","alias":"maxFiles","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"maxBytes","alias":"maxBytes","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"chooseLabel","alias":"chooseLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"uploadLabel","alias":"uploadLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"removeLabel","alias":"removeLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"},{"name":"stateLabels","alias":"stateLabels","required":false,"type":"import(\"@angular/core\").InputSignal<Readonly<Record<\"error\" | \"selected\" | \"uploading\" | \"complete\", string>>>"},{"name":"upload","alias":"upload","required":false,"type":"import(\"@angular/core\").InputSignal<NeuUpload | undefined>"}],"outputs":[{"name":"files","alias":"filesChange","type":"import(\"@angular/core\").ModelSignal<readonly NeuUploadItem[]>"},{"name":"selected","alias":"selected","type":"import(\"@angular/core\").OutputEmitterRef<readonly NeuFile[]>"},{"name":"completed","alias":"completed","type":"import(\"@angular/core\").OutputEmitterRef<NeuFile>"},{"name":"rejected","alias":"rejected","type":"import(\"@angular/core\").OutputEmitterRef<string>"}],"members":[]},{"name":"NeuUploadItem","kind":"InterfaceDeclaration","declaration":"export interface NeuUploadItem {\n readonly id: string;\n readonly file: NeuFile;\n readonly state: \"selected\" | \"uploading\" | \"complete\" | \"error\";\n readonly progress: number;\n readonly error?: string;\n}"}]},"@neural-ui/native/virtual-list":{"types":"./dist/virtual-list/index.d.ts","sha256":"0b32397ea878681b0dc5d384900482deac9309b402299bf350d7a6a610568701","symbols":[{"name":"NeuVirtualListComponent","kind":"ClassDeclaration","angularKind":"component","selector":"neu-virtual-list","inputs":[{"name":"items","alias":"items","required":false,"type":"import(\"@angular/core\").InputSignal<readonly NeuOption[]>"},{"name":"disabled","alias":"disabled","required":false,"type":"import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>"},{"name":"estimatedItemHeight","alias":"estimatedItemHeight","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"height","alias":"height","required":false,"type":"import(\"@angular/core\").InputSignal<number>"},{"name":"emptyLabel","alias":"emptyLabel","required":false,"type":"import(\"@angular/core\").InputSignal<string>"}],"outputs":[{"name":"selected","alias":"selected","type":"import(\"@angular/core\").OutputEmitterRef<string>"},{"name":"endReached","alias":"endReached","type":"import(\"@angular/core\").OutputEmitterRef<void>"}],"members":["scrollToIndex(index: number): void;","scrollToTop(): void;"]},{"name":"NeuVirtualListItemContext","kind":"InterfaceDeclaration","declaration":"export interface NeuVirtualListItemContext {\n readonly $implicit: NeuOption;\n readonly index: number;\n readonly disabled: boolean;\n}"},{"name":"NeuVirtualListItemDirective","kind":"ClassDeclaration","angularKind":"directive","selector":"ng-template[neuVirtualListItem]","inputs":[],"outputs":[],"members":[]}]}},"tokens":[{"name":"accent","type":"string","optional":false,"category":"theme","default":"#006ee6","darkDefault":"#b5c4ff"},{"name":"onAccent","type":"string","optional":false,"category":"theme","default":"#ffffff","darkDefault":"#172955"},{"name":"surface","type":"string","optional":false,"category":"theme","default":"#ffffff","darkDefault":"#1b2230"},{"name":"canvas","type":"string","optional":false,"category":"theme","default":"#f4f5f7","darkDefault":"#111722"},{"name":"text","type":"string","optional":false,"category":"theme","default":"#172033","darkDefault":"#edf1fa"},{"name":"muted","type":"string","optional":false,"category":"theme","default":"#596477","darkDefault":"#b4bed0"},{"name":"border","type":"string","optional":false,"category":"theme","default":"#a5afbf","darkDefault":"#6c7a92"},{"name":"tonal","type":"string","optional":false,"category":"theme","default":"#eff6ff","darkDefault":"#293756"},{"name":"danger","type":"string","optional":false,"category":"theme","default":"#dc2626","darkDefault":"#ffb4ab"},{"name":"success","type":"string","optional":false,"category":"theme","default":"#15803d","darkDefault":"#8fdeb1"},{"name":"warning","type":"string","optional":false,"category":"theme","default":"#f59e0b","darkDefault":"#efd48f"},{"name":"warningText","type":"string","optional":false,"category":"theme","default":"#92400e","darkDefault":"#efd48f"},{"name":"onWarning","type":"string","optional":false,"category":"theme","default":"#111827","darkDefault":"#111722"},{"name":"info","type":"string","optional":false,"category":"theme","default":"#0064d1","darkDefault":"#7dd3fc"},{"name":"accentText","type":"string","optional":true,"category":"theme","default":"resolved from theme surfaces","darkDefault":"resolved from theme surfaces"},{"name":"dangerText","type":"string","optional":true,"category":"theme","default":"resolved from theme surfaces","darkDefault":"resolved from theme surfaces"},{"name":"successText","type":"string","optional":true,"category":"theme","default":"resolved from theme surfaces","darkDefault":"resolved from theme surfaces"},{"name":"infoText","type":"string","optional":true,"category":"theme","default":"resolved from theme surfaces","darkDefault":"resolved from theme surfaces"},{"name":"radius","type":"number","optional":false,"category":"theme","default":12,"darkDefault":12},{"name":"spacing","type":"number","optional":false,"category":"theme","default":16,"darkDefault":16},{"name":"fontSize","type":"number","optional":false,"category":"theme","default":16,"darkDefault":16},{"name":"duration","type":"number","optional":false,"category":"theme","default":120,"darkDefault":120},{"name":"surfaceBorder","type":"string","optional":true,"category":"theme","default":"#e1e6ed","darkDefault":"#354052"},{"name":"divider","type":"string","optional":true,"category":"theme","default":"#e7ebf0","darkDefault":"#303b4c"},{"name":"surfaceSecondary","type":"string","optional":true,"category":"theme","default":"#eef1f5","darkDefault":"#222d3f"},{"name":"mediaCanvas","type":"string","optional":true,"category":"theme","default":"#111722","darkDefault":"#111722"},{"name":"mediaText","type":"string","optional":true,"category":"theme","default":"#edf1fa","darkDefault":"#edf1fa"},{"name":"mediaBarStyle","type":"\"light\" | \"dark\"","optional":true,"category":"theme","default":"light","darkDefault":"light"}],"assets":{"dist/foundation/index.js":"72b4ff3cc18a00dd2fb94ba592695514694d07ed884a5d9f0e1f8eefcb011eed","dist/foundation/index.d.ts":"75500ce10ca61cd1e1ff88f59f325a981fc7d156deeff2ca40346699d60c7609"}},"documents":[{"id":"references/api/accordion","source":"skills/neural-native/references/api/accordion.md","text":"# @neural-ui/native/accordion\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuAccordionComponent\n\nSelector: `neu-accordion`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| expanded | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| multiple | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| expandedChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n"},{"id":"references/api/alert","source":"skills/neural-native/references/api/alert.md","text":"# @neural-ui/native/alert\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuAlertComponent\n\nSelector: `neu-alert`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| title | no | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n| variant | no | `import(\"@angular/core\").InputSignal<NeuAlertVariant>` |\n| showIcon | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| svg | no | `import(\"@angular/core\").InputSignal<string>` |\n| message | yes | `import(\"@angular/core\").InputSignal<string>` |\n| visible | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| closable | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| visibleChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| closed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuAlertVariant\n\n```typescript\nexport type NeuAlertVariant = 'soft' | 'outline';\n```\n"},{"id":"references/api/autocomplete","source":"skills/neural-native/references/api/autocomplete.md","text":"# @neural-ui/native/autocomplete\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuAutocompleteComponent\n\nSelector: `neu-autocomplete`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| minLength | no | `import(\"@angular/core\").InputSignal<number>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/avatar-group","source":"skills/neural-native/references/api/avatar-group.md","text":"# @neural-ui/native/avatar-group\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuAvatarGroupComponent\n\nSelector: `neu-avatar-group`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| items | no | `import(\"@angular/core\").InputSignal<readonly (NeuOption & {\n readonly uri?: string;\n readonly tone?: NeuTone;\n})[]>` |\n| max | no | `import(\"@angular/core\").InputSignal<number>` |\n| moreLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n| size | no | `import(\"@angular/core\").InputSignal<NeuSize>` |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/avatar","source":"skills/neural-native/references/api/avatar.md","text":"# @neural-ui/native/avatar\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuAvatarComponent\n\nSelector: `neu-avatar`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| uri | no | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n| size | no | `import(\"@angular/core\").InputSignal<NeuSize>` |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/badge","source":"skills/neural-native/references/api/badge.md","text":"# @neural-ui/native/badge\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuBadgeComponent\n\nSelector: `neu-badge`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/bottom-sheet","source":"skills/neural-native/references/api/bottom-sheet.md","text":"# @neural-ui/native/bottom-sheet\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuBottomSheetComponent\n\nSelector: `neu-bottom-sheet`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| title | yes | `import(\"@angular/core\").InputSignal<string>` |\n| dismissible | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| height | no | `import(\"@angular/core\").InputSignal<NeuBottomSheetHeight>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| closed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| opened | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| dismissed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\nSupported imperative members:\n\n```typescript\nclose(): void;\n```\n\n## NeuBottomSheetHeight\n\n```typescript\nexport type NeuBottomSheetHeight = 'auto' | 'sm' | 'md' | 'lg' | 'full';\n```\n"},{"id":"references/api/button-group","source":"skills/neural-native/references/api/button-group.md","text":"# @neural-ui/native/button-group\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuButtonGroupComponent\n\nSelector: `neu-button-group`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n| activated | `import(\"@angular/core\").OutputEmitterRef<string>` |\n"},{"id":"references/api/button","source":"skills/neural-native/references/api/button.md","text":"# @neural-ui/native/button\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuButtonComponent\n\nSelector: `neu-button`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| haptic | no | `import(\"@angular/core\").InputSignal<false \\| NeuHapticFeedback>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| accessibilityLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| variant | no | `import(\"@angular/core\").InputSignal<NeuVariant>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n| size | no | `import(\"@angular/core\").InputSignal<NeuSize>` |\n| fullWidth | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| loading | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| pressed | `import(\"@angular/core\").OutputEmitterRef<import(\"@ng-native/components\").TouchEvent>` |\n"},{"id":"references/api/calendar","source":"skills/neural-native/references/api/calendar.md","text":"# @neural-ui/native/calendar\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuCalendarComponent\n\nSelector: `neu-calendar`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| month | no | `import(\"@angular/core\").ModelSignal<string>` |\n| locale | no | `import(\"@angular/core\").InputSignal<string>` |\n| firstDay | no | `import(\"@angular/core\").InputSignal<number>` |\n| min | no | `import(\"@angular/core\").InputSignal<string>` |\n| max | no | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| previousLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousYearLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextYearLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousYearsLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextYearsLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| events | no | `import(\"@angular/core\").InputSignal<readonly NeuCalendarEvent[]>` |\n| showAgenda | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| editable | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| agendaLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyAgendaLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| hasEventsLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| addEventLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| editEventLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| deleteEventLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| monthChange | `import(\"@angular/core\").ModelSignal<string>` |\n| eventCreateRequested | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| eventEditRequested | `import(\"@angular/core\").OutputEmitterRef<NeuCalendarEvent>` |\n| eventDeleteRequested | `import(\"@angular/core\").OutputEmitterRef<NeuCalendarEvent>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuCalendarEvent\n\n```typescript\nexport interface NeuCalendarEvent extends NeuOption {\n readonly date: string;\n}\n```\n"},{"id":"references/api/card","source":"skills/neural-native/references/api/card.md","text":"# @neural-ui/native/card\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuCardComponent\n\nSelector: `neu-card`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| title | no | `import(\"@angular/core\").InputSignal<string>` |\n| description | no | `import(\"@angular/core\").InputSignal<string>` |\n| variant | no | `import(\"@angular/core\").InputSignal<\"tonal\" \\| \"surface\" \\| \"outlined\">` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuCardFooterDirective\n\nSelector: `[neuCardFooter]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuCardHeaderDirective\n\nSelector: `[neuCardHeader]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/carousel","source":"skills/neural-native/references/api/carousel.md","text":"# @neural-ui/native/carousel\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuCarouselComponent\n\nSelector: `neu-carousel`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuImageItem[]>` |\n| index | no | `import(\"@angular/core\").ModelSignal<number>` |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| preview | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| viewerLabels | no | `import(\"@angular/core\").InputSignal<NeuImageViewerLabels>` |\n| loop | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| autoplay | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| autoplayInterval | no | `import(\"@angular/core\").InputSignal<number>` |\n| pauseLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| playLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| indexChange | `import(\"@angular/core\").ModelSignal<number>` |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n"},{"id":"references/api/cascade-select","source":"skills/neural-native/references/api/cascade-select.md","text":"# @neural-ui/native/cascade-select\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuCascadeSelectComponent\n\nSelector: `neu-cascade-select`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| nodes | no | `import(\"@angular/core\").InputSignal<readonly NeuTreeNode[]>` |\n| backLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| rootLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/checkbox","source":"skills/neural-native/references/api/checkbox.md","text":"# @neural-ui/native/checkbox\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuCheckboxComponent\n\nSelector: `neu-checkbox`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| haptic | no | `import(\"@angular/core\").InputSignal<false \\| NeuHapticFeedback>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| labelPosition | no | `import(\"@angular/core\").InputSignal<\"left\" \\| \"right\">` |\n| checked | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| checkedChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/chip","source":"skills/neural-native/references/api/chip.md","text":"# @neural-ui/native/chip\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuChipComponent\n\nSelector: `neu-chip`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n| selected | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| selectable | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| removable | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| removeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| selectedChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| removed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/confirm-dialog","source":"skills/neural-native/references/api/confirm-dialog.md","text":"# @neural-ui/native/confirm-dialog\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuConfirmDialogComponent\n\nSelector: `neu-confirm-dialog`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| title | yes | `import(\"@angular/core\").InputSignal<string>` |\n| message | yes | `import(\"@angular/core\").InputSignal<string>` |\n| confirmLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| cancelLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| intent | no | `import(\"@angular/core\").InputSignal<\"danger\" \\| \"default\">` |\n| busy | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| showCloseButton | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeOnConfirm | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| confirmed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| cancelled | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| opened | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| dismissed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/context-menu","source":"skills/neural-native/references/api/context-menu.md","text":"# @neural-ui/native/context-menu\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuContextMenuComponent\n\nSelector: `neu-context-menu`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| actionsLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| activated | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| pressed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/core","source":"skills/neural-native/references/api/core.md","text":"# @neural-ui/native\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## formatMask\n\n```typescript\nexport declare function formatMask(value: string, mask: string): {\n raw: string;\n display: string;\n};\n```\n\n## NEU_CHECK_ICON\n\n```typescript\nNEU_CHECK_ICON = \"<svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"m5 12 4 4 10-10\\\"/></svg>\"\n```\n\n## NEU_DARK_TOKENS\n\n```typescript\nNEU_DARK_TOKENS: Readonly<NeuTokens>\n```\n\n## NEU_FILE_PICKER\n\n```typescript\nNEU_FILE_PICKER: InjectionToken<NeuFilePicker>\n```\n\n## NEU_HAPTICS_DRIVER\n\n```typescript\nNEU_HAPTICS_DRIVER: InjectionToken<NeuHapticsDriver | null>\n```\n\n## NEU_HAPTICS_OPTIONS\n\n```typescript\nNEU_HAPTICS_OPTIONS: InjectionToken<NeuHapticsOptions>\n```\n\n## NEU_LIGHT_TOKENS\n\n```typescript\nNEU_LIGHT_TOKENS: Readonly<NeuTokens>\n```\n\n## NEU_PLUS_ICON\n\n```typescript\nNEU_PLUS_ICON = \"<svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\"><path d=\\\"M12 5v14M5 12h14\\\"/></svg>\"\n```\n\n## NEU_TABS\n\n```typescript\nNEU_TABS: InjectionToken<{\n value: Signal<string>;\n tabs?: Signal<readonly NeuOption[]>;\n}>\n```\n\n## NEU_THEME\n\n```typescript\nNEU_THEME: InjectionToken<Signal<Readonly<NeuTokens>>>\n```\n\n## NeuAccordionComponent\n\nSelector: `neu-accordion`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| expanded | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| multiple | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| expandedChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n\n## NeuAlertComponent\n\nSelector: `neu-alert`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| title | no | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n| variant | no | `import(\"@angular/core\").InputSignal<NeuAlertVariant>` |\n| showIcon | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| svg | no | `import(\"@angular/core\").InputSignal<string>` |\n| message | yes | `import(\"@angular/core\").InputSignal<string>` |\n| visible | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| closable | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| visibleChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| closed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuAlertVariant\n\n```typescript\nexport type NeuAlertVariant = 'soft' | 'outline';\n```\n\n## NeuAutocompleteComponent\n\nSelector: `neu-autocomplete`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| minLength | no | `import(\"@angular/core\").InputSignal<number>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuAvatarComponent\n\nSelector: `neu-avatar`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| uri | no | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n| size | no | `import(\"@angular/core\").InputSignal<NeuSize>` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuAvatarGroupComponent\n\nSelector: `neu-avatar-group`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| items | no | `import(\"@angular/core\").InputSignal<readonly (NeuOption & {\n readonly uri?: string;\n readonly tone?: NeuTone;\n})[]>` |\n| max | no | `import(\"@angular/core\").InputSignal<number>` |\n| moreLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n| size | no | `import(\"@angular/core\").InputSignal<NeuSize>` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuBadgeComponent\n\nSelector: `neu-badge`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuBottomSheetComponent\n\nSelector: `neu-bottom-sheet`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| title | yes | `import(\"@angular/core\").InputSignal<string>` |\n| dismissible | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| height | no | `import(\"@angular/core\").InputSignal<NeuBottomSheetHeight>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| closed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| opened | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| dismissed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\nSupported imperative members:\n\n```typescript\nclose(): void;\n```\n\n## NeuBottomSheetHeight\n\n```typescript\nexport type NeuBottomSheetHeight = 'auto' | 'sm' | 'md' | 'lg' | 'full';\n```\n\n## NeuButtonComponent\n\nSelector: `neu-button`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| haptic | no | `import(\"@angular/core\").InputSignal<false \\| NeuHapticFeedback>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| accessibilityLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| variant | no | `import(\"@angular/core\").InputSignal<NeuVariant>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n| size | no | `import(\"@angular/core\").InputSignal<NeuSize>` |\n| fullWidth | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| loading | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| pressed | `import(\"@angular/core\").OutputEmitterRef<import(\"@ng-native/components\").TouchEvent>` |\n\n## NeuButtonGroupComponent\n\nSelector: `neu-button-group`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n| activated | `import(\"@angular/core\").OutputEmitterRef<string>` |\n\n## NeuCalendarComponent\n\nSelector: `neu-calendar`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| month | no | `import(\"@angular/core\").ModelSignal<string>` |\n| locale | no | `import(\"@angular/core\").InputSignal<string>` |\n| firstDay | no | `import(\"@angular/core\").InputSignal<number>` |\n| min | no | `import(\"@angular/core\").InputSignal<string>` |\n| max | no | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| previousLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousYearLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextYearLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousYearsLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextYearsLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| events | no | `import(\"@angular/core\").InputSignal<readonly NeuCalendarEvent[]>` |\n| showAgenda | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| editable | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| agendaLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyAgendaLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| hasEventsLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| addEventLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| editEventLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| deleteEventLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| monthChange | `import(\"@angular/core\").ModelSignal<string>` |\n| eventCreateRequested | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| eventEditRequested | `import(\"@angular/core\").OutputEmitterRef<NeuCalendarEvent>` |\n| eventDeleteRequested | `import(\"@angular/core\").OutputEmitterRef<NeuCalendarEvent>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuCalendarEvent\n\n```typescript\nexport interface NeuCalendarEvent extends NeuOption {\n readonly date: string;\n}\n```\n\n## NeuCardComponent\n\nSelector: `neu-card`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| title | no | `import(\"@angular/core\").InputSignal<string>` |\n| description | no | `import(\"@angular/core\").InputSignal<string>` |\n| variant | no | `import(\"@angular/core\").InputSignal<\"tonal\" \\| \"surface\" \\| \"outlined\">` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuCardFooterDirective\n\nSelector: `[neuCardFooter]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuCardHeaderDirective\n\nSelector: `[neuCardHeader]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuCarouselComponent\n\nSelector: `neu-carousel`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuImageItem[]>` |\n| index | no | `import(\"@angular/core\").ModelSignal<number>` |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| preview | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| viewerLabels | no | `import(\"@angular/core\").InputSignal<NeuImageViewerLabels>` |\n| loop | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| autoplay | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| autoplayInterval | no | `import(\"@angular/core\").InputSignal<number>` |\n| pauseLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| playLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| indexChange | `import(\"@angular/core\").ModelSignal<number>` |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n## NeuCascadeSelectComponent\n\nSelector: `neu-cascade-select`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| nodes | no | `import(\"@angular/core\").InputSignal<readonly NeuTreeNode[]>` |\n| backLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| rootLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuCheckboxComponent\n\nSelector: `neu-checkbox`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| haptic | no | `import(\"@angular/core\").InputSignal<false \\| NeuHapticFeedback>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| labelPosition | no | `import(\"@angular/core\").InputSignal<\"left\" \\| \"right\">` |\n| checked | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| checkedChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuChipComponent\n\nSelector: `neu-chip`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n| selected | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| selectable | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| removable | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| removeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| selectedChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| removed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuColorScheme\n\n```typescript\nexport type NeuColorScheme = 'system' | 'light' | 'dark';\n```\n\n## NeuConfirmDialogComponent\n\nSelector: `neu-confirm-dialog`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| title | yes | `import(\"@angular/core\").InputSignal<string>` |\n| message | yes | `import(\"@angular/core\").InputSignal<string>` |\n| confirmLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| cancelLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| intent | no | `import(\"@angular/core\").InputSignal<\"danger\" \\| \"default\">` |\n| busy | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| showCloseButton | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeOnConfirm | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| confirmed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| cancelled | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| opened | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| dismissed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuContextMenuComponent\n\nSelector: `neu-context-menu`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| actionsLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| activated | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| pressed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuDataViewComponent\n\nSelector: `neu-data-view`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| itemTemplate | no | `import(\"@angular/core\").InputSignal<TemplateRef<NeuDataViewItemContext> \\| undefined>` |\n| query | no | `import(\"@angular/core\").ModelSignal<string>` |\n| descending | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| loading | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n| searchLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| sortLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| refreshLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| queryChange | `import(\"@angular/core\").ModelSignal<string>` |\n| descendingChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| selected | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| refresh | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuDataViewItemContext\n\n```typescript\nexport interface NeuDataViewItemContext {\n readonly $implicit: NeuOption;\n readonly index: number;\n}\n```\n\n## NeuDataViewItemDirective\n\nSelector: `ng-template[neuDataViewItem]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuDateInputComponent\n\nSelector: `neu-date-input`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| min | no | `import(\"@angular/core\").InputSignal<string>` |\n| max | no | `import(\"@angular/core\").InputSignal<string>` |\n| locale | no | `import(\"@angular/core\").InputSignal<string>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousYearLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextYearLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousYearsLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextYearsLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuDividerComponent\n\nSelector: `neu-divider`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| orientation | no | `import(\"@angular/core\").InputSignal<\"horizontal\" \\| \"vertical\">` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuEmptyStateComponent\n\nSelector: `neu-empty-state`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| title | yes | `import(\"@angular/core\").InputSignal<string>` |\n| description | no | `import(\"@angular/core\").InputSignal<string>` |\n| actionLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| action | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuFile\n\n```typescript\nexport interface NeuFile {\n readonly uri: string;\n readonly name: string;\n readonly size?: number;\n readonly mimeType?: string;\n}\n```\n\n## NeuFilePicker\n\n```typescript\nexport interface NeuFilePicker {\n pick(options: {\n type: readonly string[];\n multiple: boolean;\n }): Promise<readonly NeuFile[] | null>;\n}\n```\n\n## NeuFilterBarComponent\n\nSelector: `neu-filter-bar`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| query | no | `import(\"@angular/core\").ModelSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| searchLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| clearLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| queryChange | `import(\"@angular/core\").ModelSignal<string>` |\n\n## NeuFormFieldComponent\n\nSelector: `neu-form-field`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuGalleryCaptionDirective\n\nSelector: `ng-template[neuGalleryCaption]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuGalleryComponent\n\nSelector: `neu-gallery`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| viewerLabels | no | `import(\"@angular/core\").InputSignal<NeuGalleryViewerLabels>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuImageItem[]>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| layout | no | `import(\"@angular/core\").InputSignal<NeuGalleryLayout>` |\n| columns | no | `import(\"@angular/core\").InputSignal<number>` |\n| gap | no | `import(\"@angular/core\").InputSignal<number>` |\n| aspectRatio | no | `import(\"@angular/core\").InputSignal<number>` |\n| borderRadius | no | `import(\"@angular/core\").InputSignal<number>` |\n| showCaptions | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| index | no | `import(\"@angular/core\").ModelSignal<number>` |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n| Output | Type |\n| --- | --- |\n| indexChange | `import(\"@angular/core\").ModelSignal<number>` |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n## NeuGalleryItemContext\n\n```typescript\nexport interface NeuGalleryItemContext {\n readonly $implicit: NeuImageItem;\n readonly index: number;\n readonly aspectRatio: number;\n readonly borderRadius: number;\n}\n```\n\n## NeuGalleryItemDirective\n\nSelector: `ng-template[neuGalleryItem]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuGalleryLayout\n\n```typescript\nexport type NeuGalleryLayout = 'grid' | 'mosaic';\n```\n\n## NeuGalleryViewerLabels\n\n```typescript\nexport interface NeuGalleryViewerLabels {\n readonly label?: string;\n readonly closeLabel?: string;\n readonly previousLabel?: string;\n readonly nextLabel?: string;\n readonly zoomLabel?: string;\n readonly zoomOutLabel?: string;\n readonly errorLabel?: string;\n}\n```\n\n## NeuHapticFeedback\n\n```typescript\nexport type NeuHapticFeedback = 'press' | 'selection' | NeuHapticImpact | 'success' | 'warning' | 'error';\n```\n\n## NeuHapticImpact\n\n```typescript\nexport type NeuHapticImpact = 'light' | 'medium' | 'heavy' | 'soft' | 'rigid';\n```\n\n## NeuHaptics\n\nSupported imperative members:\n\n```typescript\nreadonly enabled: import(\"@angular/core\").WritableSignal<boolean>;\nget available(): boolean;\nplay(feedback?: NeuHapticFeedback | false): boolean;\n```\n\n## NeuHapticsDriver\n\n```typescript\nexport interface NeuHapticsDriver {\n available(): boolean;\n play(feedback: Exclude<NeuHapticFeedback, \"press\">): void | Promise<void>;\n}\n```\n\n## NeuHapticsOptions\n\n```typescript\nexport interface NeuHapticsOptions {\n enabled?: boolean;\n minimumIntervalMs?: number;\n pressStyle?: NeuHapticImpact;\n}\n```\n\n## NeuIconButtonComponent\n\nSelector: `neu-icon-button`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| haptic | no | `import(\"@angular/core\").InputSignal<false \\| NeuHapticFeedback>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| svg | yes | `import(\"@angular/core\").InputSignal<string>` |\n| variant | no | `import(\"@angular/core\").InputSignal<NeuVariant>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| loading | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| pressed | `import(\"@angular/core\").OutputEmitterRef<import(\"@ng-native/components\").TouchEvent>` |\n\n## NeuImageItem\n\n```typescript\nexport interface NeuImageItem {\n readonly id: string;\n readonly uri: string;\n readonly label: string;\n}\n```\n\n## NeuImageViewerComponent\n\nSelector: `neu-image-viewer`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuImageItem[]>` |\n| index | no | `import(\"@angular/core\").ModelSignal<number>` |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| zoomLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| zoomOutLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| errorLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| indexChange | `import(\"@angular/core\").ModelSignal<number>` |\n| closed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| opened | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| dismissed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\nSupported imperative members:\n\n```typescript\nclose(): void;\n```\n\n## NeuImageViewerLabels\n\n```typescript\nexport interface NeuImageViewerLabels {\n readonly label?: string;\n readonly closeLabel?: string;\n readonly previousLabel?: string;\n readonly nextLabel?: string;\n readonly zoomLabel?: string;\n readonly zoomOutLabel?: string;\n readonly errorLabel?: string;\n}\n```\n\n## NeuInlineEditorComponent\n\nSelector: `neu-inline-editor`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| editing | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| saveLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| cancelLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| editingChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| saved | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| cancelled | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuInputComponent\n\nSelector: `neu-input`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| keyboardType | no | `import(\"@angular/core\").InputSignal<\"default\" \\| \"email-address\" \\| \"numeric\" \\| \"phone-pad\">` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| maxLength | no | `import(\"@angular/core\").InputSignalWithTransform<number \\| undefined, number \\| undefined>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuInputMaskComponent\n\nSelector: `neu-input-mask`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| mask | yes | `import(\"@angular/core\").InputSignal<string>` |\n| keyboardType | no | `import(\"@angular/core\").InputSignal<\"default\" \\| \"numeric\" \\| \"phone-pad\">` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuInputOtpComponent\n\nSelector: `neu-input-otp`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| length | no | `import(\"@angular/core\").InputSignal<number>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| completed | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuInputTagsComponent\n\nSelector: `neu-input-tags`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| max | no | `import(\"@angular/core\").InputSignal<number>` |\n| addLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| removeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuListboxComponent\n\nSelector: `neu-listbox`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| appearance | no | `import(\"@angular/core\").InputSignal<\"cards\" \\| \"plain\">` |\n| itemTemplate | no | `import(\"@angular/core\").InputSignal<TemplateRef<NeuListboxItemContext> \\| undefined>` |\n| value | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| multiple | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| selected | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuListboxItemContext\n\n```typescript\nexport interface NeuListboxItemContext {\n readonly $implicit: NeuOption;\n readonly index: number;\n readonly selected: boolean;\n readonly disabled: boolean;\n}\n```\n\n## NeuListboxItemDirective\n\nSelector: `ng-template[neuListboxItem]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuMenuComponent\n\nSelector: `neu-menu`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| showTrigger | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| activated | `import(\"@angular/core\").OutputEmitterRef<string>` |\n\n## NeuMeterGroupComponent\n\nSelector: `neu-meter-group`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly (NeuOption & {\n readonly value: number;\n})[]>` |\n| max | no | `import(\"@angular/core\").InputSignal<number \\| undefined>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuModalComponent\n\nSelector: `neu-modal`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| title | yes | `import(\"@angular/core\").InputSignal<string>` |\n| dismissible | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| showCloseButton | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| closed | `import(\"@angular/core\").OutputEmitterRef<\"native\" \\| \"action\" \\| \"backdrop\">` |\n| opened | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| dismissed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\nSupported imperative members:\n\n```typescript\nclose(reason?: 'native' | 'action' | 'backdrop'): void;\n```\n\n## NeuModalFooterDirective\n\nSelector: `ng-template[neuModalFooter]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuModalHeaderDirective\n\nSelector: `ng-template[neuModalHeader]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuNavComponent\n\nSelector: `neu-nav`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuNavItem[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| navigate | `import(\"@angular/core\").OutputEmitterRef<string>` |\n\n## NeuNavItem\n\n```typescript\nexport interface NeuNavItem extends NeuOption {\n readonly svg?: string;\n}\n```\n\n## NeuNotificationCenterComponent\n\nSelector: `neu-notification-center`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| readIds | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| markAllLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| unreadLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| readIdsChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| activated | `import(\"@angular/core\").OutputEmitterRef<string>` |\n\n## NeuNumberInputComponent\n\nSelector: `neu-number-input`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<number>` |\n| min | no | `import(\"@angular/core\").InputSignal<number>` |\n| max | no | `import(\"@angular/core\").InputSignal<number>` |\n| step | no | `import(\"@angular/core\").InputSignal<number>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| decreaseLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| increaseLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<number>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuOption\n\n```typescript\nexport interface NeuOption {\n readonly id: string;\n readonly label: string;\n readonly description?: string;\n readonly disabled?: boolean;\n}\n```\n\n## NeuPanelComponent\n\nSelector: `neu-panel`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| title | yes | `import(\"@angular/core\").InputSignal<string>` |\n| collapsed | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| collapsible | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| collapsedChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n## NeuPanelFooterDirective\n\nSelector: `[neuPanelFooter]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuPanelHeaderDirective\n\nSelector: `[neuPanelHeader]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuPasswordComponent\n\nSelector: `neu-password`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| revealed | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| showLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| hideLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| revealedChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuPickListComponent\n\nSelector: `neu-pick-list`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| selectedLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| availableLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| upLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| downLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| removeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| addLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptySelectedLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyAvailableLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuPopoverComponent\n\nSelector: `neu-popover`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| title | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| dismissLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n## NeuProgressBarComponent\n\nSelector: `neu-progress-bar`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").InputSignal<number>` |\n| max | no | `import(\"@angular/core\").InputSignal<number>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuRadioGroupComponent\n\nSelector: `neu-radio`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| haptic | no | `import(\"@angular/core\").InputSignal<false \\| NeuHapticFeedback>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuRatingComponent\n\nSelector: `neu-rating`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<number>` |\n| max | no | `import(\"@angular/core\").InputSignal<number>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| clearable | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| clearLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<number>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuSelectComponent\n\nSelector: `neu-select`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| multiple | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| values | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| searchable | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| searchLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| searchPlaceholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valuesChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuSelectItemContext\n\n```typescript\nexport type NeuSelectItemContext = NeuListboxItemContext;\n```\n\n## NeuSelectItemDirective\n\nSelector: `ng-template[neuSelectItem]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuSelectSelectedContext\n\n```typescript\nexport interface NeuSelectSelectedContext {\n readonly $implicit: readonly NeuOption[];\n readonly value: string;\n readonly values: readonly string[];\n readonly placeholder: string;\n}\n```\n\n## NeuSelectSelectedDirective\n\nSelector: `ng-template[neuSelectSelected]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuSidebarComponent\n\nSelector: `neu-sidebar`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| title | yes | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| fullWidth | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| navigate | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| opened | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| dismissed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuSize\n\n```typescript\nexport type NeuSize = 'sm' | 'md' | 'lg';\n```\n\n## NeuSkeletonAnimation\n\n```typescript\nexport type NeuSkeletonAnimation = 'pulse' | 'none';\n```\n\n## NeuSkeletonComponent\n\nSelector: `neu-skeleton`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| lines | no | `import(\"@angular/core\").InputSignal<number>` |\n| variant | no | `import(\"@angular/core\").InputSignal<NeuSkeletonVariant>` |\n| width | no | `import(\"@angular/core\").InputSignal<string \\| number \\| undefined>` |\n| height | no | `import(\"@angular/core\").InputSignal<number \\| undefined>` |\n| borderRadius | no | `import(\"@angular/core\").InputSignal<number>` |\n| gap | no | `import(\"@angular/core\").InputSignal<number>` |\n| lastLineWidth | no | `import(\"@angular/core\").InputSignal<string \\| number>` |\n| animation | no | `import(\"@angular/core\").InputSignal<NeuSkeletonAnimation>` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuSkeletonVariant\n\n```typescript\nexport type NeuSkeletonVariant = 'text' | 'rect' | 'circle';\n```\n\n## NeuSliderComponent\n\nSelector: `neu-slider`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| haptic | no | `import(\"@angular/core\").InputSignal<false \\| NeuHapticFeedback>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<number>` |\n| min | no | `import(\"@angular/core\").InputSignal<number>` |\n| max | no | `import(\"@angular/core\").InputSignal<number>` |\n| step | no | `import(\"@angular/core\").InputSignal<number>` |\n| showButtons | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| increaseLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| decreaseLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<number>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuSpeedDialAction\n\n```typescript\nexport interface NeuSpeedDialAction extends NeuOption {\n readonly svg?: string;\n}\n```\n\n## NeuSpeedDialComponent\n\nSelector: `neu-speed-dial`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| actions | no | `import(\"@angular/core\").InputSignal<readonly NeuSpeedDialAction[]>` |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| activated | `import(\"@angular/core\").OutputEmitterRef<string>` |\n\n## NeuSpinnerComponent\n\nSelector: `neu-spinner`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| size | no | `import(\"@angular/core\").InputSignal<\"small\" \\| \"large\">` |\n| active | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| showLabel | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuStatsCardComponent\n\nSelector: `neu-stats-card`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| value | yes | `import(\"@angular/core\").InputSignal<string \\| number>` |\n| change | no | `import(\"@angular/core\").InputSignal<string>` |\n| description | no | `import(\"@angular/core\").InputSignal<string>` |\n| svg | no | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuStepperComponent\n\nSelector: `neu-stepper`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| steps | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| activeStep | no | `import(\"@angular/core\").ModelSignal<number>` |\n| linear | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| completed | no | `import(\"@angular/core\").InputSignal<readonly string[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| previousLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| finishLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| activeStepChange | `import(\"@angular/core\").ModelSignal<number>` |\n| finished | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\nSupported imperative members:\n\n```typescript\ngoTo(index: number): void;\n```\n\n## NeuSwitchComponent\n\nSelector: `neu-switch`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| haptic | no | `import(\"@angular/core\").InputSignal<false \\| NeuHapticFeedback>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| labelPosition | no | `import(\"@angular/core\").InputSignal<\"left\" \\| \"right\">` |\n| size | no | `import(\"@angular/core\").InputSignal<NeuSize>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n| checked | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| checkedChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuTabPanelComponent\n\nSelector: `neu-tab-panel`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| id | yes | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuTabsComponent\n\nSelector: `neu-tabs`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| tabs | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignal<boolean>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n\n## NeuTextareaComponent\n\nSelector: `neu-textarea`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| maxLength | no | `import(\"@angular/core\").InputSignalWithTransform<number \\| undefined, number \\| undefined>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuThemeComponent\n\nSelector: `neu-theme`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| scheme | no | `import(\"@angular/core\").InputSignal<NeuColorScheme>` |\n| tokens | no | `import(\"@angular/core\").InputSignal<Partial<NeuTokens>>` |\n\n| Output | Type |\n| --- | --- |\n\nSupported imperative members:\n\n```typescript\nreadonly resolvedTokens: import(\"@angular/core\").Signal<Readonly<NeuTokens>>;\n```\n\n## NeuTimelineComponent\n\nSelector: `neu-timeline`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| completedLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| pendingLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly (NeuOption & {\n readonly date?: string;\n readonly done?: boolean;\n})[]>` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuToastComponent\n\nSelector: `neu-toast`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| message | yes | `import(\"@angular/core\").InputSignal<string>` |\n| duration | no | `import(\"@angular/core\").InputSignal<number>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| actionLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| action | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| dismissed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuToggleButtonGroupComponent\n\nSelector: `neu-toggle-button-group`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| multiple | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuTokens\n\n```typescript\nexport interface NeuTokens {\n accent: string;\n onAccent: string;\n surface: string;\n canvas: string;\n text: string;\n muted: string;\n border: string;\n tonal: string;\n danger: string;\n success: string;\n warning: string;\n warningText: string;\n onWarning: string;\n info: string;\n accentText?: string;\n dangerText?: string;\n successText?: string;\n infoText?: string;\n radius: number;\n spacing: number;\n fontSize: number;\n duration: number;\n surfaceBorder?: string;\n divider?: string;\n surfaceSecondary?: string;\n mediaCanvas?: string;\n mediaText?: string;\n mediaBarStyle?: \"light\" | \"dark\";\n}\n```\n\n## NeuTone\n\n```typescript\nexport type NeuTone = 'neutral' | 'brand' | 'accent' | 'success' | 'info' | 'warning' | 'danger';\n```\n\n## NeuToolbarAction\n\n```typescript\nexport interface NeuToolbarAction extends NeuOption {\n readonly svg?: string;\n}\n```\n\n## NeuToolbarComponent\n\nSelector: `neu-toolbar`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| actions | no | `import(\"@angular/core\").InputSignal<readonly NeuToolbarAction[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| activated | `import(\"@angular/core\").OutputEmitterRef<string>` |\n\n## NeuTreeComponent\n\nSelector: `neu-tree`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| nodes | no | `import(\"@angular/core\").InputSignal<readonly NeuTreeNode[]>` |\n| expanded | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| leafOnly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| expandLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| expandedChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| selected | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuTreeNode\n\n```typescript\nexport interface NeuTreeNode extends NeuOption {\n readonly children?: readonly NeuTreeNode[];\n}\n```\n\n## NeuTreeSelectComponent\n\nSelector: `neu-tree-select`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| nodes | no | `import(\"@angular/core\").InputSignal<readonly NeuTreeNode[]>` |\n| leafOnly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| expandLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuUpload\n\n```typescript\nexport type NeuUpload = (file: NeuFile, progress: (percent: number) => void, signal: AbortSignal) => Promise<void>;\n```\n\n## NeuUploaderComponent\n\nSelector: `neu-uploader`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| files | no | `import(\"@angular/core\").ModelSignal<readonly NeuUploadItem[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| types | no | `import(\"@angular/core\").InputSignal<readonly string[]>` |\n| multiple | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| maxFiles | no | `import(\"@angular/core\").InputSignal<number>` |\n| maxBytes | no | `import(\"@angular/core\").InputSignal<number>` |\n| chooseLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| uploadLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| removeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| stateLabels | no | `import(\"@angular/core\").InputSignal<Readonly<Record<\"error\" \\| \"selected\" \\| \"uploading\" \\| \"complete\", string>>>` |\n| upload | no | `import(\"@angular/core\").InputSignal<NeuUpload \\| undefined>` |\n\n| Output | Type |\n| --- | --- |\n| filesChange | `import(\"@angular/core\").ModelSignal<readonly NeuUploadItem[]>` |\n| selected | `import(\"@angular/core\").OutputEmitterRef<readonly NeuFile[]>` |\n| completed | `import(\"@angular/core\").OutputEmitterRef<NeuFile>` |\n| rejected | `import(\"@angular/core\").OutputEmitterRef<string>` |\n\n## NeuUploadItem\n\n```typescript\nexport interface NeuUploadItem {\n readonly id: string;\n readonly file: NeuFile;\n readonly state: \"selected\" | \"uploading\" | \"complete\" | \"error\";\n readonly progress: number;\n readonly error?: string;\n}\n```\n\n## NeuVariant\n\n```typescript\nexport type NeuVariant = 'solid' | 'tonal' | 'outline' | 'text';\n```\n\n## NeuVirtualListComponent\n\nSelector: `neu-virtual-list`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| estimatedItemHeight | no | `import(\"@angular/core\").InputSignal<number>` |\n| height | no | `import(\"@angular/core\").InputSignal<number>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| selected | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| endReached | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\nSupported imperative members:\n\n```typescript\nscrollToIndex(index: number): void;\nscrollToTop(): void;\n```\n\n## NeuVirtualListItemContext\n\n```typescript\nexport interface NeuVirtualListItemContext {\n readonly $implicit: NeuOption;\n readonly index: number;\n readonly disabled: boolean;\n}\n```\n\n## NeuVirtualListItemDirective\n\nSelector: `ng-template[neuVirtualListItem]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/data-view","source":"skills/neural-native/references/api/data-view.md","text":"# @neural-ui/native/data-view\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuDataViewComponent\n\nSelector: `neu-data-view`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| itemTemplate | no | `import(\"@angular/core\").InputSignal<TemplateRef<NeuDataViewItemContext> \\| undefined>` |\n| query | no | `import(\"@angular/core\").ModelSignal<string>` |\n| descending | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| loading | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n| searchLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| sortLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| refreshLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| queryChange | `import(\"@angular/core\").ModelSignal<string>` |\n| descendingChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| selected | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| refresh | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuDataViewItemContext\n\n```typescript\nexport interface NeuDataViewItemContext {\n readonly $implicit: NeuOption;\n readonly index: number;\n}\n```\n\n## NeuDataViewItemDirective\n\nSelector: `ng-template[neuDataViewItem]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/date-input","source":"skills/neural-native/references/api/date-input.md","text":"# @neural-ui/native/date-input\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuDateInputComponent\n\nSelector: `neu-date-input`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| min | no | `import(\"@angular/core\").InputSignal<string>` |\n| max | no | `import(\"@angular/core\").InputSignal<string>` |\n| locale | no | `import(\"@angular/core\").InputSignal<string>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousYearLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextYearLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousYearsLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextYearsLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/divider","source":"skills/neural-native/references/api/divider.md","text":"# @neural-ui/native/divider\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuDividerComponent\n\nSelector: `neu-divider`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| orientation | no | `import(\"@angular/core\").InputSignal<\"horizontal\" \\| \"vertical\">` |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/empty-state","source":"skills/neural-native/references/api/empty-state.md","text":"# @neural-ui/native/empty-state\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuEmptyStateComponent\n\nSelector: `neu-empty-state`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| title | yes | `import(\"@angular/core\").InputSignal<string>` |\n| description | no | `import(\"@angular/core\").InputSignal<string>` |\n| actionLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| action | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/filter-bar","source":"skills/neural-native/references/api/filter-bar.md","text":"# @neural-ui/native/filter-bar\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuFilterBarComponent\n\nSelector: `neu-filter-bar`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| query | no | `import(\"@angular/core\").ModelSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| searchLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| clearLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| queryChange | `import(\"@angular/core\").ModelSignal<string>` |\n"},{"id":"references/api/form-field","source":"skills/neural-native/references/api/form-field.md","text":"# @neural-ui/native/form-field\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuFormFieldComponent\n\nSelector: `neu-form-field`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/foundation","source":"skills/neural-native/references/api/foundation.md","text":"# @neural-ui/native/foundation\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NEU_CHECK_ICON\n\n```typescript\nNEU_CHECK_ICON = \"<svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"m5 12 4 4 10-10\\\"/></svg>\"\n```\n\n## NEU_DARK_TOKENS\n\n```typescript\nNEU_DARK_TOKENS: Readonly<NeuTokens>\n```\n\n## NEU_HAPTICS_DRIVER\n\n```typescript\nNEU_HAPTICS_DRIVER: InjectionToken<NeuHapticsDriver | null>\n```\n\n## NEU_HAPTICS_OPTIONS\n\n```typescript\nNEU_HAPTICS_OPTIONS: InjectionToken<NeuHapticsOptions>\n```\n\n## NEU_LIGHT_TOKENS\n\n```typescript\nNEU_LIGHT_TOKENS: Readonly<NeuTokens>\n```\n\n## NEU_PLUS_ICON\n\n```typescript\nNEU_PLUS_ICON = \"<svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\"><path d=\\\"M12 5v14M5 12h14\\\"/></svg>\"\n```\n\n## NEU_THEME\n\n```typescript\nNEU_THEME: InjectionToken<Signal<Readonly<NeuTokens>>>\n```\n\n## NeuColorScheme\n\n```typescript\nexport type NeuColorScheme = 'system' | 'light' | 'dark';\n```\n\n## NeuHapticFeedback\n\n```typescript\nexport type NeuHapticFeedback = 'press' | 'selection' | NeuHapticImpact | 'success' | 'warning' | 'error';\n```\n\n## NeuHapticImpact\n\n```typescript\nexport type NeuHapticImpact = 'light' | 'medium' | 'heavy' | 'soft' | 'rigid';\n```\n\n## NeuHaptics\n\nSupported imperative members:\n\n```typescript\nreadonly enabled: import(\"@angular/core\").WritableSignal<boolean>;\nget available(): boolean;\nplay(feedback?: NeuHapticFeedback | false): boolean;\n```\n\n## NeuHapticsDriver\n\n```typescript\nexport interface NeuHapticsDriver {\n available(): boolean;\n play(feedback: Exclude<NeuHapticFeedback, \"press\">): void | Promise<void>;\n}\n```\n\n## NeuHapticsOptions\n\n```typescript\nexport interface NeuHapticsOptions {\n enabled?: boolean;\n minimumIntervalMs?: number;\n pressStyle?: NeuHapticImpact;\n}\n```\n\n## NeuSize\n\n```typescript\nexport type NeuSize = 'sm' | 'md' | 'lg';\n```\n\n## NeuTokens\n\n```typescript\nexport interface NeuTokens {\n accent: string;\n onAccent: string;\n surface: string;\n canvas: string;\n text: string;\n muted: string;\n border: string;\n tonal: string;\n danger: string;\n success: string;\n warning: string;\n warningText: string;\n onWarning: string;\n info: string;\n accentText?: string;\n dangerText?: string;\n successText?: string;\n infoText?: string;\n radius: number;\n spacing: number;\n fontSize: number;\n duration: number;\n surfaceBorder?: string;\n divider?: string;\n surfaceSecondary?: string;\n mediaCanvas?: string;\n mediaText?: string;\n mediaBarStyle?: \"light\" | \"dark\";\n}\n```\n\n## NeuTone\n\n```typescript\nexport type NeuTone = 'neutral' | 'brand' | 'accent' | 'success' | 'info' | 'warning' | 'danger';\n```\n\n## NeuVariant\n\n```typescript\nexport type NeuVariant = 'solid' | 'tonal' | 'outline' | 'text';\n```\n"},{"id":"references/api/gallery","source":"skills/neural-native/references/api/gallery.md","text":"# @neural-ui/native/gallery\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuGalleryCaptionDirective\n\nSelector: `ng-template[neuGalleryCaption]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuGalleryComponent\n\nSelector: `neu-gallery`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| viewerLabels | no | `import(\"@angular/core\").InputSignal<NeuGalleryViewerLabels>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuImageItem[]>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| layout | no | `import(\"@angular/core\").InputSignal<NeuGalleryLayout>` |\n| columns | no | `import(\"@angular/core\").InputSignal<number>` |\n| gap | no | `import(\"@angular/core\").InputSignal<number>` |\n| aspectRatio | no | `import(\"@angular/core\").InputSignal<number>` |\n| borderRadius | no | `import(\"@angular/core\").InputSignal<number>` |\n| showCaptions | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| index | no | `import(\"@angular/core\").ModelSignal<number>` |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n| Output | Type |\n| --- | --- |\n| indexChange | `import(\"@angular/core\").ModelSignal<number>` |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n## NeuGalleryItemContext\n\n```typescript\nexport interface NeuGalleryItemContext {\n readonly $implicit: NeuImageItem;\n readonly index: number;\n readonly aspectRatio: number;\n readonly borderRadius: number;\n}\n```\n\n## NeuGalleryItemDirective\n\nSelector: `ng-template[neuGalleryItem]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuGalleryLayout\n\n```typescript\nexport type NeuGalleryLayout = 'grid' | 'mosaic';\n```\n\n## NeuGalleryViewerLabels\n\n```typescript\nexport interface NeuGalleryViewerLabels {\n readonly label?: string;\n readonly closeLabel?: string;\n readonly previousLabel?: string;\n readonly nextLabel?: string;\n readonly zoomLabel?: string;\n readonly zoomOutLabel?: string;\n readonly errorLabel?: string;\n}\n```\n"},{"id":"references/api/haptics","source":"skills/neural-native/references/api/haptics.md","text":"# @neural-ui/native/haptics\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NEU_HAPTICS_DRIVER\n\n```typescript\nNEU_HAPTICS_DRIVER: InjectionToken<NeuHapticsDriver | null>\n```\n\n## NEU_HAPTICS_OPTIONS\n\n```typescript\nNEU_HAPTICS_OPTIONS: InjectionToken<NeuHapticsOptions>\n```\n\n## NEU_NATIVE_HAPTICS\n\n```typescript\nNEU_NATIVE_HAPTICS: InjectionToken<NeuNativeHaptics | null>\n```\n\n## NeuHapticFeedback\n\n```typescript\nexport type NeuHapticFeedback = 'press' | 'selection' | NeuHapticImpact | 'success' | 'warning' | 'error';\n```\n\n## NeuHapticImpact\n\n```typescript\nexport type NeuHapticImpact = 'light' | 'medium' | 'heavy' | 'soft' | 'rigid';\n```\n\n## NeuHaptics\n\nSupported imperative members:\n\n```typescript\nreadonly enabled: import(\"@angular/core\").WritableSignal<boolean>;\nget available(): boolean;\nplay(feedback?: NeuHapticFeedback | false): boolean;\n```\n\n## NeuHapticsDriver\n\n```typescript\nexport interface NeuHapticsDriver {\n available(): boolean;\n play(feedback: Exclude<NeuHapticFeedback, \"press\">): void | Promise<void>;\n}\n```\n\n## NeuHapticsOptions\n\n```typescript\nexport interface NeuHapticsOptions {\n enabled?: boolean;\n minimumIntervalMs?: number;\n pressStyle?: NeuHapticImpact;\n}\n```\n\n## NeuNativeHaptics\n\n```typescript\nexport interface NeuNativeHaptics {\n impactAsync(style: NeuHapticImpact): Promise<void>;\n notificationAsync(type: \"success\" | \"warning\" | \"error\"): Promise<void>;\n selectionAsync(): Promise<void>;\n}\n```\n\n## provideNeuHaptics\n\n```typescript\nexport declare function provideNeuHaptics(options?: NeuHapticsOptions): EnvironmentProviders;\n```\n"},{"id":"references/api/icon-button","source":"skills/neural-native/references/api/icon-button.md","text":"# @neural-ui/native/icon-button\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuIconButtonComponent\n\nSelector: `neu-icon-button`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| haptic | no | `import(\"@angular/core\").InputSignal<false \\| NeuHapticFeedback>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| svg | yes | `import(\"@angular/core\").InputSignal<string>` |\n| variant | no | `import(\"@angular/core\").InputSignal<NeuVariant>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| loading | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| pressed | `import(\"@angular/core\").OutputEmitterRef<import(\"@ng-native/components\").TouchEvent>` |\n"},{"id":"references/api/image-viewer","source":"skills/neural-native/references/api/image-viewer.md","text":"# @neural-ui/native/image-viewer\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuImageViewerComponent\n\nSelector: `neu-image-viewer`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuImageItem[]>` |\n| index | no | `import(\"@angular/core\").ModelSignal<number>` |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| previousLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| zoomLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| zoomOutLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| errorLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| indexChange | `import(\"@angular/core\").ModelSignal<number>` |\n| closed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| opened | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| dismissed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\nSupported imperative members:\n\n```typescript\nclose(): void;\n```\n\n## NeuImageViewerLabels\n\n```typescript\nexport interface NeuImageViewerLabels {\n readonly label?: string;\n readonly closeLabel?: string;\n readonly previousLabel?: string;\n readonly nextLabel?: string;\n readonly zoomLabel?: string;\n readonly zoomOutLabel?: string;\n readonly errorLabel?: string;\n}\n```\n"},{"id":"references/api/index","source":"skills/neural-native/references/api/index.md","text":"# Public API — @neural-ui/native@0.1.0-beta.7\n\nGenerated from the installed npm declarations, filtered by the reviewed upstream support policy. Read only the relevant entrypoint. Angular metadata and private implementation methods are excluded.\n\n| Entrypoint | Exports |\n| --- | ---: |\n| [@neural-ui/native](core.md) | 123 |\n| [@neural-ui/native/accordion](accordion.md) | 1 |\n| [@neural-ui/native/alert](alert.md) | 2 |\n| [@neural-ui/native/autocomplete](autocomplete.md) | 1 |\n| [@neural-ui/native/avatar](avatar.md) | 1 |\n| [@neural-ui/native/avatar-group](avatar-group.md) | 1 |\n| [@neural-ui/native/badge](badge.md) | 1 |\n| [@neural-ui/native/bottom-sheet](bottom-sheet.md) | 2 |\n| [@neural-ui/native/button](button.md) | 1 |\n| [@neural-ui/native/button-group](button-group.md) | 1 |\n| [@neural-ui/native/calendar](calendar.md) | 2 |\n| [@neural-ui/native/card](card.md) | 3 |\n| [@neural-ui/native/carousel](carousel.md) | 1 |\n| [@neural-ui/native/cascade-select](cascade-select.md) | 1 |\n| [@neural-ui/native/checkbox](checkbox.md) | 1 |\n| [@neural-ui/native/chip](chip.md) | 1 |\n| [@neural-ui/native/confirm-dialog](confirm-dialog.md) | 1 |\n| [@neural-ui/native/context-menu](context-menu.md) | 1 |\n| [@neural-ui/native/data-view](data-view.md) | 3 |\n| [@neural-ui/native/date-input](date-input.md) | 1 |\n| [@neural-ui/native/divider](divider.md) | 1 |\n| [@neural-ui/native/empty-state](empty-state.md) | 1 |\n| [@neural-ui/native/filter-bar](filter-bar.md) | 1 |\n| [@neural-ui/native/form-field](form-field.md) | 1 |\n| [@neural-ui/native/foundation](foundation.md) | 17 |\n| [@neural-ui/native/gallery](gallery.md) | 6 |\n| [@neural-ui/native/haptics](haptics.md) | 10 |\n| [@neural-ui/native/icon-button](icon-button.md) | 1 |\n| [@neural-ui/native/image-viewer](image-viewer.md) | 2 |\n| [@neural-ui/native/inline-editor](inline-editor.md) | 1 |\n| [@neural-ui/native/input](input.md) | 1 |\n| [@neural-ui/native/input-mask](input-mask.md) | 2 |\n| [@neural-ui/native/input-otp](input-otp.md) | 1 |\n| [@neural-ui/native/input-tags](input-tags.md) | 1 |\n| [@neural-ui/native/listbox](listbox.md) | 3 |\n| [@neural-ui/native/menu](menu.md) | 1 |\n| [@neural-ui/native/meter-group](meter-group.md) | 1 |\n| [@neural-ui/native/modal](modal.md) | 3 |\n| [@neural-ui/native/nav](nav.md) | 2 |\n| [@neural-ui/native/notification-center](notification-center.md) | 1 |\n| [@neural-ui/native/number-input](number-input.md) | 1 |\n| [@neural-ui/native/panel](panel.md) | 3 |\n| [@neural-ui/native/password](password.md) | 1 |\n| [@neural-ui/native/pick-list](pick-list.md) | 1 |\n| [@neural-ui/native/popover](popover.md) | 1 |\n| [@neural-ui/native/progress-bar](progress-bar.md) | 1 |\n| [@neural-ui/native/radio](radio.md) | 1 |\n| [@neural-ui/native/rating](rating.md) | 1 |\n| [@neural-ui/native/select](select.md) | 5 |\n| [@neural-ui/native/sidebar](sidebar.md) | 1 |\n| [@neural-ui/native/skeleton](skeleton.md) | 3 |\n| [@neural-ui/native/slider](slider.md) | 1 |\n| [@neural-ui/native/speed-dial](speed-dial.md) | 2 |\n| [@neural-ui/native/spinner](spinner.md) | 1 |\n| [@neural-ui/native/stats-card](stats-card.md) | 1 |\n| [@neural-ui/native/stepper](stepper.md) | 1 |\n| [@neural-ui/native/switch](switch.md) | 1 |\n| [@neural-ui/native/tabs](tabs.md) | 3 |\n| [@neural-ui/native/textarea](textarea.md) | 1 |\n| [@neural-ui/native/theme](theme.md) | 1 |\n| [@neural-ui/native/timeline](timeline.md) | 1 |\n| [@neural-ui/native/toast](toast.md) | 1 |\n| [@neural-ui/native/toggle-button-group](toggle-button-group.md) | 1 |\n| [@neural-ui/native/toolbar](toolbar.md) | 2 |\n| [@neural-ui/native/tree](tree.md) | 1 |\n| [@neural-ui/native/tree-select](tree-select.md) | 1 |\n| [@neural-ui/native/uploader](uploader.md) | 6 |\n| [@neural-ui/native/virtual-list](virtual-list.md) | 3 |\n\n[Public design tokens](tokens.md)\n"},{"id":"references/api/inline-editor","source":"skills/neural-native/references/api/inline-editor.md","text":"# @neural-ui/native/inline-editor\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuInlineEditorComponent\n\nSelector: `neu-inline-editor`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| editing | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| saveLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| cancelLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| editingChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| saved | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| cancelled | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/input-mask","source":"skills/neural-native/references/api/input-mask.md","text":"# @neural-ui/native/input-mask\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## formatMask\n\n```typescript\nexport declare function formatMask(value: string, mask: string): {\n raw: string;\n display: string;\n};\n```\n\n## NeuInputMaskComponent\n\nSelector: `neu-input-mask`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| mask | yes | `import(\"@angular/core\").InputSignal<string>` |\n| keyboardType | no | `import(\"@angular/core\").InputSignal<\"default\" \\| \"numeric\" \\| \"phone-pad\">` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/input-otp","source":"skills/neural-native/references/api/input-otp.md","text":"# @neural-ui/native/input-otp\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuInputOtpComponent\n\nSelector: `neu-input-otp`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| length | no | `import(\"@angular/core\").InputSignal<number>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| completed | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/input-tags","source":"skills/neural-native/references/api/input-tags.md","text":"# @neural-ui/native/input-tags\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuInputTagsComponent\n\nSelector: `neu-input-tags`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| max | no | `import(\"@angular/core\").InputSignal<number>` |\n| addLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| removeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/input","source":"skills/neural-native/references/api/input.md","text":"# @neural-ui/native/input\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuInputComponent\n\nSelector: `neu-input`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| keyboardType | no | `import(\"@angular/core\").InputSignal<\"default\" \\| \"email-address\" \\| \"numeric\" \\| \"phone-pad\">` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| maxLength | no | `import(\"@angular/core\").InputSignalWithTransform<number \\| undefined, number \\| undefined>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/listbox","source":"skills/neural-native/references/api/listbox.md","text":"# @neural-ui/native/listbox\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuListboxComponent\n\nSelector: `neu-listbox`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| appearance | no | `import(\"@angular/core\").InputSignal<\"cards\" \\| \"plain\">` |\n| itemTemplate | no | `import(\"@angular/core\").InputSignal<TemplateRef<NeuListboxItemContext> \\| undefined>` |\n| value | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| multiple | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| selected | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuListboxItemContext\n\n```typescript\nexport interface NeuListboxItemContext {\n readonly $implicit: NeuOption;\n readonly index: number;\n readonly selected: boolean;\n readonly disabled: boolean;\n}\n```\n\n## NeuListboxItemDirective\n\nSelector: `ng-template[neuListboxItem]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/menu","source":"skills/neural-native/references/api/menu.md","text":"# @neural-ui/native/menu\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuMenuComponent\n\nSelector: `neu-menu`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| showTrigger | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| activated | `import(\"@angular/core\").OutputEmitterRef<string>` |\n"},{"id":"references/api/meter-group","source":"skills/neural-native/references/api/meter-group.md","text":"# @neural-ui/native/meter-group\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuMeterGroupComponent\n\nSelector: `neu-meter-group`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly (NeuOption & {\n readonly value: number;\n})[]>` |\n| max | no | `import(\"@angular/core\").InputSignal<number \\| undefined>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/modal","source":"skills/neural-native/references/api/modal.md","text":"# @neural-ui/native/modal\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuModalComponent\n\nSelector: `neu-modal`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| title | yes | `import(\"@angular/core\").InputSignal<string>` |\n| dismissible | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| showCloseButton | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| closed | `import(\"@angular/core\").OutputEmitterRef<\"native\" \\| \"action\" \\| \"backdrop\">` |\n| opened | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| dismissed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\nSupported imperative members:\n\n```typescript\nclose(reason?: 'native' | 'action' | 'backdrop'): void;\n```\n\n## NeuModalFooterDirective\n\nSelector: `ng-template[neuModalFooter]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuModalHeaderDirective\n\nSelector: `ng-template[neuModalHeader]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/nav","source":"skills/neural-native/references/api/nav.md","text":"# @neural-ui/native/nav\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuNavComponent\n\nSelector: `neu-nav`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuNavItem[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| navigate | `import(\"@angular/core\").OutputEmitterRef<string>` |\n\n## NeuNavItem\n\n```typescript\nexport interface NeuNavItem extends NeuOption {\n readonly svg?: string;\n}\n```\n"},{"id":"references/api/notification-center","source":"skills/neural-native/references/api/notification-center.md","text":"# @neural-ui/native/notification-center\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuNotificationCenterComponent\n\nSelector: `neu-notification-center`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| readIds | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| markAllLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| unreadLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| readIdsChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| activated | `import(\"@angular/core\").OutputEmitterRef<string>` |\n"},{"id":"references/api/number-input","source":"skills/neural-native/references/api/number-input.md","text":"# @neural-ui/native/number-input\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuNumberInputComponent\n\nSelector: `neu-number-input`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<number>` |\n| min | no | `import(\"@angular/core\").InputSignal<number>` |\n| max | no | `import(\"@angular/core\").InputSignal<number>` |\n| step | no | `import(\"@angular/core\").InputSignal<number>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| decreaseLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| increaseLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<number>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/panel","source":"skills/neural-native/references/api/panel.md","text":"# @neural-ui/native/panel\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuPanelComponent\n\nSelector: `neu-panel`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| title | yes | `import(\"@angular/core\").InputSignal<string>` |\n| collapsed | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| collapsible | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| collapsedChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n## NeuPanelFooterDirective\n\nSelector: `[neuPanelFooter]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuPanelHeaderDirective\n\nSelector: `[neuPanelHeader]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/password","source":"skills/neural-native/references/api/password.md","text":"# @neural-ui/native/password\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuPasswordComponent\n\nSelector: `neu-password`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| revealed | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| showLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| hideLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| revealedChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/pick-list","source":"skills/neural-native/references/api/pick-list.md","text":"# @neural-ui/native/pick-list\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuPickListComponent\n\nSelector: `neu-pick-list`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| selectedLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| availableLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| upLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| downLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| removeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| addLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptySelectedLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyAvailableLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/popover","source":"skills/neural-native/references/api/popover.md","text":"# @neural-ui/native/popover\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuPopoverComponent\n\nSelector: `neu-popover`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| title | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| dismissLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n"},{"id":"references/api/progress-bar","source":"skills/neural-native/references/api/progress-bar.md","text":"# @neural-ui/native/progress-bar\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuProgressBarComponent\n\nSelector: `neu-progress-bar`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").InputSignal<number>` |\n| max | no | `import(\"@angular/core\").InputSignal<number>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/radio","source":"skills/neural-native/references/api/radio.md","text":"# @neural-ui/native/radio\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuRadioGroupComponent\n\nSelector: `neu-radio`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| haptic | no | `import(\"@angular/core\").InputSignal<false \\| NeuHapticFeedback>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/rating","source":"skills/neural-native/references/api/rating.md","text":"# @neural-ui/native/rating\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuRatingComponent\n\nSelector: `neu-rating`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<number>` |\n| max | no | `import(\"@angular/core\").InputSignal<number>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| clearable | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| clearLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<number>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/select","source":"skills/neural-native/references/api/select.md","text":"# @neural-ui/native/select\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuSelectComponent\n\nSelector: `neu-select`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| multiple | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| values | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| searchable | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| searchLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| searchPlaceholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valuesChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\n## NeuSelectItemContext\n\n```typescript\nexport type NeuSelectItemContext = NeuListboxItemContext;\n```\n\n## NeuSelectItemDirective\n\nSelector: `ng-template[neuSelectItem]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n\n## NeuSelectSelectedContext\n\n```typescript\nexport interface NeuSelectSelectedContext {\n readonly $implicit: readonly NeuOption[];\n readonly value: string;\n readonly values: readonly string[];\n readonly placeholder: string;\n}\n```\n\n## NeuSelectSelectedDirective\n\nSelector: `ng-template[neuSelectSelected]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/sidebar","source":"skills/neural-native/references/api/sidebar.md","text":"# @neural-ui/native/sidebar\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuSidebarComponent\n\nSelector: `neu-sidebar`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| title | yes | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| fullWidth | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| navigate | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| opened | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| dismissed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/skeleton","source":"skills/neural-native/references/api/skeleton.md","text":"# @neural-ui/native/skeleton\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuSkeletonAnimation\n\n```typescript\nexport type NeuSkeletonAnimation = 'pulse' | 'none';\n```\n\n## NeuSkeletonComponent\n\nSelector: `neu-skeleton`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| lines | no | `import(\"@angular/core\").InputSignal<number>` |\n| variant | no | `import(\"@angular/core\").InputSignal<NeuSkeletonVariant>` |\n| width | no | `import(\"@angular/core\").InputSignal<string \\| number \\| undefined>` |\n| height | no | `import(\"@angular/core\").InputSignal<number \\| undefined>` |\n| borderRadius | no | `import(\"@angular/core\").InputSignal<number>` |\n| gap | no | `import(\"@angular/core\").InputSignal<number>` |\n| lastLineWidth | no | `import(\"@angular/core\").InputSignal<string \\| number>` |\n| animation | no | `import(\"@angular/core\").InputSignal<NeuSkeletonAnimation>` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuSkeletonVariant\n\n```typescript\nexport type NeuSkeletonVariant = 'text' | 'rect' | 'circle';\n```\n"},{"id":"references/api/slider","source":"skills/neural-native/references/api/slider.md","text":"# @neural-ui/native/slider\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuSliderComponent\n\nSelector: `neu-slider`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| haptic | no | `import(\"@angular/core\").InputSignal<false \\| NeuHapticFeedback>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<number>` |\n| min | no | `import(\"@angular/core\").InputSignal<number>` |\n| max | no | `import(\"@angular/core\").InputSignal<number>` |\n| step | no | `import(\"@angular/core\").InputSignal<number>` |\n| showButtons | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| increaseLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| decreaseLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<number>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/speed-dial","source":"skills/neural-native/references/api/speed-dial.md","text":"# @neural-ui/native/speed-dial\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuSpeedDialAction\n\n```typescript\nexport interface NeuSpeedDialAction extends NeuOption {\n readonly svg?: string;\n}\n```\n\n## NeuSpeedDialComponent\n\nSelector: `neu-speed-dial`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| actions | no | `import(\"@angular/core\").InputSignal<readonly NeuSpeedDialAction[]>` |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| activated | `import(\"@angular/core\").OutputEmitterRef<string>` |\n"},{"id":"references/api/spinner","source":"skills/neural-native/references/api/spinner.md","text":"# @neural-ui/native/spinner\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuSpinnerComponent\n\nSelector: `neu-spinner`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| size | no | `import(\"@angular/core\").InputSignal<\"small\" \\| \"large\">` |\n| active | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| showLabel | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/stats-card","source":"skills/neural-native/references/api/stats-card.md","text":"# @neural-ui/native/stats-card\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuStatsCardComponent\n\nSelector: `neu-stats-card`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| value | yes | `import(\"@angular/core\").InputSignal<string \\| number>` |\n| change | no | `import(\"@angular/core\").InputSignal<string>` |\n| description | no | `import(\"@angular/core\").InputSignal<string>` |\n| svg | no | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/stepper","source":"skills/neural-native/references/api/stepper.md","text":"# @neural-ui/native/stepper\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuStepperComponent\n\nSelector: `neu-stepper`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| steps | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| activeStep | no | `import(\"@angular/core\").ModelSignal<number>` |\n| linear | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| completed | no | `import(\"@angular/core\").InputSignal<readonly string[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| previousLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| nextLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| finishLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| activeStepChange | `import(\"@angular/core\").ModelSignal<number>` |\n| finished | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\nSupported imperative members:\n\n```typescript\ngoTo(index: number): void;\n```\n"},{"id":"references/api/switch","source":"skills/neural-native/references/api/switch.md","text":"# @neural-ui/native/switch\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuSwitchComponent\n\nSelector: `neu-switch`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| haptic | no | `import(\"@angular/core\").InputSignal<false \\| NeuHapticFeedback>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| labelPosition | no | `import(\"@angular/core\").InputSignal<\"left\" \\| \"right\">` |\n| size | no | `import(\"@angular/core\").InputSignal<NeuSize>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n| checked | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| checkedChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/tabs","source":"skills/neural-native/references/api/tabs.md","text":"# @neural-ui/native/tabs\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NEU_TABS\n\n```typescript\nNEU_TABS: InjectionToken<{\n value: Signal<string>;\n tabs?: Signal<readonly NeuOption[]>;\n}>\n```\n\n## NeuTabPanelComponent\n\nSelector: `neu-tab-panel`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| id | yes | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n\n## NeuTabsComponent\n\nSelector: `neu-tabs`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| tabs | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignal<boolean>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n"},{"id":"references/api/textarea","source":"skills/neural-native/references/api/textarea.md","text":"# @neural-ui/native/textarea\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuTextareaComponent\n\nSelector: `neu-textarea`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| maxLength | no | `import(\"@angular/core\").InputSignalWithTransform<number \\| undefined, number \\| undefined>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/theme","source":"skills/neural-native/references/api/theme.md","text":"# @neural-ui/native/theme\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuThemeComponent\n\nSelector: `neu-theme`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| scheme | no | `import(\"@angular/core\").InputSignal<NeuColorScheme>` |\n| tokens | no | `import(\"@angular/core\").InputSignal<Partial<NeuTokens>>` |\n\n| Output | Type |\n| --- | --- |\n\nSupported imperative members:\n\n```typescript\nreadonly resolvedTokens: import(\"@angular/core\").Signal<Readonly<NeuTokens>>;\n```\n"},{"id":"references/api/timeline","source":"skills/neural-native/references/api/timeline.md","text":"# @neural-ui/native/timeline\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuTimelineComponent\n\nSelector: `neu-timeline`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| completedLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| pendingLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| items | no | `import(\"@angular/core\").InputSignal<readonly (NeuOption & {\n readonly date?: string;\n readonly done?: boolean;\n})[]>` |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/api/toast","source":"skills/neural-native/references/api/toast.md","text":"# @neural-ui/native/toast\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuToastComponent\n\nSelector: `neu-toast`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| open | no | `import(\"@angular/core\").ModelSignal<boolean>` |\n| message | yes | `import(\"@angular/core\").InputSignal<string>` |\n| duration | no | `import(\"@angular/core\").InputSignal<number>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| actionLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n| openChange | `import(\"@angular/core\").ModelSignal<boolean>` |\n| action | `import(\"@angular/core\").OutputEmitterRef<void>` |\n| dismissed | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/toggle-button-group","source":"skills/neural-native/references/api/toggle-button-group.md","text":"# @neural-ui/native/toggle-button-group\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuToggleButtonGroupComponent\n\nSelector: `neu-toggle-button-group`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| options | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| multiple | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| tone | no | `import(\"@angular/core\").InputSignal<NeuTone>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/tokens","source":"skills/neural-native/references/api/tokens.md","text":"# Native theme tokens\n\nGenerated from @neural-ui/native@0.1.0-beta.7, NeuTokens and the literal light/dark defaults.\nApply typed overrides through neu-theme. Optional semantic inks resolve from surfaces when not supplied; these are not the Web v2 CSS token catalogue.\n\n| Token | Type | Optional | Light default | Dark default |\n| --- | --- | --- | --- | --- |\n| `accent` | `string` | no | `#006ee6` | `#b5c4ff` |\n| `onAccent` | `string` | no | `#ffffff` | `#172955` |\n| `surface` | `string` | no | `#ffffff` | `#1b2230` |\n| `canvas` | `string` | no | `#f4f5f7` | `#111722` |\n| `text` | `string` | no | `#172033` | `#edf1fa` |\n| `muted` | `string` | no | `#596477` | `#b4bed0` |\n| `border` | `string` | no | `#a5afbf` | `#6c7a92` |\n| `tonal` | `string` | no | `#eff6ff` | `#293756` |\n| `danger` | `string` | no | `#dc2626` | `#ffb4ab` |\n| `success` | `string` | no | `#15803d` | `#8fdeb1` |\n| `warning` | `string` | no | `#f59e0b` | `#efd48f` |\n| `warningText` | `string` | no | `#92400e` | `#efd48f` |\n| `onWarning` | `string` | no | `#111827` | `#111722` |\n| `info` | `string` | no | `#0064d1` | `#7dd3fc` |\n| `accentText` | `string` | yes | `resolved from theme surfaces` | `resolved from theme surfaces` |\n| `dangerText` | `string` | yes | `resolved from theme surfaces` | `resolved from theme surfaces` |\n| `successText` | `string` | yes | `resolved from theme surfaces` | `resolved from theme surfaces` |\n| `infoText` | `string` | yes | `resolved from theme surfaces` | `resolved from theme surfaces` |\n| `radius` | `number` | no | `12` | `12` |\n| `spacing` | `number` | no | `16` | `16` |\n| `fontSize` | `number` | no | `16` | `16` |\n| `duration` | `number` | no | `120` | `120` |\n| `surfaceBorder` | `string` | yes | `#e1e6ed` | `#354052` |\n| `divider` | `string` | yes | `#e7ebf0` | `#303b4c` |\n| `surfaceSecondary` | `string` | yes | `#eef1f5` | `#222d3f` |\n| `mediaCanvas` | `string` | yes | `#111722` | `#111722` |\n| `mediaText` | `string` | yes | `#edf1fa` | `#edf1fa` |\n| `mediaBarStyle` | `\"light\" \\| \"dark\"` | yes | `light` | `light` |\n"},{"id":"references/api/toolbar","source":"skills/neural-native/references/api/toolbar.md","text":"# @neural-ui/native/toolbar\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuToolbarAction\n\n```typescript\nexport interface NeuToolbarAction extends NeuOption {\n readonly svg?: string;\n}\n```\n\n## NeuToolbarComponent\n\nSelector: `neu-toolbar`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| actions | no | `import(\"@angular/core\").InputSignal<readonly NeuToolbarAction[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n\n| Output | Type |\n| --- | --- |\n| activated | `import(\"@angular/core\").OutputEmitterRef<string>` |\n"},{"id":"references/api/tree-select","source":"skills/neural-native/references/api/tree-select.md","text":"# @neural-ui/native/tree-select\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuTreeSelectComponent\n\nSelector: `neu-tree-select`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| nodes | no | `import(\"@angular/core\").InputSignal<readonly NeuTreeNode[]>` |\n| leafOnly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| placeholder | no | `import(\"@angular/core\").InputSignal<string>` |\n| closeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| expandLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| label | yes | `import(\"@angular/core\").InputSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| invalid | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| touched | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| hint | no | `import(\"@angular/core\").InputSignal<string>` |\n| required | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| requiredLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| error | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/tree","source":"skills/neural-native/references/api/tree.md","text":"# @neural-ui/native/tree\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuTreeComponent\n\nSelector: `neu-tree`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| nodes | no | `import(\"@angular/core\").InputSignal<readonly NeuTreeNode[]>` |\n| expanded | no | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| value | no | `import(\"@angular/core\").ModelSignal<string>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| readonly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| leafOnly | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| expandLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| expandedChange | `import(\"@angular/core\").ModelSignal<readonly string[]>` |\n| valueChange | `import(\"@angular/core\").ModelSignal<string>` |\n| selected | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| touch | `import(\"@angular/core\").OutputEmitterRef<void>` |\n"},{"id":"references/api/uploader","source":"skills/neural-native/references/api/uploader.md","text":"# @neural-ui/native/uploader\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NEU_FILE_PICKER\n\n```typescript\nNEU_FILE_PICKER: InjectionToken<NeuFilePicker>\n```\n\n## NeuFile\n\n```typescript\nexport interface NeuFile {\n readonly uri: string;\n readonly name: string;\n readonly size?: number;\n readonly mimeType?: string;\n}\n```\n\n## NeuFilePicker\n\n```typescript\nexport interface NeuFilePicker {\n pick(options: {\n type: readonly string[];\n multiple: boolean;\n }): Promise<readonly NeuFile[] | null>;\n}\n```\n\n## NeuUpload\n\n```typescript\nexport type NeuUpload = (file: NeuFile, progress: (percent: number) => void, signal: AbortSignal) => Promise<void>;\n```\n\n## NeuUploaderComponent\n\nSelector: `neu-uploader`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| label | no | `import(\"@angular/core\").InputSignal<string>` |\n| files | no | `import(\"@angular/core\").ModelSignal<readonly NeuUploadItem[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| types | no | `import(\"@angular/core\").InputSignal<readonly string[]>` |\n| multiple | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| maxFiles | no | `import(\"@angular/core\").InputSignal<number>` |\n| maxBytes | no | `import(\"@angular/core\").InputSignal<number>` |\n| chooseLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| uploadLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| removeLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n| stateLabels | no | `import(\"@angular/core\").InputSignal<Readonly<Record<\"error\" \\| \"selected\" \\| \"uploading\" \\| \"complete\", string>>>` |\n| upload | no | `import(\"@angular/core\").InputSignal<NeuUpload \\| undefined>` |\n\n| Output | Type |\n| --- | --- |\n| filesChange | `import(\"@angular/core\").ModelSignal<readonly NeuUploadItem[]>` |\n| selected | `import(\"@angular/core\").OutputEmitterRef<readonly NeuFile[]>` |\n| completed | `import(\"@angular/core\").OutputEmitterRef<NeuFile>` |\n| rejected | `import(\"@angular/core\").OutputEmitterRef<string>` |\n\n## NeuUploadItem\n\n```typescript\nexport interface NeuUploadItem {\n readonly id: string;\n readonly file: NeuFile;\n readonly state: \"selected\" | \"uploading\" | \"complete\" | \"error\";\n readonly progress: number;\n readonly error?: string;\n}\n```\n"},{"id":"references/api/virtual-list","source":"skills/neural-native/references/api/virtual-list.md","text":"# @neural-ui/native/virtual-list\n\nVerified against @neural-ui/native@0.1.0-beta.7. Generated; do not edit.\n\nTypes below are package contracts, not complete application examples. Referenced Angular/internal declaration types do not authorize imports from internal entrypoints.\n\n## NeuVirtualListComponent\n\nSelector: `neu-virtual-list`\n\n| Input | Required | Type |\n| --- | --- | --- |\n| items | no | `import(\"@angular/core\").InputSignal<readonly NeuOption[]>` |\n| disabled | no | `import(\"@angular/core\").InputSignalWithTransform<boolean, unknown>` |\n| estimatedItemHeight | no | `import(\"@angular/core\").InputSignal<number>` |\n| height | no | `import(\"@angular/core\").InputSignal<number>` |\n| emptyLabel | no | `import(\"@angular/core\").InputSignal<string>` |\n\n| Output | Type |\n| --- | --- |\n| selected | `import(\"@angular/core\").OutputEmitterRef<string>` |\n| endReached | `import(\"@angular/core\").OutputEmitterRef<void>` |\n\nSupported imperative members:\n\n```typescript\nscrollToIndex(index: number): void;\nscrollToTop(): void;\n```\n\n## NeuVirtualListItemContext\n\n```typescript\nexport interface NeuVirtualListItemContext {\n readonly $implicit: NeuOption;\n readonly index: number;\n readonly disabled: boolean;\n}\n```\n\n## NeuVirtualListItemDirective\n\nSelector: `ng-template[neuVirtualListItem]`\n\n| Input | Required | Type |\n| --- | --- | --- |\n\n| Output | Type |\n| --- | --- |\n"},{"id":"references/components","source":"skills/neural-native/references/components.md","text":"# Components and public contracts\n\nUse the generated [API index](api/index.md); it contains 67 typed entrypoints for the 64 component entries plus the root, theme and foundation. Native barrel exports duplicate many secondary exports; prefer secondary imports for discovery and application code.\n\nRead the specific contract before using a binding. Common differences from Neural Web:\n\n| Concern | Native contract |\n| --- | --- |\n| Action | `NeuButtonComponent`, `neu-button`, required `label`, output `pressed` |\n| Text control | `neu-input`, inherited `value`/`valueChange`, label, hint, required, disabled, readonly and validation inputs |\n| Checkbox or Switch | `checked`/`checkedChange`, not a string `value` |\n| Modal | Required `title`, `open`/`openChange`, `closed`, platform presentation events |\n| Collections | `NeuOption` uses stable `id`, `label`, optional `description` and `disabled` |\n| Data View | `items`, `query`, `descending`, `selected` and `refresh`; no Web Table row API |\n\nThe API references merge inherited input/output declarations; a binding absent from the derived class's own metadata may still be public. The references do not expose protected methods or Angular `ɵ` metadata. They do not authorize importing an internal physical file such as `@neural-ui/native/dist/foundation/mobile.js`.\n\nLoad collection states explicitly: loading, error, empty, populated, selected and disabled. Refresh emits an application request; provide real data loading or clearly explain an in-memory demonstration. Match the surrounding description to what the example actually does.\n\nSee [collections example](../examples/collections.ts), [forms](forms.md) and [customization](customization.md).\n"},{"id":"references/customization","source":"skills/neural-native/references/customization.md","text":"# Projection and typed templates\n\nChoose the customization API actually exported by the component; Web's similarly named directives do not apply.\n\n- Card and Panel accept projected content and their exported header/footer marker directives. Use native `view`/`text` inside them.\n- Modal and Bottom Sheet project body content and export `NeuModalHeaderDirective`/`NeuModalFooterDirective` or their Bottom Sheet counterparts for `ng-template` slots. Keep title and close semantics accessible.\n- Data View exports `NeuDataViewItemDirective` and `NeuDataViewItemContext`; Select exports item/selected directives and contexts. Listbox, Gallery and Virtual List have their own contracts. Read the corresponding [API entry](api/index.md) before choosing context fields.\n\nFor Select, the selected-template context contains the selected option array as `$implicit`, plus `value`, `values` and `placeholder`. Its item template uses the Listbox item context. Do not assume an undocumented `row`, `record`, `onSelect` or Web template variable.\n\nThe [overlay example](../examples/overlays.ts) uses a real `neuModalFooter` slot and application-owned `open` state. The supplied footer button closes the requested state; native presentation completion is a separate event. `dismissed` is an iOS native completion event and does not mean Android has failed when it is absent.\n\nAvoid placing a second large modal/calendar over a constrained modal body unless the flow and the actual platform presentation support it. Verify overflow and dismissal on the target device, not only in the browser preview.\n"},{"id":"references/forms","source":"skills/neural-native/references/forms.md","text":"# Forms and owned state\n\nUse writable signals in the application. An input's `value` model owns text; Checkbox/Switch use `checked`. Single Select uses string `value`; multiple Select uses `values: readonly string[]`. Keep option IDs stable when translating labels.\n\n```html\n<neu-input label=\"Full name\" [(value)]=\"name\" [required]=\"true\" />\n<neu-select label=\"Team\" [options]=\"teams\" [(value)]=\"team\" />\n<neu-checkbox label=\"Product updates\" [(checked)]=\"updates\" />\n<neu-button label=\"Save profile\" (pressed)=\"save()\" />\n```\n\nImport every component used; see the complete [forms example](../examples/forms.ts). `pressed` requests an action, while the application validates and saves. Do not attach a Web `click` handler to a Native Neural component in place of its declared output.\n\nAngular Signal Forms is optional. If used, import `FormField` from the matching `@angular/forms/signals` release and bind `[formField]` to the actual form tree field. Let that form own the control; do not also bind its `value`/`checked` model or a second form owner. Run strict Angular template checking for the actual field types. Classic CVA assumptions and Web Neural examples are not substitutes for checking the Native control.\n\nNeural's `NeuFormFieldComponent` arranges projected content and messages. It is not Angular's `FormField` directive. Apply the accessible name and requirement to the projected control itself.\n\nLocalize exposed hint, error, empty, search and action labels. Check date/number contracts for supported formats instead of storing translated display strings as canonical values.\n"},{"id":"references/haptics","source":"skills/neural-native/references/haptics.md","text":"# Optional native haptic feedback\n\nAvailable from `@neural-ui/native@0.1.0-beta.5`. Feedback is off unless the application opts in. Ordinary component imports do not load the optional adapter.\n\nFor a native app, install the compatible module and rebuild the application:\n\n```sh\nnpx expo install expo-haptics\n```\n\nAdd the provider to the existing Angular Native `mount()` options, preserving the template's other providers and native renderer setup:\n\n```ts\nimport { provideNeuHaptics } from '@neural-ui/native/haptics';\n\n// In the existing mount options:\nproviders: [provideNeuHaptics({\n enabled: true,\n pressStyle: 'light',\n minimumIntervalMs: 80,\n})]\n```\n\nInject `NeuHaptics` from the optional entry or from `@neural-ui/native/foundation`. Its public members are `enabled`, `available` and `play()`. `enabled` is a writable signal and supports runtime opt-out without recreating controls. `available` detects the linked native module, not the presence or state of a vibration motor. `play()` returns whether a request was dispatched; it does not confirm physical vibration.\n\nButton and internal pressable actions use the configured press style. Checkbox, Switch, Radio and Slider request a selection tick for user value changes. Disabled/readonly controls, programmatic model changes, an already-selected radio and a slider already at its bound do not request an extra selection tick. The global interval coalesces rapid calls.\n\nButton, IconButton, Checkbox, Switch, Radio and Slider expose `haptic`. Use `[haptic]=\"false\"` to silence a control, `press` to inherit the configured press style, or `selection`, `light`, `medium`, `heavy`, `soft`, `rigid`, `success`, `warning` or `error`. Do not invent this input for other component APIs merely because their internal actions can use the shared service.\n\nExplicit operation feedback belongs to the application. Call `play('success')` only after a real operation succeeds. Silence a button's ordinary press feedback when its handler explicitly requests a notification pulse, avoiding two requests for one tap. Haptics complement visible feedback and accessible state.\n\nThe [preference example](../examples/haptics.ts) runs safely without the adapter; it reports an unavailable request instead of pretending the web preview vibrated. Native applications opt in through the provider above. The browser test checks fallback behavior, not physical output. Emulators/simulators can verify calls into a real native module; physical sensation needs hardware.\n\nPublic contracts: [haptics](api/haptics.md), [foundation](api/foundation.md).\nPublished guide: https://native.neuralui.org/en/haptics\n"},{"id":"references/installation","source":"skills/neural-native/references/installation.md","text":"# Installation and renderer boundary\n\nReviewed: Neural Native `0.1.0-beta.7`, Angular Native `0.22.2`, Angular `22.2.2`, TypeScript `6.0.3`. Use the app's generated tooling and lockfile.\n\nFor a new app, follow the official template:\n\n```sh\nnpx create-expo-app@latest my-neural-app --template @ng-native/template@0.22.2\ncd my-neural-app\nnpm install --save-exact @neural-ui/native@0.1.0-beta.7\n```\n\nIn an existing compatible app only the last command is needed. Keep `@ng-native/components`, `device`, `fabric`, `icons` and the app's other framework packages aligned to the same compatible release. The package requires `react-native-svg` 15.15.4. Its published README's tested application baseline is Expo 57.0.27 / React Native 0.86.3; additional native modules must exist in the Expo/runtime or development build.\n\nThe Angular Native 0.22.2 template uses Expo 58 and React Native 0.88. Preserve that runtime rather than downgrading a generated app to the laboratory's SDK 57 baseline. An isolated SDK 58 consumer is checked separately with strict peer installation, component tests and Android/iOS bundles; those checks do not replace installed-app validation for that runtime. Install optional native modules with the template's Expo tooling so their versions match the application.\n\nThe strict SDK 58 fixture uses npm 11.21.0 and matching React-family packages at 19.3.0. If npm 10 fails with an Arborist error, check framework peers first and use a compatible npm 11 release. If optional `react-dom` or `react-server-dom-webpack` packages cause a React peer conflict, align their patch version with the template's React version instead of changing React Native or bypassing peer checks.\n\nThere is no Neural global CSS stylesheet or mandatory Web provider to install. Compose `neu-theme` and the controls in the generated `App`; preserve its exported name and bootstrapping. Run the template's `npm start` workflow and open its compatible native host.\n\n`@ng-native/web` 0.22.2 is a browser host for previews using `mount` and its Vite plugin. Use it for rapid interaction feedback, while retaining actual device verification for safe areas, native presentations, file selection and accessibility. Do not import `@angular/platform-browser` bootstrap as a substitute for the native app entry point.\n\nUse the skill's [forms example](../examples/forms.ts) inside the app's screen/safe-area shell. Wrap the app with `SafeAreaProvider` and use `SafeAreaView` for content that must respect insets.\n\nOfficial setup: https://ng-native.com/guide/getting-started\nLibrary installation: https://native.neuralui.org/en/installation\n"},{"id":"references/layout-accessibility","source":"skills/neural-native/references/layout-accessibility.md","text":"# Layout, accessibility and localization\n\nUse native primitives and the app's safe-area shell. `SafeAreaProvider` supplies insets; `SafeAreaView` applies them. Respect all needed edges in landscape, not just the top inset in portrait. Let collection content scroll inside a bounded layout, and leave deliberate padding/gaps between labels, fields, cards and buttons.\n\n`ScrollView`'s `contentContainerStyle` controls content padding/gap. When a focused field must not consume the first tap on another control, choose `keyboardShouldPersistTaps=\"handled\"` for that flow and verify the actual renderer behavior. Avoid focusing a search input on opening every selection popup if that unnecessarily summons the mobile keyboard.\n\nGive Neural buttons visible labels and icon actions useful accessible names through their declared inputs. Use native `text` for readable content. Keep selection visible without relying on color alone, and preserve reduced-motion behavior when styling transitions.\n\nAngular Native's `aria-live` and `accessibilityLiveRegion` announce updates on Android. iOS does not support those live regions: inject `Accessibility` from `@ng-native/device` and call `announce(message)` when an important application change is not conveyed by a focus change. Announce the change once rather than from every render. Verify spoken feedback with the platform screen reader; neither browser output nor a simulator screenshot proves it was spoken.\n\nTranslate the component's exposed action/search/empty/error/close labels and date locale. Keep option IDs and stored values independent of language. Preserve prerelease names such as Beta/Alpha as product/version terms rather than translating a package version.\n\nExercise each changed flow at a narrow width, both orientations, enlarged system text and light/dark themes. Check keyboard dismissal, scrolling, focus and return from overlays. Browser preview checks help catch clipping and action failures; they do not verify native VoiceOver/TalkBack announcements, touch exploration or native module availability. Report these as separate checks, with observed evidence rather than an accessibility certification.\n"},{"id":"references/navigation","source":"skills/neural-native/references/navigation.md","text":"# Navigation and composed screens\n\n`NeuNavComponent` is a selection/navigation control, not an application router. Supply `NeuNavItem[]`, maintain the `value` model and handle `navigate` when the app needs a navigation side effect. Do not perform the same navigation in both valueChange and navigate.\n\nThe [navigation example](../examples/navigation.ts) changes real screen content through owned state. It is an in-memory example, not a claim that a native router or persisted history has been configured.\n\nFor an actual application stack, follow Angular Native's routing documentation and the generated app configuration. Neural emits actions and state; the app owns routes, back behavior and persistence. Do not transplant Web v2 routing providers, a browser URL strategy or a Web dock into a native app without checking the framework contract.\n\nKeep a bottom navigation bar full-width in its intended layout, with readable labels and a clear selected state. Apply bottom safe-area insets at the app shell; do not add identical insets to both the shell and every nested screen. Provide distinct useful content for each destination.\n\nFramework source: https://ng-native.com\n"},{"id":"references/theming","source":"skills/neural-native/references/theming.md","text":"# Native themes and tokens\n\nWrap a screen or app in `NeuThemeComponent` from `@neural-ui/native/theme`. `scheme` is `system`, `light` or `dark`. `tokens` is `Partial<NeuTokens>` from `@neural-ui/native/foundation`; `resolvedTokens` exposes the resolved read-only theme.\n\nThe generated [token contract](api/tokens.md) lists all 28 public `NeuTokens` properties. Numeric radius, spacing, fontSize and duration are native values, not CSS strings. Optional semantic text inks resolve from theme surfaces when omitted. Light and dark defaults are recorded in the generated API snapshot.\n\n```ts\nimport type { NeuTokens } from '@neural-ui/native/foundation';\nconst brand = { accent: '#3b5bdb', onAccent: '#ffffff', radius: 16 } satisfies Partial<NeuTokens>;\n```\n\nBind `[tokens]=\"brand\"` to `neu-theme`. Fixed overrides apply in both modes, so use mode-specific values where a brand color needs different readable ink in dark mode. The [theme example](../examples/theme.ts) demonstrates a mode switch with a readable palette in each mode.\n\nUse supported native styles and resolved `--neu-*` theme variables, such as `color: var(--neu-text)` or `background-color: var(--neu-surface)`. Do not copy the Web v2 catalogue's hundreds of CSS tokens or assume each is a Native override. Component-specific styles still belong to the actual renderer; browser DOM CSS and arbitrary layout features may not map to iOS/Android.\n\nPreserve safe-area and text-scaling behavior when changing density. Customizing a theme does not justify changing a control's data or action contract.\n"},{"id":"references/versioning","source":"skills/neural-native/references/versioning.md","text":"# Versions, maintenance and optional MCP\n\nThis skill release is 0.1.3 and its verified package baseline is `@neural-ui/native@0.1.0-beta.7`, Angular Native 0.22.2 and Angular 22.2.2. Beta APIs can change before 1.0. The installed package and lockfile are the contract for an existing application.\n\nUse `neural-ui-mcp@0.2.6` for this Native baseline and Web Core 2.0.4. MCP 0.2.2 retains Native beta.2; use that release for applications that still require the older contract. MCP 0.1.0 only understands Web and cannot answer Native requests.\n\nApplications staying on Angular Native 0.21.0 should keep Neural Native beta.6, Native skill 0.1.2 and MCP 0.2.5. Choose the matching skill/MCP baseline explicitly; installing these development tools does not migrate an application's framework or make older version requests valid in a newer catalogue.\n\nUse an explicitly selected Native call:\n\n```json\n{\"library\":\"native\",\"version\":\"0.1.0-beta.7\",\"entrypoint\":\"@neural-ui/native/input\",\"symbol\":\"NeuInputComponent\"}\n```\n\nThis is an input for `get_api`. `list_components`, `search_documentation`, `get_example` and `validate_usage` use the same `library`/`version` fields. Native example IDs are forms, collections, navigation, overlays, theme and haptics. Resources use `neural-native://docs/` or `neural-native://examples/`; Web resources retain `neural-ui://`.\n\nThe server is local stdio and read-only. It does not install dependencies, inspect user files, execute supplied code, modify projects or certify a build. The skill also works without MCP using its packaged references.\n\nFor maintainers, update the exact dependency and reviewed source/integrity record, regenerate the declaration-derived API, review removed/changed bindings and token defaults, adapt examples and rerun compilation, browser and MCP consumer tests. Do not silently serve another version under the existing baseline. Keep native device validation separate from Web preview results.\n"}],"examples":[{"id":"examples/collections","source":"skills/neural-native/examples/collections.ts","text":"import { Component, signal } from '@angular/core';\nimport { Text, View } from '@ng-native/components';\nimport type { NeuOption } from '@neural-ui/native';\nimport { NeuDataViewComponent } from '@neural-ui/native/data-view';\n\n@Component({\n selector: 'native-collection-example',\n imports: [Text, View, NeuDataViewComponent],\n template: `\n <view class=\"content\">\n <text class=\"heading\">The people behind it.</text>\n <text class=\"muted\">Find a teammate, change the order or refresh this local list.</text>\n <neu-data-view [items]=\"people\" [(query)]=\"query\" [(descending)]=\"descending\"\n searchLabel=\"Search people\" sortLabel=\"Reverse name order\" refreshLabel=\"Refresh local list\"\n emptyLabel=\"No people match your search\" (selected)=\"select($event)\" (refresh)=\"refresh()\" />\n <text class=\"muted\">{{ feedback() }}</text>\n </view>\n `,\n styles: `\n .content { padding: 20px; gap: 16px; }\n .heading { font-size: 26px; font-weight: 700; color: var(--neu-text); }\n .muted { font-size: 14px; color: var(--neu-muted); }\n `,\n})\nexport class NativeCollectionsExample {\n readonly query = signal('');\n readonly descending = signal(false);\n readonly feedback = signal('Choose a person to see their name.');\n readonly people: readonly NeuOption[] = [\n { id: 'ada', label: 'Ada Lovelace', description: 'Product designer' },\n { id: 'grace', label: 'Grace Hopper', description: 'Mobile engineer' },\n { id: 'linus', label: 'Linus Torvalds', description: 'Platform engineer' },\n ];\n select(id: string): void {\n this.feedback.set(`Selected: ${this.people.find(person => person.id === id)?.label ?? id}`);\n }\n refresh(): void {\n this.query.set('');\n this.feedback.set('Local list refreshed. No server request was made.');\n }\n}\n"},{"id":"examples/forms","source":"skills/neural-native/examples/forms.ts","text":"import { Component, signal } from '@angular/core';\nimport { Text, View } from '@ng-native/components';\nimport type { NeuOption } from '@neural-ui/native';\nimport { NeuButtonComponent } from '@neural-ui/native/button';\nimport { NeuCheckboxComponent } from '@neural-ui/native/checkbox';\nimport { NeuInputComponent } from '@neural-ui/native/input';\nimport { NeuSelectComponent } from '@neural-ui/native/select';\n\n@Component({\n selector: 'native-profile-example',\n imports: [Text, View, NeuButtonComponent, NeuCheckboxComponent, NeuInputComponent, NeuSelectComponent],\n template: `\n <view class=\"content\">\n <text class=\"eyebrow\">YOUR WORKSPACE</text>\n <text class=\"heading\">Make it yours.</text>\n <text class=\"muted\">A name and a team to help everyone find you.</text>\n <neu-input label=\"Full name\" [(value)]=\"name\" [required]=\"true\" hint=\"Visible to your teammates\" />\n <neu-select label=\"Team\" [options]=\"teams\" [(value)]=\"team\" closeLabel=\"Close teams\" />\n <neu-checkbox label=\"Send me product updates\" [(checked)]=\"updates\" />\n <neu-button label=\"Save profile\" [fullWidth]=\"true\" (pressed)=\"save()\" />\n <text class=\"muted\">{{ feedback() }}</text>\n </view>\n `,\n styles: `\n .content { padding: 20px; gap: 16px; }\n .eyebrow { font-size: 12px; color: var(--neu-muted); }\n .heading { font-size: 28px; font-weight: 700; color: var(--neu-text); }\n .muted { font-size: 14px; color: var(--neu-muted); }\n `,\n})\nexport class NativeFormsExample {\n readonly name = signal('Ada Lovelace');\n readonly team = signal('design');\n readonly updates = signal(false);\n readonly feedback = signal('Changes stay in this example.');\n readonly teams: readonly NeuOption[] = [\n { id: 'design', label: 'Design', description: 'Product interfaces' },\n { id: 'engineering', label: 'Engineering', description: 'Application development' },\n ];\n save(): void {\n this.feedback.set(this.name().trim() ? `Saved locally: ${this.name().trim()}` : 'Enter your name.');\n }\n}\n"},{"id":"examples/haptics","source":"skills/neural-native/examples/haptics.ts","text":"import { Component, inject, signal } from '@angular/core';\nimport { Text, View } from '@ng-native/components';\nimport { NeuHaptics } from '@neural-ui/native/foundation';\nimport { NeuSwitchComponent } from '@neural-ui/native/switch';\nimport { NeuButtonComponent } from '@neural-ui/native/button';\n\n@Component({\n selector: 'native-haptics-example',\n imports: [Text, View, NeuSwitchComponent, NeuButtonComponent],\n template: `\n <view class=\"content\">\n <neu-switch label=\"Touch feedback\"\n [checked]=\"haptics.enabled()\"\n (checkedChange)=\"haptics.enabled.set($event)\"\n [haptic]=\"false\" />\n <neu-button label=\"Test feedback\" [haptic]=\"false\"\n [disabled]=\"!haptics.enabled()\" (pressed)=\"testFeedback()\" />\n <text>{{ feedback() }}</text>\n </view>\n `,\n styles: `.content { padding: 24px; gap: 16px; }`,\n})\nexport class NativeHapticsExample {\n readonly haptics = inject(NeuHaptics);\n readonly feedback = signal('Feedback is optional.');\n\n testFeedback(): void {\n this.feedback.set(this.haptics.play('success')\n ? 'Native feedback requested.'\n : 'Native feedback is unavailable or disabled.');\n }\n}\n"},{"id":"examples/navigation","source":"skills/neural-native/examples/navigation.ts","text":"import { Component, signal } from '@angular/core';\nimport { Text, View } from '@ng-native/components';\nimport { NeuCardComponent } from '@neural-ui/native/card';\nimport { NeuNavComponent, type NeuNavItem } from '@neural-ui/native/nav';\n\n@Component({\n selector: 'native-navigation-example',\n imports: [Text, View, NeuCardComponent, NeuNavComponent],\n template: `\n <view class=\"screen\">\n <view class=\"body\">\n @switch (destination()) {\n @case ('projects') {\n <text class=\"heading\">Room for the next idea.</text>\n <neu-card title=\"Mobile launch\" description=\"Design review ready\">\n <text class=\"muted\">Three screens to review with your team.</text>\n </neu-card>\n }\n @case ('account') {\n <text class=\"heading\">Your workspace profile.</text>\n <neu-card title=\"Ada Lovelace\" description=\"Product designer\">\n <text class=\"muted\">Design team · Notifications enabled</text>\n </neu-card>\n }\n @default {\n <text class=\"heading\">A good day to make something.</text>\n <neu-card title=\"Today\" description=\"Your team is in sync\">\n <text class=\"muted\">Two reviews complete. One new idea to explore.</text>\n </neu-card>\n }\n }\n </view>\n <neu-nav label=\"Workspace destinations\" [items]=\"destinations\" [(value)]=\"destination\" />\n </view>\n `,\n styles: `\n :host, .screen { flex: 1; }\n .body { flex: 1; padding: 20px; gap: 20px; }\n .heading { font-size: 28px; font-weight: 700; color: var(--neu-text); }\n .muted { font-size: 15px; color: var(--neu-muted); }\n `,\n})\nexport class NativeNavigationExample {\n readonly destination = signal('home');\n readonly destinations: readonly NeuNavItem[] = [\n { id: 'home', label: 'Home' },\n { id: 'projects', label: 'Projects' },\n { id: 'account', label: 'Account' },\n ];\n}\n"},{"id":"examples/overlays","source":"skills/neural-native/examples/overlays.ts","text":"import { Component, signal } from '@angular/core';\nimport { Text, View } from '@ng-native/components';\nimport { NeuButtonComponent } from '@neural-ui/native/button';\nimport { NeuModalComponent, NeuModalFooterDirective } from '@neural-ui/native/modal';\n\n@Component({\n selector: 'native-overlay-example',\n imports: [Text, View, NeuButtonComponent, NeuModalComponent, NeuModalFooterDirective],\n template: `\n <view class=\"content\">\n <text class=\"heading\">One place for your team.</text>\n <text class=\"muted\">A short explanation, with an explicit way back.</text>\n <neu-button label=\"About this workspace\" (pressed)=\"open.set(true)\" />\n <text class=\"muted\">{{ feedback() }}</text>\n <neu-modal title=\"Product workspace\" [(open)]=\"open\" closeLabel=\"Close workspace details\"\n (closed)=\"feedback.set('Workspace details closed.')\">\n <text class=\"message\">A shared place for your team's plans and documents.</text>\n <ng-template neuModalFooter>\n <neu-button label=\"Got it\" size=\"sm\" (pressed)=\"open.set(false)\" />\n </ng-template>\n </neu-modal>\n </view>\n `,\n styles: `\n .content { padding: 20px; gap: 16px; }\n .heading { font-size: 26px; font-weight: 700; color: var(--neu-text); }\n .message { font-size: 16px; color: var(--neu-text); }\n .muted { font-size: 14px; color: var(--neu-muted); }\n `,\n})\nexport class NativeOverlaysExample {\n readonly open = signal(false);\n readonly feedback = signal('Details are closed.');\n}\n"},{"id":"examples/theme","source":"skills/neural-native/examples/theme.ts","text":"import { Component, computed, signal } from '@angular/core';\nimport { Text, View } from '@ng-native/components';\nimport type { NeuTokens } from '@neural-ui/native/foundation';\nimport { NeuThemeComponent } from '@neural-ui/native/theme';\nimport { NeuSwitchComponent } from '@neural-ui/native/switch';\nimport { NeuCardComponent } from '@neural-ui/native/card';\nimport { NeuButtonComponent } from '@neural-ui/native/button';\n\n@Component({\n selector: 'native-theme-example',\n imports: [Text, View, NeuThemeComponent, NeuSwitchComponent, NeuCardComponent, NeuButtonComponent],\n template: `\n <neu-theme [scheme]=\"dark() ? 'dark' : 'light'\" [tokens]=\"brand()\">\n <view class=\"content\">\n <text class=\"heading\">A little more you.</text>\n <neu-switch label=\"Dark appearance\" [(checked)]=\"dark\" />\n <neu-card title=\"Neural, with your palette\" description=\"Shared tokens, real controls\">\n <view class=\"card-content\">\n <text class=\"muted\">Readable surfaces and controls in both appearances.</text>\n <neu-button label=\"Try the brand color\" (pressed)=\"feedback.set('Brand action pressed.')\" />\n </view>\n </neu-card>\n <text class=\"muted\">{{ feedback() }}</text>\n </view>\n </neu-theme>\n `,\n styles: `\n .content { padding: 20px; gap: 16px; background-color: var(--neu-canvas); }\n .card-content { gap: 16px; }\n .heading { font-size: 28px; font-weight: 700; color: var(--neu-text); }\n .muted { font-size: 14px; color: var(--neu-muted); }\n `,\n})\nexport class NativeThemeExample {\n readonly dark = signal(false);\n readonly feedback = signal('Switch appearance to compare the palette.');\n readonly brand = computed(() => ({\n accent: this.dark() ? '#b9b1ff' : '#5941c6',\n onAccent: this.dark() ? '#23164b' : '#ffffff',\n radius: 16,\n } satisfies Partial<NeuTokens>));\n}\n"}]}