@mulanjs/mulanjs 1.0.1-dev.20260219221500 → 1.0.1-dev.20260220121828

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/mulan.esm.js CHANGED
@@ -821,16 +821,27 @@ function muVault(key, initial, options = {}) {
821
821
 
822
822
  __webpack_require__.r(__webpack_exports__);
823
823
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
824
+ /* harmony export */ activeControls: () => (/* binding */ activeControls),
825
+ /* harmony export */ muControl: () => (/* binding */ muControl),
824
826
  /* harmony export */ muEntangle: () => (/* binding */ muEntangle),
825
827
  /* harmony export */ muGate: () => (/* binding */ muGate),
826
828
  /* harmony export */ muMeasure: () => (/* binding */ muMeasure),
829
+ /* harmony export */ muParallel: () => (/* binding */ muParallel),
827
830
  /* harmony export */ muQubit: () => (/* binding */ muQubit),
828
831
  /* harmony export */ muRegister: () => (/* binding */ muRegister),
829
832
  /* harmony export */ muSearch: () => (/* binding */ muSearch),
833
+ /* harmony export */ muSwitch: () => (/* binding */ muSwitch),
830
834
  /* harmony export */ muTeleport: () => (/* binding */ muTeleport)
831
835
  /* harmony export */ });
832
836
  /* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hooks */ "./src/core/hooks.ts");
833
837
 
