@mulanjs/mulanjs 1.0.1-dev.20260219055338 → 1.0.1-dev.20260219085559
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/core/renderer.js +39 -0
- package/dist/index.js +2 -1
- package/dist/mulan.esm.js +41 -1
- package/dist/mulan.js +2 -2
- package/dist/types/index.d.ts +2 -0
- package/package.json +1 -1
package/dist/core/renderer.js
CHANGED
|
@@ -15,6 +15,18 @@ export function render(template, container) {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
+
// [Anima] 1. Pre-Update: Snapshot positions of animated elements
|
|
19
|
+
const animationSnapshots = new Map();
|
|
20
|
+
// Only query if we might have animations to save perf
|
|
21
|
+
if (template.includes('mu-animate')) {
|
|
22
|
+
const animatedEls = container.querySelectorAll('[mu-animate]');
|
|
23
|
+
animatedEls.forEach(el => {
|
|
24
|
+
const key = el.getAttribute('mu-key') || el.id;
|
|
25
|
+
if (key) {
|
|
26
|
+
animationSnapshots.set(key, el.getBoundingClientRect());
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
18
30
|
container.innerHTML = template;
|
|
19
31
|
// Restore Focus and Value
|
|
20
32
|
if (focusedId) {
|
|
@@ -35,6 +47,33 @@ export function render(template, container) {
|
|
|
35
47
|
}
|
|
36
48
|
}
|
|
37
49
|
}
|
|
50
|
+
// [Anima] 2. Post-Update: FLIP (First, Last, Invert, Play)
|
|
51
|
+
if (animationSnapshots.size > 0) {
|
|
52
|
+
const newAnimatedEls = container.querySelectorAll('[mu-animate]');
|
|
53
|
+
newAnimatedEls.forEach(el => {
|
|
54
|
+
const key = el.getAttribute('mu-key') || el.id;
|
|
55
|
+
if (key && animationSnapshots.has(key)) {
|
|
56
|
+
const oldRect = animationSnapshots.get(key);
|
|
57
|
+
const newRect = el.getBoundingClientRect();
|
|
58
|
+
const dx = oldRect.left - newRect.left;
|
|
59
|
+
const dy = oldRect.top - newRect.top;
|
|
60
|
+
// Only animate if moved
|
|
61
|
+
if (dx !== 0 || dy !== 0) {
|
|
62
|
+
const htmlEl = el;
|
|
63
|
+
// INVERT: Move it back to where it was instantly
|
|
64
|
+
htmlEl.style.transform = `translate(${dx}px, ${dy}px)`;
|
|
65
|
+
htmlEl.style.transition = 'none';
|
|
66
|
+
// PLAY: Animate to zero (new position)
|
|
67
|
+
requestAnimationFrame(() => {
|
|
68
|
+
// Force reflow
|
|
69
|
+
// void htmlEl.offsetWidth;
|
|
70
|
+
htmlEl.style.transition = 'transform 500ms cubic-bezier(0.25, 0.8, 0.25, 1)';
|
|
71
|
+
htmlEl.style.transform = '';
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
38
77
|
}
|
|
39
78
|
export function hydrate(template, container) {
|
|
40
79
|
// In a string-based framework, hydration is often just "take over".
|
package/dist/index.js
CHANGED
|
@@ -17,9 +17,10 @@ import { MuStore } from './store/index';
|
|
|
17
17
|
import { Security } from './security/sanitizer';
|
|
18
18
|
import * as Hooks from './core/hooks';
|
|
19
19
|
import * as Query from './core/query';
|
|
20
|
+
import { render } from './core/renderer';
|
|
20
21
|
import * as Quantum from './core/quantum';
|
|
21
22
|
const Mulan = Object.assign(Object.assign(Object.assign(Object.assign({ reactive,
|
|
22
|
-
effect, Component: MuComponent, defineComponent, Router: MuRouter, Store: MuStore, Security: Security }, Hooks), Query), Quantum), {
|
|
23
|
+
effect, Component: MuComponent, defineComponent, Router: MuRouter, Store: MuStore, Security: Security }, Hooks), Query), Quantum), { render,
|
|
23
24
|
// MULAN INSIGHT: Branded Logging
|
|
24
25
|
log: (msg, ...args) => {
|
|
25
26
|
console.log(`%c[MulanJS]%c ${msg}`, "color: #ff3e00; font-weight: bold; background: #222; padding: 2px 4px; border-radius: 3px;", "", ...args);
|
package/dist/mulan.esm.js
CHANGED
|
@@ -1225,6 +1225,18 @@ function render(template, container) {
|
|
|
1225
1225
|
}
|
|
1226
1226
|
}
|
|
1227
1227
|
}
|
|
1228
|
+
// [Anima] 1. Pre-Update: Snapshot positions of animated elements
|
|
1229
|
+
const animationSnapshots = new Map();
|
|
1230
|
+
// Only query if we might have animations to save perf
|
|
1231
|
+
if (template.includes('mu-animate')) {
|
|
1232
|
+
const animatedEls = container.querySelectorAll('[mu-animate]');
|
|
1233
|
+
animatedEls.forEach(el => {
|
|
1234
|
+
const key = el.getAttribute('mu-key') || el.id;
|
|
1235
|
+
if (key) {
|
|
1236
|
+
animationSnapshots.set(key, el.getBoundingClientRect());
|
|
1237
|
+
}
|
|
1238
|
+
});
|
|
1239
|
+
}
|
|
1228
1240
|
container.innerHTML = template;
|
|
1229
1241
|
// Restore Focus and Value
|
|
1230
1242
|
if (focusedId) {
|
|
@@ -1245,6 +1257,33 @@ function render(template, container) {
|
|
|
1245
1257
|
}
|
|
1246
1258
|
}
|
|
1247
1259
|
}
|
|
1260
|
+
// [Anima] 2. Post-Update: FLIP (First, Last, Invert, Play)
|
|
1261
|
+
if (animationSnapshots.size > 0) {
|
|
1262
|
+
const newAnimatedEls = container.querySelectorAll('[mu-animate]');
|
|
1263
|
+
newAnimatedEls.forEach(el => {
|
|
1264
|
+
const key = el.getAttribute('mu-key') || el.id;
|
|
1265
|
+
if (key && animationSnapshots.has(key)) {
|
|
1266
|
+
const oldRect = animationSnapshots.get(key);
|
|
1267
|
+
const newRect = el.getBoundingClientRect();
|
|
1268
|
+
const dx = oldRect.left - newRect.left;
|
|
1269
|
+
const dy = oldRect.top - newRect.top;
|
|
1270
|
+
// Only animate if moved
|
|
1271
|
+
if (dx !== 0 || dy !== 0) {
|
|
1272
|
+
const htmlEl = el;
|
|
1273
|
+
// INVERT: Move it back to where it was instantly
|
|
1274
|
+
htmlEl.style.transform = `translate(${dx}px, ${dy}px)`;
|
|
1275
|
+
htmlEl.style.transition = 'none';
|
|
1276
|
+
// PLAY: Animate to zero (new position)
|
|
1277
|
+
requestAnimationFrame(() => {
|
|
1278
|
+
// Force reflow
|
|
1279
|
+
// void htmlEl.offsetWidth;
|
|
1280
|
+
htmlEl.style.transition = 'transform 500ms cubic-bezier(0.25, 0.8, 0.25, 1)';
|
|
1281
|
+
htmlEl.style.transform = '';
|
|
1282
|
+
});
|
|
1283
|
+
}
|
|
1284
|
+
}
|
|
1285
|
+
});
|
|
1286
|
+
}
|
|
1248
1287
|
}
|
|
1249
1288
|
function hydrate(template, container) {
|
|
1250
1289
|
// In a string-based framework, hydration is often just "take over".
|
|
@@ -1873,8 +1912,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1873
1912
|
|
|
1874
1913
|
|
|
1875
1914
|
|
|
1915
|
+
|
|
1876
1916
|
const Mulan = Object.assign(Object.assign(Object.assign(Object.assign({ reactive: _core_reactive__WEBPACK_IMPORTED_MODULE_0__.reactive,
|
|
1877
|
-
effect: _core_reactive__WEBPACK_IMPORTED_MODULE_0__.effect, Component: _core_component__WEBPACK_IMPORTED_MODULE_1__.MuComponent, defineComponent: _core_component__WEBPACK_IMPORTED_MODULE_1__.defineComponent, Router: _router_index__WEBPACK_IMPORTED_MODULE_3__.MuRouter, Store: _store_index__WEBPACK_IMPORTED_MODULE_4__.MuStore, Security: _security_sanitizer__WEBPACK_IMPORTED_MODULE_5__.Security }, _core_hooks__WEBPACK_IMPORTED_MODULE_6__), _core_query__WEBPACK_IMPORTED_MODULE_7__), _core_quantum__WEBPACK_IMPORTED_MODULE_9__), {
|
|
1917
|
+
effect: _core_reactive__WEBPACK_IMPORTED_MODULE_0__.effect, Component: _core_component__WEBPACK_IMPORTED_MODULE_1__.MuComponent, defineComponent: _core_component__WEBPACK_IMPORTED_MODULE_1__.defineComponent, Router: _router_index__WEBPACK_IMPORTED_MODULE_3__.MuRouter, Store: _store_index__WEBPACK_IMPORTED_MODULE_4__.MuStore, Security: _security_sanitizer__WEBPACK_IMPORTED_MODULE_5__.Security }, _core_hooks__WEBPACK_IMPORTED_MODULE_6__), _core_query__WEBPACK_IMPORTED_MODULE_7__), _core_quantum__WEBPACK_IMPORTED_MODULE_9__), { render: _core_renderer__WEBPACK_IMPORTED_MODULE_2__.render,
|
|
1878
1918
|
// MULAN INSIGHT: Branded Logging
|
|
1879
1919
|
log: (msg, ...args) => {
|
|
1880
1920
|
console.log(`%c[MulanJS]%c ${msg}`, "color: #ff3e00; font-weight: bold; background: #222; padding: 2px 4px; border-radius: 3px;", "", ...args);
|
package/dist/mulan.js
CHANGED
|
@@ -86,7 +86,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
|
|
|
86
86
|
\******************************/
|
|
87
87
|
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
88
88
|
|
|
89
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hydrate: () => (/* binding */ hydrate),\n/* harmony export */ render: () => (/* binding */ render),\n/* harmony export */ renderToString: () => (/* binding */ renderToString),\n/* harmony export */ sanitize: () => (/* binding */ sanitize)\n/* harmony export */ });\nfunction render(template, container) {\n // Focus Preservation (The \"Mulan Glance\" Technique)\n let focusedId = null;\n let selectionStart = null;\n let selectionEnd = null;\n let preservedValue = null;\n if (document.activeElement && container.contains(document.activeElement)) {\n const el = document.activeElement;\n if (el.hasAttribute('data-mu-id')) {\n focusedId = el.getAttribute('data-mu-id');\n if (el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement) {\n selectionStart = el.selectionStart;\n selectionEnd = el.selectionEnd;\n preservedValue = el.value;\n }\n }\n }\n container.innerHTML = template;\n // Restore Focus and Value\n if (focusedId) {\n const el = container.querySelector(`[data-mu-id=\"${focusedId}\"]`);\n if (el) {\n // Restore value first to ensure cursor positioning works correctly\n if (preservedValue !== null && (el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement)) {\n el.value = preservedValue;\n }\n el.focus();\n if ((el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement) && selectionStart !== null) {\n try {\n el.setSelectionRange(selectionStart, selectionEnd);\n }\n catch (e) {\n // input types that don't support selection (e.g. number/email) might throw\n }\n }\n }\n }\n}\nfunction hydrate(template, container) {\n // In a string-based framework, hydration is often just \"take over\".\n // For now, we'll verify if the server content matches (simple check)\n // and then assume control. In a more advanced version, we'd attach listeners without re-rendering.\n if (container.innerHTML.trim() !== template.trim()) {\n console.warn('Hydration Mismatch: Server rendered content differs from Client.');\n container.innerHTML = template; // Fallback to full render\n }\n else {\n // console.log('Hydration Successful.');\n }\n // Future: Attach event listeners here if we had a mechanism for it.\n}\nfunction renderToString(template) {\n // SSR Function: returns the HTML string for the server to send.\n // Can include additional sanitization or metadata injection here.\n return template;\n}\nfunction sanitize(str) {\n // Check if we are in a browser environment\n if (typeof document !== 'undefined') {\n const temp = document.createElement('div');\n temp.textContent = str;\n return temp.innerHTML;\n }\n // Simple SSR fallback sanitizer (rudimentary)\n return str.replace(/&/g, \"&\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\");\n}\n\n\n//# sourceURL=webpack://Mulan/./src/core/renderer.ts?\n}");
|
|
89
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hydrate: () => (/* binding */ hydrate),\n/* harmony export */ render: () => (/* binding */ render),\n/* harmony export */ renderToString: () => (/* binding */ renderToString),\n/* harmony export */ sanitize: () => (/* binding */ sanitize)\n/* harmony export */ });\nfunction render(template, container) {\n // Focus Preservation (The \"Mulan Glance\" Technique)\n let focusedId = null;\n let selectionStart = null;\n let selectionEnd = null;\n let preservedValue = null;\n if (document.activeElement && container.contains(document.activeElement)) {\n const el = document.activeElement;\n if (el.hasAttribute('data-mu-id')) {\n focusedId = el.getAttribute('data-mu-id');\n if (el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement) {\n selectionStart = el.selectionStart;\n selectionEnd = el.selectionEnd;\n preservedValue = el.value;\n }\n }\n }\n // [Anima] 1. Pre-Update: Snapshot positions of animated elements\n const animationSnapshots = new Map();\n // Only query if we might have animations to save perf\n if (template.includes('mu-animate')) {\n const animatedEls = container.querySelectorAll('[mu-animate]');\n animatedEls.forEach(el => {\n const key = el.getAttribute('mu-key') || el.id;\n if (key) {\n animationSnapshots.set(key, el.getBoundingClientRect());\n }\n });\n }\n container.innerHTML = template;\n // Restore Focus and Value\n if (focusedId) {\n const el = container.querySelector(`[data-mu-id=\"${focusedId}\"]`);\n if (el) {\n // Restore value first to ensure cursor positioning works correctly\n if (preservedValue !== null && (el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement)) {\n el.value = preservedValue;\n }\n el.focus();\n if ((el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement) && selectionStart !== null) {\n try {\n el.setSelectionRange(selectionStart, selectionEnd);\n }\n catch (e) {\n // input types that don't support selection (e.g. number/email) might throw\n }\n }\n }\n }\n // [Anima] 2. Post-Update: FLIP (First, Last, Invert, Play)\n if (animationSnapshots.size > 0) {\n const newAnimatedEls = container.querySelectorAll('[mu-animate]');\n newAnimatedEls.forEach(el => {\n const key = el.getAttribute('mu-key') || el.id;\n if (key && animationSnapshots.has(key)) {\n const oldRect = animationSnapshots.get(key);\n const newRect = el.getBoundingClientRect();\n const dx = oldRect.left - newRect.left;\n const dy = oldRect.top - newRect.top;\n // Only animate if moved\n if (dx !== 0 || dy !== 0) {\n const htmlEl = el;\n // INVERT: Move it back to where it was instantly\n htmlEl.style.transform = `translate(${dx}px, ${dy}px)`;\n htmlEl.style.transition = 'none';\n // PLAY: Animate to zero (new position)\n requestAnimationFrame(() => {\n // Force reflow\n // void htmlEl.offsetWidth; \n htmlEl.style.transition = 'transform 500ms cubic-bezier(0.25, 0.8, 0.25, 1)';\n htmlEl.style.transform = '';\n });\n }\n }\n });\n }\n}\nfunction hydrate(template, container) {\n // In a string-based framework, hydration is often just \"take over\".\n // For now, we'll verify if the server content matches (simple check)\n // and then assume control. In a more advanced version, we'd attach listeners without re-rendering.\n if (container.innerHTML.trim() !== template.trim()) {\n console.warn('Hydration Mismatch: Server rendered content differs from Client.');\n container.innerHTML = template; // Fallback to full render\n }\n else {\n // console.log('Hydration Successful.');\n }\n // Future: Attach event listeners here if we had a mechanism for it.\n}\nfunction renderToString(template) {\n // SSR Function: returns the HTML string for the server to send.\n // Can include additional sanitization or metadata injection here.\n return template;\n}\nfunction sanitize(str) {\n // Check if we are in a browser environment\n if (typeof document !== 'undefined') {\n const temp = document.createElement('div');\n temp.textContent = str;\n return temp.innerHTML;\n }\n // Simple SSR fallback sanitizer (rudimentary)\n return str.replace(/&/g, \"&\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\");\n}\n\n\n//# sourceURL=webpack://Mulan/./src/core/renderer.ts?\n}");
|
|
90
90
|
|
|
91
91
|
/***/ },
|
|
92
92
|
|
|
@@ -106,7 +106,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
|
|
|
106
106
|
\**********************/
|
|
107
107
|
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
108
108
|
|
|
109
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Component: () => (/* reexport safe */ _core_component__WEBPACK_IMPORTED_MODULE_1__.MuComponent),\n/* harmony export */ MuBlochSphereElement: () => (/* reexport safe */ _components_bloch_sphere__WEBPACK_IMPORTED_MODULE_10__.MuBlochSphereElement),\n/* harmony export */ MuComponent: () => (/* reexport safe */ _core_component__WEBPACK_IMPORTED_MODULE_1__.MuComponent),\n/* harmony export */ MuRouter: () => (/* reexport safe */ _router_index__WEBPACK_IMPORTED_MODULE_3__.MuRouter),\n/* harmony export */ MuStore: () => (/* reexport safe */ _store_index__WEBPACK_IMPORTED_MODULE_4__.MuStore),\n/* harmony export */ Router: () => (/* reexport safe */ _router_index__WEBPACK_IMPORTED_MODULE_3__.MuRouter),\n/* harmony export */ Security: () => (/* reexport safe */ _security_sanitizer__WEBPACK_IMPORTED_MODULE_5__.Security),\n/* harmony export */ Signal: () => (/* reexport safe */ _core_reactive__WEBPACK_IMPORTED_MODULE_0__.Signal),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ defineComponent: () => (/* reexport safe */ _core_component__WEBPACK_IMPORTED_MODULE_1__.defineComponent),\n/* harmony export */ effect: () => (/* reexport safe */ _core_reactive__WEBPACK_IMPORTED_MODULE_0__.effect),\n/* harmony export */ getCurrentInstance: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.getCurrentInstance),\n/* harmony export */ hydrate: () => (/* reexport safe */ _core_renderer__WEBPACK_IMPORTED_MODULE_2__.hydrate),\n/* harmony export */ muEffect: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.muEffect),\n/* harmony export */ muEntangle: () => (/* reexport safe */ _core_quantum__WEBPACK_IMPORTED_MODULE_9__.muEntangle),\n/* harmony export */ muGate: () => (/* reexport safe */ _core_quantum__WEBPACK_IMPORTED_MODULE_9__.muGate),\n/* harmony export */ muGeom: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.muGeom),\n/* harmony export */ muMeasure: () => (/* reexport safe */ _core_quantum__WEBPACK_IMPORTED_MODULE_9__.muMeasure),\n/* harmony export */ muMemo: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.muMemo),\n/* harmony export */ muPulse: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.muPulse),\n/* harmony export */ muQubit: () => (/* reexport safe */ _core_quantum__WEBPACK_IMPORTED_MODULE_9__.muQubit),\n/* harmony export */ muRegister: () => (/* reexport safe */ _core_quantum__WEBPACK_IMPORTED_MODULE_9__.muRegister),\n/* harmony export */ muSearch: () => (/* reexport safe */ _core_quantum__WEBPACK_IMPORTED_MODULE_9__.muSearch),\n/* harmony export */ muState: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.muState),\n/* harmony export */ muTeleport: () => (/* reexport safe */ _core_quantum__WEBPACK_IMPORTED_MODULE_9__.muTeleport),\n/* harmony export */ muVault: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.muVault),\n/* harmony export */ onMuDestroy: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.onMuDestroy),\n/* harmony export */ onMuIdle: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.onMuIdle),\n/* harmony export */ onMuInit: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.onMuInit),\n/* harmony export */ onMuMount: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.onMuMount),\n/* harmony export */ onMuResume: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.onMuResume),\n/* harmony export */ onMuShake: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.onMuShake),\n/* harmony export */ onMuVoice: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.onMuVoice),\n/* harmony export */ persistent: () => (/* reexport safe */ _core_vault__WEBPACK_IMPORTED_MODULE_8__.persistent),\n/* harmony export */ reactive: () => (/* reexport safe */ _core_reactive__WEBPACK_IMPORTED_MODULE_0__.reactive),\n/* harmony export */ ref: () => (/* reexport safe */ _core_reactive__WEBPACK_IMPORTED_MODULE_0__.ref),\n/* harmony export */ render: () => (/* reexport safe */ _core_renderer__WEBPACK_IMPORTED_MODULE_2__.render),\n/* harmony export */ renderToString: () => (/* reexport safe */ _core_renderer__WEBPACK_IMPORTED_MODULE_2__.renderToString),\n/* harmony export */ sanitize: () => (/* reexport safe */ _core_renderer__WEBPACK_IMPORTED_MODULE_2__.sanitize),\n/* harmony export */ setCurrentInstance: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.setCurrentInstance),\n/* harmony export */ useMutation: () => (/* reexport safe */ _core_query__WEBPACK_IMPORTED_MODULE_7__.useMutation),\n/* harmony export */ useQuery: () => (/* reexport safe */ _core_query__WEBPACK_IMPORTED_MODULE_7__.useQuery)\n/* harmony export */ });\n/* harmony import */ var _core_reactive__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./core/reactive */ \"./src/core/reactive.ts\");\n/* harmony import */ var _core_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./core/component */ \"./src/core/component.ts\");\n/* harmony import */ var _core_renderer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./core/renderer */ \"./src/core/renderer.ts\");\n/* harmony import */ var _router_index__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./router/index */ \"./src/router/index.ts\");\n/* harmony import */ var _store_index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./store/index */ \"./src/store/index.ts\");\n/* harmony import */ var _security_sanitizer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./security/sanitizer */ \"./src/security/sanitizer.ts\");\n/* harmony import */ var _core_hooks__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./core/hooks */ \"./src/core/hooks.ts\");\n/* harmony import */ var _core_query__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./core/query */ \"./src/core/query.ts\");\n/* harmony import */ var _core_vault__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./core/vault */ \"./src/core/vault.ts\");\n/* harmony import */ var _core_quantum__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./core/quantum */ \"./src/core/quantum.ts\");\n/* harmony import */ var _components_bloch_sphere__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./components/bloch-sphere */ \"./src/components/bloch-sphere.ts\");\n\n\n\n\n\n\n\n\n\n\n\n// Global Mulan Object for non-module usage\n\n\n\n\n\n\n\n\nconst Mulan = Object.assign(Object.assign(Object.assign(Object.assign({ reactive: _core_reactive__WEBPACK_IMPORTED_MODULE_0__.reactive,\n effect: _core_reactive__WEBPACK_IMPORTED_MODULE_0__.effect, Component: _core_component__WEBPACK_IMPORTED_MODULE_1__.MuComponent, defineComponent: _core_component__WEBPACK_IMPORTED_MODULE_1__.defineComponent, Router: _router_index__WEBPACK_IMPORTED_MODULE_3__.MuRouter, Store: _store_index__WEBPACK_IMPORTED_MODULE_4__.MuStore, Security: _security_sanitizer__WEBPACK_IMPORTED_MODULE_5__.Security }, _core_hooks__WEBPACK_IMPORTED_MODULE_6__), _core_query__WEBPACK_IMPORTED_MODULE_7__), _core_quantum__WEBPACK_IMPORTED_MODULE_9__), { \n // MULAN INSIGHT: Branded Logging\n log: (msg, ...args) => {\n console.log(`%c[MulanJS]%c ${msg}`, \"color: #ff3e00; font-weight: bold; background: #222; padding: 2px 4px; border-radius: 3px;\", \"\", ...args);\n }, warn: (msg, ...args) => {\n console.warn(`%c[MulanJS]%c ${msg}`, \"color: #ffcc00; font-weight: bold; background: #222; padding: 2px 4px; border-radius: 3px;\", \"\", ...args);\n }, error: (msg, ...args) => {\n console.error(`%c[MulanJS]%c ${msg}`, \"color: #ff0000; font-weight: bold; background: #222; padding: 2px 4px; border-radius: 3px;\", \"\", ...args);\n } });\n// Security: Freeze the object to prevent runtime tampering\nObject.freeze(Mulan);\nObject.freeze(Mulan.Security);\n// MULAN INSIGHT: Initialize Global Registry\nif (typeof window !== 'undefined') {\n window.__MULAN_INSIGHT__ = window.__MULAN_INSIGHT__ || { components: new Map() };\n // MULAN INSIGHT: HMR Support\n window.__MULAN_REFRESH__ = () => {\n var _a;\n const components = (_a = window.__MULAN_INSIGHT__) === null || _a === void 0 ? void 0 : _a.components;\n if (components) {\n components.forEach((comp) => {\n if (comp && typeof comp.update === 'function') {\n // Force refresh\n comp.update();\n }\n });\n }\n };\n}\nwindow.Mulan = Mulan;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Mulan);\n\n\n//# sourceURL=webpack://Mulan/./src/index.ts?\n}");
|
|
109
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Component: () => (/* reexport safe */ _core_component__WEBPACK_IMPORTED_MODULE_1__.MuComponent),\n/* harmony export */ MuBlochSphereElement: () => (/* reexport safe */ _components_bloch_sphere__WEBPACK_IMPORTED_MODULE_10__.MuBlochSphereElement),\n/* harmony export */ MuComponent: () => (/* reexport safe */ _core_component__WEBPACK_IMPORTED_MODULE_1__.MuComponent),\n/* harmony export */ MuRouter: () => (/* reexport safe */ _router_index__WEBPACK_IMPORTED_MODULE_3__.MuRouter),\n/* harmony export */ MuStore: () => (/* reexport safe */ _store_index__WEBPACK_IMPORTED_MODULE_4__.MuStore),\n/* harmony export */ Router: () => (/* reexport safe */ _router_index__WEBPACK_IMPORTED_MODULE_3__.MuRouter),\n/* harmony export */ Security: () => (/* reexport safe */ _security_sanitizer__WEBPACK_IMPORTED_MODULE_5__.Security),\n/* harmony export */ Signal: () => (/* reexport safe */ _core_reactive__WEBPACK_IMPORTED_MODULE_0__.Signal),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ defineComponent: () => (/* reexport safe */ _core_component__WEBPACK_IMPORTED_MODULE_1__.defineComponent),\n/* harmony export */ effect: () => (/* reexport safe */ _core_reactive__WEBPACK_IMPORTED_MODULE_0__.effect),\n/* harmony export */ getCurrentInstance: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.getCurrentInstance),\n/* harmony export */ hydrate: () => (/* reexport safe */ _core_renderer__WEBPACK_IMPORTED_MODULE_2__.hydrate),\n/* harmony export */ muEffect: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.muEffect),\n/* harmony export */ muEntangle: () => (/* reexport safe */ _core_quantum__WEBPACK_IMPORTED_MODULE_9__.muEntangle),\n/* harmony export */ muGate: () => (/* reexport safe */ _core_quantum__WEBPACK_IMPORTED_MODULE_9__.muGate),\n/* harmony export */ muGeom: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.muGeom),\n/* harmony export */ muMeasure: () => (/* reexport safe */ _core_quantum__WEBPACK_IMPORTED_MODULE_9__.muMeasure),\n/* harmony export */ muMemo: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.muMemo),\n/* harmony export */ muPulse: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.muPulse),\n/* harmony export */ muQubit: () => (/* reexport safe */ _core_quantum__WEBPACK_IMPORTED_MODULE_9__.muQubit),\n/* harmony export */ muRegister: () => (/* reexport safe */ _core_quantum__WEBPACK_IMPORTED_MODULE_9__.muRegister),\n/* harmony export */ muSearch: () => (/* reexport safe */ _core_quantum__WEBPACK_IMPORTED_MODULE_9__.muSearch),\n/* harmony export */ muState: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.muState),\n/* harmony export */ muTeleport: () => (/* reexport safe */ _core_quantum__WEBPACK_IMPORTED_MODULE_9__.muTeleport),\n/* harmony export */ muVault: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.muVault),\n/* harmony export */ onMuDestroy: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.onMuDestroy),\n/* harmony export */ onMuIdle: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.onMuIdle),\n/* harmony export */ onMuInit: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.onMuInit),\n/* harmony export */ onMuMount: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.onMuMount),\n/* harmony export */ onMuResume: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.onMuResume),\n/* harmony export */ onMuShake: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.onMuShake),\n/* harmony export */ onMuVoice: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.onMuVoice),\n/* harmony export */ persistent: () => (/* reexport safe */ _core_vault__WEBPACK_IMPORTED_MODULE_8__.persistent),\n/* harmony export */ reactive: () => (/* reexport safe */ _core_reactive__WEBPACK_IMPORTED_MODULE_0__.reactive),\n/* harmony export */ ref: () => (/* reexport safe */ _core_reactive__WEBPACK_IMPORTED_MODULE_0__.ref),\n/* harmony export */ render: () => (/* reexport safe */ _core_renderer__WEBPACK_IMPORTED_MODULE_2__.render),\n/* harmony export */ renderToString: () => (/* reexport safe */ _core_renderer__WEBPACK_IMPORTED_MODULE_2__.renderToString),\n/* harmony export */ sanitize: () => (/* reexport safe */ _core_renderer__WEBPACK_IMPORTED_MODULE_2__.sanitize),\n/* harmony export */ setCurrentInstance: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.setCurrentInstance),\n/* harmony export */ useMutation: () => (/* reexport safe */ _core_query__WEBPACK_IMPORTED_MODULE_7__.useMutation),\n/* harmony export */ useQuery: () => (/* reexport safe */ _core_query__WEBPACK_IMPORTED_MODULE_7__.useQuery)\n/* harmony export */ });\n/* harmony import */ var _core_reactive__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./core/reactive */ \"./src/core/reactive.ts\");\n/* harmony import */ var _core_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./core/component */ \"./src/core/component.ts\");\n/* harmony import */ var _core_renderer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./core/renderer */ \"./src/core/renderer.ts\");\n/* harmony import */ var _router_index__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./router/index */ \"./src/router/index.ts\");\n/* harmony import */ var _store_index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./store/index */ \"./src/store/index.ts\");\n/* harmony import */ var _security_sanitizer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./security/sanitizer */ \"./src/security/sanitizer.ts\");\n/* harmony import */ var _core_hooks__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./core/hooks */ \"./src/core/hooks.ts\");\n/* harmony import */ var _core_query__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./core/query */ \"./src/core/query.ts\");\n/* harmony import */ var _core_vault__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./core/vault */ \"./src/core/vault.ts\");\n/* harmony import */ var _core_quantum__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./core/quantum */ \"./src/core/quantum.ts\");\n/* harmony import */ var _components_bloch_sphere__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./components/bloch-sphere */ \"./src/components/bloch-sphere.ts\");\n\n\n\n\n\n\n\n\n\n\n\n// Global Mulan Object for non-module usage\n\n\n\n\n\n\n\n\n\nconst Mulan = Object.assign(Object.assign(Object.assign(Object.assign({ reactive: _core_reactive__WEBPACK_IMPORTED_MODULE_0__.reactive,\n effect: _core_reactive__WEBPACK_IMPORTED_MODULE_0__.effect, Component: _core_component__WEBPACK_IMPORTED_MODULE_1__.MuComponent, defineComponent: _core_component__WEBPACK_IMPORTED_MODULE_1__.defineComponent, Router: _router_index__WEBPACK_IMPORTED_MODULE_3__.MuRouter, Store: _store_index__WEBPACK_IMPORTED_MODULE_4__.MuStore, Security: _security_sanitizer__WEBPACK_IMPORTED_MODULE_5__.Security }, _core_hooks__WEBPACK_IMPORTED_MODULE_6__), _core_query__WEBPACK_IMPORTED_MODULE_7__), _core_quantum__WEBPACK_IMPORTED_MODULE_9__), { render: _core_renderer__WEBPACK_IMPORTED_MODULE_2__.render, \n // MULAN INSIGHT: Branded Logging\n log: (msg, ...args) => {\n console.log(`%c[MulanJS]%c ${msg}`, \"color: #ff3e00; font-weight: bold; background: #222; padding: 2px 4px; border-radius: 3px;\", \"\", ...args);\n }, warn: (msg, ...args) => {\n console.warn(`%c[MulanJS]%c ${msg}`, \"color: #ffcc00; font-weight: bold; background: #222; padding: 2px 4px; border-radius: 3px;\", \"\", ...args);\n }, error: (msg, ...args) => {\n console.error(`%c[MulanJS]%c ${msg}`, \"color: #ff0000; font-weight: bold; background: #222; padding: 2px 4px; border-radius: 3px;\", \"\", ...args);\n } });\n// Security: Freeze the object to prevent runtime tampering\nObject.freeze(Mulan);\nObject.freeze(Mulan.Security);\n// MULAN INSIGHT: Initialize Global Registry\nif (typeof window !== 'undefined') {\n window.__MULAN_INSIGHT__ = window.__MULAN_INSIGHT__ || { components: new Map() };\n // MULAN INSIGHT: HMR Support\n window.__MULAN_REFRESH__ = () => {\n var _a;\n const components = (_a = window.__MULAN_INSIGHT__) === null || _a === void 0 ? void 0 : _a.components;\n if (components) {\n components.forEach((comp) => {\n if (comp && typeof comp.update === 'function') {\n // Force refresh\n comp.update();\n }\n });\n }\n };\n}\nwindow.Mulan = Mulan;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Mulan);\n\n\n//# sourceURL=webpack://Mulan/./src/index.ts?\n}");
|
|
110
110
|
|
|
111
111
|
/***/ },
|
|
112
112
|
|
package/dist/types/index.d.ts
CHANGED
|
@@ -14,8 +14,10 @@ import { MuComponent, defineComponent } from './core/component';
|
|
|
14
14
|
import { MuRouter } from './router/index';
|
|
15
15
|
import { MuStore } from './store/index';
|
|
16
16
|
import { Security } from './security/sanitizer';
|
|
17
|
+
import { render } from './core/renderer';
|
|
17
18
|
import * as Quantum from './core/quantum';
|
|
18
19
|
declare const Mulan: {
|
|
20
|
+
render: typeof render;
|
|
19
21
|
log: (msg: string, ...args: any[]) => void;
|
|
20
22
|
warn: (msg: string, ...args: any[]) => void;
|
|
21
23
|
error: (msg: string, ...args: any[]) => void;
|
package/package.json
CHANGED