<tr id="topset-{{ topset_id }}">
    <td class="p-0 sm:p-4 text-sm font-semibold text-gray-900 break-normal">
        {% if is_edit|default(false, true) == false %}
        <div class="flex items-center space-x-2">
            <span class="cursor-pointer" hx-get="{{ url_for('tags.goto_tag') }}"
                hx-vals='{"filter": "?exercise_id={{ exercise_id }}", "person_id" : "{{ person_id }}" }'
                hx-target="#container" hx-swap="innerHTML" hx-push-url="true"
                _='on click trigger closeModalWithoutRefresh'>{{ exercise_name }}</span>
            <button
                class="inline-flex justify-center p-1 text-gray-500 rounded cursor-pointer hover:text-gray-900 hover:bg-gray-100 dark:text-gray-400 dark:hover:text-white dark:hover:bg-gray-600"
                title="Show Progress Graph"
                hx-get="{{ url_for('get_exercise_progress_for_user', person_id=person_id, exercise_id=exercise_id) }}"
                hx-target="#graph-content-{{ topset_id }}" hx-swap="innerHTML">
                <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"
                    xmlns="http://www.w3.org/2000/svg">
                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
                        d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"></path>
                </svg>
                <span class="sr-only">Show Progress Graph</span>
            </button>
        </div>
        {% else %}
        <div class="w-full">
            <select name="exercise_id"
                class="block appearance-none w-full bg-gray-200 border border-gray-200 text-gray-700 py-3 px-4 pr-8 rounded leading-tight focus:outline-none focus:bg-white focus:border-gray-500"
                _="init js(me)
                            tail.select(me, {
                                search: true,
                                placeholder: 'Filter exercises',
                            })
                        end">
                {% for exercise in exercises|default([], true) %}
                <option value="{{ exercise.exercise_id }}" {% if exercise.exercise_id==exercise_id %}selected{% endif
                    %}>{{ exercise.name }}</option>
                {% endfor %}
            </select>
        </div>
        {% endif %}
    </td>
    <td class="p-4 whitespace-nowrap text-sm font-semibold text-gray-900">
        {% if is_edit|default(false, true) == false %}
        {{ repetitions }} x {{ weight }}kg
        {% else %}
        <div class="flex items-center flex-col sm:flex-row">
            <input type="number"
                class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full pl-4 sm:pl-10 p-2.5 "
                name="repetitions" value="{{ repetitions }}">
            <p class="px-2">x</p>
            <input type="number"
                class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full pl-4 sm:pl-10 p-2.5 "
                name="weight" value="{{ weight }}">
            <p class="px-2">kg</p>
        </div>
        {% endif %}
    </td>
    <td class="whitespace-nowrap text-sm font-semibold text-gray-900 flex flex-col sm:flex-row table-cell">
        <div class="flex flex-col sm:flex-row items-center h-full">
            {% if is_edit|default(false, true) == false %}
            <button
                class="inline-flex justify-center p-2 text-blue-600 rounded-full cursor-pointer hover:bg-blue-100 dark:text-blue-500 dark:hover:bg-gray-600"
                hx-get="{{ url_for('workout.get_topset_edit_form', person_id=person_id, workout_id=workout_id, topset_id=topset_id) }}">
                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5"
                    stroke="currentColor" class="w-5 h-5">
                    <path stroke-linecap="round" stroke-linejoin="round"
                        d="M16.862 4.487l1.687-1.688a1.875 1.875 0 112.652 2.652L10.582 16.07a4.5 4.5 0 01-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 011.13-1.897l8.932-8.931zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0115.75 21H5.25A2.25 2.25 0 013 18.75V8.25A2.25 2.25 0 015.25 6H10" />
                </svg>
                <span class="sr-only">Edit</span>
            </button>
            <button
                class="inline-flex justify-center p-2 text-blue-600 rounded-full cursor-pointer hover:bg-blue-100 dark:text-blue-500 dark:hover:bg-gray-600"
                hx-delete="{{ url_for('workout.delete_topset', person_id=person_id, workout_id=workout_id, topset_id=topset_id) }}"
                hx-confirm="Are you sure you wish to delete this topset?">
                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5"
                    stroke="currentColor" class="w-5 h-5">
                    <path stroke-linecap="round" stroke-linejoin="round"
                        d="M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0" />
                </svg>

                <span class="sr-only">Delete</span>
            </button>
            {% else %}
            <button
                class="inline-flex justify-center p-2 text-blue-600 rounded-full cursor-pointer hover:bg-blue-100 dark:text-blue-500 dark:hover:bg-gray-600"
                hx-put="{{ url_for('workout.update_topset', person_id=person_id, workout_id=workout_id, topset_id=topset_id) }}"
                hx-include="#topset-{{ topset_id }} * [name='exercise_id'],#topset-{{ topset_id }} * [name='repetitions'],#topset-{{ topset_id }} * [name='weight']">

                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5"
                    stroke="currentColor" class="w-5 h-5">
                    <path stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5" />
                </svg>
                <span class="sr-only">Save</span>
            </button>

            <button
                class="inline-flex justify-center p-2 text-blue-600 rounded-full cursor-pointer hover:bg-blue-100 dark:text-blue-500 dark:hover:bg-gray-600"
                hx-get="{{ url_for('workout.get_topset', person_id=person_id, workout_id=workout_id, topset_id=topset_id) }}">
                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5"
                    stroke="currentColor" class="w-5 h-5">
                    <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" />
                </svg>
                <span class="sr-only">Cancel</span>
            </button>
            {% endif %}
        </div>
    </td>
</tr>
{# Target row modified for dismissible graph #}
<tr id="graph-target-{{ topset_id }}">
    <td colspan="3" class="p-0 relative">
        <div id="graph-content-{{ topset_id }}" class="graph-content-container" _="
            on htmx:afterSwap
                get the next <button.dismiss-button/>
                if my.innerHTML is not empty and my.innerHTML is not ' '
                    remove .hidden from it
                else
                    add .hidden to it
                end
            end">
            <!-- Progress graph will be loaded here -->
        </div>
        <button
            class="absolute top-1 right-1 p-1 bg-white rounded-full text-gray-500 hover:text-gray-700 hover:bg-gray-100 z-10 dismiss-button hidden"
            title="Dismiss Graph" _="on click
                     get #graph-content-{{ topset_id }}
                     set its innerHTML to ''
                     add .hidden to me
                   end">
            <svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
                <path fill-rule="evenodd"
                    d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z"
                    clip-rule="evenodd"></path>
            </svg>
            <span class="sr-only">Dismiss Graph</span>
        </button>
    </td>
</tr>