@gallop.software/studio 0.1.20 → 0.1.21

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.
@@ -54,6 +54,18 @@ import { css as css2, keyframes as keyframes2 } from "@emotion/react";
54
54
  // src/components/StudioModal.tsx
55
55
  import { css, keyframes } from "@emotion/react";
56
56
  import { jsx, jsxs } from "@emotion/react/jsx-runtime";
57
+ var colors = {
58
+ primary: "#635bff",
59
+ primaryHover: "#5851e5",
60
+ background: "#f6f9fc",
61
+ surface: "#ffffff",
62
+ surfaceHover: "#f6f9fc",
63
+ border: "#e3e8ee",
64
+ text: "#1a1f36",
65
+ textSecondary: "#697386",
66
+ danger: "#df1b41",
67
+ dangerHover: "#c41535"
68
+ };
57
69
  var fadeIn = keyframes`
58
70
  from { opacity: 0; }
59
71
  to { opacity: 1; }
@@ -61,18 +73,19 @@ var fadeIn = keyframes`
61
73
  var slideIn = keyframes`
62
74
  from {
63
75
  opacity: 0;
64
- transform: scale(0.95);
76
+ transform: translateY(-8px) scale(0.98);
65
77
  }
66
78
  to {
67
79
  opacity: 1;
68
- transform: scale(1);
80
+ transform: translateY(0) scale(1);
69
81
  }
70
82
  `;
71
83
  var styles = {
72
84
  overlay: css`
73
85
  position: fixed;
74
86
  inset: 0;
75
- background-color: rgba(0, 0, 0, 0.5);
87
+ background-color: rgba(26, 31, 54, 0.4);
88
+ backdrop-filter: blur(4px);
76
89
  display: flex;
77
90
  align-items: center;
78
91
  justify-content: center;
@@ -80,73 +93,78 @@ var styles = {
80
93
  animation: ${fadeIn} 0.15s ease-out;
81
94
  `,
82
95
  modal: css`
83
- background-color: white;
96
+ background-color: ${colors.surface};
84
97
  border-radius: 12px;
85
- box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
86
- max-width: 400px;
98
+ box-shadow: 0 30px 60px -12px rgba(50, 50, 93, 0.25), 0 18px 36px -18px rgba(0, 0, 0, 0.3);
99
+ max-width: 420px;
87
100
  width: 90%;
88
- animation: ${slideIn} 0.15s ease-out;
101
+ animation: ${slideIn} 0.2s ease-out;
102
+ overflow: hidden;
89
103
  `,
90
104
  header: css`
91
- padding: 20px 24px 0;
105
+ padding: 24px 24px 0;
92
106
  `,
93
107
  title: css`
94
- font-size: 18px;
108
+ font-size: 17px;
95
109
  font-weight: 600;
96
- color: #111827;
110
+ color: ${colors.text};
97
111
  margin: 0;
112
+ letter-spacing: -0.02em;
98
113
  `,
99
114
  body: css`
100
115
  padding: 12px 24px 24px;
101
116
  `,
102
117
  message: css`
103
118
  font-size: 14px;
104
- color: #6b7280;
119
+ color: ${colors.textSecondary};
105
120
  margin: 0;
106
- line-height: 1.5;
121
+ line-height: 1.6;
107
122
  `,
108
123
  footer: css`
109
124
  display: flex;
110
125
  justify-content: flex-end;
111
126
  gap: 12px;
112
127
  padding: 16px 24px;
113
- border-top: 1px solid #e5e7eb;
114
- background-color: #f9fafb;
115
- border-radius: 0 0 12px 12px;
128
+ border-top: 1px solid ${colors.border};
129
+ background-color: ${colors.background};
116
130
  `,
117
131
  btn: css`
118
- padding: 8px 16px;
132
+ padding: 10px 18px;
119
133
  font-size: 14px;
120
134
  font-weight: 500;
121
- border-radius: 8px;
135
+ border-radius: 6px;
122
136
  cursor: pointer;
123
- transition: all 0.15s;
137
+ transition: all 0.15s ease;
138
+ letter-spacing: -0.01em;
124
139
  `,
125
140
  btnCancel: css`
126
- background-color: white;
127
- border: 1px solid #d1d5db;
128
- color: #374151;
141
+ background-color: ${colors.surface};
142
+ border: 1px solid ${colors.border};
143
+ color: ${colors.text};
129
144
 
130
145
  &:hover {
131
- background-color: #f9fafb;
146
+ background-color: ${colors.surfaceHover};
147
+ border-color: #d0d5dd;
132
148
  }
133
149
  `,
134
150
  btnConfirm: css`
135
- background-color: #9333ea;
136
- border: 1px solid #9333ea;
151
+ background-color: ${colors.primary};
152
+ border: 1px solid ${colors.primary};
137
153
  color: white;
138
154
 
139
155
  &:hover {
140
- background-color: #7c3aed;
156
+ background-color: ${colors.primaryHover};
157
+ border-color: ${colors.primaryHover};
141
158
  }
142
159
  `,
143
160
  btnDanger: css`
144
- background-color: #dc2626;
145
- border: 1px solid #dc2626;
161
+ background-color: ${colors.danger};
162
+ border: 1px solid ${colors.danger};
146
163
  color: white;
147
164
 
148
165
  &:hover {
149
- background-color: #b91c1c;
166
+ background-color: ${colors.dangerHover};
167
+ border-color: ${colors.dangerHover};
150
168
  }
151
169
  `
152
170
  };
