@kurot/ui 3.2.0 → 3.4.0

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 (38) hide show
  1. package/CHANGELOG.md +72 -0
  2. package/README.md +74 -8
  3. package/dist/kurot/components/BitmapLabel.d.ts +2 -0
  4. package/dist/kurot/components/BitmapLabel.d.ts.map +1 -1
  5. package/dist/kurot/components/BitmapLabel.js +17 -1
  6. package/dist/kurot/components/BitmapLabel.js.map +1 -1
  7. package/dist/kurot/components/ComboBox.d.ts.map +1 -1
  8. package/dist/kurot/components/ComboBox.js +5 -3
  9. package/dist/kurot/components/ComboBox.js.map +1 -1
  10. package/dist/kurot/components/Component.d.ts +1 -0
  11. package/dist/kurot/components/Component.d.ts.map +1 -1
  12. package/dist/kurot/components/Component.js +3 -0
  13. package/dist/kurot/components/Component.js.map +1 -1
  14. package/dist/kurot/components/Group.d.ts +1 -0
  15. package/dist/kurot/components/Group.d.ts.map +1 -1
  16. package/dist/kurot/components/Group.js +3 -0
  17. package/dist/kurot/components/Group.js.map +1 -1
  18. package/dist/kurot/components/RichLabel.d.ts +51 -0
  19. package/dist/kurot/components/RichLabel.d.ts.map +1 -0
  20. package/dist/kurot/components/RichLabel.js +172 -0
  21. package/dist/kurot/components/RichLabel.js.map +1 -0
  22. package/dist/kurot/components/index.d.ts +1 -0
  23. package/dist/kurot/components/index.d.ts.map +1 -1
  24. package/dist/kurot/components/index.js +1 -0
  25. package/dist/kurot/components/index.js.map +1 -1
  26. package/dist/kurot/core/UIState.d.ts +4 -0
  27. package/dist/kurot/core/UIState.d.ts.map +1 -1
  28. package/dist/kurot/core/UIState.js +15 -7
  29. package/dist/kurot/core/UIState.js.map +1 -1
  30. package/dist/kurot/core/fit-transformed-bounds.d.ts +14 -0
  31. package/dist/kurot/core/fit-transformed-bounds.d.ts.map +1 -0
  32. package/dist/kurot/core/fit-transformed-bounds.js +149 -0
  33. package/dist/kurot/core/fit-transformed-bounds.js.map +1 -0
  34. package/docs/ai-context.md +43 -7
  35. package/docs/architecture.md +31 -4
  36. package/docs/bitmap-label.md +11 -5
  37. package/docs/rich-label.md +77 -0
  38. package/package.json +7 -5
