<commit_before><template>

  <div>
    <img class="logo" alt="logo">
    <h1>{{ $tr('signInInstantSchools') }}</h1>

    <form ref="form" @submit.prevent="signIn">
      <label for="username">{{ $tr('username') }}</label>
      <input
        id="username"
        type="text"
        :placeholder="$tr('enterUsername')"
        :aria-label="$tr('username')"
        v-model="username"
        autocomplete="username"
        required
        autofocus>
      <label for="password">{{ $tr('password') }}</label>
      <input
        id="password"
        type="password"
        :placeholder="$tr('enterPassword')"
        :aria-label="$tr('password')"
        v-model="password"
        autocomplete="current-password"
        required>
      <icon-button :text="$tr('signIn')" :primary="true" type="submit"></icon-button>

      <p v-if="loginError" class="sign-in-error">{{ $tr('signInError') }}</p>
    </form>

    <hr>

    <p>{{ $tr('noAccount') }}</p>
    <router-link :to="signUp">
      <icon-button :text="$tr('createAccount')" :primary="true"></icon-button>
    </router-link>

    <a href="/">
      <icon-button :text="$tr('accessAsGuest')" :primary="false"></icon-button>
    </a>
  </div>

</template>


<script>

  const actions = require('kolibri.coreVue.vuex.actions');
  const PageNames = require('../../state/constants').PageNames;

  module.exports = {
    $trNameSpace: 'signInPage',
    $trs: {
      signInInstantSchools: 'Sign In to Instant Schools',
      username: 'Username',
      enterUsername: 'Enter Username',
      password: 'Password',
      enterPassword: '<PASSWORD>',
      signIn: 'Sign In',
      noAccount: `Don't have an account?`,
      createAccount: 'Create Account',
      accessAsGuest: 'Access as Guest',
      signInError: 'Incorrect username or password',
    },
    data: () => ({
      username: '',
      password: '',
    }),
    computed: {
      signUp() {
        return { name: PageNames.SIGN_UP };
      },
    },
    methods: {<commit_msg>stuff.<commit_after><template>

  <div>
    <img class="logo" alt="logo">
    <h1>{{ $tr('signIn') }}</h1>

    <form ref="form" @submit.prevent="signIn">
      <label for="username">{{ $tr('username') }}</label>
      <input
        id="username"
        type="text"
        :placeholder="$tr('enterUsername')"
        :aria-label="$tr('username')"
        v-model="username"
        autocomplete="username"
        required
        autofocus>
      <label for="password">{{ $tr('password') }}</label>
      <input
        id="password"
        type="password"
        :placeholder="$tr('enterPassword')"
        :aria-label="$tr('password')"
        v-model="password"
        autocomplete="current-password"
        required>
      <icon-button :text="$tr('signIn')" :primary="true" type="submit"></icon-button>

      <p v-if="loginError" class="sign-in-error">{{ $tr('signInError') }}</p>
    </form>

    <hr>

    <p>{{ $tr('noAccount') }}</p>
    <router-link :to="signUp">
      <icon-button :text="$tr('createAccount')" :primary="true"></icon-button>
    </router-link>

    <a href="/">
      <icon-button :text="$tr('accessAsGuest')" :primary="false"></icon-button>
    </a>
  </div>

</template>


<script>

  const actions = require('kolibri.coreVue.vuex.actions');
  const PageNames = require('../../state/constants').PageNames;

  module.exports = {
    $trNameSpace: 'signInPage',
    $trs: {
      signIn: 'Sign In',
      username: 'Username',
      enterUsername: 'Enter Username',
      password: 'Password',
      enterPassword: '<PASSWORD>',
      noAccount: `Don't have an account?`,
      createAccount: 'Create Account',
      accessAsGuest: 'Access as Guest',
      signInError: 'Incorrect username or password',
    },
    data: () => ({
      username: '',
      password: '',
    }),
    computed: {
      signUp() {
        return { name: PageNames.SIGN_UP };
      },
    },
    methods: {
{'fraction_non_alphanumeric': 0.1976536597806682, 'fraction_numerical': 0.00102014792144861, 'mean_word_length': 2.7069943289224954, 'pattern_counts': {'":': 0, '<': 67, '<?xml version=': 0, '>': 69, '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': '4890086', 'n_tokens_mistral': 1269, 'n_tokens_neox': 1242, 'n_words': 232}