@triniwiz/nativescript-masonkit 1.0.0-beta.111 → 1.0.0-beta.112

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 (93) hide show
  1. package/common.d.ts +12 -0
  2. package/common.js +72 -1
  3. package/common.js.map +1 -1
  4. package/css-colors.d.ts +17 -0
  5. package/css-colors.js +55 -0
  6. package/css-colors.js.map +1 -0
  7. package/css-keyframes.d.ts +41 -0
  8. package/css-keyframes.js +438 -0
  9. package/css-keyframes.js.map +1 -0
  10. package/css-shorthands.d.ts +13 -0
  11. package/css-shorthands.js +199 -0
  12. package/css-shorthands.js.map +1 -1
  13. package/index.d.ts +45 -0
  14. package/input/common.d.ts +18 -1
  15. package/input/common.js +46 -2
  16. package/input/common.js.map +1 -1
  17. package/input/index.android.d.ts +4 -1
  18. package/input/index.android.js +21 -1
  19. package/input/index.android.js.map +1 -1
  20. package/input/index.ios.d.ts +4 -1
  21. package/input/index.ios.js +19 -1
  22. package/input/index.ios.js.map +1 -1
  23. package/input/index.windows.d.ts +7 -1
  24. package/input/index.windows.js +43 -1
  25. package/input/index.windows.js.map +1 -1
  26. package/package.json +1 -1
  27. package/platforms/android/masonkit-release.aar +0 -0
  28. package/platforms/ios/Mason.xcframework/Info.plist +7 -7
  29. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Headers/Mason-Swift.h +60 -1
  30. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Mason +0 -0
  31. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
  32. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.abi.json +27634 -24898
  33. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.private.swiftinterface +325 -221
  34. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  35. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.swiftinterface +325 -221
  36. package/platforms/ios/Mason.xcframework/ios-arm64/dSYMs/Mason.framework.dSYM/Contents/Resources/DWARF/Mason +0 -0
  37. package/platforms/ios/Mason.xcframework/ios-arm64/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/aarch64/Mason.yml +9308 -8879
  38. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Headers/Mason-Swift.h +120 -2
  39. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Mason +0 -0
  40. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
  41. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
  42. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.abi.json +27634 -24898
  43. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +325 -221
  44. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  45. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.swiftinterface +325 -221
  46. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.abi.json +27634 -24898
  47. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +325 -221
  48. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  49. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +325 -221
  50. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/_CodeSignature/CodeResources +26 -26
  51. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/DWARF/Mason +0 -0
  52. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/aarch64/Mason.yml +9302 -8873
  53. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/x86_64/Mason.yml +8878 -8474
  54. package/platforms/ios/Mason.xcframework/xros-arm64/Mason.framework/Headers/Mason-Swift.h +60 -1
  55. package/platforms/ios/Mason.xcframework/xros-arm64/Mason.framework/Mason +0 -0
  56. package/platforms/ios/Mason.xcframework/xros-arm64/Mason.framework/Modules/Mason.swiftmodule/Project/arm64-apple-xros.swiftsourceinfo +0 -0
  57. package/platforms/ios/Mason.xcframework/xros-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-xros.abi.json +27634 -24898
  58. package/platforms/ios/Mason.xcframework/xros-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-xros.private.swiftinterface +325 -221
  59. package/platforms/ios/Mason.xcframework/xros-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-xros.swiftdoc +0 -0
  60. package/platforms/ios/Mason.xcframework/xros-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-xros.swiftinterface +325 -221
  61. package/platforms/ios/Mason.xcframework/xros-arm64/dSYMs/Mason.framework.dSYM/Contents/Resources/DWARF/Mason +0 -0
  62. package/platforms/ios/Mason.xcframework/xros-arm64/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/aarch64/Mason.yml +8799 -8371
  63. package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/Headers/Mason-Swift.h +60 -1
  64. package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/Mason +0 -0
  65. package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/Modules/Mason.swiftmodule/Project/arm64-apple-xros-simulator.swiftsourceinfo +0 -0
  66. package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-xros-simulator.abi.json +27634 -24898
  67. package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-xros-simulator.private.swiftinterface +325 -221
  68. package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-xros-simulator.swiftdoc +0 -0
  69. package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-xros-simulator.swiftinterface +325 -221
  70. package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/_CodeSignature/CodeResources +14 -14
  71. package/platforms/ios/Mason.xcframework/xros-arm64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/DWARF/Mason +0 -0
  72. package/platforms/ios/Mason.xcframework/xros-arm64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/aarch64/Mason.yml +8798 -8370
  73. package/platforms/windows/arm64/NativeScript.Mason.dll +0 -0
  74. package/platforms/windows/arm64/NativeScript.Mason.winmd +0 -0
  75. package/platforms/windows/x64/NativeScript.Mason.dll +0 -0
  76. package/platforms/windows/x64/NativeScript.Mason.winmd +0 -0
  77. package/properties.d.ts +17 -0
  78. package/properties.js +294 -3
  79. package/properties.js.map +1 -1
  80. package/scroll/index.ios.d.ts +1 -1
  81. package/scroll/index.ios.js +7 -2
  82. package/scroll/index.ios.js.map +1 -1
  83. package/style.d.ts +75 -4
  84. package/style.js +413 -8
  85. package/style.js.map +1 -1
  86. package/typings/android.d.ts +43 -0
  87. package/typings/objc!Mason.d.ts +41 -0
  88. package/typings/windows.d.ts +6 -0
  89. package/view/index.ios.js +7 -2
  90. package/view/index.ios.js.map +1 -1
  91. package/windows-mask.d.ts +70 -0
  92. package/windows-mask.js +492 -0
  93. package/windows-mask.js.map +1 -0
