@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 CHANGED
@@ -4317,12 +4317,12 @@ function ScriptBreakdownSceneView({
4317
4317
  ))
4318
4318
  }
4319
4319
  ),
4320
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative bg-[#fdfdfc] shadow-md shadow-zinc-300/60 border border-zinc-100 rounded-sm md:rounded-md flex flex-col w-[210mm] shrink-0 p-8 md:p-12 lg:p-16", children: [
4321
- /* @__PURE__ */ jsxRuntime.jsxs("h3", { className: "text-xs font-extrabold text-slate-800 uppercase tracking-[0.25em] mb-6 flex items-center gap-3 font-sans", children: [
4322
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex items-center justify-center w-8 h-8 rounded-full bg-slate-100/80 shadow-inner border border-slate-200/50", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlignLeft, { className: "w-3.5 h-3.5 text-slate-500" }) }),
4320
+ /* @__PURE__ */ jsxRuntime.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: [
4321
+ /* @__PURE__ */ jsxRuntime.jsxs("h3", { className: "text-xs font-bold text-blumine-800 uppercase tracking-widest mb-6 flex items-center gap-3 font-sans", children: [
4322
+ /* @__PURE__ */ jsxRuntime.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__ */ jsxRuntime.jsx(lucideReact.AlignLeft, { className: "w-4 h-4" }) }),
4323
4323
  "Scene Brief"
4324
4324
  ] }),
4325
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative bg-zinc-50/50 border border-zinc-200/60 rounded-xl p-4 md:p-6 shadow-inner focus-within:bg-white focus-within:border-zinc-300 focus-within:shadow-[0_8px_30px_rgb(0,0,0,0.04)] transition-all duration-300", children: [
4325
+ /* @__PURE__ */ jsxRuntime.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: [
4326
4326
  /* @__PURE__ */ jsxRuntime.jsx(
4327
4327
  "textarea",
4328
4328
  {
@@ -4340,7 +4340,7 @@ function ScriptBreakdownSceneView({
4340
4340
  {
4341
4341
  onClick: onUpdateBrief,
4342
4342
  disabled: !sceneBrief || sceneBrief.trim() === "",
4343
- className: "rounded-full bg-[#15607b] px-6 py-3 text-[13px] font-semibold tracking-wide text-white shadow-md transition-all hover:bg-[#134a61] hover:shadow-lg active:scale-95 disabled:bg-gray-200 disabled:cursor-not-allowed disabled:opacity-95 disabled:text-black disabled:shadow-none",
4343
+ 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",
4344
4344
  children: "Update"
4345
4345
  }
4346
4346
  ) })
@@ -4351,41 +4351,54 @@ function ScriptBreakdownSceneView({
4351
4351
  "button",
4352
4352
  {
4353
4353
  onClick: () => setIsSidebarOpen(true),
4354
- className: "fixed bottom-6 right-6 z-40 flex h-14 w-14 items-center justify-center rounded-full bg-[#15607b] text-white shadow-[0_8px_30px_rgba(21,96,123,0.3)] transition-transform hover:scale-105 active:scale-95 xl:hidden",
4354
+ 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",
4355
4355
  children: [
4356
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Tags, { className: "h-6 w-6" }),
4357
- tags.length > 0 && /* @__PURE__ */ jsxRuntime.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-sm border-2 border-white", children: tags.length })
4356
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Tags, { className: "h-5.5 w-5.5", strokeWidth: 2 }),
4357
+ tags.length > 0 && /* @__PURE__ */ jsxRuntime.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 })
4358
4358
  ]
4359
4359
  }
4360
4360
  ),
4361
4361
  isSidebarOpen && /* @__PURE__ */ jsxRuntime.jsx(
4362
4362
  "div",
4363
4363
  {
4364
- className: "fixed inset-0 z-40 bg-slate-900/20 backdrop-blur-sm transition-opacity xl:hidden",
4364
+ className: "fixed inset-0 z-40 bg-blumine-950/20 backdrop-blur-xs transition-all duration-300 xl:hidden",
4365
4365
  onClick: () => setIsSidebarOpen(false)
4366
4366
  }
4367
4367
  ),
4368
4368
  /* @__PURE__ */ jsxRuntime.jsx(
4369
4369
  "div",
4370
4370
  {
4371
- className: `fixed xl:absolute top-0 right-0 z-50 h-full w-72 transform transition-transform duration-300 ease-[cubic-bezier(0.22,1,0.36,1)] xl:translate-x-0 ${isSidebarOpen ? "translate-x-0 shadow-[0_0_40px_rgba(0,0,0,0.1)]" : "translate-x-full"}`,
4372
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "sticky top-0 flex h-[100dvh] max-h-screen w-full flex-col border-l border-l-[#eefafd] bg-white p-3 py-5", children: [
4373
- !aiSummarized && /* @__PURE__ */ jsxRuntime.jsx(
4371
+ 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"}`,
4372
+ children: /* @__PURE__ */ jsxRuntime.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: [
4373
+ !aiSummarized && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4 shrink-0 flex justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
4374
4374
  summarize_button_default,
4375
4375
  {
4376
4376
  isSummarizing,
4377
4377
  onSummarize
4378
4378
  }
4379
- ),
4380
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex flex-col gap-3 py-5 my-5 border-t border-t-[#eefafd] flex-1 overflow-hidden", children: [
4381
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex items-center justify-between mb-6 shrink-0", children: [
4379
+ ) }),
4380
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex flex-col gap-3 py-4 border-t border-blumine-100/40 flex-1 overflow-hidden", children: [
4381
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex items-center justify-between mb-4 shrink-0 px-1", children: [
4382
4382
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
4383
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative flex h-8 w-8 items-center justify-center rounded-[10px] border border-[#15607b]/20 bg-white shadow-sm", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Tags, { className: "h-4 w-4 text-[#15607b]" }) }),
4384
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-[12px] font-semibold uppercase tracking-[0.28em] text-[#134a61]", children: "Breakdown" })
4383
+ /* @__PURE__ */ jsxRuntime.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__ */ jsxRuntime.jsx(lucideReact.Tags, { className: "h-5 w-5 text-blumine-600", strokeWidth: 1.5 }) }),
4384
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
4385
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-[14px] font-bold uppercase tracking-wider text-blumine-800 leading-none", children: "Breakdown" }),
4386
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[11px] text-blumine-400 mt-1 font-medium", children: "Scene element tags" })
4387
+ ] })
4385
4388
  ] }),
