devtools-guardian 1.0.1 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,6 +1,12 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React from 'react';
3
3
 
4
+ interface Props {
5
+ children: React.ReactNode;
6
+ overlay?: boolean;
7
+ }
8
+ declare const DevToolsProtection: ({ children, overlay, }: Props) => react_jsx_runtime.JSX.Element;
9
+
4
10
  interface DevToolsDetectorOptions {
5
11
  /** Keyboard shortcuts to intercept. Default covers common DevTools keys. */
6
12
  blockedKeys?: string[];
@@ -36,12 +42,6 @@ interface DevToolsDetectorOptions {
36
42
  */
37
43
  declare function useDevToolsDetector(options?: DevToolsDetectorOptions): boolean;
38
44
 
39
- interface Props {
40
- children: React.ReactNode;
41
- overlay?: boolean;
42
- }
43
- declare const DevToolsProtection: ({ children, overlay, }: Props) => react_jsx_runtime.JSX.Element;
44
-
45
45
  interface DevToolsWarningOverlayProps {
46
46
  /** Optional handler called when the user dismisses the overlay. */
47
47
  onClose?: () => void;
@@ -54,4 +54,4 @@ interface DevToolsWarningOverlayProps {
54
54
  */
55
55
  declare const DevToolsWarningOverlay: React.FC<DevToolsWarningOverlayProps>;
56
56
 
57
- export { type DevToolsDetectorOptions, DevToolsProtection, DevToolsWarningOverlay, useDevToolsDetector };
57
+ export { DevToolsProtection, DevToolsWarningOverlay, useDevToolsDetector };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,12 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React from 'react';
3
3
 
4
+ interface Props {
5
+ children: React.ReactNode;
6
+ overlay?: boolean;
7
+ }
8
+ declare const DevToolsProtection: ({ children, overlay, }: Props) => react_jsx_runtime.JSX.Element;
9
+
4
10
  interface DevToolsDetectorOptions {
5
11
  /** Keyboard shortcuts to intercept. Default covers common DevTools keys. */
6
12
  blockedKeys?: string[];
@@ -36,12 +42,6 @@ interface DevToolsDetectorOptions {
36
42
  */
37
43
  declare function useDevToolsDetector(options?: DevToolsDetectorOptions): boolean;
38
44
 
39
- interface Props {
40
- children: React.ReactNode;
41
- overlay?: boolean;
42
- }
43
- declare const DevToolsProtection: ({ children, overlay, }: Props) => react_jsx_runtime.JSX.Element;
44
-
45
45
  interface DevToolsWarningOverlayProps {
46
46
  /** Optional handler called when the user dismisses the overlay. */
47
47
  onClose?: () => void;
@@ -54,4 +54,4 @@ interface DevToolsWarningOverlayProps {
54
54
  */
55
55
  declare const DevToolsWarningOverlay: React.FC<DevToolsWarningOverlayProps>;
56
56
 
57
- export { type DevToolsDetectorOptions, DevToolsProtection, DevToolsWarningOverlay, useDevToolsDetector };
57
+ export { DevToolsProtection, DevToolsWarningOverlay, useDevToolsDetector };
package/dist/index.js CHANGED
@@ -1,33 +1,11 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use client";
2
+ 'use strict';
19
3
 
20
- // src/index.ts
21
- var index_exports = {};
22
- __export(index_exports, {
23
- DevToolsProtection: () => DevToolsProtection,
24
- DevToolsWarningOverlay: () => DevToolsWarningOverlay_default,
25
- useDevToolsDetector: () => useDevToolsDetector
26
- });
27
- module.exports = __toCommonJS(index_exports);
4
+ var react = require('react');
5
+ var framerMotion = require('framer-motion');
6
+ var jsxRuntime = require('react/jsx-runtime');
28
7
 
29
8
  // src/hooks/useDevToolsDetector.ts
30
- var import_react = require("react");
31
9
  var DEFAULT_BLOCKED_KEYS = [
32
10
  // 'F12',
33
11
  "Ctrl+Shift+I",
@@ -69,31 +47,31 @@ function useDevToolsDetector(options = {}) {
69
47
  pollInterval = 1500,
70
48
  thresholdBuffer = 0
71
49
  } = options;
72
- const [isOpen, setIsOpen] = (0, import_react.useState)(false);
73
- const isOpenRef = (0, import_react.useRef)(false);
74
- const onDetectRef = (0, import_react.useRef)(onDetect);
75
- const onCloseRef = (0, import_react.useRef)(onClose);
76
- (0, import_react.useEffect)(() => {
50
+ const [isOpen, setIsOpen] = react.useState(false);
51
+ const isOpenRef = react.useRef(false);
52
+ const onDetectRef = react.useRef(onDetect);
53
+ const onCloseRef = react.useRef(onClose);
54
+ react.useEffect(() => {
77
55
  onDetectRef.current = onDetect;
78
56
  }, [onDetect]);
79
- (0, import_react.useEffect)(() => {
57
+ react.useEffect(() => {
80
58
  onCloseRef.current = onClose;
81
59
  }, [onClose]);
82
- const triggerDetection = (0, import_react.useCallback)(() => {
60
+ const triggerDetection = react.useCallback(() => {
83
61
  if (!isOpenRef.current) {
84
62
  isOpenRef.current = true;
85
63
  setIsOpen(true);
86
64
  onDetectRef.current?.();
87
65
  }
88
66
  }, []);
89
- const triggerClose = (0, import_react.useCallback)(() => {
67
+ const triggerClose = react.useCallback(() => {
90
68
  if (isOpenRef.current) {
91
69
  isOpenRef.current = false;
92
70
  setIsOpen(false);
93
71
  onCloseRef.current?.();
94
72
  }
95
73
  }, []);
96
- const printConsoleBranding = (0, import_react.useCallback)(() => {
74
+ const printConsoleBranding = react.useCallback(() => {
97
75
  console.clear();
98
76
  console.log("%c Built with \u2764\uFE0F by Ali Arshad", CONSOLE_STYLES.owner);
99
77
  console.log("%c \u26A0 UNAUTHORIZED REVERSE ENGINEERING DETECTED.", CONSOLE_STYLES.warning);
@@ -107,7 +85,7 @@ function useDevToolsDetector(options = {}) {
107
85
  CONSOLE_STYLES.linkPurple
108
86
  );
109
87
  }, []);
110
- (0, import_react.useEffect)(() => {
88
+ react.useEffect(() => {
111
89
  const blockedSet = new Set(blockedKeys);
112
90
  const handleKeyDown = (e) => {
113
91
  const key = e.key.toLowerCase();
@@ -142,7 +120,7 @@ function useDevToolsDetector(options = {}) {
142
120
  window.removeEventListener("contextmenu", handleContextMenu);
143
121
  };
144
122
  }, [blockedKeys, disableRightClick, triggerDetection]);
145
- (0, import_react.useEffect)(() => {
123
+ react.useEffect(() => {
146
124
  const el = document.body;
147
125
  if (disableSelection) {
148
126
  el.style.userSelect = "none";
@@ -153,7 +131,7 @@ function useDevToolsDetector(options = {}) {
153
131
  el.style.webkitUserSelect = "";
154
132
  };
155
133
  }, [disableSelection]);
156
- (0, import_react.useEffect)(() => {
134
+ react.useEffect(() => {
157
135
  const checkDimensions = () => {
158
136
  if (isMobileDevice()) return false;
159
137
  const dpr = window.devicePixelRatio || 1;
@@ -168,7 +146,7 @@ function useDevToolsDetector(options = {}) {
168
146
  handleResize();
169
147
  return () => window.removeEventListener("resize", handleResize);
170
148
  }, [thresholdBuffer, triggerDetection]);
171
- (0, import_react.useEffect)(() => {
149
+ react.useEffect(() => {
172
150
  let consoleGetterFired = false;
173
151
  const sentinel = {
174
152
  [Symbol.toPrimitive]() {
@@ -220,13 +198,9 @@ function useDevToolsDetector(options = {}) {
220
198
  return isOpen;
221
199
  }
222
200
 
223
- // src/components/DevToolsWarningOverlay.tsx
224
- var import_react2 = require("react");
225
- var import_framer_motion = require("framer-motion");
226
-
227
201
  // #style-inject:#style-inject
228
202
  function styleInject(css, { insertAt } = {}) {
229
- if (!css || typeof document === "undefined") return;
203
+ if (typeof document === "undefined") return;
230
204
  const head = document.head || document.getElementsByTagName("head")[0];
231
205
  const style = document.createElement("style");
232
206
  style.type = "text/css";
@@ -248,9 +222,6 @@ function styleInject(css, { insertAt } = {}) {
248
222
 
249
223
  // src/styles/index.css
250
224
  styleInject('.dtg-overlay {\n position: fixed;\n inset: 0;\n z-index: 99999;\n display: flex;\n align-items: center;\n justify-content: center;\n user-select: none;\n font-family:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n "Liberation Mono",\n "Courier New",\n monospace;\n background: rgba(3, 5, 8, 0.93);\n backdrop-filter: blur(6px);\n}\n.dtg-canvas {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n opacity: 0.18;\n}\n.dtg-scanlines {\n position: absolute;\n inset: 0;\n pointer-events: none;\n}\n.dtg-vignette {\n position: absolute;\n inset: 0;\n pointer-events: none;\n background:\n radial-gradient(\n ellipse 60% 55% at 50% 50%,\n rgba(190, 18, 60, 0.07) 0%,\n transparent 70%);\n}\n.dtg-card {\n position: relative;\n width: 100%;\n max-width: 512px;\n margin-left: 16px;\n margin-right: 16px;\n border-radius: 12px;\n overflow: hidden;\n background: rgba(8, 12, 18, 0.92);\n border: 1px solid rgba(244, 63, 94, 0.2);\n box-shadow: 0 0 0 1px rgba(244, 63, 94, 0.05), 0 32px 64px rgba(0, 0, 0, 0.6);\n}\n.dtg-card-padding {\n padding: 32px;\n}\n.dtg-neon-edge {\n position: absolute;\n left: 0;\n right: 0;\n height: 1px;\n background:\n linear-gradient(\n 90deg,\n transparent 0%,\n #f43f5e 30%,\n #f43f5e 70%,\n transparent 100%);\n box-shadow: 0 0 6px 1px rgba(244, 63, 94, 0.6);\n}\n.dtg-neon-edge-top {\n top: 0;\n}\n.dtg-neon-edge-bottom {\n bottom: 0;\n}\n.dtg-pulse-dot {\n position: relative;\n display: flex;\n height: 10px;\n width: 10px;\n flex-shrink: 0;\n}\n.dtg-pulse-dot-ping {\n position: absolute;\n display: inline-flex;\n height: 100%;\n width: 100%;\n border-radius: 9999px;\n opacity: 0.6;\n animation: dtg-ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;\n}\n.dtg-pulse-dot-inner {\n position: relative;\n display: inline-flex;\n border-radius: 9999px;\n height: 10px;\n width: 10px;\n}\n@keyframes dtg-ping {\n 75%, 100% {\n transform: scale(2);\n opacity: 0;\n }\n}\n.dtg-creator-grid {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 12px;\n padding-top: 4px;\n}\n.dtg-creator-card {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 6px;\n padding: 16px 8px;\n border-radius: 8px;\n border: 1px solid rgba(148, 163, 184, 0.12);\n background: rgba(15, 20, 30, 0.7);\n text-decoration: none;\n transition: all 0.2s ease-in-out;\n}\n.dtg-creator-icon {\n width: 36px;\n height: 36px;\n border-radius: 9999px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 2px;\n transition: background-color 0.2s, color 0.2s;\n}\n.dtg-creator-label {\n font-size: 13px;\n font-weight: 600;\n color: #e2e8f0;\n}\n.dtg-creator-sub {\n font-size: 10px;\n color: #64748b;\n letter-spacing: 0.025em;\n}\n.dtg-scan-container {\n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n.dtg-flex-row {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n.dtg-scan-title {\n font-size: 12px;\n font-weight: 600;\n letter-spacing: 0.2em;\n text-transform: uppercase;\n color: #fb7185;\n}\n.dtg-steps-list {\n display: flex;\n flex-direction: column;\n gap: 10px;\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.dtg-step-item {\n display: flex;\n align-items: start;\n gap: 10px;\n font-family:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n monospace;\n font-size: 14px;\n}\n.dtg-step-indicator {\n margin-top: 2px;\n width: 16px;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.dtg-step-dot {\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background-color: #334155;\n display: inline-block;\n}\n.dtg-text-done {\n color: #64748b;\n text-decoration: line-through;\n text-decoration-color: #475569;\n}\n.dtg-text-active {\n color: #fda4af;\n font-weight: 500;\n}\n.dtg-text-pending {\n color: #475569;\n}\n.dtg-progress-track {\n width: 100%;\n height: 3px;\n border-radius: 9999px;\n overflow: hidden;\n background: rgba(255, 255, 255, 0.06);\n}\n.dtg-progress-fill {\n height: 100%;\n border-radius: 9999px;\n background:\n linear-gradient(\n 90deg,\n #be123c,\n #f43f5e,\n #fb7185);\n}\n.dtg-log-stream {\n font-family:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n monospace;\n font-size: 10px;\n color: #065f46;\n line-height: 1.625;\n display: flex;\n flex-direction: column;\n gap: 2px;\n opacity: 0.6;\n user-select: none;\n}\n.dtg-warning-container {\n text-align: center;\n display: flex;\n flex-direction: column;\n gap: 24px;\n}\n.dtg-shield-wrapper {\n display: inline-flex;\n padding: 16px;\n border-radius: 9999px;\n border: 1px solid rgba(244, 63, 94, 0.3);\n background: rgba(190, 18, 60, 0.12);\n box-shadow: 0 0 24px rgba(244, 63, 94, 0.18);\n margin: 0 auto;\n}\n.dtg-shield-icon {\n width: 40px;\n height: 40px;\n color: #f43f5e;\n}\n.dtg-warning-title {\n font-size: 20px;\n font-weight: 700;\n letter-spacing: 0.15em;\n text-transform: uppercase;\n color: #f43f5e;\n text-shadow: 0 0 20px rgba(244, 63, 94, 0.35);\n margin: 0;\n}\n.dtg-divider {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 12px;\n margin: 0 auto;\n width: 100%;\n max-width: 320px;\n}\n.dtg-divider-line {\n flex: 1 1 0%;\n height: 1px;\n background:\n linear-gradient(\n 90deg,\n transparent,\n rgba(244, 63, 94, 0.4));\n}\n.dtg-divider-line-rev {\n flex: 1 1 0%;\n height: 1px;\n background:\n linear-gradient(\n 90deg,\n rgba(244, 63, 94, 0.4),\n transparent);\n}\n.dtg-divider-text {\n font-size: 9px;\n letter-spacing: 0.25em;\n text-transform: uppercase;\n color: rgba(190, 18, 60, 0.7);\n font-family:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n monospace;\n}\n.dtg-description {\n color: #94a3b8;\n font-size: 14px;\n line-height: 1.625;\n max-width: 384px;\n margin: 0 auto;\n}\n.dtg-close-button {\n margin-top: 4px;\n padding: 8px 28px;\n border-radius: 4px;\n font-size: 12px;\n font-weight: 600;\n letter-spacing: 0.15em;\n text-transform: uppercase;\n font-family:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n monospace;\n transition: all 0.2s ease-in-out;\n cursor: pointer;\n border: 1px solid rgba(244, 63, 94, 0.25);\n color: #fda4af;\n background: transparent;\n align-self: center;\n}\n.dtg-close-button:hover {\n background: rgba(244, 63, 94, 0.08);\n border-color: rgba(244, 63, 94, 0.5);\n}\n.dtg-footer {\n padding-top: 16px;\n border-top: 1px solid rgba(255, 255, 255, 0.05);\n font-family:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n monospace;\n font-size: 9px;\n color: rgba(148, 163, 184, 0.3);\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.dtg-uppercase-track {\n letter-spacing: 0.1em;\n text-transform: uppercase;\n}\n');
251
-
252
- // src/components/DevToolsWarningOverlay.tsx
253
- var import_jsx_runtime = require("react/jsx-runtime");
254
225
  var SCAN_STEPS = [
255
226
  { id: "step-1", label: "Tracing unauthorized debugger session..." },
256
227
  { id: "step-2", label: "Analyzing reverse-engineering attempt..." },
@@ -260,8 +231,8 @@ var STEP_INTERVAL_MS = 1e3;
260
231
  var MATRIX_CHARS = "\uFF71\uFF72\uFF73\uFF74\uFF75\uFF76\uFF77\uFF78\uFF79\uFF7A\uFF7B\uFF7C\uFF7D\uFF7E\uFF7F\uFF80\uFF81\uFF82\uFF83\uFF84\uFF85\uFF86\uFF87\uFF88\uFF89\uFF8A\uFF8B\uFF8C\uFF8D\uFF8E\uFF8F\uFF90\uFF91\uFF92\uFF93\uFF94\uFF95\uFF96\uFF97\uFF98\uFF99\uFF9A\uFF9B\uFF9C\uFF9D0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
261
232
  var MATRIX_FONT_SIZE = 15;
262
233
  var MatrixBackground = () => {
263
- const canvasRef = (0, import_react2.useRef)(null);
264
- (0, import_react2.useEffect)(() => {
234
+ const canvasRef = react.useRef(null);
235
+ react.useEffect(() => {
265
236
  const canvas = canvasRef.current;
266
237
  if (!canvas) return;
267
238
  const ctx = canvas.getContext("2d");
@@ -316,7 +287,7 @@ var MatrixBackground = () => {
316
287
  window.removeEventListener("resize", resize);
317
288
  };
318
289
  }, []);
319
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
290
+ return /* @__PURE__ */ jsxRuntime.jsx(
320
291
  "canvas",
321
292
  {
322
293
  ref: canvasRef,
@@ -325,7 +296,7 @@ var MatrixBackground = () => {
325
296
  }
326
297
  );
327
298
  };
328
- var ScanlineOverlay = () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
299
+ var ScanlineOverlay = () => /* @__PURE__ */ jsxRuntime.jsx(
329
300
  "div",
330
301
  {
331
302
  "aria-hidden": "true",
@@ -338,22 +309,22 @@ var ScanlineOverlay = () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
338
309
  }
339
310
  }
340
311
  );
341
- var NeonEdge = ({ position }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
312
+ var NeonEdge = ({ position }) => /* @__PURE__ */ jsxRuntime.jsx(
342
313
  "div",
343
314
  {
344
315
  "aria-hidden": "true",
345
316
  className: `dtg-neon-edge dtg-neon-edge-${position}`
346
317
  }
347
318
  );
348
- var PulseDot = ({ color = "#f43f5e" }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: "dtg-pulse-dot", "aria-hidden": "true", children: [
349
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
319
+ var PulseDot = ({ color = "#f43f5e" }) => /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "dtg-pulse-dot", "aria-hidden": "true", children: [
320
+ /* @__PURE__ */ jsxRuntime.jsx(
350
321
  "span",
351
322
  {
352
323
  className: "dtg-pulse-dot-ping",
353
324
  style: { backgroundColor: color }
354
325
  }
355
326
  ),
356
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
327
+ /* @__PURE__ */ jsxRuntime.jsx(
357
328
  "span",
358
329
  {
359
330
  className: "dtg-pulse-dot-inner",
@@ -361,7 +332,7 @@ var PulseDot = ({ color = "#f43f5e" }) => /* @__PURE__ */ (0, import_jsx_runtime
361
332
  }
362
333
  )
363
334
  ] });
364
- var IconGithub = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { className, fill: "currentColor", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
335
+ var IconGithub = ({ className }) => /* @__PURE__ */ jsxRuntime.jsx("svg", { className, fill: "currentColor", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(
365
336
  "path",
366
337
  {
367
338
  fillRule: "evenodd",
@@ -369,12 +340,12 @@ var IconGithub = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
369
340
  d: "M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483\n 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466\n -.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832\n .092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688\n -.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844\n c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651\n .64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855\n 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482C19.138 20.197 22 16.44 22 12.017\n 22 6.484 17.522 2 12 2z"
370
341
  }
371
342
  ) });
372
- var IconLinkedin = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { className, fill: "currentColor", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M19 0H5C2.239 0 0 2.239 0 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5V5c0-2.761-2.238-5-5-5zM8 19H5V8h3v11zM6.5 6.732c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zM20 19h-3v-5.604c0-3.368-4-3.113-4 0V19h-3V8h3v1.765c1.396-2.586 7-2.777 7 2.476V19z" }) });
373
- var IconGlobe = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("svg", { className, fill: "none", stroke: "currentColor", strokeWidth: 1.8, viewBox: "0 0 24 24", "aria-hidden": "true", children: [
374
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "12", cy: "12", r: "10" }),
375
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M12 2a14.5 14.5 0 010 20M12 2a14.5 14.5 0 000 20M2 12h20" })
343
+ var IconLinkedin = ({ className }) => /* @__PURE__ */ jsxRuntime.jsx("svg", { className, fill: "currentColor", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M19 0H5C2.239 0 0 2.239 0 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5V5c0-2.761-2.238-5-5-5zM8 19H5V8h3v11zM6.5 6.732c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zM20 19h-3v-5.604c0-3.368-4-3.113-4 0V19h-3V8h3v1.765c1.396-2.586 7-2.777 7 2.476V19z" }) });
344
+ var IconGlobe = ({ className }) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { className, fill: "none", stroke: "currentColor", strokeWidth: 1.8, viewBox: "0 0 24 24", "aria-hidden": "true", children: [
345
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }),
346
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 2a14.5 14.5 0 010 20M12 2a14.5 14.5 0 000 20M2 12h20" })
376
347
  ] });
377
- var IconShield = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { className, fill: "none", stroke: "currentColor", strokeWidth: 1.5, viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
348
+ var IconShield = ({ className }) => /* @__PURE__ */ jsxRuntime.jsx("svg", { className, fill: "none", stroke: "currentColor", strokeWidth: 1.5, viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(
378
349
  "path",
379
350
  {
380
351
  strokeLinecap: "round",
@@ -382,8 +353,8 @@ var IconShield = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
382
353
  d: "M12 2L4 6v6c0 5.25 3.5 10.15 8 11 4.5-.85 8-5.75 8-11V6l-8-4z"
383
354
  }
384
355
  ) });
385
- var CreatorCard = ({ href, icon, label, sub, accentColor }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
386
- import_framer_motion.motion.a,
356
+ var CreatorCard = ({ href, icon, label, sub, accentColor }) => /* @__PURE__ */ jsxRuntime.jsxs(
357
+ framerMotion.motion.a,
387
358
  {
388
359
  href,
389
360
  target: "_blank",
@@ -401,7 +372,7 @@ var CreatorCard = ({ href, icon, label, sub, accentColor }) => /* @__PURE__ */ (
401
372
  e.currentTarget.style.background = "rgba(15,20,30,0.7)";
402
373
  },
403
374
  children: [
404
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
375
+ /* @__PURE__ */ jsxRuntime.jsx(
405
376
  "span",
406
377
  {
407
378
  className: "dtg-creator-icon",
@@ -409,15 +380,15 @@ var CreatorCard = ({ href, icon, label, sub, accentColor }) => /* @__PURE__ */ (
409
380
  children: icon
410
381
  }
411
382
  ),
412
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "dtg-creator-label", children: label }),
413
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "dtg-creator-sub", children: sub })
383
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "dtg-creator-label", children: label }),
384
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "dtg-creator-sub", children: sub })
414
385
  ]
415
386
  }
416
387
  );
417
388
  var ScanPhase = ({ step }) => {
418
389
  const progress = Math.min((step + 1) / SCAN_STEPS.length * 100, 100);
419
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
420
- import_framer_motion.motion.div,
390
+ return /* @__PURE__ */ jsxRuntime.jsxs(
391
+ framerMotion.motion.div,
421
392
  {
422
393
  initial: { opacity: 0, y: 12 },
423
394
  animate: { opacity: 1, y: 0 },
@@ -425,28 +396,28 @@ var ScanPhase = ({ step }) => {
425
396
  transition: { duration: 0.25 },
426
397
  className: "dtg-scan-container",
427
398
  children: [
428
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "dtg-flex-row", children: [
429
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PulseDot, {}),
430
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "dtg-scan-title", children: "Security scan running" })
399
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "dtg-flex-row", children: [
400
+ /* @__PURE__ */ jsxRuntime.jsx(PulseDot, {}),
401
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "dtg-scan-title", children: "Security scan running" })
431
402
  ] }),
432
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("ol", { className: "dtg-steps-list", "aria-live": "polite", "aria-label": "Scan progress", children: SCAN_STEPS.map((s, idx) => {
403
+ /* @__PURE__ */ jsxRuntime.jsx("ol", { className: "dtg-steps-list", "aria-live": "polite", "aria-label": "Scan progress", children: SCAN_STEPS.map((s, idx) => {
433
404
  const done = idx < step;
434
405
  const active = idx === step;
435
406
  const pending = idx > step;
436
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
437
- import_framer_motion.motion.li,
407
+ return /* @__PURE__ */ jsxRuntime.jsxs(
408
+ framerMotion.motion.li,
438
409
  {
439
410
  initial: { opacity: 0, x: -8 },
440
411
  animate: { opacity: pending ? 0.3 : 1, x: 0 },
441
412
  transition: { duration: 0.3, delay: active ? 0.05 : 0 },
442
413
  className: "dtg-step-item",
443
414
  children: [
444
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: "dtg-step-indicator", children: [
445
- done && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { style: { width: "14px", height: "14px", color: "#34d399" }, fill: "none", stroke: "currentColor", strokeWidth: 2.5, viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M5 13l4 4L19 7" }) }),
446
- active && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PulseDot, { color: "#f43f5e" }),
447
- pending && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "dtg-step-dot" })
415
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "dtg-step-indicator", children: [
416
+ done && /* @__PURE__ */ jsxRuntime.jsx("svg", { style: { width: "14px", height: "14px", color: "#34d399" }, fill: "none", stroke: "currentColor", strokeWidth: 2.5, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M5 13l4 4L19 7" }) }),
417
+ active && /* @__PURE__ */ jsxRuntime.jsx(PulseDot, { color: "#f43f5e" }),
418
+ pending && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "dtg-step-dot" })
448
419
  ] }),
449
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
420
+ /* @__PURE__ */ jsxRuntime.jsx(
450
421
  "span",
451
422
  {
452
423
  className: done ? "dtg-text-done" : active ? "dtg-text-active" : "dtg-text-pending",
@@ -458,7 +429,7 @@ var ScanPhase = ({ step }) => {
458
429
  s.id
459
430
  );
460
431
  }) }),
461
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
432
+ /* @__PURE__ */ jsxRuntime.jsx(
462
433
  "div",
463
434
  {
464
435
  role: "progressbar",
@@ -467,8 +438,8 @@ var ScanPhase = ({ step }) => {
467
438
  "aria-valuemax": 100,
468
439
  "aria-label": "Scan progress",
469
440
  className: "dtg-progress-track",
470
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
471
- import_framer_motion.motion.div,
441
+ children: /* @__PURE__ */ jsxRuntime.jsx(
442
+ framerMotion.motion.div,
472
443
  {
473
444
  initial: { width: "0%" },
474
445
  animate: { width: `${progress}%` },
@@ -478,13 +449,13 @@ var ScanPhase = ({ step }) => {
478
449
  )
479
450
  }
480
451
  ),
481
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
452
+ /* @__PURE__ */ jsxRuntime.jsxs(
482
453
  "div",
483
454
  {
484
455
  "aria-hidden": "true",
485
456
  className: "dtg-log-stream",
486
457
  children: [
487
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
458
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
488
459
  "> pid=",
489
460
  "{",
490
461
  "0x",
@@ -492,15 +463,15 @@ var ScanPhase = ({ step }) => {
492
463
  `'}`,
493
464
  " signal=SIGINT"
494
465
  ] }),
495
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
466
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
496
467
  "> stack_trace captured at 0x",
497
468
  Math.floor(Math.random() * 16777215).toString(16)
498
469
  ] }),
499
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
470
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
500
471
  "> hash_check: ",
501
472
  step >= 1 ? "MISMATCH \u2717" : "pending..."
502
473
  ] }),
503
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
474
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
504
475
  "> exfil_guard: ",
505
476
  step >= 2 ? "BLOCKED \u2717" : "scanning..."
506
477
  ] })
@@ -512,67 +483,67 @@ var ScanPhase = ({ step }) => {
512
483
  "scan"
513
484
  );
514
485
  };
515
- var WarningPhase = ({ onClose }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
516
- import_framer_motion.motion.div,
486
+ var WarningPhase = ({ onClose }) => /* @__PURE__ */ jsxRuntime.jsxs(
487
+ framerMotion.motion.div,
517
488
  {
518
489
  initial: { opacity: 0, scale: 0.97 },
519
490
  animate: { opacity: 1, scale: 1 },
520
491
  transition: { duration: 0.35, type: "spring", stiffness: 260, damping: 22 },
521
492
  className: "dtg-warning-container",
522
493
  children: [
523
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
524
- import_framer_motion.motion.div,
494
+ /* @__PURE__ */ jsxRuntime.jsx(
495
+ framerMotion.motion.div,
525
496
  {
526
497
  initial: { scale: 0.6, opacity: 0 },
527
498
  animate: { scale: 1, opacity: 1 },
528
499
  transition: { delay: 0.1, type: "spring", stiffness: 300, damping: 18 },
529
500
  className: "dtg-shield-wrapper",
530
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(IconShield, { className: "dtg-shield-icon" })
501
+ children: /* @__PURE__ */ jsxRuntime.jsx(IconShield, { className: "dtg-shield-icon" })
531
502
  }
532
503
  ),
533
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "dtg-flex-row", style: { flexDirection: "column", gap: "10px" }, children: [
534
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h2", { className: "dtg-warning-title", children: "Developer Tools Detected" }),
535
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "dtg-divider", children: [
536
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "dtg-divider-line" }),
537
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "dtg-divider-text", children: "alert" }),
538
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "dtg-divider-line-rev" })
504
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "dtg-flex-row", style: { flexDirection: "column", gap: "10px" }, children: [
505
+ /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "dtg-warning-title", children: "Developer Tools Detected" }),
506
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "dtg-divider", children: [
507
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "dtg-divider-line" }),
508
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "dtg-divider-text", children: "alert" }),
509
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "dtg-divider-line-rev" })
539
510
  ] })
540
511
  ] }),
541
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "dtg-description", children: "This platform is protected intellectual property. Reverse engineering or code extraction is monitored. If you're curious about what was built here, reach out directly." }),
542
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "dtg-creator-grid", children: [
543
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
512
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "dtg-description", children: "This platform is protected intellectual property. Reverse engineering or code extraction is monitored. If you're curious about what was built here, reach out directly." }),
513
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "dtg-creator-grid", children: [
514
+ /* @__PURE__ */ jsxRuntime.jsx(
544
515
  CreatorCard,
545
516
  {
546
517
  href: "https://github.com/Ali-Arshad-110",
547
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(IconGithub, { className: "w-4 h-4" }),
518
+ icon: /* @__PURE__ */ jsxRuntime.jsx(IconGithub, { className: "w-4 h-4" }),
548
519
  label: "GitHub",
549
520
  sub: "My Work",
550
521
  accentColor: "#818cf8"
551
522
  }
552
523
  ),
553
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
524
+ /* @__PURE__ */ jsxRuntime.jsx(
554
525
  CreatorCard,
555
526
  {
556
527
  href: "https://www.linkedin.com/in/aliarshad110",
557
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(IconLinkedin, { className: "w-4 h-4" }),
528
+ icon: /* @__PURE__ */ jsxRuntime.jsx(IconLinkedin, { className: "w-4 h-4" }),
558
529
  label: "LinkedIn",
559
530
  sub: "Connect",
560
531
  accentColor: "#38bdf8"
561
532
  }
562
533
  ),
563
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
534
+ /* @__PURE__ */ jsxRuntime.jsx(
564
535
  CreatorCard,
565
536
  {
566
537
  href: "https://github.com/Ali-Arshad-110",
567
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(IconGlobe, { className: "w-4 h-4" }),
538
+ icon: /* @__PURE__ */ jsxRuntime.jsx(IconGlobe, { className: "w-4 h-4" }),
568
539
  label: "Portfolio",
569
540
  sub: "About me",
570
541
  accentColor: "#34d399"
571
542
  }
572
543
  )
573
544
  ] }),
574
- onClose && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
575
- import_framer_motion.motion.button,
545
+ onClose && /* @__PURE__ */ jsxRuntime.jsx(
546
+ framerMotion.motion.button,
576
547
  {
577
548
  onClick: onClose,
578
549
  whileHover: { scale: 1.03 },
@@ -581,9 +552,9 @@ var WarningPhase = ({ onClose }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)
581
552
  children: "Close & return to platform"
582
553
  }
583
554
  ),
584
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "dtg-footer", children: [
585
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "dtg-uppercase-track", children: "Secured \xB7 SSL/TLS" }),
586
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: "dtg-uppercase-track", children: [
555
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "dtg-footer", children: [
556
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "dtg-uppercase-track", children: "Secured \xB7 SSL/TLS" }),
557
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "dtg-uppercase-track", children: [
587
558
  "Copyright \xA9 ",
588
559
  (/* @__PURE__ */ new Date()).getFullYear()
589
560
  ] })
@@ -593,9 +564,9 @@ var WarningPhase = ({ onClose }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)
593
564
  "warning"
594
565
  );
595
566
  var DevToolsWarningOverlay = ({ onClose }) => {
596
- const [scanStep, setScanStep] = (0, import_react2.useState)(0);
597
- const [phase, setPhase] = (0, import_react2.useState)("scan");
598
- (0, import_react2.useEffect)(() => {
567
+ const [scanStep, setScanStep] = react.useState(0);
568
+ const [phase, setPhase] = react.useState("scan");
569
+ react.useEffect(() => {
599
570
  if (phase !== "scan") return;
600
571
  if (scanStep < SCAN_STEPS.length - 1) {
601
572
  const t = setTimeout(() => setScanStep((s) => s + 1), STEP_INTERVAL_MS);
@@ -605,7 +576,7 @@ var DevToolsWarningOverlay = ({ onClose }) => {
605
576
  return () => clearTimeout(t);
606
577
  }
607
578
  }, [scanStep, phase]);
608
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
579
+ return /* @__PURE__ */ jsxRuntime.jsxs(
609
580
  "div",
610
581
  {
611
582
  role: "alertdialog",
@@ -613,20 +584,20 @@ var DevToolsWarningOverlay = ({ onClose }) => {
613
584
  "aria-label": "Security alert: developer tools detected",
614
585
  className: "dtg-overlay",
615
586
  children: [
616
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MatrixBackground, {}),
617
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ScanlineOverlay, {}),
618
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { "aria-hidden": "true", className: "dtg-vignette" }),
619
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
620
- import_framer_motion.motion.div,
587
+ /* @__PURE__ */ jsxRuntime.jsx(MatrixBackground, {}),
588
+ /* @__PURE__ */ jsxRuntime.jsx(ScanlineOverlay, {}),
589
+ /* @__PURE__ */ jsxRuntime.jsx("div", { "aria-hidden": "true", className: "dtg-vignette" }),
590
+ /* @__PURE__ */ jsxRuntime.jsxs(
591
+ framerMotion.motion.div,
621
592
  {
622
593
  initial: { opacity: 0, y: 16, scale: 0.98 },
623
594
  animate: { opacity: 1, y: 0, scale: 1 },
624
595
  transition: { duration: 0.4, type: "spring", stiffness: 240, damping: 26 },
625
596
  className: "dtg-card",
626
597
  children: [
627
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(NeonEdge, { position: "top" }),
628
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(NeonEdge, { position: "bottom" }),
629
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "dtg-card-padding", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_framer_motion.AnimatePresence, { mode: "wait", children: phase === "scan" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ScanPhase, { step: scanStep }, "scan") : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(WarningPhase, { onClose }, "warning") }) })
598
+ /* @__PURE__ */ jsxRuntime.jsx(NeonEdge, { position: "top" }),
599
+ /* @__PURE__ */ jsxRuntime.jsx(NeonEdge, { position: "bottom" }),
600
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "dtg-card-padding", children: /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "wait", children: phase === "scan" ? /* @__PURE__ */ jsxRuntime.jsx(ScanPhase, { step: scanStep }, "scan") : /* @__PURE__ */ jsxRuntime.jsx(WarningPhase, { onClose }, "warning") }) })
630
601
  ]
631
602
  }
632
603
  )
@@ -635,23 +606,19 @@ var DevToolsWarningOverlay = ({ onClose }) => {
635
606
  );
636
607
  };
637
608
  var DevToolsWarningOverlay_default = DevToolsWarningOverlay;
638
-
639
- // src/provider/DevToolsProtection.tsx
640
- var import_jsx_runtime2 = require("react/jsx-runtime");
641
609
  var DevToolsProtection = ({
642
610
  children,
643
611
  overlay = true
644
612
  }) => {
645
613
  const isOpen = useDevToolsDetector();
646
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
614
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
647
615
  children,
648
- overlay && isOpen && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(DevToolsWarningOverlay_default, {})
616
+ overlay && isOpen && /* @__PURE__ */ jsxRuntime.jsx(DevToolsWarningOverlay, {})
649
617
  ] });
650
618
  };
651
- // Annotate the CommonJS export names for ESM import in node:
652
- 0 && (module.exports = {
653
- DevToolsProtection,
654
- DevToolsWarningOverlay,
655
- useDevToolsDetector
656
- });
619
+
620
+ exports.DevToolsProtection = DevToolsProtection;
621
+ exports.DevToolsWarningOverlay = DevToolsWarningOverlay_default;
622
+ exports.useDevToolsDetector = useDevToolsDetector;
623
+ //# sourceMappingURL=index.js.map
657
624
  //# sourceMappingURL=index.js.map