modern-canvas 0.6.4 → 0.6.6

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/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { defineProperty, getDeclarations, parseColor, property, RawWeakMap as RawWeakMap$1, isGradient, clearUndef, idGenerator, normalizeFill, isNone, normalizeBackground, normalizeForeground, normalizeOutline, normalizeShadow, normalizeShape, getDefaultStyle, normalizeText } from 'modern-idoc';
1
+ import { defineProperty, EventEmitter, getDeclarations, parseColor, property, RawWeakMap as RawWeakMap$1, isGradient, clearUndef, idGenerator, normalizeFill, isNone, normalizeBackground, normalizeForeground, normalizeOutline, normalizeShadow, normalizeShape, getDefaultStyle, normalizeText } from 'modern-idoc';
2
2
  import { extend } from 'colord';
3
3
  import namesPlugin from 'colord/plugins/names';
4
4
  import { Path2D, Path2DSet, svgToDom, svgToPath2DSet, Matrix3 as Matrix3$1 } from 'modern-path2d';
@@ -15,7 +15,7 @@ function customNode(name, defaultProperties) {
15
15
  });
16
16
  if (defaultProperties) {
17
17
  Object.keys(defaultProperties).forEach((key) => {
18
- defineProperty(constructor.prototype, key, {
18
+ defineProperty(constructor, key, {
19
19
  fallback: defaultProperties[key]
20
20
  });
21
21
  });
@@ -125,245 +125,6 @@ async function nextTick(cb) {
125
125
  });
126
126
  }
127
127
 
128
- class EventEmitter {
129
- eventListeners = /* @__PURE__ */ new Map();
130
- removeAllListeners() {
131
- this.eventListeners.clear();
132
- return this;
133
- }
134
- hasEventListener(event) {
135
- return this.eventListeners.has(event);
136
- }
137
- on(type, listener, options) {
138
- const object = { value: listener, options };
139
- const listeners = this.eventListeners.get(type);
140
- if (!listeners) {
141
- this.eventListeners.set(type, object);
142
- } else if (Array.isArray(listeners)) {
143
- listeners.push(object);
144
- } else {
145
- this.eventListeners.set(type, [listeners, object]);
146
- }
147
- return this;
148
- }
149
- once(type, listener) {
150
- return this.on(type, listener, { once: true });
151
- }
152
- off(type, listener, options) {
153
- if (!listener) {
154
- this.eventListeners.delete(type);
155
- return this;
156
- }
157
- const listeners = this.eventListeners.get(type);
158
- if (!listeners) {
159
- return this;
160
- }
161
- if (Array.isArray(listeners)) {
162
- const events = [];
163
- for (let i = 0, length = listeners.length; i < length; i++) {
164
- const object = listeners[i];
165
- if (object.value !== listener || typeof options === "object" && options?.once && (typeof object.options === "boolean" || !object.options?.once)) {
166
- events.push(object);
167
- }
168
- }
169
- if (events.length) {
170
- this.eventListeners.set(type, events.length === 1 ? events[0] : events);
171
- } else {
172
- this.eventListeners.delete(type);
173
- }
174
- } else {
175
- if (listeners.value === listener && (typeof options === "boolean" || !options?.once || (typeof listeners.options === "boolean" || listeners.options?.once))) {
176
- this.eventListeners.delete(type);
177
- }
178
- }
179
- return this;
180
- }
181
- emit(type, ...args) {
182
- const listeners = this.eventListeners.get(type);
183
- if (listeners) {
184
- if (Array.isArray(listeners)) {
185
- for (let len = listeners.length, i = 0; i < len; i++) {
186
- const object = listeners[i];
187
- if (typeof object.options === "object" && object.options?.once) {
188
- this.off(type, object.value, object.options);
189
- }
190
- object.value.apply(this, args);
191
- }
192
- } else {
193
- if (typeof listeners.options === "object" && listeners.options?.once) {
194
- this.off(type, listeners.value, listeners.options);
195
- }
196
- listeners.value.apply(this, args);
197
- }
198
- return true;
199
- } else {
200
- return false;
201
- }
202
- }
203
- }
204
-
205
- let IID = 0;
206
- class CoreObject extends EventEmitter {
207
- instanceId = ++IID;
208
- _customPropertyAccessor;
209
- _properties = /* @__PURE__ */ new Map();
210
- _updatedProperties = /* @__PURE__ */ new Map();
211
- _changedProperties = /* @__PURE__ */ new Set();
212
- _updatingPromise = Promise.resolve();
213
- _updating = false;
214
- useCustomPropertyAccessor(accessor) {
215
- this._customPropertyAccessor = accessor;
216
- this.getPropertyDeclarations().forEach((declaration, key) => {
217
- const newValue = accessor.get(key, () => void 0);
218
- const oldValue = this._properties.get(key);
219
- if (newValue === void 0) {
220
- if (oldValue !== void 0) {
221
- accessor.set(key, oldValue);
222
- }
223
- } else if (newValue !== oldValue) {
224
- this._properties.set(key, newValue);
225
- this._updateProperty(key, newValue, oldValue, declaration);
226
- this.emit("updateProperty", key, newValue, oldValue, declaration);
227
- }
228
- });
229
- return this;
230
- }
231
- getter(key, context) {
232
- if (context.declaration.protected) {
233
- return this[context.internalKey];
234
- } else {
235
- return this._customPropertyAccessor ? this._customPropertyAccessor.get(key, () => this._properties.get(key)) : this._properties.get(key);
236
- }
237
- }
238
- setter(key, value, context) {
239
- if (context.declaration.protected) {
240
- this[context.internalKey] = value;
241
- } else {
242
- if (this._customPropertyAccessor) {
243
- this._customPropertyAccessor.set(key, value);
244
- }
245
- this._properties.set(key, value);
246
- }
247
- }
248
- equal(target) {
249
- return Boolean(target && this.instanceId === target.instanceId);
250
- }
251
- async _enqueueUpdate() {
252
- this._updating = true;
253
- try {
254
- await this._updatingPromise;
255
- } catch (e) {
256
- Promise.reject(e);
257
- }
258
- await nextTick();
259
- if (!this._updating)
260
- return;
261
- this.update();
262
- this._updating = false;
263
- }
264
- update() {
265
- this._update(this._updatedProperties);
266
- this._updatedProperties = /* @__PURE__ */ new Map();
267
- }
268
- // eslint-disable-next-line unused-imports/no-unused-vars
269
- _update(changed) {
270
- }
271
- // eslint-disable-next-line unused-imports/no-unused-vars
272
- _updateProperty(key, value, oldValue, declaration) {
273
- }
274
- isDirty(key) {
275
- return this._updatedProperties.has(key);
276
- }
277
- getPropertyDeclarations() {
278
- return getDeclarations(this.constructor);
279
- }
280
- getPropertyDeclaration(key) {
281
- return this.getPropertyDeclarations().get(key);
282
- }
283
- getProperty(key) {
284
- return this[key];
285
- }
286
- setProperty(key, value) {
287
- this[key] = value;
288
- return this;
289
- }
290
- getProperties(keys) {
291
- const properties = {};
292
- for (const [name, property] of this.getPropertyDeclarations()) {
293
- if (!property.protected && !property.alias && (!keys || keys.includes(name))) {
294
- properties[name] = this.getProperty(name);
295
- }
296
- }
297
- return properties;
298
- }
299
- setProperties(properties) {
300
- if (properties && typeof properties === "object") {
301
- for (const [name] of this.getPropertyDeclarations()) {
302
- if (name in properties) {
303
- this.setProperty(name, properties[name]);
304
- }
305
- }
306
- }
307
- return this;
308
- }
309
- resetProperties() {
310
- for (const [name, property] of this.getPropertyDeclarations()) {
311
- this.setProperty(
312
- name,
313
- typeof property.fallback === "function" ? property.fallback() : property.fallback
314
- );
315
- }
316
- return this;
317
- }
318
- onUpdateProperty(key, newValue, oldValue, declaration) {
319
- this.requestUpdate(key, newValue, oldValue, declaration);
320
- }
321
- requestUpdate(key, newValue, oldValue, declaration) {
322
- if (key !== void 0) {
323
- if (!Object.is(newValue, oldValue)) {
324
- this._updatedProperties.set(key, oldValue);
325
- this._changedProperties.add(key);
326
- declaration ??= this.getPropertyDeclaration(key);
327
- this._updateProperty(key, newValue, oldValue, declaration);
328
- this.emit("updateProperty", key, newValue, oldValue, declaration);
329
- } else {
330
- return;
331
- }
332
- }
333
- if (!this._updating) {
334
- this._updatingPromise = this._enqueueUpdate();
335
- }
336
- }
337
- toJSON() {
338
- const json = {};
339
- this._properties.forEach((value, key) => {
340
- if (value === void 0) {
341
- return;
342
- }
343
- if (value && typeof value === "object") {
344
- if ("toJSON" in value && typeof value.toJSON === "function") {
345
- json[key] = value.toJSON();
346
- } else {
347
- json[key] = { ...value };
348
- }
349
- } else {
350
- json[key] = value;
351
- }
352
- });
353
- return json;
354
- }
355
- clone() {
356
- return new this.constructor(this.toJSON());
357
- }
358
- free() {
359
- this.removeAllListeners();
360
- }
361
- }
362
-
363
- class RefCounted extends CoreObject {
364
- //
365
- }
366
-
367
128
  const PI = Math.PI;
368
129
  const PI_2 = PI * 2;
369
130
  let UID = 0;
@@ -1049,6 +810,172 @@ class Input extends EventEmitter {
1049
810
  };
1050
811
  }
