div.d-grid id='output_sidebar_collapsed'
  = render('editor_button', classes: 'btn-outline-contrast btn', data: {:'data-bs-toggle' => 'tooltip', :'data-bs-placement' => 'left'}, title: t('exercises.editor.expand_output_sidebar'), icon: 'fa-solid fa-square-plus', id: 'toggle-sidebar-output-collapsed', label: '')
div.d-grid id='output_sidebar_uncollapsed' class='d-none col-sm-12 enforce-bottom-margin' data-message-no-output=t('exercises.implement.no_output_yet')
  = render('editor_button', classes: 'btn-outline-contrast btn overflow-hidden mb-2', icon: 'fa-solid fa-square-minus', id: 'toggle-sidebar-output', label: t('exercises.editor.collapse_output_sidebar'))


  #content-right-sidebar.overflow-scroll
    = render('download_file_tree')

    div.enforce-bottom-margin.overflow-auto.d-none id='score_div'
      #results
        h2 = t('exercises.implement.results')
        p.test-count == t('exercises.implement.test_count', count: 0)
        - unless @embed_options[:hide_test_results]
          ul.list-unstyled
          ul#test-dummies.d-none.list-unstyled
            li.card.mt-2
              .card-header.py-2
                h5.card-title.m-0 == t('exercises.implement.test_file', filename: '', number: 0)
              .card-body
                = row(label: 'exercises.implement.passed_tests') do
                  span.number
                    | 0
                  =<> t('shared.out_of')
                  span.number
                    | 0
                = row(label: 'activerecord.attributes.submission.score') do
                  span.number
                    | 0
                  =<> t('shared.out_of')
                  span.number
                    | 0
                = row(label: 'exercises.implement.feedback')
                = row(label: 'exercises.implement.error_messages')
                /= row(label: 'exercises.implement.output', value: link_to(t('shared.show'), '#'))
          ul#linter-dummies.d-none.list-unstyled
            li.card.mt-2
              .card-header.py-2
                h5.card-title.m-0 == t('exercises.implement.linter_file', filename: '', number: 0)
              .card-body
                = row(label: 'exercises.implement.code_rating') do
                  span.number
                    | 0
                  =<> t('shared.out_of')
                  span.number
                    | 0
                = row(label: 'activerecord.attributes.submission.score') do
                  span.number
                    | 0
                  =<> t('shared.out_of')
                  span.number
                    | 0
                = row(label: 'exercises.implement.feedback')
                = row(label: 'exercises.implement.messages')
      #score data-maximum-score=@exercise.maximum_score data-score=@exercise.final_submission(current_contributor).try(:score)
        h4
          span == "#{t('activerecord.attributes.submission.score')}:&nbsp;"
          span.score
        .progress
          .progress-bar role='progressbar'

      br
      - if lti_outcome_service?(@exercise, current_user)
        p.text-center = render('editor_button', classes: 'btn-lg btn-success d-none', data: {:'data-url' => submit_exercise_path(@exercise)}, icon: 'fa-solid fa-paper-plane', id: 'submit', label: t('exercises.editor.submit'))
        - if @exercise.submission_deadline.present? || @exercise.late_submission_deadline.present?
          #deadline data-submission-deadline=@exercise.submission_deadline&.rfc2822 data-late-submission-deadline=@exercise.late_submission_deadline&.rfc2822
            h4 = t('exercises.editor.deadline')
            = t('exercises.editor.hints.disclaimer')
      - else
        p.text-center.disabled = render('editor_button', classes: 'btn-lg btn-secondary', data: {:'data-bs-placement' => 'bottom', :'data-bs-toggle' => 'tooltip', :'data-bs-container' => 'body'}, icon: 'fa-regular fa-clock', id: 'submit_outdated', label: t('exercises.editor.exercise_deadline_passed'), title: t('exercises.editor.tooltips.exercise_deadline_passed'))
      hr
    #turtlediv.enforce-big-bottom-margin.overflow-auto.d-none
      canvas#turtlecanvas width=400 height=400
    div.enforce-big-bottom-margin.overflow-auto
      #prompt.input-group.mb-2.d-none
        span.input-group-text data-prompt=t('exercises.editor.input') = t('exercises.editor.input')
        input#prompt-input.form-control type='text'
        span.input-group-btn
          button#prompt-submit.btn.btn-primary type="button" = t('exercises.editor.send')
      - unless @embed_options[:disable_hints]
        #error-hints.mb-2.p-2
          .heading = t('exercises.implement.error_hints.heading')
          ul.body.mb-0
      #output
        .output-element.overflow-scroll = t('exercises.implement.no_output_yet')
      - if CodeOcean::Config.new(:code_ocean).read[:flowr][:enabled] && !@embed_options[:disable_hints] && !@embed_options[:hide_test_results]
        #flowrHint.mb-2.card data-url=CodeOcean::Config.new(:code_ocean).read[:flowr][:url] role='tab'
          .card-header.text-white.bg-info = t('exercises.implement.flowr.heading')
          .card-body
