@tamagui/select 1.0.1-beta.21 → 1.0.1-beta.211
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/BubbleSelect.js +43 -0
- package/dist/cjs/BubbleSelect.js.map +7 -0
- package/dist/cjs/Select.js +412 -390
- package/dist/cjs/Select.js.map +3 -3
- package/dist/cjs/SelectContent.js +72 -0
- package/dist/cjs/SelectContent.js.map +7 -0
- package/dist/cjs/SelectContent.native.js +31 -0
- package/dist/cjs/SelectContent.native.js.map +7 -0
- package/dist/cjs/SelectImpl.js +286 -0
- package/dist/cjs/SelectImpl.js.map +7 -0
- package/dist/cjs/SelectScrollButton.js +157 -0
- package/dist/cjs/SelectScrollButton.js.map +7 -0
- package/dist/cjs/SelectScrollButton.native.js +32 -0
- package/dist/cjs/SelectScrollButton.native.js.map +7 -0
- package/dist/cjs/SelectViewport.js +126 -0
- package/dist/cjs/SelectViewport.js.map +7 -0
- package/dist/cjs/SelectViewport.native.js +41 -0
- package/dist/cjs/SelectViewport.native.js.map +7 -0
- package/dist/cjs/constants.js +47 -0
- package/dist/cjs/constants.js.map +7 -0
- package/dist/cjs/context.js +49 -0
- package/dist/cjs/context.js.map +7 -0
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/types.js +17 -0
- package/dist/cjs/types.js.map +7 -0
- package/dist/cjs/useSelectBreakpointActive.js +39 -0
- package/dist/cjs/useSelectBreakpointActive.js.map +7 -0
- package/dist/esm/BubbleSelect.js +24 -0
- package/dist/esm/BubbleSelect.js.map +7 -0
- package/dist/esm/Select.js +403 -358
- package/dist/esm/Select.js.map +3 -3
- package/dist/esm/SelectContent.js +48 -0
- package/dist/esm/SelectContent.js.map +7 -0
- package/dist/esm/SelectContent.native.js +7 -0
- package/dist/esm/SelectContent.native.js.map +7 -0
- package/dist/esm/SelectImpl.js +271 -0
- package/dist/esm/SelectImpl.js.map +7 -0
- package/dist/esm/SelectScrollButton.js +126 -0
- package/dist/esm/SelectScrollButton.js.map +7 -0
- package/dist/esm/SelectScrollButton.native.js +7 -0
- package/dist/esm/SelectScrollButton.native.js.map +7 -0
- package/dist/esm/SelectViewport.js +95 -0
- package/dist/esm/SelectViewport.js.map +7 -0
- package/dist/esm/SelectViewport.native.js +17 -0
- package/dist/esm/SelectViewport.native.js.map +7 -0
- package/dist/esm/constants.js +17 -0
- package/dist/esm/constants.js.map +7 -0
- package/dist/esm/context.js +21 -0
- package/dist/esm/context.js.map +7 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/types.js +1 -0
- package/dist/esm/types.js.map +7 -0
- package/dist/esm/useSelectBreakpointActive.js +14 -0
- package/dist/esm/useSelectBreakpointActive.js.map +7 -0
- package/dist/jsx/BubbleSelect.js +24 -0
- package/dist/jsx/BubbleSelect.js.map +7 -0
- package/dist/jsx/Select.js +283 -271
- package/dist/jsx/Select.js.map +7 -0
- package/dist/jsx/SelectContent.js +27 -0
- package/dist/jsx/SelectContent.js.map +7 -0
- package/dist/jsx/SelectContent.native.js +7 -0
- package/dist/jsx/SelectContent.native.js.map +7 -0
- package/dist/jsx/SelectImpl.js +244 -0
- package/dist/jsx/SelectImpl.js.map +7 -0
- package/dist/jsx/SelectScrollButton.js +99 -0
- package/dist/jsx/SelectScrollButton.js.map +7 -0
- package/dist/jsx/SelectScrollButton.native.js +7 -0
- package/dist/jsx/SelectScrollButton.native.js.map +7 -0
- package/dist/jsx/SelectViewport.js +72 -0
- package/dist/jsx/SelectViewport.js.map +7 -0
- package/dist/jsx/SelectViewport.native.js +13 -0
- package/dist/jsx/SelectViewport.native.js.map +7 -0
- package/dist/jsx/constants.js +17 -0
- package/dist/jsx/constants.js.map +7 -0
- package/dist/jsx/context.js +15 -0
- package/dist/jsx/context.js.map +7 -0
- package/dist/jsx/index.js +2 -0
- package/dist/jsx/index.js.map +7 -0
- package/dist/jsx/types.js +1 -0
- package/dist/jsx/types.js.map +7 -0
- package/dist/jsx/useSelectBreakpointActive.js +14 -0
- package/dist/jsx/useSelectBreakpointActive.js.map +7 -0
- package/package.json +26 -16
- package/src/BubbleSelect.tsx +46 -0
- package/src/Select.tsx +618 -0
- package/src/SelectContent.native.tsx +5 -0
- package/src/SelectContent.tsx +45 -0
- package/src/SelectImpl.tsx +342 -0
- package/src/SelectScrollButton.native.tsx +7 -0
- package/src/SelectScrollButton.tsx +168 -0
- package/src/SelectViewport.native.tsx +14 -0
- package/src/SelectViewport.tsx +104 -0
- package/src/constants.tsx +7 -0
- package/src/context.tsx +19 -0
- package/src/index.tsx +8 -0
- package/src/types.tsx +94 -0
- package/src/useSelectBreakpointActive.tsx +15 -0
- package/types/BubbleSelect.d.ts +2 -0
- package/types/Select.d.ts +753 -0
- package/types/SelectContent.d.ts +5 -0
- package/types/SelectContent.native.d.ts +4 -0
- package/types/SelectImpl.d.ts +9 -0
- package/types/SelectScrollButton.d.ts +6 -0
- package/types/SelectScrollButton.native.d.ts +4 -0
- package/types/SelectViewport.d.ts +127 -0
- package/types/SelectViewport.native.d.ts +7 -0
- package/types/constants.d.ts +8 -0
- package/types/context.d.ts +21 -0
- package/types/index.d.ts +2 -0
- package/types/types.d.ts +84 -0
- package/types/useSelectBreakpointActive.d.ts +4 -0
- package/types/index.d.ts.map +0 -1
package/src/types.tsx
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
ContextData,
|
|
3
|
+
FloatingContext,
|
|
4
|
+
ReferenceType,
|
|
5
|
+
} from '@floating-ui/react-dom-interactions'
|
|
6
|
+
import type { MediaQueryKey, SizeTokens } from '@tamagui/core'
|
|
7
|
+
import type { Scope } from '@tamagui/create-context'
|
|
8
|
+
import type { ThemeableStackProps, YStackProps } from '@tamagui/stacks'
|
|
9
|
+
import type { DispatchWithoutAction, HTMLProps, MutableRefObject, ReactNode } from 'react'
|
|
10
|
+
|
|
11
|
+
export type Direction = 'ltr' | 'rtl'
|
|
12
|
+
|
|
13
|
+
export type ScopedProps<P> = P & { __scopeSelect?: Scope }
|
|
14
|
+
|
|
15
|
+
export interface SelectProps {
|
|
16
|
+
id?: string
|
|
17
|
+
children?: ReactNode
|
|
18
|
+
value?: string
|
|
19
|
+
defaultValue?: string
|
|
20
|
+
onValueChange?(value: string): void
|
|
21
|
+
open?: boolean
|
|
22
|
+
defaultOpen?: boolean
|
|
23
|
+
onOpenChange?(open: boolean): void
|
|
24
|
+
dir?: Direction
|
|
25
|
+
name?: string
|
|
26
|
+
autoComplete?: string
|
|
27
|
+
size?: SizeTokens
|
|
28
|
+
sheetBreakpoint?: MediaQueryKey | false
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
type NonNull<A> = Exclude<A, void | null>
|
|
32
|
+
|
|
33
|
+
export interface SelectContextValue {
|
|
34
|
+
dir?: Direction
|
|
35
|
+
scopeKey: string
|
|
36
|
+
sheetBreakpoint: NonNull<SelectProps['sheetBreakpoint']>
|
|
37
|
+
size?: SizeTokens
|
|
38
|
+
value: any
|
|
39
|
+
selectedItem: ReactNode
|
|
40
|
+
setSelectedItem: (item: ReactNode) => void
|
|
41
|
+
selectedIndex: number
|
|
42
|
+
setSelectedIndex: (index: number) => void
|
|
43
|
+
activeIndex: number | null
|
|
44
|
+
setActiveIndex: (index: number | null) => void
|
|
45
|
+
setValueAtIndex: (index: number, value: string) => void
|
|
46
|
+
open: boolean
|
|
47
|
+
setOpen: (open: boolean) => void
|
|
48
|
+
onChange: (value: string) => void
|
|
49
|
+
valueNode: Element | null
|
|
50
|
+
onValueNodeChange(node: HTMLElement): void
|
|
51
|
+
valueNodeHasChildren: boolean
|
|
52
|
+
onValueNodeHasChildrenChange(hasChildren: boolean): void
|
|
53
|
+
forceUpdate: DispatchWithoutAction
|
|
54
|
+
|
|
55
|
+
// SheetImpl only:
|
|
56
|
+
isInSheet?: boolean
|
|
57
|
+
|
|
58
|
+
// InlineImpl only:
|
|
59
|
+
fallback: boolean
|
|
60
|
+
blockSelection: boolean
|
|
61
|
+
allowSelectRef?: MutableRefObject<boolean>
|
|
62
|
+
allowMouseUpRef?: MutableRefObject<boolean>
|
|
63
|
+
upArrowRef?: MutableRefObject<HTMLDivElement | null>
|
|
64
|
+
downArrowRef?: MutableRefObject<HTMLDivElement | null>
|
|
65
|
+
selectTimeoutRef?: MutableRefObject<any>
|
|
66
|
+
setScrollTop?: Function
|
|
67
|
+
setInnerOffset?: Function
|
|
68
|
+
dataRef?: MutableRefObject<ContextData>
|
|
69
|
+
controlledScrolling?: boolean
|
|
70
|
+
listRef?: MutableRefObject<Array<HTMLElement | null>>
|
|
71
|
+
floatingRef?: MutableRefObject<HTMLElement | null>
|
|
72
|
+
canScrollUp?: boolean
|
|
73
|
+
canScrollDown?: boolean
|
|
74
|
+
floatingContext?: FloatingContext<ReferenceType>
|
|
75
|
+
interactions?: {
|
|
76
|
+
getReferenceProps: (userProps?: HTMLProps<Element> | undefined) => any
|
|
77
|
+
getFloatingProps: (userProps?: HTMLProps<HTMLElement> | undefined) => any
|
|
78
|
+
getItemProps: (userProps?: HTMLProps<HTMLElement> | undefined) => any
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export type SelectViewportProps = ThemeableStackProps & {
|
|
83
|
+
size?: SizeTokens
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export type SelectContentProps = ScopedProps<{ children?: React.ReactNode; zIndex?: number }>
|
|
87
|
+
|
|
88
|
+
export interface SelectScrollButtonImplProps extends YStackProps {
|
|
89
|
+
dir: 'up' | 'down'
|
|
90
|
+
componentName: string
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export interface SelectScrollButtonProps
|
|
94
|
+
extends Omit<SelectScrollButtonImplProps, 'dir' | 'componentName'> {}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useMedia } from '@tamagui/core'
|
|
2
|
+
|
|
3
|
+
import { SelectContextValue } from './types'
|
|
4
|
+
|
|
5
|
+
export const useSelectBreakpointActive = (
|
|
6
|
+
sheetBreakpoint: SelectContextValue['sheetBreakpoint']
|
|
7
|
+
) => {
|
|
8
|
+
const media = useMedia()
|
|
9
|
+
return sheetBreakpoint ? media[sheetBreakpoint] : false
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export const useShowSelectSheet = (context: SelectContextValue) => {
|
|
13
|
+
const breakpointActive = useSelectBreakpointActive(context.sheetBreakpoint)
|
|
14
|
+
return context.open === false ? false : breakpointActive
|
|
15
|
+
}
|