4386
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded-full border border-slate-200/60 bg-slate-50 px-2.5 py-1 text-[11px] font-semibold text-[#134a61] shadow-sm backdrop-blur-md", children: tags.length }) })
4389
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
4390
+ /* @__PURE__ */ jsxRuntime.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 }),
4391
+ /* @__PURE__ */ jsxRuntime.jsx(
4392
+ "button",
4393
+ {
4394
+ onClick: () => setIsSidebarOpen(false),
4395
+ 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",
4396
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
4397
+ }
4398
+ )
4399
+ ] })
4387
4400
  ] }),
4388
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-4 overflow-y-auto overflow-x-hidden pb-4 pr-1 custom-scrollbar", children: CATEGORIES.map((cat) => {
4401
+ /* @__PURE__ */ jsxRuntime.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) => {
4389
4402
  const catTags = tags.filter((t) => t.category_id === cat.id);
4390
4403
  if (!catTags.length) return null;
4391
4404
  const isExpanded = expandedCategories[cat.id];
@@ -4396,114 +4409,145 @@ function ScriptBreakdownSceneView({
4396
4409
  );
4397
4410
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
4398
4411
  /* @__PURE__ */ jsxRuntime.jsxs(
4399
- "div",
4412
+ "button",
4400
4413
  {
4401
4414
  onClick: () => setExpandedCategories((prev) => ({
4402
4415
  [cat.id]: !prev[cat.id]
4403
4416
  })),
4404
- className: "group relative flex cursor-pointer items-center gap-3 overflow-hidden rounded-[24px] border border-white/70 px-4 py-3.5 transition-all duration-300 ease-[cubic-bezier(0.22,1,0.36,1)] hover:-translate-y-[1px]",
4417
+ 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",
4405
4418
  style: {
4406
- background: `linear-gradient(135deg, rgba(255,255,255,0.92), ${cat.hex}18)`,
4407
- boxShadow: `0 16px 36px ${cat.hex}14, inset 0 1px 0 rgba(255,255,255,0.9)`,
4408
- border: `1px solid ${cat.hex}50`
4419
+ borderColor: `${cat.color}25`,
4420
+ background: `linear-gradient(135deg, #ffffff, ${cat.color}08)`
4409
4421
  },
4410
4422
  children: [
4411
4423
  /* @__PURE__ */ jsxRuntime.jsx(
4412
4424
  "div",
4413
4425
  {
4414
- className: "absolute inset-0 opacity-0 transition-opacity duration-300 group-hover:opacity-100",
4426
+ className: "absolute inset-0 opacity-0 group-hover:opacity-100 transition-opacity duration-300 pointer-events-none",
4415
4427
  style: {
4416
- background: `radial-gradient(circle at 15% 20%, ${cat.hex}24, transparent 38%)`
4428
+ background: `radial-gradient(circle at 12% 50%, ${cat.color}15, transparent 40%)`
4417
4429
  }
4418
4430
  }
4419
4431
  ),
4420
4432
  /* @__PURE__ */ jsxRuntime.jsx(
4421
4433
  "div",
4422
4434
  {
4423
- className: "relative flex h-9 w-9 shrink-0 items-center justify-center rounded-xl border border-white/70 backdrop-blur-md",
4435
+ 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",
4424
4436
  style: {
4425
- background: `linear-gradient(135deg, ${cat.color}22, rgba(255,255,255,0.75))`,
4426
- boxShadow: `0 10px 22px ${cat.color}14`
4437
+ background: `linear-gradient(135deg, ${cat.color}12, ${cat.color}05)`,
4438
+ borderColor: `${cat.color}20`
4427
4439
  },
4428
- children: /* @__PURE__ */ jsxRuntime.jsx(cat.icon, { className: "h-4 w-4", color: cat.color })
4440
+ children: /* @__PURE__ */ jsxRuntime.jsx(cat.icon, { className: "h-4 w-4", style: { color: cat.color } })
4429
4441
  }
4430
4442
  ),
4431
4443
  /* @__PURE__ */ jsxRuntime.jsx(
4432
4444
  "span",
4433
4445
  {
4434
- className: "relative text-[13px] font-semibold tracking-[0.01em]",
4446
+ className: "relative text-xs font-bold tracking-wide transition-colors duration-200",
4435
4447
  style: { color: cat.color },
4436
4448
  children: cat.label
4437
4449
  }
4438
4450
  ),
4439
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "relative ml-auto rounded-full border border-white/70 bg-white/75 px-2.5 py-1 text-[11px] font-semibold text-[#456575] backdrop-blur-md", children: catTags.length }),
4440
- /* @__PURE__ */ jsxRuntime.jsx(
4441
- lucideReact.ChevronDown,
4442
- {
4443
- className: `relative h-4 w-4 transition-transform duration-500 ease-[cubic-bezier(0.22,1,0.36,1)] ${isExpanded ? "rotate-180" : ""}`,
4444
- style: { color: cat.color }
4445
- }
4446
- )
4451
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ml-auto flex items-center gap-1.5 relative", children: [
4452
+ /* @__PURE__ */ jsxRuntime.jsx(
4453
+ "span",
4454
+ {
4455
+ className: "rounded-full px-2 py-0.5 text-[10px] font-bold transition-all duration-200",
4456
+ style: {
4457
+ color: cat.color,
4458
+ backgroundColor: `${cat.color}10`,
4459
+ border: `1px solid ${cat.color}15`
4460
+ },
4461
+ children: catTags.length
4462
+ }
4463
+ ),
4464
+ /* @__PURE__ */ jsxRuntime.jsx(
4465
+ lucideReact.ChevronDown,
4466
+ {
4467
+ className: `h-3.5 w-3.5 transition-transform duration-300 ease-[cubic-bezier(0.2,0,0,1)] ${isExpanded ? "rotate-180" : ""}`,
4468
+ style: { color: cat.color },
4469
+ strokeWidth: 2.5
4470
+ }
4471
+ )
4472
+ ] })
4447
4473
  ]
