react-native-platform-components 1.4.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 (598) hide show
  1. package/PlatformComponents.podspec +1 -1
  2. package/README.md +33 -31
  3. package/android/src/main/java/com/platformcomponents/PCButtonGroupView.kt +175 -9
  4. package/android/src/main/java/com/platformcomponents/PCButtonGroupViewManager.kt +52 -2
  5. package/android/src/main/java/com/platformcomponents/PCButtonSupport.kt +44 -12
  6. package/android/src/main/java/com/platformcomponents/PCButtonView.kt +187 -5
  7. package/android/src/main/java/com/platformcomponents/PCButtonViewManager.kt +85 -7
  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 +6 -1
  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 +132 -0
  16. package/android/src/main/java/com/platformcomponents/PCFloatingToolbarViewManager.kt +8 -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 +24 -14
  28. package/android/src/main/java/com/platformcomponents/PCSegmentedControlViewManager.kt +14 -2
  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 +415 -40
  34. package/android/src/main/java/com/platformcomponents/PCTextFieldViewManager.kt +109 -3
  35. package/android/src/main/java/com/platformcomponents/PCThemeSupport.kt +37 -0
  36. package/android/src/main/java/com/platformcomponents/PlatformComponentsPackage.kt +4 -0
  37. package/android/src/main/res/drawable/pc_ic_search.xml +12 -0
  38. package/android/src/main/res/values/ids.xml +5 -0
  39. package/android/src/main/res/values/styles.xml +24 -0
  40. package/ios/PCButton.mm +122 -7
  41. package/ios/PCButtonGroup.mm +68 -1
  42. package/ios/PCButtonGroupView.swift +225 -6
  43. package/ios/PCButtonSupport.swift +181 -10
  44. package/ios/PCButtonView.swift +297 -14
  45. package/ios/PCConstants.swift +23 -2
  46. package/ios/PCContextMenu.mm +28 -110
  47. package/ios/PCContextMenu.swift +106 -167
  48. package/ios/PCDatePicker.mm +21 -9
  49. package/ios/PCDatePickerView.swift +94 -20
  50. package/ios/PCFloatingActionButton.h +10 -0
  51. package/ios/PCFloatingActionButton.mm +177 -0
  52. package/ios/PCFloatingActionButtonView.swift +426 -0
  53. package/ios/PCFloatingToolbar.mm +27 -0
  54. package/ios/PCFloatingToolbarView.swift +241 -0
  55. package/ios/PCHaptics.swift +91 -0
  56. package/ios/PCImageLoader.swift +76 -12
  57. package/ios/PCLiquidGlass.mm +36 -0
  58. package/ios/PCLiquidGlass.swift +221 -114
  59. package/ios/PCLiquidGlassContainer.h +10 -0
  60. package/ios/PCLiquidGlassContainer.mm +84 -0
  61. package/ios/PCLiquidGlassContainer.swift +69 -0
  62. package/ios/PCMenuItems.h +76 -0
  63. package/ios/PCMenuSupport.swift +350 -0
  64. package/ios/PCNavigationRail.h +10 -0
  65. package/ios/PCNavigationRail.mm +270 -0
  66. package/ios/PCNavigationRailView.swift +415 -0
  67. package/ios/PCSegmentedControl.mm +17 -2
  68. package/ios/PCSegmentedControl.swift +57 -7
  69. package/ios/PCSelectionMenu.mm +36 -8
  70. package/ios/PCSelectionMenu.swift +224 -48
  71. package/ios/PCTabBar.h +10 -0
  72. package/ios/PCTabBar.mm +285 -0
  73. package/ios/PCTabBarAccessory.h +10 -0
  74. package/ios/PCTabBarAccessory.mm +93 -0
  75. package/ios/PCTabBarAccessoryView.swift +96 -0
  76. package/ios/PCTabBarView.swift +671 -0
  77. package/ios/PCTextField.mm +159 -4
  78. package/ios/PCTextFieldView.swift +603 -57
  79. package/lib/commonjs/Button.js +73 -1
  80. package/lib/commonjs/Button.js.map +1 -1
  81. package/lib/commonjs/ButtonGroup.js +13 -3
  82. package/lib/commonjs/ButtonGroup.js.map +1 -1
  83. package/lib/commonjs/ButtonGroupNativeComponent.ts +74 -4
  84. package/lib/commonjs/ButtonNativeComponent.ts +119 -3
  85. package/lib/commonjs/ContextMenu.js +9 -48
  86. package/lib/commonjs/ContextMenu.js.map +1 -1
  87. package/lib/commonjs/ContextMenuNativeComponent.ts +47 -49
  88. package/lib/commonjs/DatePicker.js +98 -2
  89. package/lib/commonjs/DatePicker.js.map +1 -1
  90. package/lib/commonjs/DatePickerNativeComponent.ts +19 -2
  91. package/lib/commonjs/FloatingActionButton.js +60 -0
  92. package/lib/commonjs/FloatingActionButton.js.map +1 -0
  93. package/lib/commonjs/FloatingActionButtonNativeComponent.ts +58 -0
  94. package/lib/commonjs/FloatingToolbar.js +9 -1
  95. package/lib/commonjs/FloatingToolbar.js.map +1 -1
  96. package/lib/commonjs/FloatingToolbarNativeComponent.ts +16 -0
  97. package/lib/commonjs/LiquidGlass.js +7 -1
  98. package/lib/commonjs/LiquidGlass.js.map +1 -1
  99. package/lib/commonjs/LiquidGlassContainer.js +32 -0
  100. package/lib/commonjs/LiquidGlassContainer.js.map +1 -0
  101. package/lib/commonjs/LiquidGlassContainerNativeComponent.ts +17 -0
  102. package/lib/commonjs/LiquidGlassNativeComponent.ts +8 -0
  103. package/lib/commonjs/NavigationRail.js +104 -0
  104. package/lib/commonjs/NavigationRail.js.map +1 -0
  105. package/lib/commonjs/NavigationRailNativeComponent.ts +107 -0
  106. package/lib/commonjs/PlatformComponentsProvider.js +18 -0
  107. package/lib/commonjs/PlatformComponentsProvider.js.map +1 -0
  108. package/lib/commonjs/SegmentedControl.js +7 -0
  109. package/lib/commonjs/SegmentedControl.js.map +1 -1
  110. package/lib/commonjs/SegmentedControlNativeComponent.ts +11 -0
  111. package/lib/commonjs/SelectionMenu.js +27 -3
  112. package/lib/commonjs/SelectionMenu.js.map +1 -1
  113. package/lib/commonjs/SelectionMenuNativeComponent.ts +26 -4
  114. package/lib/commonjs/SplitButton.js +98 -0
  115. package/lib/commonjs/SplitButton.js.map +1 -0
  116. package/lib/commonjs/TabBar.js +203 -0
  117. package/lib/commonjs/TabBar.js.map +1 -0
  118. package/lib/commonjs/TabBarAccessoryNativeComponent.ts +19 -0
  119. package/lib/commonjs/TabBarNativeComponent.ts +145 -0
  120. package/lib/commonjs/TextField.js +171 -8
  121. package/lib/commonjs/TextField.js.map +1 -1
  122. package/lib/commonjs/TextFieldNativeComponent.ts +110 -4
  123. package/lib/commonjs/focusRegistry.js +2 -1
  124. package/lib/commonjs/focusRegistry.js.map +1 -1
  125. package/lib/commonjs/haptics.js +2 -0
  126. package/lib/commonjs/haptics.js.map +1 -0
  127. package/lib/commonjs/icons.js +15 -1
  128. package/lib/commonjs/icons.js.map +1 -1
  129. package/lib/commonjs/index.js +77 -0
  130. package/lib/commonjs/index.js.map +1 -1
  131. package/lib/commonjs/index.web.js +156 -92
  132. package/lib/commonjs/index.web.js.map +1 -1
  133. package/lib/commonjs/jest.js +910 -0
  134. package/lib/commonjs/jest.js.map +1 -0
  135. package/lib/commonjs/menuItems.js +68 -0
  136. package/lib/commonjs/menuItems.js.map +1 -0
  137. package/lib/commonjs/selectionIdentifiers.js +18 -0
  138. package/lib/commonjs/selectionIdentifiers.js.map +1 -0
  139. package/lib/commonjs/submitBehavior.js +19 -0
  140. package/lib/commonjs/submitBehavior.js.map +1 -0
  141. package/lib/commonjs/tabItems.js +49 -0
  142. package/lib/commonjs/tabItems.js.map +1 -0
  143. package/lib/commonjs/web/Button.js +170 -0
  144. package/lib/commonjs/web/Button.js.map +1 -0
  145. package/lib/commonjs/web/ButtonGroup.js +119 -0
  146. package/lib/commonjs/web/ButtonGroup.js.map +1 -0
  147. package/lib/commonjs/web/DatePicker.js +168 -0
  148. package/lib/commonjs/web/DatePicker.js.map +1 -0
  149. package/lib/commonjs/web/DateRangePicker.js +137 -0
  150. package/lib/commonjs/web/DateRangePicker.js.map +1 -0
  151. package/lib/commonjs/web/Dialog.js +54 -0
  152. package/lib/commonjs/web/Dialog.js.map +1 -0
  153. package/lib/commonjs/web/FloatingActionButton.js +98 -0
  154. package/lib/commonjs/web/FloatingActionButton.js.map +1 -0
  155. package/lib/commonjs/web/Icon.js +34 -0
  156. package/lib/commonjs/web/Icon.js.map +1 -0
  157. package/lib/commonjs/web/NativeTheme.js +28 -0
  158. package/lib/commonjs/web/NativeTheme.js.map +1 -0
  159. package/lib/commonjs/web/NavigationRail.js +139 -0
  160. package/lib/commonjs/web/NavigationRail.js.map +1 -0
  161. package/lib/commonjs/web/PlatformComponentsProvider.js +51 -0
  162. package/lib/commonjs/web/PlatformComponentsProvider.js.map +1 -0
  163. package/lib/commonjs/web/SegmentedControl.js +117 -0
  164. package/lib/commonjs/web/SegmentedControl.js.map +1 -0
  165. package/lib/commonjs/web/SelectionMenu.js +142 -0
  166. package/lib/commonjs/web/SelectionMenu.js.map +1 -0
  167. package/lib/commonjs/web/SplitButton.js +35 -0
  168. package/lib/commonjs/web/SplitButton.js.map +1 -0
  169. package/lib/commonjs/web/TabBar.js +131 -0
  170. package/lib/commonjs/web/TabBar.js.map +1 -0
  171. package/lib/commonjs/web/TextField.js +322 -0
  172. package/lib/commonjs/web/TextField.js.map +1 -0
  173. package/lib/commonjs/web/components.js +36 -0
  174. package/lib/commonjs/web/components.js.map +1 -0
  175. package/lib/commonjs/web/containers.js +121 -0
  176. package/lib/commonjs/web/containers.js.map +1 -0
  177. package/lib/commonjs/web/dateInput.js +116 -0
  178. package/lib/commonjs/web/dateInput.js.map +1 -0
  179. package/lib/commonjs/web/shared.js +192 -0
  180. package/lib/commonjs/web/shared.js.map +1 -0
  181. package/lib/commonjs/webComponents.js +6 -0
  182. package/lib/commonjs/webComponents.js.map +1 -0
  183. package/lib/module/Button.js +74 -2
  184. package/lib/module/Button.js.map +1 -1
  185. package/lib/module/ButtonGroup.js +13 -3
  186. package/lib/module/ButtonGroup.js.map +1 -1
  187. package/lib/module/ButtonGroupNativeComponent.ts +74 -4
  188. package/lib/module/ButtonNativeComponent.ts +119 -3
  189. package/lib/module/ContextMenu.js +9 -48
  190. package/lib/module/ContextMenu.js.map +1 -1
  191. package/lib/module/ContextMenuNativeComponent.ts +47 -49
  192. package/lib/module/DatePicker.js +98 -4
  193. package/lib/module/DatePicker.js.map +1 -1
  194. package/lib/module/DatePickerNativeComponent.ts +19 -2
  195. package/lib/module/FloatingActionButton.js +53 -0
  196. package/lib/module/FloatingActionButton.js.map +1 -0
  197. package/lib/module/FloatingActionButtonNativeComponent.ts +58 -0
  198. package/lib/module/FloatingToolbar.js +9 -1
  199. package/lib/module/FloatingToolbar.js.map +1 -1
  200. package/lib/module/FloatingToolbarNativeComponent.ts +16 -0
  201. package/lib/module/LiquidGlass.js +7 -1
  202. package/lib/module/LiquidGlass.js.map +1 -1
  203. package/lib/module/LiquidGlassContainer.js +26 -0
  204. package/lib/module/LiquidGlassContainer.js.map +1 -0
  205. package/lib/module/LiquidGlassContainerNativeComponent.ts +17 -0
  206. package/lib/module/LiquidGlassNativeComponent.ts +8 -0
  207. package/lib/module/NavigationRail.js +99 -0
  208. package/lib/module/NavigationRail.js.map +1 -0
  209. package/lib/module/NavigationRailNativeComponent.ts +107 -0
  210. package/lib/module/PlatformComponentsProvider.js +13 -0
  211. package/lib/module/PlatformComponentsProvider.js.map +1 -0
  212. package/lib/module/SegmentedControl.js +9 -1
  213. package/lib/module/SegmentedControl.js.map +1 -1
  214. package/lib/module/SegmentedControlNativeComponent.ts +11 -0
  215. package/lib/module/SelectionMenu.js +27 -3
  216. package/lib/module/SelectionMenu.js.map +1 -1
  217. package/lib/module/SelectionMenuNativeComponent.ts +26 -4
  218. package/lib/module/SplitButton.js +91 -0
  219. package/lib/module/SplitButton.js.map +1 -0
  220. package/lib/module/TabBar.js +196 -0
  221. package/lib/module/TabBar.js.map +1 -0
  222. package/lib/module/TabBarAccessoryNativeComponent.ts +19 -0
  223. package/lib/module/TabBarNativeComponent.ts +145 -0
  224. package/lib/module/TextField.js +172 -9
  225. package/lib/module/TextField.js.map +1 -1
  226. package/lib/module/TextFieldNativeComponent.ts +110 -4
  227. package/lib/module/focusRegistry.js +1 -0
  228. package/lib/module/focusRegistry.js.map +1 -1
  229. package/lib/module/haptics.js +2 -0
  230. package/lib/module/haptics.js.map +1 -0
  231. package/lib/module/icons.js +15 -1
  232. package/lib/module/icons.js.map +1 -1
  233. package/lib/module/index.js +7 -0
  234. package/lib/module/index.js.map +1 -1
  235. package/lib/module/index.web.js +12 -87
  236. package/lib/module/index.web.js.map +1 -1
  237. package/lib/module/jest.js +840 -0
  238. package/lib/module/jest.js.map +1 -0
  239. package/lib/module/menuItems.js +65 -0
  240. package/lib/module/menuItems.js.map +1 -0
  241. package/lib/module/selectionIdentifiers.js +14 -0
  242. package/lib/module/selectionIdentifiers.js.map +1 -0
  243. package/lib/module/submitBehavior.js +15 -0
  244. package/lib/module/submitBehavior.js.map +1 -0
  245. package/lib/module/tabItems.js +45 -0
  246. package/lib/module/tabItems.js.map +1 -0
  247. package/lib/module/web/Button.js +164 -0
  248. package/lib/module/web/Button.js.map +1 -0
  249. package/lib/module/web/ButtonGroup.js +113 -0
  250. package/lib/module/web/ButtonGroup.js.map +1 -0
  251. package/lib/module/web/DatePicker.js +162 -0
  252. package/lib/module/web/DatePicker.js.map +1 -0
  253. package/lib/module/web/DateRangePicker.js +131 -0
  254. package/lib/module/web/DateRangePicker.js.map +1 -0
  255. package/lib/module/web/Dialog.js +48 -0
  256. package/lib/module/web/Dialog.js.map +1 -0
  257. package/lib/module/web/FloatingActionButton.js +94 -0
  258. package/lib/module/web/FloatingActionButton.js.map +1 -0
  259. package/lib/module/web/Icon.js +29 -0
  260. package/lib/module/web/Icon.js.map +1 -0
  261. package/lib/module/web/NativeTheme.js +23 -0
  262. package/lib/module/web/NativeTheme.js.map +1 -0
  263. package/lib/module/web/NavigationRail.js +133 -0
  264. package/lib/module/web/NavigationRail.js.map +1 -0
  265. package/lib/module/web/PlatformComponentsProvider.js +44 -0
  266. package/lib/module/web/PlatformComponentsProvider.js.map +1 -0
  267. package/lib/module/web/SegmentedControl.js +112 -0
  268. package/lib/module/web/SegmentedControl.js.map +1 -0
  269. package/lib/module/web/SelectionMenu.js +137 -0
  270. package/lib/module/web/SelectionMenu.js.map +1 -0
  271. package/lib/module/web/SplitButton.js +30 -0
  272. package/lib/module/web/SplitButton.js.map +1 -0
  273. package/lib/module/web/TabBar.js +126 -0
  274. package/lib/module/web/TabBar.js.map +1 -0
  275. package/lib/module/web/TextField.js +316 -0
  276. package/lib/module/web/TextField.js.map +1 -0
  277. package/lib/module/web/components.js +33 -0
  278. package/lib/module/web/components.js.map +1 -0
  279. package/lib/module/web/containers.js +112 -0
  280. package/lib/module/web/containers.js.map +1 -0
  281. package/lib/module/web/dateInput.js +109 -0
  282. package/lib/module/web/dateInput.js.map +1 -0
  283. package/lib/module/web/shared.js +179 -0
  284. package/lib/module/web/shared.js.map +1 -0
  285. package/lib/module/webComponents.js +4 -0
  286. package/lib/module/webComponents.js.map +1 -0
  287. package/lib/typescript/commonjs/docs/sidebars.d.ts.map +1 -1
  288. package/lib/typescript/commonjs/src/Button.d.ts +111 -3
  289. package/lib/typescript/commonjs/src/Button.d.ts.map +1 -1
  290. package/lib/typescript/commonjs/src/ButtonGroup.d.ts +21 -6
  291. package/lib/typescript/commonjs/src/ButtonGroup.d.ts.map +1 -1
  292. package/lib/typescript/commonjs/src/ButtonGroupNativeComponent.d.ts +64 -3
  293. package/lib/typescript/commonjs/src/ButtonGroupNativeComponent.d.ts.map +1 -1
  294. package/lib/typescript/commonjs/src/ButtonNativeComponent.d.ts +94 -3
  295. package/lib/typescript/commonjs/src/ButtonNativeComponent.d.ts.map +1 -1
  296. package/lib/typescript/commonjs/src/ContextMenu.d.ts +20 -33
  297. package/lib/typescript/commonjs/src/ContextMenu.d.ts.map +1 -1
  298. package/lib/typescript/commonjs/src/ContextMenuNativeComponent.d.ts +45 -47
  299. package/lib/typescript/commonjs/src/ContextMenuNativeComponent.d.ts.map +1 -1
  300. package/lib/typescript/commonjs/src/DatePicker.d.ts +74 -1
  301. package/lib/typescript/commonjs/src/DatePicker.d.ts.map +1 -1
  302. package/lib/typescript/commonjs/src/DatePickerNativeComponent.d.ts +16 -1
  303. package/lib/typescript/commonjs/src/DatePickerNativeComponent.d.ts.map +1 -1
  304. package/lib/typescript/commonjs/src/FloatingActionButton.d.ts +67 -0
  305. package/lib/typescript/commonjs/src/FloatingActionButton.d.ts.map +1 -0
  306. package/lib/typescript/commonjs/src/FloatingActionButtonNativeComponent.d.ts +43 -0
  307. package/lib/typescript/commonjs/src/FloatingActionButtonNativeComponent.d.ts.map +1 -0
  308. package/lib/typescript/commonjs/src/FloatingToolbar.d.ts +30 -0
  309. package/lib/typescript/commonjs/src/FloatingToolbar.d.ts.map +1 -1
  310. package/lib/typescript/commonjs/src/FloatingToolbarNativeComponent.d.ts +12 -0
  311. package/lib/typescript/commonjs/src/FloatingToolbarNativeComponent.d.ts.map +1 -1
  312. package/lib/typescript/commonjs/src/LiquidGlass.d.ts +17 -0
  313. package/lib/typescript/commonjs/src/LiquidGlass.d.ts.map +1 -1
  314. package/lib/typescript/commonjs/src/LiquidGlassContainer.d.ts +27 -0
  315. package/lib/typescript/commonjs/src/LiquidGlassContainer.d.ts.map +1 -0
  316. package/lib/typescript/commonjs/src/LiquidGlassContainerNativeComponent.d.ts +13 -0
  317. package/lib/typescript/commonjs/src/LiquidGlassContainerNativeComponent.d.ts.map +1 -0
  318. package/lib/typescript/commonjs/src/LiquidGlassNativeComponent.d.ts +7 -0
  319. package/lib/typescript/commonjs/src/LiquidGlassNativeComponent.d.ts.map +1 -1
  320. package/lib/typescript/commonjs/src/NavigationRail.d.ts +86 -0
  321. package/lib/typescript/commonjs/src/NavigationRail.d.ts.map +1 -0
  322. package/lib/typescript/commonjs/src/NavigationRailNativeComponent.d.ts +81 -0
  323. package/lib/typescript/commonjs/src/NavigationRailNativeComponent.d.ts.map +1 -0
  324. package/lib/typescript/commonjs/src/PlatformComponentsProvider.d.ts +6 -0
  325. package/lib/typescript/commonjs/src/PlatformComponentsProvider.d.ts.map +1 -0
  326. package/lib/typescript/commonjs/src/SegmentedControl.d.ts +18 -1
  327. package/lib/typescript/commonjs/src/SegmentedControl.d.ts.map +1 -1
  328. package/lib/typescript/commonjs/src/SegmentedControlNativeComponent.d.ts +9 -0
  329. package/lib/typescript/commonjs/src/SegmentedControlNativeComponent.d.ts.map +1 -1
  330. package/lib/typescript/commonjs/src/SelectionMenu.d.ts +44 -2
  331. package/lib/typescript/commonjs/src/SelectionMenu.d.ts.map +1 -1
  332. package/lib/typescript/commonjs/src/SelectionMenuNativeComponent.d.ts +20 -4
  333. package/lib/typescript/commonjs/src/SelectionMenuNativeComponent.d.ts.map +1 -1
  334. package/lib/typescript/commonjs/src/SplitButton.d.ts +83 -0
  335. package/lib/typescript/commonjs/src/SplitButton.d.ts.map +1 -0
  336. package/lib/typescript/commonjs/src/TabBar.d.ts +144 -0
  337. package/lib/typescript/commonjs/src/TabBar.d.ts.map +1 -0
  338. package/lib/typescript/commonjs/src/TabBarAccessoryNativeComponent.d.ts +13 -0
  339. package/lib/typescript/commonjs/src/TabBarAccessoryNativeComponent.d.ts.map +1 -0
  340. package/lib/typescript/commonjs/src/TabBarNativeComponent.d.ts +110 -0
  341. package/lib/typescript/commonjs/src/TabBarNativeComponent.d.ts.map +1 -0
  342. package/lib/typescript/commonjs/src/TextField.d.ts +166 -8
  343. package/lib/typescript/commonjs/src/TextField.d.ts.map +1 -1
  344. package/lib/typescript/commonjs/src/TextFieldNativeComponent.d.ts +81 -3
  345. package/lib/typescript/commonjs/src/TextFieldNativeComponent.d.ts.map +1 -1
  346. package/lib/typescript/commonjs/src/focusRegistry.d.ts.map +1 -1
  347. package/lib/typescript/commonjs/src/haptics.d.ts +20 -0
  348. package/lib/typescript/commonjs/src/haptics.d.ts.map +1 -0
  349. package/lib/typescript/commonjs/src/icons.d.ts +7 -1
  350. package/lib/typescript/commonjs/src/icons.d.ts.map +1 -1
  351. package/lib/typescript/commonjs/src/index.d.ts +7 -0
  352. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  353. package/lib/typescript/commonjs/src/index.web.d.ts +25 -254
  354. package/lib/typescript/commonjs/src/index.web.d.ts.map +1 -1
  355. package/lib/typescript/commonjs/src/jest.d.ts +139 -0
  356. package/lib/typescript/commonjs/src/jest.d.ts.map +1 -0
  357. package/lib/typescript/commonjs/src/menuItems.d.ts +100 -0
  358. package/lib/typescript/commonjs/src/menuItems.d.ts.map +1 -0
  359. package/lib/typescript/commonjs/src/selectionIdentifiers.d.ts +3 -0
  360. package/lib/typescript/commonjs/src/selectionIdentifiers.d.ts.map +1 -0
  361. package/lib/typescript/commonjs/src/submitBehavior.d.ts +9 -0
  362. package/lib/typescript/commonjs/src/submitBehavior.d.ts.map +1 -0
  363. package/lib/typescript/commonjs/src/tabItems.d.ts +55 -0
  364. package/lib/typescript/commonjs/src/tabItems.d.ts.map +1 -0
  365. package/lib/typescript/commonjs/src/web/Button.d.ts +9 -0
  366. package/lib/typescript/commonjs/src/web/Button.d.ts.map +1 -0
  367. package/lib/typescript/commonjs/src/web/ButtonGroup.d.ts +11 -0
  368. package/lib/typescript/commonjs/src/web/ButtonGroup.d.ts.map +1 -0
  369. package/lib/typescript/commonjs/src/web/DatePicker.d.ts +14 -0
  370. package/lib/typescript/commonjs/src/web/DatePicker.d.ts.map +1 -0
  371. package/lib/typescript/commonjs/src/web/DateRangePicker.d.ts +11 -0
  372. package/lib/typescript/commonjs/src/web/DateRangePicker.d.ts.map +1 -0
  373. package/lib/typescript/commonjs/src/web/Dialog.d.ts +12 -0
  374. package/lib/typescript/commonjs/src/web/Dialog.d.ts.map +1 -0
  375. package/lib/typescript/commonjs/src/web/FloatingActionButton.d.ts +8 -0
  376. package/lib/typescript/commonjs/src/web/FloatingActionButton.d.ts.map +1 -0
  377. package/lib/typescript/commonjs/src/web/Icon.d.ts +12 -0
  378. package/lib/typescript/commonjs/src/web/Icon.d.ts.map +1 -0
  379. package/lib/typescript/commonjs/src/web/NativeTheme.d.ts +10 -0
  380. package/lib/typescript/commonjs/src/web/NativeTheme.d.ts.map +1 -0
  381. package/lib/typescript/commonjs/src/web/NavigationRail.d.ts +8 -0
  382. package/lib/typescript/commonjs/src/web/NavigationRail.d.ts.map +1 -0
  383. package/lib/typescript/commonjs/src/web/PlatformComponentsProvider.d.ts +10 -0
  384. package/lib/typescript/commonjs/src/web/PlatformComponentsProvider.d.ts.map +1 -0
  385. package/lib/typescript/commonjs/src/web/SegmentedControl.d.ts +8 -0
  386. package/lib/typescript/commonjs/src/web/SegmentedControl.d.ts.map +1 -0
  387. package/lib/typescript/commonjs/src/web/SelectionMenu.d.ts +10 -0
  388. package/lib/typescript/commonjs/src/web/SelectionMenu.d.ts.map +1 -0
  389. package/lib/typescript/commonjs/src/web/SplitButton.d.ts +9 -0
  390. package/lib/typescript/commonjs/src/web/SplitButton.d.ts.map +1 -0
  391. package/lib/typescript/commonjs/src/web/TabBar.d.ts +9 -0
  392. package/lib/typescript/commonjs/src/web/TabBar.d.ts.map +1 -0
  393. package/lib/typescript/commonjs/src/web/TextField.d.ts +9 -0
  394. package/lib/typescript/commonjs/src/web/TextField.d.ts.map +1 -0
  395. package/lib/typescript/commonjs/src/web/components.d.ts +17 -0
  396. package/lib/typescript/commonjs/src/web/components.d.ts.map +1 -0
  397. package/lib/typescript/commonjs/src/web/containers.d.ts +24 -0
  398. package/lib/typescript/commonjs/src/web/containers.d.ts.map +1 -0
  399. package/lib/typescript/commonjs/src/web/dateInput.d.ts +20 -0
  400. package/lib/typescript/commonjs/src/web/dateInput.d.ts.map +1 -0
  401. package/lib/typescript/commonjs/src/web/shared.d.ts +43 -0
  402. package/lib/typescript/commonjs/src/web/shared.d.ts.map +1 -0
  403. package/lib/typescript/commonjs/src/webComponents.d.ts +43 -0
  404. package/lib/typescript/commonjs/src/webComponents.d.ts.map +1 -0
  405. package/lib/typescript/module/docs/sidebars.d.ts.map +1 -1
  406. package/lib/typescript/module/src/Button.d.ts +111 -3
  407. package/lib/typescript/module/src/Button.d.ts.map +1 -1
  408. package/lib/typescript/module/src/ButtonGroup.d.ts +21 -6
  409. package/lib/typescript/module/src/ButtonGroup.d.ts.map +1 -1
  410. package/lib/typescript/module/src/ButtonGroupNativeComponent.d.ts +64 -3
  411. package/lib/typescript/module/src/ButtonGroupNativeComponent.d.ts.map +1 -1
  412. package/lib/typescript/module/src/ButtonNativeComponent.d.ts +94 -3
  413. package/lib/typescript/module/src/ButtonNativeComponent.d.ts.map +1 -1
  414. package/lib/typescript/module/src/ContextMenu.d.ts +20 -33
  415. package/lib/typescript/module/src/ContextMenu.d.ts.map +1 -1
  416. package/lib/typescript/module/src/ContextMenuNativeComponent.d.ts +45 -47
  417. package/lib/typescript/module/src/ContextMenuNativeComponent.d.ts.map +1 -1
  418. package/lib/typescript/module/src/DatePicker.d.ts +74 -1
  419. package/lib/typescript/module/src/DatePicker.d.ts.map +1 -1
  420. package/lib/typescript/module/src/DatePickerNativeComponent.d.ts +16 -1
  421. package/lib/typescript/module/src/DatePickerNativeComponent.d.ts.map +1 -1
  422. package/lib/typescript/module/src/FloatingActionButton.d.ts +67 -0
  423. package/lib/typescript/module/src/FloatingActionButton.d.ts.map +1 -0
  424. package/lib/typescript/module/src/FloatingActionButtonNativeComponent.d.ts +43 -0
  425. package/lib/typescript/module/src/FloatingActionButtonNativeComponent.d.ts.map +1 -0
  426. package/lib/typescript/module/src/FloatingToolbar.d.ts +30 -0
  427. package/lib/typescript/module/src/FloatingToolbar.d.ts.map +1 -1
  428. package/lib/typescript/module/src/FloatingToolbarNativeComponent.d.ts +12 -0
  429. package/lib/typescript/module/src/FloatingToolbarNativeComponent.d.ts.map +1 -1
  430. package/lib/typescript/module/src/LiquidGlass.d.ts +17 -0
  431. package/lib/typescript/module/src/LiquidGlass.d.ts.map +1 -1
  432. package/lib/typescript/module/src/LiquidGlassContainer.d.ts +27 -0
  433. package/lib/typescript/module/src/LiquidGlassContainer.d.ts.map +1 -0
  434. package/lib/typescript/module/src/LiquidGlassContainerNativeComponent.d.ts +13 -0
  435. package/lib/typescript/module/src/LiquidGlassContainerNativeComponent.d.ts.map +1 -0
  436. package/lib/typescript/module/src/LiquidGlassNativeComponent.d.ts +7 -0
  437. package/lib/typescript/module/src/LiquidGlassNativeComponent.d.ts.map +1 -1
  438. package/lib/typescript/module/src/NavigationRail.d.ts +86 -0
  439. package/lib/typescript/module/src/NavigationRail.d.ts.map +1 -0
  440. package/lib/typescript/module/src/NavigationRailNativeComponent.d.ts +81 -0
  441. package/lib/typescript/module/src/NavigationRailNativeComponent.d.ts.map +1 -0
  442. package/lib/typescript/module/src/PlatformComponentsProvider.d.ts +6 -0
  443. package/lib/typescript/module/src/PlatformComponentsProvider.d.ts.map +1 -0
  444. package/lib/typescript/module/src/SegmentedControl.d.ts +18 -1
  445. package/lib/typescript/module/src/SegmentedControl.d.ts.map +1 -1
  446. package/lib/typescript/module/src/SegmentedControlNativeComponent.d.ts +9 -0
  447. package/lib/typescript/module/src/SegmentedControlNativeComponent.d.ts.map +1 -1
  448. package/lib/typescript/module/src/SelectionMenu.d.ts +44 -2
  449. package/lib/typescript/module/src/SelectionMenu.d.ts.map +1 -1
  450. package/lib/typescript/module/src/SelectionMenuNativeComponent.d.ts +20 -4
  451. package/lib/typescript/module/src/SelectionMenuNativeComponent.d.ts.map +1 -1
  452. package/lib/typescript/module/src/SplitButton.d.ts +83 -0
  453. package/lib/typescript/module/src/SplitButton.d.ts.map +1 -0
  454. package/lib/typescript/module/src/TabBar.d.ts +144 -0
  455. package/lib/typescript/module/src/TabBar.d.ts.map +1 -0
  456. package/lib/typescript/module/src/TabBarAccessoryNativeComponent.d.ts +13 -0
  457. package/lib/typescript/module/src/TabBarAccessoryNativeComponent.d.ts.map +1 -0
  458. package/lib/typescript/module/src/TabBarNativeComponent.d.ts +110 -0
  459. package/lib/typescript/module/src/TabBarNativeComponent.d.ts.map +1 -0
  460. package/lib/typescript/module/src/TextField.d.ts +166 -8
  461. package/lib/typescript/module/src/TextField.d.ts.map +1 -1
  462. package/lib/typescript/module/src/TextFieldNativeComponent.d.ts +81 -3
  463. package/lib/typescript/module/src/TextFieldNativeComponent.d.ts.map +1 -1
  464. package/lib/typescript/module/src/focusRegistry.d.ts.map +1 -1
  465. package/lib/typescript/module/src/haptics.d.ts +20 -0
  466. package/lib/typescript/module/src/haptics.d.ts.map +1 -0
  467. package/lib/typescript/module/src/icons.d.ts +7 -1
  468. package/lib/typescript/module/src/icons.d.ts.map +1 -1
  469. package/lib/typescript/module/src/index.d.ts +7 -0
  470. package/lib/typescript/module/src/index.d.ts.map +1 -1
  471. package/lib/typescript/module/src/index.web.d.ts +25 -254
  472. package/lib/typescript/module/src/index.web.d.ts.map +1 -1
  473. package/lib/typescript/module/src/jest.d.ts +139 -0
  474. package/lib/typescript/module/src/jest.d.ts.map +1 -0
  475. package/lib/typescript/module/src/menuItems.d.ts +100 -0
  476. package/lib/typescript/module/src/menuItems.d.ts.map +1 -0
  477. package/lib/typescript/module/src/selectionIdentifiers.d.ts +3 -0
  478. package/lib/typescript/module/src/selectionIdentifiers.d.ts.map +1 -0
  479. package/lib/typescript/module/src/submitBehavior.d.ts +9 -0
  480. package/lib/typescript/module/src/submitBehavior.d.ts.map +1 -0
  481. package/lib/typescript/module/src/tabItems.d.ts +55 -0
  482. package/lib/typescript/module/src/tabItems.d.ts.map +1 -0
  483. package/lib/typescript/module/src/web/Button.d.ts +9 -0
  484. package/lib/typescript/module/src/web/Button.d.ts.map +1 -0
  485. package/lib/typescript/module/src/web/ButtonGroup.d.ts +11 -0
  486. package/lib/typescript/module/src/web/ButtonGroup.d.ts.map +1 -0
  487. package/lib/typescript/module/src/web/DatePicker.d.ts +14 -0
  488. package/lib/typescript/module/src/web/DatePicker.d.ts.map +1 -0
  489. package/lib/typescript/module/src/web/DateRangePicker.d.ts +11 -0
  490. package/lib/typescript/module/src/web/DateRangePicker.d.ts.map +1 -0
  491. package/lib/typescript/module/src/web/Dialog.d.ts +12 -0
  492. package/lib/typescript/module/src/web/Dialog.d.ts.map +1 -0
  493. package/lib/typescript/module/src/web/FloatingActionButton.d.ts +8 -0
  494. package/lib/typescript/module/src/web/FloatingActionButton.d.ts.map +1 -0
  495. package/lib/typescript/module/src/web/Icon.d.ts +12 -0
  496. package/lib/typescript/module/src/web/Icon.d.ts.map +1 -0
  497. package/lib/typescript/module/src/web/NativeTheme.d.ts +10 -0
  498. package/lib/typescript/module/src/web/NativeTheme.d.ts.map +1 -0
  499. package/lib/typescript/module/src/web/NavigationRail.d.ts +8 -0
  500. package/lib/typescript/module/src/web/NavigationRail.d.ts.map +1 -0
  501. package/lib/typescript/module/src/web/PlatformComponentsProvider.d.ts +10 -0
  502. package/lib/typescript/module/src/web/PlatformComponentsProvider.d.ts.map +1 -0
  503. package/lib/typescript/module/src/web/SegmentedControl.d.ts +8 -0
  504. package/lib/typescript/module/src/web/SegmentedControl.d.ts.map +1 -0
  505. package/lib/typescript/module/src/web/SelectionMenu.d.ts +10 -0
  506. package/lib/typescript/module/src/web/SelectionMenu.d.ts.map +1 -0
  507. package/lib/typescript/module/src/web/SplitButton.d.ts +9 -0
  508. package/lib/typescript/module/src/web/SplitButton.d.ts.map +1 -0
  509. package/lib/typescript/module/src/web/TabBar.d.ts +9 -0
  510. package/lib/typescript/module/src/web/TabBar.d.ts.map +1 -0
  511. package/lib/typescript/module/src/web/TextField.d.ts +9 -0
  512. package/lib/typescript/module/src/web/TextField.d.ts.map +1 -0
  513. package/lib/typescript/module/src/web/components.d.ts +17 -0
  514. package/lib/typescript/module/src/web/components.d.ts.map +1 -0
  515. package/lib/typescript/module/src/web/containers.d.ts +24 -0
  516. package/lib/typescript/module/src/web/containers.d.ts.map +1 -0
  517. package/lib/typescript/module/src/web/dateInput.d.ts +20 -0
  518. package/lib/typescript/module/src/web/dateInput.d.ts.map +1 -0
  519. package/lib/typescript/module/src/web/shared.d.ts +43 -0
  520. package/lib/typescript/module/src/web/shared.d.ts.map +1 -0
  521. package/lib/typescript/module/src/webComponents.d.ts +43 -0
  522. package/lib/typescript/module/src/webComponents.d.ts.map +1 -0
  523. package/package.json +32 -2
  524. package/plugin/build/index.d.ts +3 -2
  525. package/plugin/build/index.d.ts.map +1 -1
  526. package/react-native.config.js +3 -0
  527. package/shared/PCFloatingActionButtonComponentDescriptors-custom.h +22 -0
  528. package/shared/PCFloatingActionButtonShadowNode-custom.cpp +48 -0
  529. package/shared/PCFloatingActionButtonShadowNode-custom.h +54 -0
  530. package/shared/PCFloatingActionButtonState-custom.h +61 -0
  531. package/shared/PCNavigationRailComponentDescriptors-custom.h +47 -0
  532. package/shared/PCNavigationRailShadowNode-custom.h +42 -0
  533. package/shared/PCNavigationRailState-custom.h +62 -0
  534. package/shared/PCTabBarComponentDescriptors-custom.h +22 -0
  535. package/shared/PCTabBarShadowNode-custom.cpp +54 -0
  536. package/shared/PCTabBarShadowNode-custom.h +54 -0
  537. package/shared/PCTabBarState-custom.h +62 -0
  538. package/shared/react/renderer/components/PlatformComponentsViewSpec/ComponentDescriptors.h +3 -0
  539. package/src/Button.tsx +222 -7
  540. package/src/ButtonGroup.tsx +29 -11
  541. package/src/ButtonGroupNativeComponent.ts +74 -4
  542. package/src/ButtonNativeComponent.ts +119 -3
  543. package/src/ContextMenu.tsx +34 -81
  544. package/src/ContextMenuNativeComponent.ts +47 -49
  545. package/src/DatePicker.tsx +182 -4
  546. package/src/DatePickerNativeComponent.ts +19 -2
  547. package/src/FloatingActionButton.tsx +121 -0
  548. package/src/FloatingActionButtonNativeComponent.ts +58 -0
  549. package/src/FloatingToolbar.tsx +54 -3
  550. package/src/FloatingToolbarNativeComponent.ts +16 -0
  551. package/src/LiquidGlass.tsx +24 -1
  552. package/src/LiquidGlassContainer.tsx +42 -0
  553. package/src/LiquidGlassContainerNativeComponent.ts +17 -0
  554. package/src/LiquidGlassNativeComponent.ts +8 -0
  555. package/src/NavigationRail.tsx +203 -0
  556. package/src/NavigationRailNativeComponent.ts +107 -0
  557. package/src/PlatformComponentsProvider.tsx +15 -0
  558. package/src/SegmentedControl.tsx +31 -1
  559. package/src/SegmentedControlNativeComponent.ts +11 -0
  560. package/src/SelectionMenu.tsx +81 -6
  561. package/src/SelectionMenuNativeComponent.ts +26 -4
  562. package/src/SplitButton.tsx +198 -0
  563. package/src/TabBar.tsx +373 -0
  564. package/src/TabBarAccessoryNativeComponent.ts +19 -0
  565. package/src/TabBarNativeComponent.ts +145 -0
  566. package/src/TextField.tsx +428 -14
  567. package/src/TextFieldNativeComponent.ts +110 -4
  568. package/src/focusRegistry.ts +1 -0
  569. package/src/haptics.ts +31 -0
  570. package/src/icons.ts +28 -1
  571. package/src/index.tsx +7 -0
  572. package/src/index.web.tsx +51 -391
  573. package/src/jest.tsx +958 -0
  574. package/src/menuItems.ts +152 -0
  575. package/src/selectionIdentifiers.ts +17 -0
  576. package/src/submitBehavior.ts +16 -0
  577. package/src/tabItems.ts +113 -0
  578. package/src/web/Button.tsx +201 -0
  579. package/src/web/ButtonGroup.tsx +154 -0
  580. package/src/web/DatePicker.tsx +204 -0
  581. package/src/web/DateRangePicker.tsx +135 -0
  582. package/src/web/Dialog.tsx +54 -0
  583. package/src/web/FloatingActionButton.tsx +76 -0
  584. package/src/web/Icon.tsx +33 -0
  585. package/src/web/NativeTheme.ts +23 -0
  586. package/src/web/NavigationRail.tsx +148 -0
  587. package/src/web/PlatformComponentsProvider.tsx +48 -0
  588. package/src/web/SegmentedControl.tsx +127 -0
  589. package/src/web/SelectionMenu.tsx +149 -0
  590. package/src/web/SplitButton.tsx +32 -0
  591. package/src/web/TabBar.tsx +150 -0
  592. package/src/web/TextField.tsx +361 -0
  593. package/src/web/components.tsx +71 -0
  594. package/src/web/containers.tsx +130 -0
  595. package/src/web/dateInput.ts +137 -0
  596. package/src/web/shared.ts +176 -0
  597. package/src/webComponents.ts +45 -0
  598. package/android/src/main/java/com/platformcomponents/DateConstraints.kt +0 -83