@@ -0,0 +1,51 @@
1
+ import type { ITextElement } from '@kurot/core';
2
+ import { Component } from './Component.js';
3
+ /**
4
+ * Displays styled text runs in one continuous layout. Content is assigned only
5
+ * through textFlow; ordinary Label text and appearance presets are not exposed.
6
+ * Unspecified run styles use the TextField defaults captured at construction.
7
+ */
8
+ export declare class RichLabel extends Component {
9
+ private readonly _textField;
10
+ private _widthConstraint;
11
+ private _measurement?;
12
+ private _measurementWidth;
13
+ constructor(textFlow?: readonly ITextElement[]);
14
+ get width(): number;
15
+ set width(value: number);
16
+ /**
17
+ * Assignment and reads copy the runs and their styles. Reassign an edited
18
+ * snapshot to update the component; [] clears all content.
19
+ */
20
+ get textFlow(): ITextElement[];
21
+ set textFlow(value: readonly ITextElement[]);
22
+ get multiline(): boolean;
23
+ set multiline(value: boolean);
24
+ /**
25
+ * True uses Unicode line-break opportunities; false wraps by graphemes.
26
+ * Explicit multiline=false displays only the first unwrapped hard line.
27
+ */
28
+ get wordWrap(): boolean;
29
+ set wordWrap(value: boolean);
30
+ get lineSpacing(): number;
31
+ set lineSpacing(value: number);
32
+ get textAlign(): 'left' | 'center' | 'right';
33
+ set textAlign(value: 'left' | 'center' | 'right');
34
+ get verticalAlign(): 'top' | 'middle' | 'bottom';
35
+ set verticalAlign(value: 'top' | 'middle' | 'bottom');
36
+ /**
37
+ * Complete content metrics under the current width constraint, before
38
+ * height clipping. Empty content has zero width and height.
39
+ */
40
+ get textWidth(): number;
41
+ get textHeight(): number;
42
+ invalidateSize(): void;
43
+ createChildren(): void;
44
+ measure(): void;
45
+ setLayoutBoundsSize(layoutWidth: number, layoutHeight: number): void;
46
+ updateDisplayList(unscaledWidth: number, unscaledHeight: number): void;
47
+ private _copyTextFlow;
48
+ private _invalidateText;
49
+ private _measureText;
50
+ }
51
+ //# sourceMappingURL=RichLabel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RichLabel.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/RichLabel.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAmB,YAAY,EAAiB,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C;;;;GAIG;AACH,qBAAa,SAAU,SAAQ,SAAS;IAGvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,gBAAgB,CAAO;IAC/B,OAAO,CAAC,YAAY,CAAC,CAAoC;IACzD,OAAO,CAAC,iBAAiB,CAAO;gBAIb,QAAQ,GAAE,SAAS,YAAY,EAAO;IASzD,IAAoB,KAAK,IAAI,MAAM,CAElC;IACD,IAAoB,KAAK,CAAC,KAAK,EAAE,MAAM,EAKtC;IAED;;;OAGG;IACH,IAAW,QAAQ,IAAI,YAAY,EAAE,CAEpC;IACD,IAAW,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,EAKjD;IAED,IAAW,SAAS,IAAI,OAAO,CAE9B;IACD,IAAW,SAAS,CAAC,KAAK,EAAE,OAAO,EAIlC;IAED;;;OAGG;IACH,IAAW,QAAQ,IAAI,OAAO,CAE7B;IACD,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAIjC;IAED,IAAW,WAAW,IAAI,MAAM,CAE/B;IACD,IAAW,WAAW,CAAC,KAAK,EAAE,MAAM,EAOnC;IAED,IAAW,SAAS,IAAI,MAAM,GAAG,QAAQ,GAAG,OAAO,CAElD;IACD,IAAW,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,EAOtD;IAED,IAAW,aAAa,IAAI,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAEtD;IACD,IAAW,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,EAO1D;IAED;;;OAGG;IACH,IAAW,SAAS,IAAI,MAAM,CAE7B;IACD,IAAW,UAAU,IAAI,MAAM,CAE9B;IAIe,cAAc,IAAI,IAAI;IAOtB,cAAc,IAAI,IAAI;IAKtB,OAAO,IAAI,IAAI;IAKf,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAQpE,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAQtF,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,YAAY;CAgBpB"}
@@ -0,0 +1,172 @@
1
+ import { TextField } from '@kurot/core';
2
+ import { Component } from './Component.js';
3
+ import { PropertyEvent } from '../events/PropertyEvent.js';
4
+ /**
5
+ * Displays styled text runs in one continuous layout. Content is assigned only
6
+ * through textFlow; ordinary Label text and appearance presets are not exposed.
7
+ * Unspecified run styles use the TextField defaults captured at construction.
8
+ */
9
+ export class RichLabel extends Component {
10
+ // ── Instance fields ───────────────────────────────────────────────────────
11
+ _textField = new TextField();
12
+ _widthConstraint = NaN;
13
+ _measurement;
14
+ _measurementWidth = NaN;
15
+ // ── Constructor ───────────────────────────────────────────────────────────
16
+ constructor(textFlow = []) {
17
+ super();
18
+ this.touchChildren = false;
19
+ this._textField.wordWrap = true;
20
+ this.textFlow = textFlow;
21
+ }
22
+ // ── Getters / Setters ──────────────────────────────────────────────────────
23
+ get width() {
24
+ return super.width;
25
+ }
26
+ set width(value) {
27
+ if (Object.is(this.$explicitWidth, value))
28
+ return;
29
+ super.width = value;
30
+ // Component width changes alone do not invalidate automatic text height.
31
+ this._invalidateText();
32
+ }
33
+ /**
34
+ * Assignment and reads copy the runs and their styles. Reassign an edited
35
+ * snapshot to update the component; [] clears all content.
36
+ */
37
+ get textFlow() {
38
+ return this._copyTextFlow(this._textField.textFlow ?? []);
39
+ }
40
+ set textFlow(value) {
41
+ this._textField.textFlow = this._copyTextFlow(value);
42
+ this.invalidateSize();
43
+ this.invalidateDisplayList();
44
+ PropertyEvent.dispatchPropertyEvent(this, 'textFlow');
45
+ }
46
+ get multiline() {
47
+ return this._textField.multiline;
48
+ }
49
+ set multiline(value) {
50
+ if (this.multiline === value)
51
+ return;
52
+ this._textField.multiline = value;
53
+ this._invalidateText();
54
+ }
55
+ /**
56
+ * True uses Unicode line-break opportunities; false wraps by graphemes.
57
+ * Explicit multiline=false displays only the first unwrapped hard line.
58
+ */
59
+ get wordWrap() {
60
+ return this._textField.wordWrap;
61
+ }
62
+ set wordWrap(value) {
63
+ if (this.wordWrap === value)
64
+ return;
65
+ this._textField.wordWrap = value;
66
+ this._invalidateText();
67
+ }
68
+ get lineSpacing() {
69
+ return this._textField.lineSpacing;
70
+ }
71
+ set lineSpacing(value) {
72
+ if (!Number.isFinite(value) || value < 0) {
73
+ throw new RangeError('RichLabel.lineSpacing must be finite and nonnegative.');
74
+ }
75
+ if (this.lineSpacing === value)
76
+ return;
77
+ this._textField.lineSpacing = value;
78
+ this._invalidateText();
79
+ }
80
+ get textAlign() {
81
+ return this._textField.textAlign;
82
+ }
83
+ set textAlign(value) {
84
+ if (this.textAlign === value)
85
+ return;
86
+ if (!['left', 'center', 'right'].includes(value)) {
87
+ throw new RangeError('Invalid rich text alignment.');
88
+ }
89
+ this._textField.textAlign = value;
90
+ this.invalidateDisplayList();
91
+ }
92
+ get verticalAlign() {
93
+ return this._textField.verticalAlign;
94
+ }
95
+ set verticalAlign(value) {
96
+ if (this.verticalAlign === value)
97
+ return;
98
+ if (!['top', 'middle', 'bottom'].includes(value)) {
99
+ throw new RangeError('Invalid rich text vertical alignment.');
100
+ }
101
+ this._textField.verticalAlign = value;
102
+ this.invalidateDisplayList();
103
+ }
104
+ /**
105
+ * Complete content metrics under the current width constraint, before
106
+ * height clipping. Empty content has zero width and height.
107
+ */
108
+ get textWidth() {
109
+ return this._measureText().width;
110
+ }
111
+ get textHeight() {
112
+ return this._measureText().height;
113
+ }
114
+ // ── Override methods ──────────────────────────────────────────────────────
115
+ invalidateSize() {
116
+ // A late font load can change metrics without changing the authored runs.
117
+ this._measurement = undefined;
118
+ this._textField?.invalidateTextMetrics();
119
+ super.invalidateSize();
120
+ }
121
+ createChildren() {
122
+ super.createChildren();
123
+ this.addChild(this._textField);
124
+ }
125
+ measure() {
126
+ const measured = this._measureText();
127
+ this.setMeasuredSize(measured.width, measured.height);
128
+ }
129
+ setLayoutBoundsSize(layoutWidth, layoutHeight) {
130
+ super.setLayoutBoundsSize(layoutWidth, layoutHeight);
131
+ const width = Number.isFinite(layoutWidth) ? this.width : NaN;
132
+ if (Object.is(this._widthConstraint, width))
133
+ return;
134
+ this._widthConstraint = width;
135
+ this._invalidateText();
136
+ }
137
+ updateDisplayList(unscaledWidth, unscaledHeight) {
138
+ super.updateDisplayList(unscaledWidth, unscaledHeight);
139
+ this._textField.width = unscaledWidth;
140
+ this._textField.height = unscaledHeight;
141
+ }
142
+ // ── Private methods ───────────────────────────────────────────────────────
143
+ _copyTextFlow(value) {
144
+ return value.map(element => {
145
+ if (typeof element.text !== 'string') {
146
+ throw new TypeError('RichLabel text runs must contain string text.');
147
+ }
148
+ return element.style ? { text: element.text, style: { ...element.style } } : { text: element.text };
149
+ });
150
+ }
151
+ _invalidateText() {
152
+ this.invalidateSize();
153
+ this.invalidateDisplayList();
154
+ }
155
+ _measureText() {
156
+ if (!this._textField.text)
157
+ return { width: 0, height: 0 };
158
+ const width = Number.isFinite(this._widthConstraint)
159
+ ? this._widthConstraint
160
+ : Number.isFinite(this.$explicitWidth)
161
+ ? this.$explicitWidth
162
+ : this.maxWidth !== 100000
163
+ ? this.maxWidth
164
+ : NaN;
165
+ if (!this._measurement || !Object.is(this._measurementWidth, width)) {
166
+ this._measurement = this._textField.measureText(width);
167
+ this._measurementWidth = width;
168
+ }
169
+ return this._measurement;
170
+ }
171
+ }
172
+ //# sourceMappingURL=RichLabel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RichLabel.js","sourceRoot":"","sources":["../../../src/kurot/components/RichLabel.ts"],"names":[],"mappings":"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"}
@@ -32,4 +32,5 @@ export { EditableText } from './EditableText.js';
32
32
  export { TextInput } from './TextInput.js';
