@triniwiz/nativescript-masonkit 1.0.0-beta.61 → 1.0.0-beta.63

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 (81) hide show
  1. package/DOCS.md +5 -5
  2. package/button/index.ios.js +2 -2
  3. package/button/index.ios.js.map +1 -1
  4. package/common.d.ts +8 -1
  5. package/common.js +183 -140
  6. package/common.js.map +1 -1
  7. package/img/index.ios.js +4 -2
  8. package/img/index.ios.js.map +1 -1
  9. package/index.android.d.ts +2 -0
  10. package/index.android.js +2 -0
  11. package/index.android.js.map +1 -1
  12. package/index.d.ts +10 -0
  13. package/index.ios.d.ts +2 -0
  14. package/index.ios.js +2 -0
  15. package/index.ios.js.map +1 -1
  16. package/input/index.ios.js +10 -2
  17. package/input/index.ios.js.map +1 -1
  18. package/li/index.android.d.ts +12 -0
  19. package/li/index.android.js +57 -0
  20. package/li/index.android.js.map +1 -0
  21. package/li/index.ios.d.ts +14 -0
  22. package/li/index.ios.js +125 -0
  23. package/li/index.ios.js.map +1 -0
  24. package/list/common.d.ts +33 -0
  25. package/list/common.js +157 -0
  26. package/list/common.js.map +1 -0
  27. package/list/index.android.d.ts +28 -0
  28. package/list/index.android.js +155 -0
  29. package/list/index.android.js.map +1 -0
  30. package/list/index.ios.d.ts +42 -0
  31. package/list/index.ios.js +321 -0
  32. package/list/index.ios.js.map +1 -0
  33. package/package.json +1 -1
  34. package/platforms/android/masonkit-release.aar +0 -0
  35. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Headers/Mason-Swift.h +110 -24
  36. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Headers/mason_native.h +57 -8
  37. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Mason +0 -0
  38. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
  39. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.abi.json +63643 -39594
  40. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.private.swiftinterface +777 -226
  41. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  42. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.swiftinterface +777 -226
  43. package/platforms/ios/Mason.xcframework/ios-arm64/dSYMs/Mason.framework.dSYM/Contents/Resources/DWARF/Mason +0 -0
  44. package/platforms/ios/Mason.xcframework/ios-arm64/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/aarch64/Mason.yml +8210 -7413
  45. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Headers/Mason-Swift.h +220 -48
  46. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Headers/mason_native.h +57 -8
  47. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Mason +0 -0
  48. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
  49. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
  50. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.abi.json +63643 -39594
  51. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +777 -226
  52. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  53. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.swiftinterface +777 -226
  54. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.abi.json +63643 -39594
  55. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +777 -226
  56. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  57. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +777 -226
  58. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/_CodeSignature/CodeResources +28 -28
  59. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/DWARF/Mason +0 -0
  60. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/aarch64/Mason.yml +8205 -7408
  61. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/x86_64/Mason.yml +7869 -7103
  62. package/properties.d.ts +12 -1
  63. package/properties.js +57 -0
  64. package/properties.js.map +1 -1
  65. package/scroll/index.ios.js +6 -2
  66. package/scroll/index.ios.js.map +1 -1
  67. package/style.d.ts +22 -3
  68. package/style.js +512 -235
  69. package/style.js.map +1 -1
  70. package/text/index.ios.js +5 -2
  71. package/text/index.ios.js.map +1 -1
  72. package/tree/index.android.d.ts +2 -0
  73. package/tree/index.android.js +6 -0
  74. package/tree/index.android.js.map +1 -1
  75. package/tree/index.ios.d.ts +3 -1
  76. package/tree/index.ios.js +7 -1
  77. package/tree/index.ios.js.map +1 -1
  78. package/utils/index.android.d.ts +11 -0
  79. package/utils/index.ios.d.ts +11 -0
  80. package/view/index.ios.js +20 -4
  81. package/view/index.ios.js.map +1 -1
