react-native-tinyui 0.4.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/README.md +383 -53
  2. package/ios/ConcentricView/TinyuiConcentricView.h +12 -0
  3. package/ios/ConcentricView/TinyuiConcentricView.mm +60 -0
  4. package/ios/Core/Tinyui.mm +54 -0
  5. package/ios/Core/TinyuiComponentClasses.mm +44 -0
  6. package/ios/LiquidGlassText/TinyuiLiquidGlassTextProvider.swift +64 -79
  7. package/ios/LiquidGlassText/TinyuiLiquidGlassTextShadowNode.h +46 -0
  8. package/ios/LiquidGlassText/TinyuiLiquidGlassTextShadowNode.mm +159 -0
  9. package/ios/LiquidGlassText/TinyuiLiquidGlassTextView.mm +6 -27
  10. package/ios/LiquidGlassText/TinyuiTextOutlineShape.swift +5 -2
  11. package/ios/Menu/TinyuiMenuBuilder.swift +238 -0
  12. package/ios/Menu/TinyuiMenuProvider.swift +51 -85
  13. package/ios/Menu/TinyuiMenuView.mm +13 -35
  14. package/ios/Popover/TinyuiPopoverProvider.swift +198 -44
  15. package/ios/Popover/TinyuiPopoverView.mm +26 -1
  16. package/ios/SFSymbol/TinyuiSFSymbolEffects.h +9 -0
  17. package/ios/SFSymbol/TinyuiSFSymbolEffects.mm +180 -0
  18. package/ios/SFSymbol/TinyuiSFSymbolImage.h +8 -0
  19. package/ios/SFSymbol/TinyuiSFSymbolImage.mm +141 -0
  20. package/ios/SFSymbol/TinyuiSFSymbolShadowNode.h +31 -0
  21. package/ios/SFSymbol/TinyuiSFSymbolShadowNode.mm +30 -0
  22. package/ios/SFSymbol/TinyuiSFSymbolView.h +4 -0
  23. package/ios/SFSymbol/TinyuiSFSymbolView.mm +173 -0
  24. package/ios/Stepper/TinyuiStepperShadowNode.h +32 -0
  25. package/ios/Stepper/TinyuiStepperShadowNode.mm +28 -0
  26. package/ios/Stepper/TinyuiStepperView.h +12 -0
  27. package/ios/Stepper/TinyuiStepperView.mm +128 -0
  28. package/ios/TipKit/TinyuiTip.swift +31 -0
  29. package/ios/TipKit/TinyuiTipPopoverProvider.swift +276 -0
  30. package/ios/TipKit/TinyuiTipPopoverView.h +8 -0
  31. package/ios/TipKit/TinyuiTipPopoverView.mm +114 -0
  32. package/ios/TipKit/TinyuiTipsRuntime.swift +148 -0
  33. package/lib/module/ConcentricView/ConcentricViewNativeComponent.ts +14 -0
  34. package/lib/module/ConcentricView/index.js +29 -0
  35. package/lib/module/ConcentricView/index.js.map +1 -0
  36. package/lib/module/ConcentricView/types.js +4 -0
  37. package/lib/module/ConcentricView/types.js.map +1 -0
  38. package/lib/module/LiquidGlassText/LiquidGlassTextNativeComponent.ts +2 -12
  39. package/lib/module/LiquidGlassText/index.js +60 -35
  40. package/lib/module/LiquidGlassText/index.js.map +1 -1
  41. package/lib/module/Menu/MenuNativeComponent.ts +7 -5
  42. package/lib/module/Menu/index.js +4 -9
  43. package/lib/module/Menu/index.js.map +1 -1
  44. package/lib/module/Menu/options.js +4 -12
  45. package/lib/module/Menu/options.js.map +1 -1
  46. package/lib/module/NativeTinyui.js.map +1 -1
  47. package/lib/module/Popover/index.js +4 -2
  48. package/lib/module/Popover/index.js.map +1 -1
  49. package/lib/module/SFSymbol/SFSymbolNativeComponent.ts +20 -0
  50. package/lib/module/SFSymbol/index.js +73 -0
  51. package/lib/module/SFSymbol/index.js.map +1 -0
  52. package/lib/module/SFSymbol/options.js +79 -0
  53. package/lib/module/SFSymbol/options.js.map +1 -0
  54. package/lib/module/SFSymbol/types.js +4 -0
  55. package/lib/module/SFSymbol/types.js.map +1 -0
  56. package/lib/module/Stepper/StepperNativeComponent.ts +29 -0
  57. package/lib/module/Stepper/index.js +75 -0
  58. package/lib/module/Stepper/index.js.map +1 -0
  59. package/lib/module/Stepper/types.js +4 -0
  60. package/lib/module/Stepper/types.js.map +1 -0
  61. package/lib/module/TipKit/Popover.js +89 -0
  62. package/lib/module/TipKit/Popover.js.map +1 -0
  63. package/lib/module/TipKit/TipPopoverNativeComponent.ts +37 -0
  64. package/lib/module/TipKit/index.js +28 -0
  65. package/lib/module/TipKit/index.js.map +1 -0
  66. package/lib/module/TipKit/types.js +4 -0
  67. package/lib/module/TipKit/types.js.map +1 -0
  68. package/lib/module/TipKit/validation.js +24 -0
  69. package/lib/module/TipKit/validation.js.map +1 -0
  70. package/lib/module/index.js +4 -0
  71. package/lib/module/index.js.map +1 -1
  72. package/lib/module/utils/getNativeTinyui.js.map +1 -1
  73. package/lib/typescript/src/ConcentricView/ConcentricViewNativeComponent.d.ts +7 -0
  74. package/lib/typescript/src/ConcentricView/ConcentricViewNativeComponent.d.ts.map +1 -0
  75. package/lib/typescript/src/ConcentricView/index.d.ts +4 -0
  76. package/lib/typescript/src/ConcentricView/index.d.ts.map +1 -0
  77. package/lib/typescript/src/ConcentricView/types.d.ts +6 -0
  78. package/lib/typescript/src/ConcentricView/types.d.ts.map +1 -0
  79. package/lib/typescript/src/LiquidGlassText/LiquidGlassTextNativeComponent.d.ts +2 -8
  80. package/lib/typescript/src/LiquidGlassText/LiquidGlassTextNativeComponent.d.ts.map +1 -1
  81. package/lib/typescript/src/LiquidGlassText/index.d.ts +1 -1
  82. package/lib/typescript/src/LiquidGlassText/index.d.ts.map +1 -1
  83. package/lib/typescript/src/LiquidGlassText/types.d.ts +13 -22
  84. package/lib/typescript/src/LiquidGlassText/types.d.ts.map +1 -1
  85. package/lib/typescript/src/Menu/MenuNativeComponent.d.ts +4 -5
  86. package/lib/typescript/src/Menu/MenuNativeComponent.d.ts.map +1 -1
  87. package/lib/typescript/src/Menu/index.d.ts +1 -1
  88. package/lib/typescript/src/Menu/index.d.ts.map +1 -1
  89. package/lib/typescript/src/Menu/options.d.ts +40 -4
  90. package/lib/typescript/src/Menu/options.d.ts.map +1 -1
  91. package/lib/typescript/src/Menu/types.d.ts +16 -4
  92. package/lib/typescript/src/Menu/types.d.ts.map +1 -1
  93. package/lib/typescript/src/NativeTinyui.d.ts +2 -0
  94. package/lib/typescript/src/NativeTinyui.d.ts.map +1 -1
  95. package/lib/typescript/src/Popover/index.d.ts.map +1 -1
  96. package/lib/typescript/src/Popover/types.d.ts +2 -0
  97. package/lib/typescript/src/Popover/types.d.ts.map +1 -1
  98. package/lib/typescript/src/SFSymbol/SFSymbolNativeComponent.d.ts +11 -0
  99. package/lib/typescript/src/SFSymbol/SFSymbolNativeComponent.d.ts.map +1 -0
  100. package/lib/typescript/src/SFSymbol/index.d.ts +4 -0
  101. package/lib/typescript/src/SFSymbol/index.d.ts.map +1 -0
  102. package/lib/typescript/src/SFSymbol/options.d.ts +86 -0
  103. package/lib/typescript/src/SFSymbol/options.d.ts.map +1 -0
  104. package/lib/typescript/src/SFSymbol/types.d.ts +113 -0
  105. package/lib/typescript/src/SFSymbol/types.d.ts.map +1 -0
  106. package/lib/typescript/src/Stepper/StepperNativeComponent.d.ts +21 -0
  107. package/lib/typescript/src/Stepper/StepperNativeComponent.d.ts.map +1 -0
  108. package/lib/typescript/src/Stepper/index.d.ts +4 -0
  109. package/lib/typescript/src/Stepper/index.d.ts.map +1 -0
  110. package/lib/typescript/src/Stepper/types.d.ts +24 -0
  111. package/lib/typescript/src/Stepper/types.d.ts.map +1 -0
  112. package/lib/typescript/src/TipKit/Popover.d.ts +3 -0
  113. package/lib/typescript/src/TipKit/Popover.d.ts.map +1 -0
  114. package/lib/typescript/src/TipKit/TipPopoverNativeComponent.d.ts +38 -0
  115. package/lib/typescript/src/TipKit/TipPopoverNativeComponent.d.ts.map +1 -0
  116. package/lib/typescript/src/TipKit/index.d.ts +10 -0
  117. package/lib/typescript/src/TipKit/index.d.ts.map +1 -0
  118. package/lib/typescript/src/TipKit/types.d.ts +46 -0
  119. package/lib/typescript/src/TipKit/types.d.ts.map +1 -0
  120. package/lib/typescript/src/TipKit/validation.d.ts +4 -0
  121. package/lib/typescript/src/TipKit/validation.d.ts.map +1 -0
  122. package/lib/typescript/src/index.d.ts +10 -2
  123. package/lib/typescript/src/index.d.ts.map +1 -1
  124. package/lib/typescript/src/utils/getNativeTinyui.d.ts +1 -1
  125. package/lib/typescript/src/utils/getNativeTinyui.d.ts.map +1 -1
  126. package/package.json +37 -2
  127. package/{Tinyui.podspec → react-native-tinyui.podspec} +23 -2
  128. package/src/ConcentricView/ConcentricViewNativeComponent.ts +14 -0
  129. package/src/ConcentricView/index.tsx +34 -0
  130. package/src/ConcentricView/types.ts +6 -0
  131. package/src/LiquidGlassText/LiquidGlassTextNativeComponent.ts +2 -12
  132. package/src/LiquidGlassText/index.tsx +73 -39
  133. package/src/LiquidGlassText/types.ts +24 -50
  134. package/src/Menu/MenuNativeComponent.ts +7 -5
  135. package/src/Menu/index.tsx +6 -6
  136. package/src/Menu/options.ts +4 -18
  137. package/src/Menu/types.ts +18 -4
  138. package/src/NativeTinyui.ts +2 -0
  139. package/src/Popover/index.tsx +8 -3
  140. package/src/Popover/types.ts +2 -0
  141. package/src/SFSymbol/SFSymbolNativeComponent.ts +20 -0
  142. package/src/SFSymbol/index.tsx +89 -0
  143. package/src/SFSymbol/options.ts +116 -0
  144. package/src/SFSymbol/types.ts +158 -0
  145. package/src/Stepper/StepperNativeComponent.ts +29 -0
  146. package/src/Stepper/index.tsx +91 -0
  147. package/src/Stepper/types.ts +24 -0
  148. package/src/TipKit/Popover.tsx +87 -0
  149. package/src/TipKit/TipPopoverNativeComponent.ts +37 -0
  150. package/src/TipKit/index.ts +47 -0
  151. package/src/TipKit/types.ts +57 -0
  152. package/src/TipKit/validation.ts +39 -0
  153. package/src/index.tsx +32 -4
  154. package/src/utils/getNativeTinyui.ts +8 -1
  155. package/ios/Core/TinyuiHostingHelpers.swift +0 -74
  156. package/ios/Menu/TinyuiMenuViewSwift.swift +0 -408
  157. package/ios/Popover/TinyuiPopoverViewSwift.swift +0 -88