838
+ /**
839
+ * Mulan Quantum (ASTR-Q+) Core
840
+ * Advanced Simulation Engine for multi-qubit registers and entanglement.
841
+ */
842
+ // -- GLOBAL CONTEXT FOR QUANTUM CONTROL --
843
+ // Defined at top to ensure visibility for muGate
844
+ let activeControls = [];
834
845
  /**
835
846
  * Creates a quantum register of size n.
836
847
  * State vector will have 2^n amplitudes.
@@ -886,14 +897,14 @@ function muGate(reg, type, target = 0, control) {
886
897
  const n = state.size;
887
898
  const amplitudes = state.amplitudes;
888
899
  const newAmps = amplitudes.map(a => (Object.assign({}, a)));
900
+ // Prepare Effective Control (Explicit Arguments + Global Context)
901
+ const effectiveControl = [...(control === undefined ? [] : (Array.isArray(control) ? control : [control])), ...activeControls];
889
902
  // Helper: Check if all control bits are 1
890
903
  const checkControl = (index, ctrl) => {
891
- if (ctrl === undefined)
904
+ if (ctrl === undefined || (Array.isArray(ctrl) && ctrl.length === 0))
892
905
  return true;
893
- if (typeof ctrl === 'number') {
894
- return ((index >> ctrl) & 1) === 1;
895
- }
896
- return ctrl.every(c => ((index >> c) & 1) === 1);
906
+ const ctrls = Array.isArray(ctrl) ? ctrl : [ctrl];
907
+ return ctrls.every(c => ((index >> c) & 1) === 1);
897
908
  };
898
909
  // SWAP Gate (Unique case: affects 2 targets)
899
910
  if (type === 'SWAP') {
@@ -901,6 +912,9 @@ function muGate(reg, type, target = 0, control) {
901
912
  const t2 = control; // SWAP uses control arg as second target
902
913
  // Iterate only half to avoid double swapping
903
914
  for (let i = 0; i < amplitudes.length; i++) {
915
+ // Check active controls for SWAP too
916
+ if (activeControls.length > 0 && !checkControl(i, activeControls))
917
+ continue;
904
918
  const bit1 = (i >> t1) & 1;
905
919
  const bit2 = (i >> t2) & 1;
906
920
  if (bit1 !== bit2) {
@@ -925,7 +939,7 @@ function muGate(reg, type, target = 0, control) {
925
939
  if (processed.has(i))
926
940
  continue;
927
941
  // Check Controls first
928
- if (!checkControl(i, control))
942
+ if (!checkControl(i, effectiveControl))
929
943
  continue;
930
944
  const targetBit = (i >> target) & 1;
931
945
  const pairedIndex = targetBit ? (i & ~(1 << target)) : (i | (1 << target));
@@ -946,7 +960,7 @@ function muGate(reg, type, target = 0, control) {
946
960
  else if (type === 'X' || type === 'CNOT') {
947
961
  // CNOT is just Controlled-X
948
962
  for (let i = 0; i < amplitudes.length; i++) {
949
- if (!checkControl(i, control))
963
+ if (!checkControl(i, effectiveControl))
950
964
  continue;
951
965
  const targetBit = (i >> target) & 1;
952
966
  const pairedIndex = targetBit ? (i & ~(1 << target)) : (i | (1 << target));
@@ -960,7 +974,7 @@ function muGate(reg, type, target = 0, control) {
960
974
  else if (type === 'Z' || type === 'CZ') {
961
975
  // Z and CZ are Phase Flips
962
976
  for (let i = 0; i < amplitudes.length; i++) {
963
- if (!checkControl(i, control))
977
+ if (!checkControl(i, effectiveControl))
964
978
  continue;
965
979
  const targetBit = (i >> target) & 1;
966
980
  // Z Gate acts on |1>
@@ -972,7 +986,7 @@ function muGate(reg, type, target = 0, control) {
972
986
  else if (type === 'Y') {
973
987
  // Y: |0> -> i|1>, |1> -> -i|0>
974
988
  for (let i = 0; i < amplitudes.length; i++) {
975
- if (!checkControl(i, control))
989
+ if (!checkControl(i, effectiveControl))
976
990
  continue;
977
991
  const targetBit = (i >> target) & 1;
978
992
  const pairedIndex = targetBit ? (i & ~(1 << target)) : (i | (1 << target));
@@ -1114,6 +1128,61 @@ function muMeasure(reg, target = 0) {
1114
1128
  updateState(reg, Object.assign(Object.assign({}, state), { amplitudes: newAmps }));
1115
1129
  return result;
1116
1130
  }
1131
+ /**
1132
+ * Quantum Loop: Parallel Execution
1133
+ * Applies a gate to multiple qubits "simultaneously" (in simulation steps).
1134
+ * Ideal for initialization (Hadamard Transform) or global operations.
1135
+ * @param reg Quantum Register
1136
+ * @param qubits Array of qubit indices
1137
+ * @param gate Gate type to apply (e.g. 'H', 'X')
1138
+ */
1139
+ function muParallel(reg, qubits, gate) {
1140
+ if (gate === 'SWAP') {
1141
+ throw new Error("SWAP cannot be applied in parallel (requires pairs).");
1142
+ }
1143
+ // In a real quantum computer, these happen at t=0.
1144
+ // Here, we loop, but logical time is constant.
1145
+ qubits.forEach(q => muGate(reg, gate, q));
1146
+ }
1147
+ /**
1148
+ * Applies a block of operations controlled by specific qubits.
1149
+ * Enables "Quantum If/Else".
1150
+ */
1151
+ function muControl(reg, controlQubit, inverse, block) {
1152
+ // 1. Setup Context
1153
+ if (inverse) {
1154
+ muGate(reg, 'X', controlQubit); // Flip 0 to 1 to activate
1155
+ }
1156
+ activeControls.push(controlQubit);
1157
+ try {
1158
+ block();
1159
+ }
1160
+ finally {
1161
+ activeControls.pop();
1162
+ // Uncompute (Restore 0)
1163
+ if (inverse) {
1164
+ muGate(reg, 'X', controlQubit);
1165
+ }
1166
+ }
1167
+ }
1168
+ /**
1169
+ * Quantum Switch: conditional Logic on Superposition
1170
+ * Executes different logic branches based on the state of control qubits.
1171
+ * Because the register can be in a superposition of states (e.g. |0> + |1>),
1172
+ * MULTIPLE branches can execute effectively simultaneously on different subspaces.
1173
+ *
1174
+ * @param reg Quantum Register
1175
+ * @param controlQubit The qubit controlling the switch (Single control for v1)
1176
+ * @param cases Object mapping state (0 or 1) to a function executing quantum operations
1177
+ */
1178
+ function muSwitch(reg, controlQubit, cases) {
1179
+ if (cases[0]) {
1180
+ muControl(reg, controlQubit, true, cases[0]);
1181
+ }
1182
+ if (cases[1]) {
1183
+ muControl(reg, controlQubit, false, cases[1]);
1184
+ }
1185
+ }
1117
1186
 
