@hexclave/js 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -23
- package/dist/dev-tool/dev-tool-core.d.ts.map +1 -1
- package/dist/dev-tool/dev-tool-core.js +23 -23
- package/dist/dev-tool/dev-tool-core.js.map +1 -1
- package/dist/dev-tool/index.js +6 -6
- package/dist/dev-tool/index.js.map +1 -1
- package/dist/esm/dev-tool/dev-tool-core.d.ts.map +1 -1
- package/dist/esm/dev-tool/dev-tool-core.js +2 -2
- package/dist/esm/dev-tool/dev-tool-core.js.map +1 -1
- package/dist/esm/dev-tool/index.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -2
- package/dist/esm/integrations/convex.js.map +1 -1
- package/dist/esm/lib/auth.js.map +1 -1
- package/dist/esm/lib/auth.test.js.map +1 -1
- package/dist/esm/lib/cookie.js.map +1 -1
- package/dist/esm/lib/stack-app/api-keys/index.js.map +1 -1
- package/dist/esm/lib/stack-app/apps/implementations/admin-app-impl.d.ts +11 -11
- package/dist/esm/lib/stack-app/apps/implementations/admin-app-impl.d.ts.map +1 -1
- package/dist/esm/lib/stack-app/apps/implementations/admin-app-impl.js +3 -1
- package/dist/esm/lib/stack-app/apps/implementations/admin-app-impl.js.map +1 -1
- package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.js +67 -1
- package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -1
- package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.d.ts +4 -3
- package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.d.ts.map +1 -1
- package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.js +18 -2
- package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.js.map +1 -1
- package/dist/esm/lib/stack-app/apps/implementations/common.d.ts.map +1 -1
- package/dist/esm/lib/stack-app/apps/implementations/common.js +1 -1
- package/dist/esm/lib/stack-app/apps/implementations/common.js.map +1 -1
- package/dist/esm/lib/stack-app/apps/implementations/event-tracker.js.map +1 -1
- package/dist/esm/lib/stack-app/apps/implementations/event-tracker.test.js.map +1 -1
- package/dist/esm/lib/stack-app/apps/implementations/index.js.map +1 -1
- package/dist/esm/lib/stack-app/apps/implementations/redirect-page-urls.js.map +1 -1
- package/dist/esm/lib/stack-app/apps/implementations/server-app-impl.js.map +1 -1
- package/dist/esm/lib/stack-app/apps/implementations/session-replay.d.ts.map +1 -1
- package/dist/esm/lib/stack-app/apps/implementations/session-replay.js +3 -2
- package/dist/esm/lib/stack-app/apps/implementations/session-replay.js.map +1 -1
- package/dist/esm/lib/stack-app/apps/interfaces/admin-app.d.ts +4 -0
- package/dist/esm/lib/stack-app/apps/interfaces/admin-app.d.ts.map +1 -1
- package/dist/esm/lib/stack-app/apps/interfaces/admin-app.js +1 -0
- package/dist/esm/lib/stack-app/apps/interfaces/admin-app.js.map +1 -1
- package/dist/esm/lib/stack-app/apps/interfaces/client-app.d.ts +5 -0
- package/dist/esm/lib/stack-app/apps/interfaces/client-app.d.ts.map +1 -1
- package/dist/esm/lib/stack-app/apps/interfaces/client-app.js +1 -0
- package/dist/esm/lib/stack-app/apps/interfaces/client-app.js.map +1 -1
- package/dist/esm/lib/stack-app/apps/interfaces/server-app.d.ts +4 -0
- package/dist/esm/lib/stack-app/apps/interfaces/server-app.d.ts.map +1 -1
- package/dist/esm/lib/stack-app/apps/interfaces/server-app.js +1 -0
- package/dist/esm/lib/stack-app/apps/interfaces/server-app.js.map +1 -1
- package/dist/esm/lib/stack-app/common.js.map +1 -1
- package/dist/esm/lib/stack-app/contact-channels/index.js.map +1 -1
- package/dist/esm/lib/stack-app/email-templates/index.js.map +1 -1
- package/dist/esm/lib/stack-app/internal-api-keys/index.js.map +1 -1
- package/dist/esm/lib/stack-app/permissions/index.js.map +1 -1
- package/dist/esm/lib/stack-app/projects/index.js.map +1 -1
- package/dist/esm/lib/stack-app/teams/index.js.map +1 -1
- package/dist/esm/lib/stack-app/url-targets.js.map +1 -1
- package/dist/esm/lib/stack-app/url-targets.test.js +1 -1
- package/dist/esm/lib/stack-app/url-targets.test.js.map +1 -1
- package/dist/esm/lib/stack-app/users/index.js.map +1 -1
- package/dist/esm/utils/url.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3 -4
- package/dist/integrations/convex.js +5 -5
- package/dist/integrations/convex.js.map +1 -1
- package/dist/lib/auth.js +12 -12
- package/dist/lib/auth.js.map +1 -1
- package/dist/lib/auth.test.js +2 -2
- package/dist/lib/auth.test.js.map +1 -1
- package/dist/lib/cookie.js +9 -9
- package/dist/lib/cookie.js.map +1 -1
- package/dist/lib/stack-app/api-keys/index.js +2 -2
- package/dist/lib/stack-app/api-keys/index.js.map +1 -1
- package/dist/lib/stack-app/apps/implementations/admin-app-impl.d.ts +11 -11
- package/dist/lib/stack-app/apps/implementations/admin-app-impl.d.ts.map +1 -1
- package/dist/lib/stack-app/apps/implementations/admin-app-impl.js +38 -36
- package/dist/lib/stack-app/apps/implementations/admin-app-impl.js.map +1 -1
- package/dist/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.js +66 -0
- package/dist/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -1
- package/dist/lib/stack-app/apps/implementations/client-app-impl.d.ts +4 -3
- package/dist/lib/stack-app/apps/implementations/client-app-impl.d.ts.map +1 -1
- package/dist/lib/stack-app/apps/implementations/client-app-impl.js +210 -194
- package/dist/lib/stack-app/apps/implementations/client-app-impl.js.map +1 -1
- package/dist/lib/stack-app/apps/implementations/common.d.ts.map +1 -1
- package/dist/lib/stack-app/apps/implementations/common.js +25 -25
- package/dist/lib/stack-app/apps/implementations/common.js.map +1 -1
- package/dist/lib/stack-app/apps/implementations/event-tracker.js +7 -7
- package/dist/lib/stack-app/apps/implementations/event-tracker.js.map +1 -1
- package/dist/lib/stack-app/apps/implementations/event-tracker.test.js +3 -3
- package/dist/lib/stack-app/apps/implementations/event-tracker.test.js.map +1 -1
- package/dist/lib/stack-app/apps/implementations/index.js +4 -4
- package/dist/lib/stack-app/apps/implementations/index.js.map +1 -1
- package/dist/lib/stack-app/apps/implementations/redirect-page-urls.js +8 -8
- package/dist/lib/stack-app/apps/implementations/redirect-page-urls.js.map +1 -1
- package/dist/lib/stack-app/apps/implementations/server-app-impl.js +59 -59
- package/dist/lib/stack-app/apps/implementations/server-app-impl.js.map +1 -1
- package/dist/lib/stack-app/apps/implementations/session-replay.d.ts.map +1 -1
- package/dist/lib/stack-app/apps/implementations/session-replay.js +13 -12
- package/dist/lib/stack-app/apps/implementations/session-replay.js.map +1 -1
- package/dist/lib/stack-app/apps/interfaces/admin-app.d.ts +4 -0
- package/dist/lib/stack-app/apps/interfaces/admin-app.d.ts.map +1 -1
- package/dist/lib/stack-app/apps/interfaces/admin-app.js +1 -0
- package/dist/lib/stack-app/apps/interfaces/admin-app.js.map +1 -1
- package/dist/lib/stack-app/apps/interfaces/client-app.d.ts +5 -0
- package/dist/lib/stack-app/apps/interfaces/client-app.d.ts.map +1 -1
- package/dist/lib/stack-app/apps/interfaces/client-app.js +1 -0
- package/dist/lib/stack-app/apps/interfaces/client-app.js.map +1 -1
- package/dist/lib/stack-app/apps/interfaces/server-app.d.ts +4 -0
- package/dist/lib/stack-app/apps/interfaces/server-app.d.ts.map +1 -1
- package/dist/lib/stack-app/apps/interfaces/server-app.js +1 -0
- package/dist/lib/stack-app/apps/interfaces/server-app.js.map +1 -1
- package/dist/lib/stack-app/common.js.map +1 -1
- package/dist/lib/stack-app/contact-channels/index.js.map +1 -1
- package/dist/lib/stack-app/email-templates/index.js.map +1 -1
- package/dist/lib/stack-app/internal-api-keys/index.js.map +1 -1
- package/dist/lib/stack-app/permissions/index.js.map +1 -1
- package/dist/lib/stack-app/projects/index.js.map +1 -1
- package/dist/lib/stack-app/teams/index.js.map +1 -1
- package/dist/lib/stack-app/url-targets.js +6 -6
- package/dist/lib/stack-app/url-targets.js.map +1 -1
- package/dist/lib/stack-app/url-targets.test.js +1 -1
- package/dist/lib/stack-app/url-targets.test.js.map +1 -1
- package/dist/lib/stack-app/users/index.js +3 -3
- package/dist/lib/stack-app/users/index.js.map +1 -1
- package/dist/utils/url.js +2 -2
- package/dist/utils/url.js.map +1 -1
- package/package.json +3 -3
- package/dist/esm/internal/deprecation-warning.d.ts +0 -1
- package/dist/esm/internal/deprecation-warning.js +0 -24
- package/dist/esm/internal/deprecation-warning.js.map +0 -1
- package/dist/internal/deprecation-warning.d.ts +0 -1
- package/dist/internal/deprecation-warning.js +0 -24
- package/dist/internal/deprecation-warning.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,26 +1,10 @@
|
|
|
1
|
-
#
|
|
1
|
+
# This package has been renamed.
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Stack Auth is now Hexclave! The new packages are:
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
- @hexclave/next
|
|
6
|
+
- @hexclave/react
|
|
7
|
+
- @hexclave/js
|
|
8
|
+
- @hexclave/cli
|
|
6
9
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
We support Next.js frontends, along with any backend that can use our [REST API](https://docs.hexclave.com/rest-api/overview). Check out our [setup guide](https://docs.hexclave.com/getting-started/setup) to get started.
|
|
10
|
-
|
|
11
|
-
## 📦 Installation & Setup
|
|
12
|
-
|
|
13
|
-
1. Run Hexclave's installation wizard with the following command:
|
|
14
|
-
```bash
|
|
15
|
-
npx @hexclave/cli@latest init
|
|
16
|
-
```
|
|
17
|
-
2. Then, create an account on the [Hexclave dashboard](https://app.hexclave.com/projects), create a new project with an API key, and copy its environment variables into the .env.local file of your Next.js project:
|
|
18
|
-
```
|
|
19
|
-
NEXT_PUBLIC_STACK_PROJECT_ID=<your-project-id>
|
|
20
|
-
NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY=<your-publishable-client-key>
|
|
21
|
-
STACK_SECRET_SERVER_KEY=<your-secret-server-key>
|
|
22
|
-
```
|
|
23
|
-
3. That's it! You can run your app with `npm run dev` and go to [http://localhost:3000/handler/signup](http://localhost:3000/handler/signup) to see the sign-up page. You can also check out the account settings page at [http://localhost:3000/handler/account-settings](http://localhost:3000/handler/account-settings).
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
Check out the [documentation](https://docs.hexclave.com/getting-started/setup) for a more detailed guide.
|
|
10
|
+
See the [migration guide](https://docs.hexclave.com/migration) for more information.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-tool-core.d.ts","names":[],"sources":["../../src/dev-tool/dev-tool-core.ts"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"dev-tool-core.d.ts","names":[],"sources":["../../src/dev-tool/dev-tool-core.ts"],"mappings":";;;iBA6yEgB,aAAA,CAAc,GAAA,EAAK,cAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
2
|
const require_chunk = require('../chunk-BE-pF4vm.js');
|
|
3
|
-
let
|
|
4
|
-
let
|
|
3
|
+
let _hexclave_shared_dist_utils_promises = require("@hexclave/shared/dist/utils/promises");
|
|
4
|
+
let _hexclave_shared_dist_utils_urls = require("@hexclave/shared/dist/utils/urls");
|
|
5
5
|
let ___lib_env_js = require("../lib/env.js");
|
|
6
6
|
let ___lib_stack_app_apps_implementations_common_js = require("../lib/stack-app/apps/implementations/common.js");
|
|
7
7
|
let ___lib_stack_app_common_js = require("../lib/stack-app/common.js");
|
|
@@ -56,7 +56,7 @@ const DEFAULT_STATE = {
|
|
|
56
56
|
panelWidth: 800,
|
|
57
57
|
panelHeight: 520
|
|
58
58
|
};
|
|
59
|
-
const
|
|
59
|
+
const HEXCLAVE_LOGO_SVG = "<svg width=\"16\" height=\"16\" viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linejoin=\"miter\"><path d=\"M 24 4 L 41.32 14 L 41.32 34 L 24 44 L 6.68 34 L 6.68 14 Z\"/><path d=\"M 11 16.87 L 14 15.13 L 14 32.87 L 11 31.13 Z\" fill=\"currentColor\" stroke=\"none\"/><path d=\"M 11 16.87 L 14 15.13 L 14 32.87 L 11 31.13 Z\" fill=\"currentColor\" stroke=\"none\" transform=\"rotate(120 24 24)\"/><path d=\"M 11 16.87 L 14 15.13 L 14 32.87 L 11 31.13 Z\" fill=\"currentColor\" stroke=\"none\" transform=\"rotate(240 24 24)\"/></svg>";
|
|
60
60
|
function loadState() {
|
|
61
61
|
try {
|
|
62
62
|
const stored = localStorage.getItem(STORAGE_KEY);
|
|
@@ -151,7 +151,7 @@ function resolveApiBaseUrl(app) {
|
|
|
151
151
|
return (0, ___lib_stack_app_apps_implementations_common_js.getBaseUrl)(app[___lib_stack_app_common_js.stackAppInternalsSymbol].getConstructorOptions().baseUrl);
|
|
152
152
|
}
|
|
153
153
|
function shouldShowDashboardTab(app) {
|
|
154
|
-
return ___lib_env_js.envVars.NEXT_PUBLIC_STACK_IS_LOCAL_EMULATOR === "true" && (0,
|
|
154
|
+
return ___lib_env_js.envVars.NEXT_PUBLIC_STACK_IS_LOCAL_EMULATOR === "true" && (0, _hexclave_shared_dist_utils_urls.isLocalhost)(resolveApiBaseUrl(app));
|
|
155
155
|
}
|
|
156
156
|
function getTabsForApp(app) {
|
|
157
157
|
if (shouldShowDashboardTab(app)) return TABS;
|
|
@@ -326,7 +326,7 @@ function createTrigger(onClick) {
|
|
|
326
326
|
title: "Hexclave Dev Tools"
|
|
327
327
|
});
|
|
328
328
|
const logoSpan = h("span", { className: "sdt-trigger-logo" });
|
|
329
|
-
setHtml(logoSpan,
|
|
329
|
+
setHtml(logoSpan, HEXCLAVE_LOGO_SVG);
|
|
330
330
|
btn.appendChild(logoSpan);
|
|
331
331
|
let placement = loadPlacement() ?? { corner: "bottom-right" };
|
|
332
332
|
let pos = (0, __dev_tool_trigger_position_js.resolveTriggerPosition)(placement, triggerSize, {
|
|
@@ -562,7 +562,7 @@ function createOverviewTab(app) {
|
|
|
562
562
|
const signOutBtn = h("button", { className: "sdt-ov-btn sdt-ov-btn-danger" }, "Sign Out");
|
|
563
563
|
signOutBtn.disabled = loading;
|
|
564
564
|
signOutBtn.addEventListener("click", () => {
|
|
565
|
-
(0,
|
|
565
|
+
(0, _hexclave_shared_dist_utils_promises.runAsynchronously)(async () => {
|
|
566
566
|
loading = true;
|
|
567
567
|
rebuildActions();
|
|
568
568
|
try {
|
|
@@ -578,14 +578,14 @@ function createOverviewTab(app) {
|
|
|
578
578
|
const randomBtn = h("button", { className: "sdt-ov-btn sdt-ov-btn-primary" }, "Random User");
|
|
579
579
|
randomBtn.disabled = loading;
|
|
580
580
|
randomBtn.addEventListener("click", () => {
|
|
581
|
-
(0,
|
|
581
|
+
(0, _hexclave_shared_dist_utils_promises.runAsynchronously)(doQuickSignIn());
|
|
582
582
|
});
|
|
583
583
|
actions.append(signOutBtn, randomBtn);
|
|
584
584
|
} else {
|
|
585
585
|
const quickBtn = h("button", { className: "sdt-ov-btn sdt-ov-btn-primary sdt-ov-btn-wide" }, loading ? "Working…" : "Quick Sign In");
|
|
586
586
|
quickBtn.disabled = loading;
|
|
587
587
|
quickBtn.addEventListener("click", () => {
|
|
588
|
-
(0,
|
|
588
|
+
(0, _hexclave_shared_dist_utils_promises.runAsynchronously)(doQuickSignIn());
|
|
589
589
|
});
|
|
590
590
|
actions.appendChild(quickBtn);
|
|
591
591
|
}
|
|
@@ -593,7 +593,7 @@ function createOverviewTab(app) {
|
|
|
593
593
|
actions.appendChild(emailRow);
|
|
594
594
|
}
|
|
595
595
|
async function doQuickSignIn() {
|
|
596
|
-
if (!(0,
|
|
596
|
+
if (!(0, _hexclave_shared_dist_utils_urls.isLocalhost)(window.location.href)) {
|
|
597
597
|
showToast("Quick sign-in is only available on localhost", "error");
|
|
598
598
|
return;
|
|
599
599
|
}
|
|
@@ -627,7 +627,7 @@ function createOverviewTab(app) {
|
|
|
627
627
|
}
|
|
628
628
|
async function doSignInAs(targetEmail) {
|
|
629
629
|
if (!targetEmail.trim()) return;
|
|
630
|
-
if (!(0,
|
|
630
|
+
if (!(0, _hexclave_shared_dist_utils_urls.isLocalhost)(window.location.href)) {
|
|
631
631
|
showToast("Quick sign-in is only available on localhost", "error");
|
|
632
632
|
return;
|
|
633
633
|
}
|
|
@@ -674,10 +674,10 @@ function createOverviewTab(app) {
|
|
|
674
674
|
await refreshUser();
|
|
675
675
|
}
|
|
676
676
|
emailBtn.addEventListener("click", () => {
|
|
677
|
-
(0,
|
|
677
|
+
(0, _hexclave_shared_dist_utils_promises.runAsynchronously)(doSignInAs(emailInput.value));
|
|
678
678
|
});
|
|
679
679
|
emailInput.addEventListener("keydown", (e) => {
|
|
680
|
-
if (e.key === "Enter") (0,
|
|
680
|
+
if (e.key === "Enter") (0, _hexclave_shared_dist_utils_promises.runAsynchronously)(doSignInAs(emailInput.value));
|
|
681
681
|
});
|
|
682
682
|
heroCard.append(actions, toast);
|
|
683
683
|
const methodsCard = h("div", { className: "sdt-ov-card sdt-ov-card-auth" });
|
|
@@ -729,7 +729,7 @@ function createOverviewTab(app) {
|
|
|
729
729
|
if (!isBestEffortOverviewError(error)) throw error;
|
|
730
730
|
}
|
|
731
731
|
}
|
|
732
|
-
(0,
|
|
732
|
+
(0, _hexclave_shared_dist_utils_promises.runAsynchronously)(loadAuthMethods());
|
|
733
733
|
const checksCard = h("div", { className: "sdt-ov-card sdt-ov-card-checks" });
|
|
734
734
|
const projectId = app.projectId;
|
|
735
735
|
let checksCardMounted = false;
|
|
@@ -820,9 +820,9 @@ function createOverviewTab(app) {
|
|
|
820
820
|
}
|
|
821
821
|
container.append(heroCard, methodsCard);
|
|
822
822
|
buildChecklist();
|
|
823
|
-
(0,
|
|
823
|
+
(0, _hexclave_shared_dist_utils_promises.runAsynchronously)(refreshUser());
|
|
824
824
|
const userPoll = setInterval(() => {
|
|
825
|
-
(0,
|
|
825
|
+
(0, _hexclave_shared_dist_utils_promises.runAsynchronously)(refreshUser());
|
|
826
826
|
}, 3e3);
|
|
827
827
|
return {
|
|
828
828
|
element: container,
|
|
@@ -930,7 +930,7 @@ function createConsoleTab(logStore) {
|
|
|
930
930
|
contentArea.addEventListener("scroll", maybeLoadOlderLogs);
|
|
931
931
|
renderLogs();
|
|
932
932
|
copyBtn.addEventListener("click", () => {
|
|
933
|
-
(0,
|
|
933
|
+
(0, _hexclave_shared_dist_utils_promises.runAsynchronously)(navigator.clipboard.writeText(formatLogsForExport()).then(() => {
|
|
934
934
|
copyBtn.textContent = "✓ Copied";
|
|
935
935
|
setTimeout(() => {
|
|
936
936
|
setHtml(copyBtn, "<svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.25\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"/><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"/></svg>Copy");
|
|
@@ -1047,7 +1047,7 @@ function createAITab(app) {
|
|
|
1047
1047
|
btn.appendChild(h("span", { className: "sdt-ai-suggestion-icon" }, q.icon));
|
|
1048
1048
|
btn.appendChild(h("span", null, q.text));
|
|
1049
1049
|
btn.addEventListener("click", () => {
|
|
1050
|
-
(0,
|
|
1050
|
+
(0, _hexclave_shared_dist_utils_promises.runAsynchronously)(sendMessage(q.text));
|
|
1051
1051
|
});
|
|
1052
1052
|
suggestions.appendChild(btn);
|
|
1053
1053
|
}
|
|
@@ -1126,7 +1126,7 @@ function createAITab(app) {
|
|
|
1126
1126
|
const copyBtn = h("button", { className: "sdt-ai-copy-btn" }, "⎘");
|
|
1127
1127
|
const code = codeLines.join("\n");
|
|
1128
1128
|
copyBtn.addEventListener("click", () => {
|
|
1129
|
-
(0,
|
|
1129
|
+
(0, _hexclave_shared_dist_utils_promises.runAsynchronously)(navigator.clipboard.writeText(code).then(() => {
|
|
1130
1130
|
copyBtn.textContent = "✓";
|
|
1131
1131
|
setTimeout(() => {
|
|
1132
1132
|
copyBtn.textContent = "⎘";
|
|
@@ -1455,7 +1455,7 @@ function createAITab(app) {
|
|
|
1455
1455
|
e.preventDefault();
|
|
1456
1456
|
if (aiLoading) activeAiAbortController?.abort();
|
|
1457
1457
|
else {
|
|
1458
|
-
(0,
|
|
1458
|
+
(0, _hexclave_shared_dist_utils_promises.runAsynchronously)(sendMessage(input.value));
|
|
1459
1459
|
input.value = "";
|
|
1460
1460
|
}
|
|
1461
1461
|
renderInput();
|
|
@@ -1464,7 +1464,7 @@ function createAITab(app) {
|
|
|
1464
1464
|
sendBtn.addEventListener("click", () => {
|
|
1465
1465
|
if (aiLoading) activeAiAbortController?.abort();
|
|
1466
1466
|
else {
|
|
1467
|
-
(0,
|
|
1467
|
+
(0, _hexclave_shared_dist_utils_promises.runAsynchronously)(sendMessage(input.value));
|
|
1468
1468
|
input.value = "";
|
|
1469
1469
|
}
|
|
1470
1470
|
renderInput();
|
|
@@ -1622,7 +1622,7 @@ function createSupportTab(app) {
|
|
|
1622
1622
|
form.addEventListener("submit", (e) => {
|
|
1623
1623
|
e.preventDefault();
|
|
1624
1624
|
if (!emailInput.value.trim() || !messageInput.value.trim()) return;
|
|
1625
|
-
(0,
|
|
1625
|
+
(0, _hexclave_shared_dist_utils_promises.runAsynchronously)(async () => {
|
|
1626
1626
|
status = "submitting";
|
|
1627
1627
|
render();
|
|
1628
1628
|
try {
|
|
@@ -1732,7 +1732,7 @@ function createComponentsTab(app) {
|
|
|
1732
1732
|
}
|
|
1733
1733
|
let latestVersions = null;
|
|
1734
1734
|
let selectedKey = null;
|
|
1735
|
-
(0,
|
|
1735
|
+
(0, _hexclave_shared_dist_utils_promises.runAsynchronously)(fetch(`${apiBaseUrl}/api/latest/internal/component-versions`).then((r) => r.json()).then((data) => {
|
|
1736
1736
|
latestVersions = new Map(Object.entries(data.versions ?? {}));
|
|
1737
1737
|
renderSidebar();
|
|
1738
1738
|
}).catch(() => {}));
|
|
@@ -1838,7 +1838,7 @@ function createComponentsTab(app) {
|
|
|
1838
1838
|
const footer = h("div", { className: "sdt-pg-section-footer" });
|
|
1839
1839
|
const copyBtn = h("button", { className: "sdt-pg-copy-btn" }, "Copy prompt");
|
|
1840
1840
|
copyBtn.addEventListener("click", () => {
|
|
1841
|
-
(0,
|
|
1841
|
+
(0, _hexclave_shared_dist_utils_promises.runAsynchronously)(navigator.clipboard.writeText(promptText).then(() => {
|
|
1842
1842
|
copyBtn.textContent = "✓ Copied";
|
|
1843
1843
|
setTimeout(() => {
|
|
1844
1844
|
copyBtn.textContent = "Copy prompt";
|