orbiq-neural-ui-kit 0.0.1

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orbiq-neural-ui-kit.mjs","sources":["../../../projects/neural-ui-kit/src/lib/button/button.component.ts","../../../projects/neural-ui-kit/src/lib/alert/alert.component.ts","../../../projects/neural-ui-kit/src/lib/avatar/avatar.component.ts","../../../projects/neural-ui-kit/src/lib/badge/badge.component.ts","../../../projects/neural-ui-kit/src/lib/input-labeling/input-labeling.components.ts","../../../projects/neural-ui-kit/src/lib/input-labeling/use-input-labeling.ts","../../../projects/neural-ui-kit/src/lib/checkbox/checkbox.component.ts","../../../projects/neural-ui-kit/src/lib/popover/popover.component.ts","../../../projects/neural-ui-kit/src/lib/dropdown/dropdown.component.ts","../../../projects/neural-ui-kit/src/lib/breadcrumbs/breadcrumbs.component.ts","../../../projects/neural-ui-kit/src/lib/bottom-sheet/bottom-sheet.component.ts","../../../projects/neural-ui-kit/src/lib/text-input/text-input.component.ts","../../../projects/neural-ui-kit/src/lib/textarea/textarea.component.ts","../../../projects/neural-ui-kit/src/lib/error-message/error-message.component.ts","../../../projects/neural-ui-kit/src/lib/form-control/form-control.component.ts","../../../projects/neural-ui-kit/src/lib/radio/radio.component.ts","../../../projects/neural-ui-kit/src/lib/switch/switch.component.ts","../../../projects/neural-ui-kit/src/lib/icon/icon.component.ts","../../../projects/neural-ui-kit/src/lib/spinner/spinner.component.ts","../../../projects/neural-ui-kit/src/lib/loading-indicator/loading-indicator.component.ts","../../../projects/neural-ui-kit/src/lib/loading-text/loading-text.component.ts","../../../projects/neural-ui-kit/src/lib/divider/divider.component.ts","../../../projects/neural-ui-kit/src/lib/form-label/form-label.component.ts","../../../projects/neural-ui-kit/src/lib/tooltip/tooltip.component.ts","../../../projects/neural-ui-kit/src/lib/dialog/dialog.component.ts","../../../projects/neural-ui-kit/src/lib/tabs/tabs.component.ts","../../../projects/neural-ui-kit/src/lib/progress/progress.component.ts","../../../projects/neural-ui-kit/src/lib/skeleton/skeleton.component.ts","../../../projects/neural-ui-kit/src/lib/rating/rating.component.ts","../../../projects/neural-ui-kit/src/lib/slider/slider.component.ts","../../../projects/neural-ui-kit/src/lib/scroll-area/scroll-area.component.ts","../../../projects/neural-ui-kit/src/lib/select/select.component.ts","../../../projects/neural-ui-kit/src/lib/sidebar/sidebar.components.ts","../../../projects/neural-ui-kit/src/lib/toast/toast.ts","../../../projects/neural-ui-kit/src/lib/password/password.component.ts","../../../projects/neural-ui-kit/src/lib/combobox/combobox.component.ts","../../../projects/neural-ui-kit/src/lib/multi-select/multi-select.component.ts","../../../projects/neural-ui-kit/src/lib/file-uploader/file-uploader.component.ts","../../../projects/neural-ui-kit/src/lib/hover-card/hover-card.component.ts","../../../projects/neural-ui-kit/src/lib/context-menu/context-menu.component.ts","../../../projects/neural-ui-kit/src/lib/date-picker/date-picker.component.ts","../../../projects/neural-ui-kit/src/lib/desktop-shell/desktop-shell.component.ts","../../../projects/neural-ui-kit/src/lib/duration/duration.component.ts","../../../projects/neural-ui-kit/src/lib/item-list-row/item-list-row.component.ts","../../../projects/neural-ui-kit/src/lib/keyboard-shortcut/keyboard-shortcut.component.ts","../../../projects/neural-ui-kit/src/lib/menu/menu.component.ts","../../../projects/neural-ui-kit/src/lib/mobile-nav/mobile-nav.components.ts","../../../projects/neural-ui-kit/src/lib/mobile-shell/mobile-shell.component.ts","../../../projects/neural-ui-kit/src/lib/page-header/page-header.component.ts","../../../projects/neural-ui-kit/src/lib/rail/rail.components.ts","../../../projects/neural-ui-kit/src/lib/settings-dialog/settings-dialog.components.ts","../../../projects/neural-ui-kit/src/lib/theme-switcher/theme-switcher.component.ts","../../../projects/neural-ui-kit/src/lib/time-picker/time-picker.component.ts","../../../projects/neural-ui-kit/src/lib/tree/tree.components.ts","../../../projects/neural-ui-kit/src/lib/accordion/accordion.component.ts","../../../projects/neural-ui-kit/src/lib/charts/echarts.component.ts","../../../projects/neural-ui-kit/src/lib/charts/helpers.ts","../../../projects/neural-ui-kit/src/lib/charts/eChartOptions.ts","../../../projects/neural-ui-kit/src/lib/charts/donutChartOptions.ts","../../../projects/neural-ui-kit/src/lib/charts/axisChartOptions.ts","../../../projects/neural-ui-kit/src/lib/charts/funnelChartOptions.ts","../../../projects/neural-ui-kit/src/lib/charts/charts.components.ts","../../../projects/neural-ui-kit/src/lib/code-editor/languages.ts","../../../projects/neural-ui-kit/src/lib/code-editor/theme.ts","../../../projects/neural-ui-kit/src/lib/code-editor/code-editor.component.ts","../../../projects/neural-ui-kit/src/lib/code-editor/code-preview.component.ts","../../../projects/neural-ui-kit/src/lib/command-palette/command-palette.component.ts","../../../projects/neural-ui-kit/src/lib/floating-window/floating-window.component.ts","../../../projects/neural-ui-kit/src/lib/list-view/list-view.component.ts","../../../projects/neural-ui-kit/src/lib/multi-email-input/multi-email-input.component.ts","../../../projects/neural-ui-kit/src/lib/calendar/calendar.component.ts","../../../projects/neural-ui-kit/src/lib/text-editor/text-editor.component.ts","../../../projects/neural-ui-kit/src/public-api.ts","../../../projects/neural-ui-kit/src/orbiq-neural-ui-kit.ts"],"sourcesContent":["import { Component, computed, input, output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport type ButtonVariant = 'solid' | 'subtle' | 'outline' | 'ghost';\nexport type ButtonTheme = 'gray' | 'blue' | 'green' | 'red';\nexport type ButtonSize = 'xs' | 'sm' | 'md' | 'lg';\n\nexport interface ButtonProps {\n variant?: ButtonVariant;\n theme?: ButtonTheme;\n size?: ButtonSize;\n type?: 'button' | 'submit' | 'reset';\n disabled?: boolean;\n loading?: boolean;\n iconLeft?: boolean;\n iconRight?: boolean;\n iconOnly?: boolean;\n icon?: string;\n label?: string;\n}\n\n@Component({\n selector: 'neural-button',\n standalone: true,\n imports: [CommonModule],\n template: `\n <button\n [type]=\"type()\"\n [disabled]=\"isDisabled()\"\n [class]=\"computedClasses()\"\n (click)=\"onClick($event)\"\n [attr.aria-busy]=\"loading() ? 'true' : null\"\n >\n @if (loading()) {\n <svg class=\"animate-spin\" [class]=\"spinnerClasses()\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\"></circle>\n <path class=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"></path>\n </svg>\n } @else if (iconLeft()) {\n <ng-content select=\"[left-icon]\"></ng-content>\n }\n \n <span class=\"truncate\" [class.sr-only]=\"iconOnly()\">\n <ng-content></ng-content>\n </span>\n\n @if (!loading() && iconRight()) {\n <ng-content select=\"[right-icon]\"></ng-content>\n }\n </button>\n `\n})\nexport class NeuralButtonComponent {\n // Inputs\n variant = input<ButtonVariant>('subtle');\n theme = input<ButtonTheme>('gray');\n size = input<ButtonSize>('md');\n type = input<'button' | 'submit' | 'reset'>('button');\n disabled = input<boolean>(false);\n loading = input<boolean>(false);\n \n // Modifiers\n iconLeft = input<boolean>(false);\n iconRight = input<boolean>(false);\n iconOnly = input<boolean>(false);\n\n // Outputs\n clicked = output<MouseEvent>();\n\n isDisabled = computed(() => this.disabled() || this.loading());\n\n onClick(event: MouseEvent) {\n if (!this.isDisabled()) {\n this.clicked.emit(event);\n }\n }\n\n spinnerClasses = computed(() => {\n return {\n 'xs': 'size-3.5',\n 'sm': 'size-4',\n 'md': 'size-4.5',\n 'lg': 'size-5'\n }[this.size()];\n });\n\n computedClasses = computed(() => {\n const v = this.variant();\n const t = this.theme();\n const s = this.size();\n\n const solidClasses = {\n gray: 'text-ink-base bg-surface-gray-10 hover:bg-surface-gray-9 active:bg-surface-gray-8',\n blue: 'text-ink-base bg-surface-blue-6 hover:bg-surface-blue-7 active:bg-surface-blue-8',\n green: 'text-ink-base bg-surface-green-7 hover:bg-surface-green-8 active:bg-surface-green-9',\n red: 'text-ink-base dark:text-ink-red-9 bg-surface-red-7 hover:bg-surface-red-8 active:bg-surface-red-9',\n };\n\n const subtleClasses = {\n gray: 'text-ink-gray-8 bg-surface-gray-2 hover:bg-surface-gray-3 active:bg-surface-gray-4',\n blue: 'text-ink-blue-5 bg-surface-blue-2 hover:bg-surface-blue-3 active:bg-surface-blue-4',\n green: 'text-ink-green-8 bg-surface-green-2 hover:bg-surface-green-3 active:bg-surface-green-4',\n red: 'text-ink-red-7 bg-surface-red-2 hover:bg-surface-red-3 active:bg-surface-red-4',\n };\n\n const outlineClasses = {\n gray: 'text-ink-gray-8 bg-surface-base border border-outline-gray-2 hover:border-outline-gray-3 active:border-outline-gray-3 active:bg-surface-gray-4',\n blue: 'text-ink-blue-5 bg-surface-base border border-outline-blue-1 hover:border-outline-blue-4 active:border-outline-blue-4 active:bg-surface-blue-4',\n green: 'text-ink-green-8 bg-surface-base border border-outline-green-3 hover:border-outline-green-5 active:border-outline-green-5 active:bg-surface-green-4',\n red: 'text-ink-red-7 bg-surface-base border border-outline-red-1 hover:border-outline-red-3 active:border-outline-red-3 active:bg-surface-red-3',\n };\n\n const ghostClasses = {\n gray: 'text-ink-gray-8 bg-transparent hover:bg-surface-gray-3 active:bg-surface-gray-4',\n blue: 'text-ink-blue-5 bg-transparent hover:bg-surface-blue-3 active:bg-surface-blue-4',\n green: 'text-ink-green-8 bg-transparent hover:bg-surface-green-3 active:bg-surface-green-4',\n red: 'text-ink-red-7 bg-transparent hover:bg-surface-red-3 active:bg-surface-red-4',\n };\n\n const focusClasses = {\n gray: '', \n blue: 'focus-visible:focus-ring-blue',\n green: 'focus-visible:focus-ring-green',\n red: 'focus-visible:focus-ring-red',\n };\n\n const disabledClassesMap = {\n 'gray-solid': 'bg-surface-gray-2 text-ink-gray-4',\n 'gray-subtle': 'bg-surface-gray-2 text-ink-gray-4',\n 'gray-outline': 'bg-surface-gray-2 text-ink-gray-4 border border-outline-gray-2',\n 'gray-ghost': 'text-ink-gray-4',\n 'blue-solid': 'bg-surface-blue-4 text-ink-base',\n 'blue-subtle': 'bg-surface-blue-2 text-ink-blue-link',\n 'blue-outline': 'bg-surface-blue-2 text-ink-blue-link border border-outline-blue-1',\n 'blue-ghost': 'text-ink-blue-link',\n 'green-solid': 'bg-surface-green-2 text-ink-green-4',\n 'green-subtle': 'bg-surface-green-2 text-ink-green-4',\n 'green-outline': 'bg-surface-green-2 text-ink-green-4 border border-outline-green-3',\n 'green-ghost': 'text-ink-green-4',\n 'red-solid': 'bg-surface-red-2 text-ink-red-4',\n 'red-subtle': 'bg-surface-red-2 text-ink-red-4',\n 'red-outline': 'bg-surface-red-2 text-ink-red-4 border border-outline-red-1',\n 'red-ghost': 'text-ink-red-4',\n } as any;\n\n const themeVariant = `${t}-${v}`;\n const disabledClasses = disabledClassesMap[themeVariant];\n\n const variantClasses = {\n subtle: subtleClasses,\n solid: solidClasses,\n outline: outlineClasses,\n ghost: ghostClasses,\n }[v][t];\n\n const stateClasses = this.disabled() ? disabledClasses : variantClasses;\n\n const sizeClasses = this.iconOnly()\n ? {\n xs: 'h-6 w-6 rounded-3',\n sm: 'h-7 w-7 rounded-4',\n md: 'h-8 w-8 rounded-4',\n lg: 'h-10 w-10 rounded-5',\n }[s]\n : {\n xs: 'h-6 text-xs px-1.5 rounded-3',\n sm: 'h-7 text-base px-2 rounded-4',\n md: 'h-8 text-base-medium px-2.5 rounded-4',\n lg: 'h-10 text-lg-medium px-3 rounded-5',\n }[s];\n\n return [\n 'inline-flex items-center justify-center gap-2 transition-colors shrink-0',\n stateClasses,\n this.loading() && !this.disabled() ? 'pointer-events-none' : '',\n focusClasses[t],\n sizeClasses,\n ].filter(Boolean).join(' ');\n });\n}\n","import { Component, computed, input, output, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NeuralButtonComponent, ButtonProps } from '../button/button.component';\n\nexport type StatusTheme = 'gray' | 'blue' | 'green' | 'amber' | 'red';\n\nexport type AlertActionContext = {\n dismiss: () => void;\n};\n\nexport type AlertAction = ButtonProps & {\n onClick?: (context: AlertActionContext) => void | Promise<void>;\n};\n\n@Component({\n selector: 'neural-alert',\n standalone: true,\n imports: [CommonModule, NeuralButtonComponent],\n template: `\n <div\n [attr.role]=\"role()\"\n [attr.data-layout]=\"layout()\"\n [attr.data-color]=\"theme()\"\n class=\"rounded-6 bg-surface-gray-1\"\n [class]=\"\n layout() === 'row'\n ? 'flex h-10 items-center py-1.5 pl-3.5 pr-1.5'\n : 'relative p-3'\n \"\n >\n @if (layout() === 'row') {\n @if (showPrefix()) {\n <div data-slot=\"prefix\" class=\"mr-2 flex size-4 shrink-0 items-center justify-center\">\n <ng-content select=\"[prefix]\">\n <ng-container *ngTemplateOutlet=\"iconTemplate\"></ng-container>\n </ng-content>\n </div>\n }\n\n @if (showTitle()) {\n <div data-slot=\"title\" class=\"min-w-0 flex-1 truncate text-base-medium text-ink-gray-8\">\n <ng-content select=\"[title]\">{{ title() }}</ng-content>\n </div>\n }\n\n @if (hasActionsSlot() || primaryAction()) {\n <div data-slot=\"actions\" class=\"ml-1.5 flex shrink-0 items-center gap-1\">\n <ng-content select=\"[actions]\">\n @if (primaryAction()) {\n <neural-button\n data-slot=\"action\"\n [variant]=\"rowActionProps()?.variant || 'subtle'\"\n [theme]=\"rowActionProps()?.theme || 'gray'\"\n [size]=\"rowActionProps()?.size || 'md'\"\n [disabled]=\"rowActionProps()?.disabled || false\"\n [loading]=\"primaryLoading()\"\n [iconLeft]=\"rowActionProps()?.iconLeft || false\"\n [iconRight]=\"rowActionProps()?.iconRight || false\"\n [iconOnly]=\"rowActionProps()?.iconOnly || false\"\n [class]=\"rowActionLabelClass()\"\n (clicked)=\"handleAction('primary', primaryAction()!)\"\n >\n @if (primaryAction()?.icon) {\n <i left-icon [class]=\"primaryAction()!.icon!\"></i>\n }\n {{ primaryAction()?.label }}\n </neural-button>\n }\n </ng-content>\n </div>\n }\n\n @if (dismissible()) {\n <neural-button\n data-slot=\"dismiss\"\n class=\"shrink-0\"\n [class]=\"hasActionsSlot() || primaryAction() ? 'ml-1' : 'ml-1.5'\"\n variant=\"ghost\"\n theme=\"gray\"\n size=\"sm\"\n [iconOnly]=\"true\"\n aria-label=\"Dismiss\"\n (clicked)=\"dismiss.emit()\"\n >\n <i class=\"lucide-x\"></i>\n </neural-button>\n }\n } @else {\n <div class=\"flex items-center gap-1.5\" [class]=\"dismissible() ? 'pr-8' : ''\">\n @if (showPrefix()) {\n <div data-slot=\"prefix\" class=\"flex size-4 shrink-0 items-center justify-center\">\n <ng-content select=\"[prefix]\">\n <ng-container *ngTemplateOutlet=\"iconTemplate\"></ng-container>\n </ng-content>\n </div>\n }\n @if (showTitle()) {\n <div data-slot=\"title\" class=\"min-w-0 text-base-medium text-ink-gray-8\">\n <ng-content select=\"[title]\">{{ title() }}</ng-content>\n </div>\n }\n </div>\n\n @if (showDescription() || showBannerActions()) {\n <div class=\"mt-1 flex flex-col items-start gap-3\">\n @if (showDescription()) {\n <p data-slot=\"description\" class=\"text-p-base text-ink-gray-6\">\n <ng-content select=\"[description]\">{{ description() }}</ng-content>\n </p>\n }\n @if (showBannerActions()) {\n <div data-slot=\"actions\" class=\"flex items-center gap-1\">\n <ng-content select=\"[actions]\">\n @if (primaryAction()) {\n <neural-button\n data-slot=\"action\"\n [variant]=\"bannerPrimaryProps()?.variant || 'subtle'\"\n [theme]=\"bannerPrimaryProps()?.theme || 'gray'\"\n [size]=\"bannerPrimaryProps()?.size || 'md'\"\n [disabled]=\"bannerPrimaryProps()?.disabled || false\"\n [loading]=\"primaryLoading()\"\n [iconLeft]=\"bannerPrimaryProps()?.iconLeft || false\"\n [iconRight]=\"bannerPrimaryProps()?.iconRight || false\"\n [iconOnly]=\"bannerPrimaryProps()?.iconOnly || false\"\n [class]=\"bannerPrimaryClass()\"\n (clicked)=\"handleAction('primary', primaryAction()!)\"\n >\n @if (primaryAction()?.icon) {\n <i left-icon [class]=\"primaryAction()!.icon!\"></i>\n }\n {{ primaryAction()?.label }}\n </neural-button>\n }\n @if (secondaryAction()) {\n <neural-button\n data-slot=\"action\"\n [variant]=\"bannerSecondaryProps()?.variant || 'subtle'\"\n [theme]=\"bannerSecondaryProps()?.theme || 'gray'\"\n [size]=\"bannerSecondaryProps()?.size || 'md'\"\n [disabled]=\"bannerSecondaryProps()?.disabled || false\"\n [loading]=\"secondaryLoading()\"\n [iconLeft]=\"bannerSecondaryProps()?.iconLeft || false\"\n [iconRight]=\"bannerSecondaryProps()?.iconRight || false\"\n [iconOnly]=\"bannerSecondaryProps()?.iconOnly || false\"\n [class]=\"bannerSecondaryClass()\"\n (clicked)=\"handleAction('secondary', secondaryAction()!)\"\n >\n @if (secondaryAction()?.icon) {\n <i left-icon [class]=\"secondaryAction()!.icon!\"></i>\n }\n {{ secondaryAction()?.label }}\n </neural-button>\n }\n </ng-content>\n </div>\n }\n </div>\n }\n\n @if (dismissible()) {\n <neural-button\n data-slot=\"dismiss\"\n class=\"absolute right-1.5 top-1.5\"\n variant=\"ghost\"\n theme=\"gray\"\n size=\"xs\"\n [iconOnly]=\"true\"\n aria-label=\"Dismiss\"\n (clicked)=\"dismiss.emit()\"\n >\n <i class=\"lucide-x\"></i>\n </neural-button>\n }\n }\n </div>\n\n <!-- Solid Icons Template -->\n <ng-template #iconTemplate>\n @if (theme() === 'gray' || theme() === 'blue') {\n <svg [class]=\"iconColorClass()\" class=\"size-4\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\"><path d=\"M8 1C11.866 1 15 4.13401 15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1ZM8 6.93652C7.72386 6.93652 7.5 7.16038 7.5 7.43652V11.1436C7.50005 11.4197 7.72389 11.6436 8 11.6436C8.27611 11.6436 8.49995 11.4197 8.5 11.1436V7.43652C8.5 7.16038 8.27614 6.93652 8 6.93652ZM8 4C7.51675 4 7.125 4.39175 7.125 4.875C7.125 5.35825 7.51675 5.75 8 5.75C8.48325 5.75 8.875 5.35825 8.875 4.875C8.875 4.39175 8.48325 4 8 4Z\" fill=\"currentColor\"/></svg>\n }\n @if (theme() === 'green') {\n <svg [class]=\"iconColorClass()\" class=\"size-4\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\"><path d=\"M8 1C11.866 1 15 4.13401 15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1ZM11.1055 5.28125C10.8924 5.10562 10.5771 5.13567 10.4014 5.34863L6.95215 9.53223L5.61035 7.79883C5.44143 7.58051 5.12757 7.54022 4.90918 7.70898C4.69088 7.8779 4.65061 8.19177 4.81934 8.41016L6.54395 10.6396C6.63696 10.7598 6.77972 10.8306 6.93164 10.833C7.08364 10.8354 7.22849 10.7687 7.3252 10.6514L11.1729 5.98438C11.3481 5.77144 11.3181 5.45689 11.1055 5.28125Z\" fill=\"currentColor\"/></svg>\n }\n @if (theme() === 'amber') {\n <svg [class]=\"iconColorClass()\" class=\"size-4\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7.35174 1.97129C7.64143 1.47669 8.35697 1.47669 8.64666 1.97129L15.0519 12.9078C15.3447 13.4077 14.9847 14.0365 14.4055 14.0367H1.59295C1.0138 14.0364 0.653701 13.4077 0.946469 12.9078L7.35174 1.97129ZM7.9992 10.4117C7.51609 10.4118 7.12433 10.8036 7.1242 11.2867C7.1242 11.7699 7.51601 12.1617 7.9992 12.1617C8.48245 12.1617 8.8742 11.77 8.8742 11.2867C8.87408 10.8036 8.48238 10.4117 7.9992 10.4117ZM8.00018 5.50742C7.72411 5.50742 7.5003 5.73139 7.50018 6.00742V9.25742C7.50018 9.53356 7.72404 9.75742 8.00018 9.75742C8.27615 9.75723 8.50018 9.53344 8.50018 9.25742V6.00742C8.50006 5.73151 8.27608 5.50762 8.00018 5.50742Z\" fill=\"currentColor\"/></svg>\n }\n @if (theme() === 'red') {\n <svg [class]=\"iconColorClass()\" class=\"size-4\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\"><path d=\"M8 1C11.866 1 15 4.13401 15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1ZM10.8535 5.14648C10.6583 4.95122 10.3417 4.95122 10.1465 5.14648L8 7.29297L5.85352 5.14648C5.65825 4.95122 5.34175 4.95122 5.14648 5.14648C4.95122 5.34175 4.95122 5.65825 5.14648 5.85352L7.29297 8L5.14648 10.1465C4.95122 10.3417 4.95122 10.6583 5.14648 10.8535C5.34175 11.0488 5.65825 11.0488 5.85352 10.8535L8 8.70703L10.1465 10.8535C10.3417 11.0488 10.6583 11.0488 10.8535 10.8535C11.0488 10.6583 11.0488 10.3417 10.8535 10.1465L8.70703 8L10.8535 5.85352C11.0488 5.65825 11.0488 5.34175 10.8535 5.14648Z\" fill=\"currentColor\"/></svg>\n }\n </ng-template>\n `\n})\nexport class NeuralAlertComponent {\n title = input<string>();\n description = input<string>();\n theme = input<StatusTheme>('gray');\n icon = input<boolean | string>(true);\n primaryAction = input<AlertAction>();\n secondaryAction = input<AlertAction>();\n dismissible = input<boolean>(false);\n hasActionsSlot = input<boolean>(false); // Workaround for slot detection if needed\n hasDescriptionSlot = input<boolean>(false); // Workaround for slot detection\n\n dismiss = output<void>();\n\n actionPending = signal({ primary: false, secondary: false });\n\n layout = computed(() =>\n this.description() || this.hasDescriptionSlot() || this.secondaryAction()\n ? 'banner'\n : 'row'\n );\n\n role = computed(() =>\n this.theme() === 'red' || this.theme() === 'amber' ? 'alert' : 'status'\n );\n\n iconColorClass = computed(() => {\n const classes: Record<StatusTheme, string> = {\n gray: 'text-ink-gray-7',\n blue: 'text-ink-blue-5',\n green: 'text-ink-green-5',\n amber: 'text-ink-amber-5',\n red: 'text-ink-red-5',\n };\n return classes[this.theme()];\n });\n\n showPrefix = computed(() => this.icon() !== false);\n showTitle = computed(() => !!this.title());\n showDescription = computed(() => !!this.description() || this.hasDescriptionSlot());\n showBannerActions = computed(() => this.hasActionsSlot() || !!this.primaryAction() || !!this.secondaryAction());\n\n primaryLoading = computed(() => this.primaryAction()?.loading ?? this.actionPending().primary);\n secondaryLoading = computed(() => this.secondaryAction()?.loading ?? this.actionPending().secondary);\n\n async handleAction(slot: 'primary' | 'secondary', action: AlertAction) {\n if (!action?.onClick || this.actionPending()[slot]) return;\n \n this.actionPending.update(v => ({ ...v, [slot]: true }));\n try {\n await action.onClick({ dismiss: () => this.dismiss.emit() });\n } finally {\n this.actionPending.update(v => ({ ...v, [slot]: false }));\n }\n }\n\n mergeActionProps(defaults: ButtonProps, action: AlertAction): ButtonProps {\n const { onClick, ...rest } = action;\n return { ...defaults, ...rest };\n }\n\n rowActionProps = computed(() =>\n this.primaryAction()\n ? this.mergeActionProps({ variant: 'ghost', size: 'sm' }, this.primaryAction()!)\n : undefined\n );\n\n rowActionLabelClass = computed(() => {\n if (this.primaryAction() && !this.primaryAction()?.variant && !this.primaryAction()?.theme) {\n const classes: Record<StatusTheme, string> = {\n gray: '!text-ink-gray-7',\n blue: '!text-ink-blue-6',\n green: '!text-ink-green-6',\n amber: '!text-ink-amber-6',\n red: '!text-ink-red-6',\n };\n return classes[this.theme()];\n }\n return undefined;\n });\n\n bannerPrimaryProps = computed(() =>\n this.primaryAction()\n ? this.mergeActionProps({ variant: 'outline', theme: 'gray', size: 'md' }, this.primaryAction()!)\n : undefined\n );\n\n bannerPrimaryClass = computed(() =>\n this.primaryAction() && !this.primaryAction()?.variant\n ? 'shadow-sm !border-transparent'\n : undefined\n );\n\n bannerSecondaryProps = computed(() =>\n this.secondaryAction()\n ? this.mergeActionProps({ variant: 'ghost', theme: 'gray', size: 'md' }, this.secondaryAction()!)\n : undefined\n );\n\n bannerSecondaryClass = computed(() =>\n this.secondaryAction() && !this.secondaryAction()?.variant && !this.secondaryAction()?.theme\n ? '!text-ink-gray-7'\n : undefined\n );\n}\n","import { Component, computed, ElementRef, HostBinding, HostListener, input, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport type AvatarTheme = 'gray' | 'blue' | 'green' | 'amber' | 'red' | 'violet';\nexport type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl';\nexport type AvatarShape = 'circle' | 'square';\n\n@Component({\n selector: 'neural-avatar',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div\n class=\"relative inline-block shrink-0\"\n [class]=\"sizeClasses() + ' ' + shapeClasses()\"\n >\n @if (image() && !imgFetchError()) {\n <img\n [src]=\"image()\"\n [attr.alt]=\"label()\"\n [class]=\"shapeClasses() + ' h-full w-full object-cover'\"\n (error)=\"handleImageError()\"\n />\n } @else {\n <div\n class=\"flex h-full w-full items-center justify-center uppercase select-none\"\n [class]=\"labelClasses() + ' ' + fallbackThemeClasses() + ' ' + shapeClasses()\"\n >\n @if (hasDefaultSlot()) {\n <div [class]=\"iconClasses()\">\n <ng-content></ng-content>\n </div>\n } @else {\n {{ label() ? label()![0] : '' }}\n }\n </div>\n }\n @if (hasIndicatorSlot()) {\n <div\n class=\"absolute bottom-0 right-0 grid place-items-center rounded-full bg-surface-base\"\n [class]=\"indicatorContainerClasses()\"\n >\n <div [class]=\"indicatorClasses()\">\n <ng-content select=\"[indicator]\"></ng-content>\n </div>\n </div>\n }\n </div>\n `,\n host: {\n '[class]': 'hostClasses()'\n }\n})\nexport class NeuralAvatarComponent {\n image = input<string>();\n label = input<string>();\n size = input<AvatarSize>('md');\n shape = input<AvatarShape>('circle');\n theme = input<AvatarTheme>('gray');\n \n hasDefaultSlot = input<boolean>(false);\n hasIndicatorSlot = input<boolean>(false);\n\n imgFetchError = signal(false);\n\n constructor(private el: ElementRef) {}\n\n hostClasses = computed(() => {\n // Angular handles host classes gracefully, but Frappe UI avatars are inline-block\n // We let the inner wrapper handle the size if the host isn't overridden\n return 'inline-flex'; // Add a basic inline-flex to the host so it wraps the inner div\n });\n\n hasSizeOverride = computed(() => {\n const cls = this.el.nativeElement.className || '';\n return cls.split(/\\s+/).some((token: string) => \n !token.includes(':') && /^-?(size|w|h|min-w|max-w|min-h|max-h)-/.test(token)\n );\n });\n\n fallbackThemeClasses = computed(() => {\n const classes: Record<AvatarTheme, string> = {\n gray: 'bg-surface-gray-2 text-ink-gray-5',\n blue: 'bg-surface-blue-2 text-ink-blue-7',\n green: 'bg-surface-green-2 text-ink-green-7',\n amber: 'bg-surface-amber-2 text-ink-amber-7',\n red: 'bg-surface-red-2 text-ink-red-7',\n violet: 'bg-surface-violet-2 text-ink-violet-7',\n };\n return classes[this.theme()];\n });\n\n shapeClasses = computed(() => {\n if (this.shape() === 'circle') return 'rounded-full';\n \n const sizes = {\n xs: 'rounded-[4px]',\n sm: 'rounded-[5px]',\n md: 'rounded-[5px]',\n lg: 'rounded-[6px]',\n xl: 'rounded-[6px]',\n '2xl': 'rounded-[8px]',\n '3xl': 'rounded-[10px]',\n };\n return sizes[this.size()];\n });\n\n sizeClasses = computed(() => {\n if (this.hasSizeOverride()) return 'w-full h-full'; // Fill the host if the host is explicitly sized\n \n return {\n xs: 'w-4 h-4',\n sm: 'w-5 h-5',\n md: 'w-6 h-6',\n lg: 'w-7 h-7',\n xl: 'w-8 h-8',\n '2xl': 'w-10 h-10',\n '3xl': 'w-11.5 h-11.5',\n }[this.size()];\n });\n\n labelClasses = computed(() => {\n const sizeClass = {\n xs: 'text-2xs',\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-base',\n xl: 'text-lg',\n '2xl': 'text-2xl',\n '3xl': 'text-3xl',\n }[this.size()];\n return `font-medium ${sizeClass}`;\n });\n\n indicatorContainerClasses = computed(() => {\n return {\n xs: '-mr-[.1rem] -mb-[.1rem] h-2 w-2',\n sm: '-mr-[.1rem] -mb-[.1rem] h-[9px] w-[9px]',\n md: '-mr-[.1rem] -mb-[.1rem] h-2.5 w-2.5',\n lg: '-mr-[.1rem] -mb-[.1rem] h-3 w-3',\n xl: '-mr-[.1rem] -mb-[.1rem] h-3 w-3',\n '2xl': '-mr-[.1rem] -mb-[.1rem] h-3.5 w-3.5',\n '3xl': '-mr-[.2rem] -mb-[.2rem] h-4 w-4',\n }[this.size()];\n });\n\n indicatorClasses = computed(() => {\n return {\n xs: 'h-1 w-1',\n sm: 'h-[5px] w-[5px]',\n md: 'h-1.5 w-1.5',\n lg: 'h-2 w-2',\n xl: 'h-2 w-2',\n '2xl': 'h-2.5 w-2.5',\n '3xl': 'h-3 w-3',\n }[this.size()];\n });\n\n iconClasses = computed(() => {\n return {\n xs: 'h-2.5 w-2.5',\n sm: 'h-3 w-3',\n md: 'h-4 w-4',\n lg: 'h-4 w-4',\n xl: 'h-4 w-4',\n '2xl': 'h-5 w-5',\n '3xl': 'h-5 w-5',\n }[this.size()];\n });\n\n handleImageError() {\n this.imgFetchError.set(true);\n }\n}\n","import { Component, computed, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport type BadgeTheme = 'gray' | 'blue' | 'green' | 'amber' | 'red' | 'violet';\nexport type BadgeSize = 'sm' | 'md' | 'lg';\nexport type BadgeVariant = 'solid' | 'subtle' | 'outline' | 'ghost';\n\n@Component({\n selector: 'neural-badge',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div\n class=\"inline-flex select-none items-center gap-1 overflow-clip rounded-full whitespace-nowrap\"\n [class]=\"classes()\"\n >\n @if (hasPrefixSlot()) {\n <div class=\"inline-flex shrink-0 items-center justify-center\" [class]=\"iconSize()\">\n <ng-content select=\"[prefix]\"></ng-content>\n </div>\n }\n \n @if (hasDefaultSlot()) {\n <ng-content></ng-content>\n } @else {\n {{ label() }}\n }\n\n @if (hasSuffixSlot()) {\n <div class=\"inline-flex shrink-0 items-center justify-center\" [class]=\"iconSize()\">\n <ng-content select=\"[suffix]\"></ng-content>\n </div>\n }\n </div>\n `\n})\nexport class NeuralBadgeComponent {\n theme = input<BadgeTheme>('gray');\n size = input<BadgeSize>('md');\n variant = input<BadgeVariant>('subtle');\n label = input<string | number>();\n\n hasPrefixSlot = input<boolean>(false);\n hasSuffixSlot = input<boolean>(false);\n hasDefaultSlot = input<boolean>(false);\n\n classes = computed(() => {\n const themeClasses: Record<BadgeTheme, Record<BadgeVariant, string>> = {\n gray: {\n solid: 'text-ink-base bg-surface-gray-10',\n subtle: 'text-ink-gray-6 bg-surface-gray-2',\n outline: 'text-ink-gray-6 border border-outline-gray-2',\n ghost: 'text-ink-gray-6',\n },\n blue: {\n solid: 'text-white bg-surface-blue-7',\n subtle: 'text-ink-blue-7 bg-surface-blue-2',\n outline: 'text-ink-blue-7 border border-outline-blue-3',\n ghost: 'text-ink-blue-7',\n },\n green: {\n solid: 'text-white bg-surface-green-7',\n subtle: 'text-ink-green-7 bg-surface-green-2',\n outline: 'text-ink-green-7 border border-outline-green-3',\n ghost: 'text-ink-green-7',\n },\n amber: {\n solid: 'text-white bg-surface-amber-7',\n subtle: 'text-ink-amber-7 bg-surface-amber-2',\n outline: 'text-ink-amber-7 border border-outline-amber-3',\n ghost: 'text-ink-amber-7',\n },\n red: {\n solid: 'text-white bg-surface-red-7',\n subtle: 'text-ink-red-7 bg-surface-red-2',\n outline: 'text-ink-red-7 border border-outline-red-3',\n ghost: 'text-ink-red-7',\n },\n violet: {\n solid: 'text-white bg-surface-violet-7',\n subtle: 'text-ink-violet-7 bg-surface-violet-2',\n outline: 'text-ink-violet-7 border border-outline-violet-3',\n ghost: 'text-ink-violet-7',\n },\n };\n\n const sizeClasses: Record<BadgeSize, string> = {\n sm: 'h-4 px-1.5 text-xs',\n md: 'h-5 px-1.5 text-xs',\n lg: 'h-6 px-2 text-[13px] tracking-[0.02em]',\n };\n\n return [\n themeClasses[this.theme()][this.variant()],\n sizeClasses[this.size()],\n ].join(' ');\n });\n\n iconSize = computed(() => (this.size() === 'lg' ? 'size-3' : 'size-2.5'));\n}\n","import { Component, computed, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'neural-labeling-wrapper',\n standalone: true,\n imports: [CommonModule],\n template: `\n @if (enabled()) {\n <div class=\"flex flex-col gap-1.5 w-full\">\n <ng-content></ng-content>\n </div>\n } @else {\n <ng-content></ng-content>\n }\n `\n})\nexport class NeuralLabelingWrapperComponent {\n enabled = input<boolean>(true);\n}\n\n\n@Component({\n selector: 'neural-required-indicator',\n standalone: true,\n template: `\n @if (required()) {\n <span class=\"text-ink-red-5 select-none\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">(required)</span>\n }\n `\n})\nexport class NeuralRequiredIndicatorComponent {\n required = input<boolean>(false);\n}\n\n@Component({\n selector: 'neural-input-label',\n standalone: true,\n imports: [CommonModule, NeuralRequiredIndicatorComponent],\n template: `\n @if (label() || hasDefaultSlot()) {\n <label\n [id]=\"id()\"\n [attr.for]=\"forId()\"\n data-slot=\"label\"\n [class]=\"labelClasses()\"\n >\n @if (hasDefaultSlot()) {\n <ng-content></ng-content>\n } @else {\n {{ label() }}\n <neural-required-indicator [required]=\"required()\" />\n }\n </label>\n }\n `\n})\nexport class NeuralInputLabelComponent {\n id = input.required<string>();\n forId = input<string>();\n label = input<string>();\n required = input<boolean>(false);\n color = input<'gray-5' | 'gray-7'>('gray-5');\n disabled = input<boolean>(false);\n hasDefaultSlot = input<boolean>(false);\n\n labelClasses = computed(() => {\n return [\n 'block text-base',\n this.disabled()\n ? 'text-ink-gray-4'\n : this.color() === 'gray-7'\n ? 'text-ink-gray-7'\n : 'text-ink-gray-5',\n ].join(' ');\n });\n}\n\n@Component({\n selector: 'neural-input-description',\n standalone: true,\n imports: [CommonModule],\n template: `\n @if (description() || hasDefaultSlot()) {\n <p\n [id]=\"id()\"\n data-slot=\"description\"\n class=\"text-p-sm\"\n [class]=\"disabled() ? 'text-ink-gray-3' : 'text-ink-gray-5'\"\n >\n @if (hasDefaultSlot()) {\n <ng-content></ng-content>\n } @else {\n {{ description() }}\n }\n </p>\n }\n `\n})\nexport class NeuralInputDescriptionComponent {\n id = input.required<string>();\n description = input<string>();\n disabled = input<boolean>(false);\n hasDefaultSlot = input<boolean>(false);\n}\n\n@Component({\n selector: 'neural-input-error',\n standalone: true,\n imports: [CommonModule],\n template: `\n @if (lines().length) {\n <div\n [id]=\"id()\"\n data-slot=\"error\"\n role=\"alert\"\n class=\"text-p-sm whitespace-pre-line text-ink-red-5\"\n >\n {{ lines().join('\\\\n') }}\n </div>\n }\n `\n})\nexport class NeuralInputErrorComponent {\n id = input.required<string>();\n lines = input<string[]>([]);\n}\n","import { Signal, computed } from '@angular/core';\n\nlet idCounter = 0;\nfunction useId() {\n return `neural-id-${idCounter++}`;\n}\n\nexport interface FrappeUIError extends Error {\n messages?: string[];\n}\n\nexport interface InputLabelingProps {\n label?: Signal<string | undefined>;\n description?: Signal<string | undefined>;\n error?: Signal<string | FrappeUIError | undefined>;\n required?: Signal<boolean | undefined>;\n id?: Signal<string | undefined>;\n}\n\nexport interface UseInputLabelingOptions {\n size?: Signal<string | undefined>;\n variant?: Signal<string | undefined>;\n disabled?: Signal<boolean | undefined>;\n state?: Signal<string | undefined>;\n hasLabelSlot?: Signal<boolean>;\n hasDescriptionSlot?: Signal<boolean>;\n}\n\nexport function useInputLabeling(\n props: InputLabelingProps,\n options: UseInputLabelingOptions = {}\n) {\n const fallbackId = useId();\n const inputId = computed(() => props.id?.() ?? fallbackId);\n\n const labelId = computed(() => `${inputId()}-label`);\n const descriptionId = computed(() => `${inputId()}-description`);\n const errorMessageId = computed(() => `${inputId()}-error`);\n\n const hasError = computed(() => {\n const e = props.error?.();\n if (e == null) return false;\n if (typeof e === 'string') return e.length > 0;\n return Boolean(e.message || (e.messages && e.messages.length));\n });\n\n const errorLines = computed<string[]>(() => {\n const e = props.error?.();\n if (!e) return [];\n if (typeof e === 'string') return [e];\n if (e.messages && e.messages.length) return [...e.messages];\n return e.message ? [e.message] : [];\n });\n\n const showDescription = computed(() => {\n return Boolean(props.description?.()) && !hasError();\n });\n\n const rendersDescription = computed(() => {\n return showDescription() || Boolean(options.hasDescriptionSlot?.());\n });\n\n const describedBy = computed(() => {\n const ids: string[] = [];\n if (rendersDescription()) ids.push(descriptionId());\n if (hasError()) ids.push(errorMessageId());\n return ids.length ? ids.join(' ') : undefined;\n });\n\n const labelledBy = computed(() => {\n return props.label?.() || options.hasLabelSlot?.() ? labelId() : undefined;\n });\n\n const dataAttrs = computed(() => {\n const size = options.size?.();\n const variant = options.variant?.();\n const disabled = options.disabled?.();\n const explicitState = options.state?.();\n const state = hasError() ? 'invalid' : (explicitState ?? 'valid');\n\n const attrs: Record<string, string | boolean> = {\n 'data-state': state,\n };\n if (size) attrs['data-size'] = size;\n if (variant) attrs['data-variant'] = variant;\n if (disabled) attrs['data-disabled'] = 'true';\n if (props.required?.()) attrs['data-required'] = 'true';\n return attrs;\n });\n\n return {\n inputId,\n labelId,\n descriptionId,\n errorMessageId,\n labelledBy,\n describedBy,\n hasError,\n errorLines,\n showDescription,\n rendersDescription,\n dataAttrs,\n };\n}\n","import { Component, computed, ElementRef, input, model, ViewChild, effect } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NeuralInputLabelComponent, NeuralInputDescriptionComponent, NeuralInputErrorComponent } from '../input-labeling/input-labeling.components';\nimport { useInputLabeling, FrappeUIError } from '../input-labeling/use-input-labeling';\n\n@Component({\n selector: 'neural-checkbox',\n standalone: true,\n imports: [CommonModule, NeuralInputLabelComponent, NeuralInputDescriptionComponent, NeuralInputErrorComponent],\n template: `\n <div\n class=\"flex-col\"\n [class]=\"containerClasses()\"\n (click)=\"onContainerClick($event)\"\n >\n <div class=\"inline-flex items-center gap-2 rounded-4 transition\">\n <input\n #inputRef\n type=\"checkbox\"\n class=\"rounded-1 mt-[1px]\"\n [class]=\"inputClasses()\"\n [disabled]=\"disabled()\"\n [id]=\"inputId()\"\n [checked]=\"checked()\"\n [required]=\"required()\"\n [attr.aria-required]=\"required() ? 'true' : null\"\n [attr.aria-invalid]=\"hasError() ? 'true' : null\"\n [attr.aria-errormessage]=\"hasError() ? errorMessageId() : null\"\n [attr.aria-describedby]=\"describedBy()\"\n data-slot=\"control\"\n [attr.data-state]=\"dataAttrs()['data-state']\"\n [attr.data-size]=\"dataAttrs()['data-size']\"\n [attr.data-variant]=\"dataAttrs()['data-variant']\"\n [attr.data-disabled]=\"dataAttrs()['data-disabled']\"\n [attr.data-required]=\"dataAttrs()['data-required']\"\n (change)=\"onChange($event)\"\n />\n \n @if (label() || hasLabelSlot()) {\n <neural-input-label\n [id]=\"labelId()\"\n [forId]=\"inputId()\"\n [label]=\"label()\"\n [required]=\"required()\"\n color=\"gray-7\"\n [disabled]=\"disabled()\"\n [class]=\"labelClasses()\"\n [hasDefaultSlot]=\"hasLabelSlot()\"\n >\n @if (hasLabelSlot()) {\n <ng-content select=\"[label]\"></ng-content>\n }\n </neural-input-label>\n }\n </div>\n \n @if (showDescription() || hasError() || hasDescriptionSlot()) {\n <div class=\"ps-[1.35rem] mt-1\">\n @if (showDescription() || hasDescriptionSlot()) {\n <neural-input-description\n [id]=\"descriptionId()\"\n [description]=\"description()\"\n [disabled]=\"disabled()\"\n [hasDefaultSlot]=\"hasDescriptionSlot()\"\n >\n @if (hasDescriptionSlot()) {\n <ng-content select=\"[description]\"></ng-content>\n }\n </neural-input-description>\n }\n @if (hasError()) {\n <neural-input-error [id]=\"errorMessageId()\" [lines]=\"errorLines()\" />\n }\n </div>\n }\n </div>\n `\n})\nexport class NeuralCheckboxComponent {\n checkedModel = model<boolean>(false);\n \n size = input<'sm' | 'md' | 'lg' | 'xl'>('sm');\n padded = input<boolean>(false);\n indeterminate = input<boolean>(false);\n disabled = input<boolean>(false);\n required = input<boolean>(false);\n \n label = input<string>();\n description = input<string>();\n error = input<string | FrappeUIError>();\n id = input<string>();\n\n hasLabelSlot = input<boolean>(false);\n hasDescriptionSlot = input<boolean>(false);\n\n @ViewChild('inputRef') inputRef!: ElementRef<HTMLInputElement>;\n\n checked = computed(() => Boolean(this.checkedModel()));\n\n private labeling = useInputLabeling({\n label: this.label,\n description: this.description,\n error: this.error,\n required: this.required,\n id: this.id\n }, {\n size: this.size,\n disabled: this.disabled,\n state: computed(() => this.indeterminate() ? 'indeterminate' : this.checked() ? 'checked' : 'unchecked'),\n hasLabelSlot: this.hasLabelSlot,\n hasDescriptionSlot: this.hasDescriptionSlot,\n });\n\n inputId = this.labeling.inputId;\n labelId = this.labeling.labelId;\n descriptionId = this.labeling.descriptionId;\n errorMessageId = this.labeling.errorMessageId;\n describedBy = this.labeling.describedBy;\n hasError = this.labeling.hasError;\n errorLines = this.labeling.errorLines;\n showDescription = this.labeling.showDescription;\n rendersDescription = this.labeling.rendersDescription;\n dataAttrs = this.labeling.dataAttrs;\n\n constructor() {\n effect(() => {\n const isIndeterminate = this.indeterminate();\n if (this.inputRef?.nativeElement) {\n this.inputRef.nativeElement.indeterminate = isIndeterminate;\n }\n });\n }\n\n onChange(e: Event) {\n this.checkedModel.set((e.target as HTMLInputElement).checked);\n }\n\n labelClasses = computed(() => {\n return [\n 'select-none',\n this.disabled() ? 'cursor-not-allowed' : 'cursor-pointer',\n ].join(' ');\n });\n\n containerClasses = computed(() => {\n const isPadded = this.padded();\n if (!isPadded) return 'inline-flex';\n \n const hasDetail = this.rendersDescription() || this.hasError();\n const sizeVal = this.size();\n \n const sizeClass = hasDetail\n ? sizeVal === 'md' ? 'px-3 py-2' : 'px-1.5 py-1.5'\n : sizeVal === 'md' ? 'h-8 px-3' : sizeVal === 'sm' ? 'h-7 px-1.5' : 'h-6 px-1.5';\n \n const classes = ['flex group rounded-4 transition-colors', sizeClass];\n if (!hasDetail) classes.push('justify-center');\n \n classes.push(\n this.disabled()\n ? 'cursor-not-allowed'\n : 'cursor-pointer hover:bg-surface-gray-3 active:bg-surface-gray-4 [&:has(:focus-visible)]:ring-2 [&:has(:focus-visible)]:ring-outline-gray-3'\n );\n return classes.join(' ');\n });\n\n onContainerClick(event: MouseEvent) {\n if (!this.padded() || this.disabled()) return;\n const target = event.target as HTMLElement;\n if (target.closest('[data-slot=\"control\"]')) return;\n if (target.closest('[data-slot=\"label\"]')) return;\n this.checkedModel.set(!this.checked());\n }\n\n inputClasses = computed(() => {\n const sizeVal = this.size();\n const sizeClasses = sizeVal === 'md'\n ? 'w-4 h-4'\n : sizeVal === 'sm'\n ? 'w-3.5 h-3.5'\n : 'w-[13px] h-[13px]';\n\n if (this.disabled()) {\n return [\n sizeClasses,\n 'cursor-not-allowed bg-surface-base border-outline-gray-3',\n 'text-[color:var(--surface-gray-5)]',\n 'hover:shadow-none focus:ring-0 focus:ring-offset-0',\n ].join(' ');\n }\n\n const padded = this.padded();\n return [\n sizeClasses,\n 'cursor-pointer transition focus:ring-0 focus:ring-offset-0',\n 'bg-surface-base border-outline-gray-4',\n 'text-[color:var(--surface-gray-10)]',\n padded\n ? 'group-hover:border-outline-gray-5 checked:group-hover:text-[color:var(--surface-gray-9)]'\n : 'hover:border-outline-gray-5 hover:shadow-sm active:border-outline-gray-6 focus-visible:focus-ring checked:hover:text-[color:var(--surface-gray-9)] checked:active:text-[color:var(--surface-gray-8)]',\n ].join(' ');\n });\n}\n","import { Component, Directive, Input, TemplateRef, ViewChild, ViewContainerRef, ElementRef, OnDestroy, Output, EventEmitter, input, computed } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Overlay, OverlayRef, OverlayConfig, ConnectionPositionPair, FlexibleConnectedPositionStrategy } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Subject, takeUntil, filter } from 'rxjs';\n\n@Directive({\n selector: '[neuralPopoverTrigger]',\n standalone: true\n})\nexport class NeuralPopoverTriggerDirective {\n constructor(public elementRef: ElementRef) {}\n}\n\n@Directive({\n selector: '[neuralPopoverContent]',\n standalone: true\n})\nexport class NeuralPopoverContentDirective {\n constructor(public templateRef: TemplateRef<any>) {}\n}\n\n@Component({\n selector: 'neural-popover',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div (click)=\"toggle()\" class=\"inline-block\" #triggerContainer>\n <ng-content></ng-content>\n </div>\n `\n})\nexport class NeuralPopoverComponent implements OnDestroy {\n side = input<'top' | 'right' | 'bottom' | 'left'>('bottom');\n align = input<'start' | 'center' | 'end'>('start');\n offset = input<number>(4);\n bare = input<boolean>(false);\n \n @Output() openChange = new EventEmitter<boolean>();\n \n @ViewChild(NeuralPopoverContentDirective) contentDirective!: NeuralPopoverContentDirective;\n @ViewChild('triggerContainer') triggerContainer!: ElementRef;\n\n private overlayRef: OverlayRef | null = null;\n private destroy$ = new Subject<void>();\n private _isOpen = false;\n\n get isOpen() {\n return this._isOpen;\n }\n\n constructor(\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef\n ) {}\n\n toggle() {\n this._isOpen ? this.close() : this.open();\n }\n\n open() {\n if (this._isOpen) return;\n this._isOpen = true;\n this.openChange.emit(true);\n\n const positionStrategy = this.getPositionStrategy();\n \n this.overlayRef = this.overlay.create(new OverlayConfig({\n positionStrategy,\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n scrollStrategy: this.overlay.scrollStrategies.reposition()\n }));\n\n this.overlayRef.backdropClick()\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.close());\n\n this.overlayRef.keydownEvents()\n .pipe(\n takeUntil(this.destroy$),\n filter(event => event.key === 'Escape')\n )\n .subscribe(() => this.close());\n\n const portal = new TemplatePortal(this.contentDirective.templateRef, this.viewContainerRef, {\n $implicit: { close: () => this.close() }\n });\n \n this.overlayRef.attach(portal);\n }\n\n close() {\n if (!this._isOpen) return;\n this._isOpen = false;\n this.openChange.emit(false);\n\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n }\n\n private getPositionStrategy(): FlexibleConnectedPositionStrategy {\n const originY = this.side() === 'top' ? 'top' : this.side() === 'bottom' ? 'bottom' : 'center';\n const overlayY = this.side() === 'top' ? 'bottom' : this.side() === 'bottom' ? 'top' : 'center';\n \n const originX = this.side() === 'left' ? 'start' : this.side() === 'right' ? 'end' : this.align();\n const overlayX = this.side() === 'left' ? 'end' : this.side() === 'right' ? 'start' : this.align();\n\n const position = new ConnectionPositionPair(\n { originX: originX as any, originY: originY as any },\n { overlayX: overlayX as any, overlayY: overlayY as any },\n this.side() === 'right' ? this.offset() : this.side() === 'left' ? -this.offset() : 0,\n this.side() === 'bottom' ? this.offset() : this.side() === 'top' ? -this.offset() : 0\n );\n\n return this.overlay.position()\n .flexibleConnectedTo(this.triggerContainer)\n .withPositions([position])\n .withPush(true);\n }\n}\n\n@Component({\n selector: 'neural-popover-panel',\n standalone: true,\n template: `\n <div\n data-slot=\"content-body\"\n data-panel\n data-motion=\"instant\"\n class=\"overflow-hidden rounded-6 bg-surface-elevation-2 shadow-2xl ring-1 ring-black ring-opacity-5 will-change-[opacity]\"\n >\n <ng-content></ng-content>\n </div>\n `\n})\nexport class NeuralPopoverPanelComponent {}\n","import { Component, input, Output, EventEmitter, TemplateRef, ContentChild } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { NeuralPopoverComponent, NeuralPopoverTriggerDirective, NeuralPopoverContentDirective, NeuralPopoverPanelComponent } from '../popover/popover.component';\nimport { NeuralButtonComponent } from '../button/button.component';\n\nexport interface DropdownOption {\n label: string;\n icon?: string;\n route?: any;\n onClick?: (event: Event) => void;\n disabled?: boolean;\n}\n\n@Component({\n selector: 'neural-dropdown',\n standalone: true,\n imports: [CommonModule, RouterModule, NeuralPopoverComponent, NeuralPopoverTriggerDirective, NeuralPopoverContentDirective, NeuralPopoverPanelComponent, NeuralButtonComponent],\n template: `\n <neural-popover [side]=\"side()\" [align]=\"align()\" [offset]=\"offset()\">\n <div neuralPopoverTrigger class=\"inline-block\">\n <ng-content select=\"[trigger]\"></ng-content>\n @if (!hasTriggerSlot()) {\n <neural-button>{{ buttonLabel() }}</neural-button>\n }\n </div>\n\n <ng-template neuralPopoverContent let-popover>\n <neural-popover-panel class=\"flex flex-col min-w-[200px] p-1\">\n @if (options().length === 0) {\n <div class=\"p-2 text-sm text-ink-gray-5\">No options</div>\n } @else {\n @for (option of options(); track option.label) {\n @if (option.route) {\n <a\n [routerLink]=\"option.route\"\n (click)=\"handleItemClick(option, $event, popover)\"\n class=\"flex items-center gap-2 px-2 py-1.5 text-sm rounded-4 text-ink-gray-9 hover:bg-surface-gray-2 cursor-pointer transition-colors\"\n [class.opacity-50]=\"option.disabled\"\n [class.pointer-events-none]=\"option.disabled\"\n >\n @if (option.icon) {\n <i [class]=\"option.icon\" class=\"size-4 text-ink-gray-5\"></i>\n }\n {{ option.label }}\n </a>\n } @else {\n <button\n (click)=\"handleItemClick(option, $event, popover)\"\n class=\"flex items-center gap-2 px-2 py-1.5 text-sm rounded-4 text-ink-gray-9 hover:bg-surface-gray-2 cursor-pointer transition-colors text-left w-full\"\n [disabled]=\"option.disabled\"\n [class.opacity-50]=\"option.disabled\"\n [class.cursor-not-allowed]=\"option.disabled\"\n >\n @if (option.icon) {\n <i [class]=\"option.icon\" class=\"size-4 text-ink-gray-5\"></i>\n }\n {{ option.label }}\n </button>\n }\n }\n }\n </neural-popover-panel>\n </ng-template>\n </neural-popover>\n `\n})\nexport class NeuralDropdownComponent {\n options = input<DropdownOption[]>([]);\n side = input<'top' | 'right' | 'bottom' | 'left'>('bottom');\n align = input<'start' | 'center' | 'end'>('start');\n offset = input<number>(4);\n buttonLabel = input<string>('Options');\n\n hasTriggerSlot = input<boolean>(false);\n\n handleItemClick(option: DropdownOption, event: Event, popover: { close: () => void }) {\n if (option.disabled) return;\n if (option.onClick) {\n option.onClick(event);\n }\n popover.close();\n }\n}\n","import { Component, input, ViewChild, ElementRef, computed, signal, HostListener, effect, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule, Router } from '@angular/router';\nimport { NeuralDropdownComponent, DropdownOption } from '../dropdown/dropdown.component';\nimport { NeuralButtonComponent } from '../button/button.component';\n\nexport interface BreadcrumbItem {\n label: string;\n route?: any;\n href?: string;\n onClick?: (event: Event) => void;\n}\n\n@Component({\n selector: 'neural-breadcrumbs',\n standalone: true,\n imports: [CommonModule, RouterModule, NeuralDropdownComponent, NeuralButtonComponent],\n template: `\n <div class=\"flex min-w-0 items-center\" #crumbsRef>\n @if (overflowedX() && items().length > 2) {\n <neural-dropdown class=\"h-7\" [options]=\"dropdownItems()\">\n <neural-button variant=\"ghost\" trigger>\n <ng-container icon>\n <span class=\"lucide-ellipsis size-4 text-ink-gray-5\"></span>\n </ng-container>\n </neural-button>\n </neural-dropdown>\n <span class=\"ml-1 mr-0.5 text-base text-ink-gray-4\" aria-hidden=\"true\">\n /\n </span>\n }\n\n <div class=\"flex min-w-0 items-center text-ellipsis whitespace-nowrap\">\n @for (item of crumbs(); track item.label; let i = $index) {\n @if (item.route) {\n <a\n [routerLink]=\"item.route\"\n (click)=\"handleItemClick(item, $event)\"\n class=\"flex items-center rounded-4 px-0.5 py-1 text-lg-medium\"\n [ngClass]=\"i === crumbs().length - 1 ? 'min-w-0 text-ink-gray-9' : 'text-ink-gray-5 hover:text-ink-gray-7'\"\n >\n <span [class.min-w-0]=\"i === crumbs().length - 1\" [class.truncate]=\"i === crumbs().length - 1\" [title]=\"i === crumbs().length - 1 ? item.label : null\">\n {{ item.label }}\n </span>\n </a>\n } @else if (item.href) {\n <a\n [href]=\"item.href\"\n (click)=\"onLinkClick(item, $event)\"\n class=\"flex items-center rounded-4 px-0.5 py-1 text-lg-medium\"\n [ngClass]=\"i === crumbs().length - 1 ? 'min-w-0 text-ink-gray-9' : 'text-ink-gray-5 hover:text-ink-gray-7'\"\n >\n <span [class.min-w-0]=\"i === crumbs().length - 1\" [class.truncate]=\"i === crumbs().length - 1\" [title]=\"i === crumbs().length - 1 ? item.label : null\">\n {{ item.label }}\n </span>\n </a>\n } @else {\n <button\n (click)=\"handleItemClick(item, $event)\"\n class=\"flex items-center rounded-4 px-0.5 py-1 text-lg-medium\"\n [ngClass]=\"i === crumbs().length - 1 ? 'min-w-0 text-ink-gray-9' : 'text-ink-gray-5 hover:text-ink-gray-7'\"\n >\n <span [class.min-w-0]=\"i === crumbs().length - 1\" [class.truncate]=\"i === crumbs().length - 1\" [title]=\"i === crumbs().length - 1 ? item.label : null\">\n {{ item.label }}\n </span>\n </button>\n }\n \n @if (i !== crumbs().length - 1) {\n <span class=\"mx-0.5 text-base text-ink-gray-4\" aria-hidden=\"true\">\n /\n </span>\n }\n }\n </div>\n </div>\n `\n})\nexport class NeuralBreadcrumbsComponent implements AfterViewInit {\n items = input<BreadcrumbItem[]>([]);\n \n @ViewChild('crumbsRef') crumbsRef!: ElementRef<HTMLDivElement>;\n \n overflowedX = signal(false);\n\n constructor(private router: Router) {}\n\n ngAfterViewInit() {\n this.checkOverflow();\n // Angular equivalent of useResizeObserver\n if (typeof window !== 'undefined' && window.ResizeObserver) {\n const ro = new ResizeObserver(() => this.checkOverflow());\n ro.observe(this.crumbsRef.nativeElement);\n }\n }\n\n @HostListener('window:resize')\n onResize() {\n this.checkOverflow();\n }\n\n checkOverflow() {\n if (!this.crumbsRef?.nativeElement) return;\n \n // tmp show all items to measure item width\n this.overflowedX.set(false);\n \n setTimeout(() => {\n if (!this.crumbsRef?.nativeElement) return;\n const scrollWidth = this.crumbsRef.nativeElement.scrollWidth || 0;\n const clientWidth = this.crumbsRef.nativeElement.clientWidth || 0;\n this.overflowedX.set(scrollWidth > clientWidth);\n }, 0);\n }\n\n dropdownItems = computed<DropdownOption[]>(() => {\n const allExceptLastTwo = this.items().slice(0, -2);\n return allExceptLastTwo.map(item => ({\n label: item.label,\n onClick: (event: Event) => {\n if (item.onClick) {\n item.onClick(event);\n }\n if (item.route) {\n this.router.navigate([item.route]);\n }\n }\n }));\n });\n\n crumbs = computed(() => {\n return this.items().slice(this.overflowedX() ? -2 : 0);\n });\n\n isModifiedClick(event: MouseEvent) {\n return (\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey ||\n event.altKey ||\n event.button !== 0\n );\n }\n\n onLinkClick(item: BreadcrumbItem, event: MouseEvent) {\n if (!item.onClick) return;\n if (this.isModifiedClick(event)) return;\n event.preventDefault();\n item.onClick(event);\n }\n \n handleItemClick(item: BreadcrumbItem, event: Event) {\n if (item.onClick) {\n item.onClick(event);\n }\n }\n}\n","import { Component, input, Input, Output, EventEmitter, TemplateRef, ViewChild, ViewContainerRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Dialog, DialogRef, DialogModule } from '@angular/cdk/dialog';\n\n@Component({\n selector: 'neural-bottom-sheet',\n standalone: true,\n imports: [CommonModule, DialogModule],\n template: `\n <!-- We don't render the trigger directly here if we want to use it as a wrapper, \n but typically bottom sheets are opened programmatically or via a button -->\n <ng-template #sheetTemplate>\n <div\n class=\"fixed inset-x-0 bottom-0 z-50 mx-auto flex max-h-[90dvh] w-full max-w-2xl flex-col rounded-t-[36px] bg-surface-base shadow-lg bottom-sheet-content focus:outline-none after:pointer-events-none after:absolute after:inset-x-0 after:top-full after:h-screen after:bg-surface-base\"\n role=\"dialog\"\n [attr.aria-label]=\"title() || 'Bottom sheet'\"\n data-state=\"open\"\n >\n <div class=\"shrink-0 cursor-grab touch-none select-none active:cursor-grabbing\">\n <div class=\"flex justify-center pb-2 pt-3\">\n <div class=\"h-1.5 w-10 rounded-full bg-surface-gray-3\"></div>\n </div>\n @if (title()) {\n <div class=\"px-2 pb-3 pt-2 text-center text-3xl-semibold text-ink-gray-9\">\n {{ title() }}\n </div>\n }\n </div>\n <div class=\"min-h-0 touch-pan-y overflow-y-auto overscroll-contain\">\n <ng-content></ng-content>\n </div>\n </div>\n </ng-template>\n `,\n styles: [`\n @keyframes bottom-sheet-content-in {\n from { transform: translateY(100%); }\n to { transform: translateY(0); }\n }\n @keyframes bottom-sheet-content-out {\n from { transform: translateY(0); }\n to { transform: translateY(100%); }\n }\n .bottom-sheet-content[data-state='open']:not([data-dragged]) {\n animation: bottom-sheet-content-in 300ms cubic-bezier(0.32, 0.72, 0, 1);\n }\n .bottom-sheet-content[data-state='closed'] {\n animation: bottom-sheet-content-out 200ms ease-in;\n }\n `]\n})\nexport class NeuralBottomSheetComponent implements OnDestroy {\n title = input<string>('');\n dismissible = input<boolean>(true);\n \n @Output() openChange = new EventEmitter<boolean>();\n \n @ViewChild('sheetTemplate') sheetTemplate!: TemplateRef<any>;\n\n private dialogRef: DialogRef<any> | null = null;\n private _isOpen = false;\n\n constructor(private dialog: Dialog) {}\n\n @Input()\n set open(value: boolean) {\n if (value && !this._isOpen) {\n this.openSheet();\n } else if (!value && this._isOpen) {\n this.closeSheet();\n }\n }\n\n get open() {\n return this._isOpen;\n }\n\n openSheet() {\n if (this._isOpen) return;\n this._isOpen = true;\n this.openChange.emit(true);\n \n this.dialogRef = this.dialog.open(this.sheetTemplate, {\n panelClass: 'neural-bottom-sheet-panel',\n backdropClass: ['fixed', 'inset-0', 'z-50', 'bg-black-overlay-200', 'dark:bg-black-overlay-700'],\n hasBackdrop: true,\n disableClose: !this.dismissible(),\n });\n\n this.dialogRef.closed.subscribe(() => {\n this._isOpen = false;\n this.openChange.emit(false);\n this.dialogRef = null;\n });\n }\n\n closeSheet() {\n if (this.dialogRef) {\n this.dialogRef.close();\n }\n }\n\n ngOnDestroy() {\n this.closeSheet();\n }\n}\n","import { Component, input, model, computed, ElementRef, ViewChild, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NeuralInputLabelComponent, NeuralInputDescriptionComponent, NeuralInputErrorComponent } from '../input-labeling/input-labeling.components';\nimport { useInputLabeling, FrappeUIError } from '../input-labeling/use-input-labeling';\n\n@Component({\n selector: 'neural-text-input',\n standalone: true,\n imports: [CommonModule, NeuralInputLabelComponent, NeuralInputDescriptionComponent, NeuralInputErrorComponent],\n template: `\n <div [class]=\"wrapperClass()\" [style]=\"wrapperStyle()\">\n @if (label() || hasLabelSlot()) {\n <neural-input-label\n [id]=\"labelId()\"\n [forId]=\"inputId()\"\n [label]=\"label()\"\n [required]=\"required()\"\n [hasDefaultSlot]=\"hasLabelSlot()\"\n >\n @if (hasLabelSlot()) {\n <ng-content select=\"[label]\"></ng-content>\n }\n </neural-input-label>\n }\n\n <div\n class=\"relative flex items-center\"\n [class]=\"hasLabeling() ? '' : wrapperClass()\"\n [style]=\"hasLabeling() ? '' : wrapperStyle()\"\n >\n @if (hasPrefixSlot()) {\n <div [class]=\"prefixClassesCombined()\">\n <ng-content select=\"[prefix]\"></ng-content>\n </div>\n }\n\n <input\n #inputRef\n [type]=\"type()\"\n [placeholder]=\"placeholder()\"\n [class]=\"inputClasses()\"\n [disabled]=\"disabled()\"\n [id]=\"inputId()\"\n [value]=\"valueModel()\"\n [readonly]=\"readonly()\"\n [required]=\"required()\"\n [attr.aria-required]=\"required() ? 'true' : null\"\n [attr.aria-invalid]=\"hasError() ? 'true' : null\"\n [attr.aria-errormessage]=\"hasError() ? errorMessageId() : null\"\n [attr.aria-describedby]=\"describedBy()\"\n data-slot=\"control\"\n autocomplete=\"off\"\n [attr.data-state]=\"dataAttrs()['data-state']\"\n [attr.data-size]=\"dataAttrs()['data-size']\"\n [attr.data-variant]=\"dataAttrs()['data-variant']\"\n [attr.data-disabled]=\"dataAttrs()['data-disabled']\"\n [attr.data-required]=\"dataAttrs()['data-required']\"\n (input)=\"handleChange($event)\"\n (change)=\"handleChange($event)\"\n />\n\n @if (hasSuffixSlot()) {\n <div [class]=\"suffixClassesCombined()\">\n <ng-content select=\"[suffix]\"></ng-content>\n </div>\n }\n </div>\n\n @if (showDescription() || hasDescriptionSlot()) {\n <neural-input-description\n [id]=\"descriptionId()\"\n [description]=\"description()\"\n [hasDefaultSlot]=\"hasDescriptionSlot()\"\n >\n @if (hasDescriptionSlot()) {\n <ng-content select=\"[description]\"></ng-content>\n }\n </neural-input-description>\n }\n @if (hasError()) {\n <neural-input-error [id]=\"errorMessageId()\" [lines]=\"errorLines()\" />\n }\n </div>\n `\n})\nexport class NeuralTextInputComponent {\n valueModel = model<string>('');\n\n type = input<string>('text');\n size = input<'sm' | 'md' | 'lg' | 'xl'>('sm');\n variant = input<'subtle' | 'outline' | 'disabled' | 'ghost'>('subtle');\n placeholder = input<string>('');\n disabled = input<boolean>(false);\n readonly = input<boolean>(false);\n required = input<boolean>(false);\n \n label = input<string>();\n description = input<string>();\n error = input<string | FrappeUIError>();\n id = input<string>();\n \n debounce = input<number>(0);\n \n wrapperClass = input<string>('space-y-1.5');\n wrapperStyle = input<any>({});\n\n hasLabelSlot = input<boolean>(false);\n hasDescriptionSlot = input<boolean>(false);\n hasPrefixSlot = input<boolean>(false);\n hasSuffixSlot = input<boolean>(false);\n\n @ViewChild('inputRef') inputRef!: ElementRef<HTMLInputElement>;\n @Output() debounceChange = new EventEmitter<string>();\n\n private debounceTimer: any;\n\n private labeling = useInputLabeling({\n label: this.label,\n description: this.description,\n error: this.error,\n required: this.required,\n id: this.id\n }, {\n size: this.size,\n variant: this.variant,\n disabled: this.disabled,\n hasLabelSlot: this.hasLabelSlot,\n hasDescriptionSlot: this.hasDescriptionSlot,\n });\n\n inputId = this.labeling.inputId;\n labelId = this.labeling.labelId;\n descriptionId = this.labeling.descriptionId;\n errorMessageId = this.labeling.errorMessageId;\n describedBy = this.labeling.describedBy;\n hasError = this.labeling.hasError;\n errorLines = this.labeling.errorLines;\n showDescription = this.labeling.showDescription;\n dataAttrs = this.labeling.dataAttrs;\n\n hasLabeling = computed(() => {\n return Boolean(\n this.label() ||\n this.description() ||\n this.hasError() ||\n this.hasLabelSlot() ||\n this.hasDescriptionSlot()\n );\n });\n\n textColor = computed(() => {\n return this.disabled() ? 'text-ink-gray-5' : 'text-ink-gray-8';\n });\n\n prefixClassesCombined = computed(() => {\n return ['absolute inset-y-0 start-0 flex items-center', this.textColor(), this.prefixClasses()].join(' ');\n });\n\n suffixClassesCombined = computed(() => {\n return ['absolute inset-y-0 end-0 flex items-center', this.textColor(), this.suffixClasses()].join(' ');\n });\n\n prefixClasses = computed(() => {\n const sizeVal = this.size();\n return sizeVal === 'sm' ? 'ps-2' : sizeVal === 'md' ? 'ps-2.5' : 'ps-3';\n });\n\n suffixClasses = computed(() => {\n const sizeVal = this.size();\n return sizeVal === 'sm' ? 'pe-2' : sizeVal === 'md' ? 'pe-2.5' : 'pe-3';\n });\n\n inputClasses = computed(() => {\n const sizeVal = this.size();\n const sizeClass = sizeVal === 'sm' ? 'text-base rounded-4 h-7'\n : sizeVal === 'md' ? 'text-base rounded-4 h-8'\n : sizeVal === 'lg' ? 'text-lg rounded-5 h-10'\n : 'text-2xl rounded-5 h-10';\n\n const hasPrefix = this.hasPrefixSlot();\n const hasSuffix = this.hasSuffixSlot();\n\n const paddingClass = sizeVal === 'sm'\n ? `py-1.5 ${hasPrefix ? 'ps-8' : 'ps-2'} ${hasSuffix ? 'pe-8' : 'pe-2'}`\n : sizeVal === 'md'\n ? `py-1.5 ${hasPrefix ? 'ps-9' : 'ps-2.5'} ${hasSuffix ? 'pe-9' : 'pe-2.5'}`\n : `py-1.5 ${hasPrefix ? 'ps-10' : 'ps-3'} ${hasSuffix ? 'pe-10' : 'pe-3'}`;\n\n const variantVal = this.disabled() ? 'disabled' : this.variant();\n let variantClass = '';\n if (variantVal === 'subtle') {\n variantClass = 'border border-[--surface-gray-2] bg-surface-gray-2 placeholder-ink-gray-4 hover:border-outline-elevation-2 hover:bg-surface-gray-3 focus:bg-surface-base focus:border-outline-gray-4 focus:shadow-sm focus:ring-0';\n } else if (variantVal === 'outline') {\n variantClass = 'border border-outline-gray-2 bg-surface-base placeholder-ink-gray-4 hover:border-outline-gray-3 hover:shadow-sm focus:bg-surface-base focus:border-outline-gray-4 focus:shadow-sm focus:ring-0';\n } else if (variantVal === 'disabled') {\n variantClass = `border bg-surface-gray-1 placeholder-ink-gray-3 ${this.variant() === 'outline' ? 'border-outline-gray-2' : 'border-transparent'}`;\n } else if (variantVal === 'ghost') {\n variantClass = 'border-0 bg-transparent focus:ring-0 focus-visible:outline-none';\n }\n\n return [\n sizeClass,\n paddingClass,\n variantClass,\n this.textColor(),\n 'transition-colors w-full dark:[color-scheme:dark]'\n ].join(' ');\n });\n\n handleChange(e: Event) {\n const val = (e.target as HTMLInputElement).value;\n this.valueModel.set(val);\n \n if (this.debounce() > 0) {\n if (this.debounceTimer) clearTimeout(this.debounceTimer);\n this.debounceTimer = setTimeout(() => {\n this.debounceChange.emit(val);\n }, this.debounce());\n }\n }\n\n focus(options?: FocusOptions) {\n this.inputRef?.nativeElement?.focus(options);\n }\n}\n","import { Component, input, model, computed, ElementRef, ViewChild, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NeuralInputLabelComponent, NeuralInputDescriptionComponent, NeuralInputErrorComponent } from '../input-labeling/input-labeling.components';\nimport { useInputLabeling, FrappeUIError } from '../input-labeling/use-input-labeling';\n\n@Component({\n selector: 'neural-textarea',\n standalone: true,\n imports: [CommonModule, NeuralInputLabelComponent, NeuralInputDescriptionComponent, NeuralInputErrorComponent],\n template: `\n <div [class]=\"wrapperClass()\" [style]=\"wrapperStyle()\">\n @if (label() || hasLabelSlot()) {\n <neural-input-label\n [id]=\"labelId()\"\n [forId]=\"inputId()\"\n [label]=\"label()\"\n [required]=\"required()\"\n [hasDefaultSlot]=\"hasLabelSlot()\"\n >\n @if (hasLabelSlot()) {\n <ng-content select=\"[label]\"></ng-content>\n }\n </neural-input-label>\n }\n\n <textarea\n #textareaRef\n [placeholder]=\"placeholder()\"\n [class]=\"inputClasses()\"\n [disabled]=\"disabled()\"\n [id]=\"inputId()\"\n [value]=\"valueModel()\"\n [rows]=\"rows()\"\n [required]=\"required()\"\n [attr.aria-required]=\"required() ? 'true' : null\"\n [attr.aria-invalid]=\"hasError() ? 'true' : null\"\n [attr.aria-errormessage]=\"hasError() ? errorMessageId() : null\"\n [attr.aria-describedby]=\"describedBy()\"\n data-slot=\"control\"\n [attr.data-state]=\"dataAttrs()['data-state']\"\n [attr.data-size]=\"dataAttrs()['data-size']\"\n [attr.data-variant]=\"dataAttrs()['data-variant']\"\n [attr.data-disabled]=\"dataAttrs()['data-disabled']\"\n [attr.data-required]=\"dataAttrs()['data-required']\"\n (input)=\"handleChange($event)\"\n (change)=\"handleChange($event)\"\n ></textarea>\n\n @if (showDescription() || hasDescriptionSlot()) {\n <neural-input-description\n [id]=\"descriptionId()\"\n [description]=\"description()\"\n [hasDefaultSlot]=\"hasDescriptionSlot()\"\n >\n @if (hasDescriptionSlot()) {\n <ng-content select=\"[description]\"></ng-content>\n }\n </neural-input-description>\n }\n @if (hasError()) {\n <neural-input-error [id]=\"errorMessageId()\" [lines]=\"errorLines()\" />\n }\n </div>\n `\n})\nexport class NeuralTextareaComponent {\n valueModel = model<string>('');\n\n size = input<'sm' | 'md' | 'lg' | 'xl'>('sm');\n variant = input<'subtle' | 'outline' | 'disabled' | 'ghost'>('subtle');\n placeholder = input<string>('');\n disabled = input<boolean>(false);\n required = input<boolean>(false);\n rows = input<number>(3);\n \n label = input<string>();\n description = input<string>();\n error = input<string | FrappeUIError>();\n id = input<string>();\n \n debounce = input<number>(0);\n \n wrapperClass = input<string>('space-y-1.5');\n wrapperStyle = input<any>({});\n\n hasLabelSlot = input<boolean>(false);\n hasDescriptionSlot = input<boolean>(false);\n\n @ViewChild('textareaRef') textareaRef!: ElementRef<HTMLTextAreaElement>;\n @Output() debounceChange = new EventEmitter<string>();\n\n private debounceTimer: any;\n\n private labeling = useInputLabeling({\n label: this.label,\n description: this.description,\n error: this.error,\n required: this.required,\n id: this.id\n }, {\n size: this.size,\n variant: this.variant,\n disabled: this.disabled,\n hasLabelSlot: this.hasLabelSlot,\n hasDescriptionSlot: this.hasDescriptionSlot,\n });\n\n inputId = this.labeling.inputId;\n labelId = this.labeling.labelId;\n descriptionId = this.labeling.descriptionId;\n errorMessageId = this.labeling.errorMessageId;\n describedBy = this.labeling.describedBy;\n hasError = this.labeling.hasError;\n errorLines = this.labeling.errorLines;\n showDescription = this.labeling.showDescription;\n dataAttrs = this.labeling.dataAttrs;\n\n inputClasses = computed(() => {\n const sizeVal = this.size();\n const sizeClass = sizeVal === 'sm' ? 'text-p-base rounded-4 min-h-9'\n : sizeVal === 'md' ? 'text-p-lg rounded-4 min-h-10'\n : sizeVal === 'lg' ? 'text-p-2xl rounded-5 min-h-11'\n : 'text-p-3xl rounded-5 min-h-11';\n\n const paddingClass = sizeVal === 'sm' ? 'py-1.5 px-2'\n : sizeVal === 'md' ? 'py-1.5 px-2.5'\n : 'py-1.5 px-3';\n\n const variantVal = this.disabled() ? 'disabled' : this.variant();\n let variantClass = '';\n if (variantVal === 'subtle') {\n variantClass = 'border border-[--surface-gray-2] bg-surface-gray-2 placeholder-ink-gray-4 hover:border-outline-elevation-2 hover:bg-surface-gray-3 focus:bg-surface-base focus:border-outline-gray-4 focus:shadow-sm focus:ring-0';\n } else if (variantVal === 'outline') {\n variantClass = 'border border-outline-gray-2 bg-surface-base placeholder-ink-gray-4 hover:border-outline-gray-3 hover:shadow-sm focus:bg-surface-base focus:border-outline-gray-4 focus:shadow-sm focus:ring-0';\n } else if (variantVal === 'disabled') {\n variantClass = `border bg-surface-gray-1 placeholder-ink-gray-3 ${this.variant() === 'outline' ? 'border-outline-gray-2' : 'border-transparent'}`;\n } else if (variantVal === 'ghost') {\n variantClass = 'border-0 bg-transparent focus:ring-0 focus-visible:outline-none';\n }\n\n const textColor = this.disabled() ? 'text-ink-gray-5' : 'text-ink-gray-8';\n\n return [\n sizeClass,\n paddingClass,\n variantClass,\n textColor,\n 'transition-colors w-full block'\n ].join(' ');\n });\n\n handleChange(e: Event) {\n const val = (e.target as HTMLTextAreaElement).value;\n this.valueModel.set(val);\n \n if (this.debounce() > 0) {\n if (this.debounceTimer) clearTimeout(this.debounceTimer);\n this.debounceTimer = setTimeout(() => {\n this.debounceChange.emit(val);\n }, this.debounce());\n }\n }\n\n focus(options?: FocusOptions) {\n this.textareaRef?.nativeElement?.focus(options);\n }\n}\n","import { Component, input, computed } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'neural-error-message',\n standalone: true,\n imports: [CommonModule],\n template: `\n @if (message()) {\n <div\n class=\"whitespace-pre-line text-sm text-ink-red-7\"\n role=\"alert\"\n [innerHTML]=\"errorMessage()\"\n ></div>\n }\n `\n})\nexport class NeuralErrorMessageComponent {\n message = input<any>(''); // string | Error\n\n errorMessage = computed(() => {\n const msg = this.message();\n if (!msg) return '';\n\n if (msg instanceof Error) {\n return (msg as any).messages || msg.message;\n }\n \n return msg;\n });\n}\n","import { Component, input, model, computed, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NeuralTextInputComponent } from '../text-input/text-input.component';\nimport { NeuralTextareaComponent } from '../textarea/textarea.component';\nimport { NeuralCheckboxComponent } from '../checkbox/checkbox.component';\n\n@Component({\n selector: 'neural-form-control',\n standalone: true,\n imports: [CommonModule, NeuralTextInputComponent, NeuralTextareaComponent, NeuralCheckboxComponent],\n template: `\n @if (type() === 'textarea') {\n <neural-textarea\n [(valueModel)]=\"valueModel\"\n [size]=\"size()\"\n [variant]=\"variant()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n [rows]=\"rows()\"\n [label]=\"label()\"\n [description]=\"description()\"\n [error]=\"error()\"\n [id]=\"id()\"\n [debounce]=\"debounce()\"\n [hasLabelSlot]=\"hasLabelSlot()\"\n [hasDescriptionSlot]=\"hasDescriptionSlot()\"\n [class]=\"fillWidth() ? 'w-full block' : ''\"\n (debounceChange)=\"debounceChange.emit($event)\"\n >\n <ng-content select=\"[label]\" ngProjectAs=\"[label]\"></ng-content>\n <ng-content select=\"[description]\" ngProjectAs=\"[description]\"></ng-content>\n </neural-textarea>\n } @else if (type() === 'checkbox') {\n <neural-checkbox\n [(checkedModel)]=\"checkboxValueModel\"\n [size]=\"size()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n [label]=\"label()\"\n [description]=\"description()\"\n [error]=\"error()\"\n [id]=\"id()\"\n [class]=\"fillWidth() ? 'w-full block' : ''\"\n >\n <ng-content select=\"[label]\" ngProjectAs=\"[label]\"></ng-content>\n <ng-content select=\"[description]\" ngProjectAs=\"[description]\"></ng-content>\n </neural-checkbox>\n } @else {\n <!-- TextInput fallback for text, email, password, etc -->\n <neural-text-input\n [(valueModel)]=\"valueModel\"\n [type]=\"type()\"\n [size]=\"size()\"\n [variant]=\"variant()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n [label]=\"label()\"\n [description]=\"description()\"\n [error]=\"error()\"\n [id]=\"id()\"\n [debounce]=\"debounce()\"\n [hasLabelSlot]=\"hasLabelSlot()\"\n [hasDescriptionSlot]=\"hasDescriptionSlot()\"\n [hasPrefixSlot]=\"hasPrefixSlot()\"\n [hasSuffixSlot]=\"hasSuffixSlot()\"\n [class]=\"fillWidth() ? 'w-full block' : ''\"\n (debounceChange)=\"debounceChange.emit($event)\"\n >\n <ng-content select=\"[label]\" ngProjectAs=\"[label]\"></ng-content>\n <ng-content select=\"[description]\" ngProjectAs=\"[description]\"></ng-content>\n <ng-content select=\"[prefix]\" ngProjectAs=\"[prefix]\"></ng-content>\n <ng-content select=\"[suffix]\" ngProjectAs=\"[suffix]\"></ng-content>\n </neural-text-input>\n }\n `\n})\nexport class NeuralFormControlComponent {\n valueModel = model<string>('');\n checkboxValueModel = model<boolean>(false); // Hack to support checkbox type in same wrapper\n\n type = input<string>('text');\n size = input<'sm' | 'md' | 'lg' | 'xl'>('sm');\n variant = input<'subtle' | 'outline' | 'disabled' | 'ghost'>('subtle');\n placeholder = input<string>('');\n disabled = input<boolean>(false);\n required = input<boolean>(false);\n rows = input<number>(3);\n \n label = input<string>();\n description = input<string>();\n error = input<string | any>();\n id = input<string>();\n \n debounce = input<number>(0);\n \n hasLabelSlot = input<boolean>(false);\n hasDescriptionSlot = input<boolean>(false);\n hasPrefixSlot = input<boolean>(false);\n hasSuffixSlot = input<boolean>(false);\n\n @Output() debounceChange = new EventEmitter<string>();\n\n fillWidth = computed(() => {\n return new Set([\n 'select',\n 'combobox',\n 'multiselect',\n 'date',\n 'daterange',\n 'datetime',\n 'time',\n ]).has(this.type());\n });\n}\n","import { Component, input, model, computed, InjectionToken, Inject, Optional, HostBinding } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NeuralInputLabelComponent, NeuralInputDescriptionComponent, NeuralInputErrorComponent } from '../input-labeling/input-labeling.components';\nimport { useInputLabeling, FrappeUIError } from '../input-labeling/use-input-labeling';\nimport { FormsModule } from '@angular/forms';\n\nexport const RADIO_GROUP = new InjectionToken<NeuralRadioGroupComponent>('NeuralRadioGroupComponent');\n\n@Component({\n selector: 'neural-radio-group',\n standalone: true,\n imports: [CommonModule, NeuralInputLabelComponent, NeuralInputDescriptionComponent, NeuralInputErrorComponent],\n providers: [\n { provide: RADIO_GROUP, useExisting: NeuralRadioGroupComponent }\n ],\n template: `\n <div>\n @if (label() || hasLabelSlot()) {\n <neural-input-label\n [id]=\"labelId()\"\n [label]=\"label()\"\n [required]=\"required()\"\n color=\"gray-7\"\n [disabled]=\"disabled()\"\n class=\"select-none\"\n [hasDefaultSlot]=\"hasLabelSlot()\"\n >\n @if (hasLabelSlot()) {\n <ng-content select=\"[label]\"></ng-content>\n }\n </neural-input-label>\n }\n \n <div\n role=\"radiogroup\"\n [attr.aria-labelledby]=\"labelledBy()\"\n [attr.aria-describedby]=\"describedBy()\"\n [attr.aria-invalid]=\"hasError() ? 'true' : null\"\n [attr.aria-errormessage]=\"hasError() ? errorMessageId() : null\"\n [class]=\"rootClasses()\"\n >\n <ng-content></ng-content>\n </div>\n\n @if (showDescription() || hasError() || hasDescriptionSlot()) {\n <div class=\"mt-1\">\n @if (showDescription() || hasDescriptionSlot()) {\n <neural-input-description\n [id]=\"descriptionId()\"\n [description]=\"description()\"\n [disabled]=\"disabled()\"\n [hasDefaultSlot]=\"hasDescriptionSlot()\"\n >\n @if (hasDescriptionSlot()) {\n <ng-content select=\"[description]\"></ng-content>\n }\n </neural-input-description>\n }\n @if (hasError()) {\n <neural-input-error [id]=\"errorMessageId()\" [lines]=\"errorLines()\" />\n }\n </div>\n }\n </div>\n `\n})\nexport class NeuralRadioGroupComponent {\n valueModel = model<any>();\n name = input<string>(`radio-group-${Math.random().toString(36).substr(2, 9)}`);\n \n size = input<'sm' | 'md' | 'lg'>('sm');\n padded = input<boolean>(false);\n disabled = input<boolean>(false);\n orientation = input<'vertical' | 'horizontal'>('vertical');\n required = input<boolean>(false);\n \n label = input<string>();\n description = input<string>();\n error = input<string | FrappeUIError>();\n \n hasLabelSlot = input<boolean>(false);\n hasDescriptionSlot = input<boolean>(false);\n\n private labeling = useInputLabeling({\n label: this.label,\n description: this.description,\n error: this.error,\n required: this.required\n }, {\n size: this.size,\n disabled: this.disabled,\n hasLabelSlot: this.hasLabelSlot,\n hasDescriptionSlot: this.hasDescriptionSlot,\n });\n\n labelId = this.labeling.labelId;\n descriptionId = this.labeling.descriptionId;\n errorMessageId = this.labeling.errorMessageId;\n labelledBy = this.labeling.labelledBy;\n describedBy = this.labeling.describedBy;\n hasError = this.labeling.hasError;\n errorLines = this.labeling.errorLines;\n showDescription = this.labeling.showDescription;\n\n rootClasses = computed(() => {\n const stacked = this.orientation() === 'vertical';\n const gap = this.padded() ? '' : stacked ? 'gap-y-1.5' : 'gap-x-4';\n return [\n 'flex',\n stacked ? 'flex-col' : 'flex-row flex-wrap items-center',\n gap,\n this.label() || this.hasLabelSlot() ? 'mt-1.5' : ''\n ].join(' ');\n });\n}\n\n@Component({\n selector: 'neural-radio',\n standalone: true,\n imports: [CommonModule, FormsModule],\n template: `\n <label\n [class]=\"rowClasses()\"\n [attr.data-size]=\"size()\"\n [attr.data-state]=\"isChecked() ? 'checked' : 'unchecked'\"\n class=\"group\"\n >\n <input\n type=\"radio\"\n class=\"sr-only\"\n [name]=\"group?.name()\"\n [value]=\"value()\"\n [disabled]=\"isDisabled()\"\n [checked]=\"isChecked()\"\n (change)=\"onChange()\"\n />\n <span [class]=\"circleClasses()\" aria-hidden=\"true\"></span>\n <span class=\"flex flex-col items-start gap-0.5 text-start\">\n @if (label() || hasLabelSlot()) {\n <span [class]=\"labelClasses()\">\n @if (hasLabelSlot()) {\n <ng-content select=\"[label]\"></ng-content>\n } @else {\n {{ label() }}\n }\n </span>\n }\n @if (description() || hasDescriptionSlot()) {\n <span [class]=\"descriptionClasses()\">\n @if (hasDescriptionSlot()) {\n <ng-content select=\"[description]\"></ng-content>\n } @else {\n {{ description() }}\n }\n </span>\n }\n </span>\n </label>\n `\n})\nexport class NeuralRadioComponent {\n value = input.required<any>();\n disabled = input<boolean>(false);\n label = input<string>();\n description = input<string>();\n\n hasLabelSlot = input<boolean>(false);\n hasDescriptionSlot = input<boolean>(false);\n\n constructor(@Optional() @Inject(RADIO_GROUP) public group: NeuralRadioGroupComponent) {\n if (!this.group) {\n console.warn('<neural-radio> must be used inside a <neural-radio-group>.');\n }\n }\n\n size = computed(() => this.group?.size() || 'sm');\n padded = computed(() => this.group?.padded() || false);\n isDisabled = computed(() => this.group?.disabled() || this.disabled());\n isChecked = computed(() => this.group?.valueModel() === this.value());\n\n hasDescription = computed(() => Boolean(this.description() || this.hasDescriptionSlot()));\n\n rowClasses = computed(() => {\n const classes = [\n 'flex items-start gap-2 rounded-4 text-start transition-colors',\n 'focus-within:outline-none focus-within:ring-2 focus-within:ring-outline-gray-4',\n this.isDisabled() ? 'cursor-not-allowed' : 'cursor-pointer'\n ];\n if (!this.padded()) return classes.join(' ');\n\n if (this.hasDescription()) {\n classes.push(this.size() === 'md' ? 'px-3 py-2' : 'px-1.5 py-1.5');\n } else {\n if (this.size() === 'md') {\n classes.push('h-8 items-center px-3');\n } else if (this.size() === 'sm') {\n classes.push('h-7 items-center px-1.5');\n } else {\n classes.push('h-6 items-center px-1.5');\n }\n }\n\n if (!this.isDisabled()) {\n classes.push('hover:bg-surface-gray-3 active:bg-surface-gray-4');\n }\n return classes.join(' ');\n });\n\n circleClasses = computed(() => {\n let control = '';\n let offset = '';\n \n if (this.size() === 'md') {\n control = 'size-4 group-has-[:checked]:border-[4.5px]';\n offset = 'mt-[2.5px]';\n } else if (this.size() === 'sm') {\n control = 'size-3.5 group-has-[:checked]:border-4';\n offset = 'mt-[3.5px]';\n } else {\n control = 'size-[13px] group-has-[:checked]:border-[3.7px]';\n offset = 'mt-1';\n }\n\n const classes = [\n 'box-border shrink-0 rounded-full border bg-surface-base transition-colors',\n this.hasDescription() || !this.padded() ? offset : '',\n control\n ];\n\n if (this.isDisabled()) {\n classes.push(\n 'border-outline-gray-3 bg-surface-base',\n 'group-has-[:checked]:border-[color:var(--surface-gray-5)]'\n );\n return classes.join(' ');\n }\n\n classes.push(\n 'border-outline-gray-4 group-hover:border-outline-gray-5 group-active:border-outline-gray-6',\n 'group-has-[:checked]:border-[color:var(--surface-gray-10)]',\n 'group-has-[:checked]:group-hover:border-[color:var(--surface-gray-9)]',\n 'group-has-[:checked]:group-active:border-[color:var(--surface-gray-8)]'\n );\n return classes.join(' ');\n });\n\n labelClasses = computed(() => {\n return [\n 'block text-base leading-normal select-none',\n this.isDisabled() ? 'text-ink-gray-4' : 'text-ink-gray-7'\n ].join(' ');\n });\n\n descriptionClasses = computed(() => {\n return [\n 'block text-sm leading-normal select-none',\n this.isDisabled() ? 'text-ink-gray-3' : 'text-ink-gray-5'\n ].join(' ');\n });\n\n onChange() {\n if (!this.isDisabled() && this.group) {\n this.group.valueModel.set(this.value());\n }\n }\n}\n","import { Component, input, model, computed } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NeuralInputLabelComponent, NeuralInputDescriptionComponent, NeuralInputErrorComponent } from '../input-labeling/input-labeling.components';\nimport { useInputLabeling, FrappeUIError } from '../input-labeling/use-input-labeling';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'neural-switch',\n standalone: true,\n imports: [CommonModule, FormsModule, NeuralInputLabelComponent, NeuralInputDescriptionComponent, NeuralInputErrorComponent],\n template: `\n <div\n class=\"flex flex-col\"\n [class]=\"containerClasses()\"\n (click)=\"onContainerClick($event)\"\n >\n @if (switchGroupClasses()) {\n <div [class]=\"switchGroupClasses()\">\n <div class=\"flex flex-col gap-1\">\n <div class=\"flex items-center\">\n @if (icon()) {\n <i [class]=\"icon() + ' ' + iconClasses\" aria-hidden=\"true\"></i>\n }\n @if (label() || hasLabelSlot()) {\n <neural-input-label\n [id]=\"labelId()\"\n [forId]=\"inputId()\"\n [label]=\"label()\"\n [required]=\"required()\"\n color=\"gray-7\"\n [disabled]=\"disabled()\"\n [class]=\"switchLabelClasses()\"\n [hasDefaultSlot]=\"hasLabelSlot()\"\n >\n @if (hasLabelSlot()) {\n <ng-content select=\"[label]\"></ng-content>\n }\n </neural-input-label>\n }\n </div>\n </div>\n <button\n type=\"button\"\n role=\"switch\"\n [id]=\"inputId()\"\n [attr.aria-checked]=\"valueModel()\"\n [attr.aria-required]=\"required() ? 'true' : null\"\n [attr.aria-invalid]=\"hasError() ? 'true' : null\"\n [attr.aria-errormessage]=\"hasError() ? errorMessageId() : null\"\n [attr.aria-describedby]=\"describedBy()\"\n [disabled]=\"disabled()\"\n [class]=\"switchClasses()\"\n data-slot=\"control\"\n [attr.data-state]=\"valueModel() ? 'checked' : 'unchecked'\"\n [attr.data-size]=\"dataAttrs()['data-size']\"\n [attr.data-variant]=\"dataAttrs()['data-variant']\"\n [attr.data-disabled]=\"dataAttrs()['data-disabled']\"\n [attr.data-required]=\"dataAttrs()['data-required']\"\n (click)=\"toggle($event)\"\n >\n <span [class]=\"switchCircleClasses()\"></span>\n </button>\n </div>\n }\n\n @if (showDescription() || hasError() || hasDescriptionSlot()) {\n <div [class]=\"errorSpacingClass() + ' ' + (errorIndentClasses() || '')\">\n @if (showDescription() || hasDescriptionSlot()) {\n <neural-input-description\n [id]=\"descriptionId()\"\n [description]=\"description()\"\n [disabled]=\"disabled()\"\n [hasDefaultSlot]=\"hasDescriptionSlot()\"\n >\n @if (hasDescriptionSlot()) {\n <ng-content select=\"[description]\"></ng-content>\n }\n </neural-input-description>\n }\n @if (hasError()) {\n <neural-input-error [id]=\"errorMessageId()\" [lines]=\"errorLines()\" />\n }\n </div>\n }\n </div>\n `\n})\nexport class NeuralSwitchComponent {\n valueModel = model<boolean>(false);\n\n size = input<'sm' | 'md' | 'lg'>('sm');\n padded = input<boolean>(false);\n disabled = input<boolean>(false);\n required = input<boolean>(false);\n controlPosition = input<'start' | 'end'>('end');\n icon = input<string>();\n \n label = input<string>();\n description = input<string>();\n error = input<string | FrappeUIError>();\n id = input<string>();\n\n hasLabelSlot = input<boolean>(false);\n hasDescriptionSlot = input<boolean>(false);\n\n private labeling = useInputLabeling({\n label: this.label,\n description: this.description,\n error: this.error,\n required: this.required,\n id: this.id\n }, {\n size: this.size,\n disabled: this.disabled,\n state: computed(() => (this.valueModel() ? 'checked' : 'unchecked')),\n hasLabelSlot: this.hasLabelSlot,\n hasDescriptionSlot: this.hasDescriptionSlot,\n });\n\n inputId = this.labeling.inputId;\n labelId = this.labeling.labelId;\n descriptionId = this.labeling.descriptionId;\n errorMessageId = this.labeling.errorMessageId;\n describedBy = this.labeling.describedBy;\n hasError = this.labeling.hasError;\n errorLines = this.labeling.errorLines;\n showDescription = this.labeling.showDescription;\n dataAttrs = this.labeling.dataAttrs;\n rendersDescription = this.labeling.rendersDescription;\n\n iconClasses = 'me-2 size-4 flex-shrink-0 text-ink-gray-6';\n\n switchClasses = computed(() => {\n return [\n 'relative inline-flex flex-shrink-0 cursor-pointer rounded-full border-transparent transition-colors duration-100 ease-in-out items-center',\n this.padded() ? 'focus:outline-none focus:ring-0' : '',\n 'disabled:cursor-not-allowed disabled:bg-surface-gray-3',\n this.valueModel()\n ? 'bg-surface-gray-10 enabled:hover:bg-surface-gray-9 active:bg-surface-gray-8 group-hover:enabled:bg-surface-gray-9'\n : 'bg-surface-gray-4 enabled:hover:bg-surface-gray-5 active:bg-surface-gray-6 group-hover:enabled:bg-surface-gray-5',\n this.size() === 'md'\n ? 'h-5 w-8 border-[3px]'\n : this.size() === 'sm'\n ? 'h-4 w-[26px] border-2'\n : 'h-3.5 w-[24px] border-2',\n ].join(' ');\n });\n\n switchCircleClasses = computed(() => {\n return [\n 'pointer-events-none inline-block transform rounded-full bg-surface-base shadow ring-0 transition duration-100 ease-in-out',\n this.size() === 'md'\n ? 'h-3.5 w-3.5'\n : this.size() === 'sm'\n ? 'h-3 w-3'\n : 'h-2.5 w-2.5',\n this.size() === 'md'\n ? this.valueModel() ? 'translate-x-3 rtl:-translate-x-3' : 'translate-x-0'\n : this.size() === 'sm'\n ? this.valueModel() ? 'translate-x-2.5 rtl:-translate-x-2.5' : 'translate-x-0'\n : this.valueModel() ? 'translate-x-2.5 rtl:-translate-x-2.5' : 'translate-x-0',\n ].join(' ');\n });\n\n switchLabelClasses = computed(() => {\n return [\n 'leading-tight select-none',\n this.disabled() ? 'cursor-not-allowed' : 'cursor-pointer',\n ].join(' ');\n });\n\n switchGroupClasses = computed(() => {\n const hasLabel = this.label() || this.hasLabelSlot();\n const hasDescription = this.description() || this.hasDescriptionSlot();\n if (!hasLabel && !hasDescription) return '';\n\n const switchStart = this.controlPosition() === 'start';\n\n if (hasDescription) {\n return [\n 'flex items-center',\n switchStart ? 'flex-row-reverse justify-end' : 'justify-between',\n this.size() === 'md' ? 'gap-x-3.5' : 'gap-x-2.5',\n ].join(' ');\n }\n\n const classes = [\n 'flex group items-center',\n switchStart\n ? 'flex-row-reverse justify-end gap-x-2.5'\n : 'justify-between gap-x-3',\n ];\n if (!this.padded()) {\n classes.push('py-1.5 cursor-pointer rounded-4');\n if (this.disabled()) classes.push('cursor-not-allowed');\n }\n return classes.join(' ');\n });\n\n errorIndentClasses = computed(() => {\n if (this.controlPosition() !== 'start') return undefined;\n return this.size() === 'md'\n ? 'ps-[42px]'\n : this.size() === 'sm'\n ? 'ps-9'\n : 'ps-8';\n });\n\n errorSpacingClass = computed(() => {\n const hasDescription = this.description() || this.hasDescriptionSlot();\n if (hasDescription) return 'mt-0.5';\n return !this.padded() ? '-mt-0.5' : 'mt-1';\n });\n\n containerClasses = computed(() => {\n if (!this.padded()) return '';\n const hasDetail = this.rendersDescription() || this.hasError();\n const sizeClass = hasDetail\n ? this.size() === 'md'\n ? 'px-3 py-2'\n : this.size() === 'sm'\n ? 'px-2 py-1.5'\n : 'px-1.5 py-1.5'\n : this.size() === 'md'\n ? 'h-8 px-3'\n : this.size() === 'sm'\n ? 'h-7 px-2'\n : 'h-6 px-1.5';\n \n const classes = ['group rounded-4 transition-colors', sizeClass];\n if (!hasDetail) classes.push('justify-center');\n classes.push(this.controlPosition() === 'start' ? 'w-fit' : 'w-full');\n classes.push(\n this.disabled()\n ? 'cursor-not-allowed'\n : 'cursor-pointer hover:bg-surface-gray-3 active:bg-surface-gray-4 [&:has(:focus-visible)]:ring-2 [&:has(:focus-visible)]:ring-outline-gray-3'\n );\n return classes.join(' ');\n });\n\n toggle(event?: Event) {\n if (event) {\n event.stopPropagation();\n event.preventDefault();\n }\n if (this.disabled()) return;\n this.valueModel.set(!this.valueModel());\n }\n\n onContainerClick(event: MouseEvent) {\n if (!this.padded() || this.disabled()) return;\n const target = event.target as HTMLElement;\n if (target.closest('[data-slot=\"control\"]')) return;\n if (target.closest('[data-slot=\"label\"]')) return;\n \n this.valueModel.set(!this.valueModel());\n }\n}\n","import { Component, input, computed } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'neural-icon',\n standalone: true,\n imports: [CommonModule],\n template: `\n @if (isLucideIcon()) {\n <span [class]=\"name()\" aria-hidden=\"true\"></span>\n } @else if (isEmojiIcon()) {\n <span class=\"inline-flex items-center justify-center leading-none\" aria-hidden=\"true\">\n {{ name() }}\n </span>\n } @else {\n <!-- Fallback or custom SVG component handled by ng-content if not string -->\n <ng-content></ng-content>\n }\n `\n})\nexport class NeuralIconComponent {\n name = input.required<string>();\n\n isLucideIcon = computed(() => {\n const val = this.name();\n return typeof val === 'string' && val.startsWith('lucide-');\n });\n\n isEmojiIcon = computed(() => {\n const val = this.name();\n if (typeof val !== 'string') return false;\n \n // Very simple emoji detection\n const emojiRegex = /[\\p{Emoji_Presentation}\\p{Extended_Pictographic}]/u;\n return emojiRegex.test(val);\n });\n}\n","import { Component, input, computed } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'neural-spinner',\n standalone: true,\n imports: [CommonModule],\n template: `\n <svg\n class=\"fui-spinner inline-block shrink-0\"\n width=\"16\"\n height=\"16\"\n role=\"status\"\n aria-label=\"Loading\"\n [class]=\"colorClass() + ' ' + (track() ? 'fui-spinner--track' : '')\"\n [style]=\"rootStyle()\"\n ></svg>\n `,\n styles: [`\n @property --fui-spinner-angle {\n syntax: '<angle>';\n inherits: false;\n initial-value: 0deg;\n }\n\n .fui-spinner {\n --fui-spinner-thickness: 14.7%;\n --fui-spinner-mask-thickness: 29.4%;\n --fui-spinner-inset: 7.5%;\n --fui-spinner-paint-size: calc(100% - 2 * var(--fui-spinner-inset));\n --fui-spinner-track-color: transparent;\n \n background-image:\n radial-gradient(\n calc(var(--fui-spinner-thickness) / 2)\n calc(var(--fui-spinner-thickness) / 2) at\n calc(\n 50% + (50% - var(--fui-spinner-thickness) / 2) *\n sin(var(--fui-spinner-angle))\n )\n calc(\n 50% - (50% - var(--fui-spinner-thickness) / 2) *\n cos(var(--fui-spinner-angle))\n ),\n currentColor 92%,\n transparent\n ),\n conic-gradient(\n from var(--fui-spinner-angle),\n transparent 32%,\n currentColor 92%,\n currentColor 100%\n ),\n linear-gradient(\n var(--fui-spinner-track-color),\n var(--fui-spinner-track-color)\n );\n background-size: var(--fui-spinner-paint-size) var(--fui-spinner-paint-size);\n background-position: center;\n background-repeat: no-repeat;\n \n -webkit-mask: radial-gradient(\n farthest-side,\n transparent calc(100% - var(--fui-spinner-mask-thickness)),\n #000 calc(100% - var(--fui-spinner-mask-thickness)),\n #000 calc(100% - 0.5px),\n transparent 100%\n )\n center / var(--fui-spinner-paint-size) var(--fui-spinner-paint-size)\n no-repeat;\n mask: radial-gradient(\n farthest-side,\n transparent calc(100% - var(--fui-spinner-mask-thickness)),\n #000 calc(100% - var(--fui-spinner-mask-thickness)),\n #000 calc(100% - 0.5px),\n transparent 100%\n )\n center / var(--fui-spinner-paint-size) var(--fui-spinner-paint-size)\n no-repeat;\n \n animation: fui-spinner-rotate 0.7s linear infinite;\n }\n\n .fui-spinner--track {\n --fui-spinner-track-color: color-mix(in srgb, currentColor 15%, transparent);\n }\n\n @keyframes fui-spinner-rotate {\n to {\n --fui-spinner-angle: 360deg;\n }\n }\n\n @media (prefers-reduced-motion: reduce) {\n .fui-spinner {\n animation-duration: 1.6s;\n }\n }\n `]\n})\nexport class NeuralSpinnerComponent {\n size = input<'xs' | 'sm' | 'md' | 'lg'>();\n theme = input<'gray' | 'red'>();\n track = input<boolean>(false);\n\n private sizeMap = {\n xs: { px: 12, thickness: 1.5, inset: 0.9 },\n sm: { px: 14, thickness: 2, inset: 1.05 },\n md: { px: 16, thickness: 2, inset: 1.2 },\n lg: { px: 20, thickness: 2, inset: 1.5 },\n };\n\n colorClass = computed(() => {\n const themeVal = this.theme();\n if (!themeVal) return '';\n return { gray: 'text-ink-gray-8', red: 'text-ink-red-7' }[themeVal] || '';\n });\n\n rootStyle = computed(() => {\n const sizeVal = this.size();\n if (!sizeVal || !this.sizeMap[sizeVal]) return {};\n \n const sizeData = this.sizeMap[sizeVal];\n return {\n width: `${sizeData.px}px`,\n height: `${sizeData.px}px`,\n '--fui-spinner-thickness': `${sizeData.thickness}px`,\n '--fui-spinner-mask-thickness': `${sizeData.thickness}px`,\n '--fui-spinner-inset': `${sizeData.inset}px`,\n };\n });\n}\n","import { Component, input, computed } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NeuralSpinnerComponent } from '../spinner/spinner.component';\n\n@Component({\n selector: 'neural-loading-indicator',\n standalone: true,\n imports: [CommonModule, NeuralSpinnerComponent],\n template: `\n <neural-spinner [style]=\"scaleStyle()\"></neural-spinner>\n `\n})\nexport class NeuralLoadingIndicatorComponent {\n scale = input<number>(100);\n\n scaleStyle = computed(() => {\n return this.scale() === 100 ? {} : { scale: `${this.scale()}%` };\n });\n}\n","import { Component, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NeuralLoadingIndicatorComponent } from '../loading-indicator/loading-indicator.component';\n\n@Component({\n selector: 'neural-loading-text',\n standalone: true,\n imports: [CommonModule, NeuralLoadingIndicatorComponent],\n template: `\n <div class=\"flex items-center text-base text-ink-gray-4\">\n <neural-loading-indicator class=\"-ml-1 mr-2 h-3 w-3\"></neural-loading-indicator> {{ text() }}\n </div>\n `\n})\nexport class NeuralLoadingTextComponent {\n text = input<string>('Loading...');\n}\n","import { Component, input, computed, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NeuralButtonComponent } from '../button/button.component';\n\n@Component({\n selector: 'neural-divider',\n standalone: true,\n imports: [CommonModule, NeuralButtonComponent],\n template: `\n @if (actionLabel()) {\n <div [class]=\"actionContainerClasses()\">\n <div\n role=\"separator\"\n [attr.aria-orientation]=\"orientation()\"\n class=\"absolute border-0 border-outline-gray-2\"\n [class]=\"actionLineClasses()\"\n ></div>\n <neural-button\n [loading]=\"actionLoading()\"\n class=\"relative z-10\"\n size=\"sm\"\n variant=\"outline\"\n (click)=\"actionClick.emit($event)\"\n >\n {{ actionLabel() }}\n </neural-button>\n </div>\n } @else {\n <hr class=\"border-0 border-outline-gray-2\" [class]=\"dividerClasses()\" />\n }\n `\n})\nexport class NeuralDividerComponent {\n orientation = input<'horizontal' | 'vertical'>('horizontal');\n position = input<'center' | 'start' | 'end'>('center');\n flexItem = input<boolean>(false);\n \n actionLabel = input<string>();\n actionLoading = input<boolean>(false);\n @Output() actionClick = new EventEmitter<Event>();\n\n dividerClasses = computed(() => {\n let spacerDimensionClasses = this.orientation() === 'horizontal' \n ? 'border-t-[1px] w-full' \n : 'border-l-[1px]';\n let flexClasses = this.flexItem() ? 'self-stretch h-auto' : 'h-full';\n return [spacerDimensionClasses, flexClasses].join(' ');\n });\n\n actionContainerClasses = computed(() => {\n let baseClasses = ['relative whitespace-nowrap border-0 border-outline-gray-2'];\n\n if (this.orientation() === 'horizontal') {\n let positionClasses = this.position() === 'center' ? 'justify-center'\n : this.position() === 'start' ? 'justify-start pl-4'\n : 'justify-end pr-4';\n return [...baseClasses, 'flex w-full min-h-7 items-center', positionClasses].join(' ');\n }\n\n let heightClasses = this.flexItem() ? 'self-stretch' : 'h-full';\n let positionClasses = this.position() === 'center' ? 'items-center'\n : this.position() === 'start' ? 'items-start pt-4'\n : 'items-end pb-4';\n return [...baseClasses, 'flex justify-center', heightClasses, positionClasses].join(' ');\n });\n\n actionLineClasses = computed(() => {\n return this.orientation() === 'horizontal' \n ? 'inset-x-0 top-1/2 -translate-y-1/2 border-t-[1px]'\n : 'inset-y-0 left-1/2 -translate-x-1/2 border-l-[1px]';\n });\n}\n","import { Component, input, computed, contentChild, TemplateRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NeuralRequiredIndicatorComponent } from '../input-labeling/input-labeling.components';\n\n@Component({\n selector: 'neural-form-label',\n standalone: true,\n imports: [CommonModule, NeuralRequiredIndicatorComponent],\n template: `\n @if (label() || hasDefaultSlot()) {\n <label [for]=\"forId()\" [class]=\"labelClasses()\">\n <ng-content></ng-content>\n @if (!hasDefaultSlot()) {\n {{ label() }}\n }\n <neural-required-indicator [required]=\"required()\" />\n </label>\n }\n `\n})\nexport class NeuralFormLabelComponent {\n label = input<string>('');\n forId = input<string>();\n required = input<boolean>(false);\n hasDefaultSlot = input<boolean>(false);\n size = input<'sm' | 'md'>('sm');\n\n labelClasses = computed(() => {\n return this.size() === 'sm' ? 'text-xs' : 'text-base';\n });\n}\n","import { Component, input, computed, ViewChild, ElementRef, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule, ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { CdkOverlayOrigin } from '@angular/cdk/overlay';\n\n@Component({\n selector: 'neural-tooltip',\n standalone: true,\n imports: [CommonModule, OverlayModule],\n template: `\n @if (disabled()) {\n <ng-content></ng-content>\n } @else {\n <div \n class=\"inline-block\"\n cdkOverlayOrigin \n #trigger=\"cdkOverlayOrigin\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n >\n <ng-content></ng-content>\n </div>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayPositions]=\"positions()\"\n >\n <div \n class=\"z-[100]\" \n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n >\n @if (bare()) {\n <ng-content select=\"[content]\"></ng-content>\n } @else {\n <div class=\"rounded-4 bg-surface-gray-10 px-2 py-1 text-xs text-ink-base shadow-xl\">\n @if (hasContentSlot()) {\n <ng-content select=\"[content]\"></ng-content>\n } @else {\n {{ text() }}\n }\n </div>\n <!-- Missing SVG arrow for now, to keep it simple -->\n }\n </div>\n </ng-template>\n }\n `\n})\nexport class NeuralTooltipComponent {\n text = input<string>('');\n side = input<'top' | 'right' | 'bottom' | 'left'>('top');\n offset = input<number>(4);\n hoverDelay = input<number>(0.5);\n bare = input<boolean>(false);\n disabled = input<boolean>(false);\n hasContentSlot = input<boolean>(false);\n\n isOpen = signal(false);\n private hoverTimeout: any;\n\n positions = computed(() => {\n const s = this.side();\n const pos = [];\n if (s === 'top') {\n pos.push(new ConnectionPositionPair({ originX: 'center', originY: 'top' }, { overlayX: 'center', overlayY: 'bottom' }, 0, -this.offset()));\n } else if (s === 'bottom') {\n pos.push(new ConnectionPositionPair({ originX: 'center', originY: 'bottom' }, { overlayX: 'center', overlayY: 'top' }, 0, this.offset()));\n } else if (s === 'left') {\n pos.push(new ConnectionPositionPair({ originX: 'start', originY: 'center' }, { overlayX: 'end', overlayY: 'center' }, -this.offset(), 0));\n } else if (s === 'right') {\n pos.push(new ConnectionPositionPair({ originX: 'end', originY: 'center' }, { overlayX: 'start', overlayY: 'center' }, this.offset(), 0));\n }\n return pos;\n });\n\n onMouseEnter() {\n if (this.disabled()) return;\n if (this.hoverTimeout) clearTimeout(this.hoverTimeout);\n this.hoverTimeout = setTimeout(() => {\n this.isOpen.set(true);\n }, this.hoverDelay() * 1000);\n }\n\n onMouseLeave() {\n if (this.disabled()) return;\n if (this.hoverTimeout) clearTimeout(this.hoverTimeout);\n this.isOpen.set(false);\n }\n}\n","import { Component, input, model, computed, ViewChild, TemplateRef, effect, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Dialog, DialogModule, DialogRef } from '@angular/cdk/dialog';\nimport { NeuralButtonComponent } from '../button/button.component';\n\nexport type DialogSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl' | '7xl';\nexport type DialogTheme = 'amber' | 'blue' | 'red' | 'green';\nexport type DialogPosition = 'center' | 'top';\n\nexport interface DialogAction {\n label: string;\n onClick?: (context: { close: () => void }) => void | Promise<void>;\n disabled?: boolean;\n theme?: 'gray' | 'blue' | 'red' | 'green';\n variant?: 'solid' | 'subtle' | 'outline' | 'ghost';\n icon?: string;\n loading?: boolean;\n}\n\n@Component({\n selector: 'neural-dialog',\n standalone: true,\n imports: [CommonModule, DialogModule, NeuralButtonComponent],\n template: `\n <ng-template #dialogTemplate>\n <div \n class=\"fixed inset-0 z-50 overflow-y-auto dialog-scroll-container\"\n >\n <div\n class=\"flex min-h-screen flex-col items-center px-4 py-4 text-center\"\n [class]=\"dialogPositionClasses()\"\n [style]=\"dialogPositionStyles()\"\n >\n <div\n class=\"my-8 inline-block w-full transform overflow-hidden rounded-7 bg-surface-elevation-1 text-start align-middle shadow-xl dialog-content focus-visible:outline-none\"\n [class]=\"sizeClass()\"\n >\n @if (bare()) {\n <ng-content></ng-content>\n } @else {\n <div class=\"bg-surface-elevation-1 px-4 pb-6 pt-5 sm:px-6\">\n <div class=\"flex\">\n <div class=\"w-full flex-1\">\n @if (showHeader()) {\n <div class=\"mb-6 flex items-center justify-between\">\n <div class=\"flex items-center space-x-2 flex-1\">\n @if (icon()) {\n <div\n class=\"flex h-7 w-7 flex-shrink-0 items-center justify-center rounded-full\"\n [class]=\"dialogIconBgClasses()\"\n >\n <span [class]=\"iconName() + ' size-4 ' + dialogIconClasses()\" aria-hidden=\"true\"></span>\n </div>\n }\n <header class=\"flex-1\">\n @if (hasTitleSlot()) {\n <ng-content select=\"[title]\"></ng-content>\n } @else if (title()) {\n <h3 class=\"text-2xl-semibold leading-6 text-ink-gray-8\">\n {{ title() }}\n </h3>\n }\n </header>\n </div>\n @if (showCloseButton()) {\n <neural-button variant=\"ghost\" label=\"Close\" (click)=\"close()\">\n <span icon class=\"lucide-x size-4 text-ink-gray-9\"></span>\n </neural-button>\n }\n </div>\n }\n\n @if (hasDefaultSlot()) {\n <ng-content></ng-content>\n } @else if (message()) {\n <p class=\"text-p-base text-ink-gray-7\">\n {{ message() }}\n </p>\n }\n </div>\n </div>\n </div>\n\n @if (reactiveActions().length || hasActionsSlot()) {\n <div class=\"px-4 pb-7 pt-4 sm:px-6\">\n @if (hasActionsSlot()) {\n <ng-content select=\"[actions]\"></ng-content>\n } @else {\n <div [class]=\"isSingleActionFullWidth() ? '' : 'flex justify-end gap-2'\">\n @for (action of reactiveActions(); track action.label) {\n <neural-button\n class=\"w-full sm:w-auto\"\n [disabled]=\"action.disabled || false\"\n [loading]=\"action.loading || false\"\n [variant]=\"action.variant || 'solid'\"\n [theme]=\"action.theme || 'gray'\"\n (click)=\"onActionClick(action)\"\n >\n {{ action.label }}\n @if (action.icon) {\n <span icon [class]=\"action.icon + ' size-4'\"></span>\n }\n </neural-button>\n }\n </div>\n }\n </div>\n }\n }\n \n @if (showCloseButton() && !showHeader() && !bare()) {\n <neural-button\n class=\"absolute right-4 top-4 z-10\"\n variant=\"ghost\"\n label=\"Close\"\n (click)=\"close()\"\n >\n <span icon class=\"lucide-x size-4 text-ink-gray-9\"></span>\n </neural-button>\n }\n </div>\n </div>\n </div>\n </ng-template>\n `\n})\nexport class NeuralDialogComponent implements OnDestroy {\n openModel = model<boolean>(false);\n\n title = input<string>();\n message = input<string>();\n icon = input<string | { name: string, theme?: DialogTheme }>();\n \n size = input<DialogSize>('lg');\n position = input<DialogPosition>('center');\n paddingTop = input<string | number>();\n \n actions = input<DialogAction[]>([]);\n \n dismissible = input<boolean>(true);\n showCloseButton = input<boolean>(true);\n bare = input<boolean>(false);\n\n hasTitleSlot = input<boolean>(false);\n hasActionsSlot = input<boolean>(false);\n hasDefaultSlot = input<boolean>(false);\n\n @ViewChild('dialogTemplate') dialogTemplate!: TemplateRef<any>;\n\n private dialogRef: DialogRef<any> | null = null;\n internalActionsState: Record<string, boolean> = {}; // track loading states\n\n constructor(private dialog: Dialog) {\n effect(() => {\n const isOpen = this.openModel();\n if (isOpen && !this.dialogRef && this.dialogTemplate) {\n this.openDialog();\n } else if (!isOpen && this.dialogRef) {\n this.dialogRef.close();\n this.dialogRef = null;\n }\n });\n }\n\n private openDialog() {\n this.dialogRef = this.dialog.open(this.dialogTemplate, {\n disableClose: !this.dismissible(),\n backdropClass: 'bg-black-overlay-200', // To match Frappe UI \n panelClass: ['w-full', 'h-full', 'bg-transparent', 'shadow-none'],\n hasBackdrop: true,\n });\n\n this.dialogRef.closed.subscribe(() => {\n this.dialogRef = null;\n if (this.openModel()) {\n this.openModel.set(false);\n }\n });\n }\n\n close() {\n if (this.dialogRef) {\n this.dialogRef.close();\n }\n }\n\n ngOnDestroy() {\n if (this.dialogRef) {\n this.dialogRef.close();\n }\n }\n\n sizeClass = computed(() => {\n const map: Record<string, string> = {\n xs: 'max-w-xs',\n sm: 'max-w-sm',\n md: 'max-w-md',\n lg: 'max-w-lg',\n xl: 'max-w-xl',\n '2xl': 'max-w-2xl',\n '3xl': 'max-w-3xl',\n '4xl': 'max-w-4xl',\n '5xl': 'max-w-5xl',\n '6xl': 'max-w-6xl',\n '7xl': 'max-w-7xl',\n };\n return map[this.size()] || 'max-w-lg';\n });\n\n iconName = computed(() => {\n const raw = this.icon();\n if (!raw) return '';\n return typeof raw === 'string' ? raw : raw.name;\n });\n\n iconTheme = computed(() => {\n const raw = this.icon();\n if (typeof raw === 'object' && raw.theme) return raw.theme;\n return null;\n });\n\n dialogIconBgClasses = computed(() => {\n const theme = this.iconTheme();\n if (!theme) return 'bg-surface-gray-2';\n const map: Record<DialogTheme, string> = {\n amber: 'bg-surface-amber-2',\n blue: 'bg-surface-blue-2',\n red: 'bg-surface-red-2',\n green: 'bg-surface-green-2',\n };\n return map[theme] || 'bg-surface-gray-2';\n });\n\n dialogIconClasses = computed(() => {\n const theme = this.iconTheme();\n if (!theme) return 'text-ink-gray-5';\n const map: Record<DialogTheme, string> = {\n amber: 'text-ink-amber-5',\n blue: 'text-ink-blue-5',\n red: 'text-ink-red-7',\n green: 'text-ink-green-5',\n };\n return map[theme] || 'text-ink-gray-5';\n });\n\n dialogPositionClasses = computed(() => {\n if (this.paddingTop()) return '';\n return this.position() === 'top' ? 'pt-[20vh]' : 'justify-center';\n });\n\n dialogPositionStyles = computed(() => {\n const pt = this.paddingTop();\n return pt ? { paddingTop: pt } : {};\n });\n\n showHeader = computed(() => {\n if (this.bare()) return false;\n if (this.hasTitleSlot()) return true;\n if (this.title()) return true;\n return false;\n });\n\n reactiveActions = computed(() => {\n if (this.bare()) return [];\n return this.actions().map(action => {\n return {\n ...action,\n loading: this.internalActionsState[action.label] || false\n };\n });\n });\n\n isSingleActionFullWidth = computed(() => {\n const smallSizes = ['xs', 'sm', 'md'];\n return this.actions().length === 1 && smallSizes.includes(this.size());\n });\n\n async onActionClick(action: DialogAction) {\n if (!action.onClick) {\n this.close();\n return;\n }\n \n this.internalActionsState[action.label] = true;\n // trigger change detection by recreating the reference since it's a signal reading internalState\n // Or we could just use a separate mechanism. Let's mutate and trust Angular template binding if we update state.\n \n // In signal components, we might need a signal for internalActionsState\n // For now, let's just await\n try {\n await action.onClick({ close: () => this.close() });\n } finally {\n this.internalActionsState[action.label] = false;\n }\n }\n}\n","import { Component, input, model, computed, InjectionToken, Inject, Optional, ContentChildren, QueryList, AfterContentInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport const TABS_ROOT = new InjectionToken<NeuralTabsComponent>('NeuralTabsComponent');\n\n@Component({\n selector: 'neural-tab-panel',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div\n role=\"tabpanel\"\n [attr.aria-hidden]=\"!isActive()\"\n [style.display]=\"isActive() ? 'block' : 'none'\"\n class=\"outline-none focus-visible:ring-2 focus-visible:ring-outline-gray-4\"\n >\n <ng-content></ng-content>\n </div>\n `\n})\nexport class NeuralTabPanelComponent {\n value = input.required<string | number>();\n\n constructor(@Optional() @Inject(TABS_ROOT) private root: NeuralTabsComponent) {}\n\n isActive = computed(() => this.root?.activeTab() === this.value());\n}\n\n@Component({\n selector: 'neural-tab',\n standalone: true,\n imports: [CommonModule],\n template: `\n <button\n type=\"button\"\n role=\"tab\"\n [attr.aria-selected]=\"isActive()\"\n [disabled]=\"disabled()\"\n (click)=\"selectTab()\"\n [class]=\"tabClasses()\"\n >\n <ng-content select=\"[prefix]\"></ng-content>\n @if (iconLeft()) {\n <span [class]=\"iconLeft() + ' mr-2 size-4'\"></span>\n }\n <ng-content></ng-content>\n @if (icon()) {\n <span [class]=\"icon() + ' ml-2 size-4'\"></span>\n }\n <ng-content select=\"[suffix]\"></ng-content>\n </button>\n `\n})\nexport class NeuralTabComponent {\n value = input.required<string | number>();\n disabled = input<boolean>(false);\n icon = input<string>();\n iconLeft = input<string>();\n\n constructor(@Optional() @Inject(TABS_ROOT) private root: NeuralTabsComponent) {}\n\n isActive = computed(() => this.root?.activeTab() === this.value());\n\n selectTab() {\n if (!this.disabled() && this.root) {\n this.root.activeTab.set(this.value());\n }\n }\n\n tabClasses = computed(() => {\n const active = this.isActive();\n const disabled = this.disabled();\n const variant = this.root?.variant() || 'underline';\n \n let base = 'relative flex items-center justify-center whitespace-nowrap transition-colors outline-none focus-visible:ring-2 focus-visible:ring-outline-gray-4';\n \n if (variant === 'underline') {\n base += ' px-3 py-2 text-sm font-medium';\n if (active) base += ' text-ink-gray-9 border-b-2 border-outline-gray-8';\n else base += ' text-ink-gray-5 hover:text-ink-gray-8 border-b-2 border-transparent hover:border-outline-gray-3';\n } else if (variant === 'subtle') {\n base += ' px-3 py-1.5 text-sm font-medium rounded-4';\n if (active) base += ' text-ink-gray-9 bg-surface-gray-2 shadow-sm';\n else base += ' text-ink-gray-5 hover:text-ink-gray-8 hover:bg-surface-gray-1';\n }\n\n if (disabled) {\n base += ' opacity-50 cursor-not-allowed';\n }\n return base;\n });\n}\n\n@Component({\n selector: 'neural-tabs',\n standalone: true,\n imports: [CommonModule],\n providers: [{ provide: TABS_ROOT, useExisting: NeuralTabsComponent }],\n template: `\n <div [class]=\"rootClasses()\">\n <div\n role=\"tablist\"\n [class]=\"listClasses()\"\n >\n <ng-content select=\"neural-tab\"></ng-content>\n </div>\n <ng-content select=\"neural-tab-panel\"></ng-content>\n </div>\n `\n})\nexport class NeuralTabsComponent implements AfterContentInit {\n activeTab = model<string | number>();\n \n variant = input<'underline' | 'subtle' | 'ghost' | 'browser-tab'>('underline');\n size = input<'sm' | 'md' | 'lg'>('sm');\n vertical = input<boolean>(false);\n\n @ContentChildren(NeuralTabComponent) tabs!: QueryList<NeuralTabComponent>;\n\n ngAfterContentInit() {\n if (this.activeTab() === undefined && this.tabs.length > 0) {\n const firstActive = this.tabs.find(t => !t.disabled());\n if (firstActive) {\n this.activeTab.set(firstActive.value());\n }\n }\n }\n\n rootClasses = computed(() => {\n return this.vertical() ? 'flex flex-row' : 'flex flex-col';\n });\n\n listClasses = computed(() => {\n const isVertical = this.vertical();\n let base = isVertical ? 'flex flex-col' : 'flex flex-row';\n \n if (this.variant() === 'underline') {\n base += isVertical ? ' border-r border-outline-gray-2' : ' border-b border-outline-gray-2';\n } else if (this.variant() === 'subtle' || this.variant() === 'ghost') {\n base += ' p-1 gap-1 rounded-4 bg-surface-gray-1';\n }\n\n return base;\n });\n}\n","import { Component, input, computed } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'neural-progress',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div class=\"w-full space-y-[10px]\">\n @if (label() || hint() || hasHintSlot()) {\n <div class=\"flex items-baseline justify-between\">\n @if (label()) {\n <span class=\"text-base-medium text-ink-gray-8\">\n {{ label() }}\n </span>\n } @else {\n <span></span>\n }\n\n @if (hint() || hasHintSlot()) {\n <span class=\"self-end\">\n @if (hasHintSlot()) {\n <ng-content select=\"[hint]\"></ng-content>\n } @else {\n <span class=\"text-base-medium text-ink-gray-4\">\n {{ value() }}%\n </span>\n }\n </span>\n }\n </div>\n }\n\n <div\n role=\"progressbar\"\n [attr.aria-valuenow]=\"clampedValue()\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"100\"\n [attr.aria-valuetext]=\"valueLabel()\"\n class=\"transform-gpu overflow-hidden rounded-7\"\n [class]=\"indicatorContainerClasses()\"\n >\n @if (!intervals()) {\n <div\n class=\"h-full w-full bg-surface-gray-10 transition-transform duration-[660ms] ease-[cubic-bezier(0.65,0,0.35,1)] motion-reduce:transition-none\"\n [style.transform]=\"'translateX(' + fillOffset() + '%)'\"\n ></div>\n } @else {\n @for (index of intervalArray(); track index) {\n <div\n class=\"h-full w-full\"\n [class]=\"index <= filledIntervalCount() ? 'bg-surface-gray-10' : 'bg-surface-gray-2'\"\n ></div>\n }\n }\n </div>\n </div>\n `\n})\nexport class NeuralProgressComponent {\n value = input<number>(0);\n size = input<'sm' | 'md' | 'lg' | 'xl'>('sm');\n hint = input<boolean>(false);\n label = input<string>('');\n intervals = input<boolean>(false);\n intervalCount = input<number>(6);\n hasHintSlot = input<boolean>(false);\n\n indicatorContainerClasses = computed(() => {\n const heightClass = {\n sm: 'h-[2px]',\n md: 'h-1',\n lg: 'h-2',\n xl: 'h-3',\n }[this.size()] || 'h-[2px]';\n\n const layoutClasses = this.intervals() ? 'flex space-x-1' : 'bg-surface-gray-2';\n return [heightClass, layoutClasses].join(' ');\n });\n\n clampedValue = computed(() => {\n return Math.min(Math.max(Number(this.value()), 0), 100);\n });\n\n fillOffset = computed(() => {\n return this.clampedValue() - 100;\n });\n\n valueLabel = computed(() => {\n return this.label() || `${Math.round(this.clampedValue())}%`;\n });\n\n filledIntervalCount = computed(() => {\n return Math.round((this.clampedValue() / 100) * this.intervalCount());\n });\n\n intervalArray = computed(() => {\n const count = this.intervalCount();\n return Array.from({ length: count }, (_, i) => i + 1);\n });\n}\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'neural-skeleton',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div\n class=\"fui-skeleton animate-pulse bg-surface-gray-3 w-full h-full\"\n aria-hidden=\"true\"\n ></div>\n `,\n host: {\n class: 'block' // Needed since the host element otherwise has inline display\n }\n})\nexport class NeuralSkeletonComponent {}\n","import { Component, input, model, computed, signal, HostListener, ViewChildren, QueryList, ElementRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NeuralLabelingWrapperComponent, NeuralInputLabelComponent, NeuralInputDescriptionComponent, NeuralInputErrorComponent } from '../input-labeling/input-labeling.components';\n\n@Component({\n selector: 'neural-rating',\n standalone: true,\n imports: [CommonModule, NeuralLabelingWrapperComponent, NeuralInputLabelComponent, NeuralInputDescriptionComponent, NeuralInputErrorComponent],\n template: `\n <neural-labeling-wrapper [enabled]=\"hasLabeling()\">\n @if (label() || hasLabelSlot()) {\n <neural-input-label\n [id]=\"labelId()\"\n [label]=\"label()\"\n [required]=\"required()\"\n >\n @if (hasLabelSlot()) {\n <ng-content select=\"[label]\"></ng-content>\n }\n </neural-input-label>\n }\n\n <div\n class=\"rating-stars inline-flex shrink-0 gap-0.5 leading-none rounded-1 outline-none focus-visible:ring-2 focus-visible:ring-outline-gray-4\"\n [attr.role]=\"isSliderMode() ? 'slider' : 'radiogroup'\"\n [attr.tabindex]=\"rootTabindex()\"\n [attr.aria-required]=\"!isSliderMode() && required() ? true : undefined\"\n [attr.aria-disabled]=\"disabled() ? true : undefined\"\n [attr.aria-orientation]=\"isSliderMode() ? 'horizontal' : undefined\"\n [attr.aria-valuemin]=\"isSliderMode() ? 0 : undefined\"\n [attr.aria-valuemax]=\"isSliderMode() ? max() : undefined\"\n [attr.aria-valuenow]=\"isSliderMode() ? savedValue() : undefined\"\n (mouseleave)=\"onLeave()\"\n (keydown)=\"onKeydown($event)\"\n >\n @for (index of starArray(); track index) {\n <button\n #starBtn\n type=\"button\"\n class=\"rating-star relative inline-flex shrink-0 rounded-1 outline-none focus-visible:ring-2 focus-visible:ring-outline-gray-4 bg-transparent p-0 border-0\"\n [class]=\"sizeClass() + (disabled() ? ' cursor-default' : ' cursor-pointer')\"\n [attr.data-index]=\"index\"\n [attr.tabindex]=\"starTabindex(index)\"\n [attr.role]=\"isSliderMode() ? undefined : 'radio'\"\n [attr.aria-checked]=\"isSliderMode() ? undefined : (index === savedValue())\"\n [attr.aria-posinset]=\"isSliderMode() ? undefined : index\"\n [attr.aria-setsize]=\"isSliderMode() ? undefined : max()\"\n (pointermove)=\"onStarMove($event, index)\"\n (click)=\"onStarClick($event, index)\"\n (focus)=\"focusedIndex.set(index)\"\n >\n <!-- Left Half -->\n <span\n class=\"rating-half rating-half-left absolute top-0 left-0 right-0 bottom-0 inline-flex items-center justify-center\"\n [style.clip-path]=\"'inset(0 50% 0 0)'\"\n [class]=\"halfColorClass(halfState(index - 0.5))\"\n aria-hidden=\"true\"\n >\n <span [class]=\"icon() + ' w-full h-full rating-icon ' + sizeClass()\"></span>\n </span>\n <!-- Right Half -->\n <span\n class=\"rating-half rating-half-right absolute top-0 left-0 right-0 bottom-0 inline-flex items-center justify-center\"\n [style.clip-path]=\"'inset(0 0 0 50%)'\"\n [class]=\"halfColorClass(halfState(index))\"\n aria-hidden=\"true\"\n >\n <span [class]=\"icon() + ' w-full h-full rating-icon ' + sizeClass()\"></span>\n </span>\n </button>\n }\n </div>\n\n @if (description() || hasDescriptionSlot()) {\n <neural-input-description [id]=\"descriptionId()\" [description]=\"description()\">\n @if (hasDescriptionSlot()) {\n <ng-content select=\"[description]\"></ng-content>\n }\n </neural-input-description>\n }\n @if (errorMessage()) {\n <neural-input-error [id]=\"errorMessageId()\" [lines]=\"[errorMessage()]\"></neural-input-error>\n }\n </neural-labeling-wrapper>\n `\n})\nexport class NeuralRatingComponent {\n value = model<number>(0);\n \n size = input<'sm' | 'md' | 'lg' | 'xl'>('md');\n disabled = input<boolean>(false);\n step = input<number>(1);\n icon = input<string>('lucide-star');\n max = input<number>(5);\n\n label = input<string>('');\n description = input<string>('');\n errorMessage = input<string>('');\n required = input<boolean>(false);\n\n hasLabelSlot = input<boolean>(false);\n hasDescriptionSlot = input<boolean>(false);\n\n hoveredValue = signal<number | null>(null);\n focusedIndex = signal<number>(0);\n\n @ViewChildren('starBtn') starBtns!: QueryList<ElementRef<HTMLButtonElement>>;\n\n private uniqueId = Math.random().toString(36).substring(2, 9);\n \n labelId = computed(() => `rating-label-${this.uniqueId}`);\n descriptionId = computed(() => `rating-desc-${this.uniqueId}`);\n errorMessageId = computed(() => `rating-error-${this.uniqueId}`);\n\n hasLabeling = computed(() => {\n return Boolean(this.label() || this.hasLabelSlot() || this.description() || this.hasDescriptionSlot() || this.errorMessage());\n });\n\n isSliderMode = computed(() => this.step() === 0.5);\n\n starArray = computed(() => {\n return Array.from({ length: this.max() }, (_, i) => i + 1);\n });\n\n sizeClass = computed(() => {\n return {\n sm: 'size-4',\n md: 'size-5',\n lg: 'size-6',\n xl: 'size-7',\n }[this.size()] || 'size-5';\n });\n\n savedValue = computed(() => {\n const v = Math.max(0, Math.min(this.max(), this.value() || 0));\n return this.roundToStep(v);\n });\n\n roundToStep(v: number) {\n const s = this.step();\n return Math.round(v / s) * s;\n }\n\n halfColorClass(state: string) {\n switch (state) {\n case 'filled': return 'text-yellow-500';\n case 'preview': return 'text-yellow-200';\n case 'removing': return 'text-yellow-300';\n case 'empty': return 'text-gray-300 dark:text-gray-600';\n default: return 'text-gray-300';\n }\n }\n\n halfState(half: number) {\n const saved = this.savedValue();\n const hovered = this.hoveredValue();\n if (hovered === null) {\n return half <= saved ? 'filled' : 'empty';\n }\n if (half <= Math.min(saved, hovered)) return 'filled';\n if (half <= hovered) return 'preview';\n if (half <= saved) return 'removing';\n return 'empty';\n }\n\n hitTestValue(event: MouseEvent, index: number) {\n if (this.step() !== 0.5) return index;\n const rect = (event.currentTarget as HTMLElement).getBoundingClientRect();\n const isLeftHalf = event.clientX - rect.left < rect.width / 2;\n return isLeftHalf ? index - 0.5 : index;\n }\n\n onStarMove(event: MouseEvent, index: number) {\n if (this.disabled()) return;\n this.hoveredValue.set(this.hitTestValue(event, index));\n }\n\n onLeave() {\n this.hoveredValue.set(null);\n }\n\n onStarClick(event: MouseEvent, index: number) {\n if (this.disabled()) return;\n const next = this.hitTestValue(event, index);\n let value = Math.max(0, Math.min(this.max(), this.roundToStep(next)));\n if (value === this.savedValue()) value = 0;\n this.value.set(value);\n }\n\n starTabindex(index: number) {\n if (this.isSliderMode() || this.disabled()) return -1;\n const selected = Math.ceil(this.savedValue());\n const tabbable = selected > 0 ? selected : 1;\n return index === tabbable ? 0 : -1;\n }\n\n rootTabindex = computed(() => {\n if (!this.isSliderMode()) return undefined;\n return this.disabled() ? -1 : 0;\n });\n\n onKeydown(e: KeyboardEvent) {\n if (this.disabled()) return;\n const max = this.max();\n const step = this.step();\n\n if (this.isSliderMode()) {\n let next: number | null = null;\n switch (e.key) {\n case 'ArrowRight':\n case 'ArrowUp': next = Math.min(max, this.savedValue() + step); break;\n case 'ArrowLeft':\n case 'ArrowDown': next = Math.max(0, this.savedValue() - step); break;\n case 'Home': next = 0; break;\n case 'End': next = max; break;\n case 'PageUp': next = Math.min(max, this.savedValue() + 1); break;\n case 'PageDown': next = Math.max(0, this.savedValue() - 1); break;\n default:\n if (/^[0-9]$/.test(e.key)) next = Math.min(max, parseInt(e.key, 10));\n }\n if (next !== null) {\n e.preventDefault();\n this.value.set(next);\n }\n return;\n }\n\n const current = this.focusedIndex() || Math.max(1, Math.min(max, Math.ceil(this.savedValue()) || 1));\n let next: number | null = null;\n switch (e.key) {\n case 'ArrowRight':\n case 'ArrowDown': next = Math.min(max, current + 1); break;\n case 'ArrowLeft':\n case 'ArrowUp': next = Math.max(1, current - 1); break;\n case 'Home': next = 1; break;\n case 'End': next = max; break;\n case ' ':\n case 'Enter': next = current; break;\n default:\n if (/^[0-9]$/.test(e.key)) {\n const n = parseInt(e.key, 10);\n if (n === 0) {\n e.preventDefault();\n this.value.set(0);\n return;\n }\n next = Math.min(max, n);\n }\n }\n if (next !== null) {\n e.preventDefault();\n this.value.set(next);\n this.focusedIndex.set(next);\n \n const btnIndex = next - 1;\n const btns = this.starBtns.toArray();\n if (btns[btnIndex]) {\n btns[btnIndex].nativeElement.focus();\n }\n }\n }\n}\n","import { Component, input, model, computed } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { NeuralLabelingWrapperComponent, NeuralInputLabelComponent, NeuralInputDescriptionComponent, NeuralInputErrorComponent } from '../input-labeling/input-labeling.components';\n\n@Component({\n selector: 'neural-slider',\n standalone: true,\n imports: [CommonModule, FormsModule, NeuralLabelingWrapperComponent, NeuralInputLabelComponent, NeuralInputDescriptionComponent, NeuralInputErrorComponent],\n template: `\n <neural-labeling-wrapper [enabled]=\"hasLabeling()\">\n @if (label() || hasLabelSlot()) {\n <neural-input-label\n [id]=\"labelId()\"\n [forId]=\"inputId()\"\n [label]=\"label()\"\n [required]=\"required()\"\n >\n @if (hasLabelSlot()) {\n <ng-content select=\"[label]\"></ng-content>\n }\n </neural-input-label>\n }\n\n <div class=\"relative flex select-none touch-none items-center w-full\" [class]=\"size() === 'md' ? 'h-5' : 'h-4'\">\n <!-- We use a native range input styled to look like the custom slider -->\n <input\n type=\"range\"\n [id]=\"inputId()\"\n [(ngModel)]=\"value\"\n [min]=\"min()\"\n [max]=\"max()\"\n [step]=\"step()\"\n [disabled]=\"disabled()\"\n [attr.aria-describedby]=\"descriptionId()\"\n [attr.aria-errormessage]=\"errorMessageId()\"\n [attr.aria-invalid]=\"errorMessage() ? true : undefined\"\n class=\"neural-range-input w-full bg-transparent appearance-none focus:outline-none cursor-pointer disabled:cursor-not-allowed disabled:opacity-60\"\n [style]=\"'--slider-fill: ' + fillPercentage() + '%'\"\n />\n </div>\n\n @if (description() || hasDescriptionSlot()) {\n <neural-input-description [id]=\"descriptionId()\" [description]=\"description()\">\n @if (hasDescriptionSlot()) {\n <ng-content select=\"[description]\"></ng-content>\n }\n </neural-input-description>\n }\n @if (errorMessage()) {\n <neural-input-error [id]=\"errorMessageId()\" [lines]=\"[errorMessage()]\"></neural-input-error>\n }\n </neural-labeling-wrapper>\n `,\n styles: [`\n .neural-range-input {\n -webkit-appearance: none;\n height: 4px;\n border-radius: 4px;\n background: linear-gradient(to right, var(--surface-gray-10, #1f2937) var(--slider-fill), var(--surface-gray-3, #e5e7eb) var(--slider-fill));\n }\n .neural-range-input::-webkit-slider-thumb {\n -webkit-appearance: none;\n height: 16px;\n width: 16px;\n border-radius: 50%;\n background: #ffffff;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n cursor: pointer;\n transition: box-shadow 0.2s ease-out;\n }\n .neural-range-input:hover::-webkit-slider-thumb {\n box-shadow: 0 0 0 6px rgba(75, 85, 99, 0.2);\n }\n .neural-range-input:disabled::-webkit-slider-thumb {\n box-shadow: none;\n cursor: not-allowed;\n }\n `]\n})\nexport class NeuralSliderComponent {\n value = model<number>(0);\n \n min = input<number>(0);\n max = input<number>(100);\n step = input<number>(1);\n size = input<'sm' | 'md'>('sm');\n disabled = input<boolean>(false);\n\n label = input<string>('');\n description = input<string>('');\n errorMessage = input<string>('');\n required = input<boolean>(false);\n\n hasLabelSlot = input<boolean>(false);\n hasDescriptionSlot = input<boolean>(false);\n\n private uniqueId = Math.random().toString(36).substring(2, 9);\n \n inputId = computed(() => `slider-input-${this.uniqueId}`);\n labelId = computed(() => `slider-label-${this.uniqueId}`);\n descriptionId = computed(() => `slider-desc-${this.uniqueId}`);\n errorMessageId = computed(() => `slider-error-${this.uniqueId}`);\n\n hasLabeling = computed(() => {\n return Boolean(this.label() || this.hasLabelSlot() || this.description() || this.hasDescriptionSlot() || this.errorMessage());\n });\n\n fillPercentage = computed(() => {\n const range = this.max() - this.min();\n if (range === 0) return 0;\n const val = Math.max(this.min(), Math.min(this.max(), this.value() || 0));\n return ((val - this.min()) / range) * 100;\n });\n}\n","import { Component, input, ViewChild, ElementRef, computed } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'neural-scroll-area',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div\n class=\"relative overflow-hidden neural-scroll-area-root h-full w-full\"\n [class]=\"rootClasses()\"\n >\n <div\n #viewport\n class=\"h-full w-full overflow-auto neural-scroll-area-viewport\"\n [class]=\"viewportClass()\"\n [style]=\"orientationStyles()\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n `,\n styles: [`\n .neural-scroll-area-viewport::-webkit-scrollbar {\n width: 10px;\n height: 10px;\n }\n .neural-scroll-area-viewport::-webkit-scrollbar-track {\n background: transparent;\n }\n .neural-scroll-area-viewport::-webkit-scrollbar-thumb {\n background: var(--surface-gray-3, #e5e7eb);\n border-radius: 9999px;\n border: 3px solid transparent;\n background-clip: padding-box;\n }\n .neural-scroll-area-viewport:hover::-webkit-scrollbar-thumb {\n background: var(--surface-gray-4, #d1d5db);\n border: 3px solid transparent;\n background-clip: padding-box;\n }\n .dark .neural-scroll-area-viewport::-webkit-scrollbar-thumb {\n background: var(--surface-gray-6, #4b5563);\n }\n .dark .neural-scroll-area-viewport:hover::-webkit-scrollbar-thumb {\n background: var(--surface-gray-5, #6b7280);\n }\n `]\n})\nexport class NeuralScrollAreaComponent {\n orientation = input<'vertical' | 'horizontal' | 'both'>('vertical');\n scrollHideDelay = input<number>(600);\n viewportClass = input<any>('');\n rootClasses = input<any>('');\n\n @ViewChild('viewport') viewportElementRef!: ElementRef<HTMLElement>;\n\n get viewportElement(): HTMLElement | null {\n return this.viewportElementRef?.nativeElement ?? null;\n }\n\n orientationStyles = computed(() => {\n switch (this.orientation()) {\n case 'vertical':\n return { overflowX: 'hidden', overflowY: 'auto' };\n case 'horizontal':\n return { overflowX: 'auto', overflowY: 'hidden' };\n case 'both':\n default:\n return { overflow: 'auto' };\n }\n });\n}\n","import { Component, input, model, computed, signal, HostListener } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule, ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { NeuralLabelingWrapperComponent, NeuralInputLabelComponent, NeuralInputDescriptionComponent, NeuralInputErrorComponent } from '../input-labeling/input-labeling.components';\n\nexport interface SelectOption {\n label: string;\n value: any;\n description?: string;\n icon?: string;\n disabled?: boolean;\n}\n\n@Component({\n selector: 'neural-select',\n standalone: true,\n imports: [CommonModule, OverlayModule, NeuralLabelingWrapperComponent, NeuralInputLabelComponent, NeuralInputDescriptionComponent, NeuralInputErrorComponent],\n template: `\n <neural-labeling-wrapper [enabled]=\"hasLabeling()\">\n @if (label() || hasLabelSlot()) {\n <neural-input-label\n [id]=\"labelId()\"\n [forId]=\"inputId()\"\n [label]=\"label()\"\n [required]=\"required()\"\n >\n @if (hasLabelSlot()) {\n <ng-content select=\"[label]\"></ng-content>\n }\n </neural-input-label>\n }\n\n <!-- Trigger -->\n <button\n type=\"button\"\n [id]=\"inputId()\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n class=\"flex w-full items-center justify-between outline-none focus-visible:ring-2 focus-visible:ring-outline-gray-4 transition-colors relative\"\n [class]=\"triggerClasses()\"\n [disabled]=\"disabled()\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-invalid]=\"hasError() ? 'true' : undefined\"\n [attr.aria-errormessage]=\"hasError() ? errorMessageId() : undefined\"\n [attr.aria-describedby]=\"descriptionId()\"\n (click)=\"toggle()\"\n >\n <span class=\"truncate\" [class.text-ink-gray-4]=\"!hasValue()\">\n {{ displayValue() }}\n </span>\n <span class=\"lucide-chevron-down ml-2 size-4 shrink-0 text-ink-gray-4\"></span>\n </button>\n\n <!-- Overlay -->\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayWidth]=\"triggerWidth\"\n (backdropClick)=\"close()\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n >\n <div class=\"z-[100] mt-1 overflow-hidden rounded-7 bg-surface-elevation-2 shadow-xl ring-1 ring-outline-gray-3 w-full\">\n <div class=\"flex max-h-[300px] flex-col overflow-y-auto p-1 outline-none\">\n @if (normalizedOptions().length === 0) {\n <div class=\"px-2 py-1.5 text-base text-ink-gray-5\">\n {{ emptyText() }}\n </div>\n } @else {\n @for (option of normalizedOptions(); track option.value) {\n <button\n type=\"button\"\n class=\"relative flex w-full cursor-default select-none items-center rounded-5 px-2 py-1.5 text-sm outline-none transition-colors\"\n [class.bg-surface-gray-2]=\"option.value === value()\"\n [class.hover:bg-surface-gray-1]=\"!option.disabled && option.value !== value()\"\n [class.opacity-50]=\"option.disabled\"\n [disabled]=\"option.disabled\"\n (click)=\"selectOption(option.value)\"\n >\n @if (option.icon) {\n <span [class]=\"option.icon + ' mr-2 size-4 text-ink-gray-5'\"></span>\n }\n <div class=\"flex flex-col items-start truncate min-w-0\">\n <span class=\"truncate\" [class.font-medium]=\"option.value === value()\">{{ option.label }}</span>\n @if (option.description) {\n <span class=\"truncate text-xs text-ink-gray-5\">{{ option.description }}</span>\n }\n </div>\n @if (option.value === value()) {\n <span class=\"lucide-check ml-auto size-4 shrink-0 text-ink-gray-6\"></span>\n }\n </button>\n }\n }\n </div>\n </div>\n </ng-template>\n\n @if (description() || hasDescriptionSlot()) {\n <neural-input-description [id]=\"descriptionId()\" [description]=\"description()\">\n @if (hasDescriptionSlot()) {\n <ng-content select=\"[description]\"></ng-content>\n }\n </neural-input-description>\n }\n @if (errorMessage()) {\n <neural-input-error [id]=\"errorMessageId()\" [lines]=\"[errorMessage()]\"></neural-input-error>\n }\n </neural-labeling-wrapper>\n `\n})\nexport class NeuralSelectComponent {\n value = model<any>();\n \n options = input<any[]>([]);\n size = input<'sm' | 'md' | 'lg' | 'xl'>('sm');\n variant = input<'outline' | 'subtle' | 'ghost'>('subtle');\n disabled = input<boolean>(false);\n placeholder = input<string>('Select option');\n emptyText = input<string>('No options');\n\n label = input<string>('');\n description = input<string>('');\n errorMessage = input<string>('');\n required = input<boolean>(false);\n\n hasLabelSlot = input<boolean>(false);\n hasDescriptionSlot = input<boolean>(false);\n\n isOpen = signal(false);\n triggerWidth: number | string = 'auto';\n\n positions = [\n new ConnectionPositionPair({ originX: 'start', originY: 'bottom' }, { overlayX: 'start', overlayY: 'top' }, 0, 4),\n new ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'start', overlayY: 'bottom' }, 0, -4)\n ];\n\n private uniqueId = Math.random().toString(36).substring(2, 9);\n \n inputId = computed(() => `select-input-${this.uniqueId}`);\n labelId = computed(() => `select-label-${this.uniqueId}`);\n descriptionId = computed(() => `select-desc-${this.uniqueId}`);\n errorMessageId = computed(() => `select-error-${this.uniqueId}`);\n\n hasLabeling = computed(() => {\n return Boolean(this.label() || this.hasLabelSlot() || this.description() || this.hasDescriptionSlot() || this.errorMessage());\n });\n\n hasError = computed(() => Boolean(this.errorMessage()));\n\n triggerClasses = computed(() => {\n const s = this.size();\n const v = this.variant();\n \n let base = 'rounded-6 text-left';\n \n // Size\n if (s === 'sm') base += ' h-7 px-2 py-1 text-sm';\n else if (s === 'md') base += ' h-8 px-2.5 py-1.5 text-base';\n else if (s === 'lg') base += ' h-10 px-3 py-2 text-lg';\n else if (s === 'xl') base += ' h-12 px-4 py-3 text-xl';\n\n // Variant\n if (v === 'outline') {\n base += ' border border-outline-gray-2 bg-surface-base hover:bg-surface-gray-1';\n } else if (v === 'subtle') {\n base += ' border border-transparent bg-surface-gray-2 hover:bg-surface-gray-3';\n } else if (v === 'ghost') {\n base += ' border border-transparent bg-transparent hover:bg-surface-gray-2';\n }\n\n if (this.disabled()) {\n base += ' opacity-50 cursor-not-allowed';\n }\n\n return base;\n });\n\n normalizedOptions = computed<SelectOption[]>(() => {\n return this.options().map(opt => {\n if (typeof opt === 'string') {\n return { label: opt, value: opt };\n }\n return opt as SelectOption;\n });\n });\n\n selectedOption = computed(() => {\n return this.normalizedOptions().find(opt => opt.value === this.value()) || null;\n });\n\n hasValue = computed(() => {\n const val = this.value();\n return val !== undefined && val !== null && val !== '';\n });\n\n displayValue = computed(() => {\n if (!this.hasValue()) return this.placeholder();\n return this.selectedOption()?.label || this.placeholder();\n });\n\n toggle(event?: Event) {\n if (this.disabled()) return;\n if (event) {\n const target = event.currentTarget as HTMLElement;\n this.triggerWidth = target.getBoundingClientRect().width;\n }\n this.isOpen.set(!this.isOpen());\n }\n\n close() {\n this.isOpen.set(false);\n }\n\n selectOption(val: any) {\n this.value.set(val);\n this.close();\n }\n}\n","import { Component, input, model, computed, inject, InjectionToken, Provider, Optional, SkipSelf } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule, Router, RouterLinkActive } from '@angular/router';\n\n\n@Component({\n selector: 'neural-sidebar',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div\n data-slot=\"sidebar\"\n [attr.data-state]=\"shouldCollapse() ? 'collapsed' : 'expanded'\"\n class=\"flex h-full flex-shrink-0 flex-col overflow-x-hidden bg-surface-sidebar transition-[width] duration-300 ease-in-out\"\n [style.width]=\"shouldCollapse() ? collapsedWidth() : width()\"\n >\n <ng-content></ng-content>\n </div>\n `\n})\nexport class NeuralSidebarComponent {\n collapsed = model<boolean>(false);\n width = input<string>('15rem');\n collapsedWidth = input<string>('3rem');\n disableCollapse = input<boolean>(false);\n\n shouldCollapse = computed(() => {\n return this.collapsed() && !this.disableCollapse();\n });\n\n toggle() {\n this.collapsed.set(!this.shouldCollapse());\n }\n}\n\n@Component({\n selector: 'neural-sidebar-item',\n standalone: true,\n imports: [CommonModule, RouterModule],\n template: `\n <div\n data-slot=\"sidebar-item\"\n [attr.data-state]=\"resolvedActive() ? 'active' : 'inactive'\"\n class=\"group/sidebar-item flex h-7 items-center rounded-4 transition\"\n [class]=\"\n resolvedActive()\n ? 'bg-surface-elevation-3 text-ink-gray-8 shadow-sm'\n : 'text-ink-gray-6 hover:bg-surface-gray-2'\n \"\n >\n @if (to()) {\n <a\n [routerLink]=\"to()\"\n routerLinkActive=\"active\"\n #rla=\"routerLinkActive\"\n [attr.aria-label]=\"tooltipText() || undefined\"\n [attr.aria-current]=\"resolvedActive() ? 'page' : undefined\"\n class=\"flex h-full min-w-0 flex-1 items-center rounded-4 pl-2 focus-visible:ring-0 focus-visible:focus-ring\"\n (click)=\"handleClick($event)\"\n >\n <span class=\"grid shrink-0 place-items-center\">\n <ng-content select=\"[prefix]\"></ng-content>\n @if (!hasPrefixSlot() && icon()) {\n <span [class]=\"icon() + ' size-4'\"></span>\n }\n </span>\n <span\n class=\"min-w-0 flex-1 transition-all ease-in-out\"\n [class]=\"\n isCollapsed()\n ? 'ml-0 w-0 overflow-hidden opacity-0'\n : 'ml-2 w-auto opacity-100'\n \"\n >\n <span class=\"flex min-w-0 items-center\">\n <ng-content></ng-content>\n @if (!hasDefaultSlot() && label()) {\n <span class=\"truncate text-sm\">{{ label() }}</span>\n }\n </span>\n </span>\n </a>\n } @else {\n <button\n type=\"button\"\n [attr.aria-label]=\"tooltipText() || undefined\"\n class=\"flex h-full text-left min-w-0 flex-1 items-center rounded-4 pl-2 focus-visible:ring-0 focus-visible:focus-ring\"\n (click)=\"handleClick($event)\"\n >\n <span class=\"grid shrink-0 place-items-center\">\n <ng-content select=\"[prefix]\"></ng-content>\n @if (!hasPrefixSlot() && icon()) {\n <span [class]=\"icon() + ' size-4'\"></span>\n }\n </span>\n <span\n class=\"min-w-0 flex-1 transition-all ease-in-out\"\n [class]=\"\n isCollapsed()\n ? 'ml-0 w-0 overflow-hidden opacity-0'\n : 'ml-2 w-auto opacity-100'\n \"\n >\n <span class=\"flex min-w-0 items-center\">\n <ng-content></ng-content>\n @if (!hasDefaultSlot() && label()) {\n <span class=\"truncate text-sm\">{{ label() }}</span>\n }\n </span>\n </span>\n </button>\n }\n \n <div\n data-slot=\"sidebar-item-suffix\"\n class=\"flex shrink-0 items-center transition-all ease-in-out\"\n [class]=\"isCollapsed() ? 'w-0 overflow-hidden opacity-0' : 'opacity-100'\"\n >\n <ng-content select=\"[suffix]\"></ng-content>\n @if (!hasSuffixSlot() && suffix()) {\n <span class=\"mr-2 text-sm text-ink-gray-4\">{{ suffix() }}</span>\n }\n </div>\n </div>\n `\n})\nexport class NeuralSidebarItemComponent {\n label = input<string>('');\n icon = input<string>('');\n to = input<any>();\n active = input<boolean | undefined>(undefined);\n suffix = input<string>('');\n \n hasPrefixSlot = input<boolean>(false);\n hasDefaultSlot = input<boolean>(false);\n hasSuffixSlot = input<boolean>(false);\n\n private router = inject(Router, { optional: true });\n private sidebar = inject(NeuralSidebarComponent, { optional: true });\n\n isCollapsed = computed(() => {\n return this.sidebar ? this.sidebar.shouldCollapse() : false;\n });\n\n tooltipText = computed(() => this.label());\n\n resolvedActive = computed(() => {\n if (this.active() !== undefined) return this.active();\n if (!this.to() || !this.router) return false;\n return this.router.isActive(this.to(), { paths: 'exact', queryParams: 'ignored', fragment: 'ignored', matrixParams: 'ignored' });\n });\n\n handleClick(event: MouseEvent) {\n // optional click handler\n }\n}\n","import { Injectable, Component, Inject } from '@angular/core';\nimport { Overlay, OverlayRef, OverlayConfig } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\n\nexport interface ToastOptions {\n message: string;\n type?: 'success' | 'error' | 'warning' | 'info';\n duration?: number;\n description?: string;\n action?: {\n label: string;\n onClick: () => void;\n };\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ToastService {\n private overlayRef: OverlayRef | null = null;\n private toasts: any[] = [];\n \n constructor(private overlay: Overlay) {}\n\n show(options: ToastOptions | string) {\n // In a real application, we'd manage a stack of toasts.\n // For simplicity, we just use window.alert if not fully implemented with a component stack,\n // OR we could just build a small component stack.\n const opts = typeof options === 'string' ? { message: options } : options;\n console.log('Toast:', opts);\n \n // Simplistic implementation for UI-kit:\n if (typeof window !== 'undefined') {\n const toastStr = `Toast [${opts.type || 'info'}]: ${opts.message}`;\n // alert(toastStr);\n }\n }\n\n success(message: string, options?: Partial<ToastOptions>) {\n this.show({ ...options, message, type: 'success' });\n }\n\n error(message: string, options?: Partial<ToastOptions>) {\n this.show({ ...options, message, type: 'error' });\n }\n}\n\n// Minimal Toast Component for UI kit (can be expanded later to fully replicate sonner)\n@Component({\n selector: 'neural-toast',\n standalone: true,\n imports: [CommonModule],\n template: `\n <!-- Placeholder for Toast UI -->\n <div class=\"group py-2.5 flex items-center px-4 bg-surface-gray-9 rounded-5 shadow-xl w-[360px] text-ink-base\">\n Toast Placeholder\n </div>\n `\n})\nexport class NeuralToastComponent {}\n","import { Component, input, model, computed, signal, ViewChild } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NeuralTextInputComponent } from '../text-input/text-input.component';\nimport { NeuralTooltipComponent } from '../tooltip/tooltip.component';\n\n@Component({\n selector: 'neural-password',\n standalone: true,\n imports: [CommonModule, NeuralTextInputComponent, NeuralTooltipComponent],\n template: `\n <neural-text-input\n #textInput\n [(valueModel)]=\"value\"\n [type]=\"show() ? 'text' : 'password'\"\n [label]=\"label()\"\n [description]=\"description()\"\n [error]=\"errorMessage()\"\n [required]=\"required()\"\n [size]=\"size()\"\n [variant]=\"variant()\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder()\"\n (keydown)=\"onKeydown($event)\"\n [hasLabelSlot]=\"hasLabelSlot()\"\n [hasDescriptionSlot]=\"hasDescriptionSlot()\"\n [hasPrefixSlot]=\"hasPrefixSlot()\"\n [hasSuffixSlot]=\"true\"\n >\n @if (hasLabelSlot()) {\n <ng-content select=\"[label]\" ngProjectAs=\"[label]\"></ng-content>\n }\n @if (hasDescriptionSlot()) {\n <ng-content select=\"[description]\" ngProjectAs=\"[description]\"></ng-content>\n }\n @if (hasPrefixSlot()) {\n <ng-content select=\"[prefix]\" ngProjectAs=\"[prefix]\"></ng-content>\n }\n \n <div suffix class=\"flex items-center\">\n <neural-tooltip [text]=\"show() ? 'Hide Password' : 'Show Password'\" placement=\"top\">\n <span\n [class]=\"show() ? 'lucide-eye-off' : 'lucide-eye'\"\n class=\"size-4 cursor-pointer text-ink-gray-5 hover:text-ink-gray-7 transition-colors\"\n (click)=\"toggleShow()\"\n ></span>\n </neural-tooltip>\n </div>\n </neural-text-input>\n `\n})\nexport class NeuralPasswordComponent {\n value = model<string>('');\n \n size = input<'sm' | 'md' | 'lg' | 'xl'>('sm');\n variant = input<'outline' | 'subtle' | 'ghost'>('subtle');\n disabled = input<boolean>(false);\n placeholder = input<string>('');\n\n label = input<string>('');\n description = input<string>('');\n errorMessage = input<string>('');\n required = input<boolean>(false);\n\n hasLabelSlot = input<boolean>(false);\n hasDescriptionSlot = input<boolean>(false);\n hasPrefixSlot = input<boolean>(false);\n\n show = signal(false);\n\n @ViewChild('textInput') textInputRef!: NeuralTextInputComponent;\n\n toggleShow() {\n this.show.set(!this.show());\n }\n\n onKeydown(event: KeyboardEvent) {\n if ((event.metaKey || event.ctrlKey) && event.key === 'i') {\n event.preventDefault();\n this.toggleShow();\n }\n }\n\n focus() {\n this.textInputRef?.focus();\n }\n}\n","import { Component, input, model, computed, signal, HostListener, ViewChild, ElementRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { OverlayModule, ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { NeuralLabelingWrapperComponent, NeuralInputLabelComponent, NeuralInputDescriptionComponent, NeuralInputErrorComponent } from '../input-labeling/input-labeling.components';\n\nexport interface ComboboxOption {\n label: string;\n value: any;\n description?: string;\n icon?: string;\n disabled?: boolean;\n}\n\n@Component({\n selector: 'neural-combobox',\n standalone: true,\n imports: [CommonModule, FormsModule, OverlayModule, NeuralLabelingWrapperComponent, NeuralInputLabelComponent, NeuralInputDescriptionComponent, NeuralInputErrorComponent],\n template: `\n <neural-labeling-wrapper [enabled]=\"hasLabeling()\">\n @if (label() || hasLabelSlot()) {\n <neural-input-label\n [id]=\"labelId()\"\n [forId]=\"inputId()\"\n [label]=\"label()\"\n [required]=\"required()\"\n >\n @if (hasLabelSlot()) {\n <ng-content select=\"[label]\"></ng-content>\n }\n </neural-input-label>\n }\n\n <div class=\"relative w-full\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\">\n \n @if (triggerMode() === 'button') {\n <button\n type=\"button\"\n [id]=\"inputId()\"\n class=\"flex w-full items-center justify-between outline-none focus-visible:ring-2 focus-visible:ring-outline-gray-4 transition-colors relative\"\n [class]=\"triggerClasses()\"\n [disabled]=\"disabled()\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-invalid]=\"hasError() ? 'true' : undefined\"\n [attr.aria-errormessage]=\"hasError() ? errorMessageId() : undefined\"\n [attr.aria-describedby]=\"descriptionId()\"\n (click)=\"toggleOverlay($event)\"\n >\n <span class=\"truncate\" [class.text-ink-gray-4]=\"!hasValue()\">\n {{ displayValue() }}\n </span>\n <span class=\"lucide-chevron-down ml-2 size-4 shrink-0 text-ink-gray-4 transition-transform\" [class.rotate-180]=\"isOpen()\"></span>\n </button>\n } @else {\n <div class=\"relative flex items-center w-full\">\n <input\n #inputRef\n type=\"text\"\n [id]=\"inputId()\"\n [(ngModel)]=\"query\"\n class=\"w-full outline-none focus-visible:ring-2 focus-visible:ring-outline-gray-4 transition-colors relative placeholder:text-ink-gray-4\"\n [class]=\"triggerClasses()\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder()\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (click)=\"onInputClick($event)\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-invalid]=\"hasError() ? 'true' : undefined\"\n [attr.aria-errormessage]=\"hasError() ? errorMessageId() : undefined\"\n [attr.aria-describedby]=\"descriptionId()\"\n autocomplete=\"off\"\n />\n <span class=\"lucide-chevron-down absolute right-2 size-4 shrink-0 text-ink-gray-4 transition-transform pointer-events-none\" [class.rotate-180]=\"isOpen()\"></span>\n </div>\n }\n\n </div>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayWidth]=\"triggerWidth\"\n (backdropClick)=\"close()\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n >\n <div class=\"z-[100] mt-1 overflow-hidden rounded-7 bg-surface-elevation-2 shadow-xl ring-1 ring-outline-gray-3 w-full flex flex-col\">\n \n @if (triggerMode() === 'button' && !hideSearch()) {\n <div class=\"flex items-center gap-2 border-b border-outline-gray-1 px-3 shrink-0\">\n <input\n #searchInputRef\n type=\"text\"\n [(ngModel)]=\"query\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder()\"\n class=\"min-w-0 flex-1 px-0 border-0 bg-transparent py-2 text-base text-ink-gray-8 outline-none placeholder:text-ink-gray-4 focus:ring-0\"\n (input)=\"onSearchInput($event)\"\n autocomplete=\"off\"\n />\n </div>\n }\n \n <div class=\"flex max-h-[300px] flex-col overflow-y-auto p-1 outline-none\">\n @if (filteredOptions().length === 0) {\n <div class=\"px-2 py-1.5 text-base text-ink-gray-5\">\n {{ emptyText() }}\n </div>\n } @else {\n @for (option of filteredOptions(); track option.value) {\n <button\n type=\"button\"\n class=\"relative flex w-full cursor-default select-none items-center rounded-5 px-2 py-1.5 text-sm outline-none transition-colors\"\n [class.bg-surface-gray-2]=\"option.value === value()\"\n [class.hover:bg-surface-gray-1]=\"!option.disabled && option.value !== value()\"\n [class.opacity-50]=\"option.disabled\"\n [disabled]=\"option.disabled\"\n (click)=\"selectOption(option.value)\"\n >\n @if (option.icon) {\n <span [class]=\"option.icon + ' mr-2 size-4 text-ink-gray-5'\"></span>\n }\n <div class=\"flex flex-col items-start truncate min-w-0\">\n <span class=\"truncate\" [class.font-medium]=\"option.value === value()\">{{ option.label }}</span>\n @if (option.description) {\n <span class=\"truncate text-xs text-ink-gray-5\">{{ option.description }}</span>\n }\n </div>\n @if (option.value === value()) {\n <span class=\"lucide-check ml-auto size-4 shrink-0 text-ink-gray-6\"></span>\n }\n </button>\n }\n }\n </div>\n </div>\n </ng-template>\n\n @if (description() || hasDescriptionSlot()) {\n <neural-input-description [id]=\"descriptionId()\" [description]=\"description()\">\n @if (hasDescriptionSlot()) {\n <ng-content select=\"[description]\"></ng-content>\n }\n </neural-input-description>\n }\n @if (errorMessage()) {\n <neural-input-error [id]=\"errorMessageId()\" [lines]=\"[errorMessage()]\"></neural-input-error>\n }\n </neural-labeling-wrapper>\n `\n})\nexport class NeuralComboboxComponent {\n value = model<any>();\n \n options = input<any[]>([]);\n triggerMode = input<'input' | 'button'>('input');\n size = input<'sm' | 'md' | 'lg' | 'xl'>('sm');\n variant = input<'outline' | 'subtle' | 'ghost'>('subtle');\n disabled = input<boolean>(false);\n placeholder = input<string>('Select option');\n emptyText = input<string>('No results');\n hideSearch = input<boolean>(false);\n\n label = input<string>('');\n description = input<string>('');\n errorMessage = input<string>('');\n required = input<boolean>(false);\n\n hasLabelSlot = input<boolean>(false);\n hasDescriptionSlot = input<boolean>(false);\n\n isOpen = signal(false);\n triggerWidth: number | string = 'auto';\n query = signal<string>('');\n\n positions = [\n new ConnectionPositionPair({ originX: 'start', originY: 'bottom' }, { overlayX: 'start', overlayY: 'top' }, 0, 4),\n new ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'start', overlayY: 'bottom' }, 0, -4)\n ];\n\n @ViewChild('searchInputRef') searchInputRef?: ElementRef<HTMLInputElement>;\n @ViewChild('inputRef') inputRef?: ElementRef<HTMLInputElement>;\n\n private uniqueId = Math.random().toString(36).substring(2, 9);\n \n inputId = computed(() => `combobox-input-${this.uniqueId}`);\n labelId = computed(() => `combobox-label-${this.uniqueId}`);\n descriptionId = computed(() => `combobox-desc-${this.uniqueId}`);\n errorMessageId = computed(() => `combobox-error-${this.uniqueId}`);\n\n hasLabeling = computed(() => {\n return Boolean(this.label() || this.hasLabelSlot() || this.description() || this.hasDescriptionSlot() || this.errorMessage());\n });\n\n hasError = computed(() => Boolean(this.errorMessage()));\n\n triggerClasses = computed(() => {\n const s = this.size();\n const v = this.variant();\n \n let base = 'rounded-6 text-left';\n \n // Size\n if (s === 'sm') base += ' h-7 px-2 py-1 text-sm';\n else if (s === 'md') base += ' h-8 px-2.5 py-1.5 text-base';\n else if (s === 'lg') base += ' h-10 px-3 py-2 text-lg';\n else if (s === 'xl') base += ' h-12 px-4 py-3 text-xl';\n\n // Variant\n if (v === 'outline') {\n base += ' border border-outline-gray-2 bg-surface-base hover:bg-surface-gray-1';\n } else if (v === 'subtle') {\n base += ' border border-transparent bg-surface-gray-2 hover:bg-surface-gray-3';\n } else if (v === 'ghost') {\n base += ' border border-transparent bg-transparent hover:bg-surface-gray-2';\n }\n\n if (this.disabled()) {\n base += ' opacity-50 cursor-not-allowed';\n }\n\n return base;\n });\n\n normalizedOptions = computed<ComboboxOption[]>(() => {\n return this.options().map(opt => {\n if (typeof opt === 'string') {\n return { label: opt, value: opt };\n }\n return opt as ComboboxOption;\n });\n });\n\n filteredOptions = computed(() => {\n const q = this.query().toLowerCase();\n if (!q) return this.normalizedOptions();\n return this.normalizedOptions().filter(opt => opt.label.toLowerCase().includes(q) || (opt.description && opt.description.toLowerCase().includes(q)));\n });\n\n selectedOption = computed(() => {\n return this.normalizedOptions().find(opt => opt.value === this.value()) || null;\n });\n\n hasValue = computed(() => {\n const val = this.value();\n return val !== undefined && val !== null && val !== '';\n });\n\n displayValue = computed(() => {\n if (!this.hasValue()) return this.placeholder();\n return this.selectedOption()?.label || this.placeholder();\n });\n\n constructor() {\n // Sync query with value in input mode initially if there's a value\n setTimeout(() => {\n if (this.triggerMode() === 'input' && this.hasValue()) {\n this.query.set(this.displayValue());\n }\n });\n }\n\n toggleOverlay(event: Event) {\n if (this.disabled()) return;\n const target = event.currentTarget as HTMLElement;\n this.triggerWidth = target.getBoundingClientRect().width;\n \n if (!this.isOpen()) {\n this.isOpen.set(true);\n if (this.triggerMode() === 'button') {\n this.query.set('');\n setTimeout(() => this.searchInputRef?.nativeElement.focus(), 50);\n } else {\n this.query.set('');\n setTimeout(() => this.inputRef?.nativeElement.focus(), 50);\n }\n } else {\n this.close();\n }\n }\n\n onFocus(event: Event) {\n if (this.disabled()) return;\n const target = event.target as HTMLElement;\n this.triggerWidth = target.getBoundingClientRect().width;\n this.isOpen.set(true);\n }\n\n onInputClick(event: Event) {\n if (this.disabled()) return;\n const target = event.target as HTMLElement;\n this.triggerWidth = target.getBoundingClientRect().width;\n if (!this.isOpen()) {\n this.isOpen.set(true);\n }\n }\n\n onInput(event: Event) {\n if (!this.isOpen()) {\n this.isOpen.set(true);\n }\n if (this.query() === '') {\n this.value.set(null);\n }\n }\n\n onSearchInput(event: Event) {\n // The query signal is two-way bound to ngModel, so we just let it filter.\n }\n\n close() {\n this.isOpen.set(false);\n if (this.triggerMode() === 'input') {\n if (this.hasValue()) {\n this.query.set(this.displayValue());\n } else {\n this.query.set('');\n }\n }\n }\n\n selectOption(val: any) {\n this.value.set(val);\n if (this.triggerMode() === 'input') {\n const selected = this.normalizedOptions().find(opt => opt.value === val);\n if (selected) {\n this.query.set(selected.label);\n }\n }\n this.close();\n }\n}\n","import { Component, input, model, computed, signal, HostListener, ViewChild, ElementRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { OverlayModule, ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { NeuralLabelingWrapperComponent, NeuralInputLabelComponent, NeuralInputDescriptionComponent, NeuralInputErrorComponent } from '../input-labeling/input-labeling.components';\n\nexport interface MultiSelectOption {\n label: string;\n value: any;\n description?: string;\n icon?: string;\n disabled?: boolean;\n}\n\n@Component({\n selector: 'neural-multi-select',\n standalone: true,\n imports: [CommonModule, FormsModule, OverlayModule, NeuralLabelingWrapperComponent, NeuralInputLabelComponent, NeuralInputDescriptionComponent, NeuralInputErrorComponent],\n template: `\n <neural-labeling-wrapper [enabled]=\"hasLabeling()\">\n @if (label() || hasLabelSlot()) {\n <neural-input-label\n [id]=\"labelId()\"\n [forId]=\"inputId()\"\n [label]=\"label()\"\n [required]=\"required()\"\n >\n @if (hasLabelSlot()) {\n <ng-content select=\"[label]\"></ng-content>\n }\n </neural-input-label>\n }\n\n <div class=\"relative w-full\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\">\n <button\n type=\"button\"\n [id]=\"inputId()\"\n class=\"flex w-full items-center justify-between outline-none focus-visible:ring-2 focus-visible:ring-outline-gray-4 transition-colors relative\"\n [class]=\"triggerClasses()\"\n [disabled]=\"disabled()\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-invalid]=\"hasError() ? 'true' : undefined\"\n [attr.aria-errormessage]=\"hasError() ? errorMessageId() : undefined\"\n [attr.aria-describedby]=\"descriptionId()\"\n (click)=\"toggleOverlay($event)\"\n >\n <span class=\"truncate\" [class.text-ink-gray-4]=\"!hasSelection()\">\n {{ displayValue() }}\n </span>\n <span class=\"lucide-chevron-down ml-2 size-4 shrink-0 text-ink-gray-4 transition-transform\" [class.rotate-180]=\"isOpen()\"></span>\n </button>\n </div>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayWidth]=\"triggerWidth\"\n (backdropClick)=\"close()\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n >\n <div class=\"z-[100] mt-1 overflow-hidden rounded-7 bg-surface-elevation-2 shadow-xl ring-1 ring-outline-gray-3 w-full flex flex-col\">\n \n @if (!hideSearch()) {\n <div class=\"flex items-center gap-2 border-b border-outline-gray-1 px-3 shrink-0\">\n <input\n #searchInputRef\n type=\"text\"\n [(ngModel)]=\"query\"\n [disabled]=\"disabled()\"\n [placeholder]=\"'Search...'\"\n class=\"min-w-0 flex-1 px-0 border-0 bg-transparent py-2 text-base text-ink-gray-8 outline-none placeholder:text-ink-gray-4 focus:ring-0\"\n autocomplete=\"off\"\n />\n </div>\n }\n \n <div class=\"flex max-h-[300px] flex-col overflow-y-auto p-1 outline-none\">\n @if (filteredOptions().length === 0) {\n <div class=\"px-2 py-1.5 text-base text-ink-gray-5\">\n {{ emptyText() }}\n </div>\n } @else {\n @for (option of filteredOptions(); track option.value) {\n <button\n type=\"button\"\n class=\"relative flex w-full cursor-default select-none items-center rounded-5 px-2 py-1.5 text-sm outline-none transition-colors\"\n [class.bg-surface-gray-2]=\"isSelected(option.value)\"\n [class.hover:bg-surface-gray-1]=\"!option.disabled && !isSelected(option.value)\"\n [class.opacity-50]=\"option.disabled\"\n [disabled]=\"option.disabled\"\n (click)=\"toggleSelection(option.value, $event)\"\n >\n <div class=\"mr-2 flex h-4 w-4 shrink-0 items-center justify-center rounded-[4px] border transition-colors\"\n [class.border-transparent]=\"isSelected(option.value)\"\n [class.bg-surface-gray-7]=\"isSelected(option.value)\"\n [class.text-white]=\"isSelected(option.value)\"\n [class.border-outline-gray-3]=\"!isSelected(option.value)\"\n [class.bg-surface-base]=\"!isSelected(option.value)\">\n @if (isSelected(option.value)) {\n <span class=\"lucide-check size-3\"></span>\n }\n </div>\n\n @if (option.icon) {\n <span [class]=\"option.icon + ' mr-2 size-4 text-ink-gray-5'\"></span>\n }\n <div class=\"flex flex-col items-start truncate min-w-0\">\n <span class=\"truncate\" [class.font-medium]=\"isSelected(option.value)\">{{ option.label }}</span>\n @if (option.description) {\n <span class=\"truncate text-xs text-ink-gray-5\">{{ option.description }}</span>\n }\n </div>\n </button>\n }\n }\n </div>\n\n <div class=\"flex items-center justify-between gap-2 border-t border-outline-gray-1 px-2 py-1.5\">\n @if (safeValue().length > 0) {\n <button\n type=\"button\"\n class=\"flex h-7 items-center justify-center rounded-5 px-2 text-sm font-medium text-ink-gray-6 transition-colors hover:bg-surface-gray-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-outline-gray-4\"\n (click)=\"clear()\"\n >\n Clear All\n </button>\n }\n @if (!allSelected()) {\n <button\n type=\"button\"\n class=\"ml-auto flex h-7 items-center justify-center rounded-5 px-2 text-sm font-medium text-ink-gray-6 transition-colors hover:bg-surface-gray-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-outline-gray-4\"\n (click)=\"selectAll()\"\n >\n Select All\n </button>\n }\n </div>\n </div>\n </ng-template>\n\n @if (description() || hasDescriptionSlot()) {\n <neural-input-description [id]=\"descriptionId()\" [description]=\"description()\">\n @if (hasDescriptionSlot()) {\n <ng-content select=\"[description]\"></ng-content>\n }\n </neural-input-description>\n }\n @if (errorMessage()) {\n <neural-input-error [id]=\"errorMessageId()\" [lines]=\"[errorMessage()]\"></neural-input-error>\n }\n </neural-labeling-wrapper>\n `\n})\nexport class NeuralMultiSelectComponent {\n value = model<any[]>([]);\n \n options = input<any[]>([]);\n size = input<'sm' | 'md' | 'lg' | 'xl'>('sm');\n variant = input<'outline' | 'subtle' | 'ghost'>('subtle');\n disabled = input<boolean>(false);\n placeholder = input<string>('Select option');\n emptyText = input<string>('No results');\n hideSearch = input<boolean>(false);\n\n label = input<string>('');\n description = input<string>('');\n errorMessage = input<string>('');\n required = input<boolean>(false);\n\n hasLabelSlot = input<boolean>(false);\n hasDescriptionSlot = input<boolean>(false);\n\n isOpen = signal(false);\n triggerWidth: number | string = 'auto';\n query = signal<string>('');\n\n positions = [\n new ConnectionPositionPair({ originX: 'start', originY: 'bottom' }, { overlayX: 'start', overlayY: 'top' }, 0, 4),\n new ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'start', overlayY: 'bottom' }, 0, -4)\n ];\n\n @ViewChild('searchInputRef') searchInputRef?: ElementRef<HTMLInputElement>;\n\n private uniqueId = Math.random().toString(36).substring(2, 9);\n \n inputId = computed(() => `multi-select-input-${this.uniqueId}`);\n labelId = computed(() => `multi-select-label-${this.uniqueId}`);\n descriptionId = computed(() => `multi-select-desc-${this.uniqueId}`);\n errorMessageId = computed(() => `multi-select-error-${this.uniqueId}`);\n\n hasLabeling = computed(() => {\n return Boolean(this.label() || this.hasLabelSlot() || this.description() || this.hasDescriptionSlot() || this.errorMessage());\n });\n\n hasError = computed(() => Boolean(this.errorMessage()));\n\n safeValue = computed(() => {\n const val = this.value();\n return Array.isArray(val) ? val : [];\n });\n\n triggerClasses = computed(() => {\n const s = this.size();\n const v = this.variant();\n \n let base = 'rounded-6 text-left';\n \n // Size\n if (s === 'sm') base += ' h-7 px-2 py-1 text-sm';\n else if (s === 'md') base += ' h-8 px-2.5 py-1.5 text-base';\n else if (s === 'lg') base += ' h-10 px-3 py-2 text-lg';\n else if (s === 'xl') base += ' h-12 px-4 py-3 text-xl';\n\n // Variant\n if (v === 'outline') {\n base += ' border border-outline-gray-2 bg-surface-base hover:bg-surface-gray-1';\n } else if (v === 'subtle') {\n base += ' border border-transparent bg-surface-gray-2 hover:bg-surface-gray-3';\n } else if (v === 'ghost') {\n base += ' border border-transparent bg-transparent hover:bg-surface-gray-2';\n }\n\n if (this.disabled()) {\n base += ' opacity-50 cursor-not-allowed';\n }\n\n return base;\n });\n\n normalizedOptions = computed<MultiSelectOption[]>(() => {\n return this.options().map(opt => {\n if (typeof opt === 'string') {\n return { label: opt, value: opt };\n }\n return opt as MultiSelectOption;\n });\n });\n\n filteredOptions = computed(() => {\n const q = this.query().toLowerCase();\n if (!q) return this.normalizedOptions();\n return this.normalizedOptions().filter(opt => opt.label.toLowerCase().includes(q) || (opt.description && opt.description.toLowerCase().includes(q)));\n });\n\n selectedOptions = computed(() => {\n const vals = this.safeValue();\n return this.normalizedOptions().filter(opt => vals.includes(opt.value));\n });\n\n hasSelection = computed(() => this.selectedOptions().length > 0);\n\n displayValue = computed(() => {\n if (!this.hasSelection()) return this.placeholder();\n if (this.selectedOptions().length === 1) return this.selectedOptions()[0].label;\n return `${this.selectedOptions().length} selected`;\n });\n\n allSelected = computed(() => {\n const selectable = this.normalizedOptions().filter(opt => !opt.disabled);\n if (selectable.length === 0) return false;\n const selectedVals = new Set(this.safeValue());\n return selectable.every(opt => selectedVals.has(opt.value));\n });\n\n toggleOverlay(event: Event) {\n if (this.disabled()) return;\n const target = event.currentTarget as HTMLElement;\n this.triggerWidth = target.getBoundingClientRect().width;\n \n if (!this.isOpen()) {\n this.isOpen.set(true);\n this.query.set('');\n setTimeout(() => this.searchInputRef?.nativeElement.focus(), 50);\n } else {\n this.close();\n }\n }\n\n close() {\n this.isOpen.set(false);\n }\n\n isSelected(val: any) {\n return this.safeValue().includes(val);\n }\n\n toggleSelection(val: any, event: Event) {\n event.stopPropagation();\n const vals = [...this.safeValue()];\n const index = vals.indexOf(val);\n if (index > -1) {\n vals.splice(index, 1);\n } else {\n vals.push(val);\n }\n this.value.set(vals);\n }\n\n clear() {\n this.value.set([]);\n }\n\n selectAll() {\n const vals = this.normalizedOptions()\n .filter(opt => !opt.disabled)\n .map(opt => opt.value);\n this.value.set(vals);\n }\n}\n","import { Component, input, output, signal, ViewChild, ElementRef, computed } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NeuralButtonComponent } from '../button/button.component';\nimport { NeuralErrorMessageComponent } from '../error-message/error-message.component';\n\nexport interface FileUploaderValidationResult {\n valid: boolean;\n error?: string;\n}\n\n@Component({\n selector: 'neural-file-uploader',\n standalone: true,\n imports: [CommonModule, NeuralButtonComponent, NeuralErrorMessageComponent],\n template: `\n <div data-slot=\"root\" [attr.data-state]=\"dataState()\">\n <input\n #fileInput\n type=\"file\"\n [accept]=\"acceptedFileTypes()\"\n class=\"hidden\"\n (change)=\"onFileAdd($event)\"\n />\n @if (hasDefaultSlot()) {\n <ng-content></ng-content>\n } @else {\n <div>\n <neural-button (click)=\"openFileSelector()\" [loading]=\"uploading()\">\n {{ uploading() ? 'Uploading ' + progress() + '%' : 'Upload File' }}\n </neural-button>\n @if (error()) {\n <neural-error-message [message]=\"error()!\" class=\"mt-1\"></neural-error-message>\n }\n </div>\n }\n </div>\n `\n})\nexport class NeuralFileUploaderComponent {\n fileTypes = input<string | string[]>('');\n validateFile = input<(file: File) => Promise<FileUploaderValidationResult | string | null>>();\n\n hasDefaultSlot = input<boolean>(false);\n\n success = output<any>();\n failure = output<any>();\n fileSelected = output<File>();\n\n @ViewChild('fileInput') fileInput!: ElementRef<HTMLInputElement>;\n\n uploading = signal(false);\n uploaded = signal(0);\n total = signal(0);\n error = signal<string | null>(null);\n message = signal('');\n file = signal<File | null>(null);\n finishedUploading = signal(false);\n\n acceptedFileTypes = computed(() => {\n const types = this.fileTypes();\n return Array.isArray(types) ? types.join(',') : types;\n });\n\n progress = computed(() => {\n if (this.total() === 0) return 0;\n const value = Math.floor((this.uploaded() / this.total()) * 100);\n return Number.isNaN(value) ? 0 : value;\n });\n\n isSuccess = computed(() => {\n return this.finishedUploading() && !this.error();\n });\n\n dataState = computed(() => {\n if (this.uploading()) return 'uploading';\n if (this.isSuccess()) return 'success';\n if (this.error()) return 'error';\n return 'idle';\n });\n\n openFileSelector() {\n this.fileInput.nativeElement.click();\n }\n\n async onFileAdd(event: Event) {\n this.error.set(null);\n\n const target = event.target as HTMLInputElement;\n const selectedFile = target.files?.[0] || null;\n this.file.set(selectedFile);\n\n if (!selectedFile) return;\n\n this.fileSelected.emit(selectedFile);\n\n if (this.validateFile()) {\n try {\n const validationError = await this.validateFile()!(selectedFile);\n if (validationError && (typeof validationError === 'string' || (typeof validationError === 'object' && !validationError.valid))) {\n const errStr = typeof validationError === 'string' ? validationError : validationError.error || 'Invalid file';\n this.error.set(errStr);\n this.failure.emit(errStr);\n return;\n }\n } catch (err: any) {\n this.error.set(err.message || 'Validation error');\n this.failure.emit(err);\n return;\n }\n }\n\n // Since this is a UI kit without Frappe's FileUploadHandler, we just emit the file\n // for the parent component to handle uploading, unless a custom upload function is passed.\n // A full implementation would take a backend endpoint.\n }\n}\n","import { Component, input, model, signal, ViewChild, TemplateRef, ElementRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule, ConnectionPositionPair } from '@angular/cdk/overlay';\n\n@Component({\n selector: 'neural-hover-card',\n standalone: true,\n imports: [CommonModule, OverlayModule],\n template: `\n <div\n class=\"inline-block\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n (focusin)=\"onMouseEnter()\"\n (focusout)=\"onMouseLeave()\"\n >\n <ng-content select=\"[trigger]\"></ng-content>\n </div>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n (overlayKeydown)=\"onOverlayKeydown($event)\"\n (overlayOutsideClick)=\"close()\"\n >\n <div\n class=\"z-[100] mt-1 overflow-hidden rounded-7 bg-surface-elevation-2 shadow-xl ring-1 ring-outline-gray-3\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n >\n <div class=\"p-2\">\n <ng-content></ng-content>\n </div>\n </div>\n </ng-template>\n `\n})\nexport class NeuralHoverCardComponent {\n openDelay = input<number>(0.3);\n leaveDelay = input<number>(0.3);\n\n isOpen = signal(false);\n\n private enterTimeout: any;\n private leaveTimeout: any;\n\n positions = [\n new ConnectionPositionPair({ originX: 'start', originY: 'bottom' }, { overlayX: 'start', overlayY: 'top' }, 0, 4),\n new ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'start', overlayY: 'bottom' }, 0, -4)\n ];\n\n onMouseEnter() {\n clearTimeout(this.leaveTimeout);\n if (!this.isOpen()) {\n this.enterTimeout = setTimeout(() => {\n this.isOpen.set(true);\n }, this.openDelay() * 1000);\n }\n }\n\n onMouseLeave() {\n clearTimeout(this.enterTimeout);\n if (this.isOpen()) {\n this.leaveTimeout = setTimeout(() => {\n this.isOpen.set(false);\n }, this.leaveDelay() * 1000);\n }\n }\n\n close() {\n clearTimeout(this.enterTimeout);\n clearTimeout(this.leaveTimeout);\n this.isOpen.set(false);\n }\n\n onOverlayKeydown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n this.close();\n }\n }\n}\n","import { Component, input, signal, ViewChild, ElementRef, HostListener, Output, EventEmitter, TemplateRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule, ConnectionPositionPair, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\nexport interface ContextMenuOption {\n label: string;\n value?: any;\n icon?: string;\n disabled?: boolean;\n onClick?: () => void;\n options?: ContextMenuOption[]; // For sub-menus\n}\n\n@Component({\n selector: 'neural-context-menu',\n standalone: true,\n imports: [CommonModule, OverlayModule],\n template: `\n <div (contextmenu)=\"onContextMenu($event)\">\n <ng-content></ng-content>\n </div>\n\n <ng-template #menuTemplate>\n <div\n class=\"z-[100] min-w-[200px] overflow-hidden rounded-7 bg-surface-elevation-2 shadow-xl ring-1 ring-outline-gray-3 p-1 flex flex-col\"\n (click)=\"$event.stopPropagation()\"\n (contextmenu)=\"$event.preventDefault()\"\n >\n @for (option of options(); track option.label) {\n @if (option.options && option.options.length > 0) {\n <div class=\"px-2 py-1.5 text-xs font-semibold text-ink-gray-5 uppercase tracking-wider\">\n {{ option.label }}\n </div>\n @for (subOption of option.options; track subOption.label) {\n <button\n type=\"button\"\n class=\"flex w-full items-center rounded-5 px-2 py-1.5 text-sm text-ink-gray-8 transition-colors outline-none\"\n [class.hover:bg-surface-gray-2]=\"!subOption.disabled\"\n [class.opacity-50]=\"subOption.disabled\"\n [class.cursor-not-allowed]=\"subOption.disabled\"\n [disabled]=\"subOption.disabled\"\n (click)=\"handleItemClick(subOption)\"\n >\n @if (subOption.icon) {\n <span [class]=\"subOption.icon + ' mr-2 size-4 text-ink-gray-5'\"></span>\n }\n <span class=\"truncate\">{{ subOption.label }}</span>\n </button>\n }\n } @else {\n <button\n type=\"button\"\n class=\"flex w-full items-center rounded-5 px-2 py-1.5 text-sm text-ink-gray-8 transition-colors outline-none\"\n [class.hover:bg-surface-gray-2]=\"!option.disabled\"\n [class.opacity-50]=\"option.disabled\"\n [class.cursor-not-allowed]=\"option.disabled\"\n [disabled]=\"option.disabled\"\n (click)=\"handleItemClick(option)\"\n >\n @if (option.icon) {\n <span [class]=\"option.icon + ' mr-2 size-4 text-ink-gray-5'\"></span>\n }\n <span class=\"truncate\">{{ option.label }}</span>\n </button>\n }\n }\n </div>\n </ng-template>\n `\n})\nexport class NeuralContextMenuComponent {\n options = input<ContextMenuOption[]>([]);\n @Output() optionClicked = new EventEmitter<ContextMenuOption>();\n\n @ViewChild('menuTemplate') menuTemplate!: TemplateRef<any>;\n private overlayRef: OverlayRef | null = null;\n\n constructor(private overlay: Overlay) {}\n\n onContextMenu(event: MouseEvent) {\n event.preventDefault();\n this.closeMenu();\n\n const positionStrategy = this.overlay.position()\n .flexibleConnectedTo({ x: event.clientX, y: event.clientY })\n .withPositions([\n new ConnectionPositionPair({ originX: 'end', originY: 'bottom' }, { overlayX: 'start', overlayY: 'top' }),\n new ConnectionPositionPair({ originX: 'start', originY: 'bottom' }, { overlayX: 'end', overlayY: 'top' })\n ]);\n\n this.overlayRef = this.overlay.create({\n positionStrategy,\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop'\n });\n\n this.overlayRef.backdropClick().subscribe(() => this.closeMenu());\n\n const portal = new TemplatePortal(this.menuTemplate, null!);\n this.overlayRef.attach(portal);\n\n // Prevent scrolling while context menu is open\n document.body.style.overflow = 'hidden';\n }\n\n closeMenu() {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n document.body.style.overflow = '';\n }\n }\n\n handleItemClick(option: ContextMenuOption) {\n if (option.disabled) return;\n if (option.onClick) {\n option.onClick();\n }\n this.optionClicked.emit(option);\n this.closeMenu();\n }\n}\n","import { Component, input, model, computed } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { NeuralLabelingWrapperComponent, NeuralInputLabelComponent, NeuralInputDescriptionComponent, NeuralInputErrorComponent } from '../input-labeling/input-labeling.components';\n\n@Component({\n selector: 'neural-date-picker',\n standalone: true,\n imports: [CommonModule, FormsModule, NeuralLabelingWrapperComponent, NeuralInputLabelComponent, NeuralInputDescriptionComponent, NeuralInputErrorComponent],\n template: `\n <neural-labeling-wrapper [enabled]=\"hasLabeling()\">\n @if (label() || hasLabelSlot()) {\n <neural-input-label\n [id]=\"labelId()\"\n [forId]=\"inputId()\"\n [label]=\"label()\"\n [required]=\"required()\"\n >\n @if (hasLabelSlot()) {\n <ng-content select=\"[label]\"></ng-content>\n }\n </neural-input-label>\n }\n\n <div class=\"relative flex items-center w-full\">\n <input\n type=\"date\"\n [id]=\"inputId()\"\n [(ngModel)]=\"value\"\n class=\"w-full outline-none focus-visible:ring-2 focus-visible:ring-outline-gray-4 transition-colors relative placeholder:text-ink-gray-4\"\n [class]=\"inputClasses()\"\n [disabled]=\"disabled()\"\n [min]=\"min()\"\n [max]=\"max()\"\n [attr.aria-invalid]=\"hasError() ? 'true' : undefined\"\n [attr.aria-errormessage]=\"hasError() ? errorMessageId() : undefined\"\n [attr.aria-describedby]=\"descriptionId()\"\n [attr.aria-required]=\"required() || undefined\"\n />\n </div>\n\n @if (description() || hasDescriptionSlot()) {\n <neural-input-description [id]=\"descriptionId()\" [description]=\"description()\">\n @if (hasDescriptionSlot()) {\n <ng-content select=\"[description]\"></ng-content>\n }\n </neural-input-description>\n }\n @if (errorMessage()) {\n <neural-input-error [id]=\"errorMessageId()\" [lines]=\"[errorMessage()]\"></neural-input-error>\n }\n </neural-labeling-wrapper>\n `\n})\nexport class NeuralDatePickerComponent {\n value = model<string>(''); // YYYY-MM-DD\n \n size = input<'sm' | 'md' | 'lg' | 'xl'>('sm');\n variant = input<'outline' | 'subtle' | 'ghost'>('subtle');\n disabled = input<boolean>(false);\n min = input<string>('');\n max = input<string>('');\n\n label = input<string>('');\n description = input<string>('');\n errorMessage = input<string>('');\n required = input<boolean>(false);\n\n hasLabelSlot = input<boolean>(false);\n hasDescriptionSlot = input<boolean>(false);\n\n private uniqueId = Math.random().toString(36).substring(2, 9);\n \n inputId = computed(() => `date-picker-input-${this.uniqueId}`);\n labelId = computed(() => `date-picker-label-${this.uniqueId}`);\n descriptionId = computed(() => `date-picker-desc-${this.uniqueId}`);\n errorMessageId = computed(() => `date-picker-error-${this.uniqueId}`);\n\n hasLabeling = computed(() => {\n return Boolean(this.label() || this.hasLabelSlot() || this.description() || this.hasDescriptionSlot() || this.errorMessage());\n });\n\n hasError = computed(() => Boolean(this.errorMessage()));\n\n inputClasses = computed(() => {\n const s = this.size();\n const v = this.variant();\n \n let base = 'rounded-6 text-left';\n \n // Size\n if (s === 'sm') base += ' h-7 px-2 py-1 text-sm';\n else if (s === 'md') base += ' h-8 px-2.5 py-1.5 text-base';\n else if (s === 'lg') base += ' h-10 px-3 py-2 text-lg';\n else if (s === 'xl') base += ' h-12 px-4 py-3 text-xl';\n\n // Variant\n if (v === 'outline') {\n base += ' border border-outline-gray-2 bg-surface-base hover:bg-surface-gray-1 focus-visible:bg-surface-base';\n } else if (v === 'subtle') {\n base += ' border border-transparent bg-surface-gray-2 hover:bg-surface-gray-3 focus-visible:bg-surface-base focus-visible:border-outline-gray-4';\n } else if (v === 'ghost') {\n base += ' border border-transparent bg-transparent hover:bg-surface-gray-2 focus-visible:bg-surface-base focus-visible:border-outline-gray-4';\n }\n\n if (this.disabled()) {\n base += ' opacity-50 cursor-not-allowed';\n }\n\n return base;\n });\n}\n","import { Component, input, ViewChild, ElementRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NeuralScrollAreaComponent } from '../scroll-area/scroll-area.component';\n\n@Component({\n selector: 'neural-desktop-shell',\n standalone: true,\n imports: [CommonModule, NeuralScrollAreaComponent],\n template: `\n <div data-slot=\"desktop-shell\" class=\"flex h-full w-full\">\n <ng-content select=\"[rail]\"></ng-content>\n <ng-content select=\"[sidebar]\"></ng-content>\n\n <div\n data-slot=\"desktop-shell-content\"\n class=\"flex min-w-0 flex-1 flex-col overflow-hidden\"\n >\n <ng-content select=\"[header]\"></ng-content>\n\n @if (scroll()) {\n <neural-scroll-area class=\"min-h-0 flex-1 w-full\">\n <ng-content></ng-content>\n </neural-scroll-area>\n } @else {\n <div class=\"flex min-h-0 flex-1 flex-col overflow-hidden w-full\">\n <ng-content></ng-content>\n </div>\n }\n </div>\n </div>\n `\n})\nexport class NeuralDesktopShellComponent {\n scroll = input<boolean>(true);\n}\n","import { Component, input, model, computed, signal, ViewChild } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NeuralTextInputComponent } from '../text-input/text-input.component';\n\nexport type DurationFormat = 'short' | 'long' | 'colon' | string;\n\nexport function formatDuration(totalSeconds: number | null | undefined, format: DurationFormat = 'short'): string {\n if (totalSeconds === null || totalSeconds === undefined) return '';\n\n const seconds = Number(totalSeconds);\n if (Number.isNaN(seconds)) return '';\n\n const hours = Math.floor(seconds / 3600);\n const minutes = Math.floor((seconds % 3600) / 60);\n const secs = seconds % 60;\n\n if (format === 'short') {\n const parts: string[] = [];\n if (hours) parts.push(`${hours}h`);\n if (minutes) parts.push(`${minutes}m`);\n if (secs) parts.push(`${secs}s`);\n return parts.length ? parts.join(' ') : '0s';\n }\n \n if (format === 'long') {\n const parts: string[] = [];\n if (hours) parts.push(hours === 1 ? '1 hour' : `${hours} hours`);\n if (minutes) parts.push(minutes === 1 ? '1 minute' : `${minutes} minutes`);\n if (secs) parts.push(secs === 1 ? '1 second' : `${secs} seconds`);\n return parts.length ? parts.join(' ') : '0 seconds';\n }\n\n if (format === 'colon') {\n const pad = (value: number) => String(value).padStart(2, '0');\n if (hours) return `${hours}:${pad(minutes)}:${pad(secs)}`;\n return `${minutes}:${pad(secs)}`;\n }\n \n return `${hours}h ${minutes}m ${secs}s`; // Simplified fallback for custom template\n}\n\nexport function parseDuration(str: string): number | null {\n const input = str.trim().toLowerCase();\n if (!input) return null;\n\n const colonMatch = input.match(/^(\\d+):(\\d+):(\\d+)$|^(\\d+):(\\d+)$|^:(\\d+)$/);\n if (colonMatch) {\n if (colonMatch[1] !== undefined) {\n return parseInt(colonMatch[1], 10) * 3600 + parseInt(colonMatch[2], 10) * 60 + parseInt(colonMatch[3], 10);\n }\n if (colonMatch[4] !== undefined) {\n return parseInt(colonMatch[4], 10) * 60 + parseInt(colonMatch[5], 10);\n }\n return parseInt(colonMatch[6], 10);\n }\n\n if (/^\\d+$/.test(input)) return parseInt(input, 10);\n\n const tokenRe = /(\\d+)\\s*(hours?|hrs?|h|minutes?|mins?|m|seconds?|secs?|s)/g;\n const tokens: { value: number; unit: string }[] = [];\n let lastEnd = 0;\n let match: RegExpExecArray | null;\n\n while ((match = tokenRe.exec(input)) !== null) {\n if (input.slice(lastEnd, match.index).trim() !== '') return null;\n tokens.push({ value: parseInt(match[1], 10), unit: match[2][0] });\n lastEnd = match.index + match[0].length;\n }\n\n if (input.slice(lastEnd).trim() !== '') return null;\n if (tokens.length === 0) return null;\n\n const seen = new Set<string>();\n let total = 0;\n for (const { value, unit } of tokens) {\n if (seen.has(unit)) return null;\n seen.add(unit);\n if (unit === 'h') total += value * 3600;\n else if (unit === 'm') total += value * 60;\n else total += value;\n }\n return total;\n}\n\n@Component({\n selector: 'neural-duration',\n standalone: true,\n imports: [CommonModule, NeuralTextInputComponent],\n template: `\n <neural-text-input\n #inputRef\n [id]=\"inputId()\"\n [valueModel]=\"displayValue()\"\n (valueModelChange)=\"handleInput($event)\"\n [label]=\"label()\"\n [description]=\"description()\"\n [error]=\"error() || internalError()\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n [size]=\"size()\"\n [variant]=\"variant()\"\n [placeholder]=\"placeholder()\"\n (focus)=\"handleFocus()\"\n (blur)=\"handleBlur()\"\n (input)=\"handleInput($event)\"\n (keydown)=\"handleKeydown($event)\"\n [hasLabelSlot]=\"hasLabelSlot()\"\n [hasDescriptionSlot]=\"hasDescriptionSlot()\"\n >\n @if (hasLabelSlot()) {\n <ng-content select=\"[label]\" ngProjectAs=\"[label]\"></ng-content>\n }\n @if (hasDescriptionSlot()) {\n <ng-content select=\"[description]\" ngProjectAs=\"[description]\"></ng-content>\n }\n </neural-text-input>\n `\n})\nexport class NeuralDurationComponent {\n value = model<number | null>(null);\n \n inputId = input<string>('');\n label = input<string>('');\n description = input<string>('');\n error = input<string>('');\n required = input<boolean>(false);\n disabled = input<boolean>(false);\n size = input<'sm' | 'md' | 'lg' | 'xl'>('sm');\n variant = input<'outline' | 'subtle' | 'ghost'>('subtle');\n placeholder = input<string>('1h 30m 45s');\n format = input<DurationFormat>('short');\n\n hasLabelSlot = input<boolean>(false);\n hasDescriptionSlot = input<boolean>(false);\n\n @ViewChild('inputRef') inputRef!: NeuralTextInputComponent;\n\n isFocused = signal(false);\n editValue = signal('');\n internalError = signal('');\n cancelled = signal(false);\n\n displayValue = computed(() => {\n return this.isFocused() || this.internalError()\n ? this.editValue()\n : formatDuration(this.value(), this.format());\n });\n\n handleFocus() {\n if (this.isFocused()) return;\n this.isFocused.set(true);\n this.editValue.set(formatDuration(this.value(), 'short'));\n this.internalError.set('');\n \n // Select all text natively\n setTimeout(() => {\n const el = document.getElementById(this.inputRef.inputId());\n if (el instanceof HTMLInputElement) el.select();\n });\n }\n\n handleInput(event: Event | string) {\n if (typeof event === 'string') {\n this.editValue.set(event);\n } else {\n this.editValue.set((event.target as HTMLInputElement).value);\n }\n this.internalError.set('');\n }\n\n handleBlur() {\n if (this.cancelled()) {\n this.cancelled.set(false);\n this.isFocused.set(false);\n this.internalError.set('');\n return;\n }\n this.commit();\n }\n\n handleKeydown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n event.preventDefault();\n const el = document.getElementById(this.inputRef.inputId());\n if (el instanceof HTMLInputElement) el.blur();\n } else if (event.key === 'Escape') {\n this.cancelled.set(true);\n const el = document.getElementById(this.inputRef.inputId());\n if (el instanceof HTMLInputElement) el.blur();\n }\n }\n\n commit() {\n const raw = this.editValue().trim();\n\n if (raw === '') {\n this.internalError.set('');\n this.isFocused.set(false);\n this.value.set(null);\n return;\n }\n\n const seconds = parseDuration(raw);\n if (seconds === null) {\n this.internalError.set('Invalid format. Try: 1h 30m 45s, 1 hour 30 minutes, 1:30:45, 90s');\n this.isFocused.set(false);\n return;\n }\n\n this.internalError.set('');\n this.isFocused.set(false);\n this.value.set(seconds);\n }\n\n focus() {\n this.inputRef.focus();\n }\n}\n","import { Component, input, computed } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'neural-item-list-row',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div\n data-slot=\"item-list-row\"\n [attr.data-size]=\"size()\"\n [attr.data-state]=\"isEmphasized() ? 'active' : 'inactive'\"\n [attr.data-disabled]=\"disabled() ? '' : undefined\"\n class=\"flex w-full items-center gap-2 rounded-4 transition-colors\"\n [ngClass]=\"[sizeClasses(), stateClasses()]\"\n >\n @if (hasPrefixSlot()) {\n <div data-slot=\"item-prefix\" class=\"flex shrink-0 items-center justify-center\">\n <ng-content select=\"[prefix]\"></ng-content>\n </div>\n }\n\n <div data-slot=\"item-label\" class=\"min-w-0 flex-1\">\n <ng-content></ng-content>\n </div>\n\n @if (hasSuffixSlot()) {\n <div data-slot=\"item-suffix\" class=\"flex shrink-0 items-center justify-center\">\n <ng-content select=\"[suffix]\"></ng-content>\n </div>\n }\n </div>\n `\n})\nexport class NeuralItemListRowComponent {\n size = input<'sm' | 'md' | 'lg' | 'xl'>('sm');\n active = input<boolean>(false);\n selected = input<boolean>(false);\n disabled = input<boolean>(false);\n\n hasPrefixSlot = input<boolean>(false);\n hasSuffixSlot = input<boolean>(false);\n\n isEmphasized = computed(() => {\n return this.active() || this.selected();\n });\n\n sizeClasses = computed(() => {\n switch (this.size()) {\n case 'sm': return 'min-h-7 px-2 py-1.5 text-base';\n case 'md': return 'min-h-8 px-2.5 py-1.5 text-base';\n case 'lg': return 'min-h-10 px-3 py-2 text-lg';\n case 'xl': return 'min-h-10 px-3 py-2 text-2xl';\n default: return 'min-h-7 px-2 py-1.5 text-base';\n }\n });\n\n stateClasses = computed(() => {\n if (this.disabled()) {\n return 'cursor-not-allowed text-ink-gray-4';\n }\n\n return this.isEmphasized()\n ? 'bg-surface-gray-3 text-ink-gray-8'\n : 'text-ink-gray-7 hover:bg-surface-gray-2';\n });\n}\n","import { Component, input, computed } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NeuralIconComponent } from '../icon/icon.component';\n\nexport interface ComboPart {\n raw: string;\n type: string;\n display: string;\n}\n\nconst MODIFIERS = ['mod', 'ctrl', 'alt', 'shift'];\n\nconst KEY_DISPLAY: Record<string, string> = {\n escape: 'Esc',\n enter: '↵',\n space: 'Space',\n tab: 'Tab',\n insert: 'Insert',\n backspace: '⌫',\n delete: '⌦',\n arrowup: '↑',\n arrowdown: '↓',\n arrowleft: '←',\n arrowright: '→',\n pageup: 'PgUp',\n pagedown: 'PgDn',\n home: 'Home',\n end: 'End'\n};\n\nconst keyIconMap: Record<string, string> = {\n '↑': 'lucide-arrow-up',\n '↓': 'lucide-arrow-down',\n '←': 'lucide-arrow-left',\n '→': 'lucide-arrow-right',\n '↵': 'lucide-corner-down-left',\n '⌫': 'lucide-delete',\n '⌦': 'lucide-arrow-big-right-dash'\n};\n\n@Component({\n selector: 'neural-keyboard-shortcut',\n standalone: true,\n imports: [CommonModule, NeuralIconComponent],\n template: `\n <span\n class=\"inline-flex items-center gap-0.5\"\n [class]=\"!bg() ? 'text-ink-gray-5 text-sm' : ''\"\n [attr.data-bg]=\"bg() ? 'true' : undefined\"\n >\n @if (bg() && parsedParts().length) {\n @for (part of parsedParts(); track $index) {\n <kbd class=\"inline-flex h-6 min-w-[1.5rem] items-center justify-center rounded-4 bg-surface-gray-2 px-1.5 text-xs font-medium text-ink-gray-7\">\n @if (bgIconFor(part)) {\n <neural-icon [name]=\"bgIconFor(part)!\" class=\"size-3\"></neural-icon>\n } @else {\n {{ part.display }}\n }\n </kbd>\n }\n } @else if (parsedParts().length) {\n @for (part of parsedParts(); track $index) {\n @if (part.type === 'cmd') {\n <span><neural-icon name=\"lucide-command\" class=\"size-3\"></neural-icon></span>\n } @else if (part.type === 'shift') {\n <span><neural-icon name=\"lucide-arrow-big-up\" class=\"size-3\"></neural-icon></span>\n } @else if (part.type === 'alt') {\n <span><neural-icon name=\"lucide-option\" class=\"size-3\"></neural-icon></span>\n } @else {\n <span>\n @if (iconFor(part)) {\n <neural-icon [name]=\"iconFor(part)!\" class=\"size-3\"></neural-icon>\n } @else {\n <span class=\"leading-none uppercase\">{{ part.display }}</span>\n }\n </span>\n }\n @if ($index < parsedParts().length - 1 && showPlus()) {\n <span class=\"font-mono text-[10px] leading-none opacity-60\">+</span>\n }\n }\n } @else {\n <ng-content></ng-content>\n }\n </span>\n `\n})\nexport class NeuralKeyboardShortcutComponent {\n combo = input<string>('');\n bg = input<boolean>(false);\n showPlus = input<boolean>(true);\n useIcons = input<boolean>(true);\n\n // Simplified MacOS check\n isMac = computed(() => {\n if (typeof navigator === 'undefined') return false;\n return /Mac|iPod|iPhone|iPad/i.test(navigator.platform || navigator.userAgent);\n });\n\n parsedParts = computed<ComboPart[]>(() => {\n const raw = this.combo();\n if (!raw) return [];\n \n const originals = raw.split('+').map(p => p.trim());\n return originals.map(original => {\n const lower = original.toLowerCase();\n let type = 'key';\n let display = original;\n\n if (MODIFIERS.includes(lower)) {\n if (lower === 'shift') { type = 'shift'; display = 'Shift'; }\n else if (lower === 'alt') { type = 'alt'; display = this.isMac() ? '⌥' : 'Alt'; }\n else if (lower === 'ctrl' || !this.isMac()) { type = 'ctrl'; display = 'Ctrl'; }\n else { type = 'cmd'; display = '⌘'; }\n } else {\n if (KEY_DISPLAY[lower]) {\n display = KEY_DISPLAY[lower];\n } else if (/^[a-z]$/.test(lower) || /^f([1-9]|1[0-2])$/.test(lower)) {\n display = lower.toUpperCase();\n }\n }\n \n return { raw: original, type, display };\n });\n });\n\n iconFor(part: ComboPart): string | null {\n if (!this.useIcons()) return null;\n if (['cmd', 'shift', 'alt', 'ctrl'].includes(part.type)) return null;\n return keyIconMap[part.display] || null;\n }\n\n bgIconFor(part: ComboPart): string | null {\n if (part.type === 'cmd') return 'lucide-command';\n if (!this.useIcons()) return null;\n return keyIconMap[part.display] || null;\n }\n}\n","import { Component, input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ContextMenuOption } from '../context-menu/context-menu.component';\n\n@Component({\n selector: 'neural-menu',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div\n class=\"z-10 min-w-[200px] overflow-hidden rounded-7 bg-surface-elevation-2 shadow-xl ring-1 ring-outline-gray-3 p-1 flex flex-col\"\n >\n @for (option of options(); track option.label) {\n @if (option.options && option.options.length > 0) {\n <div class=\"px-2 py-1.5 text-xs font-semibold text-ink-gray-5 uppercase tracking-wider\">\n {{ option.label }}\n </div>\n @for (subOption of option.options; track subOption.label) {\n <button\n type=\"button\"\n class=\"flex w-full items-center rounded-5 px-2 py-1.5 text-sm text-ink-gray-8 transition-colors outline-none\"\n [class.hover:bg-surface-gray-2]=\"!subOption.disabled\"\n [class.opacity-50]=\"subOption.disabled\"\n [class.cursor-not-allowed]=\"subOption.disabled\"\n [disabled]=\"subOption.disabled\"\n (click)=\"handleItemClick(subOption)\"\n >\n @if (subOption.icon) {\n <span [class]=\"subOption.icon + ' mr-2 size-4 text-ink-gray-5'\"></span>\n }\n <span class=\"truncate\">{{ subOption.label }}</span>\n </button>\n }\n } @else {\n <button\n type=\"button\"\n class=\"flex w-full items-center rounded-5 px-2 py-1.5 text-sm text-ink-gray-8 transition-colors outline-none\"\n [class.hover:bg-surface-gray-2]=\"!option.disabled\"\n [class.opacity-50]=\"option.disabled\"\n [class.cursor-not-allowed]=\"option.disabled\"\n [disabled]=\"option.disabled\"\n (click)=\"handleItemClick(option)\"\n >\n @if (option.icon) {\n <span [class]=\"option.icon + ' mr-2 size-4 text-ink-gray-5'\"></span>\n }\n <span class=\"truncate\">{{ option.label }}</span>\n </button>\n }\n }\n </div>\n `\n})\nexport class NeuralMenuComponent {\n options = input<ContextMenuOption[]>([]);\n @Output() optionClicked = new EventEmitter<ContextMenuOption>();\n\n handleItemClick(option: ContextMenuOption) {\n if (option.disabled) return;\n if (option.onClick) {\n option.onClick();\n }\n this.optionClicked.emit(option);\n }\n}\n","import { Component, input, Output, EventEmitter, computed, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Router, RouterModule } from '@angular/router';\nimport { NeuralIconComponent } from '../icon/icon.component';\n\n@Component({\n selector: 'neural-mobile-nav',\n standalone: true,\n imports: [CommonModule],\n template: `\n <nav\n data-slot=\"mobile-nav\"\n class=\"grid shrink-0 auto-cols-fr grid-flow-col border-t border-outline-gray-2 bg-surface-elevation-2 [@media(display-mode:standalone)]:pb-4\"\n >\n <ng-content></ng-content>\n </nav>\n `\n})\nexport class NeuralMobileNavComponent {}\n\n@Component({\n selector: 'neural-mobile-nav-item',\n standalone: true,\n imports: [CommonModule, RouterModule, NeuralIconComponent],\n template: `\n @if (to() && !isCurrent()) {\n <a\n [routerLink]=\"to()\"\n data-slot=\"mobile-nav-item\"\n [attr.data-state]=\"resolvedActive() ? 'active' : 'inactive'\"\n [attr.aria-label]=\"label()\"\n [attr.aria-current]=\"isCurrent() ? 'page' : undefined\"\n class=\"flex min-h-14 flex-col items-center justify-center gap-1 py-2 transition active:scale-95 cursor-pointer\"\n (click)=\"onClick.emit($event)\"\n >\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n } @else {\n <button\n type=\"button\"\n data-slot=\"mobile-nav-item\"\n [attr.data-state]=\"resolvedActive() ? 'active' : 'inactive'\"\n [attr.aria-label]=\"label()\"\n [attr.aria-current]=\"isCurrent() ? 'page' : undefined\"\n class=\"flex min-h-14 flex-col items-center justify-center gap-1 py-2 transition active:scale-95 cursor-pointer outline-none\"\n (click)=\"handleButtonClick($event)\"\n >\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n }\n\n <ng-template #content>\n @if (hasIconSlot()) {\n <ng-content></ng-content>\n } @else if (icon()) {\n <neural-icon\n [name]=\"icon()!\"\n [class]=\"resolvedActive() ? 'text-ink-gray-8' : 'text-ink-gray-5'\"\n class=\"size-6\"\n ></neural-icon>\n }\n <span\n class=\"text-xs font-medium\"\n [class]=\"resolvedActive() ? 'text-ink-gray-8' : 'text-ink-gray-5'\"\n >\n {{ label() }}\n </span>\n </ng-template>\n `\n})\nexport class NeuralMobileNavItemComponent {\n to = input<any>();\n label = input<string>('');\n icon = input<string>();\n active = input<boolean | undefined>(undefined);\n hasIconSlot = input<boolean>(false);\n\n @Output() onClick = new EventEmitter<MouseEvent>();\n\n private router = inject(Router, { optional: true });\n\n isCurrent = computed(() => {\n if (!this.to() || !this.router) return false;\n return this.router.url === this.router.createUrlTree([this.to()]).toString();\n });\n\n resolvedActive = computed(() => {\n return this.active() ?? this.isCurrent();\n });\n\n handleButtonClick(event: MouseEvent) {\n if (this.isCurrent()) {\n // Scroll to top of window or main scroll container\n window.scrollTo({ top: 0, behavior: 'smooth' });\n }\n this.onClick.emit(event);\n }\n}\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'neural-mobile-shell',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div\n data-slot=\"mobile-shell\"\n class=\"fixed inset-0 flex touch-none flex-col overflow-hidden\"\n >\n <div class=\"[@media(display-mode:standalone)]:pt-[env(safe-area-inset-top)]\">\n <ng-content select=\"[header]\"></ng-content>\n </div>\n\n <div\n data-slot=\"mobile-shell-scroll\"\n class=\"flex-1 overflow-y-auto overscroll-auto bg-surface-base [-webkit-overflow-scrolling:touch]\"\n >\n <ng-content></ng-content>\n </div>\n\n <ng-content select=\"[nav]\"></ng-content>\n </div>\n `\n})\nexport class NeuralMobileShellComponent {}\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'neural-page-header',\n standalone: true,\n imports: [CommonModule],\n template: `\n <header\n class=\"z-10 flex min-h-12 flex-col justify-center border-b border-outline-gray-2 bg-surface-base px-3 sm:px-5\"\n >\n <div class=\"flex items-center justify-between\">\n <ng-content></ng-content>\n </div>\n </header>\n `\n})\nexport class NeuralPageHeaderComponent {}\n","import { Component, input, Output, EventEmitter, computed, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Router, RouterModule } from '@angular/router';\nimport { NeuralIconComponent } from '../icon/icon.component';\nimport { NeuralTooltipComponent } from '../tooltip/tooltip.component';\n\n@Component({\n selector: 'neural-rail',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div\n data-slot=\"rail\"\n class=\"flex h-full w-[50px] shrink-0 flex-col items-center bg-surface-sidebar px-[11px] pb-3 pt-2.5\"\n >\n <ng-content></ng-content>\n </div>\n `\n})\nexport class NeuralRailComponent {}\n\n@Component({\n selector: 'neural-rail-item',\n standalone: true,\n imports: [CommonModule, RouterModule, NeuralIconComponent, NeuralTooltipComponent],\n template: `\n <neural-tooltip side=\"right\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n\n <ng-template #tooltipContent>\n <div class=\"leading-relaxed\">\n <div>{{ label() }}</div>\n @if (tooltipDescription()) {\n <div class=\"text-[13px] leading-tight text-ink-gray-5\">\n {{ tooltipDescription() }}\n </div>\n }\n </div>\n </ng-template>\n </neural-tooltip>\n\n <ng-template #content>\n @if (to()) {\n <a\n [routerLink]=\"to()\"\n data-slot=\"rail-item\"\n [attr.data-variant]=\"variant()\"\n [attr.data-state]=\"active() ? 'active' : 'inactive'\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-current]=\"active() ? 'page' : undefined\"\n [class]=\"cellClasses()\"\n (click)=\"onClick.emit($event)\"\n >\n <ng-container *ngTemplateOutlet=\"inner\"></ng-container>\n </a>\n } @else {\n <button\n type=\"button\"\n data-slot=\"rail-item\"\n [attr.data-variant]=\"variant()\"\n [attr.data-state]=\"active() ? 'active' : 'inactive'\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-current]=\"active() ? 'page' : undefined\"\n [class]=\"cellClasses()\"\n (click)=\"onClick.emit($event)\"\n >\n <ng-container *ngTemplateOutlet=\"inner\"></ng-container>\n </button>\n }\n </ng-template>\n\n <ng-template #inner>\n @if (showIndicator()) {\n <span\n data-slot=\"rail-item-indicator\"\n aria-hidden=\"true\"\n class=\"absolute -left-[11px] top-1/2 h-7 w-1 -translate-y-1/2 rounded-r-4 bg-surface-gray-8\"\n ></span>\n }\n @if (hasIconSlot()) {\n <ng-content></ng-content>\n } @else if (icon()) {\n <neural-icon\n [name]=\"icon()!\"\n class=\"size-4\"\n aria-hidden=\"true\"\n ></neural-icon>\n }\n \n @if (badge() > 0) {\n @if (badgeStyle() === 'dot') {\n <span class=\"absolute -right-0.5 -top-0.5 size-2.5 rounded-full border-2 border-surface-sidebar bg-surface-gray-8\"></span>\n } @else {\n <span class=\"absolute -right-1.5 -top-1.5 flex h-4 min-w-4 items-center justify-center rounded-full border border-surface-sidebar bg-surface-gray-8 px-0.5 text-[9px] font-medium text-white shadow-sm ring-1 ring-black/10\">\n {{ badge() > 99 ? '99+' : badge() }}\n </span>\n }\n }\n </ng-template>\n `\n})\nexport class NeuralRailItemComponent {\n to = input<any>();\n label = input<string>('');\n description = input<string>();\n icon = input<string>();\n active = input<boolean>(false);\n variant = input<'tile' | 'ghost'>('tile');\n badge = input<number>(0);\n badgeStyle = input<'count' | 'dot'>('count');\n hasIconSlot = input<boolean>(false);\n\n @Output() onClick = new EventEmitter<MouseEvent>();\n\n showIndicator = computed(() => this.variant() === 'tile' && this.active());\n\n cellClasses = computed(() => {\n let classes = 'relative flex size-7 shrink-0 items-center justify-center text-base transition focus-visible:ring-0 focus-visible:focus-ring ';\n \n classes += this.variant() === 'tile' ? 'rounded-[7px] ' : 'rounded-4 ';\n\n if (this.variant() === 'tile') {\n classes += this.active() ? 'bg-surface-gray-4 ' : 'bg-surface-gray-3 ';\n } else {\n classes += this.active()\n ? 'text-ink-gray-8 !bg-surface-elevation-3 shadow-sm '\n : 'text-ink-gray-8 bg-transparent hover:bg-surface-gray-3 ';\n }\n \n return classes;\n });\n\n ariaLabel = computed(() => \n this.badge() > 0 ? `${this.label()}, ${this.badge()} unread` : this.label()\n );\n\n tooltipDescription = computed(() => {\n if (this.description() !== undefined) return this.description();\n if (this.badgeStyle() === 'dot' && this.badge() > 0) return `${this.badge()} unread`;\n return null;\n });\n}\n","import { Component, input, model, Output, EventEmitter, computed } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NeuralDialogComponent } from '../dialog/dialog.component';\n\n@Component({\n selector: 'neural-settings-dialog',\n standalone: true,\n imports: [CommonModule, NeuralDialogComponent],\n template: `\n <neural-dialog [(openModel)]=\"open\" [size]=\"size()\" [bare]=\"true\">\n <div class=\"flex h-[100dvh] min-h-0 w-screen flex-col overflow-hidden sm:h-[min(860px,calc(100vh-8rem))] sm:min-h-[560px] sm:w-auto sm:flex-row\">\n <h1 class=\"sr-only\">\n @if (hasTitleSlot()) {\n <ng-content select=\"[title]\"></ng-content>\n } @else {\n Settings\n }\n </h1>\n <p class=\"sr-only\">\n @if (hasDescriptionSlot()) {\n <ng-content select=\"[description]\"></ng-content>\n } @else {\n Manage your settings across the tabs in this dialog.\n }\n </p>\n <ng-content></ng-content>\n </div>\n </neural-dialog>\n `\n})\nexport class NeuralSettingsDialogComponent {\n open = model<boolean>(false);\n size = input<'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl'>('4xl');\n\n hasTitleSlot = input<boolean>(false);\n hasDescriptionSlot = input<boolean>(false);\n}\n\n@Component({\n selector: 'neural-settings-sidebar',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div\n class=\"flex max-h-[38vh] w-full shrink-0 flex-col overflow-y-auto border-b border-outline-gray-1 bg-surface-sidebar p-2 sm:max-h-none sm:w-[220px] sm:border-b-0 sm:border-r\"\n >\n <div class=\"space-y-4\">\n <ng-content></ng-content>\n </div>\n </div>\n `\n})\nexport class NeuralSettingsSidebarComponent {}\n\n@Component({\n selector: 'neural-settings-content',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div class=\"flex min-h-0 flex-1 justify-stretch\">\n <ng-content></ng-content>\n </div>\n `\n})\nexport class NeuralSettingsContentComponent {}\n\n@Component({\n selector: 'neural-settings-nav-item',\n standalone: true,\n imports: [CommonModule],\n template: `\n <button\n type=\"button\"\n class=\"flex h-7 w-full items-center gap-2 rounded-4 px-2 text-left text-base text-ink-gray-7 outline-none\"\n [ngClass]=\"active() ? 'bg-surface-elevation-3 shadow-sm' : 'hover:bg-surface-gray-2'\"\n (click)=\"onClick.emit()\"\n >\n @if (hasPrefixSlot()) {\n <ng-content select=\"[prefix]\"></ng-content>\n }\n <span class=\"min-w-0 flex-1 truncate\"><ng-content></ng-content></span>\n @if (hasSuffixSlot()) {\n <ng-content select=\"[suffix]\"></ng-content>\n }\n </button>\n `\n})\nexport class NeuralSettingsNavItemComponent {\n active = input<boolean>(false);\n hasPrefixSlot = input<boolean>(false);\n hasSuffixSlot = input<boolean>(false);\n\n @Output() onClick = new EventEmitter<void>();\n}\n\n@Component({\n selector: 'neural-settings-panel',\n standalone: true,\n imports: [CommonModule],\n template: `\n @if (active()) {\n <div class=\"flex w-full flex-col overflow-y-auto bg-surface-base outline-none\">\n <ng-content></ng-content>\n </div>\n }\n `\n})\nexport class NeuralSettingsPanelComponent {\n active = input<boolean>(false);\n}\n","import { Component, input, Output, EventEmitter, computed, signal, effect } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport type ColorScheme = 'light' | 'dark' | 'system';\n\n@Component({\n selector: 'neural-theme-switcher',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div class=\"flex flex-col gap-4\">\n @if (showLabel() || showDescription()) {\n <div class=\"flex flex-col gap-1\">\n @if (showLabel()) {\n <span class=\"text-base font-medium text-ink-gray-8\">\n @if (hasLabelSlot()) {\n <ng-content select=\"[label]\"></ng-content>\n } @else {\n {{ label() }}\n }\n </span>\n }\n @if (showDescription()) {\n <span class=\"text-xs text-ink-gray-6\">\n @if (hasDescriptionSlot()) {\n <ng-content select=\"[description]\"></ng-content>\n } @else {\n {{ description() }}\n }\n </span>\n }\n </div>\n }\n\n <div class=\"flex items-center gap-3\">\n @for (option of options; track option.value) {\n <button\n type=\"button\"\n class=\"flex-1 max-w-[227px] min-h-[42px] cursor-pointer overflow-hidden rounded-6 border outline-none transition-colors focus-visible:ring-2 focus-visible:ring-outline-gray-3 flex flex-col justify-end\"\n [ngClass]=\"selectedTheme() === option.value ? 'border-outline-gray-5' : 'border-outline-gray-2'\"\n (click)=\"selectTheme(option.value)\"\n >\n <!-- Minimal Preview -->\n <div class=\"h-12 w-full bg-surface-gray-2\" [class.bg-surface-gray-8]=\"option.value === 'dark'\"></div>\n\n <div class=\"flex items-center justify-between border-t px-3 py-2 relative z-10 overflow-hidden w-full bg-surface-base\">\n <div class=\"text-base text-ink-gray-7\">\n {{ option.label }}\n </div>\n <div\n class=\"size-3.5 rounded-full\"\n [ngClass]=\"selectedTheme() === option.value ? 'border-4 border-outline-gray-5' : 'border border-outline-gray-4'\"\n ></div>\n </div>\n </button>\n }\n </div>\n </div>\n `\n})\nexport class NeuralThemeSwitcherComponent {\n theme = input<ColorScheme>('system');\n label = input<string>('Theme');\n description = input<string>('Switch between light, dark, or system theme');\n hasLabelSlot = input<boolean>(false);\n hasDescriptionSlot = input<boolean>(false);\n\n @Output() themeChange = new EventEmitter<ColorScheme>();\n\n selectedTheme = signal<ColorScheme>('system');\n\n options: { value: ColorScheme, label: string }[] = [\n { value: 'light', label: 'Light' },\n { value: 'dark', label: 'Dark' },\n { value: 'system', label: 'System' }\n ];\n\n showLabel = computed(() => Boolean(this.label() || this.hasLabelSlot()));\n showDescription = computed(() => Boolean(this.description() || this.hasDescriptionSlot()));\n\n constructor() {\n effect(() => {\n this.selectedTheme.set(this.theme());\n });\n }\n\n selectTheme(value: ColorScheme) {\n this.selectedTheme.set(value);\n this.themeChange.emit(value);\n \n if (typeof document !== 'undefined') {\n if (value === 'dark') {\n document.documentElement.classList.add('dark');\n } else if (value === 'light') {\n document.documentElement.classList.remove('dark');\n } else {\n if (window.matchMedia('(prefers-color-scheme: dark)').matches) {\n document.documentElement.classList.add('dark');\n } else {\n document.documentElement.classList.remove('dark');\n }\n }\n }\n }\n}\n","import { Component, input, model, computed, ElementRef, inject, ViewChild, ViewContainerRef, TemplateRef, effect } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Overlay, OverlayRef, OverlayConfig } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { NeuralTextInputComponent } from '../text-input/text-input.component';\n\nexport interface TimeOption {\n value: string;\n label: string;\n}\n\n@Component({\n selector: 'neural-time-picker',\n standalone: true,\n imports: [CommonModule, NeuralTextInputComponent],\n template: `\n <div\n class=\"relative\"\n (click)=\"onClickInput()\"\n >\n <neural-text-input\n #inputRef\n [valueModel]=\"displayValue()\"\n (valueModelChange)=\"onInputValueChange($event)\"\n [type]=\"'text'\"\n class=\"w-full cursor-text text-sm\"\n [id]=\"id()\"\n [label]=\"label()\"\n [description]=\"description()\"\n [error]=\"error()\"\n [required]=\"required()\"\n [variant]=\"variant()\"\n [size]=\"size()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [readonly]=\"!typeable()\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur($event)\"\n (keydown.enter)=\"$event.preventDefault(); onEnter()\"\n (keydown.arrowDown)=\"$event.preventDefault(); onArrowDown()\"\n (keydown.arrowUp)=\"$event.preventDefault(); onArrowUp()\"\n (keydown.escape)=\"onEscape($event)\"\n >\n <ng-template #suffix>\n <span\n class=\"lucide-chevron-down size-4 cursor-pointer\"\n aria-hidden=\"true\"\n (mousedown)=\"$event.preventDefault(); togglePopover()\"\n ></span>\n </ng-template>\n </neural-text-input>\n </div>\n\n <ng-template #popoverContent>\n <div\n data-slot=\"content-body\"\n class=\"time-picker-panel max-h-48 w-44 overflow-y-auto rounded-6 bg-surface-elevation-2 p-1 text-base shadow-2xl ring-1 ring-black/5 focus:outline-none z-[100]\"\n role=\"listbox\"\n >\n @for (opt of displayedOptions(); track opt.value; let idx = $index) {\n <button\n type=\"button\"\n role=\"option\"\n class=\"group flex h-7 w-full items-center rounded-4 px-2 text-left tabular-nums outline-none transition-colors\"\n [ngClass]=\"rowClass(opt, idx)\"\n [attr.aria-selected]=\"canonicalValue() === opt.value ? 'true' : undefined\"\n (click)=\"selectOption(opt.value)\"\n (mouseenter)=\"highlightIndex.set(idx)\"\n >\n <span class=\"truncate\">{{ opt.label }}</span>\n </button>\n }\n </div>\n </ng-template>\n `\n})\nexport class NeuralTimePickerComponent {\n modelValue = model<string>('');\n id = input<string>();\n label = input<string>();\n description = input<string>();\n error = input<string>();\n required = input<boolean>(false);\n variant = input<'outline' | 'subtle' | 'ghost'>('subtle');\n size = input<'sm' | 'md' | 'lg'>('sm');\n placeholder = input<string>('Select time');\n disabled = input<boolean>(false);\n typeable = input<boolean>(true);\n interval = input<number>(15);\n\n isOpen = model<boolean>(false);\n\n private overlay = inject(Overlay);\n private viewContainerRef = inject(ViewContainerRef);\n private elementRef = inject(ElementRef);\n private overlayRef: OverlayRef | null = null;\n\n @ViewChild('popoverContent') popoverContent!: TemplateRef<any>;\n\n canonicalValue = signal<string>('');\n displayValue = signal<string>('');\n highlightIndex = signal<number>(-1);\n\n constructor() {\n effect(() => {\n const val = this.modelValue() || '';\n this.canonicalValue.set(val);\n this.displayValue.set(val);\n }, { allowSignalWrites: true });\n\n effect(() => {\n if (this.isOpen()) {\n this.openPopover();\n } else {\n this.closePopover();\n }\n });\n }\n\n // Very simplified options generator\n displayedOptions = computed<TimeOption[]>(() => {\n const opts: TimeOption[] = [];\n for (let h = 0; h < 24; h++) {\n for (let m = 0; m < 60; m += this.interval()) {\n const hh = h.toString().padStart(2, '0');\n const mm = m.toString().padStart(2, '0');\n const val = `${hh}:${mm}`;\n opts.push({ value: val, label: val });\n }\n }\n return opts;\n });\n\n rowClass(opt: TimeOption, idx: number): string {\n if (idx === this.highlightIndex()) return 'bg-surface-gray-3 text-ink-gray-8';\n if (this.canonicalValue() && opt.value === this.canonicalValue()) return 'bg-surface-gray-3 text-ink-gray-8';\n return 'text-ink-gray-6 hover:bg-surface-gray-2 hover:text-ink-gray-8';\n }\n\n onInputValueChange(val: string) {\n this.displayValue.set(val);\n this.canonicalValue.set(val);\n this.modelValue.set(val);\n }\n\n onClickInput() {\n if (!this.isOpen()) this.isOpen.set(true);\n }\n\n onFocus() {\n // Optionally open on focus\n }\n\n onBlur(event: FocusEvent) {\n // close if clicked outside\n }\n\n onEnter() {\n if (this.isOpen() && this.highlightIndex() > -1) {\n this.selectOption(this.displayedOptions()[this.highlightIndex()].value);\n }\n }\n\n onArrowDown() {\n if (!this.isOpen()) {\n this.isOpen.set(true);\n return;\n }\n this.highlightIndex.update(v => (v + 1) % this.displayedOptions().length);\n }\n\n onArrowUp() {\n if (!this.isOpen()) {\n this.isOpen.set(true);\n return;\n }\n this.highlightIndex.update(v => v <= 0 ? this.displayedOptions().length - 1 : v - 1);\n }\n\n onEscape(event: Event) {\n if (this.isOpen()) {\n event.preventDefault();\n this.isOpen.set(false);\n }\n }\n\n togglePopover() {\n this.isOpen.update(v => !v);\n }\n\n selectOption(val: string) {\n this.canonicalValue.set(val);\n this.displayValue.set(val);\n this.modelValue.set(val);\n this.isOpen.set(false);\n }\n\n private openPopover() {\n if (this.overlayRef) return;\n const positionStrategy = this.overlay.position()\n .flexibleConnectedTo(this.elementRef)\n .withPositions([\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 }\n ]);\n \n this.overlayRef = this.overlay.create(new OverlayConfig({\n positionStrategy,\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n scrollStrategy: this.overlay.scrollStrategies.reposition()\n }));\n\n this.overlayRef.backdropClick().subscribe(() => {\n this.isOpen.set(false);\n });\n\n const portal = new TemplatePortal(this.popoverContent, this.viewContainerRef);\n this.overlayRef.attach(portal);\n }\n\n private closePopover() {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n}\nimport { signal } from '@angular/core';\n","import { Component, input, Output, EventEmitter, computed, signal, effect, TemplateRef, ContentChild } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport interface TreeNode {\n label: string;\n expanded?: boolean;\n children?: TreeNode[];\n [key: string]: any;\n}\n\n@Component({\n selector: 'neural-tree-item',\n standalone: true,\n imports: [CommonModule],\n template: `\n <li role=\"treeitem\" [attr.aria-expanded]=\"hasChildren() ? (isExpanded() ? 'true' : 'false') : undefined\" class=\"relative\">\n <div\n class=\"group flex items-center rounded-4 px-2 py-1 cursor-pointer transition-colors hover:bg-surface-gray-2 text-sm text-ink-gray-7\"\n [ngClass]=\"{'bg-surface-gray-3 text-ink-gray-8 font-medium': selected()}\"\n (click)=\"onClick()\"\n [style.paddingLeft.px]=\"(level() - 1) * 24 + 8\"\n >\n @if (hasChildren()) {\n <span\n class=\"lucide-chevron-right size-4 mr-1 transition-transform\"\n [ngClass]=\"{'rotate-90': isExpanded()}\"\n ></span>\n } @else {\n <span class=\"size-4 mr-1\"></span>\n }\n <span class=\"truncate\">{{ node().label }}</span>\n </div>\n\n @if (hasChildren() && isExpanded()) {\n <ul role=\"group\" class=\"relative\">\n @for (child of node().children; track child[nodeKey()]) {\n <neural-tree-item\n [node]=\"child\"\n [level]=\"level() + 1\"\n [nodeKey]=\"nodeKey()\"\n (onNodeClick)=\"onNodeClick.emit($event)\"\n ></neural-tree-item>\n }\n </ul>\n }\n </li>\n `\n})\nexport class NeuralTreeItemComponent {\n node = input.required<TreeNode>();\n level = input<number>(1);\n nodeKey = input<string>('key');\n \n @Output() onNodeClick = new EventEmitter<TreeNode>();\n\n isExpanded = computed(() => this.node().expanded !== false);\n hasChildren = computed(() => this.node().children && this.node().children!.length > 0);\n \n // Note: simplified selection state handling for placeholder\n selected = signal<boolean>(false);\n\n onClick() {\n if (this.hasChildren()) {\n this.node().expanded = !this.isExpanded();\n }\n this.onNodeClick.emit(this.node());\n }\n}\n\n@Component({\n selector: 'neural-tree',\n standalone: true,\n imports: [CommonModule, NeuralTreeItemComponent],\n template: `\n <ul role=\"tree\" class=\"select-none list-none m-0 p-0\">\n @for (node of nodes(); track node[nodeKey()]) {\n <neural-tree-item\n [node]=\"node\"\n [level]=\"1\"\n [nodeKey]=\"nodeKey()\"\n (onNodeClick)=\"nodeClick.emit($event)\"\n ></neural-tree-item>\n }\n @if (!nodes() || nodes().length === 0) {\n <li role=\"none\" class=\"px-2 py-1 text-sm text-ink-gray-5 italic\">\n <ng-content select=\"[empty]\"></ng-content>\n </li>\n }\n </ul>\n `\n})\nexport class NeuralTreeComponent {\n nodes = input<TreeNode[]>([]);\n nodeKey = input<string>('key');\n\n @Output() nodeClick = new EventEmitter<TreeNode>();\n}\n","import { Component, input, model, computed, TemplateRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport interface AccordionItem {\n title?: string;\n value: string;\n content?: string;\n icon?: string;\n disabled?: boolean;\n}\n\n@Component({\n selector: 'neural-accordion',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div\n class=\"w-full divide-y divide-outline-gray-1\"\n data-slot=\"root\"\n >\n @for (item of items(); track item.value; let i = $index) {\n <div class=\"accordion-item\" [attr.data-state]=\"isOpen(item.value) ? 'open' : 'closed'\">\n <h3 class=\"m-0 flex\">\n <button\n type=\"button\"\n class=\"group flex flex-1 select-none items-center gap-2 rounded-4 px-2 py-3 text-left text-base font-medium text-ink-gray-8 outline-none transition-colors duration-150 hover:text-ink-gray-9 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-outline-gray-3 disabled:cursor-not-allowed disabled:text-ink-gray-4 disabled:hover:text-ink-gray-4\"\n [disabled]=\"item.disabled || disabled()\"\n (click)=\"toggle(item.value)\"\n [attr.aria-expanded]=\"isOpen(item.value)\"\n >\n <span class=\"flex min-w-0 flex-1 items-center gap-2\">\n @if (item.icon) {\n <span class=\"size-4 shrink-0 text-ink-gray-6\" [class]=\"item.icon\" aria-hidden=\"true\"></span>\n }\n <span class=\"truncate\">\n @if (itemLabelTemplate()) {\n <ng-container *ngTemplateOutlet=\"itemLabelTemplate()!; context: { $implicit: item, index: i }\"></ng-container>\n } @else {\n {{ item.title }}\n }\n </span>\n </span>\n \n @if (itemSuffixTemplate()) {\n <ng-container *ngTemplateOutlet=\"itemSuffixTemplate()!; context: { $implicit: item, index: i }\"></ng-container>\n }\n\n <span\n class=\"lucide-chevron-down size-4 shrink-0 text-ink-gray-5 transition-[transform,color] duration-200 ease-[cubic-bezier(0.23,1,0.32,1)] group-hover:text-ink-gray-8 group-aria-expanded:rotate-180 group-disabled:text-ink-gray-4 motion-reduce:transition-none\"\n aria-hidden=\"true\"\n ></span>\n </button>\n </h3>\n <div \n class=\"grid transition-[grid-template-rows] duration-200 ease-[cubic-bezier(0.23,1,0.32,1)]\"\n [class]=\"isOpen(item.value) ? 'grid-rows-[1fr]' : 'grid-rows-[0fr]'\"\n >\n <div class=\"overflow-hidden\">\n <div class=\"px-2 pb-3 text-p-base text-ink-gray-6\">\n @if (itemContentTemplate()) {\n <ng-container *ngTemplateOutlet=\"itemContentTemplate()!; context: { $implicit: item, index: i }\"></ng-container>\n } @else {\n {{ item.content }}\n }\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n `\n})\nexport class NeuralAccordionComponent {\n items = input<AccordionItem[]>([]);\n type = input<'single' | 'multiple'>('single');\n collapsible = input<boolean>(true);\n disabled = input<boolean>(false);\n headingTag = input<string>('h3');\n \n itemLabelTemplate = input<TemplateRef<any>>();\n itemSuffixTemplate = input<TemplateRef<any>>();\n itemContentTemplate = input<TemplateRef<any>>();\n \n valueModel = model<string | string[]>();\n\n isOpen(val: string): boolean {\n const current = this.valueModel();\n if (Array.isArray(current)) {\n return current.includes(val);\n }\n return current === val;\n }\n\n toggle(val: string) {\n if (this.disabled()) return;\n const current = this.valueModel();\n \n if (this.type() === 'single') {\n if (current === val) {\n if (this.collapsible()) {\n this.valueModel.set(undefined);\n }\n } else {\n this.valueModel.set(val);\n }\n } else {\n let arr = Array.isArray(current) ? [...current] : (current ? [current as string] : []);\n if (arr.includes(val)) {\n arr = arr.filter(i => i !== val);\n } else {\n arr.push(val);\n }\n this.valueModel.set(arr);\n }\n }\n}\n","import { Component, input, effect, ElementRef, ViewChild, OnDestroy, AfterViewInit, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EChartsOption, init, type ECharts } from 'echarts';\n\n@Component({\n selector: 'neural-echarts',\n standalone: true,\n imports: [CommonModule],\n template: `\n @if (!error()) {\n <div #chartDiv dir=\"ltr\" [class]=\"chartClass()\"></div>\n } @else {\n <div class=\"flex h-full w-full items-center justify-center text-center text-ink-red-5\">\n Error: {{ error() }}\n </div>\n }\n `\n})\nexport class NeuralEChartsComponent implements AfterViewInit, OnDestroy {\n options = input.required<EChartsOption>();\n error = input<string>();\n customClass = input<string>('', { alias: 'class' });\n\n @Output() chartClick = new EventEmitter<any>();\n\n @ViewChild('chartDiv') chartDiv!: ElementRef<HTMLDivElement>;\n\n private chart?: ECharts;\n private resizeObserver?: ResizeObserver;\n private resizeTimeout?: any;\n\n chartClass() {\n const defaults = 'h-full w-full min-w-[300px] md:min-w-[400px] min-h-[300px] px-4 py-2';\n return this.customClass() || defaults;\n }\n\n constructor() {\n effect(() => {\n const opts = this.options();\n if (this.chart) {\n this.chart.setOption(opts, true);\n }\n });\n }\n\n ngAfterViewInit() {\n if (!this.chartDiv?.nativeElement) return;\n\n this.chart = init(this.chartDiv.nativeElement, 'light', { renderer: 'svg' });\n this.chart.setOption(this.options(), true);\n\n this.chart.on('click', (params) => {\n this.chartClick.emit(params);\n });\n\n const resizeHandler = () => {\n if (this.resizeTimeout) clearTimeout(this.resizeTimeout);\n this.resizeTimeout = setTimeout(() => {\n this.chart?.resize({\n animation: {\n duration: 300\n }\n });\n }, 250);\n };\n\n this.resizeObserver = new ResizeObserver(resizeHandler);\n setTimeout(() => this.resizeObserver?.observe(this.chartDiv.nativeElement), 500);\n }\n\n ngOnDestroy() {\n if (this.resizeObserver && this.chartDiv?.nativeElement) {\n this.resizeObserver.unobserve(this.chartDiv.nativeElement);\n this.resizeObserver.disconnect();\n }\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n this.chart?.dispose();\n }\n}\n","import dayjs from 'dayjs';\n\nexport function formatLabel(name: string) {\n return name\n .split('_')\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ')\n}\n\nexport function formatValue(value: number, precision = 0, shorten = false) {\n if (isNaN(value)) return value.toString()\n\n let locale = 'en-US'\n\n if (shorten) {\n let formatted = new Intl.NumberFormat(locale, {\n notation: 'compact',\n maximumFractionDigits: precision,\n }).format(value)\n\n if (locale == 'en-IN') {\n formatted = formatted.replace('T', 'K')\n }\n\n return formatted\n } else {\n precision = precision || guessPrecision(value)\n return new Intl.NumberFormat(locale, {\n minimumFractionDigits: precision,\n maximumFractionDigits: precision,\n }).format(value)\n }\n}\n\nfunction guessPrecision(number: number) {\n if (!number || isNaN(number)) return 0\n const str = number.toString()\n const decimalIndex = str.indexOf('.')\n if (decimalIndex === -1) return 0\n return Math.min(str.length - decimalIndex - 1, 2)\n}\n\nexport type TimeGrain =\n | 'second'\n | 'minute'\n | 'hour'\n | 'day'\n | 'week'\n | 'month'\n | 'quarter'\n | 'year'\nexport function formatDate(date: string, format?: string, grain: TimeGrain = 'day') {\n if (!date) return ''\n\n if (grain) {\n const grainToFormat: Record<TimeGrain, string> = {\n second: 'MMMM D, YYYY h:mm:ss A',\n minute: 'MMMM D, YYYY h:mm A',\n hour: 'MMMM D, YYYY h:00 A',\n day: 'MMMM D, YYYY',\n week: 'MMM Do, YYYY',\n month: 'MMMM, YYYY',\n year: 'YYYY',\n quarter: '[Q]Q, YYYY',\n }\n\n format = grainToFormat[grain]\n }\n\n if (!format) {\n format = 'MMM D, YY'\n }\n\n return dayjs(date).format(format)\n}\n\n\nexport function isObject(item: any) {\n return item && typeof item === 'object' && !Array.isArray(item)\n}\n\nexport function mergeDeep(target: any, ...sources: any[]) {\n if (!sources.length) return target;\n const source = sources.shift();\n\n if (!source || !isObject(target) || !isObject(source)) {\n // Skip the current source if it's not a proper object\n return mergeDeep(target, ...sources);\n }\n\n let output = Object.assign({}, target);\n\n Object.keys(source).forEach((key) => {\n if (isObject(source[key])) {\n if (!(key in output)) {\n output[key] = source[key];\n } else {\n output[key] = mergeDeep(output[key], source[key]);\n }\n } else {\n output[key] = source[key];\n }\n });\n\n return mergeDeep(output, ...sources);\n}\n","import type { EChartsOption } from 'echarts'\nimport { formatDate, formatLabel, formatValue, mergeDeep } from './helpers'\nimport { AxisChartConfig } from './types'\n\nexport const PADDING_TOP = 0\nexport const PADDING_BOTTOM = 10\nexport const AXIS_TITLE_HEIGHT = 20\nexport const LEGEND_HEIGHT = 30\nexport const LEGEND_BOTTOM = 10\nexport const TITLE_HEIGHT = 20\nexport const SUBTITLE_HEIGHT = 18\nexport const TITLE_BOTTOM = 24\n\nexport default function useEchartsOptions(config: AxisChartConfig) {\n const isRTL = config.dir === 'rtl'\n const title = config.title\n const subtitle = config.subtitle\n const hasTitle = title ? 1 : 0\n const hasSubtitle = subtitle ? 1 : 0\n const hasXAxisTitle = config.xAxis.title ? 1 : 0\n const hasYAxisTitle = config.yAxis.title ? 1 : 0\n const hasY2AxisTitle = config.y2Axis?.title ? 1 : 0\n const hasLegend = config.series.length > 1 ? 1 : 0\n\n const xAxisOptions = getXAxisOptions(config)\n const yAxisOptions = getYAxisOptions(config)\n\n return {\n animation: true,\n animationDuration: 700,\n textStyle: { fontFamily: 'InterVar, sans-serif' },\n title: getTitleOptions(title, subtitle, isRTL),\n color: config.colors,\n grid: {\n left: isRTL ? (config.swapXY ? '2.5%' : '1.5%') : '1%',\n right: isRTL ? '1%' : config.swapXY ? '2.5%' : '1.5%',\n top:\n PADDING_TOP +\n TITLE_HEIGHT * hasTitle +\n SUBTITLE_HEIGHT * hasSubtitle +\n TITLE_BOTTOM,\n bottom: PADDING_BOTTOM + LEGEND_HEIGHT * hasLegend,\n containLabel: true,\n },\n xAxis: xAxisOptions,\n yAxis: yAxisOptions,\n // Callers overwrite this with their own series list; a bare `[]` infers\n // `never[]` and rejects every assignment.\n series: [] as EChartsOption['series'],\n tooltip: {\n show: true,\n trigger: 'axis',\n formatter: (params: Object | Array<Object>) => {\n const dirAttr = isRTL ? ' dir=\"rtl\"' : ''\n\n if (Array.isArray(params)) {\n params = params\n // remove zero values\n .filter((p) => p.value?.[1] !== 0)\n // sort in descending order by value\n .sort((a, b) => b.value?.[1] - a.value?.[1])\n }\n\n if (!Array.isArray(params)) {\n const p = params as any\n const value = config.swapXY ? p.value[0] : p.value[1]\n const formatted = isNaN(value) ? value : formatValue(value)\n return `\n <div${dirAttr} class=\"flex items-center justify-between gap-5\">\n <div>${p.name}</div>\n <div class=\"font-bold\">${formatted}</div>\n </div>\n `\n }\n\n if (Array.isArray(params)) {\n const t = params.map((p, idx) => {\n const xValue = config.swapXY ? p.value[1] : p.value[0]\n const yValue = config.swapXY ? p.value[0] : p.value[1]\n const formattedX =\n config.xAxis.type == 'time'\n ? formatDate(xValue, undefined, config.xAxis.timeGrain)\n : xValue\n const formattedY = isNaN(yValue) ? yValue : formatValue(yValue)\n return `\n <div${dirAttr} class=\"flex flex-col\">\n ${idx == 0 ? `<div>${formattedX}</div>` : ''}\n <div class=\"flex items-center justify-between gap-5\">\n <div class=\"flex gap-1 items-center\">\n ${p.marker}\n <div>${formatLabel(p.seriesName)}:</div>\n </div>\n <div class=\"font-bold\">${formattedY}</div>\n </div>\n </div>\n `\n })\n return t.join('')\n }\n return '';\n },\n confine: true,\n appendToBody: false,\n axisPointer: {\n type: 'shadow',\n },\n },\n legend: {\n show: hasLegend,\n type: 'scroll',\n bottom: LEGEND_BOTTOM,\n orient: 'horizontal',\n itemGap: 12,\n padding: [0, 25],\n formatter: function (name: string) {\n return formatLabel(name)\n },\n textStyle: {\n padding: [0, 0, 0, -5],\n color: 'var(--ink-gray-8)',\n },\n icon: 'circle',\n pageIcons: {\n horizontal: [\n 'M 17 3 h 2 c 0.386 0 0.738 0.223 0.904 0.572 s 0.115 0.762 -0.13 1.062 L 11.292 15 l 8.482 10.367 c 0.245 0.299 0.295 0.712 0.13 1.062 S 19.386 27 19 27 h -2 c -0.3 0 -0.584 -0.135 -0.774 -0.367 l -9 -11 c -0.301 -0.369 -0.301 -0.898 0 -1.267 l 9 -11 C 16.416 3.135 16.7 3 17 3 Z',\n 'M 12 27 h -2 c -0.386 0 -0.738 -0.223 -0.904 -0.572 s -0.115 -0.762 0.13 -1.062 L 17.708 15 L 9.226 4.633 c -0.245 -0.299 -0.295 -0.712 -0.13 -1.062 S 9.614 3 10 3 h 2 c 0.3 0 0.584 0.135 0.774 0.367 l 9 11 c 0.301 0.369 0.301 0.898 0 1.267 l -9 11 C 12.584 26.865 12.3 27 12 27 Z',\n ],\n },\n pageIconColor: 'var(--ink-gray-6)',\n pageInactiveColor: 'var(--ink-gray-4)',\n pageIconSize: 10,\n pageTextStyle: {\n color: 'var(--ink-gray-6)',\n },\n animationDurationUpdate: 300,\n },\n }\n}\n\nexport function getTitleOptions(\n title: string,\n subtitle?: string,\n isRTL?: boolean,\n) {\n return {\n top: '4px',\n left: isRTL ? 'right' : '0.8%',\n padding: isRTL ? [0, 10, 0, 0] : 0,\n text: title,\n subtext: subtitle,\n itemGap: -3,\n textStyle: {\n fontSize: 14,\n fontWeight: 500,\n lineHeight: 24,\n color: 'var(--ink-gray-8)',\n },\n subtextStyle: {\n fontSize: 13,\n fontWeight: 400,\n lineHeight: 20,\n color: 'var(--ink-gray-6)',\n },\n }\n}\n\nfunction getXAxisOptions(config: AxisChartConfig) {\n const isRTL = config.dir === 'rtl'\n\n const options = config.swapXY\n ? {\n show: true,\n type: 'value',\n z: 2,\n scale: false,\n boundaryGap: false,\n inverse: isRTL,\n position: 'top',\n name: config.yAxis.title\n ? isRTL\n ? `← ${config.yAxis.title}`\n : `${config.yAxis.title} →`\n : undefined,\n nameGap: 6,\n nameLocation: 'end',\n nameTextStyle: {\n align: isRTL ? 'left' : 'right',\n verticalAlign: 'bottom',\n padding: [0, 0, 26, 0],\n backgroundColor: 'var(--surface-base)',\n borderColor: 'var(--surface-base)',\n color: 'var(--ink-gray-8)',\n borderWidth: 4,\n },\n splitLine: {\n show: true,\n width: 1,\n lineStyle: {\n color: 'var(--ink-gray-3)',\n },\n },\n axisLine: {\n show: false,\n onZero: false,\n },\n axisTick: {\n show: false,\n alignWithLabel: true,\n formatter: function (value: number) {\n return formatValue(value, 1, true)\n },\n },\n axisLabel: {\n show: true,\n hideOverlap: true,\n margin: 8,\n formatter: function (value: number) {\n return formatValue(value, 1, true)\n },\n },\n }\n : {\n z: 2,\n type: config.xAxis.type,\n scale: true,\n inverse: isRTL,\n splitLine: {\n show: false,\n },\n axisLine: {\n show: true,\n },\n axisTick: {\n show: false,\n alignWithLabel: true,\n },\n axisLabel: {\n show: true,\n hideOverlap: true,\n showMaxLabel:\n config.xAxis.type === 'category' || config.xAxis.type === 'value',\n margin: 8,\n },\n }\n\n return mergeDeep(\n options,\n config.swapXY ? config.yAxis.echartOptions : config.xAxis.echartOptions,\n )\n}\n\nfunction getYAxisOptions(config: AxisChartConfig) {\n const isRTL = config.dir === 'rtl'\n\n let primaryYAxisOptions = config.swapXY\n ? {\n show: true,\n type: config.xAxis.type,\n z: 2,\n scale: true,\n inverse: 'true',\n position: isRTL ? 'right' : 'left',\n splitLine: {\n show: false,\n },\n axisLine: {\n show: true,\n },\n axisTick: {\n show: false,\n alignWithLabel: true,\n },\n axisLabel: {\n show: true,\n hideOverlap: true,\n margin: 6,\n },\n }\n : {\n show: true,\n type: 'value',\n z: 2,\n scale: false,\n position: isRTL ? 'right' : 'left',\n boundaryGap: ['0%', '1%'],\n name: config.yAxis.title ? `↑ ${config.yAxis.title}` : undefined,\n nameGap: 6,\n nameLocation: 'end',\n nameTextStyle: {\n align: isRTL ? 'right' : 'left',\n verticalAlign: 'top',\n padding: isRTL ? [0, -2, 0, 0] : [0, 0, 0, -2],\n backgroundColor: 'var(--surface-base)',\n borderColor: 'var(--surface-base)',\n color: 'var(--ink-gray-8)',\n borderWidth: 4,\n },\n splitLine: {\n show: true,\n width: 1,\n lineStyle: {\n color: 'var(--ink-gray-3)',\n },\n },\n axisLine: {\n show: false,\n onZero: false,\n },\n axisTick: {\n show: false,\n alignWithLabel: true,\n },\n axisLabel: {\n show: true,\n hideOverlap: true,\n margin: 8,\n formatter: function (value: number) {\n return formatValue(value, 1, true)\n },\n },\n min: config.yAxis.yMin,\n max: config.yAxis.yMax,\n }\n\n primaryYAxisOptions = mergeDeep(\n primaryYAxisOptions,\n config.swapXY ? config.xAxis.echartOptions : config.yAxis.echartOptions,\n )\n\n let secondaryYAxisOptions = {\n show: false,\n type: 'value',\n z: 2,\n alignTicks: true,\n scale: false,\n position: isRTL ? 'left' : 'right',\n boundaryGap: ['0%', '1%'],\n name: config.y2Axis?.title\n ? isRTL\n ? `↑ ${config.y2Axis.title}`\n : `${config.y2Axis.title} ↑`\n : undefined,\n nameLocation: 'end',\n nameTextStyle: {\n align: isRTL ? 'left' : 'right',\n verticalAlign: 'top',\n padding: isRTL ? [0, 0, 0, 5] : [0, 5, 0, 0],\n backgroundColor: 'var(--surface-base)',\n borderColor: 'var(--surface-base)',\n color: 'var(--ink-gray-8)',\n },\n nameGap: 6,\n splitLine: {\n show: true,\n width: 1,\n lineStyle: {\n color: 'var(--ink-gray-3)',\n },\n },\n axisLine: {\n show: false,\n onZero: false,\n },\n axisTick: {\n show: false,\n alignWithLabel: true,\n },\n axisLabel: {\n show: true,\n hideOverlap: true,\n margin: 8,\n formatter: function (value: number) {\n return formatValue(value, 1, true)\n },\n },\n min: config.y2Axis?.yMin,\n max: config.y2Axis?.yMax,\n }\n\n secondaryYAxisOptions = mergeDeep(\n secondaryYAxisOptions,\n config.swapXY ? config.y2Axis?.echartOptions : config.y2Axis?.echartOptions,\n )\n\n return config.swapXY\n ? [primaryYAxisOptions]\n : [primaryYAxisOptions, secondaryYAxisOptions]\n}\n","import { getTitleOptions } from './eChartOptions'\nimport { formatValue } from './helpers'\nimport { DonutChartConfig } from './types'\n\nexport default function useDonutChartOptions(config: DonutChartConfig) {\n const isRTL = config.dir === 'rtl'\n let data = config.data || []\n\n data = data.sort((a, b) => {\n const aValue = a[config.valueColumn]\n const bValue = b[config.valueColumn]\n if (aValue === bValue) {\n return 0\n }\n return aValue > bValue ? -1 : 1\n })\n\n const labels = data.map((row) => row[config.categoryColumn])\n const values = data.map((row) => row[config.valueColumn])\n const total = values.reduce((acc, value) => {\n return isNaN(value) ? acc : acc + value\n }, 0)\n\n let radius = ['40%', '70%']\n let center = ['50%', '48%']\n\n if (config.subtitle) {\n radius = ['40%', '70%']\n center = ['50%', '50%']\n }\n\n if (config.showInlineLabels) {\n center = ['50%', '50%']\n }\n\n // legend position\n let orient = 'horizontal'\n let bottom = 0\n let left = 'center'\n // let padding = [30, 30, 10, 30]\n let padding = [0, 10, 10, 10]\n\n return {\n animation: true,\n animationDuration: 700,\n color: config.colors,\n textStyle: { fontFamily: 'InterVar, sans-serif' },\n title: getTitleOptions(config.title, config.subtitle, isRTL),\n dataset: {\n source: [\n [config.categoryColumn, config.valueColumn],\n ...data.map((r) => [r[config.categoryColumn], r[config.valueColumn]]),\n ],\n },\n series: [\n {\n type: 'pie',\n name: config.categoryColumn,\n center,\n radius,\n labelLine: {\n show: config.showInlineLabels,\n lineStyle: {\n width: 2,\n },\n length: 10,\n length2: 20,\n smooth: true,\n },\n label: {\n show: config.showInlineLabels,\n formatter: ({ value, name }: any) => {\n const percentage = total > 0 ? (value[1] / total) * 100 : 0\n return `${name} (${percentage.toFixed(0)}%)`\n },\n },\n emphasis: { scaleSize: 5 },\n },\n ],\n legend: !config.showInlineLabels\n ? {\n // top,\n left: left,\n bottom: bottom,\n padding: padding,\n orient: orient,\n show: true,\n type: 'scroll',\n itemGap: 12,\n formatter: function (name: string) {\n const labelIndex = labels.indexOf(name)\n const percentage =\n total > 0 ? (values[labelIndex] / total) * 100 : 0\n return `${name} (${percentage.toFixed(0)}%)`\n },\n textStyle: {\n padding: [0, 0, 0, -5],\n color: 'var(--ink-gray-8)',\n },\n icon: 'circle',\n pageIcons: {\n horizontal: [\n 'M 17 3 h 2 c 0.386 0 0.738 0.223 0.904 0.572 s 0.115 0.762 -0.13 1.062 L 11.292 15 l 8.482 10.367 c 0.245 0.299 0.295 0.712 0.13 1.062 S 19.386 27 19 27 h -2 c -0.3 0 -0.584 -0.135 -0.774 -0.367 l -9 -11 c -0.301 -0.369 -0.301 -0.898 0 -1.267 l 9 -11 C 16.416 3.135 16.7 3 17 3 Z',\n 'M 12 27 h -2 c -0.386 0 -0.738 -0.223 -0.904 -0.572 s -0.115 -0.762 0.13 -1.062 L 17.708 15 L 9.226 4.633 c -0.245 -0.299 -0.295 -0.712 -0.13 -1.062 S 9.614 3 10 3 h 2 c 0.3 0 0.584 0.135 0.774 0.367 l 9 11 c 0.301 0.369 0.301 0.898 0 1.267 l -9 11 C 12.584 26.865 12.3 27 12 27 Z',\n ],\n },\n pageIconColor: 'var(--ink-gray-6)',\n pageInactiveColor: 'var(--ink-gray-4)',\n pageIconSize: 10,\n pageTextStyle: {\n color: 'var(--ink-gray-6)',\n },\n animationDurationUpdate: 300,\n }\n : null,\n tooltip: {\n trigger: 'item',\n confine: true,\n appendToBody: false,\n formatter: function (params: any) {\n const dirAttr = isRTL ? ' dir=\"rtl\"' : ''\n const p = params as any\n const value = p.value[1]\n const percentage = total > 0 ? (value / total) * 100 : 0\n const formatted = isNaN(value) ? value : formatValue(value, 1, true)\n const formattedPercentage = percentage.toFixed(0)\n return `\n <div${dirAttr} class=\"flex items-center justify-between gap-5\">\n <div>${p.name}</div>\n <div class=\"font-bold\">\n ${formatted} (${formattedPercentage}%)\n </div>\n </div>\n `\n },\n },\n }\n}\n","import useEchartsOptions from './eChartOptions'\nimport { formatValue, mergeDeep } from './helpers'\nimport {\n AreaSeriesConfig,\n AxisChartConfig,\n BarSeriesConfig,\n LineSeriesConfig,\n} from './types'\n\nexport default function useAxisChartOptions(config: AxisChartConfig) {\n const data = config.data || []\n const baseOptions = useEchartsOptions(config)\n\n if (config.xAxis.type === 'time' && config.swapXY) {\n throw new Error('Swap axes is not supported for time series data')\n }\n\n if (\n config.series.find((s) => s.axis === 'y2' || s.type !== 'bar') &&\n config.swapXY\n ) {\n throw new Error('Swap axes is not supported for non-bar series or y2 axis')\n }\n\n const isRTL = config.dir === 'rtl'\n const swapXY = config.swapXY\n const lastBarSeriesIdx = config.series\n .slice()\n .reverse()\n .findIndex((s) => s.type === 'bar')\n const hasY2 = config.series.some((s) => s.axis === 'y2')\n\n if (hasY2) {\n baseOptions.yAxis[1].show = true\n }\n\n baseOptions.series = config.series.map((s, idx) => {\n let labelPosition = 'top'\n if (s.type == 'bar' && config.stacked) {\n labelPosition = idx == lastBarSeriesIdx ? 'top' : 'inside'\n }\n if (s.type == 'bar' && swapXY) {\n labelPosition = isRTL ? 'left' : 'right'\n }\n\n const standardSeriesOptions = {\n type: s.type,\n name: s.name,\n data: data.map((row: any) => {\n let x, y\n if (swapXY) {\n x = row[s.name]\n y = row[config.xAxis.key]\n } else {\n x = row[config.xAxis.key]\n y = row[s.name]\n }\n return [x, y]\n }),\n yAxisIndex: s.axis === 'y2' ? 1 : 0,\n label: {\n show: s.showDataLabels,\n position: labelPosition,\n formatter: (params: any) => {\n const _val = swapXY ? params.value?.[0] : params.value?.[1]\n return formatValue(_val, 1, true)\n },\n fontSize: 11,\n },\n labelLayout: { hideOverlap: true },\n itemStyle: {\n color: s.color,\n },\n }\n\n let seriesTypeOptions = {}\n if (s.type === 'bar') {\n seriesTypeOptions = getBarSeriesOptions(config, s)\n }\n if (s.type === 'line') {\n seriesTypeOptions = getLineSeriesOptions(config, s)\n }\n if (s.type === 'area') {\n seriesTypeOptions = getAreaSeriesOptions(config, s)\n }\n\n return mergeDeep(standardSeriesOptions, seriesTypeOptions, s.echartOptions)\n })\n\n return mergeDeep(baseOptions, config.echartOptions)\n}\n\nfunction getBarSeriesOptions(config: AxisChartConfig, series: BarSeriesConfig) {\n const isRTL = config.dir === 'rtl'\n let roundedCorners = config.swapXY ? [0, 2, 2, 0] : [2, 2, 0, 0]\n if (config.swapXY && isRTL) {\n roundedCorners = [2, 0, 0, 2]\n }\n const idx = config.series.findIndex((s) => s.name === series.name)\n const lastBarSeriesIdx = config.series\n .slice()\n .reverse()\n .findIndex((s) => s.type === 'bar')\n\n const isLastBar = lastBarSeriesIdx === idx\n\n return {\n stack: config.stacked ? 'stack' : undefined,\n barMaxWidth: 60,\n itemStyle: {\n borderRadius: config.stacked\n ? isLastBar\n ? roundedCorners\n : 0\n : roundedCorners,\n },\n }\n}\n\nfunction getLineSeriesOptions(\n config: AxisChartConfig,\n series: LineSeriesConfig,\n) {\n const showSymbol = series.showDataPoints || series.showDataLabels\n return {\n connectNulls: true,\n symbol: 'circle',\n symbolSize: 7,\n showSymbol: showSymbol,\n emphasis: {},\n lineStyle: {\n width: series.lineWidth || 2,\n type: series.lineType,\n },\n }\n}\n\nfunction getAreaSeriesOptions(\n config: AxisChartConfig,\n series: AreaSeriesConfig,\n) {\n return {\n type: 'line',\n showSymbol: series.showDataPoints,\n areaStyle: {\n color: series.color,\n opacity: series.fillOpacity || 0.5,\n },\n }\n}\n","import {\n getTitleOptions,\n PADDING_TOP,\n SUBTITLE_HEIGHT,\n TITLE_BOTTOM,\n TITLE_HEIGHT,\n} from './eChartOptions'\nimport { formatValue } from './helpers'\nimport { FunnelChartConfig } from './types'\n\nexport default function getFunnelChartOptions(config: FunnelChartConfig) {\n const isRTL = config.dir === 'rtl'\n let data = config.data || []\n\n const labelPosition = 'alternate'\n const hasSubtitle = config.subtitle ? 1 : 0\n\n const labels = data.map((row) => row[config.categoryColumn])\n const values = data.map((row) => row[config.valueColumn])\n const total = values[0]\n\n const blueGradient = [\n '#2d87d6',\n '#4393da',\n '#589fdf',\n '#6dace3',\n '#83b8e7',\n '#98c4eb',\n '#c3dcf3',\n '#d8e9f7',\n '#edf5fc',\n '#ffffff',\n ]\n const colors = blueGradient\n\n return {\n animation: true,\n animationDuration: 700,\n color: colors,\n textStyle: { fontFamily: 'InterVar, sans-serif' },\n title: getTitleOptions(config.title, config.subtitle, isRTL),\n series: [\n {\n name: 'Funnel',\n type: 'funnel',\n orient: 'vertical',\n funnelAlign: 'center',\n top:\n PADDING_TOP +\n TITLE_HEIGHT +\n SUBTITLE_HEIGHT * hasSubtitle +\n TITLE_BOTTOM,\n left: 'center',\n width: '60%',\n height: '75%',\n minSize: '10px',\n maxSize: '100%',\n sort: 'descending',\n label: {\n show: true,\n position: 'inside',\n lineHeight: 16,\n formatter: (params: any) => {\n const index = labels.indexOf(params.name)\n const value = formatValue(values[index], 1, true)\n if (!config.showPercentages) {\n return value\n }\n const percentage = Number((values[index] / total) * 100).toFixed(0)\n return `${value} (${percentage}%)`\n },\n },\n labelLine: { show: false },\n gap: 6,\n data: values.map((value, index) => ({\n name: labels[index],\n value: value,\n itemStyle: {\n color: colors[index],\n borderColor: colors[index],\n borderWidth: 4,\n borderCap: 'round',\n borderJoin: 'round',\n },\n emphasis: {\n itemStyle: {\n color: colors[index],\n borderColor: colors[index],\n borderWidth: 6,\n borderCap: 'round',\n borderJoin: 'round',\n },\n },\n })),\n },\n ],\n tooltip: {\n trigger: 'item',\n confine: true,\n appendToBody: false,\n formatter: function (params: any) {\n const dirAttr = isRTL ? ' dir=\"rtl\"' : ''\n const p = params as any\n const value = p.value\n const percentage = total > 0 ? (value / total) * 100 : 0\n const formatted = isNaN(value) ? value : formatValue(value, 1, true)\n const formattedPercentage = percentage.toFixed(0)\n return `\n <div${dirAttr} class=\"flex items-center justify-between gap-5\">\n <div>${p.name}</div>\n <div class=\"font-bold\">\n ${formatted} (${formattedPercentage}%)\n </div>\n </div>\n `\n },\n },\n }\n}\n","import { Component, input, computed, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NeuralEChartsComponent } from './echarts.component';\nimport useDonutChartOptions from './donutChartOptions';\nimport useAxisChartOptions from './axisChartOptions';\nimport useFunnelChartOptions from './funnelChartOptions';\nimport { DonutChartConfig, AxisChartConfig, FunnelChartConfig, NumberChartConfig } from './types';\nimport { formatValue } from './helpers';\n\nimport { EChartsOption } from 'echarts';\n\n@Component({\n selector: 'neural-donut-chart',\n standalone: true,\n imports: [CommonModule, NeuralEChartsComponent],\n template: `\n <neural-echarts [options]=\"options()\" (chartClick)=\"chartClick.emit($event)\"></neural-echarts>\n `\n})\nexport class NeuralDonutChartComponent {\n config = input.required<DonutChartConfig>();\n @Output() chartClick = new EventEmitter<any>();\n\n options = computed(() => useDonutChartOptions(this.config()) as EChartsOption);\n}\n\n@Component({\n selector: 'neural-axis-chart',\n standalone: true,\n imports: [CommonModule, NeuralEChartsComponent],\n template: `\n <neural-echarts [options]=\"options()\" (chartClick)=\"chartClick.emit($event)\"></neural-echarts>\n `\n})\nexport class NeuralAxisChartComponent {\n config = input.required<AxisChartConfig>();\n @Output() chartClick = new EventEmitter<any>();\n\n options = computed(() => useAxisChartOptions(this.config()) as EChartsOption);\n}\n\n@Component({\n selector: 'neural-funnel-chart',\n standalone: true,\n imports: [CommonModule, NeuralEChartsComponent],\n template: `\n <neural-echarts [options]=\"options()\" (chartClick)=\"chartClick.emit($event)\"></neural-echarts>\n `\n})\nexport class NeuralFunnelChartComponent {\n config = input.required<FunnelChartConfig>();\n @Output() chartClick = new EventEmitter<any>();\n\n options = computed(() => useFunnelChartOptions(this.config()) as EChartsOption);\n}\n\n@Component({\n selector: 'neural-number-chart',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div\n class=\"flex max-h-[140px] items-center gap-2 overflow-hidden bg-surface-base text-ink-gray-8 px-6 pt-5\"\n [class]=\"config().delta ? 'pb-6' : 'pb-3'\"\n >\n <div class=\"flex w-full flex-col\">\n <span class=\"truncate text-sm-medium text-ink-gray-5\">\n {{ config().title }}\n </span>\n <div class=\"flex flex-1 items-center gap-0.5 flex-shrink-0 truncate text-[24px] text-ink-gray-6 font-semibold leading-10\">\n @if (config().prefix) {\n <div [innerHTML]=\"config().prefix\" class=\"size-4 table\"></div>\n }\n {{ format(config().value) }}{{ config().suffix || '' }}\n </div>\n @if (config().delta) {\n <div\n class=\"flex items-center gap-0.5 text-xs-medium\"\n [ngClass]=\"getDeltaClass()\"\n >\n <span>\n {{ config().delta! >= 0 ? '↑' : '↓' }}\n </span>\n <span>\n {{ config().deltaPrefix || '' }}{{ format(config().delta!) }}{{ config().deltaSuffix || '' }}\n </span>\n </div>\n }\n </div>\n </div>\n `\n})\nexport class NeuralNumberChartComponent {\n config = input.required<NumberChartConfig>();\n\n format(val: number): string {\n return formatValue(val, 1, true) as string;\n }\n\n getDeltaClass(): string {\n const cfg = this.config();\n if (!cfg.delta) return '';\n if (cfg.negativeIsBetter) {\n return cfg.delta >= 0 ? 'text-ink-red-7' : 'text-ink-green-5';\n } else {\n return cfg.delta >= 0 ? 'text-ink-green-5' : 'text-ink-red-7';\n }\n }\n}\n","// Lazy language loading for CodeEditor.\n//\n// `loadLanguage` dynamically imports the matching `@codemirror/lang-*` package\n// so each language tree-shakes into its own async chunk (apps that never render\n// a code field pay nothing).\n//\n// Mapping a Frappe FormLayout fieldtype to a language key (`fieldtypeToLanguage`)\n// is FormLayout-specific glue and lives in `@framework/ui` alongside the field\n// wrapper, not here — this primitive stays framework-agnostic.\n\nimport type { Extension } from '@codemirror/state'\n\n/**\n * Dynamically import the CodeMirror language extension for `key`.\n * Returns `null` for plain text / unknown keys (no highlighting).\n */\nexport async function loadLanguage(key?: string): Promise<Extension | null> {\n switch (key) {\n case 'json': {\n const { json } = await import('@codemirror/lang-json')\n return json()\n }\n case 'html': {\n const { html } = await import('@codemirror/lang-html')\n return html()\n }\n case 'javascript': {\n const { javascript } = await import('@codemirror/lang-javascript')\n return javascript()\n }\n case 'python': {\n const { python } = await import('@codemirror/lang-python')\n return python()\n }\n case 'sql': {\n const { sql } = await import('@codemirror/lang-sql')\n return sql()\n }\n case 'markdown': {\n const { markdown } = await import('@codemirror/lang-markdown')\n return markdown()\n }\n case 'css': {\n const { css } = await import('@codemirror/lang-css')\n return css()\n }\n case 'scss': {\n // `lang-sass` covers both — `indented: false` selects SCSS (brace) syntax.\n const { sass } = await import('@codemirror/lang-sass')\n return sass({ indented: false })\n }\n case 'yaml': {\n const { yaml } = await import('@codemirror/lang-yaml')\n return yaml()\n }\n case 'xml': {\n const { xml } = await import('@codemirror/lang-xml')\n return xml()\n }\n default:\n return null\n }\n}\n","// Base CodeMirror theme + token-keyed syntax highlighting for CodeEditor, split\n// out of the SFC so the ~200 lines of style literals don't drown the editor\n// logic. Both helpers take the CodeMirror modules as params (rather than\n// importing them) so the lazy-load isolation holds: this file pulls no editor\n// code into the static graph — `@codemirror/language` / `@lezer/highlight` load\n// via dynamic `import()` only when the editor actually mounts.\nimport type { Extension } from '@codemirror/state'\n\n// lucide `chevron-down`, used as a CSS mask so the fold marker inherits the\n// gutter's `currentColor` (and so flips with the theme) instead of baking a\n// fill. Single-quoted attrs keep it embeddable in this double-quoted string.\nconst FOLD_CHEVRON =\n \"url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E\\\")\"\n\n// Chrome theme. Every color is a frappe-ui `--surface-*` / `--ink-*` token, and\n// those tokens are re-mapped under `[data-theme=\"dark\"]` — so the editor follows\n// the app's light/dark scheme for free (no JS observation, no second theme to\n// swap). The literal fallbacks are the light values, used only when a consumer\n// renders the editor outside the token system.\nexport function buildBaseTheme(\n cmView: typeof import('@codemirror/view'),\n): Extension {\n return cmView.EditorView.theme({\n '&': {\n // Font size is owned by `buildSize` (the `size` compartment) — setting it\n // here too would fight that theme on equal specificity and, depending on\n // StyleModule injection order, silently win and pin every size to 13px.\n color: 'var(--ink-gray-8, #1e293b)',\n borderRadius: 'var(--radius-md, 0.5rem)',\n overflow: 'hidden',\n // Height cap, driven by the `--cm-max-height` CSS var a consumer sets on\n // the root (`none` when unset, so the editor grows to fit). The inner\n // `.cm-scroller` scrolls once content passes the cap. There's no\n // `maxHeight` prop — the cap is a CSS hook (P10), not a style prop.\n maxHeight: 'var(--cm-max-height, none)',\n },\n '&.cm-focused': {\n outline: 'none',\n },\n '.cm-scroller': {\n overflow: 'auto',\n },\n '.cm-content': {\n fontFamily: 'ui-monospace, SFMono-Regular, Menlo, Consolas, monospace',\n caretColor: 'var(--ink-gray-8, #1e293b)',\n padding: '6px 0',\n // Min-height is owned by `buildSize` (the `size` compartment) — see the\n // note on `&`'s font size above for why it isn't duplicated here.\n },\n '.cm-cursor, .cm-dropCursor': {\n borderLeftColor: 'var(--ink-gray-8, #1e293b)',\n },\n '.cm-line': {\n padding: '0 6px',\n },\n // Gutter surface is owned by the variant compartment (`buildVariant`), the\n // sole source of surface chrome — it paints `.cm-gutters` to match `&` in\n // every state (hover/focus/disabled). It deliberately can't stay transparent:\n // the gutter is sticky and the content scrolls *under* it, so a see-through\n // gutter lets horizontally-scrolled code bleed through behind the line\n // numbers. No divider border (overrides `basicSetup`'s default right border,\n // hence an explicit `none`) so the gutter reads as part of the surface.\n '.cm-gutters': {\n borderRight: 'none',\n color: 'var(--ink-gray-5, #64748b)',\n },\n // Scroll shadow: while the content is scrolled horizontally it slides under\n // the sticky gutter, so a right-edge shadow signals the hidden code. It's a\n // pseudo-element rather than a `box-shadow` on `.cm-gutters` itself because\n // CodeMirror stretches the gutter to the full editor height (`.cm-content`\n // fills it, and the gutter's `min-height` tracks that) — a gutter shadow\n // would run down past the last line into the empty area below, where, with\n // the gutter camouflaged against the surface, it looks like a shadow\n // floating in space. Instead this overlay is capped to the actual text\n // height via `--cm-text-height` (the last line's bottom, set from the SFC),\n // so it ends with the code. `cm-scrolled-x` (also set there) fades it in.\n '.cm-gutters::after': {\n content: '\"\"',\n position: 'absolute',\n top: '0',\n right: '0',\n width: '6px',\n height: 'var(--cm-text-height, 100%)',\n transform: 'translateX(100%)',\n pointerEvents: 'none',\n opacity: '0',\n transition: 'opacity 0.15s ease',\n background: 'linear-gradient(to right, rgba(0, 0, 0, 0.16), transparent)',\n },\n '&.cm-scrolled-x .cm-gutters::after': {\n opacity: '1',\n },\n // Fold marker. `basicSetup` renders a bare text caret pinned to the\n // cell's top-left; center it and swap the glyph for a masked chevron\n // (inherits the gutter `currentColor`). The marker carries no open/closed\n // class, but its `title` differs — so rotate it to point right when folded.\n '.cm-foldGutter .cm-gutterElement': {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '0 2px',\n cursor: 'pointer',\n },\n '.cm-foldGutter .cm-gutterElement:hover': {\n color: 'var(--ink-gray-8, #1e293b)',\n },\n '.cm-foldGutter .cm-gutterElement > span': {\n display: 'block',\n width: '14px',\n height: '14px',\n fontSize: '0',\n backgroundColor: 'currentColor',\n transition: 'transform 0.12s ease',\n WebkitMaskImage: FOLD_CHEVRON,\n maskImage: FOLD_CHEVRON,\n WebkitMaskRepeat: 'no-repeat',\n maskRepeat: 'no-repeat',\n WebkitMaskPosition: 'center',\n maskPosition: 'center',\n WebkitMaskSize: '14px 14px',\n maskSize: '14px 14px',\n },\n \".cm-foldGutter .cm-gutterElement > span[title='Unfold line']\": {\n transform: 'rotate(-90deg)',\n },\n // The fold gutter otherwise reserves a column even when nothing on screen is\n // foldable (plain text, a flat markdown doc) — dead space next to the code.\n // Collapse it to zero width until at least one line renders a real fold\n // chevron. The catch: CodeMirror sizes the gutter with an always-present\n // hidden \"spacer\" element (a FoldMarker span tagged with inline\n // `visibility: hidden`), so a naive `:has(> span)` is always true. We exclude\n // the spacer with `:not([style*='visibility'])`, leaving only the chevrons\n // that actually appear on foldable lines. `overflow: hidden` then clips the\n // spacer's span so it stops reserving width once collapsed. `:has`\n // re-evaluates live, so the column appears/disappears as folds come and go.\n \".cm-foldGutter:not(:has(.cm-gutterElement:not([style*='visibility']) > span))\":\n {\n width: '0',\n overflow: 'hidden',\n },\n \".cm-foldGutter:not(:has(.cm-gutterElement:not([style*='visibility']) > span)) .cm-gutterElement\":\n {\n padding: '0',\n },\n // Same for the JSON lint gutter: it holds a fixed column for diagnostic\n // markers, but valid JSON has none, so collapse it until a `.cm-lint-marker`\n // appears. The column springs back the moment the parser reports an error.\n '.cm-gutter-lint:not(:has(.cm-lint-marker))': {\n width: '0',\n },\n '.cm-gutter-lint:not(:has(.cm-lint-marker)) .cm-gutterElement': {\n padding: '0',\n },\n // `basicSetup` highlights the active line/gutter in a default light blue.\n // A fixed gray token can't stay visible across every surface the row sits on\n // — the `subtle` fill (gray-2), its hover fill (gray-3), and the white\n // `outline` surface — and using gray-3 makes the row vanish on hover, where\n // the surface itself becomes gray-3. Instead use a low-alpha `ink-gray-9`\n // overlay: it darkens (light mode) or lightens (dark mode, where the token\n // flips to near-white) whatever surface is beneath by a constant amount, so\n // the active row always reads. Being mostly transparent, it also lets the\n // selection — drawn behind the content — show through on the active row.\n '.cm-activeLine': {\n backgroundColor:\n 'color-mix(in srgb, var(--ink-gray-9, #0f0f0f) 7%, transparent)',\n },\n '.cm-activeLineGutter': {\n backgroundColor:\n 'color-mix(in srgb, var(--ink-gray-9, #0f0f0f) 7%, transparent)',\n color: 'var(--ink-gray-7, #525252)',\n },\n // Autocomplete / hover tooltips (from `basicSetup`) default to a light\n // popup — theme them off `--surface-elevation-2` (the elevated popover surface)\n // so the dropdown follows dark mode instead of flashing white.\n '.cm-tooltip': {\n backgroundColor: 'var(--surface-elevation-2, white)',\n border: '1px solid var(--surface-gray-3, #cbd5e1)',\n borderRadius: 'var(--radius-md, 0.5rem)',\n color: 'var(--ink-gray-8, #1e293b)',\n boxShadow: '0 4px 12px rgba(0, 0, 0, 0.12)',\n overflow: 'hidden',\n },\n '.cm-tooltip-autocomplete > ul': {\n fontFamily: 'ui-monospace, SFMono-Regular, Menlo, Consolas, monospace',\n },\n '.cm-tooltip-autocomplete > ul > li': {\n color: 'var(--ink-gray-7, #475569)',\n padding: '2px 6px',\n },\n '.cm-tooltip-autocomplete > ul > li[aria-selected]': {\n backgroundColor: 'var(--surface-gray-3, #e2e8f0)',\n color: 'var(--ink-gray-9, #0f172a)',\n },\n '.cm-completionIcon': {\n color: 'var(--ink-gray-5, #64748b)',\n },\n '.cm-completionMatchedText': {\n color: 'var(--ink-blue-5)',\n textDecoration: 'none',\n fontWeight: '600',\n },\n '.cm-completionDetail': {\n color: 'var(--ink-gray-5, #64748b)',\n fontStyle: 'italic',\n },\n })\n}\n\n// Syntax highlighting keyed to `--ink-*` tokens so the palette flips with the\n// app theme. `basicSetup` already installs CodeMirror's default (light-tuned)\n// highlight style; layering this at the highest precedence makes it win for\n// every tag we define, and the default only fills the rare gaps we don't.\nexport async function buildSyntaxHighlight(\n cmState: typeof import('@codemirror/state'),\n): Promise<Extension> {\n const { HighlightStyle, syntaxHighlighting } =\n await import('@codemirror/language')\n const { tags } = await import('@lezer/highlight')\n const highlightStyle = HighlightStyle.define([\n {\n tag: [tags.keyword, tags.moduleKeyword, tags.controlKeyword],\n color: 'var(--ink-blue-5)',\n },\n {\n tag: [tags.string, tags.special(tags.string), tags.regexp],\n color: 'var(--ink-green-5)',\n },\n {\n tag: [tags.comment, tags.lineComment, tags.blockComment],\n color: 'var(--ink-gray-5)',\n fontStyle: 'italic',\n },\n {\n tag: [tags.number, tags.bool, tags.null, tags.atom],\n color: 'var(--ink-amber-5)',\n },\n {\n tag: [tags.typeName, tags.className, tags.namespace],\n color: 'var(--ink-amber-5)',\n },\n {\n tag: [\n tags.function(tags.variableName),\n tags.function(tags.propertyName),\n tags.labelName,\n ],\n color: 'var(--ink-blue-5)',\n },\n { tag: [tags.propertyName, tags.attributeName], color: 'var(--ink-red-5)' },\n { tag: [tags.tagName, tags.angleBracket], color: 'var(--ink-red-5)' },\n {\n tag: [tags.operator, tags.punctuation, tags.separator, tags.bracket],\n color: 'var(--ink-gray-6)',\n },\n {\n tag: [tags.variableName, tags.definition(tags.variableName)],\n color: 'var(--ink-gray-8)',\n },\n { tag: tags.meta, color: 'var(--ink-gray-5)' },\n {\n tag: [tags.link, tags.url],\n color: 'var(--ink-blue-5)',\n textDecoration: 'underline',\n },\n { tag: tags.heading, color: 'var(--ink-blue-5)', fontWeight: 'bold' },\n { tag: tags.strong, fontWeight: 'bold' },\n { tag: tags.emphasis, fontStyle: 'italic' },\n { tag: tags.strikethrough, textDecoration: 'line-through' },\n { tag: tags.invalid, color: 'var(--ink-red-7)' },\n ])\n return cmState.Prec.highest(syntaxHighlighting(highlightStyle))\n}\n","import {\n Component, input, model, computed, effect,\n ElementRef, ViewChild, AfterViewInit, OnDestroy, Output, EventEmitter\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { loadLanguage } from './languages';\nimport { buildBaseTheme, buildSyntaxHighlight } from './theme';\nimport {\n NeuralInputLabelComponent,\n NeuralInputDescriptionComponent,\n NeuralInputErrorComponent,\n NeuralLabelingWrapperComponent\n} from '../input-labeling/input-labeling.components';\n\n@Component({\n selector: 'neural-code-editor',\n standalone: true,\n imports: [\n CommonModule,\n NeuralInputLabelComponent,\n NeuralInputDescriptionComponent,\n NeuralInputErrorComponent,\n NeuralLabelingWrapperComponent\n ],\n template: `\n <neural-labeling-wrapper [enabled]=\"hasLabeling()\">\n @if (label()) {\n <neural-input-label [id]=\"labelIdValue\" [label]=\"label()\" [required]=\"required()\">\n <ng-content select=\"[label]\"></ng-content>\n </neural-input-label>\n }\n\n <div\n #editorRoot\n class=\"code-editor\"\n data-slot=\"control\"\n ></div>\n\n @if (description()) {\n <neural-input-description [id]=\"descriptionIdValue\" [description]=\"description()\">\n <ng-content select=\"[description]\"></ng-content>\n </neural-input-description>\n }\n\n @if (errorLines().length) {\n <neural-input-error [id]=\"errorIdValue\" [lines]=\"errorLines()\"></neural-input-error>\n }\n </neural-labeling-wrapper>\n `\n})\nexport class NeuralCodeEditorComponent implements AfterViewInit, OnDestroy {\n modelValue = model<string>('');\n language = input<string>('plain');\n disabled = input<boolean>(false);\n placeholder = input<string>('');\n variant = input<'subtle' | 'outline'>('subtle');\n size = input<'sm' | 'md' | 'lg' | 'xl'>('md');\n\n label = input<string>();\n description = input<string>();\n error = input<string | string[]>();\n required = input<boolean>(false);\n\n @Output() overflow = new EventEmitter<boolean>();\n @Output() change = new EventEmitter<string>();\n\n @ViewChild('editorRoot') editorRoot!: ElementRef<HTMLElement>;\n\n private static counter = 0;\n readonly baseId = `neural-code-editor-${NeuralCodeEditorComponent.counter++}`;\n readonly labelIdValue = `${this.baseId}-label`;\n readonly descriptionIdValue = `${this.baseId}-desc`;\n readonly errorIdValue = `${this.baseId}-error`;\n\n hasLabeling = computed(() => Boolean(this.label() || this.description() || this.error()));\n\n errorLines = computed<string[]>(() => {\n const e = this.error();\n if (!e) return [];\n return Array.isArray(e) ? e : [e];\n });\n\n private view: any = null;\n private languageCompartment: any = null;\n private disabledCompartment: any = null;\n private variantCompartment: any = null;\n private sizeCompartment: any = null;\n private placeholderCompartment: any = null;\n private cmView: any = null;\n private cmState: any = null;\n private syncingFromProp = false;\n private overflowObserver: ResizeObserver | null = null;\n private lastOverflow = false;\n private langSeq = 0;\n\n private syncGutterShadow = () => {\n if (!this.view) return;\n this.view.dom.classList.toggle('cm-scrolled-x', this.view.scrollDOM.scrollLeft > 0);\n const textHeight = this.view.lineBlockAt(this.view.state.doc.length).bottom;\n this.view.dom.style.setProperty('--cm-text-height', textHeight + 'px');\n };\n\n private measureOverflow = () => {\n if (!this.view) return;\n const s = this.view.scrollDOM;\n const overflowing = s.scrollHeight > s.clientHeight + 1;\n if (overflowing === this.lastOverflow) return;\n this.lastOverflow = overflowing;\n this.overflow.emit(overflowing);\n };\n\n private async buildLanguageExtension(key?: string): Promise<any[]> {\n const exts: any[] = [];\n const lang = await loadLanguage(key);\n if (lang) exts.push(lang);\n if (key === 'json') {\n const { jsonParseLinter } = await import('@codemirror/lang-json');\n const { linter, lintGutter } = await import('@codemirror/lint');\n exts.push(lintGutter(), linter(jsonParseLinter()));\n }\n return exts;\n }\n\n private buildDisabled(disabled: boolean): any[] {\n if (!this.cmState || !this.cmView) return [];\n return [\n this.cmState.EditorState.readOnly.of(disabled),\n this.cmView.EditorView.editable.of(!disabled),\n ];\n }\n\n private buildVariant(v?: string, disabled?: boolean): any[] {\n if (!this.cmView) return [];\n if (disabled) {\n return [this.cmView.EditorView.theme({\n '&': {\n backgroundColor: 'var(--surface-gray-1, #f8fafc)',\n border: v === 'outline' ? '1px solid var(--outline-gray-2, #e2e8f0)' : '1px solid transparent',\n },\n '.cm-gutters': { backgroundColor: 'var(--surface-gray-1, #f8fafc)' },\n '.cm-content': { opacity: '0.6' },\n })];\n }\n const ring = '0 0 0 2px var(--outline-gray-3, #cbd5e1)';\n const fragments: Record<string, any> = {\n subtle: {\n '&': { backgroundColor: 'var(--surface-gray-2, #f1f5f9)', border: '1px solid var(--surface-gray-2, #e2e8f0)' },\n '.cm-gutters': { backgroundColor: 'var(--surface-gray-2, #f1f5f9)' },\n '&:hover': { backgroundColor: 'var(--surface-gray-3, #e2e8f0)', borderColor: 'var(--outline-elevation-2, #94a3b8)' },\n '&.cm-focused': { backgroundColor: 'var(--surface-base, white)', borderColor: 'var(--outline-gray-4, #94a3b8)', boxShadow: ring },\n '&.cm-focused .cm-gutters': { backgroundColor: 'var(--surface-base, white)' },\n },\n outline: {\n '&': { backgroundColor: 'var(--surface-base, white)', border: '1px solid var(--outline-gray-2, #e2e8f0)' },\n '.cm-gutters': { backgroundColor: 'var(--surface-base, white)' },\n '&.cm-focused': { borderColor: 'var(--outline-gray-4, #94a3b8)', boxShadow: ring },\n },\n };\n return [this.cmView.EditorView.theme(fragments[v ?? 'subtle'] ?? fragments['subtle'])];\n }\n\n private buildSize(s?: string): any[] {\n if (!this.cmView) return [];\n const sizes: Record<string, { fontSize: string; minHeight: string }> = {\n sm: { fontSize: '12px', minHeight: '3.5rem' },\n md: { fontSize: '13px', minHeight: '4.5rem' },\n lg: { fontSize: '14px', minHeight: '6rem' },\n xl: { fontSize: '16px', minHeight: '7.5rem' },\n };\n const cfg = sizes[s ?? 'md'] ?? sizes['md'];\n return [this.cmView.EditorView.theme({\n '&': { fontSize: cfg.fontSize },\n '.cm-content': { minHeight: cfg.minHeight },\n })];\n }\n\n private buildPlaceholder(text?: string): any[] {\n if (!this.cmView || !text) return [];\n return [this.cmView.placeholder(text)];\n }\n\n constructor() {\n effect(() => {\n const val = this.modelValue();\n if (!this.view) return;\n const current = this.view.state.doc.toString();\n const next = val ?? '';\n if (next === current) return;\n this.syncingFromProp = true;\n this.view.dispatch({ changes: { from: 0, to: current.length, insert: next } });\n this.syncingFromProp = false;\n });\n }\n\n async ngAfterViewInit() {\n if (typeof document === 'undefined' || !this.editorRoot?.nativeElement) return;\n\n this.cmView = await import('@codemirror/view');\n this.cmState = await import('@codemirror/state');\n const { basicSetup } = await import('codemirror');\n const { indentWithTab } = await import('@codemirror/commands');\n const { EditorView } = this.cmView;\n const { Compartment } = this.cmState;\n\n this.languageCompartment = new Compartment();\n this.disabledCompartment = new Compartment();\n this.variantCompartment = new Compartment();\n this.sizeCompartment = new Compartment();\n this.placeholderCompartment = new Compartment();\n\n const theme = buildBaseTheme(this.cmView);\n const highlight = await buildSyntaxHighlight(this.cmState);\n\n const updateListener = EditorView.updateListener.of((update: any) => {\n if (update.docChanged && !this.syncingFromProp) {\n this.modelValue.set(update.state.doc.toString());\n }\n if (update.docChanged || update.geometryChanged) {\n this.measureOverflow();\n this.syncGutterShadow();\n }\n });\n\n const blurHandler = EditorView.domEventHandlers({\n blur: () => {\n if (this.view) this.change.emit(this.view.state.doc.toString());\n },\n });\n\n const escapeHandler = EditorView.domEventHandlers({\n keydown: (e: KeyboardEvent, v: any) => {\n if (e.key === 'Escape') { v.contentDOM.blur(); return true; }\n return false;\n },\n });\n\n if (!this.editorRoot?.nativeElement) return;\n\n this.view = new EditorView({\n doc: this.modelValue() ?? '',\n extensions: [\n basicSetup,\n this.cmView.keymap.of([indentWithTab]),\n escapeHandler,\n this.languageCompartment.of(await this.buildLanguageExtension(this.language())),\n this.disabledCompartment.of(this.buildDisabled(!!this.disabled())),\n updateListener,\n blurHandler,\n theme,\n this.variantCompartment.of(this.buildVariant(this.variant(), this.disabled())),\n this.sizeCompartment.of(this.buildSize(this.size())),\n this.placeholderCompartment.of(this.buildPlaceholder(this.placeholder())),\n highlight,\n ],\n parent: this.editorRoot.nativeElement,\n });\n\n this.measureOverflow();\n this.view.scrollDOM.addEventListener('scroll', this.syncGutterShadow, { passive: true });\n this.syncGutterShadow();\n\n if (typeof ResizeObserver !== 'undefined') {\n this.overflowObserver = new ResizeObserver(() => {\n this.measureOverflow();\n this.syncGutterShadow();\n });\n this.overflowObserver.observe(this.view.scrollDOM);\n }\n }\n\n ngOnDestroy() {\n this.overflowObserver?.disconnect();\n if (this.view) {\n this.view.scrollDOM.removeEventListener('scroll', this.syncGutterShadow);\n this.view.destroy();\n this.view = null;\n }\n }\n}\n","import { Component, input, computed } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport DOMPurify from 'dompurify';\nimport { marked } from 'marked';\n\n@Component({\n selector: 'neural-code-preview',\n standalone: true,\n imports: [CommonModule],\n template: `\n @if (isPreviewLanguage()) {\n <div\n class=\"prose prose-sm max-w-none text-ink-gray-8\"\n [innerHTML]=\"sanitized()\"\n ></div>\n }\n `\n})\nexport class NeuralCodePreviewComponent {\n modelValue = input<string>('');\n language = input<string>('plain');\n\n isPreviewLanguage = computed(() => this.language() === 'markdown' || this.language() === 'html');\n\n sanitized = computed(() => {\n const src = this.modelValue() ?? '';\n if (!src) return '';\n if (this.language() === 'markdown') {\n return DOMPurify.sanitize(marked.parse(src) as string);\n }\n if (this.language() === 'html') {\n return DOMPurify.sanitize(src);\n }\n return '';\n });\n}\n","import { Component, input, model, computed, signal, Signal, Output, EventEmitter, OnInit, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NeuralDialogComponent } from '../dialog/dialog.component';\nimport { NeuralTextInputComponent } from '../text-input/text-input.component';\n\n// ---------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------\nexport interface CommandPaletteItem {\n label: string;\n value: string;\n keywords?: string[];\n icon?: string;\n description?: string;\n disabled?: boolean;\n onSelect?: () => void;\n}\n\nexport interface CommandPaletteGroup {\n label?: string;\n items: CommandPaletteItem[];\n}\n\n@Component({\n selector: 'neural-command-palette',\n standalone: true,\n imports: [CommonModule, NeuralDialogComponent],\n template: `\n <neural-dialog\n [(openModel)]=\"open\"\n [bare]=\"true\"\n size=\"xl\"\n position=\"top\"\n >\n <div data-slot=\"command-palette\" class=\"flex max-h-[60vh] flex-col\">\n <!-- Search input -->\n <div class=\"px-4 py-3 border-b border-outline-gray-1\">\n <div class=\"relative flex items-center gap-2\">\n <span class=\"lucide-search size-4 text-ink-gray-4 shrink-0\" aria-hidden=\"true\"></span>\n <input\n type=\"text\"\n class=\"w-full bg-transparent border-0 text-sm text-ink-gray-8 outline-none placeholder:text-ink-gray-4\"\n [placeholder]=\"placeholder()\"\n [value]=\"query()\"\n (input)=\"onQueryChange($event)\"\n (keydown)=\"onKeydown($event)\"\n autofocus\n />\n </div>\n </div>\n\n <!-- Results -->\n <div class=\"overflow-y-auto flex-1 p-1\">\n @if (isEmpty()) {\n <div class=\"flex items-center justify-center py-8 text-sm text-ink-gray-4\">\n {{ emptyText() }}\n </div>\n } @else {\n @for (group of filteredGroups(); track group.label) {\n @if (group.label) {\n <div class=\"px-2 py-1.5 text-xs font-medium text-ink-gray-4 uppercase tracking-wide\">\n {{ group.label }}\n </div>\n }\n @for (item of group.items; track item.value) {\n <button\n type=\"button\"\n class=\"w-full flex items-center gap-3 px-2 py-2 rounded-4 text-left text-sm transition-colors duration-100 hover:bg-surface-gray-2 focus:outline-none focus:bg-surface-gray-2\"\n [class.opacity-50]=\"item.disabled\"\n [disabled]=\"item.disabled\"\n (click)=\"selectItem(item)\"\n >\n @if (item.icon) {\n <span class=\"size-4 shrink-0 text-ink-gray-5\" [class]=\"item.icon\" aria-hidden=\"true\"></span>\n }\n <div class=\"flex-1 min-w-0\">\n <div class=\"truncate text-ink-gray-8\">{{ item.label }}</div>\n @if (item.description) {\n <div class=\"truncate text-xs text-ink-gray-4\">{{ item.description }}</div>\n }\n </div>\n </button>\n }\n }\n }\n </div>\n </div>\n </neural-dialog>\n `\n})\nexport class NeuralCommandPaletteComponent {\n open = model<boolean>(false);\n query = model<string>('');\n\n groups = input<CommandPaletteGroup[]>([]);\n items = input<CommandPaletteItem[]>([]);\n placeholder = input<string>('Search...');\n emptyText = input<string>('No results found.');\n filterable = input<boolean>(true);\n\n @Output() select = new EventEmitter<CommandPaletteItem>();\n\n filteredGroups = computed(() => {\n const q = this.query().trim().toLowerCase();\n const allGroups: CommandPaletteGroup[] = this.groups().length\n ? this.groups()\n : [{ items: this.items() }];\n\n if (!q || !this.filterable()) return allGroups;\n\n return allGroups.map(group => ({\n ...group,\n items: group.items.filter(item => {\n const haystack = [item.label, ...(item.keywords || [])].join(' ').toLowerCase();\n return haystack.includes(q);\n })\n })).filter(group => group.items.length > 0);\n });\n\n isEmpty = computed(() => {\n return this.filteredGroups().every(g => g.items.length === 0);\n });\n\n onQueryChange(event: Event) {\n this.query.set((event.target as HTMLInputElement).value);\n }\n\n onKeydown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n this.open.set(false);\n }\n }\n\n selectItem(item: CommandPaletteItem) {\n if (item.disabled) return;\n this.select.emit(item);\n item.onSelect?.();\n this.open.set(false);\n this.query.set('');\n }\n}\n","import {\n Component, input, model, computed, Output, EventEmitter,\n ElementRef, ViewChild, AfterViewInit, OnDestroy, effect, Signal\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport type WindowMode = 'docked' | 'floating' | 'minimized';\n\ninterface WindowRect { x: number; y: number; w: number; h: number; }\n\nconst RESIZE_STEP = 16;\n\n@Component({\n selector: 'neural-floating-window',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div\n #panel\n [attr.data-state]=\"mode()\"\n class=\"floating-window relative flex flex-col rounded-6 border border-outline-gray-2 bg-surface-elevation-1\"\n [class]=\"isDocked() ? '' : 'shadow-2xl'\"\n [style]=\"panelStyle()\"\n >\n <!-- Header / drag handle -->\n <div\n #handle\n class=\"flex select-none items-center justify-between gap-2\"\n [class]=\"isFloating() ? 'cursor-move px-2.5 py-1.5' : 'px-2.5 py-1.5'\"\n (pointerdown)=\"startDrag($event)\"\n >\n <div class=\"flex min-w-0 items-center gap-2\">\n <ng-content select=\"[header]\"></ng-content>\n @if (!hasHeaderSlot()) {\n <span class=\"truncate text-sm font-medium text-ink-gray-8\">{{ title() }}</span>\n }\n </div>\n\n <div class=\"flex shrink-0 items-center gap-1\">\n <ng-content select=\"[actions]\"></ng-content>\n\n @if (minimizable()) {\n @if (isMinimized()) {\n <button type=\"button\" class=\"p-1.5 rounded-4 hover:bg-surface-gray-2 text-ink-gray-5\" (click)=\"expandFromTray()\" aria-label=\"Expand\">\n <span class=\"lucide-maximize-2 size-4\"></span>\n </button>\n } @else {\n <button type=\"button\" class=\"p-1.5 rounded-4 hover:bg-surface-gray-2 text-ink-gray-5\" (click)=\"minimize()\" aria-label=\"Minimize\">\n <span class=\"lucide-minus size-4\"></span>\n </button>\n }\n }\n\n <button type=\"button\" class=\"p-1.5 rounded-4 hover:bg-surface-gray-2 text-ink-gray-5\" (click)=\"isDocked() ? float() : dock()\" [attr.aria-label]=\"isDocked() ? 'Pop out' : 'Close'\">\n <span [class]=\"isDocked() ? 'lucide-maximize-2 size-4' : 'lucide-x size-4'\"></span>\n </button>\n </div>\n </div>\n\n <!-- Body -->\n @if (!isMinimized()) {\n <div class=\"min-h-0 flex-1 overflow-auto\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"shrink-0\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n }\n\n <!-- Resize handles (floating only) -->\n @if (isFloating()) {\n @for (rh of resizeHandles; track rh.name) {\n <div\n [attr.data-resize]=\"rh.name\"\n aria-hidden=\"true\"\n class=\"absolute\"\n [class]=\"rh.class\"\n (pointerdown)=\"$event.preventDefault(); startResize($event, rh.dir)\"\n ></div>\n }\n <button\n type=\"button\"\n data-resize=\"se\"\n aria-label=\"Resize window\"\n class=\"absolute -bottom-1 -right-1 z-10 size-4 cursor-nwse-resize rounded-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-outline-gray-3\"\n (pointerdown)=\"$event.preventDefault(); startResize($event, {x: 1, y: 1})\"\n (keydown)=\"onResizeKey($event)\"\n ></button>\n }\n </div>\n `\n})\nexport class NeuralFloatingWindowComponent implements AfterViewInit, OnDestroy {\n modeModel = model<WindowMode>('docked');\n title = input<string>('');\n storageKey = input<string | null>(null);\n minimizable = input<boolean>(true);\n hasHeaderSlot = input<boolean>(false);\n\n @Output() modeChange = new EventEmitter<WindowMode>();\n\n @ViewChild('panel') panelRef!: ElementRef<HTMLElement>;\n @ViewChild('handle') handleRef!: ElementRef<HTMLElement>;\n\n private _mode = this.modeModel;\n private rect: WindowRect = { x: 100, y: 100, w: 480, h: 480 };\n\n private dragging = false;\n private dragStart = { x: 0, y: 0, rx: 0, ry: 0 };\n private resizing = false;\n private resizeDir = { x: 0, y: 0 };\n private resizeStart = { mx: 0, my: 0, rw: 0, rh: 0, rx: 0, ry: 0 };\n\n private boundPointerMove = this.onPointerMove.bind(this);\n private boundPointerUp = this.onPointerUp.bind(this);\n\n mode = computed(() => this.modeModel());\n isDocked = computed(() => this.mode() === 'docked');\n isFloating = computed(() => this.mode() === 'floating');\n isMinimized = computed(() => this.mode() === 'minimized');\n\n panelStyle = computed(() => {\n if (this.isDocked()) return {};\n if (this.isMinimized()) {\n return {\n position: 'fixed',\n bottom: '16px',\n right: '16px',\n width: '280px',\n zIndex: '9999'\n };\n }\n return {\n position: 'fixed',\n left: `${this.rect.x}px`,\n top: `${this.rect.y}px`,\n width: `${this.rect.w}px`,\n height: `${this.rect.h}px`,\n zIndex: '9999'\n };\n });\n\n resizeHandles = [\n { name: 'n', dir: { x: 0, y: -1 }, class: '-top-1 inset-x-0 h-2 cursor-ns-resize' },\n { name: 's', dir: { x: 0, y: 1 }, class: '-bottom-1 inset-x-0 h-2 cursor-ns-resize' },\n { name: 'w', dir: { x: -1, y: 0 }, class: '-left-1 inset-y-0 w-2 cursor-ew-resize' },\n { name: 'e', dir: { x: 1, y: 0 }, class: '-right-1 inset-y-0 w-2 cursor-ew-resize' },\n { name: 'nw', dir: { x: -1, y: -1 }, class: '-top-1 -left-1 size-4 z-10 cursor-nwse-resize' },\n { name: 'ne', dir: { x: 1, y: -1 }, class: '-top-1 -right-1 size-4 z-10 cursor-nesw-resize' },\n { name: 'sw', dir: { x: -1, y: 1 }, class: '-bottom-1 -left-1 size-4 z-10 cursor-nesw-resize' },\n ];\n\n ngAfterViewInit() {\n this.loadStoredState();\n window.addEventListener('pointermove', this.boundPointerMove);\n window.addEventListener('pointerup', this.boundPointerUp);\n }\n\n ngOnDestroy() {\n window.removeEventListener('pointermove', this.boundPointerMove);\n window.removeEventListener('pointerup', this.boundPointerUp);\n }\n\n private loadStoredState() {\n const key = this.storageKey();\n if (!key) return;\n try {\n const stored = localStorage.getItem(key);\n if (!stored) return;\n const data = JSON.parse(stored);\n if (data.rect) this.rect = data.rect;\n if (data.mode) this.modeModel.set(data.mode);\n } catch {}\n }\n\n private saveState() {\n const key = this.storageKey();\n if (!key) return;\n localStorage.setItem(key, JSON.stringify({ mode: this.mode(), rect: this.rect }));\n }\n\n dock() { this.modeModel.set('docked'); this.saveState(); }\n float() { this.modeModel.set('floating'); this.saveState(); }\n minimize() { this.modeModel.set('minimized'); this.saveState(); }\n expandFromTray() { this.modeModel.set('floating'); this.saveState(); }\n\n startDrag(event: PointerEvent) {\n if (!this.isFloating()) return;\n this.dragging = true;\n this.dragStart = { x: event.clientX, y: event.clientY, rx: this.rect.x, ry: this.rect.y };\n (event.currentTarget as HTMLElement).setPointerCapture(event.pointerId);\n }\n\n startResize(event: PointerEvent, dir: { x: number; y: number }) {\n if (!this.isFloating()) return;\n this.resizing = true;\n this.resizeDir = dir;\n this.resizeStart = { mx: event.clientX, my: event.clientY, rw: this.rect.w, rh: this.rect.h, rx: this.rect.x, ry: this.rect.y };\n (event.currentTarget as HTMLElement).setPointerCapture(event.pointerId);\n }\n\n private onPointerMove(event: PointerEvent) {\n if (this.dragging) {\n const dx = event.clientX - this.dragStart.x;\n const dy = event.clientY - this.dragStart.y;\n this.rect = { ...this.rect, x: this.dragStart.rx + dx, y: this.dragStart.ry + dy };\n }\n if (this.resizing) {\n const dx = (event.clientX - this.resizeStart.mx) * this.resizeDir.x;\n const dy = (event.clientY - this.resizeStart.my) * this.resizeDir.y;\n const newW = Math.max(240, this.resizeStart.rw + dx);\n const newH = Math.max(180, this.resizeStart.rh + dy);\n this.rect = { ...this.rect, w: newW, h: newH };\n }\n }\n\n private onPointerUp() {\n if (this.dragging || this.resizing) {\n this.saveState();\n }\n this.dragging = false;\n this.resizing = false;\n }\n\n resizeBy(dw: number, dh: number) {\n this.rect = { ...this.rect, w: Math.max(240, this.rect.w + dw), h: Math.max(180, this.rect.h + dh) };\n this.saveState();\n }\n\n onResizeKey(event: KeyboardEvent) {\n const map: Record<string, [number, number]> = {\n ArrowRight: [RESIZE_STEP, 0], ArrowLeft: [-RESIZE_STEP, 0],\n ArrowDown: [0, RESIZE_STEP], ArrowUp: [0, -RESIZE_STEP],\n };\n const delta = map[event.key];\n if (!delta) return;\n event.preventDefault();\n this.resizeBy(...delta);\n }\n}\n","import { Component, input, computed, Output, EventEmitter, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport interface ListColumn {\n label: string;\n key: string;\n width?: string;\n sortable?: boolean;\n}\n\nexport interface ListOptions {\n selectable?: boolean;\n rowHeight?: number;\n emptyState?: { title: string; description?: string };\n onRowClick?: (row: any) => void;\n}\n\n@Component({\n selector: 'neural-list-view',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div class=\"relative flex w-full flex-1 flex-col overflow-x-auto\">\n <div class=\"flex w-max min-w-full flex-col overflow-y-hidden\">\n\n <!-- Header -->\n <div class=\"flex border-b border-outline-gray-1 bg-surface-gray-1\">\n @if (resolvedOptions().selectable) {\n <div class=\"flex w-9 shrink-0 items-center justify-center p-2\">\n <input\n type=\"checkbox\"\n class=\"rounded border-outline-gray-3\"\n [checked]=\"allSelected()\"\n (change)=\"toggleAllRows($event)\"\n />\n </div>\n }\n @for (col of columns(); track col.key) {\n <div\n class=\"flex items-center gap-1.5 px-3 py-2 text-xs font-medium text-ink-gray-5 uppercase tracking-wide truncate\"\n [style.width]=\"col.width || 'auto'\"\n [class.flex-1]=\"!col.width\"\n >\n {{ col.label }}\n @if (col.sortable) {\n <button\n type=\"button\"\n class=\"text-ink-gray-4 hover:text-ink-gray-7\"\n (click)=\"onSort(col.key)\"\n >\n <span class=\"lucide-chevrons-up-down size-3\"></span>\n </button>\n }\n </div>\n }\n </div>\n\n <!-- Rows -->\n @if (rows().length) {\n @for (row of rows(); track row[rowKey()]) {\n <div\n class=\"flex border-b border-outline-gray-1 hover:bg-surface-gray-1 transition-colors duration-100 cursor-pointer\"\n [style.height.px]=\"resolvedOptions().rowHeight || 40\"\n [class.bg-surface-gray-2]=\"isSelected(row)\"\n (click)=\"onRowClick(row)\"\n >\n @if (resolvedOptions().selectable) {\n <div class=\"flex w-9 shrink-0 items-center justify-center p-2\">\n <input\n type=\"checkbox\"\n class=\"rounded border-outline-gray-3\"\n [checked]=\"isSelected(row)\"\n (change)=\"$event.stopPropagation(); toggleRow(row)\"\n />\n </div>\n }\n @for (col of columns(); track col.key) {\n <div\n class=\"flex items-center px-3 py-2 text-sm text-ink-gray-7 truncate\"\n [style.width]=\"col.width || 'auto'\"\n [class.flex-1]=\"!col.width\"\n >\n {{ row[col.key] }}\n </div>\n }\n </div>\n }\n } @else {\n <div class=\"flex flex-col items-center justify-center py-16 gap-2\">\n <div class=\"text-sm font-medium text-ink-gray-6\">\n {{ resolvedOptions().emptyState?.title || 'No Data' }}\n </div>\n @if (resolvedOptions().emptyState?.description) {\n <div class=\"text-sm text-ink-gray-4\">\n {{ resolvedOptions().emptyState?.description }}\n </div>\n }\n </div>\n }\n\n <!-- Selection banner -->\n @if (resolvedOptions().selectable && selections().size) {\n <div class=\"sticky bottom-0 flex items-center gap-3 px-4 py-2.5 bg-surface-gray-1 border-t border-outline-gray-1\">\n <span class=\"text-sm text-ink-gray-7\">{{ selections().size }} row{{ selections().size === 1 ? '' : 's' }} selected</span>\n <button\n type=\"button\"\n class=\"text-sm text-ink-gray-5 hover:text-ink-gray-8\"\n (click)=\"clearSelections()\"\n >Clear</button>\n </div>\n }\n\n </div>\n </div>\n `\n})\nexport class NeuralListViewComponent {\n columns = input<ListColumn[]>([]);\n rows = input<any[]>([]);\n rowKey = input.required<string>();\n options = input<ListOptions>({});\n\n @Output() selectionsChange = new EventEmitter<Set<any>>();\n @Output() rowClick = new EventEmitter<any>();\n @Output() sortChange = new EventEmitter<string>();\n\n selections = signal<Set<any>>(new Set());\n\n resolvedOptions = computed(() => ({\n selectable: true,\n rowHeight: 40,\n emptyState: { title: 'No Data', description: 'No data available' },\n ...this.options()\n }));\n\n allSelected = computed(() => {\n const r = this.rows();\n if (!r.length) return false;\n return r.every(row => this.selections().has(row[this.rowKey()]));\n });\n\n isSelected(row: any) {\n return this.selections().has(row[this.rowKey()]);\n }\n\n toggleRow(row: any) {\n const key = row[this.rowKey()];\n const next = new Set(this.selections());\n if (next.has(key)) next.delete(key);\n else next.add(key);\n this.selections.set(next);\n this.selectionsChange.emit(next);\n }\n\n toggleAllRows(event: Event) {\n const checked = (event.target as HTMLInputElement).checked;\n if (!checked || this.allSelected()) {\n this.selections.set(new Set());\n } else {\n const next = new Set(this.rows().map(r => r[this.rowKey()]));\n this.selections.set(next);\n }\n this.selectionsChange.emit(this.selections());\n }\n\n clearSelections() {\n this.selections.set(new Set());\n this.selectionsChange.emit(this.selections());\n }\n\n onRowClick(row: any) {\n this.rowClick.emit(row);\n this.resolvedOptions().onRowClick?.(row);\n }\n\n onSort(key: string) {\n this.sortChange.emit(key);\n }\n}\n","import { Component, input, model, computed, Output, EventEmitter, effect, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { NeuralAvatarComponent } from '../avatar/avatar.component';\nimport { NeuralLoadingIndicatorComponent } from '../loading-indicator/loading-indicator.component';\n\nexport interface MultiEmailOption {\n value: string;\n label: string;\n avatar?: string;\n disabled?: boolean;\n}\n\nfunction isValidEmail(email: string): boolean {\n return /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email.trim());\n}\n\n@Component({\n selector: 'neural-multi-email-input',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n NeuralAvatarComponent,\n NeuralLoadingIndicatorComponent\n ],\n template: `\n <div class=\"flex flex-col gap-1.5\">\n @if (label()) {\n <label class=\"text-p-sm-medium text-ink-gray-7\">\n {{ label() }}\n @if (required()) {\n <span class=\"text-ink-red-5\">*</span>\n }\n </label>\n }\n <div\n class=\"flex flex-wrap items-center gap-1.5 rounded-4 bg-surface-gray-2 px-1.5 py-1 transition-colors focus-within:ring-2 focus-within:ring-outline-gray-3\"\n [class.cursor-not-allowed]=\"disabled()\"\n [class.bg-surface-gray-1]=\"disabled()\"\n data-slot=\"control\"\n >\n <!-- Chips -->\n @for (chip of chips(); track chip.value) {\n <span\n class=\"inline-flex items-center gap-1 rounded-4 border border-outline-gray-1 bg-surface-base px-1.5 py-0.5 text-sm text-ink-gray-7 transition-colors\"\n [class.opacity-60]=\"disabled()\"\n >\n <neural-avatar\n [image]=\"chip.option?.avatar\"\n [label]=\"chip.label\"\n size=\"xs\"\n ></neural-avatar>\n <span class=\"truncate\">{{ chip.label }}</span>\n @if (!disabled()) {\n <button\n type=\"button\"\n class=\"-mr-0.5 inline-flex items-center justify-center rounded-1 p-0.5 text-ink-gray-5 opacity-70 transition hover:text-ink-gray-7 hover:opacity-100\"\n [attr.aria-label]=\"'Remove ' + chip.value\"\n (click)=\"removeAt(chip.index)\"\n >\n <span class=\"lucide-x size-3\"></span>\n </button>\n }\n </span>\n }\n\n <!-- Input -->\n <input\n type=\"email\"\n class=\"min-w-[6rem] flex-1 border-0 bg-transparent p-0.5 text-sm text-ink-gray-8 outline-none ring-0 placeholder:text-ink-gray-4 focus:ring-0 disabled:cursor-not-allowed\"\n [placeholder]=\"modelValue().length ? '' : placeholder()\"\n [disabled]=\"disabled()\"\n [(ngModel)]=\"inputQuery\"\n (ngModelChange)=\"onQueryChange($event)\"\n (keydown)=\"onKeydown($event)\"\n (paste)=\"onPaste($event)\"\n (focus)=\"dropdownOpen.set(true)\"\n (blur)=\"dropdownOpen.set(false)\"\n />\n </div>\n\n <!-- Dropdown -->\n @if (dropdownOpen() && (filteredSuggestions().length || showCreateOption() || loading())) {\n <div class=\"absolute z-[100] mt-1 min-w-full overflow-hidden rounded-6 bg-surface-elevation-2 shadow-2xl\">\n <div class=\"max-h-60 overflow-auto p-1\">\n @if (loading()) {\n <div class=\"flex items-center gap-2 px-2 py-1.5 text-base text-ink-gray-5\">\n <neural-loading-indicator class=\"size-4\"></neural-loading-indicator>\n <span>{{ loadingText() }}</span>\n </div>\n } @else {\n @if (showCreateOption()) {\n <button\n type=\"button\"\n class=\"w-full flex items-center gap-2 px-2 py-1.5 rounded-4 hover:bg-surface-gray-2 text-sm text-ink-gray-8\"\n (mousedown)=\"$event.preventDefault(); addEmail(inputQuery)\"\n >\n <span class=\"lucide-mail size-4 text-ink-gray-5\"></span>\n Add \"{{ inputQuery.trim() }}\"\n </button>\n }\n\n @for (option of filteredSuggestions(); track option.value) {\n <button\n type=\"button\"\n class=\"w-full flex items-center gap-2 px-2 py-1.5 rounded-4 hover:bg-surface-gray-2 text-sm text-ink-gray-8\"\n [disabled]=\"option.disabled\"\n (mousedown)=\"$event.preventDefault(); addEmail(option.value)\"\n >\n <neural-avatar [image]=\"option.avatar\" [label]=\"option.label\" size=\"sm\"></neural-avatar>\n <div class=\"flex-1 min-w-0\">\n <div class=\"truncate\">{{ option.label }}</div>\n @if (option.label !== option.value) {\n <div class=\"truncate text-xs text-ink-gray-4\">{{ option.value }}</div>\n }\n </div>\n </button>\n }\n\n @if (!showCreateOption() && !filteredSuggestions().length) {\n <div class=\"px-2 py-1.5 text-base text-ink-gray-5\">\n {{ emptyText() }}\n </div>\n }\n }\n </div>\n </div>\n }\n\n @if (description()) {\n <div class=\"text-p-sm text-ink-gray-5\">{{ description() }}</div>\n }\n @if (error()) {\n @for (line of errorLines(); track line) {\n <div class=\"text-p-sm text-ink-red-5\">{{ line }}</div>\n }\n }\n </div>\n `\n})\nexport class NeuralMultiEmailInputComponent {\n modelValue = model<string[]>([]);\n options = input<MultiEmailOption[]>([]);\n loading = input<boolean>(false);\n disabled = input<boolean>(false);\n placeholder = input<string>('Add email…');\n emptyText = input<string>('No results');\n loadingText = input<string>('Loading...');\n label = input<string>();\n description = input<string>();\n error = input<string | string[]>();\n required = input<boolean>(false);\n\n @Output() queryChange = new EventEmitter<string>();\n @Output() invalid = new EventEmitter<string>();\n\n inputQuery = '';\n dropdownOpen = signal(false);\n\n hasLabeling = computed(() => Boolean(this.label() || this.description() || this.error()));\n\n errorLines = computed(() => {\n const err = this.error();\n if (!err) return [];\n return Array.isArray(err) ? err : [err];\n });\n\n chips = computed(() =>\n this.modelValue().map((value, index) => {\n const option = this.options().find(o => o.value.toLowerCase() === value.toLowerCase()) ?? null;\n return { value, index, option, label: option?.label ?? value };\n })\n );\n\n selectedSet = computed(() => new Set(this.modelValue().map(v => v.toLowerCase())));\n\n filteredSuggestions = computed(() =>\n this.options().filter(o => !this.selectedSet().has(o.value.toLowerCase()))\n );\n\n showCreateOption = computed(() => {\n const q = this.inputQuery.trim();\n if (!q || !isValidEmail(q)) return false;\n if (this.selectedSet().has(q.toLowerCase())) return false;\n return !this.filteredSuggestions().some(o => o.value.toLowerCase() === q.toLowerCase());\n });\n\n onQueryChange(val: string) {\n this.queryChange.emit(val);\n }\n\n onKeydown(event: KeyboardEvent) {\n const q = this.inputQuery.trim();\n if (event.key === 'Enter') {\n event.preventDefault();\n if (q && isValidEmail(q)) {\n this.addEmail(q);\n } else if (q) {\n this.invalid.emit(q);\n }\n }\n if (event.key === 'Backspace' && !this.inputQuery && this.modelValue().length) {\n this.removeAt(this.modelValue().length - 1);\n }\n }\n\n onPaste(event: ClipboardEvent) {\n const text = event.clipboardData?.getData('text');\n if (!text || !/[,;\\n\\r\\t]/.test(text)) return;\n event.preventDefault();\n const seen = new Set(this.selectedSet());\n const additions: string[] = [];\n for (const token of text.split(/[,;\\n\\r\\t]/)) {\n const email = token.trim().replace(/^.*<(.+)>.*$/, '$1').trim();\n if (!email || !isValidEmail(email)) continue;\n const lc = email.toLowerCase();\n if (seen.has(lc)) continue;\n seen.add(lc);\n additions.push(email);\n }\n if (additions.length) {\n this.modelValue.set([...this.modelValue(), ...additions]);\n }\n this.inputQuery = '';\n }\n\n addEmail(email: string) {\n const trimmed = email.trim();\n if (!trimmed || !isValidEmail(trimmed)) return;\n if (this.selectedSet().has(trimmed.toLowerCase())) return;\n this.modelValue.set([...this.modelValue(), trimmed]);\n this.inputQuery = '';\n }\n\n removeAt(index: number) {\n const next = [...this.modelValue()];\n next.splice(index, 1);\n this.modelValue.set(next);\n }\n\n focus() {\n // implemented via template ref if needed\n }\n\n reset() {\n this.modelValue.set([]);\n }\n}\n","import { Component, input, model, computed, signal, Output, EventEmitter, OnInit, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport type CalendarView = 'Month' | 'Week' | 'Day';\n\nexport interface CalendarEvent {\n id: string;\n title: string;\n fromDate: string;\n toDate: string;\n fromTime?: string;\n toTime?: string;\n color?: string;\n allDay?: boolean;\n [key: string]: any;\n}\n\nconst MONTH_NAMES = ['January','February','March','April','May','June','July','August','September','October','November','December'];\nconst DAY_NAMES = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'];\n\nfunction getCalendarDates(month: number, year: number): Date[] {\n const firstDay = new Date(year, month, 1);\n const lastDay = new Date(year, month + 1, 0);\n const dates: Date[] = [];\n\n // Fill leading days from prev month\n for (let i = firstDay.getDay(); i > 0; i--) {\n dates.push(new Date(year, month, 1 - i));\n }\n // Current month days\n for (let d = 1; d <= lastDay.getDate(); d++) {\n dates.push(new Date(year, month, d));\n }\n // Fill trailing days\n const remaining = 42 - dates.length;\n for (let i = 1; i <= remaining; i++) {\n dates.push(new Date(year, month + 1, i));\n }\n return dates;\n}\n\nfunction isSameDay(a: Date, b: Date): boolean {\n return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();\n}\n\nfunction dateStr(d: Date): string {\n return d.toISOString().slice(0, 10);\n}\n\n@Component({\n selector: 'neural-calendar',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div class=\"flex h-full flex-col\">\n <!-- Header -->\n <div class=\"mb-2 flex justify-between items-center\">\n <span class=\"text-lg font-medium text-ink-gray-7\">\n {{ currentMonthYear() }}\n </span>\n <div class=\"flex gap-x-1 items-center\">\n <button type=\"button\" class=\"p-1.5 rounded-4 hover:bg-surface-gray-2 text-ink-gray-5\" (click)=\"decrement()\">\n <span class=\"lucide-chevron-left size-4\"></span>\n </button>\n <button type=\"button\" class=\"px-3 py-1 rounded-4 hover:bg-surface-gray-2 text-sm text-ink-gray-7\" (click)=\"goToToday()\">Today</button>\n <button type=\"button\" class=\"p-1.5 rounded-4 hover:bg-surface-gray-2 text-ink-gray-5\" (click)=\"increment()\">\n <span class=\"lucide-chevron-right size-4\"></span>\n </button>\n\n <!-- View selector -->\n <div class=\"ml-2 flex gap-1 rounded-4 border border-outline-gray-2 p-0.5\">\n @for (v of enabledViews(); track v) {\n <button\n type=\"button\"\n class=\"px-3 py-1 rounded-3 text-sm transition-colors duration-100\"\n [class]=\"activeView() === v ? 'bg-surface-base text-ink-gray-8 shadow-sm' : 'text-ink-gray-5 hover:text-ink-gray-7'\"\n (click)=\"activeView.set(v)\"\n >{{ v }}</button>\n }\n </div>\n </div>\n </div>\n\n <!-- Month view -->\n @if (activeView() === 'Month') {\n <div class=\"flex-1 overflow-auto\">\n <!-- Day names header -->\n <div class=\"grid grid-cols-7 text-center\">\n @for (d of dayNames; track d) {\n <div class=\"py-2 text-xs font-medium text-ink-gray-4 uppercase\">{{ d }}</div>\n }\n </div>\n <!-- Calendar grid -->\n <div class=\"grid grid-cols-7 border-l border-t border-outline-gray-1\">\n @for (date of monthDates(); track date.toISOString()) {\n <div\n class=\"min-h-[80px] border-b border-r border-outline-gray-1 p-1 cursor-pointer hover:bg-surface-gray-1 transition-colors\"\n [class.bg-surface-gray-1]=\"date.getMonth() !== currentMonth()\"\n [class.bg-blue-50]=\"isToday(date)\"\n (click)=\"onDateClick($event, date)\"\n >\n <div\n class=\"w-6 h-6 flex items-center justify-center rounded-full text-xs mb-1\"\n [class]=\"isToday(date) ? 'bg-blue-500 text-white font-semibold' : date.getMonth() !== currentMonth() ? 'text-ink-gray-3' : 'text-ink-gray-7'\"\n >\n {{ date.getDate() }}\n </div>\n\n <!-- Events -->\n @for (evt of eventsOnDate(date); track evt.id) {\n <div\n class=\"truncate rounded-2 px-1 py-0.5 text-xs text-white mb-0.5 cursor-pointer\"\n [style.background]=\"evt.color || '#3b82f6'\"\n (click)=\"$event.stopPropagation(); eventClick.emit(evt)\"\n >\n {{ evt.title }}\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Week view -->\n @if (activeView() === 'Week') {\n <div class=\"flex-1 overflow-auto\">\n <div class=\"grid grid-cols-7 text-center border-b border-outline-gray-1\">\n @for (d of currentWeekDates(); track d.toISOString()) {\n <div class=\"py-2 text-xs font-medium text-ink-gray-5 border-r border-outline-gray-1 last:border-r-0\">\n <div>{{ dayNames[d.getDay()] }}</div>\n <div [class]=\"isToday(d) ? 'text-blue-500 font-bold' : 'text-ink-gray-7'\">{{ d.getDate() }}</div>\n </div>\n }\n </div>\n <div class=\"grid grid-cols-7 border-l border-outline-gray-1\">\n @for (d of currentWeekDates(); track d.toISOString()) {\n <div\n class=\"min-h-[400px] border-b border-r border-outline-gray-1 p-1 cursor-pointer hover:bg-surface-gray-1\"\n [class.bg-blue-50]=\"isToday(d)\"\n (click)=\"onDateClick($event, d)\"\n >\n @for (evt of eventsOnDate(d); track evt.id) {\n <div\n class=\"truncate rounded-2 px-1 py-0.5 text-xs text-white mb-0.5\"\n [style.background]=\"evt.color || '#3b82f6'\"\n (click)=\"$event.stopPropagation(); eventClick.emit(evt)\"\n >{{ evt.title }}</div>\n }\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Day view -->\n @if (activeView() === 'Day') {\n <div class=\"flex-1 overflow-auto\">\n <div class=\"text-center py-3 border-b border-outline-gray-1 font-medium text-ink-gray-7\">\n {{ dayNames[selectedDay().getDay()] }}, {{ selectedDay().getDate() }} {{ MONTH_NAMES[selectedDay().getMonth()] }} {{ selectedDay().getFullYear() }}\n </div>\n <div class=\"p-3 min-h-[400px] cursor-pointer hover:bg-surface-gray-1\" (click)=\"onDateClick($event, selectedDay())\">\n @for (evt of eventsOnDate(selectedDay()); track evt.id) {\n <div\n class=\"rounded-4 px-3 py-2 text-sm text-white mb-2\"\n [style.background]=\"evt.color || '#3b82f6'\"\n (click)=\"$event.stopPropagation(); eventClick.emit(evt)\"\n >\n <div class=\"font-medium\">{{ evt.title }}</div>\n @if (evt.fromTime) {\n <div class=\"text-xs opacity-80\">{{ evt.fromTime }} – {{ evt.toTime }}</div>\n }\n </div>\n }\n @if (!eventsOnDate(selectedDay()).length) {\n <div class=\"flex items-center justify-center h-40 text-sm text-ink-gray-4\">No events</div>\n }\n </div>\n </div>\n }\n </div>\n `\n})\nexport class NeuralCalendarComponent implements OnInit, OnDestroy {\n events = input<CalendarEvent[]>([]);\n defaultView = input<CalendarView>('Month');\n disableViews = input<CalendarView[]>([]);\n\n @Output() eventClick = new EventEmitter<CalendarEvent>();\n @Output() dateClick = new EventEmitter<{ date: Date; event?: MouseEvent }>();\n @Output() create = new EventEmitter<CalendarEvent>();\n @Output() update = new EventEmitter<CalendarEvent>();\n @Output() delete = new EventEmitter<string>();\n\n activeView = signal<CalendarView>('Month');\n private today = new Date();\n\n currentYear = signal(this.today.getFullYear());\n currentMonth = signal(this.today.getMonth());\n selectedDay = signal(new Date());\n\n dayNames = DAY_NAMES;\n MONTH_NAMES = MONTH_NAMES;\n\n private keyHandler = this.handleKey.bind(this);\n\n enabledViews = computed<CalendarView[]>(() => {\n const all: CalendarView[] = ['Month', 'Week', 'Day'];\n return all.filter(v => !this.disableViews().includes(v));\n });\n\n monthDates = computed(() => getCalendarDates(this.currentMonth(), this.currentYear()));\n\n currentWeekDates = computed(() => {\n const d = this.selectedDay();\n const dow = d.getDay();\n const start = new Date(d);\n start.setDate(d.getDate() - dow);\n return Array.from({ length: 7 }, (_, i) => {\n const day = new Date(start);\n day.setDate(start.getDate() + i);\n return day;\n });\n });\n\n currentMonthYear = computed(() => {\n const v = this.activeView();\n if (v === 'Day') {\n const d = this.selectedDay();\n return `${DAY_NAMES[d.getDay()]}, ${d.getDate()} ${MONTH_NAMES[d.getMonth()]} ${d.getFullYear()}`;\n }\n if (v === 'Week') {\n const dates = this.currentWeekDates();\n const first = dates[0];\n const last = dates[6];\n if (first.getMonth() === last.getMonth()) {\n return `${MONTH_NAMES[first.getMonth()]} ${first.getFullYear()}`;\n }\n return `${MONTH_NAMES[first.getMonth()].slice(0, 3)} – ${MONTH_NAMES[last.getMonth()].slice(0, 3)} ${last.getFullYear()}`;\n }\n return `${MONTH_NAMES[this.currentMonth()]} ${this.currentYear()}`;\n });\n\n ngOnInit() {\n this.activeView.set(this.defaultView());\n window.addEventListener('keydown', this.keyHandler);\n }\n\n ngOnDestroy() {\n window.removeEventListener('keydown', this.keyHandler);\n }\n\n handleKey(e: KeyboardEvent) {\n const target = e.target as HTMLElement;\n if (target?.tagName === 'INPUT' || target?.tagName === 'TEXTAREA' || target?.isContentEditable) return;\n if (e.key.toLowerCase() === 'm') this.activeView.set('Month');\n if (e.key.toLowerCase() === 'w') this.activeView.set('Week');\n if (e.key.toLowerCase() === 'd') this.activeView.set('Day');\n if (e.key.toLowerCase() === 't') this.goToToday();\n if (e.key === 'ArrowLeft') this.decrement();\n if (e.key === 'ArrowRight') this.increment();\n }\n\n isToday(date: Date) { return isSameDay(date, this.today); }\n\n eventsOnDate(date: Date): CalendarEvent[] {\n const ds = dateStr(date);\n return this.events().filter(e => {\n return e.fromDate <= ds && ds <= (e.toDate || e.fromDate);\n });\n }\n\n goToToday() {\n const now = new Date();\n this.currentYear.set(now.getFullYear());\n this.currentMonth.set(now.getMonth());\n this.selectedDay.set(now);\n }\n\n increment() {\n const v = this.activeView();\n if (v === 'Month') {\n let m = this.currentMonth() + 1;\n let y = this.currentYear();\n if (m > 11) { m = 0; y++; }\n this.currentMonth.set(m);\n this.currentYear.set(y);\n } else if (v === 'Week') {\n const d = new Date(this.selectedDay());\n d.setDate(d.getDate() + 7);\n this.selectedDay.set(d);\n } else {\n const d = new Date(this.selectedDay());\n d.setDate(d.getDate() + 1);\n this.selectedDay.set(d);\n }\n }\n\n decrement() {\n const v = this.activeView();\n if (v === 'Month') {\n let m = this.currentMonth() - 1;\n let y = this.currentYear();\n if (m < 0) { m = 11; y--; }\n this.currentMonth.set(m);\n this.currentYear.set(y);\n } else if (v === 'Week') {\n const d = new Date(this.selectedDay());\n d.setDate(d.getDate() - 7);\n this.selectedDay.set(d);\n } else {\n const d = new Date(this.selectedDay());\n d.setDate(d.getDate() - 1);\n this.selectedDay.set(d);\n }\n }\n\n onDateClick(event: MouseEvent, date: Date) {\n this.selectedDay.set(date);\n this.dateClick.emit({ date, event });\n }\n}\n","import {\n Component, input, model, computed, Output, EventEmitter,\n ElementRef, ViewChild, AfterViewInit, OnDestroy, effect\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Editor } from '@tiptap/core';\nimport StarterKit from '@tiptap/starter-kit';\nimport { Placeholder } from '@tiptap/extensions';\n\n// Note: TextEditor is deprecated in Frappe UI, but migrated for faithful parity.\n// For new projects, consider using the /editor module with RichTextKit.\n\n@Component({\n selector: 'neural-text-editor',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div class=\"relative w-full\">\n <!-- Fixed menu placeholder -->\n @if (fixedMenu()) {\n <div class=\"w-full overflow-x-auto rounded-t-6 border border-b-0 border-outline-elevation-2 bg-surface-elevation-1 px-2 py-1 flex flex-wrap gap-1\">\n @for (btn of menuButtons; track btn.label) {\n <button\n type=\"button\"\n class=\"px-2 py-1 text-xs rounded-3 text-ink-gray-6 hover:bg-surface-gray-2 hover:text-ink-gray-8 transition-colors\"\n (click)=\"applyFormat(btn.cmd)\"\n >\n {{ btn.label }}\n </button>\n }\n </div>\n }\n\n <!-- Editor mount point -->\n <div\n #editorEl\n class=\"prose prose-sm max-w-none min-h-[6rem] focus:outline-none\"\n [class.border]=\"bordered()\"\n [class.rounded-6]=\"bordered()\"\n [class.border-outline-elevation-2]=\"bordered()\"\n [class.p-3]=\"bordered()\"\n ></div>\n </div>\n `\n})\nexport class NeuralTextEditorComponent implements AfterViewInit, OnDestroy {\n content = model<string>('');\n placeholder = input<string>('');\n editable = input<boolean>(true);\n autofocus = input<boolean>(false);\n fixedMenu = input<boolean | string[]>(false);\n bordered = input<boolean>(true);\n\n @Output() change = new EventEmitter<string>();\n @Output() blur = new EventEmitter<FocusEvent>();\n @Output() focus = new EventEmitter<FocusEvent>();\n\n @ViewChild('editorEl') editorEl!: ElementRef<HTMLDivElement>;\n\n private editorInstance: Editor | null = null;\n private syncingFromProp = false;\n\n menuButtons = [\n { label: 'B', cmd: 'bold' },\n { label: 'I', cmd: 'italic' },\n { label: 'S', cmd: 'strike' },\n { label: 'Code', cmd: 'code' },\n { label: 'H1', cmd: 'h1' },\n { label: 'H2', cmd: 'h2' },\n { label: 'H3', cmd: 'h3' },\n { label: 'UL', cmd: 'bulletList' },\n { label: 'OL', cmd: 'orderedList' },\n { label: 'Quote', cmd: 'blockquote' },\n { label: '---', cmd: 'hr' },\n ];\n\n constructor() {\n effect(() => {\n const val = this.content();\n if (!this.editorInstance) return;\n const current = this.editorInstance.getHTML();\n if (current !== val) {\n this.syncingFromProp = true;\n this.editorInstance.commands.setContent(val || null);\n this.syncingFromProp = false;\n }\n });\n\n effect(() => {\n const editable = this.editable();\n this.editorInstance?.setEditable(editable);\n });\n }\n\n ngAfterViewInit() {\n const placeholderText = this.placeholder();\n\n this.editorInstance = new Editor({\n element: this.editorEl.nativeElement,\n content: this.content() || null,\n editable: this.editable(),\n autofocus: this.autofocus(),\n extensions: [\n StarterKit,\n ...(placeholderText ? [Placeholder.configure({\n placeholder: typeof placeholderText === 'function'\n ? placeholderText\n : () => placeholderText\n })] : [])\n ],\n onUpdate: ({ editor }) => {\n if (!this.syncingFromProp) {\n const html = editor.getHTML();\n this.content.set(html);\n this.change.emit(html);\n }\n },\n onFocus: ({ event }) => this.focus.emit(event),\n onBlur: ({ event }) => this.blur.emit(event),\n });\n }\n\n ngOnDestroy() {\n this.editorInstance?.destroy();\n this.editorInstance = null;\n }\n\n applyFormat(cmd: string) {\n if (!this.editorInstance) return;\n const chain = this.editorInstance.chain().focus();\n switch (cmd) {\n case 'bold': chain.toggleBold().run(); break;\n case 'italic': chain.toggleItalic().run(); break;\n case 'strike': chain.toggleStrike().run(); break;\n case 'code': chain.toggleCode().run(); break;\n case 'h1': chain.toggleHeading({ level: 1 }).run(); break;\n case 'h2': chain.toggleHeading({ level: 2 }).run(); break;\n case 'h3': chain.toggleHeading({ level: 3 }).run(); break;\n case 'bulletList': chain.toggleBulletList().run(); break;\n case 'orderedList': chain.toggleOrderedList().run(); break;\n case 'blockquote': chain.toggleBlockquote().run(); break;\n case 'hr': chain.setHorizontalRule().run(); break;\n }\n }\n\n getEditor() { return this.editorInstance; }\n}\n","/*\n * Public API Surface of neural-ui-kit\n */\n\nexport * from './lib/button/button.component';\nexport * from './lib/alert/alert.component';\nexport * from './lib/avatar/avatar.component';\nexport * from './lib/badge/badge.component';\nexport * from './lib/checkbox/checkbox.component';\nexport * from './lib/popover/popover.component';\nexport * from './lib/dropdown/dropdown.component';\nexport * from './lib/breadcrumbs/breadcrumbs.component';\nexport * from './lib/bottom-sheet/bottom-sheet.component';\nexport * from './lib/text-input/text-input.component';\nexport * from './lib/textarea/textarea.component';\nexport * from './lib/error-message/error-message.component';\nexport * from './lib/form-control/form-control.component';\nexport * from './lib/radio/radio.component';\nexport * from './lib/switch/switch.component';\nexport * from './lib/icon/icon.component';\nexport * from './lib/spinner/spinner.component';\nexport * from './lib/loading-indicator/loading-indicator.component';\nexport * from './lib/loading-text/loading-text.component';\nexport * from './lib/divider/divider.component';\nexport * from './lib/form-label/form-label.component';\nexport * from './lib/tooltip/tooltip.component';\nexport * from './lib/dialog/dialog.component';\nexport * from './lib/tabs/tabs.component';\nexport * from './lib/progress/progress.component';\nexport * from './lib/skeleton/skeleton.component';\nexport * from './lib/rating/rating.component';\nexport * from './lib/slider/slider.component';\nexport * from './lib/scroll-area/scroll-area.component';\nexport * from './lib/select/select.component';\nexport * from './lib/sidebar/sidebar.components';\nexport * from './lib/toast/toast';\nexport * from './lib/password/password.component';\nexport * from './lib/combobox/combobox.component';\nexport * from './lib/multi-select/multi-select.component';\nexport * from './lib/file-uploader/file-uploader.component';\nexport * from './lib/hover-card/hover-card.component';\nexport * from './lib/context-menu/context-menu.component';\nexport * from './lib/date-picker/date-picker.component';\nexport * from './lib/desktop-shell/desktop-shell.component';\nexport * from './lib/duration/duration.component';\nexport * from './lib/input-labeling/input-labeling.components';\nexport * from './lib/item-list-row/item-list-row.component';\nexport * from './lib/keyboard-shortcut/keyboard-shortcut.component';\nexport * from './lib/menu/menu.component';\nexport * from './lib/mobile-nav/mobile-nav.components';\nexport * from './lib/mobile-shell/mobile-shell.component';\nexport * from './lib/page-header/page-header.component';\nexport * from './lib/rail/rail.components';\nexport * from './lib/settings-dialog/settings-dialog.components';\nexport * from './lib/theme-switcher/theme-switcher.component';\nexport * from './lib/time-picker/time-picker.component';\nexport * from './lib/tree/tree.components';\nexport * from './lib/accordion/accordion.component';\nexport * from './lib/charts/charts.components';\nexport * from './lib/charts/echarts.component';\nexport * from './lib/charts/types';\nexport * from './lib/code-editor/code-editor.component';\nexport * from './lib/code-editor/code-preview.component';\nexport * from './lib/command-palette/command-palette.component';\nexport * from './lib/floating-window/floating-window.component';\nexport * from './lib/list-view/list-view.component';\nexport * from './lib/multi-email-input/multi-email-input.component';\nexport * from './lib/calendar/calendar.component';\nexport * from './lib/text-editor/text-editor.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","useFunnelChartOptions"],"mappings":"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"}