react-native-platform-components 1.3.0 → 1.5.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 (636) hide show
  1. package/PlatformComponents.podspec +1 -1
  2. package/README.md +47 -51
  3. package/android/src/main/java/com/platformcomponents/PCButtonGroupView.kt +664 -0
  4. package/android/src/main/java/com/platformcomponents/PCButtonGroupViewManager.kt +241 -0
  5. package/android/src/main/java/com/platformcomponents/PCButtonSupport.kt +159 -0
  6. package/android/src/main/java/com/platformcomponents/PCButtonView.kt +527 -0
  7. package/android/src/main/java/com/platformcomponents/PCButtonViewManager.kt +204 -0
  8. package/android/src/main/java/com/platformcomponents/PCContextMenuView.kt +41 -151
  9. package/android/src/main/java/com/platformcomponents/PCContextMenuViewManager.kt +7 -63
  10. package/android/src/main/java/com/platformcomponents/PCDatePickerView.kt +310 -115
  11. package/android/src/main/java/com/platformcomponents/PCDatePickerViewManager.kt +23 -3
  12. package/android/src/main/java/com/platformcomponents/PCExpressive.kt +112 -0
  13. package/android/src/main/java/com/platformcomponents/PCFloatingActionButtonView.kt +485 -0
  14. package/android/src/main/java/com/platformcomponents/PCFloatingActionButtonViewManager.kt +109 -0
  15. package/android/src/main/java/com/platformcomponents/PCFloatingToolbarView.kt +247 -0
  16. package/android/src/main/java/com/platformcomponents/PCFloatingToolbarViewManager.kt +73 -0
  17. package/android/src/main/java/com/platformcomponents/PCHaptics.kt +46 -0
  18. package/android/src/main/java/com/platformcomponents/PCImageLoader.kt +42 -7
  19. package/android/src/main/java/com/platformcomponents/PCLiquidGlassContainerView.kt +32 -0
  20. package/android/src/main/java/com/platformcomponents/PCLiquidGlassContainerViewManager.kt +31 -0
  21. package/android/src/main/java/com/platformcomponents/PCLiquidGlassView.kt +32 -6
  22. package/android/src/main/java/com/platformcomponents/PCLiquidGlassViewManager.kt +4 -0
  23. package/android/src/main/java/com/platformcomponents/PCMenuSupport.kt +280 -0
  24. package/android/src/main/java/com/platformcomponents/PCNavigationBarSupport.kt +332 -0
  25. package/android/src/main/java/com/platformcomponents/PCNavigationRailView.kt +448 -0
  26. package/android/src/main/java/com/platformcomponents/PCNavigationRailViewManager.kt +176 -0
  27. package/android/src/main/java/com/platformcomponents/PCSegmentedControlView.kt +35 -17
  28. package/android/src/main/java/com/platformcomponents/PCSegmentedControlViewManager.kt +20 -3
  29. package/android/src/main/java/com/platformcomponents/PCSelectionMenuView.kt +371 -39
  30. package/android/src/main/java/com/platformcomponents/PCSelectionMenuViewManager.kt +18 -4
  31. package/android/src/main/java/com/platformcomponents/PCTabBarView.kt +397 -0
  32. package/android/src/main/java/com/platformcomponents/PCTabBarViewManager.kt +182 -0
  33. package/android/src/main/java/com/platformcomponents/PCTextFieldView.kt +1393 -0
  34. package/android/src/main/java/com/platformcomponents/PCTextFieldViewManager.kt +354 -0
  35. package/android/src/main/java/com/platformcomponents/PCThemeSupport.kt +37 -0
  36. package/android/src/main/java/com/platformcomponents/PlatformComponentsPackage.kt +8 -0
  37. package/android/src/main/res/drawable/pc_ic_search.xml +12 -0
  38. package/android/src/main/res/values/attrs.xml +13 -0
  39. package/android/src/main/res/values/ids.xml +5 -0
  40. package/android/src/main/res/values/styles.xml +207 -0
  41. package/ios/PCButton.h +10 -0
  42. package/ios/PCButton.mm +311 -0
  43. package/ios/PCButtonGroup.h +10 -0
  44. package/ios/PCButtonGroup.mm +323 -0
  45. package/ios/PCButtonGroupView.swift +473 -0
  46. package/ios/PCButtonSupport.swift +312 -0
  47. package/ios/PCButtonView.swift +438 -0
  48. package/ios/PCConstants.swift +23 -2
  49. package/ios/PCContextMenu.mm +28 -110
  50. package/ios/PCContextMenu.swift +106 -167
  51. package/ios/PCDatePicker.mm +21 -9
  52. package/ios/PCDatePickerView.swift +94 -20
  53. package/ios/PCFloatingActionButton.h +10 -0
  54. package/ios/PCFloatingActionButton.mm +177 -0
  55. package/ios/PCFloatingActionButtonView.swift +426 -0
  56. package/ios/PCFloatingToolbar.h +10 -0
  57. package/ios/PCFloatingToolbar.mm +103 -0
  58. package/ios/PCFloatingToolbarView.swift +336 -0
  59. package/ios/PCHaptics.swift +91 -0
  60. package/ios/PCImageLoader.swift +76 -12
  61. package/ios/PCLiquidGlass.mm +36 -0
  62. package/ios/PCLiquidGlass.swift +221 -114
  63. package/ios/PCLiquidGlassContainer.h +10 -0
  64. package/ios/PCLiquidGlassContainer.mm +84 -0
  65. package/ios/PCLiquidGlassContainer.swift +69 -0
  66. package/ios/PCMenuItems.h +76 -0
  67. package/ios/PCMenuSupport.swift +350 -0
  68. package/ios/PCNavigationRail.h +10 -0
  69. package/ios/PCNavigationRail.mm +270 -0
  70. package/ios/PCNavigationRailView.swift +415 -0
  71. package/ios/PCSegmentedControl.mm +17 -2
  72. package/ios/PCSegmentedControl.swift +57 -7
  73. package/ios/PCSelectionMenu.mm +36 -8
  74. package/ios/PCSelectionMenu.swift +224 -48
  75. package/ios/PCTabBar.h +10 -0
  76. package/ios/PCTabBar.mm +285 -0
  77. package/ios/PCTabBarAccessory.h +10 -0
  78. package/ios/PCTabBarAccessory.mm +93 -0
  79. package/ios/PCTabBarAccessoryView.swift +96 -0
  80. package/ios/PCTabBarView.swift +671 -0
  81. package/ios/PCTextField.h +10 -0
  82. package/ios/PCTextField.mm +546 -0
  83. package/ios/PCTextFieldView.swift +1558 -0
  84. package/lib/commonjs/Button.js +149 -0
  85. package/lib/commonjs/Button.js.map +1 -0
  86. package/lib/commonjs/ButtonGroup.js +109 -0
  87. package/lib/commonjs/ButtonGroup.js.map +1 -0
  88. package/lib/commonjs/ButtonGroupNativeComponent.ts +191 -0
  89. package/lib/commonjs/ButtonNativeComponent.ts +192 -0
  90. package/lib/commonjs/ContextMenu.js +9 -48
  91. package/lib/commonjs/ContextMenu.js.map +1 -1
  92. package/lib/commonjs/ContextMenuNativeComponent.ts +47 -49
  93. package/lib/commonjs/DatePicker.js +98 -2
  94. package/lib/commonjs/DatePicker.js.map +1 -1
  95. package/lib/commonjs/DatePickerNativeComponent.ts +19 -2
  96. package/lib/commonjs/FloatingActionButton.js +60 -0
  97. package/lib/commonjs/FloatingActionButton.js.map +1 -0
  98. package/lib/commonjs/FloatingActionButtonNativeComponent.ts +58 -0
  99. package/lib/commonjs/FloatingToolbar.js +77 -0
  100. package/lib/commonjs/FloatingToolbar.js.map +1 -0
  101. package/lib/commonjs/FloatingToolbarNativeComponent.ts +47 -0
  102. package/lib/commonjs/LiquidGlass.js +7 -1
  103. package/lib/commonjs/LiquidGlass.js.map +1 -1
  104. package/lib/commonjs/LiquidGlassContainer.js +32 -0
  105. package/lib/commonjs/LiquidGlassContainer.js.map +1 -0
  106. package/lib/commonjs/LiquidGlassContainerNativeComponent.ts +17 -0
  107. package/lib/commonjs/LiquidGlassNativeComponent.ts +8 -0
  108. package/lib/commonjs/NavigationRail.js +104 -0
  109. package/lib/commonjs/NavigationRail.js.map +1 -0
  110. package/lib/commonjs/NavigationRailNativeComponent.ts +107 -0
  111. package/lib/commonjs/PlatformComponentsProvider.js +18 -0
  112. package/lib/commonjs/PlatformComponentsProvider.js.map +1 -0
  113. package/lib/commonjs/SegmentedControl.js +18 -85
  114. package/lib/commonjs/SegmentedControl.js.map +1 -1
  115. package/lib/commonjs/SegmentedControlNativeComponent.ts +14 -0
  116. package/lib/commonjs/SelectionMenu.js +27 -3
  117. package/lib/commonjs/SelectionMenu.js.map +1 -1
  118. package/lib/commonjs/SelectionMenuNativeComponent.ts +26 -4
  119. package/lib/commonjs/SplitButton.js +98 -0
  120. package/lib/commonjs/SplitButton.js.map +1 -0
  121. package/lib/commonjs/TabBar.js +203 -0
  122. package/lib/commonjs/TabBar.js.map +1 -0
  123. package/lib/commonjs/TabBarAccessoryNativeComponent.ts +19 -0
  124. package/lib/commonjs/TabBarNativeComponent.ts +145 -0
  125. package/lib/commonjs/TextField.js +358 -0
  126. package/lib/commonjs/TextField.js.map +1 -0
  127. package/lib/commonjs/TextFieldNativeComponent.ts +324 -0
  128. package/lib/commonjs/focusRegistry.js +79 -0
  129. package/lib/commonjs/focusRegistry.js.map +1 -0
  130. package/lib/commonjs/haptics.js +2 -0
  131. package/lib/commonjs/haptics.js.map +1 -0
  132. package/lib/commonjs/icons.js +106 -0
  133. package/lib/commonjs/icons.js.map +1 -0
  134. package/lib/commonjs/index.js +143 -0
  135. package/lib/commonjs/index.js.map +1 -1
  136. package/lib/commonjs/index.web.js +157 -63
  137. package/lib/commonjs/index.web.js.map +1 -1
  138. package/lib/commonjs/jest.js +910 -0
  139. package/lib/commonjs/jest.js.map +1 -0
  140. package/lib/commonjs/labelStyle.js +27 -0
  141. package/lib/commonjs/labelStyle.js.map +1 -0
  142. package/lib/commonjs/menuItems.js +68 -0
  143. package/lib/commonjs/menuItems.js.map +1 -0
  144. package/lib/commonjs/reactNativeInternals.d.js +2 -0
  145. package/lib/commonjs/reactNativeInternals.d.js.map +1 -0
  146. package/lib/commonjs/selectionIdentifiers.js +18 -0
  147. package/lib/commonjs/selectionIdentifiers.js.map +1 -0
  148. package/lib/commonjs/submitBehavior.js +19 -0
  149. package/lib/commonjs/submitBehavior.js.map +1 -0
  150. package/lib/commonjs/tabItems.js +49 -0
  151. package/lib/commonjs/tabItems.js.map +1 -0
  152. package/lib/commonjs/web/Button.js +170 -0
  153. package/lib/commonjs/web/Button.js.map +1 -0
  154. package/lib/commonjs/web/ButtonGroup.js +119 -0
  155. package/lib/commonjs/web/ButtonGroup.js.map +1 -0
  156. package/lib/commonjs/web/DatePicker.js +168 -0
  157. package/lib/commonjs/web/DatePicker.js.map +1 -0
  158. package/lib/commonjs/web/DateRangePicker.js +137 -0
  159. package/lib/commonjs/web/DateRangePicker.js.map +1 -0
  160. package/lib/commonjs/web/Dialog.js +54 -0
  161. package/lib/commonjs/web/Dialog.js.map +1 -0
  162. package/lib/commonjs/web/FloatingActionButton.js +98 -0
  163. package/lib/commonjs/web/FloatingActionButton.js.map +1 -0
  164. package/lib/commonjs/web/Icon.js +34 -0
  165. package/lib/commonjs/web/Icon.js.map +1 -0
  166. package/lib/commonjs/web/NativeTheme.js +28 -0
  167. package/lib/commonjs/web/NativeTheme.js.map +1 -0
  168. package/lib/commonjs/web/NavigationRail.js +139 -0
  169. package/lib/commonjs/web/NavigationRail.js.map +1 -0
  170. package/lib/commonjs/web/PlatformComponentsProvider.js +51 -0
  171. package/lib/commonjs/web/PlatformComponentsProvider.js.map +1 -0
  172. package/lib/commonjs/web/SegmentedControl.js +117 -0
  173. package/lib/commonjs/web/SegmentedControl.js.map +1 -0
  174. package/lib/commonjs/web/SelectionMenu.js +142 -0
  175. package/lib/commonjs/web/SelectionMenu.js.map +1 -0
  176. package/lib/commonjs/web/SplitButton.js +35 -0
  177. package/lib/commonjs/web/SplitButton.js.map +1 -0
  178. package/lib/commonjs/web/TabBar.js +131 -0
  179. package/lib/commonjs/web/TabBar.js.map +1 -0
  180. package/lib/commonjs/web/TextField.js +322 -0
  181. package/lib/commonjs/web/TextField.js.map +1 -0
  182. package/lib/commonjs/web/components.js +36 -0
  183. package/lib/commonjs/web/components.js.map +1 -0
  184. package/lib/commonjs/web/containers.js +121 -0
  185. package/lib/commonjs/web/containers.js.map +1 -0
  186. package/lib/commonjs/web/dateInput.js +116 -0
  187. package/lib/commonjs/web/dateInput.js.map +1 -0
  188. package/lib/commonjs/web/shared.js +192 -0
  189. package/lib/commonjs/web/shared.js.map +1 -0
  190. package/lib/commonjs/webComponents.js +6 -0
  191. package/lib/commonjs/webComponents.js.map +1 -0
  192. package/lib/module/Button.js +142 -0
  193. package/lib/module/Button.js.map +1 -0
  194. package/lib/module/ButtonGroup.js +102 -0
  195. package/lib/module/ButtonGroup.js.map +1 -0
  196. package/lib/module/ButtonGroupNativeComponent.ts +191 -0
  197. package/lib/module/ButtonNativeComponent.ts +192 -0
  198. package/lib/module/ContextMenu.js +9 -48
  199. package/lib/module/ContextMenu.js.map +1 -1
  200. package/lib/module/ContextMenuNativeComponent.ts +47 -49
  201. package/lib/module/DatePicker.js +98 -4
  202. package/lib/module/DatePicker.js.map +1 -1
  203. package/lib/module/DatePickerNativeComponent.ts +19 -2
  204. package/lib/module/FloatingActionButton.js +53 -0
  205. package/lib/module/FloatingActionButton.js.map +1 -0
  206. package/lib/module/FloatingActionButtonNativeComponent.ts +58 -0
  207. package/lib/module/FloatingToolbar.js +70 -0
  208. package/lib/module/FloatingToolbar.js.map +1 -0
  209. package/lib/module/FloatingToolbarNativeComponent.ts +47 -0
  210. package/lib/module/LiquidGlass.js +7 -1
  211. package/lib/module/LiquidGlass.js.map +1 -1
  212. package/lib/module/LiquidGlassContainer.js +26 -0
  213. package/lib/module/LiquidGlassContainer.js.map +1 -0
  214. package/lib/module/LiquidGlassContainerNativeComponent.ts +17 -0
  215. package/lib/module/LiquidGlassNativeComponent.ts +8 -0
  216. package/lib/module/NavigationRail.js +99 -0
  217. package/lib/module/NavigationRail.js.map +1 -0
  218. package/lib/module/NavigationRailNativeComponent.ts +107 -0
  219. package/lib/module/PlatformComponentsProvider.js +13 -0
  220. package/lib/module/PlatformComponentsProvider.js.map +1 -0
  221. package/lib/module/SegmentedControl.js +18 -85
  222. package/lib/module/SegmentedControl.js.map +1 -1
  223. package/lib/module/SegmentedControlNativeComponent.ts +14 -0
  224. package/lib/module/SelectionMenu.js +27 -3
  225. package/lib/module/SelectionMenu.js.map +1 -1
  226. package/lib/module/SelectionMenuNativeComponent.ts +26 -4
  227. package/lib/module/SplitButton.js +91 -0
  228. package/lib/module/SplitButton.js.map +1 -0
  229. package/lib/module/TabBar.js +196 -0
  230. package/lib/module/TabBar.js.map +1 -0
  231. package/lib/module/TabBarAccessoryNativeComponent.ts +19 -0
  232. package/lib/module/TabBarNativeComponent.ts +145 -0
  233. package/lib/module/TextField.js +352 -0
  234. package/lib/module/TextField.js.map +1 -0
  235. package/lib/module/TextFieldNativeComponent.ts +324 -0
  236. package/lib/module/focusRegistry.js +75 -0
  237. package/lib/module/focusRegistry.js.map +1 -0
  238. package/lib/module/haptics.js +2 -0
  239. package/lib/module/haptics.js.map +1 -0
  240. package/lib/module/icons.js +101 -0
  241. package/lib/module/icons.js.map +1 -0
  242. package/lib/module/index.js +13 -0
  243. package/lib/module/index.js.map +1 -1
  244. package/lib/module/index.web.js +12 -59
  245. package/lib/module/index.web.js.map +1 -1
  246. package/lib/module/jest.js +840 -0
  247. package/lib/module/jest.js.map +1 -0
  248. package/lib/module/labelStyle.js +23 -0
  249. package/lib/module/labelStyle.js.map +1 -0
  250. package/lib/module/menuItems.js +65 -0
  251. package/lib/module/menuItems.js.map +1 -0
  252. package/lib/module/reactNativeInternals.d.js +2 -0
  253. package/lib/module/reactNativeInternals.d.js.map +1 -0
  254. package/lib/module/selectionIdentifiers.js +14 -0
  255. package/lib/module/selectionIdentifiers.js.map +1 -0
  256. package/lib/module/submitBehavior.js +15 -0
  257. package/lib/module/submitBehavior.js.map +1 -0
  258. package/lib/module/tabItems.js +45 -0
  259. package/lib/module/tabItems.js.map +1 -0
  260. package/lib/module/web/Button.js +164 -0
  261. package/lib/module/web/Button.js.map +1 -0
  262. package/lib/module/web/ButtonGroup.js +113 -0
  263. package/lib/module/web/ButtonGroup.js.map +1 -0
  264. package/lib/module/web/DatePicker.js +162 -0
  265. package/lib/module/web/DatePicker.js.map +1 -0
  266. package/lib/module/web/DateRangePicker.js +131 -0
  267. package/lib/module/web/DateRangePicker.js.map +1 -0
  268. package/lib/module/web/Dialog.js +48 -0
  269. package/lib/module/web/Dialog.js.map +1 -0
  270. package/lib/module/web/FloatingActionButton.js +94 -0
  271. package/lib/module/web/FloatingActionButton.js.map +1 -0
  272. package/lib/module/web/Icon.js +29 -0
  273. package/lib/module/web/Icon.js.map +1 -0
  274. package/lib/module/web/NativeTheme.js +23 -0
  275. package/lib/module/web/NativeTheme.js.map +1 -0
  276. package/lib/module/web/NavigationRail.js +133 -0
  277. package/lib/module/web/NavigationRail.js.map +1 -0
  278. package/lib/module/web/PlatformComponentsProvider.js +44 -0
  279. package/lib/module/web/PlatformComponentsProvider.js.map +1 -0
  280. package/lib/module/web/SegmentedControl.js +112 -0
  281. package/lib/module/web/SegmentedControl.js.map +1 -0
  282. package/lib/module/web/SelectionMenu.js +137 -0
  283. package/lib/module/web/SelectionMenu.js.map +1 -0
  284. package/lib/module/web/SplitButton.js +30 -0
  285. package/lib/module/web/SplitButton.js.map +1 -0
  286. package/lib/module/web/TabBar.js +126 -0
  287. package/lib/module/web/TabBar.js.map +1 -0
  288. package/lib/module/web/TextField.js +316 -0
  289. package/lib/module/web/TextField.js.map +1 -0
  290. package/lib/module/web/components.js +33 -0
  291. package/lib/module/web/components.js.map +1 -0
  292. package/lib/module/web/containers.js +112 -0
  293. package/lib/module/web/containers.js.map +1 -0
  294. package/lib/module/web/dateInput.js +109 -0
  295. package/lib/module/web/dateInput.js.map +1 -0
  296. package/lib/module/web/shared.js +179 -0
  297. package/lib/module/web/shared.js.map +1 -0
  298. package/lib/module/webComponents.js +4 -0
  299. package/lib/module/webComponents.js.map +1 -0
  300. package/lib/typescript/commonjs/docs/sidebars.d.ts.map +1 -1
  301. package/lib/typescript/commonjs/src/Button.d.ts +184 -0
  302. package/lib/typescript/commonjs/src/Button.d.ts.map +1 -0
  303. package/lib/typescript/commonjs/src/ButtonGroup.d.ts +117 -0
  304. package/lib/typescript/commonjs/src/ButtonGroup.d.ts.map +1 -0
  305. package/lib/typescript/commonjs/src/ButtonGroupNativeComponent.d.ts +154 -0
  306. package/lib/typescript/commonjs/src/ButtonGroupNativeComponent.d.ts.map +1 -0
  307. package/lib/typescript/commonjs/src/ButtonNativeComponent.d.ts +148 -0
  308. package/lib/typescript/commonjs/src/ButtonNativeComponent.d.ts.map +1 -0
  309. package/lib/typescript/commonjs/src/ContextMenu.d.ts +20 -33
  310. package/lib/typescript/commonjs/src/ContextMenu.d.ts.map +1 -1
  311. package/lib/typescript/commonjs/src/ContextMenuNativeComponent.d.ts +45 -47
  312. package/lib/typescript/commonjs/src/ContextMenuNativeComponent.d.ts.map +1 -1
  313. package/lib/typescript/commonjs/src/DatePicker.d.ts +74 -1
  314. package/lib/typescript/commonjs/src/DatePicker.d.ts.map +1 -1
  315. package/lib/typescript/commonjs/src/DatePickerNativeComponent.d.ts +16 -1
  316. package/lib/typescript/commonjs/src/DatePickerNativeComponent.d.ts.map +1 -1
  317. package/lib/typescript/commonjs/src/FloatingActionButton.d.ts +67 -0
  318. package/lib/typescript/commonjs/src/FloatingActionButton.d.ts.map +1 -0
  319. package/lib/typescript/commonjs/src/FloatingActionButtonNativeComponent.d.ts +43 -0
  320. package/lib/typescript/commonjs/src/FloatingActionButtonNativeComponent.d.ts.map +1 -0
  321. package/lib/typescript/commonjs/src/FloatingToolbar.d.ts +75 -0
  322. package/lib/typescript/commonjs/src/FloatingToolbar.d.ts.map +1 -0
  323. package/lib/typescript/commonjs/src/FloatingToolbarNativeComponent.d.ts +36 -0
  324. package/lib/typescript/commonjs/src/FloatingToolbarNativeComponent.d.ts.map +1 -0
  325. package/lib/typescript/commonjs/src/LiquidGlass.d.ts +17 -0
  326. package/lib/typescript/commonjs/src/LiquidGlass.d.ts.map +1 -1
  327. package/lib/typescript/commonjs/src/LiquidGlassContainer.d.ts +27 -0
  328. package/lib/typescript/commonjs/src/LiquidGlassContainer.d.ts.map +1 -0
  329. package/lib/typescript/commonjs/src/LiquidGlassContainerNativeComponent.d.ts +13 -0
  330. package/lib/typescript/commonjs/src/LiquidGlassContainerNativeComponent.d.ts.map +1 -0
  331. package/lib/typescript/commonjs/src/LiquidGlassNativeComponent.d.ts +7 -0
  332. package/lib/typescript/commonjs/src/LiquidGlassNativeComponent.d.ts.map +1 -1
  333. package/lib/typescript/commonjs/src/NavigationRail.d.ts +86 -0
  334. package/lib/typescript/commonjs/src/NavigationRail.d.ts.map +1 -0
  335. package/lib/typescript/commonjs/src/NavigationRailNativeComponent.d.ts +81 -0
  336. package/lib/typescript/commonjs/src/NavigationRailNativeComponent.d.ts.map +1 -0
  337. package/lib/typescript/commonjs/src/PlatformComponentsProvider.d.ts +6 -0
  338. package/lib/typescript/commonjs/src/PlatformComponentsProvider.d.ts.map +1 -0
  339. package/lib/typescript/commonjs/src/SegmentedControl.d.ts +35 -47
  340. package/lib/typescript/commonjs/src/SegmentedControl.d.ts.map +1 -1
  341. package/lib/typescript/commonjs/src/SegmentedControlNativeComponent.d.ts +11 -0
  342. package/lib/typescript/commonjs/src/SegmentedControlNativeComponent.d.ts.map +1 -1
  343. package/lib/typescript/commonjs/src/SelectionMenu.d.ts +44 -2
  344. package/lib/typescript/commonjs/src/SelectionMenu.d.ts.map +1 -1
  345. package/lib/typescript/commonjs/src/SelectionMenuNativeComponent.d.ts +20 -4
  346. package/lib/typescript/commonjs/src/SelectionMenuNativeComponent.d.ts.map +1 -1
  347. package/lib/typescript/commonjs/src/SplitButton.d.ts +83 -0
  348. package/lib/typescript/commonjs/src/SplitButton.d.ts.map +1 -0
  349. package/lib/typescript/commonjs/src/TabBar.d.ts +144 -0
  350. package/lib/typescript/commonjs/src/TabBar.d.ts.map +1 -0
  351. package/lib/typescript/commonjs/src/TabBarAccessoryNativeComponent.d.ts +13 -0
  352. package/lib/typescript/commonjs/src/TabBarAccessoryNativeComponent.d.ts.map +1 -0
  353. package/lib/typescript/commonjs/src/TabBarNativeComponent.d.ts +110 -0
  354. package/lib/typescript/commonjs/src/TabBarNativeComponent.d.ts.map +1 -0
  355. package/lib/typescript/commonjs/src/TextField.d.ts +332 -0
  356. package/lib/typescript/commonjs/src/TextField.d.ts.map +1 -0
  357. package/lib/typescript/commonjs/src/TextFieldNativeComponent.d.ts +240 -0
  358. package/lib/typescript/commonjs/src/TextFieldNativeComponent.d.ts.map +1 -0
  359. package/lib/typescript/commonjs/src/focusRegistry.d.ts +13 -0
  360. package/lib/typescript/commonjs/src/focusRegistry.d.ts.map +1 -0
  361. package/lib/typescript/commonjs/src/haptics.d.ts +20 -0
  362. package/lib/typescript/commonjs/src/haptics.d.ts.map +1 -0
  363. package/lib/typescript/commonjs/src/icons.d.ts +58 -0
  364. package/lib/typescript/commonjs/src/icons.d.ts.map +1 -0
  365. package/lib/typescript/commonjs/src/index.d.ts +13 -0
  366. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  367. package/lib/typescript/commonjs/src/index.web.d.ts +25 -133
  368. package/lib/typescript/commonjs/src/index.web.d.ts.map +1 -1
  369. package/lib/typescript/commonjs/src/jest.d.ts +139 -0
  370. package/lib/typescript/commonjs/src/jest.d.ts.map +1 -0
  371. package/lib/typescript/commonjs/src/labelStyle.d.ts +20 -0
  372. package/lib/typescript/commonjs/src/labelStyle.d.ts.map +1 -0
  373. package/lib/typescript/commonjs/src/menuItems.d.ts +100 -0
  374. package/lib/typescript/commonjs/src/menuItems.d.ts.map +1 -0
  375. package/lib/typescript/commonjs/src/selectionIdentifiers.d.ts +3 -0
  376. package/lib/typescript/commonjs/src/selectionIdentifiers.d.ts.map +1 -0
  377. package/lib/typescript/commonjs/src/sharedTypes.d.ts +6 -1
  378. package/lib/typescript/commonjs/src/sharedTypes.d.ts.map +1 -1
  379. package/lib/typescript/commonjs/src/submitBehavior.d.ts +9 -0
  380. package/lib/typescript/commonjs/src/submitBehavior.d.ts.map +1 -0
  381. package/lib/typescript/commonjs/src/tabItems.d.ts +55 -0
  382. package/lib/typescript/commonjs/src/tabItems.d.ts.map +1 -0
  383. package/lib/typescript/commonjs/src/web/Button.d.ts +9 -0
  384. package/lib/typescript/commonjs/src/web/Button.d.ts.map +1 -0
  385. package/lib/typescript/commonjs/src/web/ButtonGroup.d.ts +11 -0
  386. package/lib/typescript/commonjs/src/web/ButtonGroup.d.ts.map +1 -0
  387. package/lib/typescript/commonjs/src/web/DatePicker.d.ts +14 -0
  388. package/lib/typescript/commonjs/src/web/DatePicker.d.ts.map +1 -0
  389. package/lib/typescript/commonjs/src/web/DateRangePicker.d.ts +11 -0
  390. package/lib/typescript/commonjs/src/web/DateRangePicker.d.ts.map +1 -0
  391. package/lib/typescript/commonjs/src/web/Dialog.d.ts +12 -0
  392. package/lib/typescript/commonjs/src/web/Dialog.d.ts.map +1 -0
  393. package/lib/typescript/commonjs/src/web/FloatingActionButton.d.ts +8 -0
  394. package/lib/typescript/commonjs/src/web/FloatingActionButton.d.ts.map +1 -0
  395. package/lib/typescript/commonjs/src/web/Icon.d.ts +12 -0
  396. package/lib/typescript/commonjs/src/web/Icon.d.ts.map +1 -0
  397. package/lib/typescript/commonjs/src/web/NativeTheme.d.ts +10 -0
  398. package/lib/typescript/commonjs/src/web/NativeTheme.d.ts.map +1 -0
  399. package/lib/typescript/commonjs/src/web/NavigationRail.d.ts +8 -0
  400. package/lib/typescript/commonjs/src/web/NavigationRail.d.ts.map +1 -0
  401. package/lib/typescript/commonjs/src/web/PlatformComponentsProvider.d.ts +10 -0
  402. package/lib/typescript/commonjs/src/web/PlatformComponentsProvider.d.ts.map +1 -0
  403. package/lib/typescript/commonjs/src/web/SegmentedControl.d.ts +8 -0
  404. package/lib/typescript/commonjs/src/web/SegmentedControl.d.ts.map +1 -0
  405. package/lib/typescript/commonjs/src/web/SelectionMenu.d.ts +10 -0
  406. package/lib/typescript/commonjs/src/web/SelectionMenu.d.ts.map +1 -0
  407. package/lib/typescript/commonjs/src/web/SplitButton.d.ts +9 -0
  408. package/lib/typescript/commonjs/src/web/SplitButton.d.ts.map +1 -0
  409. package/lib/typescript/commonjs/src/web/TabBar.d.ts +9 -0
  410. package/lib/typescript/commonjs/src/web/TabBar.d.ts.map +1 -0
  411. package/lib/typescript/commonjs/src/web/TextField.d.ts +9 -0
  412. package/lib/typescript/commonjs/src/web/TextField.d.ts.map +1 -0
  413. package/lib/typescript/commonjs/src/web/components.d.ts +17 -0
  414. package/lib/typescript/commonjs/src/web/components.d.ts.map +1 -0
  415. package/lib/typescript/commonjs/src/web/containers.d.ts +24 -0
  416. package/lib/typescript/commonjs/src/web/containers.d.ts.map +1 -0
  417. package/lib/typescript/commonjs/src/web/dateInput.d.ts +20 -0
  418. package/lib/typescript/commonjs/src/web/dateInput.d.ts.map +1 -0
  419. package/lib/typescript/commonjs/src/web/shared.d.ts +43 -0
  420. package/lib/typescript/commonjs/src/web/shared.d.ts.map +1 -0
  421. package/lib/typescript/commonjs/src/webComponents.d.ts +43 -0
  422. package/lib/typescript/commonjs/src/webComponents.d.ts.map +1 -0
  423. package/lib/typescript/module/docs/sidebars.d.ts.map +1 -1
  424. package/lib/typescript/module/src/Button.d.ts +184 -0
  425. package/lib/typescript/module/src/Button.d.ts.map +1 -0
  426. package/lib/typescript/module/src/ButtonGroup.d.ts +117 -0
  427. package/lib/typescript/module/src/ButtonGroup.d.ts.map +1 -0
  428. package/lib/typescript/module/src/ButtonGroupNativeComponent.d.ts +154 -0
  429. package/lib/typescript/module/src/ButtonGroupNativeComponent.d.ts.map +1 -0
  430. package/lib/typescript/module/src/ButtonNativeComponent.d.ts +148 -0
  431. package/lib/typescript/module/src/ButtonNativeComponent.d.ts.map +1 -0
  432. package/lib/typescript/module/src/ContextMenu.d.ts +20 -33
  433. package/lib/typescript/module/src/ContextMenu.d.ts.map +1 -1
  434. package/lib/typescript/module/src/ContextMenuNativeComponent.d.ts +45 -47
  435. package/lib/typescript/module/src/ContextMenuNativeComponent.d.ts.map +1 -1
  436. package/lib/typescript/module/src/DatePicker.d.ts +74 -1
  437. package/lib/typescript/module/src/DatePicker.d.ts.map +1 -1
  438. package/lib/typescript/module/src/DatePickerNativeComponent.d.ts +16 -1
  439. package/lib/typescript/module/src/DatePickerNativeComponent.d.ts.map +1 -1
  440. package/lib/typescript/module/src/FloatingActionButton.d.ts +67 -0
  441. package/lib/typescript/module/src/FloatingActionButton.d.ts.map +1 -0
  442. package/lib/typescript/module/src/FloatingActionButtonNativeComponent.d.ts +43 -0
  443. package/lib/typescript/module/src/FloatingActionButtonNativeComponent.d.ts.map +1 -0
  444. package/lib/typescript/module/src/FloatingToolbar.d.ts +75 -0
  445. package/lib/typescript/module/src/FloatingToolbar.d.ts.map +1 -0
  446. package/lib/typescript/module/src/FloatingToolbarNativeComponent.d.ts +36 -0
  447. package/lib/typescript/module/src/FloatingToolbarNativeComponent.d.ts.map +1 -0
  448. package/lib/typescript/module/src/LiquidGlass.d.ts +17 -0
  449. package/lib/typescript/module/src/LiquidGlass.d.ts.map +1 -1
  450. package/lib/typescript/module/src/LiquidGlassContainer.d.ts +27 -0
  451. package/lib/typescript/module/src/LiquidGlassContainer.d.ts.map +1 -0
  452. package/lib/typescript/module/src/LiquidGlassContainerNativeComponent.d.ts +13 -0
  453. package/lib/typescript/module/src/LiquidGlassContainerNativeComponent.d.ts.map +1 -0
  454. package/lib/typescript/module/src/LiquidGlassNativeComponent.d.ts +7 -0
  455. package/lib/typescript/module/src/LiquidGlassNativeComponent.d.ts.map +1 -1
  456. package/lib/typescript/module/src/NavigationRail.d.ts +86 -0
  457. package/lib/typescript/module/src/NavigationRail.d.ts.map +1 -0
  458. package/lib/typescript/module/src/NavigationRailNativeComponent.d.ts +81 -0
  459. package/lib/typescript/module/src/NavigationRailNativeComponent.d.ts.map +1 -0
  460. package/lib/typescript/module/src/PlatformComponentsProvider.d.ts +6 -0
  461. package/lib/typescript/module/src/PlatformComponentsProvider.d.ts.map +1 -0
  462. package/lib/typescript/module/src/SegmentedControl.d.ts +35 -47
  463. package/lib/typescript/module/src/SegmentedControl.d.ts.map +1 -1
  464. package/lib/typescript/module/src/SegmentedControlNativeComponent.d.ts +11 -0
  465. package/lib/typescript/module/src/SegmentedControlNativeComponent.d.ts.map +1 -1
  466. package/lib/typescript/module/src/SelectionMenu.d.ts +44 -2
  467. package/lib/typescript/module/src/SelectionMenu.d.ts.map +1 -1
  468. package/lib/typescript/module/src/SelectionMenuNativeComponent.d.ts +20 -4
  469. package/lib/typescript/module/src/SelectionMenuNativeComponent.d.ts.map +1 -1
  470. package/lib/typescript/module/src/SplitButton.d.ts +83 -0
  471. package/lib/typescript/module/src/SplitButton.d.ts.map +1 -0
  472. package/lib/typescript/module/src/TabBar.d.ts +144 -0
  473. package/lib/typescript/module/src/TabBar.d.ts.map +1 -0
  474. package/lib/typescript/module/src/TabBarAccessoryNativeComponent.d.ts +13 -0
  475. package/lib/typescript/module/src/TabBarAccessoryNativeComponent.d.ts.map +1 -0
  476. package/lib/typescript/module/src/TabBarNativeComponent.d.ts +110 -0
  477. package/lib/typescript/module/src/TabBarNativeComponent.d.ts.map +1 -0
  478. package/lib/typescript/module/src/TextField.d.ts +332 -0
  479. package/lib/typescript/module/src/TextField.d.ts.map +1 -0
  480. package/lib/typescript/module/src/TextFieldNativeComponent.d.ts +240 -0
  481. package/lib/typescript/module/src/TextFieldNativeComponent.d.ts.map +1 -0
  482. package/lib/typescript/module/src/focusRegistry.d.ts +13 -0
  483. package/lib/typescript/module/src/focusRegistry.d.ts.map +1 -0
  484. package/lib/typescript/module/src/haptics.d.ts +20 -0
  485. package/lib/typescript/module/src/haptics.d.ts.map +1 -0
  486. package/lib/typescript/module/src/icons.d.ts +58 -0
  487. package/lib/typescript/module/src/icons.d.ts.map +1 -0
  488. package/lib/typescript/module/src/index.d.ts +13 -0
  489. package/lib/typescript/module/src/index.d.ts.map +1 -1
  490. package/lib/typescript/module/src/index.web.d.ts +25 -133
  491. package/lib/typescript/module/src/index.web.d.ts.map +1 -1
  492. package/lib/typescript/module/src/jest.d.ts +139 -0
  493. package/lib/typescript/module/src/jest.d.ts.map +1 -0
  494. package/lib/typescript/module/src/labelStyle.d.ts +20 -0
  495. package/lib/typescript/module/src/labelStyle.d.ts.map +1 -0
  496. package/lib/typescript/module/src/menuItems.d.ts +100 -0
  497. package/lib/typescript/module/src/menuItems.d.ts.map +1 -0
  498. package/lib/typescript/module/src/selectionIdentifiers.d.ts +3 -0
  499. package/lib/typescript/module/src/selectionIdentifiers.d.ts.map +1 -0
  500. package/lib/typescript/module/src/sharedTypes.d.ts +6 -1
  501. package/lib/typescript/module/src/sharedTypes.d.ts.map +1 -1
  502. package/lib/typescript/module/src/submitBehavior.d.ts +9 -0
  503. package/lib/typescript/module/src/submitBehavior.d.ts.map +1 -0
  504. package/lib/typescript/module/src/tabItems.d.ts +55 -0
  505. package/lib/typescript/module/src/tabItems.d.ts.map +1 -0
  506. package/lib/typescript/module/src/web/Button.d.ts +9 -0
  507. package/lib/typescript/module/src/web/Button.d.ts.map +1 -0
  508. package/lib/typescript/module/src/web/ButtonGroup.d.ts +11 -0
  509. package/lib/typescript/module/src/web/ButtonGroup.d.ts.map +1 -0
  510. package/lib/typescript/module/src/web/DatePicker.d.ts +14 -0
  511. package/lib/typescript/module/src/web/DatePicker.d.ts.map +1 -0
  512. package/lib/typescript/module/src/web/DateRangePicker.d.ts +11 -0
  513. package/lib/typescript/module/src/web/DateRangePicker.d.ts.map +1 -0
  514. package/lib/typescript/module/src/web/Dialog.d.ts +12 -0
  515. package/lib/typescript/module/src/web/Dialog.d.ts.map +1 -0
  516. package/lib/typescript/module/src/web/FloatingActionButton.d.ts +8 -0
  517. package/lib/typescript/module/src/web/FloatingActionButton.d.ts.map +1 -0
  518. package/lib/typescript/module/src/web/Icon.d.ts +12 -0
  519. package/lib/typescript/module/src/web/Icon.d.ts.map +1 -0
  520. package/lib/typescript/module/src/web/NativeTheme.d.ts +10 -0
  521. package/lib/typescript/module/src/web/NativeTheme.d.ts.map +1 -0
  522. package/lib/typescript/module/src/web/NavigationRail.d.ts +8 -0
  523. package/lib/typescript/module/src/web/NavigationRail.d.ts.map +1 -0
  524. package/lib/typescript/module/src/web/PlatformComponentsProvider.d.ts +10 -0
  525. package/lib/typescript/module/src/web/PlatformComponentsProvider.d.ts.map +1 -0
  526. package/lib/typescript/module/src/web/SegmentedControl.d.ts +8 -0
  527. package/lib/typescript/module/src/web/SegmentedControl.d.ts.map +1 -0
  528. package/lib/typescript/module/src/web/SelectionMenu.d.ts +10 -0
  529. package/lib/typescript/module/src/web/SelectionMenu.d.ts.map +1 -0
  530. package/lib/typescript/module/src/web/SplitButton.d.ts +9 -0
  531. package/lib/typescript/module/src/web/SplitButton.d.ts.map +1 -0
  532. package/lib/typescript/module/src/web/TabBar.d.ts +9 -0
  533. package/lib/typescript/module/src/web/TabBar.d.ts.map +1 -0
  534. package/lib/typescript/module/src/web/TextField.d.ts +9 -0
  535. package/lib/typescript/module/src/web/TextField.d.ts.map +1 -0
  536. package/lib/typescript/module/src/web/components.d.ts +17 -0
  537. package/lib/typescript/module/src/web/components.d.ts.map +1 -0
  538. package/lib/typescript/module/src/web/containers.d.ts +24 -0
  539. package/lib/typescript/module/src/web/containers.d.ts.map +1 -0
  540. package/lib/typescript/module/src/web/dateInput.d.ts +20 -0
  541. package/lib/typescript/module/src/web/dateInput.d.ts.map +1 -0
  542. package/lib/typescript/module/src/web/shared.d.ts +43 -0
  543. package/lib/typescript/module/src/web/shared.d.ts.map +1 -0
  544. package/lib/typescript/module/src/webComponents.d.ts +43 -0
  545. package/lib/typescript/module/src/webComponents.d.ts.map +1 -0
  546. package/package.json +55 -4
  547. package/plugin/build/index.d.ts +3 -2
  548. package/plugin/build/index.d.ts.map +1 -1
  549. package/react-native.config.js +6 -0
  550. package/shared/PCButtonComponentDescriptors-custom.h +22 -0
  551. package/shared/PCButtonGroupComponentDescriptors-custom.h +22 -0
  552. package/shared/PCButtonGroupShadowNode-custom.cpp +48 -0
  553. package/shared/PCButtonGroupShadowNode-custom.h +55 -0
  554. package/shared/PCButtonGroupState-custom.h +61 -0
  555. package/shared/PCButtonShadowNode-custom.cpp +48 -0
  556. package/shared/PCButtonShadowNode-custom.h +55 -0
  557. package/shared/PCButtonState-custom.h +61 -0
  558. package/shared/PCFloatingActionButtonComponentDescriptors-custom.h +22 -0
  559. package/shared/PCFloatingActionButtonShadowNode-custom.cpp +48 -0
  560. package/shared/PCFloatingActionButtonShadowNode-custom.h +54 -0
  561. package/shared/PCFloatingActionButtonState-custom.h +61 -0
  562. package/shared/PCNavigationRailComponentDescriptors-custom.h +47 -0
  563. package/shared/PCNavigationRailShadowNode-custom.h +42 -0
  564. package/shared/PCNavigationRailState-custom.h +62 -0
  565. package/shared/PCTabBarComponentDescriptors-custom.h +22 -0
  566. package/shared/PCTabBarShadowNode-custom.cpp +54 -0
  567. package/shared/PCTabBarShadowNode-custom.h +54 -0
  568. package/shared/PCTabBarState-custom.h +62 -0
  569. package/shared/PCTextFieldComponentDescriptors-custom.h +22 -0
  570. package/shared/PCTextFieldShadowNode-custom.cpp +47 -0
  571. package/shared/PCTextFieldShadowNode-custom.h +55 -0
  572. package/shared/PCTextFieldState-custom.h +61 -0
  573. package/shared/react/renderer/components/PlatformComponentsViewSpec/ComponentDescriptors.h +6 -0
  574. package/src/Button.tsx +359 -0
  575. package/src/ButtonGroup.tsx +251 -0
  576. package/src/ButtonGroupNativeComponent.ts +191 -0
  577. package/src/ButtonNativeComponent.ts +192 -0
  578. package/src/ContextMenu.tsx +34 -81
  579. package/src/ContextMenuNativeComponent.ts +47 -49
  580. package/src/DatePicker.tsx +182 -4
  581. package/src/DatePickerNativeComponent.ts +19 -2
  582. package/src/FloatingActionButton.tsx +121 -0
  583. package/src/FloatingActionButtonNativeComponent.ts +58 -0
  584. package/src/FloatingToolbar.tsx +164 -0
  585. package/src/FloatingToolbarNativeComponent.ts +47 -0
  586. package/src/LiquidGlass.tsx +24 -1
  587. package/src/LiquidGlassContainer.tsx +42 -0
  588. package/src/LiquidGlassContainerNativeComponent.ts +17 -0
  589. package/src/LiquidGlassNativeComponent.ts +8 -0
  590. package/src/NavigationRail.tsx +203 -0
  591. package/src/NavigationRailNativeComponent.ts +107 -0
  592. package/src/PlatformComponentsProvider.tsx +15 -0
  593. package/src/SegmentedControl.tsx +57 -119
  594. package/src/SegmentedControlNativeComponent.ts +14 -0
  595. package/src/SelectionMenu.tsx +81 -6
  596. package/src/SelectionMenuNativeComponent.ts +26 -4
  597. package/src/SplitButton.tsx +198 -0
  598. package/src/TabBar.tsx +373 -0
  599. package/src/TabBarAccessoryNativeComponent.ts +19 -0
  600. package/src/TabBarNativeComponent.ts +145 -0
  601. package/src/TextField.tsx +908 -0
  602. package/src/TextFieldNativeComponent.ts +324 -0
  603. package/src/focusRegistry.ts +90 -0
  604. package/src/haptics.ts +31 -0
  605. package/src/icons.ts +143 -0
  606. package/src/index.tsx +13 -0
  607. package/src/index.web.tsx +53 -199
  608. package/src/jest.tsx +958 -0
  609. package/src/labelStyle.ts +36 -0
  610. package/src/menuItems.ts +152 -0
  611. package/src/reactNativeInternals.d.ts +22 -0
  612. package/src/selectionIdentifiers.ts +17 -0
  613. package/src/sharedTypes.ts +7 -1
  614. package/src/submitBehavior.ts +16 -0
  615. package/src/tabItems.ts +113 -0
  616. package/src/web/Button.tsx +201 -0
  617. package/src/web/ButtonGroup.tsx +154 -0
  618. package/src/web/DatePicker.tsx +204 -0
  619. package/src/web/DateRangePicker.tsx +135 -0
  620. package/src/web/Dialog.tsx +54 -0
  621. package/src/web/FloatingActionButton.tsx +76 -0
  622. package/src/web/Icon.tsx +33 -0
  623. package/src/web/NativeTheme.ts +23 -0
  624. package/src/web/NavigationRail.tsx +148 -0
  625. package/src/web/PlatformComponentsProvider.tsx +48 -0
  626. package/src/web/SegmentedControl.tsx +127 -0
  627. package/src/web/SelectionMenu.tsx +149 -0
  628. package/src/web/SplitButton.tsx +32 -0
  629. package/src/web/TabBar.tsx +150 -0
  630. package/src/web/TextField.tsx +361 -0
  631. package/src/web/components.tsx +71 -0
  632. package/src/web/containers.tsx +130 -0
  633. package/src/web/dateInput.ts +137 -0
  634. package/src/web/shared.ts +176 -0
  635. package/src/webComponents.ts +45 -0
  636. package/android/src/main/java/com/platformcomponents/DateConstraints.kt +0 -83
