@triniwiz/nativescript-masonkit 1.0.0-beta.116 → 1.0.0-beta.118

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 +15 -2
  2. package/common.d.ts +7 -9
  3. package/common.js +26 -49
  4. package/common.js.map +1 -1
  5. package/css-math.d.ts +34 -0
  6. package/css-math.js +301 -0
  7. package/css-math.js.map +1 -0
  8. package/css-shorthands.d.ts +24 -0
  9. package/css-shorthands.js +145 -0
  10. package/css-shorthands.js.map +1 -1
  11. package/index.d.ts +45 -0
  12. package/input/common.d.ts +13 -0
  13. package/input/common.js +97 -0
  14. package/input/common.js.map +1 -1
  15. package/package.json +3 -3
  16. package/platforms/android/masonkit-release.aar +0 -0
  17. package/platforms/ios/Mason.xcframework/Info.plist +11 -11
  18. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Headers/Mason-Swift.h +2 -0
  19. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Mason +0 -0
  20. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
  21. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.abi.json +6069 -14580
  22. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.private.swiftinterface +31 -7
  23. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  24. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.swiftinterface +31 -7
  25. package/platforms/ios/Mason.xcframework/ios-arm64/dSYMs/Mason.framework.dSYM/Contents/Resources/DWARF/Mason +0 -0
  26. package/platforms/ios/Mason.xcframework/ios-arm64/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/aarch64/Mason.yml +9346 -9349
  27. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Headers/Mason-Swift.h +4 -0
  28. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Mason +0 -0
  29. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
  30. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
  31. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.abi.json +6069 -14580
  32. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +31 -7
  33. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  34. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.swiftinterface +31 -7
  35. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.abi.json +6069 -14580
  36. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +31 -7
  37. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  38. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +31 -7
  39. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/_CodeSignature/CodeResources +26 -26
  40. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/DWARF/Mason +2 -2
  41. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/aarch64/Mason.yml +9340 -9343
  42. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/x86_64/Mason.yml +8906 -8915
  43. package/platforms/ios/Mason.xcframework/xros-arm64/Mason.framework/Headers/Mason-Swift.h +2 -0
  44. package/platforms/ios/Mason.xcframework/xros-arm64/Mason.framework/Mason +0 -0
  45. package/platforms/ios/Mason.xcframework/xros-arm64/Mason.framework/Modules/Mason.swiftmodule/Project/arm64-apple-xros.swiftsourceinfo +0 -0
  46. package/platforms/ios/Mason.xcframework/xros-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-xros.abi.json +6069 -14580
  47. package/platforms/ios/Mason.xcframework/xros-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-xros.private.swiftinterface +31 -7
  48. package/platforms/ios/Mason.xcframework/xros-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-xros.swiftdoc +0 -0
  49. package/platforms/ios/Mason.xcframework/xros-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-xros.swiftinterface +31 -7
  50. package/platforms/ios/Mason.xcframework/xros-arm64/dSYMs/Mason.framework.dSYM/Contents/Resources/DWARF/Mason +0 -0
  51. package/platforms/ios/Mason.xcframework/xros-arm64/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/aarch64/Mason.yml +8837 -8839
  52. package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/Headers/Mason-Swift.h +2 -0
  53. package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/Mason +0 -0
  54. package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/Modules/Mason.swiftmodule/Project/arm64-apple-xros-simulator.swiftsourceinfo +0 -0
  55. package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-xros-simulator.abi.json +6069 -14580
  56. package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-xros-simulator.private.swiftinterface +31 -7
  57. package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-xros-simulator.swiftdoc +0 -0
  58. package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-xros-simulator.swiftinterface +31 -7
  59. package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/_CodeSignature/CodeResources +14 -14
  60. package/platforms/ios/Mason.xcframework/xros-arm64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/DWARF/Mason +0 -0
  61. package/platforms/ios/Mason.xcframework/xros-arm64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/aarch64/Mason.yml +8836 -8838
  62. package/platforms/windows/arm64/NativeScript.Mason.dll +0 -0
  63. package/platforms/windows/arm64/NativeScript.Mason.winmd +0 -0
  64. package/platforms/windows/x64/NativeScript.Mason.dll +0 -0
  65. package/platforms/windows/x64/NativeScript.Mason.winmd +0 -0
  66. package/properties.d.ts +20 -9
  67. package/properties.js +285 -70
  68. package/properties.js.map +1 -1
  69. package/style.d.ts +54 -4
  70. package/style.js +328 -29
  71. package/style.js.map +1 -1
  72. package/svelte/README.md +6 -1
  73. package/svelte/package.json +1 -1
  74. package/svelte/src/element-registry.js +1 -1
  75. package/svelte/src/element-registry.js.map +1 -1
  76. package/svelte/src/mason-element-node.d.ts +2 -2
  77. package/svelte/src/mason-element-node.d.ts.map +1 -1
  78. package/svelte/src/mason-element-node.js +1 -1
  79. package/svelte/src/mason-element-node.js.map +1 -1
  80. package/web.js +2 -0
  81. package/web.js.map +1 -1