@@ -0,0 +1,321 @@
1
+ import { CSSType, ProxyViewContainer, Screen, StackLayout, Utils, View } from '@nativescript/core';
2
+ import { ListBase } from './common';
3
+ import { ViewBase } from '../common';
4
+ import { isMasonView_, native_, style_ } from '../symbols';
5
+ import { Tree } from '../tree/index';
6
+ import { Style } from '../style';
7
+ const ITEMLOADING = ListBase.itemLoadingEvent;
8
+ var ListDelegateImpl = (function (_super) {
9
+ __extends(ListDelegateImpl, _super);
10
+ function ListDelegateImpl() {
11
+ return _super !== null && _super.apply(this, arguments) || this;
12
+ }
13
+ ListDelegateImpl.initWithOwner = function (owner) {
14
+ var delegate = ListDelegateImpl.new();
15
+ delegate._owner = owner;
16
+ return delegate;
17
+ };
18
+ ListDelegateImpl.prototype.listCellForItemAt = function (list, indexPath) {
19
+ var _a;
20
+ var owner = (_a = this._owner) === null || _a === void 0 ? void 0 : _a.deref();
21
+ if (!owner) {
22
+ return MasonListCell.initWithEmptyBackground();
23
+ }
24
+ var index = indexPath.item;
25
+ var template = owner._getItemTemplate(index);
26
+ var templateIndex = owner._itemTemplatesInternal.indexOf(template);
27
+ var identifier = "template-".concat(templateIndex);
28
+ var cell = list.dequeueReusableCellWithReuseIdentifierForIndexPath(identifier, indexPath);
29
+ console.log("Dequeued cell for index", index, "with template index", templateIndex, "and identifier", identifier);
30
+ owner._prepareCell(cell, indexPath);
31
+ return cell;
32
+ };
33
+ ListDelegateImpl.prototype.listWillDisplayForItemAt = function (list, cell, indexPath) {
34
+ var _a;
35
+ var owner = (_a = this._owner) === null || _a === void 0 ? void 0 : _a.deref();
36
+ if (!owner) {
37
+ return;
38
+ }
39
+ if (owner.items && indexPath.item === owner.items.length - 1) {
40
+ owner.notify({
41
+ eventName: ListBase.loadMoreItemsEvent,
42
+ object: owner,
43
+ });
44
+ }
45
+ };
46
+ ListDelegateImpl.ObjCProtocols = [MasonListDelegate];
47
+ return ListDelegateImpl;
48
+ }(NSObject));
49
+ const listState_ = Symbol('[[listState]]');
50
+ export class List extends ListBase {
51
+ constructor(ordered = false) {
52
+ super();
53
+ this._inBatch = false;
54
+ this._preparingCell = false;
55
+ this._isDataDirty = false;
56
+ this._staticViews = [];
57
+ this.ordered = ordered ?? false;
58
+ this[isMasonView_] = true;
59
+ this._map = new Map();
60
+ }
61
+ get _view() {
62
+ if (!this[native_]) {
63
+ const view = Tree.instance.createList();
64
+ if (this.ordered) {
65
+ view.isOrdered = true;
66
+ }
67
+ this[native_] = view;
68
+ this[listState_] = new DataView(interop.bufferFromData(view.values));
69
+ return view;
70
+ }
71
+ return this[native_];
72
+ }
73
+ get _styleHelper() {
74
+ if (this[style_] === undefined) {
75
+ this[style_] = Style.fromView(this, this._view);
76
+ }
77
+ return this[style_];
78
+ }
79
+ createNativeView() {
80
+ if (this._staticViews.length > 0) {
81
+ for (const staticView of this._staticViews) {
82
+ staticView._setupUI(this._context);
83
+ this._view.addView(staticView._view);
84
+ }
85
+ }
86
+ return this._view;
87
+ }
88
+ initNativeView() {
89
+ super.initNativeView();
90
+ for (let i = 0; i < this._itemTemplatesInternal.length; i++) {
91
+ this._view.registerWithCellClassForCellWithReuseIdentifier(MasonListCell.class(), `template-${i}`);
92
+ }
93
+ this._delegate = ListDelegateImpl.initWithOwner(new WeakRef(this));
94
+ this._view.delegate = this._delegate;
95
+ }
96
+ onMeasure(widthMeasureSpec, heightMeasureSpec) {
97
+ const nativeView = this._view;
98
+ if (nativeView) {
99
+ const specWidth = Utils.layout.getMeasureSpecSize(widthMeasureSpec);
100
+ const widthMode = Utils.layout.getMeasureSpecMode(widthMeasureSpec);
101
+ const specHeight = Utils.layout.getMeasureSpecSize(heightMeasureSpec);
102
+ const heightMode = Utils.layout.getMeasureSpecMode(heightMeasureSpec);
103
+ if (!this[isMasonView_]) {
104
+ const unconstrained = widthMode === Utils.layout.UNSPECIFIED || heightMode === Utils.layout.UNSPECIFIED || (widthMode === Utils.layout.AT_MOST && specWidth === 0) || (heightMode === Utils.layout.AT_MOST && specHeight === 0);
105
+ if (this.width === 'auto' && this.height === 'auto' && !unconstrained) {
106
+ // @ts-ignore
107
+ this.ios.mason_computeWithSize(specWidth, specHeight);
108
+ // @ts-ignore
109
+ const layout = this.ios.mason_layout();
110
+ const w = Utils.layout.makeMeasureSpec(layout.width, Utils.layout.EXACTLY);
111
+ const h = Utils.layout.makeMeasureSpec(layout.height, Utils.layout.EXACTLY);
112
+ this.setMeasuredDimension(w, h);
113
+ return;
114
+ }
115
+ else {
116
+ // fallback to max-content when unconstrained or explicit sizes
117
+ // are provided
118
+ // @ts-ignore
119
+ this.ios.mason_computeWithMaxContent();
120
+ // @ts-ignore
121
+ const layout = this.ios.node.computedLayout;
122
+ const w = Utils.layout.makeMeasureSpec(layout.width, Utils.layout.EXACTLY);
123
+ const h = Utils.layout.makeMeasureSpec(layout.height, Utils.layout.EXACTLY);
124
+ this.setMeasuredDimension(w, h);
125
+ }
126
+ }
127
+ else {
128
+ // @ts-ignore
129
+ const layout = this.ios.node.computedLayout;
130
+ const w = Utils.layout.makeMeasureSpec(layout.width, Utils.layout.EXACTLY);
131
+ const h = Utils.layout.makeMeasureSpec(layout.height, Utils.layout.EXACTLY);
132
+ this.setMeasuredDimension(w, h);
133
+ }
134
+ }
135
+ }
136
+ disposeNativeView() {
137
+ this._delegate = null;
138
+ this._view.delegate = null;
139
+ super.disposeNativeView();
140
+ }
141
+ onLoaded() {
142
+ super.onLoaded();
143
+ if (this._isDataDirty) {
144
+ this.refresh();
145
+ }
146
+ }
147
+ _addChildFromBuilder(name, value) {
148
+ if (value instanceof View && !value.parent && !value.nativeView) {
149
+ this._staticViews.push(value);
150
+ }
151
+ }
152
+ get _childrenCount() {
153
+ return this._map.size + this._staticViews.length;
154
+ }
155
+ eachChildView(callback) {
156
+ this._map.forEach((view) => {
157
+ callback(view);
158
+ });
159
+ }
160
+ requestLayout() {
161
+ if (!this._preparingCell) {
162
+ super.requestLayout();
163
+ }
164
+ }
165
+ // @ts-ignore
166
+ _addViewToNativeVisualTree(child) {
167
+ return true;
168
+ }
169
+ _layoutCell(cellView) {
170
+ if (!cellView)
171
+ return;
172
+ const masonElement = cellView._view;
173
+ if (!masonElement)
174
+ return;
175
+ // Use the list's current bounds width as the available width
176
+ const listWidth = this._view.bounds.size.width;
177
+ if (listWidth <= 0)
178
+ return;
179
+ // @ts-ignore – compute mason layout
180
+ const scale = Screen.mainScreen.scale;
181
+ masonElement.mason_computeWithSize(listWidth * scale, -2);
182
+ // @ts-ignore
183
+ const layout = masonElement.mason_layout();
184
+ const w = layout.width;
185
+ const h = layout.height;
186
+ if (w <= 0 || h <= 0)
187
+ return;
188
+ const wSpec = Utils.layout.makeMeasureSpec(w, Utils.layout.EXACTLY);
189
+ const hSpec = Utils.layout.makeMeasureSpec(h, Utils.layout.EXACTLY);
190
+ ViewBase.measureChild(this, cellView, wSpec, hSpec);
191
+ View.layoutChild(this, cellView, 0, 0, w, h);
192
+ }
193
+ _prepareCell(cell, indexPath) {
194
+ try {
195
+ this._preparingCell = true;
196
+ const index = indexPath.item;
197
+ let view = cell['nsView'];
198
+ const template = this._getItemTemplate(index);
199
+ if (!view) {
200
+ view = template.createView();
201
+ }
202
+ const args = {
203
+ eventName: ITEMLOADING,
204
+ object: this,
205
+ index,
206
+ android: undefined,
207
+ ios: cell,
208
+ view,
209
+ };
210
+ this.notify(args);
211
+ view = args.view || this._getDefaultItemContent(index);
212
+ if (view instanceof ProxyViewContainer) {
213
+ const sp = new StackLayout();
214
+ sp.addChild(view);
215
+ view = sp;
216
+ }
217
+ if (!cell['nsView']) {
218
+ cell['nsView'] = view;
219
+ }
220
+ else if (cell['nsView'] !== view) {
221
+ this._removeContainer(cell);
222
+ cell['nsView'] = view;
223
+ }
224
+ this._prepareItem(view, index);
225
+ this._map.set(cell, view);
226
+ if (view && !view.parent) {
227
+ this._addView(view);
228
+ const masonElement = view._view;
229
+ if (masonElement) {
230
+ cell.setViewWithCompat(masonElement);
231
+ }
232
+ }
233
+ this._layoutCell(view);
234
+ // Set up willMove callback for cleanup
235
+ cell.willMove = (c) => {
236
+ // When cell is removed from superview (newSuperview == nil),
237
+ // willMove fires. Check if the cell still has a superview.
238
+ // If not, clean up.
239
+ const parent = c['nsView']?.parent;
240
+ if (parent === this && !c.superview) {
241
+ this._removeContainer(c);
242
+ }
243
+ };
244
+ }
245
+ finally {
246
+ this._preparingCell = false;
247
+ }
248
+ }
249
+ _removeContainer(cell) {
250
+ const view = cell['nsView'];
251
+ if (!view) {
252
+ this._map.delete(cell);
253
+ return;
254
+ }
255
+ if (view.parent) {
256
+ if (!(view.parent instanceof List)) {
257
+ this._removeView(view.parent);
258
+ }
259
+ const preparing = this._preparingCell;
260
+ this._preparingCell = true;
261
+ view.parent._removeView(view);
262
+ this._preparingCell = preparing;
263
+ }
264
+ cell['nsView'] = null;
265
+ this._map.delete(cell);
266
+ }
267
+ get _stateView() {
268
+ return this[listState_];
269
+ }
270
+ _onItemsChanged(args) {
271
+ this.refresh();
272
+ }
273
+ _updateItemsCount() {
274
+ if (!this[listState_]) {
275
+ this._view.count = this.items ? this.items.length : 0;
276
+ }
277
+ else {
278
+ this._stateView.setInt32(0, this.items ? this.items.length : 0, true);
279
+ }
280
+ this._view.reload();
281
+ }
282
+ refresh() {
283
+ if (this[native_]) {
284
+ // Clear binding context for non-observable items
285
+ this._map.forEach((view) => {
286
+ if (view.bindingContext && !(view.bindingContext instanceof Object)) {
287
+ view.bindingContext = null;
288
+ }
289
+ });
290
+ if (this.isLoaded) {
291
+ this._view.reload();
292
+ this.requestLayout();
293
+ this._isDataDirty = false;
294
+ }
295
+ else {
296
+ this._isDataDirty = true;
297
+ }
298
+ }
299
+ }
300
+ }
301
+ let UnorderedList = class UnorderedList extends List {
302
+ constructor() {
303
+ super(false);
304
+ }
305
+ };
306
+ UnorderedList = __decorate([
307
+ CSSType('ul'),
308
+ __metadata("design:paramtypes", [])
309
+ ], UnorderedList);
310
+ export { UnorderedList };
311
+ let OrderedList = class OrderedList extends List {
312
+ constructor() {
313
+ super(true);
314
+ }
315
+ };
316
+ OrderedList = __decorate([
317
+ CSSType('ol'),
318
+ __metadata("design:paramtypes", [])
319
+ ], OrderedList);
320
+ export { OrderedList };
321
+ //# sourceMappingURL=index.ios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../../../packages/nativescript-masonkit/list/index.ios.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@triniwiz/nativescript-masonkit",
3
- "version": "1.0.0-beta.61",
3
+ "version": "1.0.0-beta.63",
4
4
  "description": "Web Inspired Layout",
