{"version":3,"file":"edsis-component-form.mjs","sources":["../../../library/component/form/form-field.context.ts","../../../library/component/form/form-field.component.ts","../../../library/component/form/form-fieldset.component.ts","../../../library/component/form/form-legend.component.ts","../../../library/component/form/form-group.component.ts","../../../library/component/form/form-separator.component.ts","../../../library/component/form/form-content.component.ts","../../../library/component/form/form-title.component.ts","../../../library/component/form/form-label.component.ts","../../../library/component/form/form-description.component.ts","../../../library/component/form/form-message.component.ts","../../../library/component/form/form-control.directive.ts","../../../library/component/form/edsis-component-form.ts"],"sourcesContent":["import { computed, effect, signal, Service } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { uniqueId } from '@edsis/component/id';\n\n/**\n * Backing store for a single `<FormField>`. Provided on the component\n * so descendant parts (label, description, message, control) can inject it.\n */\n@Service({ autoProvided: false })\nexport class FormFieldContext {\n  readonly controlId = uniqueId('FormField');\n  readonly descriptionId = `${this.controlId}-description`;\n  readonly messageId = `${this.controlId}-message`;\n\n  readonly control = signal<AbstractControl | null>(null);\n  readonly manualInvalid = signal(false);\n  readonly hasDescription = signal(false);\n  readonly hasMessage = signal(false);\n\n  private readonly statusTick = signal(0);\n\n  readonly invalid = computed(() => {\n    this.statusTick();\n    const c = this.control();\n    return this.manualInvalid() || (!!c && c.invalid && (c.touched || c.dirty));\n  });\n\n  readonly firstError = computed<string | null>(() => {\n    this.statusTick();\n    const c = this.control();\n    if (!c?.errors) return null;\n    const keys = Object.keys(c.errors);\n    return keys.length > 0 ? keys[0]! : null;\n  });\n\n  readonly describedBy = computed(() => {\n    const parts: string[] = [];\n    if (this.hasDescription()) parts.push(this.descriptionId);\n    if (this.hasMessage() && this.invalid()) parts.push(this.messageId);\n    return parts.length > 0 ? parts.join(' ') : null;\n  });\n\n  constructor() {\n    // Re-run computed() above whenever the control's status or interaction state changes.\n    effect((onCleanup) => {\n      const c = this.control();\n      if (!c) return;\n      const sub = c.events.subscribe(() => this.statusTick.update((n) => n + 1));\n      onCleanup(() => sub.unsubscribe());\n    });\n  }\n}\n","import { booleanAttribute, Component, computed, effect, inject, input } from '@angular/core';\nimport { cn } from '@edsis/component/class';\nimport { FormFieldContext } from './form-field.context';\n\n/**\n * Groups a label, control, description, and validation message.\n * Provides ids + invalid state to descendants via {@link FormFieldContext}.\n */\n@Component({\n  selector: 'FormField',\n  providers: [FormFieldContext],\n  host: {\n    '[class]': 'classes()',\n    '[attr.data-orientation]': 'orientation()',\n    '[attr.data-invalid]': 'ctx.invalid() ? \"\" : null',\n    '[attr.role]': '\"group\"',\n  },\n  template: `<ng-content />`,\n})\nexport class FormFieldComponent {\n  protected readonly ctx = inject(FormFieldContext);\n\n  readonly class = input<string>('');\n  readonly orientation = input<'vertical' | 'horizontal' | 'responsive'>('vertical');\n  readonly invalid = input(false, { transform: booleanAttribute });\n\n  protected readonly classes = computed(() => {\n    const orientation = this.orientation();\n\n    return cn(\n      'block min-w-0',\n      orientation === 'vertical' && 'flex flex-col gap-2',\n      orientation === 'horizontal' && 'flex items-start gap-3',\n      orientation === 'responsive' &&\n        'flex flex-col gap-3 sm:grid sm:grid-cols-[minmax(0,12rem)_minmax(0,1fr)] sm:items-start',\n      this.class(),\n    );\n  });\n\n  constructor() {\n    effect(() => this.ctx.manualInvalid.set(this.invalid()));\n  }\n}\n","import { Component, computed, input } from '@angular/core';\nimport { cn } from '@edsis/component/class';\n\n@Component({\n  selector: 'FormFieldset, fieldset[FormFieldset]',\n  host: {\n    '[class]': 'classes()',\n  },\n  template: `<ng-content />`,\n})\nexport class FormFieldsetComponent {\n  readonly class = input<string>('');\n\n  protected readonly classes = computed(() =>\n    cn('block min-w-0 border-0 p-0 m-0', 'grid gap-4', this.class()),\n  );\n}\n","import { Component, computed, input } from '@angular/core';\nimport { cn } from '@edsis/component/class';\n\n@Component({\n  selector: 'FormLegend, legend[FormLegend]',\n  host: {\n    '[class]': 'classes()',\n  },\n  template: `<ng-content />`,\n})\nexport class FormLegendComponent {\n  readonly class = input<string>('');\n  readonly variant = input<'legend' | 'label'>('legend');\n\n  protected readonly classes = computed(() =>\n    cn(\n      'block min-w-0 text-foreground',\n      this.variant() === 'label'\n        ? 'text-sm font-medium leading-none'\n        : 'text-sm font-semibold leading-none',\n      this.class(),\n    ),\n  );\n}\n","import { Component, computed, input } from '@angular/core';\nimport { cn } from '@edsis/component/class';\n\n@Component({\n  selector: 'FormGroup',\n  host: {\n    '[class]': 'classes()',\n  },\n  template: `<ng-content />`,\n})\nexport class FormGroupComponent {\n  readonly class = input<string>('');\n\n  protected readonly classes = computed(() => cn('block min-w-0', 'grid gap-6', this.class()));\n}\n","import { Component, computed, input } from '@angular/core';\nimport { cn } from '@edsis/component/class';\n\n@Component({\n  selector: 'FormSeparator',\n  host: {\n    '[class]': 'classes()',\n  },\n  template: `<span class=\"shrink-0\"><ng-content /></span>`,\n})\nexport class FormSeparatorComponent {\n  readonly class = input<string>('');\n\n  protected readonly classes = computed(() =>\n    cn(\n      'block min-w-0',\n      'flex items-center gap-3 text-xs font-medium uppercase tracking-[0.24em] text-muted-foreground',\n      'before:h-px before:flex-1 before:bg-border after:h-px after:flex-1 after:bg-border',\n      this.class(),\n    ),\n  );\n}\n","import { Component, computed, input } from '@angular/core';\nimport { cn } from '@edsis/component/class';\n\n@Component({\n  selector: 'FormContent',\n  host: {\n    '[class]': 'classes()',\n  },\n  template: `<ng-content />`,\n})\nexport class FormContentComponent {\n  readonly class = input<string>('');\n\n  protected readonly classes = computed(() =>\n    cn('block min-w-0 flex-1', 'grid gap-1.5', this.class()),\n  );\n}\n","import { Component, computed, input } from '@angular/core';\nimport { cn } from '@edsis/component/class';\n\n@Component({\n  selector: 'FormTitle',\n  host: {\n    '[class]': 'classes()',\n  },\n  template: `<ng-content />`,\n})\nexport class FormTitleComponent {\n  readonly class = input<string>('');\n\n  protected readonly classes = computed(() =>\n    cn('block text-sm font-medium leading-none text-foreground', this.class()),\n  );\n}\n","import { Component, computed, inject, input } from '@angular/core';\nimport { cn } from '@edsis/component/class';\nimport { FormFieldContext } from './form-field.context';\n\n@Component({\n  selector: 'FormLabel, label[FormLabel]',\n  host: {\n    '[class]': 'classes()',\n    '[attr.for]': 'ctx.controlId',\n  },\n  template: `<ng-content />`,\n})\nexport class FormLabelComponent {\n  protected readonly ctx = inject(FormFieldContext);\n  readonly class = input<string>('');\n\n  protected readonly classes = computed(() =>\n    cn(\n      'text-sm font-medium leading-none',\n      this.ctx.invalid() ? 'text-destructive' : 'text-foreground',\n      'peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n      this.class(),\n    ),\n  );\n}\n","import { Component, computed, inject, input, OnDestroy, OnInit } from '@angular/core';\nimport { cn } from '@edsis/component/class';\nimport { FormFieldContext } from './form-field.context';\n\n@Component({\n  selector: 'FormDescription, p[FormDescription]',\n  host: {\n    '[class]': 'classes()',\n    '[attr.id]': 'descriptionId()',\n  },\n  template: `<ng-content />`,\n})\nexport class FormDescriptionComponent implements OnInit, OnDestroy {\n  protected readonly ctx = inject(FormFieldContext, { optional: true });\n  readonly class = input<string>('');\n\n  protected readonly classes = computed(() => cn('text-sm text-muted-foreground', this.class()));\n  protected readonly descriptionId = computed(() => this.ctx?.descriptionId ?? null);\n\n  ngOnInit(): void {\n    this.ctx?.hasDescription.set(true);\n  }\n\n  ngOnDestroy(): void {\n    this.ctx?.hasDescription.set(false);\n  }\n}\n","import { Component, computed, inject, input, OnDestroy, OnInit } from '@angular/core';\nimport { cn } from '@edsis/component/class';\nimport { FormFieldContext } from './form-field.context';\n\n/**\n * Renders validation errors for the field's control.\n * By default, surfaces the first error key. Provide custom content to override.\n */\n@Component({\n  selector: 'FormMessage, p[FormMessage]',\n  host: {\n    '[class]': 'classes()',\n    '[attr.id]': 'ctx.messageId',\n    '[attr.role]': '\"alert\"',\n    '[attr.aria-live]': '\"polite\"',\n  },\n  template: `\n    @if (show()) {\n      <ng-content>{{ ctx.firstError() }}</ng-content>\n    }\n  `,\n})\nexport class FormMessageComponent implements OnInit, OnDestroy {\n  protected readonly ctx = inject(FormFieldContext);\n  readonly class = input<string>('');\n\n  protected readonly show = computed(() => this.ctx.invalid());\n  protected readonly classes = computed(() =>\n    cn('text-sm font-medium text-destructive', this.class()),\n  );\n\n  ngOnInit(): void {\n    this.ctx.hasMessage.set(true);\n  }\n\n  ngOnDestroy(): void {\n    this.ctx.hasMessage.set(false);\n  }\n}\n","import { Directive, OnInit, inject } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { FormFieldContext } from './form-field.context';\n\n/**\n * Attach to the native form control inside a `<FormField>` to auto-wire:\n *  - `id` ↔ `<FormLabel for>`\n *  - `aria-describedby` ↔ description + error message\n *  - `aria-invalid` ↔ control validity (after touch/dirty)\n *\n * @example\n * <FormField>\n *   <FormLabel>Email</FormLabel>\n *   <input Input FormControl [formControl]=\"email\" />\n *   <FormDescription>We'll never share it.</FormDescription>\n *   <FormMessage />\n * </FormField>\n */\n@Directive({\n  selector: '[FormControl]',\n  host: {\n    '[attr.id]': 'ctx.controlId',\n    '[attr.aria-describedby]': 'ctx.describedBy()',\n    '[attr.aria-invalid]': 'ctx.invalid() ? \"true\" : null',\n  },\n})\nexport class FormControlDirective implements OnInit {\n  protected readonly ctx = inject(FormFieldContext);\n  private readonly ngControl = inject(NgControl, { optional: true, self: true });\n\n  ngOnInit(): void {\n    if (this.ngControl?.control) {\n      this.ctx.control.set(this.ngControl.control);\n    }\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}