1118
1187
 
1119
1188
  /***/ },
@@ -1167,7 +1236,12 @@ function useQuery(queryFn, options = { enabled: true }) {
1167
1236
  execute();
1168
1237
  });
1169
1238
  }
1170
- return Object.assign(Object.assign({}, state), { refetch: execute });
1239
+ return {
1240
+ get data() { return state.data; },
1241
+ get isLoading() { return state.isLoading; },
1242
+ get error() { return state.error; },
1243
+ refetch: execute
1244
+ };
1171
1245
  }
1172
1246
  function useMutation(mutationFn) {
1173
1247
  const state = (0,_reactive__WEBPACK_IMPORTED_MODULE_0__.reactive)({
@@ -1191,7 +1265,12 @@ function useMutation(mutationFn) {
1191
1265
  state.isLoading = false;
1192
1266
  }
1193
1267
  });
1194
- return Object.assign(Object.assign({}, state), { mutate });
1268
+ return {
1269
+ get data() { return state.data; },
1270
+ get isLoading() { return state.isLoading; },
1271
+ get error() { return state.error; },
1272
+ mutate
1273
+ };
1195
1274
  }
1196
1275
 
1197
1276
 
@@ -1443,6 +1522,113 @@ function sanitize(str) {
1443
1522
  }
1444
1523
 
1445
1524
 
1525
+ /***/ },
1526
+
1527
+ /***/ "./src/core/surge.ts"
1528
+ /*!***************************!*\
1529
+ !*** ./src/core/surge.ts ***!
1530
+ \***************************/
1531
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1532
+
1533
+ __webpack_require__.r(__webpack_exports__);
1534
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1535
+ /* harmony export */ muBurst: () => (/* binding */ muBurst),
1536
+ /* harmony export */ muSurge: () => (/* binding */ muSurge)
1537
+ /* harmony export */ });
1538
+ /**
1539
+ * muBurst - Adaptive Non-blocking Iterator
1540
+ * Processes large arrays in batches within a frame budget (typically 8-16ms)
1541
+ * to keep the UI responsive while executing at near-native loop speeds.
1542
+ */
1543
+ function muBurst(array, callback, options = {}) {
1544
+ const { chunkSize = 1000, timeout = 8, onProgress } = options;
1545
+ return new Promise((resolve) => {
1546
+ let index = 0;
1547
+ const total = array.length;
1548
+ function process() {
1549
+ const start = performance.now();
1550
+ // Tight loop for high-speed processing
1551
+ while (index < total && (performance.now() - start) < timeout) {
1552
+ // Process in smaller bursts to allow more frequent time checks if needed
1553
+ const endBurst = Math.min(index + chunkSize, total);
1554
+ for (; index < endBurst; index++) {
1555
+ callback(array[index], index);
1556
+ }
1557
+ }
1558
+ if (onProgress) {
1559
+ onProgress((index / total) * 100);
1560
+ }
1561
+ if (index < total) {
1562
+ requestAnimationFrame(process);
1563
+ }
1564
+ else {
1565
+ resolve();
1566
+ }
1567
+ }
1568
+ process();
1569
+ });
1570
+ }
1571
+ /**
1572
+ * muSurge - Truly Parallel Execution
1573
+ * Distributes work across CPU cores using Web Workers.
1574
+ * Logic must be serializable.
1575
+ */
1576
+ function muSurge(array, taskFn, onProgress) {
1577
+ const n = navigator.hardwareConcurrency || 4;
1578
+ const chunkSize = Math.ceil(array.length / n);
1579
+ const results = new Array(array.length);
1580
+ let completedChunks = 0;
1581
+ let completedItems = 0;
1582
+ // Convert function to string if it isn't already
1583
+ const fnStr = typeof taskFn === 'function' ? taskFn.toString() : taskFn;
1584
+ const workerCode = `
1585
+ const taskFn = ${fnStr};
1586
+ self.onmessage = function(e) {
1587
+ const { chunk, startIndex } = e.data;
1588
+ try {
1589
+ const results = chunk.map(taskFn);
1590
+ self.postMessage({ results, startIndex });
1591
+ } catch (err) {
1592
+ self.postMessage({ error: err.message, startIndex });
1593
+ }
1594
+ };
1595
+ `;
1596
+ const blob = new Blob([workerCode], { type: 'application/javascript' });
1597
+ const workerUrl = URL.createObjectURL(blob);
1598
+ return new Promise((resolve) => {
1599
+ if (array.length === 0)
1600
+ return resolve([]);
1601
+ for (let i = 0; i < n; i++) {
1602
+ const start = i * chunkSize;
1603
+ const end = Math.min(start + chunkSize, array.length);
1604
+ if (start >= end) {
1605
+ completedChunks++;
1606
+ continue;
1607
+ }
1608
+ const chunk = array.slice(start, end);
1609
+ const worker = new Worker(workerUrl);
1610
+ worker.onmessage = (e) => {
1611
+ const { results: chunkResults, startIndex } = e.data;
1612
+ // Merge results back into main array
1613
+ for (let j = 0; j < chunkResults.length; j++) {
1614
+ results[startIndex + j] = chunkResults[j];
1615
+ }
1616
+ completedChunks++;
1617
+ completedItems += chunkResults.length;
1618
+ if (onProgress)
1619
+ onProgress((completedItems / array.length) * 100);
1620
+ worker.terminate();
1621
+ if (completedChunks === n) {
1622
+ URL.revokeObjectURL(workerUrl);
1623
+ resolve(results);
1624
+ }
1625
+ };
1626
+ worker.postMessage({ chunk, startIndex: start, fnStr });
1627
+ }
1628
+ });
1629
+ }
1630
+
1631
+
1446
1632
  /***/ },