@@ -13,6 +13,6 @@ export declare class Scroll extends ViewBase {
13
13
  onLayout(left: number, top: number, right: number, bottom: number): void;
14
14
  onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
15
15
  _addViewToNativeVisualTree(child: MasonChild, atIndex?: number): boolean;
16
- _setNativeViewFrame(nativeView: any, frame: any): void;
16
+ _setNativeViewFrame(nativeView: any, frame: CGRect): void;
17
17
  _removeViewFromNativeVisualTree(view: MasonChild): void;
18
18
  }
@@ -1,5 +1,5 @@
1
1
  import { CSSType, Utils } from '@nativescript/core';
2
- import { ViewBase } from '../common';
2
+ import { ViewBase, setRootNativeViewFrame } from '../common';
3
3
  import { Style } from '../style';
4
4
  import { Tree } from '../tree';
5
5
  import { style_, isMasonView_, native_, isPlaceholder_ } from '../symbols';
@@ -134,7 +134,12 @@ let Scroll = class Scroll extends ViewBase {
134
134
  return false;
135
135
  }
136
136
  _setNativeViewFrame(nativeView, frame) {
137
- nativeView.frame = frame;
137
+ if (this.parent?.[isMasonView_]) {
138
+ nativeView.frame = frame;
139
+ }
140
+ else {
141
+ setRootNativeViewFrame(this, nativeView, frame);
142
+ }
138
143
  }
139
144
  // @ts-ignore