@@ -1,7 +1,12 @@
1
1
  // ButtonNativeComponent.ts
2
2
  import type { ColorValue, HostComponent, ViewProps } from 'react-native';
3
3
  import { codegenNativeComponent } from 'react-native';
4
- import type { BubblingEventHandler, Double } from './codegenTypes';
4
+ import type {
5
+ BubblingEventHandler,
6
+ Double,
7
+ Int32,
8
+ WithDefault,
9
+ } from './codegenTypes';
5
10
 
6
11
  /**
7
12
  * Icon fields, pre-resolved on the JS side (see icons.ts).
@@ -9,6 +14,7 @@ import type { BubblingEventHandler, Double } from './codegenTypes';
9
14
  export type ButtonIconProps = Readonly<{
10
15
  iconType: string; // '' | 'sfSymbol' | 'drawable' | 'image'
11
16
  iconName: string; // SF Symbol (iOS) or drawable resource name (Android)
17
+ iconRequest: string;
12
18
  iconUri: string; // Resolved image URI when iconType === 'image'
13
19
  iconScale: Double; // Resolved image scale when iconType === 'image'
14
20
  iconTinted: string; // 'true' | 'false' — draw the image as a tinted template
@@ -24,14 +30,77 @@ export type ButtonLabelStyleProps = Readonly<{
24
30
  fontStyle?: string; // 'normal' | 'italic'
25
31
  }>;
26
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
+
27
90
  export interface ButtonNativeProps extends ViewProps {
28
91
  /** Button text. Empty for an icon-only button. */