@@ -0,0 +1,191 @@
1
+ // ButtonGroupNativeComponent.ts
2
+ import type { ColorValue, HostComponent, ViewProps } from 'react-native';
3
+ import { codegenNativeComponent } from 'react-native';
4
+ import type { BubblingEventHandler, Double, Int32 } from './codegenTypes';
5
+
6
+ /**
7
+ * A single button in the group. Icons are pre-resolved on the JS side (see
8
+ * icons.ts) so native only deals with flat strings.
9
+ */
10
+ export type ButtonGroupButton = Readonly<{
11
+ label: string; // Empty for an icon-only button
12
+ value: string;
13
+ disabled: string; // 'enabled' | 'disabled'
14
+ iconType: string; // '' | 'sfSymbol' | 'drawable' | 'image'
15
+ iconName: string; // SF Symbol (iOS) or drawable resource name (Android)
16
+ iconRequest: string;
17
+ iconUri: string; // Resolved image URI when iconType === 'image'
18
+ iconScale: Double; // Resolved image scale when iconType === 'image'
19
+ iconTinted: string; // 'true' | 'false' — draw the image as a tinted template
20
+ accessibilityLabel: string; // Screen-reader label, empty = use label
21
+ }>;
22
+
23
+ /**
24
+ * Event emitted when a button is pressed.
25
+ */
26
+ export type ButtonGroupPressEvent = Readonly<{
27
+ index: Int32;
28
+ value: string;
29
+ }>;
30
+
31
+ /**
32
+ * Event emitted when the selection changes (single / multiple selection).
33
+ */
34
+ export type ButtonGroupSelectionEvent = Readonly<{
35
+ /** Values of the selected buttons, in button order. */
36
+ // Codegen only understands the `T[]` array form in event payloads.
37
+ values: string[];
38
+ }>;
39
+
40
+ /**
41
+ * Label font. Empty strings / 0 mean "platform default".
42
+ */
43
+ export type ButtonGroupLabelStyleProps = Readonly<{
44
+ fontFamily?: string;
45
+ fontSize?: Double;
46
+ fontWeight?: string; // 'normal' | 'bold' | '100'..'900'
47
+ fontStyle?: string; // 'normal' | 'italic'
48
+ }>;
49
+
50
+ /**
51
+ * One item of the split button's menu, the shape of `ContextMenuItem` (see
52
+ * menuItems.ts). Every field is set; empty strings mean "none" and flags are
53
+ * 'true' | 'false'.
54
+ */
55
+ export type ButtonGroupMenuItem = Readonly<{
56
+ id: string;
57
+ title: string;
58
+ subtitle: string;
59
+ /** Index of the parent submenu or section; -1 at the top level */
60
+ parent: Int32;
61
+ /** 'action' | 'menu' | 'section' */
62
+ kind: string;
63
+ /** '' | 'sfSymbol' | 'drawable' | 'image' */
64
+ iconType: string;
65
+ iconName: string;
66
+ iconRequest: string;
67
+ iconUri: string;
68
+ iconScale: Double;
69
+ iconTinted: string;
70
+ imageColor: string;
71
+ destructive: string;
72
+ disabled: string;
73
+ keepsMenuPresented: string;
74
+ /** '' | 'off' | 'on' | 'mixed' */
75
+ state: string;
76
+ /** The action's own haptics; '' = the component's */
77
+ haptics: string;
78
+ }>;
79
+
80
+ /** Event emitted when a split button menu item is picked. */
81
+ export type ButtonGroupMenuSelectEvent = Readonly<{
82
+ id: string;
83
+ title: string;
84
+ }>;
85
+
86
+ /**
87
+ * Android-specific configuration.
88
+ */
89
+ export type ButtonGroupAndroidProps = Readonly<{
90
+ /** Material style: 'm3' | 'expressive' */
91
+ material?: string;
92
+ }>;
93
+
94
+ export interface ButtonGroupNativeProps extends ViewProps {
95
+ /** Buttons to display. */
96
+ buttons: ReadonlyArray<ButtonGroupButton>;
97
+
98
+ /**
99
+ * 'filled' | 'tonal' | 'outlined' | 'text' | 'elevated' | 'glass' |
100
+ * 'prominentGlass' | 'clearGlass' | 'prominentClearGlass'
101
+ */
102
+ variant?: string;
103
+
104
+ /** 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' */
105
+ size?: string;
106
+
107
+ /** '' (platform default) | 'round' | 'square' */
108
+ shape?: string;
109
+
110
+ /** 'true' | 'false': connected group (shared outline, small inner corners) */
111
+ connected?: string;
112
+
113
+ /** Gap between buttons in points; negative means the platform default. */
114
+ spacing?: Double;
115
+
116
+ /** 'none' | 'single' | 'multiple' */
117
+ selection?: string;
118
+
119
+ /** Values of the selected buttons (single / multiple selection). */
120
+ selectedValues?: ReadonlyArray<string>;
121
+
122
+ /** 'true' | 'false': whether at least one button must stay selected */
123
+ selectionRequired?: string;
124
+
125
+ /** 'enabled' | 'disabled' */
126
+ interactivity?: string;
127
+
128
+ /** Container (background) color of the buttons. */
129
+ color?: ColorValue;
130
+
131
+ /** Label and icon color of the buttons. */
132
+ foregroundColor?: ColorValue;
133
+
134
+ /** Android: ripple color shown while pressing a button. */
135
+ androidRippleColor?: ColorValue;
136
+
137
+ /** Android: outline color (outlined variant). */
138
+ androidStrokeColor?: ColorValue;
139
+
140
+ /** Label font. */
141
+ labelStyle?: ButtonGroupLabelStyleProps;
142
+
143
+ /**
144
+ * What happens to buttons that don't fit: 'none' | 'menu' | 'wrap'
145
+ * ('wrap' is Android only)
146
+ */
147
+ overflow?: string;
148
+
149
+ /**
150
+ * 'true' | 'false': a split button, the first button joined to a trailing
151
+ * button that opens `menu` (SplitButton).
152
+ */
153
+ split?: string;
154
+
155
+ /** The split button's menu, flattened (see ButtonGroupMenuItem). */
156
+ menu?: ReadonlyArray<ButtonGroupMenuItem>;
157
+
158
+ /** Screen-reader label of the split button's menu button. */
159
+ menuAccessibilityLabel?: string;
160
+
161
+ /**
162
+ * Haptic played when a button is pressed: '' (none added) | 'none' | 'selection' |
163
+ * 'light' | 'medium' | 'heavy' | 'success' | 'warning' | 'error'
164
+ */
165
+ haptics?: string;
166
+
167
+ /** Fired when a button is pressed. */
168
+ onButtonPress?: BubblingEventHandler<ButtonGroupPressEvent>;
169
+
170
+ /**
171
+ * Fired when the selection changes. Not `onSelectionChange`: React Native's
172
+ * TextInput registers `topSelectionChange` as a direct event, and an event
173
+ * name can't be both direct and bubbling.
174
+ */
175
+ onGroupSelectionChange?: BubblingEventHandler<ButtonGroupSelectionEvent>;
176
+
177
+ /** Fired when a split button menu item is picked. */
178
+ onMenuSelect?: BubblingEventHandler<ButtonGroupMenuSelectEvent>;
179
+
180
+ /** Fired when the split button's menu opens. */
181
+ onMenuOpen?: BubblingEventHandler<Readonly<{}>>;
182
+
183
+ /** Fired when the split button's menu closes. */
184
+ onMenuClose?: BubblingEventHandler<Readonly<{}>>;
185
+
186
+ android?: ButtonGroupAndroidProps;
187
+ }
188
+
189
+ export default codegenNativeComponent<ButtonGroupNativeProps>(
190
+ 'PCButtonGroup'
191
+ ) as HostComponent<ButtonGroupNativeProps>;
@@ -0,0 +1,192 @@
1
+ // ButtonNativeComponent.ts
2
+ import type { ColorValue, HostComponent, ViewProps } from 'react-native';
3
+ import { codegenNativeComponent } from 'react-native';
4
+ import type {
5
+ BubblingEventHandler,
6
+ Double,
7
+ Int32,
8
+ WithDefault,
9
+ } from './codegenTypes';
10
+
11
+ /**
12
+ * Icon fields, pre-resolved on the JS side (see icons.ts).
13
+ */
14
+ export type ButtonIconProps = Readonly<{
15
+ iconType: string; // '' | 'sfSymbol' | 'drawable' | 'image'
16
+ iconName: string; // SF Symbol (iOS) or drawable resource name (Android)
17
+ iconRequest: string;
18
+ iconUri: string; // Resolved image URI when iconType === 'image'
19
+ iconScale: Double; // Resolved image scale when iconType === 'image'
20
+ iconTinted: string; // 'true' | 'false' — draw the image as a tinted template
21
+ }>;
22
+
23
+ /**
24
+ * Label font. Empty strings / 0 mean "platform default".
25
+ */
26
+ export type ButtonLabelStyleProps = Readonly<{
27
+ fontFamily?: string;
28
+ fontSize?: Double;
29
+ fontWeight?: string; // 'normal' | 'bold' | '100'..'900'
30
+ fontStyle?: string; // 'normal' | 'italic'
31
+ }>;
32
+
33
+ /**
34
+ * One menu item, the shape of `ContextMenuItem`: the JS action tree is
35
+ * flattened (see `menuItems.ts`) and each item points at its parent submenu
36
+ * or section by index. Every field is set; empty strings mean "none" and
37
+ * flags are 'true' | 'false'.
38
+ */
39
+ export type ButtonMenuItem = Readonly<{
40
+ id: string;
41
+ title: string;
42
+ subtitle: string;
43
+ /** Index of the parent submenu or section; -1 at the top level */
44
+ parent: Int32;
45
+ /** 'action' | 'menu' | 'section' */
46
+ kind: string;
47
+ /** '' | 'sfSymbol' | 'drawable' | 'image' */
48
+ iconType: string;
49
+ iconName: string;
50
+ iconRequest: string;
51
+ iconUri: string;
52
+ iconScale: Double;
53
+ iconTinted: string;
54
+ imageColor: string;
55
+ destructive: string;
56
+ disabled: string;
57
+ keepsMenuPresented: string;
58
+ /** '' | 'off' | 'on' | 'mixed' */
59
+ state: string;
60
+ /** The action's own haptics; '' = the component's */
61
+ haptics: string;
62
+ }>;
63
+
64
+ /** Event emitted when a toggle button is pressed. */
65
+ export type ButtonSelectedChangeEvent = Readonly<{
66
+ /** The selection the press asks for */
67
+ selected: boolean;
68
+ }>;
69
+
70
+ /** Event emitted when a menu item is picked. */
71
+ export type ButtonMenuSelectEvent = Readonly<{
72
+ id: string;
73
+ title: string;
74
+ }>;
75
+
76
+ /**
77
+ * iOS-specific configuration.
78
+ */
79
+ export type ButtonIOSProps = Readonly<{
80
+ /** '' | 'bounce' | 'pulse' | 'variableColor' | 'wiggle' | 'rotate' | 'breathe' */
81
+ symbolEffect?: string;
82
+
83
+ /**
84
+ * '' runs the effect indefinitely; otherwise it plays once each time this
85
+ * value changes.
86
+ */
87
+ symbolEffectTrigger?: string;
88
+ }>;
89
+
90
+ export interface ButtonNativeProps extends ViewProps {
91
+ /** Button text. Empty for an icon-only button. */
92
+ label?: string;
93
+
94
+ /** Icon shown next to the label, or alone when there is no label. */
95
+ icon?: ButtonIconProps;
96
+
97
+ /** 'leading' | 'trailing' | 'top' | 'bottom' */
98
+ iconPosition?: string;
99
+
100
+ /**
101
+ * 'filled' | 'tonal' | 'outlined' | 'text' | 'elevated' | 'glass' |
102
+ * 'prominentGlass' | 'clearGlass' | 'prominentClearGlass'
103
+ */
104
+ variant?: string;
105
+
106
+ /** 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' */
107
+ size?: string;
108
+
109
+ /** '' (platform default) | 'round' | 'square' */
110
+ shape?: string;
111
+
112
+ /** Corner radius in points; negative = use `shape`. */
113
+ cornerRadius?: WithDefault<Double, -1>;
114
+
115
+ /** 'enabled' | 'disabled' */
116
+ interactivity?: string;
117
+
118
+ /** 'true' | 'false': spinner in place of the label and icon, presses ignored. */
119
+ loading?: string;
120
+
121
+ /** Container (background) color. */
122
+ color?: ColorValue;
123
+
124
+ /** Label and icon color. */
125
+ foregroundColor?: ColorValue;
126
+
127
+ /** Container color while disabled; unset = platform disabled look. */
128
+ disabledColor?: ColorValue;
129
+
130
+ /** Label and icon color while disabled; unset = platform disabled look. */
131
+ disabledForegroundColor?: ColorValue;
132
+
133
+ /** Android: ripple color shown while pressing. */
134
+ androidRippleColor?: ColorValue;
135
+
136
+ /** Android: outline color (outlined variant). */
137
+ androidStrokeColor?: ColorValue;
138
+
139
+ /** Android: Material style, 'm3' | 'expressive' */
140
+ androidMaterial?: string;
141
+
142
+ /** Label font. */
143
+ labelStyle?: ButtonLabelStyleProps;
144
+
145
+ /** Cap on the label's font scaling; 0 (or below 1) = no cap. */
146
+ maxFontSizeMultiplier?: Double;
147
+
148
+ /**
149
+ * Screen-reader label, applied to the native button rather than the host
150
+ * view. Empty means "use the label".
151
+ */
152
+ spokenLabel?: string;
153
+
154
+ /** '' (not a toggle) | 'true' | 'false': the controlled toggle state. */
155
+ selected?: string;
156
+
157
+ /**
158
+ * Bumped by JS after every onSelectedChange, so native applies `selected`
159
+ * again: a toggle the parent didn't accept goes back.
160
+ */
161
+ selectedEventCount?: Int32;
162
+
163
+ /** Menu shown when the button is pressed, flattened (see ButtonMenuItem). */
164
+ menu?: ReadonlyArray<ButtonMenuItem>;
165
+
166
+ ios?: ButtonIOSProps;
167
+
168
+ /**
169
+ * Haptic played when the button is pressed: '' (none added) | 'none' | 'selection' |
170
+ * 'light' | 'medium' | 'heavy' | 'success' | 'warning' | 'error'
171
+ */
172
+ haptics?: string;
173
+
174
+ /** Fired when the button is pressed. */
175
+ onButtonPress?: BubblingEventHandler<Readonly<{}>>;
176
+
177
+ /** Fired when a toggle button is pressed, with the state it asks for. */
178
+ onSelectedChange?: BubblingEventHandler<ButtonSelectedChangeEvent>;
179
+
180
+ /** Fired when a menu item is picked. */
181
+ onMenuSelect?: BubblingEventHandler<ButtonMenuSelectEvent>;
182
+
183
+ /** Fired when the menu opens. */
184
+ onMenuOpen?: BubblingEventHandler<Readonly<{}>>;
185
+
186
+ /** Fired when the menu closes. */
187
+ onMenuClose?: BubblingEventHandler<Readonly<{}>>;
188
+ }
189
+
190
+ export default codegenNativeComponent<ButtonNativeProps>(
191
+ 'PCButton'
192
+ ) as HostComponent<ButtonNativeProps>;
@@ -3,54 +3,8 @@
3
3
  // ContextMenu.tsx