140
145
  _removeViewFromNativeVisualTree(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
@@ -170,6 +170,12 @@ export declare function parseTextDecoration(value: string, resolveLength: (token
170
170
  thickness: number;
171
171
  } | null;
172
172
  export declare function nodeHelper(): org.nativescript.mason.masonkit.NodeHelper;
173
+ /**
174
+ * One CSS colour (`oklch(60% 0.2 240)`, `color-mix(...)`, `rgb(0 0 0 / 15%)`)
175
+ * as `rgba(...)`, or null. Core's `Color` resolves `color-mix()` through
176
+ * @csstools' parser; any other function is handed over as an identity mix.
177
+ */
178
+ export declare function cssColorToRgba(color: string): string | null;
173
179
  export declare class Style {
174
180
  private view_;
175
181
  private _sv;
@@ -213,7 +219,12 @@ export declare class Style {
213
219
  private _windowsBackground?;
214
220
  private _windowsBackgroundSize?;
215
221
  private _windowsBackgroundPosition?;
222
+ private _windowsImageBackground;
216
223
  private applyWindowsBackground;
224
+ private _windowsMaskSpec;
225
+ private _windowsMaskOverrides?;
226
+ private windowsMaskContext;
227
+ private scheduleWindowsMask;
217
228
  private applyWindowsCssString;
218
229
  private writeBorderSide;
219
230
  private writeWindowsTextDecoration;
@@ -538,6 +549,66 @@ export declare class Style {
538
549
  set backdropFilter(value: string);
539
550
  set 'backdrop-filter'(value: string);
540
551
  get 'backdrop-filter'(): string;
552
+ get maskImage(): string;
553
+ set maskImage(value: string);
554
+ set 'mask-image'(value: string);
555
+ get 'mask-image'(): string;
556
+ get maskSize(): string;
557
+ set maskSize(value: string);
558
+ set 'mask-size'(value: string);
559
+ get 'mask-size'(): string;
560
+ get maskPosition(): string;
561
+ set maskPosition(value: string);
562
+ set 'mask-position'(value: string);
563
+ get 'mask-position'(): string;
564
+ get maskRepeat(): string;
565
+ set maskRepeat(value: string);
566
+ set 'mask-repeat'(value: string);
567
+ get 'mask-repeat'(): string;
568
+ get maskOrigin(): string;
569
+ set maskOrigin(value: string);
570
+ set 'mask-origin'(value: string);
571
+ get 'mask-origin'(): string;
572
+ get maskClip(): string;
573
+ set maskClip(value: string);
574
+ set 'mask-clip'(value: string);
575
+ get 'mask-clip'(): string;
576
+ get maskMode(): string;
577
+ set maskMode(value: string);
578
+ set 'mask-mode'(value: string);
579
+ get 'mask-mode'(): string;
580
+ get maskComposite(): string;
581
+ set maskComposite(value: string);
582
+ set 'mask-composite'(value: string);
583
+ get 'mask-composite'(): string;
584
+ get clipPath(): string;
585
+ set clipPath(value: string);
586
+ set 'clip-path'(value: string);
587
+ get 'clip-path'(): string;
588
+ get maskBorderSource(): string;
589
+ set maskBorderSource(value: string);
590
+ set 'mask-border-source'(value: string);
591
+ get 'mask-border-source'(): string;
592
+ get maskBorderSlice(): string;
593
+ set maskBorderSlice(value: string);
594
+ set 'mask-border-slice'(value: string);
595
+ get 'mask-border-slice'(): string;
596
+ get maskBorderWidth(): string;
597
+ set maskBorderWidth(value: string);
598
+ set 'mask-border-width'(value: string);
599
+ get 'mask-border-width'(): string;
600
+ get maskBorderOutset(): string;
601
+ set maskBorderOutset(value: string);
602
+ set 'mask-border-outset'(value: string);
603
+ get 'mask-border-outset'(): string;
604
+ get maskBorderRepeat(): string;
605
+ set maskBorderRepeat(value: string);
606
+ set 'mask-border-repeat'(value: string);
607
+ get 'mask-border-repeat'(): string;
608
+ get maskBorderMode(): string;
609
+ set maskBorderMode(value: string);
610
+ set 'mask-border-mode'(value: string);
611
+ get 'mask-border-mode'(): string;
541
612
  get writingMode(): 'horizontal-tb' | 'vertical-rl' | 'vertical-lr';
542
613
  set writingMode(value: 'horizontal-tb' | 'vertical-rl' | 'vertical-lr');
543
614
  set 'writing-mode'(value: 'horizontal-tb' | 'vertical-rl' | 'vertical-lr');
@@ -555,10 +626,10 @@ export declare class Style {
555
626
  position: "fixed" | "static" | "relative" | "absolute" | "sticky";
556
627
  flexDirection: "row" | "row-reverse" | "column" | "column-reverse";
557
628
  flexWrap: "wrap" | "wrap-reverse" | "balance" | "no-wrap" | "balance-reverse";
558
- justifyContent: "center" | "normal" | "stretch" | "flex-start" | "flex-end" | "space-between" | "space-around" | "start" | "end" | "space-evenly";
559
- alignItems: "center" | "normal" | "stretch" | "flex-start" | "flex-end" | "baseline" | "start" | "end";
560
- alignContent: "center" | "normal" | "stretch" | "flex-start" | "flex-end" | "space-between" | "space-around" | "start" | "end" | "space-evenly";
561
- alignSelf: "center" | "normal" | "stretch" | "flex-start" | "flex-end" | "baseline" | "start" | "end";
629
+ justifyContent: "center" | "stretch" | "normal" | "flex-start" | "flex-end" | "space-between" | "space-around" | "start" | "end" | "space-evenly";
630
+ alignItems: "center" | "stretch" | "normal" | "flex-start" | "flex-end" | "baseline" | "start" | "end";
631
+ alignContent: "center" | "stretch" | "normal" | "flex-start" | "flex-end" | "space-between" | "space-around" | "start" | "end" | "space-evenly";
632
+ alignSelf: "center" | "stretch" | "normal" | "flex-start" | "flex-end" | "baseline" | "start" | "end";
562
633
  flexGrow: number;
563
634
  minWidth: LengthAuto;
564
635
  minHeight: LengthAuto;
package/style.js CHANGED
@@ -6,6 +6,8 @@ import { reportCssDiagnostic } from './diagnostics';
6
6
  import { expandColorStops, resolveStopPositions } from './gradient-stops';
7
7
  import { encodeBoxShadows, parseBoxShadows } from './box-shadow';
8
8
  import { encodeCssFilter, parseCssFilter } from './css-filter';
9
+ import { resolveCssColors } from './css-colors';
10
+ import { encodeWindowsBackground, encodeWindowsBorderImage, encodeWindowsMask, WINDOWS_MASK_PROPERTIES } from './windows-mask';
9
11
  import { Color, Length as CoreLength, PercentLength as CorePercentLength, Screen, knownFolders } from '@nativescript/core';
10
12
  // The Windows shell lays out in XAML DIPs, so its style buffer holds DIPs. Core's Windows density
11
13
  // is 1 until the window has a XamlRoot, so converting stored early styles unscaled and later ones scaled.
@@ -1283,6 +1285,18 @@ function cssInitialIfReset(value, initial) {
1283
1285
  const v = value.trim().toLowerCase();
1284
1286
  return v === '' || v === 'initial' || v === 'unset' ? initial : value;
1285
1287
  }
1288
+ /**
1289
+ * One CSS colour (`oklch(60% 0.2 240)`, `color-mix(...)`, `rgb(0 0 0 / 15%)`)
1290
+ * as `rgba(...)`, or null. Core's `Color` resolves `color-mix()` through
1291
+ * @csstools' parser; any other function is handed over as an identity mix.
1292
+ */
1293
+ export function cssColorToRgba(color) {
1294
+ const color_ = new Color(/^color-mix\(/i.test(color) ? color : `color-mix(in srgb, ${color} 100%, transparent)`);
1295
+ if (color_.argb === -1) {
1296
+ return null;
1297
+ }
1298
+ return `rgba(${color_.r}, ${color_.g}, ${color_.b}, ${+(color_.a / 255).toFixed(4)})`;
1299
+ }
1286
1300
  export class Style {
1287
1301
  constructor() {
1288
1302
  this._bufferRequested = false;
@@ -1301,6 +1315,8 @@ export class Style {
1301
1315
  this._turnSnapshot = undefined;
1302
1316
  this._synced = false;
1303
1317
  this._windowsCss = new Map();
1318
+ this._windowsImageBackground = false;
1319
+ this._windowsMaskSpec = '';
1304
1320
  }
1305
1321
  static fromView(view, nativeView) {
1306
1322
  const ret = new Style();
@@ -1470,9 +1486,11 @@ export class Style {
1470
1486
  this.setOrAppendState(value);
1471
1487
  }
1472
1488
  }
1489
+ // Every string-valued property goes through here on its way to the platform,
1490
+ // whose parsers don't read modern colour syntax; see css-colors.ts.
1473
1491
  coerceCssStringValue(value) {
1474
1492
  if (typeof value === 'string') {
1475
- return value;
1493
+ return resolveCssColors(value, cssColorToRgba);
1476
1494
  }
1477
1495
  if (value == null) {
1478
1496
  return '';
@@ -1511,6 +1529,11 @@ export class Style {
1511
1529
  const layer = splitTopLevelCommas(v)[0]?.trim() ?? '';
1512
1530
  const stopsOf = (g) => g.offsets.map((o, i) => o + ':' + (g.colors[i] >>> 0)).join(',');
1513
1531
  try {
1532
+ const url = /url\(\s*(['"]?)(.*?)\1\s*\)/i.exec(layer);
1533
+ if (!url && this._windowsImageBackground) {
1534
+ this._windowsImageBackground = false;
1535
+ NativeScript.Mason.Css.SetBackgroundLayers(this.nativeView, '');
1536
+ }
1514
1537
  if (/^radial-gradient/i.test(layer)) {
1515
1538
  const g = parseRadialGradientCss(layer);
1516
1539
  if (g)
@@ -1523,18 +1546,27 @@ export class Style {
1523
1546
  NativeScript.Mason.Css.ApplyLinearGradient(this.nativeView, g.angle, stopsOf(g), g.interpolation);
1524
1547
  return;
1525
1548
  }
1526
- const url = /url\(\s*(['"]?)(.*?)\1\s*\)/i.exec(layer);
1527
1549
  if (url) {
1528
- let source = url[2];
1529
- if (source.startsWith('~/'))
1530
- source = source.replace('~/', knownFolders.currentApp().path + '/');
1531
1550
  const rest = layer.slice(url.index + url[0].length).trim();
1532
1551
  const keywords = /\b(no-repeat|repeat-x|repeat-y|repeat|space|round|scroll|fixed|local|border-box|padding-box|content-box)\b/gi;
1533
1552
  const [positionPart, sizePart] = rest.split('/').map((p) => p.replace(keywords, '').trim());
1534
- const size = shorthand && sizePart ? sizePart.split(/\s+/).slice(0, 2).join(' ') : this._windowsBackgroundSize;
1535
- const position = parseBoxPosition(shorthand && positionPart ? positionPart : (this._windowsBackgroundPosition ?? '0% 0%'), 0);
1553
+ const size = shorthand && sizePart ? sizePart.split(/\s+/).slice(0, 2).join(' ') : (this._windowsBackgroundSize ?? '');
1554
+ const position = shorthand && positionPart ? positionPart : (this._windowsBackgroundPosition ?? '');
1555
+ const repeatKeywords = shorthand ? (rest.match(/\b(no-repeat|repeat-x|repeat-y|repeat|space|round)\b/gi) ?? []).join(' ') : '';
1556
+ const repeat = repeatKeywords || (this._windowsCss.get('background-repeat') ?? '');
1557
+ // Painted natively over background-color (CssMask.h), which an ImageBrush would replace.
1558
+ const spec = encodeWindowsBackground(url[2], size, position, repeat, this.windowsMaskContext());
1559
+ if (spec) {
1560
+ this._windowsImageBackground = true;
1561
+ NativeScript.Mason.Css.SetBackgroundLayers(this.nativeView, spec);
1562
+ return;
1563
+ }
1564
+ let source = url[2];
1565
+ if (source.startsWith('~/'))
1566
+ source = source.replace('~/', knownFolders.currentApp().path + '/');
1567
+ const box = parseBoxPosition(position || '0% 0%', 0);
1536
1568
  const align = (f) => (f <= 0.25 ? 0 : f >= 0.75 ? 2 : 1);
1537
- NativeScript.Mason.Css.ApplyBackgroundImage(this.nativeView, source, backgroundFit(size), align(position.x), align(position.y));
1569
+ NativeScript.Mason.Css.ApplyBackgroundImage(this.nativeView, source, backgroundFit(size), align(box.x), align(box.y));
1538
1570
  return;
1539
1571
  }
1540
1572
  if (!ANY_GRADIENT.test(layer)) {
@@ -1545,7 +1577,60 @@ export class Style {
1545
1577
  }
1546
1578
  catch (_) { }
1547
1579
  }
1580
+ windowsMaskContext() {
1581
+ return {
1582
+ length: (token) => cssLengthToDip(token, this.emBasis()),
1583
+ color: (color) => normalizeColorValue(color),
1584
+ linear: parseLinearGradientCss,
1585
+ radial: parseRadialGradientCss,
1586
+ source: (url) => (url.startsWith('~/') ? url.replace('~/', knownFolders.currentApp().path + '/') : url),
1587
+ };
1588
+ }
1589
+ // The mask longhands arrive one setter at a time (a shorthand sets eight, a keyframe two), so
1590
+ // they're sent to Css.SetMask together once the current task is done.
1591
+ scheduleWindowsMask(name, value) {
1592
+ const pending = this._windowsMaskOverrides !== undefined;
1593
+ (this._windowsMaskOverrides ?? (this._windowsMaskOverrides = new Map())).set(name, value);
1594
+ if (pending)
1595
+ return;
1596
+ Promise.resolve().then(() => {
1597
+ const overrides = this._windowsMaskOverrides;
1598
+ this._windowsMaskOverrides = undefined;
1599
+ const view = this.nativeView;
1600
+ if (!view)
1601
+ return;
1602
+ // A pseudo-class state's values aren't in _windowsCss; they win over it while applied.
1603
+ const css = new Map(this._windowsCss);
1604
+ for (const [key, v] of overrides ?? [])
1605
+ css.set(key, v);
1606
+ let spec = '';
1607
+ try {
1608
+ spec = encodeWindowsMask(css, this.windowsMaskContext());
1609
+ }
1610
+ catch (_) { }
1611
+ if (spec === this._windowsMaskSpec)
1612
+ return;
1613
+ this._windowsMaskSpec = spec;
1614
+ NativeScript.Mason.Css.SetMask(view, spec);
1615
+ });
1616
+ }
1548
1617
  applyWindowsCssString(name, value) {
1618
+ if (WINDOWS_MASK_PROPERTIES.has(name)) {
1619
+ this.scheduleWindowsMask(name, typeof value === 'string' ? value : String(value ?? ''));
1620
+ return;
1621
+ }
1622
+ if (name === 'border-image') {
1623
+ const view = this.nativeView;
1624
+ if (!view)
1625
+ return;
1626
+ let spec = '';
1627
+ try {
1628
+ spec = encodeWindowsBorderImage(typeof value === 'string' ? value : '', this.windowsMaskContext());
1629
+ }
1630
+ catch (_) { }
1631
+ NativeScript.Mason.Css.SetBorderImage(view, spec);
1632
+ return;
1633
+ }
1549
1634
  // A gradient is a Panel brush from Css that VisualApply leaves over BACKGROUND_COLOR; clearing
1550
1635
  // it lets VisualApply repaint the color.
1551
1636
  if (name === 'background' || name === 'background-image') {
@@ -1553,6 +1638,11 @@ export class Style {
1553
1638
  this.applyWindowsBackground(name === 'background');
1554
1639
  return;
1555
1640
  }
1641
+ if (name === 'background-repeat') {
1642
+ if (/url\(/i.test(this._windowsBackground ?? ''))
1643
+ this.applyWindowsBackground(false);
1644
+ return;
1645
+ }
1556
1646
  if (name === 'background-size' || name === 'background-position') {
1557
1647
  if (name === 'background-size')
1558
1648
  this._windowsBackgroundSize = String(value ?? '');
@@ -5850,6 +5940,321 @@ export class Style {
5850
5940
  get 'backdrop-filter'() {
5851
5941
  return this.backdropFilter;
5852
5942
  }
5943
+ get maskImage() {
5944
+ if (!this.nativeView)
5945
+ return '';
5946
+ if (__ANDROID__) {
5947
+ return nodeHelper().getMaskImage(this.nativeView);
5948
+ }
5949
+ if (__APPLE__) {
5950
+ return this.appleStyle.maskImage;
5951
+ }
5952
+ return __WINDOWS__ ? (this._windowsCss.get('mask-image') ?? '') : '';
5953
+ }
5954
+ set maskImage(value) {
5955
+ value = this.coerceCssStringValue(value);
5956
+ this.setPseudoCssStringValue('mask-image', value, () => nodeHelper().setMaskImage(this.nativeView, value), () => (this.appleStyle.maskImage = value));
5957
+ }
5958
+ set 'mask-image'(value) {
5959
+ this.maskImage = value;
5960
+ }
5961
+ get 'mask-image'() {
5962
+ return this.maskImage;
5963
+ }
5964
+ get maskSize() {
5965
+ if (!this.nativeView)
5966
+ return '';
5967
+ if (__ANDROID__) {
5968
+ return nodeHelper().getMaskSize(this.nativeView);
5969
+ }
5970
+ if (__APPLE__) {
5971
+ return this.appleStyle.maskSize;
5972
+ }
5973
+ return __WINDOWS__ ? (this._windowsCss.get('mask-size') ?? '') : '';
5974
+ }
5975
+ set maskSize(value) {
5976
+ value = this.coerceCssStringValue(value);
5977
+ this.setPseudoCssStringValue('mask-size', value, () => nodeHelper().setMaskSize(this.nativeView, value), () => (this.appleStyle.maskSize = value));
5978
+ }
5979
+ set 'mask-size'(value) {
5980
+ this.maskSize = value;
5981
+ }
5982
+ get 'mask-size'() {
5983
+ return this.maskSize;
5984
+ }
5985
+ get maskPosition() {
5986
+ if (!this.nativeView)
5987
+ return '';
5988
+ if (__ANDROID__) {
5989
+ return nodeHelper().getMaskPosition(this.nativeView);
5990
+ }
5991
+ if (__APPLE__) {
5992
+ return this.appleStyle.maskPosition;
5993
+ }
5994
+ return __WINDOWS__ ? (this._windowsCss.get('mask-position') ?? '') : '';
5995
+ }
5996
+ set maskPosition(value) {
5997
+ value = this.coerceCssStringValue(value);
5998
+ this.setPseudoCssStringValue('mask-position', value, () => nodeHelper().setMaskPosition(this.nativeView, value), () => (this.appleStyle.maskPosition = value));
5999
+ }
6000
+ set 'mask-position'(value) {
6001
+ this.maskPosition = value;
6002
+ }
6003
+ get 'mask-position'() {
6004
+ return this.maskPosition;
6005
+ }
6006
+ get maskRepeat() {
6007
+ if (!this.nativeView)
6008
+ return '';
6009
+ if (__ANDROID__) {
6010
+ return nodeHelper().getMaskRepeat(this.nativeView);
6011
+ }
6012
+ if (__APPLE__) {
6013
+ return this.appleStyle.maskRepeat;
6014
+ }
6015
+ return __WINDOWS__ ? (this._windowsCss.get('mask-repeat') ?? '') : '';
6016
+ }
6017
+ set maskRepeat(value) {
6018
+ value = this.coerceCssStringValue(value);
6019
+ this.setPseudoCssStringValue('mask-repeat', value, () => nodeHelper().setMaskRepeat(this.nativeView, value), () => (this.appleStyle.maskRepeat = value));
6020
+ }
6021
+ set 'mask-repeat'(value) {
6022
+ this.maskRepeat = value;
6023
+ }
6024
+ get 'mask-repeat'() {
6025
+ return this.maskRepeat;
6026
+ }
6027
+ get maskOrigin() {
6028
+ if (!this.nativeView)
6029
+ return '';
6030
+ if (__ANDROID__) {
6031
+ return nodeHelper().getMaskOrigin(this.nativeView);
6032
+ }
6033
+ if (__APPLE__) {
6034
+ return this.appleStyle.maskOrigin;
6035
+ }
6036
+ return __WINDOWS__ ? (this._windowsCss.get('mask-origin') ?? '') : '';
6037
+ }
6038
+ set maskOrigin(value) {
6039
+ value = this.coerceCssStringValue(value);
6040
+ this.setPseudoCssStringValue('mask-origin', value, () => nodeHelper().setMaskOrigin(this.nativeView, value), () => (this.appleStyle.maskOrigin = value));
6041
+ }
6042
+ set 'mask-origin'(value) {
6043
+ this.maskOrigin = value;
6044
+ }
6045
+ get 'mask-origin'() {
6046
+ return this.maskOrigin;
6047
+ }
6048
+ get maskClip() {
6049
+ if (!this.nativeView)
6050
+ return '';
6051
+ if (__ANDROID__) {
6052
+ return nodeHelper().getMaskClip(this.nativeView);
6053
+ }
6054
+ if (__APPLE__) {
6055
+ return this.appleStyle.maskClip;
6056
+ }
6057
+ return __WINDOWS__ ? (this._windowsCss.get('mask-clip') ?? '') : '';
6058
+ }
6059
+ set maskClip(value) {
6060
+ value = this.coerceCssStringValue(value);
6061
+ this.setPseudoCssStringValue('mask-clip', value, () => nodeHelper().setMaskClip(this.nativeView, value), () => (this.appleStyle.maskClip = value));
6062
+ }
6063
+ set 'mask-clip'(value) {
6064
+ this.maskClip = value;
6065
+ }
6066
+ get 'mask-clip'() {
6067
+ return this.maskClip;
6068
+ }
6069
+ get maskMode() {
6070
+ if (!this.nativeView)
6071
+ return '';
6072
+ if (__ANDROID__) {
6073
+ return nodeHelper().getMaskMode(this.nativeView);
6074
+ }
6075
+ if (__APPLE__) {
6076
+ return this.appleStyle.maskMode;
6077
+ }
6078
+ return __WINDOWS__ ? (this._windowsCss.get('mask-mode') ?? '') : '';
6079
+ }
6080
+ set maskMode(value) {
6081
+ value = this.coerceCssStringValue(value);
6082
+ this.setPseudoCssStringValue('mask-mode', value, () => nodeHelper().setMaskMode(this.nativeView, value), () => (this.appleStyle.maskMode = value));
6083
+ }
6084
+ set 'mask-mode'(value) {
6085
+ this.maskMode = value;
6086
+ }
6087
+ get 'mask-mode'() {
6088
+ return this.maskMode;
6089
+ }
6090
+ get maskComposite() {
6091
+ if (!this.nativeView)
6092
+ return '';
6093
+ if (__ANDROID__) {
6094
+ return nodeHelper().getMaskComposite(this.nativeView);
6095
+ }
6096
+ if (__APPLE__) {
6097
+ return this.appleStyle.maskComposite;
6098
+ }
6099
+ return __WINDOWS__ ? (this._windowsCss.get('mask-composite') ?? '') : '';
6100
+ }
6101
+ set maskComposite(value) {
6102
+ value = this.coerceCssStringValue(value);
6103
+ this.setPseudoCssStringValue('mask-composite', value, () => nodeHelper().setMaskComposite(this.nativeView, value), () => (this.appleStyle.maskComposite = value));
6104
+ }
6105
+ set 'mask-composite'(value) {
6106
+ this.maskComposite = value;
6107
+ }
6108
+ get 'mask-composite'() {
6109
+ return this.maskComposite;
6110
+ }
6111
+ get clipPath() {
6112
+ if (!this.nativeView)
6113
+ return '';
6114
+ if (__ANDROID__) {
6115
+ return nodeHelper().getClipPath(this.nativeView);
6116
+ }
6117
+ if (__APPLE__) {
6118
+ return this.appleStyle.clipPath;
6119
+ }
6120
+ return __WINDOWS__ ? (this._windowsCss.get('clip-path') ?? '') : '';
6121
+ }
6122
+ set clipPath(value) {
6123
+ value = this.coerceCssStringValue(value);
6124
+ this.setPseudoCssStringValue('clip-path', value, () => nodeHelper().setClipPath(this.nativeView, value), () => (this.appleStyle.clipPath = value));
6125
+ }
6126
+ set 'clip-path'(value) {
6127
+ this.clipPath = value;
6128
+ }
6129
+ get 'clip-path'() {
6130
+ return this.clipPath;
6131
+ }
6132
+ get maskBorderSource() {
6133
+ if (!this.nativeView)
6134
+ return '';
6135
+ if (__ANDROID__) {
6136
+ return nodeHelper().getMaskBorderSource(this.nativeView);
6137
+ }
6138
+ if (__APPLE__) {
6139
+ return this.appleStyle.maskBorderSource;
6140
+ }
6141
+ return __WINDOWS__ ? (this._windowsCss.get('mask-border-source') ?? '') : '';
6142
+ }
6143
+ set maskBorderSource(value) {
6144
+ value = this.coerceCssStringValue(value);
6145
+ this.setPseudoCssStringValue('mask-border-source', value, () => nodeHelper().setMaskBorderSource(this.nativeView, value), () => (this.appleStyle.maskBorderSource = value));
6146
+ }
6147
+ set 'mask-border-source'(value) {
6148
+ this.maskBorderSource = value;
6149
+ }
6150
+ get 'mask-border-source'() {
6151
+ return this.maskBorderSource;
6152
+ }
6153
+ get maskBorderSlice() {
6154
+ if (!this.nativeView)
6155
+ return '';
6156
+ if (__ANDROID__) {
6157
+ return nodeHelper().getMaskBorderSlice(this.nativeView);
6158
+ }
6159
+ if (__APPLE__) {
6160
+ return this.appleStyle.maskBorderSlice;
6161
+ }
6162
+ return __WINDOWS__ ? (this._windowsCss.get('mask-border-slice') ?? '') : '';
6163
+ }
6164
+ set maskBorderSlice(value) {
6165
+ value = this.coerceCssStringValue(value);
6166
+ this.setPseudoCssStringValue('mask-border-slice', value, () => nodeHelper().setMaskBorderSlice(this.nativeView, value), () => (this.appleStyle.maskBorderSlice = value));
6167
+ }
6168
+ set 'mask-border-slice'(value) {
6169
+ this.maskBorderSlice = value;
6170
+ }
6171
+ get 'mask-border-slice'() {
6172
+ return this.maskBorderSlice;
6173
+ }
6174
+ get maskBorderWidth() {
6175
+ if (!this.nativeView)
6176
+ return '';
6177
+ if (__ANDROID__) {
6178
+ return nodeHelper().getMaskBorderWidth(this.nativeView);
6179
+ }
6180
+ if (__APPLE__) {
6181
+ return this.appleStyle.maskBorderWidth;
6182
+ }
6183
+ return __WINDOWS__ ? (this._windowsCss.get('mask-border-width') ?? '') : '';
6184
+ }
6185
+ set maskBorderWidth(value) {
6186
+ value = this.coerceCssStringValue(value);
6187
+ this.setPseudoCssStringValue('mask-border-width', value, () => nodeHelper().setMaskBorderWidth(this.nativeView, value), () => (this.appleStyle.maskBorderWidth = value));
6188
+ }
6189
+ set 'mask-border-width'(value) {
6190
+ this.maskBorderWidth = value;
6191
+ }
6192
+ get 'mask-border-width'() {
6193
+ return this.maskBorderWidth;
6194
+ }
6195
+ get maskBorderOutset() {
6196
+ if (!this.nativeView)
6197
+ return '';
6198
+ if (__ANDROID__) {
6199
+ return nodeHelper().getMaskBorderOutset(this.nativeView);
6200
+ }
6201
+ if (__APPLE__) {
6202
+ return this.appleStyle.maskBorderOutset;
6203
+ }
6204
+ return __WINDOWS__ ? (this._windowsCss.get('mask-border-outset') ?? '') : '';
6205
+ }
6206
+ set maskBorderOutset(value) {
6207
+ value = this.coerceCssStringValue(value);
6208
+ this.setPseudoCssStringValue('mask-border-outset', value, () => nodeHelper().setMaskBorderOutset(this.nativeView, value), () => (this.appleStyle.maskBorderOutset = value));
6209
+ }
6210
+ set 'mask-border-outset'(value) {
6211
+ this.maskBorderOutset = value;
6212
+ }
6213
+ get 'mask-border-outset'() {
6214
+ return this.maskBorderOutset;
6215
+ }
6216
+ get maskBorderRepeat() {
6217
+ if (!this.nativeView)
6218
+ return '';
6219
+ if (__ANDROID__) {
6220
+ return nodeHelper().getMaskBorderRepeat(this.nativeView);
6221
+ }
6222
+ if (__APPLE__) {
6223
+ return this.appleStyle.maskBorderRepeat;
6224
+ }
6225
+ return __WINDOWS__ ? (this._windowsCss.get('mask-border-repeat') ?? '') : '';
6226
+ }
6227
+ set maskBorderRepeat(value) {
6228
+ value = this.coerceCssStringValue(value);
6229
+ this.setPseudoCssStringValue('mask-border-repeat', value, () => nodeHelper().setMaskBorderRepeat(this.nativeView, value), () => (this.appleStyle.maskBorderRepeat = value));
6230
+ }
6231
+ set 'mask-border-repeat'(value) {
6232
+ this.maskBorderRepeat = value;
6233
+ }
6234
+ get 'mask-border-repeat'() {
6235
+ return this.maskBorderRepeat;
6236
+ }
6237
+ get maskBorderMode() {
6238
+ if (!this.nativeView)
6239
+ return '';
6240
+ if (__ANDROID__) {
6241
+ return nodeHelper().getMaskBorderMode(this.nativeView);
6242
+ }
6243
+ if (__APPLE__) {
6244
+ return this.appleStyle.maskBorderMode;
6245
+ }
6246
+ return __WINDOWS__ ? (this._windowsCss.get('mask-border-mode') ?? '') : '';
6247
+ }
6248
+ set maskBorderMode(value) {
6249
+ value = this.coerceCssStringValue(value);
6250
+ this.setPseudoCssStringValue('mask-border-mode', value, () => nodeHelper().setMaskBorderMode(this.nativeView, value), () => (this.appleStyle.maskBorderMode = value));
6251
+ }
6252
+ set 'mask-border-mode'(value) {
6253
+ this.maskBorderMode = value;
6254
+ }
6255
+ get 'mask-border-mode'() {
6256
+ return this.maskBorderMode;
6257
+ }
5853
6258
  get writingMode() {
5854
6259
  if (!this.style_view)
5855
6260
  return 'horizontal-tb';