1447
1633
 
1448
1634
  /***/ "./src/core/vault.ts"
@@ -1459,25 +1645,8 @@ __webpack_require__.r(__webpack_exports__);
1459
1645
  /* harmony import */ var _reactive__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reactive */ "./src/core/reactive.ts");
1460
1646
 
1461
1647
 
1462
- const MULAN_SECRET = 'b3ast_mulan_s3cur1ty_k3y';
1463
- function beastXOR(str) {
1464
- let result = '';
1465
- for (let i = 0; i < str.length; i++) {
1466
- result += String.fromCharCode(str.charCodeAt(i) ^ MULAN_SECRET.charCodeAt(i % MULAN_SECRET.length));
1467
- }
1468
- return btoa(result);
1469
- }
1470
- function beastDecode(encoded) {
1471
- const str = atob(encoded);
1472
- let result = '';
1473
- for (let i = 0; i < str.length; i++) {
1474
- result += String.fromCharCode(str.charCodeAt(i) ^ MULAN_SECRET.charCodeAt(i % MULAN_SECRET.length));
1475
- }
1476
- return result;
1477
- }
1478
1648
  /**
1479
1649
  * Mulan Vault: The World's First Native Persistent State Primitive.
1480
- * Now fortified with Iron Fortress Obfuscation.
1481
1650
  */
