@hatiolab/things-scene 10.0.0-beta.77 → 10.0.0-beta.78

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.
@@ -1,2 +1,34 @@
1
- export default function shadow(component: any): void;
1
+ import type { Component } from '../../types/component';
2
+ /**
3
+ * HTML element 가 box-shadow 를 지원하는 컴포넌트 (component-html mixin 등) 의
4
+ * 좁은 형 — isShadowable() / state.shadow / element 까지 가지고 있음.
5
+ *
6
+ * shadow state 는 ShadowRead 형 (canonical + legacy alias 모두) — drawer 는
7
+ * @deprecated 마크 무관하게 두 이름 다 읽어야 하는 유일한 정당한 위치.
8
+ *
9
+ * Component 인터페이스 자체엔 element 가 없는 컴포넌트도 있으므로 별도 형으로 분리.
10
+ */
11
+ interface ShadowRead {
12
+ color?: string;
13
+ offsetX?: number;
14
+ offsetY?: number;
15
+ blur?: number;
16
+ left?: number;
17
+ top?: number;
18
+ blurSize?: number;
19
+ }
20
+ interface ShadowableComponent extends Component {
21
+ isShadowable(): boolean;
22
+ state: {
23
+ shadow?: ShadowRead;
24
+ } & Record<string, any>;
25
+ element: HTMLElement;
26
+ }
27
+ /**
28
+ * HTML 요소에 box-shadow 적용. Canonical 이름 (offsetX/offsetY/blur) 우선,
29
+ * 옛 이름 (left/top/blurSize) backwards-compat fallback. effect/shadow.ts 와
30
+ * 동일 정책 — 영속된 옛 데이터 마이그레이션 불요.
31
+ */
32
+ export default function shadow(component: ShadowableComponent): void;
33
+ export {};
2
34
  //# sourceMappingURL=shadow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shadow.d.ts","sourceRoot":"","sources":["../../../src/components/html/shadow.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,SAAS,EAAE,GAAG,QAS5C"}
1
+ {"version":3,"file":"shadow.d.ts","sourceRoot":"","sources":["../../../src/components/html/shadow.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEtD;;;;;;;;GAQG;AACH,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,UAAU,mBAAoB,SAAQ,SAAS;IAC7C,YAAY,IAAI,OAAO,CAAA;IACvB,KAAK,EAAE;QAAE,MAAM,CAAC,EAAE,UAAU,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACpD,OAAO,EAAE,WAAW,CAAA;CACrB;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,SAAS,EAAE,mBAAmB,GAAG,IAAI,CAYnE"}
@@ -1,3 +1,5 @@
1
- export declare function setShadow(context: CanvasRenderingContext2D, shadow: any, component: any): void;
1
+ import type { Component } from '../types/component';
2
+ import type { Shadow } from '../interfaces/rendering';
3
+ export declare function setShadow(context: CanvasRenderingContext2D, shadow: Shadow, component: Component): void;
2
4
  export declare function resetShadow(context: CanvasRenderingContext2D): void;
3
5
  //# sourceMappingURL=shadow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shadow.d.ts","sourceRoot":"","sources":["../../src/effect/shadow.ts"],"names":[],"mappings":"AAWA,wBAAgB,SAAS,CAAC,OAAO,EAAE,wBAAwB,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,QASvF;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,wBAAwB,QAE5D"}
1
+ {"version":3,"file":"shadow.d.ts","sourceRoot":"","sources":["../../src/effect/shadow.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AA6CrD,wBAAgB,SAAS,CACvB,OAAO,EAAE,wBAAwB,EACjC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,GACnB,IAAI,CAWN;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI,CAEnE"}
@@ -116,19 +116,26 @@ export interface TextStyle {
116
116
  /**
117
117
  * 그림자 효과 — `state.shadow` 객체 형식.
118
118
  *
119
- * 실제 형식 (effect/shadow.ts:13 검증):
120
- * `{ left = 0, top = 0, blurSize = 0, color = 'transparent' } = state.shadow`
119
+ * Canonical 이름 (CSS box-shadow / Canvas API 와 일치):
120
+ * `{ offsetX, offsetY, blur, color } = state.shadow`
121
121
  *
122
- * Canvas API shadowOffsetX/Y/Blur 헷갈릴 있는데 **shadow 객체 안에서는
123
- * left/top/blurSize 정설**. 외부 (CSS / Material 등) 에서 입력 받을 때 매핑 필요.
122
+ * Backwards compatibility 이름 (`left`, `top`, `blurSize`) drawer
123
+ * fallback 으로 읽음. 영속된 데이터는 마이그레이션 없이 그대로 렌더링.
124
+ * 새 코드는 canonical 이름 사용.
124
125
  */
125
126
  export interface Shadow {
126
127
  color?: string;
127
- /** Canvas shadowOffsetX 에 매핑되는 값. CSS box-shadow 의 offset-x. */
128
+ /** Horizontal offset (CSS box-shadow 의 offset-x, Canvas 의 shadowOffsetX). */
129
+ offsetX?: number;
130
+ /** Vertical offset (CSS box-shadow 의 offset-y, Canvas 의 shadowOffsetY). */
131
+ offsetY?: number;
132
+ /** Blur radius (CSS box-shadow 의 blur-radius, Canvas 의 shadowBlur). */
133
+ blur?: number;
134
+ /** @deprecated `offsetX` 사용. drawer 가 fallback 으로 읽음 — 옛 데이터 호환용. */
128
135
  left?: number;
129
- /** Canvas shadowOffsetY 매핑되는 값. */
136
+ /** @deprecated `offsetY` 사용. drawer fallback 으로 읽음 — 옛 데이터 호환용. */
130
137
  top?: number;
131
- /** Canvas shadowBlur 매핑되는 값. CSS box-shadow blur-radius. */
138
+ /** @deprecated `blur` 사용. drawer fallback 으로 읽음 데이터 호환용. */
132
139
  blurSize?: number;
133
140
  }
134
141
  /** Fill drawer — 그라디언트, 패턴, 이미지 채우기 */
@@ -1 +1 @@
1
- {"version":3,"file":"rendering.d.ts","sourceRoot":"","sources":["../../src/interfaces/rendering.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rendering.d.ts","sourceRoot":"","sources":["../../src/interfaces/rendering.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hatiolab/things-scene",
3
- "version": "10.0.0-beta.77",
3
+ "version": "10.0.0-beta.78",
4
4
  "description": "A high-performance 2D/3D scene graph library for building interactive visual editors, combining HTML5 Canvas and Three.js to enable facility visualization, data-driven animations, and real-time monitoring dashboards",
5
5
  "main": "things-scene-min.js",
6
6
  "module": "things-scene.mjs",