@rpgjs/client 5.0.0-alpha.10 → 5.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/dist/Game/EffectManager.d.ts +5 -0
  2. package/dist/RpgClient.d.ts +68 -99
  3. package/dist/RpgClientEngine.d.ts +4 -86
  4. package/dist/components/effects/index.d.ts +4 -0
  5. package/dist/components/index.d.ts +1 -2
  6. package/dist/index.d.ts +1 -1
  7. package/dist/index.js +1 -2
  8. package/dist/index.js.map +1 -1
  9. package/dist/index10.js +1 -1
  10. package/dist/index11.js +4 -4
  11. package/dist/index11.js.map +1 -1
  12. package/dist/index12.js +2 -6
  13. package/dist/index12.js.map +1 -1
  14. package/dist/index13.js +2 -2
  15. package/dist/index13.js.map +1 -1
  16. package/dist/index14.js +35 -95
  17. package/dist/index14.js.map +1 -1
  18. package/dist/index15.js +186 -45
  19. package/dist/index15.js.map +1 -1
  20. package/dist/index16.js +5 -187
  21. package/dist/index16.js.map +1 -1
  22. package/dist/index17.js +383 -5
  23. package/dist/index17.js.map +1 -1
  24. package/dist/index18.js +28 -384
  25. package/dist/index18.js.map +1 -1
  26. package/dist/index19.js +17 -24
  27. package/dist/index19.js.map +1 -1
  28. package/dist/index2.js +25 -147
  29. package/dist/index2.js.map +1 -1
  30. package/dist/index20.js +2413 -16
  31. package/dist/index20.js.map +1 -1
  32. package/dist/index21.js +88 -2395
  33. package/dist/index21.js.map +1 -1
  34. package/dist/index22.js +103 -108
  35. package/dist/index22.js.map +1 -1
  36. package/dist/index23.js +57 -95
  37. package/dist/index23.js.map +1 -1
  38. package/dist/index24.js +12 -62
  39. package/dist/index24.js.map +1 -1
  40. package/dist/index25.js +37 -18
  41. package/dist/index25.js.map +1 -1
  42. package/dist/index26.js +3 -25
  43. package/dist/index26.js.map +1 -1
  44. package/dist/index27.js +314 -87
  45. package/dist/index27.js.map +1 -1
  46. package/dist/index28.js +21 -37
  47. package/dist/index28.js.map +1 -1
  48. package/dist/index29.js +9 -3
  49. package/dist/index29.js.map +1 -1
  50. package/dist/index3.js +2 -2
  51. package/dist/index30.js +6 -317
  52. package/dist/index30.js.map +1 -1
  53. package/dist/index31.js +171 -24
  54. package/dist/index31.js.map +1 -1
  55. package/dist/index32.js +497 -7
  56. package/dist/index32.js.map +1 -1
  57. package/dist/index33.js +9 -8
  58. package/dist/index33.js.map +1 -1
  59. package/dist/index34.js +4400 -9
  60. package/dist/index34.js.map +1 -1
  61. package/dist/index35.js +307 -4394
  62. package/dist/index35.js.map +1 -1
  63. package/dist/index36.js +85 -310
  64. package/dist/index36.js.map +1 -1
  65. package/dist/index37.js +56 -169
  66. package/dist/index37.js.map +1 -1
  67. package/dist/index38.js +16 -497
  68. package/dist/index38.js.map +1 -1
  69. package/dist/index39.js +10 -51
  70. package/dist/index39.js.map +1 -1
  71. package/dist/index4.js +5 -18
  72. package/dist/index4.js.map +1 -1
  73. package/dist/index5.js +1 -2
  74. package/dist/index5.js.map +1 -1
  75. package/dist/index6.js +1 -1
  76. package/dist/index7.js +2 -10
  77. package/dist/index7.js.map +1 -1
  78. package/dist/index8.js +6 -24
  79. package/dist/index8.js.map +1 -1
  80. package/dist/index9.js +2 -2
  81. package/dist/presets/index.d.ts +0 -102
  82. package/dist/services/loadMap.d.ts +2 -123
  83. package/dist/services/mmorpg.d.ts +3 -7
  84. package/package.json +12 -14
  85. package/src/Game/{AnimationManager.ts → EffectManager.ts} +2 -2
  86. package/src/Game/Object.ts +0 -69
  87. package/src/RpgClient.ts +67 -101
  88. package/src/RpgClientEngine.ts +24 -159
  89. package/src/components/character.ce +33 -74
  90. package/src/components/{animations → effects}/animation.ce +5 -3
  91. package/src/components/{animations → effects}/index.ts +1 -1
  92. package/src/components/index.ts +1 -2
  93. package/src/components/scenes/draw-map.ce +23 -6
  94. package/src/components/scenes/element-map.ce +23 -0
  95. package/src/components/scenes/event-layer.ce +3 -3
  96. package/src/core/setup.ts +0 -2
  97. package/src/index.ts +1 -1
  98. package/src/module.ts +5 -23
  99. package/src/presets/index.ts +1 -5
  100. package/src/services/loadMap.ts +2 -131
  101. package/src/services/mmorpg.ts +4 -20
  102. package/tsconfig.json +1 -1
  103. package/vite.config.ts +1 -1
  104. package/dist/Game/AnimationManager.d.ts +0 -8
  105. package/dist/components/animations/index.d.ts +0 -4
  106. package/dist/index40.js +0 -20
  107. package/dist/index40.js.map +0 -1
  108. package/dist/index41.js +0 -82
  109. package/dist/index41.js.map +0 -1
  110. package/dist/presets/animation.d.ts +0 -31
  111. package/dist/presets/lpc.d.ts +0 -89
  112. package/src/presets/animation.ts +0 -46
  113. package/src/presets/lpc.ts +0 -108
  114. /package/src/components/{animations → effects}/hit.ce +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index22.js","sources":["../../../node_modules/.pnpm/@signe+sync@2.3.3/node_modules/@signe/sync/dist/client/index.js"],"sourcesContent":["import {\n __name\n} from \"../chunk-7QVYU63E.js\";\n\n// src/client/index.ts\nimport { load } from \"@signe/sync\";\nimport PartySocket from \"partysocket\";\nfunction createConnection(options, roomInstance) {\n const conn = new PartySocket(options);\n conn.addEventListener(\"message\", (event) => {\n const object = JSON.parse(event.data);\n switch (object.type) {\n case \"sync\":\n load(roomInstance, object.value, true);\n break;\n }\n });\n return {\n emit: /* @__PURE__ */ __name((key, value) => {\n conn.send(JSON.stringify({\n action: key,\n value\n }));\n }, \"emit\"),\n on: /* @__PURE__ */ __name((key, cb) => {\n conn.addEventListener(\"message\", (event) => {\n const object = JSON.parse(event.data);\n if (object.type === key) {\n cb(object.value);\n }\n });\n }, \"on\"),\n off: /* @__PURE__ */ __name((key, cb) => {\n conn.removeEventListener(\"message\", (event) => {\n const object = JSON.parse(event.data);\n if (object.type === key) {\n cb(object.value);\n }\n });\n }, \"off\"),\n close: /* @__PURE__ */ __name(() => conn.close(), \"close\"),\n conn\n };\n}\n__name(createConnection, \"createConnection\");\nasync function connectionRoom(options, roomInstance) {\n return createConnection(options, roomInstance);\n}\n__name(connectionRoom, \"connectionRoom\");\nasync function connectionWorld(options, roomInstance) {\n const shardInfo = await getOptimalShard(options);\n const result = createConnection({\n ...options,\n party: \"shard\",\n room: shardInfo.url\n }, roomInstance);\n return {\n ...result,\n shardInfo\n };\n}\n__name(connectionWorld, \"connectionWorld\");\nasync function getOptimalShard(worldOptions) {\n const {\n host,\n room,\n worldId = \"world-default\",\n retryCount = 3,\n retryDelay = 1e3,\n autoCreate = true\n // Default to true for auto-creation\n } = worldOptions;\n let attempts = 0;\n const url = new URL(`${host}/parties/world/${encodeURIComponent(worldId)}/connect`);\n const requestUrl = url.toString();\n while (attempts < retryCount) {\n try {\n const response = await fetch(requestUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n roomId: room,\n autoCreate\n })\n });\n if (!response.ok) {\n const errorData = await response.json().catch(() => ({\n error: \"Unknown error\"\n }));\n throw new Error(`World service returned ${response.status}: ${errorData.error || \"Unknown error\"}`);\n }\n const data = await response.json();\n if (!data.url || !data.shardId) {\n throw new Error(\"Invalid response from World service: missing url or shardId\");\n }\n return {\n shardId: data.shardId,\n url: data.url\n };\n } catch (error) {\n attempts++;\n if (attempts >= retryCount) {\n throw error;\n }\n console.warn(`Failed to get shard (attempt ${attempts}/${retryCount}). Retrying in ${retryDelay}ms...`);\n await new Promise((resolve) => setTimeout(resolve, retryDelay));\n }\n }\n throw new Error(\"Failed to get shard after all retry attempts\");\n}\n__name(getOptimalShard, \"getOptimalShard\");\nexport {\n PartySocket,\n connectionRoom,\n connectionWorld\n};\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index22.js","sources":["../src/components/gui/dialogbox/index.ce"],"sourcesContent":["<Container justifyContent=\"center\" alignItems=\"center\" width=\"100%\" height=\"100%\">\n <Container\n ref=\"dialogbox\"\n scale={{ x: scaleX }}\n anchor={[0.5, 0.5]}\n width={700}\n height\n controls\n positionType=\"absolute\"\n bottom={10}\n >\n <Rect width={700} height={250} color=\"#1a1a2e\" />\n <Rect\n x={0}\n y={0}\n width={700}\n height\n color=\"#1a1a2e\"\n alpha={0.9}\n borderRadius={10}\n border\n shadow\n />\n <Container\n flexDirection=\"row\"\n width={700}\n height\n alpha={contentOpacity}\n >\n <Container flexDirection=\"column\">\n <Text\n text\n color=\"#fff\"\n fontSize={18}\n margin={40}\n typewriter\n style={textStyle}\n />\n @if (visibleSelection) {\n <Selection selectedIndex={0} items={choices} onSelect />\n }\n </Container>\n </Container>\n</Container> \n\n \n</Container>\n<script>\n import Selection from './selection.ce'\n\n import {\n animatedSignal,\n computed,\n effect,\n signal,\n trigger,\n mount\n } from \"canvasengine\";\n\n import { inject } from \"../../../core/inject\";\n import { RpgClientEngine } from \"../../../RpgClientEngine\";\n\n const {\n message,\n choices: _choices,\n onFinish,\n onInteraction\n } = defineProps();\n\n const client = inject(RpgClientEngine);\n const keyboardControls = client.globalConfig.keyboardControls;\n\n client.stopProcessingInput = true;\n let isDestroyed = false;\n\n const texts = [message()]\n const height = signal(250);\n const isTextCompleted = signal(false);\n\n const drawSpeaker = (g) => {\n g.beginFill(0xffa500); // Orange color\n g.lineStyle(2, 0x000000); // Black border\n g.moveTo(0, 0);\n g.lineTo(70, 0);\n g.lineTo(80, 15);\n g.lineTo(70, 30);\n g.lineTo(0, 30);\n g.lineTo(0, 0);\n g.endFill();\n };\n\n const border = signal({ width: 5, color: \"#595971\" });\n const shadow = signal({ color: \"#000\", blur: 10, offsetX: 10, offsetY: 10 });\n\n const contentOpacity = animatedSignal(0, {\n duration: 1000,\n });\n\n const scaleX = animatedSignal(0, {\n duration: 500,\n });\n\n scaleX.set(1);\n contentOpacity.set(1);\n\n const currentTextIndex = signal(0);\n const currentText = computed(() => texts?.[currentTextIndex()] ?? '');\n const isChoiceDisplayed = signal(false);\n\n const text = computed(() => {\n const current = currentText();\n return typeof current === \"string\" ? current : current.text;\n });\n\n const choices = computed(() => {\n //const current = currentText();\n //return typeof current === \"string\" ? null : current.choices;\n return _choices;\n });\n\n const visibleSelection = computed(() => isChoiceDisplayed() && choices().length != 0)\n\n const triggerSkip = trigger();\n\n const typewriter = {\n speed: 0.3,\n skip: triggerSkip,\n onComplete: () => {\n isTextCompleted.set(true);\n }\n }\n\n const textStyle = {\n wordWrap: true,\n wordWrapWidth: 700 - 256 - 80\n }\n\n const face = signal({ x: 0, y: 0, width: 256, height: 256 });\n\n mount((element) => {\n const [dialogbox] = element.props.children\n return () => {\n dialogbox.directives.controls.onDestroy()\n isDestroyed = true;\n // Wait destroy is finished before start processing input\n setTimeout(() => {\n client.stopProcessingInput = false;\n }, 500)\n }\n })\n\n const controls = signal({\n next: {\n bind: keyboardControls.action,\n keyDown(e) {\n if (isDestroyed) return;\n if (isChoiceDisplayed()) {\n // If choices are displayed, do nothing (wait for selection)\n return;\n }\n\n // If text is still typing, just skip (fast forward) the animation\n if (!isTextCompleted()) {\n triggerSkip.start();\n isTextCompleted.set(true);\n }\n else {\n const isFinished = currentTextIndex() === texts.length - 1;\n currentTextIndex.update((index) => {\n if (index < texts.length - 1) {\n return index + 1;\n }\n return index;\n });\n isChoiceDisplayed.set(false);\n isTextCompleted.set(false);\n if (isFinished && onFinish) {\n onFinish();\n } \n }\n },\n },\n });\n\n const onSelect = (index) => {\n onFinish(index);\n }\n \n effect(() => {\n if (choices().length != 0) {\n isChoiceDisplayed.set(true);\n }\n });\n</script>"],"names":["Selection"],"mappings":"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"}
