@triniwiz/nativescript-masonkit 1.0.0-beta.104 → 1.0.0-beta.105

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 (57) hide show
  1. package/common.d.ts +6 -0
  2. package/common.js +35 -1
  3. package/common.js.map +1 -1
  4. package/index.d.ts +17 -3
  5. package/list/common.d.ts +2 -0
  6. package/list/common.js +9 -0
  7. package/list/common.js.map +1 -1
  8. package/list/index.android.js +2 -1
  9. package/list/index.android.js.map +1 -1
  10. package/list/index.ios.d.ts +1 -0
  11. package/list/index.ios.js +9 -3
  12. package/list/index.ios.js.map +1 -1
  13. package/package.json +1 -1
  14. package/platforms/android/masonkit-release.aar +0 -0
  15. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Mason +0 -0
  16. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
  17. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.abi.json +12939 -4082
  18. package/platforms/ios/Mason.xcframework/ios-arm64/dSYMs/Mason.framework.dSYM/Contents/Resources/DWARF/Mason +0 -0
  19. package/platforms/ios/Mason.xcframework/ios-arm64/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/aarch64/Mason.yml +7471 -7471
  20. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Mason +0 -0
  21. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
  22. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
  23. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.abi.json +12939 -4082
  24. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.abi.json +12939 -4082
  25. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/_CodeSignature/CodeResources +12 -12
  26. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/DWARF/Mason +0 -0
  27. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/aarch64/Mason.yml +7457 -7457
  28. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/x86_64/Mason.yml +7147 -7147
  29. package/platforms/ios/Mason.xcframework/xros-arm64/Mason.framework/Mason +0 -0
  30. package/platforms/ios/Mason.xcframework/xros-arm64/Mason.framework/Modules/Mason.swiftmodule/Project/arm64-apple-xros.swiftsourceinfo +0 -0
  31. package/platforms/ios/Mason.xcframework/xros-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-xros.abi.json +12939 -4082
  32. package/platforms/ios/Mason.xcframework/xros-arm64/dSYMs/Mason.framework.dSYM/Contents/Resources/DWARF/Mason +0 -0
  33. package/platforms/ios/Mason.xcframework/xros-arm64/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/aarch64/Mason.yml +6960 -6960
  34. package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/Mason +0 -0
  35. package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/Modules/Mason.swiftmodule/Project/arm64-apple-xros-simulator.swiftsourceinfo +0 -0
  36. package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-xros-simulator.abi.json +12939 -4082
  37. package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/_CodeSignature/CodeResources +6 -6
  38. package/platforms/ios/Mason.xcframework/xros-arm64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/DWARF/Mason +0 -0
  39. package/platforms/ios/Mason.xcframework/xros-arm64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/aarch64/Mason.yml +6968 -6968
  40. package/scroll/index.android.js +2 -2
  41. package/scroll/index.android.js.map +1 -1
  42. package/scroll/index.ios.js +2 -2
  43. package/scroll/index.ios.js.map +1 -1
  44. package/style.d.ts +7 -0
  45. package/style.js +94 -9
  46. package/style.js.map +1 -1
  47. package/text/index.android.js +3 -3
  48. package/text/index.android.js.map +1 -1
  49. package/text/index.ios.js +2 -2
  50. package/text/index.ios.js.map +1 -1
  51. package/text-runs.d.ts +1 -0
  52. package/text-runs.js +1 -0
  53. package/text-runs.js.map +1 -1
  54. package/view/index.android.js +2 -2
  55. package/view/index.android.js.map +1 -1
  56. package/view/index.ios.js +2 -2
  57. package/view/index.ios.js.map +1 -1
