@edv4h/usketch-plugin-shape-freedraw 3.3.4 → 3.4.1

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 (49) hide show
  1. package/README.md +34 -1
  2. package/dist/config.d.ts +2 -7
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +7 -4
  5. package/dist/config.js.map +1 -1
  6. package/dist/custom-pens.d.ts +68 -0
  7. package/dist/custom-pens.d.ts.map +1 -0
  8. package/dist/custom-pens.js +72 -0
  9. package/dist/custom-pens.js.map +1 -0
  10. package/dist/draw-tool.d.ts +1 -1
  11. package/dist/draw-tool.d.ts.map +1 -1
  12. package/dist/draw-tool.js +14 -8
  13. package/dist/draw-tool.js.map +1 -1
  14. package/dist/freedraw-service.d.ts +28 -0
  15. package/dist/freedraw-service.d.ts.map +1 -0
  16. package/dist/freedraw-service.js +32 -0
  17. package/dist/freedraw-service.js.map +1 -0
  18. package/dist/geometry/hit.d.ts +6 -1
  19. package/dist/geometry/hit.d.ts.map +1 -1
  20. package/dist/geometry/hit.js +30 -16
  21. package/dist/geometry/hit.js.map +1 -1
  22. package/dist/index.d.ts +5 -2
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +2 -0
  25. package/dist/index.js.map +1 -1
  26. package/dist/pen-meta.d.ts +10 -3
  27. package/dist/pen-meta.d.ts.map +1 -1
  28. package/dist/pen-meta.js +26 -2
  29. package/dist/pen-meta.js.map +1 -1
  30. package/dist/plugin.d.ts +10 -1
  31. package/dist/plugin.d.ts.map +1 -1
  32. package/dist/plugin.js +27 -6
  33. package/dist/plugin.js.map +1 -1
  34. package/dist/settings-store.d.ts +6 -3
  35. package/dist/settings-store.d.ts.map +1 -1
  36. package/dist/settings-store.js +15 -2
  37. package/dist/settings-store.js.map +1 -1
  38. package/dist/shape.d.ts.map +1 -1
  39. package/dist/shape.js +9 -0
  40. package/dist/shape.js.map +1 -1
  41. package/dist/types.d.ts +10 -1
  42. package/dist/types.d.ts.map +1 -1
  43. package/dist/ui/cursor-overlay.d.ts +1 -1
  44. package/dist/ui/cursor-overlay.d.ts.map +1 -1
  45. package/dist/ui/cursor-overlay.js +7 -3
  46. package/dist/ui/cursor-overlay.js.map +1 -1
  47. package/dist/ui/palette.js +2 -2
  48. package/dist/ui/palette.js.map +1 -1
  49. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,oBAAoB,EACpB,mBAAmB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,oBAAoB,EACpB,mBAAmB,GACnB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EACN,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,eAAe,EACf,cAAc,EACd,QAAQ,GACR,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC/E,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,YAAY,EAAE,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,6 @@
1
1
  export { FreedrawConfigSchema, parseFreedrawConfig, } from "./config.js";
2
+ export { freedrawService, getFreedrawApi, listPens, } from "./freedraw-service.js";
3
+ export { penHalfWidth } from "./geometry/hit.js";
2
4
  export { DEFAULT_PEN, PEN_KINDS, PEN_META, PRESET_COLORS } from "./pen-meta.js";
3
5
  export { createFreedrawPlugin } from "./plugin.js";
4
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,oBAAoB,EACpB,mBAAmB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,oBAAoB,EACpB,mBAAmB,GACnB,MAAM,aAAa,CAAC;AAErB,OAAO,EAGN,eAAe,EACf,cAAc,EACd,QAAQ,GACR,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAA8B,MAAM,aAAa,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { PenKind } from "./types.js";
1
+ import type { PenId, PenKind } from "./types.js";
2
2
  /** 合成モード(CSS mix-blend-mode に対応)。 */
3
3
  export type BlendMode = "normal" | "multiply";
