@arcanewizards/timecode-toolbox 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +77 -0
- package/dist/components/frontend/index.js +1035 -442
- package/dist/components/frontend/index.mjs +884 -291
- package/dist/entrypoint.css +163 -53
- package/dist/entrypoint.js +1769 -788
- package/dist/entrypoint.js.map +4 -4
- package/dist/frontend.js +1769 -788
- package/dist/frontend.js.map +4 -4
- package/dist/index.d.mts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +346 -76
- package/dist/index.mjs +348 -69
- package/dist/start.d.mts +1 -2
- package/dist/start.d.ts +1 -2
- package/dist/start.js +349 -77
- package/dist/start.mjs +351 -70
- package/package.json +12 -6
- package/.turbo/turbo-build.log +0 -58
- package/.turbo/turbo-lint.log +0 -4
- package/CHANGELOG.md +0 -40
- package/eslint.config.mjs +0 -49
- package/src/app.tsx +0 -147
- package/src/components/backend/index.ts +0 -6
- package/src/components/backend/toolbox-root.ts +0 -119
- package/src/components/frontend/constants.ts +0 -81
- package/src/components/frontend/entrypoint.ts +0 -12
- package/src/components/frontend/frontend.css +0 -108
- package/src/components/frontend/index.tsx +0 -46
- package/src/components/frontend/toolbox/content.tsx +0 -45
- package/src/components/frontend/toolbox/context.tsx +0 -63
- package/src/components/frontend/toolbox/core/size-aware-div.tsx +0 -51
- package/src/components/frontend/toolbox/core/timecode-display.tsx +0 -592
- package/src/components/frontend/toolbox/generators.tsx +0 -318
- package/src/components/frontend/toolbox/inputs.tsx +0 -484
- package/src/components/frontend/toolbox/outputs.tsx +0 -581
- package/src/components/frontend/toolbox/preferences.ts +0 -25
- package/src/components/frontend/toolbox/root.tsx +0 -335
- package/src/components/frontend/toolbox/settings.tsx +0 -54
- package/src/components/frontend/toolbox/types.ts +0 -28
- package/src/components/frontend/toolbox/util.tsx +0 -61
- package/src/components/proto.ts +0 -420
- package/src/config.ts +0 -7
- package/src/generators/clock.tsx +0 -206
- package/src/generators/index.tsx +0 -15
- package/src/index.ts +0 -38
- package/src/inputs/artnet.tsx +0 -305
- package/src/inputs/index.tsx +0 -13
- package/src/inputs/tcnet.tsx +0 -272
- package/src/outputs/artnet.tsx +0 -170
- package/src/outputs/index.tsx +0 -11
- package/src/start.ts +0 -47
- package/src/tree.ts +0 -133
- package/src/types.ts +0 -12
- package/src/urls.ts +0 -49
- package/src/util.ts +0 -82
- package/tailwind.config.cjs +0 -7
- package/tsconfig.json +0 -10
- package/tsup.config.ts +0 -10
|
@@ -9880,9 +9880,6 @@ var useLongPressable2 = ({
|
|
|
9880
9880
|
);
|
|
9881
9881
|
};
|
|
9882
9882
|
|
|
9883
|
-
// ../../packages/sigil/dist/chunk-H4U4Z4GM.js
|
|
9884
|
-
import { useEffect as useEffect18 } from "react";
|
|
9885
|
-
|
|
9886
9883
|
// ../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/external.js
|
|
9887
9884
|
var external_exports = {};
|
|
9888
9885
|
__export(external_exports, {
|
|
@@ -13927,7 +13924,7 @@ var NEVER = INVALID;
|
|
|
13927
13924
|
// ../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/index.js
|
|
13928
13925
|
var zod_default = external_exports;
|
|
13929
13926
|
|
|
13930
|
-
// ../../packages/sigil/dist/chunk-
|
|
13927
|
+
// ../../packages/sigil/dist/chunk-WYUGJOEB.js
|
|
13931
13928
|
var SIGIL_COLOR = external_exports.enum([
|
|
13932
13929
|
"purple",
|
|
13933
13930
|
"blue",
|
|
@@ -13968,21 +13965,12 @@ var cssSigilColorUsageVariables = (prefix, usage) => cssVariables({
|
|
|
13968
13965
|
[`--${prefix}-gradient-dark`]: usage.gradientDark
|
|
13969
13966
|
});
|
|
13970
13967
|
var cssHintColorVariables = (color) => cssSigilColorUsageVariables(`sigil-usage-hint`, sigilColorUsage(color));
|
|
13971
|
-
var useRootHintVariables = (color) => {
|
|
13972
|
-
useEffect18(() => {
|
|
13973
|
-
const root = document.querySelector(".arcane-theme-root");
|
|
13974
|
-
if (!root) return;
|
|
13975
|
-
Object.entries(cssHintColorVariables(color)).forEach(([key, value]) => {
|
|
13976
|
-
root.style.setProperty(key, value);
|
|
13977
|
-
});
|
|
13978
|
-
}, [color]);
|
|
13979
|
-
};
|
|
13980
13968
|
var cssVariables = (variables) => variables;
|
|
13981
13969
|
function cnd(condition, truthyClassName, falseyClassName) {
|
|
13982
13970
|
return condition ? truthyClassName : falseyClassName;
|
|
13983
13971
|
}
|
|
13984
13972
|
|
|
13985
|
-
// ../../packages/sigil/dist/chunk-
|
|
13973
|
+
// ../../packages/sigil/dist/chunk-E3VUC3Q4.js
|
|
13986
13974
|
import {
|
|
13987
13975
|
createContext as createContext6,
|
|
13988
13976
|
forwardRef as forwardRef42,
|
|
@@ -14026,7 +14014,7 @@ var TRANSPARENCY_SVG = `
|
|
|
14026
14014
|
`;
|
|
14027
14015
|
var TRANSPARENCY_SVG_URI = `data:image/svg+xml,${encodeURIComponent(TRANSPARENCY_SVG)}`;
|
|
14028
14016
|
|
|
14029
|
-
// ../../packages/sigil/dist/chunk-
|
|
14017
|
+
// ../../packages/sigil/dist/chunk-E3VUC3Q4.js
|
|
14030
14018
|
import {
|
|
14031
14019
|
forwardRef as forwardRef15
|
|
14032
14020
|
} from "react";
|
|
@@ -14037,7 +14025,7 @@ import { forwardRef as forwardRef32 } from "react";
|
|
|
14037
14025
|
import { jsx as jsx32 } from "react/jsx-runtime";
|
|
14038
14026
|
import {
|
|
14039
14027
|
useCallback as useCallback10,
|
|
14040
|
-
useEffect as
|
|
14028
|
+
useEffect as useEffect18,
|
|
14041
14029
|
useRef as useRef15
|
|
14042
14030
|
} from "react";
|
|
14043
14031
|
import { jsx as jsx42 } from "react/jsx-runtime";
|
|
@@ -14098,7 +14086,8 @@ var clsControlButton = ({
|
|
|
14098
14086
|
active,
|
|
14099
14087
|
touching,
|
|
14100
14088
|
position,
|
|
14101
|
-
className
|
|
14089
|
+
className,
|
|
14090
|
+
primary
|
|
14102
14091
|
}) => cn(
|
|
14103
14092
|
`sigil-control-button`,
|
|
14104
14093
|
cnd(variant === "border", `sigil-control-button-variant-border`),
|
|
@@ -14110,6 +14099,7 @@ var clsControlButton = ({
|
|
|
14110
14099
|
cnd(touching, `sigil-control-button-touching`),
|
|
14111
14100
|
cnd(active, `sigil-control-button-active`),
|
|
14112
14101
|
cnd(touching && active, `sigil-control-button-active-touching`),
|
|
14102
|
+
cnd(primary, `sigil-control-button-primary`),
|
|
14113
14103
|
clsControlPosition(position),
|
|
14114
14104
|
className
|
|
14115
14105
|
);
|
|
@@ -14126,6 +14116,7 @@ var ControlButtonFrame = forwardRef15(
|
|
|
14126
14116
|
title,
|
|
14127
14117
|
tooltipSide,
|
|
14128
14118
|
position,
|
|
14119
|
+
primary,
|
|
14129
14120
|
...props
|
|
14130
14121
|
}, ref) => {
|
|
14131
14122
|
const btn = /* @__PURE__ */ jsx17(
|
|
@@ -14140,6 +14131,7 @@ var ControlButtonFrame = forwardRef15(
|
|
|
14140
14131
|
active,
|
|
14141
14132
|
touching,
|
|
14142
14133
|
position,
|
|
14134
|
+
primary,
|
|
14143
14135
|
className
|
|
14144
14136
|
}),
|
|
14145
14137
|
children: /* @__PURE__ */ jsxs4("span", { children: [
|
|
@@ -14329,7 +14321,7 @@ var InputWithDelayedPropagation = ({
|
|
|
14329
14321
|
}) => {
|
|
14330
14322
|
const lastValue = useRef15(value);
|
|
14331
14323
|
const inputRef = useRef15(null);
|
|
14332
|
-
|
|
14324
|
+
useEffect18(() => {
|
|
14333
14325
|
if (inputRef.current && inputRef.current.value !== value) {
|
|
14334
14326
|
inputRef.current.value = value;
|
|
14335
14327
|
}
|
|
@@ -14700,7 +14692,7 @@ import React52, { useMemo as useMemo11, useState as useState22 } from "react";
|
|
|
14700
14692
|
import { jsx as jsx72, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
14701
14693
|
import React62 from "react";
|
|
14702
14694
|
import { jsx as jsx82, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
14703
|
-
import React72, { useEffect as
|
|
14695
|
+
import React72, { useEffect as useEffect19 } from "react";
|
|
14704
14696
|
import { jsx as jsx92 } from "react/jsx-runtime";
|
|
14705
14697
|
import React82, { useContext as useContext22, useEffect as useEffect23, useState as useState32 } from "react";
|
|
14706
14698
|
import { jsx as jsx102, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
@@ -15399,7 +15391,7 @@ var Tabs = (props) => {
|
|
|
15399
15391
|
var TextInput = ({ className, info }) => {
|
|
15400
15392
|
const { sendMessage } = React72.useContext(StageContext);
|
|
15401
15393
|
const ref = React72.useRef(null);
|
|
15402
|
-
|
|
15394
|
+
useEffect19(() => {
|
|
15403
15395
|
if (ref.current && ref.current.value !== info.value) {
|
|
15404
15396
|
ref.current.value = info.value;
|
|
15405
15397
|
}
|
|
@@ -15532,7 +15524,7 @@ var CORE_FRONTEND_COMPONENT_RENDERER = {
|
|
|
15532
15524
|
};
|
|
15533
15525
|
|
|
15534
15526
|
// ../../packages/sigil/dist/frontend.js
|
|
15535
|
-
import { useContext as useContext23, useEffect as
|
|
15527
|
+
import { useContext as useContext23, useEffect as useEffect20, useMemo as useMemo12, useState as useState21 } from "react";
|
|
15536
15528
|
import { createContext as createContext8, useContext as useContext7 } from "react";
|
|
15537
15529
|
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
15538
15530
|
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
@@ -15650,7 +15642,7 @@ var AppRoot = ({
|
|
|
15650
15642
|
const { renderComponent, call } = useContext23(StageContext);
|
|
15651
15643
|
const [logs, setLogs] = useState21({ lastLog: -1, logs: [] });
|
|
15652
15644
|
const [debugMode, setDebugMode] = useState21(false);
|
|
15653
|
-
|
|
15645
|
+
useEffect20(() => {
|
|
15654
15646
|
if (!debugMode || !call) return;
|
|
15655
15647
|
const lastLogId = logs.logs[logs.logs.length - 1]?.index ?? -1;
|
|
15656
15648
|
call({
|
|
@@ -15911,7 +15903,12 @@ var OUTPUT_CONFIG = zod_default.object({
|
|
|
15911
15903
|
var TOOLBOX_CONFIG = zod_default.object({
|
|
15912
15904
|
inputs: zod_default.record(zod_default.string(), INPUT_CONFIG),
|
|
15913
15905
|
generators: zod_default.record(zod_default.string(), GENERATOR_CONFIG),
|
|
15914
|
-
outputs: zod_default.record(zod_default.string(), OUTPUT_CONFIG)
|
|
15906
|
+
outputs: zod_default.record(zod_default.string(), OUTPUT_CONFIG),
|
|
15907
|
+
/**
|
|
15908
|
+
* Hash of the license the user has agreed to.
|
|
15909
|
+
*/
|
|
15910
|
+
agreedToLicense: zod_default.string().optional(),
|
|
15911
|
+
checkForUpdates: zod_default.boolean().optional().default(true)
|
|
15915
15912
|
});
|
|
15916
15913
|
var isTimecodeInstance = (instance) => instance !== null && "state" in instance && "metadata" in instance;
|
|
15917
15914
|
var isTimecodeGroup = (instance) => instance !== null && "timecodes" in instance;
|
|
@@ -15920,89 +15917,13 @@ var isTimecodeToolboxComponent = (component) => component.namespace === NAMESPAC
|
|
|
15920
15917
|
|
|
15921
15918
|
// src/components/frontend/toolbox/root.tsx
|
|
15922
15919
|
import {
|
|
15923
|
-
useCallback as
|
|
15924
|
-
useContext as
|
|
15925
|
-
useEffect as
|
|
15920
|
+
useCallback as useCallback20,
|
|
15921
|
+
useContext as useContext16,
|
|
15922
|
+
useEffect as useEffect31,
|
|
15926
15923
|
useMemo as useMemo15,
|
|
15927
|
-
useState as
|
|
15924
|
+
useState as useState31
|
|
15928
15925
|
} from "react";
|
|
15929
15926
|
|
|
15930
|
-
// src/components/frontend/toolbox/core/size-aware-div.tsx
|
|
15931
|
-
import { useEffect as useEffect25, useState as useState23 } from "react";
|
|
15932
|
-
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
15933
|
-
var SizeAwareDiv = ({
|
|
15934
|
-
children,
|
|
15935
|
-
style,
|
|
15936
|
-
...rest
|
|
15937
|
-
}) => {
|
|
15938
|
-
const [div, setDiv] = useState23(null);
|
|
15939
|
-
const [rect, setRect] = useState23(null);
|
|
15940
|
-
useEffect25(() => {
|
|
15941
|
-
if (!div) {
|
|
15942
|
-
return;
|
|
15943
|
-
}
|
|
15944
|
-
const resizeObserver = new ResizeObserver((entries) => {
|
|
15945
|
-
for (const entry of entries) {
|
|
15946
|
-
setRect(entry.contentRect);
|
|
15947
|
-
}
|
|
15948
|
-
});
|
|
15949
|
-
resizeObserver.observe(div);
|
|
15950
|
-
return () => {
|
|
15951
|
-
resizeObserver.disconnect();
|
|
15952
|
-
};
|
|
15953
|
-
}, [div]);
|
|
15954
|
-
return /* @__PURE__ */ jsx20(
|
|
15955
|
-
"div",
|
|
15956
|
-
{
|
|
15957
|
-
ref: setDiv,
|
|
15958
|
-
...rest,
|
|
15959
|
-
style: {
|
|
15960
|
-
...style,
|
|
15961
|
-
...rect && cssVariables({
|
|
15962
|
-
"--size-aware-div-width": rect.width + "px",
|
|
15963
|
-
"--size-aware-div-height": rect.height + "px"
|
|
15964
|
-
})
|
|
15965
|
-
},
|
|
15966
|
-
children
|
|
15967
|
-
}
|
|
15968
|
-
);
|
|
15969
|
-
};
|
|
15970
|
-
|
|
15971
|
-
// src/components/frontend/toolbox/content.tsx
|
|
15972
|
-
import { jsx as jsx21, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
15973
|
-
var ExternalLink = ({
|
|
15974
|
-
href,
|
|
15975
|
-
children
|
|
15976
|
-
}) => {
|
|
15977
|
-
const { openExternalLink } = useBrowserContext();
|
|
15978
|
-
return /* @__PURE__ */ jsx21(
|
|
15979
|
-
"a",
|
|
15980
|
-
{
|
|
15981
|
-
href,
|
|
15982
|
-
target: "_blank",
|
|
15983
|
-
rel: "noopener noreferrer",
|
|
15984
|
-
onClick: (e) => {
|
|
15985
|
-
e.preventDefault();
|
|
15986
|
-
openExternalLink(href);
|
|
15987
|
-
},
|
|
15988
|
-
className: "\n text-sigil-usage-hint-foreground no-underline\n hover:underline\n ",
|
|
15989
|
-
children
|
|
15990
|
-
}
|
|
15991
|
-
);
|
|
15992
|
-
};
|
|
15993
|
-
var NoToolboxChildren = ({ text }) => {
|
|
15994
|
-
return /* @__PURE__ */ jsxs8(
|
|
15995
|
-
SizeAwareDiv,
|
|
15996
|
-
{
|
|
15997
|
-
className: "\n flex grow flex-col items-center justify-center gap-1 bg-sigil-bg-light\n p-1 text-sigil-foreground-muted\n ",
|
|
15998
|
-
children: [
|
|
15999
|
-
/* @__PURE__ */ jsx21(Icon2, { icon: "handyman", className: "text-block-icon" }),
|
|
16000
|
-
/* @__PURE__ */ jsx21("div", { className: "text-center", children: text })
|
|
16001
|
-
]
|
|
16002
|
-
}
|
|
16003
|
-
);
|
|
16004
|
-
};
|
|
16005
|
-
|
|
16006
15927
|
// ../../packages/artnet/dist/chunk-J2HDMITA.js
|
|
16007
15928
|
var ARTNET_PORT = 6454;
|
|
16008
15929
|
var TIMECODE_FPS = {
|
|
@@ -16018,6 +15939,7 @@ var MS_FORMAT = new Intl.NumberFormat(void 0, {
|
|
|
16018
15939
|
unit: "millisecond",
|
|
16019
15940
|
maximumFractionDigits: 0
|
|
16020
15941
|
});
|
|
15942
|
+
var SOURCE_CODE_URL = "https://github.com/ArcaneWizards/open-source/tree/main/apps/timecode-toolbox";
|
|
16021
15943
|
var STRINGS = {
|
|
16022
15944
|
title: "Timecode Toolbox",
|
|
16023
15945
|
debugger: "Debug Tools & Log",
|
|
@@ -16026,6 +15948,10 @@ var STRINGS = {
|
|
|
16026
15948
|
openInNewWindow: "Open in new window",
|
|
16027
15949
|
toggle: (text) => `Toggle ${text}`,
|
|
16028
15950
|
close: (text) => `Close ${text}`,
|
|
15951
|
+
license: "License & About",
|
|
15952
|
+
acceptLicense: "Accept License",
|
|
15953
|
+
licensePrompt: "Please review and accept the license to use Timecode Toolbox",
|
|
15954
|
+
sourceCode: "Source Code",
|
|
16029
15955
|
protocols: {
|
|
16030
15956
|
artnet: {
|
|
16031
15957
|
short: "ArtNet",
|
|
@@ -16085,6 +16011,17 @@ var STRINGS = {
|
|
|
16085
16011
|
},
|
|
16086
16012
|
errors: {
|
|
16087
16013
|
unknownTimecodeID: "Unknown timecode ID, please close the window"
|
|
16014
|
+
},
|
|
16015
|
+
updates: {
|
|
16016
|
+
updateAvailable: (current, latest) => `Version ${latest} is available! You are currently on version ${current}.`,
|
|
16017
|
+
download: "Download",
|
|
16018
|
+
settingsLabel: "Automatically check for updates",
|
|
16019
|
+
settingsDetails: `When enabled, the app will automatically check for updates periodically and display a message when a new version is available.`,
|
|
16020
|
+
lastChecked: (time) => `Last checked: ${time}`
|
|
16021
|
+
},
|
|
16022
|
+
general: {
|
|
16023
|
+
enabled: "Enabled",
|
|
16024
|
+
disabled: "Disabled"
|
|
16088
16025
|
}
|
|
16089
16026
|
};
|
|
16090
16027
|
|
|
@@ -16092,29 +16029,29 @@ var STRINGS = {
|
|
|
16092
16029
|
import {
|
|
16093
16030
|
useCallback as useCallback14,
|
|
16094
16031
|
useContext as useContext10,
|
|
16095
|
-
useEffect as
|
|
16032
|
+
useEffect as useEffect26,
|
|
16096
16033
|
useMemo as useMemo14,
|
|
16097
16034
|
useState as useState25
|
|
16098
16035
|
} from "react";
|
|
16099
16036
|
|
|
16100
16037
|
// src/components/frontend/toolbox/util.tsx
|
|
16101
|
-
import { jsx as
|
|
16038
|
+
import { jsx as jsx20, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
16102
16039
|
var PrimaryToolboxSection = ({
|
|
16103
16040
|
title,
|
|
16104
16041
|
children,
|
|
16105
16042
|
buttons
|
|
16106
16043
|
}) => {
|
|
16107
|
-
return /* @__PURE__ */
|
|
16108
|
-
/* @__PURE__ */
|
|
16044
|
+
return /* @__PURE__ */ jsxs8("div", { className: "flex grow gap-px", children: [
|
|
16045
|
+
/* @__PURE__ */ jsx20(
|
|
16109
16046
|
"div",
|
|
16110
16047
|
{
|
|
16111
16048
|
className: "\n flex items-center justify-center bg-sigil-bg-light p-1\n writing-mode-vertical-rl\n ",
|
|
16112
16049
|
children: title
|
|
16113
16050
|
}
|
|
16114
16051
|
),
|
|
16115
|
-
/* @__PURE__ */
|
|
16116
|
-
/* @__PURE__ */
|
|
16117
|
-
/* @__PURE__ */
|
|
16052
|
+
/* @__PURE__ */ jsxs8("div", { className: "flex grow flex-col gap-px", children: [
|
|
16053
|
+
/* @__PURE__ */ jsx20("div", { className: "flex grow flex-col gap-px", children }),
|
|
16054
|
+
/* @__PURE__ */ jsx20("div", { className: "flex w-full flex-wrap gap-1 bg-sigil-bg-light p-1", children: buttons })
|
|
16118
16055
|
] })
|
|
16119
16056
|
] });
|
|
16120
16057
|
};
|
|
@@ -16170,11 +16107,52 @@ var NetworkContext = createContext9(
|
|
|
16170
16107
|
import {
|
|
16171
16108
|
useCallback as useCallback13,
|
|
16172
16109
|
useContext as useContext9,
|
|
16173
|
-
useEffect as
|
|
16110
|
+
useEffect as useEffect25,
|
|
16174
16111
|
useMemo as useMemo13,
|
|
16175
16112
|
useState as useState24
|
|
16176
16113
|
} from "react";
|
|
16177
16114
|
|
|
16115
|
+
// src/components/frontend/toolbox/core/size-aware-div.tsx
|
|
16116
|
+
import { useEffect as useEffect21, useState as useState23 } from "react";
|
|
16117
|
+
import { jsx as jsx21 } from "react/jsx-runtime";
|
|
16118
|
+
var SizeAwareDiv = ({
|
|
16119
|
+
children,
|
|
16120
|
+
style,
|
|
16121
|
+
...rest
|
|
16122
|
+
}) => {
|
|
16123
|
+
const [div, setDiv] = useState23(null);
|
|
16124
|
+
const [rect, setRect] = useState23(null);
|
|
16125
|
+
useEffect21(() => {
|
|
16126
|
+
if (!div) {
|
|
16127
|
+
return;
|
|
16128
|
+
}
|
|
16129
|
+
const resizeObserver = new ResizeObserver((entries) => {
|
|
16130
|
+
for (const entry of entries) {
|
|
16131
|
+
setRect(entry.contentRect);
|
|
16132
|
+
}
|
|
16133
|
+
});
|
|
16134
|
+
resizeObserver.observe(div);
|
|
16135
|
+
return () => {
|
|
16136
|
+
resizeObserver.disconnect();
|
|
16137
|
+
};
|
|
16138
|
+
}, [div]);
|
|
16139
|
+
return /* @__PURE__ */ jsx21(
|
|
16140
|
+
"div",
|
|
16141
|
+
{
|
|
16142
|
+
ref: setDiv,
|
|
16143
|
+
...rest,
|
|
16144
|
+
style: {
|
|
16145
|
+
...style,
|
|
16146
|
+
...rect && cssVariables({
|
|
16147
|
+
"--size-aware-div-width": rect.width + "px",
|
|
16148
|
+
"--size-aware-div-height": rect.height + "px"
|
|
16149
|
+
})
|
|
16150
|
+
},
|
|
16151
|
+
children
|
|
16152
|
+
}
|
|
16153
|
+
);
|
|
16154
|
+
};
|
|
16155
|
+
|
|
16178
16156
|
// src/tree.ts
|
|
16179
16157
|
var isTreeNode = (node) => "children" in node && typeof node.children === "object" && node.children !== null;
|
|
16180
16158
|
var getTreeValue = (current, path) => {
|
|
@@ -16280,14 +16258,14 @@ var augmentUpstreamTimecodeWithOutputMetadata = (tc, config) => {
|
|
|
16280
16258
|
};
|
|
16281
16259
|
|
|
16282
16260
|
// src/components/frontend/toolbox/core/timecode-display.tsx
|
|
16283
|
-
import { Fragment as Fragment8, jsx as
|
|
16261
|
+
import { Fragment as Fragment8, jsx as jsx26, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
16284
16262
|
var ActiveTimecodeText = ({
|
|
16285
16263
|
effectiveStartTimeMillis,
|
|
16286
16264
|
speed
|
|
16287
16265
|
}) => {
|
|
16288
16266
|
const [millis, setMillis] = useState24(0);
|
|
16289
16267
|
const { timeDifferenceMs } = useContext9(StageContext);
|
|
16290
|
-
|
|
16268
|
+
useEffect25(() => {
|
|
16291
16269
|
let animationFrame = null;
|
|
16292
16270
|
const updateMillis = () => {
|
|
16293
16271
|
const newMillis = (Date.now() - (timeDifferenceMs ?? 0) - effectiveStartTimeMillis) * speed;
|
|
@@ -16306,7 +16284,7 @@ var ActiveTimecodeText = ({
|
|
|
16306
16284
|
var Timeline2 = ({ state, totalTime }) => {
|
|
16307
16285
|
const [millis, setMillis] = useState24(0);
|
|
16308
16286
|
const { timeDifferenceMs } = useContext9(StageContext);
|
|
16309
|
-
|
|
16287
|
+
useEffect25(() => {
|
|
16310
16288
|
if (state.state === "none") {
|
|
16311
16289
|
setMillis(0);
|
|
16312
16290
|
return;
|
|
@@ -16328,7 +16306,7 @@ var Timeline2 = ({ state, totalTime }) => {
|
|
|
16328
16306
|
}
|
|
16329
16307
|
};
|
|
16330
16308
|
}, [state, timeDifferenceMs]);
|
|
16331
|
-
return /* @__PURE__ */
|
|
16309
|
+
return /* @__PURE__ */ jsx26("div", { className: "w-full border border-timecode-usage-foreground p-px", children: /* @__PURE__ */ jsx26("div", { className: "relative h-1 w-full overflow-hidden", children: /* @__PURE__ */ jsx26(
|
|
16332
16310
|
"div",
|
|
16333
16311
|
{
|
|
16334
16312
|
className: "absolute inset-y-0 left-0 bg-timecode-usage-foreground",
|
|
@@ -16380,8 +16358,8 @@ var TimecodeDisplay = ({
|
|
|
16380
16358
|
}
|
|
16381
16359
|
}
|
|
16382
16360
|
}, [hooks, play, pause, state.state]);
|
|
16383
|
-
return /* @__PURE__ */
|
|
16384
|
-
/* @__PURE__ */
|
|
16361
|
+
return /* @__PURE__ */ jsxs9("div", { className: "flex grow flex-col gap-px", children: [
|
|
16362
|
+
/* @__PURE__ */ jsxs9(
|
|
16385
16363
|
"div",
|
|
16386
16364
|
{
|
|
16387
16365
|
className: cn(
|
|
@@ -16393,8 +16371,8 @@ var TimecodeDisplay = ({
|
|
|
16393
16371
|
)
|
|
16394
16372
|
),
|
|
16395
16373
|
children: [
|
|
16396
|
-
headerComponents && /* @__PURE__ */
|
|
16397
|
-
/* @__PURE__ */
|
|
16374
|
+
headerComponents && /* @__PURE__ */ jsx26("div", { className: "flex flex-wrap gap-0.25", children: headerComponents }),
|
|
16375
|
+
/* @__PURE__ */ jsx26(
|
|
16398
16376
|
SizeAwareDiv,
|
|
16399
16377
|
{
|
|
16400
16378
|
className: cn(
|
|
@@ -16409,7 +16387,7 @@ var TimecodeDisplay = ({
|
|
|
16409
16387
|
)
|
|
16410
16388
|
),
|
|
16411
16389
|
onClick: toggle,
|
|
16412
|
-
children: /* @__PURE__ */
|
|
16390
|
+
children: /* @__PURE__ */ jsx26("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx26("span", { className: cn("font-mono text-timecode-adaptive"), children: state.state === "none" ? "--:--:--:---" : state.state === "stopped" ? displayMillis(state.positionMillis) : /* @__PURE__ */ jsx26(
|
|
16413
16391
|
ActiveTimecodeText,
|
|
16414
16392
|
{
|
|
16415
16393
|
effectiveStartTimeMillis: state.effectiveStartTimeMillis,
|
|
@@ -16418,8 +16396,8 @@ var TimecodeDisplay = ({
|
|
|
16418
16396
|
) }) })
|
|
16419
16397
|
}
|
|
16420
16398
|
),
|
|
16421
|
-
hooks?.pause || hooks?.play ? /* @__PURE__ */
|
|
16422
|
-
hooks.beginning && /* @__PURE__ */
|
|
16399
|
+
hooks?.pause || hooks?.play ? /* @__PURE__ */ jsxs9("div", { className: "flex justify-center gap-px", children: [
|
|
16400
|
+
hooks.beginning && /* @__PURE__ */ jsx26(
|
|
16423
16401
|
ControlButton,
|
|
16424
16402
|
{
|
|
16425
16403
|
onClick: beginning,
|
|
@@ -16430,7 +16408,7 @@ var TimecodeDisplay = ({
|
|
|
16430
16408
|
className: "text-timecode-usage-foreground!"
|
|
16431
16409
|
}
|
|
16432
16410
|
),
|
|
16433
|
-
hooks.seekRelative && /* @__PURE__ */
|
|
16411
|
+
hooks.seekRelative && /* @__PURE__ */ jsx26(
|
|
16434
16412
|
ControlButton,
|
|
16435
16413
|
{
|
|
16436
16414
|
onClick: back5seconds,
|
|
@@ -16441,7 +16419,7 @@ var TimecodeDisplay = ({
|
|
|
16441
16419
|
className: "text-timecode-usage-foreground!"
|
|
16442
16420
|
}
|
|
16443
16421
|
),
|
|
16444
|
-
state.state === "none" || state.state === "stopped" ? /* @__PURE__ */
|
|
16422
|
+
state.state === "none" || state.state === "stopped" ? /* @__PURE__ */ jsx26(
|
|
16445
16423
|
ControlButton,
|
|
16446
16424
|
{
|
|
16447
16425
|
onClick: play,
|
|
@@ -16451,7 +16429,7 @@ var TimecodeDisplay = ({
|
|
|
16451
16429
|
title: STRINGS.controls.play,
|
|
16452
16430
|
className: "text-timecode-usage-foreground!"
|
|
16453
16431
|
}
|
|
16454
|
-
) : /* @__PURE__ */
|
|
16432
|
+
) : /* @__PURE__ */ jsx26(
|
|
16455
16433
|
ControlButton,
|
|
16456
16434
|
{
|
|
16457
16435
|
onClick: pause,
|
|
@@ -16462,7 +16440,7 @@ var TimecodeDisplay = ({
|
|
|
16462
16440
|
className: "text-timecode-usage-foreground!"
|
|
16463
16441
|
}
|
|
16464
16442
|
),
|
|
16465
|
-
hooks.seekRelative && /* @__PURE__ */
|
|
16443
|
+
hooks.seekRelative && /* @__PURE__ */ jsx26(
|
|
16466
16444
|
ControlButton,
|
|
16467
16445
|
{
|
|
16468
16446
|
onClick: forward5seconds,
|
|
@@ -16474,33 +16452,33 @@ var TimecodeDisplay = ({
|
|
|
16474
16452
|
}
|
|
16475
16453
|
)
|
|
16476
16454
|
] }) : null,
|
|
16477
|
-
metadata?.totalTime && /* @__PURE__ */
|
|
16455
|
+
metadata?.totalTime && /* @__PURE__ */ jsx26(Timeline2, { state, totalTime: metadata.totalTime })
|
|
16478
16456
|
]
|
|
16479
16457
|
}
|
|
16480
16458
|
),
|
|
16481
|
-
(state.smpteMode !== null || state.accuracyMillis !== null || config.delayMs !== null) && /* @__PURE__ */
|
|
16482
|
-
config.delayMs !== null && /* @__PURE__ */
|
|
16483
|
-
state.smpteMode !== null && /* @__PURE__ */
|
|
16484
|
-
state.accuracyMillis !== null && /* @__PURE__ */
|
|
16459
|
+
(state.smpteMode !== null || state.accuracyMillis !== null || config.delayMs !== null) && /* @__PURE__ */ jsxs9("div", { className: "flex gap-px", children: [
|
|
16460
|
+
config.delayMs !== null && /* @__PURE__ */ jsx26("div", { className: "grow basis-0 truncate bg-sigil-bg-light p-0.5", children: STRINGS.delay(config.delayMs) }),
|
|
16461
|
+
state.smpteMode !== null && /* @__PURE__ */ jsx26("div", { className: "grow basis-0 truncate bg-sigil-bg-light p-0.5", children: STRINGS.smtpeModes[state.smpteMode] }),
|
|
16462
|
+
state.accuracyMillis !== null && /* @__PURE__ */ jsx26("div", { className: "grow basis-0 truncate bg-sigil-bg-light p-0.5", children: STRINGS.accuracy(state.accuracyMillis) })
|
|
16485
16463
|
] }),
|
|
16486
|
-
metadata?.artist || metadata?.title ? /* @__PURE__ */
|
|
16464
|
+
metadata?.artist || metadata?.title ? /* @__PURE__ */ jsx26(
|
|
16487
16465
|
TooltipWrapper,
|
|
16488
16466
|
{
|
|
16489
|
-
tooltip: /* @__PURE__ */
|
|
16490
|
-
metadata.title && /* @__PURE__ */
|
|
16491
|
-
/* @__PURE__ */
|
|
16467
|
+
tooltip: /* @__PURE__ */ jsxs9(Fragment8, { children: [
|
|
16468
|
+
metadata.title && /* @__PURE__ */ jsxs9("div", { children: [
|
|
16469
|
+
/* @__PURE__ */ jsx26("span", { className: "font-bold", children: "Title:" }),
|
|
16492
16470
|
" ",
|
|
16493
16471
|
metadata.title
|
|
16494
16472
|
] }),
|
|
16495
|
-
metadata.artist && /* @__PURE__ */
|
|
16496
|
-
/* @__PURE__ */
|
|
16473
|
+
metadata.artist && /* @__PURE__ */ jsxs9("div", { children: [
|
|
16474
|
+
/* @__PURE__ */ jsx26("span", { className: "font-bold", children: "Artist:" }),
|
|
16497
16475
|
" ",
|
|
16498
16476
|
metadata.artist
|
|
16499
16477
|
] })
|
|
16500
16478
|
] }),
|
|
16501
|
-
children: /* @__PURE__ */
|
|
16502
|
-
metadata.title && /* @__PURE__ */
|
|
16503
|
-
metadata.artist && /* @__PURE__ */
|
|
16479
|
+
children: /* @__PURE__ */ jsxs9("div", { className: "flex gap-px", children: [
|
|
16480
|
+
metadata.title && /* @__PURE__ */ jsx26("div", { className: "grow truncate bg-sigil-bg-light p-0.5 font-bold", children: metadata.title }),
|
|
16481
|
+
metadata.artist && /* @__PURE__ */ jsx26("div", { className: "grow truncate bg-sigil-bg-light p-0.5", children: metadata.artist })
|
|
16504
16482
|
] })
|
|
16505
16483
|
}
|
|
16506
16484
|
) : null
|
|
@@ -16541,7 +16519,7 @@ var TimecodeTreeDisplay = ({
|
|
|
16541
16519
|
}, [id, openNewWidow]);
|
|
16542
16520
|
name = timecode?.name ? [...name, timecode.name] : name;
|
|
16543
16521
|
if (isTimecodeGroup(timecode) && Object.values(timecode.timecodes).length) {
|
|
16544
|
-
return Object.entries(timecode.timecodes).map(([key, child]) => /* @__PURE__ */
|
|
16522
|
+
return Object.entries(timecode.timecodes).map(([key, child]) => /* @__PURE__ */ jsx26(
|
|
16545
16523
|
TimecodeTreeDisplay,
|
|
16546
16524
|
{
|
|
16547
16525
|
config,
|
|
@@ -16557,28 +16535,28 @@ var TimecodeTreeDisplay = ({
|
|
|
16557
16535
|
key
|
|
16558
16536
|
));
|
|
16559
16537
|
}
|
|
16560
|
-
return /* @__PURE__ */
|
|
16538
|
+
return /* @__PURE__ */ jsxs9(
|
|
16561
16539
|
"div",
|
|
16562
16540
|
{
|
|
16563
16541
|
className: "relative flex grow flex-col text-timecode-usage-foreground",
|
|
16564
16542
|
style: color && cssSigilColorUsageVariables("timecode-usage", sigilColorUsage(color)),
|
|
16565
16543
|
children: [
|
|
16566
|
-
/* @__PURE__ */
|
|
16544
|
+
/* @__PURE__ */ jsx26(
|
|
16567
16545
|
TimecodeDisplay,
|
|
16568
16546
|
{
|
|
16569
16547
|
id,
|
|
16570
16548
|
timecode: isTimecodeInstance(timecode) ? timecode : EMPTY_TIMECODE,
|
|
16571
16549
|
config,
|
|
16572
|
-
headerComponents: /* @__PURE__ */
|
|
16573
|
-
/* @__PURE__ */
|
|
16574
|
-
/* @__PURE__ */
|
|
16550
|
+
headerComponents: /* @__PURE__ */ jsxs9(Fragment8, { children: [
|
|
16551
|
+
/* @__PURE__ */ jsxs9("div", { className: "flex grow items-start gap-0.25", children: [
|
|
16552
|
+
/* @__PURE__ */ jsx26(
|
|
16575
16553
|
"div",
|
|
16576
16554
|
{
|
|
16577
16555
|
className: "\n m-0.25 rounded-md border border-sigil-bg-light\n bg-timecode-usage-foreground px-1 py-0.25 text-sigil-control\n text-timecode-usage-text\n ",
|
|
16578
16556
|
children: type
|
|
16579
16557
|
}
|
|
16580
16558
|
),
|
|
16581
|
-
/* @__PURE__ */
|
|
16559
|
+
/* @__PURE__ */ jsx26(
|
|
16582
16560
|
"div",
|
|
16583
16561
|
{
|
|
16584
16562
|
className: cn(
|
|
@@ -16589,8 +16567,8 @@ var TimecodeTreeDisplay = ({
|
|
|
16589
16567
|
}
|
|
16590
16568
|
)
|
|
16591
16569
|
] }),
|
|
16592
|
-
/* @__PURE__ */
|
|
16593
|
-
/* @__PURE__ */
|
|
16570
|
+
/* @__PURE__ */ jsxs9(ControlButtonGroup, { className: "rounded-md bg-sigil-bg-light", children: [
|
|
16571
|
+
/* @__PURE__ */ jsx26(
|
|
16594
16572
|
ControlButton,
|
|
16595
16573
|
{
|
|
16596
16574
|
variant: "toolbar",
|
|
@@ -16604,12 +16582,12 @@ var TimecodeTreeDisplay = ({
|
|
|
16604
16582
|
] })
|
|
16605
16583
|
}
|
|
16606
16584
|
),
|
|
16607
|
-
assignToOutput && id && !isOutputInstanceId(id) && /* @__PURE__ */
|
|
16585
|
+
assignToOutput && id && !isOutputInstanceId(id) && /* @__PURE__ */ jsx26(
|
|
16608
16586
|
SizeAwareDiv,
|
|
16609
16587
|
{
|
|
16610
16588
|
className: "\n absolute inset-0 flex cursor-pointer items-center justify-center\n bg-timecode-backdrop text-timecode-usage-text\n hover:bg-timecode-backdrop-hover\n ",
|
|
16611
16589
|
onClick: () => assignToOutput(id),
|
|
16612
|
-
children: /* @__PURE__ */
|
|
16590
|
+
children: /* @__PURE__ */ jsx26(Icon2, { icon: "link", className: "text-block-icon" })
|
|
16613
16591
|
}
|
|
16614
16592
|
)
|
|
16615
16593
|
]
|
|
@@ -16675,22 +16653,22 @@ var FullscreenTimecodeDisplay = ({
|
|
|
16675
16653
|
}
|
|
16676
16654
|
}, [id, config]);
|
|
16677
16655
|
if (!instanceConfig) {
|
|
16678
|
-
return /* @__PURE__ */
|
|
16656
|
+
return /* @__PURE__ */ jsxs9(
|
|
16679
16657
|
SizeAwareDiv,
|
|
16680
16658
|
{
|
|
16681
16659
|
className: "\n flex grow flex-col items-center justify-center gap-1 bg-sigil-bg-light\n p-1 text-sigil-foreground-muted\n ",
|
|
16682
16660
|
children: [
|
|
16683
|
-
/* @__PURE__ */
|
|
16684
|
-
/* @__PURE__ */
|
|
16661
|
+
/* @__PURE__ */ jsx26(Icon2, { icon: "question_mark", className: "text-block-icon" }),
|
|
16662
|
+
/* @__PURE__ */ jsx26("div", { className: "text-center", children: STRINGS.errors.unknownTimecodeID })
|
|
16685
16663
|
]
|
|
16686
16664
|
}
|
|
16687
16665
|
);
|
|
16688
16666
|
}
|
|
16689
|
-
return /* @__PURE__ */
|
|
16667
|
+
return /* @__PURE__ */ jsx26(
|
|
16690
16668
|
"div",
|
|
16691
16669
|
{
|
|
16692
16670
|
className: "\n flex h-0 grow flex-col gap-px overflow-y-auto bg-sigil-border\n scrollbar-sigil\n ",
|
|
16693
|
-
children: /* @__PURE__ */
|
|
16671
|
+
children: /* @__PURE__ */ jsx26(
|
|
16694
16672
|
TimecodeTreeDisplay,
|
|
16695
16673
|
{
|
|
16696
16674
|
id,
|
|
@@ -16755,6 +16733,54 @@ function v4(options, buf, offset4) {
|
|
|
16755
16733
|
}
|
|
16756
16734
|
var v4_default = v4;
|
|
16757
16735
|
|
|
16736
|
+
// src/components/frontend/toolbox/content.tsx
|
|
16737
|
+
import { jsx as jsx27, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
16738
|
+
var ExternalLink = ({
|
|
16739
|
+
href,
|
|
16740
|
+
children
|
|
16741
|
+
}) => {
|
|
16742
|
+
const { openExternalLink } = useBrowserContext();
|
|
16743
|
+
return /* @__PURE__ */ jsx27(
|
|
16744
|
+
"a",
|
|
16745
|
+
{
|
|
16746
|
+
href,
|
|
16747
|
+
target: "_blank",
|
|
16748
|
+
rel: "noopener noreferrer",
|
|
16749
|
+
onClick: (e) => {
|
|
16750
|
+
e.preventDefault();
|
|
16751
|
+
openExternalLink(href);
|
|
16752
|
+
},
|
|
16753
|
+
className: "\n text-sigil-usage-hint-foreground no-underline\n hover:underline\n ",
|
|
16754
|
+
children
|
|
16755
|
+
}
|
|
16756
|
+
);
|
|
16757
|
+
};
|
|
16758
|
+
var TextButton = ({
|
|
16759
|
+
onClick,
|
|
16760
|
+
children
|
|
16761
|
+
}) => {
|
|
16762
|
+
return /* @__PURE__ */ jsx27(
|
|
16763
|
+
"span",
|
|
16764
|
+
{
|
|
16765
|
+
onClick,
|
|
16766
|
+
className: "\n cursor-pointer text-sigil-usage-hint-foreground\n hover:underline\n ",
|
|
16767
|
+
children
|
|
16768
|
+
}
|
|
16769
|
+
);
|
|
16770
|
+
};
|
|
16771
|
+
var NoToolboxChildren = ({ text }) => {
|
|
16772
|
+
return /* @__PURE__ */ jsxs10(
|
|
16773
|
+
SizeAwareDiv,
|
|
16774
|
+
{
|
|
16775
|
+
className: "\n flex grow flex-col items-center justify-center gap-1 bg-sigil-bg-light\n p-1 text-sigil-foreground-muted\n ",
|
|
16776
|
+
children: [
|
|
16777
|
+
/* @__PURE__ */ jsx27(Icon2, { icon: "handyman", className: "text-block-icon" }),
|
|
16778
|
+
/* @__PURE__ */ jsx27("div", { className: "text-center", children: text })
|
|
16779
|
+
]
|
|
16780
|
+
}
|
|
16781
|
+
);
|
|
16782
|
+
};
|
|
16783
|
+
|
|
16758
16784
|
// src/components/frontend/toolbox/outputs.tsx
|
|
16759
16785
|
import { Fragment as Fragment9, jsx as jsx28, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
16760
16786
|
var DmxConnectionSettings = ({
|
|
@@ -16768,7 +16794,7 @@ var DmxConnectionSettings = ({
|
|
|
16768
16794
|
setInterfaces(null);
|
|
16769
16795
|
getNetworkInterfaces().then((ifs) => setInterfaces(ifs));
|
|
16770
16796
|
}, [getNetworkInterfaces]);
|
|
16771
|
-
|
|
16797
|
+
useEffect26(() => {
|
|
16772
16798
|
refreshInterfaces();
|
|
16773
16799
|
}, [refreshInterfaces]);
|
|
16774
16800
|
if (data.type !== "artnet") {
|
|
@@ -17474,7 +17500,7 @@ var GeneratorsSection = ({
|
|
|
17474
17500
|
};
|
|
17475
17501
|
|
|
17476
17502
|
// src/components/frontend/toolbox/inputs.tsx
|
|
17477
|
-
import { useCallback as useCallback16, useContext as useContext12, useEffect as
|
|
17503
|
+
import { useCallback as useCallback16, useContext as useContext12, useEffect as useEffect27, useState as useState27 } from "react";
|
|
17478
17504
|
import { Fragment as Fragment11, jsx as jsx30, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
17479
17505
|
var DmxConnectionSettings2 = ({
|
|
17480
17506
|
data,
|
|
@@ -17487,7 +17513,7 @@ var DmxConnectionSettings2 = ({
|
|
|
17487
17513
|
setInterfaces(null);
|
|
17488
17514
|
getNetworkInterfaces().then((ifs) => setInterfaces(ifs));
|
|
17489
17515
|
}, [getNetworkInterfaces]);
|
|
17490
|
-
|
|
17516
|
+
useEffect27(() => {
|
|
17491
17517
|
refreshInterfaces();
|
|
17492
17518
|
}, [refreshInterfaces]);
|
|
17493
17519
|
if (data.type !== "artnet") {
|
|
@@ -17560,7 +17586,7 @@ var TCNetConnectionSettings = ({
|
|
|
17560
17586
|
setInterfaces(null);
|
|
17561
17587
|
getNetworkInterfaces().then((ifs) => setInterfaces(ifs));
|
|
17562
17588
|
}, [getNetworkInterfaces]);
|
|
17563
|
-
|
|
17589
|
+
useEffect27(() => {
|
|
17564
17590
|
refreshInterfaces();
|
|
17565
17591
|
}, [refreshInterfaces]);
|
|
17566
17592
|
if (data.type !== "tcnet") {
|
|
@@ -17946,6 +17972,9 @@ var diffJson = (a, b) => {
|
|
|
17946
17972
|
return { type: "value", after: b };
|
|
17947
17973
|
};
|
|
17948
17974
|
|
|
17975
|
+
// src/components/frontend/toolbox/settings.tsx
|
|
17976
|
+
import { useContext as useContext13 } from "react";
|
|
17977
|
+
|
|
17949
17978
|
// ../../packages/sigil/dist/frontend/appearance.js
|
|
17950
17979
|
import { useCallback as useCallback17 } from "react";
|
|
17951
17980
|
import { jsx as jsx31, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
@@ -18023,7 +18052,7 @@ var AppearanceSwitcher = ({
|
|
|
18023
18052
|
};
|
|
18024
18053
|
|
|
18025
18054
|
// ../../packages/sigil/dist/frontend/preferences.js
|
|
18026
|
-
import { useEffect as
|
|
18055
|
+
import { useEffect as useEffect28, useState as useState28 } from "react";
|
|
18027
18056
|
var createBrowserPreferencesHook = (def) => () => {
|
|
18028
18057
|
const [preferences, setPreference] = useState28(() => {
|
|
18029
18058
|
const stored = window.localStorage.getItem(def.key);
|
|
@@ -18046,7 +18075,7 @@ var createBrowserPreferencesHook = (def) => () => {
|
|
|
18046
18075
|
})
|
|
18047
18076
|
);
|
|
18048
18077
|
};
|
|
18049
|
-
|
|
18078
|
+
useEffect28(() => {
|
|
18050
18079
|
const onStorageChange = (event) => {
|
|
18051
18080
|
if (event.key === def.key) {
|
|
18052
18081
|
const newValue = event.newValue;
|
|
@@ -18090,8 +18119,17 @@ var useBrowserPreferences = createBrowserPreferencesHook(TOOLBOX_PREFERENCES);
|
|
|
18090
18119
|
|
|
18091
18120
|
// src/components/frontend/toolbox/settings.tsx
|
|
18092
18121
|
import { jsx as jsx35, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
18122
|
+
var ENABLED_DISABLED_OPTIONS = [
|
|
18123
|
+
{ value: "enabled", label: STRINGS.general.enabled },
|
|
18124
|
+
{ value: "disabled", label: STRINGS.general.disabled }
|
|
18125
|
+
];
|
|
18126
|
+
var DATE_FORMATTER = new Intl.DateTimeFormat(void 0, {
|
|
18127
|
+
timeStyle: "medium"
|
|
18128
|
+
});
|
|
18093
18129
|
var Settings = ({ setWindowMode }) => {
|
|
18094
18130
|
const { preferences, updateBrowserPrefs } = useBrowserPreferences();
|
|
18131
|
+
const { config, updateConfig } = useContext13(ConfigContext);
|
|
18132
|
+
const { updates } = useApplicationState();
|
|
18095
18133
|
return /* @__PURE__ */ jsxs15("div", { className: "flex grow flex-col", children: [
|
|
18096
18134
|
/* @__PURE__ */ jsx35(ToolbarWrapper, { children: /* @__PURE__ */ jsxs15(ToolbarRow, { children: [
|
|
18097
18135
|
/* @__PURE__ */ jsx35("span", { className: "grow p-1", children: STRINGS.settings.title }),
|
|
@@ -18118,26 +18156,607 @@ var Settings = ({ setWindowMode }) => {
|
|
|
18118
18156
|
color: preferences.color,
|
|
18119
18157
|
onColorChange: (color) => updateBrowserPrefs((current) => ({ ...current, color }))
|
|
18120
18158
|
}
|
|
18121
|
-
)
|
|
18159
|
+
),
|
|
18160
|
+
/* @__PURE__ */ jsx35(ControlLabel, { children: STRINGS.updates.settingsLabel }),
|
|
18161
|
+
/* @__PURE__ */ jsx35(
|
|
18162
|
+
ControlSelect,
|
|
18163
|
+
{
|
|
18164
|
+
value: config.checkForUpdates ? "enabled" : "disabled",
|
|
18165
|
+
options: ENABLED_DISABLED_OPTIONS,
|
|
18166
|
+
onChange: (value) => updateConfig((current) => ({
|
|
18167
|
+
...current,
|
|
18168
|
+
checkForUpdates: value === "enabled"
|
|
18169
|
+
})),
|
|
18170
|
+
variant: "large"
|
|
18171
|
+
}
|
|
18172
|
+
),
|
|
18173
|
+
/* @__PURE__ */ jsx35(ControlDetails, { children: STRINGS.updates.settingsDetails }),
|
|
18174
|
+
updates && "lastCheckedMillis" in updates && /* @__PURE__ */ jsx35(ControlDetails, { children: STRINGS.updates.lastChecked(
|
|
18175
|
+
DATE_FORMATTER.format(updates.lastCheckedMillis)
|
|
18176
|
+
) })
|
|
18122
18177
|
] })
|
|
18123
18178
|
}
|
|
18124
18179
|
)
|
|
18125
18180
|
] });
|
|
18126
18181
|
};
|
|
18127
18182
|
|
|
18128
|
-
// src/components/frontend/toolbox/
|
|
18129
|
-
import {
|
|
18130
|
-
|
|
18131
|
-
|
|
18132
|
-
|
|
18183
|
+
// src/components/frontend/toolbox/license.tsx
|
|
18184
|
+
import { useCallback as useCallback18, useContext as useContext15 } from "react";
|
|
18185
|
+
|
|
18186
|
+
// src/components/frontend/toolbox/logo.tsx
|
|
18187
|
+
import { jsx as jsx36, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
18188
|
+
var TimecodeToolboxLogo = (props) => /* @__PURE__ */ jsxs16(
|
|
18189
|
+
"svg",
|
|
18190
|
+
{
|
|
18191
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
18192
|
+
viewBox: "0 0 1365.333 1365.333",
|
|
18193
|
+
...props,
|
|
18194
|
+
children: [
|
|
18195
|
+
/* @__PURE__ */ jsxs16("defs", { children: [
|
|
18196
|
+
/* @__PURE__ */ jsx36("mask", { id: "b", maskUnits: "userSpaceOnUse", children: /* @__PURE__ */ jsx36(
|
|
18197
|
+
"path",
|
|
18198
|
+
{
|
|
18199
|
+
fill: "#fff",
|
|
18200
|
+
"stroke-linecap": "round",
|
|
18201
|
+
"stroke-linejoin": "round",
|
|
18202
|
+
"stroke-width": "50.12",
|
|
18203
|
+
d: "m347.83 438.376 11.825 188.138-36.885 62.692v411.759h986.987v-411.76l-36.886-62.691 11.825-188.138z"
|
|
18204
|
+
}
|
|
18205
|
+
) }),
|
|
18206
|
+
/* @__PURE__ */ jsx36("mask", { id: "g", maskUnits: "userSpaceOnUse", children: /* @__PURE__ */ jsx36(
|
|
18207
|
+
"path",
|
|
18208
|
+
{
|
|
18209
|
+
fill: "#fff",
|
|
18210
|
+
"stroke-linecap": "round",
|
|
18211
|
+
"stroke-linejoin": "round",
|
|
18212
|
+
"stroke-width": "5.581",
|
|
18213
|
+
d: "m523.18 899.13 300.24-394.065s34.365-35.915 46.091-69.549c11.727-33.634.988-72.204-2.46-104.403-5.358-50.016 59.283-109.877 59.283-109.877s69.906-48.692 76.993-40.385-46.397 95.284-39.707 122.272c10.605 42.782 80.61 74.691 115.162 58.516s54.191-119.781 68.45-123.27c14.259-3.49 31.217 85.629 29.104 137.042s-52.322 83.478-83.625 93.094-71.227 10.846-102.507 35.2-361.42 471.203-361.42 471.203z"
|
|
18214
|
+
}
|
|
18215
|
+
) }),
|
|
18216
|
+
/* @__PURE__ */ jsx36("mask", { id: "f", maskUnits: "userSpaceOnUse", children: /* @__PURE__ */ jsx36(
|
|
18217
|
+
"path",
|
|
18218
|
+
{
|
|
18219
|
+
fill: "#fff",
|
|
18220
|
+
"stroke-linecap": "round",
|
|
18221
|
+
"stroke-linejoin": "round",
|
|
18222
|
+
"stroke-width": "5.581",
|
|
18223
|
+
d: "m523.18 899.13 300.24-394.065s34.365-35.915 46.091-69.549c11.727-33.634.988-72.204-2.46-104.403-5.358-50.016 59.283-109.877 59.283-109.877s69.906-48.692 76.993-40.385-46.397 95.284-39.707 122.272c10.605 42.782 80.61 74.691 115.162 58.516s54.191-119.781 68.45-123.27c14.259-3.49 31.217 85.629 29.104 137.042s-52.322 83.478-83.625 93.094-71.227 10.846-102.507 35.2-361.42 471.203-361.42 471.203z"
|
|
18224
|
+
}
|
|
18225
|
+
) }),
|
|
18226
|
+
/* @__PURE__ */ jsx36("mask", { id: "e", maskUnits: "userSpaceOnUse", children: /* @__PURE__ */ jsx36(
|
|
18227
|
+
"path",
|
|
18228
|
+
{
|
|
18229
|
+
fill: "#fff",
|
|
18230
|
+
"stroke-linecap": "round",
|
|
18231
|
+
"stroke-linejoin": "round",
|
|
18232
|
+
"stroke-width": "5.581",
|
|
18233
|
+
d: "m523.18 899.13 300.24-394.065s34.365-35.915 46.091-69.549c11.727-33.634.988-72.204-2.46-104.403-5.358-50.016 59.283-109.877 59.283-109.877s69.906-48.692 76.993-40.385-46.397 95.284-39.707 122.272c10.605 42.782 80.61 74.691 115.162 58.516s54.191-119.781 68.45-123.27c14.259-3.49 31.217 85.629 29.104 137.042s-52.322 83.478-83.625 93.094-71.227 10.846-102.507 35.2-361.42 471.203-361.42 471.203z"
|
|
18234
|
+
}
|
|
18235
|
+
) }),
|
|
18236
|
+
/* @__PURE__ */ jsx36("mask", { id: "d", maskUnits: "userSpaceOnUse", children: /* @__PURE__ */ jsx36(
|
|
18237
|
+
"path",
|
|
18238
|
+
{
|
|
18239
|
+
fill: "#fff",
|
|
18240
|
+
"stroke-linecap": "round",
|
|
18241
|
+
"stroke-linejoin": "round",
|
|
18242
|
+
"stroke-width": "5.581",
|
|
18243
|
+
d: "m523.18 899.13 300.24-394.065s34.365-35.915 46.091-69.549c11.727-33.634.988-72.204-2.46-104.403-5.358-50.016 59.283-109.877 59.283-109.877s69.906-48.692 76.993-40.385-46.397 95.284-39.707 122.272c10.605 42.782 80.61 74.691 115.162 58.516s54.191-119.781 68.45-123.27c14.259-3.49 31.217 85.629 29.104 137.042s-52.322 83.478-83.625 93.094-71.227 10.846-102.507 35.2-361.42 471.203-361.42 471.203z"
|
|
18244
|
+
}
|
|
18245
|
+
) }),
|
|
18246
|
+
/* @__PURE__ */ jsx36("mask", { id: "c", maskUnits: "userSpaceOnUse", children: /* @__PURE__ */ jsx36(
|
|
18247
|
+
"path",
|
|
18248
|
+
{
|
|
18249
|
+
fill: "#fff",
|
|
18250
|
+
"stroke-linecap": "round",
|
|
18251
|
+
"stroke-linejoin": "round",
|
|
18252
|
+
"stroke-width": "5.581",
|
|
18253
|
+
d: "m523.18 899.13 300.24-394.065s34.365-35.915 46.091-69.549c11.727-33.634.988-72.204-2.46-104.403-5.358-50.016 59.283-109.877 59.283-109.877s69.906-48.692 76.993-40.385-46.397 95.284-39.707 122.272c10.605 42.782 80.61 74.691 115.162 58.516s54.191-119.781 68.45-123.27c14.259-3.49 31.217 85.629 29.104 137.042s-52.322 83.478-83.625 93.094-71.227 10.846-102.507 35.2-361.42 471.203-361.42 471.203z"
|
|
18254
|
+
}
|
|
18255
|
+
) }),
|
|
18256
|
+
/* @__PURE__ */ jsx36("mask", { id: "k", maskUnits: "userSpaceOnUse", children: /* @__PURE__ */ jsx36(
|
|
18257
|
+
"path",
|
|
18258
|
+
{
|
|
18259
|
+
fill: "#fff",
|
|
18260
|
+
"stroke-linecap": "round",
|
|
18261
|
+
"stroke-linejoin": "round",
|
|
18262
|
+
"stroke-width": "7.033",
|
|
18263
|
+
d: "m209.947 266.846 76.909 154.59 31.315-12.212 281.763 384.488 39.973-29.294-281.646-384.327 21.561-26.783-124.246-119.9Z"
|
|
18264
|
+
}
|
|
18265
|
+
) }),
|
|
18266
|
+
/* @__PURE__ */ jsx36("mask", { id: "j", maskUnits: "userSpaceOnUse", children: /* @__PURE__ */ jsx36(
|
|
18267
|
+
"path",
|
|
18268
|
+
{
|
|
18269
|
+
fill: "#fff",
|
|
18270
|
+
"stroke-linecap": "round",
|
|
18271
|
+
"stroke-linejoin": "round",
|
|
18272
|
+
"stroke-width": "7.033",
|
|
18273
|
+
d: "m209.947 266.846 76.909 154.59 31.315-12.212 281.763 384.488 39.973-29.294-281.646-384.327 21.561-26.783-124.246-119.9Z"
|
|
18274
|
+
}
|
|
18275
|
+
) }),
|
|
18276
|
+
/* @__PURE__ */ jsx36("mask", { id: "i", maskUnits: "userSpaceOnUse", children: /* @__PURE__ */ jsx36(
|
|
18277
|
+
"path",
|
|
18278
|
+
{
|
|
18279
|
+
fill: "#fff",
|
|
18280
|
+
"stroke-linecap": "round",
|
|
18281
|
+
"stroke-linejoin": "round",
|
|
18282
|
+
"stroke-width": "7.033",
|
|
18283
|
+
d: "m209.947 266.846 76.909 154.59 31.315-12.212 281.763 384.488 39.973-29.294-281.646-384.327 21.561-26.783-124.246-119.9Z"
|
|
18284
|
+
}
|
|
18285
|
+
) }),
|
|
18286
|
+
/* @__PURE__ */ jsx36("mask", { id: "h", maskUnits: "userSpaceOnUse", children: /* @__PURE__ */ jsx36(
|
|
18287
|
+
"path",
|
|
18288
|
+
{
|
|
18289
|
+
fill: "#fff",
|
|
18290
|
+
"stroke-linecap": "round",
|
|
18291
|
+
"stroke-linejoin": "round",
|
|
18292
|
+
"stroke-width": "7.033",
|
|
18293
|
+
d: "m209.947 266.846 76.909 154.59 31.315-12.212 281.763 384.488 39.973-29.294-281.646-384.327 21.561-26.783-124.246-119.9Z"
|
|
18294
|
+
}
|
|
18295
|
+
) }),
|
|
18296
|
+
/* @__PURE__ */ jsx36(
|
|
18297
|
+
"filter",
|
|
18298
|
+
{
|
|
18299
|
+
id: "a",
|
|
18300
|
+
width: "1.201",
|
|
18301
|
+
height: "1.19",
|
|
18302
|
+
x: "-.101",
|
|
18303
|
+
y: "-.074",
|
|
18304
|
+
"color-interpolation-filters": "sRGB",
|
|
18305
|
+
children: /* @__PURE__ */ jsx36("feGaussianBlur", { stdDeviation: "10.298" })
|
|
18306
|
+
}
|
|
18307
|
+
)
|
|
18308
|
+
] }),
|
|
18309
|
+
/* @__PURE__ */ jsxs16(
|
|
18310
|
+
"g",
|
|
18311
|
+
{
|
|
18312
|
+
stroke: "#000",
|
|
18313
|
+
"stroke-linecap": "round",
|
|
18314
|
+
"stroke-linejoin": "round",
|
|
18315
|
+
filter: "url(#a)",
|
|
18316
|
+
opacity: ".25",
|
|
18317
|
+
transform: "translate(-216.03 -84.295)scale(1.10099)",
|
|
18318
|
+
children: [
|
|
18319
|
+
/* @__PURE__ */ jsx36(
|
|
18320
|
+
"path",
|
|
18321
|
+
{
|
|
18322
|
+
"stroke-width": "153.76517303999998",
|
|
18323
|
+
d: "m337.226 438.886 12.093 192.397-37.72 64.11v421.08h1009.328v-421.08l-37.72-64.11 12.093-192.397z",
|
|
18324
|
+
opacity: "1"
|
|
18325
|
+
}
|
|
18326
|
+
),
|
|
18327
|
+
/* @__PURE__ */ jsx36(
|
|
18328
|
+
"path",
|
|
18329
|
+
{
|
|
18330
|
+
"stroke-width": "80.096",
|
|
18331
|
+
d: "m671.405 893.22 272.7-357.92s31.213-32.62 41.864-63.169.898-65.581-2.235-94.827c-4.866-45.427 53.846-99.798 53.846-99.798s63.494-44.226 69.93-36.68-42.14 86.544-36.064 111.056c9.632 38.858 73.216 67.84 104.599 53.149 31.382-14.691 49.22-108.795 62.171-111.964s28.353 77.775 26.435 124.473-47.523 75.82-75.955 84.554-64.694 9.851-93.104 31.972c-28.41 22.12-328.269 427.981-328.269 427.981z"
|
|
18332
|
+
}
|
|
18333
|
+
),
|
|
18334
|
+
/* @__PURE__ */ jsx36(
|
|
18335
|
+
"path",
|
|
18336
|
+
{
|
|
18337
|
+
"stroke-width": "80.096",
|
|
18338
|
+
d: "m386.903 318.933 69.855 140.41 28.443-11.092 255.918 349.22 36.307-26.606L521.614 421.79l19.583-24.326-112.85-108.903z"
|
|
18339
|
+
}
|
|
18340
|
+
)
|
|
18341
|
+
]
|
|
18342
|
+
}
|
|
18343
|
+
),
|
|
18344
|
+
/* @__PURE__ */ jsxs16("g", { stroke: "#fff", "stroke-linecap": "round", "stroke-linejoin": "round", children: [
|
|
18345
|
+
/* @__PURE__ */ jsx36(
|
|
18346
|
+
"path",
|
|
18347
|
+
{
|
|
18348
|
+
fill: "#8c63d9",
|
|
18349
|
+
"stroke-width": "165.54595738999998",
|
|
18350
|
+
d: "m166.927 398.352 13.02 207.137-40.611 69.024v453.341h1086.661V674.513l-40.61-69.024 13.02-207.137H424.595Z"
|
|
18351
|
+
}
|
|
18352
|
+
),
|
|
18353
|
+
/* @__PURE__ */ jsx36(
|
|
18354
|
+
"path",
|
|
18355
|
+
{
|
|
18356
|
+
fill: "none",
|
|
18357
|
+
"stroke-width": "73.48667853999999",
|
|
18358
|
+
d: "m209.947 266.846 76.909 154.59 31.315-12.212 281.763 384.488 39.973-29.294-281.646-384.327 21.561-26.783-124.246-119.9z"
|
|
18359
|
+
}
|
|
18360
|
+
),
|
|
18361
|
+
/* @__PURE__ */ jsx36(
|
|
18362
|
+
"path",
|
|
18363
|
+
{
|
|
18364
|
+
fill: "none",
|
|
18365
|
+
"stroke-width": "66.746",
|
|
18366
|
+
d: "m671.405 893.22 272.7-357.92s31.213-32.62 41.864-63.169.898-65.581-2.235-94.827c-4.866-45.427 53.846-99.798 53.846-99.798s63.494-44.226 69.93-36.68-42.14 86.544-36.064 111.056c9.632 38.858 73.216 67.84 104.599 53.149 31.382-14.691 49.22-108.795 62.171-111.964s28.353 77.775 26.435 124.473-47.523 75.82-75.955 84.554-64.694 9.851-93.104 31.972c-28.41 22.12-328.269 427.981-328.269 427.981z",
|
|
18367
|
+
transform: "translate(-216.03 -84.295)scale(1.10099)"
|
|
18368
|
+
}
|
|
18369
|
+
)
|
|
18370
|
+
] }),
|
|
18371
|
+
/* @__PURE__ */ jsx36(
|
|
18372
|
+
"path",
|
|
18373
|
+
{
|
|
18374
|
+
fill: "#8c63d9",
|
|
18375
|
+
stroke: "#263238",
|
|
18376
|
+
"stroke-linecap": "round",
|
|
18377
|
+
"stroke-linejoin": "round",
|
|
18378
|
+
"stroke-width": "55.182",
|
|
18379
|
+
d: "m166.927 398.352 13.02 207.137-40.611 69.023v453.342h1086.661V674.512l-40.61-69.023 13.02-207.137z"
|
|
18380
|
+
}
|
|
18381
|
+
),
|
|
18382
|
+
/* @__PURE__ */ jsx36(
|
|
18383
|
+
"path",
|
|
18384
|
+
{
|
|
18385
|
+
fill: "#cc7000",
|
|
18386
|
+
stroke: "#ffba66",
|
|
18387
|
+
"stroke-linecap": "round",
|
|
18388
|
+
"stroke-linejoin": "round",
|
|
18389
|
+
"stroke-width": "38.593",
|
|
18390
|
+
d: "M322.77 689.206h986.986l-36.885-62.693H359.655Z",
|
|
18391
|
+
mask: "url(#b)",
|
|
18392
|
+
transform: "translate(-216.03 -84.295)scale(1.10099)"
|
|
18393
|
+
}
|
|
18394
|
+
),
|
|
18395
|
+
/* @__PURE__ */ jsx36(
|
|
18396
|
+
"path",
|
|
18397
|
+
{
|
|
18398
|
+
fill: "#ff8c00",
|
|
18399
|
+
d: "m1185.387 605.49 13.02-207.138H166.926l13.02 207.137z"
|
|
18400
|
+
}
|
|
18401
|
+
),
|
|
18402
|
+
/* @__PURE__ */ jsx36(
|
|
18403
|
+
"path",
|
|
18404
|
+
{
|
|
18405
|
+
fill: "none",
|
|
18406
|
+
stroke: "#263238",
|
|
18407
|
+
"stroke-linecap": "round",
|
|
18408
|
+
"stroke-linejoin": "round",
|
|
18409
|
+
"stroke-width": "29.395",
|
|
18410
|
+
d: "m523.18 899.13 300.24-394.065s34.365-35.915 46.091-69.549c11.727-33.634.988-72.204-2.46-104.403-5.358-50.016 59.283-109.877 59.283-109.877s69.906-48.692 76.993-40.385-46.397 95.284-39.707 122.272c10.605 42.782 80.61 74.691 115.162 58.516s54.191-119.781 68.45-123.27c14.259-3.49 31.217 85.629 29.104 137.042s-52.322 83.478-83.625 93.094-71.227 10.846-102.507 35.2-361.42 471.203-361.42 471.203z"
|
|
18411
|
+
}
|
|
18412
|
+
),
|
|
18413
|
+
/* @__PURE__ */ jsx36(
|
|
18414
|
+
"path",
|
|
18415
|
+
{
|
|
18416
|
+
fill: "#eceff1",
|
|
18417
|
+
d: "m916.084 52.25 420.493 180.531-532.698 916.066-476.546-308.58Z",
|
|
18418
|
+
mask: "url(#c)"
|
|
18419
|
+
}
|
|
18420
|
+
),
|
|
18421
|
+
/* @__PURE__ */ jsx36(
|
|
18422
|
+
"path",
|
|
18423
|
+
{
|
|
18424
|
+
fill: "#fff",
|
|
18425
|
+
d: "M856.06 362.55s35.273 37.417 44.671 47.481 30.133 23.878 30.133 23.878-19.577-12.395-133.162 132.35c-113.586 144.744-274.29 356.33-274.29 356.33l-74.43-62.208z",
|
|
18426
|
+
mask: "url(#d)"
|
|
18427
|
+
}
|
|
18428
|
+
),
|
|
18429
|
+
/* @__PURE__ */ jsx36(
|
|
18430
|
+
"path",
|
|
18431
|
+
{
|
|
18432
|
+
fill: "#fff",
|
|
18433
|
+
d: "M1003.804 214.75s-61.324 47.811-85.42 85.1c-24.096 37.29-8.4 134.552-8.4 134.552l-119.375-94.095 193.083-235.652 92.963 84.914z",
|
|
18434
|
+
mask: "url(#e)"
|
|
18435
|
+
}
|
|
18436
|
+
),
|
|
18437
|
+
/* @__PURE__ */ jsx36(
|
|
18438
|
+
"path",
|
|
18439
|
+
{
|
|
18440
|
+
fill: "#cfd8dc",
|
|
18441
|
+
d: "M1128.958 213.086s18.838 96.946 18.548 125.56c-.29 28.612-8.26 73.801-33.74 89.024s-63.802 38.756-115.38 20.88-172.024-84.115-172.024-84.115S981.864 470.314 1006.22 474.08s112.252 10.05 112.252 10.05l90.662-46.814 21.129-221.796z",
|
|
18442
|
+
mask: "url(#f)"
|
|
18443
|
+
}
|
|
18444
|
+
),
|
|
18445
|
+
/* @__PURE__ */ jsx36(
|
|
18446
|
+
"path",
|
|
18447
|
+
{
|
|
18448
|
+
fill: "#cfd8dc",
|
|
18449
|
+
d: "M1041.552 459.425s-36.954 8.644-65.379 28.54-170.117 214.54-170.117 214.54L582.36 996.25l52.042 26.094 450.026-523.432z",
|
|
18450
|
+
mask: "url(#g)"
|
|
18451
|
+
}
|
|
18452
|
+
),
|
|
18453
|
+
/* @__PURE__ */ jsx36(
|
|
18454
|
+
"path",
|
|
18455
|
+
{
|
|
18456
|
+
fill: "none",
|
|
18457
|
+
stroke: "#263238",
|
|
18458
|
+
"stroke-linecap": "round",
|
|
18459
|
+
"stroke-linejoin": "round",
|
|
18460
|
+
"stroke-width": "29.395",
|
|
18461
|
+
d: "m209.947 266.846 76.909 154.59 31.315-12.212 281.763 384.488 39.973-29.294-281.646-384.327 21.561-26.783-124.246-119.9Z"
|
|
18462
|
+
}
|
|
18463
|
+
),
|
|
18464
|
+
/* @__PURE__ */ jsx36(
|
|
18465
|
+
"path",
|
|
18466
|
+
{
|
|
18467
|
+
fill: "#eceff1",
|
|
18468
|
+
d: "m105.922 257.574 152.745-109.918 438.66 518.005-348.484 67.536Z",
|
|
18469
|
+
mask: "url(#h)"
|
|
18470
|
+
}
|
|
18471
|
+
),
|
|
18472
|
+
/* @__PURE__ */ jsx36(
|
|
18473
|
+
"path",
|
|
18474
|
+
{
|
|
18475
|
+
fill: "#fff",
|
|
18476
|
+
d: "M326.613 211.828s-59.58 39.097-77.947 64.605C232.303 299.16 204.56 380.52 204.56 380.52l-48.272-119.485 119.003-77.722z",
|
|
18477
|
+
mask: "url(#i)"
|
|
18478
|
+
}
|
|
18479
|
+
),
|
|
18480
|
+
/* @__PURE__ */ jsx36(
|
|
18481
|
+
"path",
|
|
18482
|
+
{
|
|
18483
|
+
fill: "#cfd8dc",
|
|
18484
|
+
d: "M248.625 369.326s24.346 28.663 44.076 34.332c15.33 4.405 30.118-5.584 30.118-5.584l212.415 286.577-185.65 5.65z",
|
|
18485
|
+
mask: "url(#j)"
|
|
18486
|
+
}
|
|
18487
|
+
),
|
|
18488
|
+
/* @__PURE__ */ jsx36(
|
|
18489
|
+
"path",
|
|
18490
|
+
{
|
|
18491
|
+
fill: "#cfd8dc",
|
|
18492
|
+
d: "M355.22 375.68s11.46-16.196 12.454-25.01c3.052-27.043-32.344-49.296-32.344-49.296l77.092 54.069-53.634 24.84z",
|
|
18493
|
+
mask: "url(#k)"
|
|
18494
|
+
}
|
|
18495
|
+
),
|
|
18496
|
+
/* @__PURE__ */ jsx36("path", { fill: "#ffba66", d: "M170.482 652.84h1025.265v453.341H170.482Z" }),
|
|
18497
|
+
/* @__PURE__ */ jsx36("path", { fill: "#ff8c00", d: "M139.336 674.512h1086.662v453.342H139.336Z" }),
|
|
18498
|
+
/* @__PURE__ */ jsx36(
|
|
18499
|
+
"rect",
|
|
18500
|
+
{
|
|
18501
|
+
width: "875.482",
|
|
18502
|
+
height: "332.3",
|
|
18503
|
+
x: "244.926",
|
|
18504
|
+
y: "735.033",
|
|
18505
|
+
fill: "#cc7000",
|
|
18506
|
+
rx: "77.883",
|
|
18507
|
+
ry: "77.883"
|
|
18508
|
+
}
|
|
18509
|
+
),
|
|
18510
|
+
/* @__PURE__ */ jsx36(
|
|
18511
|
+
"path",
|
|
18512
|
+
{
|
|
18513
|
+
fill: "#fff",
|
|
18514
|
+
d: "M316.789 901.245q0-47.968 15.206-71.828 15.206-23.984 45.743-23.984 30.66 0 45.866 23.86t15.206 71.952q0 47.968-15.206 71.828-15.207 23.86-45.866 23.86-30.537 0-45.743-23.86-15.206-23.984-15.206-71.828m42.528 49.328q5.81 15.453 18.42 15.453 12.734 0 18.545-15.453 5.81-15.454 5.81-49.328 0-12.857-.865-22.995l-43.146 68.737q.618 1.978 1.236 3.586m18.42-114.233q-12.61 0-18.42 15.453-5.81 15.454-5.81 49.452 0 10.508.494 19.162l42.528-67.872-.247-.742q-5.81-15.453-18.544-15.453m91.486 64.905q0-47.968 15.206-71.828 15.206-23.984 45.742-23.984 30.66 0 45.867 23.86t15.206 71.952q0 47.968-15.206 71.828-15.207 23.86-45.867 23.86-30.536 0-45.742-23.86-15.206-23.984-15.206-71.828m42.528 49.328q5.81 15.453 18.42 15.453 12.734 0 18.545-15.453 5.81-15.454 5.81-49.328 0-12.858-.865-22.995l-43.147 68.737q.619 1.978 1.237 3.586m18.42-114.233q-12.61 0-18.42 15.453-5.81 15.454-5.81 49.452 0 10.508.494 19.162l42.528-67.872-.247-.742q-5.81-15.453-18.545-15.453M661.96 861.93h41.169v45.124h-41.169Zm0 86.045h41.169v45.372h-41.169Zm112.131-46.731q0-47.968 15.207-71.828 15.206-23.984 45.742-23.984 30.66 0 45.866 23.86 15.207 23.86 15.207 71.952 0 47.968-15.207 71.828-15.206 23.86-45.866 23.86-30.536 0-45.742-23.86-15.207-23.984-15.207-71.828m42.528 49.328q5.811 15.453 18.421 15.453 12.734 0 18.544-15.453 5.81-15.454 5.81-49.328 0-12.858-.865-22.995l-43.146 68.737q.618 1.978 1.236 3.586M835.04 836.34q-12.61 0-18.42 15.453-5.811 15.454-5.811 49.452 0 10.508.494 19.162l42.529-67.872-.248-.742q-5.81-15.453-18.544-15.453m91.485 64.905q0-47.968 15.206-71.828 15.207-23.984 45.743-23.984 30.66 0 45.866 23.86t15.206 71.952q0 47.968-15.206 71.828t-45.866 23.86q-30.536 0-45.743-23.86-15.206-23.984-15.206-71.828m42.528 49.328q5.81 15.453 18.42 15.453 12.735 0 18.545-15.453 5.81-15.454 5.81-49.328 0-12.858-.865-22.995l-43.146 68.737q.618 1.978 1.236 3.586m18.42-114.233q-12.61 0-18.42 15.453-5.81 15.454-5.81 49.452 0 10.508.494 19.162l42.528-67.872-.247-.742q-5.81-15.453-18.544-15.453",
|
|
18515
|
+
"aria-label": "00:00"
|
|
18516
|
+
}
|
|
18517
|
+
)
|
|
18518
|
+
]
|
|
18519
|
+
}
|
|
18520
|
+
);
|
|
18521
|
+
|
|
18522
|
+
// src/components/frontend/toolbox/core/layout.tsx
|
|
18523
|
+
import { useContext as useContext14, useState as useState29 } from "react";
|
|
18524
|
+
|
|
18525
|
+
// src/components/frontend/toolbox/core/footer.tsx
|
|
18526
|
+
import { Fragment as Fragment12, jsx as jsx37, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
18527
|
+
var Footer = ({ openLicenseDetails }) => {
|
|
18528
|
+
return /* @__PURE__ */ jsxs17(
|
|
18529
|
+
"div",
|
|
18530
|
+
{
|
|
18531
|
+
className: "\n flex items-center justify-center gap-1 border-t border-sigil-border\n bg-sigil-bg-dark p-1 text-[80%]\n ",
|
|
18532
|
+
children: [
|
|
18533
|
+
/* @__PURE__ */ jsxs17("span", { children: [
|
|
18534
|
+
"Created by",
|
|
18535
|
+
"\xA0",
|
|
18536
|
+
/* @__PURE__ */ jsx37(ExternalLink, { href: "https://arcanewizards.com", children: "Arcane Wizards" })
|
|
18537
|
+
] }),
|
|
18538
|
+
/* @__PURE__ */ jsx37(ToolbarDivider, {}),
|
|
18539
|
+
/* @__PURE__ */ jsx37(ExternalLink, { href: SOURCE_CODE_URL, children: STRINGS.sourceCode }),
|
|
18540
|
+
openLicenseDetails && /* @__PURE__ */ jsxs17(Fragment12, { children: [
|
|
18541
|
+
/* @__PURE__ */ jsx37(ToolbarDivider, {}),
|
|
18542
|
+
/* @__PURE__ */ jsx37(TextButton, { onClick: openLicenseDetails, children: STRINGS.license })
|
|
18543
|
+
] })
|
|
18544
|
+
]
|
|
18545
|
+
}
|
|
18133
18546
|
);
|
|
18134
|
-
|
|
18135
|
-
|
|
18136
|
-
|
|
18137
|
-
|
|
18547
|
+
};
|
|
18548
|
+
|
|
18549
|
+
// ../../packages/sigil/dist/frontend/styling.hooks.js
|
|
18550
|
+
import { useEffect as useEffect29 } from "react";
|
|
18551
|
+
var useRootHintVariables = (color) => {
|
|
18552
|
+
useEffect29(() => {
|
|
18553
|
+
const root = document.querySelector(".arcane-theme-root");
|
|
18554
|
+
if (!root) return;
|
|
18555
|
+
Object.entries(cssHintColorVariables(color)).forEach(([key, value]) => {
|
|
18556
|
+
root.style.setProperty(key, value);
|
|
18557
|
+
});
|
|
18558
|
+
}, [color]);
|
|
18559
|
+
};
|
|
18560
|
+
|
|
18561
|
+
// src/components/frontend/toolbox/core/layout.tsx
|
|
18562
|
+
import { Fragment as Fragment13, jsx as jsx38, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
18563
|
+
var Layout = ({
|
|
18564
|
+
modes,
|
|
18565
|
+
children,
|
|
18566
|
+
licenseMode,
|
|
18567
|
+
footer
|
|
18568
|
+
}) => {
|
|
18569
|
+
const [windowMode, setWindowMode] = useState29(null);
|
|
18570
|
+
const { connection, reconnect } = useContext14(StageContext);
|
|
18138
18571
|
const { preferences } = useBrowserPreferences();
|
|
18139
18572
|
useRootHintVariables(preferences.color);
|
|
18573
|
+
return /* @__PURE__ */ jsxs18("div", { className: "flex h-screen flex-col", children: [
|
|
18574
|
+
/* @__PURE__ */ jsx38(ToolbarWrapper, { children: /* @__PURE__ */ jsxs18(ToolbarRow, { children: [
|
|
18575
|
+
/* @__PURE__ */ jsx38(
|
|
18576
|
+
"div",
|
|
18577
|
+
{
|
|
18578
|
+
className: "\n flex h-full min-h-[36px] grow items-center justify-center px-1\n app-title-bar\n ",
|
|
18579
|
+
children: /* @__PURE__ */ jsx38("span", { className: "font-bold text-hint-gradient", children: STRINGS.title })
|
|
18580
|
+
}
|
|
18581
|
+
),
|
|
18582
|
+
modes && /* @__PURE__ */ jsxs18(Fragment13, { children: [
|
|
18583
|
+
/* @__PURE__ */ jsx38(ToolbarDivider, {}),
|
|
18584
|
+
Object.entries(modes).map(([key, { icon, title }]) => /* @__PURE__ */ jsx38(
|
|
18585
|
+
ControlButton,
|
|
18586
|
+
{
|
|
18587
|
+
onClick: () => setWindowMode((mode) => mode === key ? null : key),
|
|
18588
|
+
variant: "titlebar",
|
|
18589
|
+
icon,
|
|
18590
|
+
active: windowMode === key,
|
|
18591
|
+
title: STRINGS.toggle(title)
|
|
18592
|
+
},
|
|
18593
|
+
key
|
|
18594
|
+
))
|
|
18595
|
+
] })
|
|
18596
|
+
] }) }),
|
|
18597
|
+
/* @__PURE__ */ jsx38("div", { className: "relative flex h-0 grow flex-col", children: connection.state !== "connected" ? /* @__PURE__ */ jsxs18(
|
|
18598
|
+
SizeAwareDiv,
|
|
18599
|
+
{
|
|
18600
|
+
className: "\n flex grow flex-col items-center justify-center gap-1\n bg-sigil-bg-light p-1 text-sigil-foreground-muted\n ",
|
|
18601
|
+
children: [
|
|
18602
|
+
/* @__PURE__ */ jsx38(Icon2, { icon: "signal_disconnected", className: "text-block-icon" }),
|
|
18603
|
+
/* @__PURE__ */ jsx38("div", { className: "text-center", children: STRINGS.connectionError }),
|
|
18604
|
+
/* @__PURE__ */ jsx38(ControlButton, { onClick: reconnect, variant: "large", icon: "replay", children: STRINGS.reconnect })
|
|
18605
|
+
]
|
|
18606
|
+
}
|
|
18607
|
+
) : windowMode && modes?.[windowMode] ? modes[windowMode].child(setWindowMode) : children }),
|
|
18608
|
+
footer && /* @__PURE__ */ jsx38(
|
|
18609
|
+
Footer,
|
|
18610
|
+
{
|
|
18611
|
+
openLicenseDetails: licenseMode && (() => setWindowMode(
|
|
18612
|
+
(mode) => mode === licenseMode ? null : licenseMode
|
|
18613
|
+
))
|
|
18614
|
+
}
|
|
18615
|
+
)
|
|
18616
|
+
] });
|
|
18617
|
+
};
|
|
18618
|
+
|
|
18619
|
+
// src/components/frontend/toolbox/license.tsx
|
|
18620
|
+
import { jsx as jsx39, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
18621
|
+
var LicenseContent = ({ license }) => {
|
|
18622
|
+
return /* @__PURE__ */ jsx39("div", { className: "flex flex-col gap-2 rounded-md bg-sigil-bg-light p-2", children: license.split("\n\n").map((paragraph, index2) => /* @__PURE__ */ jsx39("p", { className: "m-0", children: paragraph.replace(/\n/g, " ").trim() }, index2)) });
|
|
18623
|
+
};
|
|
18624
|
+
var License = ({ license, setWindowMode }) => {
|
|
18625
|
+
return /* @__PURE__ */ jsx39("div", { className: "flex grow flex-col", children: /* @__PURE__ */ jsxs19(
|
|
18626
|
+
"div",
|
|
18627
|
+
{
|
|
18628
|
+
className: "\n flex grow basis-0 flex-col overflow-y-auto px-2 pb-2 scrollbar-sigil\n ",
|
|
18629
|
+
children: [
|
|
18630
|
+
/* @__PURE__ */ jsx39(TimecodeToolboxLogo, { className: "h-[20%] max-h-[420px] min-h-[110px] w-full" }),
|
|
18631
|
+
/* @__PURE__ */ jsx39(LicenseContent, { license }),
|
|
18632
|
+
/* @__PURE__ */ jsx39("div", { className: "flex justify-center p-2", children: /* @__PURE__ */ jsx39(
|
|
18633
|
+
ControlButton,
|
|
18634
|
+
{
|
|
18635
|
+
onClick: () => setWindowMode(null),
|
|
18636
|
+
variant: "large",
|
|
18637
|
+
icon: "close",
|
|
18638
|
+
children: STRINGS.close(STRINGS.license)
|
|
18639
|
+
}
|
|
18640
|
+
) })
|
|
18641
|
+
]
|
|
18642
|
+
}
|
|
18643
|
+
) });
|
|
18644
|
+
};
|
|
18645
|
+
var LicenseGate = ({ info }) => {
|
|
18646
|
+
const { sendMessage } = useContext15(StageContext);
|
|
18647
|
+
const acceptLicense = useCallback18(() => {
|
|
18648
|
+
sendMessage?.({
|
|
18649
|
+
type: "component-message",
|
|
18650
|
+
namespace: "timecode-toolbox",
|
|
18651
|
+
component: "license-gate",
|
|
18652
|
+
componentKey: info.key,
|
|
18653
|
+
action: "accept-license",
|
|
18654
|
+
hash: info.hash
|
|
18655
|
+
});
|
|
18656
|
+
}, [sendMessage, info.key, info.hash]);
|
|
18657
|
+
return /* @__PURE__ */ jsx39(
|
|
18658
|
+
Layout,
|
|
18659
|
+
{
|
|
18660
|
+
footer: true,
|
|
18661
|
+
modes: {
|
|
18662
|
+
debug: {
|
|
18663
|
+
child: () => /* @__PURE__ */ jsx39(Debugger, { title: STRINGS.debugger, className: "size-full" }),
|
|
18664
|
+
icon: "bug_report",
|
|
18665
|
+
title: STRINGS.debugger
|
|
18666
|
+
}
|
|
18667
|
+
},
|
|
18668
|
+
children: /* @__PURE__ */ jsxs19(
|
|
18669
|
+
"div",
|
|
18670
|
+
{
|
|
18671
|
+
className: "\n flex grow basis-0 flex-col overflow-y-auto px-2 pb-2 scrollbar-sigil\n ",
|
|
18672
|
+
children: [
|
|
18673
|
+
/* @__PURE__ */ jsx39(TimecodeToolboxLogo, { className: "h-[20%] max-h-[420px] min-h-[110px] w-full" }),
|
|
18674
|
+
/* @__PURE__ */ jsx39("h2", { className: "text-center text-sigil-usage-hint-foreground", children: STRINGS.licensePrompt }),
|
|
18675
|
+
/* @__PURE__ */ jsx39(LicenseContent, { license: info.license }),
|
|
18676
|
+
/* @__PURE__ */ jsx39("div", { className: "flex justify-center p-2", children: /* @__PURE__ */ jsx39(
|
|
18677
|
+
ControlButton,
|
|
18678
|
+
{
|
|
18679
|
+
onClick: acceptLicense,
|
|
18680
|
+
variant: "large",
|
|
18681
|
+
icon: "check",
|
|
18682
|
+
primary: true,
|
|
18683
|
+
children: STRINGS.acceptLicense
|
|
18684
|
+
}
|
|
18685
|
+
) })
|
|
18686
|
+
]
|
|
18687
|
+
}
|
|
18688
|
+
)
|
|
18689
|
+
}
|
|
18690
|
+
);
|
|
18691
|
+
};
|
|
18692
|
+
|
|
18693
|
+
// src/components/frontend/toolbox/core/updates.tsx
|
|
18694
|
+
import { useCallback as useCallback19, useEffect as useEffect30, useState as useState30 } from "react";
|
|
18695
|
+
import { jsx as jsx40, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
18696
|
+
var UpdateBanner = () => {
|
|
18697
|
+
const { updates } = useApplicationState();
|
|
18698
|
+
const { version } = useSystemInformation();
|
|
18699
|
+
const { openExternalLink } = useBrowserContext();
|
|
18700
|
+
const [displayState, setDisplayState] = useState30();
|
|
18140
18701
|
useEffect30(() => {
|
|
18702
|
+
if (updates?.type !== "loading") {
|
|
18703
|
+
setDisplayState(updates);
|
|
18704
|
+
}
|
|
18705
|
+
}, [updates]);
|
|
18706
|
+
const openDownloadLink = useCallback19(() => {
|
|
18707
|
+
if (displayState?.type === "updates-available" && displayState.response.downloadUrl) {
|
|
18708
|
+
openExternalLink(displayState.response.downloadUrl);
|
|
18709
|
+
}
|
|
18710
|
+
}, [displayState, openExternalLink]);
|
|
18711
|
+
if (displayState?.type === "error") {
|
|
18712
|
+
return /* @__PURE__ */ jsxs20(
|
|
18713
|
+
"div",
|
|
18714
|
+
{
|
|
18715
|
+
className: "\n flex items-center justify-center gap-2 border-b\n border-sigil-usage-orange-border bg-sigil-usage-orange-background p-1\n text-sigil-usage-orange-text\n ",
|
|
18716
|
+
children: [
|
|
18717
|
+
/* @__PURE__ */ jsx40(Icon2, { icon: "error" }),
|
|
18718
|
+
displayState.error
|
|
18719
|
+
]
|
|
18720
|
+
}
|
|
18721
|
+
);
|
|
18722
|
+
}
|
|
18723
|
+
if (displayState?.type === "updates-available") {
|
|
18724
|
+
return /* @__PURE__ */ jsxs20(
|
|
18725
|
+
"div",
|
|
18726
|
+
{
|
|
18727
|
+
className: "\n flex items-center justify-center gap-2 border-b\n border-sigil-usage-blue-border bg-sigil-usage-blue-background p-1\n text-sigil-usage-blue-text\n ",
|
|
18728
|
+
children: [
|
|
18729
|
+
/* @__PURE__ */ jsx40(Icon2, { icon: "upgrade" }),
|
|
18730
|
+
STRINGS.updates.updateAvailable(
|
|
18731
|
+
version,
|
|
18732
|
+
displayState.response.latestVersion
|
|
18733
|
+
),
|
|
18734
|
+
displayState.response.downloadUrl && /* @__PURE__ */ jsxs20(
|
|
18735
|
+
"button",
|
|
18736
|
+
{
|
|
18737
|
+
className: "\n flex cursor-pointer items-center gap-0.5 rounded-md border\n border-sigil-usage-blue-selected-border\n bg-sigil-usage-blue-selected-background px-1 py-0.5\n text-sigil-usage-blue-text\n hover:bg-sigil-usage-blue-selected-border\n ",
|
|
18738
|
+
onClick: openDownloadLink,
|
|
18739
|
+
children: [
|
|
18740
|
+
/* @__PURE__ */ jsx40(Icon2, { icon: "download" }),
|
|
18741
|
+
STRINGS.updates.download
|
|
18742
|
+
]
|
|
18743
|
+
}
|
|
18744
|
+
)
|
|
18745
|
+
]
|
|
18746
|
+
}
|
|
18747
|
+
);
|
|
18748
|
+
}
|
|
18749
|
+
return null;
|
|
18750
|
+
};
|
|
18751
|
+
|
|
18752
|
+
// src/components/frontend/toolbox/root.tsx
|
|
18753
|
+
import { Fragment as Fragment14, jsx as jsx41, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
18754
|
+
var ToolboxRoot = ({ info }) => {
|
|
18755
|
+
const { config } = info;
|
|
18756
|
+
const { sendMessage, call } = useContext16(StageContext);
|
|
18757
|
+
const [dialogMode, setDialogMode] = useState31(null);
|
|
18758
|
+
const [assignToOutput, setAssignToOutput] = useState31(null);
|
|
18759
|
+
useEffect31(() => {
|
|
18141
18760
|
if (assignToOutput) {
|
|
18142
18761
|
const onEscape = (e) => {
|
|
18143
18762
|
if (e.key === "Escape") {
|
|
@@ -18150,7 +18769,7 @@ var ToolboxRoot = ({ info }) => {
|
|
|
18150
18769
|
};
|
|
18151
18770
|
}
|
|
18152
18771
|
}, [assignToOutput]);
|
|
18153
|
-
const updateConfig =
|
|
18772
|
+
const updateConfig = useCallback20(
|
|
18154
18773
|
(change) => {
|
|
18155
18774
|
const diff = diffJson(config, change(config));
|
|
18156
18775
|
sendMessage?.({
|
|
@@ -18171,8 +18790,8 @@ var ToolboxRoot = ({ info }) => {
|
|
|
18171
18790
|
}),
|
|
18172
18791
|
[config, updateConfig]
|
|
18173
18792
|
);
|
|
18174
|
-
const closeDialog =
|
|
18175
|
-
const getNetworkInterfaces =
|
|
18793
|
+
const closeDialog = useCallback20(() => setDialogMode(null), []);
|
|
18794
|
+
const getNetworkInterfaces = useCallback20(async () => {
|
|
18176
18795
|
if (!call) {
|
|
18177
18796
|
throw new Error("No call function available");
|
|
18178
18797
|
}
|
|
@@ -18213,7 +18832,7 @@ var ToolboxRoot = ({ info }) => {
|
|
|
18213
18832
|
setAssignToOutput(null);
|
|
18214
18833
|
};
|
|
18215
18834
|
}, [assignToOutput, updateConfig]);
|
|
18216
|
-
const callHandler =
|
|
18835
|
+
const callHandler = useCallback20(
|
|
18217
18836
|
async ({ path, handler, args }) => {
|
|
18218
18837
|
if (!call) {
|
|
18219
18838
|
throw new Error("No call function available");
|
|
@@ -18241,138 +18860,110 @@ var ToolboxRoot = ({ info }) => {
|
|
|
18241
18860
|
() => getFragmentValue("tc", TIMECODE_INSTANCE_ID),
|
|
18242
18861
|
[]
|
|
18243
18862
|
);
|
|
18244
|
-
const isMainWindow = windowedTimecodeId === null;
|
|
18245
18863
|
const root = useMemo15(
|
|
18246
|
-
() => /* @__PURE__ */
|
|
18247
|
-
/* @__PURE__ */
|
|
18248
|
-
|
|
18249
|
-
|
|
18250
|
-
|
|
18251
|
-
|
|
18252
|
-
|
|
18253
|
-
|
|
18254
|
-
|
|
18255
|
-
|
|
18256
|
-
|
|
18257
|
-
|
|
18258
|
-
|
|
18259
|
-
{
|
|
18260
|
-
onClick: () => setWindowMode(
|
|
18261
|
-
(mode) => mode === "settings" ? null : "settings"
|
|
18864
|
+
() => windowedTimecodeId ? /* @__PURE__ */ jsx41(Layout, { modes: null, children: /* @__PURE__ */ jsx41(FullscreenTimecodeDisplay, { id: windowedTimecodeId }) }) : /* @__PURE__ */ jsxs21(Fragment14, { children: [
|
|
18865
|
+
/* @__PURE__ */ jsx41(
|
|
18866
|
+
Layout,
|
|
18867
|
+
{
|
|
18868
|
+
footer: true,
|
|
18869
|
+
modes: {
|
|
18870
|
+
license: {
|
|
18871
|
+
child: (setWindowMode) => /* @__PURE__ */ jsx41(
|
|
18872
|
+
License,
|
|
18873
|
+
{
|
|
18874
|
+
license: info.license,
|
|
18875
|
+
setWindowMode
|
|
18876
|
+
}
|
|
18262
18877
|
),
|
|
18263
|
-
|
|
18878
|
+
icon: "info",
|
|
18879
|
+
title: STRINGS.license
|
|
18880
|
+
},
|
|
18881
|
+
settings: {
|
|
18882
|
+
child: (setWindowMode) => /* @__PURE__ */ jsx41(Settings, { setWindowMode }),
|
|
18264
18883
|
icon: "settings",
|
|
18265
|
-
|
|
18266
|
-
|
|
18267
|
-
|
|
18268
|
-
|
|
18269
|
-
/* @__PURE__ */ jsx36(
|
|
18270
|
-
ControlButton,
|
|
18271
|
-
{
|
|
18272
|
-
onClick: () => setWindowMode((mode) => mode === "debug" ? null : "debug"),
|
|
18273
|
-
variant: "titlebar",
|
|
18884
|
+
title: STRINGS.settings.title
|
|
18885
|
+
},
|
|
18886
|
+
debug: {
|
|
18887
|
+
child: () => /* @__PURE__ */ jsx41(Debugger, { title: STRINGS.debugger, className: "size-full" }),
|
|
18274
18888
|
icon: "bug_report",
|
|
18275
|
-
|
|
18276
|
-
title: STRINGS.toggle(STRINGS.debugger)
|
|
18889
|
+
title: STRINGS.debugger
|
|
18277
18890
|
}
|
|
18278
|
-
|
|
18279
|
-
|
|
18280
|
-
|
|
18281
|
-
|
|
18282
|
-
|
|
18283
|
-
|
|
18284
|
-
|
|
18285
|
-
|
|
18286
|
-
|
|
18287
|
-
|
|
18288
|
-
|
|
18289
|
-
|
|
18290
|
-
|
|
18291
|
-
|
|
18292
|
-
|
|
18293
|
-
|
|
18294
|
-
|
|
18295
|
-
|
|
18296
|
-
|
|
18297
|
-
|
|
18298
|
-
|
|
18299
|
-
|
|
18300
|
-
|
|
18301
|
-
|
|
18302
|
-
|
|
18303
|
-
|
|
18304
|
-
|
|
18305
|
-
|
|
18306
|
-
|
|
18307
|
-
|
|
18308
|
-
|
|
18309
|
-
|
|
18310
|
-
|
|
18311
|
-
|
|
18312
|
-
|
|
18313
|
-
|
|
18314
|
-
|
|
18315
|
-
|
|
18316
|
-
|
|
18317
|
-
}
|
|
18318
|
-
)
|
|
18319
|
-
]
|
|
18320
|
-
}
|
|
18321
|
-
),
|
|
18322
|
-
dialogMode?.section.type === "inputs" && /* @__PURE__ */ jsx36(
|
|
18323
|
-
InputSettingsDialog,
|
|
18324
|
-
{
|
|
18325
|
-
close: closeDialog,
|
|
18326
|
-
input: dialogMode.section.input,
|
|
18327
|
-
target: dialogMode.target
|
|
18328
|
-
}
|
|
18329
|
-
),
|
|
18330
|
-
dialogMode?.section.type === "generators" && /* @__PURE__ */ jsx36(
|
|
18331
|
-
GeneratorSettingsDialog,
|
|
18332
|
-
{
|
|
18333
|
-
close: closeDialog,
|
|
18334
|
-
generator: dialogMode.section.generator,
|
|
18335
|
-
target: dialogMode.target
|
|
18336
|
-
}
|
|
18337
|
-
),
|
|
18338
|
-
dialogMode?.section.type === "outputs" && /* @__PURE__ */ jsx36(
|
|
18339
|
-
OutputSettingsDialog,
|
|
18340
|
-
{
|
|
18341
|
-
close: closeDialog,
|
|
18342
|
-
output: dialogMode.section.output,
|
|
18343
|
-
target: dialogMode.target
|
|
18344
|
-
}
|
|
18345
|
-
)
|
|
18346
|
-
] }),
|
|
18347
|
-
isMainWindow && /* @__PURE__ */ jsxs16(
|
|
18348
|
-
"div",
|
|
18891
|
+
},
|
|
18892
|
+
licenseMode: "license",
|
|
18893
|
+
children: /* @__PURE__ */ jsxs21(Fragment14, { children: [
|
|
18894
|
+
/* @__PURE__ */ jsx41(UpdateBanner, {}),
|
|
18895
|
+
/* @__PURE__ */ jsxs21(
|
|
18896
|
+
"div",
|
|
18897
|
+
{
|
|
18898
|
+
className: "\n flex h-0 grow flex-col gap-px overflow-y-auto bg-sigil-border\n scrollbar-sigil\n ",
|
|
18899
|
+
children: [
|
|
18900
|
+
/* @__PURE__ */ jsx41(
|
|
18901
|
+
InputsSection,
|
|
18902
|
+
{
|
|
18903
|
+
setDialogMode,
|
|
18904
|
+
assignToOutput: assignToOutputCallback
|
|
18905
|
+
}
|
|
18906
|
+
),
|
|
18907
|
+
/* @__PURE__ */ jsx41(
|
|
18908
|
+
GeneratorsSection,
|
|
18909
|
+
{
|
|
18910
|
+
setDialogMode,
|
|
18911
|
+
assignToOutput: assignToOutputCallback
|
|
18912
|
+
}
|
|
18913
|
+
),
|
|
18914
|
+
/* @__PURE__ */ jsx41(
|
|
18915
|
+
OutputsSection,
|
|
18916
|
+
{
|
|
18917
|
+
setDialogMode,
|
|
18918
|
+
assignToOutput,
|
|
18919
|
+
setAssignToOutput
|
|
18920
|
+
}
|
|
18921
|
+
)
|
|
18922
|
+
]
|
|
18923
|
+
}
|
|
18924
|
+
)
|
|
18925
|
+
] })
|
|
18926
|
+
}
|
|
18927
|
+
),
|
|
18928
|
+
dialogMode?.section.type === "inputs" && /* @__PURE__ */ jsx41(
|
|
18929
|
+
InputSettingsDialog,
|
|
18349
18930
|
{
|
|
18350
|
-
|
|
18351
|
-
|
|
18352
|
-
|
|
18353
|
-
|
|
18354
|
-
|
|
18355
|
-
|
|
18931
|
+
close: closeDialog,
|
|
18932
|
+
input: dialogMode.section.input,
|
|
18933
|
+
target: dialogMode.target
|
|
18934
|
+
}
|
|
18935
|
+
),
|
|
18936
|
+
dialogMode?.section.type === "generators" && /* @__PURE__ */ jsx41(
|
|
18937
|
+
GeneratorSettingsDialog,
|
|
18938
|
+
{
|
|
18939
|
+
close: closeDialog,
|
|
18940
|
+
generator: dialogMode.section.generator,
|
|
18941
|
+
target: dialogMode.target
|
|
18942
|
+
}
|
|
18943
|
+
),
|
|
18944
|
+
dialogMode?.section.type === "outputs" && /* @__PURE__ */ jsx41(
|
|
18945
|
+
OutputSettingsDialog,
|
|
18946
|
+
{
|
|
18947
|
+
close: closeDialog,
|
|
18948
|
+
output: dialogMode.section.output,
|
|
18949
|
+
target: dialogMode.target
|
|
18356
18950
|
}
|
|
18357
18951
|
)
|
|
18358
18952
|
] }),
|
|
18359
18953
|
[
|
|
18360
|
-
connection,
|
|
18361
|
-
reconnect,
|
|
18362
18954
|
assignToOutput,
|
|
18363
18955
|
assignToOutputCallback,
|
|
18364
18956
|
closeDialog,
|
|
18365
18957
|
dialogMode,
|
|
18366
|
-
|
|
18367
|
-
|
|
18368
|
-
windowedTimecodeId
|
|
18958
|
+
windowedTimecodeId,
|
|
18959
|
+
info.license
|
|
18369
18960
|
]
|
|
18370
18961
|
);
|
|
18371
|
-
return /* @__PURE__ */
|
|
18962
|
+
return /* @__PURE__ */ jsx41(ConfigContext.Provider, { value: configContext, children: /* @__PURE__ */ jsx41(NetworkContext.Provider, { value: networkContextValue, children: /* @__PURE__ */ jsx41(ApplicationStateContext.Provider, { value: info.state, children: /* @__PURE__ */ jsx41(ApplicationHandlersContext.Provider, { value: handlers, children: root }) }) }) });
|
|
18372
18963
|
};
|
|
18373
18964
|
|
|
18374
18965
|
// src/components/frontend/index.tsx
|
|
18375
|
-
import { jsx as
|
|
18966
|
+
import { jsx as jsx45 } from "react/jsx-runtime";
|
|
18376
18967
|
var timecodeToolboxFrontendComponents = () => ({
|
|
18377
18968
|
namespace: NAMESPACE,
|
|
18378
18969
|
render: (info) => {
|
|
@@ -18381,7 +18972,9 @@ var timecodeToolboxFrontendComponents = () => ({
|
|
|
18381
18972
|
}
|
|
18382
18973
|
switch (info.component) {
|
|
18383
18974
|
case "toolbox-root":
|
|
18384
|
-
return /* @__PURE__ */
|
|
18975
|
+
return /* @__PURE__ */ jsx45(ToolboxRoot, { info });
|
|
18976
|
+
case "license-gate":
|
|
18977
|
+
return /* @__PURE__ */ jsx45(LicenseGate, { info });
|
|
18385
18978
|
}
|
|
18386
18979
|
}
|
|
18387
18980
|
});
|
|
@@ -18389,7 +18982,7 @@ var startTimecodeToolboxServerFrontend = (browser) => {
|
|
|
18389
18982
|
startSigilFrontend({
|
|
18390
18983
|
browser,
|
|
18391
18984
|
appRenderers: [timecodeToolboxFrontendComponents()],
|
|
18392
|
-
loadingState: () => /* @__PURE__ */
|
|
18985
|
+
loadingState: () => /* @__PURE__ */ jsx45("div", { style: { width: "100%", textAlign: "center", padding: "2rem" }, children: "Loading Toolbox..." })
|
|
18393
18986
|
});
|
|
18394
18987
|
};
|
|
18395
18988
|
window.startTimecodeToolboxServerFrontend = startTimecodeToolboxServerFrontend;
|