nexa-devtools 0.7.0 → 0.7.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.
@@ -1,257 +1,428 @@
1
1
  <script setup>
2
- import { signal, computed, onMounted, onUnmounted } from 'nexa-framework'
3
- import { NCard, NButton, NBadge } from 'nexa-ui-kit'
2
+ import { signal, computed, effect, onMounted, onUnmounted } from 'nexa-framework'
3
+ import { NCard, NButton, NBadge, NInput } from 'nexa-ui-kit'
4
4
 
5
5
  const isOpen = signal(false)
6
- const activeTab = signal('signals') // 'signals' | 'components'
6
+ const activeTab = signal('signals')
7
+ const searchQuery = signal('')
8
+ const editingSignalId = signal(null)
9
+ const editValue = signal('')
10
+ const expandedComponents = signal(new Set())
7
11
 
8
- const signals = signal([])
9
- const components = signal([])
10
- let intervalId = null
12
+ const rawSignals = signal([])
13
+ const rawComponents = signal([])
11
14
 
12
- const safeStringify = (val) => {
13
- try { return JSON.stringify(val) } catch { return String(val) }
14
- }
15
+ const api = () => typeof window !== 'undefined' ? window['__NEXA_DEVTOOLS__'] : null
15
16
 
16
- const refreshData = () => {
17
- if (typeof window !== 'undefined' && window['__NEXA_DEVTOOLS__']) {
18
- const api = window['__NEXA_DEVTOOLS__']
19
- signals.value = Object.entries(api.inspectSignals()).map(([label, value]) => ({ label, value }))
20
- components.value = api.inspectComponents()
17
+ const filteredSignals = computed(() => {
18
+ const q = searchQuery.value.toLowerCase()
19
+ if (!q) return rawSignals.value
20
+ return rawSignals.value.filter(s => s.label.toLowerCase().includes(q))
21
+ })
22
+
23
+ const filteredComponents = computed(() => {
24
+ const q = searchQuery.value.toLowerCase()
25
+ if (!q) return rawComponents.value
26
+ return rawComponents.value.filter(c => c.name.toLowerCase().includes(q) || JSON.stringify(c.props).toLowerCase().includes(q))
27
+ })
28
+
29
+ let intervalId = null
30
+
31
+ const refresh = () => {
32
+ const dev = api()
33
+ if (dev) {
34
+ rawSignals.value = dev.getSignalEntries()
35
+ rawComponents.value = dev.getComponentEntries()
21
36
  }
22
37
  }
23
38
 
24
39
  onMounted(() => {
25
- refreshData()
26
- if (!intervalId) {
27
- intervalId = setInterval(refreshData, 1000)
28
- }
40
+ refresh()
41
+ intervalId = setInterval(refresh, 500)
29
42
  })
30
43
 
31
44
  onUnmounted(() => {
32
- if (intervalId) {
33
- clearInterval(intervalId)
34
- intervalId = null
35
- }
45
+ if (intervalId) { clearInterval(intervalId); intervalId = null }
36
46
  })
47
+
48
+ const startEdit = (id, currentValue) => {
49
+ editingSignalId.value = id
50
+ editValue.value = typeof currentValue === 'object' ? JSON.stringify(currentValue, null, 2) : String(currentValue)
51
+ }
52
+
53
+ const saveEdit = () => {
54
+ const dev = api()
55
+ if (dev && editingSignalId.value !== null) {
56
+ const entry = rawSignals.value.find(s => s.id === editingSignalId.value)
57
+ if (entry) {
58
+ let val = editValue.value
59
+ const current = entry.value
60
+ if (typeof current === 'number') {
61
+ val = Number(val)
62
+ } else if (typeof current === 'boolean') {
63
+ val = val === 'true' || val === true
64
+ } else if (current && typeof current === 'object') {
65
+ try { val = JSON.parse(val) } catch {}
66
+ }
67
+ dev.setSignalValue(editingSignalId.value, val)
68
+ }
69
+ }
70
+ editingSignalId.value = null
71
+ editValue.value = ''
72
+ }
73
+
74
+ const cancelEdit = () => {
75
+ editingSignalId.value = null
76
+ editValue.value = ''
77
+ }
78
+
79
+ const toggleExpand = (name) => {
80
+ const s = new Set(expandedComponents.value)
81
+ if (s.has(name)) s.delete(name)
82
+ else s.add(name)
83
+ expandedComponents.value = s
84
+ }
85
+
86
+ const formatValue = (val) => {
87
+ if (val === null) return 'null'
88
+ if (val === undefined) return 'undefined'
89
+ if (typeof val === 'object') {
90
+ try { return JSON.stringify(val) } catch { return String(val) }
91
+ }
92
+ return String(val)
93
+ }
94
+
95
+ const getType = (val) => {
96
+ if (val === null) return 'null'
97
+ if (Array.isArray(val)) return `array[${val.length}]`
98
+ const t = typeof val
99
+ return t === 'object' ? 'object' : t
100
+ }
37
101
  </script>
38
102
 
39
103
  <template>
40
- <div class="nexa-devtools" :class="{ 'is-open': isOpen.value }">
41
- <button class="devtools-trigger" @click="isOpen.value = !isOpen.value">
42
- <span class="trigger-icon">⚡</span>
43
- <span class="trigger-label">DevTools</span>
104
+ <div class="ndp" :class="{ 'is-open': isOpen.value }">
105
+ <button class="ndp-trigger" @click="isOpen.value = !isOpen.value">
106
+ <span class="ndp-trigger-icon">⚡</span>
107
+ <span class="ndp-trigger-label">Nexa Dev</span>
108
+ <span class="ndp-badge" v-if="rawSignals.value.length">{{ rawSignals.value.length }}</span>
44
109
  </button>
45
110
 
46
- <div v-if="isOpen.value" class="devtools-panel">
47
- <NCard variant="glass" class="panel-card">
48
- <header class="panel-header">
49
- <div class="header-title">
50
- <span class="logo">Nexa</span>
51
- <span class="version">v0.5.2</span>
52
- <button class="close-btn" @click="isOpen.value = false">✕</button>
111
+ <div v-if="isOpen.value" class="ndp-panel">
112
+ <div class="ndp-card">
113
+ <div class="ndp-header">
114
+ <div class="ndp-title-row">
115
+ <span class="ndp-logo">Nexa DevTools</span>
116
+ <span class="ndp-close" @click="isOpen.value = false">✕</span>
117
+ </div>
118
+ <div class="ndp-tabs">
119
+ <button :class="{ 'is-active': activeTab.value === 'signals' }" @click="activeTab.value = 'signals'">Signals</button>
120
+ <button :class="{ 'is-active': activeTab.value === 'components' }" @click="activeTab.value = 'components'">Components</button>
53
121
  </div>
54
- <nav class="tab-nav">
55
- <button
56
- :class="{ 'is-active': activeTab.value === 'signals' }"
57
- @click="activeTab.value = 'signals'"
58
- >Signals</button>
59
- <button
60
- :class="{ 'is-active': activeTab.value === 'components' }"
61
- @click="activeTab.value = 'components'"
62
- >Components</button>
63
- </nav>
64
- </header>
122
+ <div class="ndp-search">
123
+ <input placeholder="Filter..." v-model="searchQuery.value" />
124
+ </div>
125
+ </div>
65
126
 
66
- <div class="panel-content">
67
- <!-- Signals Tab -->
68
- <div v-if="activeTab.value === 'signals'" class="tab-pane">
69
- <div v-for="sig in signals.value" :key="sig.label" class="data-item">
70
- <span class="item-label">{{ sig.label }}</span>
71
- <NBadge variant="primary" size="sm">{{ safeStringify(sig.value) }}</NBadge>
127
+ <div class="ndp-body">
128
+ <!-- SIGNALS TAB -->
129
+ <div v-if="activeTab.value === 'signals'" class="ndp-list">
130
+ <div v-for="sig in filteredSignals.value" :key="sig.id" class="ndp-item">
131
+ <div class="ndp-item-left">
132
+ <span class="ndp-item-label">{{ sig.label }}</span>
133
+ <NBadge size="xs" variant="subtle">{{ getType(sig.value) }}</NBadge>
134
+ </div>
135
+ <div class="ndp-item-right">
136
+ <div v-if="editingSignalId.value === sig.id" class="ndp-edit-row">
137
+ <input class="ndp-edit-input" v-model="editValue.value" @keyup.enter="saveEdit" @keyup.escape="cancelEdit" />
138
+ <button class="ndp-edit-save" @click="saveEdit">✓</button>
139
+ <button class="ndp-edit-cancel" @click="cancelEdit">✕</button>
140
+ </div>
141
+ <div v-else class="ndp-value" @click="startEdit(sig.id, sig.value)" title="Click to edit">{{ formatValue(sig.value) }}</div>
142
+ </div>
143
+ </div>
144
+ <div v-if="filteredSignals.value.length === 0" class="ndp-empty">
145
+ {{ searchQuery.value ? 'No signals match filter.' : 'No signals registered.' }}
72
146
  </div>
73
- <p v-if="signals.value.length === 0" class="empty-state">No signals registered.</p>
74
147
  </div>
75
148
 
76
- <!-- Components Tab -->
77
- <div v-if="activeTab.value === 'components'" class="tab-pane">
78
- <div v-for="comp in components.value" :key="comp.id" class="data-item">
79
- <span class="item-label">{{ comp.name }}</span>
80
- <span class="item-id">#{{ comp.id }}</span>
149
+ <!-- COMPONENTS TAB -->
150
+ <div v-if="activeTab.value === 'components'" class="ndp-list">
151
+ <div v-for="comp in filteredComponents.value" :key="comp.id" class="ndp-item">
152
+ <div class="ndp-item-left" @click="toggleExpand(comp.name + comp.id)">
153
+ <span class="ndp-tree-toggle">{{ expandedComponents.value.has(comp.name + comp.id) ? '▼' : '▶' }}</span>
154
+ <span class="ndp-item-label">{{ comp.name }}</span>
155
+ <span class="ndp-item-depth" v-if="comp.depth > 0">d{{ comp.depth }}</span>
156
+ </div>
157
+ <div class="ndp-item-right">
158
+ <span class="ndp-item-id">#{{ comp.id }}</span>
159
+ </div>
160
+ <div v-if="expandedComponents.value.has(comp.name + comp.id)" class="ndp-detail">
161
+ <div class="ndp-detail-section">
162
+ <div class="ndp-detail-title">Props</div>
163
+ <div v-for="(val, key) in comp.props" :key="key" class="ndp-detail-row">
164
+ <span class="ndp-detail-key">{{ key }}</span>
165
+ <span class="ndp-detail-val">{{ formatValue(val) }}</span>
166
+ </div>
167
+ <div v-if="Object.keys(comp.props).length === 0" class="ndp-detail-empty">No props</div>
168
+ </div>
169
+ </div>
170
+ </div>
171
+ <div v-if="filteredComponents.value.length === 0" class="ndp-empty">
172
+ {{ searchQuery.value ? 'No components match filter.' : 'No components mounted.' }}
81
173
  </div>
82
- <p v-if="components.value.length === 0" class="empty-state">No components mounted.</p>
83
174
  </div>
84
175
  </div>
85
- </NCard>
176
+ </div>
86
177
  </div>
87
178
  </div>
88
179
  </template>
89
180
 
90
181
  <style scoped>
91
- .nexa-devtools {
182
+ .ndp {
92
183
  position: fixed;
93
- bottom: 1.5rem;
94
- right: 1.5rem;
184
+ bottom: 1rem;
185
+ right: 1rem;
95
186
  z-index: 9999;
96
- font-family: 'Inter', sans-serif;
187
+ font-family: system-ui, -apple-system, sans-serif;
188
+ font-size: 13px;
189
+ line-height: 1.4;
97
190
  }
98
-
99
- .devtools-trigger {
191
+ .ndp-trigger {
100
192
  position: relative;
101
193
  z-index: 1;
102
- background: #3b82f6;
194
+ background: #6366f1;
103
195
  color: white;
104
196
  border: none;
105
- padding: 0.75rem 1.5rem;
197
+ padding: 0.6rem 1.2rem;
106
198
  border-radius: 9999px;
107
199
  display: flex;
108
200
  align-items: center;
109
- gap: 0.5rem;
201
+ gap: 0.4rem;
110
202
  cursor: pointer;
111
- min-width: 120px;
112
- box-shadow: 0 10px 15px -3px rgba(59, 130, 246, 0.5);
113
- transition: all 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
203
+ box-shadow: 0 4px 12px rgba(99,102,241,0.4);
114
204
  font-weight: 600;
205
+ transition: all 0.2s;
115
206
  }
116
-
117
- .devtools-trigger:hover {
118
- transform: translateY(-2px);
119
- background: #2563eb;
120
- }
121
-
122
- .trigger-icon {
123
- font-size: 1.25rem;
207
+ .ndp-trigger:hover { background: #4f46e5; transform: translateY(-1px); }
208
+ .ndp-trigger-icon { font-size: 1.1rem; }
209
+ .ndp-badge {
210
+ background: rgba(255,255,255,0.25);
211
+ padding: 0.1rem 0.4rem;
212
+ border-radius: 999px;
213
+ font-size: 0.7rem;
214
+ font-weight: 700;
124
215
  }
125
-
126
- .devtools-panel {
216
+ .ndp-panel {
127
217
  position: absolute;
128
- bottom: 4rem;
218
+ bottom: 3.8rem;
129
219
  right: 0;
130
- width: 350px;
131
- max-height: 500px;
132
- animation: slide-up 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
220
+ width: 380px;
221
+ max-height: 520px;
222
+ animation: slide-up 0.25s ease;
133
223
  }
134
-
135
224
  @keyframes slide-up {
136
- from { transform: translateY(20px); opacity: 0; }
225
+ from { transform: translateY(12px); opacity: 0; }
137
226
  to { transform: translateY(0); opacity: 1; }
138
227
  }
139
-
140
- .panel-card {
141
- height: 100%;
228
+ .ndp-card {
229
+ background: #1e1b4b;
230
+ border: 1px solid rgba(255,255,255,0.08);
231
+ border-radius: 14px;
232
+ overflow: hidden;
142
233
  display: flex;
143
234
  flex-direction: column;
144
- background: rgba(15, 23, 42, 0.8) !important;
145
- backdrop-filter: blur(20px);
146
- border: 1px solid rgba(255, 255, 255, 0.1);
147
- padding: 0 !important;
148
- overflow: hidden;
235
+ height: 100%;
236
+ box-shadow: 0 20px 60px rgba(0,0,0,0.5);
149
237
  }
150
-
151
- .panel-header {
152
- padding: 1rem;
153
- border-bottom: 1px solid rgba(255, 255, 255, 0.1);
238
+ .ndp-header {
239
+ padding: 0.8rem 1rem;
240
+ border-bottom: 1px solid rgba(255,255,255,0.06);
154
241
  }
155
-
156
- .header-title {
242
+ .ndp-title-row {
157
243
  display: flex;
244
+ justify-content: space-between;
158
245
  align-items: center;
159
- gap: 0.5rem;
160
- margin-bottom: 1rem;
161
- }
162
-
163
- .close-btn {
164
- margin-left: auto;
165
- background: none;
166
- border: none;
167
- color: #94a3b8;
168
- font-size: 1rem;
169
- cursor: pointer;
170
- padding: 0.25rem;
171
- line-height: 1;
172
- border-radius: 4px;
173
- transition: all 0.15s;
174
- }
175
-
176
- .close-btn:hover {
177
- color: white;
178
- background: rgba(255, 255, 255, 0.1);
179
- }
180
-
181
- .logo {
182
- font-weight: 900;
183
- color: white;
184
- letter-spacing: -0.025em;
185
- }
186
-
187
- .version {
188
- font-size: 0.7rem;
189
- color: #64748b;
246
+ margin-bottom: 0.6rem;
190
247
  }
191
-
192
- .tab-nav {
248
+ .ndp-logo { font-weight: 800; color: white; letter-spacing: -0.02em; font-size: 0.9rem; }
249
+ .ndp-close { color: #64748b; cursor: pointer; font-size: 0.85rem; padding: 0.2rem; }
250
+ .ndp-close:hover { color: white; }
251
+ .ndp-tabs {
193
252
  display: flex;
194
- gap: 0.25rem;
195
- background: rgba(0, 0, 0, 0.2);
196
- padding: 0.25rem;
253
+ gap: 0.2rem;
254
+ background: rgba(0,0,0,0.25);
255
+ padding: 0.2rem;
197
256
  border-radius: 8px;
257
+ margin-bottom: 0.5rem;
198
258
  }
199
-
200
- .tab-nav button {
259
+ .ndp-tabs button {
201
260
  flex: 1;
202
261
  background: transparent;
203
262
  border: none;
204
263
  color: #94a3b8;
205
- padding: 0.4rem;
264
+ padding: 0.35rem;
206
265
  border-radius: 6px;
207
- font-size: 0.8rem;
266
+ font-size: 0.75rem;
208
267
  font-weight: 600;
209
268
  cursor: pointer;
210
- transition: all 0.2s;
269
+ transition: all 0.15s;
211
270
  }
212
-
213
- .tab-nav button.is-active {
214
- background: rgba(255, 255, 255, 0.1);
215
- color: white;
271
+ .ndp-tabs button.is-active { background: rgba(255,255,255,0.08); color: white; }
272
+ .ndp-search input {
273
+ width: 100%;
274
+ background: rgba(0,0,0,0.3);
275
+ border: 1px solid rgba(255,255,255,0.06);
276
+ border-radius: 6px;
277
+ padding: 0.35rem 0.5rem;
278
+ color: #e2e8f0;
279
+ font-size: 0.75rem;
280
+ outline: none;
281
+ box-sizing: border-box;
216
282
  }
217
-
218
- .panel-content {
219
- padding: 1rem;
283
+ .ndp-search input::placeholder { color: #475569; }
284
+ .ndp-search input:focus { border-color: #6366f1; }
285
+ .ndp-body {
220
286
  overflow-y: auto;
221
- min-height: 0;
222
- max-height: 380px;
287
+ flex: 1;
288
+ padding: 0.25rem 0;
223
289
  }
224
-
225
- .tab-pane {
290
+ .ndp-list { display: flex; flex-direction: column; }
291
+ .ndp-item {
292
+ padding: 0.4rem 1rem;
226
293
  display: flex;
227
- flex-direction: column;
228
- gap: 0.75rem;
294
+ flex-wrap: wrap;
295
+ align-items: center;
296
+ gap: 0.4rem;
297
+ border-bottom: 1px solid rgba(255,255,255,0.03);
298
+ transition: background 0.1s;
229
299
  }
230
-
231
- .data-item {
300
+ .ndp-item:hover { background: rgba(255,255,255,0.02); }
301
+ .ndp-item-left {
232
302
  display: flex;
233
- justify-content: space-between;
234
303
  align-items: center;
235
- padding: 0.5rem;
236
- background: rgba(255, 255, 255, 0.03);
237
- border-radius: 8px;
304
+ gap: 0.4rem;
305
+ min-width: 0;
306
+ flex: 1;
307
+ cursor: pointer;
238
308
  }
239
-
240
- .item-label {
309
+ .ndp-item-right {
310
+ display: flex;
311
+ align-items: center;
312
+ gap: 0.3rem;
313
+ max-width: 55%;
314
+ }
315
+ .ndp-item-label {
241
316
  color: #e2e8f0;
242
- font-size: 0.85rem;
243
- font-family: 'JetBrains Mono', monospace;
317
+ font-size: 0.8rem;
318
+ font-family: 'JetBrains Mono', 'Consolas', monospace;
319
+ white-space: nowrap;
320
+ overflow: hidden;
321
+ text-overflow: ellipsis;
244
322
  }
245
-
246
- .item-id {
247
- color: #64748b;
323
+ .ndp-item-depth {
324
+ color: #475569;
325
+ font-size: 0.65rem;
326
+ background: rgba(255,255,255,0.04);
327
+ padding: 0.05rem 0.3rem;
328
+ border-radius: 3px;
329
+ }
330
+ .ndp-tree-toggle {
331
+ color: #475569;
332
+ font-size: 0.6rem;
333
+ width: 1rem;
334
+ flex-shrink: 0;
335
+ }
336
+ .ndp-value {
337
+ color: #a5b4fc;
338
+ font-size: 0.78rem;
339
+ font-family: 'JetBrains Mono', 'Consolas', monospace;
340
+ cursor: pointer;
341
+ padding: 0.1rem 0.3rem;
342
+ border-radius: 3px;
343
+ white-space: nowrap;
344
+ overflow: hidden;
345
+ text-overflow: ellipsis;
346
+ max-width: 180px;
347
+ transition: background 0.1s;
348
+ }
349
+ .ndp-value:hover { background: rgba(99,102,241,0.15); }
350
+ .ndp-item-id { color: #475569; font-size: 0.7rem; }
351
+ .ndp-edit-row {
352
+ display: flex;
353
+ align-items: center;
354
+ gap: 0.2rem;
355
+ }
356
+ .ndp-edit-input {
357
+ width: 140px;
358
+ background: rgba(0,0,0,0.4);
359
+ border: 1px solid #6366f1;
360
+ border-radius: 4px;
361
+ padding: 0.2rem 0.3rem;
362
+ color: #e2e8f0;
248
363
  font-size: 0.75rem;
364
+ font-family: 'JetBrains Mono', 'Consolas', monospace;
365
+ outline: none;
249
366
  }
250
-
251
- .empty-state {
252
- text-align: center;
367
+ .ndp-edit-save, .ndp-edit-cancel {
368
+ border: none;
369
+ background: transparent;
370
+ cursor: pointer;
371
+ font-size: 0.7rem;
372
+ padding: 0.15rem;
373
+ border-radius: 3px;
374
+ line-height: 1;
375
+ }
376
+ .ndp-edit-save { color: #34d399; }
377
+ .ndp-edit-save:hover { background: rgba(52,211,153,0.15); }
378
+ .ndp-edit-cancel { color: #f87171; }
379
+ .ndp-edit-cancel:hover { background: rgba(248,113,113,0.15); }
380
+ .ndp-detail {
381
+ width: 100%;
382
+ padding: 0.3rem 0 0.3rem 1.4rem;
383
+ }
384
+ .ndp-detail-section {
385
+ background: rgba(0,0,0,0.15);
386
+ border-radius: 6px;
387
+ padding: 0.4rem;
388
+ }
389
+ .ndp-detail-title {
390
+ font-size: 0.65rem;
253
391
  color: #64748b;
254
- font-size: 0.85rem;
255
- margin-top: 2rem;
392
+ font-weight: 600;
393
+ text-transform: uppercase;
394
+ letter-spacing: 0.05em;
395
+ margin-bottom: 0.3rem;
396
+ }
397
+ .ndp-detail-row {
398
+ display: flex;
399
+ gap: 0.5rem;
400
+ align-items: center;
401
+ padding: 0.15rem 0;
402
+ }
403
+ .ndp-detail-key {
404
+ color: #94a3b8;
405
+ font-size: 0.72rem;
406
+ font-family: 'JetBrains Mono', 'Consolas', monospace;
407
+ min-width: 80px;
408
+ }
409
+ .ndp-detail-val {
410
+ color: #a5b4fc;
411
+ font-size: 0.72rem;
412
+ font-family: 'JetBrains Mono', 'Consolas', monospace;
413
+ overflow: hidden;
414
+ text-overflow: ellipsis;
415
+ white-space: nowrap;
416
+ }
417
+ .ndp-detail-empty {
418
+ color: #475569;
419
+ font-size: 0.7rem;
420
+ font-style: italic;
421
+ }
422
+ .ndp-empty {
423
+ text-align: center;
424
+ color: #475569;
425
+ font-size: 0.78rem;
426
+ padding: 2rem 1rem;
256
427
  }
257
428
  </style>
package/dist/index.d.ts CHANGED
@@ -7,6 +7,22 @@ export declare function inspectComponents(): Record<string, any>[];
7
7
  export declare function inspectStore(): Record<string, any>;
8
8
  export declare function clearDevTools(): void;
9
9
  export declare function registerSignal(signal: Signal<any>, label?: string): number;
10
+ export declare function setSignalValue(id: number, value: any): void;
11
+ export declare function setSignalByLabel(label: string, value: any): boolean;
12
+ export declare function getSignalEntries(): {
13
+ id: number;
14
+ label: string;
15
+ value: any;
16
+ createdAt: number;
17
+ }[];
18
+ export declare function getComponentEntries(): {
19
+ id: number;
20
+ name: string;
21
+ props: Record<string, any>;
22
+ mountedAt: number;
23
+ parent: ComponentInstance | null;
24
+ depth: number;
25
+ }[];
10
26
  export declare function registerComponent(name: string, instance: ComponentInstance): number;
11
27
  export declare function unregisterComponent(instance: ComponentInstance): void;
12
28
  export declare function initDevTools(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,KAAK,iBAAiB,EAAS,MAAM,cAAc,CAAA;AAwB5D,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAIxE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAI9E;AAED,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CASpD;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAWzD;AAED,wBAAgB,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAKlD;AAED,wBAAgB,aAAa,IAAI,IAAI,CAKpC;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAI1E;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAInF;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAOrE;AAED,wBAAgB,YAAY,IAAI,IAAI,CAmBnC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,KAAK,iBAAiB,EAAS,MAAM,cAAc,CAAA;AAwB5D,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAIxE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAI9E;AAED,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CASpD;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAWzD;AAED,wBAAgB,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAKlD;AAED,wBAAgB,aAAa,IAAI,IAAI,CAKpC;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAI1E;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,CAK3D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAQnE;AAED,wBAAgB,gBAAgB,IAAI;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAAE,CAWjG;AAED,wBAAgB,mBAAmB,IAAI;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAapK;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAInF;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAOrE;AAED,wBAAgB,YAAY,IAAI,IAAI,CAuBnC"}
package/dist/index.js CHANGED
@@ -54,6 +54,47 @@ export function registerSignal(signal, label) {
54
54
  signalRegistry.set(id, { id, label: label || `_signal_${id}`, signal, createdAt: Date.now() });
55
55
  return id;
56
56
  }
57
+ export function setSignalValue(id, value) {
58
+ const entry = signalRegistry.get(id);
59
+ if (entry) {
60
+ entry.signal.value = value;
61
+ }
62
+ }
63
+ export function setSignalByLabel(label, value) {
64
+ for (const [, entry] of signalRegistry) {
65
+ if (entry.label === label) {
66
+ entry.signal.value = value;
67
+ return true;
68
+ }
69
+ }
70
+ return false;
71
+ }
72
+ export function getSignalEntries() {
73
+ const result = [];
74
+ for (const [, entry] of signalRegistry) {
75
+ result.push({
76
+ id: entry.id,
77
+ label: entry.label,
78
+ value: entry.signal.peek(),
79
+ createdAt: entry.createdAt,
80
+ });
81
+ }
82
+ return result;
83
+ }
84
+ export function getComponentEntries() {
85
+ const result = [];
86
+ for (const [, entry] of componentRegistry) {
87
+ result.push({
88
+ id: entry.id,
89
+ name: entry.name,
90
+ props: entry.instance.props.peek(),
91
+ mountedAt: entry.mountedAt,
92
+ parent: entry.instance.parent,
93
+ depth: entry.instance.depth,
94
+ });
95
+ }
96
+ return result;
97
+ }
57
98
  export function registerComponent(name, instance) {
58
99
  const id = nextComponentId++;
59
100
  componentRegistry.set(id, { id, name, instance, mountedAt: Date.now(), children: [] });
@@ -79,6 +120,10 @@ export function initDevTools() {
79
120
  registerSignal,
80
121
  registerComponent,
81
122
  unregisterComponent,
123
+ setSignalValue,
124
+ setSignalByLabel,
125
+ getSignalEntries,
126
+ getComponentEntries,
82
127
  clear: clearDevTools,
83
128
  };
84
129
  window.__NEXA_DEVTOOLS__ = api;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nexa-devtools",
3
- "version": "0.7.0",
3
+ "version": "0.7.2",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -13,9 +13,9 @@
13
13
  }
14
14
  },
15
15
  "dependencies": {
16
- "nexa-runtime": "0.7.0",
17
- "nexa-framework": "0.7.0",
18
- "nexa-ui-kit": "0.7.0"
16
+ "nexa-framework": "0.7.2",
17
+ "nexa-runtime": "0.7.2",
18
+ "nexa-ui-kit": "0.7.2"
19
19
  },
20
20
  "files": [
21
21
  "dist"
@@ -24,7 +24,7 @@
24
24
  "access": "public"
25
25
  },
26
26
  "peerDependencies": {
27
- "nexa-reactivity": "0.7.0"
27
+ "nexa-reactivity": "0.7.2"
28
28
  },
29
29
  "scripts": {
30
30
  "build": "tsc && cpx \"src/**/*.nexa\" dist",