4448
4474
  }
4449
4475
  ),
4450
4476
  /* @__PURE__ */ jsxRuntime.jsx(
4451
4477
  "div",
4452
4478
  {
4453
- className: `grid transition-all duration-500 ease-[cubic-bezier(0.22,1,0.36,1)] ${isExpanded ? "grid-rows-[1fr] opacity-100 mt-3" : "grid-rows-[0fr] opacity-0"}`,
4454
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap justify-start gap-2 py-2", children: uniqueTags.map((tag, index) => /* @__PURE__ */ jsxRuntime.jsx(
4479
+ 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"}`,
4480
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
4455
4481
  "div",
4456
4482
  {
4457
- className: "relative flex flex-col items-start",
4458
- children: /* @__PURE__ */ jsxRuntime.jsxs(
4459
- "span",
4483
+ className: "flex flex-wrap justify-start gap-2 py-2 pl-3 border-l ml-4",
4484
+ style: { borderColor: `${cat.color}18` },
4485
+ children: uniqueTags.map((tag, index) => /* @__PURE__ */ jsxRuntime.jsx(
4486
+ "div",
4460
4487
  {
4461
- title: tag.name,
4462
- onClick: (e) => {
4463
- e.stopPropagation();
4464
- if (cat.id !== "PROP" && cat.id !== "SET_PROP" && cat.id !== "CAST" && cat.id !== "EXTRA")
4465
- return;
4466
- if ((editingTagData == null ? void 0 : editingTagData.tag.id) === tag.id) {
4467
- setEditingTagData(null);
4468
- } else {
4469
- const rect = e.currentTarget.getBoundingClientRect();
4470
- setPopupPlacement({
4471
- alignRight: rect.left > window.innerWidth - 240,
4472
- alignBottom: rect.bottom > window.innerHeight - 250
4473
- });
4474
- setTagForm({
4475
- quantity: tag.quantity || 1,
4476
- look: tag.look || "",
4477
- age: tag.age || "",
4478
- age_range: tag.age_range || [],
4479
- crowd_type: tag.crowd_type || []
4480
- });
4481
- setEditingTagData({
4482
- tag,
4483
- catId: cat.id,
4484
- catColor: cat.color,
4485
- rect
4486
- });
4488
+ className: "relative flex flex-col items-start max-w-full",
4489
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
4490
+ "span",
4491
+ {
4492
+ title: tag.name,
4493
+ onClick: (e) => {
4494
+ e.stopPropagation();
4495
+ if (cat.id !== "PROP" && cat.id !== "SET_PROP" && cat.id !== "CAST" && cat.id !== "EXTRA")
4496
+ return;
4497
+ if ((editingTagData == null ? void 0 : editingTagData.tag.id) === tag.id) {
4498
+ setEditingTagData(null);
4499
+ } else {
4500
+ const rect = e.currentTarget.getBoundingClientRect();
4501
+ setPopupPlacement({
4502
+ alignRight: rect.left > window.innerWidth - 240,
4503
+ alignBottom: rect.bottom > window.innerHeight - 250
4504
+ });
4505
+ setTagForm({
4506
+ quantity: tag.quantity || 1,
4507
+ look: tag.look || "",
4508
+ age: tag.age || "",
4509
+ age_range: tag.age_range || [],
4510
+ crowd_type: tag.crowd_type || []
4511
+ });
4512
+ setEditingTagData({
4513
+ tag,
4514
+ catId: cat.id,
4515
+ catColor: cat.color,
4516
+ rect
4517
+ });
4518
+ }
4519
+ },
4520
+ 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"}`,
4521
+ style: {
4522
+ color: cat.color,
4523
+ background: `linear-gradient(135deg, ${cat.color}08, ${cat.color}03)`,
4524
+ borderColor: `${cat.color}18`
4525
+ },
4526
+ children: [
4527
+ tag.name,
4528
+ (cat.id === "PROP" || cat.id === "SET_PROP") && tag.quantity && tag.quantity > 1 ? /* @__PURE__ */ jsxRuntime.jsxs(
4529
+ "span",
4530
+ {
4531
+ className: "ml-1.5 font-extrabold px-1 py-0.5 rounded text-[9px] border inline-block",
4532
+ style: {
4533
+ color: cat.color,
4534
+ backgroundColor: `${cat.color}10`,
4535
+ borderColor: `${cat.color}15`
4536
+ },
4537
+ children: [
4538
+ "x",
4539
+ tag.quantity
4540
+ ]
4541
+ }
4542
+ ) : null
4543
+ ]
4487
4544
  }
4488
- },
4489
- className: `inline-block max-w-full truncate text-[11px] font-semibold px-3 py-1.5 rounded-full border backdrop-blur-md transition-all duration-300 cursor-pointer! ${cat.id === "PROP" || cat.id === "SET_PROP" || cat.id === "CAST" ? "cursor-pointer hover:scale-105 shadow-sm" : ""}`,
4490
- style: {
4491
- color: cat.color,
4492
- background: `linear-gradient(145deg, ${cat.color}18, rgba(255,255,255,0.88))`,
4493
- borderColor: `${cat.color}28`
4494
- },
4495
- children: [
4496
- tag.name,
4497
- (cat.id === "PROP" || cat.id === "SET_PROP") && tag.quantity && tag.quantity > 1 ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-1.5 opacity-80 font-bold", children: [
4498
- "x",
4499
- tag.quantity
4500
- ] }) : null
4501
- ]
4502
- }
4503
- )
4504
- },
4505
- index
4506
- )) }) })
4545
+ )
4546
+ },
4547
+ index
4548
+ ))
4549
+ }
4550
+ ) })
4507
4551
  }
