feat(web-ui): publish UXP panel v2.2.2 .ccx and repoint download buttons

Package the redesigned UXP panel as dragonflight-mam-2.2.2.ccx (plain zip
of manifest + index.html + styles.css + src/*, the standard UXP format that
double-click-installs on Windows and Mac via Creative Cloud).

- Add the .ccx to web-ui/public/downloads (served by nginx at /downloads).
- data.jsx: new v2.2.2 entry as latest (ccx field); old CEP releases kept.
- Editor screen: single "Download Panel (.ccx)" button.
- Settings -> Capture SDKs: .ccx download + updated UXP install copy;
  per-release buttons fall back to ZXP/Win for the old CEP entries.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Zac Gaetano 2026-05-29 00:36:38 -04:00
parent dac5213354
commit 17bf086ef2
5 changed files with 24 additions and 16 deletions

View file

@ -25,12 +25,20 @@ window.ZAMPP_API_PREFIX = API; // single source of truth (#115)
// here is the single source of truth both the Editor download buttons and
// the Settings Capture SDKs page read from this list (#125).
window.PREMIERE_RELEASES = [
{
version: '2.2.2',
ccx: '/downloads/dragonflight-mam-2.2.2.ccx',
zxp: null,
installer: null,
notes: 'UXP panel — redesigned icon-rail UI, compact list view, single Export menu (Conform / Local Export), Upload to MAM',
latest: true,
},
{
version: '1.2.0',
zxp: '/downloads/dragonflight-premiere-panel-1.2.0.zxp',
installer: null,
notes: 'Latest — design system refresh, aligned panel UI with web-ui tokens',
latest: true,
notes: 'Legacy CEP panel — design system refresh',
latest: false,
},
{
version: '1.0.1',

View file

@ -1997,9 +1997,8 @@ function SdkSettingsCard() {
Premiere Pro Panel
</div>
<div style={{ fontSize: 12, color: 'var(--text-3)', lineHeight: 1.55, marginBottom: 10 }}>
The Dragonflight CEP panel enables growing-file editing, batch trim, and one-click hi-res relink directly inside Premiere Pro.
Install the <strong style={{ color: 'var(--text-2)' }}>.zxp</strong> via <a href="https://zxpsign.com/zxp-installer" target="_blank" rel="noreferrer" style={{ color: 'var(--accent)' }}>ZXP Installer</a> (Mac/Win),
or run the <strong style={{ color: 'var(--text-2)' }}>Windows Setup</strong> which bundles the installer automatically.
The Dragonflight panel enables growing-file editing, conform, local export, and one-click hi-res relink directly inside Premiere Pro.
Download the <strong style={{ color: 'var(--text-2)' }}>.ccx</strong> and double-click to install via Creative Cloud (Mac/Win), then restart Premiere.
</div>
<div style={{ display: 'flex', flexDirection: 'column', gap: 8 }}>
{PREMIERE_RELEASES.map(r => (
@ -2011,12 +2010,16 @@ function SdkSettingsCard() {
</div>
<div style={{ fontSize: 11.5, color: 'var(--text-3)', marginTop: 2 }}>{r.notes}</div>
</div>
<a href={r.zxp} download style={{ textDecoration: 'none' }}>
<button className="btn ghost sm">ZXP</button>
</a>
<a href={r.installer} download style={{ textDecoration: 'none' }}>
<button className="btn ghost sm">Win Installer</button>
</a>
{r.ccx ? (
<a href={r.ccx} download style={{ textDecoration: 'none' }}>
<button className="btn ghost sm">.ccx</button>
</a>
) : (
<>
{r.zxp && <a href={r.zxp} download style={{ textDecoration: 'none' }}><button className="btn ghost sm">ZXP</button></a>}
{r.installer && <a href={r.installer} download style={{ textDecoration: 'none' }}><button className="btn ghost sm">Win Installer</button></a>}
</>
)}
</div>
))}
</div>

View file

@ -408,11 +408,8 @@ function Editor() {
</div>
</div>
<div style={{ display: 'flex', gap: 10, marginTop: 4 }}>
<a href={(window.PREMIERE_LATEST || {}).zxp || '#'} download style={{ textDecoration: 'none' }}>
<button className="btn primary">Download ZXP</button>
</a>
<a href={(window.PREMIERE_LATEST || {}).installer || '#'} download style={{ textDecoration: 'none' }}>
<button className="btn ghost">Windows Installer</button>
<a href={(window.PREMIERE_LATEST || {}).ccx || (window.PREMIERE_LATEST || {}).zxp || '#'} download style={{ textDecoration: 'none' }}>
<button className="btn primary">Download Panel (.ccx)</button>
</a>
</div>
<div style={{ fontSize: 11.5, color: 'var(--text-3)', marginTop: -4 }}>