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.
- package/PlatformComponents.podspec +1 -1
- package/README.md +33 -31
- package/android/src/main/java/com/platformcomponents/PCButtonGroupView.kt +175 -9
- package/android/src/main/java/com/platformcomponents/PCButtonGroupViewManager.kt +52 -2
- package/android/src/main/java/com/platformcomponents/PCButtonSupport.kt +44 -12
- package/android/src/main/java/com/platformcomponents/PCButtonView.kt +187 -5
- package/android/src/main/java/com/platformcomponents/PCButtonViewManager.kt +85 -7
- package/android/src/main/java/com/platformcomponents/PCContextMenuView.kt +41 -151
- package/android/src/main/java/com/platformcomponents/PCContextMenuViewManager.kt +7 -63
- package/android/src/main/java/com/platformcomponents/PCDatePickerView.kt +310 -115
- package/android/src/main/java/com/platformcomponents/PCDatePickerViewManager.kt +23 -3
- package/android/src/main/java/com/platformcomponents/PCExpressive.kt +6 -1
- package/android/src/main/java/com/platformcomponents/PCFloatingActionButtonView.kt +485 -0
- package/android/src/main/java/com/platformcomponents/PCFloatingActionButtonViewManager.kt +109 -0
- package/android/src/main/java/com/platformcomponents/PCFloatingToolbarView.kt +132 -0
- package/android/src/main/java/com/platformcomponents/PCFloatingToolbarViewManager.kt +8 -0
- package/android/src/main/java/com/platformcomponents/PCHaptics.kt +46 -0
- package/android/src/main/java/com/platformcomponents/PCImageLoader.kt +42 -7
- package/android/src/main/java/com/platformcomponents/PCLiquidGlassContainerView.kt +32 -0
- package/android/src/main/java/com/platformcomponents/PCLiquidGlassContainerViewManager.kt +31 -0
- package/android/src/main/java/com/platformcomponents/PCLiquidGlassView.kt +32 -6
- package/android/src/main/java/com/platformcomponents/PCLiquidGlassViewManager.kt +4 -0
- package/android/src/main/java/com/platformcomponents/PCMenuSupport.kt +280 -0
- package/android/src/main/java/com/platformcomponents/PCNavigationBarSupport.kt +332 -0
- package/android/src/main/java/com/platformcomponents/PCNavigationRailView.kt +448 -0
- package/android/src/main/java/com/platformcomponents/PCNavigationRailViewManager.kt +176 -0
- package/android/src/main/java/com/platformcomponents/PCSegmentedControlView.kt +24 -14
- package/android/src/main/java/com/platformcomponents/PCSegmentedControlViewManager.kt +14 -2
- package/android/src/main/java/com/platformcomponents/PCSelectionMenuView.kt +371 -39
- package/android/src/main/java/com/platformcomponents/PCSelectionMenuViewManager.kt +18 -4
- package/android/src/main/java/com/platformcomponents/PCTabBarView.kt +397 -0
- package/android/src/main/java/com/platformcomponents/PCTabBarViewManager.kt +182 -0
- package/android/src/main/java/com/platformcomponents/PCTextFieldView.kt +415 -40
- package/android/src/main/java/com/platformcomponents/PCTextFieldViewManager.kt +109 -3
- package/android/src/main/java/com/platformcomponents/PCThemeSupport.kt +37 -0
- package/android/src/main/java/com/platformcomponents/PlatformComponentsPackage.kt +4 -0
- package/android/src/main/res/drawable/pc_ic_search.xml +12 -0
- package/android/src/main/res/values/ids.xml +5 -0
- package/android/src/main/res/values/styles.xml +24 -0
- package/ios/PCButton.mm +122 -7
- package/ios/PCButtonGroup.mm +68 -1
- package/ios/PCButtonGroupView.swift +225 -6
- package/ios/PCButtonSupport.swift +181 -10
- package/ios/PCButtonView.swift +297 -14
- package/ios/PCConstants.swift +23 -2
- package/ios/PCContextMenu.mm +28 -110
- package/ios/PCContextMenu.swift +106 -167
- package/ios/PCDatePicker.mm +21 -9
- package/ios/PCDatePickerView.swift +94 -20
- package/ios/PCFloatingActionButton.h +10 -0
- package/ios/PCFloatingActionButton.mm +177 -0
- package/ios/PCFloatingActionButtonView.swift +426 -0
- package/ios/PCFloatingToolbar.mm +27 -0
- package/ios/PCFloatingToolbarView.swift +241 -0
- package/ios/PCHaptics.swift +91 -0
- package/ios/PCImageLoader.swift +76 -12
- package/ios/PCLiquidGlass.mm +36 -0
- package/ios/PCLiquidGlass.swift +221 -114
- package/ios/PCLiquidGlassContainer.h +10 -0
- package/ios/PCLiquidGlassContainer.mm +84 -0
- package/ios/PCLiquidGlassContainer.swift +69 -0
- package/ios/PCMenuItems.h +76 -0
- package/ios/PCMenuSupport.swift +350 -0
- package/ios/PCNavigationRail.h +10 -0
- package/ios/PCNavigationRail.mm +270 -0
- package/ios/PCNavigationRailView.swift +415 -0
- package/ios/PCSegmentedControl.mm +17 -2
- package/ios/PCSegmentedControl.swift +57 -7
- package/ios/PCSelectionMenu.mm +36 -8
- package/ios/PCSelectionMenu.swift +224 -48
- package/ios/PCTabBar.h +10 -0
- package/ios/PCTabBar.mm +285 -0
- package/ios/PCTabBarAccessory.h +10 -0
- package/ios/PCTabBarAccessory.mm +93 -0
- package/ios/PCTabBarAccessoryView.swift +96 -0
- package/ios/PCTabBarView.swift +671 -0
- package/ios/PCTextField.mm +159 -4
- package/ios/PCTextFieldView.swift +603 -57
- package/lib/commonjs/Button.js +73 -1
- package/lib/commonjs/Button.js.map +1 -1
- package/lib/commonjs/ButtonGroup.js +13 -3
- package/lib/commonjs/ButtonGroup.js.map +1 -1
- package/lib/commonjs/ButtonGroupNativeComponent.ts +74 -4
- package/lib/commonjs/ButtonNativeComponent.ts +119 -3
- package/lib/commonjs/ContextMenu.js +9 -48
- package/lib/commonjs/ContextMenu.js.map +1 -1
- package/lib/commonjs/ContextMenuNativeComponent.ts +47 -49
- package/lib/commonjs/DatePicker.js +98 -2
- package/lib/commonjs/DatePicker.js.map +1 -1
- package/lib/commonjs/DatePickerNativeComponent.ts +19 -2
- package/lib/commonjs/FloatingActionButton.js +60 -0
- package/lib/commonjs/FloatingActionButton.js.map +1 -0
- package/lib/commonjs/FloatingActionButtonNativeComponent.ts +58 -0
- package/lib/commonjs/FloatingToolbar.js +9 -1
- package/lib/commonjs/FloatingToolbar.js.map +1 -1
- package/lib/commonjs/FloatingToolbarNativeComponent.ts +16 -0
- package/lib/commonjs/LiquidGlass.js +7 -1
- package/lib/commonjs/LiquidGlass.js.map +1 -1
- package/lib/commonjs/LiquidGlassContainer.js +32 -0
- package/lib/commonjs/LiquidGlassContainer.js.map +1 -0
- package/lib/commonjs/LiquidGlassContainerNativeComponent.ts +17 -0
- package/lib/commonjs/LiquidGlassNativeComponent.ts +8 -0
- package/lib/commonjs/NavigationRail.js +104 -0
- package/lib/commonjs/NavigationRail.js.map +1 -0
- package/lib/commonjs/NavigationRailNativeComponent.ts +107 -0
- package/lib/commonjs/PlatformComponentsProvider.js +18 -0
- package/lib/commonjs/PlatformComponentsProvider.js.map +1 -0
- package/lib/commonjs/SegmentedControl.js +7 -0
- package/lib/commonjs/SegmentedControl.js.map +1 -1
- package/lib/commonjs/SegmentedControlNativeComponent.ts +11 -0
- package/lib/commonjs/SelectionMenu.js +27 -3
- package/lib/commonjs/SelectionMenu.js.map +1 -1
- package/lib/commonjs/SelectionMenuNativeComponent.ts +26 -4
- package/lib/commonjs/SplitButton.js +98 -0
- package/lib/commonjs/SplitButton.js.map +1 -0
- package/lib/commonjs/TabBar.js +203 -0
- package/lib/commonjs/TabBar.js.map +1 -0
- package/lib/commonjs/TabBarAccessoryNativeComponent.ts +19 -0
- package/lib/commonjs/TabBarNativeComponent.ts +145 -0
- package/lib/commonjs/TextField.js +171 -8
- package/lib/commonjs/TextField.js.map +1 -1
- package/lib/commonjs/TextFieldNativeComponent.ts +110 -4
- package/lib/commonjs/focusRegistry.js +2 -1
- package/lib/commonjs/focusRegistry.js.map +1 -1
- package/lib/commonjs/haptics.js +2 -0
- package/lib/commonjs/haptics.js.map +1 -0
- package/lib/commonjs/icons.js +15 -1
- package/lib/commonjs/icons.js.map +1 -1
- package/lib/commonjs/index.js +77 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.web.js +156 -92
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/jest.js +910 -0
- package/lib/commonjs/jest.js.map +1 -0
- package/lib/commonjs/menuItems.js +68 -0
- package/lib/commonjs/menuItems.js.map +1 -0
- package/lib/commonjs/selectionIdentifiers.js +18 -0
- package/lib/commonjs/selectionIdentifiers.js.map +1 -0
- package/lib/commonjs/submitBehavior.js +19 -0
- package/lib/commonjs/submitBehavior.js.map +1 -0
- package/lib/commonjs/tabItems.js +49 -0
- package/lib/commonjs/tabItems.js.map +1 -0
- package/lib/commonjs/web/Button.js +170 -0
- package/lib/commonjs/web/Button.js.map +1 -0
- package/lib/commonjs/web/ButtonGroup.js +119 -0
- package/lib/commonjs/web/ButtonGroup.js.map +1 -0
- package/lib/commonjs/web/DatePicker.js +168 -0
- package/lib/commonjs/web/DatePicker.js.map +1 -0
- package/lib/commonjs/web/DateRangePicker.js +137 -0
- package/lib/commonjs/web/DateRangePicker.js.map +1 -0
- package/lib/commonjs/web/Dialog.js +54 -0
- package/lib/commonjs/web/Dialog.js.map +1 -0
- package/lib/commonjs/web/FloatingActionButton.js +98 -0
- package/lib/commonjs/web/FloatingActionButton.js.map +1 -0
- package/lib/commonjs/web/Icon.js +34 -0
- package/lib/commonjs/web/Icon.js.map +1 -0
- package/lib/commonjs/web/NativeTheme.js +28 -0
- package/lib/commonjs/web/NativeTheme.js.map +1 -0
- package/lib/commonjs/web/NavigationRail.js +139 -0
- package/lib/commonjs/web/NavigationRail.js.map +1 -0
- package/lib/commonjs/web/PlatformComponentsProvider.js +51 -0
- package/lib/commonjs/web/PlatformComponentsProvider.js.map +1 -0
- package/lib/commonjs/web/SegmentedControl.js +117 -0
- package/lib/commonjs/web/SegmentedControl.js.map +1 -0
- package/lib/commonjs/web/SelectionMenu.js +142 -0
- package/lib/commonjs/web/SelectionMenu.js.map +1 -0
- package/lib/commonjs/web/SplitButton.js +35 -0
- package/lib/commonjs/web/SplitButton.js.map +1 -0
- package/lib/commonjs/web/TabBar.js +131 -0
- package/lib/commonjs/web/TabBar.js.map +1 -0
- package/lib/commonjs/web/TextField.js +322 -0
- package/lib/commonjs/web/TextField.js.map +1 -0
- package/lib/commonjs/web/components.js +36 -0
- package/lib/commonjs/web/components.js.map +1 -0
- package/lib/commonjs/web/containers.js +121 -0
- package/lib/commonjs/web/containers.js.map +1 -0
- package/lib/commonjs/web/dateInput.js +116 -0
- package/lib/commonjs/web/dateInput.js.map +1 -0
- package/lib/commonjs/web/shared.js +192 -0
- package/lib/commonjs/web/shared.js.map +1 -0
- package/lib/commonjs/webComponents.js +6 -0
- package/lib/commonjs/webComponents.js.map +1 -0
- package/lib/module/Button.js +74 -2
- package/lib/module/Button.js.map +1 -1
- package/lib/module/ButtonGroup.js +13 -3
- package/lib/module/ButtonGroup.js.map +1 -1
- package/lib/module/ButtonGroupNativeComponent.ts +74 -4
- package/lib/module/ButtonNativeComponent.ts +119 -3
- package/lib/module/ContextMenu.js +9 -48
- package/lib/module/ContextMenu.js.map +1 -1
- package/lib/module/ContextMenuNativeComponent.ts +47 -49
- package/lib/module/DatePicker.js +98 -4
- package/lib/module/DatePicker.js.map +1 -1
- package/lib/module/DatePickerNativeComponent.ts +19 -2
- package/lib/module/FloatingActionButton.js +53 -0
- package/lib/module/FloatingActionButton.js.map +1 -0
- package/lib/module/FloatingActionButtonNativeComponent.ts +58 -0
- package/lib/module/FloatingToolbar.js +9 -1
- package/lib/module/FloatingToolbar.js.map +1 -1
- package/lib/module/FloatingToolbarNativeComponent.ts +16 -0
- package/lib/module/LiquidGlass.js +7 -1
- package/lib/module/LiquidGlass.js.map +1 -1
- package/lib/module/LiquidGlassContainer.js +26 -0
- package/lib/module/LiquidGlassContainer.js.map +1 -0
- package/lib/module/LiquidGlassContainerNativeComponent.ts +17 -0
- package/lib/module/LiquidGlassNativeComponent.ts +8 -0
- package/lib/module/NavigationRail.js +99 -0
- package/lib/module/NavigationRail.js.map +1 -0
- package/lib/module/NavigationRailNativeComponent.ts +107 -0
- package/lib/module/PlatformComponentsProvider.js +13 -0
- package/lib/module/PlatformComponentsProvider.js.map +1 -0
- package/lib/module/SegmentedControl.js +9 -1
- package/lib/module/SegmentedControl.js.map +1 -1
- package/lib/module/SegmentedControlNativeComponent.ts +11 -0
- package/lib/module/SelectionMenu.js +27 -3
- package/lib/module/SelectionMenu.js.map +1 -1
- package/lib/module/SelectionMenuNativeComponent.ts +26 -4
- package/lib/module/SplitButton.js +91 -0
- package/lib/module/SplitButton.js.map +1 -0
- package/lib/module/TabBar.js +196 -0
- package/lib/module/TabBar.js.map +1 -0
- package/lib/module/TabBarAccessoryNativeComponent.ts +19 -0
- package/lib/module/TabBarNativeComponent.ts +145 -0
- package/lib/module/TextField.js +172 -9
- package/lib/module/TextField.js.map +1 -1
- package/lib/module/TextFieldNativeComponent.ts +110 -4
- package/lib/module/focusRegistry.js +1 -0
- package/lib/module/focusRegistry.js.map +1 -1
- package/lib/module/haptics.js +2 -0
- package/lib/module/haptics.js.map +1 -0
- package/lib/module/icons.js +15 -1
- package/lib/module/icons.js.map +1 -1
- package/lib/module/index.js +7 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +12 -87
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/jest.js +840 -0
- package/lib/module/jest.js.map +1 -0
- package/lib/module/menuItems.js +65 -0
- package/lib/module/menuItems.js.map +1 -0
- package/lib/module/selectionIdentifiers.js +14 -0
- package/lib/module/selectionIdentifiers.js.map +1 -0
- package/lib/module/submitBehavior.js +15 -0
- package/lib/module/submitBehavior.js.map +1 -0
- package/lib/module/tabItems.js +45 -0
- package/lib/module/tabItems.js.map +1 -0
- package/lib/module/web/Button.js +164 -0
- package/lib/module/web/Button.js.map +1 -0
- package/lib/module/web/ButtonGroup.js +113 -0
- package/lib/module/web/ButtonGroup.js.map +1 -0
- package/lib/module/web/DatePicker.js +162 -0
- package/lib/module/web/DatePicker.js.map +1 -0
- package/lib/module/web/DateRangePicker.js +131 -0
- package/lib/module/web/DateRangePicker.js.map +1 -0
- package/lib/module/web/Dialog.js +48 -0
- package/lib/module/web/Dialog.js.map +1 -0
- package/lib/module/web/FloatingActionButton.js +94 -0
- package/lib/module/web/FloatingActionButton.js.map +1 -0
- package/lib/module/web/Icon.js +29 -0
- package/lib/module/web/Icon.js.map +1 -0
- package/lib/module/web/NativeTheme.js +23 -0
- package/lib/module/web/NativeTheme.js.map +1 -0
- package/lib/module/web/NavigationRail.js +133 -0
- package/lib/module/web/NavigationRail.js.map +1 -0
- package/lib/module/web/PlatformComponentsProvider.js +44 -0
- package/lib/module/web/PlatformComponentsProvider.js.map +1 -0
- package/lib/module/web/SegmentedControl.js +112 -0
- package/lib/module/web/SegmentedControl.js.map +1 -0
- package/lib/module/web/SelectionMenu.js +137 -0
- package/lib/module/web/SelectionMenu.js.map +1 -0
- package/lib/module/web/SplitButton.js +30 -0
- package/lib/module/web/SplitButton.js.map +1 -0
- package/lib/module/web/TabBar.js +126 -0
- package/lib/module/web/TabBar.js.map +1 -0
- package/lib/module/web/TextField.js +316 -0
- package/lib/module/web/TextField.js.map +1 -0
- package/lib/module/web/components.js +33 -0
- package/lib/module/web/components.js.map +1 -0
- package/lib/module/web/containers.js +112 -0
- package/lib/module/web/containers.js.map +1 -0
- package/lib/module/web/dateInput.js +109 -0
- package/lib/module/web/dateInput.js.map +1 -0
- package/lib/module/web/shared.js +179 -0
- package/lib/module/web/shared.js.map +1 -0
- package/lib/module/webComponents.js +4 -0
- package/lib/module/webComponents.js.map +1 -0
- package/lib/typescript/commonjs/docs/sidebars.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/Button.d.ts +111 -3
- package/lib/typescript/commonjs/src/Button.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ButtonGroup.d.ts +21 -6
- package/lib/typescript/commonjs/src/ButtonGroup.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ButtonGroupNativeComponent.d.ts +64 -3
- package/lib/typescript/commonjs/src/ButtonGroupNativeComponent.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ButtonNativeComponent.d.ts +94 -3
- package/lib/typescript/commonjs/src/ButtonNativeComponent.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ContextMenu.d.ts +20 -33
- package/lib/typescript/commonjs/src/ContextMenu.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ContextMenuNativeComponent.d.ts +45 -47
- package/lib/typescript/commonjs/src/ContextMenuNativeComponent.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/DatePicker.d.ts +74 -1
- package/lib/typescript/commonjs/src/DatePicker.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/DatePickerNativeComponent.d.ts +16 -1
- package/lib/typescript/commonjs/src/DatePickerNativeComponent.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/FloatingActionButton.d.ts +67 -0
- package/lib/typescript/commonjs/src/FloatingActionButton.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/FloatingActionButtonNativeComponent.d.ts +43 -0
- package/lib/typescript/commonjs/src/FloatingActionButtonNativeComponent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/FloatingToolbar.d.ts +30 -0
- package/lib/typescript/commonjs/src/FloatingToolbar.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/FloatingToolbarNativeComponent.d.ts +12 -0
- package/lib/typescript/commonjs/src/FloatingToolbarNativeComponent.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/LiquidGlass.d.ts +17 -0
- package/lib/typescript/commonjs/src/LiquidGlass.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/LiquidGlassContainer.d.ts +27 -0
- package/lib/typescript/commonjs/src/LiquidGlassContainer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/LiquidGlassContainerNativeComponent.d.ts +13 -0
- package/lib/typescript/commonjs/src/LiquidGlassContainerNativeComponent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/LiquidGlassNativeComponent.d.ts +7 -0
- package/lib/typescript/commonjs/src/LiquidGlassNativeComponent.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/NavigationRail.d.ts +86 -0
- package/lib/typescript/commonjs/src/NavigationRail.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/NavigationRailNativeComponent.d.ts +81 -0
- package/lib/typescript/commonjs/src/NavigationRailNativeComponent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/PlatformComponentsProvider.d.ts +6 -0
- package/lib/typescript/commonjs/src/PlatformComponentsProvider.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/SegmentedControl.d.ts +18 -1
- package/lib/typescript/commonjs/src/SegmentedControl.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/SegmentedControlNativeComponent.d.ts +9 -0
- package/lib/typescript/commonjs/src/SegmentedControlNativeComponent.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/SelectionMenu.d.ts +44 -2
- package/lib/typescript/commonjs/src/SelectionMenu.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/SelectionMenuNativeComponent.d.ts +20 -4
- package/lib/typescript/commonjs/src/SelectionMenuNativeComponent.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/SplitButton.d.ts +83 -0
- package/lib/typescript/commonjs/src/SplitButton.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/TabBar.d.ts +144 -0
- package/lib/typescript/commonjs/src/TabBar.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/TabBarAccessoryNativeComponent.d.ts +13 -0
- package/lib/typescript/commonjs/src/TabBarAccessoryNativeComponent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/TabBarNativeComponent.d.ts +110 -0
- package/lib/typescript/commonjs/src/TabBarNativeComponent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/TextField.d.ts +166 -8
- package/lib/typescript/commonjs/src/TextField.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/TextFieldNativeComponent.d.ts +81 -3
- package/lib/typescript/commonjs/src/TextFieldNativeComponent.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/focusRegistry.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/haptics.d.ts +20 -0
- package/lib/typescript/commonjs/src/haptics.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/icons.d.ts +7 -1
- package/lib/typescript/commonjs/src/icons.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/index.d.ts +7 -0
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/index.web.d.ts +25 -254
- package/lib/typescript/commonjs/src/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/jest.d.ts +139 -0
- package/lib/typescript/commonjs/src/jest.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/menuItems.d.ts +100 -0
- package/lib/typescript/commonjs/src/menuItems.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/selectionIdentifiers.d.ts +3 -0
- package/lib/typescript/commonjs/src/selectionIdentifiers.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/submitBehavior.d.ts +9 -0
- package/lib/typescript/commonjs/src/submitBehavior.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/tabItems.d.ts +55 -0
- package/lib/typescript/commonjs/src/tabItems.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/Button.d.ts +9 -0
- package/lib/typescript/commonjs/src/web/Button.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/ButtonGroup.d.ts +11 -0
- package/lib/typescript/commonjs/src/web/ButtonGroup.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/DatePicker.d.ts +14 -0
- package/lib/typescript/commonjs/src/web/DatePicker.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/DateRangePicker.d.ts +11 -0
- package/lib/typescript/commonjs/src/web/DateRangePicker.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/Dialog.d.ts +12 -0
- package/lib/typescript/commonjs/src/web/Dialog.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/FloatingActionButton.d.ts +8 -0
- package/lib/typescript/commonjs/src/web/FloatingActionButton.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/Icon.d.ts +12 -0
- package/lib/typescript/commonjs/src/web/Icon.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/NativeTheme.d.ts +10 -0
- package/lib/typescript/commonjs/src/web/NativeTheme.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/NavigationRail.d.ts +8 -0
- package/lib/typescript/commonjs/src/web/NavigationRail.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/PlatformComponentsProvider.d.ts +10 -0
- package/lib/typescript/commonjs/src/web/PlatformComponentsProvider.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/SegmentedControl.d.ts +8 -0
- package/lib/typescript/commonjs/src/web/SegmentedControl.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/SelectionMenu.d.ts +10 -0
- package/lib/typescript/commonjs/src/web/SelectionMenu.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/SplitButton.d.ts +9 -0
- package/lib/typescript/commonjs/src/web/SplitButton.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/TabBar.d.ts +9 -0
- package/lib/typescript/commonjs/src/web/TabBar.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/TextField.d.ts +9 -0
- package/lib/typescript/commonjs/src/web/TextField.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/components.d.ts +17 -0
- package/lib/typescript/commonjs/src/web/components.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/containers.d.ts +24 -0
- package/lib/typescript/commonjs/src/web/containers.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/dateInput.d.ts +20 -0
- package/lib/typescript/commonjs/src/web/dateInput.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/shared.d.ts +43 -0
- package/lib/typescript/commonjs/src/web/shared.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/webComponents.d.ts +43 -0
- package/lib/typescript/commonjs/src/webComponents.d.ts.map +1 -0
- package/lib/typescript/module/docs/sidebars.d.ts.map +1 -1
- package/lib/typescript/module/src/Button.d.ts +111 -3
- package/lib/typescript/module/src/Button.d.ts.map +1 -1
- package/lib/typescript/module/src/ButtonGroup.d.ts +21 -6
- package/lib/typescript/module/src/ButtonGroup.d.ts.map +1 -1
- package/lib/typescript/module/src/ButtonGroupNativeComponent.d.ts +64 -3
- package/lib/typescript/module/src/ButtonGroupNativeComponent.d.ts.map +1 -1
- package/lib/typescript/module/src/ButtonNativeComponent.d.ts +94 -3
- package/lib/typescript/module/src/ButtonNativeComponent.d.ts.map +1 -1
- package/lib/typescript/module/src/ContextMenu.d.ts +20 -33
- package/lib/typescript/module/src/ContextMenu.d.ts.map +1 -1
- package/lib/typescript/module/src/ContextMenuNativeComponent.d.ts +45 -47
- package/lib/typescript/module/src/ContextMenuNativeComponent.d.ts.map +1 -1
- package/lib/typescript/module/src/DatePicker.d.ts +74 -1
- package/lib/typescript/module/src/DatePicker.d.ts.map +1 -1
- package/lib/typescript/module/src/DatePickerNativeComponent.d.ts +16 -1
- package/lib/typescript/module/src/DatePickerNativeComponent.d.ts.map +1 -1
- package/lib/typescript/module/src/FloatingActionButton.d.ts +67 -0
- package/lib/typescript/module/src/FloatingActionButton.d.ts.map +1 -0
- package/lib/typescript/module/src/FloatingActionButtonNativeComponent.d.ts +43 -0
- package/lib/typescript/module/src/FloatingActionButtonNativeComponent.d.ts.map +1 -0
- package/lib/typescript/module/src/FloatingToolbar.d.ts +30 -0
- package/lib/typescript/module/src/FloatingToolbar.d.ts.map +1 -1
- package/lib/typescript/module/src/FloatingToolbarNativeComponent.d.ts +12 -0
- package/lib/typescript/module/src/FloatingToolbarNativeComponent.d.ts.map +1 -1
- package/lib/typescript/module/src/LiquidGlass.d.ts +17 -0
- package/lib/typescript/module/src/LiquidGlass.d.ts.map +1 -1
- package/lib/typescript/module/src/LiquidGlassContainer.d.ts +27 -0
- package/lib/typescript/module/src/LiquidGlassContainer.d.ts.map +1 -0
- package/lib/typescript/module/src/LiquidGlassContainerNativeComponent.d.ts +13 -0
- package/lib/typescript/module/src/LiquidGlassContainerNativeComponent.d.ts.map +1 -0
- package/lib/typescript/module/src/LiquidGlassNativeComponent.d.ts +7 -0
- package/lib/typescript/module/src/LiquidGlassNativeComponent.d.ts.map +1 -1
- package/lib/typescript/module/src/NavigationRail.d.ts +86 -0
- package/lib/typescript/module/src/NavigationRail.d.ts.map +1 -0
- package/lib/typescript/module/src/NavigationRailNativeComponent.d.ts +81 -0
- package/lib/typescript/module/src/NavigationRailNativeComponent.d.ts.map +1 -0
- package/lib/typescript/module/src/PlatformComponentsProvider.d.ts +6 -0
- package/lib/typescript/module/src/PlatformComponentsProvider.d.ts.map +1 -0
- package/lib/typescript/module/src/SegmentedControl.d.ts +18 -1
- package/lib/typescript/module/src/SegmentedControl.d.ts.map +1 -1
- package/lib/typescript/module/src/SegmentedControlNativeComponent.d.ts +9 -0
- package/lib/typescript/module/src/SegmentedControlNativeComponent.d.ts.map +1 -1
- package/lib/typescript/module/src/SelectionMenu.d.ts +44 -2
- package/lib/typescript/module/src/SelectionMenu.d.ts.map +1 -1
- package/lib/typescript/module/src/SelectionMenuNativeComponent.d.ts +20 -4
- package/lib/typescript/module/src/SelectionMenuNativeComponent.d.ts.map +1 -1
- package/lib/typescript/module/src/SplitButton.d.ts +83 -0
- package/lib/typescript/module/src/SplitButton.d.ts.map +1 -0
- package/lib/typescript/module/src/TabBar.d.ts +144 -0
- package/lib/typescript/module/src/TabBar.d.ts.map +1 -0
- package/lib/typescript/module/src/TabBarAccessoryNativeComponent.d.ts +13 -0
- package/lib/typescript/module/src/TabBarAccessoryNativeComponent.d.ts.map +1 -0
- package/lib/typescript/module/src/TabBarNativeComponent.d.ts +110 -0
- package/lib/typescript/module/src/TabBarNativeComponent.d.ts.map +1 -0
- package/lib/typescript/module/src/TextField.d.ts +166 -8
- package/lib/typescript/module/src/TextField.d.ts.map +1 -1
- package/lib/typescript/module/src/TextFieldNativeComponent.d.ts +81 -3
- package/lib/typescript/module/src/TextFieldNativeComponent.d.ts.map +1 -1
- package/lib/typescript/module/src/focusRegistry.d.ts.map +1 -1
- package/lib/typescript/module/src/haptics.d.ts +20 -0
- package/lib/typescript/module/src/haptics.d.ts.map +1 -0
- package/lib/typescript/module/src/icons.d.ts +7 -1
- package/lib/typescript/module/src/icons.d.ts.map +1 -1
- package/lib/typescript/module/src/index.d.ts +7 -0
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/index.web.d.ts +25 -254
- package/lib/typescript/module/src/index.web.d.ts.map +1 -1
- package/lib/typescript/module/src/jest.d.ts +139 -0
- package/lib/typescript/module/src/jest.d.ts.map +1 -0
- package/lib/typescript/module/src/menuItems.d.ts +100 -0
- package/lib/typescript/module/src/menuItems.d.ts.map +1 -0
- package/lib/typescript/module/src/selectionIdentifiers.d.ts +3 -0
- package/lib/typescript/module/src/selectionIdentifiers.d.ts.map +1 -0
- package/lib/typescript/module/src/submitBehavior.d.ts +9 -0
- package/lib/typescript/module/src/submitBehavior.d.ts.map +1 -0
- package/lib/typescript/module/src/tabItems.d.ts +55 -0
- package/lib/typescript/module/src/tabItems.d.ts.map +1 -0
- package/lib/typescript/module/src/web/Button.d.ts +9 -0
- package/lib/typescript/module/src/web/Button.d.ts.map +1 -0
- package/lib/typescript/module/src/web/ButtonGroup.d.ts +11 -0
- package/lib/typescript/module/src/web/ButtonGroup.d.ts.map +1 -0
- package/lib/typescript/module/src/web/DatePicker.d.ts +14 -0
- package/lib/typescript/module/src/web/DatePicker.d.ts.map +1 -0
- package/lib/typescript/module/src/web/DateRangePicker.d.ts +11 -0
- package/lib/typescript/module/src/web/DateRangePicker.d.ts.map +1 -0
- package/lib/typescript/module/src/web/Dialog.d.ts +12 -0
- package/lib/typescript/module/src/web/Dialog.d.ts.map +1 -0
- package/lib/typescript/module/src/web/FloatingActionButton.d.ts +8 -0
- package/lib/typescript/module/src/web/FloatingActionButton.d.ts.map +1 -0
- package/lib/typescript/module/src/web/Icon.d.ts +12 -0
- package/lib/typescript/module/src/web/Icon.d.ts.map +1 -0
- package/lib/typescript/module/src/web/NativeTheme.d.ts +10 -0
- package/lib/typescript/module/src/web/NativeTheme.d.ts.map +1 -0
- package/lib/typescript/module/src/web/NavigationRail.d.ts +8 -0
- package/lib/typescript/module/src/web/NavigationRail.d.ts.map +1 -0
- package/lib/typescript/module/src/web/PlatformComponentsProvider.d.ts +10 -0
- package/lib/typescript/module/src/web/PlatformComponentsProvider.d.ts.map +1 -0
- package/lib/typescript/module/src/web/SegmentedControl.d.ts +8 -0
- package/lib/typescript/module/src/web/SegmentedControl.d.ts.map +1 -0
- package/lib/typescript/module/src/web/SelectionMenu.d.ts +10 -0
- package/lib/typescript/module/src/web/SelectionMenu.d.ts.map +1 -0
- package/lib/typescript/module/src/web/SplitButton.d.ts +9 -0
- package/lib/typescript/module/src/web/SplitButton.d.ts.map +1 -0
- package/lib/typescript/module/src/web/TabBar.d.ts +9 -0
- package/lib/typescript/module/src/web/TabBar.d.ts.map +1 -0
- package/lib/typescript/module/src/web/TextField.d.ts +9 -0
- package/lib/typescript/module/src/web/TextField.d.ts.map +1 -0
- package/lib/typescript/module/src/web/components.d.ts +17 -0
- package/lib/typescript/module/src/web/components.d.ts.map +1 -0
- package/lib/typescript/module/src/web/containers.d.ts +24 -0
- package/lib/typescript/module/src/web/containers.d.ts.map +1 -0
- package/lib/typescript/module/src/web/dateInput.d.ts +20 -0
- package/lib/typescript/module/src/web/dateInput.d.ts.map +1 -0
- package/lib/typescript/module/src/web/shared.d.ts +43 -0
- package/lib/typescript/module/src/web/shared.d.ts.map +1 -0
- package/lib/typescript/module/src/webComponents.d.ts +43 -0
- package/lib/typescript/module/src/webComponents.d.ts.map +1 -0
- package/package.json +32 -2
- package/plugin/build/index.d.ts +3 -2
- package/plugin/build/index.d.ts.map +1 -1
- package/react-native.config.js +3 -0
- package/shared/PCFloatingActionButtonComponentDescriptors-custom.h +22 -0
- package/shared/PCFloatingActionButtonShadowNode-custom.cpp +48 -0
- package/shared/PCFloatingActionButtonShadowNode-custom.h +54 -0
- package/shared/PCFloatingActionButtonState-custom.h +61 -0
- package/shared/PCNavigationRailComponentDescriptors-custom.h +47 -0
- package/shared/PCNavigationRailShadowNode-custom.h +42 -0
- package/shared/PCNavigationRailState-custom.h +62 -0
- package/shared/PCTabBarComponentDescriptors-custom.h +22 -0
- package/shared/PCTabBarShadowNode-custom.cpp +54 -0
- package/shared/PCTabBarShadowNode-custom.h +54 -0
- package/shared/PCTabBarState-custom.h +62 -0
- package/shared/react/renderer/components/PlatformComponentsViewSpec/ComponentDescriptors.h +3 -0
- package/src/Button.tsx +222 -7
- package/src/ButtonGroup.tsx +29 -11
- package/src/ButtonGroupNativeComponent.ts +74 -4
- package/src/ButtonNativeComponent.ts +119 -3
- package/src/ContextMenu.tsx +34 -81
- package/src/ContextMenuNativeComponent.ts +47 -49
- package/src/DatePicker.tsx +182 -4
- package/src/DatePickerNativeComponent.ts +19 -2
- package/src/FloatingActionButton.tsx +121 -0
- package/src/FloatingActionButtonNativeComponent.ts +58 -0
- package/src/FloatingToolbar.tsx +54 -3
- package/src/FloatingToolbarNativeComponent.ts +16 -0
- package/src/LiquidGlass.tsx +24 -1
- package/src/LiquidGlassContainer.tsx +42 -0
- package/src/LiquidGlassContainerNativeComponent.ts +17 -0
- package/src/LiquidGlassNativeComponent.ts +8 -0
- package/src/NavigationRail.tsx +203 -0
- package/src/NavigationRailNativeComponent.ts +107 -0
- package/src/PlatformComponentsProvider.tsx +15 -0
- package/src/SegmentedControl.tsx +31 -1
- package/src/SegmentedControlNativeComponent.ts +11 -0
- package/src/SelectionMenu.tsx +81 -6
- package/src/SelectionMenuNativeComponent.ts +26 -4
- package/src/SplitButton.tsx +198 -0
- package/src/TabBar.tsx +373 -0
- package/src/TabBarAccessoryNativeComponent.ts +19 -0
- package/src/TabBarNativeComponent.ts +145 -0
- package/src/TextField.tsx +428 -14
- package/src/TextFieldNativeComponent.ts +110 -4
- package/src/focusRegistry.ts +1 -0
- package/src/haptics.ts +31 -0
- package/src/icons.ts +28 -1
- package/src/index.tsx +7 -0
- package/src/index.web.tsx +51 -391
- package/src/jest.tsx +958 -0
- package/src/menuItems.ts +152 -0
- package/src/selectionIdentifiers.ts +17 -0
- package/src/submitBehavior.ts +16 -0
- package/src/tabItems.ts +113 -0
- package/src/web/Button.tsx +201 -0
- package/src/web/ButtonGroup.tsx +154 -0
- package/src/web/DatePicker.tsx +204 -0
- package/src/web/DateRangePicker.tsx +135 -0
- package/src/web/Dialog.tsx +54 -0
- package/src/web/FloatingActionButton.tsx +76 -0
- package/src/web/Icon.tsx +33 -0
- package/src/web/NativeTheme.ts +23 -0
- package/src/web/NavigationRail.tsx +148 -0
- package/src/web/PlatformComponentsProvider.tsx +48 -0
- package/src/web/SegmentedControl.tsx +127 -0
- package/src/web/SelectionMenu.tsx +149 -0
- package/src/web/SplitButton.tsx +32 -0
- package/src/web/TabBar.tsx +150 -0
- package/src/web/TextField.tsx +361 -0
- package/src/web/components.tsx +71 -0
- package/src/web/containers.tsx +130 -0
- package/src/web/dateInput.ts +137 -0
- package/src/web/shared.ts +176 -0
- package/src/webComponents.ts +45 -0
- 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 {
|
|
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
|
|
94
|
+
/** Icon shown next to the label, or alone when there is no label. */
|
|
32
95
|
icon?: ButtonIconProps;
|
|
33
96
|
|
|
34
|
-
/** '
|
|
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>(
|
package/src/ContextMenu.tsx
CHANGED
|
@@ -3,44 +3,15 @@ import React, { useCallback, useMemo } from 'react';
|
|
|
3
3
|
import { type ViewProps } from 'react-native';
|
|
4
4
|
|
|
5
5
|
import NativeContextMenu, {
|
|
6
|
-
type ContextMenuAction as NativeAction,
|
|
7
|
-
type ContextMenuSubaction as NativeSubaction,
|
|
8
6
|
type ContextMenuPressActionEvent,
|
|
9
7
|
} from './ContextMenuNativeComponent';
|
|
8
|
+
import { flattenMenuActions, type ContextMenuAction } from './menuItems';
|
|
9
|
+
import type { Haptics } from './haptics';
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
/** Whether the action is destructive (red styling) */
|
|
16
|
-
destructive?: boolean;
|
|
17
|
-
/** Whether the action is disabled (grayed out) */
|
|
18
|
-
disabled?: boolean;
|
|
19
|
-
/** Whether the action is hidden */
|
|
20
|
-
hidden?: boolean;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* A single action in the context menu.
|
|
25
|
-
*/
|
|
26
|
-
export interface ContextMenuAction {
|
|
27
|
-
/** Unique identifier returned in callbacks */
|
|
28
|
-
id: string;
|
|
29
|
-
/** Display title */
|
|
30
|
-
title: string;
|
|
31
|
-
/** Secondary text (iOS only) */
|
|
32
|
-
subtitle?: string;
|
|
33
|
-
/** Icon name (SF Symbol on iOS, drawable resource on Android) */
|
|
34
|
-
image?: string;
|
|
35
|
-
/** Tint color for the icon (hex string or named color) */
|
|
36
|
-
imageColor?: string;
|
|
37
|
-
/** Action attributes */
|
|
38
|
-
attributes?: ContextMenuActionAttributes;
|
|
39
|
-
/** Checkmark state */
|
|
40
|
-
state?: 'off' | 'on' | 'mixed';
|
|
41
|
-
/** Nested actions for submenu */
|
|
42
|
-
subactions?: readonly ContextMenuAction[];
|
|
43
|
-
}
|
|
11
|
+
export type {
|
|
12
|
+
ContextMenuAction,
|
|
13
|
+
ContextMenuActionAttributes,
|
|
14
|
+
} from './menuItems';
|
|
44
15
|
|
|
45
16
|
export interface ContextMenuProps extends ViewProps {
|
|
46
17
|
/** Menu title (shown as header on iOS) */
|
|
@@ -59,6 +30,13 @@ export interface ContextMenuProps extends ViewProps {
|
|
|
59
30
|
*/
|
|
60
31
|
trigger?: 'longPress' | 'tap';
|
|
61
32
|
|
|
33
|
+
/**
|
|
34
|
+
* Haptic played when the user presses an action. Opening the menu keeps
|
|
35
|
+
* the platform's own long-press haptic; `'none'` also turns that off on
|
|
36
|
+
* Android (iOS offers no switch for it). See {@link Haptics}.
|
|
37
|
+
*/
|
|
38
|
+
haptics?: Haptics;
|
|
39
|
+
|
|
62
40
|
/**
|
|
63
41
|
* Called when the user presses an action.
|
|
64
42
|
* Receives the action's id and title.
|
|
@@ -71,6 +49,14 @@ export interface ContextMenuProps extends ViewProps {
|
|
|
71
49
|
/** Called when the menu closes */
|
|
72
50
|
onMenuClose?: () => void;
|
|
73
51
|
|
|
52
|
+
/**
|
|
53
|
+
* iOS only: called when the user taps the menu's preview (with
|
|
54
|
+
* `ios.enablePreview`), after the menu has dismissed. Use it to open the
|
|
55
|
+
* item, like tapping a preview in Photos or Mail. Maps to
|
|
56
|
+
* `contextMenuInteraction(_:willPerformPreviewActionForMenuWith:animator:)`.
|
|
57
|
+
*/
|
|
58
|
+
onPreviewPress?: () => void;
|
|
59
|
+
|
|
74
60
|
/** The content to wrap */
|
|
75
61
|
children: React.ReactNode;
|
|
76
62
|
|
|
@@ -82,7 +68,10 @@ export interface ContextMenuProps extends ViewProps {
|
|
|
82
68
|
|
|
83
69
|
/** Android-specific props */
|
|
84
70
|
android?: {
|
|
85
|
-
/**
|
|
71
|
+
/**
|
|
72
|
+
* Aligns the popup with the start ('left', default) or end ('right') edge
|
|
73
|
+
* of the wrapped content. Mirrored in RTL layouts.
|
|
74
|
+
*/
|
|
86
75
|
anchorPosition?: 'left' | 'right';
|
|
87
76
|
/**
|
|
88
77
|
* Programmatic visibility control (Android only).
|
|
@@ -96,50 +85,6 @@ export interface ContextMenuProps extends ViewProps {
|
|
|
96
85
|
testID?: string;
|
|
97
86
|
}
|
|
98
87
|
|
|
99
|
-
/**
|
|
100
|
-
* Convert user-friendly subaction to native format (no further nesting).
|
|
101
|
-
*/
|
|
102
|
-
function normalizeSubaction(action: ContextMenuAction): NativeSubaction {
|
|
103
|
-
return {
|
|
104
|
-
id: action.id,
|
|
105
|
-
title: action.title,
|
|
106
|
-
subtitle: action.subtitle,
|
|
107
|
-
image: action.image,
|
|
108
|
-
imageColor: action.imageColor,
|
|
109
|
-
attributes: action.attributes
|
|
110
|
-
? {
|
|
111
|
-
destructive: action.attributes.destructive ? 'true' : 'false',
|
|
112
|
-
disabled: action.attributes.disabled ? 'true' : 'false',
|
|
113
|
-
hidden: action.attributes.hidden ? 'true' : 'false',
|
|
114
|
-
}
|
|
115
|
-
: undefined,
|
|
116
|
-
state: action.state,
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* Convert user-friendly action to native format.
|
|
122
|
-
* Note: Only one level of nesting is supported by the native component.
|
|
123
|
-
*/
|
|
124
|
-
function normalizeAction(action: ContextMenuAction): NativeAction {
|
|
125
|
-
return {
|
|
126
|
-
id: action.id,
|
|
127
|
-
title: action.title,
|
|
128
|
-
subtitle: action.subtitle,
|
|
129
|
-
image: action.image,
|
|
130
|
-
imageColor: action.imageColor,
|
|
131
|
-
attributes: action.attributes
|
|
132
|
-
? {
|
|
133
|
-
destructive: action.attributes.destructive ? 'true' : 'false',
|
|
134
|
-
disabled: action.attributes.disabled ? 'true' : 'false',
|
|
135
|
-
hidden: action.attributes.hidden ? 'true' : 'false',
|
|
136
|
-
}
|
|
137
|
-
: undefined,
|
|
138
|
-
state: action.state,
|
|
139
|
-
subactions: action.subactions?.map(normalizeSubaction),
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
|
|
143
88
|
export function ContextMenu(props: ContextMenuProps): React.ReactElement {
|
|
144
89
|
const {
|
|
145
90
|
style,
|
|
@@ -147,16 +92,18 @@ export function ContextMenu(props: ContextMenuProps): React.ReactElement {
|
|
|
147
92
|
actions,
|
|
148
93
|
disabled,
|
|
149
94
|
trigger = 'longPress',
|
|
95
|
+
haptics,
|
|
150
96
|
onPressAction,
|
|
151
97
|
onMenuOpen,
|
|
152
98
|
onMenuClose,
|
|
99
|
+
onPreviewPress,
|
|
153
100
|
children,
|
|
154
101
|
ios,
|
|
155
102
|
android,
|
|
156
103
|
...viewProps
|
|
157
104
|
} = props;
|
|
158
105
|
|
|
159
|
-
const nativeActions = useMemo(() => actions
|
|
106
|
+
const nativeActions = useMemo(() => flattenMenuActions(actions), [actions]);
|
|
160
107
|
|
|
161
108
|
const handlePressAction = useCallback(
|
|
162
109
|
(e: { nativeEvent: ContextMenuPressActionEvent }) => {
|
|
@@ -174,6 +121,10 @@ export function ContextMenu(props: ContextMenuProps): React.ReactElement {
|
|
|
174
121
|
onMenuClose?.();
|
|
175
122
|
}, [onMenuClose]);
|
|
176
123
|
|
|
124
|
+
const handlePreviewPress = useCallback(() => {
|
|
125
|
+
onPreviewPress?.();
|
|
126
|
+
}, [onPreviewPress]);
|
|
127
|
+
|
|
177
128
|
const nativeIOS = useMemo(() => {
|
|
178
129
|
if (!ios) return undefined;
|
|
179
130
|
return {
|
|
@@ -196,9 +147,11 @@ export function ContextMenu(props: ContextMenuProps): React.ReactElement {
|
|
|
196
147
|
actions={nativeActions}
|
|
197
148
|
interactivity={disabled ? 'disabled' : 'enabled'}
|
|
198
149
|
trigger={trigger}
|
|
150
|
+
haptics={haptics ?? ''}
|
|
199
151
|
onPressAction={onPressAction ? handlePressAction : undefined}
|
|
200
152
|
onMenuOpen={onMenuOpen ? handleMenuOpen : undefined}
|
|
201
153
|
onMenuClose={onMenuClose ? handleMenuClose : undefined}
|
|
154
|
+
onPreviewPress={onPreviewPress ? handlePreviewPress : undefined}
|
|
202
155
|
ios={nativeIOS}
|
|
203
156
|
android={nativeAndroid}
|
|
204
157
|
{...viewProps}
|
|
@@ -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
|
-
*
|
|
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
|
|
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
|
|
28
|
-
/**
|
|
29
|
-
|
|
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
|
|
32
|
-
/**
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
|
|
40
|
-
|
|
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
|
|
92
|
+
* Menu items, flattened (see ContextMenuItem).
|
|
106
93
|
*/
|
|
107
|
-
actions: ReadonlyArray<
|
|
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
|
}
|