33
33
  export { ComboBox } from './ComboBox.js';
34
34
  export { BitmapLabel } from './BitmapLabel.js';
35
+ export { RichLabel } from './RichLabel.js';
35
36
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACtG,OAAO,EAAE,KAAK,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACtG,OAAO,EAAE,KAAK,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
@@ -32,4 +32,5 @@ export { EditableText } from './EditableText.js';
32
32
  export { TextInput } from './TextInput.js';
33
33
  export { ComboBox } from './ComboBox.js';
34
34
  export { BitmapLabel } from './BitmapLabel.js';
35
+ export { RichLabel } from './RichLabel.js';
35
36
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/kurot/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA6D,MAAM,gBAAgB,CAAC;AACtG,OAAO,EAAE,KAAK,EAAoB,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAoB,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAmB,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/kurot/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA6D,MAAM,gBAAgB,CAAC;AACtG,OAAO,EAAE,KAAK,EAAoB,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAoB,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAmB,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
@@ -62,6 +62,10 @@ export declare class UIState {
62
62
  validateNow(): void;
63
63
  setLayoutBoundsSize(layoutWidth: number, layoutHeight: number): void;
64
64
  setLayoutBoundsPosition(x: number, y: number): void;
65
+ /**
66
+ * Returns the already validated local layout frame without starting validation.
67
+ */
68
+ getActualBounds(bounds: Rectangle): void;
65
69
  getLayoutBounds(bounds: Rectangle): void;
66
70
  /**
67
71
  * Owner measurement uses local dimensions; its transform belongs to the parent layout.
@@ -1 +1 @@
1
- {"version":3,"file":"UIState.d.ts","sourceRoot":"","sources":["../../../src/kurot/core/UIState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UIState.d.ts","sourceRoot":"","sources":["../../../src/kurot/core/UIState.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { DisplayObjectContainer, Rectangle, Matrix, Event } from '@kurot/core';
2
2
  import { validator } from './Validator.js';
3
3
  import { UIEvent } from '../events/UIEvent.js';
4
+ import { fitTransformedBounds, TRANSFORM_EPSILON } from './fit-transformed-bounds.js';
4
5
  function isDeltaIdentity(m) {
5
6
  return m.a === 1 && m.b === 0 && m.c === 0 && m.d === 1;
6
7
  }
@@ -348,7 +349,14 @@ export class UIState {
348
349
  this._setActualSize(w, h);
349
350
  return;
350
351
  }
351
- const fit = fitBounds(layoutWidth, layoutHeight, m, this._owner.$explicitWidth, this._owner.$explicitHeight, this._preferredUWidth(), this._preferredUHeight(), minW, minH, maxW, maxH);
352
+ const fit = fitTransformedBounds(layoutWidth, layoutHeight, m, this._owner.$explicitWidth, this._owner.$explicitHeight, this._preferredUWidth(), this._preferredUHeight(), minW, minH, maxW, maxH);
353
+ // A parent-space constraint may allocate either or both local axes after transformation.
354
+ v[27 /* K.layoutWidthExplicitlySet */] =
355
+ (!isNaN(layoutWidth) && Math.abs(m.a) >= TRANSFORM_EPSILON) ||
356
+ (!isNaN(layoutHeight) && Math.abs(m.b) >= TRANSFORM_EPSILON);
357
+ v[28 /* K.layoutHeightExplicitlySet */] =
358
+ (!isNaN(layoutWidth) && Math.abs(m.c) >= TRANSFORM_EPSILON) ||
359
+ (!isNaN(layoutHeight) && Math.abs(m.d) >= TRANSFORM_EPSILON);
352
360
  this._setActualSize(fit.w, fit.h);