@@ -1,16 +1,52 @@
1
1
  "use strict";
2
2
 
3
- import { forwardRef, useState } from 'react';
3
+ import { forwardRef } from 'react';
4
+ import { StyleSheet } from 'react-native';
4
5
  import { assertComponentEnabled } from "../utils/index.js";
5
6
  import NativeLiquidGlassTextView from './LiquidGlassTextNativeComponent';
6
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
+ function normalizeFontWeight(fontWeight) {
9
+ if (fontWeight == null) {
10
+ return undefined;
11
+ }
12
+ const value = String(fontWeight);
13
+ const aliases = {
14
+ 'normal': 'regular',
15
+ 'ultralight': 'ultraLight',
16
+ 'condensed': 'regular',
17
+ 'condensedBold': 'bold',
18
+ '100': 'ultraLight',
19
+ '200': 'thin',
20
+ '300': 'light',
21
+ '400': 'regular',
22
+ '500': 'medium',
23
+ '600': 'semibold',
24
+ '700': 'bold',
25
+ '800': 'heavy',
26
+ '900': 'black'
27
+ };
28
+ return aliases[value] ?? value;
29
+ }
30
+ function resolveAlignment(textAlign) {
31
+ switch (textAlign) {
32
+ case 'center':
33
+ return 'center';
34
+ case 'right':
35
+ return 'trailing';
36
+ case 'left':
37
+ return 'leading';
38
+ default:
39
+ return undefined;
40
+ }
41
+ }
7
42
  export const LiquidGlassText = /*#__PURE__*/forwardRef(function LiquidGlassTextRoot({
8
43
  text,
9
- glass = 'clear',
10
- font = 'body',
11
- fontWeight,
44
+ effect = 'clear',
45
+ tint,
46
+ interactive = false,
12
47
  fontDesign,
13
- multilineTextAlignment = 'leading',
48
+ textStyle,
49
+ multilineTextAlignment,
14
50
  style,
15
51
  accessibilityLabel,
16
52
  accessible = true,
@@ -18,21 +54,25 @@ export const LiquidGlassText = /*#__PURE__*/forwardRef(function LiquidGlassTextR
18
54
  ...viewProps
19
55
  }, ref) {
20
56
  assertComponentEnabled('LiquidGlassText');
21
- const [measurement, setMeasurement] = useState({
22
- width: 0,
23
- height: 0
24
- });
25
- const configuration = JSON.stringify({
57
+ const flattenedTextStyle = StyleSheet.flatten(textStyle);
58
+ const normalizedTextStyle = flattenedTextStyle ? {
59
+ fontSize: flattenedTextStyle.fontSize,
60
+ fontFamily: flattenedTextStyle.fontFamily,
61
+ fontWeight: normalizeFontWeight(flattenedTextStyle.fontWeight),
62
+ fontStyle: flattenedTextStyle.fontStyle,
63
+ letterSpacing: flattenedTextStyle.letterSpacing
64
+ } : undefined;
65
+ const resolvedAlignment = multilineTextAlignment ?? resolveAlignment(flattenedTextStyle?.textAlign) ?? 'leading';
66
+ const configuration = {
26
67
  text,
27
- glass: typeof glass === 'string' ? glass : glass.effect ?? 'clear',
28
- interactive: typeof glass === 'object' && (glass.interactive ?? false),
29
- font: typeof font === 'string' ? {
30
- style: font
31
- } : font,
32
- fontWeight,
68
+ effect,
69
+ interactive,
33
70
  fontDesign,
34
- multilineTextAlignment
35
- });
71
+ ...(normalizedTextStyle ? {
72
+ textStyle: normalizedTextStyle
73
+ } : {}),
74
+ multilineTextAlignment: resolvedAlignment
75
+ };
36
76
  return /*#__PURE__*/_jsx(NativeLiquidGlassTextView, {
37
77
  ...viewProps,
38
78
  ref: ref,
@@ -40,23 +80,8 @@ export const LiquidGlassText = /*#__PURE__*/forwardRef(function LiquidGlassTextR
40
80
  accessibilityRole: accessibilityRole,
41
81
  accessibilityLabel: accessibilityLabel ?? text,
42
82
  configuration: configuration,
43
- tintColor: typeof glass === 'object' ? glass.tint : undefined,
44
- style: [{
45
- width: measurement.width,
46
- height: measurement.height
47
- }, style],
48
- onContentSizeChange: ({
49
- nativeEvent
50
- }) => {
51
- // Ignore measurements queued before a newer text/font update.
52
- if (nativeEvent.configuration !== configuration) {
53
- return;
54
- }
55
- setMeasurement(previous => previous.width === nativeEvent.width && previous.height === nativeEvent.height ? previous : {
56
- width: nativeEvent.width,
57
- height: nativeEvent.height
58
- });
59
- }
83
+ tintColor: tint ?? flattenedTextStyle?.color,
84
+ style: style
60
85
  });
61
86
  });
62
87
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","useState","assertComponentEnabled","NativeLiquidGlassTextView","jsx","_jsx","LiquidGlassText","LiquidGlassTextRoot","text","glass","font","fontWeight","fontDesign","multilineTextAlignment","style","accessibilityLabel","accessible","accessibilityRole","viewProps","ref","measurement","setMeasurement","width","height","configuration","JSON","stringify","effect","interactive","tintColor","tint","undefined","onContentSizeChange","nativeEvent","previous"],"sourceRoot":"../../../src","sources":["LiquidGlassText/index.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,QAAQ,QAA2B,OAAO;AAG/D,SAASC,sBAAsB,QAAQ,mBAAU;AAEjD,OAAOC,yBAAyB,MAAM,kCAAkC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEzE,OAAO,MAAMC,eAAe,gBAAGN,UAAU,CAGvC,SAASO,mBAAmBA,CAC5B;EACEC,IAAI;EACJC,KAAK,GAAG,OAAO;EACfC,IAAI,GAAG,MAAM;EACbC,UAAU;EACVC,UAAU;EACVC,sBAAsB,GAAG,SAAS;EAClCC,KAAK;EACLC,kBAAkB;EAClBC,UAAU,GAAG,IAAI;EACjBC,iBAAiB,GAAG,MAAM;EAC1B,GAAGC;AACL,CAAC,EACDC,GAAG,EACH;EACAjB,sBAAsB,CAAC,iBAAiB,CAAC;EAEzC,MAAM,CAACkB,WAAW,EAAEC,cAAc,CAAC,GAAGpB,QAAQ,CAAC;IAC7CqB,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE;EACV,CAAC,CAAC;EACF,MAAMC,aAAa,GAAGC,IAAI,CAACC,SAAS,CAAC;IACnClB,IAAI;IACJC,KAAK,EAAE,OAAOA,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAIA,KAAK,CAACkB,MAAM,IAAI,OAAQ;IACpEC,WAAW,EAAE,OAAOnB,KAAK,KAAK,QAAQ,KAAKA,KAAK,CAACmB,WAAW,IAAI,KAAK,CAAC;IACtElB,IAAI,EAAE,OAAOA,IAAI,KAAK,QAAQ,GAAG;MAAEI,KAAK,EAAEJ;IAAK,CAAC,GAAGA,IAAI;IACvDC,UAAU;IACVC,UAAU;IACVC;EACF,CAAC,CAAC;EAEF,oBACER,IAAA,CAACF,yBAAyB;IAAA,GACpBe,SAAS;IACbC,GAAG,EAAEA,GAAI;IACTH,UAAU,EAAEA,UAAW;IACvBC,iBAAiB,EAAEA,iBAAkB;IACrCF,kBAAkB,EAAEA,kBAAkB,IAAIP,IAAK;IAC/CgB,aAAa,EAAEA,aAAc;IAC7BK,SAAS,EAAE,OAAOpB,KAAK,KAAK,QAAQ,GAAGA,KAAK,CAACqB,IAAI,GAAGC,SAAU;IAC9DjB,KAAK,EAAE,CAAC;MAAEQ,KAAK,EAAEF,WAAW,CAACE,KAAK;MAAEC,MAAM,EAAEH,WAAW,CAACG;IAAO,CAAC,EAAET,KAAK,CAAE;IACzEkB,mBAAmB,EAAEA,CAAC;MAAEC;IAAY,CAAC,KAAK;MACxC;MACA,IAAIA,WAAW,CAACT,aAAa,KAAKA,aAAa,EAAE;QAC/C;MACF;MACAH,cAAc,CAAEa,QAAQ,IACtBA,QAAQ,CAACZ,KAAK,KAAKW,WAAW,CAACX,KAAK,IACpCY,QAAQ,CAACX,MAAM,KAAKU,WAAW,CAACV,MAAM,GAClCW,QAAQ,GACR;QACEZ,KAAK,EAAEW,WAAW,CAACX,KAAK;QACxBC,MAAM,EAAEU,WAAW,CAACV;MACtB,CACN,CAAC;IACH;EAAE,CACH,CAAC;AAEN,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","StyleSheet","assertComponentEnabled","NativeLiquidGlassTextView","jsx","_jsx","normalizeFontWeight","fontWeight","undefined","value","String","aliases","resolveAlignment","textAlign","LiquidGlassText","LiquidGlassTextRoot","text","effect","tint","interactive","fontDesign","textStyle","multilineTextAlignment","style","accessibilityLabel","accessible","accessibilityRole","viewProps","ref","flattenedTextStyle","flatten","normalizedTextStyle","fontSize","fontFamily","fontStyle","letterSpacing","resolvedAlignment","configuration","tintColor","color"],"sourceRoot":"../../../src","sources":["LiquidGlassText/index.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAA2B,OAAO;AACrD,SAASC,UAAU,QAAmC,cAAc;AAEpE,SAASC,sBAAsB,QAAQ,mBAAU;AAEjD,OAAOC,yBAAyB,MAAM,kCAAkC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEzE,SAASC,mBAAmBA,CAC1BC,UAAmC,EACf;EACpB,IAAIA,UAAU,IAAI,IAAI,EAAE;IACtB,OAAOC,SAAS;EAClB;EAEA,MAAMC,KAAK,GAAGC,MAAM,CAACH,UAAU,CAAC;EAChC,MAAMI,OAAyC,GAAG;IAChD,QAAQ,EAAE,SAAS;IACnB,YAAY,EAAE,YAAY;IAC1B,WAAW,EAAE,SAAS;IACtB,eAAe,EAAE,MAAM;IACvB,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,OAAO;IACd,KAAK,EAAE;EACT,CAAC;EACD,OAAOA,OAAO,CAACF,KAAK,CAAC,IAAIA,KAAK;AAChC;AAEA,SAASG,gBAAgBA,CACvBC,SAAiC,EACc;EAC/C,QAAQA,SAAS;IACf,KAAK,QAAQ;MACX,OAAO,QAAQ;IACjB,KAAK,OAAO;MACV,OAAO,UAAU;IACnB,KAAK,MAAM;MACT,OAAO,SAAS;IAClB;MACE,OAAOL,SAAS;EACpB;AACF;AAEA,OAAO,MAAMM,eAAe,gBAAGd,UAAU,CAGvC,SAASe,mBAAmBA,CAC5B;EACEC,IAAI;EACJC,MAAM,GAAG,OAAO;EAChBC,IAAI;EACJC,WAAW,GAAG,KAAK;EACnBC,UAAU;EACVC,SAAS;EACTC,sBAAsB;EACtBC,KAAK;EACLC,kBAAkB;EAClBC,UAAU,GAAG,IAAI;EACjBC,iBAAiB,GAAG,MAAM;EAC1B,GAAGC;AACL,CAAC,EACDC,GAAG,EACH;EACA1B,sBAAsB,CAAC,iBAAiB,CAAC;EAEzC,MAAM2B,kBAAkB,GAAG5B,UAAU,CAAC6B,OAAO,CAACT,SAAS,CAAC;EACxD,MAAMU,mBAAmB,GAAGF,kBAAkB,GAC1C;IACEG,QAAQ,EAAEH,kBAAkB,CAACG,QAAQ;IACrCC,UAAU,EAAEJ,kBAAkB,CAACI,UAAU;IACzC1B,UAAU,EAAED,mBAAmB,CAACuB,kBAAkB,CAACtB,UAAU,CAAC;IAC9D2B,SAAS,EAAEL,kBAAkB,CAACK,SAAS;IACvCC,aAAa,EAAEN,kBAAkB,CAACM;EACpC,CAAC,GACD3B,SAAS;EACb,MAAM4B,iBAAiB,GACrBd,sBAAsB,IACtBV,gBAAgB,CAACiB,kBAAkB,EAAEhB,SAAS,CAAC,IAC/C,SAAS;EAEX,MAAMwB,aAAa,GAAG;IACpBrB,IAAI;IACJC,MAAM;IACNE,WAAW;IACXC,UAAU;IACV,IAAIW,mBAAmB,GAAG;MAAEV,SAAS,EAAEU;IAAoB,CAAC,GAAG,CAAC,CAAC,CAAC;IAClET,sBAAsB,EAAEc;EAC1B,CAAC;EACD,oBACE/B,IAAA,CAACF,yBAAyB;IAAA,GACpBwB,SAAS;IACbC,GAAG,EAAEA,GAAI;IACTH,UAAU,EAAEA,UAAW;IACvBC,iBAAiB,EAAEA,iBAAkB;IACrCF,kBAAkB,EAAEA,kBAAkB,IAAIR,IAAK;IAC/CqB,aAAa,EAAEA,aAAc;IAC7BC,SAAS,EAAEpB,IAAI,IAAIW,kBAAkB,EAAEU,KAAM;IAC7ChB,KAAK,EAAEA;EAAM,CACd,CAAC;AAEN,CAAC,CAAC","ignoreList":[]}
@@ -1,13 +1,15 @@
1
- import { codegenNativeComponent, type ViewProps } from 'react-native';
1
+ import {
2
+ codegenNativeComponent,
3
+ type CodegenTypes,
4
+ type ViewProps,
5
+ } from 'react-native';
2
6
  import type { DirectEventHandler } from 'react-native/Libraries/Types/CodegenTypes';
3
7
 
4
8
  export interface NativeMenuProps extends ViewProps {
5
- menuConfig: string;
9
+ menuConfig: CodegenTypes.UnsafeMixed;
6
10
  title?: string;
7
11
  disabled?: boolean;
8
- hasPrimaryAction?: boolean;
9
- onItemPress?: DirectEventHandler<Readonly<{ id: string }>>;
10
- onPrimaryAction?: DirectEventHandler<null>;
12
+ onActionPress?: DirectEventHandler<Readonly<{ id: string; title: string }>>;
11
13
  }
12
14
 
13
15
  export default codegenNativeComponent<NativeMenuProps>('TinyuiMenuView', {
@@ -10,17 +10,14 @@ const MenuRoot = /*#__PURE__*/forwardRef(function Menu({
10
10
  accessibilityLabel,
11
11
  children,
12
12
  disabled,
13
- onPrimaryAction,
13
+ onActionPress,
14
14
  options,
15
15
  title,
16
16
  testID,
17
17
  ...viewProps
18
18
  }, ref) {
19
19
  assertComponentEnabled('Menu');
20
- const {
21
- config,
22
- callbacks
23
- } = serializeMenuOptions(options);
20
+ const menuConfig = serializeMenuOptions(options);
24
21
  return /*#__PURE__*/_jsx(View, {
25
22
  ...viewProps,
26
23
  ref: ref,
@@ -28,10 +25,8 @@ const MenuRoot = /*#__PURE__*/forwardRef(function Menu({
28
25
  children: /*#__PURE__*/_jsx(NativeMenuView, {
29
26
  accessibilityLabel: accessibilityLabel,
30
27
  disabled: disabled,
31
- hasPrimaryAction: onPrimaryAction != null,
32
- menuConfig: config,
33
- onItemPress: event => callbacks.get(event.nativeEvent.id)?.(),
34
- onPrimaryAction: onPrimaryAction,
28
+ menuConfig: menuConfig,
29
+ onActionPress: onActionPress,
35
30
  testID: testID,
36
31
  title: title,
37
32
  children: /*#__PURE__*/_jsx(View, {
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","View","assertComponentEnabled","NativeMenuView","serializeMenuOptions","jsx","_jsx","MenuRoot","Menu","accessibilityLabel","children","disabled","onPrimaryAction","options","title","testID","viewProps","ref","config","callbacks","collapsable","hasPrimaryAction","menuConfig","onItemPress","event","get","nativeEvent","id"],"sourceRoot":"../../../src","sources":["Menu/index.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAA2B,OAAO;AACrD,SAASC,IAAI,QAAQ,cAAc;AAEnC,SAASC,sBAAsB,QAAQ,mBAAU;AAEjD,OAAOC,cAAc,MAAM,uBAAuB;AAClD,SAASC,oBAAoB,QAAQ,cAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEjD,MAAMC,QAAQ,gBAAGP,UAAU,CAAuC,SAASQ,IAAIA,CAC7E;EACEC,kBAAkB;EAClBC,QAAQ;EACRC,QAAQ;EACRC,eAAe;EACfC,OAAO;EACPC,KAAK;EACLC,MAAM;EACN,GAAGC;AACL,CAAC,EACDC,GAAG,EACH;EACAf,sBAAsB,CAAC,MAAM,CAAC;EAE9B,MAAM;IAAEgB,MAAM;IAAEC;EAAU,CAAC,GAAGf,oBAAoB,CAACS,OAAO,CAAC;EAE3D,oBACEP,IAAA,CAACL,IAAI;IAAA,GAAKe,SAAS;IAAEC,GAAG,EAAEA,GAAI;IAACG,WAAW,EAAE,KAAM;IAAAV,QAAA,eAChDJ,IAAA,CAACH,cAAc;MACbM,kBAAkB,EAAEA,kBAAmB;MACvCE,QAAQ,EAAEA,QAAS;MACnBU,gBAAgB,EAAET,eAAe,IAAI,IAAK;MAC1CU,UAAU,EAAEJ,MAAO;MACnBK,WAAW,EAAGC,KAAK,IAAKL,SAAS,CAACM,GAAG,CAACD,KAAK,CAACE,WAAW,CAACC,EAAE,CAAC,GAAG,CAAE;MAChEf,eAAe,EAAEA,eAAgB;MACjCG,MAAM,EAAEA,MAAO;MACfD,KAAK,EAAEA,KAAM;MAAAJ,QAAA,eAEbJ,IAAA,CAACL,IAAI;QAACmB,WAAW,EAAE,KAAM;QAAAV,QAAA,EAAEA;MAAQ,CAAO;IAAC,CAC7B;EAAC,CACb,CAAC;AAEX,CAAC,CAAC;AAEF,OAAO,MAAMF,IAAI,GAAGD,QAAyB","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","View","assertComponentEnabled","NativeMenuView","serializeMenuOptions","jsx","_jsx","MenuRoot","Menu","accessibilityLabel","children","disabled","onActionPress","options","title","testID","viewProps","ref","menuConfig","collapsable"],"sourceRoot":"../../../src","sources":["Menu/index.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAA2B,OAAO;AACrD,SAASC,IAAI,QAAQ,cAAc;AAEnC,SAASC,sBAAsB,QAAQ,mBAAU;AAEjD,OAAOC,cAAc,MAAM,uBAAuB;AAClD,SAASC,oBAAoB,QAAQ,cAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEjD,MAAMC,QAAQ,gBAAGP,UAAU,CAAuC,SAASQ,IAAIA,CAC7E;EACEC,kBAAkB;EAClBC,QAAQ;EACRC,QAAQ;EACRC,aAAa;EACbC,OAAO;EACPC,KAAK;EACLC,MAAM;EACN,GAAGC;AACL,CAAC,EACDC,GAAG,EACH;EACAf,sBAAsB,CAAC,MAAM,CAAC;EAE9B,MAAMgB,UAAU,GAAGd,oBAAoB,CAACS,OAAO,CAAC;EAEhD,oBACEP,IAAA,CAACL,IAAI;IAAA,GAAKe,SAAS;IAAEC,GAAG,EAAEA,GAAI;IAACE,WAAW,EAAE,KAAM;IAAAT,QAAA,eAChDJ,IAAA,CAACH,cAAc;MACbM,kBAAkB,EAAEA,kBAAmB;MACvCE,QAAQ,EAAEA,QAAS;MACnBO,UAAU,EAAEA,UAAW;MACvBN,aAAa,EAAEA,aAAc;MAC7BG,MAAM,EAAEA,MAAO;MACfD,KAAK,EAAEA,KAAM;MAAAJ,QAAA,eAEbJ,IAAA,CAACL,IAAI;QAACkB,WAAW,EAAE,KAAM;QAAAT,QAAA,EAAEA;MAAQ,CAAO;IAAC,CAC7B;EAAC,CACb,CAAC;AAEX,CAAC,CAAC;AAEF,OAAO,MAAMF,IAAI,GAAGD,QAAyB","ignoreList":[]}
@@ -5,16 +5,11 @@ function serializeColor(color) {
5
5
  return color === undefined ? undefined : processColor(color);
6
6
  }
7
7
  export function serializeMenuOptions(options) {
8
- const callbacks = new Map();
9
- const items = serializeOptions(options, callbacks, new Set(), 'root');
10
8
  return {
11
- callbacks,
12
- config: JSON.stringify({
13
- items
14
- })
9
+ items: serializeOptions(options, new Set(), 'root')
15
10
  };
16
11
  }
17
- function serializeOptions(options, callbacks, usedIds, path) {
12
+ function serializeOptions(options, usedIds, path) {
18
13
  return options.map((option, index) => {
19
14
  const optionPath = `${path}.${index}`;
20
15
  if (option.type === 'divider') {
@@ -35,14 +30,14 @@ function serializeOptions(options, callbacks, usedIds, path) {
35
30
  disabled: option.disabled ?? false,
36
31
  hidden: option.hidden ?? false,
37
32
  displayInline: option.displayInline ?? false,
38
- children: serializeOptions(option.options, callbacks, usedIds, `${optionPath}.submenu`)
33
+ children: serializeOptions(option.options, usedIds, `${optionPath}.submenu`)
39
34
  };
40
35
  }
41
36
  if (option.type === 'section') {
42
37
  return {
43
38
  type: 'section',
44
39
  title: option.title,
45
- children: serializeOptions(option.options, callbacks, usedIds, `${optionPath}.section`)
40
+ children: serializeOptions(option.options, usedIds, `${optionPath}.section`)
46
41
  };
47
42
  }
48
43
  const id = option.id ?? `item.${optionPath}`;
@@ -50,9 +45,6 @@ function serializeOptions(options, callbacks, usedIds, path) {
50
45
  throw new Error(`Menu option id "${id}" must be unique within a menu.`);
51
46
  }
52
47
  usedIds.add(id);
53
- if (option.onSelect) {
54
- callbacks.set(id, option.onSelect);
55
- }
56
48
  return {
57
49
  type: 'action',
58
50
  id,
@@ -1 +1 @@
1
- {"version":3,"names":["processColor","serializeColor","color","undefined","serializeMenuOptions","options","callbacks","Map","items","serializeOptions","Set","config","JSON","stringify","usedIds","path","map","option","index","optionPath","type","title","subtitle","systemImage","icon","iconColor","titleColor","destructive","disabled","hidden","displayInline","children","id","has","Error","add","onSelect","set","state","keepOpen"],"sourceRoot":"../../../src","sources":["Menu/options.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["processColor","serializeColor","color","undefined","serializeMenuOptions","options","items","serializeOptions","Set","usedIds","path","map","option","index","optionPath","type","title","subtitle","systemImage","icon","iconColor","titleColor","destructive","disabled","hidden","displayInline","children","id","has","Error","add","state","keepOpen"],"sourceRoot":"../../../src","sources":["Menu/options.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../src","sources":["NativeTinyui.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAUlD,eAAeA,mBAAmB,CAACC,GAAG,CAAO,QAAQ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../src","sources":["NativeTinyui.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAYlD,eAAeA,mBAAmB,CAACC,GAAG,CAAO,QAAQ,CAAC","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { forwardRef, useCallback, useState } from 'react';
4
- import { PlatformColor, Pressable, StyleSheet, View } from 'react-native';
4
+ import { Pressable, StyleSheet, View } from 'react-native';
5
5
  import { assertComponentEnabled } from "../utils/index.js";
6
6
  import { PopoverClose } from "./PopoverClose.js";
7
7
  import NativePopoverView from './PopoverNativeComponent';
@@ -47,6 +47,7 @@ const PopoverRoot = /*#__PURE__*/forwardRef(function Popover({
47
47
  onPress: () => setOpen(true),
48
48
  children: children
49
49
  }), /*#__PURE__*/_jsx(View, {
50
+ collapsable: false,
50
51
  style: styles.content,
51
52
  pointerEvents: "box-none",
52
53
  children: renderedContent
@@ -60,7 +61,8 @@ function renderContent(content, args) {
60
61
  const styles = StyleSheet.create({
61
62
  content: {
62
63
  position: 'absolute',
63
- backgroundColor: PlatformColor('systemBackground'),
64
+ top: 0,
65
+ left: 0,
64
66
  overflow: 'hidden'
65
67
  }
66
68
  });
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","useCallback","useState","PlatformColor","Pressable","StyleSheet","View","assertComponentEnabled","PopoverClose","NativePopoverView","jsx","_jsx","jsxs","_jsxs","PopoverRoot","Popover","children","content","open","defaultOpen","onOpenChange","attachmentAnchor","arrowEdge","viewProps","ref","uncontrolledOpen","setUncontrolledOpen","isControlled","undefined","isOpen","setOpen","nextOpen","close","renderedContent","renderContent","collapsable","isPresented","onIsPresentedChange","event","nativeEvent","onPress","style","styles","pointerEvents","args","create","position","backgroundColor","overflow","Object","assign","Close"],"sourceRoot":"../../../src","sources":["Popover/index.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,WAAW,EAAEC,QAAQ,QAA2B,OAAO;AAE5E,SAASC,aAAa,EAAEC,SAAS,EAAEC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAEzE,SAASC,sBAAsB,QAAQ,mBAAU;AACjD,SAASC,YAAY,QAAQ,mBAAgB;AAO7C,OAAOC,iBAAiB,MAAM,0BAA0B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEzD,MAAMC,WAAW,gBAAGd,UAAU,CAC5B,SAASe,OAAOA,CACd;EACEC,QAAQ;EACRC,OAAO;EACPC,IAAI;EACJC,WAAW,GAAG,KAAK;EACnBC,YAAY;EACZC,gBAAgB,GAAG,QAAQ;EAC3BC,SAAS,GAAG,MAAM;EAClB,GAAGC;AACL,CAAC,EACDC,GAAG,EACH;EACAjB,sBAAsB,CAAC,SAAS,CAAC;EAEjC,MAAM,CAACkB,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGxB,QAAQ,CAACiB,WAAW,CAAC;EACrE,MAAMQ,YAAY,GAAGT,IAAI,KAAKU,SAAS;EACvC,MAAMC,MAAM,GAAGF,YAAY,GAAGT,IAAI,GAAGO,gBAAgB;EAErD,MAAMK,OAAO,GAAG7B,WAAW,CACxB8B,QAAiB,IAAK;IACrB,IAAI,CAACJ,YAAY,EAAE;MACjBD,mBAAmB,CAACK,QAAQ,CAAC;IAC/B;IACAX,YAAY,GAAGW,QAAQ,CAAC;EAC1B,CAAC,EACD,CAACJ,YAAY,EAAEP,YAAY,CAC7B,CAAC;EAED,MAAMY,KAAK,GAAG/B,WAAW,CAAC,MAAM6B,OAAO,CAAC,KAAK,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAE1D,MAAMG,eAAe,GAAGC,aAAa,CAACjB,OAAO,EAAE;IAAEe;EAAM,CAAC,CAAC;EAEzD,oBACErB,IAAA,CAACL,IAAI;IAAA,GAAKiB,SAAS;IAAEC,GAAG,EAAEA,GAAI;IAACW,WAAW,EAAE,KAAM;IAAAnB,QAAA,eAChDH,KAAA,CAACJ,iBAAiB;MAChBY,gBAAgB,EAAEA,gBAAiB;MACnCC,SAAS,EAAEA,SAAU;MACrBc,WAAW,EAAEP,MAAO;MACpBQ,mBAAmB,EAAGC,KAAK,IAAK;QAC9B,IAAI,CAACA,KAAK,CAACC,WAAW,CAACH,WAAW,IAAIP,MAAM,EAAE;UAC5CC,OAAO,CAAC,KAAK,CAAC;QAChB;MACF,CAAE;MAAAd,QAAA,gBAEFL,IAAA,CAACP,SAAS;QAACoC,OAAO,EAAEA,CAAA,KAAMV,OAAO,CAAC,IAAI,CAAE;QAAAd,QAAA,EAAEA;MAAQ,CAAY,CAAC,eAC/DL,IAAA,CAACL,IAAI;QAACmC,KAAK,EAAEC,MAAM,CAACzB,OAAQ;QAAC0B,aAAa,EAAC,UAAU;QAAA3B,QAAA,EAClDiB;MAAe,CACZ,CAAC;IAAA,CACU;EAAC,CAChB,CAAC;AAEX,CACF,CAAC;AAED,SAASC,aAAaA,CACpBjB,OAA2B,EAC3B2B,IAA8B,EACnB;EACX,OAAO,OAAO3B,OAAO,KAAK,UAAU,GAAGA,OAAO,CAAC2B,IAAI,CAAC,GAAG3B,OAAO;AAChE;AAEA,MAAMyB,MAAM,GAAGrC,UAAU,CAACwC,MAAM,CAAC;EAC/B5B,OAAO,EAAE;IACP6B,QAAQ,EAAE,UAAU;IACpBC,eAAe,EAAE5C,aAAa,CAAC,kBAAkB,CAAC;IAClD6C,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC;AAEF,OAAO,MAAMjC,OAAO,GAAGkC,MAAM,CAACC,MAAM,CAACpC,WAAW,EAAE;EAChDqC,KAAK,EAAE3C;AACT,CAAC,CAEA;AAED,SAASA,YAAY","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","useCallback","useState","Pressable","StyleSheet","View","assertComponentEnabled","PopoverClose","NativePopoverView","jsx","_jsx","jsxs","_jsxs","PopoverRoot","Popover","children","content","open","defaultOpen","onOpenChange","attachmentAnchor","arrowEdge","viewProps","ref","uncontrolledOpen","setUncontrolledOpen","isControlled","undefined","isOpen","setOpen","nextOpen","close","renderedContent","renderContent","collapsable","isPresented","onIsPresentedChange","event","nativeEvent","onPress","style","styles","pointerEvents","args","create","position","top","left","overflow","Object","assign","Close"],"sourceRoot":"../../../src","sources":["Popover/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ import {
2
+ codegenNativeComponent,
3
+ type CodegenTypes,
4
+ type ViewProps,
5
+ } from 'react-native';
6
+
7
+ export interface NativeSFSymbolProps extends ViewProps {
8
+ configuration: CodegenTypes.UnsafeMixed;
9
+ effects: CodegenTypes.UnsafeMixed;
10
+ contentTransition: CodegenTypes.UnsafeMixed;
11
+ resizeMode?: CodegenTypes.WithDefault<string, 'center'>;
12
+ respectReduceMotion?: CodegenTypes.WithDefault<boolean, true>;
13
+ }
14
+
15
+ export default codegenNativeComponent<NativeSFSymbolProps>(
16
+ 'TinyuiSFSymbolView',
17
+ {
18
+ excludedPlatforms: ['android'],
19
+ }
20
+ );
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ import { forwardRef } from 'react';
4
+ import { StyleSheet, useWindowDimensions } from 'react-native';
5
+ import { assertComponentEnabled } from "../utils/index.js";
6
+ import NativeSFSymbolView from './SFSymbolNativeComponent';
7
+ import { serializeSFSymbol } from "./options.js";
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ export const SFSymbol = /*#__PURE__*/forwardRef(function SFSymbolRoot({
10
+ name,
11
+ source,
12
+ size,
13
+ weight,
14
+ scale,
15
+ textStyle,
16
+ fontFamily,
17
+ allowFontScaling,
18
+ maxFontSizeMultiplier,
19
+ renderingMode,
20
+ color,
21
+ paletteColors,
22
+ variableValue,
23
+ variableValueMode,
24
+ colorRenderingMode,
25
+ effect,
26
+ contentTransition,
27
+ respectReduceMotion = true,
28
+ resizeMode = 'center',
29
+ style,
30
+ accessible = false,
31
+ accessibilityRole = 'image',
32
+ ...viewProps
33
+ }, ref) {
34
+ assertComponentEnabled('SFSymbol');
35
+ const {
36
+ fontScale
37
+ } = useWindowDimensions();
38
+ const serialized = serializeSFSymbol({
39
+ name,
40
+ source,
41
+ size,
42
+ weight,
43
+ scale,
44
+ textStyle,
45
+ fontFamily,
46
+ allowFontScaling,
47
+ maxFontSizeMultiplier,
48
+ renderingMode,
49
+ color,
50
+ paletteColors,
51
+ variableValue,
52
+ variableValueMode,
53
+ colorRenderingMode,
54
+ effect,
55
+ contentTransition
56
+ }, fontScale);
57
+ return /*#__PURE__*/_jsx(NativeSFSymbolView, {
58
+ ...viewProps,
59
+ ...serialized,
60
+ ref: ref,
61
+ accessible: accessible,
62
+ accessibilityRole: accessibilityRole,
63
+ respectReduceMotion: respectReduceMotion,
64
+ resizeMode: resizeMode,
65
+ style: [styles.symbol, style]
66
+ });
67
+ });
68
+ const styles = StyleSheet.create({
69
+ symbol: {
70
+ alignSelf: 'flex-start'
71
+ }
72
+ });
73
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["forwardRef","StyleSheet","useWindowDimensions","assertComponentEnabled","NativeSFSymbolView","serializeSFSymbol","jsx","_jsx","SFSymbol","SFSymbolRoot","name","source","size","weight","scale","textStyle","fontFamily","allowFontScaling","maxFontSizeMultiplier","renderingMode","color","paletteColors","variableValue","variableValueMode","colorRenderingMode","effect","contentTransition","respectReduceMotion","resizeMode","style","accessible","accessibilityRole","viewProps","ref","fontScale","serialized","styles","symbol","create","alignSelf"],"sourceRoot":"../../../src","sources":["SFSymbol/index.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAA2B,OAAO;AACrD,SAASC,UAAU,EAAEC,mBAAmB,QAAmB,cAAc;AAEzE,SAASC,sBAAsB,QAAQ,mBAAU;AACjD,OAAOC,kBAAkB,MAAM,2BAA2B;AAC1D,SAASC,iBAAiB,QAAQ,cAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG9C,OAAO,MAAMC,QAAQ,gBAAGR,UAAU,CAChC,SAASS,YAAYA,CACnB;EACEC,IAAI;EACJC,MAAM;EACNC,IAAI;EACJC,MAAM;EACNC,KAAK;EACLC,SAAS;EACTC,UAAU;EACVC,gBAAgB;EAChBC,qBAAqB;EACrBC,aAAa;EACbC,KAAK;EACLC,aAAa;EACbC,aAAa;EACbC,iBAAiB;EACjBC,kBAAkB;EAClBC,MAAM;EACNC,iBAAiB;EACjBC,mBAAmB,GAAG,IAAI;EAC1BC,UAAU,GAAG,QAAQ;EACrBC,KAAK;EACLC,UAAU,GAAG,KAAK;EAClBC,iBAAiB,GAAG,OAAO;EAC3B,GAAGC;AACL,CAAC,EACDC,GAAG,EACH;EACA9B,sBAAsB,CAAC,UAAU,CAAC;EAClC,MAAM;IAAE+B;EAAU,CAAC,GAAGhC,mBAAmB,CAAC,CAAC;EAC3C,MAAMiC,UAAU,GAAG9B,iBAAiB,CAClC;IACEK,IAAI;IACJC,MAAM;IACNC,IAAI;IACJC,MAAM;IACNC,KAAK;IACLC,SAAS;IACTC,UAAU;IACVC,gBAAgB;IAChBC,qBAAqB;IACrBC,aAAa;IACbC,KAAK;IACLC,aAAa;IACbC,aAAa;IACbC,iBAAiB;IACjBC,kBAAkB;IAClBC,MAAM;IACNC;EACF,CAAC,EACDQ,SACF,CAAC;EAED,oBACE3B,IAAA,CAACH,kBAAkB;IAAA,GACb4B,SAAS;IAAA,GACTG,UAAU;IACdF,GAAG,EAAEA,GAAI;IACTH,UAAU,EAAEA,UAAW;IACvBC,iBAAiB,EAAEA,iBAAkB;IACrCJ,mBAAmB,EAAEA,mBAAoB;IACzCC,UAAU,EAAEA,UAAW;IACvBC,KAAK,EAAE,CAACO,MAAM,CAACC,MAAM,EAAER,KAAK;EAAE,CAC/B,CAAC;AAEN,CACF,CAAC;AAED,MAAMO,MAAM,GAAGnC,UAAU,CAACqC,MAAM,CAAC;EAAED,MAAM,EAAE;IAAEE,SAAS,EAAE;EAAa;AAAE,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ import { processColor } from 'react-native';
4
+ function finite(name, value, minimum) {
5
+ if (value !== undefined && (!Number.isFinite(value) || value < minimum)) {
6
+ throw new RangeError(`[TinyUI] SFSymbol ${name} must be finite and >= ${minimum}.`);
7
+ }
8
+ }
9
+ function positive(name, value) {
10
+ finite(name, value, 0);
11
+ if (value === 0) {
12
+ throw new RangeError(`[TinyUI] SFSymbol ${name} must be greater than 0.`);
13
+ }
14
+ }
15
+ export function serializeSFSymbol(props, fontScale) {
16
+ positive('size', props.size);
17
+ finite('variableValue', props.variableValue, 0);
18
+ if (props.variableValue !== undefined && props.variableValue > 1) {
19
+ throw new RangeError('[TinyUI] SFSymbol variableValue must be <= 1.');
20
+ }
21
+ if (props.maxFontSizeMultiplier !== 0) {
22
+ finite('maxFontSizeMultiplier', props.maxFontSizeMultiplier, 1);
23
+ }
24
+ if (props.paletteColors && (props.paletteColors.length < 1 || props.paletteColors.length > 3 || props.paletteColors.some(color => color === undefined))) {
25
+ throw new RangeError('[TinyUI] SFSymbol paletteColors needs 1 to 3 colors.');
26
+ }
27
+ const effects = props.effect ? Array.isArray(props.effect) ? props.effect : [props.effect] : [];
28
+ const types = new Set();
29
+ for (const effect of effects) {
30
+ if (types.has(effect.type)) {
31
+ throw new Error(`[TinyUI] SFSymbol has duplicate ${effect.type} effects.`);
32
+ }
33
+ types.add(effect.type);
34
+ positive('effect.options.speed', effect.options?.speed);
35
+ finite('effect.options.repeatDelay', effect.options?.repeatDelay, 0);
36
+ const repeat = effect.options?.repeat;
37
+ if (typeof repeat === 'number') {
38
+ positive('effect.options.repeat', repeat);
39
+ if (!Number.isSafeInteger(repeat)) {
40
+ throw new RangeError('[TinyUI] SFSymbol repeat must be a safe integer.');
41
+ }
42
+ }
43
+ if (effect.options?.repeatBehavior === 'continuous' && (repeat !== undefined && repeat !== 'forever' || effect.options.repeatDelay !== undefined)) {
44
+ throw new Error('[TinyUI] SFSymbol continuous repetition cannot have a count or delay.');
45
+ }
46
+ if (effect.type === 'wiggle' && effect.angle !== undefined && !Number.isFinite(effect.angle)) {
47
+ throw new RangeError('[TinyUI] SFSymbol wiggle angle must be finite.');
48
+ }
49
+ if (typeof effect.trigger === 'number' && !Number.isFinite(effect.trigger)) {
50
+ throw new RangeError('[TinyUI] SFSymbol effect trigger must be finite.');
51
+ }
52
+ }
53
+ positive('contentTransition.speed', props.contentTransition?.speed);
54
+ return {
55
+ configuration: {
56
+ name: props.name,
57
+ source: props.source ?? 'system',
58
+ size: props.size ?? 17,
59
+ weight: props.weight ?? 'unspecified',
60
+ scale: props.scale ?? 'default',
61
+ textStyle: props.textStyle,
62
+ fontFamily: props.fontFamily,
63
+ fontScale: props.allowFontScaling === false ? 1 : Math.min(fontScale, props.maxFontSizeMultiplier || Infinity),
64
+ renderingMode: props.renderingMode ?? 'automatic',
65
+ color: props.color === undefined ? undefined : processColor(props.color),
66
+ paletteColors: props.paletteColors?.map(color => processColor(color)),
67
+ variableValue: props.variableValue,
68
+ variableValueMode: props.variableValueMode ?? 'automatic',
69
+ colorRenderingMode: props.colorRenderingMode ?? 'automatic'
70
+ },
71
+ effects: effects.map(effect => ({
72
+ ...effect,
73
+ active: effect.active ?? true,
74
+ animated: effect.animated ?? true
75
+ })),
76
+ contentTransition: props.contentTransition ?? {}
77
+ };
78
+ }
79
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["processColor","finite","name","value","minimum","undefined","Number","isFinite","RangeError","positive","serializeSFSymbol","props","fontScale","size","variableValue","maxFontSizeMultiplier","paletteColors","length","some","color","effects","effect","Array","isArray","types","Set","has","type","Error","add","options","speed","repeatDelay","repeat","isSafeInteger","repeatBehavior","angle","trigger","contentTransition","configuration","source","weight","scale","textStyle","fontFamily","allowFontScaling","Math","min","Infinity","renderingMode","map","variableValueMode","colorRenderingMode","active","animated"],"sourceRoot":"../../../src","sources":["SFSymbol/options.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["SFSymbol/types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,29 @@
1
+ import {
2
+ codegenNativeComponent,
3
+ type CodegenTypes,
4
+ type ViewProps,
5
+ } from 'react-native';
6
+
7
+ type StepperChangeEvent = Readonly<{
8
+ value: CodegenTypes.Double;
9
+ eventCount: CodegenTypes.Int32;
10
+ }>;
11
+
12
+ export interface NativeStepperProps extends ViewProps {
13
+ value?: CodegenTypes.WithDefault<CodegenTypes.Double, 0>;
14
+ minimumValue?: CodegenTypes.WithDefault<CodegenTypes.Double, 0>;
15
+ maximumValue?: CodegenTypes.WithDefault<CodegenTypes.Double, 100>;
16
+ stepValue?: CodegenTypes.WithDefault<CodegenTypes.Double, 1>;
17
+ isContinuous?: CodegenTypes.WithDefault<boolean, true>;
18
+ autorepeat?: CodegenTypes.WithDefault<boolean, true>;
19
+ wraps?: CodegenTypes.WithDefault<boolean, false>;
20
+ disabled?: CodegenTypes.WithDefault<boolean, false>;
21
+ controlled?: CodegenTypes.WithDefault<boolean, false>;
22
+ mostRecentEventCount?: CodegenTypes.WithDefault<CodegenTypes.Int32, 0>;
23
+ // Match the bubbling topChange event inherited from React Native's base view.
24
+ onChange?: CodegenTypes.BubblingEventHandler<StepperChangeEvent>;
25
+ }
26
+
27
+ export default codegenNativeComponent<NativeStepperProps>('TinyuiStepperView', {
28
+ excludedPlatforms: ['android'],
29
+ });
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ import { forwardRef, useState } from 'react';
4
+ import { StyleSheet } from 'react-native';
5
+ import { assertComponentEnabled } from "../utils/index.js";
6
+ import NativeStepperView from './StepperNativeComponent';
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ export const Stepper = /*#__PURE__*/forwardRef(function StepperRoot({
9
+ value,
10
+ defaultValue = 0,
11
+ minimumValue = 0,
12
+ maximumValue = 100,
13
+ stepValue = 1,
14
+ isContinuous = true,
15
+ autorepeat = true,
16
+ wraps = false,
17
+ disabled,
18
+ onValueChange,
19
+ style,
20
+ accessibilityState,
21
+ ...viewProps
22
+ }, ref) {
23
+ assertComponentEnabled('Stepper');
24
+ const [initialValue] = useState(defaultValue);
25
+ const [mostRecentEventCount, setMostRecentEventCount] = useState(0);
26
+ const resolvedValue = value ?? initialValue;
27
+ const resolvedDisabled = disabled ?? accessibilityState?.disabled ?? false;
28
+ for (const [name, number] of Object.entries({
29
+ value: resolvedValue,
30
+ minimumValue,
31
+ maximumValue,
32
+ stepValue
33
+ })) {
34
+ if (!Number.isFinite(number)) {
35
+ throw new RangeError(`[TinyUI] Stepper ${name} must be a finite number.`);
36
+ }
37
+ }
38
+ if (maximumValue < minimumValue) {
39
+ throw new RangeError('[TinyUI] Stepper maximumValue must be greater than or equal to minimumValue.');
40
+ }
41
+ if (stepValue <= 0) {
42
+ throw new RangeError('[TinyUI] Stepper stepValue must be greater than 0.');
43
+ }
44
+ return /*#__PURE__*/_jsx(NativeStepperView, {
45
+ ...viewProps,
46
+ ref: ref,
47
+ accessibilityState: {
48
+ ...accessibilityState,
49
+ disabled: resolvedDisabled
50
+ },
51
+ autorepeat: autorepeat,
52
+ isContinuous: isContinuous,
53
+ controlled: value !== undefined,
54
+ disabled: resolvedDisabled,
55
+ maximumValue: maximumValue,
56
+ minimumValue: minimumValue,
57
+ mostRecentEventCount: mostRecentEventCount,
58
+ onChange: event => {
59
+ // Acknowledge every event, even if the parent rejects a controlled
60
+ // change by keeping the same value. Native ignores stale replies.
61
+ setMostRecentEventCount(event.nativeEvent.eventCount);
62
+ onValueChange?.(event.nativeEvent.value);
63
+ },
64
+ stepValue: stepValue,
65
+ style: [styles.stepper, style],
66
+ value: Math.min(maximumValue, Math.max(minimumValue, resolvedValue)),
67
+ wraps: wraps
68
+ });
69
+ });
70
+ const styles = StyleSheet.create({
71
+ stepper: {
72
+ alignSelf: 'flex-start'
73
+ }
74
+ });
75
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["forwardRef","useState","StyleSheet","assertComponentEnabled","NativeStepperView","jsx","_jsx","Stepper","StepperRoot","value","defaultValue","minimumValue","maximumValue","stepValue","isContinuous","autorepeat","wraps","disabled","onValueChange","style","accessibilityState","viewProps","ref","initialValue","mostRecentEventCount","setMostRecentEventCount","resolvedValue","resolvedDisabled","name","number","Object","entries","Number","isFinite","RangeError","controlled","undefined","onChange","event","nativeEvent","eventCount","styles","stepper","Math","min","max","create","alignSelf"],"sourceRoot":"../../../src","sources":["Stepper/index.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,QAAQ,QAA2B,OAAO;AAC/D,SAASC,UAAU,QAAmB,cAAc;AAEpD,SAASC,sBAAsB,QAAQ,mBAAU;AACjD,OAAOC,iBAAiB,MAAM,0BAA0B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGzD,OAAO,MAAMC,OAAO,gBAAGP,UAAU,CAC/B,SAASQ,WAAWA,CAClB;EACEC,KAAK;EACLC,YAAY,GAAG,CAAC;EAChBC,YAAY,GAAG,CAAC;EAChBC,YAAY,GAAG,GAAG;EAClBC,SAAS,GAAG,CAAC;EACbC,YAAY,GAAG,IAAI;EACnBC,UAAU,GAAG,IAAI;EACjBC,KAAK,GAAG,KAAK;EACbC,QAAQ;EACRC,aAAa;EACbC,KAAK;EACLC,kBAAkB;EAClB,GAAGC;AACL,CAAC,EACDC,GAAG,EACH;EACAnB,sBAAsB,CAAC,SAAS,CAAC;EAEjC,MAAM,CAACoB,YAAY,CAAC,GAAGtB,QAAQ,CAACS,YAAY,CAAC;EAC7C,MAAM,CAACc,oBAAoB,EAAEC,uBAAuB,CAAC,GAAGxB,QAAQ,CAAC,CAAC,CAAC;EACnE,MAAMyB,aAAa,GAAGjB,KAAK,IAAIc,YAAY;EAC3C,MAAMI,gBAAgB,GAAGV,QAAQ,IAAIG,kBAAkB,EAAEH,QAAQ,IAAI,KAAK;EAE1E,KAAK,MAAM,CAACW,IAAI,EAAEC,MAAM,CAAC,IAAIC,MAAM,CAACC,OAAO,CAAC;IAC1CtB,KAAK,EAAEiB,aAAa;IACpBf,YAAY;IACZC,YAAY;IACZC;EACF,CAAC,CAAC,EAAE;IACF,IAAI,CAACmB,MAAM,CAACC,QAAQ,CAACJ,MAAM,CAAC,EAAE;MAC5B,MAAM,IAAIK,UAAU,CAClB,oBAAoBN,IAAI,2BAC1B,CAAC;IACH;EACF;EACA,IAAIhB,YAAY,GAAGD,YAAY,EAAE;IAC/B,MAAM,IAAIuB,UAAU,CAClB,8EACF,CAAC;EACH;EACA,IAAIrB,SAAS,IAAI,CAAC,EAAE;IAClB,MAAM,IAAIqB,UAAU,CAClB,oDACF,CAAC;EACH;EAEA,oBACE5B,IAAA,CAACF,iBAAiB;IAAA,GACZiB,SAAS;IACbC,GAAG,EAAEA,GAAI;IACTF,kBAAkB,EAAE;MAClB,GAAGA,kBAAkB;MACrBH,QAAQ,EAAEU;IACZ,CAAE;IACFZ,UAAU,EAAEA,UAAW;IACvBD,YAAY,EAAEA,YAAa;IAC3BqB,UAAU,EAAE1B,KAAK,KAAK2B,SAAU;IAChCnB,QAAQ,EAAEU,gBAAiB;IAC3Bf,YAAY,EAAEA,YAAa;IAC3BD,YAAY,EAAEA,YAAa;IAC3Ba,oBAAoB,EAAEA,oBAAqB;IAC3Ca,QAAQ,EAAGC,KAAK,IAAK;MACnB;MACA;MACAb,uBAAuB,CAACa,KAAK,CAACC,WAAW,CAACC,UAAU,CAAC;MACrDtB,aAAa,GAAGoB,KAAK,CAACC,WAAW,CAAC9B,KAAK,CAAC;IAC1C,CAAE;IACFI,SAAS,EAAEA,SAAU;IACrBM,KAAK,EAAE,CAACsB,MAAM,CAACC,OAAO,EAAEvB,KAAK,CAAE;IAC/BV,KAAK,EAAEkC,IAAI,CAACC,GAAG,CAAChC,YAAY,EAAE+B,IAAI,CAACE,GAAG,CAAClC,YAAY,EAAEe,aAAa,CAAC,CAAE;IACrEV,KAAK,EAAEA;EAAM,CACd,CAAC;AAEN,CACF,CAAC;AAED,MAAMyB,MAAM,GAAGvC,UAAU,CAAC4C,MAAM,CAAC;EAC/BJ,OAAO,EAAE;IAAEK,SAAS,EAAE;EAAa;AACrC,CAAC,CAAC","ignoreList":[]}