@@ -190,6 +208,19 @@ function AlertModal({
190
208
 
191
209
  // src/components/StudioToolbar.tsx
192
210
  import { Fragment, jsx as jsx2, jsxs as jsxs2 } from "@emotion/react/jsx-runtime";
211
+ var colors2 = {
212
+ primary: "#635bff",
213
+ primaryHover: "#5851e5",
214
+ primaryLight: "#f0f0ff",
215
+ background: "#ffffff",
216
+ surface: "#ffffff",
217
+ surfaceHover: "#f6f9fc",
218
+ border: "#e3e8ee",
219
+ text: "#1a1f36",
220
+ textSecondary: "#697386",
221
+ danger: "#df1b41",
222
+ dangerLight: "#fff5f7"
223
+ };
193
224
  var spin = keyframes2`
194
225
  to { transform: rotate(360deg); }
195
226
  `;
@@ -199,97 +230,131 @@ var styles2 = {
199
230
  align-items: center;
200
231
  justify-content: space-between;
201
232
  padding: 12px 24px;
202
- background-color: #f9fafb;
203
- border-bottom: 1px solid #e5e7eb;
233
+ background-color: ${colors2.background};
234
+ border-bottom: 1px solid ${colors2.border};
204
235
  `,
205
236
  left: css2`
206
237
  display: flex;
207
238
  align-items: center;
208
- gap: 8px;
239
+ gap: 6px;
209
240
  `,
210
241
  right: css2`
211
242
  display: flex;
212
243
  align-items: center;
213
- gap: 16px;
244
+ gap: 12px;
214
245
  `,
215
246
  btn: css2`
216
- display: flex;
247
+ display: inline-flex;
217
248
  align-items: center;
218
- gap: 8px;
219
- padding: 8px 12px;
220
- border-radius: 8px;
221
- font-size: 14px;
249
+ gap: 6px;
250
+ padding: 6px 12px;
251
+ border-radius: 6px;
252
+ font-size: 13px;
222
253
  font-weight: 500;
223
- background: none;
224
- border: none;
254
+ background: ${colors2.surface};
255
+ border: 1px solid ${colors2.border};
225
256
  cursor: pointer;
226
- transition: background-color 0.15s;
257
+ transition: all 0.15s ease;
258
+ color: ${colors2.text};
259
+ letter-spacing: -0.01em;
260
+
261
+ &:hover:not(:disabled) {
262
+ background-color: ${colors2.surfaceHover};
263
+ border-color: #d0d5dd;
264
+ }
227
265
 
228
266
  &:disabled {
229
267
  cursor: not-allowed;
230
268
  opacity: 0.5;
231
269
  }
232
270
  `,
233
- btnDefault: css2`
234
- color: #374151;
271
+ btnPrimary: css2`
272
+ background: ${colors2.primary};
273
+ border-color: ${colors2.primary};
274
+ color: white;
235
275
 
236
276
  &:hover:not(:disabled) {
237
- background-color: white;
277
+ background: ${colors2.primaryHover};
278
+ border-color: ${colors2.primaryHover};
238
279
  }
239
280
  `,
240
281
  btnDanger: css2`
241
- color: #dc2626;
282
+ color: ${colors2.danger};
242
283
 
243
284
  &:hover:not(:disabled) {
244
- background-color: #fef2f2;
285
+ background-color: ${colors2.dangerLight};
286
+ border-color: ${colors2.danger};
287
+ }
288
+ `,
289
+ btnGhost: css2`
290
+ border-color: transparent;
291
+ background: transparent;
292
+
293
+ &:hover:not(:disabled) {
294
+ background-color: ${colors2.surfaceHover};
295
+ border-color: transparent;
245
296
  }
246
297
  `,
247
298
  icon: css2`
248
- width: 16px;
249
- height: 16px;
299
+ width: 14px;
300
+ height: 14px;
250
301
  `,
251
302
  iconSpin: css2`
252
303
  animation: ${spin} 1s linear infinite;
253
304
  `,
254
305
  selectionCount: css2`
255
- font-size: 14px;
256
- color: #4b5563;
306
+ font-size: 13px;
307
+ color: ${colors2.textSecondary};
308
+ display: flex;
309
+ align-items: center;
310
+ gap: 8px;
257
311
  `,
258
312
  clearBtn: css2`
259
- margin-left: 8px;
260
- color: #9333ea;
313
+ color: ${colors2.primary};
261
314
  background: none;
262
315
  border: none;
263
316
  cursor: pointer;
264
- font-size: 14px;
317
+ font-size: 13px;
318
+ font-weight: 500;
319
+ padding: 0;
265
320
 
266
321
  &:hover {
267
322
  text-decoration: underline;
268
323
  }
269
324
  `,
325
+ divider: css2`
326
+ width: 1px;
327
+ height: 20px;
328
+ background: ${colors2.border};
329
+ margin: 0 4px;
330
+ `,
270
331
  viewToggle: css2`
271
332
  display: flex;
272
333
  align-items: center;
273
- background-color: white;
274
- border: 1px solid #e5e7eb;
275
- border-radius: 8px;
276
- overflow: hidden;
334
+ background-color: ${colors2.surfaceHover};
335
+ border-radius: 6px;
336
+ padding: 2px;
277
337
  `,
278
338
  viewBtn: css2`
279
- padding: 8px;
280
- background: none;
339
+ padding: 6px 8px;
340
+ background: transparent;
281
341
  border: none;
342
+ border-radius: 4px;
282
343
  cursor: pointer;
283
- color: #6b7280;
284
- transition: all 0.15s;
344
+ color: ${colors2.textSecondary};
345
+ transition: all 0.15s ease;
346
+ display: flex;
347
+ align-items: center;
348
+ justify-content: center;
285
349
 
286
350
  &:hover {
287
- background-color: #f9fafb;
351
+ color: ${colors2.text};
288
352
  }
289
353
  `,
290
354
  viewBtnActive: css2`
291
- background-color: #f3e8ff;
292
- color: #7c3aed;
355
+ background-color: ${colors2.surface};
356
+ color: ${colors2.text};
357
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
293
358
  `
294
359
  };
295
360
  function StudioToolbar() {
@@ -418,50 +483,65 @@ function StudioToolbar() {
418
483
  ref: fileInputRef,
419
484
  type: "file",
420
485
  multiple: true,
421
- accept: "image/*",
486
+ accept: "image/*,video/*,audio/*,.pdf",
422
487
  onChange: handleFileChange,
423
488
  style: { display: "none" }
424
489
  }
425
490
  ),
426
491
  /* @__PURE__ */ jsxs2("div", { css: styles2.left, children: [
427
- /* @__PURE__ */ jsx2(
428
- ToolbarButton,
492
+ /* @__PURE__ */ jsxs2(
493
+ "button",
429
494
  {
495
+ css: [styles2.btn, styles2.btnPrimary],
430
496
  onClick: handleUpload,
431
- icon: "upload",
432
- label: uploading ? "Uploading..." : "Upload",
433
- disabled: uploading || isInImagesFolder
497
+ disabled: uploading || isInImagesFolder,
498
+ children: [
499
+ /* @__PURE__ */ jsx2(UploadIcon, {}),
500
+ uploading ? "Uploading..." : "Upload"
501
+ ]
434
502
  }
435
503
  ),
436
- /* @__PURE__ */ jsx2(
437
- ToolbarButton,
504
+ /* @__PURE__ */ jsx2("div", { css: styles2.divider }),
505
+ /* @__PURE__ */ jsxs2(
506
+ "button",
438
507
  {
508
+ css: [styles2.btn, styles2.btnGhost],
439
509
  onClick: handleReprocess,
440
- icon: "refresh",
441
- label: "Reprocess",
442
- disabled: !hasSelection
510
+ disabled: !hasSelection,
511
+ children: [
512
+ /* @__PURE__ */ jsx2(RefreshIcon, {}),
513
+ "Reprocess"
514
+ ]
443
515
  }
444
516
  ),
445
- /* @__PURE__ */ jsx2(
446
- ToolbarButton,
517
+ /* @__PURE__ */ jsxs2(
518
+ "button",
447
519
  {
520
+ css: [styles2.btn, styles2.btnGhost, styles2.btnDanger],
448
521
  onClick: handleDeleteClick,
449
- icon: "trash",
450
- label: "Delete",
451
522
  disabled: !hasSelection,
452
- variant: "danger"
523
+ children: [
524
+ /* @__PURE__ */ jsx2(TrashIcon, {}),
525
+ "Delete"
526
+ ]
453
527
  }
454
528
  ),
455
- /* @__PURE__ */ jsx2(
456
- ToolbarButton,
529
+ /* @__PURE__ */ jsxs2(
530
+ "button",
457
531
  {
532
+ css: [styles2.btn, styles2.btnGhost],
458
533
  onClick: handleSyncCdn,
459
- icon: "cloud",
460
- label: "Sync CDN",
461
- disabled: !hasSelection
534
+ disabled: !hasSelection,
535
+ children: [
536
+ /* @__PURE__ */ jsx2(CloudIcon, {}),
537
+ "Sync CDN"
538
+ ]
462
539
  }
463
540
  ),
464
- /* @__PURE__ */ jsx2(ToolbarButton, { onClick: handleScan, icon: "scan", label: "Scan" })
541
+ /* @__PURE__ */ jsxs2("button", { css: [styles2.btn, styles2.btnGhost], onClick: handleScan, children: [
542
+ /* @__PURE__ */ jsx2(ScanIcon, {}),
543
+ "Scan"
544
+ ] })
465
545
  ] }),
466
546
  /* @__PURE__ */ jsxs2("div", { css: styles2.right, children: [
467
547
  hasSelection && /* @__PURE__ */ jsxs2("span", { css: styles2.selectionCount, children: [
@@ -470,12 +550,11 @@ function StudioToolbar() {
470
550
  /* @__PURE__ */ jsx2("button", { css: styles2.clearBtn, onClick: clearSelection, children: "Clear" })
471
551
  ] }),
472
552
  /* @__PURE__ */ jsx2(
473
- ToolbarButton,
553
+ "button",
474
554
  {
555
+ css: [styles2.btn, styles2.btnGhost],
475
556
  onClick: handleRefresh,
476
- icon: "reload",
477
- label: "Refresh",
478
- spinning: refreshing
557
+ children: /* @__PURE__ */ jsx2(RefreshIcon, { spinning: refreshing })
479
558
  }
480
559
  ),
481
560
  /* @__PURE__ */ jsxs2("div", { css: styles2.viewToggle, children: [
@@ -502,44 +581,20 @@ function StudioToolbar() {
502
581
  ] })
503
582
  ] });
504
583
  }
505
- function ToolbarButton({
506
- onClick,
507
- icon,
508
- label,
509
- disabled,
510
- variant = "default",
511
- spinning
512
- }) {
513
- return /* @__PURE__ */ jsxs2(
514
- "button",
515
- {
516
- css: [styles2.btn, variant === "danger" ? styles2.btnDanger : styles2.btnDefault],
517
- onClick,
518
- disabled,
519
- children: [
520
- /* @__PURE__ */ jsx2(IconComponent, { icon, spinning }),
521
- label
522
- ]
523
- }
524
- );
584
+ function UploadIcon() {
585
+ return /* @__PURE__ */ jsx2("svg", { css: styles2.icon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx2("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-8l-4-4m0 0L8 8m4-4v12" }) });
525
586
  }
526
- function IconComponent({ icon, spinning }) {
527
- switch (icon) {
528
- case "upload":
529
- return /* @__PURE__ */ jsx2("svg", { css: styles2.icon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx2("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-8l-4-4m0 0L8 8m4-4v12" }) });
530
- case "refresh":
531
- return /* @__PURE__ */ jsx2("svg", { css: styles2.icon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx2("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" }) });
532
- case "trash":
533
- return /* @__PURE__ */ jsx2("svg", { css: styles2.icon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx2("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" }) });
534
- case "cloud":
535
- return /* @__PURE__ */ jsx2("svg", { css: styles2.icon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx2("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12" }) });
536
- case "scan":
537
- return /* @__PURE__ */ jsx2("svg", { css: styles2.icon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx2("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" }) });
538
- case "reload":
539
- return /* @__PURE__ */ jsx2("svg", { css: [styles2.icon, spinning && styles2.iconSpin], fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx2("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" }) });
540
- default:
541
- return null;
542
- }
587
+ function RefreshIcon({ spinning }) {
588
+ return /* @__PURE__ */ jsx2("svg", { css: [styles2.icon, spinning && styles2.iconSpin], fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx2("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" }) });
589
+ }
590
+ function TrashIcon() {
591
+ return /* @__PURE__ */ jsx2("svg", { css: styles2.icon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx2("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" }) });
592
+ }
593
+ function CloudIcon() {
594
+ return /* @__PURE__ */ jsx2("svg", { css: styles2.icon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx2("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12" }) });
595
+ }
596
+ function ScanIcon() {
597
+ return /* @__PURE__ */ jsx2("svg", { css: styles2.icon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx2("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" }) });
543
598
  }