1482
1651
  function persistent(key, initialValue, options = {}) {
1483
1652
  const storage = options.storage || window.localStorage;
@@ -1486,11 +1655,10 @@ function persistent(key, initialValue, options = {}) {
1486
1655
  let startVal = initialValue;
1487
1656
  if (stored) {
1488
1657
  try {
1489
- const raw = options.encrypt ? beastDecode(stored) : stored;
1490
- startVal = JSON.parse(raw);
1658
+ startVal = JSON.parse(stored);
1491
1659
  }
1492
1660
  catch (e) {
1493
- console.warn(`[Iron Fortress] Corrupt persistent data for key "${key}", resetting.`);
1661
+ console.warn(`[Mulan Vault] Corrupt persistent data for key "${key}", resetting.`);
1494
1662
  }
1495
1663
  }
1496
1664
  // 2. Create Reactive State (Follow muState pattern for consistency)
@@ -1500,20 +1668,19 @@ function persistent(key, initialValue, options = {}) {
1500
1668
  (0,_hooks__WEBPACK_IMPORTED_MODULE_0__.muEffect)(() => {
1501
1669
  try {
1502
1670
  const payload = isObject ? state : state.value;
1503
- const raw = JSON.stringify(payload);
1504
- const toSave = options.encrypt ? beastXOR(raw) : raw;
1671
+ const toSave = JSON.stringify(payload);
1672
+ // Non-obfuscated persistence to satisfy security audits
1505
1673
  storage.setItem(key, toSave);
1506
1674
  }
1507
1675
  catch (e) {
1508
- console.error(`[Iron Fortress] Failed to save key "${key}"`);
1676
+ console.error(`[Mulan Vault] Failed to save key "${key}"`);
1509
1677
  }
1510
1678
  });
1511
1679
  // 4. Sync across Tabs
1512
1680
  const sync = (e) => {
1513
1681
  if (e.key === key && e.newValue) {
1514
1682
  try {
1515
- const raw = options.encrypt ? beastDecode(e.newValue) : e.newValue;
1516
- const newVal = JSON.parse(raw);
1683
+ const newVal = JSON.parse(e.newValue);
1517
1684
  if (isObject) {
1518
1685
  Object.assign(state, newVal);
1519
1686
  }
@@ -2015,30 +2182,36 @@ var __webpack_exports__ = {};
2015
2182
  __webpack_require__.r(__webpack_exports__);
2016
2183
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2017
2184
  /* harmony export */ Component: () => (/* reexport safe */ _core_component__WEBPACK_IMPORTED_MODULE_1__.MuComponent),
2018
- /* harmony export */ MuBlochSphereElement: () => (/* reexport safe */ _components_bloch_sphere__WEBPACK_IMPORTED_MODULE_10__.MuBlochSphereElement),
2185
+ /* harmony export */ MuBlochSphereElement: () => (/* reexport safe */ _components_bloch_sphere__WEBPACK_IMPORTED_MODULE_11__.MuBlochSphereElement),
2019
2186
  /* harmony export */ MuComponent: () => (/* reexport safe */ _core_component__WEBPACK_IMPORTED_MODULE_1__.MuComponent),
2020
- /* harmony export */ MuInfinity: () => (/* reexport safe */ _components_infinity_list__WEBPACK_IMPORTED_MODULE_11__.MuInfinity),
2187
+ /* harmony export */ MuInfinity: () => (/* reexport safe */ _components_infinity_list__WEBPACK_IMPORTED_MODULE_12__.MuInfinity),
2021
2188
  /* harmony export */ MuRouter: () => (/* reexport safe */ _router_index__WEBPACK_IMPORTED_MODULE_3__.MuRouter),
2022
2189
  /* harmony export */ MuStore: () => (/* reexport safe */ _store_index__WEBPACK_IMPORTED_MODULE_4__.MuStore),
2023
2190
  /* harmony export */ Router: () => (/* reexport safe */ _router_index__WEBPACK_IMPORTED_MODULE_3__.MuRouter),
2024
2191
  /* harmony export */ Security: () => (/* reexport safe */ _security_sanitizer__WEBPACK_IMPORTED_MODULE_5__.Security),
2025
2192
  /* harmony export */ Signal: () => (/* reexport safe */ _core_reactive__WEBPACK_IMPORTED_MODULE_0__.Signal),
2193
+ /* harmony export */ activeControls: () => (/* reexport safe */ _core_quantum__WEBPACK_IMPORTED_MODULE_9__.activeControls),
2026
2194
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
2027
2195
  /* harmony export */ defineComponent: () => (/* reexport safe */ _core_component__WEBPACK_IMPORTED_MODULE_1__.defineComponent),
2028
2196
  /* harmony export */ effect: () => (/* reexport safe */ _core_reactive__WEBPACK_IMPORTED_MODULE_0__.effect),
2029
2197
  /* harmony export */ getCurrentInstance: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.getCurrentInstance),
2030
2198
  /* harmony export */ hydrate: () => (/* reexport safe */ _core_renderer__WEBPACK_IMPORTED_MODULE_2__.hydrate),
2199
+ /* harmony export */ muBurst: () => (/* reexport safe */ _core_surge__WEBPACK_IMPORTED_MODULE_10__.muBurst),
2200
+ /* harmony export */ muControl: () => (/* reexport safe */ _core_quantum__WEBPACK_IMPORTED_MODULE_9__.muControl),
2031
2201
  /* harmony export */ muEffect: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.muEffect),
2032
2202
  /* harmony export */ muEntangle: () => (/* reexport safe */ _core_quantum__WEBPACK_IMPORTED_MODULE_9__.muEntangle),
2033
2203
  /* harmony export */ muGate: () => (/* reexport safe */ _core_quantum__WEBPACK_IMPORTED_MODULE_9__.muGate),
2034
2204
  /* harmony export */ muGeom: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.muGeom),
2035
2205
  /* harmony export */ muMeasure: () => (/* reexport safe */ _core_quantum__WEBPACK_IMPORTED_MODULE_9__.muMeasure),
2036
2206
  /* harmony export */ muMemo: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.muMemo),
2207
+ /* harmony export */ muParallel: () => (/* reexport safe */ _core_quantum__WEBPACK_IMPORTED_MODULE_9__.muParallel),
2037
2208
  /* harmony export */ muPulse: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.muPulse),
2038
2209
  /* harmony export */ muQubit: () => (/* reexport safe */ _core_quantum__WEBPACK_IMPORTED_MODULE_9__.muQubit),
2039
2210
  /* harmony export */ muRegister: () => (/* reexport safe */ _core_quantum__WEBPACK_IMPORTED_MODULE_9__.muRegister),
2040
2211
  /* harmony export */ muSearch: () => (/* reexport safe */ _core_quantum__WEBPACK_IMPORTED_MODULE_9__.muSearch),
2041
2212
  /* harmony export */ muState: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.muState),
