@tamagui/select 2.0.0-rc.4 → 2.0.0-rc.40

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 (242) hide show
  1. package/dist/cjs/BubbleSelect.cjs +28 -23
  2. package/dist/cjs/BubbleSelect.native.js +12 -10
  3. package/dist/cjs/BubbleSelect.native.js.map +1 -1
  4. package/dist/cjs/Select.cjs +402 -376
  5. package/dist/cjs/Select.native.js +428 -414
  6. package/dist/cjs/Select.native.js.map +1 -1
  7. package/dist/cjs/SelectContent.cjs +73 -66
  8. package/dist/cjs/SelectContent.native.js +12 -10
  9. package/dist/cjs/SelectContent.native.js.map +1 -1
  10. package/dist/cjs/SelectImpl.cjs +239 -176
  11. package/dist/cjs/SelectImpl.native.js +21 -16
  12. package/dist/cjs/SelectImpl.native.js.map +1 -1
  13. package/dist/cjs/SelectItem.cjs +189 -137
  14. package/dist/cjs/SelectItem.native.js +211 -164
  15. package/dist/cjs/SelectItem.native.js.map +1 -1
  16. package/dist/cjs/SelectItemText.cjs +82 -68
  17. package/dist/cjs/SelectItemText.native.js +81 -69
  18. package/dist/cjs/SelectItemText.native.js.map +1 -1
  19. package/dist/cjs/SelectScrollButton.cjs +104 -83
  20. package/dist/cjs/SelectScrollButton.native.js +17 -15
  21. package/dist/cjs/SelectScrollButton.native.js.map +1 -1
  22. package/dist/cjs/SelectTrigger.cjs +81 -77
  23. package/dist/cjs/SelectTrigger.native.js +43 -40
  24. package/dist/cjs/SelectTrigger.native.js.map +1 -1
  25. package/dist/cjs/SelectViewport.cjs +141 -103
  26. package/dist/cjs/SelectViewport.native.js +39 -37
  27. package/dist/cjs/SelectViewport.native.js.map +1 -1
  28. package/dist/cjs/constants.cjs +19 -17
  29. package/dist/cjs/constants.native.js +19 -17
  30. package/dist/cjs/constants.native.js.map +1 -1
  31. package/dist/cjs/context.cjs +38 -27
  32. package/dist/cjs/context.native.js +46 -38
  33. package/dist/cjs/context.native.js.map +1 -1
  34. package/dist/cjs/index.cjs +7 -5
  35. package/dist/cjs/index.native.js +7 -5
  36. package/dist/cjs/index.native.js.map +1 -1
  37. package/dist/cjs/types.cjs +7 -5
  38. package/dist/cjs/types.native.js +7 -5
  39. package/dist/cjs/types.native.js.map +1 -1
  40. package/dist/cjs/useSelectBreakpointActive.cjs +13 -11
  41. package/dist/cjs/useSelectBreakpointActive.native.js +17 -15
  42. package/dist/cjs/useSelectBreakpointActive.native.js.map +1 -1
  43. package/dist/esm/BubbleSelect.mjs +16 -13
  44. package/dist/esm/BubbleSelect.mjs.map +1 -1
  45. package/dist/esm/Select.mjs +356 -331
  46. package/dist/esm/Select.mjs.map +1 -1
  47. package/dist/esm/Select.native.js +381 -369
  48. package/dist/esm/Select.native.js.map +1 -1
  49. package/dist/esm/SelectContent.mjs +55 -39
  50. package/dist/esm/SelectContent.mjs.map +1 -1
  51. package/dist/esm/SelectImpl.mjs +208 -147
  52. package/dist/esm/SelectImpl.mjs.map +1 -1
  53. package/dist/esm/SelectImpl.native.js +4 -1
  54. package/dist/esm/SelectImpl.native.js.map +1 -1
  55. package/dist/esm/SelectItem.mjs +157 -107
  56. package/dist/esm/SelectItem.mjs.map +1 -1
  57. package/dist/esm/SelectItem.native.js +180 -135
  58. package/dist/esm/SelectItem.native.js.map +1 -1
  59. package/dist/esm/SelectItemText.mjs +50 -38
  60. package/dist/esm/SelectItemText.mjs.map +1 -1
  61. package/dist/esm/SelectItemText.native.js +50 -40
  62. package/dist/esm/SelectItemText.native.js.map +1 -1
  63. package/dist/esm/SelectScrollButton.mjs +74 -55
  64. package/dist/esm/SelectScrollButton.mjs.map +1 -1
  65. package/dist/esm/SelectScrollButton.native.js +5 -5
  66. package/dist/esm/SelectScrollButton.native.js.map +1 -1
  67. package/dist/esm/SelectTrigger.mjs +51 -49
  68. package/dist/esm/SelectTrigger.mjs.map +1 -1
  69. package/dist/esm/SelectTrigger.native.js +13 -12
  70. package/dist/esm/SelectTrigger.native.js.map +1 -1
  71. package/dist/esm/SelectViewport.mjs +108 -83
  72. package/dist/esm/SelectViewport.mjs.map +1 -1
  73. package/dist/esm/SelectViewport.native.js +7 -7
  74. package/dist/esm/SelectViewport.native.js.map +1 -1
  75. package/dist/esm/constants.mjs +7 -7
  76. package/dist/esm/constants.mjs.map +1 -1
  77. package/dist/esm/constants.native.js +7 -7
  78. package/dist/esm/constants.native.js.map +1 -1
  79. package/dist/esm/context.mjs +22 -14
  80. package/dist/esm/context.mjs.map +1 -1
  81. package/dist/esm/context.native.js +30 -25
  82. package/dist/esm/context.native.js.map +1 -1
  83. package/dist/esm/index.js +2 -2
  84. package/dist/esm/index.js.map +1 -6
  85. package/dist/esm/useSelectBreakpointActive.mjs +1 -1
  86. package/dist/esm/useSelectBreakpointActive.mjs.map +1 -1
  87. package/dist/esm/useSelectBreakpointActive.native.js +1 -1
  88. package/dist/esm/useSelectBreakpointActive.native.js.map +1 -1
  89. package/dist/jsx/BubbleSelect.mjs +16 -13
  90. package/dist/jsx/BubbleSelect.mjs.map +1 -1
  91. package/dist/jsx/BubbleSelect.native.js +12 -10
  92. package/dist/jsx/BubbleSelect.native.js.map +1 -1
  93. package/dist/jsx/Select.mjs +356 -331
  94. package/dist/jsx/Select.mjs.map +1 -1
  95. package/dist/jsx/Select.native.js +428 -414
  96. package/dist/jsx/Select.native.js.map +1 -1
  97. package/dist/jsx/SelectContent.mjs +55 -39
  98. package/dist/jsx/SelectContent.mjs.map +1 -1
  99. package/dist/jsx/SelectContent.native.js +12 -10
  100. package/dist/jsx/SelectContent.native.js.map +1 -1
  101. package/dist/jsx/SelectImpl.mjs +208 -147
  102. package/dist/jsx/SelectImpl.mjs.map +1 -1
  103. package/dist/jsx/SelectImpl.native.js +21 -16
  104. package/dist/jsx/SelectImpl.native.js.map +1 -1
  105. package/dist/jsx/SelectItem.mjs +157 -107
  106. package/dist/jsx/SelectItem.mjs.map +1 -1
  107. package/dist/jsx/SelectItem.native.js +211 -164
  108. package/dist/jsx/SelectItem.native.js.map +1 -1
  109. package/dist/jsx/SelectItemText.mjs +50 -38
  110. package/dist/jsx/SelectItemText.mjs.map +1 -1
  111. package/dist/jsx/SelectItemText.native.js +81 -69
  112. package/dist/jsx/SelectItemText.native.js.map +1 -1
  113. package/dist/jsx/SelectScrollButton.mjs +74 -55
  114. package/dist/jsx/SelectScrollButton.mjs.map +1 -1
  115. package/dist/jsx/SelectScrollButton.native.js +17 -15
  116. package/dist/jsx/SelectScrollButton.native.js.map +1 -1
  117. package/dist/jsx/SelectTrigger.mjs +51 -49
  118. package/dist/jsx/SelectTrigger.mjs.map +1 -1
  119. package/dist/jsx/SelectTrigger.native.js +43 -40
  120. package/dist/jsx/SelectTrigger.native.js.map +1 -1
  121. package/dist/jsx/SelectViewport.mjs +108 -83
  122. package/dist/jsx/SelectViewport.mjs.map +1 -1
  123. package/dist/jsx/SelectViewport.native.js +39 -37
  124. package/dist/jsx/SelectViewport.native.js.map +1 -1
  125. package/dist/jsx/constants.mjs +7 -7
  126. package/dist/jsx/constants.mjs.map +1 -1
  127. package/dist/jsx/constants.native.js +19 -17
  128. package/dist/jsx/constants.native.js.map +1 -1
  129. package/dist/jsx/context.mjs +22 -14
  130. package/dist/jsx/context.mjs.map +1 -1
  131. package/dist/jsx/context.native.js +46 -38
  132. package/dist/jsx/context.native.js.map +1 -1
  133. package/dist/jsx/index.js +2 -2
  134. package/dist/jsx/index.js.map +1 -6
  135. package/dist/jsx/index.native.js +7 -5
  136. package/dist/jsx/types.native.js +7 -5
  137. package/dist/jsx/useSelectBreakpointActive.mjs +1 -1
  138. package/dist/jsx/useSelectBreakpointActive.mjs.map +1 -1
  139. package/dist/jsx/useSelectBreakpointActive.native.js +17 -15
  140. package/dist/jsx/useSelectBreakpointActive.native.js.map +1 -1
  141. package/package.json +31 -35
  142. package/src/Select.tsx +16 -1
  143. package/src/SelectContent.tsx +47 -36
  144. package/src/SelectImpl.tsx +51 -49
  145. package/src/SelectItem.tsx +17 -7
  146. package/src/SelectScrollButton.tsx +1 -1
  147. package/src/SelectTrigger.tsx +1 -1
  148. package/src/SelectViewport.tsx +42 -22
  149. package/src/context.tsx +4 -0
  150. package/src/types.tsx +44 -4
  151. package/types/Select.d.ts +2 -2
  152. package/types/Select.d.ts.map +1 -1
  153. package/types/SelectContent.d.ts +1 -1
  154. package/types/SelectContent.d.ts.map +1 -1
  155. package/types/SelectImpl.d.ts.map +1 -1
  156. package/types/SelectItem.d.ts.map +1 -1
  157. package/types/SelectTrigger.d.ts +1 -1
  158. package/types/SelectViewport.d.ts.map +1 -1
  159. package/types/context.d.ts +1 -0
  160. package/types/context.d.ts.map +1 -1
  161. package/types/types.d.ts +33 -3
  162. package/types/types.d.ts.map +1 -1
  163. package/dist/cjs/BubbleSelect.js +0 -34
  164. package/dist/cjs/BubbleSelect.js.map +0 -6
  165. package/dist/cjs/Select.js +0 -402
  166. package/dist/cjs/Select.js.map +0 -6
  167. package/dist/cjs/SelectContent.js +0 -57
  168. package/dist/cjs/SelectContent.js.map +0 -6
  169. package/dist/cjs/SelectImpl.js +0 -222
  170. package/dist/cjs/SelectImpl.js.map +0 -6
  171. package/dist/cjs/SelectItem.js +0 -166
  172. package/dist/cjs/SelectItem.js.map +0 -6
  173. package/dist/cjs/SelectItemText.js +0 -64
  174. package/dist/cjs/SelectItemText.js.map +0 -6
  175. package/dist/cjs/SelectScrollButton.js +0 -105
  176. package/dist/cjs/SelectScrollButton.js.map +0 -6
  177. package/dist/cjs/SelectTrigger.js +0 -81
  178. package/dist/cjs/SelectTrigger.js.map +0 -6
  179. package/dist/cjs/SelectViewport.js +0 -114
  180. package/dist/cjs/SelectViewport.js.map +0 -6
  181. package/dist/cjs/constants.js +0 -27
  182. package/dist/cjs/constants.js.map +0 -6
  183. package/dist/cjs/context.js +0 -33
  184. package/dist/cjs/context.js.map +0 -6
  185. package/dist/cjs/index.js +0 -16
  186. package/dist/cjs/index.js.map +0 -6
  187. package/dist/cjs/types.js +0 -14
  188. package/dist/cjs/types.js.map +0 -6
  189. package/dist/cjs/useSelectBreakpointActive.js +0 -25
  190. package/dist/cjs/useSelectBreakpointActive.js.map +0 -6
  191. package/dist/esm/BubbleSelect.js +0 -17
  192. package/dist/esm/BubbleSelect.js.map +0 -6
  193. package/dist/esm/Select.js +0 -412
  194. package/dist/esm/Select.js.map +0 -6
  195. package/dist/esm/SelectContent.js +0 -39
  196. package/dist/esm/SelectContent.js.map +0 -6
  197. package/dist/esm/SelectImpl.js +0 -223
  198. package/dist/esm/SelectImpl.js.map +0 -6
  199. package/dist/esm/SelectItem.js +0 -148
  200. package/dist/esm/SelectItem.js.map +0 -6
  201. package/dist/esm/SelectItemText.js +0 -46
  202. package/dist/esm/SelectItemText.js.map +0 -6
  203. package/dist/esm/SelectScrollButton.js +0 -87
  204. package/dist/esm/SelectScrollButton.js.map +0 -6
  205. package/dist/esm/SelectTrigger.js +0 -61
  206. package/dist/esm/SelectTrigger.js.map +0 -6
  207. package/dist/esm/SelectViewport.js +0 -112
  208. package/dist/esm/SelectViewport.js.map +0 -6
  209. package/dist/esm/constants.js +0 -11
  210. package/dist/esm/constants.js.map +0 -6
  211. package/dist/esm/context.js +0 -19
  212. package/dist/esm/context.js.map +0 -6
  213. package/dist/esm/types.js +0 -1
  214. package/dist/esm/types.js.map +0 -6
  215. package/dist/esm/useSelectBreakpointActive.js +0 -9
  216. package/dist/esm/useSelectBreakpointActive.js.map +0 -6
  217. package/dist/jsx/BubbleSelect.js +0 -17
  218. package/dist/jsx/BubbleSelect.js.map +0 -6
  219. package/dist/jsx/Select.js +0 -412
  220. package/dist/jsx/Select.js.map +0 -6
  221. package/dist/jsx/SelectContent.js +0 -39
  222. package/dist/jsx/SelectContent.js.map +0 -6
  223. package/dist/jsx/SelectImpl.js +0 -223
  224. package/dist/jsx/SelectImpl.js.map +0 -6
  225. package/dist/jsx/SelectItem.js +0 -148
  226. package/dist/jsx/SelectItem.js.map +0 -6
  227. package/dist/jsx/SelectItemText.js +0 -46
  228. package/dist/jsx/SelectItemText.js.map +0 -6
  229. package/dist/jsx/SelectScrollButton.js +0 -87
  230. package/dist/jsx/SelectScrollButton.js.map +0 -6
  231. package/dist/jsx/SelectTrigger.js +0 -61
  232. package/dist/jsx/SelectTrigger.js.map +0 -6
  233. package/dist/jsx/SelectViewport.js +0 -112
  234. package/dist/jsx/SelectViewport.js.map +0 -6
  235. package/dist/jsx/constants.js +0 -11
  236. package/dist/jsx/constants.js.map +0 -6
  237. package/dist/jsx/context.js +0 -19
  238. package/dist/jsx/context.js.map +0 -6
  239. package/dist/jsx/types.js +0 -1
  240. package/dist/jsx/types.js.map +0 -6
  241. package/dist/jsx/useSelectBreakpointActive.js +0 -9
  242. package/dist/jsx/useSelectBreakpointActive.js.map +0 -6