5
5
  "main": "index",
6
6
  "typings": "index.d.ts",
@@ -372,7 +372,7 @@ SWIFT_PROTOCOL_NAMED("TextContainer")
372
372
  @protocol MasonTextContainer <NSObject>
373
373
  @property (nonatomic, readonly, strong) MasonTextEngine * _Nonnull engine;
374
374
  @property (nonatomic, readonly, strong) MasonNode * _Nonnull node;
375
- - (void)onTextStyleChangedWithChange:(int64_t)change;
375
+ - (void)onStyleChange:(uint64_t)low :(uint64_t)high;
376
376
  @end
377
377
 
378
378
  @class MasonStyle;
@@ -399,9 +399,10 @@ SWIFT_CLASS_NAMED("Button")
399
399
  - (void)requestLayout;
400
400
  - (void)addView:(UIView * _Nonnull)view;
401
401
  - (void)addView:(UIView * _Nonnull)view at:(NSInteger)at;
402
+ - (void)layoutSubviews;
402
403
  - (void)drawRect:(CGRect)rect;
403
404
  @property (nonatomic, readonly, strong) NSMutableData * _Nonnull textValues;
404
- - (void)onTextStyleChangedWithChange:(int64_t)change;
405
+ - (void)onStyleChange:(uint64_t)low :(uint64_t)high;
405
406
  - (nonnull instancetype)initWithFrame:(CGRect)frame OBJC_DESIGNATED_INITIALIZER;