4508
4552
  )
4509
4553
  ] }, cat.id);
@@ -4517,7 +4561,7 @@ function ScriptBreakdownSceneView({
4517
4561
  /* @__PURE__ */ jsxRuntime.jsx(
4518
4562
  "div",
4519
4563
  {
4520
- className: "fixed inset-0 z-[100]",
4564
+ className: "fixed inset-0 z-[100] bg-blumine-950/5 backdrop-blur-[1px]",
4521
4565
  onClick: (e) => {
4522
4566
  e.stopPropagation();
4523
4567
  setEditingTagData(null);
@@ -4527,7 +4571,7 @@ function ScriptBreakdownSceneView({
4527
4571
  /* @__PURE__ */ jsxRuntime.jsxs(
4528
4572
  "div",
4529
4573
  {
4530
- className: `p-3.5 bg-white/90 backdrop-blur-2xl rounded-[1.25rem] shadow-[0_10px_40px_rgb(0,0,0,0.12)] border border-white/60 z-[101] w-56 animate-in fade-in zoom-in-95 duration-200 ease-out fixed`,
4574
+ 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`,
4531
4575
  style: {
4532
4576
  top: popupPlacement.alignBottom ? "auto" : editingTagData.rect.bottom + 8,
4533
4577
  bottom: popupPlacement.alignBottom ? window.innerHeight - editingTagData.rect.top + 8 : "auto",
@@ -4536,19 +4580,19 @@ function ScriptBreakdownSceneView({
4536
4580
  },
4537
4581
  onClick: (e) => e.stopPropagation(),
4538
4582
  children: [
4539
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between items-center mb-3 border-b border-slate-100 pb-2.5", children: [
4540
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] font-extrabold text-slate-400 uppercase tracking-widest drop-shadow-sm", children: "Details" }),
4583
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between items-center mb-3 border-b border-blumine-100/30 pb-2.5", children: [
4584
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] font-extrabold text-blumine-400 uppercase tracking-widest drop-shadow-sm", children: "Details" }),
4541
4585
  /* @__PURE__ */ jsxRuntime.jsx(
4542
4586
  "button",
4543
4587
  {
4544
4588
  onClick: () => setEditingTagData(null),
4545
- className: "hover:bg-slate-100/80 p-1.5 rounded-full transition-colors active:scale-95",
4546
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "w-3.5 h-3.5 text-slate-500" })
4589
+ className: "hover:bg-blumine-100/40 p-1.5 rounded-full transition-colors active:scale-95 text-blumine-500",
4590
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "w-3.5 h-3.5" })
4547
4591
  }
4548
4592
  )
4549
4593
  ] }),
4550
4594
  (editingTagData.catId === "PROP" || editingTagData.catId === "SET_PROP") && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1.5", children: [
4551
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-[11px] font-bold text-slate-600 ml-1", children: "Quantity" }),
4595
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-[11px] font-bold text-blumine-700 ml-1", children: "Quantity" }),
4552
4596
  /* @__PURE__ */ jsxRuntime.jsx(
4553
4597
  "input",
4554
4598
  {
@@ -4561,13 +4605,13 @@ function ScriptBreakdownSceneView({
4561
4605
  quantity: val
4562
4606
  }));
4563
4607
  },
4564
- className: "w-full text-[13px] px-3 py-2 rounded-xl border border-slate-200/80 outline-none focus:border-[#15607b] focus:ring-2 focus:ring-[#15607b]/20 transition-all bg-slate-50/50 focus:bg-white font-semibold text-slate-700"
4608
+ 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"
4565
4609
  }
4566
4610
  )
4567
4611
  ] }),
4568
4612
  editingTagData.catId === "CAST" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-3", children: [
4569
4613
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1.5", children: [
4570
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-[11px] font-bold text-slate-600 ml-1", children: "Look" }),
4614
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-[11px] font-bold text-blumine-700 ml-1", children: "Look" }),
4571
4615
  /* @__PURE__ */ jsxRuntime.jsx(
4572
4616
  "input",
4573
4617
  {
@@ -4579,12 +4623,12 @@ function ScriptBreakdownSceneView({
4579
4623
  look: e.target.value
4580
4624
  }));
4581
4625
  },
4582
- className: "w-full text-[13px] px-3 py-2 rounded-xl border border-slate-200/80 outline-none focus:border-[#15607b] focus:ring-2 focus:ring-[#15607b]/20 transition-all bg-slate-50/50 focus:bg-white font-semibold text-slate-700 placeholder:text-slate-400 placeholder:font-normal"
4626
+ 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"
4583
4627
  }
4584
4628
  )
4585
4629
  ] }),
4586
4630
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1.5", children: [
4587
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-[11px] font-bold text-slate-600 ml-1", children: "Age" }),
4631
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-[11px] font-bold text-blumine-700 ml-1", children: "Age" }),
4588
4632
  /* @__PURE__ */ jsxRuntime.jsx(
4589
4633
  "input",
4590
4634
  {
@@ -4605,7 +4649,7 @@ function ScriptBreakdownSceneView({
4605
4649
  age: val.toString()
4606
4650
  }));
4607
4651
  },
4608
- className: "w-full text-[13px] px-3 py-2 rounded-xl border border-slate-200/80 outline-none focus:border-[#15607b] focus:ring-2 focus:ring-[#15607b]/20 transition-all bg-slate-50/50 focus:bg-white font-semibold text-slate-700"
4652
+ 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"
4609
4653
  }
4610
4654
  )
4611
4655
  ] })
@@ -4645,7 +4689,7 @@ function ScriptBreakdownSceneView({
4645
4689
  }
4646
4690
  setEditingTagData(null);
4647
4691
  },
4648
- className: "w-full bg-[#15607b] hover:bg-[#134a61] text-white text-[12px] font-bold py-2.5 rounded-xl transition-all shadow-[0_4px_12px_rgba(21,96,123,0.2)] hover:shadow-[0_6px_16px_rgba(21,96,123,0.3)] active:scale-[0.98]",
4692
+ 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]",
4649
4693
  children: "Update Details"
4650
4694
  }
4651
4695
  ) })
@@ -4728,72 +4772,80 @@ function useScriptBreakdownScene(options) {
4728
4772
  }, [blocks]);
4729
4773
  const handleAISummarize = async () => {
4730
4774
  var _a;
4775
+ if (!scene || !scene.content) {
4776
+ console.error("Cannot summarize scene: Scene data is not loaded yet.");
4777
+ return;
4778
+ }
4731
4779
  setIsSummarizing(true);
4732
- const res = await ((_a = options.onAISummarize) == null ? void 0 : _a.call(options, scene.content));
4733
- if (res.ok) {
4734
- const data = await res.json();
4735
- setIsSummarizing(false);
4736
- let parsedData = [];
4737
- let parsedSummaryData = {};
4738
- try {
4739
- const normalData = JSON.parse(data.data);
4740
- if (Array.isArray(normalData)) {
4741
- parsedData = Array.isArray(normalData[0]) ? normalData[0] : [];
4742
- const summary = Array.isArray(normalData[1]) ? normalData[1] : [];
4743
- parsedSummaryData = summary[0] || {};
4744
- }
4745
- } catch (error2) {
4746
- console.error("Error parsing AI summary data:", error2);
4747
- }
4748
- setSceneBrief(parsedSummaryData.summarise || "");
4749
- const newTags = [];
4750
- parsedData.forEach((aiTag) => {
4751
- if (!aiTag.block_id || !aiTag.category_id || typeof aiTag.start_index !== "number" || typeof aiTag.end_index !== "number") {
4752
- return;
4753
- }
4754
- const newTag = {
4755
- id: aiTag.id || uuid(),
4756
- block_id: String(aiTag.block_id).startsWith("par") ? String(aiTag.block_id).substring(3) : String(aiTag.block_id),
4757
- category_id: aiTag.category_id,
4758
- name: aiTag.name,
4759
- start_index: aiTag.start_index,
4760
- end_index: aiTag.end_index
4761
- };
4762
- if (aiTag.category_id === "PROP" || aiTag.category_id === "SET_PROP") {
4763
- newTag.quantity = 1;
4764
- } else if (aiTag.category_id === "CAST") {
4765
- newTag.look = "";
4766
- newTag.age = "";
4767
- }
4768
- newTags.push(newTag);
4769
- });
4770
- if (newTags.length > 0) {
4771
- const originalTags = tags;
4772
- setTags((prev) => {
4773
- const merged = [...prev];
4774
- newTags.forEach((newTag) => {
4775
- const isOverlapping = merged.some(
4776
- (t) => t.block_id === newTag.block_id && newTag.end_index > t.start_index && newTag.start_index < t.end_index
4777
- );
4778
- if (!isOverlapping) {
4779
- merged.push(newTag);
4780
- }
4781
- });
4782
- return merged;
4783
- });
4780
+ try {
4781
+ const res = await ((_a = options.onAISummarize) == null ? void 0 : _a.call(options, scene.content));
4782
+ if (res && res.ok) {
4783
+ const data = await res.json();
4784
+ let parsedData = [];
4785
+ let parsedSummaryData = {};
4784
4786
  try {
4785
- if (options.onTagsBulkAdded) {
4786
- await options.onTagsBulkAdded(newTags, parsedSummaryData.summarise);
4787
+ const normalData = JSON.parse(data.data);
4788
+ if (Array.isArray(normalData)) {
4789
+ parsedData = Array.isArray(normalData[0]) ? normalData[0] : [];
4790
+ const summary = Array.isArray(normalData[1]) ? normalData[1] : [];
4791
+ parsedSummaryData = summary[0] || {};
4787
4792
  }
4788
4793
  } catch (error2) {
4789
- console.error("Failed to bulk add AI-generated tags:", error2);
4790
- setTags(originalTags);
4794
+ console.error("Error parsing AI summary data:", error2);
4791
4795
  }
4796
+ setSceneBrief(parsedSummaryData.summarise || "");
4797
+ const newTags = [];
4798
+ parsedData.forEach((aiTag) => {
4799
+ if (!aiTag.block_id || !aiTag.category_id || typeof aiTag.start_index !== "number" || typeof aiTag.end_index !== "number") {
4800
+ return;
4801
+ }
4802
+ const newTag = {
4803
+ id: aiTag.id || uuid(),
4804
+ block_id: String(aiTag.block_id).startsWith("par") ? String(aiTag.block_id).substring(3) : String(aiTag.block_id),
4805
+ category_id: aiTag.category_id,
4806
+ name: aiTag.name,
4807
+ start_index: aiTag.start_index,
4808
+ end_index: aiTag.end_index
4809
+ };
4810
+ if (aiTag.category_id === "PROP" || aiTag.category_id === "SET_PROP") {
4811
+ newTag.quantity = 1;
4812
+ } else if (aiTag.category_id === "CAST") {
4813
+ newTag.look = "";
4814
+ newTag.age = "";
4815
+ }
4816
+ newTags.push(newTag);
4817
+ });
4818
+ if (newTags.length > 0) {
4819
+ const originalTags = tags;
4820
+ setTags((prev) => {
4821
+ const merged = [...prev];
4822
+ newTags.forEach((newTag) => {
4823
+ const isOverlapping = merged.some(
4824
+ (t) => t.block_id === newTag.block_id && newTag.end_index > t.start_index && newTag.start_index < t.end_index
4825
+ );
4826
+ if (!isOverlapping) {
4827
+ merged.push(newTag);
4828
+ }
4829
+ });
4830
+ return merged;
4831
+ });
4832
+ try {
4833
+ if (options.onTagsBulkAdded) {
4834
+ await options.onTagsBulkAdded(newTags, parsedSummaryData.summarise);
4835
+ }
4836
+ } catch (error2) {
4837
+ console.error("Failed to bulk add AI-generated tags:", error2);
4838
+ setTags(originalTags);
4839
+ }
4840
+ }
4841
+ return data;
4842
+ } else {
4843
+ console.error("Failed to summarize scene:", res);
4792
4844
  }
4793
- return data;
4794
- } else {
4845
+ } catch (error2) {
4846
+ console.error("An error occurred during scene summarization:", error2);
4847
+ } finally {
4795
4848
  setIsSummarizing(false);
4796
- console.error("Failed to summarize scene:", res);
4797
4849
  }
4798
4850
  };
4799
4851
  const bulkCreateTags = React4.useCallback(async () => {
@@ -6414,39 +6466,39 @@ function ShotBreakdownView({
6414
6466
  "button",
6415
6467
  {
6416
6468
  onClick: () => setIsSidebarOpen(true),
6417
- className: "fixed bottom-6 right-6 z-40 flex h-14 w-14 items-center justify-center rounded-full bg-[#15607b] text-white shadow-[0_8px_30px_rgba(21,96,123,0.3)] transition-transform hover:scale-105 active:scale-95 xl:hidden",
6469
+ 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",
6418
6470
  children: [
6419
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Video, { className: "h-6 w-6" }),
6420
- shots.length > 0 && /* @__PURE__ */ jsxRuntime.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-sm border-2 border-white", children: shots.length })
6471
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Video, { className: "h-5.5 w-5.5", strokeWidth: 2 }),
6472
+ shots.length > 0 && /* @__PURE__ */ jsxRuntime.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 })
6421
6473
  ]
6422
6474
  }
6423
6475
  ),
6424
6476
  isSidebarOpen && /* @__PURE__ */ jsxRuntime.jsx(
6425
6477
  "div",
6426
6478
  {
6427
- className: "fixed inset-0 z-40 bg-slate-900/20 backdrop-blur-sm transition-opacity xl:hidden",
6479
+ className: "fixed inset-0 z-40 bg-blumine-950/20 backdrop-blur-xs transition-all duration-300 xl:hidden",
6428
6480
  onClick: () => setIsSidebarOpen(false)
6429
6481
  }
6430
6482
  ),
6431
6483
  /* @__PURE__ */ jsxRuntime.jsx(
6432
6484
  "div",
6433
6485
  {
6434
- className: `fixed xl:absolute top-0 right-0 z-50 h-full w-72 transform transition-transform duration-300 ease-[cubic-bezier(0.22,1,0.36,1)] xl:translate-x-0 ${isSidebarOpen ? "translate-x-0 shadow-[0_0_40px_rgba(0,0,0,0.1)]" : "translate-x-full"}`,
6435
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "sticky top-0 flex h-[100dvh] max-h-screen w-full flex-col border-l border-l-[#eefafd] bg-white p-3 py-5", children: [
6436
- !aiSummarized && /* @__PURE__ */ jsxRuntime.jsx(
6486
+ 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"}`,
6487
+ children: /* @__PURE__ */ jsxRuntime.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: [
6488
+ !aiSummarized && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4 shrink-0 flex justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
6437
6489
  summarize_button_default,
6438
6490
  {
6439
6491
  onSummarize: handleAISummarize,
6440
6492
  isSummarizing
6441
6493
  }
6442
- ),
6443
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex flex-col gap-3 py-5 my-5 border-t border-t-[#eefafd] flex-1 overflow-hidden", children: [
6444
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex items-center justify-between mb-6 shrink-0 px-1", children: [
6494
+ ) }),
6495
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex flex-col gap-3 py-4 border-t border-blumine-100/40 flex-1 overflow-hidden", children: [
6496
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex items-center justify-between mb-4 shrink-0 px-1", children: [
6445
6497
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
6446
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative flex h-8 w-8 items-center justify-center rounded-[10px] border border-[#15607b]/20 bg-white shadow-sm", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Video, { className: "h-4 w-4 text-[#15607b]" }) }),
6498
+ /* @__PURE__ */ jsxRuntime.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__ */ jsxRuntime.jsx(lucideReact.Video, { className: "h-5 w-5 text-blumine-600", strokeWidth: 1.5 }) }),
6447
6499
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", children: [
6448
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-[12px] font-semibold uppercase tracking-[0.28em] text-[#134a61]", children: "Shots" }),
6449
- sceneType && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[9px] font-bold text-[#15607b] uppercase tracking-tighter opacity-80 mt-0.5", children: sceneType })
6500
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-[14px] font-bold uppercase tracking-wider text-blumine-800 leading-none", children: "Shots" }),
6501
+ sceneType && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[9px] font-bold text-blumine-500 uppercase tracking-wide opacity-80 mt-1", children: sceneType })
6450
6502
  ] })
6451
6503
  ] }),
6452
6504
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
@@ -6454,19 +6506,27 @@ function ShotBreakdownView({
6454
6506
  "button",
6455
6507
  {
6456
6508
  onClick: () => setIsInitModalOpen(true),
6457
- className: "flex h-7 w-7 items-center justify-center rounded-md border border-slate-200 bg-white shadow-sm transition-colors hover:bg-slate-50",
6509
+ 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",
6458
6510
  title: "Project Setup",
6459
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Settings2, { className: "h-3.5 w-3.5 text-slate-600" })
6511
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Settings2, { className: "h-4 w-4", strokeWidth: 1.5 })
6460
6512
  }
6461
6513
  ),
6462
- shots.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded-md border border-slate-200 bg-white px-2 py-0.5 text-[10px] font-semibold text-slate-600 shadow-sm", children: shots.length })
6514
+ shots.length > 0 && /* @__PURE__ */ jsxRuntime.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 }),
6515
+ /* @__PURE__ */ jsxRuntime.jsx(
6516
+ "button",
6517
+ {
6518
+ onClick: () => setIsSidebarOpen(false),
6519
+ 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",
6520
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
6521
+ }
6522
+ )
6463
6523
  ] })