package/dist/index23.js CHANGED
@@ -1,107 +1,69 @@
1
- import { useProps, useDefineProps, signal, animatedSignal, computed, trigger, mount, effect, h, Container, Rect, cond, Text } from 'canvasengine';
2
- import component$1 from './index39.js';
3
- import { inject } from './index6.js';
4
- import { RpgClientEngine } from './index2.js';
1
+ import { useProps, useDefineProps, animatedSignal, signal, mount, tick, h, Text } from 'canvasengine';
2
+ import { Direction } from '@rpgjs/common';
5
3
 
6
4
  function component($$props) {
7
5
  useProps($$props);
8
6
  const defineProps = useDefineProps($$props);
9
- var _a = defineProps(), message = _a.message, _choices = _a.choices, onFinish = _a.onFinish; _a.onInteraction;
10
- var client = inject(RpgClientEngine);
11
- var keyboardControls = client.globalConfig.keyboardControls;
12
- client.stopProcessingInput = true;
13
- var isDestroyed = false;
14
- var texts = [message()];
15
- var height = signal(250);
16
- var isTextCompleted = signal(false);
17
- var border = signal({ width: 5, color: "#595971" });
18
- var shadow = signal({ color: "#000", blur: 10, offsetX: 10, offsetY: 10 });
19
- var contentOpacity = animatedSignal(0, {
20
- duration: 1000,
21
- });
22
- var scaleX = animatedSignal(0, {
23
- duration: 500,
24
- });
25
- scaleX.set(1);
26
- contentOpacity.set(1);
27
- var currentTextIndex = signal(0);
28
- var currentText = computed(function () { var _a; return (_a = texts === null || texts === void 0 ? void 0 : texts[currentTextIndex()]) !== null && _a !== void 0 ? _a : ''; });
29
- var isChoiceDisplayed = signal(false);
30
- var text = computed(function () {
31
- var current = currentText();
32
- return typeof current === "string" ? current : current.text;
33
- });
34
- var choices = computed(function () {
35
- //const current = currentText();
36
- //return typeof current === "string" ? null : current.choices;
37
- return _choices;
38
- });
39
- var visibleSelection = computed(function () { return isChoiceDisplayed() && choices().length != 0; });
40
- var triggerSkip = trigger();
41
- var typewriter = {
42
- speed: 0.3,
43
- skip: triggerSkip,
44
- onComplete: function () {
45
- isTextCompleted.set(true);
7
+ var _a = defineProps({
8
+ duration: {
9
+ default: 1000
10
+ },
11
+ color: {
12
+ default: 'black'
46
13
  }
47
- };
48
- var textStyle = {
49
- wordWrap: true,
50
- wordWrapWidth: 700 - 256 - 80
51
- };
52
- signal({ x: 0, y: 0, width: 256, height: 256 });
53
- mount(function (element) {
54
- var dialogbox = element.props.children[0];
55
- return function () {
56
- dialogbox.directives.controls.onDestroy();
57
- isDestroyed = true;
58
- // Wait destroy is finished before start processing input
59
- setTimeout(function () {
60
- client.stopProcessingInput = false;
61
- }, 500);
62
- };
14
+ }), text = _a.text, direction = _a.direction, onFinish = _a.onFinish, duration = _a.duration, color = _a.color, positionX = _a.x, positionY = _a.y;
15
+ var scale = animatedSignal(1, {
16
+ duration: duration(),
63
17
  });
64
- var controls = signal({
65
- next: {
66
- bind: keyboardControls.action,
67
- keyDown: function (e) {
68
- if (isDestroyed)
69
- return;
70
- if (isChoiceDisplayed()) {
71
- // If choices are displayed, do nothing (wait for selection)
72
- return;
73
- }
74
- // If text is still typing, just skip (fast forward) the animation
75
- if (!isTextCompleted()) {
76
- triggerSkip.start();
77
- isTextCompleted.set(true);
78
- }
79
- else {
80
- var isFinished = currentTextIndex() === texts.length - 1;
81
- currentTextIndex.update(function (index) {
82
- if (index < texts.length - 1) {
83
- return index + 1;
84
- }
85
- return index;
86
- });
87
- isChoiceDisplayed.set(false);
88
- isTextCompleted.set(false);
89
- if (isFinished && onFinish) {
90
- onFinish();
91
- }
92
- }
93
- },
94
- },
18
+ var randomPosition = function () { return Math.floor(Math.random() * 60); };
19
+ var initialY = randomPosition();
20
+ var x = signal(positionX());
21
+ var y = signal(positionY() - initialY);
22
+ var velocityX = 0;
23
+ var velocityY = 0;
24
+ var speed = 200;
25
+ switch (direction()) {
26
+ case Direction.Left:
27
+ velocityX = speed;
28
+ break;
29
+ case Direction.Right:
30
+ velocityX = -200;
31
+ break;
32
+ case Direction.Up:
33
+ velocityY = speed;
34
+ break;
35
+ case Direction.Down:
36
+ velocityY = -200;
37
+ break;
38
+ }
39
+ velocityX += (Math.random() - 0.5) * 100;
40
+ velocityY += (Math.random() - 0.5) * 100;
41
+ var gravity = 500;
42
+ var deceleration = 0.98;
43
+ mount(function () {
44
+ scale.set(0.1);
95
45
  });
96
- var onSelect = function (index) {
97
- onFinish(index);
98
- };
99
- effect(function () {
100
- if (choices().length != 0) {
101
- isChoiceDisplayed.set(true);
46
+ var elapsedTime = 0;
47
+ tick(function (_a) {
48
+ var deltaTime = _a.deltaTime;
49
+ elapsedTime += deltaTime;
50
+ if (elapsedTime < duration()) {
51
+ // Update position
52
+ x.update(function (x) { return x + (velocityX * deltaTime) / 1000; });
53
+ y.update(function (y) { return y + (velocityY * deltaTime) / 1000; });
54
+ // Apply gravity
55
+ velocityY += (gravity * deltaTime) / 1000;
56
+ // Apply deceleration
57
+ velocityX *= deceleration;
58
+ velocityY *= deceleration;
59
+ }
60
+ else {
61
+ if (onFinish) {
62
+ onFinish();
63
+ }
102
64
  }
103
65
  });
104
- let $this = h(Container, { justifyContent: 'center', alignItems: 'center', width: '100%', height: '100%' }, h(Container, { ref: 'dialogbox', scale: { x: scaleX }, anchor: [0.5, 0.5], width: 700, height, controls, positionType: 'absolute', bottom: 10 }, [h(Rect, { width: 700, height: 250, color: '#1a1a2e' }), h(Rect, { x: 0, y: 0, width: 700, height, color: '#1a1a2e', alpha: 0.9, borderRadius: 10, border, shadow }), h(Container, { flexDirection: 'row', width: 700, height, alpha: contentOpacity }, h(Container, { flexDirection: 'column' }, [h(Text, { text, color: '#fff', fontSize: 18, margin: 40, typewriter, style: textStyle }), cond(visibleSelection, () => h(component$1, { selectedIndex: 0, items: choices, onSelect }))]))]));
66
+ let $this = h(Text, { x, y, zIndex: 10000, color, scale, size: 30, text });
105
67
  return $this
106
68
  }
107
69
 
@@ -1 +1 @@
1
- {"version":3,"file":"index23.js","sources":["../src/components/gui/dialogbox/index.ce"],"sourcesContent":["<Container justifyContent=\"center\" alignItems=\"center\" width=\"100%\" height=\"100%\">\n <Container\n ref=\"dialogbox\"\n scale={{ x: scaleX }}\n anchor={[0.5, 0.5]}\n width={700}\n height\n controls\n positionType=\"absolute\"\n bottom={10}\n >\n <Rect width={700} height={250} color=\"#1a1a2e\" />\n <Rect\n x={0}\n y={0}\n width={700}\n height\n color=\"#1a1a2e\"\n alpha={0.9}\n borderRadius={10}\n border\n shadow\n />\n <Container\n flexDirection=\"row\"\n width={700}\n height\n alpha={contentOpacity}\n >\n <Container flexDirection=\"column\">\n <Text\n text\n color=\"#fff\"\n fontSize={18}\n margin={40}\n typewriter\n style={textStyle}\n />\n @if (visibleSelection) {\n <Selection selectedIndex={0} items={choices} onSelect />\n }\n </Container>\n </Container>\n</Container> \n\n \n</Container>\n<script>\n import Selection from './selection.ce'\n\n import {\n animatedSignal,\n computed,\n effect,\n signal,\n trigger,\n mount\n } from \"canvasengine\";\n\n import { inject } from \"../../../core/inject\";\n import { RpgClientEngine } from \"../../../RpgClientEngine\";\n\n const {\n message,\n choices: _choices,\n onFinish,\n onInteraction\n } = defineProps();\n\n const client = inject(RpgClientEngine);\n const keyboardControls = client.globalConfig.keyboardControls;\n\n client.stopProcessingInput = true;\n let isDestroyed = false;\n\n const texts = [message()]\n const height = signal(250);\n const isTextCompleted = signal(false);\n\n const drawSpeaker = (g) => {\n g.beginFill(0xffa500); // Orange color\n g.lineStyle(2, 0x000000); // Black border\n g.moveTo(0, 0);\n g.lineTo(70, 0);\n g.lineTo(80, 15);\n g.lineTo(70, 30);\n g.lineTo(0, 30);\n g.lineTo(0, 0);\n g.endFill();\n };\n\n const border = signal({ width: 5, color: \"#595971\" });\n const shadow = signal({ color: \"#000\", blur: 10, offsetX: 10, offsetY: 10 });\n\n const contentOpacity = animatedSignal(0, {\n duration: 1000,\n });\n\n const scaleX = animatedSignal(0, {\n duration: 500,\n });\n\n scaleX.set(1);\n contentOpacity.set(1);\n\n const currentTextIndex = signal(0);\n const currentText = computed(() => texts?.[currentTextIndex()] ?? '');\n const isChoiceDisplayed = signal(false);\n\n const text = computed(() => {\n const current = currentText();\n return typeof current === \"string\" ? current : current.text;\n });\n\n const choices = computed(() => {\n //const current = currentText();\n //return typeof current === \"string\" ? null : current.choices;\n return _choices;\n });\n\n const visibleSelection = computed(() => isChoiceDisplayed() && choices().length != 0)\n\n const triggerSkip = trigger();\n\n const typewriter = {\n speed: 0.3,\n skip: triggerSkip,\n onComplete: () => {\n isTextCompleted.set(true);\n }\n }\n\n const textStyle = {\n wordWrap: true,\n wordWrapWidth: 700 - 256 - 80\n }\n\n const face = signal({ x: 0, y: 0, width: 256, height: 256 });\n\n mount((element) => {\n const [dialogbox] = element.props.children\n return () => {\n dialogbox.directives.controls.onDestroy()\n isDestroyed = true;\n // Wait destroy is finished before start processing input\n setTimeout(() => {\n client.stopProcessingInput = false;\n }, 500)\n }\n })\n\n const controls = signal({\n next: {\n bind: keyboardControls.action,\n keyDown(e) {\n if (isDestroyed) return;\n if (isChoiceDisplayed()) {\n // If choices are displayed, do nothing (wait for selection)\n return;\n }\n\n // If text is still typing, just skip (fast forward) the animation\n if (!isTextCompleted()) {\n triggerSkip.start();\n isTextCompleted.set(true);\n }\n else {\n const isFinished = currentTextIndex() === texts.length - 1;\n currentTextIndex.update((index) => {\n if (index < texts.length - 1) {\n return index + 1;\n }\n return index;\n });\n isChoiceDisplayed.set(false);\n isTextCompleted.set(false);\n if (isFinished && onFinish) {\n onFinish();\n } \n }\n },\n },\n });\n\n const onSelect = (index) => {\n onFinish(index);\n }\n \n effect(() => {\n if (choices().length != 0) {\n isChoiceDisplayed.set(true);\n }\n });\n</script>"],"names":["Selection"],"mappings":"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"}
1
+ {"version":3,"file":"index23.js","sources":["../src/components/effects/hit.ce"],"sourcesContent":["<Text x y zIndex={10000} color scale size={30} text />\n\n<script>\n import { animatedSignal, mount, signal, tick } from \"canvasengine\";\n import { Direction } from \"@rpgjs/common\";\n const {\n text,\n direction,\n onFinish,\n duration,\n color,\n x: positionX,\n y: positionY\n } = defineProps({\n duration: {\n default: 1000\n },\n color: {\n default: 'black'\n }\n });\n\n const scale = animatedSignal(1, {\n duration: duration(),\n });\n\n // Generate random initial position\n const randomPosition = () => Math.floor(Math.random() * 60);\n const initialY = randomPosition();\n const x = signal(positionX());\n const y = signal(positionY() - initialY);\n\n // Initial velocity\n let velocityX = 0;\n let velocityY = 0;\n\n // Set initial velocity based on direction\n const speed = 200;\n switch (direction()) {\n case Direction.Left:\n velocityX = speed;\n break;\n case Direction.Right:\n velocityX = -speed;\n break;\n case Direction.Up:\n velocityY = speed;\n break;\n case Direction.Down:\n velocityY = -speed;\n break;\n }\n\n // Add some randomness to the velocity\n velocityX += (Math.random() - 0.5) * 100;\n velocityY += (Math.random() - 0.5) * 100;\n\n const gravity = 500; // Gravity effect\n const deceleration = 0.98; // Deceleration factor\n\n mount(() => {\n scale.set(0.1);\n });\n\n let elapsedTime = 0;\n\n tick(({ deltaTime }) => {\n elapsedTime += deltaTime;\n \n if (elapsedTime < duration()) {\n // Update position\n x.update((x) => x + (velocityX * deltaTime) / 1000);\n y.update((y) => y + (velocityY * deltaTime) / 1000);\n\n // Apply gravity\n velocityY += (gravity * deltaTime) / 1000;\n\n // Apply deceleration\n velocityX *= deceleration;\n velocityY *= deceleration;\n } else {\n if (onFinish) {\n onFinish();\n }\n }\n });\n</script>\n"],"names":[],"mappings":"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"}
package/dist/index24.js CHANGED
@@ -1,69 +1,19 @@
1
- import { useProps, useDefineProps, animatedSignal, signal, mount, tick, h, Text } from 'canvasengine';
2
- import { Direction } from '@rpgjs/common';
1
+ import { useProps, useDefineProps, h, Sprite } from 'canvasengine';
2
+ import { RpgClientEngine } from './index2.js';
3
+ import { inject } from './index6.js';
3
4
 
4
5
  function component($$props) {
5
6
  useProps($$props);
6
7
  const defineProps = useDefineProps($$props);
7
- var _a = defineProps({
8
- duration: {
9
- default: 1000
10
- },
11
- color: {
12
- default: 'black'
13
- }
14
- }), text = _a.text, direction = _a.direction, onFinish = _a.onFinish, duration = _a.duration, color = _a.color, positionX = _a.x, positionY = _a.y;
15
- var scale = animatedSignal(1, {
16
- duration: duration(),
17
- });
18
- var randomPosition = function () { return Math.floor(Math.random() * 60); };
19
- var initialY = randomPosition();
20
- var x = signal(positionX());
21
- var y = signal(positionY() - initialY);
22
- var velocityX = 0;
23
- var velocityY = 0;
24
- var speed = 200;
25
- switch (direction()) {
26
- case Direction.Left:
27
- velocityX = speed;
28
- break;
29
- case Direction.Right:
30
- velocityX = -200;
31
- break;
32
- case Direction.Up:
33
- velocityY = speed;
34
- break;
35
- case Direction.Down:
36
- velocityY = -200;
37
- break;
38
- }
39
- velocityX += (Math.random() - 0.5) * 100;
40
- velocityY += (Math.random() - 0.5) * 100;
41
- var gravity = 500;
42
- var deceleration = 0.98;
43
- mount(function () {
44
- scale.set(0.1);
45
- });
46
- var elapsedTime = 0;
47
- tick(function (_a) {
48
- var deltaTime = _a.deltaTime;
49
- elapsedTime += deltaTime;
50
- if (elapsedTime < duration()) {
51
- // Update position
52
- x.update(function (x) { return x + (velocityX * deltaTime) / 1000; });
53
- y.update(function (y) { return y + (velocityY * deltaTime) / 1000; });
54
- // Apply gravity
55
- velocityY += (gravity * deltaTime) / 1000;
56
- // Apply deceleration
57
- velocityX *= deceleration;
58
- velocityY *= deceleration;
59
- }
60
- else {
61
- if (onFinish) {
62
- onFinish();
63
- }
64
- }
65
- });
66
- let $this = h(Text, { x, y, zIndex: 10000, color, scale, size: 30, text });
8
+ var _a = defineProps(), x = _a.x, y = _a.y, name = _a.name, onFinish = _a.onFinish;
9
+ var client = inject(RpgClientEngine);
10
+ var spritesheets = client.spritesheets;
11
+ var sheet = {
12
+ definition: spritesheets.get(name()),
13
+ playing: 'default',
14
+ onFinish: onFinish
15
+ };
16
+ let $this = h(Sprite, { sheet, x, y, anchor: 0.5 });
67
17
  return $this
68
18
  }
69
19
 
@@ -1 +1 @@
1
- {"version":3,"file":"index24.js","sources":["../src/components/animations/hit.ce"],"sourcesContent":["<Text x y zIndex={10000} color scale size={30} text />\n\n<script>\n import { animatedSignal, mount, signal, tick } from \"canvasengine\";\n import { Direction } from \"@rpgjs/common\";\n const {\n text,\n direction,\n onFinish,\n duration,\n color,\n x: positionX,\n y: positionY\n } = defineProps({\n duration: {\n default: 1000\n },\n color: {\n default: 'black'\n }\n });\n\n const scale = animatedSignal(1, {\n duration: duration(),\n });\n\n // Generate random initial position\n const randomPosition = () => Math.floor(Math.random() * 60);\n const initialY = randomPosition();\n const x = signal(positionX());\n const y = signal(positionY() - initialY);\n\n // Initial velocity\n let velocityX = 0;\n let velocityY = 0;\n\n // Set initial velocity based on direction\n const speed = 200;\n switch (direction()) {\n case Direction.Left:\n velocityX = speed;\n break;\n case Direction.Right:\n velocityX = -speed;\n break;\n case Direction.Up:\n velocityY = speed;\n break;\n case Direction.Down:\n velocityY = -speed;\n break;\n }\n\n // Add some randomness to the velocity\n velocityX += (Math.random() - 0.5) * 100;\n velocityY += (Math.random() - 0.5) * 100;\n\n const gravity = 500; // Gravity effect\n const deceleration = 0.98; // Deceleration factor\n\n mount(() => {\n scale.set(0.1);\n });\n\n let elapsedTime = 0;\n\n tick(({ deltaTime }) => {\n elapsedTime += deltaTime;\n \n if (elapsedTime < duration()) {\n // Update position\n x.update((x) => x + (velocityX * deltaTime) / 1000);\n y.update((y) => y + (velocityY * deltaTime) / 1000);\n\n // Apply gravity\n velocityY += (gravity * deltaTime) / 1000;\n\n // Apply deceleration\n velocityX *= deceleration;\n velocityY *= deceleration;\n } else {\n if (onFinish) {\n onFinish();\n }\n }\n });\n</script>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index24.js","sources":["../src/components/effects/animation.ce"],"sourcesContent":["<Sprite sheet x y anchor={0.5} />\n\n<script>\n import { signal } from \"canvasengine\";\n import { RpgClientEngine } from \"../../RpgClientEngine\";\n import { inject } from \"../../core/inject\";\n\n const { x, y, name, onFinish } = defineProps();\n\n const client = inject(RpgClientEngine);\n const spritesheets = client.spritesheets;\n\n const sheet = {\n definition: spritesheets.get(name()),\n playing: 'default',\n onFinish\n };\n\n</script>\n"],"names":[],"mappings":";;;;AAOqB,SAAS,SAAS,CAAC,OAAO,EAAE;AACjD,QAAuB,QAAQ,CAAC,OAAO;AACvC,QAAQ,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO;AAClD,QAAQ,IAAI,EAAE,GAAG,WAAW,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,EAAE,CAAC,QAAQ;AAC1F,IAAI,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC;AACpC,IAAI,YAAY,GAAG,MAAM,CAAC,YAAY;AACtC,IAAI,KAAK,GAAG;AACZ,IAAI,UAAU,EAAE,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AACxC,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,QAAQ,EAAE;AACd,CAAC;AACD,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE;AAC1D,QAAQ,OAAO;AACf;;;;"}
package/dist/index25.js CHANGED
@@ -1,22 +1,41 @@
1
- import { useProps, useDefineProps, h, Sprite } from 'canvasengine';
2
- import { RpgClientEngine } from './index2.js';
3
- import { inject } from './index6.js';
1
+ import { Animation, Direction } from '@rpgjs/common';
4
2
 
5
- function component($$props) {
6
- useProps($$props);
7
- const defineProps = useDefineProps($$props);
8
- var _a;
9
- var _b = defineProps(), x = _b.x, y = _b.y, animationName = _b.animationName, graphic = _b.graphic, onFinish = _b.onFinish;
10
- var client = inject(RpgClientEngine);
11
- var spritesheets = client.spritesheets;
12
- var sheet = {
13
- definition: spritesheets.get(graphic()),
14
- playing: (_a = animationName()) !== null && _a !== void 0 ? _a : 'default',
15
- onFinish: onFinish
16
- };
17
- let $this = h(Sprite, { sheet, x, y, anchor: 0.5 });
18
- return $this
3
+ const RMSpritesheet = (framesWidth, framesHeight, frameStand = 1) => {
4
+ if (framesWidth <= frameStand) {
5
+ frameStand = framesWidth - 1;
6
+ }
7
+ const frameY = (direction) => {
8
+ const gap = Math.max(4 - framesHeight, 0);
9
+ return {
10
+ [Direction.Down]: 0,
11
+ [Direction.Left]: Math.max(0, 1 - gap),
12
+ [Direction.Right]: Math.max(0, 2 - gap),
13
+ [Direction.Up]: Math.max(0, 3 - gap)
14
+ }[direction];
15
+ };
16
+ const stand = (direction) => [{ time: 0, frameX: frameStand, frameY: frameY(direction) }];
17
+ const walk = (direction) => {
18
+ const array = [];
19
+ const durationFrame = 10;
20
+ for (let i = 0; i < framesWidth; i++) {
21
+ array.push({ time: i * durationFrame, frameX: i, frameY: frameY(direction) });
22
+ }
23
+ array.push({ time: array[array.length - 1].time + durationFrame });
24
+ return array;
25
+ };
26
+ return {
27
+ textures: {
28
+ [Animation.Stand]: {
29
+ animations: ({ direction }) => [stand(direction)]
30
+ },
31
+ [Animation.Walk]: {
32
+ animations: ({ direction }) => [walk(direction)]
19
33
  }
34
+ },
35
+ framesHeight,
36
+ framesWidth
37
+ };
38
+ };
20
39
 
21
- export { component as default };
40
+ export { RMSpritesheet };
22
41
  //# sourceMappingURL=index25.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index25.js","sources":["../src/components/animations/animation.ce"],"sourcesContent":["<Sprite sheet x y anchor={0.5} />\n\n<script>\n import { RpgClientEngine } from \"../../RpgClientEngine\";\n import { inject } from \"../../core/inject\";\n\n const { x, y, animationName, graphic, onFinish } = defineProps();\n\n const client = inject(RpgClientEngine);\n const spritesheets = client.spritesheets;\n\n const sheet = {\n definition: spritesheets.get(graphic()),\n playing: animationName() ?? 'default',\n onFinish\n };\n</script>\n"],"names":[],"mappings":";;;;AAOqB,SAAS,SAAS,CAAC,OAAO,EAAE;AACjD,QAAuB,QAAQ,CAAC,OAAO;AACvC,QAAQ,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO;AAClD,QAAQ,IAAI,EAAE;AACd,IAAI,EAAE,GAAG,WAAW,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,aAAa,GAAG,EAAE,CAAC,aAAa,EAAE,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG,EAAE,CAAC,QAAQ;AAC1H,IAAI,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC;AACpC,IAAI,YAAY,GAAG,MAAM,CAAC,YAAY;AACtC,IAAI,KAAK,GAAG;AACZ,IAAI,UAAU,EAAE,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;AAC3C,IAAI,OAAO,EAAE,CAAC,EAAE,GAAG,aAAa,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,SAAS;AAC9E,IAAI,QAAQ,EAAE;AACd,CAAC;AACD,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE;AAC1D,QAAQ,OAAO;AACf;;;;"}
1
+ {"version":3,"file":"index25.js","sources":["../src/presets/rmspritesheet.ts"],"sourcesContent":["import { Direction, Animation } from '@rpgjs/common'\n\nexport const RMSpritesheet = (framesWidth: number, framesHeight: number, frameStand: number = 1) => {\n\n if (framesWidth <= frameStand) {\n frameStand = framesWidth - 1\n }\n\n const frameY = direction => {\n const gap = Math.max(4 - framesHeight, 0)\n return {\n [Direction.Down]: 0,\n [Direction.Left]: Math.max(0, 1 - gap),\n [Direction.Right]: Math.max(0, 2 - gap),\n [Direction.Up]: Math.max(0, 3 - gap)\n }[direction]\n }\n\n const stand = (direction: number) => [{ time: 0, frameX: frameStand, frameY: frameY(direction) }]\n const walk = direction => {\n const array: any = []\n const durationFrame = 10\n for (let i = 0; i < framesWidth; i++) {\n array.push({ time: i * durationFrame, frameX: i, frameY: frameY(direction) })\n }\n array.push({ time: array[array.length - 1].time + durationFrame })\n return array\n }\n\n return {\n textures: {\n [Animation.Stand]: {\n animations: ({direction}) => [stand(direction)]\n },\n [Animation.Walk]: {\n animations: ({direction}) => [walk(direction)]\n }\n },\n framesHeight,\n framesWidth\n }\n}"],"names":[],"mappings":";;AAEO,MAAM,aAAgB,GAAA,CAAC,WAAqB,EAAA,YAAA,EAAsB,aAAqB,CAAM,KAAA;AAEhG,EAAA,IAAI,eAAe,UAAY,EAAA;AAC3B,IAAA,UAAA,GAAa,WAAc,GAAA,CAAA;AAAA;AAG/B,EAAA,MAAM,SAAS,CAAa,SAAA,KAAA;AACxB,IAAA,MAAM,GAAM,GAAA,IAAA,CAAK,GAAI,CAAA,CAAA,GAAI,cAAc,CAAC,CAAA;AACxC,IAAO,OAAA;AAAA,MACH,CAAC,SAAU,CAAA,IAAI,GAAG,CAAA;AAAA,MAClB,CAAC,UAAU,IAAI,GAAG,KAAK,GAAI,CAAA,CAAA,EAAG,IAAI,GAAG,CAAA;AAAA,MACrC,CAAC,UAAU,KAAK,GAAG,KAAK,GAAI,CAAA,CAAA,EAAG,IAAI,GAAG,CAAA;AAAA,MACtC,CAAC,UAAU,EAAE,GAAG,KAAK,GAAI,CAAA,CAAA,EAAG,IAAI,GAAG;AAAA,MACrC,SAAS,CAAA;AAAA,GACf;AAEA,EAAA,MAAM,KAAQ,GAAA,CAAC,SAAsB,KAAA,CAAC,EAAE,IAAA,EAAM,CAAG,EAAA,MAAA,EAAQ,UAAY,EAAA,MAAA,EAAQ,MAAO,CAAA,SAAS,GAAG,CAAA;AAChG,EAAA,MAAM,OAAO,CAAa,SAAA,KAAA;AACtB,IAAA,MAAM,QAAa,EAAC;AACpB,IAAA,MAAM,aAAgB,GAAA,EAAA;AACtB,IAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,WAAA,EAAa,CAAK,EAAA,EAAA;AAClC,MAAM,KAAA,CAAA,IAAA,CAAK,EAAE,IAAA,EAAM,CAAI,GAAA,aAAA,EAAe,MAAQ,EAAA,CAAA,EAAG,MAAQ,EAAA,MAAA,CAAO,SAAS,CAAA,EAAG,CAAA;AAAA;AAEhF,IAAM,KAAA,CAAA,IAAA,CAAK,EAAE,IAAA,EAAM,KAAM,CAAA,KAAA,CAAM,SAAS,CAAC,CAAA,CAAE,IAAO,GAAA,aAAA,EAAe,CAAA;AACjE,IAAO,OAAA,KAAA;AAAA,GACX;AAEA,EAAO,OAAA;AAAA,IACH,QAAU,EAAA;AAAA,MACN,CAAC,SAAU,CAAA,KAAK,GAAG;AAAA,QACf,UAAA,EAAY,CAAC,EAAC,SAAA,OAAe,CAAC,KAAA,CAAM,SAAS,CAAC;AAAA,OAClD;AAAA,MACA,CAAC,SAAU,CAAA,IAAI,GAAG;AAAA,QACd,UAAA,EAAY,CAAC,EAAC,SAAA,OAAe,CAAC,IAAA,CAAK,SAAS,CAAC;AAAA;AACjD,KACJ;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACJ;AACJ;;;;"}
package/dist/index26.js CHANGED
@@ -1,27 +1,5 @@
1
- const AnimationSpritesheetPreset = (framesWidth, framesHeight) => {
2
- const animations = [];
3
- for (let y = 0; y < framesHeight; y++) {
4
- for (let x = 0; x < framesWidth; x++) {
5
- const frameIndex = y * framesWidth + x;
6
- animations.push({
7
- time: frameIndex * 10,
8
- frameX: x,
9
- frameY: y
10
- });
11
- }
12
- }
13
- return {
14
- framesWidth,
15
- framesHeight,
16
- textures: {
17
- default: {
18
- animations: () => [
19
- animations
20
- ]
21
- }
22
- }
23
- };
24
- };
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
25
3
 
26
- export { AnimationSpritesheetPreset };
4
+ export { __name };
27
5
  //# sourceMappingURL=index26.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index26.js","sources":["../src/presets/animation.ts"],"sourcesContent":["/**\n * Creates an animation spritesheet preset with automatic frame generation\n * \n * This function generates animation frames based on the provided width and height dimensions.\n * It creates a sequence of frames that progresses through the spritesheet from left to right,\n * top to bottom, with each frame having a 10ms time increment.\n * \n * @param {number} framesWidth - The number of frames horizontally in the spritesheet\n * @param {number} framesHeight - The number of frames vertically in the spritesheet\n * @returns {Object} Animation preset configuration object\n * \n * @example\n * ```javascript\n * // For a 4x4 spritesheet\n * const preset = AnimationSpritesheetPreset(4, 4);\n * // This will generate 16 frames with coordinates from (0,0) to (3,3)\n * ```\n */\nexport const AnimationSpritesheetPreset = (framesWidth: number, framesHeight: number) => {\n \n const animations: Array<{ time: number; frameX: number; frameY: number }> = [];\n\n for (let y = 0; y < framesHeight; y++) {\n for (let x = 0; x < framesWidth; x++) {\n const frameIndex = y * framesWidth + x;\n animations.push({ \n time: frameIndex * 10, \n frameX: x, \n frameY: y \n });\n }\n }\n \n return {\n framesWidth,\n framesHeight,\n textures: {\n default: {\n animations: () => [\n animations\n ],\n }\n }\n };\n};\n "],"names":[],"mappings":"AAkBa,MAAA,0BAAA,GAA6B,CAAC,WAAA,EAAqB,YAAyB,KAAA;AAErF,EAAA,MAAM,aAAsE,EAAC;AAE7E,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,YAAA,EAAc,CAAK,EAAA,EAAA;AACnC,IAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,WAAA,EAAa,CAAK,EAAA,EAAA;AAClC,MAAM,MAAA,UAAA,GAAa,IAAI,WAAc,GAAA,CAAA;AACrC,MAAA,UAAA,CAAW,IAAK,CAAA;AAAA,QACZ,MAAM,UAAa,GAAA,EAAA;AAAA,QACnB,MAAQ,EAAA,CAAA;AAAA,QACR,MAAQ,EAAA;AAAA,OACX,CAAA;AAAA;AACL;AAGJ,EAAO,OAAA;AAAA,IACH,WAAA;AAAA,IACA,YAAA;AAAA,IACA,QAAU,EAAA;AAAA,MACN,OAAS,EAAA;AAAA,QACL,YAAY,MAAM;AAAA,UACd;AAAA;AACJ;AACJ;AACJ,GACJ;AACJ;;;;"}
1
+ {"version":3,"file":"index26.js","sources":["../../../node_modules/.pnpm/@signe+sync@2.3.3/node_modules/@signe/sync/dist/chunk-7QVYU63E.js"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\nexport {\n __name\n};\n//# sourceMappingURL=chunk-7QVYU63E.js.map"],"names":[],"mappings":"AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc;AAClC,IAAC,MAAM,GAAG,CAAC,MAAM,EAAE,KAAK,KAAK,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE;;;;","x_google_ignoreList":[0]}