<commit_before><div *ngIf="otp" class="otp mb-3 d-flex flex-column flex-xs-row">
  <button class="btn btn-outline-primary link-with-icon mr-3"
    *ngFor="let action of otpActions; let first = first"
    (click)="action.onClick()" type="button"
    [ngClass]="{'mr-3': layout.gtxxs$ | async, 'mt-2': !first}">
    <icon [icon]="action.icon"></icon>
    <span>{{ i18n.password.otpReceiveBy(action.label) }}</span>
  </button>
</div>
<ng-container *ngIf="virtualKeyboard; else textField">
  <div class="d-flex flex-column align-items-center">
    <div class="d-flex w-75">
      <div
        class="d-flex flex-grow-1 align-items-center justify-content-center">
        <div *ngFor="let _ of enteredVKPassword; let first = first"
          [ngClass]="{'ml-2': !first}">&bull;</div>
      </div>
      <button class="btn btn-outline-primary"
        [disabled]="enteredVKPassword.length == 0" (click)="vkBack()">
        <icon size="18" icon="backspace"></icon>
      </button>
      <button class="btn btn-outline-primary ml-2"
        [disabled]="enteredVKPassword.length == 0" (click)="vkClear()">
        <icon size="18" icon="clear"></icon>
      </button>
    </div>
    <div class="d-flex my-3 flex-wrap w-75">
      <div class="d-flex w-100"
        *ngFor="let row of currentVKCombinations; let firstRow = first"
        [ngClass]="{'mt-2': !firstRow}"><commit_msg>Fixed the alignement of OTP buttons<commit_after><div *ngIf="otp"
  class="otp mb-3 d-flex flex-column flex-sm-row justify-content-center">
  <button
    class="btn btn-outline-primary link-with-icon d-flex justify-content-center justify-content-sm-start"
    *ngFor="let action of otpActions; let first = first"
    (click)="action.onClick()" type="button"
    [ngClass]="{'mr-3': layout.gtxs$ | async, 'mt-2': !first, 'mt-sm-0': true}">
    <icon [icon]="action.icon"></icon>
    <span>{{ i18n.password.otpReceiveBy(action.label) }}</span>
  </button>
</div>
<ng-container *ngIf="virtualKeyboard; else textField">
  <div class="d-flex flex-column align-items-center">
    <div class="d-flex w-75">
      <div
        class="d-flex flex-grow-1 align-items-center justify-content-center">
        <div *ngFor="let _ of enteredVKPassword; let first = first"
          [ngClass]="{'ml-2': !first}">&bull;</div>
      </div>
      <button class="btn btn-outline-primary"
        [disabled]="enteredVKPassword.length == 0" (click)="vkBack()">
        <icon size="18" icon="backspace"></icon>
      </button>
      <button class="btn btn-outline-primary ml-2"
        [disabled]="enteredVKPassword.length == 0" (click)="vkClear()">
        <icon size="18" icon="clear"></icon>
      </button>
    </div>
    <div class="d-flex my-3 flex-wrap w-75">
      <div class="d-flex w-100"
        *ngFor="let row of currentVKCombinations; let firstRow = first"
        [ngClass]="{'mt-2': !firstRow}">
{'fraction_non_alphanumeric': 0.19272472892619796, 'fraction_numerical': 0.016789087093389297, 'mean_word_length': 3.346504559270517, 'pattern_counts': {'":': 0, '<': 55, '<?xml version=': 0, '>': 55, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '924159', 'n_tokens_mistral': 1030, 'n_tokens_neox': 992, 'n_words': 205}