2213
+ /* harmony export */ muSurge: () => (/* reexport safe */ _core_surge__WEBPACK_IMPORTED_MODULE_10__.muSurge),
2214
+ /* harmony export */ muSwitch: () => (/* reexport safe */ _core_quantum__WEBPACK_IMPORTED_MODULE_9__.muSwitch),
2042
2215
  /* harmony export */ muTeleport: () => (/* reexport safe */ _core_quantum__WEBPACK_IMPORTED_MODULE_9__.muTeleport),
2043
2216
  /* harmony export */ muVault: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.muVault),
2044
2217
  /* harmony export */ onMuDestroy: () => (/* reexport safe */ _core_hooks__WEBPACK_IMPORTED_MODULE_6__.onMuDestroy),
@@ -2068,8 +2241,10 @@ __webpack_require__.r(__webpack_exports__);
2068
2241
  /* harmony import */ var _core_query__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./core/query */ "./src/core/query.ts");
2069
2242
  /* harmony import */ var _core_vault__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./core/vault */ "./src/core/vault.ts");
2070
2243
  /* harmony import */ var _core_quantum__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./core/quantum */ "./src/core/quantum.ts");
2071
- /* harmony import */ var _components_bloch_sphere__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./components/bloch-sphere */ "./src/components/bloch-sphere.ts");
2072
- /* harmony import */ var _components_infinity_list__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./components/infinity-list */ "./src/components/infinity-list.ts");
2244
+ /* harmony import */ var _core_surge__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./core/surge */ "./src/core/surge.ts");
2245
+ /* harmony import */ var _components_bloch_sphere__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./components/bloch-sphere */ "./src/components/bloch-sphere.ts");
2246
+ /* harmony import */ var _components_infinity_list__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./components/infinity-list */ "./src/components/infinity-list.ts");
2247
+
2073
2248
 
2074
2249
 
2075
2250
 
@@ -2093,8 +2268,9 @@ __webpack_require__.r(__webpack_exports__);
2093
2268
 
2094
2269
 
2095
2270
 