544
599
  function GridIcon() {
545
600
  return /* @__PURE__ */ jsx2("svg", { css: styles2.icon, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx2("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2V6zM14 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2V6zM4 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2v-2zM14 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2v-2z" }) });
@@ -551,67 +606,84 @@ function ListIcon() {
551
606
  // src/components/StudioBreadcrumb.tsx
552
607
  import { css as css3 } from "@emotion/react";
553
608
  import { jsx as jsx3, jsxs as jsxs3 } from "@emotion/react/jsx-runtime";
609
+ var colors3 = {
610
+ primary: "#635bff",
611
+ background: "#ffffff",
612
+ surface: "#ffffff",
613
+ surfaceHover: "#f6f9fc",
614
+ border: "#e3e8ee",
615
+ borderLight: "#eef1f6",
616
+ text: "#1a1f36",
617
+ textSecondary: "#697386",
618
+ textMuted: "#8792a2"
619
+ };
554
620
  var styles3 = {
555
621
  container: css3`
556
622
  display: flex;
557
623
  align-items: center;
558
624
  gap: 8px;
559
- padding: 8px 24px;
560
- background-color: white;
561
- border-bottom: 1px solid #f3f4f6;
625
+ padding: 10px 24px;
626
+ background-color: ${colors3.surface};
627
+ border-bottom: 1px solid ${colors3.borderLight};
562
628
  `,
563
629
  backBtn: css3`
564
- padding: 4px;
630
+ padding: 6px;
565
631
  background: none;
566
632
  border: none;
567
- border-radius: 4px;
633
+ border-radius: 6px;
568
634
  cursor: pointer;
569
- transition: background-color 0.15s;
635
+ transition: all 0.15s ease;
636
+ display: flex;
637
+ align-items: center;
638
+ justify-content: center;
570
639
 
571
640
  &:hover {
572
- background-color: #f3f4f6;
641
+ background-color: ${colors3.surfaceHover};
573
642
  }
574
643
  `,
575
644
  backIcon: css3`
576
645
  width: 16px;
577
646
  height: 16px;
578
- color: #6b7280;
647
+ color: ${colors3.textSecondary};
579
648
  `,
580
649
  nav: css3`
581
650
  display: flex;
582
651
  align-items: center;
583
- gap: 4px;
584
- font-size: 14px;
652
+ gap: 2px;
653
+ font-size: 13px;
585
654
  `,
586
655
  item: css3`
587
656
  display: flex;
588
657
  align-items: center;
589
- gap: 4px;
658
+ gap: 2px;
590
659
  `,
591
660
  separator: css3`
592
- color: #d1d5db;
661
+ color: ${colors3.textMuted};
662
+ margin: 0 2px;
593
663
  `,
594
664
  btn: css3`
595
- padding: 2px 4px;
665
+ padding: 4px 8px;
596
666
  background: none;
597
667
  border: none;
598
668
  border-radius: 4px;
599
669
  cursor: pointer;
600
- transition: all 0.15s;
670
+ transition: all 0.15s ease;
671
+ font-size: 13px;
672
+ letter-spacing: -0.01em;
601
673
 
602
674
  &:hover {
603
- background-color: #f3f4f6;
675
+ background-color: ${colors3.surfaceHover};
604
676
  }
605
677
  `,
606
678
  btnActive: css3`
607
- color: #111827;
608
- font-weight: 500;
679
+ color: ${colors3.text};
680
+ font-weight: 600;
609
681
  `,
610
682
  btnInactive: css3`
611
- color: #6b7280;
683
+ color: ${colors3.textSecondary};
612
684
 
613
685
  &:hover {
614
- color: #374151;
686
+ color: ${colors3.text};
615
687
  }
616
688
  `
617
689
  };
@@ -642,6 +714,21 @@ function StudioBreadcrumb() {
642
714
  import { useEffect, useState as useState2 } from "react";
643
715
  import { css as css4, keyframes as keyframes3 } from "@emotion/react";
644
716
  import { jsx as jsx4, jsxs as jsxs4 } from "@emotion/react/jsx-runtime";
717
+ var colors4 = {
718
+ primary: "#635bff",
719
+ primaryHover: "#5851e5",
720
+ primaryLight: "#f0f0ff",
721
+ background: "#f6f9fc",
722
+ surface: "#ffffff",
723
+ surfaceHover: "#f6f9fc",
724
+ border: "#e3e8ee",
725
+ borderLight: "#eef1f6",
726
+ text: "#1a1f36",
727
+ textSecondary: "#697386",
728
+ textMuted: "#8792a2",
729
+ success: "#0d7d4d",
730
+ successLight: "#e6f7ef"
731
+ };
645
732
  var spin2 = keyframes3`
646
733
  to { transform: rotate(360deg); }
647
734
  `;
@@ -656,9 +743,9 @@ var styles4 = {
656
743
  width: 32px;
657
744
  height: 32px;
658
745
  border-radius: 50%;
659
- border: 2px solid transparent;
660
- border-bottom-color: #9333ea;
661
- animation: ${spin2} 1s linear infinite;
746
+ border: 3px solid ${colors4.border};
747
+ border-top-color: ${colors4.primary};
748
+ animation: ${spin2} 0.8s linear infinite;
662
749
  `,
663
750
  empty: css4`
664
751
  display: flex;
@@ -666,21 +753,27 @@ var styles4 = {
666
753
  align-items: center;
667
754
  justify-content: center;
668
755
  height: 256px;
669
- color: #6b7280;
756
+ color: ${colors4.textSecondary};
670
757
  `,
671
758
  emptyIcon: css4`
672
759
  width: 48px;
673
760
  height: 48px;
674
761
  margin-bottom: 16px;
762
+ opacity: 0.5;
675
763
  `,
676
764
  emptyText: css4`
677
765
  font-size: 14px;
678
- margin: 0;
766
+ margin: 0 0 4px 0;
767
+
768
+ &:last-child {
769
+ color: ${colors4.textMuted};
770
+ font-size: 13px;
771
+ }
679
772
  `,
680
773
  grid: css4`
681
774
  display: grid;
682
775
  grid-template-columns: repeat(2, 1fr);
683
- gap: 16px;
776
+ gap: 12px;
684
777
 
685
778
  @media (min-width: 640px) { grid-template-columns: repeat(3, 1fr); }
686
779
  @media (min-width: 768px) { grid-template-columns: repeat(4, 1fr); }
@@ -690,23 +783,25 @@ var styles4 = {
690
783
  item: css4`
691
784
  position: relative;
692
785
  border-radius: 8px;
693
- border: 2px solid transparent;
786
+ border: 1px solid ${colors4.border};
694
787
  overflow: hidden;
695
788
  cursor: pointer;
696
- transition: all 0.15s;
697
- background-color: #f9fafb;
789
+ transition: all 0.15s ease;
790
+ background-color: ${colors4.surface};
698
791
  user-select: none;
792
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
699
793
 
700
794
  &:hover {
701
- border-color: #e5e7eb;
795
+ border-color: #d0d5dd;
796
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.06);
702
797
  }
703
798
  `,
704
799
  itemSelected: css4`
705
- border-color: #a855f7;
706
- background-color: #faf5ff;
800
+ border-color: ${colors4.primary};
801
+ box-shadow: 0 0 0 1px ${colors4.primary};
707
802
 
708
803
  &:hover {
709
- border-color: #a855f7;
804
+ border-color: ${colors4.primary};
710
805
  }
711
806
  `,
712
807
  checkboxWrapper: css4`
@@ -720,7 +815,7 @@ var styles4 = {
720
815
  checkbox: css4`
721
816
  width: 16px;
722
817
  height: 16px;
723
- accent-color: #9333ea;
818
+ accent-color: ${colors4.primary};
724
819
  cursor: pointer;
725
820
  `,
726
821
  cdnBadge: css4`
@@ -728,11 +823,12 @@ var styles4 = {
728
823
  top: 8px;
729
824
  right: 8px;
730
825
  z-index: 10;
731
- background-color: #dcfce7;
732
- color: #15803d;
733
- font-size: 12px;
734
- padding: 2px 6px;
735
- border-radius: 9999px;
826
+ background-color: ${colors4.successLight};
827
+ color: ${colors4.success};
828
+ font-size: 11px;
829
+ font-weight: 500;
830
+ padding: 2px 8px;
831
+ border-radius: 4px;
736
832
  `,
737
833
  content: css4`
738
834
  aspect-ratio: 1;
@@ -740,16 +836,17 @@ var styles4 = {
740
836
  align-items: center;
741
837
  justify-content: center;
742
838
  padding: 16px;
839
+ background: ${colors4.background};
743
840
  `,
744
841
  folderIcon: css4`
745
- width: 64px;
746
- height: 64px;
747
- color: #facc15;
842
+ width: 56px;
843
+ height: 56px;
844
+ color: #f5a623;
748
845
  `,
749
846
  fileIcon: css4`
750
- width: 48px;
751
- height: 48px;
752
- color: #9ca3af;
847
+ width: 40px;
848
+ height: 40px;
849
+ color: ${colors4.textMuted};
753
850
  `,
754
851
  image: css4`
755
852
  max-width: 100%;
@@ -758,70 +855,77 @@ var styles4 = {
758
855
  border-radius: 4px;
759
856
  `,
760
857
  label: css4`
761
- padding: 6px 8px;
762
- background-color: white;
763
- border-top: 1px solid #e5e7eb;
858
+ padding: 10px 12px;
859
+ background-color: ${colors4.surface};
860
+ border-top: 1px solid ${colors4.borderLight};
764
861
  `,
765
862
  labelRow: css4`
766
863
  display: flex;
767
864
  align-items: center;
768
865
  justify-content: space-between;
769
- gap: 4px;
866
+ gap: 8px;
770
867
  `,
771
868
  labelText: css4`
772
869
  flex: 1;
773
870
  min-width: 0;
774
871
  `,
775
872
  name: css4`
776
- font-size: 12px;
777
- color: #374151;
873
+ font-size: 13px;
874
+ font-weight: 500;
875
+ color: ${colors4.text};
778
876
  white-space: nowrap;
779
877
  overflow: hidden;
780
878
  text-overflow: ellipsis;
781
879
  margin: 0;
880
+ letter-spacing: -0.01em;
782
881
  `,
783
882
  size: css4`
784
883
  font-size: 12px;
785
- color: #9ca3af;
786
- margin: 0;
884
+ color: ${colors4.textMuted};
885
+ margin: 2px 0 0 0;
787
886
  `,
788
887
  openBtn: css4`
789
888
  flex-shrink: 0;
790
- font-size: 11px;
791
- color: #9333ea;
889
+ font-size: 12px;
890
+ font-weight: 500;
891
+ color: ${colors4.primary};
792
892
  background: none;
793
893
  border: none;
794
- padding: 2px 6px;
894
+ padding: 4px 8px;
795
895
  cursor: pointer;
796
896
  border-radius: 4px;
897
+ transition: background-color 0.15s ease;
797
898
 
798
899
  &:hover {
799
- background-color: #f3e8ff;
900
+ background-color: ${colors4.primaryLight};
800
901
  }
801
902
  `,
802
903
  selectAllRow: css4`
803
904
  display: flex;
804
905
  align-items: center;
805
- margin-bottom: 12px;
806
- padding-bottom: 12px;
807
- border-bottom: 1px solid #e5e7eb;
906
+ margin-bottom: 16px;
907
+ padding: 12px 16px;
908
+ background: ${colors4.surface};
909
+ border-radius: 8px;
910
+ border: 1px solid ${colors4.border};
808
911
  `,
809
912
  selectAllLabel: css4`
810
913
  display: flex;
811
914
  align-items: center;
812
- gap: 8px;
813
- font-size: 14px;
814
- color: #6b7280;
915
+ gap: 10px;
916
+ font-size: 13px;
917
+ font-weight: 500;
918
+ color: ${colors4.textSecondary};
815
919
  cursor: pointer;
816
920
 
817
921
  &:hover {
818
- color: #374151;
922
+ color: ${colors4.text};
819
923
  }
820
924
  `,
821
925
  selectAllCheckbox: css4`
822
926
  width: 16px;
823
927
  height: 16px;
824
- accent-color: #9333ea;
928
+ accent-color: ${colors4.primary};
825
929
  `
826
930
  };
827
931
  function StudioFileGrid() {
@@ -979,6 +1083,19 @@ function formatFileSize(bytes) {
979
1083
  import { useEffect as useEffect2, useState as useState3 } from "react";
980
1084
  import { css as css5, keyframes as keyframes4 } from "@emotion/react";
981
1085
  import { jsx as jsx5, jsxs as jsxs5 } from "@emotion/react/jsx-runtime";
1086
+ var colors5 = {
1087
+ primary: "#635bff",
1088
+ primaryLight: "#f0f0ff",
1089
+ background: "#f6f9fc",
1090
+ surface: "#ffffff",
1091
+ surfaceHover: "#f6f9fc",
1092
+ border: "#e3e8ee",
1093
+ borderLight: "#eef1f6",
1094
+ text: "#1a1f36",
1095
+ textSecondary: "#697386",
1096
+ textMuted: "#8792a2",
1097
+ success: "#0d7d4d"
1098
+ };
982
1099
  var spin3 = keyframes4`
983
1100
  to { transform: rotate(360deg); }
984
1101
  `;
@@ -993,9 +1110,9 @@ var styles5 = {
993
1110
  width: 32px;
994
1111
  height: 32px;
995
1112
  border-radius: 50%;
996
- border: 2px solid transparent;
997
- border-bottom-color: #9333ea;
998
- animation: ${spin3} 1s linear infinite;
1113
+ border: 3px solid ${colors5.border};
1114
+ border-top-color: ${colors5.primary};
1115
+ animation: ${spin3} 0.8s linear infinite;
999
1116
  `,
1000
1117
  empty: css5`
1001
1118
  display: flex;
@@ -1003,7 +1120,13 @@ var styles5 = {
1003
1120
  align-items: center;
1004
1121
  justify-content: center;
1005
1122
  height: 256px;
1006
- color: #6b7280;
1123
+ color: ${colors5.textSecondary};
1124
+ `,
1125
+ tableWrapper: css5`
1126
+ background: ${colors5.surface};
1127
+ border-radius: 8px;
1128
+ border: 1px solid ${colors5.border};
1129
+ overflow: hidden;
1007
1130
  `,
1008
1131
  table: css5`
1009
1132
  width: 100%;
@@ -1011,15 +1134,17 @@ var styles5 = {
1011
1134
  `,
1012
1135
  th: css5`
1013
1136
  text-align: left;
1014
- font-size: 12px;
1015
- color: #6b7280;
1137
+ font-size: 11px;
1138
+ color: ${colors5.textMuted};
1016
1139
  text-transform: uppercase;
1017
1140
  letter-spacing: 0.05em;
1018
- padding-bottom: 8px;
1019
- font-weight: normal;
1141
+ padding: 12px 16px;
1142
+ font-weight: 600;
1143
+ background: ${colors5.background};
1144
+ border-bottom: 1px solid ${colors5.border};
1020
1145
  `,
1021
1146
  thCheckbox: css5`
1022
- width: 32px;
1147
+ width: 48px;
1023
1148
  `,
1024
1149
  thSize: css5`
1025
1150
  width: 96px;
@@ -1030,95 +1155,104 @@ var styles5 = {
1030
1155
  thCdn: css5`
1031
1156
  width: 96px;
1032
1157
  `,
1033
- tbody: css5`
1034
- border-top: 1px solid #f3f4f6;
1035
- `,
1158
+ tbody: css5``,
1036
1159
  row: css5`
1037
1160
  cursor: pointer;
1038
- transition: background-color 0.15s;
1161
+ transition: background-color 0.15s ease;
1039
1162
  user-select: none;
1040
1163
 
1041
1164
  &:hover {
1042
- background-color: #f9fafb;
1165
+ background-color: ${colors5.surfaceHover};
1166
+ }
1167
+
1168
+ &:not(:last-child) td {
1169
+ border-bottom: 1px solid ${colors5.borderLight};
1043
1170
  }
1044
1171
  `,
1045
1172
  rowSelected: css5`
1046
- background-color: #faf5ff;
1173
+ background-color: ${colors5.primaryLight};
1047
1174
 
1048
1175
  &:hover {
1049
- background-color: #faf5ff;
1176
+ background-color: ${colors5.primaryLight};
1050
1177
  }
1051
1178
  `,
1052
1179
  td: css5`
1053
- padding: 8px 0;
1054
- border-bottom: 1px solid #f3f4f6;
1180
+ padding: 12px 16px;
1055
1181
  `,
1056
1182
  checkboxCell: css5`
1057
- padding: 8px 12px;
1183
+ padding: 12px 16px;
1058
1184
  cursor: pointer;
1059
1185
  `,
1060
1186
  checkbox: css5`
1061
1187
  width: 16px;
1062
1188
  height: 16px;
1063
- accent-color: #9333ea;
1189
+ accent-color: ${colors5.primary};
1064
1190
  cursor: pointer;
1065
1191
  `,
1066
1192
  nameCell: css5`
1067
1193
  display: flex;
1068
1194
  align-items: center;
1069
- gap: 8px;
1195
+ gap: 12px;
1070
1196
  `,
1071
1197
  folderIcon: css5`
1072
1198
  width: 20px;
1073
1199
  height: 20px;
1074
- color: #facc15;
1200
+ color: #f5a623;
1201
+ flex-shrink: 0;
1075
1202
  `,
1076
1203
  fileIcon: css5`
1077
1204
  width: 20px;
1078
1205
  height: 20px;
1079
- color: #9ca3af;
1206
+ color: ${colors5.textMuted};
1207
+ flex-shrink: 0;
1080
1208
  `,
1081
1209
  thumbnail: css5`
1082
- width: 32px;
1083
- height: 32px;
1210
+ width: 36px;
1211
+ height: 36px;
1084
1212
  object-fit: cover;
1085
- border-radius: 4px;
1213
+ border-radius: 6px;
1086
1214
  flex-shrink: 0;
1215
+ border: 1px solid ${colors5.borderLight};
1087
1216
  `,
1088
1217
  name: css5`
1089
1218
  font-size: 14px;
1090
- color: #111827;
1219
+ font-weight: 500;
1220
+ color: ${colors5.text};
1221
+ letter-spacing: -0.01em;
1091
1222
  `,
1092
1223
  meta: css5`
1093
- font-size: 14px;
1094
- color: #6b7280;
1224
+ font-size: 13px;
1225
+ color: ${colors5.textSecondary};
1095
1226
  `,
1096
1227
  cdnBadge: css5`
1097
1228
  display: inline-flex;
1098
1229
  align-items: center;
1099
1230
  gap: 4px;
1100
1231
  font-size: 12px;
1101
- color: #15803d;
1232
+ font-weight: 500;
1233
+ color: ${colors5.success};
1102
1234
  `,
1103
1235
  cdnIcon: css5`
1104
1236
  width: 12px;
1105
1237
  height: 12px;
1106
1238
  `,
1107
1239
  cdnEmpty: css5`
1108
- font-size: 12px;
1109
- color: #9ca3af;
1240
+ font-size: 13px;
1241
+ color: ${colors5.textMuted};
1110
1242
  `,
1111
1243
  openBtn: css5`
1112
1244
  font-size: 12px;
1113
- color: #9333ea;
1245
+ font-weight: 500;
1246
+ color: ${colors5.primary};
1114
1247
  background: none;
1115
1248
  border: none;
1116
- padding: 2px 8px;
1249
+ padding: 4px 10px;
1117
1250
  cursor: pointer;
1118
1251
  border-radius: 4px;
1252
+ transition: background-color 0.15s ease;
1119
1253
 
1120
1254
  &:hover {
1121
- background-color: #f3e8ff;
1255
+ background-color: ${colors5.primaryLight};
1122
1256
  }
1123
1257
  `
1124
1258
  };
@@ -1274,70 +1408,94 @@ function isVideoFile(filename) {
1274
1408
  const ext = filename.toLowerCase().substring(filename.lastIndexOf("."));
1275
1409
  return VIDEO_EXTENSIONS.includes(ext);
1276
1410
  }
1411
+ var colors6 = {
1412
+ primary: "#635bff",
1413
+ primaryHover: "#5851e5",
1414
+ primaryLight: "#f0f0ff",
1415
+ background: "#f6f9fc",
1416
+ surface: "#ffffff",
1417
+ surfaceHover: "#f6f9fc",
1418
+ border: "#e3e8ee",
1419
+ borderLight: "#eef1f6",
1420
+ text: "#1a1f36",
1421
+ textSecondary: "#697386",
1422
+ textMuted: "#8792a2",
1423
+ success: "#0d7d4d",
1424
+ successLight: "#e6f7ef",
1425
+ danger: "#df1b41",
1426
+ dangerLight: "#fff5f7"
1427
+ };
1277
1428
  var styles6 = {
1278
1429
  panel: css6`
1279
1430
  width: 320px;
1280
- border-left: 1px solid #e5e7eb;
1281
- background-color: #f9fafb;
1282
- padding: 16px;
1431
+ border-left: 1px solid ${colors6.border};
1432
+ background-color: ${colors6.surface};
1433
+ padding: 20px;
1283
1434
  overflow: auto;
1284
1435
  `,
1285
1436
  title: css6`
1286
- font-size: 14px;
1287
- font-weight: 500;
1288
- color: #111827;
1437
+ font-size: 13px;
1438
+ font-weight: 600;
1439
+ color: ${colors6.textSecondary};
1440
+ text-transform: uppercase;
1441
+ letter-spacing: 0.05em;
1289
1442
  margin: 0 0 16px 0;
1290
1443
  `,
1291
1444
  imageContainer: css6`
1292
- background-color: white;
1445
+ background-color: ${colors6.background};
1293
1446
  border-radius: 8px;
1294
- border: 1px solid #e5e7eb;
1295
- padding: 8px;
1296
- margin-bottom: 16px;
1447
+ border: 1px solid ${colors6.border};
1448
+ padding: 12px;
1449
+ margin-bottom: 20px;
1297
1450
  `,
1298
1451
  image: css6`
1299
1452
  width: 100%;
1300
1453
  height: auto;
1301
- border-radius: 4px;
1454
+ border-radius: 6px;
1302
1455
  `,
1303
1456
  info: css6`
1304
1457
  display: flex;
1305
1458
  flex-direction: column;
1306
- gap: 12px;
1459
+ gap: 10px;
1307
1460
  `,
1308
1461
  row: css6`
1309
1462
  display: flex;
1310
1463
  justify-content: space-between;
1311
- font-size: 12px;
1464
+ font-size: 13px;
1312
1465
  `,
1313
1466
  label: css6`
1314
- color: #6b7280;
1467
+ color: ${colors6.textSecondary};
1315
1468
  `,
1316
1469
  value: css6`
1317
- color: #111827;
1470
+ color: ${colors6.text};
1471
+ font-weight: 500;
1318
1472
  `,
1319
1473
  valueTruncate: css6`
1320
- max-width: 128px;
1474
+ max-width: 140px;
1321
1475
  white-space: nowrap;
1322
1476
  overflow: hidden;
1323
1477
  text-overflow: ellipsis;
1324
1478
  `,
1325
1479
  section: css6`
1326
- padding-top: 8px;
1327
- border-top: 1px solid #e5e7eb;
1480
+ padding-top: 12px;
1481
+ margin-top: 4px;
1482
+ border-top: 1px solid ${colors6.borderLight};
1328
1483
  `,
1329
1484
  sectionTitle: css6`
1330
- font-size: 12px;
1331
- font-weight: 500;
1332
- color: #6b7280;
1333
- margin: 0 0 8px 0;
1485
+ font-size: 11px;
1486
+ font-weight: 600;
1487
+ color: ${colors6.textMuted};
1488
+ text-transform: uppercase;
1489
+ letter-spacing: 0.05em;
1490
+ margin: 0 0 10px 0;
1334
1491
  `,
1335
1492
  cdnStatus: css6`
1336
1493
  display: flex;
1337
1494
  align-items: center;
1338
1495
  gap: 8px;
1339
- font-size: 12px;
1340
- color: #16a34a;
1496
+ font-size: 13px;
1497
+ color: ${colors6.success};
1498
+ font-weight: 500;
1341
1499
  `,
1342
1500
  cdnIcon: css6`
1343
1501
  width: 16px;
@@ -1345,8 +1503,9 @@ var styles6 = {
1345
1503
  `,
1346
1504
  copyBtn: css6`
1347
1505
  margin-top: 8px;
1348
- font-size: 12px;
1349
- color: #9333ea;
1506
+ font-size: 13px;
1507
+ font-weight: 500;
1508
+ color: ${colors6.primary};
1350
1509
  background: none;
1351
1510
  border: none;
1352
1511
  cursor: pointer;
@@ -1359,17 +1518,20 @@ var styles6 = {
1359
1518
  colorSwatch: css6`
1360
1519
  margin-top: 8px;
1361
1520
  height: 32px;
1362
- border-radius: 4px;
1521
+ border-radius: 6px;
1522
+ border: 1px solid ${colors6.border};
1363
1523
  `,
1364
1524
  emptyState: css6`
1365
1525
  display: flex;
1526
+ flex-direction: column;
1366
1527
  align-items: center;
1367
1528
  justify-content: center;
1368
1529
  height: 200px;
1530
+ text-align: center;
1369
1531
  `,
1370
1532
  emptyText: css6`
1371
- font-size: 14px;
1372
- color: #9ca3af;
1533
+ font-size: 13px;
1534
+ color: ${colors6.textMuted};
1373
1535
  margin: 0;
1374
1536
  `,
1375
1537
  filePlaceholder: css6`
@@ -1377,50 +1539,55 @@ var styles6 = {
1377
1539
  align-items: center;
1378
1540
  justify-content: center;
1379
1541
  height: 120px;
1542
+ background: ${colors6.background};
1543
+ border-radius: 6px;
1380
1544
  `,
1381
1545
  fileIcon: css6`
1382
- width: 64px;
1383
- height: 64px;
1384
- color: #9ca3af;
1546
+ width: 56px;
1547
+ height: 56px;
1548
+ color: ${colors6.textMuted};
1385
1549
  `,
1386
1550
  folderIcon: css6`
1387
- width: 64px;
1388
- height: 64px;
1389
- color: #facc15;
1551
+ width: 56px;
1552
+ height: 56px;
1553
+ color: #f5a623;
1390
1554
  `,
1391
1555
  video: css6`
1392
1556
  width: 100%;
1393
1557
  height: auto;
1394
- border-radius: 4px;
1558
+ border-radius: 6px;
1395
1559
  `,
1396
1560
  actions: css6`
1397
- margin-top: 16px;
1398
- padding-top: 16px;
1399
- border-top: 1px solid #e5e7eb;
1561
+ margin-top: 20px;
1562
+ padding-top: 20px;
1563
+ border-top: 1px solid ${colors6.border};
1400
1564
  display: flex;
1401
1565
  flex-direction: column;
1402
1566
  gap: 8px;
1403
1567
  `,
1404
1568
  actionBtn: css6`
1405
1569
  width: 100%;
1406
- padding: 8px 12px;
1407
- font-size: 14px;
1408
- background-color: white;
1409
- border: 1px solid #e5e7eb;
1410
- border-radius: 8px;
1570
+ padding: 10px 14px;
1571
+ font-size: 13px;
1572
+ font-weight: 500;
1573
+ background-color: ${colors6.surface};
1574
+ border: 1px solid ${colors6.border};
1575
+ border-radius: 6px;
1411
1576
  cursor: pointer;
1412
- transition: background-color 0.15s;
1413
- color: #374151;
1577
+ transition: all 0.15s ease;
1578
+ color: ${colors6.text};
1414
1579
 
1415
1580
  &:hover {
1416
- background-color: #f9fafb;
1581
+ background-color: ${colors6.surfaceHover};
1582
+ border-color: #d0d5dd;
1417
1583
  }
1418
1584
  `,
1419
1585
  actionBtnDanger: css6`
1420
- color: #dc2626;
1586
+ color: ${colors6.danger};
1421
1587
 
1422
1588
  &:hover {
1423
- background-color: #fef2f2;
1589
+ background-color: ${colors6.dangerLight};
1590
+ border-color: ${colors6.danger};
1424
1591
  }
1425
1592
  `
1426
1593
  };
@@ -1848,25 +2015,42 @@ function SettingsPanel({ onClose }) {
1848
2015
 
1849
2016
  // src/components/StudioUI.tsx
1850
2017
  import { jsx as jsx8, jsxs as jsxs8 } from "@emotion/react/jsx-runtime";
2018
+ var colors7 = {
2019
+ primary: "#635bff",
2020
+ primaryHover: "#5851e5",
2021
+ background: "#f6f9fc",
2022
+ surface: "#ffffff",
2023
+ surfaceHover: "#f6f9fc",
2024
+ border: "#e3e8ee",
2025
+ borderLight: "#eef1f6",
2026
+ text: "#1a1f36",
2027
+ textSecondary: "#697386",
2028
+ textMuted: "#8792a2"
2029
+ };
1851
2030
  var styles8 = {
1852
2031
  container: css8`
1853
2032
  display: flex;
1854
2033
  flex-direction: column;
1855
2034
  height: 100%;
1856
- font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
2035
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif;
2036
+ background: ${colors7.background};
2037
+ -webkit-font-smoothing: antialiased;
2038
+ -moz-osx-font-smoothing: grayscale;
1857
2039
  `,
1858
2040
  header: css8`
1859
2041
  display: flex;
1860
2042
  align-items: center;
1861
2043
  justify-content: space-between;
1862
2044
  padding: 16px 24px;
1863
- border-bottom: 1px solid #e5e7eb;
2045
+ background: ${colors7.surface};
2046
+ border-bottom: 1px solid ${colors7.border};
1864
2047
  `,
1865
2048
  title: css8`
1866
- font-size: 20px;
2049
+ font-size: 17px;
1867
2050
  font-weight: 600;
1868
- color: #111827;
2051
+ color: ${colors7.text};
1869
2052
  margin: 0;
2053
+ letter-spacing: -0.02em;
1870
2054
  `,
1871
2055
  headerActions: css8`
1872
2056
  display: flex;
@@ -1877,18 +2061,21 @@ var styles8 = {
1877
2061
  padding: 8px;
1878
2062
  background: none;
1879
2063
  border: none;
1880
- border-radius: 8px;
2064
+ border-radius: 6px;
1881
2065
  cursor: pointer;
1882
- transition: background-color 0.15s;
2066
+ transition: all 0.15s ease;
2067
+ display: flex;
2068
+ align-items: center;
2069
+ justify-content: center;
1883
2070
 
1884
2071
  &:hover {
1885
- background-color: #f3f4f6;
2072
+ background-color: ${colors7.surfaceHover};
1886
2073
  }
1887
2074
  `,
1888
2075
  closeIcon: css8`
1889
- width: 20px;
1890
- height: 20px;
1891
- color: #6b7280;
2076
+ width: 18px;
2077
+ height: 18px;
2078
+ color: ${colors7.textSecondary};
1892
2079
  `,
1893
2080
  content: css8`
1894
2081
  flex: 1;
@@ -1899,7 +2086,7 @@ var styles8 = {
1899
2086
  flex: 1;
1900
2087
  min-width: 0;
1901
2088
  overflow: auto;
1902
- padding: 16px;
2089
+ padding: 20px 24px;
1903
2090
  `
1904
2091
  };
1905
2092
  function StudioUI({ onClose }) {
@@ -2045,4 +2232,4 @@ export {
2045
2232
  StudioUI,
2046
2233
  StudioUI_default as default
2047
2234
  };
2048
- //# sourceMappingURL=StudioUI-T4M7A6BP.mjs.map
2235
+ //# sourceMappingURL=StudioUI-WRFD73YR.mjs.map