6464
6524
  ] }),
6465
- shots.length === 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center justify-center py-10 px-4 text-center", children: [
6466
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-full bg-slate-50 border border-slate-100 mb-3", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Video, { className: "h-4 w-4 text-slate-300" }) }),
6467
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-semibold text-slate-700", children: "No shots created" }),
6468
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[11px] text-slate-500 mt-1 max-w-[160px] leading-relaxed", children: "Highlight text in the screenplay to add your first shot." })
6469
- ] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-full max-h-[calc(100vh-200px)] flex-col gap-2.5 overflow-y-auto overflow-x-hidden pb-4 pr-2 custom-scrollbar", children: shots.map((shot) => {
6525
+ shots.length === 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center justify-center py-12 px-4 text-center", children: [
6526
+ /* @__PURE__ */ jsxRuntime.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__ */ jsxRuntime.jsx(lucideReact.Video, { className: "h-5 w-5 text-blumine-400", strokeWidth: 1.5 }) }),
6527
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-bold text-blumine-800 tracking-wide", children: "No Shots Created Yet" }),
6528
+ /* @__PURE__ */ jsxRuntime.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." })
6529
+ ] }) : /* @__PURE__ */ jsxRuntime.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) => {
6470
6530
  const isActive = toggledShotId === shot.id;
6471
6531
  return /* @__PURE__ */ jsxRuntime.jsxs(
6472
6532
  "div",
@@ -6475,48 +6535,46 @@ function ShotBreakdownView({
6475
6535
  var _a2;
6476
6536
  return setToggledShotId(isActive ? null : (_a2 = shot.id) != null ? _a2 : null);
6477
6537
  },
6478
- className: `group relative flex-shrink-0 cursor-pointer rounded-xl border transition-all duration-300 overflow-hidden ${isActive ? "border-slate-900 bg-slate-50 shadow-[0_6px_20px_rgba(0,0,0,0.06)]" : "border-slate-200 bg-white hover:border-slate-300 hover:shadow-[0_4px_14px_rgba(0,0,0,0.05)]"}`,
6538
+ 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)]"}`,
6479
6539
  children: [
6480
6540
  /* @__PURE__ */ jsxRuntime.jsx(
6481
6541
  "div",
6482
6542
  {
6483
- className: `absolute left-0 top-0 h-full w-[3px] transition-all duration-300
6484
- ${isActive ? "bg-slate-900" : "bg-transparent group-hover:bg-slate-300"}`
6543
+ 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"}`
6485
6544
  }
6486
6545
  ),
6487
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2 px-4 py-3.5", children: [
6546
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2.5 px-4 py-3.5", children: [
6488
6547
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start justify-between", children: [
6489
6548
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", children: [
6490
6549
  /* @__PURE__ */ jsxRuntime.jsxs(
6491
6550
  "span",
6492
6551
  {
6493
- className: `text-[11px] font-semibold tracking-wide uppercase
6494
- ${isActive ? "text-slate-900" : "text-slate-500"}`,
6552
+ className: `text-[10px] font-bold tracking-wider uppercase ${isActive ? "text-blumine-500" : "text-blumine-400"}`,
6495
6553
  children: [
6496
6554
  "Shot ",
6497
6555
  shot.shot_number
6498
6556
  ]
6499
6557
  }
6500
6558
  ),
6501
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-semibold text-slate-800 leading-tight", children: shot.camera_name || "Unknown Camera" })
6559
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-extrabold text-blumine-800 leading-tight mt-1", children: shot.camera_name || "Unknown Camera" })
6502
6560
  ] }),