4
4
  export interface PenMeta {
@@ -21,6 +21,13 @@ export declare const DEFAULT_PEN: PenKind;
21
21
  export declare const PRESET_COLORS: string[];
22
22
  /** ペンの太さの既定値。 */
23
23
  export declare const DEFAULT_SIZES: Record<PenKind, number>;
24
- /** `pen` から PenMeta を取得(不明値は ballpoint にフォールバック)。 */
25
- export declare function penMeta(pen: PenKind | undefined): PenMeta;
24
+ /** 組み込みのペンか。 */
25
+ export declare function isBuiltInPen(pen: PenId | undefined): pen is PenKind;
26
+ /**
27
+ * `pen` から PenMeta を取得。外から足したペンは一定幅・不透明・通常合成として扱う。
28
+ * 不明値(登録していないペンを含む)は ballpoint にフォールバック。
29
+ */
30
+ export declare function penMeta(pen: PenId | undefined): PenMeta;
31
+ /** 組み込み + 登録済みのペンか(`freedraw:set-pen` で選べるか)。 */
32
+ export declare function isKnownPen(pen: PenId | undefined): boolean;
26
33
  //# sourceMappingURL=pen-meta.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pen-meta.d.ts","sourceRoot":"","sources":["../src/pen-meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,qCAAqC;AACrC,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE9C,MAAM,WAAW,OAAO;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,aAAa;IACb,KAAK,EAAE,SAAS,CAAC;CACjB;AAED,mBAAmB;AACnB,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAW7C,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,OAAO,EAAkD,CAAC;AAElF,oBAAoB;AACpB,eAAO,MAAM,WAAW,EAAE,OAAqB,CAAC;AAEhD,6CAA6C;AAC7C,eAAO,MAAM,aAAa,UASzB,CAAC;AAEF,iBAAiB;AACjB,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAKjD,CAAC;AAEF,qDAAqD;AACrD,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAEzD"}
1
+ {"version":3,"file":"pen-meta.d.ts","sourceRoot":"","sources":["../src/pen-meta.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEjD,qCAAqC;AACrC,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE9C,MAAM,WAAW,OAAO;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,aAAa;IACb,KAAK,EAAE,SAAS,CAAC;CACjB;AAED,mBAAmB;AACnB,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAW7C,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,OAAO,EAAkD,CAAC;AAElF,oBAAoB;AACpB,eAAO,MAAM,WAAW,EAAE,OAAqB,CAAC;AAEhD,6CAA6C;AAC7C,eAAO,MAAM,aAAa,UASzB,CAAC;AAEF,iBAAiB;AACjB,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAKjD,CAAC;AAEF,gBAAgB;AAChB,wBAAgB,YAAY,CAAC,GAAG,EAAE,KAAK,GAAG,SAAS,GAAG,GAAG,IAAI,OAAO,CAEnE;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,CAavD;AAED,iDAAiD;AACjD,wBAAgB,UAAU,CAAC,GAAG,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,CAE1D"}
package/dist/pen-meta.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { getPenDefinition } from "./custom-pens.js";
1
2
  /** 設計書 §3 のペン表。 */
2
3
  export const PEN_META = {
3
4
  ballpoint: { label: "ボールペン", defaultSize: 2.5, variable: false, alpha: 1, blend: "normal" },
@@ -32,8 +33,31 @@ export const DEFAULT_SIZES = {
32
33
  brush: PEN_META.brush.defaultSize,
33
34
  highlighter: PEN_META.highlighter.defaultSize,
34
35
  };
35
- /** `pen` から PenMeta を取得(不明値は ballpoint にフォールバック)。 */
36
+ /** 組み込みのペンか。 */
37
+ export function isBuiltInPen(pen) {
38
+ return pen !== undefined && Object.hasOwn(PEN_META, pen);
39
+ }
40
+ /**
41
+ * `pen` から PenMeta を取得。外から足したペンは一定幅・不透明・通常合成として扱う。
42
+ * 不明値(登録していないペンを含む)は ballpoint にフォールバック。
43
+ */
36
44
  export function penMeta(pen) {
37
- return PEN_META[pen ?? DEFAULT_PEN] ?? PEN_META[DEFAULT_PEN];
45
+ if (isBuiltInPen(pen))
46
+ return PEN_META[pen];
47
+ const custom = getPenDefinition(pen);
48
+ if (custom) {
49
+ return {
50
+ label: custom.label,
51
+ defaultSize: custom.defaultSize,
52
+ variable: false,
53
+ alpha: 1,
54
+ blend: "normal",
55
+ };
56
+ }
57
+ return PEN_META[DEFAULT_PEN];
58
+ }
59
+ /** 組み込み + 登録済みのペンか(`freedraw:set-pen` で選べるか)。 */
60
+ export function isKnownPen(pen) {
61
+ return isBuiltInPen(pen) || getPenDefinition(pen) !== undefined;
38
62
  }
39
63
  //# sourceMappingURL=pen-meta.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pen-meta.js","sourceRoot":"","sources":["../src/pen-meta.ts"],"names":[],"mappings":"AAiBA,mBAAmB;AACnB,MAAM,CAAC,MAAM,QAAQ,GAA6B;IACjD,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC3F,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;IACpF,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;IACnF,WAAW,EAAE;QACZ,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,GAAG;QACV,KAAK,EAAE,UAAU;KACjB;CACD,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;AAElF,oBAAoB;AACpB,MAAM,CAAC,MAAM,WAAW,GAAY,WAAW,CAAC;AAEhD,6CAA6C;AAC7C,MAAM,CAAC,MAAM,aAAa,GAAG;IAC5B,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;CACT,CAAC;AAEF,iBAAiB;AACjB,MAAM,CAAC,MAAM,aAAa,GAA4B;IACrD,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,WAAW;IACzC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW;IAC/B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,WAAW;IACjC,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,WAAW;CAC7C,CAAC;AAEF,qDAAqD;AACrD,MAAM,UAAU,OAAO,CAAC,GAAwB;IAC/C,OAAO,QAAQ,CAAC,GAAG,IAAI,WAAW,CAAC,IAAI,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"pen-meta.js","sourceRoot":"","sources":["../src/pen-meta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAkBpD,mBAAmB;AACnB,MAAM,CAAC,MAAM,QAAQ,GAA6B;IACjD,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC3F,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;IACpF,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;IACnF,WAAW,EAAE;QACZ,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,GAAG;QACV,KAAK,EAAE,UAAU;KACjB;CACD,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;AAElF,oBAAoB;AACpB,MAAM,CAAC,MAAM,WAAW,GAAY,WAAW,CAAC;AAEhD,6CAA6C;AAC7C,MAAM,CAAC,MAAM,aAAa,GAAG;IAC5B,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;CACT,CAAC;AAEF,iBAAiB;AACjB,MAAM,CAAC,MAAM,aAAa,GAA4B;IACrD,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,WAAW;IACzC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW;IAC/B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,WAAW;IACjC,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,WAAW;CAC7C,CAAC;AAEF,gBAAgB;AAChB,MAAM,UAAU,YAAY,CAAC,GAAsB;IAClD,OAAO,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,GAAsB;IAC7C,IAAI,YAAY,CAAC,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,MAAM,EAAE,CAAC;QACZ,OAAO;YACN,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,QAAQ;SACf,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC9B,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,UAAU,CAAC,GAAsB;IAChD,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;AACjE,CAAC"}
package/dist/plugin.d.ts CHANGED
@@ -1,4 +1,13 @@
1
1
  import type { UsketchPlugin } from "@edv4h/usketch-shared";
2
2
  import { type FreedrawConfigInput } from "./config.js";
3
- export declare function createFreedrawPlugin(configInput?: FreedrawConfigInput): UsketchPlugin;
3
+ import { type FreedrawPenDefinition } from "./custom-pens.js";
4
+ /** `createFreedrawPlugin` の 2 つ目の引数(JSON にできない設定)。 */
5
+ export interface FreedrawPluginOptions {
6
+ /**
7
+ * 組み込みの 4 種に足すペン。setup で登録し、teardown で外す。ペンは shape の描画と
8
+ * 当たり判定に効くので、実行中に足し外しせず、ここで渡す。
9
+ */
10
+ pens?: FreedrawPenDefinition[];
11
+ }
12
+ export declare function createFreedrawPlugin(configInput?: FreedrawConfigInput, options?: FreedrawPluginOptions): UsketchPlugin;
4
13
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,KAAK,mBAAmB,EAAuB,MAAM,aAAa,CAAC;AA2C5E,wBAAgB,oBAAoB,CAAC,WAAW,CAAC,EAAE,mBAAmB,GAAG,aAAa,CAyJrF"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,KAAK,mBAAmB,EAAuB,MAAM,aAAa,CAAC;AAC5E,OAAO,EAGN,KAAK,qBAAqB,EAG1B,MAAM,kBAAkB,CAAC;AA4C1B,sDAAsD;AACtD,MAAM,WAAW,qBAAqB;IACrC;;;OAGG;IACH,IAAI,CAAC,EAAE,qBAAqB,EAAE,CAAC;CAC/B;AAID,wBAAgB,oBAAoB,CACnC,WAAW,CAAC,EAAE,mBAAmB,EACjC,OAAO,GAAE,qBAA0B,GACjC,aAAa,CA0Kf"}
package/dist/plugin.js CHANGED
@@ -1,7 +1,9 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { parseFreedrawConfig } from "./config.js";
3
+ import { assertCustomPenId, clampPenSize, getPenDefinition, registerPen, } from "./custom-pens.js";
3
4
  import { createDrawController } from "./draw-tool.js";
4
- import { PEN_META } from "./pen-meta.js";
5
+ import { freedrawApi, freedrawService, listPens } from "./freedraw-service.js";
6
+ import { isKnownPen } from "./pen-meta.js";
5
7
  import { createFreedrawSettingsStore } from "./settings-store.js";
6
8
  import { createFreedrawShapeDefinition } from "./shape.js";
7
9
  import { createPointerStore, FreedrawCursor } from "./ui/cursor-overlay.js";
@@ -26,12 +28,21 @@ function createBoolStore(initial) {
26
28
  };
27
29
  return store;
28
30
  }
29
- export function createFreedrawPlugin(configInput) {
31
+ const BUILT_IN_SIZE_MAX = 64;
32
+ export function createFreedrawPlugin(configInput, options = {}) {
30
33
  const config = parseFreedrawConfig(configInput);
34
+ const pens = options.pens ?? [];
35
+ // 組み込みの id と重なるペンは、何も登録しないうちに弾く。
36
+ for (const def of pens)
37
+ assertCustomPenId(def.id);
38
+ const sizeMax = Math.max(BUILT_IN_SIZE_MAX, ...pens.map((d) => d.sizeRange?.max ?? 0));
31
39
  return {
32
40
  id: "usketch-plugin-shape-freedraw",
33
41
  name: "フリーハンド",
34
42
  setup(ctx) {
43
+ // 設定の復元で保存済みのペンを確かめるため、ペンは設定ストアより先に登録する。
44
+ const offPens = pens.map((def) => registerPen(def));
45
+ const offService = freedrawService.provide(ctx.services, freedrawApi);
35
46
  const settings = createFreedrawSettingsStore(config);
36
47
  const pointer = createPointerStore();
37
48
  const active = createBoolStore(ctx.store.getActiveToolId() === TOOL_ID);
@@ -70,7 +81,7 @@ export function createFreedrawPlugin(configInput) {
70
81
  // カーソル(描画フィードバック)は維持。
71
82
  // ── vim 連携 / 外部からの設定変更イベント ──
72
83
  const offPen = ctx.events.on("freedraw:set-pen", ({ pen }) => {
73
- if (PEN_META[pen])
84
+ if (isKnownPen(pen))
74
85
  settings.update({ pen, mode: "pen" });
75
86
  });
76
87
  const offColor = ctx.events.on("freedraw:set-color", ({ color }) => {
@@ -84,8 +95,10 @@ export function createFreedrawPlugin(configInput) {
84
95
  const cur = settings.getSnapshot();
85
96
  if (cur.mode === "eraser")
86
97
  settings.update({ eraserSize: size });
87
- else
88
- settings.update({ sizes: { ...cur.sizes, [cur.pen]: size } });
98
+ else {
99
+ const clamped = clampPenSize(getPenDefinition(cur.pen), size);
100
+ settings.update({ sizes: { ...cur.sizes, [cur.pen]: clamped } });
101
+ }
89
102
  });
90
103
  const offHitTest = ctx.events.on("freedraw:set-hit-test", ({ mode }) => {
91
104
  if (mode === "stroke" || mode === "bounds")
@@ -111,6 +124,10 @@ export function createFreedrawPlugin(configInput) {
111
124
  { value: "felt", label: "Felt" },
112
125
  { value: "brush", label: "Brush" },
113
126
  { value: "highlighter", label: "Highlighter" },
127
+ // 外から足したペン(setup 時点の登録分)。
128
+ ...listPens()
129
+ .filter((p) => !p.builtIn)
130
+ .map((p) => ({ value: p.id, label: p.label })),
114
131
  ],
115
132
  },
116
133
  ],
@@ -127,7 +144,8 @@ export function createFreedrawPlugin(configInput) {
127
144
  id: "freedraw:size",
128
145
  label: "Size",
129
146
  group: "Freedraw",
130
- params: [{ name: "size", type: "number", min: 1, max: 64, step: 1, default: 4 }],
147
+ // 足したペンの太さの範囲まで届くようにする(実際の値は set-size がペンごとに丸める)。
148
+ params: [{ name: "size", type: "number", min: 1, max: sizeMax, step: 1, default: 4 }],
131
149
  run: ({ size }) => ctx.events.emit("freedraw:set-size", { size: Number(size) }),
132
150
  }),
133
151
  ctx.actions.register({
@@ -166,6 +184,9 @@ export function createFreedrawPlugin(configInput) {
166
184
  window.removeEventListener("keydown", onKeyDown, true);
167
185
  }
168
186
  ctx.layers.unregister("freedraw-cursor");
187
+ offService();
188
+ for (const off of offPens)
189
+ off();
169
190
  };
170
191
  },
171
192
  };
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.tsx"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  import { type FreedrawConfig } from "./config.js";
2
- import type { PenKind } from "./types.js";
2
+ import type { PenId } from "./types.js";
3
3
  export type FreedrawMode = "pen" | "eraser";
4
4
  export interface FreedrawSettings {
5
5
  mode: FreedrawMode;
6
- pen: PenKind;
6
+ pen: PenId;
7
7
  color: string;
8
- sizes: Record<PenKind, number>;
8
+ /** ペンごとの太さ。外から足したペンは選ぶまで無いことがある(既定の太さを使う)。 */
9
+ sizes: Partial<Record<PenId, number>>;
9
10
  eraserSize: number;
10
11
  brushDynamics: number;
11
12
  customColors: string[];
@@ -18,5 +19,7 @@ export interface FreedrawSettingsStore {
18
19
  /** 現在の実効太さ(pen モード=現ペンの太さ / eraser モード=消しゴム)。 */
19
20
  currentSize(): number;
20
21
  }
22
+ /** ペンの太さ(未設定なら既定の太さ)。外から足したペンは範囲に丸める。 */
23
+ export declare function penSize(s: Pick<FreedrawSettings, "sizes">, pen: PenId): number;
21
24
  export declare function createFreedrawSettingsStore(config: FreedrawConfig): FreedrawSettingsStore;
22
25
  //# sourceMappingURL=settings-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings-store.d.ts","sourceRoot":"","sources":["../src/settings-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAe,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE5C,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,YAAY,CAAC;IACnB,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACrC,WAAW,IAAI,gBAAgB,CAAC;IAChC,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5C,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAC/C,iDAAiD;IACjD,WAAW,IAAI,MAAM,CAAC;CACtB;AAyCD,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,cAAc,GAAG,qBAAqB,CA6BzF"}
1
+ {"version":3,"file":"settings-store.d.ts","sourceRoot":"","sources":["../src/settings-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAe,MAAM,aAAa,CAAC;AAG/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE5C,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,YAAY,CAAC;IACnB,GAAG,EAAE,KAAK,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACrC,WAAW,IAAI,gBAAgB,CAAC;IAChC,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5C,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAC/C,iDAAiD;IACjD,WAAW,IAAI,MAAM,CAAC;CACtB;AA8CD,yCAAyC;AACzC,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,MAAM,CAE9E;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,cAAc,GAAG,qBAAqB,CA+BzF"}
@@ -1,4 +1,6 @@
1
1
  import { STORAGE_KEY } from "./config.js";
2
+ import { clampPenSize, getPenDefinition } from "./custom-pens.js";
3
+ import { DEFAULT_PEN, isKnownPen, penMeta } from "./pen-meta.js";
2
4
  function loadPersisted() {
3
5
  if (typeof localStorage === "undefined")
4
6
  return null;
@@ -31,11 +33,20 @@ function savePersisted(s) {
31
33
  // クォータ超過等は握りつぶす(描画は継続)。設計書 §10。
32
34
  }
33
35
  }
36
+ /** 既定のペン。設定の `defaultPen` が知らないペンなら ballpoint。 */
37
+ function defaultPen(config) {
38
+ return isKnownPen(config.defaultPen) ? config.defaultPen : DEFAULT_PEN;
39
+ }
40
+ /** ペンの太さ(未設定なら既定の太さ)。外から足したペンは範囲に丸める。 */
41
+ export function penSize(s, pen) {
42
+ return clampPenSize(getPenDefinition(pen), s.sizes[pen] ?? penMeta(pen).defaultSize);
43
+ }
34
44
  export function createFreedrawSettingsStore(config) {
35
45
  const persisted = config.persistSettings ? loadPersisted() : null;
36
46
  let state = {
37
47
  mode: "pen",
38
- pen: persisted?.pen ?? config.defaultPen,
48
+ // 保存したペンが今は無い(外から足したペンを登録しなくなった)ときは既定に戻す。
49
+ pen: persisted?.pen && isKnownPen(persisted.pen) ? persisted.pen : defaultPen(config),
39
50
  color: persisted?.color ?? config.defaultColor,
40
51
  sizes: { ...config.defaultSizes, ...(persisted?.sizes ?? {}) },
41
52
  eraserSize: persisted?.eraserSize ?? config.defaultEraserSize,
@@ -58,7 +69,9 @@ export function createFreedrawSettingsStore(config) {
58
69
  l();
59
70
  },
60
71
  currentSize() {
61
- return state.mode === "eraser" ? state.eraserSize : state.sizes[state.pen];
72
+ if (state.mode === "eraser")
73
+ return state.eraserSize;
74
+ return penSize(state, state.pen);
62
75
  },
63
76
  };
64
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"settings-store.js","sourceRoot":"","sources":["../src/settings-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,WAAW,EAAE,MAAM,aAAa,CAAC;AAkC/D,SAAS,aAAa;IACrB,IAAI,OAAO,YAAY,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IACrD,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAE,CAAgC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvF,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,SAAS,aAAa,CAAC,CAAmB;IACzC,IAAI,OAAO,YAAY,KAAK,WAAW;QAAE,OAAO;IAChD,IAAI,CAAC;QACJ,MAAM,OAAO,GAAsB;YAClC,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,aAAa,EAAE,CAAC,CAAC,aAAa;YAC9B,YAAY,EAAE,CAAC,CAAC,YAAY;SAC5B,CAAC;QACF,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACR,gCAAgC;IACjC,CAAC;AACF,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,MAAsB;IACjE,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAClE,IAAI,KAAK,GAAqB;QAC7B,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,SAAS,EAAE,GAAG,IAAI,MAAM,CAAC,UAAU;QACxC,KAAK,EAAE,SAAS,EAAE,KAAK,IAAI,MAAM,CAAC,YAAY;QAC9C,KAAK,EAAE,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;QAC9D,UAAU,EAAE,SAAS,EAAE,UAAU,IAAI,MAAM,CAAC,iBAAiB;QAC7D,aAAa,EAAE,SAAS,EAAE,aAAa,IAAI,MAAM,CAAC,aAAa;QAC/D,YAAY,EAAE,SAAS,EAAE,YAAY,IAAI,EAAE;QAC3C,aAAa,EAAE,MAAM,CAAC,aAAa;KACnC,CAAC;IACF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;IAExC,OAAO;QACN,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK;QACxB,SAAS,CAAC,QAAQ;YACjB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,CAAC,KAAK;YACX,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC;YAC/B,IAAI,MAAM,CAAC,eAAe;gBAAE,aAAa,CAAC,KAAK,CAAC,CAAC;YACjD,KAAK,MAAM,CAAC,IAAI,SAAS;gBAAE,CAAC,EAAE,CAAC;QAChC,CAAC;QACD,WAAW;YACV,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5E,CAAC;KACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"settings-store.js","sourceRoot":"","sources":["../src/settings-store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"shape.d.ts","sourceRoot":"","sources":["../src/shape.tsx"],"names":[],"mappings":"AAAA,OAAO,EAQN,KAAK,eAAe,EACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAa,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAwDtF,qDAAqD;AACrD,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAkKtD,gEAAgE;AAChE,wBAAgB,6BAA6B,CAC5C,UAAU,GAAE,MAAM,mBAAoC,GACpD,eAAe,CAMjB;AAeD,wBAAwB;AACxB,eAAO,MAAM,uBAAuB,EAAE,eAAiD,CAAC;AAGxF,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"shape.d.ts","sourceRoot":"","sources":["../src/shape.tsx"],"names":[],"mappings":"AAAA,OAAO,EAQN,KAAK,eAAe,EACpB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,UAAU,EAAa,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AA8DtF,qDAAqD;AACrD,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAoKtD,gEAAgE;AAChE,wBAAgB,6BAA6B,CAC5C,UAAU,GAAE,MAAM,mBAAoC,GACpD,eAAe,CAMjB;AAeD,wBAAwB;AACxB,eAAO,MAAM,uBAAuB,EAAE,eAAiD,CAAC;AAGxF,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC"}
package/dist/shape.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { cssColorToRgbaOrDefault, DEFAULT_STYLE, } from "@edv4h/usketch-shared";
3
+ import { getPenDefinition } from "./custom-pens.js";
3
4
  import { brushOutlineD } from "./geometry/brush-outline.js";
4
5
  import { eraserHits, hitStroke, maxHalfWidth, strokeBounds } from "./geometry/hit.js";
5
6
  import { smoothPathD } from "./geometry/smooth-path.js";
@@ -10,6 +11,11 @@ function render(shape) {
10
11
  const pts = data.points ?? [];
11
12
  if (pts.length === 0)
12
13
  return _jsx("g", {});
14
+ // 外から足したペン(登録していないクライアントでは下のボールペン描画にフォールバック)。
15
+ const custom = getPenDefinition(data.pen);
16
+ if (custom) {
17
+ return data.draft && custom.renderDraft ? custom.renderDraft(data) : custom.render(data);
18
+ }
13
19
  const color = data.style.stroke;
14
20
  const size = data.style.strokeWidth;
15
21
  const opacity = data.style.opacity;
@@ -132,6 +138,9 @@ function createDefault(params) {
132
138
  }
133
139
  function gpuPrimitive(shape) {
134
140
  const data = asFreedraw(shape);
141
+ // 外から足したペンは DOM(SVG) で描く。
142
+ if (getPenDefinition(data.pen))
143
+ return null;
135
144
  const m = penMeta(data.pen);
136
145
  // 可変幅・合成ペン(筆ペン/蛍光ペン)は DOM(SVG) で描く。
137
146
  if (m.variable || m.blend !== "normal")
package/dist/shape.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"shape.js","sourceRoot":"","sources":["../src/shape.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shape.js","sourceRoot":"","sources":["../src/shape.tsx"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,6 +1,11 @@
1
1
  import type { ShapeData } from "@edv4h/usketch-shared";
2
2
  /** 4種のペン。差は「線幅が一定か可変か」「不透明度と合成モード」の2軸(設計書 §3)。 */
3
3
  export type PenKind = "ballpoint" | "felt" | "brush" | "highlighter";
4
+ /**
5
+ * shape / 設定に入るペンの id。組み込みの {@link PenKind} か、外から足したペン
6
+ * (`FreedrawPenDefinition.id`)。
7
+ */
8
+ export type PenId = PenKind | (string & {});
4
9
  /**
5
10
  * ストロークの点。`p` は疑似筆圧 0..1(筆ペンのみ意味を持つ)。
6
11
  * 座標は world(既存の freedraw 同様、絶対座標)。`p` 省略時は一定幅扱いで、
@@ -18,6 +23,10 @@ export interface StrokePoint {
18
23
  */
19
24
  export interface FreedrawShapeData extends ShapeData {
20
25
  points: StrokePoint[];
21
- pen?: PenKind;
26
+ pen?: PenId;
27
+ /** 外から足したペンの保存データ(`FreedrawPenDefinition.finalize` が返したもの)。 */
28
+ penData?: Record<string, unknown>;
29
+ /** 描いている最中の仮のストロークだけ `true`(確定で消える)。 */
30
+ draft?: boolean;
22
31
  }
23
32
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,kDAAkD;AAClD,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,CAAC;AAErE;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IACnD,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,GAAG,CAAC,EAAE,OAAO,CAAC;CACd"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,kDAAkD;AAClD,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,CAAC;AAErE;;;GAGG;AACH,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAE5C;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IACnD,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,GAAG,CAAC,EAAE,KAAK,CAAC;IACZ,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,wCAAwC;IACxC,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB"}
@@ -1,5 +1,5 @@
1
1
  import type { Point, Viewport } from "@edv4h/usketch-shared";
2
- import type { FreedrawSettingsStore } from "../settings-store.js";
2
+ import { type FreedrawSettingsStore } from "../settings-store.js";
3
3
  /** ポインタの world 位置(ペン先カーソル用)。null=非表示。 */
4
4
  export interface PointerStore {
5
5
  getSnapshot(): Point | null;
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-overlay.d.ts","sourceRoot":"","sources":["../../src/ui/cursor-overlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAG7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAElE,yCAAyC;AACzC,MAAM,WAAW,YAAY;IAC5B,WAAW,IAAI,KAAK,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5C,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;CAC/B;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAcjD;AAED,UAAU,KAAK;IACd,QAAQ,EAAE,qBAAqB,CAAC;IAChC,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,QAAQ,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,KAAK,sCA4BpE"}
1
+ {"version":3,"file":"cursor-overlay.d.ts","sourceRoot":"","sources":["../../src/ui/cursor-overlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAI7D,OAAO,EAAE,KAAK,qBAAqB,EAAW,MAAM,sBAAsB,CAAC;AAE3E,yCAAyC;AACzC,MAAM,WAAW,YAAY;IAC5B,WAAW,IAAI,KAAK,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5C,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;CAC/B;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAcjD;AAED,UAAU,KAAK;IACd,QAAQ,EAAE,qBAAqB,CAAC;IAChC,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,QAAQ,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,KAAK,sCA8BpE"}
@@ -1,6 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useSyncExternalStore } from "react";
3
+ import { getPenDefinition } from "../custom-pens.js";
3
4
  import { penMeta } from "../pen-meta.js";
5
+ import { penSize } from "../settings-store.js";
4
6
  export function createPointerStore() {
5
7
  let pos = null;
6
8
  const listeners = new Set();
@@ -29,9 +31,11 @@ export function FreedrawCursor({ settings, pointer, viewport }) {
29
31
  const sx = world.x * viewport.zoom + viewport.x;
30
32
  const sy = world.y * viewport.zoom + viewport.y;
31
33
  const eraser = s.mode === "eraser";
32
- const sizeWorld = eraser ? s.eraserSize : s.sizes[s.pen];
33
- const d = Math.max(6, sizeWorld * viewport.zoom);
34
34
  const m = penMeta(s.pen);
35
+ const sizeWorld = eraser ? s.eraserSize : penSize(s, s.pen);
36
+ const d = Math.max(6, sizeWorld * viewport.zoom);
37
+ // 色を使わないペン(外から足したペンの usesColor: false)は色なしのリングにする。
38
+ const ringColor = getPenDefinition(s.pen)?.usesColor === false ? "#6b7280" : s.color;
35
39
  return (_jsx("div", { style: {
36
40
  position: "absolute",
37
41
  left: sx - d / 2,
@@ -40,7 +44,7 @@ export function FreedrawCursor({ settings, pointer, viewport }) {
40
44
  height: d,
41
45
  borderRadius: "9999px",
42
46
  pointerEvents: "none",
43
- border: eraser ? "1.5px dashed #6b7280" : `1.5px solid ${s.color}`,
47
+ border: eraser ? "1.5px dashed #6b7280" : `1.5px solid ${ringColor}`,
44
48
  background: eraser ? "rgba(120,120,120,0.10)" : "transparent",
45
49
  opacity: !eraser && m.blend === "multiply" ? 0.5 : 1,
46
50
  } }));
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-overlay.js","sourceRoot":"","sources":["../../src/ui/cursor-overlay.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAUzC,MAAM,UAAU,kBAAkB;IACjC,IAAI,GAAG,GAAiB,IAAI,CAAC;IAC7B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;IACxC,OAAO;QACN,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG;QACtB,SAAS,CAAC,CAAC;YACV,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,GAAG,CAAC,KAAK;YACR,GAAG,GAAG,KAAK,CAAC;YACZ,KAAK,MAAM,CAAC,IAAI,SAAS;gBAAE,CAAC,EAAE,CAAC;QAChC,CAAC;KACD,CAAC;AACH,CAAC;AAQD;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAS;IACpE,MAAM,CAAC,GAAG,oBAAoB,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IACzE,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3E,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAE5C,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC;IAChD,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;IACnC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACzD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAEzB,OAAO,CACN,cACC,KAAK,EAAE;YACN,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC;YAChB,GAAG,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC;YACf,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,YAAY,EAAE,QAAQ;YACtB,aAAa,EAAE,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE;YAClE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,aAAa;YAC7D,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACpD,GACA,CACF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"cursor-overlay.js","sourceRoot":"","sources":["../../src/ui/cursor-overlay.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAA8B,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAS3E,MAAM,UAAU,kBAAkB;IACjC,IAAI,GAAG,GAAiB,IAAI,CAAC;IAC7B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;IACxC,OAAO;QACN,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG;QACtB,SAAS,CAAC,CAAC;YACV,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,GAAG,CAAC,KAAK;YACR,GAAG,GAAG,KAAK,CAAC;YACZ,KAAK,MAAM,CAAC,IAAI,SAAS;gBAAE,CAAC,EAAE,CAAC;QAChC,CAAC;KACD,CAAC;AACH,CAAC;AAQD;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAS;IACpE,MAAM,CAAC,GAAG,oBAAoB,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IACzE,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3E,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAE5C,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC;IAChD,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;IACnC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACzB,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5D,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjD,mDAAmD;IACnD,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAErF,OAAO,CACN,cACC,KAAK,EAAE;YACN,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC;YAChB,GAAG,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC;YACf,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,YAAY,EAAE,QAAQ;YACtB,aAAa,EAAE,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,eAAe,SAAS,EAAE;YACpE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,aAAa;YAC7D,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACpD,GACA,CACF,CAAC;AACH,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useRef, useSyncExternalStore } from "react";
3
3
  import { ERASER_RANGE, SIZE_RANGE } from "../config.js";
4
- import { PEN_KINDS, PEN_META, PRESET_COLORS } from "../pen-meta.js";
4
+ import { PEN_KINDS, PEN_META, PRESET_COLORS, penMeta } from "../pen-meta.js";
5
5
  const ACCENT = "#7c3aed";
6
6
  /** freedraw ツールがアクティブな間だけ表示する最小フローティングパレット。 */
7
7
  export function FreedrawPalette({ settings, active }) {
@@ -12,7 +12,7 @@ export function FreedrawPalette({ settings, active }) {
12
12
  return null;
13
13
  const eraser = s.mode === "eraser";
14
14
  const colors = [...PRESET_COLORS, ...s.customColors.filter((c) => !PRESET_COLORS.includes(c))];
15
- const sizeValue = eraser ? s.eraserSize : s.sizes[s.pen];
15
+ const sizeValue = eraser ? s.eraserSize : (s.sizes[s.pen] ?? penMeta(s.pen).defaultSize);
16
16
  const range = eraser ? ERASER_RANGE : SIZE_RANGE;
17
17
  const selectPen = (pen) => settings.update({ pen, mode: "pen" });
18
18
  return (_jsx("div", { style: { position: "absolute", inset: 0, pointerEvents: "none" }, children: _jsxs("div", { onPointerDown: (e) => e.stopPropagation(), onPointerMove: (e) => e.stopPropagation(), onPointerUp: (e) => e.stopPropagation(), style: {
@@ -1 +1 @@
1
- {"version":3,"file":"palette.js","sourceRoot":"","sources":["../../src/ui/palette.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"palette.js","sourceRoot":"","sources":["../../src/ui/palette.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edv4h/usketch-plugin-shape-freedraw",
3
- "version": "3.3.4",
3
+ "version": "3.4.1",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -12,9 +12,9 @@
12
12
  }
13
13
  },
14
14
  "dependencies": {
15
- "@edv4h/usketch-core": "2.4.9",
16
- "@edv4h/usketch-shared": "4.19.0",
17
- "@edv4h/usketch-store": "3.11.1",
15
+ "@edv4h/usketch-core": "2.4.11",
16
+ "@edv4h/usketch-shared": "4.21.0",
17
+ "@edv4h/usketch-store": "3.11.3",
18
18
  "perfect-freehand": "^1.2.2",
19
19
  "zod": "^4.0.0"
20
20
  },
@@ -24,7 +24,7 @@
24
24
  "devDependencies": {
25
25
  "@types/react": "19.3.0",
26
26
  "typescript": "7.0.2",
27
- "vitest": "5.0.5"
27
+ "vitest": "5.1.0"
28
28
  },
29
29
  "publishConfig": {
30
30
  "access": "public"