dsh-play-store-shots-wan 1.0.0 → 1.0.2
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/icon.svg +7 -0
- package/lib/client.cjs +58 -21
- package/locale/en.json +6 -0
- package/locale/zh.json +6 -0
- package/package.json +6 -2
package/icon.svg
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" width="96" height="96">
|
|
2
|
+
<rect width="96" height="96" rx="22" fill="#7E57FF"/>
|
|
3
|
+
<rect x="27" y="18" width="42" height="60" rx="8" fill="#FFFFFF" opacity="0.95"/>
|
|
4
|
+
<rect x="33" y="26" width="30" height="16" rx="4" fill="#7E57FF" opacity="0.35"/>
|
|
5
|
+
<rect x="33" y="46" width="30" height="8" rx="3" fill="#7E57FF" opacity="0.25"/>
|
|
6
|
+
<rect x="33" y="58" width="18" height="6" rx="3" fill="#7E57FF" opacity="0.25"/>
|
|
7
|
+
</svg>
|
package/lib/client.cjs
CHANGED
|
@@ -17,7 +17,8 @@ if (typeof window !== "undefined") window.__ModuleLoader__.load({
|
|
|
17
17
|
key: "apiKey",
|
|
18
18
|
label: t("apiKey"),
|
|
19
19
|
hint: t("apiKeyHint"),
|
|
20
|
-
type: "password"
|
|
20
|
+
type: "password",
|
|
21
|
+
placeholder: "sk-…"
|
|
21
22
|
},
|
|
22
23
|
{
|
|
23
24
|
key: "baseUrl",
|
|
@@ -90,6 +91,7 @@ if (typeof window !== "undefined") window.__ModuleLoader__.load({
|
|
|
90
91
|
type: spec.type ?? "text",
|
|
91
92
|
value: valueOf(spec.key),
|
|
92
93
|
disabled: !editable,
|
|
94
|
+
placeholder: spec.placeholder,
|
|
93
95
|
autoComplete: "off",
|
|
94
96
|
spellCheck: false,
|
|
95
97
|
onChange: (event) => setDraft((current) => ({
|
|
@@ -187,25 +189,61 @@ if (typeof window !== "undefined") window.__ModuleLoader__.load({
|
|
|
187
189
|
readOnly: "Configuration is read-only"
|
|
188
190
|
};
|
|
189
191
|
// src/client/styles.ts
|
|
192
|
+
/**
|
|
193
|
+
* Card styles. The package cannot import the shell's CSS modules, so it injects
|
|
194
|
+
* one style tag and styles through the theme's `--dsw-alias-*` tokens: no
|
|
195
|
+
* literal colours, so light and dark both stay readable.
|
|
196
|
+
*/
|
|
190
197
|
const CSS = `
|
|
191
|
-
.pss-card {
|
|
198
|
+
.pss-card {
|
|
199
|
+
display: flex;
|
|
200
|
+
flex-direction: column;
|
|
201
|
+
gap: 14px;
|
|
202
|
+
padding: 16px 18px;
|
|
203
|
+
border: 1px solid var(--dsw-alias-border-l2);
|
|
204
|
+
border-radius: 12px;
|
|
205
|
+
background: var(--dsw-alias-bg-layer-3);
|
|
206
|
+
color: var(--dsw-alias-label-primary);
|
|
207
|
+
}
|
|
192
208
|
.pss-head { display: flex; flex-direction: column; gap: 4px; }
|
|
193
|
-
.pss-title { font-size: 14px; font-weight: 600;
|
|
194
|
-
.pss-sub, .pss-hint, .pss-usage { margin: 0; font-size: 12px; line-height: 1.5;
|
|
195
|
-
.pss-usage { opacity: .55; }
|
|
209
|
+
.pss-title { margin: 0; font-size: 14px; font-weight: 600; line-height: 1.4; color: var(--dsw-alias-label-primary); }
|
|
210
|
+
.pss-sub, .pss-hint, .pss-usage { margin: 0; font-size: 12px; line-height: 1.5; color: var(--dsw-alias-label-tertiary); }
|
|
196
211
|
.pss-grid { display: grid; gap: 12px; }
|
|
197
212
|
.pss-field { display: flex; flex-direction: column; gap: 6px; }
|
|
198
|
-
.pss-label { font-size: 12px; font-weight: 500; }
|
|
199
|
-
.pss-input {
|
|
200
|
-
|
|
201
|
-
|
|
213
|
+
.pss-label { font-size: 12px; font-weight: 500; color: var(--dsw-alias-label-secondary); }
|
|
214
|
+
.pss-input {
|
|
215
|
+
height: 32px;
|
|
216
|
+
padding: 0 10px;
|
|
217
|
+
font: inherit;
|
|
218
|
+
font-size: 13px;
|
|
219
|
+
color: var(--dsw-alias-label-primary);
|
|
220
|
+
background: var(--dsw-alias-bg-layer-1);
|
|
221
|
+
border: 1px solid var(--dsw-alias-border-l2);
|
|
222
|
+
border-radius: 8px;
|
|
223
|
+
outline: none;
|
|
224
|
+
}
|
|
225
|
+
.pss-input::placeholder { color: var(--dsw-alias-label-tertiary); }
|
|
226
|
+
.pss-input:focus { border-color: var(--dsw-alias-brand-primary); }
|
|
227
|
+
.pss-input:disabled { color: var(--dsw-alias-label-tertiary); }
|
|
202
228
|
.pss-actions { display: flex; align-items: center; gap: 8px; }
|
|
203
|
-
.pss-button {
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
229
|
+
.pss-button {
|
|
230
|
+
height: 30px;
|
|
231
|
+
padding: 0 12px;
|
|
232
|
+
font: inherit;
|
|
233
|
+
font-size: 12px;
|
|
234
|
+
color: var(--dsw-alias-label-primary);
|
|
235
|
+
background: transparent;
|
|
236
|
+
border: 1px solid var(--dsw-alias-border-l2);
|
|
237
|
+
border-radius: 8px;
|
|
238
|
+
cursor: pointer;
|
|
239
|
+
}
|
|
240
|
+
.pss-button:hover:not(:disabled) { border-color: var(--dsw-alias-label-dimmed); }
|
|
241
|
+
.pss-button:disabled { color: var(--dsw-alias-label-tertiary); cursor: default; }
|
|
242
|
+
.pss-primary { color: var(--dsw-alias-brand-primary-invert); background: var(--dsw-alias-brand-primary); border-color: transparent; }
|
|
243
|
+
.pss-primary:hover:not(:disabled) { border-color: transparent; opacity: .9; }
|
|
244
|
+
.pss-primary:disabled { color: var(--dsw-alias-label-tertiary); background: var(--dsw-alias-bg-layer-2); }
|
|
245
|
+
.pss-status { font-size: 12px; color: var(--dsw-alias-label-tertiary); }
|
|
246
|
+
.pss-error { color: var(--dsw-alias-state-warn-label); }
|
|
209
247
|
`;
|
|
210
248
|
let installed = false;
|
|
211
249
|
function injectStyles() {
|
|
@@ -219,7 +257,8 @@ if (typeof window !== "undefined") window.__ModuleLoader__.load({
|
|
|
219
257
|
// src/client/index.ts
|
|
220
258
|
/** Profile entry id; doubles as the settings namespace the card binds to. */
|
|
221
259
|
const ENTRY_ID = "play-store-shots";
|
|
222
|
-
const
|
|
260
|
+
const BUNDLE_SLOT = "plugins.bundle.config";
|
|
261
|
+
const BUNDLE_ID = "dsh-play-store-shots-wan";
|
|
223
262
|
const inject = [
|
|
224
263
|
"slots",
|
|
225
264
|
"locale",
|
|
@@ -233,11 +272,9 @@ if (typeof window !== "undefined") window.__ModuleLoader__.load({
|
|
|
233
272
|
}), "play-store-shots: dictionary");
|
|
234
273
|
injectStyles();
|
|
235
274
|
const form = ctx.configForms.get(ENTRY_ID);
|
|
236
|
-
ctx.effect(() => ctx.configForms.whileServed([ENTRY_ID], () => ctx.slots.inject(
|
|
237
|
-
name:
|
|
238
|
-
|
|
239
|
-
order: 60,
|
|
240
|
-
label: () => t("title"),
|
|
275
|
+
ctx.effect(() => ctx.configForms.whileServed([ENTRY_ID], () => ctx.slots.inject(BUNDLE_SLOT, () => ctx.slots.register({
|
|
276
|
+
name: BUNDLE_SLOT,
|
|
277
|
+
key: BUNDLE_ID,
|
|
241
278
|
locale: NS,
|
|
242
279
|
inject: () => ({
|
|
243
280
|
form,
|
package/locale/en.json
ADDED
package/locale/zh.json
ADDED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-play-store-shots-wan",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Google Play store screenshot generator for DeepSeek Harness — /playstoreshots turns an app logo plus two reference sheets into four 1080x1920 screenshots and one 1024x500 feature graphic via Bailian wan2.7-image-pro.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -10,10 +10,14 @@
|
|
|
10
10
|
"default": "./lib/index.mjs"
|
|
11
11
|
},
|
|
12
12
|
"./client": "./lib/client.cjs",
|
|
13
|
-
"./package.json": "./package.json"
|
|
13
|
+
"./package.json": "./package.json",
|
|
14
|
+
"./locale/*.json": "./locale/*.json",
|
|
15
|
+
"./icon": "./icon.svg"
|
|
14
16
|
},
|
|
15
17
|
"files": [
|
|
16
18
|
"lib",
|
|
19
|
+
"locale",
|
|
20
|
+
"icon.svg",
|
|
17
21
|
"cordis.patch.yml",
|
|
18
22
|
"README.md",
|
|
19
23
|
"LICENSE"
|