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>(
|
|
@@ -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
|
|
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","
|
|
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
|
-
*
|
|
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
|
}
|
package/lib/module/DatePicker.js
CHANGED
|
@@ -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
|
-
|
|
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","
|
|
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 =
|
|
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).
|