@ruck-plugins/tinypng-compress 1.0.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.
@@ -0,0 +1 @@
1
+ :root{--bg-primary: var(--bg-base);--bg-card: var(--bg-surface);--bg-hover: var(--bg-muted);--text-primary: var(--text-primary);--text-secondary: var(--text-secondary);--text-muted: var(--text-tertiary, var(--text-secondary));--accent-color: var(--color-primary-500);--border-primary: var(--border-default);font-family:var(--font-sans, "Inter", system-ui, -apple-system, sans-serif);line-height:1.5;font-weight:400;color-scheme:light dark}*{box-sizing:border-box}html,body{margin:0;padding:0;min-width:320px;min-height:100vh;background-color:var(--bg-primary);color:var(--text-primary)}#app{width:100%;height:100vh}.app-root{display:flex;flex-direction:column;height:100%;background-color:var(--bg-primary)}.app-main{flex:1;display:flex;flex-direction:column;padding:16px 20px;box-sizing:border-box}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:var(--border-primary);border-radius:3px}::-webkit-scrollbar-thumb:hover{background-color:var(--text-muted)}.floating-settings-btn{position:absolute;right:16px;bottom:60px;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--border-primary);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;transition:all .2s;box-shadow:0 4px 12px #0000001a;z-index:50}.floating-settings-btn:hover{background:var(--bg-hover);border-color:var(--accent-color);color:var(--accent-color);transform:rotate(30deg)}.full-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background-color:var(--bg-primary);z-index:100;display:flex;flex-direction:column}.overlay-header{display:flex;align-items:center;gap:20px;padding:12px 20px;border-bottom:1px solid var(--border-primary);flex-shrink:0}.overlay-header h2{margin:0;font-size:18px}.back-btn{display:flex;align-items:center;gap:4px;background:none;border:none;color:var(--accent-color);cursor:pointer;font-size:14px;transition:opacity .2s}.back-btn:hover{opacity:.7}.overlay-content{flex:1;overflow-y:auto;padding:20px}.fade-enter-active,.fade-leave-active{transition:opacity .2s ease,transform .2s ease}.fade-enter-from,.fade-leave-to{opacity:0;transform:translateY(10px)}.drop-area[data-v-67c0172c]{border:1px dashed var(--border-primary);border-radius:8px;display:flex;align-items:center;justify-content:center;background-color:var(--bg-card);width:100%;height:160px;margin-top:12px;cursor:pointer;transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease,transform .2s ease}.drop-area--active[data-v-67c0172c]{border-color:var(--accent-color);background-color:var(--bg-hover);box-shadow:0 0 0 1px #4f8ef726,0 10px 25px #0f172a0f;transform:translateY(-1px)}.drop-area[data-v-67c0172c]:hover{border-color:var(--accent-color);background-color:var(--bg-hover)}.drop-area__content[data-v-67c0172c]{text-align:center;color:var(--text-muted)}.drop-area__icon[data-v-67c0172c]{font-size:32px;margin-bottom:8px;transition:transform .2s ease,color .2s ease;color:var(--text-muted)}.drop-area:hover .drop-area__icon[data-v-67c0172c],.drop-area--active .drop-area__icon[data-v-67c0172c]{transform:translateY(-2px);color:var(--accent-color)}.drop-area__text[data-v-67c0172c]{font-size:14px;color:var(--text-muted);margin-top:4px}.drop-area:hover .drop-area__text[data-v-67c0172c],.drop-area--active .drop-area__text[data-v-67c0172c]{color:var(--text-primary)}.list[data-v-82b3048f]{margin-top:16px;flex:1;display:flex;flex-direction:column}.list__table[data-v-82b3048f]{width:100%;border-collapse:collapse;background-color:var(--bg-card);border-radius:8px;overflow:hidden}th[data-v-82b3048f],td[data-v-82b3048f]{padding:8px 12px;font-size:12px;border-bottom:1px solid var(--border-primary)}th[data-v-82b3048f]{text-align:left;background-color:var(--bg-hover);color:var(--text-secondary)}td[data-v-82b3048f]{color:var(--text-primary)}.col-name[data-v-82b3048f]{max-width:320px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.col-size[data-v-82b3048f],.col-rate[data-v-82b3048f],.col-status[data-v-82b3048f]{width:100px}.col-actions[data-v-82b3048f]{width:220px}.status-success[data-v-82b3048f]{color:#16a34a}.status-failed[data-v-82b3048f]{color:#dc2626}.list__empty[data-v-82b3048f]{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:13px}.row-btn[data-v-82b3048f]{margin-right:6px;padding:3px 8px;border-radius:4px;border:1px solid var(--border-primary);background-color:var(--bg-card);color:var(--text-secondary);font-size:11px;cursor:pointer}.row-btn[data-v-82b3048f]:hover:not(:disabled){background-color:var(--bg-hover);border-color:var(--accent-color);color:var(--accent-color)}.row-btn.danger[data-v-82b3048f]:hover{background-color:#fee2e2;border-color:#ef4444;color:#ef4444}.row-btn[data-v-82b3048f]:disabled{opacity:.5;cursor:default}.summary[data-v-8a67c85b]{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-top:1px solid var(--border-primary);background-color:var(--bg-card)}.summary__info[data-v-8a67c85b]{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}.divider[data-v-8a67c85b]{width:1px;height:14px;background-color:var(--border-primary)}.summary__actions[data-v-8a67c85b]{display:flex;align-items:center;gap:8px}button.secondary[data-v-8a67c85b]{min-width:88px;padding:5px 12px;border-radius:4px;border:1px solid var(--border-primary);background-color:var(--bg-card);color:var(--text-secondary);font-size:12px;cursor:pointer}button.secondary[data-v-8a67c85b]:hover:not(:disabled){background-color:var(--bg-hover);border-color:var(--accent-color);color:var(--accent-color)}button.secondary[data-v-8a67c85b]:disabled{opacity:.5;cursor:default}button.primary[data-v-8a67c85b]{min-width:96px;padding:6px 14px;border-radius:4px;border:none;background-color:var(--accent-color);color:#fff;font-size:13px;cursor:pointer;transition:opacity .2s}button.primary[data-v-8a67c85b]:hover:not(:disabled){opacity:.9;box-shadow:0 2px 8px rgba(var(--accent-color-rgb),.4)}button.primary[data-v-8a67c85b]:disabled{background-color:var(--border-primary);color:var(--text-muted);cursor:default}.settings-page[data-v-b03467f3]{padding-bottom:20px}.setting-group[data-v-b03467f3]{margin-bottom:24px;background-color:var(--bg-card);padding:16px;border-radius:8px;border:1px solid var(--border-primary)}.setting-group h3[data-v-b03467f3]{margin-top:0;margin-bottom:16px;font-size:16px;color:var(--text-primary);border-bottom:1px solid var(--border-primary);padding-bottom:8px}.form-item[data-v-b03467f3]{margin-bottom:12px;display:flex;flex-direction:column}label[data-v-b03467f3]{font-size:14px;margin-bottom:4px;color:var(--text-secondary)}input[type=text][data-v-b03467f3],input[type=password][data-v-b03467f3],input[type=number][data-v-b03467f3],select[data-v-b03467f3]{padding:8px 12px;border-radius:6px;border:1px solid var(--border-primary);background-color:var(--bg-primary);color:var(--text-primary);font-size:14px;outline:none;transition:border-color .2s}input[data-v-b03467f3]:focus,select[data-v-b03467f3]:focus{border-color:var(--text-accent)}small[data-v-b03467f3]{font-size:12px;color:var(--text-muted);margin-top:4px}.checkbox label[data-v-b03467f3]{display:flex;align-items:center;gap:8px;cursor:pointer}.actions[data-v-b03467f3]{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:16px}.btn-primary[data-v-b03467f3]{display:flex;align-items:center;gap:6px;padding:8px 16px;background-color:var(--text-accent);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;transition:opacity .2s}.btn-primary[data-v-b03467f3]:hover:not(:disabled){opacity:.9;box-shadow:0 2px 8px #0000001a}.btn-primary[data-v-b03467f3]:active:not(:disabled){transform:translateY(1px)}.btn-primary[data-v-b03467f3]:disabled{opacity:.6;cursor:not-allowed}.message[data-v-b03467f3]{font-size:14px;color:#10b981}.message.error[data-v-b03467f3]{color:#ef4444}
Binary file
package/index.html ADDED
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <link rel="icon" type="image/svg+xml" href="./logo.png" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ <title>TinyPNG 压缩图片</title>
8
+ <script type="module" crossorigin src="./assets/index-qSDh-E8H.js"></script>
9
+ <link rel="stylesheet" crossorigin href="./assets/index--Ks-VWwP.css">
10
+ </head>
11
+ <body>
12
+ <div id="app"></div>
13
+ </body>
14
+ </html>
package/logo.png ADDED
Binary file
package/package.json ADDED
@@ -0,0 +1,4 @@
1
+ {
2
+ "name": "@ruck-plugins/tinypng-compress",
3
+ "version": "1.0.0"
4
+ }
package/plugin.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "@ruck-plugins/tinypng-compress",
3
+ "version": "1.0.0",
4
+ "displayName": "TinyPNG 压缩图片",
5
+ "pluginType": "ui",
6
+ "description": "使用 TinyPNG 快速压缩本地图片",
7
+ "author": "JIAHE",
8
+ "logo": "logo.png",
9
+ "entry": "index.html",
10
+ "group": "image",
11
+ "permissions": [
12
+ "file_system_read",
13
+ "file_system_write",
14
+ "network_access",
15
+ "storage_get",
16
+ "storage_put",
17
+ "clipboard_write"
18
+ ],
19
+ "features": [
20
+ {
21
+ "code": "tinypng-compress",
22
+ "explain": "使用 TinyPNG 压缩图片",
23
+ "cmds": [
24
+ "tinypng 压缩",
25
+ "压缩图片",
26
+ "TinyPNG",
27
+ {
28
+ "type": "files",
29
+ "label": "使用 TinyPNG 压缩",
30
+ "fileType": "file",
31
+ "minLength": 1,
32
+ "extensions": ["png", "jpg", "jpeg", "webp"]
33
+ },
34
+ {
35
+ "type": "img",
36
+ "label": "使用 TinyPNG 压缩"
37
+ }
38
+ ]
39
+ }
40
+ ]
41
+ }