package/DOCS.md CHANGED
@@ -386,6 +386,8 @@ All components that extend `View` support the following layout properties, setta
386
386
 
387
387
  Length values support `px`, `%`, `dip`, and `auto` (for margins).
388
388
 
389
+ The logical forms `margin-inline`, `margin-block`, `padding-inline`, `padding-block` and their `-start` / `-end` longhands are supported and map to the physical sides for left-to-right, horizontal text (inline-start is left, block-start is top).
390
+
389
391
  ---
390
392
 
391
393
  ### Sizing
@@ -399,6 +401,8 @@ Length values support `px`, `%`, `dip`, and `auto` (for margins).
399
401
  | `maxWidth` | `LengthAuto` | Maximum width |
400
402
  | `maxHeight` | `LengthAuto` | Maximum height |
401
403
 
404
+ `inline-size`, `block-size` and their `min-` / `max-` forms map to width and height.
405
+
402
406
  ## Transforms
403
407
 
404
408
  MasonKit supports a subset of CSS `transform` functions on native views. The following functions are supported on Android via the `transform` style property:
@@ -407,6 +411,8 @@ MasonKit supports a subset of CSS `transform` functions on native views. The fol
407
411
  - `scale(sx, sy)` — scaling (also `scaleX`, `scaleY`)
408
412
  - `rotate(angle)` — rotation in degrees (supports `deg` and `rad`)
409
413
 
414
+ `transform-origin` sets the point transforms pivot about: keywords (`top left`), lengths or percentages of the element's box. The default is `50% 50%`.
415
+
410
416
  Notes:
411
417
  - Lengths in pixels can be specified with `px` (e.g. `translate(10px, 20px)`). Numeric values without units are interpreted as raw numbers (for scale/angle parsing try to use unit suffixes for clarity).
412
418
  - Percentage translations are not supported in this initial implementation.
@@ -462,6 +468,7 @@ If you want transforms to be driven from the native style buffer (Rust) and casc
462
468
  | `top` | `LengthAuto` | Top offset |
463
469
  | `bottom` | `LengthAuto` | Bottom offset |
464
470
  | `inset` | `LengthAuto` | Shorthand for all four offsets |
471
+ | `insetInline` / `insetBlock` | `string` | Logical offsets: left then right, top then bottom |
465
472
  | `zIndex` | `number` | Stacking order |
466
473
 
