@tamagui/slider 2.7.7 → 3.0.0-beta.1093.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/dist/cjs/Slider.cjs +442 -511
  2. package/dist/cjs/Slider.native.cjs +462 -0
  3. package/dist/cjs/Slider.native.js +416 -497
  4. package/dist/cjs/Slider.native.js.map +1 -1
  5. package/dist/cjs/SliderImpl.cjs +101 -129
  6. package/dist/cjs/SliderImpl.native.cjs +128 -0
  7. package/dist/cjs/SliderImpl.native.js +104 -146
  8. package/dist/cjs/SliderImpl.native.js.map +1 -1
  9. package/dist/cjs/SliderResponder.cjs +51 -0
  10. package/dist/cjs/SliderResponder.native.cjs +52 -0
  11. package/dist/cjs/SliderResponder.native.js +54 -0
  12. package/dist/cjs/SliderResponder.native.js.map +1 -0
  13. package/dist/cjs/constants.cjs +58 -45
  14. package/dist/cjs/constants.native.cjs +78 -0
  15. package/dist/cjs/constants.native.js +58 -44
  16. package/dist/cjs/constants.native.js.map +1 -1
  17. package/dist/cjs/helpers.cjs +58 -60
  18. package/dist/cjs/helpers.native.cjs +98 -0
  19. package/dist/cjs/helpers.native.js +65 -68
  20. package/dist/cjs/helpers.native.js.map +1 -1
  21. package/dist/cjs/index.cjs +15 -17
  22. package/dist/cjs/index.native.cjs +32 -0
  23. package/dist/cjs/index.native.js +15 -16
  24. package/dist/cjs/index.native.js.map +1 -1
  25. package/dist/cjs/types.cjs +9 -11
  26. package/dist/cjs/types.native.cjs +18 -0
  27. package/dist/cjs/types.native.js +9 -10
  28. package/dist/cjs/types.native.js.map +1 -1
  29. package/dist/esm/Slider.mjs +415 -474
  30. package/dist/esm/Slider.mjs.map +1 -1
  31. package/dist/esm/Slider.native.js +389 -463
  32. package/dist/esm/Slider.native.js.map +1 -1
  33. package/dist/esm/SliderImpl.mjs +84 -104
  34. package/dist/esm/SliderImpl.mjs.map +1 -1
  35. package/dist/esm/SliderImpl.native.js +88 -123
  36. package/dist/esm/SliderImpl.native.js.map +1 -1
  37. package/dist/esm/SliderResponder.mjs +26 -0
  38. package/dist/esm/SliderResponder.mjs.map +1 -0
  39. package/dist/esm/SliderResponder.native.js +31 -0
  40. package/dist/esm/SliderResponder.native.js.map +1 -0
  41. package/dist/esm/constants.mjs +38 -21
  42. package/dist/esm/constants.mjs.map +1 -1
  43. package/dist/esm/constants.native.js +38 -21
  44. package/dist/esm/constants.native.js.map +1 -1
  45. package/dist/esm/helpers.mjs +37 -36
  46. package/dist/esm/helpers.mjs.map +1 -1
  47. package/dist/esm/helpers.native.js +44 -45
  48. package/dist/esm/helpers.native.js.map +1 -1
  49. package/dist/esm/index.js +4 -3
  50. package/dist/esm/index.mjs +4 -3
  51. package/dist/esm/index.native.js +4 -3
  52. package/dist/esm/types.mjs +0 -2
  53. package/dist/esm/types.native.js +0 -2
  54. package/dist/jsx/Slider.mjs +415 -474
  55. package/dist/jsx/Slider.mjs.map +1 -1
  56. package/dist/jsx/Slider.native.cjs +462 -0
  57. package/dist/jsx/Slider.native.js +416 -497
  58. package/dist/jsx/Slider.native.js.map +1 -1
  59. package/dist/jsx/SliderImpl.mjs +84 -104
  60. package/dist/jsx/SliderImpl.mjs.map +1 -1
  61. package/dist/jsx/SliderImpl.native.cjs +128 -0
  62. package/dist/jsx/SliderImpl.native.js +104 -146
  63. package/dist/jsx/SliderImpl.native.js.map +1 -1
  64. package/dist/jsx/SliderResponder.mjs +26 -0
  65. package/dist/jsx/SliderResponder.mjs.map +1 -0
  66. package/dist/jsx/SliderResponder.native.cjs +52 -0
  67. package/dist/jsx/SliderResponder.native.js +54 -0
  68. package/dist/jsx/SliderResponder.native.js.map +1 -0
  69. package/dist/jsx/constants.mjs +38 -21
  70. package/dist/jsx/constants.mjs.map +1 -1
  71. package/dist/jsx/constants.native.cjs +78 -0
  72. package/dist/jsx/constants.native.js +58 -44
  73. package/dist/jsx/constants.native.js.map +1 -1
  74. package/dist/jsx/helpers.mjs +37 -36
  75. package/dist/jsx/helpers.mjs.map +1 -1
  76. package/dist/jsx/helpers.native.cjs +98 -0
  77. package/dist/jsx/helpers.native.js +65 -68
  78. package/dist/jsx/helpers.native.js.map +1 -1
  79. package/dist/jsx/index.js +4 -3
  80. package/dist/jsx/index.mjs +4 -3
  81. package/dist/jsx/index.native.cjs +32 -0
  82. package/dist/jsx/index.native.js +15 -16
  83. package/dist/jsx/index.native.js.map +1 -1
  84. package/dist/jsx/types.mjs +0 -2
  85. package/dist/jsx/types.native.cjs +18 -0
  86. package/dist/jsx/types.native.js +9 -10
  87. package/dist/jsx/types.native.js.map +1 -1
  88. package/package.json +19 -15
  89. package/src/Slider.tsx +168 -189
  90. package/src/SliderImpl.tsx +25 -32
  91. package/src/SliderResponder.native.tsx +25 -0
  92. package/src/SliderResponder.tsx +37 -0
  93. package/src/constants.tsx +16 -6
  94. package/src/types.ts +13 -4
  95. package/types/Slider.d.ts +229 -212
  96. package/types/Slider.d.ts.map +1 -1
  97. package/types/SliderImpl.d.ts +3 -6
  98. package/types/SliderImpl.d.ts.map +1 -1
  99. package/types/SliderResponder.d.ts +10 -0
  100. package/types/SliderResponder.d.ts.map +1 -0
  101. package/types/SliderResponder.native.d.ts +3 -0
  102. package/types/SliderResponder.native.d.ts.map +1 -0
  103. package/types/constants.d.ts +10 -10
  104. package/types/constants.d.ts.map +1 -1
  105. package/types/helpers.d.ts.map +1 -1
  106. package/types/types.d.ts +12 -4
  107. package/types/types.d.ts.map +1 -1
  108. package/dist/esm/index.js.map +0 -1
  109. package/dist/esm/index.mjs.map +0 -1
  110. package/dist/esm/index.native.js.map +0 -1
  111. package/dist/esm/types.mjs.map +0 -1
  112. package/dist/esm/types.native.js.map +0 -1
  113. package/dist/jsx/index.js.map +0 -1
  114. package/dist/jsx/index.mjs.map +0 -1
  115. package/dist/jsx/types.mjs.map +0 -1
