@mulsense/xnew 0.3.6 → 0.3.7

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.
@@ -21,7 +21,7 @@
21
21
  const root = {};
22
22
  xnew.context('xmatter.root', root);
23
23
  root.engine = engine !== null && engine !== void 0 ? engine : Matter.Engine.create();
24
- unit.on('logicupdate', () => {
24
+ unit.on('process', () => {
25
25
  Matter.Engine.update(root.engine);
26
26
  });
27
27
  }
@@ -18,7 +18,7 @@ function Root(unit, { engine }) {
18
18
  const root = {};
19
19
  xnew.context('xmatter.root', root);
20
20
  root.engine = engine !== null && engine !== void 0 ? engine : Matter.Engine.create();
21
- unit.on('logicupdate', () => {
21
+ unit.on('process', () => {
22
22
  Matter.Engine.update(root.engine);
23
23
  });
24
24
  }
@@ -19,7 +19,7 @@
19
19
  xnew.promise(RAPIER.init()).then(() => {
20
20
  root.world = new RAPIER.World(gravity);
21
21
  });
22
- self.on('fixedupdate', () => {
22
+ self.on('process', () => {
23
23
  root.world.step();
24
24
  });
25
25
  }
@@ -16,7 +16,7 @@ function Root(self, { gravity }) {
16
16
  xnew.promise(RAPIER.init()).then(() => {
17
17
  root.world = new RAPIER.World(gravity);
18
18
  });
19
- self.on('fixedupdate', () => {
19
+ self.on('process', () => {
20
20
  root.world.step();
21
21
  });
22
22
  }
@@ -19,7 +19,7 @@
19
19
  xnew.promise(RAPIER.init()).then(() => {
20
20
  root.world = new RAPIER.World(gravity);
21
21
  });
22
- self.on('logicupdate', () => {
22
+ self.on('process', () => {
23
23
  root.world.step();
24
24
  });
25
25
  }
@@ -16,7 +16,7 @@ function Root(self, { gravity }) {
16
16
  xnew.promise(RAPIER.init()).then(() => {
17
17
  root.world = new RAPIER.World(gravity);
18
18
  });
19
- self.on('logicupdate', () => {
19
+ self.on('process', () => {
20
20
  root.world.step();
21
21
  });
22
22
  }
package/dist/xnew.d.ts CHANGED
@@ -81,7 +81,7 @@ declare class Unit {
81
81
  static start(unit: Unit): void;
82
82
  static stop(unit: Unit): void;
83
83
  static update(unit: Unit): void;
84
- static logicupdate(unit: Unit): void;
84
+ static process(unit: Unit): void;
85
85
  static root: Unit;
86
86
  static current: Unit;
87
87
  static ticker: Ticker;
@@ -277,8 +277,6 @@ declare function AccordionContent(content: Unit, {}?: {}): {
277
277
 
278
278
  declare function ResizeEvent(resize: Unit): void;
279
279
  declare function DirectEvent(unit: Unit): void;
280
- declare function KeyboardEvent(keyboard: Unit): void;
281
- declare function PointerEvent(unit: Unit): void;
282
280
 
283
281
  declare function Screen(screen: Unit, { width, height, fit }?: {
284
282
  width?: number | undefined;
@@ -730,10 +728,8 @@ declare class Synthesizer {
730
728
 
731
729
  declare const basics: {
732
730
  Screen: typeof Screen;
733
- PointerEvent: typeof PointerEvent;
734
731
  DirectEvent: typeof DirectEvent;
735
732
  ResizeEvent: typeof ResizeEvent;
736
- KeyboardEvent: typeof KeyboardEvent;
737
733
  ModalFrame: typeof ModalFrame;
738
734
  ModalContent: typeof ModalContent;
739
735
  AccordionFrame: typeof AccordionFrame;
package/dist/xnew.js CHANGED
@@ -209,7 +209,7 @@
209
209
  //----------------------------------------------------------------------------------------------------
210
210
  // utils
211
211
  //----------------------------------------------------------------------------------------------------
212
- const SYSTEM_EVENTS = ['start', 'logicupdate', 'update', 'stop', 'finalize'];
212
+ const SYSTEM_EVENTS = ['start', 'process', 'update', 'stop', 'finalize'];
213
213
  //----------------------------------------------------------------------------------------------------
214
214
  // unit
215
215
  //----------------------------------------------------------------------------------------------------
@@ -302,7 +302,7 @@
302
302
  components: [],
303
303
  listeners: new MapMap(),
304
304
  defines: {},
305
- systems: { start: [], logicupdate: [], update: [], stop: [], finalize: [] },
305
+ systems: { start: [], process: [], update: [], stop: [], finalize: [] },
306
306
  });
307
307
  // nest html element
308
308
  if (typeof unit._.target === 'string') {
@@ -412,15 +412,15 @@
412
412
  }
413
413
  }
414
414
  static update(unit) {
415
- if (unit._.state === 'started') {
415
+ if (unit._.state === 'started' || unit._.state === 'stopped') {
416
416
  unit._.children.forEach((child) => Unit.update(child));
417
417
  unit._.systems.update.forEach((listener) => Unit.scope(Unit.snapshot(unit), listener));
418
418
  }
419
419
  }
420
- static logicupdate(unit) {
420
+ static process(unit) {
421
421
  if (unit._.state === 'started') {
422
- unit._.children.forEach((child) => Unit.logicupdate(child));
423
- unit._.systems.logicupdate.forEach((listener) => Unit.scope(Unit.snapshot(unit), listener));
422
+ unit._.children.forEach((child) => Unit.process(child));
423
+ unit._.systems.process.forEach((listener) => Unit.scope(Unit.snapshot(unit), listener));
424
424
  }
425
425
  }
426
426
  static reset() {
@@ -430,7 +430,7 @@
430
430
  (_b = Unit.ticker) === null || _b === void 0 ? void 0 : _b.clear();
431
431
  Unit.ticker = new Ticker(() => {
432
432
  Unit.start(Unit.root);
433
- Unit.logicupdate(Unit.root);
433
+ Unit.process(Unit.root);
434
434
  Unit.update(Unit.root);
435
435
  });
436
436
  }
@@ -942,6 +942,8 @@
942
942
  function DirectEvent(unit) {
943
943
  const state = {};
944
944
  const keydown = xnew$1.scope((event) => {
945
+ if (event.repeat)
946
+ return;
945
947
  state[event.code] = 1;
946
948
  xnew$1.emit('-keydown', { event, type: '-keydown', code: event.code });
947
949
  if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(event.code)) {
@@ -1009,78 +1011,6 @@
1009
1011
  gesture.on('-gestureend', (...args) => xnew$1.emit('-gestureend', ...args));
1010
1012
  gesture.on('-gesturecancel', (...args) => xnew$1.emit('-gesturecancel', ...args));
1011
1013
  }
1012
- function KeyboardEvent(keyboard) {
1013
- const state = {};
1014
- const keydown = xnew$1.scope((event) => {
1015
- state[event.code] = 1;
1016
- xnew$1.emit('-keydown', { event, type: '-keydown', code: event.code });
1017
- if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(event.code)) {
1018
- xnew$1.emit('-keydown.arrow', { event, type: '-keydown.arrow', code: event.code, vector: getVector() });
1019
- }
1020
- });
1021
- const keyup = xnew$1.scope((event) => {
1022
- state[event.code] = 0;
1023
- xnew$1.emit('-keyup', { event, type: '-keyup', code: event.code });
1024
- if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(event.code)) {
1025
- xnew$1.emit('-keyup.arrow', { event, type: '-keyup.arrow', code: event.code, vector: getVector() });
1026
- }
1027
- });
1028
- window.addEventListener('keydown', keydown);
1029
- window.addEventListener('keyup', keyup);
1030
- keyboard.on('finalize', () => {
1031
- window.removeEventListener('keydown', keydown);
1032
- window.removeEventListener('keyup', keyup);
1033
- });
1034
- function getVector() {
1035
- return {
1036
- x: (state['ArrowLeft'] ? -1 : 0) + (state['ArrowRight'] ? +1 : 0),
1037
- y: (state['ArrowUp'] ? -1 : 0) + (state['ArrowDown'] ? +1 : 0)
1038
- };
1039
- }
1040
- }
1041
- function PointerEvent(unit) {
1042
- const internal = xnew$1();
1043
- internal.on('pointerdown', (event) => xnew$1.emit('-pointerdown', { event, position: getPosition(unit.element, event) }));
1044
- internal.on('pointermove', (event) => xnew$1.emit('-pointermove', { event, position: getPosition(unit.element, event) }));
1045
- internal.on('pointerup', (event) => xnew$1.emit('-pointerup', { event, position: getPosition(unit.element, event) }));
1046
- internal.on('wheel', (event) => xnew$1.emit('-wheel', { event, delta: { x: event.wheelDeltaX, y: event.wheelDeltaY } }));
1047
- internal.on('click', (event) => xnew$1.emit('-click', { event, position: getPosition(unit.element, event) }));
1048
- internal.on('pointerover', (event) => xnew$1.emit('-pointerover', { event, position: getPosition(unit.element, event) }));
1049
- internal.on('pointerout', (event) => xnew$1.emit('-pointerout', { event, position: getPosition(unit.element, event) }));
1050
- const pointerdownoutside = xnew$1.scope((event) => {
1051
- if (unit.element.contains(event.target) === false) {
1052
- xnew$1.emit('-pointerdown.outside', { event, position: getPosition(unit.element, event) });
1053
- }
1054
- });
1055
- const pointerupoutside = xnew$1.scope((event) => {
1056
- if (unit.element.contains(event.target) === false) {
1057
- xnew$1.emit('-pointerup.outside', { event, position: getPosition(unit.element, event) });
1058
- }
1059
- });
1060
- const clickoutside = xnew$1.scope((event) => {
1061
- if (unit.element.contains(event.target) === false) {
1062
- xnew$1.emit('-click.outside', { event, position: getPosition(unit.element, event) });
1063
- }
1064
- });
1065
- document.addEventListener('pointerdown', pointerdownoutside);
1066
- document.addEventListener('pointerup', pointerupoutside);
1067
- document.addEventListener('click', clickoutside);
1068
- unit.on('finalize', () => {
1069
- document.removeEventListener('pointerdown', pointerdownoutside);
1070
- document.removeEventListener('pointerup', pointerupoutside);
1071
- document.removeEventListener('click', clickoutside);
1072
- });
1073
- const drag = xnew$1(DragEvent);
1074
- drag.on('-dragstart', (...args) => xnew$1.emit('-dragstart', ...args));
1075
- drag.on('-dragmove', (...args) => xnew$1.emit('-dragmove', ...args));
1076
- drag.on('-dragend', (...args) => xnew$1.emit('-dragend', ...args));
1077
- drag.on('-dragcancel', (...args) => xnew$1.emit('-dragcancel', ...args));
1078
- const gesture = xnew$1(GestureEvent);
1079
- gesture.on('-gesturestart', (...args) => xnew$1.emit('-gesturestart', ...args));
1080
- gesture.on('-gesturemove', (...args) => xnew$1.emit('-gesturemove', ...args));
1081
- gesture.on('-gestureend', (...args) => xnew$1.emit('-gestureend', ...args));
1082
- gesture.on('-gesturecancel', (...args) => xnew$1.emit('-gesturecancel', ...args));
1083
- }
1084
1014
  function DragEvent(unit) {
1085
1015
  const pointerdown = xnew$1.scope((event) => {
1086
1016
  const id = event.pointerId;
@@ -1339,11 +1269,11 @@
1339
1269
  function DragTarget(target, {} = {}) {
1340
1270
  const { frame, absolute } = xnew$1.context('xnew.dragframe');
1341
1271
  xnew$1.nest('<div>');
1342
- const pointer = xnew$1(absolute.parentElement, PointerEvent);
1272
+ const direct = xnew$1(absolute.parentElement, DirectEvent);
1343
1273
  const current = { x: 0, y: 0 };
1344
1274
  const offset = { x: 0, y: 0 };
1345
1275
  let dragged = false;
1346
- pointer.on('-dragstart', ({ event, position }) => {
1276
+ direct.on('-dragstart', ({ event, position }) => {
1347
1277
  if (target.element.contains(event.target) === false)
1348
1278
  return;
1349
1279
  dragged = true;
@@ -1352,7 +1282,7 @@
1352
1282
  current.x = position.x - offset.x;
1353
1283
  current.y = position.y - offset.y;
1354
1284
  });
1355
- pointer.on('-dragmove', ({ event, delta }) => {
1285
+ direct.on('-dragmove', ({ event, delta }) => {
1356
1286
  if (dragged !== true)
1357
1287
  return;
1358
1288
  current.x += delta.x;
@@ -1360,7 +1290,7 @@
1360
1290
  absolute.style.left = `${current.x}px`;
1361
1291
  absolute.style.top = `${current.y}px`;
1362
1292
  });
1363
- pointer.on('-dragcancel -dragend', ({ event }) => {
1293
+ direct.on('-dragcancel -dragend', ({ event }) => {
1364
1294
  dragged = false;
1365
1295
  });
1366
1296
  }
@@ -1397,22 +1327,22 @@
1397
1327
  xnew$1.extend(SVGTemplate, { fill, fillOpacity, stroke, strokeOpacity, strokeWidth, strokeLinejoin });
1398
1328
  xnew$1('<circle cx="50" cy="50" r="23">');
1399
1329
  });
1400
- const pointer = xnew$1(PointerEvent);
1401
- pointer.on('-dragstart', ({ event, position }) => {
1330
+ const direct = xnew$1(DirectEvent);
1331
+ direct.on('-dragstart', ({ event, position }) => {
1402
1332
  const vector = getVector(position);
1403
1333
  target.element.style.filter = 'brightness(90%)';
1404
1334
  target.element.style.left = vector.x * newsize / 4 + 'px';
1405
1335
  target.element.style.top = vector.y * newsize / 4 + 'px';
1406
1336
  xnew$1.emit('-down', { vector });
1407
1337
  });
1408
- pointer.on('-dragmove', ({ event, position }) => {
1338
+ direct.on('-dragmove', ({ event, position }) => {
1409
1339
  const vector = getVector(position);
1410
1340
  target.element.style.filter = 'brightness(90%)';
1411
1341
  target.element.style.left = vector.x * newsize / 4 + 'px';
1412
1342
  target.element.style.top = vector.y * newsize / 4 + 'px';
1413
1343
  xnew$1.emit('-move', { vector });
1414
1344
  });
1415
- pointer.on('-dragend', ({ event }) => {
1345
+ direct.on('-dragend', ({ event }) => {
1416
1346
  const vector = { x: 0, y: 0 };
1417
1347
  target.element.style.filter = '';
1418
1348
  target.element.style.left = vector.x * newsize / 4 + 'px';
@@ -1464,8 +1394,8 @@
1464
1394
  xnew$1('<polygon points="11 50 20 42 20 58">');
1465
1395
  xnew$1('<polygon points="89 50 80 42 80 58">');
1466
1396
  });
1467
- const pointer = xnew$1(PointerEvent);
1468
- pointer.on('-dragstart', ({ event, position }) => {
1397
+ const direct = xnew$1(DirectEvent);
1398
+ direct.on('-dragstart', ({ event, position }) => {
1469
1399
  const vector = getVector(position);
1470
1400
  targets[0].element.style.filter = (vector.y < 0) ? 'brightness(90%)' : '';
1471
1401
  targets[1].element.style.filter = (vector.y > 0) ? 'brightness(90%)' : '';
@@ -1473,7 +1403,7 @@
1473
1403
  targets[3].element.style.filter = (vector.x > 0) ? 'brightness(90%)' : '';
1474
1404
  xnew$1.emit('-down', { vector });
1475
1405
  });
1476
- pointer.on('-dragmove', ({ event, position }) => {
1406
+ direct.on('-dragmove', ({ event, position }) => {
1477
1407
  const vector = getVector(position);
1478
1408
  targets[0].element.style.filter = (vector.y < 0) ? 'brightness(90%)' : '';
1479
1409
  targets[1].element.style.filter = (vector.y > 0) ? 'brightness(90%)' : '';
@@ -1481,7 +1411,7 @@
1481
1411
  targets[3].element.style.filter = (vector.x > 0) ? 'brightness(90%)' : '';
1482
1412
  xnew$1.emit('-move', { vector });
1483
1413
  });
1484
- pointer.on('-dragend', ({ event }) => {
1414
+ direct.on('-dragend', ({ event }) => {
1485
1415
  const vector = { x: 0, y: 0 };
1486
1416
  targets[0].element.style.filter = '';
1487
1417
  targets[1].element.style.filter = '';
@@ -1543,7 +1473,7 @@
1543
1473
  });
1544
1474
  xnew$1.timeout(() => {
1545
1475
  xnew$1(document.body).on('click wheel', action);
1546
- xnew$1(KeyboardEvent).on('-keydown', action);
1476
+ xnew$1(DirectEvent).on('-keydown', action);
1547
1477
  }, 100);
1548
1478
  function action() {
1549
1479
  if (state === 0) {
@@ -3424,7 +3354,7 @@
3424
3354
 
3425
3355
  function VolumeController(unit, {} = {}) {
3426
3356
  xnew$1.nest(`<div style="position: relative; width: 100%; height: 100%; display: flex; align-items: center; justify-content: flex-end; pointer-events: none; container-type: size;">`);
3427
- xnew$1.extend(PointerEvent);
3357
+ xnew$1.extend(DirectEvent);
3428
3358
  unit.on('-pointerdown', ({ event }) => event.stopPropagation());
3429
3359
  const slider = xnew$1(`<input type="range" min="0" max="100" value="${master.gain.value * 100}"
3430
3360
  style="display: none; width: calc(96cqw - 100cqh); margin: 0 2cqw; cursor: pointer; pointer-events: auto;"
@@ -3449,10 +3379,8 @@
3449
3379
 
3450
3380
  const basics = {
3451
3381
  Screen,
3452
- PointerEvent,
3453
3382
  DirectEvent,
3454
3383
  ResizeEvent,
3455
- KeyboardEvent,
3456
3384
  ModalFrame,
3457
3385
  ModalContent,
3458
3386
  AccordionFrame,
package/dist/xnew.mjs CHANGED
@@ -203,7 +203,7 @@ class Timer {
203
203
  //----------------------------------------------------------------------------------------------------
204
204
  // utils
205
205
  //----------------------------------------------------------------------------------------------------
206
- const SYSTEM_EVENTS = ['start', 'logicupdate', 'update', 'stop', 'finalize'];
206
+ const SYSTEM_EVENTS = ['start', 'process', 'update', 'stop', 'finalize'];
207
207
  //----------------------------------------------------------------------------------------------------
208
208
  // unit
209
209
  //----------------------------------------------------------------------------------------------------
@@ -296,7 +296,7 @@ class Unit {
296
296
  components: [],
297
297
  listeners: new MapMap(),
298
298
  defines: {},
299
- systems: { start: [], logicupdate: [], update: [], stop: [], finalize: [] },
299
+ systems: { start: [], process: [], update: [], stop: [], finalize: [] },
300
300
  });
301
301
  // nest html element
302
302
  if (typeof unit._.target === 'string') {
@@ -406,15 +406,15 @@ class Unit {
406
406
  }
407
407
  }
408
408
  static update(unit) {
409
- if (unit._.state === 'started') {
409
+ if (unit._.state === 'started' || unit._.state === 'stopped') {
410
410
  unit._.children.forEach((child) => Unit.update(child));
411
411
  unit._.systems.update.forEach((listener) => Unit.scope(Unit.snapshot(unit), listener));
412
412
  }
413
413
  }
414
- static logicupdate(unit) {
414
+ static process(unit) {
415
415
  if (unit._.state === 'started') {
416
- unit._.children.forEach((child) => Unit.logicupdate(child));
417
- unit._.systems.logicupdate.forEach((listener) => Unit.scope(Unit.snapshot(unit), listener));
416
+ unit._.children.forEach((child) => Unit.process(child));
417
+ unit._.systems.process.forEach((listener) => Unit.scope(Unit.snapshot(unit), listener));
418
418
  }
419
419
  }
420
420
  static reset() {
@@ -424,7 +424,7 @@ class Unit {
424
424
  (_b = Unit.ticker) === null || _b === void 0 ? void 0 : _b.clear();
425
425
  Unit.ticker = new Ticker(() => {
426
426
  Unit.start(Unit.root);
427
- Unit.logicupdate(Unit.root);
427
+ Unit.process(Unit.root);
428
428
  Unit.update(Unit.root);
429
429
  });
430
430
  }
@@ -936,6 +936,8 @@ function ResizeEvent(resize) {
936
936
  function DirectEvent(unit) {
937
937
  const state = {};
938
938
  const keydown = xnew$1.scope((event) => {
939
+ if (event.repeat)
940
+ return;
939
941
  state[event.code] = 1;
940
942
  xnew$1.emit('-keydown', { event, type: '-keydown', code: event.code });
941
943
  if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(event.code)) {
@@ -1003,78 +1005,6 @@ function DirectEvent(unit) {
1003
1005
  gesture.on('-gestureend', (...args) => xnew$1.emit('-gestureend', ...args));
1004
1006
  gesture.on('-gesturecancel', (...args) => xnew$1.emit('-gesturecancel', ...args));
1005
1007
  }
1006
- function KeyboardEvent(keyboard) {
1007
- const state = {};
1008
- const keydown = xnew$1.scope((event) => {
1009
- state[event.code] = 1;
1010
- xnew$1.emit('-keydown', { event, type: '-keydown', code: event.code });
1011
- if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(event.code)) {
1012
- xnew$1.emit('-keydown.arrow', { event, type: '-keydown.arrow', code: event.code, vector: getVector() });
1013
- }
1014
- });
1015
- const keyup = xnew$1.scope((event) => {
1016
- state[event.code] = 0;
1017
- xnew$1.emit('-keyup', { event, type: '-keyup', code: event.code });
1018
- if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(event.code)) {
1019
- xnew$1.emit('-keyup.arrow', { event, type: '-keyup.arrow', code: event.code, vector: getVector() });
1020
- }
1021
- });
1022
- window.addEventListener('keydown', keydown);
1023
- window.addEventListener('keyup', keyup);
1024
- keyboard.on('finalize', () => {
1025
- window.removeEventListener('keydown', keydown);
1026
- window.removeEventListener('keyup', keyup);
1027
- });
1028
- function getVector() {
1029
- return {
1030
- x: (state['ArrowLeft'] ? -1 : 0) + (state['ArrowRight'] ? +1 : 0),
1031
- y: (state['ArrowUp'] ? -1 : 0) + (state['ArrowDown'] ? +1 : 0)
1032
- };
1033
- }
1034
- }
1035
- function PointerEvent(unit) {
1036
- const internal = xnew$1();
1037
- internal.on('pointerdown', (event) => xnew$1.emit('-pointerdown', { event, position: getPosition(unit.element, event) }));
1038
- internal.on('pointermove', (event) => xnew$1.emit('-pointermove', { event, position: getPosition(unit.element, event) }));
1039
- internal.on('pointerup', (event) => xnew$1.emit('-pointerup', { event, position: getPosition(unit.element, event) }));
1040
- internal.on('wheel', (event) => xnew$1.emit('-wheel', { event, delta: { x: event.wheelDeltaX, y: event.wheelDeltaY } }));
1041
- internal.on('click', (event) => xnew$1.emit('-click', { event, position: getPosition(unit.element, event) }));
1042
- internal.on('pointerover', (event) => xnew$1.emit('-pointerover', { event, position: getPosition(unit.element, event) }));
1043
- internal.on('pointerout', (event) => xnew$1.emit('-pointerout', { event, position: getPosition(unit.element, event) }));
1044
- const pointerdownoutside = xnew$1.scope((event) => {
1045
- if (unit.element.contains(event.target) === false) {
1046
- xnew$1.emit('-pointerdown.outside', { event, position: getPosition(unit.element, event) });
1047
- }
1048
- });
1049
- const pointerupoutside = xnew$1.scope((event) => {
1050
- if (unit.element.contains(event.target) === false) {
1051
- xnew$1.emit('-pointerup.outside', { event, position: getPosition(unit.element, event) });
1052
- }
1053
- });
1054
- const clickoutside = xnew$1.scope((event) => {
1055
- if (unit.element.contains(event.target) === false) {
1056
- xnew$1.emit('-click.outside', { event, position: getPosition(unit.element, event) });
1057
- }
1058
- });
1059
- document.addEventListener('pointerdown', pointerdownoutside);
1060
- document.addEventListener('pointerup', pointerupoutside);
1061
- document.addEventListener('click', clickoutside);
1062
- unit.on('finalize', () => {
1063
- document.removeEventListener('pointerdown', pointerdownoutside);
1064
- document.removeEventListener('pointerup', pointerupoutside);
1065
- document.removeEventListener('click', clickoutside);
1066
- });
1067
- const drag = xnew$1(DragEvent);
1068
- drag.on('-dragstart', (...args) => xnew$1.emit('-dragstart', ...args));
1069
- drag.on('-dragmove', (...args) => xnew$1.emit('-dragmove', ...args));
1070
- drag.on('-dragend', (...args) => xnew$1.emit('-dragend', ...args));
1071
- drag.on('-dragcancel', (...args) => xnew$1.emit('-dragcancel', ...args));
1072
- const gesture = xnew$1(GestureEvent);
1073
- gesture.on('-gesturestart', (...args) => xnew$1.emit('-gesturestart', ...args));
1074
- gesture.on('-gesturemove', (...args) => xnew$1.emit('-gesturemove', ...args));
1075
- gesture.on('-gestureend', (...args) => xnew$1.emit('-gestureend', ...args));
1076
- gesture.on('-gesturecancel', (...args) => xnew$1.emit('-gesturecancel', ...args));
1077
- }
1078
1008
  function DragEvent(unit) {
1079
1009
  const pointerdown = xnew$1.scope((event) => {
1080
1010
  const id = event.pointerId;
@@ -1333,11 +1263,11 @@ function DragFrame(frame, { x = 0, y = 0 } = {}) {
1333
1263
  function DragTarget(target, {} = {}) {
1334
1264
  const { frame, absolute } = xnew$1.context('xnew.dragframe');
1335
1265
  xnew$1.nest('<div>');
1336
- const pointer = xnew$1(absolute.parentElement, PointerEvent);
1266
+ const direct = xnew$1(absolute.parentElement, DirectEvent);
1337
1267
  const current = { x: 0, y: 0 };
1338
1268
  const offset = { x: 0, y: 0 };
1339
1269
  let dragged = false;
1340
- pointer.on('-dragstart', ({ event, position }) => {
1270
+ direct.on('-dragstart', ({ event, position }) => {
1341
1271
  if (target.element.contains(event.target) === false)
1342
1272
  return;
1343
1273
  dragged = true;
@@ -1346,7 +1276,7 @@ function DragTarget(target, {} = {}) {
1346
1276
  current.x = position.x - offset.x;
1347
1277
  current.y = position.y - offset.y;
1348
1278
  });
1349
- pointer.on('-dragmove', ({ event, delta }) => {
1279
+ direct.on('-dragmove', ({ event, delta }) => {
1350
1280
  if (dragged !== true)
1351
1281
  return;
1352
1282
  current.x += delta.x;
@@ -1354,7 +1284,7 @@ function DragTarget(target, {} = {}) {
1354
1284
  absolute.style.left = `${current.x}px`;
1355
1285
  absolute.style.top = `${current.y}px`;
1356
1286
  });
1357
- pointer.on('-dragcancel -dragend', ({ event }) => {
1287
+ direct.on('-dragcancel -dragend', ({ event }) => {
1358
1288
  dragged = false;
1359
1289
  });
1360
1290
  }
@@ -1391,22 +1321,22 @@ function AnalogStick(unit, { stroke = 'currentColor', strokeOpacity = 0.8, strok
1391
1321
  xnew$1.extend(SVGTemplate, { fill, fillOpacity, stroke, strokeOpacity, strokeWidth, strokeLinejoin });
1392
1322
  xnew$1('<circle cx="50" cy="50" r="23">');
1393
1323
  });
1394
- const pointer = xnew$1(PointerEvent);
1395
- pointer.on('-dragstart', ({ event, position }) => {
1324
+ const direct = xnew$1(DirectEvent);
1325
+ direct.on('-dragstart', ({ event, position }) => {
1396
1326
  const vector = getVector(position);
1397
1327
  target.element.style.filter = 'brightness(90%)';
1398
1328
  target.element.style.left = vector.x * newsize / 4 + 'px';
1399
1329
  target.element.style.top = vector.y * newsize / 4 + 'px';
1400
1330
  xnew$1.emit('-down', { vector });
1401
1331
  });
1402
- pointer.on('-dragmove', ({ event, position }) => {
1332
+ direct.on('-dragmove', ({ event, position }) => {
1403
1333
  const vector = getVector(position);
1404
1334
  target.element.style.filter = 'brightness(90%)';
1405
1335
  target.element.style.left = vector.x * newsize / 4 + 'px';
1406
1336
  target.element.style.top = vector.y * newsize / 4 + 'px';
1407
1337
  xnew$1.emit('-move', { vector });
1408
1338
  });
1409
- pointer.on('-dragend', ({ event }) => {
1339
+ direct.on('-dragend', ({ event }) => {
1410
1340
  const vector = { x: 0, y: 0 };
1411
1341
  target.element.style.filter = '';
1412
1342
  target.element.style.left = vector.x * newsize / 4 + 'px';
@@ -1458,8 +1388,8 @@ function DirectionalPad(unit, { diagonal = true, stroke = 'currentColor', stroke
1458
1388
  xnew$1('<polygon points="11 50 20 42 20 58">');
1459
1389
  xnew$1('<polygon points="89 50 80 42 80 58">');
1460
1390
  });
1461
- const pointer = xnew$1(PointerEvent);
1462
- pointer.on('-dragstart', ({ event, position }) => {
1391
+ const direct = xnew$1(DirectEvent);
1392
+ direct.on('-dragstart', ({ event, position }) => {
1463
1393
  const vector = getVector(position);
1464
1394
  targets[0].element.style.filter = (vector.y < 0) ? 'brightness(90%)' : '';
1465
1395
  targets[1].element.style.filter = (vector.y > 0) ? 'brightness(90%)' : '';
@@ -1467,7 +1397,7 @@ function DirectionalPad(unit, { diagonal = true, stroke = 'currentColor', stroke
1467
1397
  targets[3].element.style.filter = (vector.x > 0) ? 'brightness(90%)' : '';
1468
1398
  xnew$1.emit('-down', { vector });
1469
1399
  });
1470
- pointer.on('-dragmove', ({ event, position }) => {
1400
+ direct.on('-dragmove', ({ event, position }) => {
1471
1401
  const vector = getVector(position);
1472
1402
  targets[0].element.style.filter = (vector.y < 0) ? 'brightness(90%)' : '';
1473
1403
  targets[1].element.style.filter = (vector.y > 0) ? 'brightness(90%)' : '';
@@ -1475,7 +1405,7 @@ function DirectionalPad(unit, { diagonal = true, stroke = 'currentColor', stroke
1475
1405
  targets[3].element.style.filter = (vector.x > 0) ? 'brightness(90%)' : '';
1476
1406
  xnew$1.emit('-move', { vector });
1477
1407
  });
1478
- pointer.on('-dragend', ({ event }) => {
1408
+ direct.on('-dragend', ({ event }) => {
1479
1409
  const vector = { x: 0, y: 0 };
1480
1410
  targets[0].element.style.filter = '';
1481
1411
  targets[1].element.style.filter = '';
@@ -1537,7 +1467,7 @@ function TextStream(unit, { text = '', speed = 50, fade = 300 } = {}) {
1537
1467
  });
1538
1468
  xnew$1.timeout(() => {
1539
1469
  xnew$1(document.body).on('click wheel', action);
1540
- xnew$1(KeyboardEvent).on('-keydown', action);
1470
+ xnew$1(DirectEvent).on('-keydown', action);
1541
1471
  }, 100);
1542
1472
  function action() {
1543
1473
  if (state === 0) {
@@ -3418,7 +3348,7 @@ const icons = {
3418
3348
 
3419
3349
  function VolumeController(unit, {} = {}) {
3420
3350
  xnew$1.nest(`<div style="position: relative; width: 100%; height: 100%; display: flex; align-items: center; justify-content: flex-end; pointer-events: none; container-type: size;">`);
3421
- xnew$1.extend(PointerEvent);
3351
+ xnew$1.extend(DirectEvent);
3422
3352
  unit.on('-pointerdown', ({ event }) => event.stopPropagation());
3423
3353
  const slider = xnew$1(`<input type="range" min="0" max="100" value="${master.gain.value * 100}"
3424
3354
  style="display: none; width: calc(96cqw - 100cqh); margin: 0 2cqw; cursor: pointer; pointer-events: auto;"
@@ -3443,10 +3373,8 @@ function VolumeController(unit, {} = {}) {
3443
3373
 
3444
3374
  const basics = {
3445
3375
  Screen,
3446
- PointerEvent,
3447
3376
  DirectEvent,
3448
3377
  ResizeEvent,
3449
- KeyboardEvent,
3450
3378
  ModalFrame,
3451
3379
  ModalContent,
3452
3380
  AccordionFrame,
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "keywords": [
5
5
  "Component-Oriented Programming"
6
6
  ],
7
- "version": "0.3.6",
7
+ "version": "0.3.7",
8
8
  "main": "dist/xnew.js",
9
9
  "module": "dist/xnew.mjs",
10
10
  "types": "dist/xnew.d.ts",