467
474
  ```xml
@@ -489,6 +496,9 @@ If you want transforms to be driven from the native style buffer (Rust) and casc
489
496
  | `justifyContent` | `JustifyContent` | Main-axis alignment |
490
497
  | `justifyItems` | `JustifyItems` | Default justify for children |
491
498
  | `justifySelf` | `JustifySelf` | Justify alignment for this element |
499
+ | `placeItems` | `string` | `align-items` then `justify-items` |
500
+ | `placeContent` | `string` | `align-content` then `justify-content` |
501
+ | `placeSelf` | `string` | `align-self` then `justify-self` |
492
502
 
493
503
  **FlexDirection values:** `'row'` | `'column'` | `'row-reverse'` | `'column-reverse'`
494
504
 
@@ -655,6 +665,9 @@ If you want transforms to be driven from the native style buffer (Rust) and casc
655
665
  | `textWrap` | `TextWrap` | Text wrapping behavior |
656
666
  | `textOverFlow` | `TextOverflow` | Text overflow behavior |
657
667
  | `verticalAlign` | `VerticalAlign` | Vertical alignment |
668
+ | `textIndent` | `string` | Indent of the first line (length or `%` of the width) |
669
+ | `lineClamp` | `number \| 'none'` | Show at most this many lines, ending the last in an ellipsis. `-webkit-line-clamp` is an alias |
670
+ | `listStyle` | `string` | Shorthand for `list-style-type` and `list-style-position` |
658
671
 
659
672
  **TextWrap values:** `'nowrap'` | `'wrap'` | `'balance'`
660
673
 
@@ -899,7 +912,7 @@ MasonKit supports multiple NativeScript frameworks:
899
912
  | Angular | Supported |
900
913
  | Vue 3 (`nativescript-vue`) | Supported |
901
914
  | React (`react-nativescript`) | Supported |
902
- | Svelte (`svelte-native`) | Supported |
915
+ | Svelte (`@nativescript-community/svelte-native`) | Supported |
903
916
 
904
917
  Framework detection is automatic. MasonKit detects which framework is in use and adapts its internal child management accordingly.
905
918
 
@@ -938,7 +951,7 @@ Install the integration in the app entry file, before starting Svelte Native:
938
951
 
939
952
  ```ts
940
953
  // app.ts
941
- import { svelteNative } from 'svelte-native';
954
+ import { svelteNative } from '@nativescript-community/svelte-native';
942
955
  import { installMasonKit } from '@triniwiz/nativescript-masonkit/svelte';
943
956
  import App from './App.svelte';
944
957
 