1051
812
 
813
+ let IID = 0;
814
+ class CoreObject extends EventEmitter {
815
+ instanceId = ++IID;
816
+ _customPropertyAccessor;
817
+ _properties = /* @__PURE__ */ new Map();
818
+ _updatedProperties = /* @__PURE__ */ new Map();
819
+ _changedProperties = /* @__PURE__ */ new Set();
820
+ _updatingPromise = Promise.resolve();
821
+ _updating = false;
822
+ useCustomPropertyAccessor(accessor) {
823
+ this._customPropertyAccessor = accessor;
824
+ this.getPropertyDeclarations().forEach((declaration, key) => {
825
+ const newValue = accessor.get(key, () => void 0);
826
+ const oldValue = this._properties.get(key);
827
+ if (newValue === void 0) {
828
+ if (oldValue !== void 0) {
829
+ accessor.set(key, oldValue);
830
+ }
831
+ } else if (newValue !== oldValue) {
832
+ if (declaration.alias && declaration.alias !== key) {
833
+ this.setProperty(key, newValue);
834
+ } else {
835
+ this._properties.set(key, newValue);
836
+ }
837
+ this._updateProperty(key, newValue, oldValue, declaration);
838
+ this.emit("updateProperty", key, newValue, oldValue, declaration);
839
+ }
840
+ });
841
+ return this;
842
+ }
843
+ getter(key, context) {
844
+ if (context?.declaration.protected) {
845
+ return this[context.internalKey];
846
+ } else {
847
+ return this._customPropertyAccessor ? this._customPropertyAccessor.get(key, () => this._properties.get(key)) : this._properties.get(key);
848
+ }
849
+ }
850
+ setter(key, value, context) {
851
+ if (context?.declaration.protected) {
852
+ this[context.internalKey] = value;
853
+ } else {
854
+ if (this._customPropertyAccessor) {
855
+ this._customPropertyAccessor.set(key, value);
856
+ }
857
+ this._properties.set(key, value);
858
+ }
859
+ }
860
+ equal(target) {
861
+ return Boolean(target && this.instanceId === target.instanceId);
862
+ }
863
+ async _enqueueUpdate() {
864
+ this._updating = true;
865
+ try {
866
+ await this._updatingPromise;
867
+ } catch (e) {
868
+ Promise.reject(e);
869
+ }
870
+ await nextTick();
871
+ if (!this._updating)
872
+ return;
873
+ this.update();
874
+ this._updating = false;
875
+ }
876
+ update() {
877
+ this._update(this._updatedProperties);
878
+ this._updatedProperties = /* @__PURE__ */ new Map();
879
+ }
880
+ // eslint-disable-next-line unused-imports/no-unused-vars
881
+ _update(changed) {
882
+ }
883
+ // eslint-disable-next-line unused-imports/no-unused-vars
884
+ _updateProperty(key, value, oldValue, declaration) {
885
+ }
886
+ isDirty(key) {
887
+ return this._updatedProperties.has(key);
888
+ }
889
+ getPropertyDeclarations() {
890
+ return getDeclarations(this.constructor);
891
+ }
892
+ getPropertyDeclaration(key) {
893
+ return this.getPropertyDeclarations().get(key);
894
+ }
895
+ getProperty(key) {
896
+ return this[key];
897
+ }
898
+ setProperty(key, value) {
899
+ this[key] = value;
900
+ return this;
901
+ }
902
+ getProperties(keys) {
903
+ const properties = {};
904
+ for (const [name, property] of this.getPropertyDeclarations()) {
905
+ if (!property.protected && !property.alias && (!keys || keys.includes(name))) {
906
+ properties[name] = this.getProperty(name);
907
+ }
908
+ }
909
+ return properties;
910
+ }
911
+ setProperties(properties) {
912
+ if (properties && typeof properties === "object") {
913
+ for (const [name] of this.getPropertyDeclarations()) {
914
+ if (name in properties) {
915
+ this.setProperty(name, properties[name]);
916
+ }
917
+ }
918
+ }
919
+ return this;
920
+ }
921
+ resetProperties() {
922
+ for (const [name, property] of this.getPropertyDeclarations()) {
923
+ this.setProperty(
924
+ name,
925
+ typeof property.fallback === "function" ? property.fallback() : property.fallback
926
+ );
927
+ }
928
+ return this;
929
+ }
930
+ onUpdateProperty(key, newValue, oldValue, declaration) {
931
+ this.requestUpdate(key, newValue, oldValue, declaration);
932
+ }
933
+ requestUpdate(key, newValue, oldValue, declaration) {
934
+ if (key !== void 0) {
935
+ if (!Object.is(newValue, oldValue)) {
936
+ this._updatedProperties.set(key, oldValue);
937
+ this._changedProperties.add(key);
938
+ declaration ??= this.getPropertyDeclaration(key);
939
+ this._updateProperty(key, newValue, oldValue, declaration);
940
+ this.emit("updateProperty", key, newValue, oldValue, declaration);
941
+ } else {
942
+ return;
943
+ }
944
+ }
945
+ if (!this._updating) {
946
+ this._updatingPromise = this._enqueueUpdate();
947
+ }
948
+ }
949
+ toJSON() {
950
+ const json = {};
951
+ this._properties.forEach((value, key) => {
952
+ if (value === void 0) {
953
+ return;
954
+ }
955
+ if (value && typeof value === "object") {
956
+ if ("toJSON" in value && typeof value.toJSON === "function") {
957
+ json[key] = value.toJSON();
958
+ } else {
959
+ json[key] = { ...value };
960
+ }
961
+ } else {
962
+ json[key] = value;
963
+ }
964
+ });
965
+ return json;
966
+ }
967
+ clone() {
968
+ return new this.constructor(this.toJSON());
969
+ }
970
+ free() {
971
+ this.removeAllListeners();
972
+ }
973
+ }
974
+
975
+ class RefCounted extends CoreObject {
976
+ //
977
+ }
978
+
1052
979
  class Resource extends RefCounted {
1053
980
  //
1054
981
  }
