{"version":3,"file":"edsis-component-button-group.mjs","sources":["../../../library/component/button-group/button-group.component.ts","../../../library/component/button-group/edsis-component-button-group.ts"],"sourcesContent":["import { Component, computed, input } from '@angular/core';\nimport { cn } from '@edsis/component/class';\n\nexport type ButtonGroupOrientation = 'horizontal' | 'vertical';\n\nconst BUTTON_GROUP_BASE = [\n  'inline-flex w-fit items-stretch',\n  'has-[>[data-slot=button-group]]:gap-2',\n  '[&>*]:focus-visible:relative [&>*]:focus-visible:z-10',\n  '[&>input]:flex-1 [&>textarea]:flex-1',\n  '[&>InputGroup]:min-w-0 [&>InputGroup]:flex-1',\n].join(' ');\n\nconst buttonGroupOrientationClasses: Record<ButtonGroupOrientation, string> = {\n  horizontal: [\n    '[&>*:not(:first-child)]:rounded-s-none',\n    '[&>*:not(:first-child)]:[border-inline-start-width:0]',\n    '[&>*:not(:last-child)]:rounded-e-none',\n  ].join(' '),\n  vertical: [\n    'flex-col',\n    '[&>*:not(:first-child)]:rounded-t-none',\n    '[&>*:not(:first-child)]:border-t-0',\n    '[&>*:not(:last-child)]:rounded-b-none',\n  ].join(' '),\n};\n\n@Component({\n  selector: 'ButtonGroup',\n  host: {\n    '[class]': 'classes()',\n    '[attr.data-orientation]': 'orientation()',\n    '[attr.data-slot]': '\"button-group\"',\n    role: 'group',\n  },\n  template: `<ng-content />`,\n})\nexport class ButtonGroupComponent {\n  readonly orientation = input<ButtonGroupOrientation>('horizontal');\n  readonly class = input<string>('');\n\n  protected readonly classes = computed(() =>\n    cn(BUTTON_GROUP_BASE, buttonGroupOrientationClasses[this.orientation()], this.class()),\n  );\n}\n\n@Component({\n  selector: 'ButtonGroupText',\n  host: {\n    '[class]': 'classes()',\n    '[attr.data-slot]': '\"button-group-text\"',\n  },\n  template: `<ng-content />`,\n})\nexport class ButtonGroupTextComponent {\n  readonly class = input<string>('');\n\n  protected readonly classes = computed(() =>\n    cn(\n      [\n        'flex items-center gap-2 whitespace-nowrap rounded-md border border-border bg-muted px-4 text-sm font-medium shadow-sm',\n        '[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=size-])]:size-4',\n      ].join(' '),\n      this.class(),\n    ),\n  );\n}\n\n@Component({\n  selector: 'ButtonGroupSeparator',\n  host: {\n    '[class]': 'classes()',\n    '[attr.aria-orientation]': 'orientation()',\n    '[attr.data-orientation]': 'orientation()',\n    '[attr.data-slot]': '\"button-group-separator\"',\n    role: 'separator',\n  },\n  template: '',\n})\nexport class ButtonGroupSeparatorComponent {\n  readonly orientation = input<ButtonGroupOrientation>('vertical');\n  readonly class = input<string>('');\n\n  protected readonly classes = computed(() =>\n    cn(\n      'relative shrink-0 bg-border',\n      this.orientation() === 'horizontal' ? 'h-px w-full self-auto' : 'h-auto w-px self-stretch',\n      this.class(),\n    ),\n  );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}