@@ -41,10 +41,9 @@ let Scroll = class Scroll extends ViewBase {
41
41
  const nativeView = this._view;
42
42
  if (nativeView && (child.nativeViewProtected || child.android)) {
43
43
  child._hasNativeView = true;
44
- const jsIndex = atIndex <= -1 ? this._children.indexOf(child) : atIndex;
45
44
  // Map the JS index onto the native children list (views attach lazily,
46
45
  // so the raw index can run ahead of native state).
47
- const index = jsIndex <= -1 ? jsIndex : this._nativeIndexFor(jsIndex);
46
+ const { nativeIndex: index } = this._nativeAttachIndex(child, atIndex);
48
47
  child._isMasonChild = true;
49
48
  if (child[isPlaceholder_]) {
50
49
  nativeView.addChildAt(child.android, index);
@@ -58,6 +57,7 @@ let Scroll = class Scroll extends ViewBase {
58
57
  }
59
58
  // @ts-ignore
60
59
  _removeViewFromNativeVisualTree(view) {
60
+ this._invalidateAttachCursor();
61
61
  // @ts-ignore
62
62
  super._removeViewFromNativeVisualTree(view);
63
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.android.js","sourceRoot":"","sources":["../../../../packages/nativescript-masonkit/scroll/index.android.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGpE,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,QAAQ;IAGlC;QACE,KAAK,EAAE,CAAC;QAFV,aAAQ,GAAG,KAAK,CAAC;QAGf,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,6FAA6F;IAC7F,IAAI,uBAAuB;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,KAAK;QACP,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;YAC5F,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAoD,CAAC;YACxG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC7D,IAAI,CAAC,OAAO,CAAC,GAAG,IAAa,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAoD,CAAC;IAC1E,CAAC;IAED,IAAI,YAAY;QACd,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,6DAA6D;IAC7D,aAAa;IACb,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAA+C,CAAC;IAC9D,CAAC;IAED,aAAa;IACN,0BAA0B,CAAC,KAAiB,EAAE,OAAO,GAAG,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,KAA+C,CAAC;QAExE,IAAI,UAAU,IAAI,CAAC,KAAK,CAAC,mBAAmB,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/D,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;YAC5B,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACxE,uEAAuE;YACvE,mDAAmD;YACnD,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,IAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC/E,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;YAC3B,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC1B,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,KAAc,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAc,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,aAAa;IACN,+BAA+B,CAAC,IAAgB;QACrD,aAAa;QACb,KAAK,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;CACF,CAAA;AAnEY,MAAM;IADlB,OAAO,CAAC,QAAQ,CAAC;;GACL,MAAM,CAmElB"}
1
+ {"version":3,"file":"index.android.js","sourceRoot":"","sources":["../../../../packages/nativescript-masonkit/scroll/index.android.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGpE,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,QAAQ;IAGlC;QACE,KAAK,EAAE,CAAC;QAFV,aAAQ,GAAG,KAAK,CAAC;QAGf,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,6FAA6F;IAC7F,IAAI,uBAAuB;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,KAAK;QACP,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;YAC5F,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAoD,CAAC;YACxG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC7D,IAAI,CAAC,OAAO,CAAC,GAAG,IAAa,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAoD,CAAC;IAC1E,CAAC;IAED,IAAI,YAAY;QACd,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,6DAA6D;IAC7D,aAAa;IACb,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAA+C,CAAC;IAC9D,CAAC;IAED,aAAa;IACN,0BAA0B,CAAC,KAAiB,EAAE,OAAO,GAAG,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,KAA+C,CAAC;QAExE,IAAI,UAAU,IAAI,CAAC,KAAK,CAAC,mBAAmB,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/D,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;YAC5B,uEAAuE;YACvE,mDAAmD;YACnD,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAI,IAAY,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAChF,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;YAC3B,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC1B,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,KAAc,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAc,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,aAAa;IACN,+BAA+B,CAAC,IAAgB;QACpD,IAAY,CAAC,uBAAuB,EAAE,CAAC;QACxC,aAAa;QACb,KAAK,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;CACF,CAAA;AAnEY,MAAM;IADlB,OAAO,CAAC,QAAQ,CAAC;;GACL,MAAM,CAmElB"}
@@ -115,10 +115,9 @@ let Scroll = class Scroll extends ViewBase {
115
115
  const nativeView = this._view;
116
116
  if (nativeView && (child.nativeViewProtected || child.ios)) {
117
117
  child._hasNativeView = true;
118
- const jsIndex = atIndex <= -1 ? this._children.indexOf(child) : atIndex;
119
118
  // Map the JS index onto the native children list (views attach lazily,
120
119
  // so the raw index can run ahead of native state).
121
- const index = jsIndex <= -1 ? jsIndex : this._nativeIndexFor(jsIndex);
120
+ const { nativeIndex: index } = this._nativeAttachIndex(child, atIndex);
122
121
  child._isMasonChild = true;
123
122
  if (child[isPlaceholder_]) {
124
123
  // @ts-ignore
@@ -137,6 +136,7 @@ let Scroll = class Scroll extends ViewBase {
137
136
  }
138
137
  // @ts-ignore
139
138
  _removeViewFromNativeVisualTree(view) {
139
+ this._invalidateAttachCursor();
140
140
  // Inverse of `_addViewToNativeVisualTree` — unlink the mason node so
141
141
  // removal detaches the Rust node + native view rather than orphaning it.
142
142
  const nativeView = this._view;
@@ -1 +1 @@
1
- {"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../../../packages/nativescript-masonkit/scroll/index.ios.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../../../packages/nativescript-masonkit/scroll/index.ios.ts"],"names":[],"mappings":"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"}
package/style.d.ts CHANGED
@@ -157,9 +157,11 @@ export declare class Style {
157
157
  private inBatch;
158
158
  private _syncScheduled;
159
159
  private _turnSnapshot;
160
+ private _synced;
160
161
  private nativeView;
161
162
  private nativeNode;
162
163
  private _pseudo;
164
+ private _borderRadiusCss;
163
165
  static fromView(view: View, nativeView: any): Style;
164
166
  static fromPseudo(pseudo: string, view: View, nativeView: any): Style;
165
167
  private clearPseudoSetMask;
@@ -171,8 +173,12 @@ export declare class Style {
171
173
  private writeBorderSide;
172
174
  private writeWindowsTextDecoration;
173
175
  setBorderColor(value: string): void;
176
+ setBorderSideColor(side: 'top' | 'right' | 'bottom' | 'left', value: number | string | {
177
+ argb?: number;
178
+ }): void;
174
179
  resetState(): void;
175
180
  private syncStyle;
181
+ private _sendSync;
176
182
  /** The anonymous Windows Text holding a container's own runs inherits the container's text styles. */
177
183
  copyTextStyleTo(text: NativeScript.Mason.Text): void;
178
184
  private setOrAppendState;
@@ -378,6 +384,7 @@ export declare class Style {
378
384
  set backgroundBlendMode(value: string);
379
385
  get borderRadius(): string;
380
386
  set borderRadius(value: string);
387
+ _writeBorderRadius(value: string, scale: number): boolean;
381
388
  get whiteSpace(): string;
382
389
  set whiteSpace(value: 'normal' | 'pre' | 'pre-wrap' | 'pre-line' | 'nowrap' | 'break-spaces');
383
390
  get objectFit(): string;
package/style.js CHANGED
@@ -3,7 +3,7 @@ import { cssUnits } from './units';
3
3
  import { masonEngine } from './windows-panel-helpers';
4
4
  import { reportCssDiagnostic } from './diagnostics';
5
5
  import { expandColorStops, resolveStopPositions } from './gradient-stops';
6
- import { Color, Length as CoreLength, PercentLength as CorePercentLength } from '@nativescript/core';
6
+ import { Color, Length as CoreLength, PercentLength as CorePercentLength, Screen } from '@nativescript/core';
7
7
  // The Windows shell lays out in XAML DIPs, so its style buffer holds DIPs. Core's Windows density
8
8
  // is 1 until the window has a XamlRoot, so converting stored early styles unscaled and later ones scaled.
9
9
  const layout = __WINDOWS__ ? { ...coreLayout, getDisplayDensity: () => 1, toDevicePixels: (value) => value, toDeviceIndependentPixels: (value) => value } : coreLayout;
@@ -780,12 +780,50 @@ function expandSidesShorthand(value) {
780
780
  }
781
781
  }
782
782
  /** Corners in CSS shorthand order. */
783
- const WINDOWS_RADIUS_KEYS = [
783
+ const RADIUS_KEYS = [
784
784
  ['tl', { xType: StyleKeys.BORDER_RADIUS_TOP_LEFT_X_TYPE, yType: StyleKeys.BORDER_RADIUS_TOP_LEFT_Y_TYPE, xValue: StyleKeys.BORDER_RADIUS_TOP_LEFT_X_VALUE, yValue: StyleKeys.BORDER_RADIUS_TOP_LEFT_Y_VALUE }],
785
785
  ['tr', { xType: StyleKeys.BORDER_RADIUS_TOP_RIGHT_X_TYPE, yType: StyleKeys.BORDER_RADIUS_TOP_RIGHT_Y_TYPE, xValue: StyleKeys.BORDER_RADIUS_TOP_RIGHT_X_VALUE, yValue: StyleKeys.BORDER_RADIUS_TOP_RIGHT_Y_VALUE }],
786
786
  ['br', { xType: StyleKeys.BORDER_RADIUS_BOTTOM_RIGHT_X_TYPE, yType: StyleKeys.BORDER_RADIUS_BOTTOM_RIGHT_Y_TYPE, xValue: StyleKeys.BORDER_RADIUS_BOTTOM_RIGHT_X_VALUE, yValue: StyleKeys.BORDER_RADIUS_BOTTOM_RIGHT_Y_VALUE }],
787
787
  ['bl', { xType: StyleKeys.BORDER_RADIUS_BOTTOM_LEFT_X_TYPE, yType: StyleKeys.BORDER_RADIUS_BOTTOM_LEFT_Y_TYPE, xValue: StyleKeys.BORDER_RADIUS_BOTTOM_LEFT_X_VALUE, yValue: StyleKeys.BORDER_RADIUS_BOTTOM_LEFT_Y_VALUE }],
788
788
  ];
789
+ const FAST_RADIUS_TOKEN = /^(-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)(px|dip|dppx|%)?$/;
790
+ function fastRadiusTokens(part, scale) {
791
+ const out = [];
792
+ for (const token of part.split(/\s+/)) {
793
+ if (!token)
794
+ continue;
795
+ const m = FAST_RADIUS_TOKEN.exec(token);
796
+ if (!m)
797
+ return null;
798
+ const raw = parseFloat(m[1]);
799
+ const num = Math.min(9999, Math.max(-9999, raw));
800
+ if (m[2] === '%')
801
+ out.push({ type: 1, value: raw / 100 });
802
+ else if (m[2] === 'dppx')
803
+ out.push({ type: 0, value: num });
804
+ else
805
+ out.push({ type: 0, value: num * scale });
806
+ }
807
+ return out;
808
+ }
809
+ function radiusCorners(t) {
810
+ switch (t.length) {
811
+ case 1:
812
+ return [t[0], t[0], t[0], t[0]];
813
+ case 2:
814
+ return [t[0], t[1], t[0], t[1]];
815
+ case 3:
816
+ return [t[0], t[1], t[2], t[1]];
817
+ case 4:
818
+ return t;
819
+ default:
820
+ return null;
821
+ }
822
+ }
823
+ let deviceScaleCache = 0;
824
+ function deviceScale() {
825
+ return deviceScaleCache || (deviceScaleCache = Screen.mainScreen.scale);
826
+ }
789
827
  function parseWindowsRadius(token, emBasis) {
790
828
  const t = token.trim();
791
829
  if (t.endsWith('%')) {
@@ -1143,6 +1181,7 @@ export class Style {
1143
1181
  // each render); if the bytes end up unchanged the native sync is skipped.
1144
1182
  // `false` means a write happened without a snapshot, so always sync.
1145
1183
  this._turnSnapshot = undefined;
1184
+ this._synced = false;
1146
1185
  }
1147
1186
  static fromView(view, nativeView) {
1148
1187
  //console.time('fromView');
@@ -1155,7 +1194,7 @@ export class Style {
1155
1194
  // if a non mason view is passed
1156
1195
  style = org.nativescript.mason.masonkit.Mason.getShared().styleForViewOrNode(nativeView);
1157
1196
  }
1158
- const styleBuffer = style.getValues();
1197
+ const styleBuffer = typeof style.getWritableValue === 'function' ? style.getWritableValue() : style.getValues();
1159
1198
  const buffer = ArrayBuffer.from(styleBuffer);
1160
1199
  ret.style_view = new DataView(buffer);
1161
1200
  ret.i8View = new Int8Array(buffer);
@@ -1356,7 +1395,7 @@ export class Style {
1356
1395
  if (name === 'border-radius') {
1357
1396
  const r = parseBorderRadiusShorthand(value, this.emBasis());
1358
1397
  this.prepareMut();
1359
- for (const [corner, keys] of WINDOWS_RADIUS_KEYS) {
1398
+ for (const [corner, keys] of RADIUS_KEYS) {
1360
1399
  const { type, value: v } = r[corner];
1361
1400
  setFloat32(this.style_view, keys.xValue, v);
1362
1401
  setFloat32(this.style_view, keys.yValue, v);
@@ -1455,7 +1494,7 @@ export class Style {
1455
1494
  }
1456
1495
  }
1457
1496
  setBorderColor(value) {
1458
- if (!__WINDOWS__ || !this.style_view)
1497
+ if (!(__WINDOWS__ || __ANDROID__) || !this.style_view)
1459
1498
  return;
1460
1499
  const c = parseSidesColorShorthand(String(value ?? ''));
1461
1500
  this.writeBorderSide('top', null, null, c.t);
@@ -1464,16 +1503,30 @@ export class Style {
1464
1503
  this.writeBorderSide('left', null, null, c.l);
1465
1504
  this.commitState(StateKeys.BORDER_COLOR);
1466
1505
  }
1506
+ setBorderSideColor(side, value) {
1507
+ if (!this.style_view)
1508
+ return;
1509
+ const color = normalizeColorValue(value);
1510
+ if (color == null)
1511
+ return;
1512
+ this.writeBorderSide(side, null, null, color);
1513
+ this.commitState(StateKeys.BORDER_COLOR);
1514
+ }
1467
1515
  resetState() {
1468
1516
  this.isDirty = -1n;
1469
1517
  }
1470
1518
  syncStyle() {
1519
+ this._synced = true;
1471
1520
  const snapshot = this._turnSnapshot;
1472
1521
  this._turnSnapshot = undefined;
1473
1522
  if (snapshot && this.isDirty !== -1n && bytesEqual(snapshot, this.u8View)) {
1474
1523
  this.resetState();
1475
1524
  return;
1476
1525
  }
1526
+ this._sendSync();
1527
+ this.resetState();
1528
+ }
1529
+ _sendSync() {
1477
1530
  if (__ANDROID__) {
1478
1531
  const [lowLow, lowHigh, highLow, highHigh] = splitBigIntToInt32Parts(this.isDirty);
1479
1532
  //@ts-ignore
@@ -1495,7 +1548,6 @@ export class Style {
1495
1548
  view.SyncStyle('', '');
1496
1549
  this.view?._windowsSyncAnonymousText?.();
1497
1550
  }
1498
- this.resetState();
1499
1551
  }
1500
1552
  /** The anonymous Windows Text holding a container's own runs inherits the container's text styles. */
1501
1553
  copyTextStyleTo(text) {
@@ -1564,7 +1616,7 @@ export class Style {
1564
1616
  return;
1565
1617
  }
1566
1618
  if (this._turnSnapshot === undefined && this.isDirty === -1n && this.u8View) {
1567
- this._turnSnapshot = this.u8View.slice();
1619
+ this._turnSnapshot = this._synced ? this.u8View.slice() : false;
1568
1620
  }
1569
1621
  const ref = getUint32(this.style_view, StyleKeys.REF_COUNT);
1570
1622
  if (ref !== 1) {
@@ -4545,14 +4597,14 @@ export class Style {
4545
4597
  return '';
4546
4598
  }
4547
4599
  if (__ANDROID__) {
4548
- return org.nativescript.mason.masonkit.NodeHelper.getShared().getBorderRadius(this.nativeView);
4600
+ return this._borderRadiusCss ?? org.nativescript.mason.masonkit.NodeHelper.getShared().getBorderRadius(this.nativeView);
4549
4601
  }
4550
4602
  if (__APPLE__) {
4551
4603
  return this.nativeView.style.borderRadius;
4552
4604
  }
4553
4605
  if (__WINDOWS__ && this.style_view) {
4554
4606
  // Read back so a single corner longhand keeps the other three instead of resetting them to 0.
4555
- return WINDOWS_RADIUS_KEYS.map(([, keys]) => {
4607
+ return RADIUS_KEYS.map(([, keys]) => {
4556
4608
  const v = getFloat32(this.style_view, keys.xValue);
4557
4609
  return getUint8(this.style_view, keys.xType) === 1 ? `${v * 100}%` : `${v}px`;
4558
4610
  }).join(' ');
@@ -4561,8 +4613,41 @@ export class Style {
4561
4613
  }
4562
4614
  set borderRadius(value) {
4563
4615
  value = this.coerceCssStringValue(value);
4616
+ if (__ANDROID__ && this.nativeView && !this._pseudo && this._writeBorderRadius(value, deviceScale())) {
4617
+ return;
4618
+ }
4619
+ if (!this._pseudo)
4620
+ this._borderRadiusCss = undefined;
4564
4621
  this.setPseudoCssStringValue('border-radius', value, () => org.nativescript.mason.masonkit.NodeHelper.getShared().setBorderRadius(this.nativeView, value), () => (this.nativeView.style.borderRadius = value));
4565
4622
  }
4623
+ _writeBorderRadius(value, scale) {
4624
+ let cleaned = value.trim();
4625
+ if (cleaned.endsWith(';'))
4626
+ cleaned = cleaned.slice(0, -1);
4627
+ const slash = cleaned.indexOf('/');
4628
+ const h = fastRadiusTokens(slash < 0 ? cleaned : cleaned.slice(0, slash).trim(), scale);
4629
+ if (!h)
4630
+ return false;
4631
+ const vPart = slash < 0 ? '' : cleaned.slice(slash + 1).trim();
4632
+ const v = vPart ? fastRadiusTokens(vPart, scale) : h;
4633
+ if (!v)
4634
+ return false;
4635
+ this._borderRadiusCss = value;
4636
+ const hm = radiusCorners(h);
4637
+ const vm = v.length ? radiusCorners(v) : hm;
4638
+ if (!hm || !vm)
4639
+ return true;
4640
+ this.prepareMut();
4641
+ for (let i = 0; i < 4; i++) {
4642
+ const keys = RADIUS_KEYS[i][1];
4643
+ setUint8(this.style_view, keys.xType, hm[i].type);
4644
+ setFloat32(this.style_view, keys.xValue, hm[i].value);
4645
+ setUint8(this.style_view, keys.yType, vm[i].type);
4646
+ setFloat32(this.style_view, keys.yValue, vm[i].value);
4647
+ }
4648
+ this.commitState(StateKeys.BORDER_RADIUS);
4649
+ return true;
4650
+ }
4566
4651
  get whiteSpace() {
4567
4652
  const map = ['normal', 'pre', 'pre-wrap', 'pre-line', 'nowrap', 'break-spaces'];
4568
4653
  return map[getUint8(this.style_view, StyleKeys.WHITE_SPACE)] ?? 'normal';