406
407
  - (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder SWIFT_UNAVAILABLE;
407
408
  @end
@@ -410,9 +411,9 @@ SWIFT_CLASS_NAMED("Button")
410
411
  @class UIEvent;
411
412
  @interface MasonButton (SWIFT_EXTENSION(Mason))
412
413
  - (void)touchesBegan:(NSSet<UITouch *> * _Nonnull)touches withEvent:(UIEvent * _Nullable)event;
413
- - (void)touchesMoved:(NSSet<UITouch *> * _Nonnull)touches withEvent:(UIEvent * _Nullable)event;
414
414
  - (void)touchesEnded:(NSSet<UITouch *> * _Nonnull)touches withEvent:(UIEvent * _Nullable)event;
415
415
  - (void)touchesCancelled:(NSSet<UITouch *> * _Nonnull)touches withEvent:(UIEvent * _Nullable)event;
416
+ - (void)touchesMoved:(NSSet<UITouch *> * _Nonnull)touches withEvent:(UIEvent * _Nullable)event;
416
417
  @end
417
418
 
418
419
  typedef SWIFT_ENUM_NAMED(NSInteger, MasonClear, "Clear", open) {
@@ -531,6 +532,7 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly) Class _Nonnull layer
531
532
  - (void)requestLayout;
532
533
  @property (nonatomic, copy) NSString * _Nullable src;
533
534
  - (void)updateImage:(UIImage * _Nullable)image;
535
+ - (void)layoutSubviews;
534
536
  - (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder SWIFT_UNAVAILABLE;
535
537
  - (nonnull instancetype)initWithFrame:(CGRect)frame SWIFT_UNAVAILABLE;
536
538
  @end
@@ -787,40 +789,43 @@ typedef SWIFT_ENUM_NAMED(int8_t, MasonInputType, "MasonInputType", open) {
787
789
  MasonInputTypeSubmit = 13,
788
790
  };
789
791
 
792
+ @class MasonRectHelper;
793
+ @class MasonSizeHelper;
790
794
  SWIFT_CLASS_NAMED("MasonLayout")
791
795
  @interface MasonLayout : NSObject
792
- @property (nonatomic, readonly) NSInteger order;
796
+ SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) MasonLayout * _Nonnull empty;)
797
+ + (MasonLayout * _Nonnull)empty SWIFT_WARN_UNUSED_RESULT;
793
798
  @property (nonatomic, readonly) float x;
794
799
  @property (nonatomic, readonly) float y;
795
800
  @property (nonatomic, readonly) float width;
796
801
  @property (nonatomic, readonly) float height;