4
4
  import React, { useCallback, useMemo } from 'react';
5
5
  import NativeContextMenu from './ContextMenuNativeComponent';
6
-
7
- /**
8
- * Attributes for a context menu action.
9
- */
10
-
11
- /**
12
- * A single action in the context menu.
13
- */
6
+ import { flattenMenuActions } from "./menuItems.js";
14
7
  import { jsx as _jsx } from "react/jsx-runtime";
15
- /**
16
- * Convert user-friendly subaction to native format (no further nesting).
17
- */
18
- function normalizeSubaction(action) {
19
- return {
20
- id: action.id,
21
- title: action.title,
22
- subtitle: action.subtitle,
23
- image: action.image,
24
- imageColor: action.imageColor,
25
- attributes: action.attributes ? {
26
- destructive: action.attributes.destructive ? 'true' : 'false',
27
- disabled: action.attributes.disabled ? 'true' : 'false',
28
- hidden: action.attributes.hidden ? 'true' : 'false'
29
- } : undefined,
30
- state: action.state
31
- };
32
- }
33
-
34
- /**
35
- * Convert user-friendly action to native format.
36
- * Note: Only one level of nesting is supported by the native component.
37
- */
38
- function normalizeAction(action) {
39
- return {
40
- id: action.id,
41
- title: action.title,
42
- subtitle: action.subtitle,
43
- image: action.image,
44
- imageColor: action.imageColor,
45
- attributes: action.attributes ? {
46
- destructive: action.attributes.destructive ? 'true' : 'false',
47
- disabled: action.attributes.disabled ? 'true' : 'false',
48
- hidden: action.attributes.hidden ? 'true' : 'false'
49
- } : undefined,
50
- state: action.state,
51
- subactions: action.subactions?.map(normalizeSubaction)
52
- };
53
- }
54
8
  export function ContextMenu(props) {
55
9
  const {
56
10
  style,
@@ -58,15 +12,17 @@ export function ContextMenu(props) {
58
12
  actions,
59
13
  disabled,
60
14
  trigger = 'longPress',
15
+ haptics,
61
16
  onPressAction,
62
17
  onMenuOpen,
63
18
  onMenuClose,
19
+ onPreviewPress,
64
20
  children,
65
21
  ios,
66
22
  android,
67
23
  ...viewProps
68
24
  } = props;
69
- const nativeActions = useMemo(() => actions.map(normalizeAction), [actions]);
25
+ const nativeActions = useMemo(() => flattenMenuActions(actions), [actions]);
70
26
  const handlePressAction = useCallback(e => {
71
27
  const {
72
28
  actionId,
@@ -80,6 +36,9 @@ export function ContextMenu(props) {
80
36
  const handleMenuClose = useCallback(() => {
81
37
  onMenuClose?.();
82
38
  }, [onMenuClose]);
39
+ const handlePreviewPress = useCallback(() => {
40
+ onPreviewPress?.();
41
+ }, [onPreviewPress]);
83
42
  const nativeIOS = useMemo(() => {
84
43
  if (!ios) return undefined;
85
44
  return {
@@ -99,9 +58,11 @@ export function ContextMenu(props) {
99
58
  actions: nativeActions,
100
59
  interactivity: disabled ? 'disabled' : 'enabled',
101
60
  trigger: trigger,
61
+ haptics: haptics ?? '',
102
62
  onPressAction: onPressAction ? handlePressAction : undefined,
103
63
  onMenuOpen: onMenuOpen ? handleMenuOpen : undefined,
104
64
  onMenuClose: onMenuClose ? handleMenuClose : undefined,
65
+ onPreviewPress: onPreviewPress ? handlePreviewPress : undefined,
105
66
  ios: nativeIOS,
106
67
  android: nativeAndroid,
107
68
  ...viewProps,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useMemo","NativeContextMenu","jsx","_jsx","normalizeSubaction","action","id","title","subtitle","image","imageColor","attributes","destructive","disabled","hidden","undefined","state","normalizeAction","subactions","map","ContextMenu","props","style","actions","trigger","onPressAction","onMenuOpen","onMenuClose","children","ios","android","viewProps","nativeActions","handlePressAction","e","actionId","actionTitle","nativeEvent","handleMenuOpen","handleMenuClose","nativeIOS","enablePreview","nativeAndroid","anchorPosition","visible","interactivity"],"sourceRoot":"../../src","sources":["ContextMenu.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useMemo","NativeContextMenu","flattenMenuActions","jsx","_jsx","ContextMenu","props","style","title","actions","disabled","trigger","haptics","onPressAction","onMenuOpen","onMenuClose","onPreviewPress","children","ios","android","viewProps","nativeActions","handlePressAction","e","actionId","actionTitle","nativeEvent","handleMenuOpen","handleMenuClose","handlePreviewPress","nativeIOS","undefined","enablePreview","nativeAndroid","anchorPosition","visible","interactivity"],"sourceRoot":"../../src","sources":["ContextMenu.tsx"],"mappings":";;AAAA;AACA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AAGnD,OAAOC,iBAAiB,MAEjB,8BAA8B;AACrC,SAASC,kBAAkB,QAAgC,gBAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAgFzE,OAAO,SAASC,WAAWA,CAACC,KAAuB,EAAsB;EACvE,MAAM;IACJC,KAAK;IACLC,KAAK;IACLC,OAAO;IACPC,QAAQ;IACRC,OAAO,GAAG,WAAW;IACrBC,OAAO;IACPC,aAAa;IACbC,UAAU;IACVC,WAAW;IACXC,cAAc;IACdC,QAAQ;IACRC,GAAG;IACHC,OAAO;IACP,GAAGC;EACL,CAAC,GAAGd,KAAK;EAET,MAAMe,aAAa,GAAGrB,OAAO,CAAC,MAAME,kBAAkB,CAACO,OAAO,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAE3E,MAAMa,iBAAiB,GAAGvB,WAAW,CAClCwB,CAA+C,IAAK;IACnD,MAAM;MAAEC,QAAQ;MAAEC;IAAY,CAAC,GAAGF,CAAC,CAACG,WAAW;IAC/Cb,aAAa,GAAGW,QAAQ,EAAEC,WAAW,CAAC;EACxC,CAAC,EACD,CAACZ,aAAa,CAChB,CAAC;EAED,MAAMc,cAAc,GAAG5B,WAAW,CAAC,MAAM;IACvCe,UAAU,GAAG,CAAC;EAChB,CAAC,EAAE,CAACA,UAAU,CAAC,CAAC;EAEhB,MAAMc,eAAe,GAAG7B,WAAW,CAAC,MAAM;IACxCgB,WAAW,GAAG,CAAC;EACjB,CAAC,EAAE,CAACA,WAAW,CAAC,CAAC;EAEjB,MAAMc,kBAAkB,GAAG9B,WAAW,CAAC,MAAM;IAC3CiB,cAAc,GAAG,CAAC;EACpB,CAAC,EAAE,CAACA,cAAc,CAAC,CAAC;EAEpB,MAAMc,SAAS,GAAG9B,OAAO,CAAC,MAAM;IAC9B,IAAI,CAACkB,GAAG,EAAE,OAAOa,SAAS;IAC1B,OAAO;MACLC,aAAa,EAAEd,GAAG,CAACc,aAAa,GAAG,MAAM,GAAG;IAC9C,CAAC;EACH,CAAC,EAAE,CAACd,GAAG,CAAC,CAAC;EAET,MAAMe,aAAa,GAAGjC,OAAO,CAAC,MAAM;IAClC,IAAI,CAACmB,OAAO,EAAE,OAAOY,SAAS;IAC9B,OAAO;MACLG,cAAc,EAAEf,OAAO,CAACe,cAAc;MACtCC,OAAO,EAAEhB,OAAO,CAACgB,OAAO,GAAG,MAAM,GAAG;IACtC,CAAC;EACH,CAAC,EAAE,CAAChB,OAAO,CAAC,CAAC;EAEb,oBACEf,IAAA,CAACH,iBAAiB;IAChBM,KAAK,EAAEA,KAAM;IACbC,KAAK,EAAEA,KAAM;IACbC,OAAO,EAAEY,aAAc;IACvBe,aAAa,EAAE1B,QAAQ,GAAG,UAAU,GAAG,SAAU;IACjDC,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAO,IAAI,EAAG;IACvBC,aAAa,EAAEA,aAAa,GAAGS,iBAAiB,GAAGS,SAAU;IAC7DjB,UAAU,EAAEA,UAAU,GAAGa,cAAc,GAAGI,SAAU;IACpDhB,WAAW,EAAEA,WAAW,GAAGa,eAAe,GAAGG,SAAU;IACvDf,cAAc,EAAEA,cAAc,GAAGa,kBAAkB,GAAGE,SAAU;IAChEb,GAAG,EAAEY,SAAU;IACfX,OAAO,EAAEc,aAAc;IAAA,GACnBb,SAAS;IAAAH,QAAA,EAEZA;EAAQ,CACQ,CAAC;AAExB","ignoreList":[]}
@@ -1,61 +1,48 @@
1
1
  // ContextMenuNativeComponent.ts
2
2
  import type { HostComponent, ViewProps } from 'react-native';
3
3
  import { codegenNativeComponent } from 'react-native';
4
- import type { BubblingEventHandler } from './codegenTypes';
4
+ import type { BubblingEventHandler, Double, Int32 } from './codegenTypes';
5
5
 
6
6
  /**
7
- * Attributes for a context menu action.
7
+ * One menu item. The JS action tree is flattened (see `menuItems.ts`): each
8
+ * item points at its parent submenu or section by index, so menus nest to any
9
+ * depth without a recursive codegen type. Every field is set; empty strings
10
+ * mean "none" and flags are 'true' | 'false'.
8
11
  */
9
- export type ContextMenuActionAttributes = Readonly<{
10
- /** Whether the action is destructive (red styling) */
11
- destructive?: string; // 'true' | 'false'
12
- /** Whether the action is disabled (grayed out) */
13
- disabled?: string; // 'true' | 'false'
14
- /** Whether the action is hidden */
15
- hidden?: string; // 'true' | 'false'
16
- }>;
17
-
18
- /**
19
- * A leaf subaction (no further nesting to avoid codegen recursion issues).
20
- */
21
- export type ContextMenuSubaction = Readonly<{
12
+ export type ContextMenuItem = Readonly<{
22
13
  /** Unique identifier returned in callbacks */
23
14
  id: string;
24
- /** Display title */
15
+ /** Display title (a section's header on iOS) */
25
16
  title: string;
26
17
  /** Secondary text (iOS only) */
27
- subtitle?: string;
28
- /** Icon name (SF Symbol on iOS, drawable resource on Android) */
29
- image?: string;
18
+ subtitle: string;
19
+ /** Index of the parent submenu or section; -1 at the top level */
20
+ parent: Int32;
21
+ /** 'action' | 'menu' | 'section' */
22
+ kind: string;
23
+ /** '' | 'sfSymbol' | 'drawable' | 'image' */
24
+ iconType: string;
25
+ /** SF Symbol / asset name (iOS) or drawable resource name (Android) */
26
+ iconName: string;
27
+ /** Resolved image URI when iconType === 'image' */
28
+ iconRequest: string;
29
+ iconUri: string;
30
+ /** Resolved image scale when iconType === 'image' */
31
+ iconScale: Double;
32
+ /** 'true' | 'false': draw the image as a tinted template */
33
+ iconTinted: string;
30
34
  /** Tint color for the icon (hex string, e.g., "#FF0000") */
31
- imageColor?: string;
32
- /** Action attributes */
33
- attributes?: ContextMenuActionAttributes;
34
- /** Checkmark state: 'off' | 'on' | 'mixed' */
35
- state?: string;
36
- }>;
37
-
38
- /**
39
- * A single action in the context menu.
40
- * Actions can be nested one level via `subactions` for submenus.
41
- */
42
- export type ContextMenuAction = Readonly<{
43
- /** Unique identifier returned in callbacks */
44
- id: string;
45
- /** Display title */
46
- title: string;
47
- /** Secondary text (iOS only) */
48
- subtitle?: string;
49
- /** Icon name (SF Symbol on iOS, drawable resource on Android) */
50
- image?: string;
51
- /** Tint color for the icon (hex string, e.g., "#FF0000") */
52
- imageColor?: string;
53
- /** Action attributes */
54
- attributes?: ContextMenuActionAttributes;
55
- /** Checkmark state: 'off' | 'on' | 'mixed' */
56
- state?: string;
57
- /** Nested actions for submenu (one level deep) */
58
- subactions?: ReadonlyArray<ContextMenuSubaction>;
35
+ imageColor: string;
36
+ /** 'true' | 'false' */
37
+ destructive: string;
38
+ /** 'true' | 'false' */
39
+ disabled: string;
40
+ /** 'true' | 'false' (iOS 16+) */
41
+ keepsMenuPresented: string;
42
+ /** '' | 'off' | 'on' | 'mixed' */
43
+ state: string;
44
+ /** The action's own haptics; '' = the component's */
45
+ haptics: string;
59
46
  }>;
60
47
 
61
48
  /**
@@ -102,9 +89,9 @@ export interface ContextMenuProps extends ViewProps {
102
89
  title?: string;
103
90
 
104
91
  /**
105
- * Menu actions.
92
+ * Menu items, flattened (see ContextMenuItem).
106
93
  */
107
- actions: ReadonlyArray<ContextMenuAction>;
94
+ actions: ReadonlyArray<ContextMenuItem>;
108
95
 
109
96
  /**
110
97
  * Enabled / disabled state.
@@ -118,6 +105,12 @@ export interface ContextMenuProps extends ViewProps {
118
105
  */
119
106
  trigger?: string; // ContextMenuTrigger
120
107
 
108
+ /**
109
+ * Haptic played when an action is pressed: '' (none added) | 'none' | 'selection' |
110
+ * 'light' | 'medium' | 'heavy' | 'success' | 'warning' | 'error'
111
+ */
112
+ haptics?: string;
113
+
121
114
  /**
122
115
  * Fired when user presses an action.
123
116
  */
@@ -133,6 +126,11 @@ export interface ContextMenuProps extends ViewProps {
133
126
  */
134
127
  onMenuClose?: BubblingEventHandler<Readonly<{}>>;
135
128
 
129
+ /**
130
+ * iOS: fired when the user taps the preview (with enablePreview).
131
+ */
132
+ onPreviewPress?: BubblingEventHandler<Readonly<{}>>;
133
+
136
134
  ios?: IOSProps;
137
135
  android?: AndroidProps;
138
136
  }