chore(embedded): cut v0.0.27-beta
Some checks failed
Notify chart dev on beta cut / notify-chart-dev (push) Failing after 3s

This commit is contained in:
ZDDC 2026-06-15 09:32:09 -05:00
parent 0d8125a331
commit 7c158be73b
7 changed files with 25 additions and 30 deletions

View file

@ -2717,7 +2717,7 @@ td[data-field="trackingNumber"] {
</svg> </svg>
<div class="header-title-group"> <div class="header-title-group">
<span class="app-header__title">ZDDC Archive</span> <span class="app-header__title">ZDDC Archive</span>
<span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.27-beta · 2026-06-15 13:55:36 · 0847c7a</span></span> <span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.27-beta · 2026-06-15 14:32:01 · 0d8125a</span></span>
</div> </div>
<button id="addDirectoryBtn" class="btn btn-primary">Use Local Directory</button> <button id="addDirectoryBtn" class="btn btn-primary">Use Local Directory</button>
<button id="refreshHeaderBtn" class="btn btn-secondary hidden" title="Refresh Data"></button> <button id="refreshHeaderBtn" class="btn btn-secondary hidden" title="Refresh Data"></button>

View file

@ -2824,7 +2824,7 @@ li.CodeMirror-hint-active {
</svg> </svg>
<div class="header-title-group"> <div class="header-title-group">
<span class="app-header__title">ZDDC Browse</span> <span class="app-header__title">ZDDC Browse</span>
<span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.27-beta · 2026-06-15 13:55:36 · 0847c7a</span></span> <span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.27-beta · 2026-06-15 14:32:01 · 0d8125a</span></span>
</div> </div>
<button id="addDirectoryBtn" class="btn btn-primary">Use Local Directory</button> <button id="addDirectoryBtn" class="btn btn-primary">Use Local Directory</button>
<button id="refreshHeaderBtn" class="btn btn-secondary hidden" title="Refresh listing" aria-label="Refresh listing"></button> <button id="refreshHeaderBtn" class="btn btn-secondary hidden" title="Refresh listing" aria-label="Refresh listing"></button>

View file

@ -2421,7 +2421,7 @@ input.tfile__name:focus { border-color: var(--primary); background: var(--bg); o
</svg> </svg>
<div class="header-title-group"> <div class="header-title-group">
<span class="app-header__title">ZDDC Classifier</span> <span class="app-header__title">ZDDC Classifier</span>
<span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.27-beta · 2026-06-15 13:55:36 · 0847c7a</span></span> <span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.27-beta · 2026-06-15 14:32:01 · 0d8125a</span></span>
</div> </div>
<button id="addDirectoryBtn" class="btn btn-primary">Use Local Directory</button> <button id="addDirectoryBtn" class="btn btn-primary">Use Local Directory</button>
<button id="refreshHeaderBtn" class="btn btn-secondary hidden" title="Refresh and rescan directory" aria-label="Refresh" style="font-size:1.1rem;"></button> <button id="refreshHeaderBtn" class="btn btn-secondary hidden" title="Refresh and rescan directory" aria-label="Refresh" style="font-size:1.1rem;"></button>
@ -10083,7 +10083,7 @@ X.B(E,Y);return E}return J}())
var visible = null; // { folders, files } while filtering, else null var visible = null; // { folders, files } while filtering, else null
function computeVisible() { function computeVisible() {
var c = window.app.modules.classify; var c = window.app.modules.classify;
var folders = Object.create(null), files = Object.create(null), open = Object.create(null); var folders = Object.create(null), files = Object.create(null);
var nf = filterActive(); var nf = filterActive();
function walk(folder, ancMatched) { function walk(folder, ancMatched) {
var selfMatch = nf && nameHit(folder.path || folder.name); var selfMatch = nf && nameHit(folder.path || folder.name);
@ -10106,19 +10106,11 @@ X.B(E,Y);return E}return J}())
// "Show Empty" off → hide folders whose whole subtree holds no files. // "Show Empty" off → hide folders whose whole subtree holds no files.
if (!hasFile && !showEmpty && !matched) show = false; if (!hasFile && !showEmpty && !matched) show = false;
if (show) folders[folder.path] = true; if (show) folders[folder.path] = true;
// Auto-open ONLY the connector folders on the path down to a match —
// never the matched node itself. Terminal matches and everything
// off-path keep their real collapse state; the root's expand-all
// covers the rest. (Search reveals where hits are; it doesn't reshape
// the tree.)
if (nf && descMatch) open[folder.path] = true;
return { show: show, hasFile: hasFile, subtreeMatch: descMatch || selfMatch }; return { show: show, hasFile: hasFile, subtreeMatch: descMatch || selfMatch };
} }
(window.app.folderTree || []).forEach(function (root) { walk(root, false); }); (window.app.folderTree || []).forEach(function (root) { walk(root, false); });
return { folders: folders, files: files, open: open }; return { folders: folders, files: files };
} }
// True only for folders the search needs opened to expose a hit beneath them.
function autoOpen(folder) { return !!(visible && visible.open && visible.open[folder.path]); }
function folderShown(folder) { return !visible || !!visible.folders[folder.path]; } function folderShown(folder) { return !visible || !!visible.folders[folder.path]; }
function fileShown(file) { function fileShown(file) {
if (!classifyAllows(file)) return false; if (!classifyAllows(file)) return false;
@ -10274,7 +10266,7 @@ X.B(E,Y);return E}return J}())
// expandable so its files can be revealed and dragged. // expandable so its files can be revealed and dragged.
|| (classifyOn() && folder.files && folder.files.length > 0); || (classifyOn() && folder.files && folder.files.length > 0);
if (mightHaveChildren) { if (mightHaveChildren) {
toggle.textContent = (folder.expanded || autoOpen(folder)) ? '▼' : '▶'; toggle.textContent = folder.expanded ? '▼' : '▶';
toggle.addEventListener('click', (e) => { toggle.addEventListener('click', (e) => {
e.stopPropagation(); e.stopPropagation();
const recursive = e.ctrlKey || e.metaKey; const recursive = e.ctrlKey || e.metaKey;
@ -10338,9 +10330,12 @@ X.B(E,Y);return E}return J}())
div.appendChild(item); div.appendChild(item);
// Children — when expanded, or opened on the path to a search hit below. // Children render ONLY when the user has expanded this folder. The
// The Show toggles never force-expand; search opens only connector folders. // autofilter and Show toggles never change expand/collapse state — they
if ((folder.expanded || autoOpen(folder)) && folder.children && folder.children.length > 0) { // hide/show rows in place. A collapsed folder stays collapsed even if it
// contains matches (it's still shown, so the user can open it); this lets
// you filter within one subtree without the rest expanding.
if (folder.expanded && folder.children && folder.children.length > 0) {
const childrenDiv = document.createElement('div'); const childrenDiv = document.createElement('div');
childrenDiv.className = 'folder-children'; childrenDiv.className = 'folder-children';
sortedFolders(folder.children).forEach(child => { sortedFolders(folder.children).forEach(child => {
@ -10351,9 +10346,9 @@ X.B(E,Y);return E}return J}())
div.appendChild(childrenDiv); div.appendChild(childrenDiv);
} }
// Classify mode: list this folder's own files (draggable leaves) when // Classify mode: list this folder's own files (draggable leaves) only
// expanded (or opened to reveal a search hit), so they can be dropped. // when the user has expanded it (the filter never force-expands).
if (classifyOn() && (folder.expanded || autoOpen(folder)) && folder.files && folder.files.length > 0) { if (classifyOn() && folder.expanded && folder.files && folder.files.length > 0) {
const filesDiv = document.createElement('div'); const filesDiv = document.createElement('div');
filesDiv.className = 'folder-children folder-files'; filesDiv.className = 'folder-children folder-files';
sortedFiles(folder.files).forEach(function (file) { sortedFiles(folder.files).forEach(function (file) {

View file

@ -1793,7 +1793,7 @@ body {
</svg> </svg>
<div class="header-title-group"> <div class="header-title-group">
<span class="app-header__title">ZDDC</span> <span class="app-header__title">ZDDC</span>
<span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.27-beta · 2026-06-15 13:55:36 · 0847c7a</span></span> <span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.27-beta · 2026-06-15 14:32:01 · 0d8125a</span></span>
</div> </div>
</div> </div>
<div class="header-right"> <div class="header-right">

View file

@ -2770,7 +2770,7 @@ dialog.modal--narrow {
</svg> </svg>
<div class="header-title-group"> <div class="header-title-group">
<span class="app-header__title">ZDDC Transmittal</span> <span class="app-header__title">ZDDC Transmittal</span>
<span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.27-beta · 2026-06-15 13:55:36 · 0847c7a</span></span> <span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.27-beta · 2026-06-15 14:32:01 · 0d8125a</span></span>
</div> </div>
<span id="no-js-notice" class="text-gray-400 text-xs italic">JavaScript not available</span> <span id="no-js-notice" class="text-gray-400 text-xs italic">JavaScript not available</span>
<!-- Publish split-button (Transmittal-specific primary action; <!-- Publish split-button (Transmittal-specific primary action;

View file

@ -1,8 +1,8 @@
# Generated by build.sh — do not edit. One <app>=<build label> per line. # Generated by build.sh — do not edit. One <app>=<build label> per line.
archive=v0.0.27-beta · 2026-06-15 13:55:36 · 0847c7a archive=v0.0.27-beta · 2026-06-15 14:32:01 · 0d8125a
transmittal=v0.0.27-beta · 2026-06-15 13:55:36 · 0847c7a transmittal=v0.0.27-beta · 2026-06-15 14:32:01 · 0d8125a
classifier=v0.0.27-beta · 2026-06-15 13:55:36 · 0847c7a classifier=v0.0.27-beta · 2026-06-15 14:32:01 · 0d8125a
landing=v0.0.27-beta · 2026-06-15 13:55:36 · 0847c7a landing=v0.0.27-beta · 2026-06-15 14:32:01 · 0d8125a
form=v0.0.27-beta · 2026-06-15 13:55:36 · 0847c7a form=v0.0.27-beta · 2026-06-15 14:32:01 · 0d8125a
tables=v0.0.27-beta · 2026-06-15 13:55:36 · 0847c7a tables=v0.0.27-beta · 2026-06-15 14:32:01 · 0d8125a
browse=v0.0.27-beta · 2026-06-15 13:55:36 · 0847c7a browse=v0.0.27-beta · 2026-06-15 14:32:01 · 0d8125a

View file

@ -1770,7 +1770,7 @@ body.is-elevated::after {
</svg> </svg>
<div class="header-title-group"> <div class="header-title-group">
<span class="app-header__title" id="table-title">ZDDC Table</span> <span class="app-header__title" id="table-title">ZDDC Table</span>
<span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.27-beta · 2026-06-15 13:55:36 · 0847c7a</span></span> <span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.27-beta · 2026-06-15 14:32:01 · 0d8125a</span></span>
</div> </div>
</div> </div>
<div class="header-right"> <div class="header-right">