29
92
  label?: string;
30
93
 
31
- /** Icon shown before the label, or alone when there is no label. */
94
+ /** Icon shown next to the label, or alone when there is no label. */
32
95
  icon?: ButtonIconProps;
33
96
 
34
- /** 'filled' | 'tonal' | 'outlined' | 'text' | 'elevated' */
97
+ /** 'leading' | 'trailing' | 'top' | 'bottom' */
98
+ iconPosition?: string;
99
+
100
+ /**
101
+ * 'filled' | 'tonal' | 'outlined' | 'text' | 'elevated' | 'glass' |
102
+ * 'prominentGlass' | 'clearGlass' | 'prominentClearGlass'
103
+ */
35
104
  variant?: string;
36
105
 
37
106
  /** 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' */
@@ -40,15 +109,27 @@ export interface ButtonNativeProps extends ViewProps {
40
109
  /** '' (platform default) | 'round' | 'square' */
41
110
  shape?: string;
42
111
 
112
+ /** Corner radius in points; negative = use `shape`. */
113
+ cornerRadius?: WithDefault<Double, -1>;
114
+
43
115
  /** 'enabled' | 'disabled' */
44
116
  interactivity?: string;
45
117
 
118
+ /** 'true' | 'false': spinner in place of the label and icon, presses ignored. */
119
+ loading?: string;
120
+
46
121
  /** Container (background) color. */
47
122
  color?: ColorValue;
48
123
 
49
124
  /** Label and icon color. */
50
125
  foregroundColor?: ColorValue;
51
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
+
52
133
  /** Android: ripple color shown while pressing. */
53
134
  androidRippleColor?: ColorValue;
54
135
 
@@ -61,14 +142,49 @@ export interface ButtonNativeProps extends ViewProps {
61
142
  /** Label font. */
62
143
  labelStyle?: ButtonLabelStyleProps;
63
144
 
145
+ /** Cap on the label's font scaling; 0 (or below 1) = no cap. */
146
+ maxFontSizeMultiplier?: Double;
147
+
64
148
  /**
65
149
  * Screen-reader label, applied to the native button rather than the host
66
150
  * view. Empty means "use the label".
67
151
  */
68
152
  spokenLabel?: string;
69
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
+
70
174
  /** Fired when the button is pressed. */
71
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<{}>>;
72
188
  }
73
189
 
74
190
  export default codegenNativeComponent<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
  }