package/common.d.ts CHANGED
@@ -4,7 +4,7 @@ import { alignItemsProperty, alignSelfProperty, flexDirectionProperty, flexGrowP
4
4
  import { fontInternalProperty, backgroundInternalProperty, borderTopLeftRadiusProperty, borderTopRightRadiusProperty, borderBottomRightRadiusProperty, borderBottomLeftRadiusProperty, borderTopColorProperty, borderRightColorProperty, borderBottomColorProperty, borderLeftColorProperty } from '@nativescript/core/ui/styling/style-properties';
5
5
  import { originXProperty, originYProperty } from '@nativescript/core/ui/core/view';
6
6
  import { Style } from './style';
7
- import { alignContentProperty, aspectRatioProperty, backgroundProperty, borderProperty, borderLeftProperty, borderTopProperty, borderRightProperty, borderBottomProperty, borderRadiusProperty, bottomProperty, boxSizingProperty, clearProperty, columnGapProperty, cornerShapeProperty, displayProperty, filterProperty, flexBasisProperty, floatProperty, gridAreaProperty, gridAutoColumnsProperty, gridAutoFlowProperty, gridAutoRowsProperty, gridColumnEndProperty, gridColumnProperty, gridColumnStartProperty, gridRowEndProperty, gridRowProperty, gridRowStartProperty, gridTemplateAreasProperty, gridTemplateColumnsProperty, gridTemplateRowsProperty, justifyItemsProperty, justifySelfProperty, leftProperty, marginProperty, maxHeightProperty, maxWidthProperty, overflowXProperty, overflowYProperty, paddingProperty, positionProperty, rightProperty, rowGapProperty, scrollBarWidthProperty, textOverFlowProperty, textProperty, textWrapProperty, topProperty, verticalAlignProperty, boxShadowProperty, transformProperty, borderColorProperty, borderStyleProperty, backgroundImageProperty, listStyleTypeProperty, listStylePositionProperty } from './properties';
7
+ import { alignContentProperty, aspectRatioProperty, backgroundProperty, borderRadiusProperty, bottomProperty, boxSizingProperty, clearProperty, columnGapProperty, cornerShapeProperty, displayProperty, filterProperty, flexBasisProperty, floatProperty, gridAreaProperty, gridAutoColumnsProperty, gridAutoFlowProperty, gridAutoRowsProperty, gridColumnEndProperty, gridColumnProperty, gridColumnStartProperty, gridRowEndProperty, gridRowProperty, gridRowStartProperty, gridTemplateAreasProperty, gridTemplateColumnsProperty, gridTemplateRowsProperty, justifyItemsProperty, justifySelfProperty, leftProperty, marginProperty, maxHeightProperty, maxWidthProperty, overflowXProperty, overflowYProperty, paddingProperty, positionProperty, rightProperty, rowGapProperty, scrollBarWidthProperty, textOverFlowProperty, textProperty, textWrapProperty, topProperty, verticalAlignProperty, boxShadowProperty, transformProperty, borderColorProperty, borderTopStyleProperty, borderRightStyleProperty, borderBottomStyleProperty, borderLeftStyleProperty, backgroundImageProperty, listStyleTypeProperty, listStylePositionProperty } from './properties';
8
8
  import { isMasonView_, isTextChild_, isText_, native_, pseudoStyles_, eventType_, touchAction_ } from './symbols';
9
9
  import { TextNode } from './text-node';
10
10
  export interface MasonChild extends ViewBase {
@@ -94,11 +94,6 @@ export declare class ViewBase extends CustomLayoutView implements AddChildFromBu
94
94
  [borderRightColorProperty.setNative]: (value: any) => void;
95
95
  [borderBottomColorProperty.setNative]: (value: any) => void;
96
96
  [borderLeftColorProperty.setNative]: (value: any) => void;
97
- [borderProperty.setNative]: (value: any) => void;
98
- [borderLeftProperty.setNative]: (value: any) => void;
99
- [borderTopProperty.setNative]: (value: any) => void;
100
- [borderRightProperty.setNative]: (value: any) => void;
101
- [borderBottomProperty.setNative]: (value: any) => void;
102
97
  [backgroundProperty.setNative]: (value: any) => void;
103
98
  [backgroundColorProperty.setNative]: (value: any) => void;
104
99
  [borderLeftWidthProperty.setNative]: (value: CoreTypes.LengthType) => void;
@@ -110,7 +105,10 @@ export declare class ViewBase extends CustomLayoutView implements AddChildFromBu
110
105
  [textAlignmentProperty.setNative]: (value: any) => void;
111
106
  [textDecorationProperty.setNative]: (value: any) => void;
112
107
  [borderColorProperty.setNative]: (value: any) => void;
113
- [borderStyleProperty.setNative]: (value: any) => void;
108
+ [borderTopStyleProperty.setNative]: (value: any) => void;
109
+ [borderRightStyleProperty.setNative]: (value: any) => void;
110
+ [borderBottomStyleProperty.setNative]: (value: any) => void;
111
+ [borderLeftStyleProperty.setNative]: (value: any) => void;
114
112
  [backgroundImageProperty.setNative]: (value: any) => void;
115
113
  [listStyleTypeProperty.setNative]: (value: any) => void;
116
114
  [listStylePositionProperty.setNative]: (value: any) => void;
@@ -389,8 +387,8 @@ export declare class ViewBase extends CustomLayoutView implements AddChildFromBu
389
387
  set boxSizing(value: BoxSizing);
390
388
  get display(): Display;
391
389
  set display(value: Display);
392
- get overflow(): Overflow | "auto auto" | "auto scroll" | "auto clip" | "auto visible" | "auto hidden" | "scroll auto" | "scroll scroll" | "scroll clip" | "scroll visible" | "scroll hidden" | "clip auto" | "clip scroll" | "clip clip" | "clip visible" | "clip hidden" | "visible auto" | "visible scroll" | "visible clip" | "visible visible" | "visible hidden" | "hidden auto" | "hidden scroll" | "hidden clip" | "hidden visible" | "hidden hidden";
393
- set overflow(value: Overflow | "auto auto" | "auto scroll" | "auto clip" | "auto visible" | "auto hidden" | "scroll auto" | "scroll scroll" | "scroll clip" | "scroll visible" | "scroll hidden" | "clip auto" | "clip scroll" | "clip clip" | "clip visible" | "clip hidden" | "visible auto" | "visible scroll" | "visible clip" | "visible visible" | "visible hidden" | "hidden auto" | "hidden scroll" | "hidden clip" | "hidden visible" | "hidden hidden");
390
+ get overflow(): Overflow | "auto auto" | "auto hidden" | "auto scroll" | "auto clip" | "auto visible" | "hidden auto" | "hidden hidden" | "hidden scroll" | "hidden clip" | "hidden visible" | "scroll auto" | "scroll hidden" | "scroll scroll" | "scroll clip" | "scroll visible" | "clip auto" | "clip hidden" | "clip scroll" | "clip clip" | "clip visible" | "visible auto" | "visible hidden" | "visible scroll" | "visible clip" | "visible visible";
391
+ set overflow(value: Overflow | "auto auto" | "auto hidden" | "auto scroll" | "auto clip" | "auto visible" | "hidden auto" | "hidden hidden" | "hidden scroll" | "hidden clip" | "hidden visible" | "scroll auto" | "scroll hidden" | "scroll scroll" | "scroll clip" | "scroll visible" | "clip auto" | "clip hidden" | "clip scroll" | "clip clip" | "clip visible" | "visible auto" | "visible hidden" | "visible scroll" | "visible clip" | "visible visible");
394
392
  get overflowX(): Overflow;
395
393
  set overflowX(value: Overflow);
396
394
  get overflowY(): Overflow;
package/common.js CHANGED
@@ -11,10 +11,10 @@ import { _forceStyleUpdate } from './utils';
11
11
  import { borderRadiusCorners, composeBorderRadius, isCssLength, parseCornerRadius, toCamelCase } from './css-shorthands';
12
12
  import { originXProperty, originYProperty } from '@nativescript/core/ui/core/view';
13
13
  import { animateTransforms } from './css-keyframes';
14
- import { Style, nodeHelper, cssLengthToDip } from './style';
14
+ import { Style, nodeHelper, cssLengthToDip, resolveCssMathIn } from './style';
15
15
  import { encodeBoxShadows, parseBoxShadows } from './box-shadow';
16
16
  import { parseCssTransform } from './css-transform';
17
- import { alignContentProperty, aspectRatioProperty, backgroundProperty, borderProperty, borderLeftProperty, borderTopProperty, borderRightProperty, borderBottomProperty, borderRadiusProperty, bottomProperty, boxSizingProperty, clearProperty, columnGapProperty, cornerShapeProperty, displayProperty, filterProperty, flexBasisProperty, floatProperty, gridAreaProperty, gridAutoColumnsProperty, gridAutoFlowProperty, gridAutoRowsProperty, gridColumnEndProperty, gridColumnProperty, gridColumnStartProperty, gridRowEndProperty, gridRowProperty, gridRowStartProperty, gridTemplateAreasProperty, gridTemplateColumnsProperty, gridTemplateRowsProperty, justifyItemsProperty, justifySelfProperty, leftProperty, marginProperty, maxHeightProperty, maxWidthProperty, overflowXProperty, overflowYProperty, paddingProperty, positionProperty, rightProperty, rowGapProperty, scrollBarWidthProperty, textOverFlowProperty, textProperty, textWrapProperty, topProperty, verticalAlignProperty, boxShadowProperty, transformProperty, borderColorProperty, borderStyleProperty, backgroundImageProperty, listStyleTypeProperty, listStylePositionProperty, installMasonSizeUnits, } from './properties';
17
+ import { alignContentProperty, aspectRatioProperty, backgroundProperty, borderRadiusProperty, bottomProperty, boxSizingProperty, clearProperty, columnGapProperty, cornerShapeProperty, displayProperty, filterProperty, flexBasisProperty, floatProperty, gridAreaProperty, gridAutoColumnsProperty, gridAutoFlowProperty, gridAutoRowsProperty, gridColumnEndProperty, gridColumnProperty, gridColumnStartProperty, gridRowEndProperty, gridRowProperty, gridRowStartProperty, gridTemplateAreasProperty, gridTemplateColumnsProperty, gridTemplateRowsProperty, justifyItemsProperty, justifySelfProperty, leftProperty, marginProperty, maxHeightProperty, maxWidthProperty, overflowXProperty, overflowYProperty, paddingProperty, positionProperty, rightProperty, rowGapProperty, scrollBarWidthProperty, textOverFlowProperty, textProperty, textWrapProperty, topProperty, verticalAlignProperty, boxShadowProperty, transformProperty, borderColorProperty, borderTopStyleProperty, borderRightStyleProperty, borderBottomStyleProperty, borderLeftStyleProperty, backgroundImageProperty, listStyleTypeProperty, listStylePositionProperty, installMasonSizeUnits, } from './properties';
18
18
  import { isMasonView_, isTextChild_, isText_, isPlaceholder_, text_, native_, textNode_, textNodeIndex_, textNodeProxied_, pseudoStyles_, emptyTextNode_, breakRun_, anonymousText_, windowsFontSource_, hostsRuns_, needsAnonymousText_, borderRadiusCorners_, borderSideColors_, eventType_, runMember_, runsInline_, runsSettled_, blockified_, touchAction_ } from './symbols';
19
19
  import { Tree } from './tree';
20
20
  import { masonEngine, removeNativeChild } from './windows-panel-helpers';
@@ -2166,7 +2166,8 @@ export class ViewBase extends CustomLayoutView {
2166
2166
  if (!corners) {
2167
2167
  corners = this[borderRadiusCorners_] = this._nativeBorderRadiusCorners();
2168
2168
  }
2169
- const css = lengthToCssString(masonLength(value));
2169
+ // Resolve math functions first: the corner parser can't read them.
2170
+ const css = resolveCssMathIn(lengthToCssString(masonLength(value)), style.emBasis());
2170
2171
  const radius = (corners[corner] = /\s/.test(css) ? parseCornerRadius(css) : [css, css]);
2171
2172
  const shorthand = composeBorderRadius(corners);
2172
2173
  if ((__ANDROID__ || __APPLE__) && style._writeCornerRadius(corner, radius, shorthand)) {
@@ -2253,46 +2254,6 @@ export class ViewBase extends CustomLayoutView {
2253
2254
  get border() {
2254
2255
  return this.style.border;
2255
2256
  }
2256
- [borderProperty.setNative](value) {
2257
- // @ts-ignore
2258
- const style = this._styleHelper;
2259
- if (style) {
2260
- // @ts-ignore
2261
- style.border = value;
2262
- }
2263
- }
2264
- [borderLeftProperty.setNative](value) {
2265
- // @ts-ignore
2266
- const style = this._styleHelper;
2267
- if (style) {
2268
- // @ts-ignore
2269
- style.borderLeft = value;
2270
- }
2271
- }
2272
- [borderTopProperty.setNative](value) {
2273
- // @ts-ignore
2274
- const style = this._styleHelper;
2275
- if (style) {
2276
- // @ts-ignore
2277
- style.borderTop = value;
2278
- }
2279
- }
2280
- [borderRightProperty.setNative](value) {
2281
- // @ts-ignore
2282
- const style = this._styleHelper;
2283
- if (style) {
2284
- // @ts-ignore
2285
- style.borderRight = value;
2286
- }
2287
- }
2288
- [borderBottomProperty.setNative](value) {
2289
- // @ts-ignore
2290
- const style = this._styleHelper;
2291
- if (style) {
2292
- // @ts-ignore
2293
- style.borderBottom = value;
2294
- }
2295
- }
2296
2257
  // @ts-ignore
2297
2258
  set background(value) {
2298
2259
  this.style.background = value;
@@ -2437,14 +2398,30 @@ export class ViewBase extends CustomLayoutView {
2437
2398
  style.setBorderColor(String(value));
2438
2399
  }
2439
2400
  }
2440
- // @ts-ignore
2441
- [borderStyleProperty.setNative](value) {
2401
+ // `border-style`, `border` and `border-<side>` are shorthands over these.
2402
+ [borderTopStyleProperty.setNative](value) {
2442
2403
  // @ts-ignore
2443
2404
  const style = this._styleHelper;
2444
- if (style) {
2445
- // @ts-ignore
2446
- style.borderStyle = String(value ?? '');
2447
- }
2405
+ if (style)
2406
+ style.borderTopStyle = String(value ?? 'none');
2407
+ }
2408
+ [borderRightStyleProperty.setNative](value) {
2409
+ // @ts-ignore
2410
+ const style = this._styleHelper;
2411
+ if (style)
2412
+ style.borderRightStyle = String(value ?? 'none');
2413
+ }
2414
+ [borderBottomStyleProperty.setNative](value) {
2415
+ // @ts-ignore
2416
+ const style = this._styleHelper;
2417
+ if (style)
2418
+ style.borderBottomStyle = String(value ?? 'none');
2419
+ }
2420
+ [borderLeftStyleProperty.setNative](value) {
2421
+ // @ts-ignore
2422
+ const style = this._styleHelper;
2423
+ if (style)
2424
+ style.borderLeftStyle = String(value ?? 'none');
2448
2425
  }
2449
2426
  // @ts-ignore
2450
2427
  [backgroundImageProperty.setNative](value) {