@mappoh/nova 0.3.0 → 0.5.0
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 +180 -30
- package/dist/alert/alert.d.ts +32 -0
- package/dist/alert/alert.d.ts.map +1 -0
- package/dist/alert/alert.js +307 -0
- package/dist/alert/alert.js.map +1 -0
- package/dist/alert/index.d.ts +3 -0
- package/dist/alert/index.d.ts.map +1 -0
- package/dist/alert/index.js +2 -0
- package/dist/alert/index.js.map +1 -0
- package/dist/animation/flip.d.ts.map +1 -1
- package/dist/animation/flip.js +19 -12
- package/dist/animation/flip.js.map +1 -1
- package/dist/animation/stagger.d.ts +43 -0
- package/dist/animation/stagger.d.ts.map +1 -0
- package/dist/animation/stagger.js +150 -0
- package/dist/animation/stagger.js.map +1 -0
- package/dist/avatar/avatar.d.ts +27 -0
- package/dist/avatar/avatar.d.ts.map +1 -0
- package/dist/avatar/avatar.js +132 -0
- package/dist/avatar/avatar.js.map +1 -0
- package/dist/avatar/index.d.ts +3 -0
- package/dist/avatar/index.d.ts.map +1 -0
- package/dist/avatar/index.js +2 -0
- package/dist/avatar/index.js.map +1 -0
- package/dist/badge/badge.d.ts +27 -0
- package/dist/badge/badge.d.ts.map +1 -0
- package/dist/badge/badge.js +118 -0
- package/dist/badge/badge.js.map +1 -0
- package/dist/badge/index.d.ts +3 -0
- package/dist/badge/index.d.ts.map +1 -0
- package/dist/badge/index.js +2 -0
- package/dist/badge/index.js.map +1 -0
- package/dist/cache/cache.d.ts +28 -0
- package/dist/cache/cache.d.ts.map +1 -0
- package/dist/cache/cache.js +67 -0
- package/dist/cache/cache.js.map +1 -0
- package/dist/cache/index.d.ts +3 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +2 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/chart/chart.d.ts +4 -0
- package/dist/chart/chart.d.ts.map +1 -1
- package/dist/chart/chart.js +89 -6
- package/dist/chart/chart.js.map +1 -1
- package/dist/command-palette/command-palette.d.ts +31 -0
- package/dist/command-palette/command-palette.d.ts.map +1 -0
- package/dist/command-palette/command-palette.js +590 -0
- package/dist/command-palette/command-palette.js.map +1 -0
- package/dist/command-palette/index.d.ts +3 -0
- package/dist/command-palette/index.d.ts.map +1 -0
- package/dist/command-palette/index.js +2 -0
- package/dist/command-palette/index.js.map +1 -0
- package/dist/component/component.d.ts +20 -2
- package/dist/component/component.d.ts.map +1 -1
- package/dist/component/component.js +115 -5
- package/dist/component/component.js.map +1 -1
- package/dist/component/connect.d.ts +50 -0
- package/dist/component/connect.d.ts.map +1 -1
- package/dist/component/connect.js +135 -0
- package/dist/component/connect.js.map +1 -1
- package/dist/component/directives.d.ts +20 -0
- package/dist/component/directives.d.ts.map +1 -0
- package/dist/component/directives.js +42 -0
- package/dist/component/directives.js.map +1 -0
- package/dist/component/html.d.ts +8 -0
- package/dist/component/html.d.ts.map +1 -1
- package/dist/component/html.js +11 -0
- package/dist/component/html.js.map +1 -1
- package/dist/component/index.d.ts +9 -3
- package/dist/component/index.d.ts.map +1 -1
- package/dist/component/index.js +6 -2
- package/dist/component/index.js.map +1 -1
- package/dist/component/portal.d.ts +32 -0
- package/dist/component/portal.d.ts.map +1 -0
- package/dist/component/portal.js +59 -0
- package/dist/component/portal.js.map +1 -0
- package/dist/component/ref.d.ts +18 -0
- package/dist/component/ref.d.ts.map +1 -0
- package/dist/component/ref.js +17 -0
- package/dist/component/ref.js.map +1 -0
- package/dist/component/slot-styles.d.ts +18 -0
- package/dist/component/slot-styles.d.ts.map +1 -0
- package/dist/component/slot-styles.js +47 -0
- package/dist/component/slot-styles.js.map +1 -0
- package/dist/component/template.d.ts +2 -0
- package/dist/component/template.d.ts.map +1 -1
- package/dist/component/template.js +122 -4
- package/dist/component/template.js.map +1 -1
- package/dist/context/context.d.ts +39 -0
- package/dist/context/context.d.ts.map +1 -0
- package/dist/context/context.js +111 -0
- package/dist/context/context.js.map +1 -0
- package/dist/context/index.d.ts +3 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +2 -0
- package/dist/context/index.js.map +1 -0
- package/dist/devtools/devtools.d.ts +54 -0
- package/dist/devtools/devtools.d.ts.map +1 -1
- package/dist/devtools/devtools.js +86 -0
- package/dist/devtools/devtools.js.map +1 -1
- package/dist/devtools/index.d.ts +2 -2
- package/dist/devtools/index.d.ts.map +1 -1
- package/dist/devtools/index.js +1 -1
- package/dist/devtools/index.js.map +1 -1
- package/dist/editor/editor.d.ts +40 -0
- package/dist/editor/editor.d.ts.map +1 -0
- package/dist/editor/editor.js +955 -0
- package/dist/editor/editor.js.map +1 -0
- package/dist/editor/index.d.ts +3 -0
- package/dist/editor/index.d.ts.map +1 -0
- package/dist/editor/index.js +2 -0
- package/dist/editor/index.js.map +1 -0
- package/dist/event-bus/event-bus.d.ts +20 -0
- package/dist/event-bus/event-bus.d.ts.map +1 -0
- package/dist/event-bus/event-bus.js +55 -0
- package/dist/event-bus/event-bus.js.map +1 -0
- package/dist/event-bus/index.d.ts +3 -0
- package/dist/event-bus/index.d.ts.map +1 -0
- package/dist/event-bus/index.js +2 -0
- package/dist/event-bus/index.js.map +1 -0
- package/dist/forms/form-engine.d.ts +1 -1
- package/dist/forms/form-engine.d.ts.map +1 -1
- package/dist/forms/wasm-validators.d.ts +19 -11
- package/dist/forms/wasm-validators.d.ts.map +1 -1
- package/dist/forms/wasm-validators.js +191 -31
- package/dist/forms/wasm-validators.js.map +1 -1
- package/dist/gesture/gesture.d.ts +2 -0
- package/dist/gesture/gesture.d.ts.map +1 -1
- package/dist/gesture/gesture.js +81 -0
- package/dist/gesture/gesture.js.map +1 -1
- package/dist/http/http.d.ts +8 -0
- package/dist/http/http.d.ts.map +1 -1
- package/dist/http/http.js +18 -4
- package/dist/http/http.js.map +1 -1
- package/dist/i18n/i18n.d.ts +6 -0
- package/dist/i18n/i18n.d.ts.map +1 -1
- package/dist/i18n/i18n.js +71 -9
- package/dist/i18n/i18n.js.map +1 -1
- package/dist/machine/index.d.ts +3 -0
- package/dist/machine/index.d.ts.map +1 -0
- package/dist/machine/index.js +2 -0
- package/dist/machine/index.js.map +1 -0
- package/dist/machine/machine.d.ts +26 -0
- package/dist/machine/machine.d.ts.map +1 -0
- package/dist/machine/machine.js +79 -0
- package/dist/machine/machine.js.map +1 -0
- package/dist/modal/modal.d.ts.map +1 -1
- package/dist/modal/modal.js +13 -29
- package/dist/modal/modal.js.map +1 -1
- package/dist/notification-center/index.d.ts +3 -0
- package/dist/notification-center/index.d.ts.map +1 -0
- package/dist/notification-center/index.js +2 -0
- package/dist/notification-center/index.js.map +1 -0
- package/dist/notification-center/notification-center.d.ts +55 -0
- package/dist/notification-center/notification-center.d.ts.map +1 -0
- package/dist/notification-center/notification-center.js +941 -0
- package/dist/notification-center/notification-center.js.map +1 -0
- package/dist/pagination/index.d.ts +3 -0
- package/dist/pagination/index.d.ts.map +1 -0
- package/dist/pagination/index.js +2 -0
- package/dist/pagination/index.js.map +1 -0
- package/dist/pagination/pagination.d.ts +31 -0
- package/dist/pagination/pagination.d.ts.map +1 -0
- package/dist/pagination/pagination.js +213 -0
- package/dist/pagination/pagination.js.map +1 -0
- package/dist/progress/progress.d.ts.map +1 -1
- package/dist/progress/progress.js +5 -7
- package/dist/progress/progress.js.map +1 -1
- package/dist/query/index.d.ts +3 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +2 -0
- package/dist/query/index.js.map +1 -0
- package/dist/query/query.d.ts +31 -0
- package/dist/query/query.d.ts.map +1 -0
- package/dist/query/query.js +150 -0
- package/dist/query/query.js.map +1 -0
- package/dist/radio-group/index.d.ts +3 -0
- package/dist/radio-group/index.d.ts.map +1 -0
- package/dist/radio-group/index.js +2 -0
- package/dist/radio-group/index.js.map +1 -0
- package/dist/radio-group/radio-group.d.ts +37 -0
- package/dist/radio-group/radio-group.d.ts.map +1 -0
- package/dist/radio-group/radio-group.js +251 -0
- package/dist/radio-group/radio-group.js.map +1 -0
- package/dist/rating/index.d.ts +3 -0
- package/dist/rating/index.d.ts.map +1 -0
- package/dist/rating/index.js +2 -0
- package/dist/rating/index.js.map +1 -0
- package/dist/rating/rating.d.ts +31 -0
- package/dist/rating/rating.d.ts.map +1 -0
- package/dist/rating/rating.js +187 -0
- package/dist/rating/rating.js.map +1 -0
- package/dist/router/router.d.ts +16 -1
- package/dist/router/router.d.ts.map +1 -1
- package/dist/router/router.js +88 -11
- package/dist/router/router.js.map +1 -1
- package/dist/skeleton/index.d.ts +3 -0
- package/dist/skeleton/index.d.ts.map +1 -0
- package/dist/skeleton/index.js +2 -0
- package/dist/skeleton/index.js.map +1 -0
- package/dist/skeleton/skeleton.d.ts +24 -0
- package/dist/skeleton/skeleton.d.ts.map +1 -0
- package/dist/skeleton/skeleton.js +91 -0
- package/dist/skeleton/skeleton.js.map +1 -0
- package/dist/slider/index.d.ts +3 -0
- package/dist/slider/index.d.ts.map +1 -0
- package/dist/slider/index.js +2 -0
- package/dist/slider/index.js.map +1 -0
- package/dist/slider/slider.d.ts +33 -0
- package/dist/slider/slider.d.ts.map +1 -0
- package/dist/slider/slider.js +248 -0
- package/dist/slider/slider.js.map +1 -0
- package/dist/spinner/index.d.ts +3 -0
- package/dist/spinner/index.d.ts.map +1 -0
- package/dist/spinner/index.js +2 -0
- package/dist/spinner/index.js.map +1 -0
- package/dist/spinner/spinner.d.ts +23 -0
- package/dist/spinner/spinner.d.ts.map +1 -0
- package/dist/spinner/spinner.js +82 -0
- package/dist/spinner/spinner.js.map +1 -0
- package/dist/sw/sw.d.ts.map +1 -1
- package/dist/sw/sw.js +39 -7
- package/dist/sw/sw.js.map +1 -1
- package/dist/switch/index.d.ts +3 -0
- package/dist/switch/index.d.ts.map +1 -0
- package/dist/switch/index.js +2 -0
- package/dist/switch/index.js.map +1 -0
- package/dist/switch/switch.d.ts +27 -0
- package/dist/switch/switch.d.ts.map +1 -0
- package/dist/switch/switch.js +163 -0
- package/dist/switch/switch.js.map +1 -0
- package/dist/theme/index.d.ts +2 -0
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +1 -0
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/scale.d.ts +40 -0
- package/dist/theme/scale.d.ts.map +1 -0
- package/dist/theme/scale.js +62 -0
- package/dist/theme/scale.js.map +1 -0
- package/dist/utils/index.d.ts +29 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +114 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/websocket/index.d.ts +3 -0
- package/dist/websocket/index.d.ts.map +1 -0
- package/dist/websocket/index.js +2 -0
- package/dist/websocket/index.js.map +1 -0
- package/dist/websocket/websocket.d.ts +31 -0
- package/dist/websocket/websocket.d.ts.map +1 -0
- package/dist/websocket/websocket.js +164 -0
- package/dist/websocket/websocket.js.map +1 -0
- package/package.json +85 -1
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Nova Engine — Context / Dependency Injection
|
|
3
|
+
*
|
|
4
|
+
* Provides ancestor-to-descendant data passing via DOM events.
|
|
5
|
+
* Follows the W3C Context Protocol (similar to Lit's context).
|
|
6
|
+
*/
|
|
7
|
+
const CONTEXT_REQUEST = 'context-request';
|
|
8
|
+
/** Create a typed context with a default value. */
|
|
9
|
+
export function createContext(defaultValue) {
|
|
10
|
+
return { __contextKey: Symbol(), defaultValue };
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Provide a context value on an element.
|
|
14
|
+
*
|
|
15
|
+
* Any descendant that dispatches a `context-request` event whose key
|
|
16
|
+
* matches will receive the value via its callback. Returns a cleanup
|
|
17
|
+
* function that removes the listener and notifies all subscribers that
|
|
18
|
+
* the provider is going away (by sending `undefined`).
|
|
19
|
+
*/
|
|
20
|
+
export function provide(element, context, value) {
|
|
21
|
+
let currentValue = value;
|
|
22
|
+
const subscribers = new Set();
|
|
23
|
+
function handleRequest(e) {
|
|
24
|
+
const ce = e;
|
|
25
|
+
if (ce.detail.key !== context.__contextKey)
|
|
26
|
+
return;
|
|
27
|
+
// Stop propagation so no ancestor provider accidentally responds.
|
|
28
|
+
ce.stopImmediatePropagation();
|
|
29
|
+
// Deliver the current value.
|
|
30
|
+
ce.detail.callback(currentValue);
|
|
31
|
+
// If the consumer asked for subscriptions, remember it.
|
|
32
|
+
if (ce.detail.subscribe) {
|
|
33
|
+
subscribers.add(ce.detail.callback);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
element.addEventListener(CONTEXT_REQUEST, handleRequest);
|
|
37
|
+
function cleanup() {
|
|
38
|
+
element.removeEventListener(CONTEXT_REQUEST, handleRequest);
|
|
39
|
+
subscribers.clear();
|
|
40
|
+
}
|
|
41
|
+
/** Update the provided value and notify all subscribers. */
|
|
42
|
+
cleanup.update = (next) => {
|
|
43
|
+
if (Object.is(currentValue, next))
|
|
44
|
+
return;
|
|
45
|
+
currentValue = next;
|
|
46
|
+
for (const cb of [...subscribers])
|
|
47
|
+
cb(currentValue);
|
|
48
|
+
};
|
|
49
|
+
return cleanup;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Synchronously consume a context value from the nearest ancestor provider.
|
|
53
|
+
*
|
|
54
|
+
* Dispatches a `context-request` CustomEvent that bubbles up the DOM.
|
|
55
|
+
* If no provider responds, the context's `defaultValue` is returned.
|
|
56
|
+
*/
|
|
57
|
+
export function consume(element, context) {
|
|
58
|
+
let result = context.defaultValue;
|
|
59
|
+
let responded = false;
|
|
60
|
+
const event = new CustomEvent(CONTEXT_REQUEST, {
|
|
61
|
+
bubbles: true,
|
|
62
|
+
composed: true,
|
|
63
|
+
detail: {
|
|
64
|
+
key: context.__contextKey,
|
|
65
|
+
callback: (value) => {
|
|
66
|
+
result = value;
|
|
67
|
+
responded = true;
|
|
68
|
+
},
|
|
69
|
+
subscribe: false,
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
element.dispatchEvent(event);
|
|
73
|
+
return responded ? result : context.defaultValue;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Consume a context value and subscribe to future updates.
|
|
77
|
+
*
|
|
78
|
+
* The `callback` is invoked immediately with the current value (or
|
|
79
|
+
* `defaultValue` if no provider exists) and again whenever the provider
|
|
80
|
+
* pushes a new value.
|
|
81
|
+
*
|
|
82
|
+
* Returns a cleanup function that unsubscribes.
|
|
83
|
+
*/
|
|
84
|
+
export function consumeAsync(element, context, callback) {
|
|
85
|
+
let responded = false;
|
|
86
|
+
let unsubscribed = false;
|
|
87
|
+
const wrappedCallback = (value) => {
|
|
88
|
+
if (unsubscribed)
|
|
89
|
+
return;
|
|
90
|
+
responded = true;
|
|
91
|
+
callback(value);
|
|
92
|
+
};
|
|
93
|
+
const event = new CustomEvent(CONTEXT_REQUEST, {
|
|
94
|
+
bubbles: true,
|
|
95
|
+
composed: true,
|
|
96
|
+
detail: {
|
|
97
|
+
key: context.__contextKey,
|
|
98
|
+
callback: wrappedCallback,
|
|
99
|
+
subscribe: true,
|
|
100
|
+
},
|
|
101
|
+
});
|
|
102
|
+
element.dispatchEvent(event);
|
|
103
|
+
// If no provider answered, deliver the default.
|
|
104
|
+
if (!responded) {
|
|
105
|
+
callback(context.defaultValue);
|
|
106
|
+
}
|
|
107
|
+
return () => {
|
|
108
|
+
unsubscribed = true;
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAE1C,mDAAmD;AACnD,MAAM,UAAU,aAAa,CAAI,YAAe;IAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,CAAC;AAClD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,OAAO,CACrB,OAAoB,EACpB,OAAmB,EACnB,KAAQ;IAER,IAAI,YAAY,GAAM,KAAK,CAAC;IAC5B,MAAM,WAAW,GAAG,IAAI,GAAG,EAAsB,CAAC;IAElD,SAAS,aAAa,CAAC,CAAQ;QAC7B,MAAM,EAAE,GAAG,CAAyC,CAAC;QACrD,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,OAAO,CAAC,YAAY;YAAE,OAAO;QAEnD,kEAAkE;QAClE,EAAE,CAAC,wBAAwB,EAAE,CAAC;QAE9B,6BAA6B;QAC7B,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAEjC,wDAAwD;QACxD,IAAI,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACxB,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,gBAAgB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IAEzD,SAAS,OAAO;QACd,OAAO,CAAC,mBAAmB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QAC5D,WAAW,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,4DAA4D;IAC5D,OAAO,CAAC,MAAM,GAAG,CAAC,IAAO,EAAQ,EAAE;QACjC,IAAI,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC;YAAE,OAAO;QAC1C,YAAY,GAAG,IAAI,CAAC;QACpB,KAAK,MAAM,EAAE,IAAI,CAAC,GAAG,WAAW,CAAC;YAAE,EAAE,CAAC,YAAY,CAAC,CAAC;IACtD,CAAC,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAI,OAAoB,EAAE,OAAmB;IAClE,IAAI,MAAM,GAAM,OAAO,CAAC,YAAY,CAAC;IACrC,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,MAAM,KAAK,GAAG,IAAI,WAAW,CAA0B,eAAe,EAAE;QACtE,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,GAAG,EAAE,OAAO,CAAC,YAAY;YACzB,QAAQ,EAAE,CAAC,KAAQ,EAAE,EAAE;gBACrB,MAAM,GAAG,KAAK,CAAC;gBACf,SAAS,GAAG,IAAI,CAAC;YACnB,CAAC;YACD,SAAS,EAAE,KAAK;SACjB;KACF,CAAC,CAAC;IAEH,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;AACnD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAC1B,OAAoB,EACpB,OAAmB,EACnB,QAA4B;IAE5B,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,MAAM,eAAe,GAAG,CAAC,KAAQ,EAAQ,EAAE;QACzC,IAAI,YAAY;YAAE,OAAO;QACzB,SAAS,GAAG,IAAI,CAAC;QACjB,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,IAAI,WAAW,CAA0B,eAAe,EAAE;QACtE,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,GAAG,EAAE,OAAO,CAAC,YAAY;YACzB,QAAQ,EAAE,eAAe;YACzB,SAAS,EAAE,IAAI;SAChB;KACF,CAAC,CAAC;IAEH,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAE7B,gDAAgD;IAChD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,GAAG,EAAE;QACV,YAAY,GAAG,IAAI,CAAC;IACtB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC1E,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -3,7 +3,55 @@
|
|
|
3
3
|
*
|
|
4
4
|
* In-browser component inspector, state viewer, router debugger,
|
|
5
5
|
* and performance profiler for Nova applications.
|
|
6
|
+
*
|
|
7
|
+
* Includes live signal/store inspection and mutation logging.
|
|
8
|
+
*/
|
|
9
|
+
import type { Store } from '../state/store';
|
|
10
|
+
/** A registered signal entry for devtools inspection. */
|
|
11
|
+
export interface RegisteredSignal {
|
|
12
|
+
/** Human-readable label */
|
|
13
|
+
name: string;
|
|
14
|
+
/** Read the current value */
|
|
15
|
+
read: () => unknown;
|
|
16
|
+
/** Unsubscribe function returned by subscribe() */
|
|
17
|
+
unsub?: () => void;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Register a signal so it can be inspected via devtools.
|
|
21
|
+
*
|
|
22
|
+
* ```ts
|
|
23
|
+
* const count = store.signal(0);
|
|
24
|
+
* registerSignal('count', count);
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare function registerSignal(name: string, read: () => unknown): () => void;
|
|
28
|
+
/**
|
|
29
|
+
* Return a snapshot of all registered signals with their current values.
|
|
6
30
|
*/
|
|
31
|
+
export declare function inspectSignals(): Record<string, unknown>;
|
|
32
|
+
/**
|
|
33
|
+
* Display the current state of a store as a plain object snapshot.
|
|
34
|
+
* Logs to the console and returns the snapshot.
|
|
35
|
+
*/
|
|
36
|
+
export declare function inspectStore<T extends Record<string, any>>(store: Store<T>): Readonly<T>;
|
|
37
|
+
/**
|
|
38
|
+
* Subscribe to a store and log every mutation to the console with a
|
|
39
|
+
* timestamp. Returns an unsubscribe function.
|
|
40
|
+
*/
|
|
41
|
+
export declare function logStateChanges<T extends Record<string, any>>(store: Store<T>): () => void;
|
|
42
|
+
export interface NovaDevtoolsGlobal {
|
|
43
|
+
inspectSignals: typeof inspectSignals;
|
|
44
|
+
inspectStore: typeof inspectStore;
|
|
45
|
+
logStateChanges: typeof logStateChanges;
|
|
46
|
+
registerSignal: typeof registerSignal;
|
|
47
|
+
/** The active devtools instance, set when createDevtools() is called */
|
|
48
|
+
instance: DevtoolsInstance | null;
|
|
49
|
+
}
|
|
50
|
+
declare global {
|
|
51
|
+
interface Window {
|
|
52
|
+
__NOVA_DEVTOOLS__?: NovaDevtoolsGlobal;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
7
55
|
export interface DevtoolsOptions {
|
|
8
56
|
/** Keyboard shortcut to toggle overlay. Default: 'ctrl+shift+d' */
|
|
9
57
|
shortcut?: string;
|
|
@@ -20,6 +68,12 @@ export interface DevtoolsInstance {
|
|
|
20
68
|
toggle(): void;
|
|
21
69
|
isOpen(): boolean;
|
|
22
70
|
log(label: string, data?: unknown): void;
|
|
71
|
+
/** Return a snapshot of all registered signals with current values. */
|
|
72
|
+
inspectSignals(): Record<string, unknown>;
|
|
73
|
+
/** Log and return a store's current state. */
|
|
74
|
+
inspectStore<T extends Record<string, any>>(store: Store<T>): Readonly<T>;
|
|
75
|
+
/** Subscribe to a store and log mutations. Returns unsubscribe. */
|
|
76
|
+
logStateChanges<T extends Record<string, any>>(store: Store<T>): () => void;
|
|
23
77
|
destroy(): void;
|
|
24
78
|
}
|
|
25
79
|
/** Create a Nova devtools overlay. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devtools.d.ts","sourceRoot":"","sources":["../../src/devtools/devtools.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"devtools.d.ts","sourceRoot":"","sources":["../../src/devtools/devtools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAM5C,yDAAyD;AACzD,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,IAAI,EAAE,MAAM,OAAO,CAAC;IACpB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;CACpB;AAID;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,GAAG,MAAM,IAAI,CAG5E;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMxD;AAMD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAIxF;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAM1F;AAMD,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,wEAAwE;IACxE,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACnC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;KACxC;CACF;AAgCD,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;CACtE;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,IAAI,IAAI,CAAC;IACb,KAAK,IAAI,IAAI,CAAC;IACd,MAAM,IAAI,IAAI,CAAC;IACf,MAAM,IAAI,OAAO,CAAC;IAClB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzC,uEAAuE;IACvE,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,8CAA8C;IAC9C,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1E,mEAAmE;IACnE,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC;IAC5E,OAAO,IAAI,IAAI,CAAC;CACjB;AA8DD,sCAAsC;AACtC,wBAAgB,cAAc,CAAC,OAAO,GAAE,eAAoB,GAAG,gBAAgB,CAwL9E"}
|
|
@@ -3,7 +3,84 @@
|
|
|
3
3
|
*
|
|
4
4
|
* In-browser component inspector, state viewer, router debugger,
|
|
5
5
|
* and performance profiler for Nova applications.
|
|
6
|
+
*
|
|
7
|
+
* Includes live signal/store inspection and mutation logging.
|
|
8
|
+
*/
|
|
9
|
+
const signalRegistry = new Map();
|
|
10
|
+
/**
|
|
11
|
+
* Register a signal so it can be inspected via devtools.
|
|
12
|
+
*
|
|
13
|
+
* ```ts
|
|
14
|
+
* const count = store.signal(0);
|
|
15
|
+
* registerSignal('count', count);
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export function registerSignal(name, read) {
|
|
19
|
+
signalRegistry.set(name, { name, read });
|
|
20
|
+
return () => { signalRegistry.delete(name); };
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Return a snapshot of all registered signals with their current values.
|
|
6
24
|
*/
|
|
25
|
+
export function inspectSignals() {
|
|
26
|
+
const snapshot = {};
|
|
27
|
+
for (const [name, entry] of signalRegistry) {
|
|
28
|
+
try {
|
|
29
|
+
snapshot[name] = entry.read();
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
snapshot[name] = '<error>';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return snapshot;
|
|
36
|
+
}
|
|
37
|
+
/* ------------------------------------------------------------------ */
|
|
38
|
+
/* Store inspection */
|
|
39
|
+
/* ------------------------------------------------------------------ */
|
|
40
|
+
/**
|
|
41
|
+
* Display the current state of a store as a plain object snapshot.
|
|
42
|
+
* Logs to the console and returns the snapshot.
|
|
43
|
+
*/
|
|
44
|
+
export function inspectStore(store) {
|
|
45
|
+
const snap = store.snapshot();
|
|
46
|
+
console.log('[nova/devtools] store snapshot', snap);
|
|
47
|
+
return snap;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Subscribe to a store and log every mutation to the console with a
|
|
51
|
+
* timestamp. Returns an unsubscribe function.
|
|
52
|
+
*/
|
|
53
|
+
export function logStateChanges(store) {
|
|
54
|
+
return store.onAny(() => {
|
|
55
|
+
const time = new Date().toISOString();
|
|
56
|
+
const snap = store.snapshot();
|
|
57
|
+
console.log(`[nova/devtools] [${time}] state changed`, snap);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
function ensureGlobal() {
|
|
61
|
+
if (typeof window === 'undefined') {
|
|
62
|
+
// SSR / non-browser — return a no-op object that won't be attached
|
|
63
|
+
return {
|
|
64
|
+
inspectSignals,
|
|
65
|
+
inspectStore,
|
|
66
|
+
logStateChanges,
|
|
67
|
+
registerSignal,
|
|
68
|
+
instance: null,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
if (!window.__NOVA_DEVTOOLS__) {
|
|
72
|
+
window.__NOVA_DEVTOOLS__ = {
|
|
73
|
+
inspectSignals,
|
|
74
|
+
inspectStore,
|
|
75
|
+
logStateChanges,
|
|
76
|
+
registerSignal,
|
|
77
|
+
instance: null,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
return window.__NOVA_DEVTOOLS__;
|
|
81
|
+
}
|
|
82
|
+
// Register on load
|
|
83
|
+
ensureGlobal();
|
|
7
84
|
const STYLE_ID = 'nova-devtools-styles';
|
|
8
85
|
function injectStyles() {
|
|
9
86
|
if (document.getElementById(STYLE_ID))
|
|
@@ -224,14 +301,23 @@ export function createDevtools(options = {}) {
|
|
|
224
301
|
if (opened && activeTab === 2)
|
|
225
302
|
renderContent();
|
|
226
303
|
},
|
|
304
|
+
inspectSignals,
|
|
305
|
+
inspectStore,
|
|
306
|
+
logStateChanges,
|
|
227
307
|
destroy() {
|
|
228
308
|
instance.close();
|
|
229
309
|
document.removeEventListener('keydown', onKeydown);
|
|
230
310
|
document.removeEventListener('mousemove', onHover);
|
|
231
311
|
panel.remove();
|
|
232
312
|
document.getElementById(STYLE_ID)?.remove();
|
|
313
|
+
// Clear global reference
|
|
314
|
+
const g = ensureGlobal();
|
|
315
|
+
if (g.instance === instance)
|
|
316
|
+
g.instance = null;
|
|
233
317
|
},
|
|
234
318
|
};
|
|
319
|
+
// Register instance on the global devtools object
|
|
320
|
+
ensureGlobal().instance = instance;
|
|
235
321
|
return instance;
|
|
236
322
|
}
|
|
237
323
|
//# sourceMappingURL=devtools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devtools.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"devtools.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAkBH,MAAM,cAAc,GAAG,IAAI,GAAG,EAA4B,CAAC;AAE3D;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,IAAmB;IAC9D,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,OAAO,GAAG,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAC7C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,cAAc,EAAE,CAAC;QAC3C,IAAI,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;QAAC,CAAC;IAC9E,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,wEAAwE;AACxE,yEAAyE;AACzE,wEAAwE;AAExE;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAgC,KAAe;IACzE,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,IAAI,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAgC,KAAe;IAC5E,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE;QACtB,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,iBAAiB,EAAE,IAAI,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC;AAqBD,SAAS,YAAY;IACnB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,mEAAmE;QACnE,OAAO;YACL,cAAc;YACd,YAAY;YACZ,eAAe;YACf,cAAc;YACd,QAAQ,EAAE,IAAI;SACf,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC9B,MAAM,CAAC,iBAAiB,GAAG;YACzB,cAAc;YACd,YAAY;YACZ,eAAe;YACf,cAAc;YACd,QAAQ,EAAE,IAAI;SACf,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,iBAAkB,CAAC;AACnC,CAAC;AAED,mBAAmB;AACnB,YAAY,EAAE,CAAC;AAgCf,MAAM,QAAQ,GAAG,sBAAsB,CAAC;AAExC,SAAS,YAAY;IACnB,IAAI,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC;QAAE,OAAO;IAC9C,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC;IAChB,CAAC,CAAC,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqChB,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,WAAW,CAAC,KAA6C;IAChE,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC1C,GAAG,CAAC,SAAS,GAAG,sBAAsB,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC;YAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;QACrD,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,cAAc,CAAC,UAA2B,EAAE;IAC1D,MAAM,EACJ,QAAQ,GAAG,cAAc,EACzB,YAAY,GAAG,IAAI,EACnB,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,cAAc,GAC1B,GAAG,OAAO,CAAC;IAEZ,YAAY,EAAE,CAAC;IAEf,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5C,KAAK,CAAC,SAAS,GAAG,eAAe,CAAC;IAClC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAEzC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,CAAC,SAAS,GAAG,uBAAuB,CAAC;IAC3C,MAAM,CAAC,WAAW,GAAG,eAAe,CAAC;IACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAClD,QAAQ,CAAC,SAAS,GAAG,sBAAsB,CAAC;IAC5C,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC;IAChC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7B,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAE1B,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC;IACvC,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAChD,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC7C,GAAG,CAAC,SAAS,GAAG,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtF,GAAG,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC9B,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YACjC,SAAS,GAAG,CAAC,CAAC;YACd,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,4BAA4B,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACpF,aAAa,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAExB,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,CAAC,SAAS,GAAG,wBAAwB,CAAC;IAC7C,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAEjC,MAAM,UAAU,GAA2D,EAAE,CAAC;IAE9E,SAAS,aAAa;QACpB,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC;QAEzB,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChG,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACrB,OAAO,CAAC,WAAW,GAAG,2BAA2B,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;oBACrD,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC;wBAC9B,EAAE,IAAI,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE;wBACvC,EAAE,IAAI,EAAE,SAAS,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;qBAC7C,CAAC,CAAC,CAAC;gBACN,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAa,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC7C,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAChC,IAAI,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC;wBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,WAAW,GAAG,2BAA2B,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;oBACvB,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;oBAC5C,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC;wBAC9B,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE;wBAC/B,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;qBAC7C,CAAC,CAAC,CAAC;gBACN,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,OAAO,CAAC,WAAW,GAAG,iBAAiB,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC1C,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,CAAC;oBAC1D,MAAM,KAAK,GAA2C;wBACpD,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,wBAAwB,EAAE;wBAClD,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE;qBACxC,CAAC;oBACF,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;wBAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;oBAClF,CAAC;oBACD,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,OAAO,GAAuB,IAAI,CAAC;IAEvC,SAAS,OAAO,CAAC,CAAa;QAC5B,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY;YAAE,OAAO;QACrC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,OAAO,EAAE,MAAM,EAAE,CAAC;YAAC,OAAO,GAAG,IAAI,CAAC;YAAC,OAAO;QAC5C,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACxC,OAAO,CAAC,SAAS,GAAG,wBAAwB,CAAC;YAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC5C,KAAK,CAAC,SAAS,GAAG,8BAA8B,CAAC;YACjD,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC3B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC;QACxC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC;QACzC,OAAO,CAAC,UAA0B,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IACjF,CAAC;IAED,SAAS,aAAa,CAAC,CAAS;QAC9B,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzC,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;YACrD,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC9B,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC1B,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;SAC7B,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAEnC,SAAS,SAAS,CAAC,CAAgB;QACjC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI;eAC7C,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAC,KAAK;eACvB,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,GAAG;eACnB,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;QACpC,IAAI,KAAK,EAAE,CAAC;YAAC,CAAC,CAAC,cAAc,EAAE,CAAC;YAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAAC,CAAC;IACvD,CAAC;IAED,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAChD,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAE3D,MAAM,QAAQ,GAAqB;QACjC,IAAI,KAAW,MAAM,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QAC/F,KAAK,KAAW,MAAM,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;QACtH,MAAM,KAAW,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/D,MAAM,KAAc,OAAO,MAAM,CAAC,CAAC,CAAC;QACpC,GAAG,CAAC,KAAa,EAAE,IAAc;YAC/B,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACnD,IAAI,QAAQ;gBAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;YAC5D,IAAI,MAAM,IAAI,SAAS,KAAK,CAAC;gBAAE,aAAa,EAAE,CAAC;QACjD,CAAC;QACD,cAAc;QACd,YAAY;QACZ,eAAe;QACf,OAAO;YACL,QAAQ,CAAC,KAAK,EAAE,CAAC;YACjB,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACnD,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACnD,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;YAC5C,yBAAyB;YACzB,MAAM,CAAC,GAAG,YAAY,EAAE,CAAC;YACzB,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ;gBAAE,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;QACjD,CAAC;KACF,CAAC;IAEF,kDAAkD;IAClD,YAAY,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAEnC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/dist/devtools/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { createDevtools } from './devtools';
|
|
2
|
-
export type { DevtoolsOptions, DevtoolsInstance } from './devtools';
|
|
1
|
+
export { createDevtools, registerSignal, inspectSignals, inspectStore, logStateChanges } from './devtools';
|
|
2
|
+
export type { DevtoolsOptions, DevtoolsInstance, RegisteredSignal, NovaDevtoolsGlobal } from './devtools';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/devtools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/devtools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC3G,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/devtools/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { createDevtools } from './devtools';
|
|
1
|
+
export { createDevtools, registerSignal, inspectSignals, inspectStore, logStateChanges } from './devtools';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Nova Engine — Markdown Editor
|
|
3
|
+
*
|
|
4
|
+
* Interactive split-pane markdown editor with live preview,
|
|
5
|
+
* toolbar, keyboard shortcuts, and auto-list continuation.
|
|
6
|
+
* Uses Nova's internal markdown parser for rendering.
|
|
7
|
+
*/
|
|
8
|
+
export interface EditorOptions {
|
|
9
|
+
/** Initial markdown content */
|
|
10
|
+
value?: string;
|
|
11
|
+
/** Display mode. Default: 'split' */
|
|
12
|
+
mode?: 'split' | 'write' | 'preview';
|
|
13
|
+
/** Placeholder text for empty editor */
|
|
14
|
+
placeholder?: string;
|
|
15
|
+
/** Show toolbar. Default: true */
|
|
16
|
+
toolbar?: boolean;
|
|
17
|
+
/** Show line numbers. Default: false */
|
|
18
|
+
lineNumbers?: boolean;
|
|
19
|
+
/** Minimum height (CSS value). Default: '300px' */
|
|
20
|
+
minHeight?: string;
|
|
21
|
+
/** Maximum height (CSS value). Default: 'none' */
|
|
22
|
+
maxHeight?: string;
|
|
23
|
+
/** Called on every content change */
|
|
24
|
+
onChange?: (value: string) => void;
|
|
25
|
+
/** Called on Cmd/Ctrl+S */
|
|
26
|
+
onSave?: (value: string) => void;
|
|
27
|
+
}
|
|
28
|
+
export interface EditorInstance {
|
|
29
|
+
getValue(): string;
|
|
30
|
+
setValue(value: string): void;
|
|
31
|
+
getMode(): string;
|
|
32
|
+
setMode(mode: 'split' | 'write' | 'preview'): void;
|
|
33
|
+
focus(): void;
|
|
34
|
+
insertText(text: string): void;
|
|
35
|
+
wrapSelection(before: string, after: string): void;
|
|
36
|
+
destroy(): void;
|
|
37
|
+
}
|
|
38
|
+
/** Create an interactive markdown editor. */
|
|
39
|
+
export declare function createEditor(container: HTMLElement, options?: EditorOptions): EditorInstance;
|
|
40
|
+
//# sourceMappingURL=editor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../src/editor/editor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,MAAM,WAAW,aAAa;IAC5B,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IACrC,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wCAAwC;IACxC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,2BAA2B;IAC3B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,IAAI,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,IAAI,MAAM,CAAC;IAClB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACnD,KAAK,IAAI,IAAI,CAAC;IACd,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACnD,OAAO,IAAI,IAAI,CAAC;CACjB;AA2fD,6CAA6C;AAC7C,wBAAgB,YAAY,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,GAAE,aAAkB,GAAG,cAAc,CAwehG"}
|