pressship 0.1.15 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -6
- package/assets/web/app.js +78 -6
- package/assets/web/style.css +109 -36
- package/composer.json +3 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<a href="https://www.npmjs.com/package/pressship"><img alt="npm" src="https://img.shields.io/npm/v/pressship?color=3858e9&logo=npm&logoColor=white&style=flat-square" /></a>
|
|
17
17
|
<a href="https://wordpress.org/plugins/developers/"><img alt="WordPress.org" src="https://img.shields.io/badge/WordPress.org-plugin%20directory-21759b?logo=wordpress&logoColor=white&style=flat-square" /></a>
|
|
18
18
|
<a href="LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-3858e9?style=flat-square" /></a>
|
|
19
|
-
<a href="https://github.com/
|
|
19
|
+
<a href="https://github.com/Automattic/pressship"><img alt="GitHub stars" src="https://img.shields.io/github/stars/Automattic/pressship?style=flat-square&logo=github&color=1e293b" /></a>
|
|
20
20
|
</p>
|
|
21
21
|
|
|
22
22
|
<p align="center">
|
|
@@ -70,6 +70,7 @@ That's it. Pressship handles browser-based login, packaging, readme validation,
|
|
|
70
70
|
- **Submission state inspector** — reads the logged-in developer page to surface review status, slug, reupload availability, and Plugin Check links.
|
|
71
71
|
- **SVN release workflow** — handles checkout, trunk sync, tag creation, and commit.
|
|
72
72
|
- **WordPress Playground demos** — boot any local path or hosted slug in Playground using the plugin's own WP/PHP requirements.
|
|
73
|
+
- **Pressship Studio** — a local VS Code-style workspace with file tabs, Playground previews, AI assistance, release management, package-size checks, and CLI command hints in the terminal.
|
|
73
74
|
- **`.pressshipignore` + glob ignores** — sensible defaults, easy per-command overrides.
|
|
74
75
|
- **Agent skill included** — a Pressship publishing skill for coding agents (Codex, Claude Code, etc.).
|
|
75
76
|
- **Beautiful terminal UX** — colored output, progress indicators, structured findings.
|
|
@@ -115,7 +116,7 @@ pressship <command> --help
|
|
|
115
116
|
Pressship can also be installed as a WP-CLI package:
|
|
116
117
|
|
|
117
118
|
```bash
|
|
118
|
-
wp package install
|
|
119
|
+
wp package install Automattic/pressship
|
|
119
120
|
```
|
|
120
121
|
|
|
121
122
|
That adds a `wp ship` command:
|
|
@@ -260,7 +261,9 @@ pressship studio --no-open
|
|
|
260
261
|
pressship studio --port 9478
|
|
261
262
|
```
|
|
262
263
|
|
|
263
|
-
`studio` starts a localhost-only Pressship Studio workspace. It lists plugins from the saved WordPress.org session, remembers local plugin paths, clones and updates WordPress.org SVN checkouts, shows plugin metadata and readmes, opens local plugins in a VS Code-style editor, streams Playground output into the Studio terminal, previews Playground in an iframe, checks version state, bumps patch/minor/major versions, and runs dry-run-first publish/release flows.
|
|
264
|
+
`studio` starts a localhost-only Pressship Studio workspace. It lists plugins from the saved WordPress.org session, remembers local plugin paths, clones and updates WordPress.org SVN checkouts, shows plugin metadata and readmes, opens local plugins in a VS Code-style editor, streams Playground output into the Studio terminal, previews Playground in an iframe, checks package size, manages `.pressshipignore`, checks version state, bumps patch/minor/major versions, and runs dry-run-first publish/release flows.
|
|
265
|
+
|
|
266
|
+
Studio also prints the equivalent `npx pressship ...` command in its terminal for CLI-backed actions such as Playground, Plugin Check, package size, version bumps, and publish dry runs.
|
|
264
267
|
|
|
265
268
|
By default it binds to `127.0.0.1`, generates a per-run token for mutating API requests, and uses the same local Pressship config directory as the CLI.
|
|
266
269
|
|
|
@@ -406,13 +409,13 @@ pressship release ./my-plugin --no-install-svn
|
|
|
406
409
|
Pressship ships with a publishing skill for coding agents (Codex, Claude Code, etc.). It teaches your agent to publish WordPress plugins cautiously — dry-run first, state-aware, with a final review step before any upload.
|
|
407
410
|
|
|
408
411
|
```bash
|
|
409
|
-
npx skills add
|
|
412
|
+
npx skills add Automattic/pressship --skill wordpress-plugin-publish -a codex
|
|
410
413
|
```
|
|
411
414
|
|
|
412
415
|
Replace `codex` with another supported agent name, e.g. `claude-code`. List available skills first:
|
|
413
416
|
|
|
414
417
|
```bash
|
|
415
|
-
npx skills add
|
|
418
|
+
npx skills add Automattic/pressship --list
|
|
416
419
|
```
|
|
417
420
|
|
|
418
421
|
## Configuration
|
|
@@ -552,7 +555,7 @@ Pressship is built on the work of many people and projects:
|
|
|
552
555
|
|
|
553
556
|
## Disclaimer
|
|
554
557
|
|
|
555
|
-
**Pressship is an
|
|
558
|
+
**Pressship is an Automattic-maintained community project.** It is currently unofficial tooling for WordPress.org plugin publishing workflows, not an official WordPress.org service or a WordPress Foundation project. WordPress® is a trademark of the WordPress Foundation.
|
|
556
559
|
|
|
557
560
|
## License
|
|
558
561
|
|
package/assets/web/app.js
CHANGED
|
@@ -76,14 +76,14 @@ const HARNESS_ICON = {
|
|
|
76
76
|
const STUDIO_LAYOUT_STORAGE_KEY = "pressship.studio.layout.v1";
|
|
77
77
|
|
|
78
78
|
const STUDIO_LAYOUT_DEFAULTS = {
|
|
79
|
-
files:
|
|
79
|
+
files: 220,
|
|
80
80
|
ai: 330,
|
|
81
81
|
terminal: 190,
|
|
82
82
|
checkNotes: 152
|
|
83
83
|
};
|
|
84
84
|
|
|
85
85
|
const STUDIO_LAYOUT_LIMITS = {
|
|
86
|
-
files: { min:
|
|
86
|
+
files: { min: 160, max: 440 },
|
|
87
87
|
ai: { min: 260, max: 720 },
|
|
88
88
|
terminal: { min: 100, max: 600 },
|
|
89
89
|
checkNotes: { min: 80, max: 520 }
|
|
@@ -3461,15 +3461,19 @@ function renderStudioAiChangeCard(change) {
|
|
|
3461
3461
|
<article class="studio-ai-change-card${selected ? " is-selected" : ""}">
|
|
3462
3462
|
<button type="button" class="studio-ai-change" data-action="studio-ai-change" data-path="${escapeAttr(change.path)}">
|
|
3463
3463
|
<span class="dashicons ${change.status === "deleted" ? "dashicons-trash" : studioFileIcon(change.path)}" aria-hidden="true"></span>
|
|
3464
|
-
<span
|
|
3465
|
-
|
|
3464
|
+
<span class="studio-ai-change-main">
|
|
3465
|
+
<span class="studio-ai-change-path">${escapeHtml(change.path)}</span>
|
|
3466
|
+
<small>${escapeHtml(studioAiPatchSummary(change))}</small>
|
|
3467
|
+
</span>
|
|
3466
3468
|
</button>
|
|
3467
3469
|
<div class="studio-ai-change-actions" aria-label="${escapeAttr(`Review ${change.path}`)}">
|
|
3468
3470
|
<button type="button" class="studio-ai-change-action is-accept" data-action="studio-ai-accept" data-path="${escapeAttr(change.path)}" title="Accept patch" aria-label="${escapeAttr(`Accept patch for ${change.path}`)}">
|
|
3469
3471
|
<span class="dashicons dashicons-yes-alt" aria-hidden="true"></span>
|
|
3472
|
+
<span>Accept</span>
|
|
3470
3473
|
</button>
|
|
3471
3474
|
<button type="button" class="studio-ai-change-action is-reject" data-action="studio-ai-reject" data-path="${escapeAttr(change.path)}" title="Reject patch" aria-label="${escapeAttr(`Reject patch for ${change.path}`)}">
|
|
3472
3475
|
<span class="dashicons dashicons-no-alt" aria-hidden="true"></span>
|
|
3476
|
+
<span>Reject</span>
|
|
3473
3477
|
</button>
|
|
3474
3478
|
</div>
|
|
3475
3479
|
</article>
|
|
@@ -4468,12 +4472,16 @@ function handleStudioJobEvent(id, payload) {
|
|
|
4468
4472
|
}
|
|
4469
4473
|
} else if (payload.type === "log") {
|
|
4470
4474
|
if (isAiJob) {
|
|
4471
|
-
|
|
4472
|
-
if (
|
|
4475
|
+
const aiLogData = payload.data?.data;
|
|
4476
|
+
if (aiLogData?.changedFiles) {
|
|
4473
4477
|
mergeStudioAiChangedFiles(payload.data.data.changedFiles);
|
|
4474
4478
|
updateStudioAiSidebar();
|
|
4475
4479
|
renderStudio();
|
|
4476
4480
|
remountStudioEditorIfNeeded();
|
|
4481
|
+
} else if (aiLogData?.proposedChanges) {
|
|
4482
|
+
return;
|
|
4483
|
+
} else {
|
|
4484
|
+
appendStudioAiOutput(payload.data?.message ?? payload.data, "log");
|
|
4477
4485
|
}
|
|
4478
4486
|
} else {
|
|
4479
4487
|
appendStudioTerminal(payload.data?.message ?? payload.data, "log");
|
|
@@ -4710,6 +4718,7 @@ async function mountStudioEditor(content) {
|
|
|
4710
4718
|
modified: modifiedModel
|
|
4711
4719
|
});
|
|
4712
4720
|
state.studio.editorKind = "monaco-diff";
|
|
4721
|
+
revealStudioAiPatchChange(aiPatch);
|
|
4713
4722
|
return;
|
|
4714
4723
|
}
|
|
4715
4724
|
|
|
@@ -4861,6 +4870,69 @@ function applyStudioAiPatchMarkers() {
|
|
|
4861
4870
|
);
|
|
4862
4871
|
}
|
|
4863
4872
|
|
|
4873
|
+
function firstStudioAiPatchLocation(change) {
|
|
4874
|
+
const hunks = change?.hunks?.length
|
|
4875
|
+
? change.hunks
|
|
4876
|
+
: change
|
|
4877
|
+
? buildStudioAiPatchHunks(change.beforeContent ?? "", change.afterContent ?? "")
|
|
4878
|
+
: [];
|
|
4879
|
+
|
|
4880
|
+
for (const hunk of hunks) {
|
|
4881
|
+
let oldLine = Number(hunk.oldStart) || 1;
|
|
4882
|
+
let newLine = Number(hunk.newStart) || 1;
|
|
4883
|
+
|
|
4884
|
+
for (const line of hunk.lines ?? []) {
|
|
4885
|
+
if (line.type === "add" || line.type === "delete") {
|
|
4886
|
+
return {
|
|
4887
|
+
oldLine: Math.max(1, oldLine),
|
|
4888
|
+
newLine: Math.max(1, newLine)
|
|
4889
|
+
};
|
|
4890
|
+
}
|
|
4891
|
+
if (line.type === "context") {
|
|
4892
|
+
oldLine += 1;
|
|
4893
|
+
newLine += 1;
|
|
4894
|
+
} else if (line.type === "add") {
|
|
4895
|
+
newLine += 1;
|
|
4896
|
+
} else if (line.type === "delete") {
|
|
4897
|
+
oldLine += 1;
|
|
4898
|
+
}
|
|
4899
|
+
}
|
|
4900
|
+
}
|
|
4901
|
+
|
|
4902
|
+
return null;
|
|
4903
|
+
}
|
|
4904
|
+
|
|
4905
|
+
function revealStudioAiPatchChange(change) {
|
|
4906
|
+
const location = firstStudioAiPatchLocation(change);
|
|
4907
|
+
if (!location) {
|
|
4908
|
+
return;
|
|
4909
|
+
}
|
|
4910
|
+
|
|
4911
|
+
requestAnimationFrame(() => {
|
|
4912
|
+
if (state.studio.editorKind === "monaco-diff" && state.studio.editor) {
|
|
4913
|
+
const originalEditor = state.studio.editor.getOriginalEditor?.();
|
|
4914
|
+
const modifiedEditor = state.studio.editor.getModifiedEditor?.();
|
|
4915
|
+
const originalModel = originalEditor?.getModel?.();
|
|
4916
|
+
const modifiedModel = modifiedEditor?.getModel?.();
|
|
4917
|
+
const oldLine = originalModel ? clampEditorLine(originalModel, location.oldLine) : location.oldLine;
|
|
4918
|
+
const newLine = modifiedModel ? clampEditorLine(modifiedModel, location.newLine) : location.newLine;
|
|
4919
|
+
|
|
4920
|
+
originalEditor?.revealLineInCenter?.(oldLine);
|
|
4921
|
+
modifiedEditor?.revealLineInCenter?.(newLine);
|
|
4922
|
+
originalEditor?.setPosition?.({ lineNumber: oldLine, column: 1 });
|
|
4923
|
+
modifiedEditor?.setPosition?.({ lineNumber: newLine, column: 1 });
|
|
4924
|
+
modifiedEditor?.focus?.();
|
|
4925
|
+
return;
|
|
4926
|
+
}
|
|
4927
|
+
|
|
4928
|
+
if (state.studio.editorKind === "textarea-diff" && state.studio.editor) {
|
|
4929
|
+
const offset = offsetForLineColumn(state.studio.editor.value, location.oldLine, 1);
|
|
4930
|
+
state.studio.editor.focus();
|
|
4931
|
+
state.studio.editor.setSelectionRange(offset, offset);
|
|
4932
|
+
}
|
|
4933
|
+
});
|
|
4934
|
+
}
|
|
4935
|
+
|
|
4864
4936
|
function revealStudioCheckNote(line, column = 1) {
|
|
4865
4937
|
if (!line) {
|
|
4866
4938
|
return;
|
package/assets/web/style.css
CHANGED
|
@@ -3203,7 +3203,7 @@ body[data-active-view="studio"] #notice-stack {
|
|
|
3203
3203
|
.studio-main {
|
|
3204
3204
|
display: grid;
|
|
3205
3205
|
grid-template-columns:
|
|
3206
|
-
var(--studio-files-width,
|
|
3206
|
+
var(--studio-files-width, 220px)
|
|
3207
3207
|
6px
|
|
3208
3208
|
minmax(0, 1fr)
|
|
3209
3209
|
6px
|
|
@@ -5210,18 +5210,18 @@ body.is-studio-resizing-v iframe {
|
|
|
5210
5210
|
|
|
5211
5211
|
.studio-ai-changes {
|
|
5212
5212
|
grid-row: 3;
|
|
5213
|
-
max-height:
|
|
5213
|
+
max-height: 176px;
|
|
5214
5214
|
min-height: 0;
|
|
5215
5215
|
overflow: auto;
|
|
5216
5216
|
border-bottom: 1px solid var(--wp-border);
|
|
5217
|
-
background: var(--wp-
|
|
5217
|
+
background: var(--wp-surface-alt);
|
|
5218
5218
|
}
|
|
5219
5219
|
|
|
5220
5220
|
.studio-ai-changes header {
|
|
5221
5221
|
align-items: center;
|
|
5222
|
-
display:
|
|
5222
|
+
display: flex;
|
|
5223
5223
|
gap: 6px;
|
|
5224
|
-
padding: 8px 10px
|
|
5224
|
+
padding: 8px 10px 6px;
|
|
5225
5225
|
color: var(--wp-text);
|
|
5226
5226
|
font-size: 11px;
|
|
5227
5227
|
}
|
|
@@ -5234,38 +5234,39 @@ body.is-studio-resizing-v iframe {
|
|
|
5234
5234
|
}
|
|
5235
5235
|
|
|
5236
5236
|
.studio-ai-change-list {
|
|
5237
|
-
display:
|
|
5238
|
-
gap:
|
|
5239
|
-
overflow-x: auto;
|
|
5237
|
+
display: grid;
|
|
5238
|
+
gap: 8px;
|
|
5240
5239
|
padding: 0 10px 10px;
|
|
5241
5240
|
}
|
|
5242
5241
|
|
|
5243
5242
|
.studio-ai-change-card {
|
|
5244
5243
|
display: grid;
|
|
5245
|
-
|
|
5246
|
-
|
|
5247
|
-
align-items: stretch;
|
|
5248
|
-
border: 1px solid #b7d9ee;
|
|
5244
|
+
gap: 8px;
|
|
5245
|
+
border: 1px solid var(--wp-border);
|
|
5249
5246
|
border-radius: var(--wp-radius-s);
|
|
5250
5247
|
background: var(--wp-surface);
|
|
5251
5248
|
box-shadow: var(--wp-shadow-sm);
|
|
5249
|
+
padding: 8px;
|
|
5252
5250
|
}
|
|
5253
5251
|
|
|
5254
5252
|
.studio-ai-change-card.is-selected {
|
|
5255
5253
|
border-color: var(--wp-admin-theme-color);
|
|
5254
|
+
box-shadow: 0 0 0 1px var(--wp-admin-theme-color);
|
|
5256
5255
|
}
|
|
5257
5256
|
|
|
5258
5257
|
.studio-ai-change {
|
|
5259
|
-
align-items:
|
|
5260
|
-
display:
|
|
5261
|
-
|
|
5258
|
+
align-items: start;
|
|
5259
|
+
display: grid;
|
|
5260
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
5261
|
+
gap: 8px;
|
|
5262
5262
|
min-width: 0;
|
|
5263
5263
|
border: 0;
|
|
5264
|
+
border-radius: calc(var(--wp-radius-s) - 2px);
|
|
5264
5265
|
background: transparent;
|
|
5265
5266
|
color: var(--wp-text);
|
|
5266
5267
|
cursor: pointer;
|
|
5267
|
-
font-size:
|
|
5268
|
-
padding:
|
|
5268
|
+
font-size: 12px;
|
|
5269
|
+
padding: 2px;
|
|
5269
5270
|
text-align: left;
|
|
5270
5271
|
}
|
|
5271
5272
|
|
|
@@ -5276,7 +5277,24 @@ body.is-studio-resizing-v iframe {
|
|
|
5276
5277
|
outline: none;
|
|
5277
5278
|
}
|
|
5278
5279
|
|
|
5279
|
-
.studio-ai-change
|
|
5280
|
+
.studio-ai-change > .dashicons {
|
|
5281
|
+
margin-top: 1px;
|
|
5282
|
+
color: var(--wp-admin-theme-color);
|
|
5283
|
+
font-size: 16px;
|
|
5284
|
+
height: 16px;
|
|
5285
|
+
width: 16px;
|
|
5286
|
+
}
|
|
5287
|
+
|
|
5288
|
+
.studio-ai-change-main {
|
|
5289
|
+
display: grid;
|
|
5290
|
+
gap: 3px;
|
|
5291
|
+
min-width: 0;
|
|
5292
|
+
}
|
|
5293
|
+
|
|
5294
|
+
.studio-ai-change-path {
|
|
5295
|
+
color: var(--wp-heading);
|
|
5296
|
+
font-weight: 600;
|
|
5297
|
+
line-height: 1.25;
|
|
5280
5298
|
overflow: hidden;
|
|
5281
5299
|
text-overflow: ellipsis;
|
|
5282
5300
|
white-space: nowrap;
|
|
@@ -5284,29 +5302,40 @@ body.is-studio-resizing-v iframe {
|
|
|
5284
5302
|
|
|
5285
5303
|
.studio-ai-change small {
|
|
5286
5304
|
color: var(--wp-text-muted);
|
|
5287
|
-
font-size:
|
|
5305
|
+
font-size: 10px;
|
|
5306
|
+
letter-spacing: 0.04em;
|
|
5288
5307
|
text-transform: uppercase;
|
|
5289
5308
|
}
|
|
5290
5309
|
|
|
5291
5310
|
.studio-ai-change-actions {
|
|
5292
5311
|
display: grid;
|
|
5293
|
-
grid-template-columns:
|
|
5294
|
-
|
|
5312
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
5313
|
+
gap: 6px;
|
|
5295
5314
|
}
|
|
5296
5315
|
|
|
5297
5316
|
.studio-ai-change-action {
|
|
5298
|
-
|
|
5299
|
-
|
|
5300
|
-
|
|
5301
|
-
|
|
5302
|
-
|
|
5317
|
+
align-items: center;
|
|
5318
|
+
justify-content: center;
|
|
5319
|
+
display: inline-flex;
|
|
5320
|
+
gap: 5px;
|
|
5321
|
+
min-height: 28px;
|
|
5322
|
+
border: 1px solid var(--wp-border);
|
|
5323
|
+
border-radius: calc(var(--wp-radius-s) - 2px);
|
|
5303
5324
|
background: transparent;
|
|
5304
5325
|
color: var(--wp-text-muted);
|
|
5305
5326
|
cursor: pointer;
|
|
5327
|
+
font-size: 11px;
|
|
5328
|
+
font-weight: 600;
|
|
5306
5329
|
}
|
|
5307
5330
|
|
|
5308
|
-
.studio-ai-change-action
|
|
5309
|
-
border-
|
|
5331
|
+
.studio-ai-change-action.is-accept {
|
|
5332
|
+
border-color: rgba(0, 128, 0, 0.32);
|
|
5333
|
+
color: var(--wp-success);
|
|
5334
|
+
}
|
|
5335
|
+
|
|
5336
|
+
.studio-ai-change-action.is-reject {
|
|
5337
|
+
border-color: rgba(220, 38, 38, 0.32);
|
|
5338
|
+
color: var(--wp-error);
|
|
5310
5339
|
}
|
|
5311
5340
|
|
|
5312
5341
|
.studio-ai-change-action:hover,
|
|
@@ -5318,11 +5347,13 @@ body.is-studio-resizing-v iframe {
|
|
|
5318
5347
|
.studio-ai-change-action.is-accept:hover,
|
|
5319
5348
|
.studio-ai-change-action.is-accept:focus-visible {
|
|
5320
5349
|
color: var(--wp-success);
|
|
5350
|
+
border-color: var(--wp-success);
|
|
5321
5351
|
}
|
|
5322
5352
|
|
|
5323
5353
|
.studio-ai-change-action.is-reject:hover,
|
|
5324
5354
|
.studio-ai-change-action.is-reject:focus-visible {
|
|
5325
5355
|
color: var(--wp-error);
|
|
5356
|
+
border-color: var(--wp-error);
|
|
5326
5357
|
}
|
|
5327
5358
|
|
|
5328
5359
|
.studio-ai-composer {
|
|
@@ -5561,7 +5592,7 @@ body.is-studio-resizing-v iframe {
|
|
|
5561
5592
|
.studio-main {
|
|
5562
5593
|
grid-template-columns:
|
|
5563
5594
|
48px
|
|
5564
|
-
var(--studio-files-width,
|
|
5595
|
+
var(--studio-files-width, 220px)
|
|
5565
5596
|
6px
|
|
5566
5597
|
minmax(0, 1fr)
|
|
5567
5598
|
6px
|
|
@@ -5574,7 +5605,7 @@ body.is-studio-resizing-v iframe {
|
|
|
5574
5605
|
}
|
|
5575
5606
|
|
|
5576
5607
|
.studio-root.has-files.is-secondary-sidebar-collapsed .studio-main {
|
|
5577
|
-
grid-template-columns: 48px var(--studio-files-width,
|
|
5608
|
+
grid-template-columns: 48px var(--studio-files-width, 220px) 6px minmax(0, 1fr);
|
|
5578
5609
|
}
|
|
5579
5610
|
|
|
5580
5611
|
.studio-root.is-files-collapsed.is-secondary-sidebar-collapsed .studio-main {
|
|
@@ -6052,7 +6083,15 @@ body.is-studio-resizing-v iframe {
|
|
|
6052
6083
|
|
|
6053
6084
|
.studio-ai-changes {
|
|
6054
6085
|
border-bottom-color: var(--studio-vscode-border);
|
|
6055
|
-
background: #
|
|
6086
|
+
background: #202020;
|
|
6087
|
+
}
|
|
6088
|
+
|
|
6089
|
+
.studio-ai-change-path {
|
|
6090
|
+
color: var(--studio-vscode-text);
|
|
6091
|
+
}
|
|
6092
|
+
|
|
6093
|
+
.studio-ai-change-action {
|
|
6094
|
+
border-color: var(--studio-vscode-border-strong);
|
|
6056
6095
|
}
|
|
6057
6096
|
|
|
6058
6097
|
.studio-ai-composer textarea {
|
|
@@ -6204,7 +6243,7 @@ body.is-studio-resizing-v iframe {
|
|
|
6204
6243
|
.studio-main {
|
|
6205
6244
|
grid-template-columns:
|
|
6206
6245
|
48px
|
|
6207
|
-
var(--studio-files-width,
|
|
6246
|
+
var(--studio-files-width, 220px)
|
|
6208
6247
|
6px
|
|
6209
6248
|
minmax(0, 1fr)
|
|
6210
6249
|
6px
|
|
@@ -6216,7 +6255,7 @@ body.is-studio-resizing-v iframe {
|
|
|
6216
6255
|
}
|
|
6217
6256
|
|
|
6218
6257
|
.studio-root.has-files.is-secondary-sidebar-collapsed .studio-main {
|
|
6219
|
-
grid-template-columns: 48px var(--studio-files-width,
|
|
6258
|
+
grid-template-columns: 48px var(--studio-files-width, 220px) 6px minmax(0, 1fr);
|
|
6220
6259
|
}
|
|
6221
6260
|
|
|
6222
6261
|
.studio-root.is-files-collapsed.is-secondary-sidebar-collapsed .studio-main {
|
|
@@ -7411,9 +7450,10 @@ td code {
|
|
|
7411
7450
|
}
|
|
7412
7451
|
|
|
7413
7452
|
.ps-release-tag-row {
|
|
7414
|
-
display:
|
|
7453
|
+
display: grid;
|
|
7454
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
7415
7455
|
align-items: center;
|
|
7416
|
-
gap: 6px;
|
|
7456
|
+
gap: 5px 6px;
|
|
7417
7457
|
padding: 5px 8px;
|
|
7418
7458
|
border-bottom: 1px solid var(--wp-border-soft);
|
|
7419
7459
|
min-height: 30px;
|
|
@@ -7434,12 +7474,13 @@ td code {
|
|
|
7434
7474
|
.ps-release-tag-name {
|
|
7435
7475
|
display: inline-flex;
|
|
7436
7476
|
align-items: center;
|
|
7477
|
+
flex-wrap: wrap;
|
|
7437
7478
|
gap: 5px;
|
|
7438
7479
|
font-weight: 500;
|
|
7439
7480
|
color: var(--wp-heading);
|
|
7440
|
-
flex: 1 1 auto;
|
|
7441
7481
|
min-width: 0;
|
|
7442
7482
|
font-size: 12px;
|
|
7483
|
+
line-height: 1.25;
|
|
7443
7484
|
}
|
|
7444
7485
|
|
|
7445
7486
|
.ps-release-tag-name .dashicons {
|
|
@@ -7486,9 +7527,33 @@ td code {
|
|
|
7486
7527
|
|
|
7487
7528
|
.ps-release-tag-actions {
|
|
7488
7529
|
display: inline-flex;
|
|
7530
|
+
align-items: center;
|
|
7531
|
+
justify-content: flex-end;
|
|
7532
|
+
min-width: 0;
|
|
7489
7533
|
gap: 4px;
|
|
7490
7534
|
}
|
|
7491
7535
|
|
|
7536
|
+
.ps-release-tag-row.is-uncommitted {
|
|
7537
|
+
align-items: start;
|
|
7538
|
+
}
|
|
7539
|
+
|
|
7540
|
+
.ps-release-tag-row.is-uncommitted .ps-release-tag-name,
|
|
7541
|
+
.ps-release-tag-row.is-uncommitted .ps-release-tag-actions {
|
|
7542
|
+
grid-column: 1 / -1;
|
|
7543
|
+
}
|
|
7544
|
+
|
|
7545
|
+
.ps-release-tag-row.is-uncommitted .ps-release-tag-actions {
|
|
7546
|
+
display: grid;
|
|
7547
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
7548
|
+
padding-left: 20px;
|
|
7549
|
+
}
|
|
7550
|
+
|
|
7551
|
+
.ps-release-tag-row.is-uncommitted .ps-release-tag-local-note {
|
|
7552
|
+
min-width: 0;
|
|
7553
|
+
white-space: normal;
|
|
7554
|
+
line-height: 1.15;
|
|
7555
|
+
}
|
|
7556
|
+
|
|
7492
7557
|
.ps-release-tag-actions .button.is-confirming,
|
|
7493
7558
|
.ps-release-confirm-button.is-confirming {
|
|
7494
7559
|
background: var(--wp-warning);
|
|
@@ -8379,6 +8444,14 @@ td code {
|
|
|
8379
8444
|
color: var(--studio-vscode-text);
|
|
8380
8445
|
}
|
|
8381
8446
|
|
|
8447
|
+
.studio-root[data-theme="light"] .studio-ai-change-path {
|
|
8448
|
+
color: var(--studio-vscode-text);
|
|
8449
|
+
}
|
|
8450
|
+
|
|
8451
|
+
.studio-root[data-theme="light"] .studio-ai-change-action {
|
|
8452
|
+
border-color: var(--studio-vscode-border);
|
|
8453
|
+
}
|
|
8454
|
+
|
|
8382
8455
|
.studio-root[data-theme="light"] .studio-terminal-output {
|
|
8383
8456
|
background: #ffffff;
|
|
8384
8457
|
}
|
package/composer.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "
|
|
2
|
+
"name": "automattic/pressship",
|
|
3
3
|
"type": "wp-cli-package",
|
|
4
4
|
"description": "Run Pressship from WP-CLI by forwarding to the Node.js Pressship package.",
|
|
5
5
|
"homepage": "https://pressship.org",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
]
|
|
23
23
|
},
|
|
24
24
|
"support": {
|
|
25
|
-
"issues": "https://github.com/
|
|
26
|
-
"source": "https://github.com/
|
|
25
|
+
"issues": "https://github.com/Automattic/pressship/issues",
|
|
26
|
+
"source": "https://github.com/Automattic/pressship"
|
|
27
27
|
}
|
|
28
28
|
}
|