797
- @property (nonatomic, readonly, copy) NSArray<MasonLayout *> * _Nonnull children;
798
- SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) MasonLayout * _Nonnull zero;)
799
- + (MasonLayout * _Nonnull)zero SWIFT_WARN_UNUSED_RESULT;
800
- @property (nonatomic, readonly) BOOL hasChildren;
801
- @property (nonatomic, readonly) BOOL borderIsEmpty;
802
802
  @property (nonatomic, readonly) float borderTop;
803
803
  @property (nonatomic, readonly) float borderRight;
804
804
  @property (nonatomic, readonly) float borderBottom;
805
805
  @property (nonatomic, readonly) float borderLeft;
806
- @property (nonatomic, readonly) BOOL marginIsEmpty;
807
806
  @property (nonatomic, readonly) float marginTop;
808
807
  @property (nonatomic, readonly) float marginRight;
809
808
  @property (nonatomic, readonly) float marginBottom;
810
809
  @property (nonatomic, readonly) float marginLeft;
811
- @property (nonatomic, readonly) BOOL paddingIsEmpty;
812
810
  @property (nonatomic, readonly) float paddingTop;
813
811
  @property (nonatomic, readonly) float paddingRight;
814
812
  @property (nonatomic, readonly) float paddingBottom;
815
813
  @property (nonatomic, readonly) float paddingLeft;
814
+ @property (nonatomic, readonly) float contentWidth;
815
+ @property (nonatomic, readonly) float contentHeight;
816
+ @property (nonatomic, readonly) float scrollbarWidth;
817
+ @property (nonatomic, readonly) float scrollbarHeight;
816
818
  @property (nonatomic, readonly) BOOL sizeIsEmpty;
817
- @property (nonatomic, readonly) BOOL contentSizeIsEmpty;
818
- @property (nonatomic, readonly) float contentSizeWidth;
819
- @property (nonatomic, readonly) float contentSizeHeight;
820
- @property (nonatomic, readonly) BOOL scrollbarSizeIsEmpty;
821
- @property (nonatomic, readonly) float scrollbarSizeWidth;
822
- @property (nonatomic, readonly) float scrollbarSizeHeight;
823
- @property (nonatomic, readonly, copy) NSString * _Nonnull description;
819
+ @property (nonatomic, readonly) BOOL paddingIsEmpty;
820
+ @property (nonatomic, readonly) BOOL marginIsEmpty;
821
+ @property (nonatomic, readonly) BOOL borderIsEmpty;
822
+ @property (nonatomic, readonly, strong) MasonRectHelper * _Nonnull border;
823
+ @property (nonatomic, readonly, strong) MasonRectHelper * _Nonnull margin;
824
+ @property (nonatomic, readonly, strong) MasonRectHelper * _Nonnull padding;
825
+ @property (nonatomic, readonly, strong) MasonSizeHelper * _Nonnull contentSize;
826
+ @property (nonatomic, readonly, strong) MasonSizeHelper * _Nonnull scrollbarSize;
827
+ @property (nonatomic, readonly) BOOL hasChildren;
828
+ @property (nonatomic, readonly, copy) NSArray<MasonLayout *> * _Nonnull children;
824
829
  - (nonnull instancetype)init SWIFT_UNAVAILABLE;
825
830
  + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
826
831
  @end
@@ -945,20 +950,34 @@ SWIFT_CLASS_NAMED("MasonLi")
945
950
  @class NSIndexPath;
946
951
  @class UICollectionViewCell;
947
952
  SWIFT_CLASS_NAMED("MasonList")
948
- @interface MasonList : UIView <MasonElementObjc, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout>
953
+ @interface MasonList : UIView <MasonElementObjc, UICollectionViewDataSource, UICollectionViewDataSourcePrefetching, UICollectionViewDelegateFlowLayout>
949
954
  @property (nonatomic, strong) id <MasonListDelegate> _Nullable delegate;
950
955
  - (void)drawRect:(CGRect)rect;
951
956
  @property (nonatomic, readonly, strong) MasonNode * _Nonnull node;
952
957
  @property (nonatomic, readonly, strong) NSCMason * _Nonnull mason;
953
958
  @property (nonatomic, readonly, strong) UIView * _Nonnull uiView;
954
959
  @property (nonatomic, readonly, strong) MasonStyle * _Nonnull style;
960
+ /// Static items keyed by their position in the overall list.
961
+ /// Positions not in this dictionary are virtual (recycled via delegate).
962
+ @property (nonatomic, readonly, copy) NSDictionary<NSNumber *, MasonLi *> * _Nonnull staticItems;
963
+ /// Backward-compat: flat array of static views (unpositioned).
964
+ /// Setting this clears staticItems and assigns positions 0..<array.count.
965
+ @property (nonatomic, copy) NSArray<MasonLi *> * _Nonnull staticViews;
955
966
  @property (nonatomic, strong) NSMutableData * _Nonnull values;
967
+ /// Virtual item count (set by user). Total count = staticItems.count + this value.
956
968
  @property (nonatomic) NSInteger count;
957
969
  - (void)layoutSubviews;
958
970
  - (void)registerWithCellClass:(Class _Nullable)cellClass forCellWithReuseIdentifier:(NSString * _Nonnull)identifier;
