+
- | TAR |
- MSL |
+ TAR |
+ MSL |
Description |
- |
+ |
@@ -11897,8 +11897,8 @@ const CARDS_TAR_ROLE_DESC = {
function cardsTarRowHtml(e, i) {
const cls = 'border border-gray-300 dark:border-slate-600 text-sm rounded px-2 py-1.5 dark:bg-slate-800 font-mono';
const role = CARDS_TAR_ROLES[i] || '';
- let cells = ' | ' +
- ' | ';
+ let cells = ' | ' +
+ ' | ';
if (role) {
cells += '' + esc(CARDS_TAR_ROLE_DESC[role] || '') + ' | ' +
' | ';
diff --git a/frontend/style.css b/frontend/style.css
index f2fce41..4198c55 100644
--- a/frontend/style.css
+++ b/frontend/style.css
@@ -1024,6 +1024,10 @@ video {
flex-shrink: 0;
}
+.table-fixed {
+ table-layout: fixed;
+}
+
.border-collapse {
border-collapse: collapse;
}
diff --git a/frontend/sw.js b/frontend/sw.js
index 71b8107..2e0a30f 100644
--- a/frontend/sw.js
+++ b/frontend/sw.js
@@ -1,4 +1,4 @@
-const CACHE = 'simple-v364';
+const CACHE = 'simple-v365';
const URLS = [
'index.html',
'help.html',
diff --git a/frontend/tests/cards_form.test.js b/frontend/tests/cards_form.test.js
index 3199906..dd3777c 100644
--- a/frontend/tests/cards_form.test.js
+++ b/frontend/tests/cards_form.test.js
@@ -535,8 +535,8 @@ test('packing without a selected preset uses the spec default TAR', () => {
test('the TAR row values are left-aligned like the headers', () => {
const out = cardsTarRowHtml({ tar: 'AF4D01', msl: '0A', desc: 'x' }, 3);
assert.doesNotMatch(out, /text-center/);
- assert.match(out, /]*class="w-10 shrink-0/);
+ // the TAR table is fixed-layout so the columns hug their content and the
+ // description absorbs the rest (no even spreading)
+ assert.match(row, //);
+ assert.match(row, /| <\/th>/);
// the hint is the short form
assert.match(row, /data-l10n="All codes are optional"/);
assert.ok(!row.includes('not consumed yet'), 'the long codes hint is gone');
@@ -230,7 +236,7 @@ test('the ADM field sits in the PIN/ADM fieldset of the editor', () => {
const fieldsets = [...html.matchAll(/ | |