@@ -9320,7 +9247,7 @@ class BaseElement2DStyle extends Resource {
9320
9247
  const defaultStyles$1 = getDefaultStyle();
9321
9248
  for (const key in defaultStyles$1) {
9322
9249
  const fallback = defaultStyles$1[key];
9323
- defineProperty(BaseElement2DStyle.prototype, key, { fallback });
9250
+ defineProperty(BaseElement2DStyle, key, { fallback });
9324
9251
  }
9325
9252
 
9326
9253
  var __defProp$h = Object.defineProperty;
@@ -9336,6 +9263,15 @@ class BaseElement2DText extends CoreObject {
9336
9263
  constructor(parent) {
9337
9264
  super();
9338
9265
  this.parent = parent;
9266
+ this.base.on("updateProperty", (...args) => {
9267
+ switch (args[0]) {
9268
+ case "content":
9269
+ case "effects":
9270
+ this.setter(args[0], args[1]);
9271
+ break;
9272
+ }
9273
+ this._updateProperty(...args);
9274
+ });
9339
9275
  }
9340
9276
  base = new Text();
9341
9277
  measureResult;
@@ -9883,7 +9819,7 @@ const defaultStyles = {
9883
9819
  height: 0
9884
9820
  };
9885
9821
  for (const key in defaultStyles) {
9886
- defineProperty(Element2DStyle.prototype, key, { fallback: defaultStyles[key] });
9822
+ defineProperty(Element2DStyle, key, { fallback: defaultStyles[key] });
9887
9823
  }
9888
9824
 
9889
9825
  var __getOwnPropDesc$j = Object.getOwnPropertyDescriptor;
@@ -12837,13 +12773,13 @@ let Scaler = class extends Node {
12837
12773
  }
12838
12774
  };
12839
12775
  __decorateClass$4([
12840
- property()
12776
+ property({ default: 1 })
12841
12777
  ], Scaler.prototype, "value", 2);
12842
12778
  __decorateClass$4([
12843
- property()
12779
+ property({ default: 0.05 })
12844
12780
  ], Scaler.prototype, "minValue", 2);
12845
12781
  __decorateClass$4([
12846
- property()
12782
+ property({ default: 10 })
12847
12783
  ], Scaler.prototype, "maxValue", 2);
12848
12784
  Scaler = __decorateClass$4([
12849
12785
  customNode("Scaler", {
@@ -13983,4 +13919,4 @@ async function render(options) {
13983
13919
  });
13984
13920
  }
13985
13921
 
13986
- export { AnimatedTexture, Animation, Assets, Audio, AudioPipeline, AudioProcessor, AudioSpectrum, AudioWaveform, BaseElement2D, BaseElement2DBackground, BaseElement2DFill, BaseElement2DForeground, BaseElement2DOutline, BaseElement2DShadow, BaseElement2DShape, BaseElement2DStyle, BaseElement2DText, CanvasContext, CanvasItem, CanvasItemEditor, CanvasTexture, Color, ColorAdjustEffect, ColorFilterEffect, ColorMatrix, ColorOverlayEffect, ColorRemoveEffect, ColorReplaceEffect, ColorTexture, Control, CoreObject, DEG_TO_RAD, DEVICE_PIXEL_RATIO, DropShadowEffect, Effect, EffectMaterial, Element2D, Element2DStyle, EmbossEffect, Engine, EventEmitter, FlexElement2D, FlexElement2DStyle, FlexLayout, FontLoader, GIFLoader, GaussianBlurEffect, Geometry, GlitchEffect, GodrayEffect, GradientTexture, HTMLAudio, HTMLAudioContext, HTMLSound, IN_BROWSER, Image2D, ImageTexture, IndexBuffer, Input, InputEvent, JSONLoader, KawaseBlurEffect, KawaseTransition, LeftEraseTransition, Loader, Lottie2D, LottieLoader, MainLoop, MaskEffect, Material, Matrix, Matrix2, Matrix3, Matrix4, MouseInputEvent, Node, Node2D, OutlineEffect, PI, PI_2, PixelateEffect, PixelsTexture, PointerInputEvent, Projection2D, QuadGeometry, QuadUvGeometry, RAD_TO_DEG, Range, RawWeakMap, Rect2, RefCounted, Renderer, Resource, Ruler, SUPPORTS_AUDIO_CONTEXT, SUPPORTS_CLICK_EVENTS, SUPPORTS_CREATE_IMAGE_BITMAP, SUPPORTS_IMAGE_BITMAP, SUPPORTS_MOUSE_EVENTS, SUPPORTS_OFFLINE_AUDIO_CONTEXT, SUPPORTS_POINTER_EVENTS, SUPPORTS_RESIZE_OBSERVER, SUPPORTS_TOUCH_EVENTS, SUPPORTS_WEBGL2, SUPPORTS_WEBKIT_AUDIO_CONTEXT, SUPPORTS_WEBKIT_OFFLINE_AUDIO_CONTEXT, SUPPORTS_WEB_AUDIO, SUPPORTS_WHEEL_EVENTS, Scaler, SceneTree, ScrollBar, Text2D, TextLoader, Texture2D, TextureLoader, TextureRect2D, Ticker, TiltShiftTransition, Timeline, TimelineNode, Transform2D, TransformRect2D, Transition, TwistTransition, UvGeometry, UvMaterial, Vector, Vector2, Vector3, Vector4, VertexAttribute, VertexBuffer, Video2D, VideoLoader, VideoTexture, Viewport, ViewportTexture, WebAudio, WebAudioContext, WebGLBatch2DModule, WebGLBlendMode, WebGLBufferModule, WebGLFramebufferModule, WebGLMaskModule, WebGLModule, WebGLProgramModule, WebGLRenderer, WebGLScissorModule, WebGLState, WebGLStateModule, WebGLStencilModule, WebGLTextureModule, WebGLVertexArrayModule, WebGLViewportModule, WebSound, WheelInputEvent, XScrollBar, YScrollBar, ZoomBlurEffect, assets, clamp, clampFrag, createHTMLCanvas, createNode, crossOrigin, cubicBezier, curves, customNode, customNodes, defaultOptions, determineCrossOrigin, ease, easeIn, easeInOut, easeOut, frag$1 as frag, getDefaultCssPropertyValue, isCanvasElement, isElementNode, isImageElement, isPow2, isVideoElement, isWebgl2, lerp, linear, log2, mapWebGLBlendModes, nextPow2, nextTick, parseCSSFilter, parseCSSTransform, parseCSSTransformOrigin, parseCssFunctions, parseCssProperty, render, timingFunctions, uid };
13922
+ export { AnimatedTexture, Animation, Assets, Audio, AudioPipeline, AudioProcessor, AudioSpectrum, AudioWaveform, BaseElement2D, BaseElement2DBackground, BaseElement2DFill, BaseElement2DForeground, BaseElement2DOutline, BaseElement2DShadow, BaseElement2DShape, BaseElement2DStyle, BaseElement2DText, CanvasContext, CanvasItem, CanvasItemEditor, CanvasTexture, Color, ColorAdjustEffect, ColorFilterEffect, ColorMatrix, ColorOverlayEffect, ColorRemoveEffect, ColorReplaceEffect, ColorTexture, Control, CoreObject, DEG_TO_RAD, DEVICE_PIXEL_RATIO, DropShadowEffect, Effect, EffectMaterial, Element2D, Element2DStyle, EmbossEffect, Engine, FlexElement2D, FlexElement2DStyle, FlexLayout, FontLoader, GIFLoader, GaussianBlurEffect, Geometry, GlitchEffect, GodrayEffect, GradientTexture, HTMLAudio, HTMLAudioContext, HTMLSound, IN_BROWSER, Image2D, ImageTexture, IndexBuffer, Input, InputEvent, JSONLoader, KawaseBlurEffect, KawaseTransition, LeftEraseTransition, Loader, Lottie2D, LottieLoader, MainLoop, MaskEffect, Material, Matrix, Matrix2, Matrix3, Matrix4, MouseInputEvent, Node, Node2D, OutlineEffect, PI, PI_2, PixelateEffect, PixelsTexture, PointerInputEvent, Projection2D, QuadGeometry, QuadUvGeometry, RAD_TO_DEG, Range, RawWeakMap, Rect2, RefCounted, Renderer, Resource, Ruler, SUPPORTS_AUDIO_CONTEXT, SUPPORTS_CLICK_EVENTS, SUPPORTS_CREATE_IMAGE_BITMAP, SUPPORTS_IMAGE_BITMAP, SUPPORTS_MOUSE_EVENTS, SUPPORTS_OFFLINE_AUDIO_CONTEXT, SUPPORTS_POINTER_EVENTS, SUPPORTS_RESIZE_OBSERVER, SUPPORTS_TOUCH_EVENTS, SUPPORTS_WEBGL2, SUPPORTS_WEBKIT_AUDIO_CONTEXT, SUPPORTS_WEBKIT_OFFLINE_AUDIO_CONTEXT, SUPPORTS_WEB_AUDIO, SUPPORTS_WHEEL_EVENTS, Scaler, SceneTree, ScrollBar, Text2D, TextLoader, Texture2D, TextureLoader, TextureRect2D, Ticker, TiltShiftTransition, Timeline, TimelineNode, Transform2D, TransformRect2D, Transition, TwistTransition, UvGeometry, UvMaterial, Vector, Vector2, Vector3, Vector4, VertexAttribute, VertexBuffer, Video2D, VideoLoader, VideoTexture, Viewport, ViewportTexture, WebAudio, WebAudioContext, WebGLBatch2DModule, WebGLBlendMode, WebGLBufferModule, WebGLFramebufferModule, WebGLMaskModule, WebGLModule, WebGLProgramModule, WebGLRenderer, WebGLScissorModule, WebGLState, WebGLStateModule, WebGLStencilModule, WebGLTextureModule, WebGLVertexArrayModule, WebGLViewportModule, WebSound, WheelInputEvent, XScrollBar, YScrollBar, ZoomBlurEffect, assets, clamp, clampFrag, createHTMLCanvas, createNode, crossOrigin, cubicBezier, curves, customNode, customNodes, defaultOptions, determineCrossOrigin, ease, easeIn, easeInOut, easeOut, frag$1 as frag, getDefaultCssPropertyValue, isCanvasElement, isElementNode, isImageElement, isPow2, isVideoElement, isWebgl2, lerp, linear, log2, mapWebGLBlendModes, nextPow2, nextTick, parseCSSFilter, parseCSSTransform, parseCSSTransformOrigin, parseCssFunctions, parseCssProperty, render, timingFunctions, uid };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "modern-canvas",
3
3
  "type": "module",
4
- "version": "0.6.4",
4
+ "version": "0.6.6",
5
5
  "packageManager": "pnpm@9.15.1",
6
6
  "description": "A JavaScript WebGL rendering engine.",
7
7
  "author": "wxm",
@@ -70,9 +70,9 @@
70
70
  "colord": "^2.9.3",
71
71
  "earcut": "^3.0.1",
72
72
  "modern-font": "^0.4.1",
73
- "modern-idoc": "^0.7.7",
73
+ "modern-idoc": "^0.8.2",
74
74
  "modern-path2d": "^1.4.1",
75
- "modern-text": "^1.5.0",
75
+ "modern-text": "^1.6.1",
76
76
  "yoga-layout": "^3.2.1"
77
77
  },
78
78
  "devDependencies": {
@@ -88,7 +88,7 @@
88
88
  "simple-git-hooks": "^2.13.0",
89
89
  "typescript": "^5.8.3",
90
90
  "unbuild": "^3.5.0",
91
- "vite": "^7.0.0",
91
+ "vite": "^7.0.2",
92
92
  "vitest": "^3.2.4"
93
93
  },
94
94
  "simple-git-hooks": {