971
+ /// Appends a static item at the end of the list (position = current count).
972
+ - (void)addView:(MasonLi * _Nonnull)item;
973
+ /// Inserts a static item at the given position, shifting existing entries at >= index.
974
+ - (void)addView:(MasonLi * _Nonnull)item at:(NSInteger)index;
959
975
  - (void)reload;
960
976
  @property (nonatomic) BOOL isOrdered;
961
977
  - (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder SWIFT_UNAVAILABLE;
978
+ - (void)invalidateSizeCache;
979
+ - (void)invalidateSizeCacheAt:(NSInteger)index;
980
+ - (void)collectionView:(UICollectionView * _Nonnull)collectionView prefetchItemsAtIndexPaths:(NSArray<NSIndexPath *> * _Nonnull)indexPaths;
962
981
  - (NSInteger)collectionView:(UICollectionView * _Nonnull)collectionView numberOfItemsInSection:(NSInteger)section SWIFT_WARN_UNUSED_RESULT;
963
982
  - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView * _Nonnull)collectionView SWIFT_WARN_UNUSED_RESULT;
964
983
  - (UICollectionViewCell * _Nonnull)collectionView:(UICollectionView * _Nonnull)collectionView cellForItemAtIndexPath:(NSIndexPath * _Nonnull)indexPath SWIFT_WARN_UNUSED_RESULT;
@@ -972,6 +991,20 @@ SWIFT_PROTOCOL_NAMED("MasonListDelegate")
972
991
  - (void)list:(UICollectionView * _Nonnull)list willDisplay:(UICollectionViewCell * _Nonnull)cell forItemAt:(NSIndexPath * _Nonnull)indexPath;
973
992
  @end
974
993
 
