gitxelectron 1.3.6 → 1.3.8
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/README.md +247 -70
- package/bin/auto-push.js +526 -0
- package/bin/cli.js +41 -7
- package/out/main/index.js +20 -7
- package/out/renderer/assets/index-D_wJ7hR7.css +2989 -0
- package/out/renderer/assets/{index-BQtoJFsL.js → index-FVTFdxtU.js} +971 -380
- package/out/renderer/index.html +2 -2
- package/package.json +4 -2
- package/out/renderer/assets/index-CmvL1s5W.css +0 -2913
|
@@ -13042,55 +13042,115 @@ function RepositoryWizard({ repoPath, onClose, onSuccess }) {
|
|
|
13042
13042
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4", children: [
|
|
13043
13043
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
13044
13044
|
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: "block text-xs font-semibold text-secondary mb-1", children: "Add .gitignore" }),
|
|
13045
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
13046
|
-
|
|
13047
|
-
|
|
13048
|
-
|
|
13049
|
-
|
|
13050
|
-
|
|
13051
|
-
|
|
13052
|
-
|
|
13053
|
-
|
|
13054
|
-
|
|
13055
|
-
|
|
13056
|
-
|
|
13057
|
-
|
|
13058
|
-
|
|
13059
|
-
|
|
13060
|
-
|
|
13045
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative", children: [
|
|
13046
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
13047
|
+
"select",
|
|
13048
|
+
{
|
|
13049
|
+
value: gitignoreTemplate,
|
|
13050
|
+
onChange: (e) => setGitignoreTemplate(e.target.value),
|
|
13051
|
+
className: "w-full bg-surface-hover border border-border rounded-md px-3 py-2 text-sm text-primary focus:outline-none focus:border-accent appearance-none cursor-pointer transition-colors pr-8",
|
|
13052
|
+
children: [
|
|
13053
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("option", { value: "", className: "bg-canvas text-primary", children: "None" }),
|
|
13054
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("option", { value: "Node", className: "bg-canvas text-primary", children: "Node" }),
|
|
13055
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("option", { value: "Python", className: "bg-canvas text-primary", children: "Python" }),
|
|
13056
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("option", { value: "Java", className: "bg-canvas text-primary", children: "Java" }),
|
|
13057
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("option", { value: "C++", className: "bg-canvas text-primary", children: "C++" }),
|
|
13058
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("option", { value: "Go", className: "bg-canvas text-primary", children: "Go" })
|
|
13059
|
+
]
|
|
13060
|
+
}
|
|
13061
|
+
),
|
|
13062
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "pointer-events-none absolute inset-y-0 right-0 flex items-center px-2 text-secondary", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
13063
|
+
"svg",
|
|
13064
|
+
{
|
|
13065
|
+
className: "w-4 h-4",
|
|
13066
|
+
fill: "none",
|
|
13067
|
+
stroke: "currentColor",
|
|
13068
|
+
viewBox: "0 0 24 24",
|
|
13069
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
13070
|
+
"path",
|
|
13071
|
+
{
|
|
13072
|
+
strokeLinecap: "round",
|
|
13073
|
+
strokeLinejoin: "round",
|
|
13074
|
+
strokeWidth: "2",
|
|
13075
|
+
d: "M19 9l-7 7-7-7"
|
|
13076
|
+
}
|
|
13077
|
+
)
|
|
13078
|
+
}
|
|
13079
|
+
) })
|
|
13080
|
+
] })
|
|
13061
13081
|
] }),
|
|
13062
13082
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
13063
13083
|
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: "block text-xs font-semibold text-secondary mb-1", children: "Choose a license" }),
|
|
13064
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
13065
|
-
|
|
13066
|
-
|
|
13067
|
-
|
|
13068
|
-
|
|
13069
|
-
|
|
13070
|
-
|
|
13071
|
-
|
|
13072
|
-
|
|
13073
|
-
|
|
13074
|
-
|
|
13075
|
-
|
|
13076
|
-
|
|
13077
|
-
|
|
13078
|
-
|
|
13084
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative", children: [
|
|
13085
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
13086
|
+
"select",
|
|
13087
|
+
{
|
|
13088
|
+
value: licenseTemplate,
|
|
13089
|
+
onChange: (e) => setLicenseTemplate(e.target.value),
|
|
13090
|
+
className: "w-full bg-surface-hover border border-border rounded-md px-3 py-2 text-sm text-primary focus:outline-none focus:border-accent appearance-none cursor-pointer transition-colors pr-8",
|
|
13091
|
+
children: [
|
|
13092
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("option", { value: "", className: "bg-canvas text-primary", children: "None" }),
|
|
13093
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("option", { value: "mit", className: "bg-canvas text-primary", children: "MIT License" }),
|
|
13094
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("option", { value: "gpl-3.0", className: "bg-canvas text-primary", children: "GNU GPLv3" }),
|
|
13095
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("option", { value: "apache-2.0", className: "bg-canvas text-primary", children: "Apache License 2.0" }),
|
|
13096
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("option", { value: "bsd-3-clause", className: "bg-canvas text-primary", children: "BSD 3-Clause" })
|
|
13097
|
+
]
|
|
13098
|
+
}
|
|
13099
|
+
),
|
|
13100
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "pointer-events-none absolute inset-y-0 right-0 flex items-center px-2 text-secondary", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
13101
|
+
"svg",
|
|
13102
|
+
{
|
|
13103
|
+
className: "w-4 h-4",
|
|
13104
|
+
fill: "none",
|
|
13105
|
+
stroke: "currentColor",
|
|
13106
|
+
viewBox: "0 0 24 24",
|
|
13107
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
13108
|
+
"path",
|
|
13109
|
+
{
|
|
13110
|
+
strokeLinecap: "round",
|
|
13111
|
+
strokeLinejoin: "round",
|
|
13112
|
+
strokeWidth: "2",
|
|
13113
|
+
d: "M19 9l-7 7-7-7"
|
|
13114
|
+
}
|
|
13115
|
+
)
|
|
13116
|
+
}
|
|
13117
|
+
) })
|
|
13118
|
+
] })
|
|
13079
13119
|
] })
|
|
13080
13120
|
] })
|
|
13081
13121
|
] })
|
|
13082
13122
|
] }),
|
|
13083
13123
|
action === "existing" && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-4 bg-canvas p-4 rounded-lg border border-border", children: [
|
|
13084
13124
|
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: "block text-xs font-semibold text-secondary mb-1", children: "Select Repository" }),
|
|
13085
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
13086
|
-
|
|
13087
|
-
|
|
13088
|
-
|
|
13089
|
-
|
|
13090
|
-
|
|
13091
|
-
|
|
13092
|
-
|
|
13093
|
-
|
|
13125
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative", children: [
|
|
13126
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
13127
|
+
"select",
|
|
13128
|
+
{
|
|
13129
|
+
value: selectedRepoUrl,
|
|
13130
|
+
onChange: (e) => setSelectedRepoUrl(e.target.value),
|
|
13131
|
+
className: "w-full bg-surface-hover border border-border rounded-md px-3 py-2 text-sm text-primary focus:outline-none focus:border-accent appearance-none cursor-pointer transition-colors pr-8",
|
|
13132
|
+
children: userRepos.map((r) => /* @__PURE__ */ jsxRuntimeExports.jsx("option", { value: r.clone_url, className: "bg-canvas text-primary", children: r.full_name }, r.id))
|
|
13133
|
+
}
|
|
13134
|
+
),
|
|
13135
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "pointer-events-none absolute inset-y-0 right-0 flex items-center px-2 text-secondary", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
13136
|
+
"svg",
|
|
13137
|
+
{
|
|
13138
|
+
className: "w-4 h-4",
|
|
13139
|
+
fill: "none",
|
|
13140
|
+
stroke: "currentColor",
|
|
13141
|
+
viewBox: "0 0 24 24",
|
|
13142
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
13143
|
+
"path",
|
|
13144
|
+
{
|
|
13145
|
+
strokeLinecap: "round",
|
|
13146
|
+
strokeLinejoin: "round",
|
|
13147
|
+
strokeWidth: "2",
|
|
13148
|
+
d: "M19 9l-7 7-7-7"
|
|
13149
|
+
}
|
|
13150
|
+
)
|
|
13151
|
+
}
|
|
13152
|
+
) })
|
|
13153
|
+
] })
|
|
13094
13154
|
] }),
|
|
13095
13155
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex gap-3 pt-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
13096
13156
|
"button",
|
|
@@ -23000,12 +23060,18 @@ function IconBase(props) {
|
|
|
23000
23060
|
function FiX(props) {
|
|
23001
23061
|
return GenIcon({ "attr": { "viewBox": "0 0 24 24", "fill": "none", "stroke": "currentColor", "strokeWidth": "2", "strokeLinecap": "round", "strokeLinejoin": "round" }, "child": [{ "tag": "line", "attr": { "x1": "18", "y1": "6", "x2": "6", "y2": "18" }, "child": [] }, { "tag": "line", "attr": { "x1": "6", "y1": "6", "x2": "18", "y2": "18" }, "child": [] }] })(props);
|
|
23002
23062
|
}
|
|
23063
|
+
function FiTerminal(props) {
|
|
23064
|
+
return GenIcon({ "attr": { "viewBox": "0 0 24 24", "fill": "none", "stroke": "currentColor", "strokeWidth": "2", "strokeLinecap": "round", "strokeLinejoin": "round" }, "child": [{ "tag": "polyline", "attr": { "points": "4 17 10 11 4 5" }, "child": [] }, { "tag": "line", "attr": { "x1": "12", "y1": "19", "x2": "20", "y2": "19" }, "child": [] }] })(props);
|
|
23065
|
+
}
|
|
23003
23066
|
function FiShield(props) {
|
|
23004
23067
|
return GenIcon({ "attr": { "viewBox": "0 0 24 24", "fill": "none", "stroke": "currentColor", "strokeWidth": "2", "strokeLinecap": "round", "strokeLinejoin": "round" }, "child": [{ "tag": "path", "attr": { "d": "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" }, "child": [] }] })(props);
|
|
23005
23068
|
}
|
|
23006
23069
|
function FiSearch(props) {
|
|
23007
23070
|
return GenIcon({ "attr": { "viewBox": "0 0 24 24", "fill": "none", "stroke": "currentColor", "strokeWidth": "2", "strokeLinecap": "round", "strokeLinejoin": "round" }, "child": [{ "tag": "circle", "attr": { "cx": "11", "cy": "11", "r": "8" }, "child": [] }, { "tag": "line", "attr": { "x1": "21", "y1": "21", "x2": "16.65", "y2": "16.65" }, "child": [] }] })(props);
|
|
23008
23071
|
}
|
|
23072
|
+
function FiRefreshCw(props) {
|
|
23073
|
+
return GenIcon({ "attr": { "viewBox": "0 0 24 24", "fill": "none", "stroke": "currentColor", "strokeWidth": "2", "strokeLinecap": "round", "strokeLinejoin": "round" }, "child": [{ "tag": "polyline", "attr": { "points": "23 4 23 10 17 10" }, "child": [] }, { "tag": "polyline", "attr": { "points": "1 20 1 14 7 14" }, "child": [] }, { "tag": "path", "attr": { "d": "M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15" }, "child": [] }] })(props);
|
|
23074
|
+
}
|
|
23009
23075
|
function FiGithub(props) {
|
|
23010
23076
|
return GenIcon({ "attr": { "viewBox": "0 0 24 24", "fill": "none", "stroke": "currentColor", "strokeWidth": "2", "strokeLinecap": "round", "strokeLinejoin": "round" }, "child": [{ "tag": "path", "attr": { "d": "M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22" }, "child": [] }] })(props);
|
|
23011
23077
|
}
|
|
@@ -23018,6 +23084,12 @@ function FiFolder(props) {
|
|
|
23018
23084
|
function FiFile(props) {
|
|
23019
23085
|
return GenIcon({ "attr": { "viewBox": "0 0 24 24", "fill": "none", "stroke": "currentColor", "strokeWidth": "2", "strokeLinecap": "round", "strokeLinejoin": "round" }, "child": [{ "tag": "path", "attr": { "d": "M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z" }, "child": [] }, { "tag": "polyline", "attr": { "points": "13 2 13 9 20 9" }, "child": [] }] })(props);
|
|
23020
23086
|
}
|
|
23087
|
+
function FiExternalLink(props) {
|
|
23088
|
+
return GenIcon({ "attr": { "viewBox": "0 0 24 24", "fill": "none", "stroke": "currentColor", "strokeWidth": "2", "strokeLinecap": "round", "strokeLinejoin": "round" }, "child": [{ "tag": "path", "attr": { "d": "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" }, "child": [] }, { "tag": "polyline", "attr": { "points": "15 3 21 3 21 9" }, "child": [] }, { "tag": "line", "attr": { "x1": "10", "y1": "14", "x2": "21", "y2": "3" }, "child": [] }] })(props);
|
|
23089
|
+
}
|
|
23090
|
+
function FiCopy(props) {
|
|
23091
|
+
return GenIcon({ "attr": { "viewBox": "0 0 24 24", "fill": "none", "stroke": "currentColor", "strokeWidth": "2", "strokeLinecap": "round", "strokeLinejoin": "round" }, "child": [{ "tag": "rect", "attr": { "x": "9", "y": "9", "width": "13", "height": "13", "rx": "2", "ry": "2" }, "child": [] }, { "tag": "path", "attr": { "d": "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" }, "child": [] }] })(props);
|
|
23092
|
+
}
|
|
23021
23093
|
function FiCode(props) {
|
|
23022
23094
|
return GenIcon({ "attr": { "viewBox": "0 0 24 24", "fill": "none", "stroke": "currentColor", "strokeWidth": "2", "strokeLinecap": "round", "strokeLinejoin": "round" }, "child": [{ "tag": "polyline", "attr": { "points": "16 18 22 12 16 6" }, "child": [] }, { "tag": "polyline", "attr": { "points": "8 6 2 12 8 18" }, "child": [] }] })(props);
|
|
23023
23095
|
}
|
|
@@ -23039,6 +23111,9 @@ function FiArrowLeft(props) {
|
|
|
23039
23111
|
function FiAlertTriangle(props) {
|
|
23040
23112
|
return GenIcon({ "attr": { "viewBox": "0 0 24 24", "fill": "none", "stroke": "currentColor", "strokeWidth": "2", "strokeLinecap": "round", "strokeLinejoin": "round" }, "child": [{ "tag": "path", "attr": { "d": "M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z" }, "child": [] }, { "tag": "line", "attr": { "x1": "12", "y1": "9", "x2": "12", "y2": "13" }, "child": [] }, { "tag": "line", "attr": { "x1": "12", "y1": "17", "x2": "12.01", "y2": "17" }, "child": [] }] })(props);
|
|
23041
23113
|
}
|
|
23114
|
+
function FiAlertCircle(props) {
|
|
23115
|
+
return GenIcon({ "attr": { "viewBox": "0 0 24 24", "fill": "none", "stroke": "currentColor", "strokeWidth": "2", "strokeLinecap": "round", "strokeLinejoin": "round" }, "child": [{ "tag": "circle", "attr": { "cx": "12", "cy": "12", "r": "10" }, "child": [] }, { "tag": "line", "attr": { "x1": "12", "y1": "8", "x2": "12", "y2": "12" }, "child": [] }, { "tag": "line", "attr": { "x1": "12", "y1": "16", "x2": "12.01", "y2": "16" }, "child": [] }] })(props);
|
|
23116
|
+
}
|
|
23042
23117
|
function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
23043
23118
|
const [step, setStep] = reactExports.useState("START");
|
|
23044
23119
|
const [errorMsg, setErrorMsg] = reactExports.useState("");
|
|
@@ -23225,22 +23300,22 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23225
23300
|
{
|
|
23226
23301
|
initial: { opacity: 0, scale: 0.95, y: 20 },
|
|
23227
23302
|
animate: { opacity: 1, scale: 1, y: 0 },
|
|
23228
|
-
className: "bg-
|
|
23303
|
+
className: "bg-canvas shadow-xl border border-border w-full max-w-2xl rounded-2xl overflow-hidden shadow-2xl flex flex-col",
|
|
23229
23304
|
style: { maxHeight: "85vh" },
|
|
23230
23305
|
children: [
|
|
23231
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "p-4 border-b border-
|
|
23306
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "p-4 border-b border-border flex items-center justify-between bg-surface", children: [
|
|
23232
23307
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
23233
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "p-2 bg-
|
|
23308
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "p-2 bg-brand/20 text-brand rounded-lg", children: /* @__PURE__ */ jsxRuntimeExports.jsx(FiGithub, { size: 20 }) }),
|
|
23234
23309
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
23235
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "text-
|
|
23236
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-
|
|
23310
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "text-primary font-semibold text-lg leading-tight", children: "Push Anything" }),
|
|
23311
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-secondary text-xs", children: "Universal GitHub Uploader" })
|
|
23237
23312
|
] })
|
|
23238
23313
|
] }),
|
|
23239
23314
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
23240
23315
|
"button",
|
|
23241
23316
|
{
|
|
23242
23317
|
onClick: handleClose,
|
|
23243
|
-
className: "p-2 text-
|
|
23318
|
+
className: "p-2 text-secondary hover:text-primary rounded-lg hover:bg-surface-hover transition-colors",
|
|
23244
23319
|
children: /* @__PURE__ */ jsxRuntimeExports.jsx(FiX, { size: 20 })
|
|
23245
23320
|
}
|
|
23246
23321
|
)
|
|
@@ -23258,24 +23333,24 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23258
23333
|
className: `flex flex-col items-center justify-center h-full gap-6 rounded-2xl transition-colors border-2 ${isDragging2 ? "border-brand bg-brand/10" : "border-transparent"}`,
|
|
23259
23334
|
children: [
|
|
23260
23335
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-center space-y-2 mb-4", children: [
|
|
23261
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "text-2xl text-
|
|
23262
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-
|
|
23336
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "text-2xl text-primary font-semibold", children: "Select files to push" }),
|
|
23337
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-secondary text-sm", children: "You can push any file or folder directly to any repository." })
|
|
23263
23338
|
] }),
|
|
23264
23339
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid grid-cols-2 gap-4 w-full max-w-md", children: [
|
|
23265
23340
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
23266
23341
|
"button",
|
|
23267
23342
|
{
|
|
23268
23343
|
onClick: () => handleSelectFiles(false),
|
|
23269
|
-
className: "flex flex-col items-center gap-4 p-6 rounded-xl bg-
|
|
23344
|
+
className: "flex flex-col items-center gap-4 p-6 rounded-xl bg-surface border border-border shadow-sm border border-border hover:border-brand hover:bg-brand/10 transition-all group",
|
|
23270
23345
|
children: [
|
|
23271
23346
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
23272
23347
|
FiFile,
|
|
23273
23348
|
{
|
|
23274
23349
|
size: 40,
|
|
23275
|
-
className: "text-
|
|
23350
|
+
className: "text-brand group-hover:scale-110 transition-transform"
|
|
23276
23351
|
}
|
|
23277
23352
|
),
|
|
23278
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-
|
|
23353
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-primary font-medium", children: "Select File(s)" })
|
|
23279
23354
|
]
|
|
23280
23355
|
}
|
|
23281
23356
|
),
|
|
@@ -23283,7 +23358,7 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23283
23358
|
"button",
|
|
23284
23359
|
{
|
|
23285
23360
|
onClick: () => handleSelectFiles(true),
|
|
23286
|
-
className: "flex flex-col items-center gap-4 p-6 rounded-xl bg-
|
|
23361
|
+
className: "flex flex-col items-center gap-4 p-6 rounded-xl bg-surface border border-border shadow-sm border border-border hover:border-purple-500 hover:bg-purple-500/10 transition-all group",
|
|
23287
23362
|
children: [
|
|
23288
23363
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
23289
23364
|
FiFolder,
|
|
@@ -23292,7 +23367,7 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23292
23367
|
className: "text-purple-400 group-hover:scale-110 transition-transform"
|
|
23293
23368
|
}
|
|
23294
23369
|
),
|
|
23295
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-
|
|
23370
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-primary font-medium", children: "Select Folder" })
|
|
23296
23371
|
]
|
|
23297
23372
|
}
|
|
23298
23373
|
)
|
|
@@ -23309,18 +23384,18 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23309
23384
|
exit: { opacity: 0 },
|
|
23310
23385
|
className: "space-y-4",
|
|
23311
23386
|
children: [
|
|
23312
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "text-xl text-
|
|
23313
|
-
accounts.length === 0 ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "p-6 text-center bg-
|
|
23387
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "text-xl text-primary font-semibold mb-4", children: "Select GitHub Account" }),
|
|
23388
|
+
accounts.length === 0 ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "p-6 text-center bg-surface border border-border shadow-sm border border-border rounded-xl flex flex-col items-center gap-4", children: [
|
|
23314
23389
|
/* @__PURE__ */ jsxRuntimeExports.jsx(FiAlertTriangle, { size: 32, className: "text-yellow-500" }),
|
|
23315
23390
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
23316
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-
|
|
23317
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-
|
|
23391
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-primary font-medium mb-1", children: "No GitHub Accounts Found" }),
|
|
23392
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-secondary text-sm", children: "Please close this window and log in to a GitHub account using the Settings panel first." })
|
|
23318
23393
|
] })
|
|
23319
23394
|
] }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid gap-3", children: accounts.map((acc) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
23320
23395
|
"button",
|
|
23321
23396
|
{
|
|
23322
23397
|
onClick: () => handleSelectAccount(acc),
|
|
23323
|
-
className: "flex items-center gap-4 p-4 rounded-xl bg-
|
|
23398
|
+
className: "flex items-center gap-4 p-4 rounded-xl bg-surface border border-border shadow-sm border border-border hover:border-brand transition-colors text-left w-full",
|
|
23324
23399
|
children: [
|
|
23325
23400
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
23326
23401
|
"img",
|
|
@@ -23331,13 +23406,13 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23331
23406
|
}
|
|
23332
23407
|
),
|
|
23333
23408
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
23334
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-
|
|
23409
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-primary font-medium", children: [
|
|
23335
23410
|
"@",
|
|
23336
23411
|
acc.username
|
|
23337
23412
|
] }),
|
|
23338
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-
|
|
23413
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-secondary text-xs", children: "Authenticated" })
|
|
23339
23414
|
] }),
|
|
23340
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(FiArrowRight, { className: "ml-auto text-
|
|
23415
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(FiArrowRight, { className: "ml-auto text-secondary opacity-70" })
|
|
23341
23416
|
]
|
|
23342
23417
|
},
|
|
23343
23418
|
acc.id
|
|
@@ -23354,15 +23429,15 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23354
23429
|
exit: { opacity: 0 },
|
|
23355
23430
|
className: "space-y-4 h-full flex flex-col",
|
|
23356
23431
|
children: [
|
|
23357
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "text-xl text-
|
|
23432
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "text-xl text-primary font-semibold", children: "Select Repository" }),
|
|
23358
23433
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative", children: [
|
|
23359
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(FiSearch, { className: "absolute left-3 top-3 text-
|
|
23434
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(FiSearch, { className: "absolute left-3 top-3 text-secondary" }),
|
|
23360
23435
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
23361
23436
|
"input",
|
|
23362
23437
|
{
|
|
23363
23438
|
type: "text",
|
|
23364
23439
|
placeholder: "Search repositories...",
|
|
23365
|
-
className: "w-full bg-
|
|
23440
|
+
className: "w-full bg-surface border border-border shadow-sm border border-border rounded-lg py-2.5 pl-10 pr-4 text-primary focus:outline-none focus:border-brand",
|
|
23366
23441
|
value: searchRepo,
|
|
23367
23442
|
onChange: (e) => setSearchRepo(e.target.value)
|
|
23368
23443
|
}
|
|
@@ -23372,20 +23447,20 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23372
23447
|
"button",
|
|
23373
23448
|
{
|
|
23374
23449
|
onClick: () => handleSelectRepo(repo),
|
|
23375
|
-
className: "w-full text-left p-3 rounded-lg bg-
|
|
23450
|
+
className: "w-full text-left p-3 rounded-lg bg-surface border border-border shadow-sm border border-border hover:border-brand flex items-center justify-between group",
|
|
23376
23451
|
children: [
|
|
23377
23452
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
23378
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-
|
|
23453
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-primary font-medium flex items-center gap-2", children: [
|
|
23379
23454
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { children: [
|
|
23380
23455
|
repo.owner.login,
|
|
23381
23456
|
"/",
|
|
23382
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-
|
|
23457
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-brand", children: repo.name })
|
|
23383
23458
|
] }),
|
|
23384
|
-
repo.private && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-[10px] px-1.5 py-0.5 rounded bg-gray-700 text-
|
|
23459
|
+
repo.private && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-[10px] px-1.5 py-0.5 rounded bg-gray-700 text-secondary", children: "Private" })
|
|
23385
23460
|
] }),
|
|
23386
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-
|
|
23461
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-secondary opacity-70 text-xs mt-1 truncate", children: repo.description || "No description" })
|
|
23387
23462
|
] }),
|
|
23388
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(FiArrowRight, { className: "text-
|
|
23463
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(FiArrowRight, { className: "text-secondary opacity-50 group-hover:text-brand" })
|
|
23389
23464
|
]
|
|
23390
23465
|
},
|
|
23391
23466
|
repo.id
|
|
@@ -23402,14 +23477,14 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23402
23477
|
exit: { opacity: 0 },
|
|
23403
23478
|
className: "space-y-6",
|
|
23404
23479
|
children: [
|
|
23405
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "text-xl text-
|
|
23480
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "text-xl text-primary font-semibold", children: "Select Branch" }),
|
|
23406
23481
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-4", children: [
|
|
23407
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-3 bg-
|
|
23482
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-3 bg-surface border border-border shadow-sm p-1 rounded-lg border border-border w-fit", children: [
|
|
23408
23483
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
23409
23484
|
"button",
|
|
23410
23485
|
{
|
|
23411
23486
|
onClick: () => setIsNewBranch(false),
|
|
23412
|
-
className: `px-4 py-1.5 rounded-md text-sm font-medium transition-colors ${!isNewBranch ? "bg-
|
|
23487
|
+
className: `px-4 py-1.5 rounded-md text-sm font-medium transition-colors ${!isNewBranch ? "bg-brand text-primary" : "text-secondary hover:text-primary"}`,
|
|
23413
23488
|
children: "Existing Branch"
|
|
23414
23489
|
}
|
|
23415
23490
|
),
|
|
@@ -23417,7 +23492,7 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23417
23492
|
"button",
|
|
23418
23493
|
{
|
|
23419
23494
|
onClick: () => setIsNewBranch(true),
|
|
23420
|
-
className: `px-4 py-1.5 rounded-md text-sm font-medium transition-colors ${isNewBranch ? "bg-
|
|
23495
|
+
className: `px-4 py-1.5 rounded-md text-sm font-medium transition-colors ${isNewBranch ? "bg-brand text-primary" : "text-secondary hover:text-primary"}`,
|
|
23421
23496
|
children: "Create New"
|
|
23422
23497
|
}
|
|
23423
23498
|
)
|
|
@@ -23426,7 +23501,7 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23426
23501
|
"button",
|
|
23427
23502
|
{
|
|
23428
23503
|
onClick: () => setSelectedBranch(b.name),
|
|
23429
|
-
className: `w-full text-left p-3 rounded-lg border flex items-center gap-3 ${selectedBranch === b.name ? "bg-
|
|
23504
|
+
className: `w-full text-left p-3 rounded-lg border flex items-center gap-3 ${selectedBranch === b.name ? "bg-brand/10 border-brand text-brand" : "bg-surface border border-border shadow-sm border-border text-secondary hover:border-accent"}`,
|
|
23430
23505
|
children: [
|
|
23431
23506
|
/* @__PURE__ */ jsxRuntimeExports.jsx(FiGitBranch, {}),
|
|
23432
23507
|
b.name
|
|
@@ -23435,26 +23510,26 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23435
23510
|
b.name
|
|
23436
23511
|
)) }) : /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-4", children: [
|
|
23437
23512
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
23438
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: "block text-
|
|
23513
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: "block text-secondary text-sm mb-1", children: "New Branch Name" }),
|
|
23439
23514
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
23440
23515
|
"input",
|
|
23441
23516
|
{
|
|
23442
23517
|
type: "text",
|
|
23443
23518
|
value: newBranchName,
|
|
23444
23519
|
onChange: (e) => setNewBranchName(e.target.value),
|
|
23445
|
-
className: "w-full bg-
|
|
23520
|
+
className: "w-full bg-surface border border-border shadow-sm border border-border rounded-lg p-2.5 text-primary focus:outline-none focus:border-brand",
|
|
23446
23521
|
placeholder: "e.g., feature/update-assets"
|
|
23447
23522
|
}
|
|
23448
23523
|
)
|
|
23449
23524
|
] }),
|
|
23450
23525
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
23451
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: "block text-
|
|
23526
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: "block text-secondary text-sm mb-1", children: "Base Branch" }),
|
|
23452
23527
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
23453
23528
|
"select",
|
|
23454
23529
|
{
|
|
23455
23530
|
value: baseBranch,
|
|
23456
23531
|
onChange: (e) => setBaseBranch(e.target.value),
|
|
23457
|
-
className: "w-full bg-
|
|
23532
|
+
className: "w-full bg-surface border border-border shadow-sm border border-border rounded-lg p-2.5 text-primary focus:outline-none focus:border-brand appearance-none",
|
|
23458
23533
|
children: branches.map((b) => /* @__PURE__ */ jsxRuntimeExports.jsx("option", { value: b.name, children: b.name }, b.name))
|
|
23459
23534
|
}
|
|
23460
23535
|
)
|
|
@@ -23482,11 +23557,11 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23482
23557
|
exit: { opacity: 0 },
|
|
23483
23558
|
className: "space-y-6",
|
|
23484
23559
|
children: [
|
|
23485
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "text-xl text-
|
|
23486
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-
|
|
23560
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "text-xl text-primary font-semibold", children: "Destination Path" }),
|
|
23561
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-secondary text-sm", children: "Where should these files be placed in the repository?" }),
|
|
23487
23562
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-2", children: [
|
|
23488
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 bg-
|
|
23489
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-
|
|
23563
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 bg-surface border border-border shadow-sm border border-border rounded-lg p-3", children: [
|
|
23564
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-brand", children: [
|
|
23490
23565
|
selectedRepo?.name,
|
|
23491
23566
|
"/"
|
|
23492
23567
|
] }),
|
|
@@ -23496,7 +23571,7 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23496
23571
|
type: "text",
|
|
23497
23572
|
value: destination,
|
|
23498
23573
|
onChange: (e) => setDestination(e.target.value),
|
|
23499
|
-
className: "bg-transparent border-none outline-none text-
|
|
23574
|
+
className: "bg-transparent border-none outline-none text-primary w-full",
|
|
23500
23575
|
placeholder: "/"
|
|
23501
23576
|
}
|
|
23502
23577
|
)
|
|
@@ -23506,7 +23581,7 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23506
23581
|
"button",
|
|
23507
23582
|
{
|
|
23508
23583
|
onClick: () => setDestination("/"),
|
|
23509
|
-
className: "text-xs px-2 py-1 bg-
|
|
23584
|
+
className: "text-xs px-2 py-1 bg-surface hover:bg-surface-hover text-secondary rounded",
|
|
23510
23585
|
children: "Root (/)"
|
|
23511
23586
|
}
|
|
23512
23587
|
),
|
|
@@ -23514,7 +23589,7 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23514
23589
|
"button",
|
|
23515
23590
|
{
|
|
23516
23591
|
onClick: () => setDestination("src/"),
|
|
23517
|
-
className: "text-xs px-2 py-1 bg-
|
|
23592
|
+
className: "text-xs px-2 py-1 bg-surface hover:bg-surface-hover text-secondary rounded",
|
|
23518
23593
|
children: "src/"
|
|
23519
23594
|
}
|
|
23520
23595
|
),
|
|
@@ -23522,18 +23597,18 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23522
23597
|
"button",
|
|
23523
23598
|
{
|
|
23524
23599
|
onClick: () => setDestination("assets/"),
|
|
23525
|
-
className: "text-xs px-2 py-1 bg-
|
|
23600
|
+
className: "text-xs px-2 py-1 bg-surface hover:bg-surface-hover text-secondary rounded",
|
|
23526
23601
|
children: "assets/"
|
|
23527
23602
|
}
|
|
23528
23603
|
)
|
|
23529
23604
|
] })
|
|
23530
23605
|
] }),
|
|
23531
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "bg-
|
|
23532
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("h4", { className: "text-
|
|
23606
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "bg-surface border border-border shadow-sm p-4 rounded-lg border border-border", children: [
|
|
23607
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("h4", { className: "text-secondary font-medium mb-2 text-sm flex items-center gap-2", children: [
|
|
23533
23608
|
/* @__PURE__ */ jsxRuntimeExports.jsx(FiFolder, {}),
|
|
23534
23609
|
" Preview"
|
|
23535
23610
|
] }),
|
|
23536
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-xs text-
|
|
23611
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-xs text-secondary opacity-70 font-mono space-y-1", children: [
|
|
23537
23612
|
files.slice(0, 3).map((f) => {
|
|
23538
23613
|
const name = f.split(/[\/\\]/).pop();
|
|
23539
23614
|
const dest = destination === "/" || destination === "" ? name : `${destination.replace(/\/$/, "")}/${name}`;
|
|
@@ -23550,7 +23625,7 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23550
23625
|
"button",
|
|
23551
23626
|
{
|
|
23552
23627
|
onClick: handleSetupWorkspace,
|
|
23553
|
-
className: "px-6 py-2 bg-
|
|
23628
|
+
className: "px-6 py-2 bg-brand text-primary font-semibold rounded-lg hover:bg-brand brightness-110 transition-colors flex items-center gap-2",
|
|
23554
23629
|
children: [
|
|
23555
23630
|
"Verify & Prepare ",
|
|
23556
23631
|
/* @__PURE__ */ jsxRuntimeExports.jsx(FiArrowRight, {})
|
|
@@ -23569,9 +23644,9 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23569
23644
|
exit: { opacity: 0 },
|
|
23570
23645
|
className: "flex flex-col items-center justify-center h-full gap-4",
|
|
23571
23646
|
children: [
|
|
23572
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-12 h-12 border-4 border-
|
|
23573
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-
|
|
23574
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-
|
|
23647
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-12 h-12 border-4 border-brand/30 border-t-blue-500 rounded-full animate-spin" }),
|
|
23648
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-secondary font-medium animate-pulse", children: "Safely preparing Git workspace..." }),
|
|
23649
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-secondary opacity-70 text-xs", children: "Checking for collisions and establishing sparse-checkout" })
|
|
23575
23650
|
]
|
|
23576
23651
|
},
|
|
23577
23652
|
"loading"
|
|
@@ -23594,14 +23669,14 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23594
23669
|
] })
|
|
23595
23670
|
] })
|
|
23596
23671
|
] }),
|
|
23597
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 bg-
|
|
23598
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-xs font-semibold text-
|
|
23672
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 bg-surface border border-border shadow-sm border border-border rounded-lg p-3 overflow-y-auto custom-scrollbar", children: [
|
|
23673
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-xs font-semibold text-secondary opacity-70 uppercase mb-2", children: "Modified Files" }),
|
|
23599
23674
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "space-y-1", children: collisions.modified.map((m) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-yellow-400 text-sm font-mono truncate py-1", children: [
|
|
23600
23675
|
"M ",
|
|
23601
23676
|
m
|
|
23602
23677
|
] }, m)) }),
|
|
23603
23678
|
collisions.newFiles.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
23604
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-xs font-semibold text-
|
|
23679
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-xs font-semibold text-secondary opacity-70 uppercase mt-4 mb-2", children: "New Files" }),
|
|
23605
23680
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "space-y-1", children: collisions.newFiles.map((n) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
23606
23681
|
"div",
|
|
23607
23682
|
{
|
|
@@ -23620,7 +23695,7 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23620
23695
|
"button",
|
|
23621
23696
|
{
|
|
23622
23697
|
onClick: handleClose,
|
|
23623
|
-
className: "px-5 py-2 bg-
|
|
23698
|
+
className: "px-5 py-2 bg-surface-hover text-primary rounded-lg hover:bg-red-500/20 hover:text-red-400 transition-colors",
|
|
23624
23699
|
children: "Cancel Push"
|
|
23625
23700
|
}
|
|
23626
23701
|
),
|
|
@@ -23629,7 +23704,7 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23629
23704
|
"button",
|
|
23630
23705
|
{
|
|
23631
23706
|
onClick: handleCompare,
|
|
23632
|
-
className: "px-5 py-2 bg-
|
|
23707
|
+
className: "px-5 py-2 bg-surface-hover text-primary rounded-lg hover:bg-surface-hover transition-colors flex items-center gap-2",
|
|
23633
23708
|
children: [
|
|
23634
23709
|
/* @__PURE__ */ jsxRuntimeExports.jsx(FiCode, {}),
|
|
23635
23710
|
" Compare"
|
|
@@ -23652,21 +23727,21 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23652
23727
|
"button",
|
|
23653
23728
|
{
|
|
23654
23729
|
onClick: () => setShowDiff(false),
|
|
23655
|
-
className: "text-
|
|
23730
|
+
className: "text-secondary hover:text-primary",
|
|
23656
23731
|
children: /* @__PURE__ */ jsxRuntimeExports.jsx(FiArrowLeft, {})
|
|
23657
23732
|
}
|
|
23658
23733
|
),
|
|
23659
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "text-
|
|
23734
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "text-primary font-semibold", children: "Diff Viewer" })
|
|
23660
23735
|
] }),
|
|
23661
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1 bg-
|
|
23736
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1 bg-canvas border border-border rounded-lg p-4 overflow-y-auto custom-scrollbar font-mono text-sm whitespace-pre-wrap", children: diffContent ? diffContent.split("\n").map((line, i) => {
|
|
23662
23737
|
if (line.startsWith("+"))
|
|
23663
23738
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-green-400 bg-green-900/20", children: line }, i);
|
|
23664
23739
|
if (line.startsWith("-"))
|
|
23665
23740
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-red-400 bg-red-900/20", children: line }, i);
|
|
23666
23741
|
if (line.startsWith("@@"))
|
|
23667
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-
|
|
23668
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-
|
|
23669
|
-
}) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-
|
|
23742
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-brand mt-2", children: line }, i);
|
|
23743
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-secondary", children: line }, i);
|
|
23744
|
+
}) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-secondary opacity-70 text-center py-10", children: "Cannot show diff for binary files." }) })
|
|
23670
23745
|
] })
|
|
23671
23746
|
},
|
|
23672
23747
|
"collision"
|
|
@@ -23679,11 +23754,11 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23679
23754
|
exit: { opacity: 0 },
|
|
23680
23755
|
className: "space-y-6",
|
|
23681
23756
|
children: [
|
|
23682
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "text-xl text-
|
|
23683
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "bg-
|
|
23757
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "text-xl text-primary font-semibold", children: "Commit & Push" }),
|
|
23758
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "bg-surface border border-border shadow-sm p-4 rounded-lg border border-border flex justify-between items-center", children: [
|
|
23684
23759
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
23685
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-
|
|
23686
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-
|
|
23760
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-secondary text-xs mb-1", children: "Destination" }),
|
|
23761
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-primary font-medium flex items-center gap-2", children: [
|
|
23687
23762
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
23688
23763
|
"img",
|
|
23689
23764
|
{
|
|
@@ -23693,14 +23768,14 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23693
23768
|
),
|
|
23694
23769
|
selectedRepo.name,
|
|
23695
23770
|
" ",
|
|
23696
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(FiArrowRight, { className: "text-
|
|
23771
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(FiArrowRight, { className: "text-secondary opacity-50" }),
|
|
23697
23772
|
" ",
|
|
23698
23773
|
isNewBranch ? newBranchName : selectedBranch
|
|
23699
23774
|
] })
|
|
23700
23775
|
] }),
|
|
23701
23776
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-right", children: [
|
|
23702
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-
|
|
23703
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-
|
|
23777
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-secondary text-xs mb-1", children: "Changes" }),
|
|
23778
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-primary font-medium", children: [
|
|
23704
23779
|
collisions.modified.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-yellow-400 mr-2", children: [
|
|
23705
23780
|
collisions.modified.length,
|
|
23706
23781
|
" modified"
|
|
@@ -23717,13 +23792,13 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23717
23792
|
] })
|
|
23718
23793
|
] }),
|
|
23719
23794
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
23720
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: "block text-
|
|
23795
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: "block text-secondary text-sm mb-2", children: "Commit Message" }),
|
|
23721
23796
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
23722
23797
|
"textarea",
|
|
23723
23798
|
{
|
|
23724
23799
|
value: commitMessage,
|
|
23725
23800
|
onChange: (e) => setCommitMessage(e.target.value),
|
|
23726
|
-
className: "w-full bg-
|
|
23801
|
+
className: "w-full bg-surface border border-border shadow-sm border border-border rounded-lg p-3 text-primary focus:outline-none focus:border-brand resize-none h-24",
|
|
23727
23802
|
placeholder: "E.g., Added new logo assets"
|
|
23728
23803
|
}
|
|
23729
23804
|
)
|
|
@@ -23733,7 +23808,7 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23733
23808
|
{
|
|
23734
23809
|
onClick: handleCommit,
|
|
23735
23810
|
disabled: !commitMessage.trim(),
|
|
23736
|
-
className: "px-6 py-2 bg-
|
|
23811
|
+
className: "px-6 py-2 bg-brand text-primary font-semibold rounded-lg hover:bg-brand brightness-110 disabled:opacity-50 flex items-center gap-2",
|
|
23737
23812
|
children: [
|
|
23738
23813
|
/* @__PURE__ */ jsxRuntimeExports.jsx(FiGithub, {}),
|
|
23739
23814
|
" Push Now"
|
|
@@ -23753,8 +23828,8 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23753
23828
|
className: "flex flex-col items-center justify-center h-full gap-4",
|
|
23754
23829
|
children: [
|
|
23755
23830
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-12 h-12 border-4 border-purple-500/30 border-t-purple-500 rounded-full animate-spin" }),
|
|
23756
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-
|
|
23757
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-
|
|
23831
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-primary font-medium text-lg", children: "Pushing to GitHub..." }),
|
|
23832
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-secondary opacity-70 text-sm font-mono", children: [
|
|
23758
23833
|
selectedRepo?.name,
|
|
23759
23834
|
" : ",
|
|
23760
23835
|
isNewBranch ? newBranchName : selectedBranch
|
|
@@ -23771,11 +23846,11 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23771
23846
|
className: "flex flex-col items-center justify-center h-full gap-4 text-center",
|
|
23772
23847
|
children: [
|
|
23773
23848
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-16 h-16 bg-green-500/20 text-green-400 rounded-full flex items-center justify-center mb-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx(FiCheck, { size: 32 }) }),
|
|
23774
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "text-2xl text-
|
|
23775
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-
|
|
23849
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "text-2xl text-primary font-semibold", children: "Push Successful!" }),
|
|
23850
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-secondary", children: [
|
|
23776
23851
|
"Your files were successfully pushed to ",
|
|
23777
23852
|
/* @__PURE__ */ jsxRuntimeExports.jsx("br", {}),
|
|
23778
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-
|
|
23853
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-brand", children: selectedRepo?.name }),
|
|
23779
23854
|
" on branch",
|
|
23780
23855
|
" ",
|
|
23781
23856
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-purple-400", children: isNewBranch ? newBranchName : selectedBranch }),
|
|
@@ -23801,13 +23876,13 @@ function UniversalPushWizard({ isOpen, onClose, onAutoHealTrigger }) {
|
|
|
23801
23876
|
className: "flex flex-col items-center justify-center h-full gap-4 text-center",
|
|
23802
23877
|
children: [
|
|
23803
23878
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-16 h-16 bg-red-500/20 text-red-400 rounded-full flex items-center justify-center mb-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx(FiX, { size: 32 }) }),
|
|
23804
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "text-xl text-
|
|
23805
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-
|
|
23879
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "text-xl text-primary font-semibold", children: "Operation Failed" }),
|
|
23880
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-secondary text-sm max-w-sm whitespace-pre-wrap", children: errorMsg }),
|
|
23806
23881
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
23807
23882
|
"button",
|
|
23808
23883
|
{
|
|
23809
23884
|
onClick: () => setStep("START"),
|
|
23810
|
-
className: "mt-4 px-6 py-2 bg-
|
|
23885
|
+
className: "mt-4 px-6 py-2 bg-surface-hover text-primary rounded-lg hover:bg-surface-hover",
|
|
23811
23886
|
children: "Try Again"
|
|
23812
23887
|
}
|
|
23813
23888
|
)
|
|
@@ -23827,198 +23902,342 @@ function WelcomeWizard({ onComplete }) {
|
|
|
23827
23902
|
const [pinInput, setPinInput] = reactExports.useState("");
|
|
23828
23903
|
const [isFinishing, setIsFinishing] = reactExports.useState(false);
|
|
23829
23904
|
const [authError, setAuthError] = reactExports.useState("");
|
|
23905
|
+
const [isCopied, setIsCopied] = reactExports.useState(false);
|
|
23906
|
+
const copyCodeToClipboard = reactExports.useCallback(async (codeToCopy) => {
|
|
23907
|
+
const code = codeToCopy || deviceFlowData?.user_code;
|
|
23908
|
+
if (!code) return;
|
|
23909
|
+
try {
|
|
23910
|
+
await navigator.clipboard.writeText(code);
|
|
23911
|
+
setIsCopied(true);
|
|
23912
|
+
setTimeout(() => setIsCopied(false), 2500);
|
|
23913
|
+
} catch (err) {
|
|
23914
|
+
console.warn("Failed to copy to clipboard", err);
|
|
23915
|
+
}
|
|
23916
|
+
}, [deviceFlowData]);
|
|
23830
23917
|
const startAuth = async () => {
|
|
23831
23918
|
try {
|
|
23832
23919
|
setAuthStatus("waiting");
|
|
23920
|
+
setAuthError("");
|
|
23833
23921
|
const data = await window.api.startDeviceFlow();
|
|
23834
23922
|
setDeviceFlowData(data);
|
|
23835
|
-
if (data
|
|
23836
|
-
|
|
23837
|
-
} else {
|
|
23838
|
-
await window.api.openExternal(data.verification_uri);
|
|
23923
|
+
if (data?.user_code) {
|
|
23924
|
+
copyCodeToClipboard(data.user_code);
|
|
23839
23925
|
}
|
|
23840
|
-
await window.api.pollDeviceFlow(data.device_code, data.interval * 1e3);
|
|
23926
|
+
await window.api.pollDeviceFlow(data.device_code, (data.interval || 5) * 1e3);
|
|
23841
23927
|
setAuthStatus("success");
|
|
23842
23928
|
setTimeout(() => {
|
|
23843
23929
|
setStep(3);
|
|
23844
|
-
},
|
|
23930
|
+
}, 1200);
|
|
23845
23931
|
} catch (e) {
|
|
23846
23932
|
setAuthStatus("error");
|
|
23847
|
-
setAuthError(e.message);
|
|
23933
|
+
setAuthError(e.message || "Authentication timed out or failed.");
|
|
23848
23934
|
}
|
|
23849
23935
|
};
|
|
23850
|
-
const handleNumpadPress = (key) => {
|
|
23851
|
-
|
|
23852
|
-
|
|
23853
|
-
|
|
23854
|
-
|
|
23855
|
-
|
|
23856
|
-
|
|
23857
|
-
|
|
23858
|
-
|
|
23936
|
+
const handleNumpadPress = reactExports.useCallback((key) => {
|
|
23937
|
+
setPinInput((prev) => {
|
|
23938
|
+
if (prev.length < 3) {
|
|
23939
|
+
const next = prev + key;
|
|
23940
|
+
if (next.length === 3) {
|
|
23941
|
+
localStorage.setItem("gitelectron-pin", next);
|
|
23942
|
+
setTimeout(() => {
|
|
23943
|
+
setStep(4);
|
|
23944
|
+
}, 450);
|
|
23945
|
+
}
|
|
23946
|
+
return next;
|
|
23859
23947
|
}
|
|
23860
|
-
|
|
23861
|
-
|
|
23862
|
-
|
|
23948
|
+
return prev;
|
|
23949
|
+
});
|
|
23950
|
+
}, []);
|
|
23951
|
+
const handleNumpadDelete = reactExports.useCallback(() => {
|
|
23863
23952
|
setPinInput((prev) => prev.slice(0, -1));
|
|
23864
|
-
};
|
|
23953
|
+
}, []);
|
|
23954
|
+
const handleNumpadClear = reactExports.useCallback(() => {
|
|
23955
|
+
setPinInput("");
|
|
23956
|
+
}, []);
|
|
23957
|
+
reactExports.useEffect(() => {
|
|
23958
|
+
if (step !== 3) return;
|
|
23959
|
+
const handleKeyDown = (e) => {
|
|
23960
|
+
const targetTag = e.target?.tagName;
|
|
23961
|
+
if (targetTag === "INPUT" || targetTag === "TEXTAREA") return;
|
|
23962
|
+
if (e.key >= "0" && e.key <= "9" || e.key === "*" || e.key === "#") {
|
|
23963
|
+
e.preventDefault();
|
|
23964
|
+
handleNumpadPress(e.key);
|
|
23965
|
+
} else if (e.key === "Backspace") {
|
|
23966
|
+
e.preventDefault();
|
|
23967
|
+
handleNumpadDelete();
|
|
23968
|
+
} else if (e.key === "Escape" || e.key === "Delete") {
|
|
23969
|
+
e.preventDefault();
|
|
23970
|
+
handleNumpadClear();
|
|
23971
|
+
}
|
|
23972
|
+
};
|
|
23973
|
+
window.addEventListener("keydown", handleKeyDown);
|
|
23974
|
+
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
23975
|
+
}, [step, handleNumpadPress, handleNumpadDelete, handleNumpadClear]);
|
|
23865
23976
|
const finishSetup = () => {
|
|
23866
23977
|
setIsFinishing(true);
|
|
23867
23978
|
localStorage.setItem("gitelectron-welcomed", "true");
|
|
23868
23979
|
setTimeout(() => {
|
|
23869
23980
|
onComplete();
|
|
23870
|
-
},
|
|
23981
|
+
}, 600);
|
|
23871
23982
|
};
|
|
23872
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "fixed inset-0 z-[999] bg-gray-
|
|
23873
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "absolute inset-0 z-0 opacity-
|
|
23874
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute top-
|
|
23875
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute bottom-
|
|
23983
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "fixed inset-0 z-[999] bg-gray-950/90 backdrop-blur-md text-white font-sans flex items-center justify-center p-3 sm:p-5 md:p-6 overflow-hidden animate-fade-in select-none", children: [
|
|
23984
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "absolute inset-0 z-0 opacity-25 pointer-events-none overflow-hidden", children: [
|
|
23985
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute -top-32 -left-32 w-96 h-96 sm:w-[480px] sm:h-[480px] bg-blue-600 rounded-full blur-[140px] mix-blend-screen animate-pulse" }),
|
|
23986
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute -bottom-32 -right-32 w-96 h-96 sm:w-[500px] sm:h-[500px] bg-purple-600 rounded-full blur-[160px] mix-blend-screen animate-pulse animation-delay-2000" })
|
|
23876
23987
|
] }),
|
|
23877
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative z-10 w-full max-w-2xl max-h-[
|
|
23878
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
23988
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative z-10 w-full max-w-xl sm:max-w-2xl max-h-[94vh] bg-surface/95 backdrop-blur-2xl rounded-2xl sm:rounded-3xl border border-white/10 shadow-[0_25px_60px_-15px_rgba(0,0,0,0.7)] overflow-hidden flex flex-col", children: [
|
|
23989
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "shrink-0 bg-surface/60 border-b border-border/40 px-5 sm:px-7 py-3 flex items-center justify-between", children: [
|
|
23990
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex items-center gap-2", children: step > 1 && step < 4 ? /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
23991
|
+
"button",
|
|
23992
|
+
{
|
|
23993
|
+
type: "button",
|
|
23994
|
+
onClick: () => setStep((s) => s - 1),
|
|
23995
|
+
className: "px-2.5 py-1 text-gray-400 hover:text-white hover:bg-white/10 rounded-lg transition-colors flex items-center gap-1.5 text-xs font-medium cursor-pointer",
|
|
23996
|
+
title: "Go to previous step",
|
|
23997
|
+
children: [
|
|
23998
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(FiArrowLeft, { className: "text-sm" }),
|
|
23999
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "Back" })
|
|
24000
|
+
]
|
|
24001
|
+
}
|
|
24002
|
+
) : /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 text-xs font-semibold text-gray-400", children: [
|
|
24003
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "w-2 h-2 rounded-full bg-blue-500 animate-pulse" }),
|
|
24004
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "Quick Setup" })
|
|
24005
|
+
] }) }),
|
|
24006
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2.5", children: [
|
|
24007
|
+
[1, 2, 3, 4].map((s) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
24008
|
+
"div",
|
|
24009
|
+
{
|
|
24010
|
+
className: `transition-all duration-300 rounded-full ${s === step ? "w-7 h-1.5 bg-gradient-to-r from-blue-500 to-purple-500" : s < step ? "w-1.5 h-1.5 bg-blue-500" : "w-1.5 h-1.5 bg-gray-700"}`
|
|
24011
|
+
},
|
|
24012
|
+
s
|
|
24013
|
+
)),
|
|
24014
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-xs font-medium text-gray-400 ml-2", children: [
|
|
24015
|
+
"Step ",
|
|
24016
|
+
step,
|
|
24017
|
+
" of 4"
|
|
24018
|
+
] })
|
|
24019
|
+
] })
|
|
24020
|
+
] }),
|
|
24021
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "h-1 w-full bg-surface-hover/80 shrink-0", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
23879
24022
|
"div",
|
|
23880
24023
|
{
|
|
23881
|
-
className: "h-full bg-gradient-to-r from-blue-500 to-purple-500 transition-all duration-
|
|
23882
|
-
style: { width: `${
|
|
24024
|
+
className: "h-full bg-gradient-to-r from-blue-500 via-indigo-500 to-purple-500 transition-all duration-500 ease-out",
|
|
24025
|
+
style: { width: `${step / 4 * 100}%` }
|
|
23883
24026
|
}
|
|
23884
24027
|
) }),
|
|
23885
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "p-
|
|
23886
|
-
step === 1 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col items-center justify-center
|
|
23887
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
23888
|
-
"
|
|
23889
|
-
|
|
23890
|
-
|
|
23891
|
-
|
|
23892
|
-
|
|
23893
|
-
|
|
23894
|
-
|
|
23895
|
-
|
|
23896
|
-
|
|
23897
|
-
|
|
23898
|
-
|
|
23899
|
-
|
|
23900
|
-
|
|
23901
|
-
|
|
23902
|
-
|
|
23903
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "font-
|
|
23904
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
24028
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "p-5 sm:p-7 md:p-8 flex-1 overflow-y-auto custom-scrollbar flex flex-col items-center", children: [
|
|
24029
|
+
step === 1 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "shrink-0 my-auto flex flex-col items-center justify-center text-center animate-fade-in w-full max-w-lg mx-auto py-2", children: [
|
|
24030
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "shrink-0 relative mb-5 sm:mb-6", children: [
|
|
24031
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute inset-0 bg-blue-500/30 rounded-full blur-2xl animate-pulse" }),
|
|
24032
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
24033
|
+
"img",
|
|
24034
|
+
{
|
|
24035
|
+
src: logo,
|
|
24036
|
+
alt: "GitElectron Logo",
|
|
24037
|
+
className: "w-18 h-18 sm:w-22 sm:h-22 relative z-10 drop-shadow-[0_0_25px_rgba(59,130,246,0.6)] object-contain"
|
|
24038
|
+
}
|
|
24039
|
+
)
|
|
24040
|
+
] }),
|
|
24041
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h1", { className: "shrink-0 text-3xl sm:text-4xl font-extrabold mb-2.5 tracking-tight bg-gradient-to-r from-white via-gray-100 to-gray-300 bg-clip-text text-transparent", children: "Welcome to GitElectron" }),
|
|
24042
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "shrink-0 text-sm sm:text-base text-gray-300 mb-6 sm:mb-8 font-light max-w-md px-2 leading-relaxed", children: "I just write code. GitElectron takes care of Git." }),
|
|
24043
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "shrink-0 grid grid-cols-1 sm:grid-cols-2 gap-3.5 sm:gap-4.5 w-full mb-6 sm:mb-8 text-left", children: [
|
|
24044
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "bg-surface-hover/40 backdrop-blur-md p-4 sm:p-5 rounded-2xl border border-white/10 flex flex-col justify-between transition-all duration-300 hover:border-blue-500/40 hover:bg-surface-hover/70 shadow-sm", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
24045
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-8 h-8 rounded-lg bg-blue-500/10 border border-blue-500/20 flex items-center justify-center text-blue-400 mb-2.5", children: /* @__PURE__ */ jsxRuntimeExports.jsx(FiRefreshCw, { className: "text-base" }) }),
|
|
24046
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "font-bold text-white text-sm sm:text-base mb-1", children: "Invisible Auto-Sync" }),
|
|
24047
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-gray-300 leading-relaxed font-normal", children: "Silently watches your files and pushes to GitHub automatically in the background." })
|
|
24048
|
+
] }) }),
|
|
24049
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "bg-surface-hover/40 backdrop-blur-md p-4 sm:p-5 rounded-2xl border border-white/10 flex flex-col justify-between transition-all duration-300 hover:border-purple-500/40 hover:bg-surface-hover/70 shadow-sm", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
24050
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-8 h-8 rounded-lg bg-purple-500/10 border border-purple-500/20 flex items-center justify-center text-purple-400 mb-2.5", children: /* @__PURE__ */ jsxRuntimeExports.jsx(FiTerminal, { className: "text-base" }) }),
|
|
24051
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "font-bold text-white text-sm sm:text-base mb-1", children: "Universal CLI" }),
|
|
24052
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-xs text-gray-300 leading-relaxed font-normal", children: [
|
|
23905
24053
|
"Run",
|
|
23906
24054
|
" ",
|
|
23907
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("code", { className: "bg-
|
|
24055
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("code", { className: "bg-black/50 px-1.5 py-0.5 rounded text-purple-300 font-mono text-xs border border-purple-500/20", children: "gitelectron open" }),
|
|
23908
24056
|
" ",
|
|
23909
24057
|
"from any terminal to launch instantly."
|
|
23910
24058
|
] })
|
|
23911
|
-
] })
|
|
24059
|
+
] }) })
|
|
23912
24060
|
] }),
|
|
23913
24061
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
23914
24062
|
"button",
|
|
23915
24063
|
{
|
|
24064
|
+
type: "button",
|
|
23916
24065
|
onClick: () => setStep(2),
|
|
23917
|
-
className: "group relative px-
|
|
24066
|
+
className: "shrink-0 group relative px-8 sm:px-10 py-3 sm:py-3.5 bg-gradient-to-r from-blue-600 to-indigo-600 hover:from-blue-500 hover:to-indigo-500 text-white rounded-full font-bold text-sm sm:text-base transition-all duration-300 shadow-[0_0_25px_rgba(37,99,235,0.4)] hover:shadow-[0_0_35px_rgba(37,99,235,0.6)] hover:scale-[1.02] active:scale-[0.98] flex items-center gap-2 cursor-pointer",
|
|
23918
24067
|
children: [
|
|
23919
|
-
"Get Started",
|
|
23920
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(FiChevronRight, { className: "group-hover:translate-x-1 transition-transform" })
|
|
24068
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "Get Started" }),
|
|
24069
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(FiChevronRight, { className: "text-lg group-hover:translate-x-1 transition-transform" })
|
|
23921
24070
|
]
|
|
23922
24071
|
}
|
|
23923
24072
|
)
|
|
23924
24073
|
] }),
|
|
23925
|
-
step === 2 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col items-center justify-center
|
|
23926
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
23927
|
-
|
|
23928
|
-
|
|
23929
|
-
|
|
24074
|
+
step === 2 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "shrink-0 my-auto flex flex-col items-center justify-center text-center animate-fade-in w-full max-w-lg mx-auto py-2", children: [
|
|
24075
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "shrink-0 relative mb-4 sm:mb-5", children: [
|
|
24076
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute inset-0 bg-white/10 rounded-full blur-xl" }),
|
|
24077
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(FiGithub, { className: "text-5xl sm:text-6xl text-white relative z-10 drop-shadow-[0_0_15px_rgba(255,255,255,0.2)]" })
|
|
24078
|
+
] }),
|
|
24079
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "shrink-0 text-2xl sm:text-3xl font-extrabold mb-2 text-white", children: "Connect GitHub" }),
|
|
24080
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "shrink-0 text-xs sm:text-sm text-gray-300 mb-6 sm:mb-8 max-w-md px-2 leading-relaxed", children: "Securely link your GitHub account using OAuth. Your credentials are encrypted locally by your OS keychain." }),
|
|
24081
|
+
authStatus === "pending" && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "shrink-0 flex flex-col items-center gap-4 w-full max-w-xs", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
23930
24082
|
"button",
|
|
23931
24083
|
{
|
|
24084
|
+
type: "button",
|
|
23932
24085
|
onClick: startAuth,
|
|
23933
|
-
className: "
|
|
24086
|
+
className: "w-full py-3.5 px-6 bg-white hover:bg-gray-100 text-gray-950 rounded-xl font-bold text-sm sm:text-base transition-all shadow-[0_0_25px_rgba(255,255,255,0.25)] hover:shadow-[0_0_35px_rgba(255,255,255,0.4)] hover:scale-[1.02] active:scale-[0.98] flex items-center justify-center gap-3 cursor-pointer",
|
|
23934
24087
|
children: [
|
|
23935
24088
|
/* @__PURE__ */ jsxRuntimeExports.jsx(FiGithub, { className: "text-xl" }),
|
|
23936
|
-
"Authenticate
|
|
24089
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "Authenticate with GitHub" })
|
|
23937
24090
|
]
|
|
23938
24091
|
}
|
|
23939
|
-
),
|
|
23940
|
-
authStatus === "waiting" && deviceFlowData && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "bg-surface/
|
|
23941
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
23942
|
-
|
|
23943
|
-
|
|
23944
|
-
|
|
23945
|
-
|
|
23946
|
-
|
|
24092
|
+
) }),
|
|
24093
|
+
authStatus === "waiting" && deviceFlowData && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "shrink-0 w-full max-w-md bg-surface-hover/40 backdrop-blur-md p-5 sm:p-6 rounded-2xl border border-white/10 shadow-2xl flex flex-col items-center gap-4", children: [
|
|
24094
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "shrink-0 flex items-center justify-between w-full px-1", children: [
|
|
24095
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-xs font-semibold uppercase tracking-wider text-gray-400", children: "Your One-Time Device Code:" }),
|
|
24096
|
+
isCopied && /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-xs font-bold text-emerald-400 flex items-center gap-1 animate-fade-in", children: [
|
|
24097
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(FiCheck, { className: "text-xs" }),
|
|
24098
|
+
" Auto-copied!"
|
|
24099
|
+
] })
|
|
24100
|
+
] }),
|
|
24101
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "shrink-0 w-full bg-black/70 rounded-2xl border border-blue-500/40 p-3.5 sm:p-4 flex items-center justify-between gap-3 shadow-[0_0_25px_rgba(59,130,246,0.15)]", children: [
|
|
24102
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "font-mono text-2xl sm:text-3xl tracking-widest text-blue-400 font-extrabold select-all pl-2", children: deviceFlowData.user_code }),
|
|
24103
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
24104
|
+
"button",
|
|
23947
24105
|
{
|
|
23948
|
-
|
|
23949
|
-
|
|
23950
|
-
|
|
23951
|
-
|
|
23952
|
-
children:
|
|
24106
|
+
type: "button",
|
|
24107
|
+
onClick: () => copyCodeToClipboard(),
|
|
24108
|
+
className: `px-3 py-2 rounded-xl font-bold text-xs flex items-center gap-1.5 transition-all cursor-pointer ${isCopied ? "bg-emerald-500/20 text-emerald-300 border border-emerald-500/40" : "bg-blue-500/20 hover:bg-blue-500/30 text-blue-300 hover:text-white border border-blue-500/40 active:scale-95"}`,
|
|
24109
|
+
title: "Copy code to clipboard",
|
|
24110
|
+
children: [
|
|
24111
|
+
isCopied ? /* @__PURE__ */ jsxRuntimeExports.jsx(FiCheck, { className: "text-sm" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(FiCopy, { className: "text-sm" }),
|
|
24112
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: isCopied ? "Copied" : "Copy Code" })
|
|
24113
|
+
]
|
|
23953
24114
|
}
|
|
23954
24115
|
)
|
|
23955
24116
|
] }),
|
|
23956
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
24117
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "shrink-0 w-full flex flex-col gap-2 text-center", children: [
|
|
24118
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
24119
|
+
"button",
|
|
24120
|
+
{
|
|
24121
|
+
type: "button",
|
|
24122
|
+
onClick: () => window.api.openExternal(
|
|
24123
|
+
deviceFlowData.verification_uri_complete || deviceFlowData.verification_uri
|
|
24124
|
+
),
|
|
24125
|
+
className: "w-full py-2.5 px-4 bg-blue-600 hover:bg-blue-500 text-white rounded-xl text-xs sm:text-sm font-bold flex items-center justify-center gap-2 transition-all shadow-[0_0_15px_rgba(37,99,235,0.3)] cursor-pointer",
|
|
24126
|
+
children: [
|
|
24127
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "Open GitHub Device Verification" }),
|
|
24128
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(FiExternalLink, { className: "text-sm" })
|
|
24129
|
+
]
|
|
24130
|
+
}
|
|
24131
|
+
),
|
|
24132
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-[11px] text-gray-400", children: "Browser tab already opened automatically. If closed, click button above." })
|
|
24133
|
+
] }),
|
|
24134
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "shrink-0 flex items-center gap-2 text-xs text-gray-300 bg-black/40 px-3.5 py-1.5 rounded-full border border-white/10", children: [
|
|
24135
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-3 h-3 border-2 border-blue-500 border-t-transparent rounded-full animate-spin" }),
|
|
24136
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "Waiting for browser approval..." })
|
|
24137
|
+
] })
|
|
23957
24138
|
] }),
|
|
23958
|
-
authStatus === "success" && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col items-center text-
|
|
23959
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
23960
|
-
|
|
24139
|
+
authStatus === "success" && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "shrink-0 flex flex-col items-center text-emerald-400 animate-fade-in py-5", children: [
|
|
24140
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative mb-3", children: [
|
|
24141
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(FiCheckCircle, { className: "text-5xl sm:text-6xl text-emerald-400" }),
|
|
24142
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute inset-0 bg-emerald-500 rounded-full blur-xl opacity-40" })
|
|
24143
|
+
] }),
|
|
24144
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "text-xl font-bold text-white mb-1", children: "Successfully Authenticated!" }),
|
|
24145
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-gray-300", children: "GitHub account connected. Proceeding to security setup..." })
|
|
23961
24146
|
] }),
|
|
23962
|
-
authStatus === "error" && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-center", children: [
|
|
23963
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
23964
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
24147
|
+
authStatus === "error" && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "shrink-0 w-full max-w-sm bg-red-950/40 border border-red-500/30 p-5 rounded-2xl text-center flex flex-col gap-3", children: [
|
|
24148
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(FiAlertCircle, { className: "text-2xl text-red-400 mx-auto" }),
|
|
24149
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
24150
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "text-sm font-bold text-red-300 mb-0.5", children: "Authentication Failed" }),
|
|
24151
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-gray-300", children: authError })
|
|
24152
|
+
] }),
|
|
23965
24153
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
23966
24154
|
"button",
|
|
23967
24155
|
{
|
|
24156
|
+
type: "button",
|
|
23968
24157
|
onClick: () => setAuthStatus("pending"),
|
|
23969
|
-
className: "
|
|
24158
|
+
className: "w-full py-2 bg-blue-600 hover:bg-blue-500 text-white rounded-lg text-xs font-bold transition-all cursor-pointer",
|
|
23970
24159
|
children: "Try Again"
|
|
23971
24160
|
}
|
|
23972
24161
|
)
|
|
23973
24162
|
] })
|
|
23974
24163
|
] }),
|
|
23975
|
-
step === 3 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col items-center justify-center
|
|
23976
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
23977
|
-
|
|
23978
|
-
|
|
23979
|
-
|
|
23980
|
-
|
|
23981
|
-
|
|
23982
|
-
|
|
23983
|
-
|
|
23984
|
-
i
|
|
23985
|
-
|
|
23986
|
-
|
|
24164
|
+
step === 3 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "shrink-0 my-auto flex flex-col items-center justify-center text-center animate-fade-in w-full max-w-sm mx-auto py-1", children: [
|
|
24165
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "shrink-0 relative mb-2", children: [
|
|
24166
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute inset-0 bg-purple-500/20 rounded-full blur-xl" }),
|
|
24167
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(FiShield, { className: "text-4xl text-purple-400 relative z-10" })
|
|
24168
|
+
] }),
|
|
24169
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "shrink-0 text-xl sm:text-2xl font-extrabold mb-1 text-white", children: "Set Lockscreen PIN" }),
|
|
24170
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "shrink-0 text-xs text-gray-400 max-w-xs px-2 mb-2 leading-relaxed", children: "GitElectron locks itself when idle to protect your workspace." }),
|
|
24171
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "shrink-0 text-[11px] font-bold uppercase tracking-wider text-purple-300 mb-3", children: "Enter a 3-digit PIN" }),
|
|
24172
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "shrink-0 flex gap-4 sm:gap-5 justify-center items-center mb-4", children: [0, 1, 2].map((i) => {
|
|
24173
|
+
const isFilled = i < pinInput.length;
|
|
24174
|
+
const isCurrent = i === pinInput.length;
|
|
24175
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
24176
|
+
"div",
|
|
24177
|
+
{
|
|
24178
|
+
className: `shrink-0 transition-all duration-300 rounded-full flex items-center justify-center ${isFilled ? "w-4 h-4 sm:w-4.5 sm:h-4.5 bg-gradient-to-r from-purple-500 to-indigo-500 scale-125 shadow-[0_0_12px_rgba(168,85,247,0.9)]" : isCurrent ? "w-3.5 h-3.5 sm:w-4 sm:h-4 border-2 border-purple-400 bg-purple-400/20 scale-110" : "w-3 h-3 sm:w-3.5 sm:h-3.5 bg-gray-800 border border-gray-600"}`
|
|
24179
|
+
},
|
|
24180
|
+
i
|
|
24181
|
+
);
|
|
24182
|
+
}) }),
|
|
24183
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "shrink-0 w-56 sm:w-64 grid grid-cols-3 gap-2.5 sm:gap-3", children: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "*", "0", "#"].map((key) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
23987
24184
|
"button",
|
|
23988
24185
|
{
|
|
24186
|
+
type: "button",
|
|
23989
24187
|
onClick: () => handleNumpadPress(key),
|
|
23990
|
-
className: "
|
|
24188
|
+
className: "shrink-0 aspect-square flex items-center justify-center text-lg sm:text-xl font-bold rounded-2xl bg-surface-hover/80 hover:bg-surface-hover/50 active:scale-95 text-white border border-white/10 hover:border-purple-500/40 transition-all shadow-sm cursor-pointer select-none",
|
|
23991
24189
|
children: key
|
|
23992
24190
|
},
|
|
23993
24191
|
key
|
|
23994
24192
|
)) }),
|
|
23995
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-56 sm:w-64 mt-
|
|
24193
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "shrink-0 w-56 sm:w-64 mt-2.5", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
23996
24194
|
"button",
|
|
23997
24195
|
{
|
|
24196
|
+
type: "button",
|
|
23998
24197
|
onClick: handleNumpadDelete,
|
|
23999
24198
|
disabled: pinInput.length === 0,
|
|
24000
|
-
className: "w-full py-2 sm:py-
|
|
24199
|
+
className: "shrink-0 w-full py-2 sm:py-2.5 flex items-center justify-center text-xs sm:text-sm font-bold rounded-xl bg-surface-hover/60 hover:bg-surface-hover active:scale-98 text-gray-300 hover:text-white border border-white/10 transition-all disabled:opacity-20 disabled:pointer-events-none cursor-pointer tracking-wider",
|
|
24001
24200
|
children: "DEL"
|
|
24002
24201
|
}
|
|
24003
|
-
) })
|
|
24202
|
+
) }),
|
|
24203
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "shrink-0 text-[11px] text-gray-400 mt-3 font-medium", children: "Keyboard supported (0-9, *, #, Backspace)" })
|
|
24004
24204
|
] }),
|
|
24005
24205
|
step === 4 && /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
24006
24206
|
"div",
|
|
24007
24207
|
{
|
|
24008
|
-
className: `flex flex-col items-center justify-center
|
|
24208
|
+
className: `shrink-0 my-auto flex flex-col items-center justify-center text-center transition-all duration-500 w-full max-w-lg mx-auto py-2 ${isFinishing ? "opacity-0 scale-95" : "opacity-100 animate-fade-in"}`,
|
|
24009
24209
|
children: [
|
|
24010
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative mb-6", children: [
|
|
24011
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
24012
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute inset-
|
|
24210
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "shrink-0 relative mb-5 sm:mb-6", children: [
|
|
24211
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute inset-0 bg-blue-500/30 rounded-full blur-2xl animate-pulse" }),
|
|
24212
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute -inset-2 bg-gradient-to-r from-blue-500 to-purple-500 rounded-full blur-lg opacity-40 animate-pulse" }),
|
|
24213
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-18 h-18 sm:w-22 sm:h-22 rounded-full bg-gradient-to-br from-blue-500 to-purple-600 flex items-center justify-center text-white shadow-2xl relative z-10", children: /* @__PURE__ */ jsxRuntimeExports.jsx(FiCheckCircle, { className: "text-3xl sm:text-4xl text-white" }) })
|
|
24013
24214
|
] }),
|
|
24014
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "text-
|
|
24015
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-
|
|
24016
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
24215
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "shrink-0 text-2xl sm:text-3xl md:text-4xl font-extrabold mb-2.5 text-white tracking-tight", children: "You're All Set!" }),
|
|
24216
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "shrink-0 text-xs sm:text-sm md:text-base text-gray-300 mb-6 sm:mb-8 max-w-md px-2 leading-relaxed", children: "Your environment is secured and connected. You can now drag and drop any folder to start Auto-Syncing immediately." }),
|
|
24217
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "shrink-0 flex flex-wrap items-center justify-center gap-2.5 sm:gap-3 mb-6 sm:mb-8 max-w-md", children: [
|
|
24218
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-1.5 px-3 py-1.5 rounded-xl bg-white/5 border border-white/10 text-xs text-gray-300", children: [
|
|
24219
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(FiCheck, { className: "text-emerald-400" }),
|
|
24220
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "Auto-Push Engine Primed" })
|
|
24221
|
+
] }),
|
|
24222
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-1.5 px-3 py-1.5 rounded-xl bg-white/5 border border-white/10 text-xs text-gray-300", children: [
|
|
24223
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(FiCheck, { className: "text-emerald-400" }),
|
|
24224
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "OS Keychain Secured" })
|
|
24225
|
+
] }),
|
|
24226
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-1.5 px-3 py-1.5 rounded-xl bg-white/5 border border-white/10 text-xs text-gray-300", children: [
|
|
24227
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(FiCheck, { className: "text-emerald-400" }),
|
|
24228
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "Universal CLI Ready" })
|
|
24229
|
+
] })
|
|
24230
|
+
] }),
|
|
24231
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
24017
24232
|
"button",
|
|
24018
24233
|
{
|
|
24234
|
+
type: "button",
|
|
24019
24235
|
onClick: finishSetup,
|
|
24020
|
-
className: "px-8 sm:px-
|
|
24021
|
-
children:
|
|
24236
|
+
className: "shrink-0 group relative px-8 sm:px-12 py-3.5 sm:py-4 bg-gradient-to-r from-blue-600 via-indigo-600 to-purple-600 hover:from-blue-500 hover:via-indigo-500 hover:to-purple-500 text-white rounded-full font-extrabold text-sm sm:text-base md:text-lg transition-all duration-300 shadow-[0_0_35px_rgba(99,102,241,0.5)] hover:shadow-[0_0_50px_rgba(99,102,241,0.7)] hover:scale-105 active:scale-95 flex items-center gap-2.5 cursor-pointer",
|
|
24237
|
+
children: [
|
|
24238
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "Launch GitElectron" }),
|
|
24239
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(FiChevronRight, { className: "text-xl group-hover:translate-x-1.5 transition-transform" })
|
|
24240
|
+
]
|
|
24022
24241
|
}
|
|
24023
24242
|
)
|
|
24024
24243
|
]
|
|
@@ -24593,7 +24812,7 @@ const CollaborationRepoView = ({
|
|
|
24593
24812
|
collaboratedRepos.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 text-xs text-secondary flex-wrap px-1", children: [
|
|
24594
24813
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-[11px] font-medium text-secondary/80", children: "Filter summary:" }),
|
|
24595
24814
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "inline-flex items-center gap-1 bg-surface border border-border px-2.5 py-1 rounded-lg font-mono text-[11px] text-primary", children: [
|
|
24596
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "w-2 h-2 rounded-full bg-
|
|
24815
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "w-2 h-2 rounded-full bg-white" }),
|
|
24597
24816
|
connectedCount,
|
|
24598
24817
|
" Connected"
|
|
24599
24818
|
] }),
|
|
@@ -24690,7 +24909,7 @@ const CollaborationRepoView = ({
|
|
|
24690
24909
|
children: repo.name
|
|
24691
24910
|
}
|
|
24692
24911
|
),
|
|
24693
|
-
repo.private ? /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-[10px] bg-amber-500/10 text-amber-400 border border-amber-500/25 px-2 py-0.2 rounded-full font-medium flex-shrink-0", children: "Private" }) : /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-[10px] bg-emerald-500/10 text-
|
|
24912
|
+
repo.private ? /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-[10px] bg-amber-500/10 text-amber-400 border border-amber-500/25 px-2 py-0.2 rounded-full font-medium flex-shrink-0", children: "Private" }) : /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-[10px] bg-emerald-500/10 text-white border border-emerald-500/25 px-2 py-0.2 rounded-full font-medium flex-shrink-0", children: "Public" }),
|
|
24694
24913
|
isCurrentActive && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-[9px] bg-brand text-white px-2 py-0.5 rounded-full font-bold uppercase tracking-wider flex-shrink-0 shadow-xs", children: "Active" })
|
|
24695
24914
|
] }),
|
|
24696
24915
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 mt-1 text-xs text-secondary min-w-0 flex-wrap", children: [
|
|
@@ -24734,7 +24953,7 @@ const CollaborationRepoView = ({
|
|
|
24734
24953
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "min-w-0 flex-1", children: savedPath ? isMissing ? /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
24735
24954
|
"div",
|
|
24736
24955
|
{
|
|
24737
|
-
className: "inline-flex items-center gap-1.5 text-xs text-danger font-mono bg-danger
|
|
24956
|
+
className: "inline-flex items-center gap-1.5 text-xs text-danger font-mono bg-danger text-white border border-border px-2.5 py-1 rounded-lg min-w-0 max-w-full truncate",
|
|
24738
24957
|
title: `Folder was deleted or moved: ${savedPath}`,
|
|
24739
24958
|
children: [
|
|
24740
24959
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "w-1.5 h-1.5 rounded-full bg-danger animate-pulse flex-shrink-0" }),
|
|
@@ -24744,14 +24963,14 @@ const CollaborationRepoView = ({
|
|
|
24744
24963
|
) : /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
24745
24964
|
"div",
|
|
24746
24965
|
{
|
|
24747
|
-
className: "inline-flex items-center gap-1.5 text-xs text-
|
|
24966
|
+
className: "inline-flex items-center gap-1.5 text-xs text-white font-mono bg-success text-white border border-border px-2.5 py-1 rounded-lg min-w-0 max-w-full truncate",
|
|
24748
24967
|
title: savedPath,
|
|
24749
24968
|
children: [
|
|
24750
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "w-1.5 h-1.5 rounded-full bg-
|
|
24969
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "w-1.5 h-1.5 rounded-full bg-white flex-shrink-0" }),
|
|
24751
24970
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate", children: savedPath.split("\\").pop() || savedPath })
|
|
24752
24971
|
]
|
|
24753
24972
|
}
|
|
24754
|
-
) : /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "inline-flex items-center gap-1.5 text-xs text-secondary/70 italic bg-
|
|
24973
|
+
) : /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "inline-flex items-center gap-1.5 text-xs text-secondary/70 italic bg-surface border border-border/60 px-2.5 py-1 rounded-lg flex-shrink-0", children: [
|
|
24755
24974
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "w-1.5 h-1.5 rounded-full bg-secondary/40" }),
|
|
24756
24975
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "Not cloned yet" })
|
|
24757
24976
|
] }) }),
|
|
@@ -24780,7 +24999,7 @@ const CollaborationRepoView = ({
|
|
|
24780
24999
|
e.stopPropagation();
|
|
24781
25000
|
onSyncCollabRepo(repo, savedPath);
|
|
24782
25001
|
},
|
|
24783
|
-
className: "px-2.5 py-1.5 text-xs font-semibold rounded-xl transition-all shadow-xs flex items-center gap-1 bg-
|
|
25002
|
+
className: "px-2.5 py-1.5 text-xs font-semibold rounded-xl transition-all shadow-xs flex items-center gap-1 bg-brand hover:bg-brand-hover text-white border border-border",
|
|
24784
25003
|
title: "Pull all latest team changes into this folder immediately",
|
|
24785
25004
|
children: [
|
|
24786
25005
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "⬇️" }),
|
|
@@ -24826,7 +25045,7 @@ const CollaborationRepoView = ({
|
|
|
24826
25045
|
e.stopPropagation();
|
|
24827
25046
|
onRepoCardClick(repo);
|
|
24828
25047
|
},
|
|
24829
|
-
className: `px-3.5 py-1.5 text-xs font-semibold rounded-xl transition-all shadow-xs flex items-center gap-1.5 ${savedPath ? isMissing ? "bg-danger
|
|
25048
|
+
className: `px-3.5 py-1.5 text-xs font-semibold rounded-xl transition-all shadow-xs flex items-center gap-1.5 ${savedPath ? isMissing ? "bg-danger hover:bg-danger text-white text-danger border border-danger/40" : "bg-brand hover:bg-brand-hover text-white shadow-brand/20" : "bg-brand hover:bg-brand-hover text-white shadow-brand/20"}`,
|
|
24830
25049
|
children: [
|
|
24831
25050
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: savedPath ? isMissing ? "Re-Clone" : "Open Repo" : "Clone" }),
|
|
24832
25051
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: isMissing ? "☁️" : savedPath ? "→" : "☁️" })
|
|
@@ -24857,83 +25076,176 @@ const AuthCodePrinter = ({ code }) => {
|
|
|
24857
25076
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cutter-wrapper", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "cutter" }) })
|
|
24858
25077
|
] }) });
|
|
24859
25078
|
};
|
|
25079
|
+
const ROW_HEIGHT = 30;
|
|
25080
|
+
const CONTAINER_HEIGHT = 280;
|
|
25081
|
+
const OVERSCAN = 10;
|
|
24860
25082
|
const CommitReceiptPrinter = ({
|
|
24861
25083
|
commit,
|
|
24862
25084
|
onClose
|
|
24863
25085
|
}) => {
|
|
24864
|
-
const [isPrinted, setIsPrinted] = reactExports.useState(
|
|
25086
|
+
const [isPrinted, setIsPrinted] = reactExports.useState(true);
|
|
25087
|
+
const [searchQuery, setSearchQuery] = reactExports.useState("");
|
|
25088
|
+
const [scrollTop, setScrollTop] = reactExports.useState(0);
|
|
25089
|
+
const scrollRef = reactExports.useRef(null);
|
|
25090
|
+
const allFiles = reactExports.useMemo(() => {
|
|
25091
|
+
return commit?.diff?.files || [];
|
|
25092
|
+
}, [commit]);
|
|
25093
|
+
const filteredFiles = reactExports.useMemo(() => {
|
|
25094
|
+
if (!searchQuery.trim()) return allFiles;
|
|
25095
|
+
const q = searchQuery.toLowerCase().trim();
|
|
25096
|
+
return allFiles.filter((f) => f.file?.toLowerCase().includes(q));
|
|
25097
|
+
}, [allFiles, searchQuery]);
|
|
25098
|
+
const handleScroll = reactExports.useCallback((e) => {
|
|
25099
|
+
setScrollTop(e.currentTarget.scrollTop);
|
|
25100
|
+
}, []);
|
|
25101
|
+
const totalCount = filteredFiles.length;
|
|
25102
|
+
const totalVirtualHeight = totalCount * ROW_HEIGHT;
|
|
25103
|
+
const startIndex = Math.max(0, Math.floor(scrollTop / ROW_HEIGHT) - OVERSCAN);
|
|
25104
|
+
const endIndex = Math.min(
|
|
25105
|
+
totalCount,
|
|
25106
|
+
Math.ceil((scrollTop + CONTAINER_HEIGHT) / ROW_HEIGHT) + OVERSCAN
|
|
25107
|
+
);
|
|
25108
|
+
const visibleFiles = filteredFiles.slice(startIndex, endIndex);
|
|
25109
|
+
const offsetY = startIndex * ROW_HEIGHT;
|
|
25110
|
+
const handleSearchChange = (val) => {
|
|
25111
|
+
setSearchQuery(val);
|
|
25112
|
+
setScrollTop(0);
|
|
25113
|
+
if (scrollRef.current) {
|
|
25114
|
+
scrollRef.current.scrollTop = 0;
|
|
25115
|
+
}
|
|
25116
|
+
};
|
|
24865
25117
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `commit-printer-wrapper ${isPrinted ? "is-printed" : ""}`, children: [
|
|
24866
25118
|
onClose && /* @__PURE__ */ jsxRuntimeExports.jsx("button", { className: "printer-close-btn", onClick: onClose, title: "Close Printer", children: "✕" }),
|
|
24867
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
24868
|
-
|
|
24869
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "printer-message", children:
|
|
24870
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
24871
|
-
|
|
24872
|
-
|
|
24873
|
-
|
|
24874
|
-
|
|
24875
|
-
|
|
24876
|
-
|
|
24877
|
-
|
|
24878
|
-
|
|
24879
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "letter", children: "." }),
|
|
24880
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "letter", children: "." }),
|
|
24881
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "letter", children: "." })
|
|
24882
|
-
] })
|
|
25119
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "printer-machine-head", children: [
|
|
25120
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "printer" }),
|
|
25121
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "printer-display", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "printer-message", children: searchQuery ? `${filteredFiles.length} found` : `${allFiles.length} files` }) }),
|
|
25122
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
25123
|
+
"button",
|
|
25124
|
+
{
|
|
25125
|
+
className: "print-button",
|
|
25126
|
+
onClick: () => setIsPrinted(!isPrinted),
|
|
25127
|
+
title: isPrinted ? "Toggle Receipt" : "Print Receipt",
|
|
25128
|
+
children: "🖨"
|
|
25129
|
+
}
|
|
25130
|
+
)
|
|
24883
25131
|
] }),
|
|
24884
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("
|
|
25132
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "printer-slot-shadow" }),
|
|
24885
25133
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "receipt-wrapper", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "receipt", children: [
|
|
24886
25134
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "receipt-header", children: [
|
|
24887
|
-
|
|
24888
|
-
|
|
24889
|
-
|
|
24890
|
-
|
|
24891
|
-
|
|
25135
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
25136
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "receipt-title", children: "COMMIT RECEIPT" }),
|
|
25137
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "receipt-hash", children: [
|
|
25138
|
+
"#",
|
|
25139
|
+
commit.hash ? commit.hash.substring(0, 7) : "0000000"
|
|
25140
|
+
] })
|
|
25141
|
+
] }),
|
|
25142
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "logo text-gray-800 opacity-80", children: /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { height: "34", viewBox: "0 0 16 16", width: "34", fill: "currentColor", children: /* @__PURE__ */ jsxRuntimeExports.jsx("path", { d: "M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z" }) }) })
|
|
24892
25143
|
] }),
|
|
24893
25144
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "receipt-subheader", children: [
|
|
24894
|
-
"
|
|
24895
|
-
|
|
24896
|
-
|
|
24897
|
-
|
|
24898
|
-
new Date(commit.date).toLocaleString()
|
|
24899
|
-
] }),
|
|
24900
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("table", { className: "receipt-table", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("tbody", { children: [
|
|
24901
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("tr", { children: [
|
|
24902
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("th", { children: "File" }),
|
|
24903
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("th", { children: "Ins" }),
|
|
24904
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("th", { children: "Del" })
|
|
25145
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
25146
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "font-semibold", children: "Author:" }),
|
|
25147
|
+
" ",
|
|
25148
|
+
commit.author_name || "Git User"
|
|
24905
25149
|
] }),
|
|
24906
|
-
|
|
24907
|
-
|
|
24908
|
-
|
|
24909
|
-
|
|
24910
|
-
|
|
24911
|
-
|
|
24912
|
-
|
|
24913
|
-
|
|
24914
|
-
|
|
24915
|
-
|
|
24916
|
-
|
|
25150
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: new Date(commit.date).toLocaleString() })
|
|
25151
|
+
] }),
|
|
25152
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "receipt-search-bar", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
25153
|
+
"input",
|
|
25154
|
+
{
|
|
25155
|
+
type: "text",
|
|
25156
|
+
placeholder: `Search all ${allFiles.length.toLocaleString()} files...`,
|
|
25157
|
+
value: searchQuery,
|
|
25158
|
+
onChange: (e) => handleSearchChange(e.target.value),
|
|
25159
|
+
className: "receipt-search-input"
|
|
25160
|
+
}
|
|
25161
|
+
) }),
|
|
25162
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "receipt-table-header", children: [
|
|
25163
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { width: "58%" }, children: "FILE" }),
|
|
25164
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { width: "21%", textAlign: "right" }, children: "INS" }),
|
|
25165
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { width: "21%", textAlign: "right" }, children: "DEL" })
|
|
25166
|
+
] }),
|
|
25167
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
25168
|
+
"div",
|
|
25169
|
+
{
|
|
25170
|
+
ref: scrollRef,
|
|
25171
|
+
className: "receipt-table-scroll custom-scrollbar",
|
|
25172
|
+
onScroll: handleScroll,
|
|
25173
|
+
style: { height: `${CONTAINER_HEIGHT}px` },
|
|
25174
|
+
children: filteredFiles.length === 0 ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "receipt-empty-state", children: "No matching files found." }) : /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
25175
|
+
"div",
|
|
25176
|
+
{
|
|
25177
|
+
style: { height: `${totalVirtualHeight}px`, position: "relative", width: "100%" },
|
|
25178
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
25179
|
+
"div",
|
|
25180
|
+
{
|
|
25181
|
+
style: {
|
|
25182
|
+
position: "absolute",
|
|
25183
|
+
top: 0,
|
|
25184
|
+
left: 0,
|
|
25185
|
+
right: 0,
|
|
25186
|
+
transform: `translateY(${offsetY}px)`,
|
|
25187
|
+
willChange: "transform"
|
|
25188
|
+
},
|
|
25189
|
+
children: visibleFiles.map((f, idx) => {
|
|
25190
|
+
const actualIdx = startIndex + idx;
|
|
25191
|
+
const parts = f.file.split("/");
|
|
25192
|
+
const fileName = parts.pop() || f.file;
|
|
25193
|
+
const dirName = parts.length > 0 ? parts.join("/") + "/" : "";
|
|
25194
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
25195
|
+
"div",
|
|
25196
|
+
{
|
|
25197
|
+
className: "receipt-virtual-row",
|
|
25198
|
+
style: { height: `${ROW_HEIGHT}px` },
|
|
25199
|
+
children: [
|
|
25200
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "file-cell", title: f.file, style: { width: "58%" }, children: [
|
|
25201
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "file-name", children: fileName }),
|
|
25202
|
+
dirName && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "file-dir", children: dirName })
|
|
25203
|
+
] }),
|
|
25204
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "ins-cell text-green-600 font-bold", style: { width: "21%" }, children: [
|
|
25205
|
+
"+",
|
|
25206
|
+
f.insertions || 0
|
|
25207
|
+
] }),
|
|
25208
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "del-cell text-red-600 font-bold", style: { width: "21%" }, children: [
|
|
25209
|
+
"-",
|
|
25210
|
+
f.deletions || 0
|
|
25211
|
+
] })
|
|
25212
|
+
]
|
|
25213
|
+
},
|
|
25214
|
+
actualIdx
|
|
25215
|
+
);
|
|
25216
|
+
})
|
|
25217
|
+
}
|
|
25218
|
+
)
|
|
25219
|
+
}
|
|
25220
|
+
)
|
|
25221
|
+
}
|
|
25222
|
+
),
|
|
25223
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("table", { className: "receipt-summary-table", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("tbody", { children: [
|
|
24917
25224
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("tr", { className: "receipt-subtotal", children: [
|
|
24918
25225
|
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { colSpan: 2, children: "Files Changed" }),
|
|
24919
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { children: commit.diff?.changed ||
|
|
25226
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { children: (commit.diff?.changed || allFiles.length).toLocaleString() })
|
|
24920
25227
|
] }),
|
|
24921
25228
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("tr", { className: "receipt-tax", children: [
|
|
24922
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { colSpan: 2, children: "Insertions" }),
|
|
25229
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { colSpan: 2, children: "Total Insertions" }),
|
|
24923
25230
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("td", { className: "text-green-600 font-bold", children: [
|
|
24924
25231
|
"+",
|
|
24925
|
-
commit.diff?.insertions || 0
|
|
25232
|
+
(commit.diff?.insertions || 0).toLocaleString()
|
|
24926
25233
|
] })
|
|
24927
25234
|
] }),
|
|
24928
25235
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("tr", { className: "receipt-total", children: [
|
|
24929
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { colSpan: 2, children: "Deletions" }),
|
|
25236
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { colSpan: 2, children: "Total Deletions" }),
|
|
24930
25237
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("td", { className: "text-red-600 font-bold", children: [
|
|
24931
25238
|
"-",
|
|
24932
|
-
commit.diff?.deletions || 0
|
|
25239
|
+
(commit.diff?.deletions || 0).toLocaleString()
|
|
24933
25240
|
] })
|
|
24934
25241
|
] })
|
|
24935
25242
|
] }) }),
|
|
24936
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
25243
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "receipt-message", title: commit.message, children: [
|
|
25244
|
+
'"',
|
|
25245
|
+
commit.message,
|
|
25246
|
+
'"'
|
|
25247
|
+
] }),
|
|
25248
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "receipt-barcode", children: "||| | |||| | ||| || |||| | || |||" })
|
|
24937
25249
|
] }) })
|
|
24938
25250
|
] });
|
|
24939
25251
|
};
|
|
@@ -25450,7 +25762,7 @@ const THEMES = [
|
|
|
25450
25762
|
{ id: "dracula", name: "Dracula" },
|
|
25451
25763
|
{ id: "github-light", name: "GitHub Light" },
|
|
25452
25764
|
{ id: "nord", name: "Nord" },
|
|
25453
|
-
{ id: "
|
|
25765
|
+
{ id: "retro-os", name: "Retro OS UI" },
|
|
25454
25766
|
{ id: "night-owl", name: "Night Owl" },
|
|
25455
25767
|
{ id: "tokyo-night", name: "Tokyo Night" },
|
|
25456
25768
|
{ id: "gruvbox-dark", name: "Gruvbox Dark" },
|
|
@@ -25474,7 +25786,8 @@ const THEMES = [
|
|
|
25474
25786
|
{ id: "dev-cpp-ocean", name: "Dev-C++ Ocean" },
|
|
25475
25787
|
{ id: "dev-cpp-matrix", name: "Dev-C++ Matrix" },
|
|
25476
25788
|
{ id: "dev-cpp-twilight", name: "Dev-C++ Twilight" },
|
|
25477
|
-
{ id: "turbo-cpp-classic", name: "Turbo C++ Classic" }
|
|
25789
|
+
{ id: "turbo-cpp-classic", name: "Turbo C++ Classic" },
|
|
25790
|
+
{ id: "game-rpg", name: "RPG Game UI" }
|
|
25478
25791
|
];
|
|
25479
25792
|
function App() {
|
|
25480
25793
|
const [repoPath, setRepoPath] = reactExports.useState(null);
|
|
@@ -25648,6 +25961,10 @@ function App() {
|
|
|
25648
25961
|
const [pushFailureData, setPushFailureData] = reactExports.useState(null);
|
|
25649
25962
|
const [gitErrorData, setGitErrorData] = reactExports.useState(null);
|
|
25650
25963
|
const [showSettings, setShowSettings] = reactExports.useState(false);
|
|
25964
|
+
const [draftTheme, setDraftTheme] = reactExports.useState("github-dark");
|
|
25965
|
+
const [draftLang, setDraftLang] = reactExports.useState("en");
|
|
25966
|
+
const [draftDailyAuth, setDraftDailyAuth] = reactExports.useState(true);
|
|
25967
|
+
const [draftLockscreenSpace, setDraftLockscreenSpace] = reactExports.useState(true);
|
|
25651
25968
|
const [showContributorsModal, setShowContributorsModal] = reactExports.useState(false);
|
|
25652
25969
|
const [remoteUrl, setRemoteUrl] = reactExports.useState(null);
|
|
25653
25970
|
const [gitConfig, setGitConfig] = reactExports.useState({ name: "", email: "" });
|
|
@@ -25802,14 +26119,28 @@ function App() {
|
|
|
25802
26119
|
}
|
|
25803
26120
|
}, [changesTab, collaboratedRepos.length]);
|
|
25804
26121
|
reactExports.useEffect(() => {
|
|
26122
|
+
let invInterval = null;
|
|
25805
26123
|
if (authStatus.status === "Verified") {
|
|
25806
26124
|
window.api.getCollaboratedRepos().then((repos) => {
|
|
25807
26125
|
setCollaboratedRepos(repos);
|
|
25808
26126
|
}).catch((err) => console.error(err));
|
|
26127
|
+
window.api.getUserInvitations().then((invs) => {
|
|
26128
|
+
setInvitations(invs || []);
|
|
26129
|
+
}).catch((err) => console.error("Failed to fetch user invitations", err));
|
|
26130
|
+
invInterval = setInterval(() => {
|
|
26131
|
+
window.api.getUserInvitations().then((invs) => {
|
|
26132
|
+
setInvitations(invs || []);
|
|
26133
|
+
}).catch(() => {
|
|
26134
|
+
});
|
|
26135
|
+
}, 3e4);
|
|
25809
26136
|
} else {
|
|
25810
26137
|
setCollaboratedRepos([]);
|
|
26138
|
+
setInvitations([]);
|
|
25811
26139
|
}
|
|
25812
|
-
|
|
26140
|
+
return () => {
|
|
26141
|
+
if (invInterval) clearInterval(invInterval);
|
|
26142
|
+
};
|
|
26143
|
+
}, [authStatus.status, activeAccountId]);
|
|
25813
26144
|
reactExports.useEffect(() => {
|
|
25814
26145
|
window.api.getAuthStatus().then((auth) => {
|
|
25815
26146
|
setAuthStatus(auth);
|
|
@@ -26312,11 +26643,6 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
26312
26643
|
await navigator.clipboard.writeText(data.user_code);
|
|
26313
26644
|
} catch (err) {
|
|
26314
26645
|
}
|
|
26315
|
-
if (data.verification_uri_complete) {
|
|
26316
|
-
await window.api.openExternal(data.verification_uri_complete);
|
|
26317
|
-
} else {
|
|
26318
|
-
await window.api.openExternal(data.verification_uri);
|
|
26319
|
-
}
|
|
26320
26646
|
await window.api.pollDeviceFlow(data.device_code, data.interval * 1e3);
|
|
26321
26647
|
setShowAuthModal(false);
|
|
26322
26648
|
const accs = await window.api.getAccounts();
|
|
@@ -26572,11 +26898,6 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
26572
26898
|
await navigator.clipboard.writeText(data.user_code);
|
|
26573
26899
|
} catch (err) {
|
|
26574
26900
|
}
|
|
26575
|
-
if (data.verification_uri_complete) {
|
|
26576
|
-
await window.api.openExternal(data.verification_uri_complete);
|
|
26577
|
-
} else {
|
|
26578
|
-
await window.api.openExternal(data.verification_uri);
|
|
26579
|
-
}
|
|
26580
26901
|
await window.api.pollDeviceFlow(data.device_code, data.interval * 1e3);
|
|
26581
26902
|
setShowAuthModal(false);
|
|
26582
26903
|
setIsDailyAuthMode(false);
|
|
@@ -26606,9 +26927,24 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
26606
26927
|
if (!email) email = `${activeAcc.username}@users.noreply.github.com`;
|
|
26607
26928
|
}
|
|
26608
26929
|
setGitConfig({ name: name || "", email: email || "" });
|
|
26930
|
+
setDraftTheme(theme);
|
|
26931
|
+
setDraftLang(lang);
|
|
26932
|
+
setDraftDailyAuth(dailyAuthEnabled);
|
|
26933
|
+
setDraftLockscreenSpace(enableLockscreenSpace);
|
|
26609
26934
|
setShowSettings(true);
|
|
26610
26935
|
};
|
|
26611
26936
|
const saveSettings = async () => {
|
|
26937
|
+
setLang(draftLang);
|
|
26938
|
+
handleThemeChange(draftTheme);
|
|
26939
|
+
setDailyAuthEnabled(draftDailyAuth);
|
|
26940
|
+
localStorage.setItem("gitelectron-daily-auth", draftDailyAuth ? "true" : "false");
|
|
26941
|
+
setEnableLockscreenSpace(draftLockscreenSpace);
|
|
26942
|
+
localStorage.setItem("gitelectron-enable-space", draftLockscreenSpace ? "true" : "false");
|
|
26943
|
+
setShowSettings(false);
|
|
26944
|
+
showToast("Settings saved successfully", "success");
|
|
26945
|
+
};
|
|
26946
|
+
const cancelSettings = () => {
|
|
26947
|
+
document.documentElement.setAttribute("data-theme", theme);
|
|
26612
26948
|
setShowSettings(false);
|
|
26613
26949
|
};
|
|
26614
26950
|
const viewDiff = async (file, staged) => {
|
|
@@ -26719,14 +27055,14 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
26719
27055
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
26720
27056
|
"div",
|
|
26721
27057
|
{
|
|
26722
|
-
"data-theme": theme,
|
|
27058
|
+
"data-theme": showSettings ? draftTheme : theme,
|
|
26723
27059
|
className: "flex h-screen bg-canvas text-primary font-sans overflow-hidden transition-colors duration-300 select-none",
|
|
26724
27060
|
onDragOver: handleDragOver,
|
|
26725
27061
|
onDragLeave: handleDragLeave,
|
|
26726
27062
|
onDrop: handleDrop,
|
|
26727
27063
|
children: [
|
|
26728
|
-
theme === "among-us-live" && /* @__PURE__ */ jsxRuntimeExports.jsx(AmongUsBackground, {}),
|
|
26729
|
-
theme === "space-explorer-3d" && /* @__PURE__ */ jsxRuntimeExports.jsx(SpaceExplorerBackground, {}),
|
|
27064
|
+
(showSettings ? draftTheme : theme) === "among-us-live" && /* @__PURE__ */ jsxRuntimeExports.jsx(AmongUsBackground, {}),
|
|
27065
|
+
(showSettings ? draftTheme : theme) === "space-explorer-3d" && /* @__PURE__ */ jsxRuntimeExports.jsx(SpaceExplorerBackground, {}),
|
|
26730
27066
|
showWelcomeWizard && /* @__PURE__ */ jsxRuntimeExports.jsx(WelcomeWizard, { onComplete: () => setShowWelcomeWizard(false) }),
|
|
26731
27067
|
gitErrorData && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute inset-0 bg-black/70 backdrop-blur-md flex items-center justify-center z-[150] p-6 animate-fade-in", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "bg-surface/95 border border-danger/50 rounded-2xl shadow-2xl w-full max-w-lg overflow-hidden flex flex-col p-6", children: [
|
|
26732
27068
|
/* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "text-xl font-bold text-danger mb-4", children: "Git Error" }),
|
|
@@ -26755,7 +27091,7 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
26755
27091
|
] }),
|
|
26756
27092
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
26757
27093
|
/* @__PURE__ */ jsxRuntimeExports.jsx("h4", { className: "text-sm font-medium text-primary mb-1", children: "AI Proposed Fix" }),
|
|
26758
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "bg-brand
|
|
27094
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "bg-brand text-white border border-brand/20 p-3 rounded text-sm text-brand", children: autoSyncErrorPayload.proposedFix })
|
|
26759
27095
|
] }),
|
|
26760
27096
|
autoSyncErrorPayload.files && autoSyncErrorPayload.files.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
26761
27097
|
/* @__PURE__ */ jsxRuntimeExports.jsx("h4", { className: "text-sm font-medium text-primary mb-1", children: "Affected Files" }),
|
|
@@ -26926,8 +27262,8 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
26926
27262
|
CustomDropdown,
|
|
26927
27263
|
{
|
|
26928
27264
|
options: LANGUAGES.map((l) => ({ value: l.id, label: l.name })),
|
|
26929
|
-
value:
|
|
26930
|
-
onChange: (val) =>
|
|
27265
|
+
value: draftLang,
|
|
27266
|
+
onChange: (val) => setDraftLang(val),
|
|
26931
27267
|
buttonClassName: "w-full bg-surface border border-border rounded-lg p-2.5 text-primary focus:outline-none focus:border-accent transition-all cursor-pointer font-medium text-sm"
|
|
26932
27268
|
}
|
|
26933
27269
|
)
|
|
@@ -26938,8 +27274,11 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
26938
27274
|
CustomDropdown,
|
|
26939
27275
|
{
|
|
26940
27276
|
options: THEMES.map((t2) => ({ value: t2.id, label: t2.name })),
|
|
26941
|
-
value:
|
|
26942
|
-
onChange: (val) =>
|
|
27277
|
+
value: draftTheme,
|
|
27278
|
+
onChange: (val) => {
|
|
27279
|
+
setDraftTheme(val);
|
|
27280
|
+
document.documentElement.setAttribute("data-theme", val);
|
|
27281
|
+
},
|
|
26943
27282
|
buttonClassName: "w-full bg-surface border border-border rounded-lg p-2.5 text-primary focus:outline-none focus:border-accent transition-all cursor-pointer font-medium text-sm"
|
|
26944
27283
|
}
|
|
26945
27284
|
)
|
|
@@ -26998,14 +27337,10 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
26998
27337
|
{
|
|
26999
27338
|
className: "toggle",
|
|
27000
27339
|
type: "checkbox",
|
|
27001
|
-
checked:
|
|
27340
|
+
checked: draftDailyAuth,
|
|
27002
27341
|
onChange: (e) => {
|
|
27003
27342
|
const next = e.target.checked;
|
|
27004
|
-
|
|
27005
|
-
localStorage.setItem(
|
|
27006
|
-
"gitelectron-daily-auth",
|
|
27007
|
-
next ? "true" : "false"
|
|
27008
|
-
);
|
|
27343
|
+
setDraftDailyAuth(next);
|
|
27009
27344
|
}
|
|
27010
27345
|
}
|
|
27011
27346
|
),
|
|
@@ -27024,14 +27359,10 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
27024
27359
|
{
|
|
27025
27360
|
className: "toggle",
|
|
27026
27361
|
type: "checkbox",
|
|
27027
|
-
checked:
|
|
27362
|
+
checked: draftLockscreenSpace,
|
|
27028
27363
|
onChange: (e) => {
|
|
27029
27364
|
const next = e.target.checked;
|
|
27030
|
-
|
|
27031
|
-
localStorage.setItem(
|
|
27032
|
-
"gitelectron-enable-space",
|
|
27033
|
-
next ? "true" : "false"
|
|
27034
|
-
);
|
|
27365
|
+
setDraftLockscreenSpace(next);
|
|
27035
27366
|
}
|
|
27036
27367
|
}
|
|
27037
27368
|
),
|
|
@@ -27090,10 +27421,10 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
27090
27421
|
{
|
|
27091
27422
|
type: "button",
|
|
27092
27423
|
onClick: () => {
|
|
27093
|
-
|
|
27424
|
+
cancelSettings();
|
|
27094
27425
|
handleStartAuth();
|
|
27095
27426
|
},
|
|
27096
|
-
className: "px-3 py-1.5 bg-brand
|
|
27427
|
+
className: "px-3 py-1.5 bg-brand text-white hover:bg-brand text-white text-brand text-xs font-bold rounded-lg border border-brand/20 transition-colors",
|
|
27097
27428
|
children: [
|
|
27098
27429
|
"+ ",
|
|
27099
27430
|
t("addAccount")
|
|
@@ -27147,7 +27478,7 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
27147
27478
|
setAccounts([]);
|
|
27148
27479
|
setActiveAccountId(null);
|
|
27149
27480
|
setPushPermission(false);
|
|
27150
|
-
|
|
27481
|
+
cancelSettings();
|
|
27151
27482
|
showToast("Successfully logged out", "success");
|
|
27152
27483
|
} catch (e) {
|
|
27153
27484
|
console.error("Logout failed", e);
|
|
@@ -27208,7 +27539,7 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
27208
27539
|
await window.api.masterPush(remotes[0].name, status?.current || "main");
|
|
27209
27540
|
showToast("Master Push successful!", "success");
|
|
27210
27541
|
refreshRepoState();
|
|
27211
|
-
|
|
27542
|
+
cancelSettings();
|
|
27212
27543
|
} catch (err) {
|
|
27213
27544
|
showToast(
|
|
27214
27545
|
"Master Push failed: " + (err.message || "Unknown error"),
|
|
@@ -27234,7 +27565,7 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
27234
27565
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
27235
27566
|
"button",
|
|
27236
27567
|
{
|
|
27237
|
-
onClick: () =>
|
|
27568
|
+
onClick: () => cancelSettings(),
|
|
27238
27569
|
className: "px-6 py-2.5 bg-surface border-2 border-border hover:bg-surface-hover rounded-xl transition-all font-bold text-sm",
|
|
27239
27570
|
children: t("cancel")
|
|
27240
27571
|
}
|
|
@@ -27582,7 +27913,7 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
27582
27913
|
}
|
|
27583
27914
|
),
|
|
27584
27915
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-3 pr-8 min-w-0", children: [
|
|
27585
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-10 h-10 rounded-xl bg-brand
|
|
27916
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-10 h-10 rounded-xl bg-brand text-white border border-brand/20 flex items-center justify-center text-brand flex-shrink-0", children: /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { className: "w-5 h-5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
27586
27917
|
"path",
|
|
27587
27918
|
{
|
|
27588
27919
|
strokeLinecap: "round",
|
|
@@ -28006,7 +28337,7 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
28006
28337
|
"button",
|
|
28007
28338
|
{
|
|
28008
28339
|
onClick: () => setShowUniversalWizard(true),
|
|
28009
|
-
className: "w-full bg-
|
|
28340
|
+
className: "w-full bg-brand hover:bg-brand-hover text-white font-medium py-2 px-4 rounded-md transition-all border border-border shadow-sm flex items-center justify-center gap-2",
|
|
28010
28341
|
children: [
|
|
28011
28342
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-base", children: "🚀" }),
|
|
28012
28343
|
" ",
|
|
@@ -28160,7 +28491,7 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
28160
28491
|
}
|
|
28161
28492
|
),
|
|
28162
28493
|
t("collaborationRepo"),
|
|
28163
|
-
collaboratedRepos.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "ml-auto bg-brand
|
|
28494
|
+
collaboratedRepos.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "ml-auto bg-brand text-white text-brand text-[10px] font-bold px-1.5 py-0.5 rounded-full", children: collaboratedRepos.length })
|
|
28164
28495
|
]
|
|
28165
28496
|
}
|
|
28166
28497
|
),
|
|
@@ -28234,7 +28565,7 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
28234
28565
|
] })
|
|
28235
28566
|
] }),
|
|
28236
28567
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1 p-6 flex flex-col overflow-y-auto custom-scrollbar min-h-0 relative z-10", children: isRepo && status && branches ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 flex flex-col min-h-0 gap-4 mb-6 relative z-20", children: [
|
|
28237
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-wrap justify-between items-center bg-surface
|
|
28568
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-wrap justify-between items-center bg-surface backdrop-blur-md border border-border p-3 rounded-xl transition-colors duration-300 gap-4 relative z-50", children: [
|
|
28238
28569
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-wrap items-center gap-4 text-sm", children: [
|
|
28239
28570
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 relative", children: [
|
|
28240
28571
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-secondary", children: "Auth:" }),
|
|
@@ -28408,7 +28739,7 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
28408
28739
|
"button",
|
|
28409
28740
|
{
|
|
28410
28741
|
onClick: handleToggleAutoSync,
|
|
28411
|
-
className: `px-2 py-1.5 rounded transition-colors flex items-center justify-center border font-medium ${autoSyncEnabled ? "bg-green-500/20 text-green-400 border-green-500/30" : "hover:bg-brand
|
|
28742
|
+
className: `px-2 py-1.5 rounded transition-colors flex items-center justify-center border font-medium ${autoSyncEnabled ? "bg-green-500/20 text-green-400 border-green-500/30" : "hover:bg-brand text-white text-brand border-brand/30"}`,
|
|
28412
28743
|
title: autoSyncEnabled ? "Disable Auto-Push" : "Enable Auto-Push",
|
|
28413
28744
|
children: [
|
|
28414
28745
|
"⚡ ",
|
|
@@ -28530,7 +28861,7 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
28530
28861
|
)
|
|
28531
28862
|
] })
|
|
28532
28863
|
] }),
|
|
28533
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative z-40 flex flex-wrap justify-between items-center bg-surface
|
|
28864
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative z-40 flex flex-wrap justify-between items-center bg-surface backdrop-blur-md p-4 rounded-xl border border-border transition-colors duration-300 gap-4", children: [
|
|
28534
28865
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-3 w-full sm:w-auto", children: [
|
|
28535
28866
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-secondary text-sm hidden sm:inline", children: "Branch:" }),
|
|
28536
28867
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "relative", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -28573,7 +28904,7 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
28573
28904
|
"button",
|
|
28574
28905
|
{
|
|
28575
28906
|
onClick: () => window.api.openExternal(remoteUrl),
|
|
28576
|
-
className: "p-1.5 hover:bg-brand
|
|
28907
|
+
className: "p-1.5 hover:bg-brand text-white text-brand rounded transition-colors flex items-center justify-center border border-brand/30",
|
|
28577
28908
|
title: "View Repository on GitHub",
|
|
28578
28909
|
children: /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { className: "w-3.5 h-3.5", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsxRuntimeExports.jsx("path", { d: "M12 0C5.374 0 0 5.373 0 12c0 5.302 3.438 9.8 8.205 11.387.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 21.795 24 17.298 24 12c0-6.627-5.373-12-12-12z" }) })
|
|
28579
28910
|
}
|
|
@@ -28599,7 +28930,7 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
28599
28930
|
"button",
|
|
28600
28931
|
{
|
|
28601
28932
|
onClick: () => setShowContributorsModal(true),
|
|
28602
|
-
className: "px-2 py-1.5 hover:bg-brand
|
|
28933
|
+
className: "px-2 py-1.5 hover:bg-brand text-white text-brand rounded transition-colors flex items-center justify-center border border-brand/30 font-medium",
|
|
28603
28934
|
title: "Manage Collaborators",
|
|
28604
28935
|
children: [
|
|
28605
28936
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -28731,7 +29062,7 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
28731
29062
|
)
|
|
28732
29063
|
] })
|
|
28733
29064
|
] }),
|
|
28734
|
-
changesTab === "collaboration-repo" ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 bg-surface
|
|
29065
|
+
changesTab === "collaboration-repo" ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 bg-surface backdrop-blur-md rounded-2xl border border-border flex flex-col transition-colors duration-300 overflow-hidden p-4 sm:p-5 min-w-0", children: [
|
|
28735
29066
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center border-b border-border pb-3 mb-4 gap-2 flex-shrink-0", children: [
|
|
28736
29067
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
28737
29068
|
"button",
|
|
@@ -28752,7 +29083,7 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
28752
29083
|
children: "Deleted"
|
|
28753
29084
|
}
|
|
28754
29085
|
),
|
|
28755
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "ml-auto text-xs font-bold text-brand bg-brand
|
|
29086
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "ml-auto text-xs font-bold text-brand bg-brand text-white border border-brand/20 px-3 py-1 rounded-full", children: "Collaboration Repo" })
|
|
28756
29087
|
] }),
|
|
28757
29088
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
28758
29089
|
CollaborationRepoView,
|
|
@@ -28783,14 +29114,14 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
28783
29114
|
"div",
|
|
28784
29115
|
{
|
|
28785
29116
|
style: { flex: leftPanelWidth },
|
|
28786
|
-
className: "bg-surface
|
|
29117
|
+
className: "bg-surface backdrop-blur-md rounded-xl border border-border flex flex-col transition-colors duration-300 overflow-hidden min-h-[250px] min-w-0 min-h-0",
|
|
28787
29118
|
children: [
|
|
28788
29119
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-nowrap overflow-x-auto custom-scrollbar items-center border-b border-border px-4 pt-3 pb-1 gap-y-2 gap-x-1", children: [
|
|
28789
29120
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
28790
29121
|
"button",
|
|
28791
29122
|
{
|
|
28792
29123
|
onClick: () => setChangesTab("changes"),
|
|
28793
|
-
className: `text-xs font-semibold px-3 py-1.5 rounded-t-md transition-colors border-b-2 whitespace-nowrap flex-shrink-0 ${changesTab === "changes" ? "text-primary border-accent bg-
|
|
29124
|
+
className: `text-xs font-semibold px-3 py-1.5 rounded-t-md transition-colors border-b-2 whitespace-nowrap flex-shrink-0 ${changesTab === "changes" ? "text-primary border-accent bg-surface border-b-2" : "text-secondary border-transparent hover:text-primary"}`,
|
|
28794
29125
|
children: [
|
|
28795
29126
|
"Changes",
|
|
28796
29127
|
status.not_added.length + status.modified.length + status.created.length + status.conflicted.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "ml-1.5 bg-accent/20 text-accent text-[10px] font-bold px-1.5 py-0.5 rounded-full", children: status.not_added.length + status.modified.length + status.created.length + status.conflicted.length })
|
|
@@ -28801,7 +29132,7 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
28801
29132
|
"button",
|
|
28802
29133
|
{
|
|
28803
29134
|
onClick: () => setChangesTab("deleted"),
|
|
28804
|
-
className: `text-xs font-semibold px-3 py-1.5 rounded-t-md transition-colors border-b-2 whitespace-nowrap flex-shrink-0 ${changesTab === "deleted" ? "text-primary border-danger bg-
|
|
29135
|
+
className: `text-xs font-semibold px-3 py-1.5 rounded-t-md transition-colors border-b-2 whitespace-nowrap flex-shrink-0 ${changesTab === "deleted" ? "text-primary border-danger bg-surface border-b-2" : "text-secondary border-transparent hover:text-primary"}`,
|
|
28805
29136
|
children: [
|
|
28806
29137
|
"Deleted",
|
|
28807
29138
|
status.deleted.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "ml-1.5 bg-danger/20 text-danger text-[10px] font-bold px-1.5 py-0.5 rounded-full", children: status.deleted.length })
|
|
@@ -28816,10 +29147,10 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
28816
29147
|
window.api.getCollaboratedRepos().then((repos) => setCollaboratedRepos(repos || [])).catch(() => {
|
|
28817
29148
|
});
|
|
28818
29149
|
},
|
|
28819
|
-
className: `text-xs font-semibold px-3 py-1.5 rounded-t-md transition-colors border-b-2 whitespace-nowrap flex-shrink-0 ${changesTab === "collaboration-repo" ? "text-primary border-brand bg-
|
|
29150
|
+
className: `text-xs font-semibold px-3 py-1.5 rounded-t-md transition-colors border-b-2 whitespace-nowrap flex-shrink-0 ${changesTab === "collaboration-repo" ? "text-primary border-brand bg-surface border-b-2" : "text-secondary border-transparent hover:text-primary"}`,
|
|
28820
29151
|
children: [
|
|
28821
29152
|
"Collaboration Repo",
|
|
28822
|
-
collaboratedRepos.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "ml-1.5 bg-brand
|
|
29153
|
+
collaboratedRepos.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "ml-1.5 bg-brand text-white text-brand text-[10px] font-bold px-1.5 py-0.5 rounded-full", children: collaboratedRepos.length })
|
|
28823
29154
|
]
|
|
28824
29155
|
}
|
|
28825
29156
|
),
|
|
@@ -28829,7 +29160,7 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
28829
29160
|
{
|
|
28830
29161
|
onClick: handleUploadFiles,
|
|
28831
29162
|
disabled: !repoPath || isUploading,
|
|
28832
|
-
className: "text-xs bg-brand
|
|
29163
|
+
className: "text-xs bg-brand text-white hover:bg-brand text-white text-brand border border-brand/30 px-2.5 py-1 rounded-md transition-all flex items-center gap-1.5 font-medium shadow-sm disabled:opacity-50 whitespace-nowrap flex-shrink-0",
|
|
28833
29164
|
title: "Upload files directly into this repository",
|
|
28834
29165
|
children: [
|
|
28835
29166
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -29094,7 +29425,7 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
29094
29425
|
"div",
|
|
29095
29426
|
{
|
|
29096
29427
|
style: { flex: 100 - leftPanelWidth },
|
|
29097
|
-
className: "bg-surface
|
|
29428
|
+
className: "bg-surface backdrop-blur-md rounded-xl p-4 border border-border flex flex-col transition-colors duration-300 overflow-hidden min-h-0 min-w-0",
|
|
29098
29429
|
children: [
|
|
29099
29430
|
/* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "font-semibold mb-4 text-primary text-sm shrink-0", children: "Staged Changes" }),
|
|
29100
29431
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1 overflow-y-auto min-h-0 pr-2 custom-scrollbar", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("ul", { className: "space-y-1", children: [
|
|
@@ -29141,7 +29472,7 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
29141
29472
|
]
|
|
29142
29473
|
}
|
|
29143
29474
|
),
|
|
29144
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "mt-4 shrink-0 bg-surface
|
|
29475
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "mt-4 shrink-0 bg-surface backdrop-blur-md p-4 rounded-xl border border-border flex flex-col sm:flex-row gap-3 items-center transition-colors duration-300", children: [
|
|
29145
29476
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
29146
29477
|
"input",
|
|
29147
29478
|
{
|
|
@@ -29167,7 +29498,7 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
29167
29498
|
)
|
|
29168
29499
|
] })
|
|
29169
29500
|
] })
|
|
29170
|
-
] }) : changesTab === "collaboration-repo" ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 bg-surface
|
|
29501
|
+
] }) : changesTab === "collaboration-repo" ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 bg-surface backdrop-blur-md rounded-2xl border border-border flex flex-col transition-colors duration-300 overflow-hidden p-4 sm:p-5 min-w-0", children: [
|
|
29171
29502
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between border-b border-border pb-3 mb-4 gap-2 flex-shrink-0", children: [
|
|
29172
29503
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
29173
29504
|
"button",
|
|
@@ -29180,7 +29511,7 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
29180
29511
|
]
|
|
29181
29512
|
}
|
|
29182
29513
|
),
|
|
29183
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-xs font-bold text-brand bg-brand
|
|
29514
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-xs font-bold text-brand bg-brand text-white border border-brand/20 px-3 py-1 rounded-full", children: "Collaboration Hub" }) })
|
|
29184
29515
|
] }),
|
|
29185
29516
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
29186
29517
|
CollaborationRepoView,
|
|
@@ -29199,51 +29530,300 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
29199
29530
|
onChangeFolder: handleSelectCollabFolder
|
|
29200
29531
|
}
|
|
29201
29532
|
)
|
|
29202
|
-
] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 flex flex-col
|
|
29203
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
29204
|
-
|
|
29205
|
-
|
|
29206
|
-
|
|
29207
|
-
|
|
29208
|
-
|
|
29209
|
-
|
|
29210
|
-
|
|
29211
|
-
|
|
29212
|
-
|
|
29213
|
-
|
|
29533
|
+
] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 flex flex-col min-h-0 relative z-10", children: [
|
|
29534
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-wrap justify-between items-center bg-surface/80 backdrop-blur-md border border-border p-3 rounded-xl mb-4 gap-4 relative z-50", children: [
|
|
29535
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-wrap items-center gap-4 text-sm", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 relative", children: [
|
|
29536
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-secondary", children: "Auth:" }),
|
|
29537
|
+
accounts.length > 0 ? /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
29538
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
29539
|
+
"button",
|
|
29540
|
+
{
|
|
29541
|
+
onClick: () => setShowAccountDropdown(!showAccountDropdown),
|
|
29542
|
+
className: "flex items-center hover:bg-surface-hover px-2 py-1 rounded transition-colors",
|
|
29543
|
+
children: authStatus.status === "Verified" ? /* @__PURE__ */ jsxRuntimeExports.jsx(AuthHoverButton, { username: authStatus.username }) : authStatus.status === "Waiting" ? /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-warning font-medium flex items-center", children: [
|
|
29544
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-6 h-6 mr-2 animate-bounce", children: "🚀" }),
|
|
29545
|
+
"Waiting..."
|
|
29546
|
+
] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-danger font-medium flex items-center", children: [
|
|
29547
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-2 h-2 bg-danger rounded-full mr-2" }),
|
|
29548
|
+
"Select Account",
|
|
29549
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
29550
|
+
"svg",
|
|
29551
|
+
{
|
|
29552
|
+
className: "w-3 h-3 text-secondary ml-2",
|
|
29553
|
+
fill: "none",
|
|
29554
|
+
stroke: "currentColor",
|
|
29555
|
+
viewBox: "0 0 24 24",
|
|
29556
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
29557
|
+
"path",
|
|
29558
|
+
{
|
|
29559
|
+
strokeLinecap: "round",
|
|
29560
|
+
strokeLinejoin: "round",
|
|
29561
|
+
strokeWidth: 2,
|
|
29562
|
+
d: "M19 9l-7 7-7-7"
|
|
29563
|
+
}
|
|
29564
|
+
)
|
|
29565
|
+
}
|
|
29566
|
+
)
|
|
29567
|
+
] })
|
|
29568
|
+
}
|
|
29569
|
+
),
|
|
29570
|
+
showAccountDropdown && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "absolute top-full left-0 mt-2 w-64 max-w-[90vw] bg-surface backdrop-blur-xl border border-border rounded-lg shadow-2xl py-2 z-[60] account-dropdown-glass", children: [
|
|
29571
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "px-3 py-1.5 text-xs font-semibold text-secondary uppercase tracking-wider mb-1", children: "Your Accounts" }),
|
|
29572
|
+
accounts.map((acc) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
29573
|
+
"div",
|
|
29574
|
+
{
|
|
29575
|
+
className: "flex items-center justify-between px-3 py-2 hover:bg-surface-hover group transition-colors",
|
|
29576
|
+
children: [
|
|
29577
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
29578
|
+
"button",
|
|
29579
|
+
{
|
|
29580
|
+
className: "flex-1 flex items-center text-left",
|
|
29581
|
+
onClick: async () => {
|
|
29582
|
+
await window.api.switchAccount(acc.id);
|
|
29583
|
+
if (repoPath) {
|
|
29584
|
+
refreshRepoState();
|
|
29585
|
+
}
|
|
29586
|
+
setShowAccountDropdown(false);
|
|
29587
|
+
},
|
|
29588
|
+
children: [
|
|
29589
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
29590
|
+
"div",
|
|
29591
|
+
{
|
|
29592
|
+
className: `w-2 h-2 rounded-full mr-3 ${activeAccountId === acc.id ? "bg-success" : "bg-transparent border border-border group-hover:border-primary"}`
|
|
29593
|
+
}
|
|
29594
|
+
),
|
|
29595
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm text-primary font-medium", children: acc.username })
|
|
29596
|
+
]
|
|
29597
|
+
}
|
|
29598
|
+
),
|
|
29599
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
29600
|
+
"button",
|
|
29601
|
+
{
|
|
29602
|
+
onClick: async (e) => {
|
|
29603
|
+
e.stopPropagation();
|
|
29604
|
+
await window.api.removeAccount(acc.id);
|
|
29605
|
+
const accs = await window.api.getAccounts();
|
|
29606
|
+
setAccounts(accs.accounts);
|
|
29607
|
+
setActiveAccountId(accs.activeAccountId);
|
|
29608
|
+
if (repoPath) {
|
|
29609
|
+
refreshRepoState();
|
|
29610
|
+
}
|
|
29611
|
+
},
|
|
29612
|
+
className: "text-secondary hover:text-danger p-1 rounded opacity-0 group-hover:opacity-100 transition-opacity",
|
|
29613
|
+
title: "Remove Account",
|
|
29614
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
29615
|
+
"svg",
|
|
29616
|
+
{
|
|
29617
|
+
className: "w-3.5 h-3.5",
|
|
29618
|
+
fill: "none",
|
|
29619
|
+
stroke: "currentColor",
|
|
29620
|
+
viewBox: "0 0 24 24",
|
|
29621
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
29622
|
+
"path",
|
|
29623
|
+
{
|
|
29624
|
+
strokeLinecap: "round",
|
|
29625
|
+
strokeLinejoin: "round",
|
|
29626
|
+
strokeWidth: 2,
|
|
29627
|
+
d: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"
|
|
29628
|
+
}
|
|
29629
|
+
)
|
|
29630
|
+
}
|
|
29631
|
+
)
|
|
29632
|
+
}
|
|
29633
|
+
)
|
|
29634
|
+
]
|
|
29635
|
+
},
|
|
29636
|
+
acc.id
|
|
29637
|
+
)),
|
|
29638
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "border-t border-border mt-2 pt-2 px-2", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
29639
|
+
"button",
|
|
29640
|
+
{
|
|
29641
|
+
onClick: () => {
|
|
29642
|
+
setShowAccountDropdown(false);
|
|
29643
|
+
handleStartAuth();
|
|
29644
|
+
},
|
|
29645
|
+
className: "w-full text-left px-3 py-2 text-sm text-primary hover:bg-surface-hover rounded-md flex items-center transition-colors",
|
|
29646
|
+
children: [
|
|
29647
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
29648
|
+
"svg",
|
|
29649
|
+
{
|
|
29650
|
+
className: "w-4 h-4 mr-3 text-secondary",
|
|
29651
|
+
fill: "none",
|
|
29652
|
+
stroke: "currentColor",
|
|
29653
|
+
viewBox: "0 0 24 24",
|
|
29654
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
29655
|
+
"path",
|
|
29656
|
+
{
|
|
29657
|
+
strokeLinecap: "round",
|
|
29658
|
+
strokeLinejoin: "round",
|
|
29659
|
+
strokeWidth: 2,
|
|
29660
|
+
d: "M12 6v6m0 0v6m0-6h6m-6 0H6"
|
|
29661
|
+
}
|
|
29662
|
+
)
|
|
29663
|
+
}
|
|
29664
|
+
),
|
|
29665
|
+
"Add Another Account"
|
|
29666
|
+
]
|
|
29667
|
+
}
|
|
29668
|
+
) })
|
|
29669
|
+
] })
|
|
29670
|
+
] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
29671
|
+
"button",
|
|
29214
29672
|
{
|
|
29215
|
-
|
|
29216
|
-
|
|
29217
|
-
viewBox: "0 0 24 24",
|
|
29673
|
+
onClick: handleStartAuth,
|
|
29674
|
+
className: "px-4 py-1.5 bg-brand hover:bg-brand-hover text-white rounded-md text-xs font-semibold transition-colors shadow-sm flex items-center gap-1.5 cursor-pointer",
|
|
29218
29675
|
children: [
|
|
29219
29676
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
29220
|
-
"
|
|
29677
|
+
"svg",
|
|
29221
29678
|
{
|
|
29222
|
-
className: "
|
|
29223
|
-
|
|
29224
|
-
cy: "12",
|
|
29225
|
-
r: "10",
|
|
29679
|
+
className: "w-3.5 h-3.5",
|
|
29680
|
+
fill: "none",
|
|
29226
29681
|
stroke: "currentColor",
|
|
29227
|
-
|
|
29682
|
+
viewBox: "0 0 24 24",
|
|
29683
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
29684
|
+
"path",
|
|
29685
|
+
{
|
|
29686
|
+
strokeLinecap: "round",
|
|
29687
|
+
strokeLinejoin: "round",
|
|
29688
|
+
strokeWidth: 2,
|
|
29689
|
+
d: "M11 16l-4-4m0 0l4-4m-4 4h14m-5 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h7a3 3 0 013 3v1"
|
|
29690
|
+
}
|
|
29691
|
+
)
|
|
29228
29692
|
}
|
|
29229
29693
|
),
|
|
29230
|
-
|
|
29694
|
+
"Sign In to GitHub"
|
|
29695
|
+
]
|
|
29696
|
+
}
|
|
29697
|
+
)
|
|
29698
|
+
] }) }),
|
|
29699
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
29700
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
29701
|
+
"button",
|
|
29702
|
+
{
|
|
29703
|
+
onClick: () => setShowInvitationsModal(true),
|
|
29704
|
+
className: `relative px-3 py-1.5 border rounded-md transition-all flex items-center justify-center gap-2 cursor-pointer shadow-sm ${invitations.length > 0 ? "bg-brand/20 border-brand text-brand hover:bg-brand/30 ring-1 ring-brand/50" : "bg-surface-hover border-border text-secondary hover:text-primary"}`,
|
|
29705
|
+
title: invitations.length > 0 ? `${invitations.length} Pending Collaboration Invitation(s)` : "Pending Invitations",
|
|
29706
|
+
children: [
|
|
29707
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
29231
29708
|
"path",
|
|
29232
29709
|
{
|
|
29233
|
-
|
|
29234
|
-
|
|
29235
|
-
|
|
29710
|
+
strokeLinecap: "round",
|
|
29711
|
+
strokeLinejoin: "round",
|
|
29712
|
+
strokeWidth: 2,
|
|
29713
|
+
d: "M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"
|
|
29236
29714
|
}
|
|
29237
|
-
)
|
|
29715
|
+
) }),
|
|
29716
|
+
invitations.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
29717
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-xs font-bold text-primary", children: invitations.length }),
|
|
29718
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "w-2 h-2 bg-danger rounded-full animate-pulse" })
|
|
29719
|
+
] })
|
|
29238
29720
|
]
|
|
29239
29721
|
}
|
|
29240
29722
|
),
|
|
29241
|
-
|
|
29242
|
-
|
|
29723
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
29724
|
+
"button",
|
|
29725
|
+
{
|
|
29726
|
+
onClick: async () => {
|
|
29727
|
+
const invs = await window.api.getUserInvitations();
|
|
29728
|
+
setInvitations(invs || []);
|
|
29729
|
+
const repos = await window.api.getCollaboratedRepos();
|
|
29730
|
+
setCollaboratedRepos(repos || []);
|
|
29731
|
+
showToast("Notifications refreshed", "info");
|
|
29732
|
+
},
|
|
29733
|
+
className: "px-3 py-1.5 bg-surface-hover border border-border rounded-md text-xs font-semibold text-secondary hover:text-primary active:scale-95 transition-all flex items-center justify-center gap-1.5 cursor-pointer",
|
|
29734
|
+
title: "Refresh Notifications & Invitations",
|
|
29735
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
29736
|
+
"svg",
|
|
29737
|
+
{
|
|
29738
|
+
className: "w-3.5 h-3.5",
|
|
29739
|
+
fill: "none",
|
|
29740
|
+
stroke: "currentColor",
|
|
29741
|
+
viewBox: "0 0 24 24",
|
|
29742
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
29743
|
+
"path",
|
|
29744
|
+
{
|
|
29745
|
+
strokeLinecap: "round",
|
|
29746
|
+
strokeLinejoin: "round",
|
|
29747
|
+
strokeWidth: 2,
|
|
29748
|
+
d: "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"
|
|
29749
|
+
}
|
|
29750
|
+
)
|
|
29751
|
+
}
|
|
29752
|
+
)
|
|
29753
|
+
}
|
|
29754
|
+
)
|
|
29755
|
+
] })
|
|
29756
|
+
] }),
|
|
29757
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 flex flex-col items-center justify-center text-secondary relative z-10 py-6", children: [
|
|
29758
|
+
invitations.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "mb-6 p-4 sm:p-5 bg-surface/90 border border-brand/40 hover:border-brand/70 rounded-2xl shadow-xl flex items-center gap-4 max-w-md w-full backdrop-blur-md animate-fade-in transition-all", children: [
|
|
29759
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-11 h-11 rounded-xl bg-brand text-white flex items-center justify-center text-xl flex-shrink-0 shadow-md", children: "🔔" }),
|
|
29760
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 text-left min-w-0", children: [
|
|
29761
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-sm font-bold text-primary truncate", children: [
|
|
29762
|
+
invitations.length,
|
|
29763
|
+
" Collaboration Invitation",
|
|
29764
|
+
invitations.length > 1 ? "s" : "",
|
|
29765
|
+
" Pending"
|
|
29766
|
+
] }),
|
|
29767
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-secondary mt-0.5", children: "Accept now to clone or link and start collaborating." })
|
|
29768
|
+
] }),
|
|
29769
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
29770
|
+
"button",
|
|
29771
|
+
{
|
|
29772
|
+
onClick: () => setShowInvitationsModal(true),
|
|
29773
|
+
className: "px-3.5 py-1.5 bg-brand hover:bg-brand-hover text-white text-xs font-bold rounded-lg transition-all shadow-sm flex-shrink-0 cursor-pointer",
|
|
29774
|
+
children: [
|
|
29775
|
+
"Review (",
|
|
29776
|
+
invitations.length,
|
|
29777
|
+
")"
|
|
29778
|
+
]
|
|
29779
|
+
}
|
|
29780
|
+
)
|
|
29781
|
+
] }),
|
|
29782
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-24 h-24 mb-6 opacity-30 hover:opacity-50 transition-opacity", children: /* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: logo, alt: "Logo", className: "w-full h-full drop-shadow-md" }) }),
|
|
29783
|
+
repoPath ? /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
29784
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xl mb-2 text-primary font-semibold", children: "Folder Loaded" }),
|
|
29785
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs font-mono text-accent bg-accent/10 px-3 py-1 rounded-md mb-6 border border-accent/20", children: repoPath }),
|
|
29786
|
+
errorMsg ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-danger bg-danger/10 border border-danger/30 p-4 rounded-md text-sm text-center max-w-md", children: [
|
|
29787
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("strong", { children: "Error:" }),
|
|
29788
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("br", {}),
|
|
29789
|
+
errorMsg
|
|
29790
|
+
] }) : !isRepo ? /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm", children: 'Click "Initialize Git in Folder" in the sidebar.' }) : /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "flex items-center gap-2 text-sm", children: [
|
|
29791
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
29792
|
+
"svg",
|
|
29793
|
+
{
|
|
29794
|
+
className: "w-4 h-4 animate-spin text-secondary",
|
|
29795
|
+
fill: "none",
|
|
29796
|
+
viewBox: "0 0 24 24",
|
|
29797
|
+
children: [
|
|
29798
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
29799
|
+
"circle",
|
|
29800
|
+
{
|
|
29801
|
+
className: "opacity-25",
|
|
29802
|
+
cx: "12",
|
|
29803
|
+
cy: "12",
|
|
29804
|
+
r: "10",
|
|
29805
|
+
stroke: "currentColor",
|
|
29806
|
+
strokeWidth: "4"
|
|
29807
|
+
}
|
|
29808
|
+
),
|
|
29809
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
29810
|
+
"path",
|
|
29811
|
+
{
|
|
29812
|
+
className: "opacity-75",
|
|
29813
|
+
fill: "currentColor",
|
|
29814
|
+
d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
|
|
29815
|
+
}
|
|
29816
|
+
)
|
|
29817
|
+
]
|
|
29818
|
+
}
|
|
29819
|
+
),
|
|
29820
|
+
" ",
|
|
29821
|
+
"Analyzing..."
|
|
29822
|
+
] })
|
|
29823
|
+
] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-center flex flex-col items-center", children: [
|
|
29824
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-3xl font-bold text-primary mb-2 tracking-tight", children: "GIT ELECTRON" }),
|
|
29825
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm text-secondary mb-10", children: "Open a project from the sidebar to manage a repository." })
|
|
29243
29826
|
] })
|
|
29244
|
-
] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-center flex flex-col items-center", children: [
|
|
29245
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-3xl font-bold text-primary mb-2 tracking-tight", children: "GIT ELECTRON" }),
|
|
29246
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm text-secondary mb-10", children: "Open a project from the sidebar to manage a repository." })
|
|
29247
29827
|
] })
|
|
29248
29828
|
] }) }),
|
|
29249
29829
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -29290,10 +29870,21 @@ Are you SURE you want to link "${repoName}" to this folder?`
|
|
|
29290
29870
|
onClick: async () => {
|
|
29291
29871
|
try {
|
|
29292
29872
|
await window.api.acceptInvitation(inv.id);
|
|
29293
|
-
showToast(
|
|
29873
|
+
showToast(`Invitation accepted for ${inv.repository.full_name}!`, "success");
|
|
29874
|
+
setShowInvitationsModal(false);
|
|
29875
|
+
setShowCollabActionModal({
|
|
29876
|
+
name: inv.repository.name,
|
|
29877
|
+
fullName: inv.repository.full_name,
|
|
29878
|
+
url: inv.repository.html_url || inv.repository.clone_url,
|
|
29879
|
+
repo: inv.repository
|
|
29880
|
+
});
|
|
29294
29881
|
const invs = await window.api.getUserInvitations();
|
|
29295
29882
|
setInvitations(invs || []);
|
|
29296
|
-
|
|
29883
|
+
const repos = await window.api.getCollaboratedRepos();
|
|
29884
|
+
setCollaboratedRepos(repos || []);
|
|
29885
|
+
if (repoPath) {
|
|
29886
|
+
refreshRepoState();
|
|
29887
|
+
}
|
|
29297
29888
|
} catch (e) {
|
|
29298
29889
|
showToast(e.message || "Failed to accept invitation", "error");
|
|
29299
29890
|
}
|