@vishu1301/script-writing 1.6.2 → 1.6.3
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/dist/index.cjs +254 -196
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +255 -197
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React4, { useState, useRef, useEffect, useMemo, useCallback } from 'react';
|
|
2
|
-
import { ArrowRight, User, ChevronRight, Sparkles, Check, Users, Box, Shirt, Car, Armchair, UserPlus, MapPin, Map as Map$1, MessageCircle, Parentheses, Clapperboard, Mountain, Loader2, Save, Lock, Unlock, Cog, Upload, FileDown, Languages, Keyboard, AlignLeft, Tags,
|
|
2
|
+
import { ArrowRight, User, ChevronRight, Sparkles, Check, Users, Box, Shirt, Car, Armchair, UserPlus, MapPin, Map as Map$1, MessageCircle, Parentheses, Clapperboard, Mountain, Loader2, Save, Lock, Unlock, Cog, Upload, FileDown, Languages, Keyboard, AlignLeft, Tags, X, ChevronDown, Video, Settings2, Eye, Pencil, BookOpen, Search, Zap, Info, Frame, BookText, AsteriskIcon, Target, Activity, MonitorPlay, Crosshair, Clock, Camera, Aperture, SlidersHorizontal, Sun, Wand2, Volume2, Layers } from 'lucide-react';
|
|
3
3
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
4
4
|
import * as pdfjs from 'pdfjs-dist';
|
|
5
5
|
import jsPDF from 'jspdf';
|
|
@@ -4289,12 +4289,12 @@ function ScriptBreakdownSceneView({
|
|
|
4289
4289
|
))
|
|
4290
4290
|
}
|
|
4291
4291
|
),
|
|
4292
|
-
/* @__PURE__ */ jsxs("div", { className: "relative bg-[#fdfdfc] shadow-
|
|
4293
|
-
/* @__PURE__ */ jsxs("h3", { className: "text-xs font-
|
|
4294
|
-
/* @__PURE__ */ jsx("span", { className: "flex items-center justify-center w-8 h-8 rounded-
|
|
4292
|
+
/* @__PURE__ */ jsxs("div", { className: "relative bg-[#fdfdfc] shadow-2xl shadow-zinc-300/50 border border-zinc-100/80 rounded-sm md:rounded-md flex flex-col w-[210mm] shrink-0 p-8 md:p-12 lg:p-16", children: [
|
|
4293
|
+
/* @__PURE__ */ jsxs("h3", { className: "text-xs font-bold text-blumine-800 uppercase tracking-widest mb-6 flex items-center gap-3 font-sans", children: [
|
|
4294
|
+
/* @__PURE__ */ jsx("span", { className: "flex items-center justify-center w-8 h-8 rounded-xl bg-gradient-to-b from-white to-blumine-50/60 shadow-inner border border-blumine-200/50 text-blumine-600", children: /* @__PURE__ */ jsx(AlignLeft, { className: "w-4 h-4" }) }),
|
|
4295
4295
|
"Scene Brief"
|
|
4296
4296
|
] }),
|
|
4297
|
-
/* @__PURE__ */ jsxs("div", { className: "relative bg-zinc-50/
|
|
4297
|
+
/* @__PURE__ */ jsxs("div", { className: "relative bg-zinc-50/30 border border-zinc-200/50 rounded-xl p-4 md:p-6 shadow-[inset_0_1.5px_3px_rgba(0,0,0,0.02)] focus-within:bg-white focus-within:border-blumine-300/70 focus-within:shadow-[0_8px_30px_rgba(16,43,60,0.03)] transition-all duration-300", children: [
|
|
4298
4298
|
/* @__PURE__ */ jsx(
|
|
4299
4299
|
"textarea",
|
|
4300
4300
|
{
|
|
@@ -4312,7 +4312,7 @@ function ScriptBreakdownSceneView({
|
|
|
4312
4312
|
{
|
|
4313
4313
|
onClick: onUpdateBrief,
|
|
4314
4314
|
disabled: !sceneBrief || sceneBrief.trim() === "",
|
|
4315
|
-
className: "rounded-
|
|
4315
|
+
className: "rounded-xl bg-gradient-to-b from-blumine-500 to-blumine-600 px-6 py-2.5 text-[13px] font-bold text-white shadow-md shadow-blumine-500/10 transition-all hover:from-blumine-600 hover:to-blumine-700 active:scale-95 disabled:from-zinc-100 disabled:to-zinc-200 disabled:text-zinc-400 disabled:border-zinc-200/50 disabled:shadow-none disabled:cursor-not-allowed cursor-pointer",
|
|
4316
4316
|
children: "Update"
|
|
4317
4317
|
}
|
|
4318
4318
|
) })
|
|
@@ -4323,41 +4323,54 @@ function ScriptBreakdownSceneView({
|
|
|
4323
4323
|
"button",
|
|
4324
4324
|
{
|
|
4325
4325
|
onClick: () => setIsSidebarOpen(true),
|
|
4326
|
-
className: "fixed bottom-6 right-6 z-40 flex h-14 w-14 items-center justify-center rounded-full bg-
|
|
4326
|
+
className: "fixed bottom-6 right-6 z-40 flex h-14 w-14 items-center justify-center rounded-full bg-gradient-to-b from-blumine-500 to-blumine-600 text-white shadow-[0_8px_30px_rgba(32,146,186,0.35)] transition-all duration-200 hover:scale-105 active:scale-95 hover:shadow-[0_10px_35px_rgba(32,146,186,0.45)] xl:hidden border border-white/10",
|
|
4327
4327
|
children: [
|
|
4328
|
-
/* @__PURE__ */ jsx(Tags, { className: "h-
|
|
4329
|
-
tags.length > 0 && /* @__PURE__ */ jsx("span", { className: "absolute -top-1 -right-1 flex h-5 w-5 items-center justify-center rounded-full bg-rose-500 text-[10px] font-bold text-white shadow-
|
|
4328
|
+
/* @__PURE__ */ jsx(Tags, { className: "h-5.5 w-5.5", strokeWidth: 2 }),
|
|
4329
|
+
tags.length > 0 && /* @__PURE__ */ jsx("span", { className: "absolute -top-1 -right-1 flex h-5 w-5 items-center justify-center rounded-full bg-rose-500 text-[10px] font-bold text-white shadow-md border-2 border-white animate-pulse", children: tags.length })
|
|
4330
4330
|
]
|
|
4331
4331
|
}
|
|
4332
4332
|
),
|
|
4333
4333
|
isSidebarOpen && /* @__PURE__ */ jsx(
|
|
4334
4334
|
"div",
|
|
4335
4335
|
{
|
|
4336
|
-
className: "fixed inset-0 z-40 bg-
|
|
4336
|
+
className: "fixed inset-0 z-40 bg-blumine-950/20 backdrop-blur-xs transition-all duration-300 xl:hidden",
|
|
4337
4337
|
onClick: () => setIsSidebarOpen(false)
|
|
4338
4338
|
}
|
|
4339
4339
|
),
|
|
4340
4340
|
/* @__PURE__ */ jsx(
|
|
4341
4341
|
"div",
|
|
4342
4342
|
{
|
|
4343
|
-
className: `fixed xl:absolute top-0 right-0 z-50 h-full w-
|
|
4344
|
-
children: /* @__PURE__ */ jsxs("div", { className: "sticky top-0 flex h-[100dvh] max-h-screen w-full flex-col border-l border-
|
|
4345
|
-
!aiSummarized && /* @__PURE__ */ jsx(
|
|
4343
|
+
className: `fixed xl:absolute top-0 right-0 z-50 h-full w-80 transform transition-transform duration-300 ease-[cubic-bezier(0.22,1,0.36,1)] xl:translate-x-0 ${isSidebarOpen ? "translate-x-0 shadow-[-10px_0_40px_rgba(16,43,60,0.08)]" : "translate-x-full"}`,
|
|
4344
|
+
children: /* @__PURE__ */ jsxs("div", { className: "sticky top-0 flex h-[100dvh] max-h-screen w-full flex-col border-l border-blumine-100/50 bg-white/95 backdrop-blur-xl p-4 py-6", children: [
|
|
4345
|
+
!aiSummarized && /* @__PURE__ */ jsx("div", { className: "mb-4 shrink-0 flex justify-center", children: /* @__PURE__ */ jsx(
|
|
4346
4346
|
summarize_button_default,
|
|
4347
4347
|
{
|
|
4348
4348
|
isSummarizing,
|
|
4349
4349
|
onSummarize
|
|
4350
4350
|
}
|
|
4351
|
-
),
|
|
4352
|
-
/* @__PURE__ */ jsxs("div", { className: "relative flex flex-col gap-3 py-
|
|
4353
|
-
/* @__PURE__ */ jsxs("div", { className: "relative flex items-center justify-between mb-
|
|
4351
|
+
) }),
|
|
4352
|
+
/* @__PURE__ */ jsxs("div", { className: "relative flex flex-col gap-3 py-4 border-t border-blumine-100/40 flex-1 overflow-hidden", children: [
|
|
4353
|
+
/* @__PURE__ */ jsxs("div", { className: "relative flex items-center justify-between mb-4 shrink-0 px-1", children: [
|
|
4354
4354
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
4355
|
-
/* @__PURE__ */ jsx("div", { className: "relative flex h-
|
|
4356
|
-
/* @__PURE__ */
|
|
4355
|
+
/* @__PURE__ */ jsx("div", { className: "relative flex h-10 w-10 items-center justify-center rounded-xl border border-blumine-200/60 bg-gradient-to-b from-white to-blumine-50/50 shadow-inner", children: /* @__PURE__ */ jsx(Tags, { className: "h-5 w-5 text-blumine-600", strokeWidth: 1.5 }) }),
|
|
4356
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
4357
|
+
/* @__PURE__ */ jsx("h3", { className: "text-[14px] font-bold uppercase tracking-wider text-blumine-800 leading-none", children: "Breakdown" }),
|
|
4358
|
+
/* @__PURE__ */ jsx("p", { className: "text-[11px] text-blumine-400 mt-1 font-medium", children: "Scene element tags" })
|
|
4359
|
+
] })
|
|
4357
4360
|
] }),
|
|
4358
|
-
/* @__PURE__ */
|
|
4361
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
4362
|
+
/* @__PURE__ */ jsx("span", { className: "rounded-full border border-blumine-200/50 bg-blumine-50/80 px-2.5 py-0.5 text-[11px] font-bold text-blumine-700 shadow-sm", children: tags.length }),
|
|
4363
|
+
/* @__PURE__ */ jsx(
|
|
4364
|
+
"button",
|
|
4365
|
+
{
|
|
4366
|
+
onClick: () => setIsSidebarOpen(false),
|
|
4367
|
+
className: "flex xl:hidden h-8 w-8 items-center justify-center rounded-lg text-blumine-400 hover:bg-blumine-100 hover:text-blumine-700 transition duration-150 active:scale-95",
|
|
4368
|
+
children: /* @__PURE__ */ jsx(X, { className: "h-4 w-4" })
|
|
4369
|
+
}
|
|
4370
|
+
)
|
|
4371
|
+
] })
|
|
4359
4372
|
] }),
|
|
4360
|
-
/* @__PURE__ */ jsx("div", { className: "flex flex-col gap-
|
|
4373
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-col gap-3.5 overflow-y-auto overflow-x-hidden pb-4 pr-1 custom-scrollbar", children: CATEGORIES.map((cat) => {
|
|
4361
4374
|
const catTags = tags.filter((t) => t.category_id === cat.id);
|
|
4362
4375
|
if (!catTags.length) return null;
|
|
4363
4376
|
const isExpanded = expandedCategories[cat.id];
|
|
@@ -4368,114 +4381,145 @@ function ScriptBreakdownSceneView({
|
|
|
4368
4381
|
);
|
|
4369
4382
|
return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
4370
4383
|
/* @__PURE__ */ jsxs(
|
|
4371
|
-
"
|
|
4384
|
+
"button",
|
|
4372
4385
|
{
|
|
4373
4386
|
onClick: () => setExpandedCategories((prev) => ({
|
|
4374
4387
|
[cat.id]: !prev[cat.id]
|
|
4375
4388
|
})),
|
|
4376
|
-
className: "group relative flex cursor-pointer items-center gap-3 overflow-hidden rounded-
|
|
4389
|
+
className: "w-full group relative flex cursor-pointer items-center gap-3 overflow-hidden rounded-2xl border px-4 py-3 transition-all duration-300 hover:-translate-y-[1px] hover:shadow-md active:scale-[0.98] text-left outline-none",
|
|
4377
4390
|
style: {
|
|
4378
|
-
|
|
4379
|
-
|
|
4380
|
-
border: `1px solid ${cat.hex}50`
|
|
4391
|
+
borderColor: `${cat.color}25`,
|
|
4392
|
+
background: `linear-gradient(135deg, #ffffff, ${cat.color}08)`
|
|
4381
4393
|
},
|
|
4382
4394
|
children: [
|
|
4383
4395
|
/* @__PURE__ */ jsx(
|
|
4384
4396
|
"div",
|
|
4385
4397
|
{
|
|
4386
|
-
className: "absolute inset-0 opacity-0 transition-opacity duration-300
|
|
4398
|
+
className: "absolute inset-0 opacity-0 group-hover:opacity-100 transition-opacity duration-300 pointer-events-none",
|
|
4387
4399
|
style: {
|
|
4388
|
-
background: `radial-gradient(circle at
|
|
4400
|
+
background: `radial-gradient(circle at 12% 50%, ${cat.color}15, transparent 40%)`
|
|
4389
4401
|
}
|
|
4390
4402
|
}
|
|
4391
4403
|
),
|
|
4392
4404
|
/* @__PURE__ */ jsx(
|
|
4393
4405
|
"div",
|
|
4394
4406
|
{
|
|
4395
|
-
className: "relative flex h-
|
|
4407
|
+
className: "relative flex h-8 w-8 shrink-0 items-center justify-center rounded-xl border border-white/80 shadow-inner transition-transform duration-300 group-hover:scale-105",
|
|
4396
4408
|
style: {
|
|
4397
|
-
background: `linear-gradient(135deg, ${cat.color}
|
|
4398
|
-
|
|
4409
|
+
background: `linear-gradient(135deg, ${cat.color}12, ${cat.color}05)`,
|
|
4410
|
+
borderColor: `${cat.color}20`
|
|
4399
4411
|
},
|
|
4400
|
-
children: /* @__PURE__ */ jsx(cat.icon, { className: "h-4 w-4", color: cat.color })
|
|
4412
|
+
children: /* @__PURE__ */ jsx(cat.icon, { className: "h-4 w-4", style: { color: cat.color } })
|
|
4401
4413
|
}
|
|
4402
4414
|
),
|
|
4403
4415
|
/* @__PURE__ */ jsx(
|
|
4404
4416
|
"span",
|
|
4405
4417
|
{
|
|
4406
|
-
className: "relative text-
|
|
4418
|
+
className: "relative text-xs font-bold tracking-wide transition-colors duration-200",
|
|
4407
4419
|
style: { color: cat.color },
|
|
4408
4420
|
children: cat.label
|
|
4409
4421
|
}
|
|
4410
4422
|
),
|
|
4411
|
-
/* @__PURE__ */
|
|
4412
|
-
|
|
4413
|
-
|
|
4414
|
-
|
|
4415
|
-
|
|
4416
|
-
|
|
4417
|
-
|
|
4418
|
-
|
|
4423
|
+
/* @__PURE__ */ jsxs("div", { className: "ml-auto flex items-center gap-1.5 relative", children: [
|
|
4424
|
+
/* @__PURE__ */ jsx(
|
|
4425
|
+
"span",
|
|
4426
|
+
{
|
|
4427
|
+
className: "rounded-full px-2 py-0.5 text-[10px] font-bold transition-all duration-200",
|
|
4428
|
+
style: {
|
|
4429
|
+
color: cat.color,
|
|
4430
|
+
backgroundColor: `${cat.color}10`,
|
|
4431
|
+
border: `1px solid ${cat.color}15`
|
|
4432
|
+
},
|
|
4433
|
+
children: catTags.length
|
|
4434
|
+
}
|
|
4435
|
+
),
|
|
4436
|
+
/* @__PURE__ */ jsx(
|
|
4437
|
+
ChevronDown,
|
|
4438
|
+
{
|
|
4439
|
+
className: `h-3.5 w-3.5 transition-transform duration-300 ease-[cubic-bezier(0.2,0,0,1)] ${isExpanded ? "rotate-180" : ""}`,
|
|
4440
|
+
style: { color: cat.color },
|
|
4441
|
+
strokeWidth: 2.5
|
|
4442
|
+
}
|
|
4443
|
+
)
|
|
4444
|
+
] })
|
|
4419
4445
|
]
|
|
4420
4446
|
}
|
|
4421
4447
|
),
|
|
4422
4448
|
/* @__PURE__ */ jsx(
|
|
4423
4449
|
"div",
|
|
4424
4450
|
{
|
|
4425
|
-
className: `grid transition-all duration-500 ease-[cubic-bezier(0.22,1,0.36,1)] ${isExpanded ? "grid-rows-[1fr] opacity-100 mt-
|
|
4426
|
-
children: /* @__PURE__ */ jsx("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsx(
|
|
4451
|
+
className: `grid transition-all duration-500 ease-[cubic-bezier(0.22,1,0.36,1)] ${isExpanded ? "grid-rows-[1fr] opacity-100 mt-2.5" : "grid-rows-[0fr] opacity-0"}`,
|
|
4452
|
+
children: /* @__PURE__ */ jsx("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsx(
|
|
4427
4453
|
"div",
|
|
4428
4454
|
{
|
|
4429
|
-
className: "
|
|
4430
|
-
|
|
4431
|
-
|
|
4455
|
+
className: "flex flex-wrap justify-start gap-2 py-2 pl-3 border-l ml-4",
|
|
4456
|
+
style: { borderColor: `${cat.color}18` },
|
|
4457
|
+
children: uniqueTags.map((tag, index) => /* @__PURE__ */ jsx(
|
|
4458
|
+
"div",
|
|
4432
4459
|
{
|
|
4433
|
-
|
|
4434
|
-
|
|
4435
|
-
|
|
4436
|
-
|
|
4437
|
-
|
|
4438
|
-
|
|
4439
|
-
|
|
4440
|
-
|
|
4441
|
-
|
|
4442
|
-
|
|
4443
|
-
|
|
4444
|
-
|
|
4445
|
-
|
|
4446
|
-
|
|
4447
|
-
|
|
4448
|
-
|
|
4449
|
-
|
|
4450
|
-
|
|
4451
|
-
|
|
4452
|
-
|
|
4453
|
-
|
|
4454
|
-
|
|
4455
|
-
|
|
4456
|
-
|
|
4457
|
-
|
|
4458
|
-
|
|
4460
|
+
className: "relative flex flex-col items-start max-w-full",
|
|
4461
|
+
children: /* @__PURE__ */ jsxs(
|
|
4462
|
+
"span",
|
|
4463
|
+
{
|
|
4464
|
+
title: tag.name,
|
|
4465
|
+
onClick: (e) => {
|
|
4466
|
+
e.stopPropagation();
|
|
4467
|
+
if (cat.id !== "PROP" && cat.id !== "SET_PROP" && cat.id !== "CAST" && cat.id !== "EXTRA")
|
|
4468
|
+
return;
|
|
4469
|
+
if ((editingTagData == null ? void 0 : editingTagData.tag.id) === tag.id) {
|
|
4470
|
+
setEditingTagData(null);
|
|
4471
|
+
} else {
|
|
4472
|
+
const rect = e.currentTarget.getBoundingClientRect();
|
|
4473
|
+
setPopupPlacement({
|
|
4474
|
+
alignRight: rect.left > window.innerWidth - 240,
|
|
4475
|
+
alignBottom: rect.bottom > window.innerHeight - 250
|
|
4476
|
+
});
|
|
4477
|
+
setTagForm({
|
|
4478
|
+
quantity: tag.quantity || 1,
|
|
4479
|
+
look: tag.look || "",
|
|
4480
|
+
age: tag.age || "",
|
|
4481
|
+
age_range: tag.age_range || [],
|
|
4482
|
+
crowd_type: tag.crowd_type || []
|
|
4483
|
+
});
|
|
4484
|
+
setEditingTagData({
|
|
4485
|
+
tag,
|
|
4486
|
+
catId: cat.id,
|
|
4487
|
+
catColor: cat.color,
|
|
4488
|
+
rect
|
|
4489
|
+
});
|
|
4490
|
+
}
|
|
4491
|
+
},
|
|
4492
|
+
className: `inline-block max-w-full truncate text-[11px] font-bold px-3 py-1.5 rounded-full border transition-all duration-200 select-none ${cat.id === "PROP" || cat.id === "SET_PROP" || cat.id === "CAST" || cat.id === "EXTRA" ? "cursor-pointer hover:scale-[1.03] hover:shadow-sm" : "cursor-default"}`,
|
|
4493
|
+
style: {
|
|
4494
|
+
color: cat.color,
|
|
4495
|
+
background: `linear-gradient(135deg, ${cat.color}08, ${cat.color}03)`,
|
|
4496
|
+
borderColor: `${cat.color}18`
|
|
4497
|
+
},
|
|
4498
|
+
children: [
|
|
4499
|
+
tag.name,
|
|
4500
|
+
(cat.id === "PROP" || cat.id === "SET_PROP") && tag.quantity && tag.quantity > 1 ? /* @__PURE__ */ jsxs(
|
|
4501
|
+
"span",
|
|
4502
|
+
{
|
|
4503
|
+
className: "ml-1.5 font-extrabold px-1 py-0.5 rounded text-[9px] border inline-block",
|
|
4504
|
+
style: {
|
|
4505
|
+
color: cat.color,
|
|
4506
|
+
backgroundColor: `${cat.color}10`,
|
|
4507
|
+
borderColor: `${cat.color}15`
|
|
4508
|
+
},
|
|
4509
|
+
children: [
|
|
4510
|
+
"x",
|
|
4511
|
+
tag.quantity
|
|
4512
|
+
]
|
|
4513
|
+
}
|
|
4514
|
+
) : null
|
|
4515
|
+
]
|
|
4459
4516
|
}
|
|
4460
|
-
|
|
4461
|
-
|
|
4462
|
-
|
|
4463
|
-
|
|
4464
|
-
|
|
4465
|
-
|
|
4466
|
-
},
|
|
4467
|
-
children: [
|
|
4468
|
-
tag.name,
|
|
4469
|
-
(cat.id === "PROP" || cat.id === "SET_PROP") && tag.quantity && tag.quantity > 1 ? /* @__PURE__ */ jsxs("span", { className: "ml-1.5 opacity-80 font-bold", children: [
|
|
4470
|
-
"x",
|
|
4471
|
-
tag.quantity
|
|
4472
|
-
] }) : null
|
|
4473
|
-
]
|
|
4474
|
-
}
|
|
4475
|
-
)
|
|
4476
|
-
},
|
|
4477
|
-
index
|
|
4478
|
-
)) }) })
|
|
4517
|
+
)
|
|
4518
|
+
},
|
|
4519
|
+
index
|
|
4520
|
+
))
|
|
4521
|
+
}
|
|
4522
|
+
) })
|
|
4479
4523
|
}
|
|
4480
4524
|
)
|
|
4481
4525
|
] }, cat.id);
|
|
@@ -4489,7 +4533,7 @@ function ScriptBreakdownSceneView({
|
|
|
4489
4533
|
/* @__PURE__ */ jsx(
|
|
4490
4534
|
"div",
|
|
4491
4535
|
{
|
|
4492
|
-
className: "fixed inset-0 z-[100]",
|
|
4536
|
+
className: "fixed inset-0 z-[100] bg-blumine-950/5 backdrop-blur-[1px]",
|
|
4493
4537
|
onClick: (e) => {
|
|
4494
4538
|
e.stopPropagation();
|
|
4495
4539
|
setEditingTagData(null);
|
|
@@ -4499,7 +4543,7 @@ function ScriptBreakdownSceneView({
|
|
|
4499
4543
|
/* @__PURE__ */ jsxs(
|
|
4500
4544
|
"div",
|
|
4501
4545
|
{
|
|
4502
|
-
className: `p-3.5 bg-white/90 backdrop-blur-2xl rounded-[1.25rem] shadow-[
|
|
4546
|
+
className: `p-3.5 bg-white/90 backdrop-blur-2xl rounded-[1.25rem] shadow-[0_10px_40px_rgba(16,43,60,0.12)] border border-blumine-100/40 z-[101] w-56 animate-in fade-in zoom-in-95 duration-200 ease-out fixed`,
|
|
4503
4547
|
style: {
|
|
4504
4548
|
top: popupPlacement.alignBottom ? "auto" : editingTagData.rect.bottom + 8,
|
|
4505
4549
|
bottom: popupPlacement.alignBottom ? window.innerHeight - editingTagData.rect.top + 8 : "auto",
|
|
@@ -4508,19 +4552,19 @@ function ScriptBreakdownSceneView({
|
|
|
4508
4552
|
},
|
|
4509
4553
|
onClick: (e) => e.stopPropagation(),
|
|
4510
4554
|
children: [
|
|
4511
|
-
/* @__PURE__ */ jsxs("div", { className: "flex justify-between items-center mb-3 border-b border-
|
|
4512
|
-
/* @__PURE__ */ jsx("span", { className: "text-[10px] font-extrabold text-
|
|
4555
|
+
/* @__PURE__ */ jsxs("div", { className: "flex justify-between items-center mb-3 border-b border-blumine-100/30 pb-2.5", children: [
|
|
4556
|
+
/* @__PURE__ */ jsx("span", { className: "text-[10px] font-extrabold text-blumine-400 uppercase tracking-widest drop-shadow-sm", children: "Details" }),
|
|
4513
4557
|
/* @__PURE__ */ jsx(
|
|
4514
4558
|
"button",
|
|
4515
4559
|
{
|
|
4516
4560
|
onClick: () => setEditingTagData(null),
|
|
4517
|
-
className: "hover:bg-
|
|
4518
|
-
children: /* @__PURE__ */ jsx(X, { className: "w-3.5 h-3.5
|
|
4561
|
+
className: "hover:bg-blumine-100/40 p-1.5 rounded-full transition-colors active:scale-95 text-blumine-500",
|
|
4562
|
+
children: /* @__PURE__ */ jsx(X, { className: "w-3.5 h-3.5" })
|
|
4519
4563
|
}
|
|
4520
4564
|
)
|
|
4521
4565
|
] }),
|
|
4522
4566
|
(editingTagData.catId === "PROP" || editingTagData.catId === "SET_PROP") && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1.5", children: [
|
|
4523
|
-
/* @__PURE__ */ jsx("label", { className: "text-[11px] font-bold text-
|
|
4567
|
+
/* @__PURE__ */ jsx("label", { className: "text-[11px] font-bold text-blumine-700 ml-1", children: "Quantity" }),
|
|
4524
4568
|
/* @__PURE__ */ jsx(
|
|
4525
4569
|
"input",
|
|
4526
4570
|
{
|
|
@@ -4533,13 +4577,13 @@ function ScriptBreakdownSceneView({
|
|
|
4533
4577
|
quantity: val
|
|
4534
4578
|
}));
|
|
4535
4579
|
},
|
|
4536
|
-
className: "w-full text-[13px] px-3 py-2 rounded-xl border border-
|
|
4580
|
+
className: "w-full text-[13px] px-3 py-2 rounded-xl border border-blumine-100 bg-zinc-50/30 outline-none focus:border-blumine-400 focus:bg-white focus:ring-2 focus:ring-blumine-500/10 transition-all font-semibold text-blumine-800"
|
|
4537
4581
|
}
|
|
4538
4582
|
)
|
|
4539
4583
|
] }),
|
|
4540
4584
|
editingTagData.catId === "CAST" && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3", children: [
|
|
4541
4585
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1.5", children: [
|
|
4542
|
-
/* @__PURE__ */ jsx("label", { className: "text-[11px] font-bold text-
|
|
4586
|
+
/* @__PURE__ */ jsx("label", { className: "text-[11px] font-bold text-blumine-700 ml-1", children: "Look" }),
|
|
4543
4587
|
/* @__PURE__ */ jsx(
|
|
4544
4588
|
"input",
|
|
4545
4589
|
{
|
|
@@ -4551,12 +4595,12 @@ function ScriptBreakdownSceneView({
|
|
|
4551
4595
|
look: e.target.value
|
|
4552
4596
|
}));
|
|
4553
4597
|
},
|
|
4554
|
-
className: "w-full text-[13px] px-3 py-2 rounded-xl border border-
|
|
4598
|
+
className: "w-full text-[13px] px-3 py-2 rounded-xl border border-blumine-100 bg-zinc-50/30 outline-none focus:border-blumine-400 focus:bg-white focus:ring-2 focus:ring-blumine-500/10 transition-all font-semibold text-blumine-800 placeholder:text-blumine-300 placeholder:font-normal"
|
|
4555
4599
|
}
|
|
4556
4600
|
)
|
|
4557
4601
|
] }),
|
|
4558
4602
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1.5", children: [
|
|
4559
|
-
/* @__PURE__ */ jsx("label", { className: "text-[11px] font-bold text-
|
|
4603
|
+
/* @__PURE__ */ jsx("label", { className: "text-[11px] font-bold text-blumine-700 ml-1", children: "Age" }),
|
|
4560
4604
|
/* @__PURE__ */ jsx(
|
|
4561
4605
|
"input",
|
|
4562
4606
|
{
|
|
@@ -4577,7 +4621,7 @@ function ScriptBreakdownSceneView({
|
|
|
4577
4621
|
age: val.toString()
|
|
4578
4622
|
}));
|
|
4579
4623
|
},
|
|
4580
|
-
className: "w-full text-[13px] px-3 py-2 rounded-xl border border-
|
|
4624
|
+
className: "w-full text-[13px] px-3 py-2 rounded-xl border border-blumine-100 bg-zinc-50/30 outline-none focus:border-blumine-400 focus:bg-white focus:ring-2 focus:ring-blumine-500/10 transition-all font-semibold text-blumine-800"
|
|
4581
4625
|
}
|
|
4582
4626
|
)
|
|
4583
4627
|
] })
|
|
@@ -4617,7 +4661,7 @@ function ScriptBreakdownSceneView({
|
|
|
4617
4661
|
}
|
|
4618
4662
|
setEditingTagData(null);
|
|
4619
4663
|
},
|
|
4620
|
-
className: "w-full bg-
|
|
4664
|
+
className: "w-full bg-gradient-to-b from-blumine-500 to-blumine-600 hover:from-blumine-600 hover:to-blumine-700 text-white text-[12px] font-bold py-2.5 rounded-xl transition-all shadow-[0_4px_12px_rgba(32,146,186,0.2)] hover:shadow-[0_6px_16px_rgba(32,146,186,0.3)] active:scale-[0.98]",
|
|
4621
4665
|
children: "Update Details"
|
|
4622
4666
|
}
|
|
4623
4667
|
) })
|
|
@@ -4700,72 +4744,80 @@ function useScriptBreakdownScene(options) {
|
|
|
4700
4744
|
}, [blocks]);
|
|
4701
4745
|
const handleAISummarize = async () => {
|
|
4702
4746
|
var _a;
|
|
4747
|
+
if (!scene || !scene.content) {
|
|
4748
|
+
console.error("Cannot summarize scene: Scene data is not loaded yet.");
|
|
4749
|
+
return;
|
|
4750
|
+
}
|
|
4703
4751
|
setIsSummarizing(true);
|
|
4704
|
-
|
|
4705
|
-
|
|
4706
|
-
|
|
4707
|
-
|
|
4708
|
-
|
|
4709
|
-
|
|
4710
|
-
try {
|
|
4711
|
-
const normalData = JSON.parse(data.data);
|
|
4712
|
-
if (Array.isArray(normalData)) {
|
|
4713
|
-
parsedData = Array.isArray(normalData[0]) ? normalData[0] : [];
|
|
4714
|
-
const summary = Array.isArray(normalData[1]) ? normalData[1] : [];
|
|
4715
|
-
parsedSummaryData = summary[0] || {};
|
|
4716
|
-
}
|
|
4717
|
-
} catch (error2) {
|
|
4718
|
-
console.error("Error parsing AI summary data:", error2);
|
|
4719
|
-
}
|
|
4720
|
-
setSceneBrief(parsedSummaryData.summarise || "");
|
|
4721
|
-
const newTags = [];
|
|
4722
|
-
parsedData.forEach((aiTag) => {
|
|
4723
|
-
if (!aiTag.block_id || !aiTag.category_id || typeof aiTag.start_index !== "number" || typeof aiTag.end_index !== "number") {
|
|
4724
|
-
return;
|
|
4725
|
-
}
|
|
4726
|
-
const newTag = {
|
|
4727
|
-
id: aiTag.id || uuid(),
|
|
4728
|
-
block_id: String(aiTag.block_id).startsWith("par") ? String(aiTag.block_id).substring(3) : String(aiTag.block_id),
|
|
4729
|
-
category_id: aiTag.category_id,
|
|
4730
|
-
name: aiTag.name,
|
|
4731
|
-
start_index: aiTag.start_index,
|
|
4732
|
-
end_index: aiTag.end_index
|
|
4733
|
-
};
|
|
4734
|
-
if (aiTag.category_id === "PROP" || aiTag.category_id === "SET_PROP") {
|
|
4735
|
-
newTag.quantity = 1;
|
|
4736
|
-
} else if (aiTag.category_id === "CAST") {
|
|
4737
|
-
newTag.look = "";
|
|
4738
|
-
newTag.age = "";
|
|
4739
|
-
}
|
|
4740
|
-
newTags.push(newTag);
|
|
4741
|
-
});
|
|
4742
|
-
if (newTags.length > 0) {
|
|
4743
|
-
const originalTags = tags;
|
|
4744
|
-
setTags((prev) => {
|
|
4745
|
-
const merged = [...prev];
|
|
4746
|
-
newTags.forEach((newTag) => {
|
|
4747
|
-
const isOverlapping = merged.some(
|
|
4748
|
-
(t) => t.block_id === newTag.block_id && newTag.end_index > t.start_index && newTag.start_index < t.end_index
|
|
4749
|
-
);
|
|
4750
|
-
if (!isOverlapping) {
|
|
4751
|
-
merged.push(newTag);
|
|
4752
|
-
}
|
|
4753
|
-
});
|
|
4754
|
-
return merged;
|
|
4755
|
-
});
|
|
4752
|
+
try {
|
|
4753
|
+
const res = await ((_a = options.onAISummarize) == null ? void 0 : _a.call(options, scene.content));
|
|
4754
|
+
if (res && res.ok) {
|
|
4755
|
+
const data = await res.json();
|
|
4756
|
+
let parsedData = [];
|
|
4757
|
+
let parsedSummaryData = {};
|
|
4756
4758
|
try {
|
|
4757
|
-
|
|
4758
|
-
|
|
4759
|
+
const normalData = JSON.parse(data.data);
|
|
4760
|
+
if (Array.isArray(normalData)) {
|
|
4761
|
+
parsedData = Array.isArray(normalData[0]) ? normalData[0] : [];
|
|
4762
|
+
const summary = Array.isArray(normalData[1]) ? normalData[1] : [];
|
|
4763
|
+
parsedSummaryData = summary[0] || {};
|
|
4759
4764
|
}
|
|
4760
4765
|
} catch (error2) {
|
|
4761
|
-
console.error("
|
|
4762
|
-
setTags(originalTags);
|
|
4766
|
+
console.error("Error parsing AI summary data:", error2);
|
|
4763
4767
|
}
|
|
4768
|
+
setSceneBrief(parsedSummaryData.summarise || "");
|
|
4769
|
+
const newTags = [];
|
|
4770
|
+
parsedData.forEach((aiTag) => {
|
|
4771
|
+
if (!aiTag.block_id || !aiTag.category_id || typeof aiTag.start_index !== "number" || typeof aiTag.end_index !== "number") {
|
|
4772
|
+
return;
|
|
4773
|
+
}
|
|
4774
|
+
const newTag = {
|
|
4775
|
+
id: aiTag.id || uuid(),
|
|
4776
|
+
block_id: String(aiTag.block_id).startsWith("par") ? String(aiTag.block_id).substring(3) : String(aiTag.block_id),
|
|
4777
|
+
category_id: aiTag.category_id,
|
|
4778
|
+
name: aiTag.name,
|
|
4779
|
+
start_index: aiTag.start_index,
|
|
4780
|
+
end_index: aiTag.end_index
|
|
4781
|
+
};
|
|
4782
|
+
if (aiTag.category_id === "PROP" || aiTag.category_id === "SET_PROP") {
|
|
4783
|
+
newTag.quantity = 1;
|
|
4784
|
+
} else if (aiTag.category_id === "CAST") {
|
|
4785
|
+
newTag.look = "";
|
|
4786
|
+
newTag.age = "";
|
|
4787
|
+
}
|
|
4788
|
+
newTags.push(newTag);
|
|
4789
|
+
});
|
|
4790
|
+
if (newTags.length > 0) {
|
|
4791
|
+
const originalTags = tags;
|
|
4792
|
+
setTags((prev) => {
|
|
4793
|
+
const merged = [...prev];
|
|
4794
|
+
newTags.forEach((newTag) => {
|
|
4795
|
+
const isOverlapping = merged.some(
|
|
4796
|
+
(t) => t.block_id === newTag.block_id && newTag.end_index > t.start_index && newTag.start_index < t.end_index
|
|
4797
|
+
);
|
|
4798
|
+
if (!isOverlapping) {
|
|
4799
|
+
merged.push(newTag);
|
|
4800
|
+
}
|
|
4801
|
+
});
|
|
4802
|
+
return merged;
|
|
4803
|
+
});
|
|
4804
|
+
try {
|
|
4805
|
+
if (options.onTagsBulkAdded) {
|
|
4806
|
+
await options.onTagsBulkAdded(newTags, parsedSummaryData.summarise);
|
|
4807
|
+
}
|
|
4808
|
+
} catch (error2) {
|
|
4809
|
+
console.error("Failed to bulk add AI-generated tags:", error2);
|
|
4810
|
+
setTags(originalTags);
|
|
4811
|
+
}
|
|
4812
|
+
}
|
|
4813
|
+
return data;
|
|
4814
|
+
} else {
|
|
4815
|
+
console.error("Failed to summarize scene:", res);
|
|
4764
4816
|
}
|
|
4765
|
-
|
|
4766
|
-
|
|
4817
|
+
} catch (error2) {
|
|
4818
|
+
console.error("An error occurred during scene summarization:", error2);
|
|
4819
|
+
} finally {
|
|
4767
4820
|
setIsSummarizing(false);
|
|
4768
|
-
console.error("Failed to summarize scene:", res);
|
|
4769
4821
|
}
|
|
4770
4822
|
};
|
|
4771
4823
|
const bulkCreateTags = useCallback(async () => {
|
|
@@ -6386,39 +6438,39 @@ function ShotBreakdownView({
|
|
|
6386
6438
|
"button",
|
|
6387
6439
|
{
|
|
6388
6440
|
onClick: () => setIsSidebarOpen(true),
|
|
6389
|
-
className: "fixed bottom-6 right-6 z-40 flex h-14 w-14 items-center justify-center rounded-full bg-
|
|
6441
|
+
className: "fixed bottom-6 right-6 z-40 flex h-14 w-14 items-center justify-center rounded-full bg-gradient-to-b from-blumine-500 to-blumine-600 text-white shadow-[0_8px_30px_rgba(32,146,186,0.35)] transition-all duration-200 hover:scale-105 active:scale-95 hover:shadow-[0_10px_35px_rgba(32,146,186,0.45)] xl:hidden border border-white/10",
|
|
6390
6442
|
children: [
|
|
6391
|
-
/* @__PURE__ */ jsx(Video, { className: "h-
|
|
6392
|
-
shots.length > 0 && /* @__PURE__ */ jsx("span", { className: "absolute -top-1 -right-1 flex h-5 w-5 items-center justify-center rounded-full bg-rose-500 text-[10px] font-bold text-white shadow-
|
|
6443
|
+
/* @__PURE__ */ jsx(Video, { className: "h-5.5 w-5.5", strokeWidth: 2 }),
|
|
6444
|
+
shots.length > 0 && /* @__PURE__ */ jsx("span", { className: "absolute -top-1 -right-1 flex h-5 w-5 items-center justify-center rounded-full bg-rose-500 text-[10px] font-bold text-white shadow-md border-2 border-white animate-pulse", children: shots.length })
|
|
6393
6445
|
]
|
|
6394
6446
|
}
|
|
6395
6447
|
),
|
|
6396
6448
|
isSidebarOpen && /* @__PURE__ */ jsx(
|
|
6397
6449
|
"div",
|
|
6398
6450
|
{
|
|
6399
|
-
className: "fixed inset-0 z-40 bg-
|
|
6451
|
+
className: "fixed inset-0 z-40 bg-blumine-950/20 backdrop-blur-xs transition-all duration-300 xl:hidden",
|
|
6400
6452
|
onClick: () => setIsSidebarOpen(false)
|
|
6401
6453
|
}
|
|
6402
6454
|
),
|
|
6403
6455
|
/* @__PURE__ */ jsx(
|
|
6404
6456
|
"div",
|
|
6405
6457
|
{
|
|
6406
|
-
className: `fixed xl:absolute top-0 right-0 z-50 h-full w-
|
|
6407
|
-
children: /* @__PURE__ */ jsxs("div", { className: "sticky top-0 flex h-[100dvh] max-h-screen w-full flex-col border-l border-
|
|
6408
|
-
!aiSummarized && /* @__PURE__ */ jsx(
|
|
6458
|
+
className: `fixed xl:absolute top-0 right-0 z-50 h-full w-80 transform transition-transform duration-300 ease-[cubic-bezier(0.22,1,0.36,1)] xl:translate-x-0 ${isSidebarOpen ? "translate-x-0 shadow-[-10px_0_40px_rgba(16,43,60,0.08)]" : "translate-x-full"}`,
|
|
6459
|
+
children: /* @__PURE__ */ jsxs("div", { className: "sticky top-0 flex h-[100dvh] max-h-screen w-full flex-col border-l border-blumine-100/50 bg-white/95 backdrop-blur-xl p-4 py-6", children: [
|
|
6460
|
+
!aiSummarized && /* @__PURE__ */ jsx("div", { className: "mb-4 shrink-0 flex justify-center", children: /* @__PURE__ */ jsx(
|
|
6409
6461
|
summarize_button_default,
|
|
6410
6462
|
{
|
|
6411
6463
|
onSummarize: handleAISummarize,
|
|
6412
6464
|
isSummarizing
|
|
6413
6465
|
}
|
|
6414
|
-
),
|
|
6415
|
-
/* @__PURE__ */ jsxs("div", { className: "relative flex flex-col gap-3 py-
|
|
6416
|
-
/* @__PURE__ */ jsxs("div", { className: "relative flex items-center justify-between mb-
|
|
6466
|
+
) }),
|
|
6467
|
+
/* @__PURE__ */ jsxs("div", { className: "relative flex flex-col gap-3 py-4 border-t border-blumine-100/40 flex-1 overflow-hidden", children: [
|
|
6468
|
+
/* @__PURE__ */ jsxs("div", { className: "relative flex items-center justify-between mb-4 shrink-0 px-1", children: [
|
|
6417
6469
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
6418
|
-
/* @__PURE__ */ jsx("div", { className: "relative flex h-
|
|
6470
|
+
/* @__PURE__ */ jsx("div", { className: "relative flex h-10 w-10 items-center justify-center rounded-xl border border-blumine-200/60 bg-gradient-to-b from-white to-blumine-50/50 shadow-inner", children: /* @__PURE__ */ jsx(Video, { className: "h-5 w-5 text-blumine-600", strokeWidth: 1.5 }) }),
|
|
6419
6471
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
|
|
6420
|
-
/* @__PURE__ */ jsx("h3", { className: "text-[
|
|
6421
|
-
sceneType && /* @__PURE__ */ jsx("span", { className: "text-[9px] font-bold text-
|
|
6472
|
+
/* @__PURE__ */ jsx("h3", { className: "text-[14px] font-bold uppercase tracking-wider text-blumine-800 leading-none", children: "Shots" }),
|
|
6473
|
+
sceneType && /* @__PURE__ */ jsx("span", { className: "text-[9px] font-bold text-blumine-500 uppercase tracking-wide opacity-80 mt-1", children: sceneType })
|
|
6422
6474
|
] })
|
|
6423
6475
|
] }),
|
|
6424
6476
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
@@ -6426,19 +6478,27 @@ function ShotBreakdownView({
|
|
|
6426
6478
|
"button",
|
|
6427
6479
|
{
|
|
6428
6480
|
onClick: () => setIsInitModalOpen(true),
|
|
6429
|
-
className: "flex h-
|
|
6481
|
+
className: "flex h-8 w-8 items-center justify-center rounded-lg border border-blumine-200/60 bg-gradient-to-b from-white to-blumine-50/50 text-blumine-600 shadow-sm transition duration-150 active:scale-95 hover:bg-blumine-100/60 hover:text-blumine-700",
|
|
6430
6482
|
title: "Project Setup",
|
|
6431
|
-
children: /* @__PURE__ */ jsx(Settings2, { className: "h-
|
|
6483
|
+
children: /* @__PURE__ */ jsx(Settings2, { className: "h-4 w-4", strokeWidth: 1.5 })
|
|
6432
6484
|
}
|
|
6433
6485
|
),
|
|
6434
|
-
shots.length > 0 && /* @__PURE__ */ jsx("span", { className: "rounded-
|
|
6486
|
+
shots.length > 0 && /* @__PURE__ */ jsx("span", { className: "rounded-full border border-blumine-200/50 bg-blumine-50/80 px-2.5 py-0.5 text-[11px] font-bold text-blumine-700 shadow-sm", children: shots.length }),
|
|
6487
|
+
/* @__PURE__ */ jsx(
|
|
6488
|
+
"button",
|
|
6489
|
+
{
|
|
6490
|
+
onClick: () => setIsSidebarOpen(false),
|
|
6491
|
+
className: "flex xl:hidden h-8 w-8 items-center justify-center rounded-lg text-blumine-400 hover:bg-blumine-100 hover:text-blumine-700 transition duration-150 active:scale-95",
|
|
6492
|
+
children: /* @__PURE__ */ jsx(X, { className: "h-4 w-4" })
|
|
6493
|
+
}
|
|
6494
|
+
)
|
|
6435
6495
|
] })
|
|
6436
6496
|
] }),
|
|
6437
|
-
shots.length === 0 ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center py-
|
|
6438
|
-
/* @__PURE__ */ jsx("div", { className: "flex h-
|
|
6439
|
-
/* @__PURE__ */ jsx("p", { className: "text-xs font-
|
|
6440
|
-
/* @__PURE__ */ jsx("p", { className: "text-[11px] text-
|
|
6441
|
-
] }) : /* @__PURE__ */ jsx("div", { className: "flex h-full max-h-[calc(100vh-200px)] flex-col gap-
|
|
6497
|
+
shots.length === 0 ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center py-12 px-4 text-center", children: [
|
|
6498
|
+
/* @__PURE__ */ jsx("div", { className: "flex h-12 w-12 items-center justify-center rounded-xl bg-gradient-to-b from-white to-blumine-50/30 border border-blumine-100/60 shadow-inner mb-4", children: /* @__PURE__ */ jsx(Video, { className: "h-5 w-5 text-blumine-400", strokeWidth: 1.5 }) }),
|
|
6499
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs font-bold text-blumine-800 tracking-wide", children: "No Shots Created Yet" }),
|
|
6500
|
+
/* @__PURE__ */ jsx("p", { className: "text-[11px] text-blumine-400 mt-2 max-w-[180px] leading-relaxed font-medium", children: "Highlight text in the screenplay to add your first camera shot." })
|
|
6501
|
+
] }) : /* @__PURE__ */ jsx("div", { className: "flex h-full max-h-[calc(100vh-200px)] flex-col gap-3 overflow-y-auto overflow-x-hidden pb-4 pr-1 custom-scrollbar", children: shots.map((shot) => {
|
|
6442
6502
|
const isActive = toggledShotId === shot.id;
|
|
6443
6503
|
return /* @__PURE__ */ jsxs(
|
|
6444
6504
|
"div",
|
|
@@ -6447,48 +6507,46 @@ function ShotBreakdownView({
|
|
|
6447
6507
|
var _a2;
|
|
6448
6508
|
return setToggledShotId(isActive ? null : (_a2 = shot.id) != null ? _a2 : null);
|
|
6449
6509
|
},
|
|
6450
|
-
className: `group relative flex-shrink-0 cursor-pointer rounded-
|
|
6510
|
+
className: `group relative flex-shrink-0 cursor-pointer rounded-2xl border transition-all duration-300 overflow-hidden ${isActive ? "border-blumine-500 bg-blumine-50/30 shadow-[0_6px_20px_rgba(16,43,60,0.06)]" : "border-blumine-100/50 bg-white hover:border-blumine-300 hover:shadow-[0_4px_14px_rgba(16,43,60,0.03)]"}`,
|
|
6451
6511
|
children: [
|
|
6452
6512
|
/* @__PURE__ */ jsx(
|
|
6453
6513
|
"div",
|
|
6454
6514
|
{
|
|
6455
|
-
className: `absolute left-0 top-0 h-full w-[3px] transition-all duration-300
|
|
6456
|
-
${isActive ? "bg-slate-900" : "bg-transparent group-hover:bg-slate-300"}`
|
|
6515
|
+
className: `absolute left-0 top-0 h-full w-[3px] transition-all duration-300 ${isActive ? "bg-blumine-500" : "bg-transparent group-hover:bg-blumine-300"}`
|
|
6457
6516
|
}
|
|
6458
6517
|
),
|
|
6459
|
-
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 px-4 py-3.5", children: [
|
|
6518
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2.5 px-4 py-3.5", children: [
|
|
6460
6519
|
/* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between", children: [
|
|
6461
6520
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
|
|
6462
6521
|
/* @__PURE__ */ jsxs(
|
|
6463
6522
|
"span",
|
|
6464
6523
|
{
|
|
6465
|
-
className: `text-[
|
|
6466
|
-
${isActive ? "text-slate-900" : "text-slate-500"}`,
|
|
6524
|
+
className: `text-[10px] font-bold tracking-wider uppercase ${isActive ? "text-blumine-500" : "text-blumine-400"}`,
|
|
6467
6525
|
children: [
|
|
6468
6526
|
"Shot ",
|
|
6469
6527
|
shot.shot_number
|
|
6470
6528
|
]
|
|
6471
6529
|
}
|
|
6472
6530
|
),
|
|
6473
|
-
/* @__PURE__ */ jsx("span", { className: "text-
|
|
6531
|
+
/* @__PURE__ */ jsx("span", { className: "text-xs font-extrabold text-blumine-800 leading-tight mt-1", children: shot.camera_name || "Unknown Camera" })
|
|
6474
6532
|
] }),
|
|
6475
6533
|
/* @__PURE__ */ jsx(
|
|
6476
6534
|
"span",
|
|
6477
6535
|
{
|
|
6478
|
-
className: `rounded-
|
|
6536
|
+
className: `rounded-lg px-2.5 py-1 text-[9px] font-bold uppercase tracking-wider transition-colors duration-200 ${isActive ? "bg-blumine-600 text-white shadow-sm" : "bg-blumine-50/60 text-blumine-600 group-hover:bg-blumine-100"}`,
|
|
6479
6537
|
children: shot.shot_type
|
|
6480
6538
|
}
|
|
6481
6539
|
)
|
|
6482
6540
|
] }),
|
|
6483
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between text-[11px] text-
|
|
6541
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between text-[11px] font-medium text-blumine-400", children: [
|
|
6484
6542
|
/* @__PURE__ */ jsx("span", { children: shot.lens_mm ? `${shot.lens_mm}mm Lens` : "\u2014" }),
|
|
6485
|
-
/* @__PURE__ */ jsx("span", { className: "opacity-
|
|
6543
|
+
/* @__PURE__ */ jsx("span", { className: "text-[10px] font-bold text-blumine-300 opacity-0 group-hover:opacity-100 transition-opacity duration-200", children: "Tap to expand" })
|
|
6486
6544
|
] }),
|
|
6487
6545
|
/* @__PURE__ */ jsx(
|
|
6488
6546
|
"div",
|
|
6489
6547
|
{
|
|
6490
|
-
className: `grid transition-all duration-300 ease-in-out ${isActive ? "grid-rows-[1fr] opacity-100 mt-
|
|
6491
|
-
children: /* @__PURE__ */ jsx("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsxs("div", { className: "
|
|
6548
|
+
className: `grid transition-all duration-300 ease-in-out ${isActive ? "grid-rows-[1fr] opacity-100 mt-1" : "grid-rows-[0fr] opacity-0"}`,
|
|
6549
|
+
children: /* @__PURE__ */ jsx("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsxs("div", { className: "pt-3 pb-1 border-t border-blumine-100/50 flex gap-2", children: [
|
|
6492
6550
|
/* @__PURE__ */ jsxs(
|
|
6493
6551
|
"button",
|
|
6494
6552
|
{
|
|
@@ -6497,7 +6555,7 @@ function ShotBreakdownView({
|
|
|
6497
6555
|
e.stopPropagation();
|
|
6498
6556
|
setViewingShotId((_a2 = shot.id) != null ? _a2 : null);
|
|
6499
6557
|
},
|
|
6500
|
-
className: "flex flex-1 items-center justify-center gap-1.5 rounded-
|
|
6558
|
+
className: "flex flex-1 items-center justify-center gap-1.5 rounded-xl border border-blumine-200/60 bg-white py-2 text-[11px] font-bold text-blumine-700 transition-all hover:bg-blumine-50 hover:text-blumine-900 shadow-sm active:scale-[0.97]",
|
|
6501
6559
|
children: [
|
|
6502
6560
|
/* @__PURE__ */ jsx(Eye, { className: "h-3.5 w-3.5" }),
|
|
6503
6561
|
"View"
|
|
@@ -6512,7 +6570,7 @@ function ShotBreakdownView({
|
|
|
6512
6570
|
e.stopPropagation();
|
|
6513
6571
|
setUpdatingShotId((_a2 = shot.id) != null ? _a2 : null);
|
|
6514
6572
|
},
|
|
6515
|
-
className: "flex flex-1 items-center justify-center gap-1.5 rounded-
|
|
6573
|
+
className: "flex flex-1 items-center justify-center gap-1.5 rounded-xl bg-gradient-to-b from-blumine-500 to-blumine-600 py-2 text-[11px] font-bold text-white transition-all hover:from-blumine-600 hover:to-blumine-700 shadow-md shadow-blumine-500/10 active:scale-[0.97]",
|
|
6516
6574
|
children: [
|
|
6517
6575
|
/* @__PURE__ */ jsx(Pencil, { className: "h-3.5 w-3.5" }),
|
|
6518
6576
|
"Edit"
|