@opendaw/lib-dom 0.0.63 → 0.0.65

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/fonts.d.ts CHANGED
@@ -5,5 +5,4 @@ export type FontFaceProperties = {
5
5
  "src": string;
6
6
  };
7
7
  export declare const loadFont: (properties: FontFaceProperties) => Promise<void>;
8
- export declare const getFontSizeForHeight: (context: CanvasRenderingContext2D, fontFamily: string, fontSize: number) => number;
9
8
  //# sourceMappingURL=fonts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAAG;IAC7B,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;IAC7C,aAAa,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAA;IAC5I,KAAK,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,eAAO,MAAM,QAAQ,GAAU,YAAY,kBAAkB,kBAe5D,CAAA;AAGD,eAAO,MAAM,oBAAoB,GAAI,SAAS,wBAAwB,EACjC,YAAY,MAAM,EAClB,UAAU,MAAM,KAAG,MAKvD,CAAA"}
1
+ {"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAAG;IAC7B,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;IAC7C,aAAa,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAA;IAC5I,KAAK,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,eAAO,MAAM,QAAQ,GAAU,YAAY,kBAAkB,kBAe5D,CAAA"}
package/dist/fonts.js CHANGED
@@ -15,10 +15,3 @@ export const loadFont = async (properties) => {
15
15
  console.error(error);
16
16
  }
17
17
  };
18
- // suggested by claude.ai to compensate variants on Mac/Windows
19
- export const getFontSizeForHeight = (context, fontFamily, fontSize) => {
20
- context.font = `${fontSize}px ${fontFamily}, sans-serif`;
21
- const metrics = context.measureText("M"); // Use 'M' or your typical character
22
- const actualHeight = metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent;
23
- return (fontSize / actualHeight) * fontSize;
24
- };
package/dist/index.d.ts CHANGED
@@ -17,5 +17,6 @@ export * from "./shortcut-definitions";
17
17
  export * from "./shortcut-manager";
18
18
  export * from "./stream";
19
19
  export * from "./svg";
20
+ export * from "./tasks";
20
21
  export * from "./terminable";
21
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,OAAO,CAAA;AACrB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,wBAAwB,CAAA;AACtC,cAAc,oBAAoB,CAAA;AAClC,cAAc,UAAU,CAAA;AACxB,cAAc,OAAO,CAAA;AACrB,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,OAAO,CAAA;AACrB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,wBAAwB,CAAA;AACtC,cAAc,oBAAoB,CAAA;AAClC,cAAc,UAAU,CAAA;AACxB,cAAc,OAAO,CAAA;AACrB,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA"}
package/dist/index.js CHANGED
@@ -25,4 +25,5 @@ export * from "./shortcut-definitions";
25
25
  export * from "./shortcut-manager";
26
26
  export * from "./stream";
27
27
  export * from "./svg";
28
+ export * from "./tasks";
28
29
  export * from "./terminable";