@@ -0,0 +1,37 @@
1
+ import type { TamaguiElement } from '@tamagui/core'
2
+ import { View } from '@tamagui/core'
3
+ import { useResponderEvents } from '@tamagui/react-native-use-responder-events'
4
+ import * as React from 'react'
5
+
6
+ import type { SliderResponderProps } from './types'
7
+
8
+ /**
9
+ * The slider is dragged through the responder system, and tamagui views stopped
10
+ * carrying responder props on web. This is the same responder system
11
+ * react-native-web runs, used directly, so dragging behaves as it did when this
12
+ * was a react-native `View`.
13
+ */
14
+ export const SliderResponder = ({
15
+ onResponderGrant,
16
+ onResponderMove,
17
+ onResponderRelease,
18
+ children,
19
+ }: SliderResponderProps) => {
20
+ const ref = React.useRef<TamaguiElement>(null)
21
+
22
+ useResponderEvents(ref, {
23
+ onMoveShouldSetResponderCapture: () => true,
24
+ onMoveShouldSetResponder: () => true,
25
+ onStartShouldSetResponder: () => true,
26
+ onResponderTerminationRequest: () => false,
27
+ onResponderGrant,
28
+ onResponderMove,
29
+ onResponderRelease,
30
+ })
31
+
32
+ return (
33
+ <View ref={ref} position="absolute" inset={0}>
34
+ {children}
35
+ </View>
36
+ )
37
+ }
package/src/constants.tsx CHANGED
@@ -4,12 +4,22 @@ import type { Direction, SliderContextValue } from './types'
4
4
 