994
+ @class UICollectionViewLayoutAttributes;
995
+ SWIFT_CLASS_NAMED("MasonListCell")
996
+ @interface MasonListCell : UICollectionViewCell
997
+ @property (nonatomic, copy) void (^ _Nullable willMove)(MasonListCell * _Nonnull);
998
+ + (MasonListCell * _Nonnull)initWithEmptyBackground SWIFT_METHOD_FAMILY(none) SWIFT_WARN_UNUSED_RESULT;
999
+ - (void)setViewWithCompat:(id <MasonElementObjc> _Nullable)view;
1000
+ - (void)willMoveToSuperview:(UIView * _Nullable)newSuperview;
1001
+ - (void)prepareForReuse;
1002
+ - (UICollectionViewLayoutAttributes * _Nonnull)preferredLayoutAttributesFittingAttributes:(UICollectionViewLayoutAttributes * _Nonnull)layoutAttributes SWIFT_WARN_UNUSED_RESULT;
1003
+ - (void)layoutSubviews;
1004
+ - (nonnull instancetype)initWithFrame:(CGRect)frame OBJC_DESIGNATED_INITIALIZER;
1005
+ - (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
1006
+ @end
1007
+
975
1008
  @class MasonMouseEventOptions;
976
1009
  SWIFT_CLASS_NAMED("MasonMouseEvent")
977
1010
  @interface MasonMouseEvent : MasonEvent
@@ -1011,6 +1044,9 @@ SWIFT_CLASS_NAMED("MasonNode")
1011
1044
  @property (nonatomic, readonly) void * _Nullable nativePtr;
1012
1045
  @property (nonatomic, readonly, strong) MasonLayout * _Nonnull computedLayout;
1013
1046
  @property (nonatomic, readonly, strong) MasonDocument * _Nullable document;
1047
+ - (void)setPseudoString:(uint16_t)pseudoState key:(NSString * _Nonnull)key value:(NSString * _Nonnull)value;
1048
+ - (NSString * _Nullable)getPseudoString:(uint16_t)pseudoState key:(NSString * _Nonnull)key SWIFT_WARN_UNUSED_RESULT;
1049
+ - (void)clearPseudoString:(uint16_t)pseudoState key:(NSString * _Nonnull)key;
1014
1050
  - (MasonNode * _Nonnull)getRootNode SWIFT_WARN_UNUSED_RESULT;
1015
1051
  @property (nonatomic, readonly, strong) MasonNode * _Nullable parent;
1016
1052
  @property (nonatomic, readonly, strong) MasonNode * _Nullable parentNode;
@@ -1031,6 +1067,15 @@ SWIFT_CLASS_NAMED("MasonNode")
1031
1067
  @interface MasonNode (SWIFT_EXTENSION(Mason))
1032
1068
  - (void)setChildrenWithValue:(NSArray<MasonNode *> * _Nonnull)value;
1033
1069
  - (void)appendChild:(MasonNode * _Nonnull)child;
1070
+ - (void)removeAllChildren;
1071
+ @end
1072
+
1073
+ enum PseudoState : uint16_t;
1074
+ @interface MasonNode (SWIFT_EXTENSION(Mason))
1075
+ /// Current active pseudo state bitmask read from the native state buffer.
1076
+ @property (nonatomic, readonly) uint16_t pseudoMask;
1077
+ - (BOOL)hasPseudo:(enum PseudoState)state SWIFT_WARN_UNUSED_RESULT;
1078
+ - (void)setPseudo:(enum PseudoState)state :(BOOL)enabled autoDirty:(BOOL)autoDirty;
1034
1079
  @end
1035
1080
 
1036
1081
  typedef SWIFT_ENUM_NAMED(int32_t, MasonNodeType, "MasonNodeType", open) {
@@ -1049,6 +1094,25 @@ SWIFT_CLASS_NAMED("MasonOverflowPointCompat")
1049
1094
  + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
1050
1095
  @end
1051
1096
 
1097
+ SWIFT_CLASS_NAMED("MasonRectHelper")
1098
+ @interface MasonRectHelper : NSObject
1099
+ @property (nonatomic, readonly) float top;
1100
+ @property (nonatomic, readonly) float right;
1101
+ @property (nonatomic, readonly) float bottom;
1102
+ @property (nonatomic, readonly) float left;
1103
+ - (BOOL)isEmpty SWIFT_WARN_UNUSED_RESULT;
1104
+ - (nonnull instancetype)init SWIFT_UNAVAILABLE;
1105
+ + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
1106
+ @end
1107
+
1108
+ SWIFT_CLASS_NAMED("MasonSizeHelper")
1109
+ @interface MasonSizeHelper : NSObject
1110
+ @property (nonatomic, readonly) float width;
1111
+ @property (nonatomic, readonly) float height;
1112
+ - (nonnull instancetype)init SWIFT_UNAVAILABLE;
1113
+ + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
1114
+ @end
1115
+
1052
1116
  @class NSCFontFace;
1053
1117
  @class MasonVerticalAlignValue;
1054
1118
  enum MasonObjectFit : NSInteger;
@@ -1065,7 +1129,6 @@ SWIFT_CLASS_NAMED("MasonStyle")
1065
1129
  @property (nonatomic, readonly, strong) NSCFontFace * _Null_unspecified font;
1066
1130
  - (void)prepareMut;
1067
1131
  @property (nonatomic, readonly, strong) NSMutableData * _Nonnull values;
1068
- @property (nonatomic, strong) NSMutableData * _Nonnull textValues;
1069
1132
  - (nonnull instancetype)initWithNode:(MasonNode * _Nonnull)node OBJC_DESIGNATED_INITIALIZER;
1070
1133
  @property (nonatomic) enum MasonListStylePosition listStylePosition;
1071
1134
  @property (nonatomic) enum MasonListStyleType listStyleType;
@@ -1091,8 +1154,10 @@ SWIFT_CLASS_NAMED("MasonStyle")
1091
1154
  - (void)setLineHeight:(float)value :(BOOL)isRelative;
1092
1155
  @property (nonatomic) float lineHeight;
1093
1156
  @property (nonatomic) float letterSpacing;
1157
+ @property (nonatomic, copy) NSString * _Nonnull fontVariantNumericString;
1094
1158
  @property (nonatomic) uint32_t decorationColor;
1095
1159
  - (void)setDecorationColorWithUi:(UIColor * _Nonnull)color;
1160
+ - (void)setDecorationColorWithCss:(NSString * _Nonnull)color;
1096
1161
  @property (nonatomic) enum MasonDecorationLine decorationLine;
1097
1162
  @property (nonatomic) int32_t fontSize;
1098
1163
  - (void)setFontStyle:(enum MasonFontStyle)style :(int32_t)slant;
@@ -1137,7 +1202,13 @@ SWIFT_CLASS_NAMED("MasonStyle")
1137
1202
  - (void)setPaddingBottom:(float)value :(NSInteger)type;
1138
1203
  - (void)setPaddingWithValueType:(float)value :(NSInteger)type;
1139
1204
  @property (nonatomic, copy) NSString * _Nonnull textShadow;
1205
+ @property (nonatomic, copy) NSString * _Nonnull boxShadow;
1140
1206
  @property (nonatomic, copy) NSString * _Nonnull borderRadius;
1207
+ @property (nonatomic, copy) NSString * _Nonnull cornerShape;
1208
+ @property (nonatomic, copy) NSString * _Nonnull cornerShapeTopLeft;
1209
+ @property (nonatomic, copy) NSString * _Nonnull cornerShapeTopRight;
1210
+ @property (nonatomic, copy) NSString * _Nonnull cornerShapeBottomRight;
1211
+ @property (nonatomic, copy) NSString * _Nonnull cornerShapeBottomLeft;
1141
1212
  @property (nonatomic, copy) NSString * _Nonnull border;
1142
1213
  @property (nonatomic, strong) MasonLengthPercentageRectCompat * _Nonnull borderWidthCompat;
1143
1214
  - (void)setBorderLeftWidth:(float)value :(NSInteger)type;
@@ -1199,13 +1270,14 @@ SWIFT_CLASS_NAMED("MasonText")
1199
1270
  SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly) Class _Nonnull layerClass;)
1200
1271
  + (Class _Nonnull)layerClass SWIFT_WARN_UNUSED_RESULT;
1201
1272
  @property (nonatomic, readonly, strong) NSMutableData * _Nonnull textValues;
1202
- - (void)onTextStyleChangedWithChange:(int64_t)change;
1273
+ - (void)onStyleChange:(uint64_t)low :(uint64_t)high;
1203
1274
  @property (nonatomic, readonly, strong) UIView * _Nonnull uiView;
1204
1275
  @property (nonatomic, readonly, strong) MasonStyle * _Nonnull style;
1205
1276
  - (nonnull instancetype)initWithMason:(NSCMason * _Nonnull)mason type:(enum MasonTextType)textType OBJC_DESIGNATED_INITIALIZER;