@@ -1,9 +1,15 @@
1
1
  "use strict";
2
2
 
3
3
  // DatePicker.tsx
4
- import React, { useCallback } from 'react';
5
- import { StyleSheet } from 'react-native';
4
+ import React, { useCallback, useEffect } from 'react';
5
+ import { Platform, StyleSheet } from 'react-native';
6
6
  import NativeDatePicker from './DatePickerNativeComponent';
7
+
8
+ /**
9
+ * Android: how the Material pickers take input. `'text'` opens the date
10
+ * picker on its text field and the time picker on its keyboard entry;
11
+ * `'calendar'` on the calendar and the clock dial. Default: `'calendar'`.
12
+ */
7
13
  import { jsx as _jsx } from "react/jsx-runtime";
8
14
  // Sentinel value for "no date". Using MIN_SAFE_INTEGER ensures we don't
9
15
  // conflict with valid negative timestamps (dates before 1970).
@@ -29,6 +35,7 @@ export function DatePicker(props) {
29
35
  mode,
30
36
  presentation = 'modal',
31
37
  visible,
38
+ is24Hour,
32
39
  onConfirm,
33
40
  onClosed,
34
41
  ios,
@@ -37,7 +44,12 @@ export function DatePicker(props) {
37
44
  } = props;
38
45
  const isModal = presentation === 'modal';
39
46
  const handleConfirm = useCallback(e => {
40
- onConfirm?.(new Date(e.nativeEvent.timestampMs), e.nativeEvent.confirmed);
47
+ const {
48
+ timestampMs,
49
+ confirmed,
50
+ durationSeconds
51
+ } = e.nativeEvent;
52
+ onConfirm?.(new Date(timestampMs), confirmed, durationSeconds ?? 0);
41
53
  }, [onConfirm]);
42
54
  const handleClosed = useCallback(() => {
43
55
  onClosed?.();
@@ -47,6 +59,7 @@ export function DatePicker(props) {
47
59
  mode,
48
60
  locale,
49
61
  timeZoneName,
62
+ hourFormat: hourFormat(is24Hour),
50
63
  presentation,
51
64
  visible: normalizeVisible(presentation, visible),
52
65
  dateMs: dateToMsOrSentinel(date),
@@ -66,7 +79,8 @@ export function DatePicker(props) {
66
79
  material: android.material,
67
80
  dialogTitle: android.dialogTitle,
68
81
  positiveButtonTitle: android.positiveButtonTitle,
69
- negativeButtonTitle: android.negativeButtonTitle
82
+ negativeButtonTitle: android.negativeButtonTitle,
83
+ inputMode: android.inputMode
70
84
  } : undefined
71
85
  };
72
86
  return /*#__PURE__*/_jsx(NativeDatePicker, {
@@ -74,6 +88,86 @@ export function DatePicker(props) {
74
88
  ...nativeProps
75
89
  });
76
90
  }
91
+ function hourFormat(is24Hour) {
92
+ if (is24Hour === undefined) return '';
93
+ return is24Hour ? '24' : '12';
94
+ }
95
+
96
+ /** A range of days, as `DateRangePicker` reports it. */
97
+
98
+ /**
99
+ * Whether `DateRangePicker` shows anything on this platform. iOS has no
100
+ * native date range picker; offer two `DatePicker`s there instead.
101
+ */
102
+ export const isDateRangePickerSupported = rangePickerSupported();
103
+ function rangePickerSupported() {
104
+ return Platform.OS !== 'ios';
105
+ }
106
+
107
+ /**
108
+ * A date range picker: Material's `MaterialDatePicker.dateRangePicker()` on
109
+ * Android, a modal dialog. iOS has no native range picker, so it renders
110
+ * nothing there and warns in development (see `isDateRangePickerSupported`).
111
+ */
112
+ export function DateRangePicker(props) {
113
+ const {
114
+ style,
115
+ startDate,
116
+ endDate,
117
+ minDate,
118
+ maxDate,
119
+ locale,
120
+ timeZoneName,
121
+ visible,
122
+ onConfirm,
123
+ onClosed,
124
+ android,
125
+ testID
126
+ } = props;
127
+ const supported = rangePickerSupported();
128
+ useEffect(() => {
129
+ if (__DEV__ && visible && !supported) {
130
+ console.warn('DateRangePicker: iOS has no native date range picker, so nothing is ' + 'shown. Check isDateRangePickerSupported and offer two DatePickers ' + 'on iOS.');
131
+ }
132
+ }, [visible, supported]);
133
+ const handleConfirm = useCallback(e => {
134
+ const {
135
+ timestampMs,
136
+ endTimestampMs
137
+ } = e.nativeEvent;
138
+ onConfirm?.({
139
+ startDate: new Date(timestampMs),
140
+ endDate: new Date(endTimestampMs)
141
+ });
142
+ }, [onConfirm]);
143
+ const handleClosed = useCallback(() => {
144
+ onClosed?.();
145
+ }, [onClosed]);
146
+ if (!supported) return null;
147
+ return /*#__PURE__*/_jsx(NativeDatePicker, {
148
+ testID: testID,
149
+ style: [styles.picker, style],
150
+ mode: "dateRange",
151
+ presentation: "modal",
152
+ visible: visible ? 'open' : 'closed',
153
+ locale: locale,
154
+ timeZoneName: timeZoneName,
155
+ dateMs: dateToMsOrSentinel(startDate),
156
+ endDateMs: dateToMsOrSentinel(endDate),
157
+ minDateMs: dateToMsOrSentinel(minDate),
158
+ maxDateMs: dateToMsOrSentinel(maxDate),
159
+ onConfirm: onConfirm ? handleConfirm : undefined,
160
+ onClosed: onClosed ? handleClosed : undefined,
161
+ android: android ? {
162
+ firstDayOfWeek: android.firstDayOfWeek,
163
+ material: 'm3',
164
+ dialogTitle: android.dialogTitle,
165
+ positiveButtonTitle: android.positiveButtonTitle,
166
+ negativeButtonTitle: android.negativeButtonTitle,
167
+ inputMode: android.inputMode
168
+ } : undefined
169
+ });
170
+ }
77
171
  const styles = StyleSheet.create({
78
172
  picker: {}
79
173
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","StyleSheet","NativeDatePicker","jsx","_jsx","NO_DATE_SENTINEL","Number","MIN_SAFE_INTEGER","dateToMsOrSentinel","d","ms","getTime","isFinite","normalizeVisible","presentation","visible","undefined","DatePicker","props","style","date","minDate","maxDate","locale","timeZoneName","mode","onConfirm","onClosed","ios","android","testID","isModal","handleConfirm","e","Date","nativeEvent","timestampMs","confirmed","handleClosed","nativeProps","styles","picker","dateMs","minDateMs","maxDateMs","preferredStyle","countDownDurationSeconds","minuteInterval","roundsToMinuteInterval","confirmToolbar","showConfirmToolbar","firstDayOfWeek","material","dialogTitle","positiveButtonTitle","negativeButtonTitle","create"],"sourceRoot":"../../src","sources":["DatePicker.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useEffect","Platform","StyleSheet","NativeDatePicker","jsx","_jsx","NO_DATE_SENTINEL","Number","MIN_SAFE_INTEGER","dateToMsOrSentinel","d","ms","getTime","isFinite","normalizeVisible","presentation","visible","undefined","DatePicker","props","style","date","minDate","maxDate","locale","timeZoneName","mode","is24Hour","onConfirm","onClosed","ios","android","testID","isModal","handleConfirm","e","timestampMs","confirmed","durationSeconds","nativeEvent","Date","handleClosed","nativeProps","styles","picker","hourFormat","dateMs","minDateMs","maxDateMs","preferredStyle","countDownDurationSeconds","minuteInterval","roundsToMinuteInterval","confirmToolbar","showConfirmToolbar","firstDayOfWeek","material","dialogTitle","positiveButtonTitle","negativeButtonTitle","inputMode","isDateRangePickerSupported","rangePickerSupported","OS","DateRangePicker","startDate","endDate","supported","__DEV__","console","warn","endTimestampMs","endDateMs","create"],"sourceRoot":"../../src","sources":["DatePicker.tsx"],"mappings":"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","ignoreList":[]}
@@ -13,9 +13,20 @@ export type TimestampMs = Double;
13
13
  export type DateChangeEvent = {
14
14
  timestampMs: Double;
15
15
  confirmed: boolean;
16
+ /**
17
+ * iOS `countDownTimer` mode: the selected duration in seconds. 0 in every
18
+ * other mode and on Android (which has no countdown picker).
19
+ */
20
+ durationSeconds: Double;
21
+ /**
22
+ * `dateRange` mode (Android): the last day of the range, with
23
+ * `timestampMs` the first. 0 in every other mode.
24
+ */
25
+ endTimestampMs: Double;
16
26
  };
17
27
 
18
- export type DatePickerMode = 'date' | 'time' | 'dateAndTime' | 'countDownTimer';
28
+ export type DatePickerMode =
29
+ 'date' | 'time' | 'dateAndTime' | 'countDownTimer' | 'yearAndMonth';
19
30
  export type DatePickerPresentation = 'modal' | 'embedded';
20
31
 
21
32
  export type IOSDatePickerStyle = 'automatic' | 'compact' | 'inline' | 'wheels';
@@ -36,6 +47,7 @@ export type AndroidProps = {
36
47
  dialogTitle?: string;
37
48
  positiveButtonTitle?: string;
38
49
  negativeButtonTitle?: string;
50
+ inputMode?: string; // '' | 'calendar' | 'text'
39
51
  };
40
52
 
41
53
  export type WebProps = Readonly<{}>;
@@ -48,15 +60,20 @@ export type MacOSProps = Readonly<{}>;
48
60
  * (Allows negative timestamps for pre-1970 dates.)
49
61
  */
50
62
  export type CommonProps = {
51
- mode?: string; // DatePickerMode
63
+ mode?: string; // DatePickerMode, or 'dateRange' for DateRangePicker
52
64
 
53
65
  dateMs?: WithDefault<TimestampMs, -9007199254740991>;
66
+ /** `dateRange` mode: the last day of the range (`dateMs` is the first). */
67
+ endDateMs?: WithDefault<TimestampMs, -9007199254740991>;
54
68
  minDateMs?: WithDefault<TimestampMs, -9007199254740991>;
55
69
  maxDateMs?: WithDefault<TimestampMs, -9007199254740991>;
56
70
 
57
71
  locale?: string;
58
72
  timeZoneName?: string;
59
73
 
74
+ /** '' (device setting) | '12' | '24' */
75
+ hourFormat?: string;
76
+
60
77
  /**
61
78
  * Only used when presentation === "modal".
62
79
  * Defaults should be applied in JS wrapper (recommended).