@@ -1 +1 @@
1
- {"version":3,"file":"shortcut-manager.d.ts","sourceRoot":"","sources":["../src/shortcut-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,GAAG,EAEH,SAAS,EAET,KAAK,EAGL,QAAQ,EACR,MAAM,EACN,SAAS,EAET,QAAQ,EACR,YAAY,EACZ,UAAU,EAEb,MAAM,kBAAkB,CAAA;AAMzB,qBAAa,eAAe;;IAExB,MAAM,CAAC,GAAG,IAAI,eAAe;IAE7B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAIhC,OAAO;IAKP,aAAa,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,eAAe;IAanG,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAIxC,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;CAoB1C;AAED,qBAAa,eAAgB,YAAW,UAAU;;gBAOlC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG;IAMlE,IAAI,MAAM,IAAI,OAAO,CAA0B;IAC/C,IAAI,IAAI,IAAI,MAAM,CAAoB;IACtC,IAAI,QAAQ,IAAI,GAAG,CAAwB;IAC3C,IAAI,OAAO,IAAI,aAAa,CAAC,aAAa,CAAC,CAAuB;IAElE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,YAAY;IAQlH,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAExC,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC;IAE3C,SAAS,IAAI,IAAI;CACpB;AAED,qBAAa,QAAQ;;IACjB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,QAAQ;IAIjG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;IAUnD,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC;IA2DxD,OAAO;IAOP,IAAI,IAAI,IAAI,MAAM,CAAoB;IACtC,IAAI,IAAI,IAAI,OAAO,CAAoB;IACvC,IAAI,KAAK,IAAI,OAAO,CAAqB;IACzC,IAAI,GAAG,IAAI,OAAO,CAAmB;IAErC,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO;IAOhC,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAStC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC;IAiB/B,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAYtC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY;IAEjD,MAAM,IAAI,SAAS;IAEnB,IAAI,IAAI,QAAQ;IAEhB,QAAQ,IAAI,MAAM;CACrB;AAED,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED,yBAAiB,eAAe,CAAC;IACtB,MAAM,OAAO,EAAE,eAKrB,CAAA;CACJ;AAED,KAAK,aAAa,GAAG;IACjB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAA;IACpD,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;CACpC,CAAA"}
1
+ {"version":3,"file":"shortcut-manager.d.ts","sourceRoot":"","sources":["../src/shortcut-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,GAAG,EAEH,SAAS,EAET,KAAK,EAGL,QAAQ,EACR,MAAM,EACN,SAAS,EAET,QAAQ,EACR,YAAY,EACZ,UAAU,EAEb,MAAM,kBAAkB,CAAA;AAMzB,qBAAa,eAAe;;IAExB,MAAM,CAAC,GAAG,IAAI,eAAe;IAE7B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAIhC,OAAO;IAKP,aAAa,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,eAAe;IAanG,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAIxC,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;CAoB1C;AAED,qBAAa,eAAgB,YAAW,UAAU;;gBAOlC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG;IAMlE,IAAI,MAAM,IAAI,OAAO,CAA0B;IAC/C,IAAI,IAAI,IAAI,MAAM,CAAoB;IACtC,IAAI,QAAQ,IAAI,GAAG,CAAwB;IAC3C,IAAI,OAAO,IAAI,aAAa,CAAC,aAAa,CAAC,CAAuB;IAElE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,YAAY;IAQlH,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAExC,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC;IAE3C,SAAS,IAAI,IAAI;CACpB;AAED,qBAAa,QAAQ;;IACjB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,QAAQ;IAIjG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;IAUnD,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC;IA+DxD,OAAO;IAOP,IAAI,IAAI,IAAI,MAAM,CAAoB;IACtC,IAAI,IAAI,IAAI,OAAO,CAAoB;IACvC,IAAI,KAAK,IAAI,OAAO,CAAqB;IACzC,IAAI,GAAG,IAAI,OAAO,CAAmB;IAErC,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO;IAOhC,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAgBtC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC;IAiB/B,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAYtC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY;IAEjD,MAAM,IAAI,SAAS;IAEnB,IAAI,IAAI,QAAQ;IAEhB,QAAQ,IAAI,MAAM;CACrB;AAED,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED,yBAAiB,eAAe,CAAC;IACtB,MAAM,OAAO,EAAE,eAKrB,CAAA;CACJ;AAED,KAAK,aAAa,GAAG;IACjB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAA;IACpD,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;CACpC,CAAA"}
@@ -128,7 +128,11 @@ export class Shortcut {
128
128
  || code === Key.Enter) {
129
129
  return Option.None;
130
130
  }
131
- return Option.wrap(new Shortcut(code, Keyboard.isControlKey(event), event.shiftKey, event.altKey));
131
+ // For letters, use event.key to get the layout-independent character
132
+ const effectiveCode = code.startsWith("Key")
133
+ ? `Key${event.key.toUpperCase()}`
134
+ : code;
135
+ return Option.wrap(new Shortcut(effectiveCode, Keyboard.isControlKey(event), event.shiftKey, event.altKey));
132
136
  }
133
137
  static #keyNames = {
134
138
  [Key.Escape]: ["⎋", "Esc"],
@@ -194,8 +198,16 @@ export class Shortcut {
194
198
  && this.#alt === other.#alt;
195
199
  }
196
200
  matches(event) {
197
- const codeMatches = event.code === this.#code
198
- || (this.#code === Key.DeleteAction && Keyboard.isDelete(event));
201
+ let codeMatches;
202
+ if (this.#code.startsWith("Key")) {
203
+ // For letters, use event.key to respect keyboard layout (e.g. QWERTZ)
204
+ const expectedLetter = this.#code.slice(3).toLowerCase();
205
+ codeMatches = event.key.toLowerCase() === expectedLetter;
206
+ }
207
+ else {
208
+ codeMatches = event.code === this.#code
209
+ || (this.#code === Key.DeleteAction && Keyboard.isDelete(event));
210
+ }
199
211
  return codeMatches
200
212
  && this.#ctrl === Keyboard.isControlKey(event)
201
213
  && this.#shift === event.shiftKey
@@ -0,0 +1,3 @@
1
+ import { Exec } from "@opendaw/lib-std";
2
+ export declare const queueTask: (exec: Exec) => () => void;
3
+ //# sourceMappingURL=tasks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../src/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAErC,eAAO,MAAM,SAAS,GAAI,MAAM,IAAI,eAUnC,CAAA"}
package/dist/tasks.js ADDED
@@ -0,0 +1,13 @@
1
+ export const queueTask = (exec) => {
2
+ let pendingBroadcast = false;
3
+ return () => {
4
+ if (pendingBroadcast) {
5
+ return;
6
+ }
7
+ pendingBroadcast = true;
8
+ queueMicrotask(() => {
9
+ pendingBroadcast = false;
10
+ exec();
11
+ });
12
+ };
13
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opendaw/lib-dom",
3
- "version": "0.0.63",
3
+ "version": "0.0.65",
4
4
  "sideEffects": false,
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -23,13 +23,13 @@
23
23
  "test": "vitest run"
24
24
  },
25
25
  "dependencies": {
26
- "@opendaw/lib-runtime": "^0.0.62",
27
- "@opendaw/lib-std": "^0.0.62",
26
+ "@opendaw/lib-runtime": "^0.0.64",
27
+ "@opendaw/lib-std": "^0.0.64",
28
28
  "@types/wicg-file-system-access": "^2023.10.6"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@opendaw/eslint-config": "^0.0.27",
32
32
  "@opendaw/typescript-config": "^0.0.28"
33
33
  },
34
- "gitHead": "100e759378d7150e6eb7165232d8c4a1fbb77bbc"
34
+ "gitHead": "043469788d823f2ae6ca0f5c9f1483c06edf8659"
35
35
  }