@tamagui/core 1.2.5 → 1.2.7

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/dist/cjs/index.js CHANGED
@@ -144,8 +144,6 @@ const T2 = (0, import_web.styled)(T, {
144
144
  },
145
145
  useEvents(viewProps, events, { pseudos }, setStateShallow) {
146
146
  if (process.env.TAMAGUI_TARGET === "native") {
147
- if (!events)
148
- return;
149
147
  const attachFocus = !!(pseudos == null ? void 0 : pseudos.focusStyle);
150
148
  if (attachFocus) {
151
149
  viewProps.onFocus = (0, import_web.mergeEvent)(viewProps.onFocus, () => {
@@ -158,7 +156,7 @@ const T2 = (0, import_web.styled)(T, {
158
156
  const pressability = (0, import_Pressability.usePressability)(
159
157
  events ? { ...events, hitSlop: viewProps.hitSlop } : {}
160
158
  );
161
- if (events.onPress) {
159
+ if (events == null ? void 0 : events.onPress) {
162
160
  for (const key in pressability) {
163
161
  const og = viewProps[key];
164
162
  const val = pressability[key];
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "sourcesContent": ["import { useResponderEvents } from '@tamagui/react-native-use-responder-events'\nimport {\n StackProps,\n StackPropsBase,\n TamaguiComponent,\n TextProps,\n TextPropsBase,\n Stack as WebStack,\n Text as WebText,\n composeEventHandlers,\n isRSC,\n mergeEvent,\n setupHooks,\n styled,\n} from '@tamagui/web'\nimport { RefObject } from 'react'\nimport type { Text as RNText, View as RNView } from 'react-native'\n\nimport { useElementLayout } from './hooks/useElementLayout'\nimport { usePlatformMethods } from './hooks/usePlatformMethods'\nimport type { RNTextProps, RNViewProps } from './reactNativeTypes'\nimport { usePressability } from './vendor/Pressability'\n\n// re-exports all of @tamagui/web just adds hooks\nexport * from '@tamagui/web'\n\n// adds extra types to Stack/Text:\n\nexport const Stack = WebStack as TamaguiComponent<\n StackProps & RNViewProps,\n RNView,\n StackPropsBase & RNViewProps\n>\n\nexport const Text = WebText as TamaguiComponent<\n TextProps & RNTextProps,\n RNText,\n TextPropsBase & RNTextProps\n>\n\nconst T = styled(Stack, {\n backgroundColor: 'red',\n variants: {\n red: {\n true: {\n backgroundColor: 'red',\n },\n },\n },\n})\n\nconst T2 = styled(T, {\n red: true,\n})\n\n// setup internal hooks:\n\nsetupHooks({\n getBaseViews() {\n const native = require('react-native')\n return {\n View: native.View || native.default.View,\n Text: native.Text || native.default.Text,\n }\n },\n\n usePropsTransform(elementType, propsIn, hostRef) {\n // otherwise replicate react-native-web functionality\n const {\n // event props\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture,\n\n // android\n collapsable,\n focusable,\n\n // deprecated,\n accessible,\n accessibilityDisabled,\n\n onLayout,\n hrefAttrs,\n\n ...viewProps\n } = propsIn\n\n if (!isRSC) {\n usePlatformMethods(hostRef as RefObject<Element>)\n useElementLayout(hostRef as RefObject<Element>, onLayout as any)\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture,\n } as any)\n }\n\n // TODO move into getSplitStyles inital `if (process.env.TAMAGUI_TARGET === 'web')` block\n\n if (viewProps.href !== undefined && hrefAttrs !== undefined) {\n const { download, rel, target } = hrefAttrs\n if (download != null) {\n viewProps.download = download\n }\n if (rel != null) {\n viewProps.rel = rel\n }\n if (typeof target === 'string') {\n viewProps.target = target.charAt(0) !== '_' ? `_${target}` : target\n }\n }\n\n // FOCUS\n // \"focusable\" indicates that an element may be a keyboard tab-stop.\n // ported from RNW: TODO move into getSplitStyles\n if (!viewProps.tabIndex) {\n const _focusable = focusable !== undefined ? focusable : accessible\n const role = viewProps.role\n if (_focusable === false) {\n viewProps.tabIndex = '-1'\n }\n if (\n // These native elements are focusable by default\n elementType === 'a' ||\n elementType === 'button' ||\n elementType === 'input' ||\n elementType === 'select' ||\n elementType === 'textarea'\n ) {\n if (_focusable === false || accessibilityDisabled === true) {\n viewProps.tabIndex = '-1'\n }\n } else if (\n // These roles are made focusable by default\n role === 'button' ||\n role === 'checkbox' ||\n role === 'link' ||\n role === 'radio' ||\n role === 'textbox' ||\n role === 'switch'\n ) {\n if (_focusable !== false) {\n viewProps.tabIndex = '0'\n }\n }\n // Everything else must explicitly set the prop\n if (_focusable === true) {\n viewProps.tabIndex = '0'\n }\n }\n\n return viewProps\n },\n\n useEvents(viewProps, events, { pseudos }, setStateShallow) {\n if (process.env.TAMAGUI_TARGET === 'native') {\n if (!events) return\n // add focus events\n const attachFocus = !!pseudos?.focusStyle\n if (attachFocus) {\n viewProps.onFocus = mergeEvent(viewProps.onFocus, () => {\n setStateShallow({ focus: true })\n })\n viewProps.onBlur = mergeEvent(viewProps.onBlur, () => {\n setStateShallow({ focus: false })\n })\n }\n // use Pressability to get smooth unPress when you press + hold + move out\n // only ever create once, use .configure() to update later\n const pressability = usePressability(\n events ? { ...events, hitSlop: viewProps.hitSlop } : {}\n )\n if (events.onPress) {\n for (const key in pressability) {\n const og = viewProps[key]\n const val = pressability[key]\n viewProps[key] =\n og && !dontComposePressabilityKeys[key] ? composeEventHandlers(og, val) : val\n }\n }\n }\n },\n})\n\nconst dontComposePressabilityKeys = {\n onClick: true,\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { useResponderEvents } from '@tamagui/react-native-use-responder-events'\nimport {\n StackProps,\n StackPropsBase,\n TamaguiComponent,\n TextProps,\n TextPropsBase,\n Stack as WebStack,\n Text as WebText,\n composeEventHandlers,\n isRSC,\n mergeEvent,\n setupHooks,\n styled,\n} from '@tamagui/web'\nimport { RefObject } from 'react'\nimport type { Text as RNText, View as RNView } from 'react-native'\n\nimport { useElementLayout } from './hooks/useElementLayout'\nimport { usePlatformMethods } from './hooks/usePlatformMethods'\nimport type { RNTextProps, RNViewProps } from './reactNativeTypes'\nimport { usePressability } from './vendor/Pressability'\n\n// re-exports all of @tamagui/web just adds hooks\nexport * from '@tamagui/web'\n\n// adds extra types to Stack/Text:\n\nexport const Stack = WebStack as TamaguiComponent<\n StackProps & RNViewProps,\n RNView,\n StackPropsBase & RNViewProps\n>\n\nexport const Text = WebText as TamaguiComponent<\n TextProps & RNTextProps,\n RNText,\n TextPropsBase & RNTextProps\n>\n\nconst T = styled(Stack, {\n backgroundColor: 'red',\n variants: {\n red: {\n true: {\n backgroundColor: 'red',\n },\n },\n },\n})\n\nconst T2 = styled(T, {\n red: true,\n})\n\n// setup internal hooks:\n\nsetupHooks({\n getBaseViews() {\n const native = require('react-native')\n return {\n View: native.View || native.default.View,\n Text: native.Text || native.default.Text,\n }\n },\n\n usePropsTransform(elementType, propsIn, hostRef) {\n // otherwise replicate react-native-web functionality\n const {\n // event props\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture,\n\n // android\n collapsable,\n focusable,\n\n // deprecated,\n accessible,\n accessibilityDisabled,\n\n onLayout,\n hrefAttrs,\n\n ...viewProps\n } = propsIn\n\n if (!isRSC) {\n usePlatformMethods(hostRef as RefObject<Element>)\n useElementLayout(hostRef as RefObject<Element>, onLayout as any)\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture,\n } as any)\n }\n\n // TODO move into getSplitStyles inital `if (process.env.TAMAGUI_TARGET === 'web')` block\n\n if (viewProps.href !== undefined && hrefAttrs !== undefined) {\n const { download, rel, target } = hrefAttrs\n if (download != null) {\n viewProps.download = download\n }\n if (rel != null) {\n viewProps.rel = rel\n }\n if (typeof target === 'string') {\n viewProps.target = target.charAt(0) !== '_' ? `_${target}` : target\n }\n }\n\n // FOCUS\n // \"focusable\" indicates that an element may be a keyboard tab-stop.\n // ported from RNW: TODO move into getSplitStyles\n if (!viewProps.tabIndex) {\n const _focusable = focusable !== undefined ? focusable : accessible\n const role = viewProps.role\n if (_focusable === false) {\n viewProps.tabIndex = '-1'\n }\n if (\n // These native elements are focusable by default\n elementType === 'a' ||\n elementType === 'button' ||\n elementType === 'input' ||\n elementType === 'select' ||\n elementType === 'textarea'\n ) {\n if (_focusable === false || accessibilityDisabled === true) {\n viewProps.tabIndex = '-1'\n }\n } else if (\n // These roles are made focusable by default\n role === 'button' ||\n role === 'checkbox' ||\n role === 'link' ||\n role === 'radio' ||\n role === 'textbox' ||\n role === 'switch'\n ) {\n if (_focusable !== false) {\n viewProps.tabIndex = '0'\n }\n }\n // Everything else must explicitly set the prop\n if (_focusable === true) {\n viewProps.tabIndex = '0'\n }\n }\n\n return viewProps\n },\n\n useEvents(viewProps, events, { pseudos }, setStateShallow) {\n if (process.env.TAMAGUI_TARGET === 'native') {\n const attachFocus = !!pseudos?.focusStyle\n if (attachFocus) {\n viewProps.onFocus = mergeEvent(viewProps.onFocus, () => {\n setStateShallow({ focus: true })\n })\n viewProps.onBlur = mergeEvent(viewProps.onBlur, () => {\n setStateShallow({ focus: false })\n })\n }\n\n // use Pressability to get smooth unPress when you press + hold + move out\n // only ever create once, use .configure() to update later\n const pressability = usePressability(\n events ? { ...events, hitSlop: viewProps.hitSlop } : {}\n )\n if (events?.onPress) {\n for (const key in pressability) {\n const og = viewProps[key]\n const val = pressability[key]\n viewProps[key] =\n og && !dontComposePressabilityKeys[key] ? composeEventHandlers(og, val) : val\n }\n }\n }\n },\n})\n\nconst dontComposePressabilityKeys = {\n onClick: true,\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["WebStack", "WebText"]
7
7
  }
package/dist/esm/index.js CHANGED
@@ -127,8 +127,6 @@ setupHooks({
127
127
  },
128
128
  useEvents(viewProps, events, { pseudos }, setStateShallow) {
129
129
  if (process.env.TAMAGUI_TARGET === "native") {
130
- if (!events)
131
- return;
132
130
  const attachFocus = !!(pseudos == null ? void 0 : pseudos.focusStyle);
133
131
  if (attachFocus) {
134
132
  viewProps.onFocus = mergeEvent(viewProps.onFocus, () => {
@@ -141,7 +139,7 @@ setupHooks({
141
139
  const pressability = usePressability(
142
140
  events ? { ...events, hitSlop: viewProps.hitSlop } : {}
143
141
  );
144
- if (events.onPress) {
142
+ if (events == null ? void 0 : events.onPress) {
145
143
  for (const key in pressability) {
146
144
  const og = viewProps[key];
147
145
  const val = pressability[key];
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "sourcesContent": ["import { useResponderEvents } from '@tamagui/react-native-use-responder-events'\nimport {\n StackProps,\n StackPropsBase,\n TamaguiComponent,\n TextProps,\n TextPropsBase,\n Stack as WebStack,\n Text as WebText,\n composeEventHandlers,\n isRSC,\n mergeEvent,\n setupHooks,\n styled,\n} from '@tamagui/web'\nimport { RefObject } from 'react'\nimport type { Text as RNText, View as RNView } from 'react-native'\n\nimport { useElementLayout } from './hooks/useElementLayout'\nimport { usePlatformMethods } from './hooks/usePlatformMethods'\nimport type { RNTextProps, RNViewProps } from './reactNativeTypes'\nimport { usePressability } from './vendor/Pressability'\n\n// re-exports all of @tamagui/web just adds hooks\nexport * from '@tamagui/web'\n\n// adds extra types to Stack/Text:\n\nexport const Stack = WebStack as TamaguiComponent<\n StackProps & RNViewProps,\n RNView,\n StackPropsBase & RNViewProps\n>\n\nexport const Text = WebText as TamaguiComponent<\n TextProps & RNTextProps,\n RNText,\n TextPropsBase & RNTextProps\n>\n\nconst T = styled(Stack, {\n backgroundColor: 'red',\n variants: {\n red: {\n true: {\n backgroundColor: 'red',\n },\n },\n },\n})\n\nconst T2 = styled(T, {\n red: true,\n})\n\n// setup internal hooks:\n\nsetupHooks({\n getBaseViews() {\n const native = require('react-native')\n return {\n View: native.View || native.default.View,\n Text: native.Text || native.default.Text,\n }\n },\n\n usePropsTransform(elementType, propsIn, hostRef) {\n // otherwise replicate react-native-web functionality\n const {\n // event props\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture,\n\n // android\n collapsable,\n focusable,\n\n // deprecated,\n accessible,\n accessibilityDisabled,\n\n onLayout,\n hrefAttrs,\n\n ...viewProps\n } = propsIn\n\n if (!isRSC) {\n usePlatformMethods(hostRef as RefObject<Element>)\n useElementLayout(hostRef as RefObject<Element>, onLayout as any)\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture,\n } as any)\n }\n\n // TODO move into getSplitStyles inital `if (process.env.TAMAGUI_TARGET === 'web')` block\n\n if (viewProps.href !== undefined && hrefAttrs !== undefined) {\n const { download, rel, target } = hrefAttrs\n if (download != null) {\n viewProps.download = download\n }\n if (rel != null) {\n viewProps.rel = rel\n }\n if (typeof target === 'string') {\n viewProps.target = target.charAt(0) !== '_' ? `_${target}` : target\n }\n }\n\n // FOCUS\n // \"focusable\" indicates that an element may be a keyboard tab-stop.\n // ported from RNW: TODO move into getSplitStyles\n if (!viewProps.tabIndex) {\n const _focusable = focusable !== undefined ? focusable : accessible\n const role = viewProps.role\n if (_focusable === false) {\n viewProps.tabIndex = '-1'\n }\n if (\n // These native elements are focusable by default\n elementType === 'a' ||\n elementType === 'button' ||\n elementType === 'input' ||\n elementType === 'select' ||\n elementType === 'textarea'\n ) {\n if (_focusable === false || accessibilityDisabled === true) {\n viewProps.tabIndex = '-1'\n }\n } else if (\n // These roles are made focusable by default\n role === 'button' ||\n role === 'checkbox' ||\n role === 'link' ||\n role === 'radio' ||\n role === 'textbox' ||\n role === 'switch'\n ) {\n if (_focusable !== false) {\n viewProps.tabIndex = '0'\n }\n }\n // Everything else must explicitly set the prop\n if (_focusable === true) {\n viewProps.tabIndex = '0'\n }\n }\n\n return viewProps\n },\n\n useEvents(viewProps, events, { pseudos }, setStateShallow) {\n if (process.env.TAMAGUI_TARGET === 'native') {\n if (!events) return\n // add focus events\n const attachFocus = !!pseudos?.focusStyle\n if (attachFocus) {\n viewProps.onFocus = mergeEvent(viewProps.onFocus, () => {\n setStateShallow({ focus: true })\n })\n viewProps.onBlur = mergeEvent(viewProps.onBlur, () => {\n setStateShallow({ focus: false })\n })\n }\n // use Pressability to get smooth unPress when you press + hold + move out\n // only ever create once, use .configure() to update later\n const pressability = usePressability(\n events ? { ...events, hitSlop: viewProps.hitSlop } : {}\n )\n if (events.onPress) {\n for (const key in pressability) {\n const og = viewProps[key]\n const val = pressability[key]\n viewProps[key] =\n og && !dontComposePressabilityKeys[key] ? composeEventHandlers(og, val) : val\n }\n }\n }\n },\n})\n\nconst dontComposePressabilityKeys = {\n onClick: true,\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { useResponderEvents } from '@tamagui/react-native-use-responder-events'\nimport {\n StackProps,\n StackPropsBase,\n TamaguiComponent,\n TextProps,\n TextPropsBase,\n Stack as WebStack,\n Text as WebText,\n composeEventHandlers,\n isRSC,\n mergeEvent,\n setupHooks,\n styled,\n} from '@tamagui/web'\nimport { RefObject } from 'react'\nimport type { Text as RNText, View as RNView } from 'react-native'\n\nimport { useElementLayout } from './hooks/useElementLayout'\nimport { usePlatformMethods } from './hooks/usePlatformMethods'\nimport type { RNTextProps, RNViewProps } from './reactNativeTypes'\nimport { usePressability } from './vendor/Pressability'\n\n// re-exports all of @tamagui/web just adds hooks\nexport * from '@tamagui/web'\n\n// adds extra types to Stack/Text:\n\nexport const Stack = WebStack as TamaguiComponent<\n StackProps & RNViewProps,\n RNView,\n StackPropsBase & RNViewProps\n>\n\nexport const Text = WebText as TamaguiComponent<\n TextProps & RNTextProps,\n RNText,\n TextPropsBase & RNTextProps\n>\n\nconst T = styled(Stack, {\n backgroundColor: 'red',\n variants: {\n red: {\n true: {\n backgroundColor: 'red',\n },\n },\n },\n})\n\nconst T2 = styled(T, {\n red: true,\n})\n\n// setup internal hooks:\n\nsetupHooks({\n getBaseViews() {\n const native = require('react-native')\n return {\n View: native.View || native.default.View,\n Text: native.Text || native.default.Text,\n }\n },\n\n usePropsTransform(elementType, propsIn, hostRef) {\n // otherwise replicate react-native-web functionality\n const {\n // event props\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture,\n\n // android\n collapsable,\n focusable,\n\n // deprecated,\n accessible,\n accessibilityDisabled,\n\n onLayout,\n hrefAttrs,\n\n ...viewProps\n } = propsIn\n\n if (!isRSC) {\n usePlatformMethods(hostRef as RefObject<Element>)\n useElementLayout(hostRef as RefObject<Element>, onLayout as any)\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture,\n } as any)\n }\n\n // TODO move into getSplitStyles inital `if (process.env.TAMAGUI_TARGET === 'web')` block\n\n if (viewProps.href !== undefined && hrefAttrs !== undefined) {\n const { download, rel, target } = hrefAttrs\n if (download != null) {\n viewProps.download = download\n }\n if (rel != null) {\n viewProps.rel = rel\n }\n if (typeof target === 'string') {\n viewProps.target = target.charAt(0) !== '_' ? `_${target}` : target\n }\n }\n\n // FOCUS\n // \"focusable\" indicates that an element may be a keyboard tab-stop.\n // ported from RNW: TODO move into getSplitStyles\n if (!viewProps.tabIndex) {\n const _focusable = focusable !== undefined ? focusable : accessible\n const role = viewProps.role\n if (_focusable === false) {\n viewProps.tabIndex = '-1'\n }\n if (\n // These native elements are focusable by default\n elementType === 'a' ||\n elementType === 'button' ||\n elementType === 'input' ||\n elementType === 'select' ||\n elementType === 'textarea'\n ) {\n if (_focusable === false || accessibilityDisabled === true) {\n viewProps.tabIndex = '-1'\n }\n } else if (\n // These roles are made focusable by default\n role === 'button' ||\n role === 'checkbox' ||\n role === 'link' ||\n role === 'radio' ||\n role === 'textbox' ||\n role === 'switch'\n ) {\n if (_focusable !== false) {\n viewProps.tabIndex = '0'\n }\n }\n // Everything else must explicitly set the prop\n if (_focusable === true) {\n viewProps.tabIndex = '0'\n }\n }\n\n return viewProps\n },\n\n useEvents(viewProps, events, { pseudos }, setStateShallow) {\n if (process.env.TAMAGUI_TARGET === 'native') {\n const attachFocus = !!pseudos?.focusStyle\n if (attachFocus) {\n viewProps.onFocus = mergeEvent(viewProps.onFocus, () => {\n setStateShallow({ focus: true })\n })\n viewProps.onBlur = mergeEvent(viewProps.onBlur, () => {\n setStateShallow({ focus: false })\n })\n }\n\n // use Pressability to get smooth unPress when you press + hold + move out\n // only ever create once, use .configure() to update later\n const pressability = usePressability(\n events ? { ...events, hitSlop: viewProps.hitSlop } : {}\n )\n if (events?.onPress) {\n for (const key in pressability) {\n const og = viewProps[key]\n const val = pressability[key]\n viewProps[key] =\n og && !dontComposePressabilityKeys[key] ? composeEventHandlers(og, val) : val\n }\n }\n }\n },\n})\n\nconst dontComposePressabilityKeys = {\n onClick: true,\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/core",
3
- "version": "1.2.5",
3
+ "version": "1.2.7",
4
4
  "source": "src/index.ts",
5
5
  "main": "dist/cjs",
6
6
  "module": "dist/esm",
@@ -27,16 +27,16 @@
27
27
  "reset.css"
28
28
  ],
29
29
  "dependencies": {
30
- "@tamagui/react-native-use-pressable": "^1.2.5",
31
- "@tamagui/react-native-use-responder-events": "^1.2.5",
32
- "@tamagui/web": "^1.2.5"
30
+ "@tamagui/react-native-use-pressable": "^1.2.7",
31
+ "@tamagui/react-native-use-responder-events": "^1.2.7",
32
+ "@tamagui/web": "^1.2.7"
33
33
  },
34
34
  "peerDependencies": {
35
35
  "react": "*",
36
36
  "react-dom": "*"
37
37
  },
38
38
  "devDependencies": {
39
- "@tamagui/build": "^1.2.5",
39
+ "@tamagui/build": "^1.2.7",
40
40
  "@testing-library/react": "^13.4.0",
41
41
  "csstype": "^3.0.10",
42
42
  "react": "^18.2.0",
package/src/index.ts CHANGED
@@ -181,8 +181,6 @@ setupHooks({
181
181
 
182
182
  useEvents(viewProps, events, { pseudos }, setStateShallow) {
183
183
  if (process.env.TAMAGUI_TARGET === 'native') {
184
- if (!events) return
185
- // add focus events
186
184
  const attachFocus = !!pseudos?.focusStyle
187
185
  if (attachFocus) {
188
186
  viewProps.onFocus = mergeEvent(viewProps.onFocus, () => {
@@ -192,12 +190,13 @@ setupHooks({
192
190
  setStateShallow({ focus: false })
193
191
  })
194
192
  }
193
+
195
194
  // use Pressability to get smooth unPress when you press + hold + move out
196
195
  // only ever create once, use .configure() to update later
197
196
  const pressability = usePressability(
198
197
  events ? { ...events, hitSlop: viewProps.hitSlop } : {}
199
198
  )
200
- if (events.onPress) {
199
+ if (events?.onPress) {
201
200
  for (const key in pressability) {
202
201
  const og = viewProps[key]
203
202
  const val = pressability[key]