6503
6561
  /* @__PURE__ */ jsxRuntime.jsx(
6504
6562
  "span",
6505
6563
  {
6506
- className: `rounded-md px-2 py-0.5 text-[8px] font-bold uppercase tracking-wider ${isActive ? "bg-slate-900 text-white" : "bg-slate-100 text-slate-500 group-hover:bg-slate-200"}`,
6564
+ 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"}`,
6507
6565
  children: shot.shot_type
6508
6566
  }
6509
6567
  )
6510
6568
  ] }),
6511
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between text-[11px] text-slate-500", children: [
6569
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between text-[11px] font-medium text-blumine-400", children: [
6512
6570
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: shot.lens_mm ? `${shot.lens_mm}mm Lens` : "\u2014" }),
6513
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "opacity-60", children: "Tap to expand" })
6571
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] font-bold text-blumine-300 opacity-0 group-hover:opacity-100 transition-opacity duration-200", children: "Tap to expand" })
6514
6572
  ] }),
6515
6573
  /* @__PURE__ */ jsxRuntime.jsx(
6516
6574
  "div",
6517
6575
  {
6518
- className: `grid transition-all duration-300 ease-in-out ${isActive ? "grid-rows-[1fr] opacity-100 mt-2" : "grid-rows-[0fr] opacity-0"}`,
6519
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "py-3 pb-1 border-t border-slate-200/70 flex gap-2", children: [
6576
+ className: `grid transition-all duration-300 ease-in-out ${isActive ? "grid-rows-[1fr] opacity-100 mt-1" : "grid-rows-[0fr] opacity-0"}`,
6577
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "pt-3 pb-1 border-t border-blumine-100/50 flex gap-2", children: [
6520
6578
  /* @__PURE__ */ jsxRuntime.jsxs(
6521
6579
  "button",
6522
6580
  {
@@ -6525,7 +6583,7 @@ function ShotBreakdownView({
6525
6583
  e.stopPropagation();
6526
6584
  setViewingShotId((_a2 = shot.id) != null ? _a2 : null);
6527
6585
  },
6528
- className: "flex flex-1 items-center justify-center gap-1.5 rounded-md border border-slate-200 bg-white py-2 text-[11px] font-semibold text-slate-700 transition-all hover:bg-slate-50 hover:text-slate-900",
6586
+ 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]",
6529
6587
  children: [
6530
6588
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Eye, { className: "h-3.5 w-3.5" }),
6531
6589
  "View"
@@ -6540,7 +6598,7 @@ function ShotBreakdownView({
6540
6598
  e.stopPropagation();
6541
6599
  setUpdatingShotId((_a2 = shot.id) != null ? _a2 : null);
6542
6600
  },
6543
- className: "flex flex-1 items-center justify-center gap-1.5 rounded-md bg-slate-900 py-2 text-[11px] font-semibold text-white transition-all hover:bg-slate-800",
6601
+ 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]",
6544
6602
  children: [
6545
6603
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Pencil, { className: "h-3.5 w-3.5" }),
6546
6604
  "Edit"