@qwanyx/carousel 0.1.8 → 0.1.9
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.d.mts +503 -4
- package/dist/index.d.ts +503 -4
- package/dist/index.js +95 -95
- package/dist/index.mjs +95 -95
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -2063,15 +2063,15 @@ function LayerItemRow({
|
|
|
2063
2063
|
"div",
|
|
2064
2064
|
{
|
|
2065
2065
|
className: `
|
|
2066
|
-
flex items-center h-8 px-2 cursor-pointer select-none
|
|
2067
|
-
${isSelected ? "bg-
|
|
2066
|
+
flex items-center h-8 px-2 cursor-pointer select-none group
|
|
2067
|
+
${isSelected ? "bg-[#4a6fa5]/40" : "hover:bg-[#3a3a3a]"}
|
|
2068
2068
|
${!layer.visible ? "opacity-50" : ""}
|
|
2069
2069
|
`,
|
|
2070
2070
|
style: { paddingLeft: `${depth * 16 + 8}px` },
|
|
2071
2071
|
onClick: (e) => onSelect(layer.id, e.shiftKey || e.ctrlKey || e.metaKey),
|
|
2072
2072
|
onDoubleClick: handleDoubleClick,
|
|
2073
2073
|
children: [
|
|
2074
|
-
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "material-icons text-neutral-
|
|
2074
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "material-icons text-neutral-500 mr-2", style: { fontSize: 16 }, children: getObjectIcon() }),
|
|
2075
2075
|
isEditing ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
2076
2076
|
"input",
|
|
2077
2077
|
{
|
|
@@ -2081,10 +2081,10 @@ function LayerItemRow({
|
|
|
2081
2081
|
onChange: (e) => setEditName(e.target.value),
|
|
2082
2082
|
onBlur: handleNameSubmit,
|
|
2083
2083
|
onKeyDown: handleKeyDown,
|
|
2084
|
-
className: "flex-1 px-1 text-sm bg-
|
|
2084
|
+
className: "flex-1 px-1 text-sm bg-[#1a1a1a] text-neutral-200 border border-blue-500 rounded outline-none",
|
|
2085
2085
|
onClick: (e) => e.stopPropagation()
|
|
2086
2086
|
}
|
|
2087
|
-
) : /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "flex-1 text-sm text-neutral-
|
|
2087
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "flex-1 text-sm text-neutral-300 truncate", children: layer.name }),
|
|
2088
2088
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity", children: [
|
|
2089
2089
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
2090
2090
|
"button",
|
|
@@ -2093,9 +2093,9 @@ function LayerItemRow({
|
|
|
2093
2093
|
e.stopPropagation();
|
|
2094
2094
|
onToggleVisibility(layer.id);
|
|
2095
2095
|
},
|
|
2096
|
-
className: "p-0.5 hover:bg-
|
|
2096
|
+
className: "p-0.5 hover:bg-[#4a4a4a] rounded",
|
|
2097
2097
|
title: layer.visible ? "Hide" : "Show",
|
|
2098
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "material-icons text-neutral-
|
|
2098
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "material-icons text-neutral-500", style: { fontSize: 14 }, children: layer.visible ? "visibility" : "visibility_off" })
|
|
2099
2099
|
}
|
|
2100
2100
|
),
|
|
2101
2101
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
@@ -2105,9 +2105,9 @@ function LayerItemRow({
|
|
|
2105
2105
|
e.stopPropagation();
|
|
2106
2106
|
onToggleLock(layer.id);
|
|
2107
2107
|
},
|
|
2108
|
-
className: "p-0.5 hover:bg-
|
|
2108
|
+
className: "p-0.5 hover:bg-[#4a4a4a] rounded",
|
|
2109
2109
|
title: layer.locked ? "Unlock" : "Lock",
|
|
2110
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "material-icons text-neutral-
|
|
2110
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "material-icons text-neutral-500", style: { fontSize: 14 }, children: layer.locked ? "lock" : "lock_open" })
|
|
2111
2111
|
}
|
|
2112
2112
|
),
|
|
2113
2113
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
@@ -2117,9 +2117,9 @@ function LayerItemRow({
|
|
|
2117
2117
|
e.stopPropagation();
|
|
2118
2118
|
onDelete(layer.id);
|
|
2119
2119
|
},
|
|
2120
|
-
className: "p-0.5 hover:bg-red-
|
|
2120
|
+
className: "p-0.5 hover:bg-red-900/50 rounded",
|
|
2121
2121
|
title: "Delete",
|
|
2122
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "material-icons text-neutral-
|
|
2122
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "material-icons text-neutral-500 hover:text-red-400", style: { fontSize: 14 }, children: "delete" })
|
|
2123
2123
|
}
|
|
2124
2124
|
)
|
|
2125
2125
|
] })
|
|
@@ -2180,7 +2180,7 @@ function LayerFolderRow({
|
|
|
2180
2180
|
{
|
|
2181
2181
|
className: `
|
|
2182
2182
|
flex items-center h-8 px-2 cursor-pointer select-none
|
|
2183
|
-
${isSelected ? "bg-
|
|
2183
|
+
${isSelected ? "bg-[#4a6fa5]/40" : "hover:bg-[#3a3a3a]"}
|
|
2184
2184
|
${!folder.visible ? "opacity-50" : ""}
|
|
2185
2185
|
`,
|
|
2186
2186
|
style: { paddingLeft: `${depth * 16 + 8}px` },
|
|
@@ -2194,11 +2194,11 @@ function LayerFolderRow({
|
|
|
2194
2194
|
e.stopPropagation();
|
|
2195
2195
|
onToggleCollapsed(folder.id);
|
|
2196
2196
|
},
|
|
2197
|
-
className: "p-0.5 hover:bg-
|
|
2197
|
+
className: "p-0.5 hover:bg-[#4a4a4a] rounded mr-1",
|
|
2198
2198
|
children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
2199
2199
|
"span",
|
|
2200
2200
|
{
|
|
2201
|
-
className: "material-icons text-neutral-
|
|
2201
|
+
className: "material-icons text-neutral-500 transition-transform",
|
|
2202
2202
|
style: {
|
|
2203
2203
|
fontSize: 14,
|
|
2204
2204
|
transform: folder.collapsed ? "rotate(-90deg)" : "rotate(0deg)"
|
|
@@ -2218,11 +2218,11 @@ function LayerFolderRow({
|
|
|
2218
2218
|
onChange: (e) => setEditName(e.target.value),
|
|
2219
2219
|
onBlur: handleNameSubmit,
|
|
2220
2220
|
onKeyDown: handleKeyDown,
|
|
2221
|
-
className: "flex-1 px-1 text-sm bg-
|
|
2221
|
+
className: "flex-1 px-1 text-sm bg-[#1a1a1a] text-neutral-200 border border-blue-500 rounded outline-none",
|
|
2222
2222
|
onClick: (e) => e.stopPropagation()
|
|
2223
2223
|
}
|
|
2224
|
-
) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "flex-1 text-sm font-medium text-neutral-
|
|
2225
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("span", { className: "text-xs text-neutral-
|
|
2224
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "flex-1 text-sm font-medium text-neutral-200 truncate", children: folder.name }),
|
|
2225
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("span", { className: "text-xs text-neutral-500 mr-2", children: [
|
|
2226
2226
|
"(",
|
|
2227
2227
|
folder.children.length,
|
|
2228
2228
|
")"
|
|
@@ -2235,9 +2235,9 @@ function LayerFolderRow({
|
|
|
2235
2235
|
e.stopPropagation();
|
|
2236
2236
|
onToggleVisibility(folder.id);
|
|
2237
2237
|
},
|
|
2238
|
-
className: "p-0.5 hover:bg-
|
|
2238
|
+
className: "p-0.5 hover:bg-[#4a4a4a] rounded",
|
|
2239
2239
|
title: folder.visible ? "Hide" : "Show",
|
|
2240
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "material-icons text-neutral-
|
|
2240
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "material-icons text-neutral-500", style: { fontSize: 14 }, children: folder.visible ? "visibility" : "visibility_off" })
|
|
2241
2241
|
}
|
|
2242
2242
|
),
|
|
2243
2243
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
@@ -2247,9 +2247,9 @@ function LayerFolderRow({
|
|
|
2247
2247
|
e.stopPropagation();
|
|
2248
2248
|
onToggleLock(folder.id);
|
|
2249
2249
|
},
|
|
2250
|
-
className: "p-0.5 hover:bg-
|
|
2250
|
+
className: "p-0.5 hover:bg-[#4a4a4a] rounded",
|
|
2251
2251
|
title: folder.locked ? "Unlock" : "Lock",
|
|
2252
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "material-icons text-neutral-
|
|
2252
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "material-icons text-neutral-500", style: { fontSize: 14 }, children: folder.locked ? "lock" : "lock_open" })
|
|
2253
2253
|
}
|
|
2254
2254
|
),
|
|
2255
2255
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
@@ -2259,9 +2259,9 @@ function LayerFolderRow({
|
|
|
2259
2259
|
e.stopPropagation();
|
|
2260
2260
|
onDelete(folder.id);
|
|
2261
2261
|
},
|
|
2262
|
-
className: "p-0.5 hover:bg-red-
|
|
2262
|
+
className: "p-0.5 hover:bg-red-900/50 rounded",
|
|
2263
2263
|
title: "Delete folder",
|
|
2264
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "material-icons text-neutral-
|
|
2264
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "material-icons text-neutral-500 hover:text-red-400", style: { fontSize: 14 }, children: "delete" })
|
|
2265
2265
|
}
|
|
2266
2266
|
)
|
|
2267
2267
|
] })
|
|
@@ -2321,17 +2321,17 @@ function LayerPanel({
|
|
|
2321
2321
|
layer.id
|
|
2322
2322
|
);
|
|
2323
2323
|
};
|
|
2324
|
-
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex flex-col h-full bg-
|
|
2325
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex items-center justify-between px-3 py-2 border-b border-
|
|
2326
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("h3", { className: "text-sm font-semibold text-neutral-
|
|
2324
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex flex-col h-full bg-[#232323] border-r border-[#3a3a3a]", children: [
|
|
2325
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex items-center justify-between px-3 py-2 border-b border-[#3a3a3a]", children: [
|
|
2326
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("h3", { className: "text-sm font-semibold text-neutral-300", children: "Layers" }),
|
|
2327
2327
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "relative", children: [
|
|
2328
2328
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
2329
2329
|
"button",
|
|
2330
2330
|
{
|
|
2331
2331
|
onClick: () => setShowAddMenu(!showAddMenu),
|
|
2332
|
-
className: "p-1 hover:bg-
|
|
2332
|
+
className: "p-1 hover:bg-[#3a3a3a] rounded",
|
|
2333
2333
|
title: "Add layer",
|
|
2334
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "material-icons text-neutral-
|
|
2334
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "material-icons text-neutral-400", style: { fontSize: 18 }, children: "add" })
|
|
2335
2335
|
}
|
|
2336
2336
|
),
|
|
2337
2337
|
showAddMenu && /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
@@ -2342,7 +2342,7 @@ function LayerPanel({
|
|
|
2342
2342
|
onClick: () => setShowAddMenu(false)
|
|
2343
2343
|
}
|
|
2344
2344
|
),
|
|
2345
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "absolute right-0 top-full mt-1 bg-
|
|
2345
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "absolute right-0 top-full mt-1 bg-[#2a2a2a] rounded-lg shadow-lg border border-[#3a3a3a] py-1 z-20 min-w-[140px]", children: [
|
|
2346
2346
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
2347
2347
|
"button",
|
|
2348
2348
|
{
|
|
@@ -2350,14 +2350,14 @@ function LayerPanel({
|
|
|
2350
2350
|
onAddFolder();
|
|
2351
2351
|
setShowAddMenu(false);
|
|
2352
2352
|
},
|
|
2353
|
-
className: "w-full px-3 py-1.5 text-left text-sm hover:bg-
|
|
2353
|
+
className: "w-full px-3 py-1.5 text-left text-sm text-neutral-300 hover:bg-[#3a3a3a] flex items-center gap-2",
|
|
2354
2354
|
children: [
|
|
2355
2355
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "material-icons text-amber-500", style: { fontSize: 16 }, children: "create_new_folder" }),
|
|
2356
2356
|
"New Folder"
|
|
2357
2357
|
]
|
|
2358
2358
|
}
|
|
2359
2359
|
),
|
|
2360
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "h-px bg-
|
|
2360
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "h-px bg-[#3a3a3a] my-1" }),
|
|
2361
2361
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
2362
2362
|
"button",
|
|
2363
2363
|
{
|
|
@@ -2365,9 +2365,9 @@ function LayerPanel({
|
|
|
2365
2365
|
onAddItem("image");
|
|
2366
2366
|
setShowAddMenu(false);
|
|
2367
2367
|
},
|
|
2368
|
-
className: "w-full px-3 py-1.5 text-left text-sm hover:bg-
|
|
2368
|
+
className: "w-full px-3 py-1.5 text-left text-sm text-neutral-300 hover:bg-[#3a3a3a] flex items-center gap-2",
|
|
2369
2369
|
children: [
|
|
2370
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "material-icons text-blue-
|
|
2370
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "material-icons text-blue-400", style: { fontSize: 16 }, children: "image" }),
|
|
2371
2371
|
"Image"
|
|
2372
2372
|
]
|
|
2373
2373
|
}
|
|
@@ -2379,9 +2379,9 @@ function LayerPanel({
|
|
|
2379
2379
|
onAddItem("text");
|
|
2380
2380
|
setShowAddMenu(false);
|
|
2381
2381
|
},
|
|
2382
|
-
className: "w-full px-3 py-1.5 text-left text-sm hover:bg-
|
|
2382
|
+
className: "w-full px-3 py-1.5 text-left text-sm text-neutral-300 hover:bg-[#3a3a3a] flex items-center gap-2",
|
|
2383
2383
|
children: [
|
|
2384
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "material-icons text-green-
|
|
2384
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "material-icons text-green-400", style: { fontSize: 16 }, children: "text_fields" }),
|
|
2385
2385
|
"Text"
|
|
2386
2386
|
]
|
|
2387
2387
|
}
|
|
@@ -2393,9 +2393,9 @@ function LayerPanel({
|
|
|
2393
2393
|
onAddItem("shape");
|
|
2394
2394
|
setShowAddMenu(false);
|
|
2395
2395
|
},
|
|
2396
|
-
className: "w-full px-3 py-1.5 text-left text-sm hover:bg-
|
|
2396
|
+
className: "w-full px-3 py-1.5 text-left text-sm text-neutral-300 hover:bg-[#3a3a3a] flex items-center gap-2",
|
|
2397
2397
|
children: [
|
|
2398
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "material-icons text-purple-
|
|
2398
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "material-icons text-purple-400", style: { fontSize: 16 }, children: "category" }),
|
|
2399
2399
|
"Shape"
|
|
2400
2400
|
]
|
|
2401
2401
|
}
|
|
@@ -2404,12 +2404,12 @@ function LayerPanel({
|
|
|
2404
2404
|
] })
|
|
2405
2405
|
] })
|
|
2406
2406
|
] }),
|
|
2407
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "flex-1 overflow-y-auto", children: layers.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex flex-col items-center justify-center h-full text-neutral-
|
|
2407
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "flex-1 overflow-y-auto", children: layers.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex flex-col items-center justify-center h-full text-neutral-500 text-sm", children: [
|
|
2408
2408
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "material-icons mb-2", style: { fontSize: 32 }, children: "layers" }),
|
|
2409
2409
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("p", { children: "No layers yet" }),
|
|
2410
2410
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("p", { className: "text-xs mt-1", children: "Click + to add a layer" })
|
|
2411
2411
|
] }) : /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "py-1", children: layers.map((layer) => renderLayer(layer, 0)) }) }),
|
|
2412
|
-
selectedIds.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "px-3 py-2 border-t border-
|
|
2412
|
+
selectedIds.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "px-3 py-2 border-t border-[#3a3a3a] bg-[#1a1a1a]", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("p", { className: "text-xs text-neutral-400", children: [
|
|
2413
2413
|
selectedIds.length,
|
|
2414
2414
|
" layer",
|
|
2415
2415
|
selectedIds.length > 1 ? "s" : "",
|
|
@@ -2468,7 +2468,7 @@ function TimelineRuler({
|
|
|
2468
2468
|
"div",
|
|
2469
2469
|
{
|
|
2470
2470
|
ref: rulerRef,
|
|
2471
|
-
className: "relative h-6 bg-
|
|
2471
|
+
className: "relative h-6 bg-[#1a1a1a] border-b border-[#3a3a3a] cursor-pointer select-none",
|
|
2472
2472
|
style: { width: totalWidth },
|
|
2473
2473
|
onClick: handleClick,
|
|
2474
2474
|
children: ticks.map(({ time, isMajor }) => {
|
|
@@ -2482,14 +2482,14 @@ function TimelineRuler({
|
|
|
2482
2482
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
2483
2483
|
"div",
|
|
2484
2484
|
{
|
|
2485
|
-
className: `w-px ${isMajor ? "h-4 bg-neutral-
|
|
2485
|
+
className: `w-px ${isMajor ? "h-4 bg-neutral-500" : "h-2 bg-neutral-600"}`,
|
|
2486
2486
|
style: { marginTop: isMajor ? 0 : 8 }
|
|
2487
2487
|
}
|
|
2488
2488
|
),
|
|
2489
2489
|
isMajor && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
2490
2490
|
"span",
|
|
2491
2491
|
{
|
|
2492
|
-
className: "absolute text-[10px] text-neutral-
|
|
2492
|
+
className: "absolute text-[10px] text-neutral-400 whitespace-nowrap",
|
|
2493
2493
|
style: {
|
|
2494
2494
|
top: 12,
|
|
2495
2495
|
left: 2
|
|
@@ -2661,8 +2661,8 @@ function KeyframeTrack({
|
|
|
2661
2661
|
{
|
|
2662
2662
|
ref: trackRef,
|
|
2663
2663
|
className: `
|
|
2664
|
-
relative h-7 border-b border-
|
|
2665
|
-
${isLayerSelected ? "bg-
|
|
2664
|
+
relative h-7 border-b border-[#2a2a2a]
|
|
2665
|
+
${isLayerSelected ? "bg-[#4a6fa5]/20" : "hover:bg-[#2a2a2a]"}
|
|
2666
2666
|
${!layer.visible ? "opacity-50" : ""}
|
|
2667
2667
|
`,
|
|
2668
2668
|
style: {
|
|
@@ -2676,7 +2676,7 @@ function KeyframeTrack({
|
|
|
2676
2676
|
{
|
|
2677
2677
|
className: `
|
|
2678
2678
|
absolute top-1 bottom-1 left-0 right-0 rounded
|
|
2679
|
-
${isFolder ? "bg-amber-
|
|
2679
|
+
${isFolder ? "bg-amber-900/30" : "bg-[#2a2a2a]"}
|
|
2680
2680
|
`,
|
|
2681
2681
|
style: { marginLeft: depth * 16 }
|
|
2682
2682
|
}
|
|
@@ -2884,14 +2884,14 @@ function Timeline({
|
|
|
2884
2884
|
const audioHeight = 48;
|
|
2885
2885
|
const totalHeight = 24 + // Ruler
|
|
2886
2886
|
flatLayers.length * layerHeight + (composition.audioTracks?.length ?? 0) * audioHeight;
|
|
2887
|
-
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex flex-col h-full bg-
|
|
2888
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center gap-2 px-3 py-2 border-b border-
|
|
2887
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex flex-col h-full bg-[#1a1a1a] border-t border-[#3a3a3a]", children: [
|
|
2888
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center gap-2 px-3 py-2 border-b border-[#3a3a3a] bg-[#232323]", children: [
|
|
2889
2889
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center gap-1", children: [
|
|
2890
2890
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2891
2891
|
"button",
|
|
2892
2892
|
{
|
|
2893
2893
|
onClick: onStop,
|
|
2894
|
-
className: "p-1.5 hover:bg-neutral-
|
|
2894
|
+
className: "p-1.5 hover:bg-[#3a3a3a] rounded text-neutral-400 hover:text-white",
|
|
2895
2895
|
title: "Stop (go to start)",
|
|
2896
2896
|
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "material-icons", style: { fontSize: 18 }, children: "stop" })
|
|
2897
2897
|
}
|
|
@@ -2900,13 +2900,13 @@ function Timeline({
|
|
|
2900
2900
|
"button",
|
|
2901
2901
|
{
|
|
2902
2902
|
onClick: isPlaying ? onPause : onPlay,
|
|
2903
|
-
className: "p-1.5 hover:bg-neutral-
|
|
2903
|
+
className: "p-1.5 hover:bg-[#3a3a3a] rounded text-neutral-400 hover:text-white",
|
|
2904
2904
|
title: isPlaying ? "Pause" : "Play",
|
|
2905
2905
|
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "material-icons", style: { fontSize: 18 }, children: isPlaying ? "pause" : "play_arrow" })
|
|
2906
2906
|
}
|
|
2907
2907
|
)
|
|
2908
2908
|
] }),
|
|
2909
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "px-2 py-1 bg-
|
|
2909
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "px-2 py-1 bg-[#0a0a0a] text-blue-400 font-mono text-sm rounded border border-[#3a3a3a]", children: [
|
|
2910
2910
|
formatTimecode(currentTime),
|
|
2911
2911
|
" / ",
|
|
2912
2912
|
formatTimecode(composition.duration)
|
|
@@ -2917,7 +2917,7 @@ function Timeline({
|
|
|
2917
2917
|
"button",
|
|
2918
2918
|
{
|
|
2919
2919
|
onClick: () => onZoomChange(Math.max(10, zoom * 0.8)),
|
|
2920
|
-
className: "p-1 hover:bg-neutral-
|
|
2920
|
+
className: "p-1 hover:bg-[#3a3a3a] rounded text-neutral-400 hover:text-white",
|
|
2921
2921
|
title: "Zoom out",
|
|
2922
2922
|
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "material-icons", style: { fontSize: 16 }, children: "remove" })
|
|
2923
2923
|
}
|
|
@@ -2930,7 +2930,7 @@ function Timeline({
|
|
|
2930
2930
|
"button",
|
|
2931
2931
|
{
|
|
2932
2932
|
onClick: () => onZoomChange(Math.min(500, zoom * 1.25)),
|
|
2933
|
-
className: "p-1 hover:bg-neutral-
|
|
2933
|
+
className: "p-1 hover:bg-[#3a3a3a] rounded text-neutral-400 hover:text-white",
|
|
2934
2934
|
title: "Zoom in",
|
|
2935
2935
|
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "material-icons", style: { fontSize: 16 }, children: "add" })
|
|
2936
2936
|
}
|
|
@@ -2941,29 +2941,29 @@ function Timeline({
|
|
|
2941
2941
|
{
|
|
2942
2942
|
onClick: () => {
|
|
2943
2943
|
},
|
|
2944
|
-
className: `p-1.5 rounded ${snapToGrid ? "bg-blue-
|
|
2944
|
+
className: `p-1.5 rounded ${snapToGrid ? "bg-blue-900/50 text-blue-400" : "hover:bg-[#3a3a3a] text-neutral-400"}`,
|
|
2945
2945
|
title: "Snap to grid",
|
|
2946
2946
|
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "material-icons", style: { fontSize: 16 }, children: "grid_on" })
|
|
2947
2947
|
}
|
|
2948
2948
|
)
|
|
2949
2949
|
] }),
|
|
2950
2950
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex flex-1 overflow-hidden", children: [
|
|
2951
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "w-[150px] flex-shrink-0 border-r border-
|
|
2952
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "h-6 bg-
|
|
2951
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "w-[150px] flex-shrink-0 border-r border-[#3a3a3a] overflow-y-auto bg-[#232323]", children: [
|
|
2952
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "h-6 bg-[#1a1a1a] border-b border-[#3a3a3a] px-2 flex items-center", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "text-xs text-neutral-500", children: "Layers" }) }),
|
|
2953
2953
|
flatLayers.map((layer) => {
|
|
2954
2954
|
const depth = getLayerDepth(layer, composition.layers);
|
|
2955
2955
|
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
2956
2956
|
"div",
|
|
2957
2957
|
{
|
|
2958
2958
|
className: `
|
|
2959
|
-
h-7 border-b border-
|
|
2960
|
-
${selectedLayerIds.includes(layer.id) ? "bg-
|
|
2959
|
+
h-7 border-b border-[#2a2a2a] px-2 flex items-center
|
|
2960
|
+
${selectedLayerIds.includes(layer.id) ? "bg-[#4a6fa5]/30" : ""}
|
|
2961
2961
|
${!layer.visible ? "opacity-50" : ""}
|
|
2962
2962
|
`,
|
|
2963
2963
|
style: { paddingLeft: depth * 12 + 8 },
|
|
2964
2964
|
children: [
|
|
2965
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "material-icons text-neutral-
|
|
2966
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "text-xs text-neutral-
|
|
2965
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "material-icons text-neutral-500 mr-1", style: { fontSize: 12 }, children: layer.type === "folder" ? "folder" : "lens" }),
|
|
2966
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "text-xs text-neutral-300 truncate", children: layer.name })
|
|
2967
2967
|
]
|
|
2968
2968
|
},
|
|
2969
2969
|
layer.id
|
|
@@ -2972,10 +2972,10 @@ function Timeline({
|
|
|
2972
2972
|
composition.audioTracks?.map((track) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
2973
2973
|
"div",
|
|
2974
2974
|
{
|
|
2975
|
-
className: "h-12 border-b border-
|
|
2975
|
+
className: "h-12 border-b border-[#2a2a2a] px-2 flex items-center",
|
|
2976
2976
|
children: [
|
|
2977
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "material-icons text-blue-
|
|
2978
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "text-xs text-neutral-
|
|
2977
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "material-icons text-blue-400 mr-1", style: { fontSize: 12 }, children: "audiotrack" }),
|
|
2978
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "text-xs text-neutral-300 truncate", children: track.name })
|
|
2979
2979
|
]
|
|
2980
2980
|
},
|
|
2981
2981
|
track.id
|
|
@@ -2985,7 +2985,7 @@ function Timeline({
|
|
|
2985
2985
|
"div",
|
|
2986
2986
|
{
|
|
2987
2987
|
ref: containerRef,
|
|
2988
|
-
className: "flex-1 overflow-auto relative",
|
|
2988
|
+
className: "flex-1 overflow-auto relative bg-[#1e1e1e]",
|
|
2989
2989
|
onScroll: handleScroll,
|
|
2990
2990
|
onWheel: handleWheel,
|
|
2991
2991
|
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { style: { width: totalWidth, minHeight: totalHeight }, children: [
|
|
@@ -3532,16 +3532,16 @@ function PropertiesPanel({
|
|
|
3532
3532
|
onAddKeyframe
|
|
3533
3533
|
}) {
|
|
3534
3534
|
if (selectedLayers.length === 0) {
|
|
3535
|
-
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "w-[250px] flex-shrink-0 bg-
|
|
3536
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "px-3 py-2 border-b border-
|
|
3537
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "flex-1 flex items-center justify-center text-neutral-
|
|
3535
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "w-[250px] flex-shrink-0 bg-[#232323] border-l border-[#3a3a3a] flex flex-col", children: [
|
|
3536
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "px-3 py-2 border-b border-[#3a3a3a]", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { className: "text-sm font-semibold text-neutral-300", children: "Properties" }) }),
|
|
3537
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "flex-1 flex items-center justify-center text-neutral-500 text-sm p-4 text-center", children: "Select a layer to edit its properties" })
|
|
3538
3538
|
] });
|
|
3539
3539
|
}
|
|
3540
3540
|
if (selectedLayers.length > 1) {
|
|
3541
|
-
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "w-[250px] flex-shrink-0 bg-
|
|
3542
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "px-3 py-2 border-b border-
|
|
3543
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { className: "text-sm font-semibold text-neutral-
|
|
3544
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("p", { className: "text-xs text-neutral-
|
|
3541
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "w-[250px] flex-shrink-0 bg-[#232323] border-l border-[#3a3a3a] flex flex-col", children: [
|
|
3542
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "px-3 py-2 border-b border-[#3a3a3a]", children: [
|
|
3543
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { className: "text-sm font-semibold text-neutral-300", children: "Properties" }),
|
|
3544
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("p", { className: "text-xs text-neutral-500", children: [
|
|
3545
3545
|
selectedLayers.length,
|
|
3546
3546
|
" layers selected"
|
|
3547
3547
|
] })
|
|
@@ -3550,10 +3550,10 @@ function PropertiesPanel({
|
|
|
3550
3550
|
] });
|
|
3551
3551
|
}
|
|
3552
3552
|
const layer = selectedLayers[0];
|
|
3553
|
-
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "w-[250px] flex-shrink-0 bg-
|
|
3554
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "px-3 py-2 border-b border-
|
|
3555
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { className: "text-sm font-semibold text-neutral-
|
|
3556
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { className: "text-xs text-neutral-
|
|
3553
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "w-[250px] flex-shrink-0 bg-[#232323] border-l border-[#3a3a3a] flex flex-col", children: [
|
|
3554
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "px-3 py-2 border-b border-[#3a3a3a]", children: [
|
|
3555
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { className: "text-sm font-semibold text-neutral-300", children: "Properties" }),
|
|
3556
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { className: "text-xs text-neutral-500 truncate", children: layer.name })
|
|
3557
3557
|
] }),
|
|
3558
3558
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex-1 overflow-y-auto", children: [
|
|
3559
3559
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(PropertySection, { title: "Layer", children: [
|
|
@@ -3563,7 +3563,7 @@ function PropertiesPanel({
|
|
|
3563
3563
|
type: "text",
|
|
3564
3564
|
value: layer.name,
|
|
3565
3565
|
onChange: (e) => onUpdateLayer(layer.id, { name: e.target.value }),
|
|
3566
|
-
className: "w-full px-2 py-1 text-sm
|
|
3566
|
+
className: "w-full px-2 py-1 text-sm bg-[#1a1a1a] text-neutral-200 border border-[#3a3a3a] rounded focus:outline-none focus:border-blue-500"
|
|
3567
3567
|
}
|
|
3568
3568
|
) }),
|
|
3569
3569
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(PropertyRow, { label: "Visible", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
@@ -3572,7 +3572,7 @@ function PropertiesPanel({
|
|
|
3572
3572
|
type: "checkbox",
|
|
3573
3573
|
checked: layer.visible,
|
|
3574
3574
|
onChange: (e) => onUpdateLayer(layer.id, { visible: e.target.checked }),
|
|
3575
|
-
className: "w-4 h-4"
|
|
3575
|
+
className: "w-4 h-4 accent-blue-500"
|
|
3576
3576
|
}
|
|
3577
3577
|
) }),
|
|
3578
3578
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(PropertyRow, { label: "Locked", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
@@ -3581,7 +3581,7 @@ function PropertiesPanel({
|
|
|
3581
3581
|
type: "checkbox",
|
|
3582
3582
|
checked: layer.locked,
|
|
3583
3583
|
onChange: (e) => onUpdateLayer(layer.id, { locked: e.target.checked }),
|
|
3584
|
-
className: "w-4 h-4"
|
|
3584
|
+
className: "w-4 h-4 accent-blue-500"
|
|
3585
3585
|
}
|
|
3586
3586
|
) }),
|
|
3587
3587
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(PropertyRow, { label: "Opacity", keyframeable: true, onAddKeyframe: () => onAddKeyframe(layer.id, "opacity"), children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
@@ -3594,10 +3594,10 @@ function PropertiesPanel({
|
|
|
3594
3594
|
step: 0.01,
|
|
3595
3595
|
value: layer.opacity,
|
|
3596
3596
|
onChange: (e) => onUpdateLayer(layer.id, { opacity: parseFloat(e.target.value) }),
|
|
3597
|
-
className: "flex-1"
|
|
3597
|
+
className: "flex-1 accent-blue-500"
|
|
3598
3598
|
}
|
|
3599
3599
|
),
|
|
3600
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { className: "text-xs text-neutral-
|
|
3600
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { className: "text-xs text-neutral-400 w-10 text-right", children: [
|
|
3601
3601
|
Math.round(layer.opacity * 100),
|
|
3602
3602
|
"%"
|
|
3603
3603
|
] })
|
|
@@ -3607,7 +3607,7 @@ function PropertiesPanel({
|
|
|
3607
3607
|
{
|
|
3608
3608
|
value: layer.blendMode || "normal",
|
|
3609
3609
|
onChange: (e) => onUpdateLayer(layer.id, { blendMode: e.target.value }),
|
|
3610
|
-
className: "w-full px-2 py-1 text-sm
|
|
3610
|
+
className: "w-full px-2 py-1 text-sm bg-[#1a1a1a] text-neutral-200 border border-[#3a3a3a] rounded focus:outline-none focus:border-blue-500",
|
|
3611
3611
|
children: [
|
|
3612
3612
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("option", { value: "normal", children: "Normal" }),
|
|
3613
3613
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("option", { value: "multiply", children: "Multiply" }),
|
|
@@ -3635,10 +3635,10 @@ function PropertiesPanel({
|
|
|
3635
3635
|
layer.keyframes && layer.keyframes.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "mt-2 space-y-1", children: layer.keyframes.map((kf) => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
3636
3636
|
"div",
|
|
3637
3637
|
{
|
|
3638
|
-
className: "text-xs px-2 py-1 bg-
|
|
3638
|
+
className: "text-xs px-2 py-1 bg-[#1a1a1a] rounded flex justify-between text-neutral-300",
|
|
3639
3639
|
children: [
|
|
3640
3640
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { children: formatTimecode(kf.time) }),
|
|
3641
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "text-neutral-
|
|
3641
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "text-neutral-500", children: Object.keys(kf.properties).join(", ") })
|
|
3642
3642
|
]
|
|
3643
3643
|
},
|
|
3644
3644
|
kf.id
|
|
@@ -3649,15 +3649,15 @@ function PropertiesPanel({
|
|
|
3649
3649
|
}
|
|
3650
3650
|
function PropertySection({ title, children }) {
|
|
3651
3651
|
const [isOpen, setIsOpen] = import_react17.default.useState(true);
|
|
3652
|
-
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "border-b border-
|
|
3652
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "border-b border-[#3a3a3a]", children: [
|
|
3653
3653
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
3654
3654
|
"button",
|
|
3655
3655
|
{
|
|
3656
3656
|
onClick: () => setIsOpen(!isOpen),
|
|
3657
|
-
className: "w-full px-3 py-2 flex items-center justify-between hover:bg-
|
|
3657
|
+
className: "w-full px-3 py-2 flex items-center justify-between hover:bg-[#2a2a2a]",
|
|
3658
3658
|
children: [
|
|
3659
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "text-xs font-semibold text-neutral-
|
|
3660
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "material-icons text-neutral-
|
|
3659
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "text-xs font-semibold text-neutral-400 uppercase", children: title }),
|
|
3660
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "material-icons text-neutral-500", style: { fontSize: 16 }, children: isOpen ? "expand_less" : "expand_more" })
|
|
3661
3661
|
]
|
|
3662
3662
|
}
|
|
3663
3663
|
),
|
|
@@ -3676,7 +3676,7 @@ function PropertyRow({
|
|
|
3676
3676
|
"button",
|
|
3677
3677
|
{
|
|
3678
3678
|
onClick: onAddKeyframe,
|
|
3679
|
-
className: "p-0.5 hover:bg-amber-
|
|
3679
|
+
className: "p-0.5 hover:bg-amber-900/50 rounded",
|
|
3680
3680
|
title: "Add keyframe",
|
|
3681
3681
|
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "material-icons text-amber-500", style: { fontSize: 12 }, children: "diamond" })
|
|
3682
3682
|
}
|
|
@@ -3701,7 +3701,7 @@ function ObjectProperties({
|
|
|
3701
3701
|
type: "text",
|
|
3702
3702
|
value: object.src,
|
|
3703
3703
|
onChange: (e) => onUpdate({ object: { ...object, src: e.target.value } }),
|
|
3704
|
-
className: "w-full px-2 py-1 text-sm
|
|
3704
|
+
className: "w-full px-2 py-1 text-sm bg-[#1a1a1a] text-neutral-200 border border-[#3a3a3a] rounded focus:outline-none focus:border-blue-500",
|
|
3705
3705
|
placeholder: "Image URL"
|
|
3706
3706
|
}
|
|
3707
3707
|
) }),
|
|
@@ -3712,7 +3712,7 @@ function ObjectProperties({
|
|
|
3712
3712
|
onChange: (e) => onUpdate({
|
|
3713
3713
|
object: { ...object, objectFit: e.target.value }
|
|
3714
3714
|
}),
|
|
3715
|
-
className: "w-full px-2 py-1 text-sm
|
|
3715
|
+
className: "w-full px-2 py-1 text-sm bg-[#1a1a1a] text-neutral-200 border border-[#3a3a3a] rounded",
|
|
3716
3716
|
children: [
|
|
3717
3717
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("option", { value: "contain", children: "Contain" }),
|
|
3718
3718
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("option", { value: "cover", children: "Cover" }),
|
|
@@ -3730,7 +3730,7 @@ function ObjectProperties({
|
|
|
3730
3730
|
value: object.content,
|
|
3731
3731
|
onChange: (e) => onUpdate({ object: { ...object, content: e.target.value } }),
|
|
3732
3732
|
rows: 3,
|
|
3733
|
-
className: "w-full px-2 py-1 text-sm
|
|
3733
|
+
className: "w-full px-2 py-1 text-sm bg-[#1a1a1a] text-neutral-200 border border-[#3a3a3a] rounded focus:outline-none focus:border-blue-500 resize-none"
|
|
3734
3734
|
}
|
|
3735
3735
|
) }),
|
|
3736
3736
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(PropertyRow, { label: "Size", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
@@ -3739,7 +3739,7 @@ function ObjectProperties({
|
|
|
3739
3739
|
type: "number",
|
|
3740
3740
|
value: object.fontSize || 16,
|
|
3741
3741
|
onChange: (e) => onUpdate({ object: { ...object, fontSize: parseInt(e.target.value) || 16 } }),
|
|
3742
|
-
className: "w-full px-2 py-1 text-sm
|
|
3742
|
+
className: "w-full px-2 py-1 text-sm bg-[#1a1a1a] text-neutral-200 border border-[#3a3a3a] rounded"
|
|
3743
3743
|
}
|
|
3744
3744
|
) }),
|
|
3745
3745
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(PropertyRow, { label: "Color", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
@@ -3748,7 +3748,7 @@ function ObjectProperties({
|
|
|
3748
3748
|
type: "color",
|
|
3749
3749
|
value: object.color || "#000000",
|
|
3750
3750
|
onChange: (e) => onUpdate({ object: { ...object, color: e.target.value } }),
|
|
3751
|
-
className: "w-8 h-6 cursor-pointer"
|
|
3751
|
+
className: "w-8 h-6 cursor-pointer bg-transparent"
|
|
3752
3752
|
}
|
|
3753
3753
|
) }),
|
|
3754
3754
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(PropertyRow, { label: "Align", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
@@ -3758,7 +3758,7 @@ function ObjectProperties({
|
|
|
3758
3758
|
onChange: (e) => onUpdate({
|
|
3759
3759
|
object: { ...object, textAlign: e.target.value }
|
|
3760
3760
|
}),
|
|
3761
|
-
className: "w-full px-2 py-1 text-sm
|
|
3761
|
+
className: "w-full px-2 py-1 text-sm bg-[#1a1a1a] text-neutral-200 border border-[#3a3a3a] rounded",
|
|
3762
3762
|
children: [
|
|
3763
3763
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("option", { value: "left", children: "Left" }),
|
|
3764
3764
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("option", { value: "center", children: "Center" }),
|
|
@@ -3775,7 +3775,7 @@ function ObjectProperties({
|
|
|
3775
3775
|
type: "color",
|
|
3776
3776
|
value: object.fill || "#cccccc",
|
|
3777
3777
|
onChange: (e) => onUpdate({ object: { ...object, fill: e.target.value } }),
|
|
3778
|
-
className: "w-8 h-6 cursor-pointer"
|
|
3778
|
+
className: "w-8 h-6 cursor-pointer bg-transparent"
|
|
3779
3779
|
}
|
|
3780
3780
|
) }),
|
|
3781
3781
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(PropertyRow, { label: "Stroke", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
@@ -3784,7 +3784,7 @@ function ObjectProperties({
|
|
|
3784
3784
|
type: "color",
|
|
3785
3785
|
value: object.stroke || "#000000",
|
|
3786
3786
|
onChange: (e) => onUpdate({ object: { ...object, stroke: e.target.value } }),
|
|
3787
|
-
className: "w-8 h-6 cursor-pointer"
|
|
3787
|
+
className: "w-8 h-6 cursor-pointer bg-transparent"
|
|
3788
3788
|
}
|
|
3789
3789
|
) })
|
|
3790
3790
|
] });
|