353
361
  }
354
362
  setLayoutBoundsPosition(x, y) {
@@ -367,6 +375,12 @@ export class UIState {
367
375
  UIEvent.dispatchUIEvent(owner, UIEvent.MOVE);
368
376
  }
369
377
  }
378
+ /**
379
+ * Returns the already validated local layout frame without starting validation.
380
+ */
381
+ getActualBounds(bounds) {
382
+ bounds.setTo(0, 0, this._v[10 /* K.width */], this._v[11 /* K.height */]);
383
+ }
370
384
  getLayoutBounds(bounds) {
371
385
  const v = this._v;
372
386
  const w = v[27 /* K.layoutWidthExplicitlySet */]
@@ -502,10 +516,4 @@ export class UIState {
502
516
  export function isUIComponent(obj) {
503
517
  return obj != null && typeof obj === 'object' && 'ui' in obj;
504
518
  }
505
- // ── fitBounds helper ──────────────────────────────────────────────────────────
506
- function fitBounds(_layoutW, _layoutH, _matrix, explicitW, explicitH, preferredW, preferredH, minW, minH, maxW, maxH) {
507
- const w = isNaN(explicitW) ? Math.max(minW, Math.min(maxW, preferredW)) : Math.max(minW, Math.min(maxW, explicitW));
508
- const h = isNaN(explicitH) ? Math.max(minH, Math.min(maxH, preferredH)) : Math.max(minH, Math.min(maxH, explicitH));
509
- return { w, h };
510
- }
511
519
  //# sourceMappingURL=UIState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UIState.js","sourceRoot":"","sources":["../../../src/kurot/core/UIState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UIState.js","sourceRoot":"","sources":["../../../src/kurot/core/UIState.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { Matrix } from '@kurot/core';
2
+ export declare const TRANSFORM_EPSILON = 1e-9;
3
+ interface Size {
4
+ w: number;
5
+ h: number;
6
+ }
7
+ /**
8
+ * Fits local dimensions to parent-space bounds. Translation and anchors affect position only.
9
+ * Feasible two-axis allocations fill both axes; incompatible allocations fit the largest
10
+ * rectangle inside them. Local minimum dimensions take precedence when no fit is possible.
11
+ */
12
+ export declare function fitTransformedBounds(layoutW: number, layoutH: number, matrix: Matrix, explicitW: number, explicitH: number, preferredW: number, preferredH: number, minW: number, minH: number, maxW: number, maxH: number): Size;
13
+ export {};
14
+ //# sourceMappingURL=fit-transformed-bounds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fit-transformed-bounds.d.ts","sourceRoot":"","sources":["../../../src/kurot/core/fit-transformed-bounds.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC,UAAU,IAAI;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AASD;;;;GAIG;AACH,wBAAgB,oBAAoB,CACnC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACV,IAAI,CAgBN"}
@@ -0,0 +1,149 @@
1
+ export const TRANSFORM_EPSILON = 1e-9;
2
+ /**
3
+ * Fits local dimensions to parent-space bounds. Translation and anchors affect position only.
4
+ * Feasible two-axis allocations fill both axes; incompatible allocations fit the largest
5
+ * rectangle inside them. Local minimum dimensions take precedence when no fit is possible.
6
+ */
7
+ export function fitTransformedBounds(layoutW, layoutH, matrix, explicitW, explicitH, preferredW, preferredH, minW, minH, maxW, maxH) {
8
+ const limits = { minW, minH, maxW, maxH };
9
+ const preferred = { w: clamp(preferredW, minW, maxW), h: clamp(preferredH, minH, maxH) };
10
+ const a = coefficient(matrix.a);
11
+ const b = coefficient(matrix.b);
12
+ const c = coefficient(matrix.c);
13
+ const d = coefficient(matrix.d);
14
+ if (isNaN(layoutW) && isNaN(layoutH))
15
+ return preferred;
16
+ if (isNaN(layoutH)) {
17
+ return fitOneAxis(layoutW, a, c, b, d, explicitW, explicitH, preferred, limits);
18
+ }
19
+ if (isNaN(layoutW)) {
20
+ return fitOneAxis(layoutH, b, d, a, c, explicitW, explicitH, preferred, limits);
21
+ }
22
+ return fitBothAxes(layoutW, layoutH, a, b, c, d, preferred, limits);
23
+ }
24
+ function fitBothAxes(width, height, a, b, c, d, preferred, limits) {
25
+ const { minW, minH, maxW, maxH } = limits;
26
+ if (a * minW + c * minH > width + TRANSFORM_EPSILON || b * minW + d * minH > height + TRANSFORM_EPSILON) {
27
+ return { w: minW, h: minH };
28
+ }
29
+ if (a === 0 && b === 0 && c === 0 && d === 0)
30
+ return preferred;
31
+ if (a === 0 && b === 0) {
32
+ return { w: preferred.w, h: clamp(Math.min(c > 0 ? width / c : maxH, d > 0 ? height / d : maxH), minH, maxH) };
33
+ }
34
+ if (c === 0 && d === 0) {
35
+ return { w: clamp(Math.min(a > 0 ? width / a : maxW, b > 0 ? height / b : maxW), minW, maxW), h: preferred.h };
36
+ }
37
+ const det = a * d - b * c;
38
+ if (Math.abs(det) > TRANSFORM_EPSILON) {
39
+ const exact = { w: (width * d - height * c) / det, h: (height * a - width * b) / det };
40
+ if (withinLimits(exact, limits)) {
41
+ return { w: clamp(exact.w, minW, maxW), h: clamp(exact.h, minH, maxH) };
42
+ }
43
+ }
44
+ let best = { w: minW, h: minH };
45
+ const consider = (size) => {
46
+ if (!size || !withinLimits(size, limits))
47
+ return;
48
+ if (a * size.w + c * size.h > width + TRANSFORM_EPSILON || b * size.w + d * size.h > height + TRANSFORM_EPSILON)
49
+ return;
50
+ if (size.w * size.h > best.w * best.h) {
51
+ best = size;
52
+ }
53
+ };
54
+ const availableW = Math.min(maxW, a > 0 ? width / a : maxW, b > 0 ? height / b : maxW);
55
+ const availableH = Math.min(maxH, c > 0 ? width / c : maxH, d > 0 ? height / d : maxH);
56
+ consider({ w: availableW, h: minH });
57
+ consider({ w: minW, h: availableH });
58
+ consider({ w: availableW, h: availableH });
59
+ consider(fitBoundary(width, a, c, height, b, d, limits));
60
+ consider(fitBoundary(height, b, d, width, a, c, limits));
61
+ return best;
62
+ }
63
+ function fitOneAxis(target, u, v, otherU, otherV, explicitW, explicitH, preferred, limits) {
64
+ if (u === 0 && v === 0)
65
+ return preferred;
66
+ if (u === 0)
67
+ return { w: preferred.w, h: clamp(target / v, limits.minH, limits.maxH) };
68
+ if (v === 0)
69
+ return { w: clamp(target / u, limits.minW, limits.maxW), h: preferred.h };
70
+ const keepWidth = { w: preferred.w, h: (target - u * preferred.w) / v };
71
+ const keepHeight = { w: (target - v * preferred.h) / u, h: preferred.h };
72
+ const widthFits = withinLimits(keepWidth, limits);
73
+ const heightFits = withinLimits(keepHeight, limits);
74
+ if (!isNaN(explicitW) && isNaN(explicitH) && widthFits)
75
+ return keepWidth;
76
+ if (isNaN(explicitW) && !isNaN(explicitH) && heightFits)
77
+ return keepHeight;
78
+ if (widthFits && heightFits) {
79
+ return otherU * keepWidth.w + otherV * keepWidth.h <= otherU * keepHeight.w + otherV * keepHeight.h
80
+ ? keepWidth
81
+ : keepHeight;
82
+ }
83
+ if (widthFits)
84
+ return keepWidth;
85
+ if (heightFits)
86
+ return keepHeight;
87
+ const range = boundaryRange(target, u, v, Infinity, 0, 0, limits);
88
+ if (!range)
89
+ return { w: limits.minW, h: limits.minH };
90
+ const slope = otherU - (otherV * u) / v;
91
+ const w = Math.abs(slope) <= TRANSFORM_EPSILON
92
+ ? clamp(target / (u + v), range.min, range.max)
93
+ : slope > 0
94
+ ? range.min
95
+ : range.max;
96
+ return { w, h: (target - u * w) / v };
97
+ }
98
+ function fitBoundary(target, u, v, otherTarget, otherU, otherV, limits) {
99
+ if (u === 0 && v === 0)
100
+ return undefined;
101
+ if (u === 0) {
102
+ const h = target / v;
103
+ const w = Math.min(limits.maxW, otherU > 0 ? (otherTarget - otherV * h) / otherU : limits.maxW);
104
+ return { w, h };
105
+ }
106
+ if (v === 0) {
107
+ const w = target / u;
108
+ const h = Math.min(limits.maxH, otherV > 0 ? (otherTarget - otherU * w) / otherV : limits.maxH);
109
+ return { w, h };
110
+ }
111
+ const range = boundaryRange(target, u, v, otherTarget, otherU, otherV, limits);
112
+ if (!range)
113
+ return undefined;
114
+ const w = clamp(target / (2 * u), range.min, range.max);
115
+ return { w, h: (target - u * w) / v };
116
+ }
117
+ function boundaryRange(target, u, v, otherTarget, otherU, otherV, limits) {
118
+ let min = Math.max(limits.minW, (target - v * limits.maxH) / u);
119
+ let max = Math.min(limits.maxW, (target - v * limits.minH) / u);
120
+ const slope = otherU - (otherV * u) / v;
121
+ const available = otherTarget - (otherV * target) / v;
122
+ if (slope > TRANSFORM_EPSILON) {
123
+ max = Math.min(max, available / slope);
124
+ }
125
+ else if (slope < -TRANSFORM_EPSILON) {
126
+ min = Math.max(min, available / slope);
127
+ }
128
+ else if (available < -TRANSFORM_EPSILON) {
129
+ return undefined;
130
+ }
131
+ if (min > max)
132
+ return undefined;
133
+ return { min, max };
134
+ }
135
+ function withinLimits(size, limits) {
136
+ return (Number.isFinite(size.w) &&
137
+ Number.isFinite(size.h) &&
138
+ size.w >= limits.minW - TRANSFORM_EPSILON &&
139
+ size.h >= limits.minH - TRANSFORM_EPSILON &&
140
+ size.w <= limits.maxW + TRANSFORM_EPSILON &&
141
+ size.h <= limits.maxH + TRANSFORM_EPSILON);
142
+ }
143
+ function coefficient(value) {
144
+ return Math.abs(value) < TRANSFORM_EPSILON ? 0 : Math.abs(value);
145
+ }
146
+ function clamp(value, min, max) {
147
+ return Math.max(min, Math.min(max, value));
148
+ }
149
+ //# sourceMappingURL=fit-transformed-bounds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fit-transformed-bounds.js","sourceRoot":"","sources":["../../../src/kurot/core/fit-transformed-bounds.ts"],"names":[],"mappings":"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"}