{"version":3,"file":"ngx-com-components-separator.mjs","sources":["../../../projects/com/components/separator/separator.variants.ts","../../../projects/com/components/separator/separator.directive.ts","../../../projects/com/components/separator/index.ts","../../../projects/com/components/separator/ngx-com-components-separator.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\n/**\n * Orientation type for separator direction.\n */\nexport type SeparatorOrientation = 'horizontal' | 'vertical';\n\n/**\n * Variant type for separator appearance.\n */\nexport type SeparatorVariant = 'default' | 'subtle';\n\n/**\n * CVA variants for the separator directive.\n *\n * @tokens `--color-border`, `--color-border-subtle`\n */\nexport const separatorVariants: (props?: {\n  orientation?: SeparatorOrientation;\n  variant?: SeparatorVariant;\n}) => string = cva(\n  ['com-separator', 'shrink-0'],\n  {\n    variants: {\n      orientation: {\n        horizontal: 'border-t border-l-0 w-full h-0',\n        vertical: 'border-l border-t-0 h-full w-0',\n      },\n      variant: {\n        default: 'border-border',\n        subtle: 'border-border-subtle',\n      },\n    },\n    defaultVariants: {\n      orientation: 'horizontal',\n      variant: 'default',\n    },\n  }\n);\n\nexport type SeparatorVariants = VariantProps<typeof separatorVariants>;\n","import {\n  booleanAttribute,\n  computed,\n  Directive,\n  input,\n} from '@angular/core';\nimport type { InputSignal, InputSignalWithTransform, Signal } from '@angular/core';\nimport { mergeClasses } from './separator.utils';\nimport { separatorVariants } from './separator.variants';\nimport type { SeparatorOrientation, SeparatorVariant } from './separator.variants';\n\n/**\n * Separator directive — applies a visual divider to any host element.\n *\n * Works on `<hr>`, `<div>`, or any other element. Supports horizontal and\n * vertical orientations, a subtle color variant, and a decorative mode that\n * hides the separator from assistive technology.\n *\n * @tokens `--color-border`, `--color-border-subtle`\n *\n * @example Horizontal divider\n * ```html\n * <hr comSeparator />\n * ```\n *\n * @example Vertical divider\n * ```html\n * <div comSeparator orientation=\"vertical\" class=\"h-6\"></div>\n * ```\n *\n * @example Subtle variant\n * ```html\n * <hr comSeparator variant=\"subtle\" />\n * ```\n *\n * @example Decorative (hidden from screen readers)\n * ```html\n * <hr comSeparator decorative />\n * ```\n */\n@Directive({\n  selector: '[comSeparator]',\n  exportAs: 'comSeparator',\n  host: {\n    '[class]': 'computedClass()',\n    '[attr.role]': 'computedRole()',\n    '[attr.aria-orientation]': 'computedAriaOrientation()',\n    '[attr.aria-hidden]': 'computedAriaHidden()',\n  },\n})\nexport class ComSeparator {\n  /** Direction of the separator line */\n  readonly orientation: InputSignal<SeparatorOrientation> = input<SeparatorOrientation>('horizontal');\n\n  /** Color intensity — `default` uses border-border, `subtle` uses border-border-subtle */\n  readonly variant: InputSignal<SeparatorVariant> = input<SeparatorVariant>('default');\n\n  /** When true, hides the separator from assistive technology */\n  readonly decorative: InputSignalWithTransform<boolean, unknown> = input(false, { transform: booleanAttribute });\n\n  /** Consumer CSS classes — merged with variant classes via mergeClasses() */\n  readonly userClass: InputSignal<string> = input<string>('', { alias: 'class' });\n\n  /** @internal Computed host class from CVA + consumer overrides */\n  protected readonly computedClass: Signal<string> = computed(() =>\n    mergeClasses(\n      separatorVariants({\n        orientation: this.orientation(),\n        variant: this.variant(),\n      }),\n      this.userClass()\n    )\n  );\n\n  /** @internal Role attribute — separator when semantic, none when decorative */\n  protected readonly computedRole: Signal<string> = computed(() =>\n    this.decorative() ? 'none' : 'separator'\n  );\n\n  /** @internal Aria-orientation — set only when not decorative */\n  protected readonly computedAriaOrientation: Signal<string | null> = computed(() =>\n    this.decorative() ? null : this.orientation()\n  );\n\n  /** @internal Aria-hidden — true only when decorative */\n  protected readonly computedAriaHidden: Signal<'true' | null> = computed(() =>\n    this.decorative() ? 'true' : null\n  );\n}\n","// Public API for the separator directive\n\n// Main directive\nexport { ComSeparator } from './separator.directive';\n\n// Variants (for advanced customization)\nexport { separatorVariants } from './separator.variants';\n\nexport type {\n  SeparatorOrientation,\n  SeparatorVariant,\n  SeparatorVariants,\n} from './separator.variants';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}