1206
1277
  - (nonnull instancetype)initWithMason:(NSCMason * _Nonnull)mason OBJC_DESIGNATED_INITIALIZER;
1207
1278
  - (void)setNeedsDisplay;
1208
1279
  - (void)requestLayout;
1280
+ - (void)layoutSubviews;
1209
1281
  - (void)addView:(UIView * _Nonnull)view;
1210
1282
  - (void)addView:(UIView * _Nonnull)view at:(NSInteger)at;
1211
1283
  - (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder SWIFT_UNAVAILABLE;
@@ -1299,6 +1371,7 @@ SWIFT_CLASS_NAMED("MasonUIView")
1299
1371
  @property (nonatomic, readonly, strong) MasonStyle * _Nonnull style;
1300
1372
  - (void)markNodeDirty;
1301
1373
  - (BOOL)isNodeDirty SWIFT_WARN_UNUSED_RESULT;
1374
+ - (void)layoutSubviews;
1302
1375
  - (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder SWIFT_UNAVAILABLE;
1303
1376
  + (MasonUIView * _Nonnull)createGridView:(NSCMason * _Nonnull)mason SWIFT_WARN_UNUSED_RESULT;
1304
1377
  + (MasonUIView * _Nonnull)createFlexView:(NSCMason * _Nonnull)mason SWIFT_WARN_UNUSED_RESULT;
@@ -1340,7 +1413,7 @@ SWIFT_CLASS_NAMED("MasonUIView")
1340
1413
  @property (nonatomic, copy) NSString * _Nonnull gridRowEnd;
1341
1414
  @property (nonatomic, copy) NSString * _Nonnull gridTemplateRows;
1342
1415
  @property (nonatomic, copy) NSString * _Nonnull gridTemplateColumns;
1343
- - (void)setPadding:(float)left :(float)right :(float)top :(float)bottom;
1416
+ - (void)setPadding:(float)left :(float)top :(float)right :(float)bottom;
1344
1417
  - (MasonLengthPercentageRectCompat * _Nonnull)getPadding SWIFT_WARN_UNUSED_RESULT;
1345
1418
  - (void)setPaddingLeft:(float)left :(NSInteger)type;
1346
1419
  - (void)setPaddingRight:(float)right :(NSInteger)type;
@@ -1475,7 +1548,8 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) MinSizing *
1475
1548
  @end
1476
1549
 
1477
1550
  SWIFT_CLASS_NAMED("NSCFontDescriptors")
1478
- @interface NSCFontDescriptors : NSObject
1551
+ @interface NSCFontDescriptors : NSObject <NSMutableCopying>
1552
+ - (id _Nonnull)mutableCopyWithZone:(struct _NSZone * _Nullable)zone SWIFT_WARN_UNUSED_RESULT;
1479
1553
  - (nonnull instancetype)initWithFamily:(NSString * _Nonnull)family OBJC_DESIGNATED_INITIALIZER;
1480
1554
  - (void)update:(NSString * _Nonnull)value;
1481
1555
  - (void)setFontWeight:(NSString * _Nonnull)value;
@@ -1613,7 +1687,7 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class, strong) NSCMason * _Nonnull sh
1613
1687
  - (BOOL)mason_removeEventListener:(NSString * _Nonnull)event id:(NSUUID * _Nonnull)id;
1614
1688
  - (BOOL)mason_removeEventListener:(NSString * _Nonnull)event;
1615
1689
  - (void)mason_dispatch:(MasonEvent * _Nonnull)event;
1616
- - (void)mason_syncStyle:(NSString * _Nonnull)state :(NSString * _Nonnull)textState;
1690
+ - (void)mason_syncStyle:(NSString * _Nonnull)low :(NSString * _Nonnull)high;
1617
1691
  - (void)mason_addView:(UIView * _Nonnull)view;
1618
1692
  - (void)mason_addView:(UIView * _Nonnull)view at:(NSInteger)at;
1619
1693
  - (void)mason_markNodeDirty;
@@ -1673,9 +1747,21 @@ typedef SWIFT_ENUM_NAMED(NSInteger, MasonPosition, "Position", open) {
1673
1747
  MasonPositionAbsolute = 1,
1674
1748
  };
1675
1749
 
1750
+ typedef SWIFT_ENUM_NAMED(uint16_t, PseudoState, "PseudoState", open) {
1751
+ PseudoStateDefault = 0,
1752
+ PseudoStateHover = 0x01,
1753
+ PseudoStateActive = 0x02,
1754
+ PseudoStateFocus = 0x04,
1755
+ PseudoStateFocusWithin = 0x08,
1756
+ PseudoStateFocusVisible = 0x10,
1757
+ PseudoStateDisabled = 0x40,
1758
+ PseudoStateChecked = 0x80,
1759
+ };
1760
+
1676
1761
  SWIFT_CLASS_NAMED("Scroll")
1677
1762
  @interface MasonScroll : UIScrollView <MasonElementObjc, UIScrollViewDelegate>
1678
1763
  - (void)drawRect:(CGRect)rect;
1764
+ - (void)layoutSubviews;
1679
1765
  @property (nonatomic, readonly, strong) MasonNode * _Nonnull node;
1680
1766
  @property (nonatomic, readonly, strong) NSCMason * _Nonnull mason;
1681
1767
  @property (nonatomic, readonly, strong) UIView * _Nonnull uiView;