5
5
  export const SLIDER_NAME = 'Slider'
6
6
 
7
- export const SliderContext = createStyledContext<SliderContextValue>({
8
- size: '$true',
9
- min: 0,
10
- max: 100,
11
- orientation: 'horizontal',
12
- } as SliderContextValue)
7
+ const sliderContextKeys = ['size', 'min', 'max', 'orientation'] as const
8
+
9
+ export const SliderContext = createStyledContext<
10
+ SliderContextValue,
11
+ (typeof sliderContextKeys)[number]
12
+ >(
13
+ {
14
+ size: true,
15
+ min: 0,
16
+ max: 100,
17
+ orientation: 'horizontal',
18
+ } as SliderContextValue,
19
+ {
20
+ keys: sliderContextKeys,
21
+ }
22
+ )
13
23
 
14
24
  export const { Provider: SliderProvider, useStyledContext: useSliderContext } =
15
25
  SliderContext
package/src/types.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { GestureReponderEvent, SizeTokens, TamaguiElement } from '@tamagui/core'
2
2
  import type { Scope } from '@tamagui/create-context'
3
- import type { SizableStackProps } from '@tamagui/stacks'
3
+ import type { YStackProps } from '@tamagui/stacks'
4
4
 
5
5
  export type ScopedProps<P> = P & { __scopeSlider?: string }
6
6
 
@@ -25,7 +25,9 @@ type SliderImplPrivateProps = {
25
25
  onStepKeyDown(event: React.KeyboardEvent): void
26
26
  }
27
27
 
28
- export type SliderTrackProps = SizableStackProps
28
+ export type SliderTrackProps = YStackProps & {
29
+ size?: SizeTokens | true
30
+ }
29
31
 
30
32
  export interface SliderImplProps extends SliderTrackProps, SliderImplPrivateProps {
31
33
  dir?: Direction
@@ -64,7 +66,7 @@ export interface SliderProps
64
66
  extends
65
67
  Omit<SliderHorizontalProps, keyof SliderOrientationPrivateProps | 'defaultValue'>,
66
68
  SliderEventProps {
67
- size?: SizeTokens
69
+ size?: SizeTokens | true
68
70
  name?: string
69
71
  disabled?: boolean
70
72
  orientation?: React.AriaAttributes['aria-orientation']
@@ -79,7 +81,7 @@ export interface SliderProps
79
81
  }
80
82
 
81
83
  export type SliderContextValue = {
82
- size?: SizeTokens | number | null
84
+ size?: SizeTokens | number | true | null
83
85
  disabled?: boolean
84
86
  min: number
85
87
  max: number
@@ -88,3 +90,10 @@ export type SliderContextValue = {
88
90
  thumbs: Map<TamaguiElement, number>
89
91
  orientation: SliderProps['orientation']
90
92
  }
93
+
94
+ export type SliderResponderProps = {
95
+ onResponderGrant: (event: any) => void
96
+ onResponderMove: (event: any) => void
97
+ onResponderRelease: (event: any) => void
98
+ children?: React.ReactNode
99
+ }