@qontinui/ui-bridge 0.3.0 → 0.3.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/ai/index.d.mts +312 -155
- package/dist/ai/index.d.ts +312 -155
- package/dist/ai/index.js +2363 -67
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/index.mjs +2328 -68
- package/dist/ai/index.mjs.map +1 -1
- package/dist/annotations/index.d.mts +218 -0
- package/dist/annotations/index.d.ts +218 -0
- package/dist/annotations/index.js +246 -0
- package/dist/annotations/index.js.map +1 -0
- package/dist/annotations/index.mjs +241 -0
- package/dist/annotations/index.mjs.map +1 -0
- package/dist/assertions-BSR3afVr.d.ts +161 -0
- package/dist/assertions-CTw1hfOx.d.mts +161 -0
- package/dist/babel-plugin/index.js +23 -34
- package/dist/babel-plugin/index.js.map +1 -1
- package/dist/babel-plugin/index.mjs +23 -34
- package/dist/babel-plugin/index.mjs.map +1 -1
- package/dist/browser-capture-Bms60T6f.d.mts +47 -0
- package/dist/browser-capture-CsTU29mb.d.ts +47 -0
- package/dist/control/index.d.mts +26 -7
- package/dist/control/index.d.ts +26 -7
- package/dist/control/index.js +276 -48
- package/dist/control/index.js.map +1 -1
- package/dist/control/index.mjs +276 -48
- package/dist/control/index.mjs.map +1 -1
- package/dist/core/index.d.mts +2 -2
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.mjs.map +1 -1
- package/dist/debug/index.d.mts +5 -3
- package/dist/debug/index.d.ts +5 -3
- package/dist/debug/index.js +925 -1
- package/dist/debug/index.js.map +1 -1
- package/dist/debug/index.mjs +924 -2
- package/dist/debug/index.mjs.map +1 -1
- package/dist/index.d.mts +12 -7
- package/dist/index.d.ts +12 -7
- package/dist/index.js +4720 -173
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4656 -174
- package/dist/index.mjs.map +1 -1
- package/dist/{metrics-DTA2bwG7.d.mts → metrics-DuA2qIIz.d.mts} +2 -2
- package/dist/{metrics-BfiT_rhZ.d.ts → metrics-KFAAKNEB.d.ts} +2 -2
- package/dist/native/control/index.js +2 -7
- package/dist/native/control/index.js.map +1 -1
- package/dist/native/control/index.mjs +2 -7
- package/dist/native/control/index.mjs.map +1 -1
- package/dist/native/core/index.js.map +1 -1
- package/dist/native/core/index.mjs.map +1 -1
- package/dist/native/debug/index.js +23 -66
- package/dist/native/debug/index.js.map +1 -1
- package/dist/native/debug/index.mjs +23 -66
- package/dist/native/debug/index.mjs.map +1 -1
- package/dist/native/index.js +89 -131
- package/dist/native/index.js.map +1 -1
- package/dist/native/index.mjs +89 -131
- package/dist/native/index.mjs.map +1 -1
- package/dist/native/react/index.js +28 -52
- package/dist/native/react/index.js.map +1 -1
- package/dist/native/react/index.mjs +28 -52
- package/dist/native/react/index.mjs.map +1 -1
- package/dist/native/server/index.js +38 -13
- package/dist/native/server/index.js.map +1 -1
- package/dist/native/server/index.mjs +38 -13
- package/dist/native/server/index.mjs.map +1 -1
- package/dist/react/index.d.mts +107 -8
- package/dist/react/index.d.ts +107 -8
- package/dist/react/index.js +2194 -84
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.mjs +2194 -85
- package/dist/react/index.mjs.map +1 -1
- package/dist/{registry-BKLEm-yk.d.ts → registry-C6dDtn1v.d.ts} +27 -2
- package/dist/{registry-BmZgyCz8.d.mts → registry-POtcxnal.d.mts} +27 -2
- package/dist/render-log/index.d.mts +1 -1
- package/dist/render-log/index.d.ts +1 -1
- package/dist/server/express.d.mts +5 -4
- package/dist/server/express.d.ts +5 -4
- package/dist/server/express.js +104 -2
- package/dist/server/express.js.map +1 -1
- package/dist/server/express.mjs +104 -2
- package/dist/server/express.mjs.map +1 -1
- package/dist/server/handlers.d.mts +36 -5
- package/dist/server/handlers.d.ts +36 -5
- package/dist/server/handlers.js +3129 -224
- package/dist/server/handlers.js.map +1 -1
- package/dist/server/handlers.mjs +3129 -224
- package/dist/server/handlers.mjs.map +1 -1
- package/dist/server/index.d.mts +7 -5
- package/dist/server/index.d.ts +7 -5
- package/dist/server/index.js +3215 -183
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +3215 -183
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/nextjs.d.mts +6 -4
- package/dist/server/nextjs.d.ts +6 -4
- package/dist/server/nextjs.js +106 -3
- package/dist/server/nextjs.js.map +1 -1
- package/dist/server/nextjs.mjs +106 -3
- package/dist/server/nextjs.mjs.map +1 -1
- package/dist/server/standalone.d.mts +6 -5
- package/dist/server/standalone.d.ts +6 -5
- package/dist/server/standalone.js +131 -5
- package/dist/server/standalone.js.map +1 -1
- package/dist/server/standalone.mjs +131 -5
- package/dist/server/standalone.mjs.map +1 -1
- package/dist/specs/index.d.mts +365 -0
- package/dist/specs/index.d.ts +365 -0
- package/dist/specs/index.js +2809 -0
- package/dist/specs/index.js.map +1 -0
- package/dist/specs/index.mjs +2786 -0
- package/dist/specs/index.mjs.map +1 -0
- package/dist/{standalone-BURj8J3G.d.ts → standalone-B6GLIEmR.d.ts} +6 -2
- package/dist/{standalone-Dwmel29d.d.mts → standalone-CjdYqj3P.d.mts} +6 -2
- package/dist/{types-CHnlwiTK.d.ts → types-B2EfvEaq.d.ts} +83 -3
- package/dist/{types-B7J7noLK.d.mts → types-C7gVYRnF.d.ts} +72 -2
- package/dist/{types-BkNRILUa.d.ts → types-CJGrBEhC.d.mts} +72 -2
- package/dist/types-CebMQj76.d.ts +1275 -0
- package/dist/types-D_ypYl3T.d.mts +1275 -0
- package/dist/types-UBtp7R0u.d.mts +132 -0
- package/dist/types-UBtp7R0u.d.ts +132 -0
- package/dist/{types-CEQLnFMv.d.mts → types-gO696T_t.d.mts} +83 -3
- package/dist/{types-jKVgTI6_.d.mts → types-suaYwWWg.d.mts} +173 -2
- package/dist/{types-jKVgTI6_.d.ts → types-suaYwWWg.d.ts} +173 -2
- package/package.json +18 -2
- package/dist/types-B5Q0GVo0.d.mts +0 -646
- package/dist/types-DfPqwU-i.d.ts +0 -646
package/dist/native/index.mjs
CHANGED
|
@@ -511,10 +511,7 @@ var DefaultNativeActionExecutor = class {
|
|
|
511
511
|
};
|
|
512
512
|
}
|
|
513
513
|
if (request.waitOptions) {
|
|
514
|
-
const waitResult = await this.waitForElementInternal(
|
|
515
|
-
registered.id,
|
|
516
|
-
request.waitOptions
|
|
517
|
-
);
|
|
514
|
+
const waitResult = await this.waitForElementInternal(registered.id, request.waitOptions);
|
|
518
515
|
waitDurationMs = waitResult.waitedMs;
|
|
519
516
|
if (!waitResult.met) {
|
|
520
517
|
return {
|
|
@@ -818,9 +815,7 @@ var DefaultNativeActionExecutor = class {
|
|
|
818
815
|
filtered = filtered.filter((e) => request.types.includes(e.type));
|
|
819
816
|
}
|
|
820
817
|
if (request.testIdPattern) {
|
|
821
|
-
const regex = new RegExp(
|
|
822
|
-
request.testIdPattern.replace(/\*/g, ".*").replace(/\?/g, ".")
|
|
823
|
-
);
|
|
818
|
+
const regex = new RegExp(request.testIdPattern.replace(/\*/g, ".*").replace(/\?/g, "."));
|
|
824
819
|
filtered = filtered.filter((e) => {
|
|
825
820
|
const identifier = e.getIdentifier();
|
|
826
821
|
return identifier.testId && regex.test(identifier.testId);
|
|
@@ -940,9 +935,7 @@ function UIBridgeNativeProvider({
|
|
|
940
935
|
console.warn("[ui-bridge-native] Server feature not enabled");
|
|
941
936
|
return;
|
|
942
937
|
}
|
|
943
|
-
console.log(
|
|
944
|
-
`[ui-bridge-native] Would start HTTP server on port ${config.serverPort || 9876}`
|
|
945
|
-
);
|
|
938
|
+
console.log(`[ui-bridge-native] Would start HTTP server on port ${config.serverPort || 9876}`);
|
|
946
939
|
setServerRunning(true);
|
|
947
940
|
}, [features.server, config.serverPort]);
|
|
948
941
|
const stopServer = useCallback(() => {
|
|
@@ -1062,30 +1055,28 @@ function useUIElement(options) {
|
|
|
1062
1055
|
(event) => {
|
|
1063
1056
|
const { x, y, width, height } = event.nativeEvent.layout;
|
|
1064
1057
|
if (ref.current && "measureInWindow" in ref.current) {
|
|
1065
|
-
ref.current.measureInWindow(
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1058
|
+
ref.current.measureInWindow((pageX, pageY) => {
|
|
1059
|
+
const newLayout = {
|
|
1060
|
+
x,
|
|
1061
|
+
y,
|
|
1062
|
+
width,
|
|
1063
|
+
height,
|
|
1064
|
+
pageX,
|
|
1065
|
+
pageY
|
|
1066
|
+
};
|
|
1067
|
+
setLayout(newLayout);
|
|
1068
|
+
if (bridge && registered) {
|
|
1069
|
+
const newState = {
|
|
1070
|
+
mounted: true,
|
|
1071
|
+
visible: width > 0 && height > 0,
|
|
1072
|
+
enabled: true,
|
|
1073
|
+
focused: false,
|
|
1074
|
+
layout: newLayout
|
|
1074
1075
|
};
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
const newState = {
|
|
1078
|
-
mounted: true,
|
|
1079
|
-
visible: width > 0 && height > 0,
|
|
1080
|
-
enabled: true,
|
|
1081
|
-
focused: false,
|
|
1082
|
-
layout: newLayout
|
|
1083
|
-
};
|
|
1084
|
-
bridge.registry.updateElementState(id, newState);
|
|
1085
|
-
onStateChange?.(newState);
|
|
1086
|
-
}
|
|
1076
|
+
bridge.registry.updateElementState(id, newState);
|
|
1077
|
+
onStateChange?.(newState);
|
|
1087
1078
|
}
|
|
1088
|
-
);
|
|
1079
|
+
});
|
|
1089
1080
|
} else {
|
|
1090
1081
|
const newLayout = {
|
|
1091
1082
|
x,
|
|
@@ -1281,18 +1272,9 @@ function useUIBridge() {
|
|
|
1281
1272
|
const bridge = useUIBridgeNativeOptional();
|
|
1282
1273
|
const available = bridge !== null;
|
|
1283
1274
|
const initialized = bridge?.initialized ?? false;
|
|
1284
|
-
const elements = useMemo(
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
);
|
|
1288
|
-
const components = useMemo(
|
|
1289
|
-
() => bridge ? bridge.getComponents() : [],
|
|
1290
|
-
[bridge]
|
|
1291
|
-
);
|
|
1292
|
-
const workflows = useMemo(
|
|
1293
|
-
() => bridge ? bridge.registry.getAllWorkflows() : [],
|
|
1294
|
-
[bridge]
|
|
1295
|
-
);
|
|
1275
|
+
const elements = useMemo(() => bridge ? bridge.getElements() : [], [bridge]);
|
|
1276
|
+
const components = useMemo(() => bridge ? bridge.getComponents() : [], [bridge]);
|
|
1277
|
+
const workflows = useMemo(() => bridge ? bridge.registry.getAllWorkflows() : [], [bridge]);
|
|
1296
1278
|
const createSnapshot = useCallback(() => {
|
|
1297
1279
|
if (!bridge) {
|
|
1298
1280
|
return {
|
|
@@ -1346,14 +1328,8 @@ function useUIBridge() {
|
|
|
1346
1328
|
},
|
|
1347
1329
|
[bridge]
|
|
1348
1330
|
);
|
|
1349
|
-
const getElement = useCallback(
|
|
1350
|
-
|
|
1351
|
-
[bridge]
|
|
1352
|
-
);
|
|
1353
|
-
const getComponent = useCallback(
|
|
1354
|
-
(id) => bridge?.registry.getComponent(id),
|
|
1355
|
-
[bridge]
|
|
1356
|
-
);
|
|
1331
|
+
const getElement = useCallback((id) => bridge?.registry.getElement(id), [bridge]);
|
|
1332
|
+
const getComponent = useCallback((id) => bridge?.registry.getComponent(id), [bridge]);
|
|
1357
1333
|
const getElementState = useCallback(
|
|
1358
1334
|
(id) => {
|
|
1359
1335
|
const element = bridge?.registry.getElement(id);
|
|
@@ -1459,6 +1435,27 @@ var UI_BRIDGE_NATIVE_ROUTES = {
|
|
|
1459
1435
|
path: "/ui-bridge/control/workflow/:id/run",
|
|
1460
1436
|
description: "Run a workflow"
|
|
1461
1437
|
},
|
|
1438
|
+
// Page Navigation
|
|
1439
|
+
PAGE_REFRESH: {
|
|
1440
|
+
method: "POST",
|
|
1441
|
+
path: "/ui-bridge/control/page/refresh",
|
|
1442
|
+
description: "Refresh the current page"
|
|
1443
|
+
},
|
|
1444
|
+
PAGE_NAVIGATE: {
|
|
1445
|
+
method: "POST",
|
|
1446
|
+
path: "/ui-bridge/control/page/navigate",
|
|
1447
|
+
description: "Navigate to a URL"
|
|
1448
|
+
},
|
|
1449
|
+
PAGE_GO_BACK: {
|
|
1450
|
+
method: "POST",
|
|
1451
|
+
path: "/ui-bridge/control/page/back",
|
|
1452
|
+
description: "Go back in navigation history"
|
|
1453
|
+
},
|
|
1454
|
+
PAGE_GO_FORWARD: {
|
|
1455
|
+
method: "POST",
|
|
1456
|
+
path: "/ui-bridge/control/page/forward",
|
|
1457
|
+
description: "Go forward in navigation history"
|
|
1458
|
+
},
|
|
1462
1459
|
// Health
|
|
1463
1460
|
HEALTH: {
|
|
1464
1461
|
method: "GET",
|
|
@@ -1620,6 +1617,19 @@ function createServerHandlers(registry, executor) {
|
|
|
1620
1617
|
status: "pending"
|
|
1621
1618
|
});
|
|
1622
1619
|
},
|
|
1620
|
+
// Page Navigation (stubs — React Native apps should override with their navigation provider)
|
|
1621
|
+
pageRefresh: async () => {
|
|
1622
|
+
return error("Page refresh not supported on native platform", "NOT_SUPPORTED");
|
|
1623
|
+
},
|
|
1624
|
+
pageNavigate: async () => {
|
|
1625
|
+
return error("Page navigation not supported on native platform", "NOT_SUPPORTED");
|
|
1626
|
+
},
|
|
1627
|
+
pageGoBack: async () => {
|
|
1628
|
+
return error("Page go back not supported on native platform", "NOT_SUPPORTED");
|
|
1629
|
+
},
|
|
1630
|
+
pageGoForward: async () => {
|
|
1631
|
+
return error("Page go forward not supported on native platform", "NOT_SUPPORTED");
|
|
1632
|
+
},
|
|
1623
1633
|
// Health
|
|
1624
1634
|
health: async () => {
|
|
1625
1635
|
const stats = registry.getStats();
|
|
@@ -1660,22 +1670,13 @@ var NativeUIBridgeServer = class {
|
|
|
1660
1670
|
return;
|
|
1661
1671
|
}
|
|
1662
1672
|
if (!this.adapter) {
|
|
1663
|
-
console.warn(
|
|
1664
|
-
|
|
1665
|
-
);
|
|
1666
|
-
console.warn(
|
|
1667
|
-
"[ui-bridge-native] See documentation for supported adapters."
|
|
1668
|
-
);
|
|
1673
|
+
console.warn("[ui-bridge-native] No server adapter configured. Call setAdapter() first.");
|
|
1674
|
+
console.warn("[ui-bridge-native] See documentation for supported adapters.");
|
|
1669
1675
|
return;
|
|
1670
1676
|
}
|
|
1671
|
-
await this.adapter.start(
|
|
1672
|
-
this.config.serverPort,
|
|
1673
|
-
this.handleRequest.bind(this)
|
|
1674
|
-
);
|
|
1677
|
+
await this.adapter.start(this.config.serverPort, this.handleRequest.bind(this));
|
|
1675
1678
|
this.running = true;
|
|
1676
|
-
console.log(
|
|
1677
|
-
`[ui-bridge-native] HTTP server started on port ${this.config.serverPort}`
|
|
1678
|
-
);
|
|
1679
|
+
console.log(`[ui-bridge-native] HTTP server started on port ${this.config.serverPort}`);
|
|
1679
1680
|
}
|
|
1680
1681
|
/**
|
|
1681
1682
|
* Stop the HTTP server
|
|
@@ -1810,41 +1811,26 @@ function ElementCard({
|
|
|
1810
1811
|
}) {
|
|
1811
1812
|
const state = element.getState();
|
|
1812
1813
|
const identifier = element.getIdentifier();
|
|
1813
|
-
return /* @__PURE__ */ jsxs(
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
style: styles.
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
identifier.testId && /* @__PURE__ */ jsxs(Text, { style: styles.testId, children: [
|
|
1830
|
-
"testID: ",
|
|
1831
|
-
identifier.testId
|
|
1832
|
-
] })
|
|
1833
|
-
]
|
|
1834
|
-
}
|
|
1835
|
-
);
|
|
1814
|
+
return /* @__PURE__ */ jsxs(TouchableOpacity, { style: styles.elementCard, onPress: () => onPress(element), children: [
|
|
1815
|
+
/* @__PURE__ */ jsxs(View, { style: styles.elementHeader, children: [
|
|
1816
|
+
/* @__PURE__ */ jsx(Text, { style: styles.elementId, children: element.id }),
|
|
1817
|
+
/* @__PURE__ */ jsx(Text, { style: styles.elementType, children: element.type })
|
|
1818
|
+
] }),
|
|
1819
|
+
element.label && /* @__PURE__ */ jsx(Text, { style: styles.elementLabel, children: element.label }),
|
|
1820
|
+
/* @__PURE__ */ jsxs(View, { style: styles.stateRow, children: [
|
|
1821
|
+
/* @__PURE__ */ jsx(StateIndicator, { label: "Mounted", value: state.mounted }),
|
|
1822
|
+
/* @__PURE__ */ jsx(StateIndicator, { label: "Visible", value: state.visible }),
|
|
1823
|
+
/* @__PURE__ */ jsx(StateIndicator, { label: "Enabled", value: state.enabled })
|
|
1824
|
+
] }),
|
|
1825
|
+
identifier.testId && /* @__PURE__ */ jsxs(Text, { style: styles.testId, children: [
|
|
1826
|
+
"testID: ",
|
|
1827
|
+
identifier.testId
|
|
1828
|
+
] })
|
|
1829
|
+
] });
|
|
1836
1830
|
}
|
|
1837
1831
|
function StateIndicator({ label, value }) {
|
|
1838
1832
|
return /* @__PURE__ */ jsxs(View, { style: styles.stateIndicator, children: [
|
|
1839
|
-
/* @__PURE__ */ jsx(
|
|
1840
|
-
View,
|
|
1841
|
-
{
|
|
1842
|
-
style: [
|
|
1843
|
-
styles.stateDot,
|
|
1844
|
-
{ backgroundColor: value ? "#4CAF50" : "#F44336" }
|
|
1845
|
-
]
|
|
1846
|
-
}
|
|
1847
|
-
),
|
|
1833
|
+
/* @__PURE__ */ jsx(View, { style: [styles.stateDot, { backgroundColor: value ? "#4CAF50" : "#F44336" }] }),
|
|
1848
1834
|
/* @__PURE__ */ jsx(Text, { style: styles.stateLabel, children: label })
|
|
1849
1835
|
] });
|
|
1850
1836
|
}
|
|
@@ -1949,17 +1935,9 @@ function UIBridgeInspector({
|
|
|
1949
1935
|
}) {
|
|
1950
1936
|
const bridge = useUIBridgeNativeOptional();
|
|
1951
1937
|
const [showInspector, setShowInspector] = useState(visible);
|
|
1952
|
-
const [selectedElement, setSelectedElement] = useState(
|
|
1953
|
-
|
|
1954
|
-
);
|
|
1955
|
-
const elements = useMemo(
|
|
1956
|
-
() => bridge ? bridge.getElements() : [],
|
|
1957
|
-
[bridge, showInspector]
|
|
1958
|
-
);
|
|
1959
|
-
const components = useMemo(
|
|
1960
|
-
() => bridge ? bridge.getComponents() : [],
|
|
1961
|
-
[bridge, showInspector]
|
|
1962
|
-
);
|
|
1938
|
+
const [selectedElement, setSelectedElement] = useState(null);
|
|
1939
|
+
const elements = useMemo(() => bridge ? bridge.getElements() : [], [bridge, showInspector]);
|
|
1940
|
+
const components = useMemo(() => bridge ? bridge.getComponents() : [], [bridge, showInspector]);
|
|
1963
1941
|
const handleToggle = useCallback(() => {
|
|
1964
1942
|
setShowInspector((prev) => !prev);
|
|
1965
1943
|
}, []);
|
|
@@ -1990,14 +1968,7 @@ function UIBridgeInspector({
|
|
|
1990
1968
|
return null;
|
|
1991
1969
|
}
|
|
1992
1970
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1993
|
-
/* @__PURE__ */ jsx(
|
|
1994
|
-
TouchableOpacity,
|
|
1995
|
-
{
|
|
1996
|
-
style: [styles.toggleButton, toggleStyle],
|
|
1997
|
-
onPress: handleToggle,
|
|
1998
|
-
children: /* @__PURE__ */ jsx(Text, { style: styles.toggleText, children: "UI" })
|
|
1999
|
-
}
|
|
2000
|
-
),
|
|
1971
|
+
/* @__PURE__ */ jsx(TouchableOpacity, { style: [styles.toggleButton, toggleStyle], onPress: handleToggle, children: /* @__PURE__ */ jsx(Text, { style: styles.toggleText, children: "UI" }) }),
|
|
2001
1972
|
/* @__PURE__ */ jsx(
|
|
2002
1973
|
Modal,
|
|
2003
1974
|
{
|
|
@@ -2024,21 +1995,8 @@ function UIBridgeInspector({
|
|
|
2024
1995
|
/* @__PURE__ */ jsx(Text, { style: styles.statLabel, children: "Server" })
|
|
2025
1996
|
] })
|
|
2026
1997
|
] }),
|
|
2027
|
-
selectedElement ? /* @__PURE__ */ jsx(
|
|
2028
|
-
|
|
2029
|
-
{
|
|
2030
|
-
element: selectedElement,
|
|
2031
|
-
onClose: handleCloseDetail
|
|
2032
|
-
}
|
|
2033
|
-
) : /* @__PURE__ */ jsxs(ScrollView, { style: styles.elementList, children: [
|
|
2034
|
-
elements.map((element) => /* @__PURE__ */ jsx(
|
|
2035
|
-
ElementCard,
|
|
2036
|
-
{
|
|
2037
|
-
element,
|
|
2038
|
-
onPress: handleSelectElement
|
|
2039
|
-
},
|
|
2040
|
-
element.id
|
|
2041
|
-
)),
|
|
1998
|
+
selectedElement ? /* @__PURE__ */ jsx(ElementDetail, { element: selectedElement, onClose: handleCloseDetail }) : /* @__PURE__ */ jsxs(ScrollView, { style: styles.elementList, children: [
|
|
1999
|
+
elements.map((element) => /* @__PURE__ */ jsx(ElementCard, { element, onPress: handleSelectElement }, element.id)),
|
|
2042
2000
|
elements.length === 0 && /* @__PURE__ */ jsx(Text, { style: styles.emptyText, children: "No elements registered yet" })
|
|
2043
2001
|
] })
|
|
2044
2002
|
] }) })
|