dsh-convert-core 0.1.0-alpha.1
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/LICENSE +21 -0
- package/README.md +149 -0
- package/bin/media-to-md.mjs +168 -0
- package/bin/tita-convert.mjs +85 -0
- package/docs/media-to-md.md +143 -0
- package/lib/adapters/anydoc.d.ts +73 -0
- package/lib/adapters/anydoc.d.ts.map +1 -0
- package/lib/adapters/anydoc.js +295 -0
- package/lib/adapters/anydoc.js.map +1 -0
- package/lib/adapters/iddoc.d.ts +28 -0
- package/lib/adapters/iddoc.d.ts.map +1 -0
- package/lib/adapters/iddoc.js +153 -0
- package/lib/adapters/iddoc.js.map +1 -0
- package/lib/adapters/index.d.ts +41 -0
- package/lib/adapters/index.d.ts.map +1 -0
- package/lib/adapters/index.js +115 -0
- package/lib/adapters/index.js.map +1 -0
- package/lib/adapters/scanned.d.ts +28 -0
- package/lib/adapters/scanned.d.ts.map +1 -0
- package/lib/adapters/scanned.js +121 -0
- package/lib/adapters/scanned.js.map +1 -0
- package/lib/adapters/text.d.ts +29 -0
- package/lib/adapters/text.d.ts.map +1 -0
- package/lib/adapters/text.js +135 -0
- package/lib/adapters/text.js.map +1 -0
- package/lib/adapters/types.d.ts +65 -0
- package/lib/adapters/types.d.ts.map +1 -0
- package/lib/adapters/types.js +11 -0
- package/lib/adapters/types.js.map +1 -0
- package/lib/contract.d.ts +185 -0
- package/lib/contract.d.ts.map +1 -0
- package/lib/contract.js +59 -0
- package/lib/contract.js.map +1 -0
- package/lib/delivery.d.ts +36 -0
- package/lib/delivery.d.ts.map +1 -0
- package/lib/delivery.js +97 -0
- package/lib/delivery.js.map +1 -0
- package/lib/http.d.ts +34 -0
- package/lib/http.d.ts.map +1 -0
- package/lib/http.js +372 -0
- package/lib/http.js.map +1 -0
- package/lib/markdown.d.ts +32 -0
- package/lib/markdown.d.ts.map +1 -0
- package/lib/markdown.js +145 -0
- package/lib/markdown.js.map +1 -0
- package/lib/media/binaries.d.ts +26 -0
- package/lib/media/binaries.d.ts.map +1 -0
- package/lib/media/binaries.js +60 -0
- package/lib/media/binaries.js.map +1 -0
- package/lib/media/convert.d.ts +19 -0
- package/lib/media/convert.d.ts.map +1 -0
- package/lib/media/convert.js +210 -0
- package/lib/media/convert.js.map +1 -0
- package/lib/media/index.d.ts +27 -0
- package/lib/media/index.d.ts.map +1 -0
- package/lib/media/index.js +27 -0
- package/lib/media/index.js.map +1 -0
- package/lib/media/markdown.d.ts +40 -0
- package/lib/media/markdown.d.ts.map +1 -0
- package/lib/media/markdown.js +89 -0
- package/lib/media/markdown.js.map +1 -0
- package/lib/media/media.d.ts +45 -0
- package/lib/media/media.d.ts.map +1 -0
- package/lib/media/media.js +167 -0
- package/lib/media/media.js.map +1 -0
- package/lib/media/models.d.ts +31 -0
- package/lib/media/models.d.ts.map +1 -0
- package/lib/media/models.js +87 -0
- package/lib/media/models.js.map +1 -0
- package/lib/media/scanned.d.ts +18 -0
- package/lib/media/scanned.d.ts.map +1 -0
- package/lib/media/scanned.js +179 -0
- package/lib/media/scanned.js.map +1 -0
- package/lib/media/types.d.ts +154 -0
- package/lib/media/types.d.ts.map +1 -0
- package/lib/media/types.js +23 -0
- package/lib/media/types.js.map +1 -0
- package/lib/server.d.ts +35 -0
- package/lib/server.d.ts.map +1 -0
- package/lib/server.js +64 -0
- package/lib/server.js.map +1 -0
- package/lib/service.d.ts +170 -0
- package/lib/service.d.ts.map +1 -0
- package/lib/service.js +562 -0
- package/lib/service.js.map +1 -0
- package/package.json +59 -0
- package/scripts/asr.py +55 -0
- package/scripts/ocr.py +40 -0
- package/scripts/pdf_pages.py +49 -0
- package/scripts/vendor.mjs +76 -0
- package/src/adapters/anydoc.ts +356 -0
- package/src/adapters/iddoc.ts +171 -0
- package/src/adapters/index.ts +147 -0
- package/src/adapters/scanned.ts +139 -0
- package/src/adapters/text.ts +146 -0
- package/src/adapters/types.ts +76 -0
- package/src/contract.ts +230 -0
- package/src/delivery.ts +124 -0
- package/src/http.ts +394 -0
- package/src/markdown.ts +141 -0
- package/src/media/binaries.ts +67 -0
- package/src/media/convert.ts +232 -0
- package/src/media/index.ts +43 -0
- package/src/media/markdown.ts +105 -0
- package/src/media/media.ts +204 -0
- package/src/media/models.ts +124 -0
- package/src/media/scanned.ts +200 -0
- package/src/media/types.ts +171 -0
- package/src/server.ts +85 -0
- package/src/service.ts +639 -0
- package/web/app.js +382 -0
- package/web/index.html +217 -0
- package/web/styles.css +263 -0
- package/web/vendor/icons.js +25 -0
- package/web/vendor/vue.global.prod.js +14 -0
package/web/styles.css
ADDED
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
color-scheme: dark light;
|
|
3
|
+
--bg: #0b0d12;
|
|
4
|
+
--bg-elevated: #12151d;
|
|
5
|
+
--bg-input: #0e1119;
|
|
6
|
+
--border: #232838;
|
|
7
|
+
--border-strong: #313849;
|
|
8
|
+
--text: #e7eaf3;
|
|
9
|
+
--text-muted: #8d95ab;
|
|
10
|
+
--accent: #6ea8fe;
|
|
11
|
+
--accent-strong: #4d8dfd;
|
|
12
|
+
--ok: #3ecf8e;
|
|
13
|
+
--warn: #f0b429;
|
|
14
|
+
--error: #f4635f;
|
|
15
|
+
--radius: 10px;
|
|
16
|
+
--radius-sm: 7px;
|
|
17
|
+
--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
|
|
18
|
+
--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB",
|
|
19
|
+
"Microsoft YaHei", sans-serif;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@media (prefers-color-scheme: light) {
|
|
23
|
+
:root {
|
|
24
|
+
--bg: #f6f7f9;
|
|
25
|
+
--bg-elevated: #ffffff;
|
|
26
|
+
--bg-input: #ffffff;
|
|
27
|
+
--border: #e2e5ec;
|
|
28
|
+
--border-strong: #cfd4e0;
|
|
29
|
+
--text: #1a1d26;
|
|
30
|
+
--text-muted: #666e82;
|
|
31
|
+
--accent: #2f6fdd;
|
|
32
|
+
--accent-strong: #1f5ec9;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
* { box-sizing: border-box; }
|
|
37
|
+
|
|
38
|
+
html, body { margin: 0; padding: 0; }
|
|
39
|
+
|
|
40
|
+
body {
|
|
41
|
+
background: var(--bg);
|
|
42
|
+
color: var(--text);
|
|
43
|
+
font-family: var(--sans);
|
|
44
|
+
font-size: 14px;
|
|
45
|
+
line-height: 1.55;
|
|
46
|
+
-webkit-font-smoothing: antialiased;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
code, pre { font-family: var(--mono); font-size: 12.5px; }
|
|
50
|
+
|
|
51
|
+
a { color: var(--accent); text-decoration: none; }
|
|
52
|
+
a:hover { text-decoration: underline; }
|
|
53
|
+
|
|
54
|
+
h1, h2, h3 { margin: 0; font-weight: 600; letter-spacing: -0.01em; }
|
|
55
|
+
h1 { font-size: 15px; }
|
|
56
|
+
h2 { font-size: 14px; display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
|
|
57
|
+
h3 { font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--text-muted); margin: 18px 0 8px; }
|
|
58
|
+
|
|
59
|
+
svg { width: 15px; height: 15px; flex: none; }
|
|
60
|
+
|
|
61
|
+
.ico { display: inline-flex; align-items: center; justify-content: center; }
|
|
62
|
+
.ico svg { width: 15px; height: 15px; flex: none; }
|
|
63
|
+
|
|
64
|
+
/* ---------- shell ---------- */
|
|
65
|
+
.topbar {
|
|
66
|
+
position: sticky;
|
|
67
|
+
top: 0;
|
|
68
|
+
z-index: 10;
|
|
69
|
+
display: flex;
|
|
70
|
+
align-items: center;
|
|
71
|
+
gap: 20px;
|
|
72
|
+
padding: 10px 20px;
|
|
73
|
+
background: color-mix(in srgb, var(--bg) 88%, transparent);
|
|
74
|
+
backdrop-filter: blur(12px);
|
|
75
|
+
border-bottom: 1px solid var(--border);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.brand { display: flex; align-items: center; gap: 10px; min-width: 0; }
|
|
79
|
+
.brand-mark {
|
|
80
|
+
display: grid;
|
|
81
|
+
place-items: center;
|
|
82
|
+
width: 30px; height: 30px;
|
|
83
|
+
border-radius: 8px;
|
|
84
|
+
background: linear-gradient(140deg, var(--accent), #9b7bfa);
|
|
85
|
+
color: #fff;
|
|
86
|
+
}
|
|
87
|
+
.brand p { margin: 0; font-size: 11.5px; color: var(--text-muted); }
|
|
88
|
+
|
|
89
|
+
.tabs { display: flex; gap: 4px; margin-left: auto; }
|
|
90
|
+
.tab {
|
|
91
|
+
display: inline-flex; align-items: center; gap: 6px;
|
|
92
|
+
padding: 6px 11px;
|
|
93
|
+
border: 1px solid transparent;
|
|
94
|
+
border-radius: var(--radius-sm);
|
|
95
|
+
background: none; color: var(--text-muted);
|
|
96
|
+
font: inherit; font-size: 13px; cursor: pointer;
|
|
97
|
+
}
|
|
98
|
+
.tab:hover { background: var(--bg-elevated); color: var(--text); }
|
|
99
|
+
.tab.active { background: var(--bg-elevated); border-color: var(--border-strong); color: var(--text); }
|
|
100
|
+
|
|
101
|
+
.topbar-actions { display: flex; align-items: center; gap: 8px; margin-left: auto; }
|
|
102
|
+
.tabs + .topbar-actions { margin-left: 0; }
|
|
103
|
+
|
|
104
|
+
.pill {
|
|
105
|
+
display: inline-flex; align-items: center; gap: 6px;
|
|
106
|
+
padding: 4px 9px;
|
|
107
|
+
border: 1px solid var(--border);
|
|
108
|
+
border-radius: 999px;
|
|
109
|
+
color: var(--text-muted); font-size: 12px;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
main { padding: 18px 20px 40px; max-width: 1400px; margin: 0 auto; }
|
|
113
|
+
|
|
114
|
+
.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: start; }
|
|
115
|
+
@media (max-width: 1080px) { .split { grid-template-columns: minmax(0, 1fr); } }
|
|
116
|
+
|
|
117
|
+
/* ---------- cards ---------- */
|
|
118
|
+
.card {
|
|
119
|
+
background: var(--bg-elevated);
|
|
120
|
+
border: 1px solid var(--border);
|
|
121
|
+
border-radius: var(--radius);
|
|
122
|
+
padding: 16px;
|
|
123
|
+
margin-bottom: 16px;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.field { display: block; margin-bottom: 12px; }
|
|
127
|
+
.field > span { display: block; font-size: 12px; color: var(--text-muted); margin-bottom: 5px; }
|
|
128
|
+
.field small { display: block; margin-top: 5px; font-size: 11.5px; color: var(--text-muted); }
|
|
129
|
+
|
|
130
|
+
input[type="text"], input[type="url"], input[type="file"], select, textarea {
|
|
131
|
+
width: 100%;
|
|
132
|
+
padding: 8px 10px;
|
|
133
|
+
background: var(--bg-input);
|
|
134
|
+
border: 1px solid var(--border-strong);
|
|
135
|
+
border-radius: var(--radius-sm);
|
|
136
|
+
color: var(--text);
|
|
137
|
+
font: inherit;
|
|
138
|
+
}
|
|
139
|
+
textarea { resize: vertical; font-family: var(--mono); font-size: 12.5px; }
|
|
140
|
+
input:focus, select:focus, textarea:focus { outline: 2px solid color-mix(in srgb, var(--accent) 45%, transparent); outline-offset: 0; border-color: var(--accent); }
|
|
141
|
+
|
|
142
|
+
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
|
|
143
|
+
@media (max-width: 640px) { .grid-2 { grid-template-columns: 1fr; } }
|
|
144
|
+
|
|
145
|
+
.segmented { display: flex; gap: 4px; padding: 3px; background: var(--bg-input); border: 1px solid var(--border); border-radius: var(--radius-sm); margin-bottom: 14px; }
|
|
146
|
+
.segment {
|
|
147
|
+
flex: 1;
|
|
148
|
+
display: inline-flex; align-items: center; justify-content: center; gap: 6px;
|
|
149
|
+
padding: 6px 8px;
|
|
150
|
+
border: 0; border-radius: 5px;
|
|
151
|
+
background: none; color: var(--text-muted);
|
|
152
|
+
font: inherit; font-size: 12.5px; cursor: pointer;
|
|
153
|
+
}
|
|
154
|
+
.segment:hover { color: var(--text); }
|
|
155
|
+
.segment.active { background: var(--accent); color: #fff; }
|
|
156
|
+
|
|
157
|
+
button.primary, .ghost {
|
|
158
|
+
display: inline-flex; align-items: center; gap: 6px;
|
|
159
|
+
padding: 8px 13px;
|
|
160
|
+
border-radius: var(--radius-sm);
|
|
161
|
+
font: inherit; font-size: 13px;
|
|
162
|
+
cursor: pointer;
|
|
163
|
+
transition: background 120ms ease, border-color 120ms ease;
|
|
164
|
+
}
|
|
165
|
+
button.primary { width: 100%; justify-content: center; margin-top: 4px; border: 1px solid var(--accent-strong); background: var(--accent); color: #fff; font-weight: 500; }
|
|
166
|
+
button.primary:hover:not(:disabled) { background: var(--accent-strong); }
|
|
167
|
+
button.primary:disabled { opacity: 0.55; cursor: progress; }
|
|
168
|
+
|
|
169
|
+
.ghost { border: 1px solid var(--border-strong); background: var(--bg-input); color: var(--text); }
|
|
170
|
+
.ghost:hover:not(:disabled) { border-color: var(--accent); color: var(--accent); }
|
|
171
|
+
.ghost:disabled { opacity: 0.5; cursor: not-allowed; }
|
|
172
|
+
|
|
173
|
+
/* ---------- banners ---------- */
|
|
174
|
+
.banner {
|
|
175
|
+
display: flex; align-items: flex-start; gap: 8px;
|
|
176
|
+
padding: 9px 12px; margin: 0 0 14px;
|
|
177
|
+
border-radius: var(--radius-sm);
|
|
178
|
+
font-size: 13px;
|
|
179
|
+
border: 1px solid;
|
|
180
|
+
}
|
|
181
|
+
.banner.error { border-color: color-mix(in srgb, var(--error) 45%, var(--border)); background: color-mix(in srgb, var(--error) 12%, transparent); }
|
|
182
|
+
.banner.ok { border-color: color-mix(in srgb, var(--ok) 45%, var(--border)); background: color-mix(in srgb, var(--ok) 12%, transparent); }
|
|
183
|
+
|
|
184
|
+
.muted { color: var(--text-muted); }
|
|
185
|
+
.small { font-size: 11.5px; }
|
|
186
|
+
.hint { color: var(--warn); font-size: 11.5px; }
|
|
187
|
+
.error-text { color: var(--error); }
|
|
188
|
+
|
|
189
|
+
/* ---------- capability lists ---------- */
|
|
190
|
+
.cap-list, .bin-list { list-style: none; margin: 0; padding: 0; }
|
|
191
|
+
.cap-list li { display: flex; gap: 9px; padding: 9px 0; border-bottom: 1px dashed var(--border); }
|
|
192
|
+
.cap-list li:last-child { border-bottom: 0; }
|
|
193
|
+
.cap-list p { margin: 2px 0 0; font-size: 12px; color: var(--text-muted); }
|
|
194
|
+
.bin-list li { display: flex; align-items: center; gap: 9px; padding: 5px 0; font-size: 12.5px; }
|
|
195
|
+
.bin-list code { color: var(--text); }
|
|
196
|
+
.bin-list .hint { margin-left: auto; }
|
|
197
|
+
|
|
198
|
+
.dot { width: 8px; height: 8px; border-radius: 50%; flex: none; margin-top: 5px; }
|
|
199
|
+
.dot.on { background: var(--ok); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ok) 20%, transparent); }
|
|
200
|
+
.dot.off { background: var(--text-muted); opacity: 0.5; }
|
|
201
|
+
|
|
202
|
+
/* ---------- tasks ---------- */
|
|
203
|
+
table.tasks { width: 100%; border-collapse: collapse; }
|
|
204
|
+
table.tasks th {
|
|
205
|
+
text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: 0.07em;
|
|
206
|
+
color: var(--text-muted); padding: 6px 8px; border-bottom: 1px solid var(--border);
|
|
207
|
+
}
|
|
208
|
+
table.tasks td { padding: 10px 8px; border-bottom: 1px solid var(--border); vertical-align: top; }
|
|
209
|
+
table.tasks tr.selected { background: color-mix(in srgb, var(--accent) 8%, transparent); }
|
|
210
|
+
|
|
211
|
+
.state { display: inline-block; padding: 2px 7px; border-radius: 999px; font-size: 11px; border: 1px solid var(--border-strong); }
|
|
212
|
+
.state.succeeded { color: var(--ok); border-color: color-mix(in srgb, var(--ok) 45%, var(--border)); }
|
|
213
|
+
.state.running { color: var(--accent); border-color: color-mix(in srgb, var(--accent) 45%, var(--border)); }
|
|
214
|
+
.state.failed { color: var(--error); border-color: color-mix(in srgb, var(--error) 45%, var(--border)); }
|
|
215
|
+
.state.cancelled { color: var(--text-muted); }
|
|
216
|
+
.state.queued { color: var(--warn); border-color: color-mix(in srgb, var(--warn) 45%, var(--border)); }
|
|
217
|
+
|
|
218
|
+
.progress { height: 4px; border-radius: 999px; background: var(--bg-input); overflow: hidden; margin-bottom: 4px; }
|
|
219
|
+
.progress .bar { height: 100%; background: var(--accent); transition: width 240ms ease; }
|
|
220
|
+
.progress .bar.indeterminate { background: linear-gradient(90deg, transparent, var(--accent), transparent); animation: sweep 1.4s linear infinite; }
|
|
221
|
+
@keyframes sweep { from { transform: translateX(-100%); } to { transform: translateX(100%); } }
|
|
222
|
+
|
|
223
|
+
.row-actions { display: flex; gap: 5px; white-space: nowrap; }
|
|
224
|
+
.row-actions .ghost { padding: 5px 8px; }
|
|
225
|
+
|
|
226
|
+
/* ---------- delivery ---------- */
|
|
227
|
+
.delivery .kv { margin: 0 0 12px; display: grid; gap: 6px; }
|
|
228
|
+
.delivery .kv > div { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 10px; align-items: baseline; }
|
|
229
|
+
.delivery dt { font-size: 12px; color: var(--text-muted); }
|
|
230
|
+
.delivery dd { margin: 0; font-size: 12.5px; overflow-wrap: anywhere; }
|
|
231
|
+
.delivery code { background: var(--bg-input); padding: 1px 5px; border-radius: 4px; }
|
|
232
|
+
|
|
233
|
+
.preview {
|
|
234
|
+
border: 1px solid var(--border);
|
|
235
|
+
border-radius: var(--radius-sm);
|
|
236
|
+
padding: 14px 16px;
|
|
237
|
+
background: var(--bg-input);
|
|
238
|
+
max-height: 460px;
|
|
239
|
+
overflow: auto;
|
|
240
|
+
}
|
|
241
|
+
.preview h1 { font-size: 18px; margin: 0 0 10px; }
|
|
242
|
+
.preview h2 { font-size: 15px; margin: 18px 0 8px; }
|
|
243
|
+
.preview h3 { font-size: 13px; text-transform: none; letter-spacing: 0; color: var(--text); margin: 14px 0 6px; }
|
|
244
|
+
.preview p { margin: 0 0 10px; }
|
|
245
|
+
.preview img { max-width: 100%; border-radius: 6px; border: 1px solid var(--border); }
|
|
246
|
+
.preview pre { background: #05070c; border: 1px solid var(--border); border-radius: 6px; padding: 10px; overflow: auto; }
|
|
247
|
+
.preview code { background: var(--bg-elevated); padding: 1px 5px; border-radius: 4px; }
|
|
248
|
+
.preview pre code { background: none; padding: 0; }
|
|
249
|
+
.preview blockquote { margin: 0 0 10px; padding-left: 12px; border-left: 2px solid var(--border-strong); color: var(--text-muted); }
|
|
250
|
+
.preview table { border-collapse: collapse; width: 100%; margin-bottom: 12px; }
|
|
251
|
+
.preview th, .preview td { border: 1px solid var(--border); padding: 5px 8px; text-align: left; }
|
|
252
|
+
|
|
253
|
+
.assets { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; }
|
|
254
|
+
.assets figure { margin: 0; border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 6px; background: var(--bg-input); }
|
|
255
|
+
.assets img { width: 100%; height: 96px; object-fit: contain; display: block; }
|
|
256
|
+
.assets figcaption { font-size: 10.5px; margin-top: 6px; overflow-wrap: anywhere; }
|
|
257
|
+
|
|
258
|
+
.footer {
|
|
259
|
+
display: flex; gap: 20px; flex-wrap: wrap;
|
|
260
|
+
padding: 12px 20px;
|
|
261
|
+
border-top: 1px solid var(--border);
|
|
262
|
+
color: var(--text-muted); font-size: 11.5px;
|
|
263
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Generated by scripts/vendor.mjs from the lucide-static icon set.
|
|
2
|
+
window.__CONVERT_ICONS__ = {
|
|
3
|
+
"layers": "<!-- @license lucide-static v0.468.0 - ISC --><svg class=\"lucide lucide-layers\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <path d=\"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z\" /> <path d=\"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12\" /> <path d=\"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17\" /></svg>",
|
|
4
|
+
"file-up": "<!-- @license lucide-static v0.468.0 - ISC --><svg class=\"lucide lucide-file-up\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <path d=\"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\" /> <path d=\"M14 2v4a2 2 0 0 0 2 2h4\" /> <path d=\"M12 12v6\" /> <path d=\"m15 15-3-3-3 3\" /></svg>",
|
|
5
|
+
"link": "<!-- @license lucide-static v0.468.0 - ISC --><svg class=\"lucide lucide-link\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <path d=\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\" /> <path d=\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\" /></svg>",
|
|
6
|
+
"video": "<!-- @license lucide-static v0.468.0 - ISC --><svg class=\"lucide lucide-video\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <path d=\"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5\" /> <rect x=\"2\" y=\"6\" width=\"14\" height=\"12\" rx=\"2\" /></svg>",
|
|
7
|
+
"file-text": "<!-- @license lucide-static v0.468.0 - ISC --><svg class=\"lucide lucide-file-text\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <path d=\"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\" /> <path d=\"M14 2v4a2 2 0 0 0 2 2h4\" /> <path d=\"M10 9H8\" /> <path d=\"M16 13H8\" /> <path d=\"M16 17H8\" /></svg>",
|
|
8
|
+
"clipboard-type": "<!-- @license lucide-static v0.468.0 - ISC --><svg class=\"lucide lucide-clipboard-type\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <rect width=\"8\" height=\"4\" x=\"8\" y=\"2\" rx=\"1\" ry=\"1\" /> <path d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\" /> <path d=\"M9 12v-1h6v1\" /> <path d=\"M11 17h2\" /> <path d=\"M12 11v6\" /></svg>",
|
|
9
|
+
"refresh-cw": "<!-- @license lucide-static v0.468.0 - ISC --><svg class=\"lucide lucide-refresh-cw\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <path d=\"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8\" /> <path d=\"M21 3v5h-5\" /> <path d=\"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16\" /> <path d=\"M8 16H3v5\" /></svg>",
|
|
10
|
+
"hard-drive": "<!-- @license lucide-static v0.468.0 - ISC --><svg class=\"lucide lucide-hard-drive\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <line x1=\"22\" x2=\"2\" y1=\"12\" y2=\"12\" /> <path d=\"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\" /> <line x1=\"6\" x2=\"6.01\" y1=\"16\" y2=\"16\" /> <line x1=\"10\" x2=\"10.01\" y1=\"16\" y2=\"16\" /></svg>",
|
|
11
|
+
"alert-triangle": "<!-- @license lucide-static v0.468.0 - ISC --><svg class=\"lucide lucide-triangle-alert\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\" /> <path d=\"M12 9v4\" /> <path d=\"M12 17h.01\" /></svg>",
|
|
12
|
+
"check-circle": "<!-- @license lucide-static v0.468.0 - ISC --><svg class=\"lucide lucide-circle-check\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <circle cx=\"12\" cy=\"12\" r=\"10\" /> <path d=\"m9 12 2 2 4-4\" /></svg>",
|
|
13
|
+
"activity": "<!-- @license lucide-static v0.468.0 - ISC --><svg class=\"lucide lucide-activity\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <path d=\"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2\" /></svg>",
|
|
14
|
+
"inbox": "<!-- @license lucide-static v0.468.0 - ISC --><svg class=\"lucide lucide-inbox\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <polyline points=\"22 12 16 12 14 15 10 15 8 12 2 12\" /> <path d=\"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\" /></svg>",
|
|
15
|
+
"package": "<!-- @license lucide-static v0.468.0 - ISC --><svg class=\"lucide lucide-package\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <path d=\"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z\" /> <path d=\"M12 22V12\" /> <path d=\"m3.3 7 7.703 4.734a2 2 0 0 0 1.994 0L20.7 7\" /> <path d=\"m7.5 4.27 9 5.15\" /></svg>",
|
|
16
|
+
"scan-eye": "<!-- @license lucide-static v0.468.0 - ISC --><svg class=\"lucide lucide-scan-eye\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <path d=\"M3 7V5a2 2 0 0 1 2-2h2\" /> <path d=\"M17 3h2a2 2 0 0 1 2 2v2\" /> <path d=\"M21 17v2a2 2 0 0 1-2 2h-2\" /> <path d=\"M7 21H5a2 2 0 0 1-2-2v-2\" /> <circle cx=\"12\" cy=\"12\" r=\"1\" /> <path d=\"M18.944 12.33a1 1 0 0 0 0-.66 7.5 7.5 0 0 0-13.888 0 1 1 0 0 0 0 .66 7.5 7.5 0 0 0 13.888 0\" /></svg>",
|
|
17
|
+
"x": "<!-- @license lucide-static v0.468.0 - ISC --><svg class=\"lucide lucide-x\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <path d=\"M18 6 6 18\" /> <path d=\"m6 6 12 12\" /></svg>",
|
|
18
|
+
"rotate-ccw": "<!-- @license lucide-static v0.468.0 - ISC --><svg class=\"lucide lucide-rotate-ccw\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <path d=\"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\" /> <path d=\"M3 3v5h5\" /></svg>",
|
|
19
|
+
"loader": "<!-- @license lucide-static v0.468.0 - ISC --><svg class=\"lucide lucide-loader\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <path d=\"M12 2v4\" /> <path d=\"m16.2 7.8 2.9-2.9\" /> <path d=\"M18 12h4\" /> <path d=\"m16.2 16.2 2.9 2.9\" /> <path d=\"M12 18v4\" /> <path d=\"m4.9 19.1 2.9-2.9\" /> <path d=\"M2 12h4\" /> <path d=\"m4.9 4.9 2.9 2.9\" /></svg>",
|
|
20
|
+
"play": "<!-- @license lucide-static v0.468.0 - ISC --><svg class=\"lucide lucide-play\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <polygon points=\"6 3 20 12 6 21 6 3\" /></svg>",
|
|
21
|
+
"copy": "<!-- @license lucide-static v0.468.0 - ISC --><svg class=\"lucide lucide-copy\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\" /> <path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\" /></svg>",
|
|
22
|
+
"download": "<!-- @license lucide-static v0.468.0 - ISC --><svg class=\"lucide lucide-download\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\" /> <polyline points=\"7 10 12 15 17 10\" /> <line x1=\"12\" x2=\"12\" y1=\"15\" y2=\"3\" /></svg>",
|
|
23
|
+
"circle-alert": "<!-- @license lucide-static v0.468.0 - ISC --><svg class=\"lucide lucide-circle-alert\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <circle cx=\"12\" cy=\"12\" r=\"10\" /> <line x1=\"12\" x2=\"12\" y1=\"8\" y2=\"12\" /> <line x1=\"12\" x2=\"12.01\" y1=\"16\" y2=\"16\" /></svg>",
|
|
24
|
+
"circle-check": "<!-- @license lucide-static v0.468.0 - ISC --><svg class=\"lucide lucide-circle-check\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <circle cx=\"12\" cy=\"12\" r=\"10\" /> <path d=\"m9 12 2 2 4-4\" /></svg>"
|
|
25
|
+
};
|