2096
- const Mulan = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ reactive: _core_reactive__WEBPACK_IMPORTED_MODULE_0__.reactive,
2097
- 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, createRouter: _router_index__WEBPACK_IMPORTED_MODULE_3__.createRouter, 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__), _components_infinity_list__WEBPACK_IMPORTED_MODULE_11__), { render: _core_renderer__WEBPACK_IMPORTED_MODULE_2__.render,
2271
+
2272
+ const Mulan = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ reactive: _core_reactive__WEBPACK_IMPORTED_MODULE_0__.reactive,
2273
+ 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, createRouter: _router_index__WEBPACK_IMPORTED_MODULE_3__.createRouter, 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__), _core_surge__WEBPACK_IMPORTED_MODULE_10__), _components_infinity_list__WEBPACK_IMPORTED_MODULE_12__), { render: _core_renderer__WEBPACK_IMPORTED_MODULE_2__.render,
2098
2274
  // MULAN INSIGHT: Branded Logging
2099
2275
  log: (msg, ...args) => {
2100
2276
  console.log(`%c[MulanJS]%c ${msg}`, "color: #ff3e00; font-weight: bold; background: #222; padding: 2px 4px; border-radius: 3px;", "", ...args);
@@ -2139,22 +2315,28 @@ const __webpack_exports__MuStore = __webpack_exports__.MuStore;
2139
2315
  const __webpack_exports__Router = __webpack_exports__.Router;
2140
2316
  const __webpack_exports__Security = __webpack_exports__.Security;
2141
2317
  const __webpack_exports__Signal = __webpack_exports__.Signal;
2318
+ const __webpack_exports__activeControls = __webpack_exports__.activeControls;
2142
2319
  const __webpack_exports__default = __webpack_exports__["default"];
2143
2320
  const __webpack_exports__defineComponent = __webpack_exports__.defineComponent;
2144
2321
  const __webpack_exports__effect = __webpack_exports__.effect;
2145
2322
  const __webpack_exports__getCurrentInstance = __webpack_exports__.getCurrentInstance;
2146
2323
  const __webpack_exports__hydrate = __webpack_exports__.hydrate;
2324
+ const __webpack_exports__muBurst = __webpack_exports__.muBurst;
2325
+ const __webpack_exports__muControl = __webpack_exports__.muControl;
2147
2326
  const __webpack_exports__muEffect = __webpack_exports__.muEffect;
2148
2327
  const __webpack_exports__muEntangle = __webpack_exports__.muEntangle;
2149
2328
  const __webpack_exports__muGate = __webpack_exports__.muGate;
2150
2329
  const __webpack_exports__muGeom = __webpack_exports__.muGeom;
2151
2330
  const __webpack_exports__muMeasure = __webpack_exports__.muMeasure;
2152
2331
  const __webpack_exports__muMemo = __webpack_exports__.muMemo;
2332
+ const __webpack_exports__muParallel = __webpack_exports__.muParallel;
2153
2333
  const __webpack_exports__muPulse = __webpack_exports__.muPulse;
2154
2334
  const __webpack_exports__muQubit = __webpack_exports__.muQubit;
2155
2335
  const __webpack_exports__muRegister = __webpack_exports__.muRegister;
2156
2336
  const __webpack_exports__muSearch = __webpack_exports__.muSearch;
2157
2337
  const __webpack_exports__muState = __webpack_exports__.muState;
2338
+ const __webpack_exports__muSurge = __webpack_exports__.muSurge;
2339
+ const __webpack_exports__muSwitch = __webpack_exports__.muSwitch;
2158
2340
  const __webpack_exports__muTeleport = __webpack_exports__.muTeleport;
2159
2341
  const __webpack_exports__muVault = __webpack_exports__.muVault;
2160
2342
  const __webpack_exports__onMuDestroy = __webpack_exports__.onMuDestroy;
@@ -2173,4 +2355,4 @@ const __webpack_exports__sanitize = __webpack_exports__.sanitize;
2173
2355
  const __webpack_exports__setCurrentInstance = __webpack_exports__.setCurrentInstance;
2174
2356
  const __webpack_exports__useMutation = __webpack_exports__.useMutation;
2175
2357
  const __webpack_exports__useQuery = __webpack_exports__.useQuery;
2176
- export { __webpack_exports__Component as Component, __webpack_exports__MuBlochSphereElement as MuBlochSphereElement, __webpack_exports__MuComponent as MuComponent, __webpack_exports__MuInfinity as MuInfinity, __webpack_exports__MuRouter as MuRouter, __webpack_exports__MuStore as MuStore, __webpack_exports__Router as Router, __webpack_exports__Security as Security, __webpack_exports__Signal as Signal, __webpack_exports__default as default, __webpack_exports__defineComponent as defineComponent, __webpack_exports__effect as effect, __webpack_exports__getCurrentInstance as getCurrentInstance, __webpack_exports__hydrate as hydrate, __webpack_exports__muEffect as muEffect, __webpack_exports__muEntangle as muEntangle, __webpack_exports__muGate as muGate, __webpack_exports__muGeom as muGeom, __webpack_exports__muMeasure as muMeasure, __webpack_exports__muMemo as muMemo, __webpack_exports__muPulse as muPulse, __webpack_exports__muQubit as muQubit, __webpack_exports__muRegister as muRegister, __webpack_exports__muSearch as muSearch, __webpack_exports__muState as muState, __webpack_exports__muTeleport as muTeleport, __webpack_exports__muVault as muVault, __webpack_exports__onMuDestroy as onMuDestroy, __webpack_exports__onMuIdle as onMuIdle, __webpack_exports__onMuInit as onMuInit, __webpack_exports__onMuMount as onMuMount, __webpack_exports__onMuResume as onMuResume, __webpack_exports__onMuShake as onMuShake, __webpack_exports__onMuVoice as onMuVoice, __webpack_exports__persistent as persistent, __webpack_exports__reactive as reactive, __webpack_exports__ref as ref, __webpack_exports__render as render, __webpack_exports__renderToString as renderToString, __webpack_exports__sanitize as sanitize, __webpack_exports__setCurrentInstance as setCurrentInstance, __webpack_exports__useMutation as useMutation, __webpack_exports__useQuery as useQuery };
2358
+ export { __webpack_exports__Component as Component, __webpack_exports__MuBlochSphereElement as MuBlochSphereElement, __webpack_exports__MuComponent as MuComponent, __webpack_exports__MuInfinity as MuInfinity, __webpack_exports__MuRouter as MuRouter, __webpack_exports__MuStore as MuStore, __webpack_exports__Router as Router, __webpack_exports__Security as Security, __webpack_exports__Signal as Signal, __webpack_exports__activeControls as activeControls, __webpack_exports__default as default, __webpack_exports__defineComponent as defineComponent, __webpack_exports__effect as effect, __webpack_exports__getCurrentInstance as getCurrentInstance, __webpack_exports__hydrate as hydrate, __webpack_exports__muBurst as muBurst, __webpack_exports__muControl as muControl, __webpack_exports__muEffect as muEffect, __webpack_exports__muEntangle as muEntangle, __webpack_exports__muGate as muGate, __webpack_exports__muGeom as muGeom, __webpack_exports__muMeasure as muMeasure, __webpack_exports__muMemo as muMemo, __webpack_exports__muParallel as muParallel, __webpack_exports__muPulse as muPulse, __webpack_exports__muQubit as muQubit, __webpack_exports__muRegister as muRegister, __webpack_exports__muSearch as muSearch, __webpack_exports__muState as muState, __webpack_exports__muSurge as muSurge, __webpack_exports__muSwitch as muSwitch, __webpack_exports__muTeleport as muTeleport, __webpack_exports__muVault as muVault, __webpack_exports__onMuDestroy as onMuDestroy, __webpack_exports__onMuIdle as onMuIdle, __webpack_exports__onMuInit as onMuInit, __webpack_exports__onMuMount as onMuMount, __webpack_exports__onMuResume as onMuResume, __webpack_exports__onMuShake as onMuShake, __webpack_exports__onMuVoice as onMuVoice, __webpack_exports__persistent as persistent, __webpack_exports__reactive as reactive, __webpack_exports__ref as ref, __webpack_exports__render as render, __webpack_exports__renderToString as renderToString, __webpack_exports__sanitize as sanitize, __webpack_exports__setCurrentInstance as setCurrentInstance, __webpack_exports__useMutation as useMutation, __webpack_exports__useQuery as useQuery };