//
// Copyright IBM Corp. 2016, 2025
//
// This source code is licensed under the Apache-2.0 license found in the
// LICENSE file in the root directory of this source tree.
//

@use '../popover';
@use '../../config' as *;
@use '../../spacing';
@use '../../theme';
@use '../../type';
@use '../../layer' as *;
@use '../../utilities/custom-property';
@use '../../utilities/convert';
@use '../../utilities/button-reset';
@use '../../utilities/focus-outline';

$tooltip-padding-block: custom-property.get-var(
  'tooltip-padding-block',
  spacing.$spacing-05
);

$tooltip-padding-inline: custom-property.get-var(
  'tooltip-padding-inline',
  spacing.$spacing-05
);

@mixin tooltip {
  .#{$prefix}--tooltip {
    @include custom-property.declaration('popover-offset', 12px);
  }

  .#{$prefix}--tooltip-content {
    @include type.type-style('body-01');

    padding: $tooltip-padding-block $tooltip-padding-inline;
    max-inline-size: convert.to-rem(288px);
    overflow-wrap: break-word;
  }
}

@mixin definition-tooltip {
  .#{$prefix}--definition-term {
    @include button-reset.reset;

    border-radius: 0;
    border-block-end: 1px dotted theme.$border-strong;
    color: theme.$text-primary;
  }

  .#{$prefix}--definition-term:focus {
    @include focus-outline.focus-outline;

    border-block-end-color: theme.$border-interactive;
  }

  .#{$prefix}--definition-term:hover {
    border-block-end-color: theme.$border-interactive;
  }

  .#{$prefix}--definition-tooltip {
    @include type.type-style('body-01');

    padding: convert.to-rem(8px) convert.to-rem(16px);
    max-inline-size: convert.to-rem(176px);
    text-wrap: auto;
    word-break: break-word;
  }
}

@mixin icon-tooltip {
  .#{$prefix}--icon-tooltip {
    @include custom-property.declaration(
      'tooltip-padding-block',
      convert.to-rem(2px)
    );
    @include custom-property.declaration(
      'popover-caret-width',
      convert.to-rem(8px)
    );
    @include custom-property.declaration(
      'popover-caret-height',
      convert.to-rem(4px)
    );
    @include custom-property.declaration('popover-offset', convert.to-rem(8px));
  }

  .#{$prefix}--icon-tooltip .#{$prefix}--tooltip-content {
    @include type.type-style('body-compact-01');
  }
}