@@ -1,39 +0,0 @@
1
- import { FloatingOverlay, FloatingPortal } from "@floating-ui/react";
2
- import { isWeb, Theme, useIsTouchDevice, useThemeName } from "@tamagui/core";
3
- import { FocusScope } from "@tamagui/focus-scope";
4
- import React from "react";
5
- import { useSelectContext, useSelectItemParentContext } from "./context";
6
- import { useShowSelectSheet } from "./useSelectBreakpointActive";
7
- import { Fragment, jsx } from "react/jsx-runtime";
8
- const SelectContent = ({
9
- children,
10
- scope,
11
- zIndex = 1e3,
12
- ...focusScopeProps
13
- }) => {
14
- const context = useSelectContext(scope), itemParentContext = useSelectItemParentContext(scope), themeName = useThemeName(), showSheet = useShowSelectSheet(context), contents = /* @__PURE__ */ jsx(Theme, { forceClassName: !0, name: themeName, children }), touch = useIsTouchDevice(), overlayStyle = React.useMemo(() => ({ zIndex, pointerEvents: context.open ? "auto" : "none" }), [context.open]);
15
- return itemParentContext.shouldRenderWebNative ? /* @__PURE__ */ jsx(Fragment, { children }) : showSheet ? context.open ? /* @__PURE__ */ jsx(Fragment, { children: contents }) : null : /* @__PURE__ */ jsx(FloatingPortal, { children: /* @__PURE__ */ jsx(
16
- FloatingOverlay,
17
- {
18
- style: overlayStyle,
19
- lockScroll: !context.disablePreventBodyScroll && !!context.open && !touch,
20
- children: /* @__PURE__ */ jsx(
21
- FocusScope,
22
- {
23
- ...focusScopeProps,
24
- loop: !0,
25
- enabled: !!context.open,
26
- trapped: !0,
27
- onMountAutoFocus: (e) => {
28
- e.preventDefault();
29
- },
30
- children: isWeb ? /* @__PURE__ */ jsx("div", { style: { display: "contents" }, children: contents }) : contents
31
- }
32
- )
33
- }
34
- ) });
35
- };
36
- export {
37
- SelectContent
38
- };
39
- //# sourceMappingURL=SelectContent.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/SelectContent.tsx"],
4
- "mappings": "AAAA,SAAS,iBAAiB,sBAAsB;AAChD,SAAS,OAAO,OAAO,kBAAkB,oBAAoB;AAE7D,SAAS,kBAAkB;AAC3B,OAAO,WAAW;AAElB,SAAS,kBAAkB,kCAAkC;AAE7D,SAAS,0BAA0B;AAkB/B,SAYO,UAZP;AAZG,MAAM,gBAAgB,CAAC;AAAA,EAC5B;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EACT,GAAG;AACL,MAA4C;AAC1C,QAAM,UAAU,iBAAiB,KAAK,GAChC,oBAAoB,2BAA2B,KAAK,GACpD,YAAY,aAAa,GACzB,YAAY,mBAAmB,OAAO,GAEtC,WACJ,oBAAC,SAAM,gBAAc,IAAC,MAAM,WACzB,UACH,GAGI,QAAQ,iBAAiB,GAEzB,eAAe,MAAM,QAAQ,OAC1B,EAAE,QAAQ,eAAe,QAAQ,OAAO,SAAS,OAAO,IAC9D,CAAC,QAAQ,IAAI,CAAC;AAEjB,SAAI,kBAAkB,wBACb,gCAAG,UAAS,IAGjB,YACG,QAAQ,OAGN,gCAAG,oBAAS,IAFV,OAMT,oBAAC,kBACC;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,MACP,YAAY,CAAC,QAAQ,4BAA4B,CAAC,CAAC,QAAQ,QAAQ,CAAC;AAAA,MAEpE;AAAA,QAAC;AAAA;AAAA,UACE,GAAG;AAAA,UACJ,MAAI;AAAA,UACJ,SAAS,CAAC,CAAC,QAAQ;AAAA,UACnB,SAAO;AAAA,UACP,kBAAkB,CAAC,MAAM;AAEvB,cAAE,eAAe;AAAA,UACnB;AAAA,UAGC,kBAAQ,oBAAC,SAAI,OAAO,EAAE,SAAS,WAAW,GAAI,oBAAS,IAAS;AAAA;AAAA,MACnE;AAAA;AAAA,EACF,GACF;AAEJ;",
5
- "names": []
6
- }
@@ -1,223 +0,0 @@
1
- import {
2
- autoUpdate,
3
- inner,
4
- offset,
5
- size,
6
- useClick,
7
- useDismiss,
8
- useFloating,
9
- useInnerOffset,
10
- useInteractions,
11
- useListNavigation,
12
- useRole,
13
- useTypeahead
14
- } from "@floating-ui/react";
15
- import { useIsomorphicLayoutEffect } from "@tamagui/constants";
16
- import { useEvent, useIsTouchDevice } from "@tamagui/core";
17
- import * as React from "react";
18
- import { flushSync } from "react-dom";
19
- import { SCROLL_ARROW_THRESHOLD } from "./constants";
20
- import {
21
- SelectItemParentProvider,
22
- SelectProvider,
23
- useSelectContext,
24
- useSelectItemParentContext
25
- } from "./context";
26
- import { jsx } from "react/jsx-runtime";
27
- const SelectInlineImpl = (props) => {
28
- const { scope, children, open = !1, listContentRef, setActiveIndexFast } = props, selectContext = useSelectContext(scope), selectItemParentContext = useSelectItemParentContext(scope), { setActiveIndex, selectedIndex, activeIndexRef } = selectContext, { setOpen, setSelectedIndex } = selectItemParentContext, [scrollTop, setScrollTop] = React.useState(0), touch = useIsTouchDevice(), listItemsRef = React.useRef([]), overflowRef = React.useRef(null), upArrowRef = React.useRef(null), downArrowRef = React.useRef(null), allowSelectRef = React.useRef(!1), allowMouseUpRef = React.useRef(!0), selectTimeoutRef = React.useRef(null), state = React.useRef({
29
- isMouseOutside: !1,
30
- isTyping: !1
31
- }), [controlledScrolling, setControlledScrolling] = React.useState(!1), [fallback, setFallback] = React.useState(!1), [innerOffset, setInnerOffset] = React.useState(0), [blockSelection, setBlockSelection] = React.useState(!1), floatingStyle = React.useRef({});
32
- React.useEffect(() => {
33
- open ? setActiveIndexFast(selectedIndex ?? 0) : (setScrollTop(0), setFallback(!1), setActiveIndexFast(null), setControlledScrolling(!1));
34
- }, [open, selectedIndex, setActiveIndexFast]), useIsomorphicLayoutEffect(() => {
35
- if (!open) return;
36
- const mouseUp = (e) => {
37
- state.current.isMouseOutside && setOpen(!1);
38
- };
39
- return document.addEventListener("mouseup", mouseUp), () => {
40
- document.removeEventListener("mouseup", mouseUp);
41
- };
42
- }, [open]);
43
- const { x, y, strategy, context, refs, update } = useFloating({
44
- open,
45
- onOpenChange: setOpen,
46
- placement: "bottom-start",
47
- whileElementsMounted: autoUpdate,
48
- // eslint-disable-next-line no-constant-condition
49
- middleware: [
50
- size({
51
- apply({
52
- rects: {
53
- reference: { width }
54
- }
55
- }) {
56
- Object.assign(floatingStyle.current, {
57
- minWidth: width + 8
58
- }), refs.floating.current && Object.assign(refs.floating.current.style, floatingStyle.current);
59
- }
60
- }),
61
- inner({
62
- listRef: listItemsRef,
63
- overflowRef,
64
- index: selectedIndex,
65
- offset: innerOffset,
66
- onFallbackChange: setFallback,
67
- padding: 10,
68
- minItemsVisible: touch ? 10 : 4,
69
- referenceOverflowThreshold: 20
70
- }),
71
- offset({ crossAxis: -5 })
72
- ]
73
- }), floatingRef = refs.floating, showUpArrow = open && scrollTop > SCROLL_ARROW_THRESHOLD, showDownArrow = open && floatingRef.current && scrollTop < floatingRef.current.scrollHeight - floatingRef.current.clientHeight - SCROLL_ARROW_THRESHOLD, isScrollable = showDownArrow || showUpArrow;
74
- useIsomorphicLayoutEffect(() => {
75
- if (!(typeof window > "u"))
76
- return window.addEventListener("resize", update), open && update(), () => window.removeEventListener("resize", update);
77
- }, [update, open]);
78
- const onMatch = useEvent((index) => (open ? setActiveIndex : setSelectedIndex)(index)), interactionsProps = [
79
- useClick(context, { event: "mousedown", keyboardHandlers: !1 }),
80
- useDismiss(context, { outsidePress: !1 }),
81
- useRole(context, { role: "listbox" }),
82
- useInnerOffset(context, {
83
- enabled: !fallback && isScrollable,
84
- onChange: setInnerOffset,
85
- overflowRef,
86
- scrollRef: refs.floating
87
- }),
88
- useListNavigation(context, {
89
- listRef: listItemsRef,
90
- activeIndex: selectContext.activeIndex ?? 0,
91
- selectedIndex,
92
- // wrap onNavigate to prevent floating-ui from resetting activeIndex to null on focus loss
93
- onNavigate: (index) => {
94
- index !== null && setActiveIndex(index);
95
- },
96
- scrollItemIntoView: !1
97
- }),
98
- useTypeahead(context, {
99
- listRef: listContentRef,
100
- onMatch,
101
- selectedIndex,
102
- activeIndex: selectContext.activeIndex,
103
- onTypingChange: (e) => {
104
- state.current.isTyping = e;
105
- }
106
- })
107
- ], interactions = useInteractions(
108
- // unfortunately these memos will just always break due to floating-ui context always changing :/
109
- React.useMemo(() => interactionsProps, interactionsProps)
110
- ), interactionsContext = React.useMemo(() => ({
111
- ...interactions,
112
- getReferenceProps() {
113
- return interactions.getReferenceProps({
114
- ref: refs.reference,
115
- className: "SelectTrigger",
116
- onKeyDown(event) {
117
- (event.key === "Enter" || event.code === "Space" || event.key === " " && !state.current.isTyping) && (event.preventDefault(), setOpen(!0));
118
- }
119
- });
120
- },
121
- getFloatingProps(props2) {
122
- return interactions.getFloatingProps({
123
- ref: refs.floating,
124
- className: "Select",
125
- ...props2,
126
- style: {
127
- position: strategy,
128
- top: y ?? "",
129
- left: x ?? "",
130
- outline: 0,
131
- scrollbarWidth: "none",
132
- ...floatingStyle.current,
133
- ...props2?.style
134
- },
135
- onPointerEnter() {
136
- setControlledScrolling(!1), state.current.isMouseOutside = !1;
137
- },
138
- onPointerLeave() {
139
- state.current.isMouseOutside = !0;
140
- },
141
- onPointerMove() {
142
- state.current.isMouseOutside = !1, setControlledScrolling(!1);
143
- },
144
- onKeyDown() {
145
- setControlledScrolling(!0);
146
- },
147
- onContextMenu(e) {
148
- e.preventDefault();
149
- },
150
- onScroll(event) {
151
- flushSync(() => {
152
- setScrollTop(event.currentTarget.scrollTop);
153
- });
154
- }
155
- });
156
- }
157
- }), [refs.reference.current, x, y, refs.floating.current, interactions]);
158
- return useIsomorphicLayoutEffect(() => {
159
- if (open)
160
- return allowMouseUpRef.current = !1, selectTimeoutRef.current = setTimeout(() => {
161
- allowSelectRef.current = !0, allowMouseUpRef.current = !0;
162
- }, 300), () => {
163
- clearTimeout(selectTimeoutRef.current);
164
- };
165
- allowSelectRef.current = !1, allowMouseUpRef.current = !0, setInnerOffset(0), setFallback(!1), setBlockSelection(!1);
166
- }, [open]), useIsomorphicLayoutEffect(() => {
167
- !open && state.current.isMouseOutside && (state.current.isMouseOutside = !1);
168
- }, [open]), useIsomorphicLayoutEffect(() => {
169
- function onPointerDown(e) {
170
- const target = e.target;
171
- refs.floating.current?.contains(target) || upArrowRef.current?.contains(target) || downArrowRef.current?.contains(target) || (setOpen(!1), setControlledScrolling(!1));
172
- }
173
- if (open)
174
- return document.addEventListener("pointerdown", onPointerDown), () => {
175
- document.removeEventListener("pointerdown", onPointerDown);
176
- };
177
- }, [open, refs, setOpen]), React.useEffect(() => {
178
- if (!open) return;
179
- const scrollActiveIntoView = (index) => {
180
- controlledScrolling && index != null && listItemsRef.current[index]?.scrollIntoView({ block: "nearest" }), setScrollTop(refs.floating.current?.scrollTop ?? 0);
181
- };
182
- return scrollActiveIntoView(activeIndexRef.current), selectItemParentContext.activeIndexSubscribe(scrollActiveIntoView);
183
- }, [open, refs, controlledScrolling, selectItemParentContext.activeIndexSubscribe]), React.useEffect(() => {
184
- open && fallback && selectedIndex != null && listItemsRef.current[selectedIndex]?.scrollIntoView({ block: "nearest" });
185
- }, [open, fallback, selectedIndex]), useIsomorphicLayoutEffect(() => {
186
- refs.floating.current && fallback && (refs.floating.current.style.maxHeight = "");
187
- }, [refs, fallback]), /* @__PURE__ */ jsx(
188
- SelectProvider,
189
- {
190
- scope,
191
- ...selectContext,
192
- setScrollTop,
193
- setInnerOffset,
194
- fallback,
195
- floatingContext: context,
196
- canScrollDown: !!showDownArrow,
197
- canScrollUp: !!showUpArrow,
198
- controlledScrolling,
199
- blockSelection,
200
- upArrowRef,
201
- downArrowRef,
202
- update,
203
- children: /* @__PURE__ */ jsx(
204
- SelectItemParentProvider,
205
- {
206
- scope,
207
- ...selectItemParentContext,
208
- allowMouseUpRef,
209
- allowSelectRef,
210
- dataRef: context.dataRef,
211
- interactions: interactionsContext,
212
- listRef: listItemsRef,
213
- selectTimeoutRef,
214
- children
215
- }
216
- )
217
- }
218
- );
219
- };
220
- export {
221
- SelectInlineImpl
222
- };
223
- //# sourceMappingURL=SelectImpl.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/SelectImpl.tsx"],
4
- "mappings": "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",
5
- "names": ["props"]
6
- }
@@ -1,148 +0,0 @@
1
- import { useComposedRefs } from "@tamagui/compose-refs";
2
- import { isWeb, useIsomorphicLayoutEffect } from "@tamagui/constants";
3
- import { createStyledContext } from "@tamagui/core";
4
- import { ListItem } from "@tamagui/list-item";
5
- import * as React from "react";
6
- import { useSelectItemParentContext } from "./context";
7
- import { jsx } from "react/jsx-runtime";
8
- const ITEM_NAME = "SelectItem", {
9
- Provider: SelectItemContextProvider,
10
- useStyledContext: useSelectItemContext
11
- } = createStyledContext(null, ITEM_NAME), SelectItem = ListItem.Frame.styleable(
12
- function(props, forwardedRef) {
13
- const {
14
- scope,
15
- value,
16
- disabled = !1,
17
- textValue: textValueProp,
18
- index,
19
- ...restProps
20
- } = props, context = useSelectItemParentContext(scope), {
21
- setSelectedIndex,
22
- listRef,
23
- setOpen,
24
- onChange,
25
- activeIndexSubscribe,
26
- valueSubscribe,
27
- allowMouseUpRef,
28
- allowSelectRef,
29
- setValueAtIndex,
30
- selectTimeoutRef,
31
- dataRef,
32
- interactions,
33
- shouldRenderWebNative,
34
- size,
35
- onActiveChange,
36
- initialValue,
37
- setActiveIndexFast
38
- } = context, [isSelected, setSelected] = React.useState(initialValue === value);
39
- useIsomorphicLayoutEffect(() => {
40
- initialValue === value && setSelectedIndex(index);
41
- }, []), React.useEffect(() => activeIndexSubscribe((i) => {
42
- index === i && (onActiveChange(value, index), isWeb && listRef?.current[index]?.focus());
43
- }), [index]), React.useEffect(() => valueSubscribe((val) => {
44
- setSelected(val === value);
45
- }), [value]);
46
- const textId = React.useId(), refCallback = React.useCallback(
47
- (node) => {
48
- isWeb && node instanceof HTMLElement && listRef && (listRef.current[index] = node);
49
- },
50
- [index, listRef]
51
- ), composedRefs = useComposedRefs(forwardedRef, refCallback);
52
- useIsomorphicLayoutEffect(() => {
53
- setValueAtIndex(index, value);
54
- }, [index, setValueAtIndex, value]);
55
- function handleSelect() {
56
- setSelectedIndex(index), onChange(value), setOpen(!1);
57
- }
58
- const selectItemProps = React.useMemo(() => interactions ? interactions.getItemProps({
59
- onTouchMove() {
60
- allowSelectRef.current = !0, allowMouseUpRef.current = !1;
61
- },
62
- onTouchEnd() {
63
- allowSelectRef.current = !1, allowMouseUpRef.current = !0;
64
- },
65
- onKeyDown(event) {
66
- if (event.key === "Enter" || event.key === " " && !dataRef?.current.typing)
67
- event.preventDefault(), handleSelect();
68
- else if (event.key === "ArrowDown" || event.key === "ArrowUp") {
69
- event.preventDefault(), event.stopPropagation();
70
- const itemCount = listRef?.current.length ?? 0;
71
- if (itemCount === 0) return;
72
- let nextIndex;
73
- event.key === "ArrowDown" ? nextIndex = index + 1 >= itemCount ? 0 : index + 1 : nextIndex = index - 1 < 0 ? itemCount - 1 : index - 1, setActiveIndexFast?.(nextIndex);
74
- } else
75
- allowSelectRef.current = !0;
76
- },
77
- onClick() {
78
- allowSelectRef.current && handleSelect();
79
- },
80
- onMouseUp() {
81
- if (!allowMouseUpRef.current) {
82
- allowMouseUpRef.current = !0, allowSelectRef.current = !0;
83
- return;
84
- }
85
- allowSelectRef.current && handleSelect(), clearTimeout(selectTimeoutRef.current), selectTimeoutRef.current = setTimeout(() => {
86
- allowSelectRef.current = !0;
87
- });
88
- }
89
- }) : {
90
- onPress: handleSelect
91
- }, [handleSelect, index, listRef, setActiveIndexFast]);
92
- return /* @__PURE__ */ jsx(
93
- SelectItemContextProvider,
94
- {
95
- scope,
96
- value,
97
- textId: textId || "",
98
- isSelected,
99
- children: shouldRenderWebNative ? /* @__PURE__ */ jsx("option", { value, children: props.children }) : /* @__PURE__ */ jsx(
100
- ListItem.Frame,
101
- {
102
- render: "div",
103
- componentName: ITEM_NAME,
104
- ref: composedRefs,
105
- role: "option",
106
- "aria-labelledby": textId,
107
- "aria-selected": isSelected,
108
- "data-state": isSelected ? "active" : "inactive",
109
- "aria-disabled": disabled || void 0,
110
- "data-disabled": disabled ? "" : void 0,
111
- tabIndex: disabled ? void 0 : -1,
112
- ...!props.unstyled && {
113
- cursor: "default",
114
- size,
115
- outlineOffset: -0.5,
116
- zIndex: 100,
117
- hoverStyle: {
118
- backgroundColor: "$backgroundHover"
119
- },
120
- pressStyle: {
121
- backgroundColor: "$backgroundPress"
122
- },
123
- focusStyle: {
124
- backgroundColor: "$backgroundFocus"
125
- },
126
- focusVisibleStyle: {
127
- outlineColor: "$outlineColor",
128
- outlineWidth: 1,
129
- outlineStyle: "solid"
130
- }
131
- },
132
- ...restProps,
133
- ...selectItemProps
134
- }
135
- )
136
- }
137
- );
138
- },
139
- {
140
- disableTheme: !0
141
- }
142
- );
143
- export {
144
- SelectItem,
145
- SelectItemContextProvider,
146
- useSelectItemContext
147
- };
148
- //# sourceMappingURL=SelectItem.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/SelectItem.tsx"],
4
- "mappings": "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",
5
- "names": []
6
- }
@@ -1,46 +0,0 @@
1
- import { useComposedRefs } from "@tamagui/compose-refs";
2
- import { styled, useIsomorphicLayoutEffect } from "@tamagui/core";
3
- import { SizableText } from "@tamagui/text";
4
- import * as React from "react";
5
- import { useSelectItemParentContext } from "./context";
6
- import { useSelectItemContext } from "./SelectItem";
7
- import { Fragment, jsx } from "react/jsx-runtime";
8
- const ITEM_TEXT_NAME = "SelectItemText", SelectItemTextFrame = styled(SizableText, {
9
- name: ITEM_TEXT_NAME,
10
- variants: {
11
- unstyled: {
12
- false: {
13
- userSelect: "none",
14
- color: "$color",
15
- ellipsis: !0
16
- }
17
- }
18
- },
19
- defaultVariants: {
20
- unstyled: process.env.TAMAGUI_HEADLESS === "1"
21
- }
22
- }), SelectItemText = SelectItemTextFrame.styleable(
23
- function(props, forwardedRef) {
24
- const { scope, className, ...itemTextProps } = props, itemParentContext = useSelectItemParentContext(scope), ref = React.useRef(null), composedRefs = useComposedRefs(forwardedRef, ref), itemContext = useSelectItemContext(scope), contents = React.useRef(null);
25
- return contents.current = /* @__PURE__ */ jsx(
26
- SelectItemTextFrame,
27
- {
28
- className,
29
- size: itemParentContext.size,
30
- id: itemContext.textId,
31
- ...itemTextProps,
32
- ref: composedRefs
33
- }
34
- ), useIsomorphicLayoutEffect(() => {
35
- itemParentContext.initialValue === itemContext.value && itemParentContext.setSelectedItem(contents.current);
36
- }, []), useIsomorphicLayoutEffect(() => itemParentContext.valueSubscribe((val) => {
37
- val === itemContext.value && itemParentContext.setSelectedItem(contents.current);
38
- }), [itemContext.value]), itemParentContext.shouldRenderWebNative ? /* @__PURE__ */ jsx(Fragment, { children: props.children }) : /* @__PURE__ */ jsx(Fragment, { children: contents.current });
39
- }
40
- );
41
- export {
42
- ITEM_TEXT_NAME,
43
- SelectItemText,
44
- SelectItemTextFrame
45
- };
46
- //# sourceMappingURL=SelectItemText.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/SelectItemText.tsx"],
4
- "mappings": "AAAA,SAAS,uBAAuB;AAEhC,SAAS,QAAQ,iCAAiC;AAClD,SAAS,mBAAmB;AAC5B,YAAY,WAAW;AAEvB,SAAS,kCAAkC;AAC3C,SAAS,4BAA4B;AA6C/B,SAwBO,UAxBP;AAtCC,MAAM,iBAAiB,kBAEjB,sBAAsB,OAAO,aAAa;AAAA,EACrD,MAAM;AAAA,EAEN,UAAU;AAAA,IACR,UAAU;AAAA,MACR,OAAO;AAAA,QACL,YAAY;AAAA,QACZ,OAAO;AAAA,QACP,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU,QAAQ,IAAI,qBAAqB;AAAA,EAC7C;AACF,CAAC,GAMY,iBAAiB,oBAAoB;AAAA,EAChD,SAAwB,OAAO,cAAc;AAC3C,UAAM,EAAE,OAAO,WAAW,GAAG,cAAc,IAAI,OAGzC,oBAAoB,2BAA2B,KAAK,GACpD,MAAM,MAAM,OAAkC,IAAI,GAClD,eAAe,gBAAgB,cAAc,GAAG,GAChD,cAAc,qBAAqB,KAAK,GACxC,WAAW,MAAM,OAAwB,IAAI;AA4BnD,WAxBA,SAAS,UACP;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,MAAM,kBAAkB;AAAA,QACxB,IAAI,YAAY;AAAA,QACf,GAAG;AAAA,QACJ,KAAK;AAAA;AAAA,IACP,GAGF,0BAA0B,MAAM;AAC9B,MAAI,kBAAkB,iBAAiB,YAAY,SACjD,kBAAkB,gBAAgB,SAAS,OAAO;AAAA,IAEtD,GAAG,CAAC,CAAC,GAEL,0BAA0B,MACjB,kBAAkB,eAAe,CAAC,QAAQ;AAC/C,MAAI,QAAQ,YAAY,SACtB,kBAAkB,gBAAgB,SAAS,OAAO;AAAA,IAEtD,CAAC,GACA,CAAC,YAAY,KAAK,CAAC,GAElB,kBAAkB,wBACb,gCAAG,gBAAM,UAAS,IAGpB,gCAAG,mBAAS,SAAQ;AAAA,EAC7B;AACF;",
5
- "names": []
6
- }
@@ -1,87 +0,0 @@
1
- import { autoUpdate, offset, useFloating } from "@floating-ui/react";
2
- import { useComposedRefs } from "@tamagui/compose-refs";
3
- import { YStack } from "@tamagui/stacks";
4
- import * as React from "react";
5
- import { flushSync } from "react-dom";
6
- import { useSelectContext } from "./context";
7
- import { jsx } from "react/jsx-runtime";
8
- const SCROLL_UP_BUTTON_NAME = "SelectScrollUpButton", SelectScrollUpButton = React.forwardRef((props, forwardedRef) => /* @__PURE__ */ jsx(
9
- SelectScrollButtonImpl,
10
- {
11
- componentName: SCROLL_UP_BUTTON_NAME,
12
- ...props,
13
- dir: "up",
14
- ref: forwardedRef
15
- }
16
- ));
17
- SelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;
18
- const SCROLL_DOWN_BUTTON_NAME = "SelectScrollDownButton", SelectScrollDownButton = React.forwardRef((props, forwardedRef) => /* @__PURE__ */ jsx(
19
- SelectScrollButtonImpl,
20
- {
21
- componentName: SCROLL_DOWN_BUTTON_NAME,
22
- ...props,
23
- dir: "down",
24
- ref: forwardedRef
25
- }
26
- ));
27
- SelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;
28
- const SelectScrollButtonImpl = React.memo(
29
- React.forwardRef(
30
- (props, forwardedRef) => {
31
- const { scope, dir, componentName, ...scrollIndicatorProps } = props, { forceUpdate, open, fallback, setScrollTop, setInnerOffset, ...context } = useSelectContext(scope), floatingRef = context.floatingContext?.refs.floating, statusRef = React.useRef("idle"), isVisible = context[dir === "down" ? "canScrollDown" : "canScrollUp"], frameRef = React.useRef(null), { x, y, refs, strategy } = useFloating({
32
- open: open && isVisible,
33
- strategy: "fixed",
34
- elements: {
35
- reference: floatingRef?.current
36
- },
37
- placement: dir === "up" ? "top" : "bottom",
38
- middleware: [offset(({ rects }) => -rects.floating.height)],
39
- whileElementsMounted: (...args) => autoUpdate(...args, { animationFrame: !0 })
40
- }), composedRef = useComposedRefs(forwardedRef, refs.setFloating);
41
- if (!isVisible)
42
- return null;
43
- const onScroll = (amount) => {
44
- const floating = floatingRef;
45
- floating && (fallback ? floating.current && (floating.current.scrollTop -= amount, flushSync(() => setScrollTop(floating.current?.scrollTop ?? 0))) : flushSync(() => setInnerOffset((value) => value - amount)));
46
- };
47
- return /* @__PURE__ */ jsx(
48
- YStack,
49
- {
50
- ref: composedRef,
51
- componentName,
52
- "aria-hidden": !0,
53
- ...scrollIndicatorProps,
54
- zIndex: 1e3,
55
- position: strategy,
56
- left: x || 0,
57
- top: y || 0,
58
- width: `calc(${(floatingRef?.current?.offsetWidth ?? 0) - 2}px)`,
59
- onPointerEnter: () => {
60
- statusRef.current = "active";
61
- let prevNow = Date.now();
62
- function frame() {
63
- const element = floatingRef?.current;
64
- if (element) {
65
- const currentNow = Date.now(), msElapsed = currentNow - prevNow;
66
- prevNow = currentNow;
67
- const pixelsToScroll = msElapsed / 2, remainingPixels = dir === "up" ? element.scrollTop : element.scrollHeight - element.clientHeight - element.scrollTop, scrollRemaining = dir === "up" ? element.scrollTop - pixelsToScroll > 0 : element.scrollTop + pixelsToScroll < element.scrollHeight - element.clientHeight;
68
- onScroll(
69
- dir === "up" ? Math.min(pixelsToScroll, remainingPixels) : Math.max(-pixelsToScroll, -remainingPixels)
70
- ), scrollRemaining && (frameRef.current = requestAnimationFrame(frame));
71
- }
72
- }
73
- cancelAnimationFrame(frameRef.current), frameRef.current = requestAnimationFrame(frame);
74
- },
75
- onPointerLeave: () => {
76
- statusRef.current = "idle", cancelAnimationFrame(frameRef.current);
77
- }
78
- }
79
- );
80
- }
81
- )
82
- );
83
- export {
84
- SelectScrollDownButton,
85
- SelectScrollUpButton
86
- };
87
- //# sourceMappingURL=SelectScrollButton.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/SelectScrollButton.tsx"],
4
- "mappings": "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",
5
- "names": []
6
- }
@@ -1,61 +0,0 @@
1
- import { useComposedRefs } from "@tamagui/compose-refs";
2
- import { ListItem } from "@tamagui/list-item";
3
- import * as React from "react";
4
- import { useSelectContext, useSelectItemParentContext } from "./context";
5
- import { jsx } from "react/jsx-runtime";
6
- const TRIGGER_NAME = "SelectTrigger", isPointerCoarse = typeof window < "u" ? window.matchMedia("(pointer:coarse)").matches : !0, SelectTrigger = React.forwardRef(
7
- function(props, forwardedRef) {
8
- const { scope, disabled = !1, unstyled = !1, ...triggerProps } = props, context = useSelectContext(scope), itemParentContext = useSelectItemParentContext(scope), composedRefs = useComposedRefs(
9
- forwardedRef,
10
- context.floatingContext?.refs.setReference
11
- );
12
- return itemParentContext.shouldRenderWebNative ? null : /* @__PURE__ */ jsx(
13
- ListItem,
14
- {
15
- componentName: TRIGGER_NAME,
16
- unstyled,
17
- render: "button",
18
- type: "button",
19
- id: itemParentContext.id,
20
- ...!unstyled && {
21
- focusVisibleStyle: {
22
- outlineStyle: "solid",
23
- outlineWidth: 2,
24
- outlineColor: "$outlineColor"
25
- },
26
- borderWidth: 1,
27
- size: itemParentContext.size
28
- },
29
- role: "combobox",
30
- "aria-haspopup": "listbox",
31
- "aria-expanded": context.open,
32
- "aria-autocomplete": "none",
33
- dir: context.dir,
34
- disabled,
35
- "data-disabled": disabled ? "" : void 0,
36
- ...triggerProps,
37
- ref: composedRefs,
38
- ...itemParentContext.interactions ? {
39
- ...itemParentContext.interactions.getReferenceProps(),
40
- ...isPointerCoarse ? {
41
- onPress() {
42
- itemParentContext.setOpen(!context.open);
43
- }
44
- } : {
45
- onMouseDown() {
46
- context.floatingContext?.update(), itemParentContext.setOpen(!context.open);
47
- }
48
- }
49
- } : {
50
- onPress() {
51
- itemParentContext.setOpen(!context.open);
52
- }
53
- }
54
- }
55
- );
56
- }
57
- );
58
- export {
59
- SelectTrigger
60
- };
61
- //# sourceMappingURL=SelectTrigger.js.map