@multiplatform.one/forms 8.3.0 → 8.4.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.
Files changed (265) hide show
  1. package/dist/cjs/ControlGroup/index.cjs +2 -1
  2. package/dist/cjs/ControlGroup/index.native.js +2 -1
  3. package/dist/cjs/ControlGroup/index.native.js.map +1 -1
  4. package/dist/cjs/FloatingPanel/index.native.js +20 -2
  5. package/dist/cjs/FloatingPanel/index.native.js.map +1 -1
  6. package/dist/cjs/InputParts/index.cjs +1 -0
  7. package/dist/cjs/InputParts/index.native.js +1 -0
  8. package/dist/cjs/InputParts/index.native.js.map +1 -1
  9. package/dist/cjs/Wheel/index.cjs +22 -6
  10. package/dist/cjs/Wheel/index.native.js +26 -8
  11. package/dist/cjs/Wheel/index.native.js.map +1 -1
  12. package/dist/cjs/fields/DatePicker/parts.cjs +33 -30
  13. package/dist/cjs/fields/DatePicker/parts.native.js +34 -30
  14. package/dist/cjs/fields/DatePicker/parts.native.js.map +1 -1
  15. package/dist/cjs/fields/FileUpload/index.cjs +32 -15
  16. package/dist/cjs/fields/FileUpload/index.native.js +40 -19
  17. package/dist/cjs/fields/FileUpload/index.native.js.map +1 -1
  18. package/dist/cjs/fields/ImageField/index.cjs +35 -20
  19. package/dist/cjs/fields/ImageField/index.native.js +37 -20
  20. package/dist/cjs/fields/ImageField/index.native.js.map +1 -1
  21. package/dist/cjs/fields/Progress/index.cjs +5 -0
  22. package/dist/cjs/fields/Progress/index.native.js +5 -0
  23. package/dist/cjs/fields/Progress/index.native.js.map +1 -1
  24. package/dist/cjs/fields/Slider/index.cjs +38 -12
  25. package/dist/cjs/fields/Slider/index.native.js +39 -11
  26. package/dist/cjs/fields/Slider/index.native.js.map +1 -1
  27. package/dist/cjs/fields/Switch/index.cjs +10 -6
  28. package/dist/cjs/fields/Switch/index.native.js +10 -6
  29. package/dist/cjs/fields/Switch/index.native.js.map +1 -1
  30. package/dist/cjs/fields/TimePicker/parts.cjs +9 -10
  31. package/dist/cjs/fields/TimePicker/parts.native.js +9 -10
  32. package/dist/cjs/fields/TimePicker/parts.native.js.map +1 -1
  33. package/dist/cjs/fields/ToggleGroup/index.cjs +1 -0
  34. package/dist/cjs/fields/ToggleGroup/index.native.js +1 -0
  35. package/dist/cjs/fields/ToggleGroup/index.native.js.map +1 -1
  36. package/dist/cjs/fields/pickerHandle.cjs +18 -0
  37. package/dist/cjs/fields/pickerHandle.native.js +21 -0
  38. package/dist/cjs/fields/pickerHandle.native.js.map +1 -0
  39. package/dist/cjs/hooks/useHoldCue.cjs +54 -0
  40. package/dist/cjs/hooks/useHoldCue.native.js +62 -0
  41. package/dist/cjs/hooks/useHoldCue.native.js.map +1 -0
  42. package/dist/cjs/index.cjs +4 -0
  43. package/dist/cjs/index.gnome.cjs +4 -0
  44. package/dist/cjs/index.gnome.native.js +4 -0
  45. package/dist/cjs/index.gnome.native.js.map +1 -1
  46. package/dist/cjs/index.native.js +4 -0
  47. package/dist/cjs/index.native.js.map +1 -1
  48. package/dist/cjs/shared/colorRamps.cjs +9 -7
  49. package/dist/cjs/shared/colorRamps.native.js +9 -7
  50. package/dist/cjs/shared/colorRamps.native.js.map +1 -1
  51. package/dist/cjs/shared/controlTrack.cjs +32 -0
  52. package/dist/cjs/shared/controlTrack.native.js +35 -0
  53. package/dist/cjs/shared/controlTrack.native.js.map +1 -0
  54. package/dist/esm/ControlGroup/index.mjs +2 -1
  55. package/dist/esm/ControlGroup/index.mjs.map +1 -1
  56. package/dist/esm/ControlGroup/index.native.js +2 -1
  57. package/dist/esm/ControlGroup/index.native.js.map +1 -1
  58. package/dist/esm/FloatingPanel/index.native.js +20 -2
  59. package/dist/esm/FloatingPanel/index.native.js.map +1 -1
  60. package/dist/esm/InputParts/index.mjs +1 -0
  61. package/dist/esm/InputParts/index.mjs.map +1 -1
  62. package/dist/esm/InputParts/index.native.js +1 -0
  63. package/dist/esm/InputParts/index.native.js.map +1 -1
  64. package/dist/esm/Wheel/index.mjs +23 -7
  65. package/dist/esm/Wheel/index.mjs.map +1 -1
  66. package/dist/esm/Wheel/index.native.js +27 -9
  67. package/dist/esm/Wheel/index.native.js.map +1 -1
  68. package/dist/esm/fields/DatePicker/parts.mjs +35 -32
  69. package/dist/esm/fields/DatePicker/parts.mjs.map +1 -1
  70. package/dist/esm/fields/DatePicker/parts.native.js +36 -32
  71. package/dist/esm/fields/DatePicker/parts.native.js.map +1 -1
  72. package/dist/esm/fields/FileUpload/index.mjs +33 -16
  73. package/dist/esm/fields/FileUpload/index.mjs.map +1 -1
  74. package/dist/esm/fields/FileUpload/index.native.js +41 -20
  75. package/dist/esm/fields/FileUpload/index.native.js.map +1 -1
  76. package/dist/esm/fields/ImageField/index.mjs +36 -21
  77. package/dist/esm/fields/ImageField/index.mjs.map +1 -1
  78. package/dist/esm/fields/ImageField/index.native.js +38 -21
  79. package/dist/esm/fields/ImageField/index.native.js.map +1 -1
  80. package/dist/esm/fields/Progress/index.mjs +5 -0
  81. package/dist/esm/fields/Progress/index.mjs.map +1 -1
  82. package/dist/esm/fields/Progress/index.native.js +5 -0
  83. package/dist/esm/fields/Progress/index.native.js.map +1 -1
  84. package/dist/esm/fields/Slider/index.mjs +38 -12
  85. package/dist/esm/fields/Slider/index.mjs.map +1 -1
  86. package/dist/esm/fields/Slider/index.native.js +39 -11
  87. package/dist/esm/fields/Slider/index.native.js.map +1 -1
  88. package/dist/esm/fields/Switch/index.mjs +10 -6
  89. package/dist/esm/fields/Switch/index.mjs.map +1 -1
  90. package/dist/esm/fields/Switch/index.native.js +10 -6
  91. package/dist/esm/fields/Switch/index.native.js.map +1 -1
  92. package/dist/esm/fields/TimePicker/parts.mjs +9 -10
  93. package/dist/esm/fields/TimePicker/parts.mjs.map +1 -1
  94. package/dist/esm/fields/TimePicker/parts.native.js +9 -10
  95. package/dist/esm/fields/TimePicker/parts.native.js.map +1 -1
  96. package/dist/esm/fields/ToggleGroup/index.mjs +2 -1
  97. package/dist/esm/fields/ToggleGroup/index.mjs.map +1 -1
  98. package/dist/esm/fields/ToggleGroup/index.native.js +2 -1
  99. package/dist/esm/fields/ToggleGroup/index.native.js.map +1 -1
  100. package/dist/esm/fields/pickerHandle.mjs +2 -0
  101. package/dist/esm/fields/pickerHandle.mjs.map +1 -0
  102. package/dist/esm/fields/pickerHandle.native.js +2 -0
  103. package/dist/esm/fields/pickerHandle.native.js.map +1 -0
  104. package/dist/esm/hooks/useHoldCue.mjs +27 -0
  105. package/dist/esm/hooks/useHoldCue.mjs.map +1 -0
  106. package/dist/esm/hooks/useHoldCue.native.js +32 -0
  107. package/dist/esm/hooks/useHoldCue.native.js.map +1 -0
  108. package/dist/esm/index.gnome.mjs +2 -1
  109. package/dist/esm/index.gnome.mjs.map +1 -1
  110. package/dist/esm/index.gnome.native.js +2 -1
  111. package/dist/esm/index.gnome.native.js.map +1 -1
  112. package/dist/esm/index.mjs +2 -1
  113. package/dist/esm/index.mjs.map +1 -1
  114. package/dist/esm/index.native.js +2 -1
  115. package/dist/esm/index.native.js.map +1 -1
  116. package/dist/esm/shared/colorRamps.mjs +9 -7
  117. package/dist/esm/shared/colorRamps.mjs.map +1 -1
  118. package/dist/esm/shared/colorRamps.native.js +9 -7
  119. package/dist/esm/shared/colorRamps.native.js.map +1 -1
  120. package/dist/esm/shared/controlTrack.mjs +7 -0
  121. package/dist/esm/shared/controlTrack.mjs.map +1 -0
  122. package/dist/esm/shared/controlTrack.native.js +7 -0
  123. package/dist/esm/shared/controlTrack.native.js.map +1 -0
  124. package/dist/esm/shared/nativeOverlayWindow.mjs.map +1 -1
  125. package/dist/esm/shared/systemControls.mjs.map +1 -1
  126. package/dist/esm/shared/systemControls.native.js.map +1 -1
  127. package/dist/jsx/ControlGroup/index.mjs +2 -1
  128. package/dist/jsx/ControlGroup/index.mjs.map +1 -1
  129. package/dist/jsx/ControlGroup/index.native.js +2 -1
  130. package/dist/jsx/ControlGroup/index.native.js.map +1 -1
  131. package/dist/jsx/FloatingPanel/index.native.js +20 -2
  132. package/dist/jsx/FloatingPanel/index.native.js.map +1 -1
  133. package/dist/jsx/InputParts/index.mjs +1 -0
  134. package/dist/jsx/InputParts/index.mjs.map +1 -1
  135. package/dist/jsx/InputParts/index.native.js +1 -0
  136. package/dist/jsx/InputParts/index.native.js.map +1 -1
  137. package/dist/jsx/Wheel/index.mjs +23 -7
  138. package/dist/jsx/Wheel/index.mjs.map +1 -1
  139. package/dist/jsx/Wheel/index.native.js +26 -8
  140. package/dist/jsx/Wheel/index.native.js.map +1 -1
  141. package/dist/jsx/fields/DatePicker/parts.mjs +35 -32
  142. package/dist/jsx/fields/DatePicker/parts.mjs.map +1 -1
  143. package/dist/jsx/fields/DatePicker/parts.native.js +34 -30
  144. package/dist/jsx/fields/DatePicker/parts.native.js.map +1 -1
  145. package/dist/jsx/fields/FileUpload/index.mjs +33 -16
  146. package/dist/jsx/fields/FileUpload/index.mjs.map +1 -1
  147. package/dist/jsx/fields/FileUpload/index.native.js +40 -19
  148. package/dist/jsx/fields/FileUpload/index.native.js.map +1 -1
  149. package/dist/jsx/fields/ImageField/index.mjs +36 -21
  150. package/dist/jsx/fields/ImageField/index.mjs.map +1 -1
  151. package/dist/jsx/fields/ImageField/index.native.js +37 -20
  152. package/dist/jsx/fields/ImageField/index.native.js.map +1 -1
  153. package/dist/jsx/fields/Progress/index.mjs +5 -0
  154. package/dist/jsx/fields/Progress/index.mjs.map +1 -1
  155. package/dist/jsx/fields/Progress/index.native.js +5 -0
  156. package/dist/jsx/fields/Progress/index.native.js.map +1 -1
  157. package/dist/jsx/fields/Slider/index.mjs +38 -12
  158. package/dist/jsx/fields/Slider/index.mjs.map +1 -1
  159. package/dist/jsx/fields/Slider/index.native.js +39 -11
  160. package/dist/jsx/fields/Slider/index.native.js.map +1 -1
  161. package/dist/jsx/fields/Switch/index.mjs +10 -6
  162. package/dist/jsx/fields/Switch/index.mjs.map +1 -1
  163. package/dist/jsx/fields/Switch/index.native.js +10 -6
  164. package/dist/jsx/fields/Switch/index.native.js.map +1 -1
  165. package/dist/jsx/fields/TimePicker/parts.mjs +9 -10
  166. package/dist/jsx/fields/TimePicker/parts.mjs.map +1 -1
  167. package/dist/jsx/fields/TimePicker/parts.native.js +9 -10
  168. package/dist/jsx/fields/TimePicker/parts.native.js.map +1 -1
  169. package/dist/jsx/fields/ToggleGroup/index.mjs +2 -1
  170. package/dist/jsx/fields/ToggleGroup/index.mjs.map +1 -1
  171. package/dist/jsx/fields/ToggleGroup/index.native.js +1 -0
  172. package/dist/jsx/fields/ToggleGroup/index.native.js.map +1 -1
  173. package/dist/jsx/fields/pickerHandle.mjs +2 -0
  174. package/dist/jsx/fields/pickerHandle.mjs.map +1 -0
  175. package/dist/jsx/fields/pickerHandle.native.js +21 -0
  176. package/dist/jsx/fields/pickerHandle.native.js.map +1 -0
  177. package/dist/jsx/hooks/useHoldCue.mjs +27 -0
  178. package/dist/jsx/hooks/useHoldCue.mjs.map +1 -0
  179. package/dist/jsx/hooks/useHoldCue.native.js +62 -0
  180. package/dist/jsx/hooks/useHoldCue.native.js.map +1 -0
  181. package/dist/jsx/index.gnome.mjs +2 -1
  182. package/dist/jsx/index.gnome.mjs.map +1 -1
  183. package/dist/jsx/index.gnome.native.js +4 -0
  184. package/dist/jsx/index.gnome.native.js.map +1 -1
  185. package/dist/jsx/index.js +2 -1
  186. package/dist/jsx/index.js.map +1 -1
  187. package/dist/jsx/index.mjs +2 -1
  188. package/dist/jsx/index.mjs.map +1 -1
  189. package/dist/jsx/index.native.js +4 -0
  190. package/dist/jsx/index.native.js.map +1 -1
  191. package/dist/jsx/shared/colorRamps.mjs +9 -7
  192. package/dist/jsx/shared/colorRamps.mjs.map +1 -1
  193. package/dist/jsx/shared/colorRamps.native.js +9 -7
  194. package/dist/jsx/shared/colorRamps.native.js.map +1 -1
  195. package/dist/jsx/shared/controlTrack.mjs +7 -0
  196. package/dist/jsx/shared/controlTrack.mjs.map +1 -0
  197. package/dist/jsx/shared/controlTrack.native.js +35 -0
  198. package/dist/jsx/shared/controlTrack.native.js.map +1 -0
  199. package/dist/jsx/shared/nativeOverlayWindow.mjs.map +1 -1
  200. package/dist/jsx/shared/nativeOverlayWindow.native.js.map +1 -1
  201. package/dist/jsx/shared/systemControls.mjs.map +1 -1
  202. package/package.json +11 -10
  203. package/src/Button/Button.controlTiers.spec.tsx +2 -2
  204. package/src/ControlGroup/index.tsx +2 -1
  205. package/src/FloatingPanel/FloatingPanel.holdCue.native.spec.tsx +72 -0
  206. package/src/FloatingPanel/index.native.tsx +9 -1
  207. package/src/InputParts/index.tsx +1 -0
  208. package/src/Wheel/Wheel.edgeFade.spec.tsx +74 -0
  209. package/src/Wheel/index.tsx +25 -11
  210. package/src/fields/DatePicker/dateFieldMarks.spec.tsx +154 -0
  211. package/src/fields/DatePicker/parts.tsx +33 -30
  212. package/src/fields/FileUpload/index.tsx +45 -16
  213. package/src/fields/ImageField/index.tsx +42 -19
  214. package/src/fields/Progress/index.tsx +3 -0
  215. package/src/fields/Slider/Slider.system.native.spec.tsx +44 -0
  216. package/src/fields/Slider/index.tsx +40 -12
  217. package/src/fields/Stepper/Stepper.stories.tsx +42 -0
  218. package/src/fields/Switch/Switch.spec.tsx +14 -10
  219. package/src/fields/Switch/index.tsx +11 -7
  220. package/src/fields/TimePicker/parts.tsx +8 -8
  221. package/src/fields/ToggleGroup/index.tsx +7 -1
  222. package/src/fields/fieldTriggerSlot.spec.tsx +89 -0
  223. package/src/fields/pickerHandle.ts +13 -0
  224. package/src/hooks/useHoldCue.ts +26 -0
  225. package/src/index.gnome.ts +1 -0
  226. package/src/index.ts +2 -0
  227. package/src/overlayGround.spec.ts +5 -3
  228. package/src/shared/OverlayWindow.tsx +2 -2
  229. package/src/shared/colorRamps.ts +9 -6
  230. package/src/shared/controlTrack.ts +7 -0
  231. package/src/shared/nativeOverlayWindow.tsx +1 -1
  232. package/src/shared/systemControls.ts +10 -2
  233. package/types/ControlGroup/index.d.ts.map +1 -1
  234. package/types/FloatingPanel/index.native.d.ts.map +1 -1
  235. package/types/InputParts/index.d.ts +4 -4
  236. package/types/InputParts/index.d.ts.map +1 -1
  237. package/types/Wheel/index.d.ts.map +1 -1
  238. package/types/fields/DatePicker/parts.d.ts +4 -3
  239. package/types/fields/DatePicker/parts.d.ts.map +1 -1
  240. package/types/fields/FileUpload/index.d.ts +6 -1
  241. package/types/fields/FileUpload/index.d.ts.map +1 -1
  242. package/types/fields/ImageField/index.d.ts +7 -2
  243. package/types/fields/ImageField/index.d.ts.map +1 -1
  244. package/types/fields/Progress/index.d.ts.map +1 -1
  245. package/types/fields/Slider/index.d.ts.map +1 -1
  246. package/types/fields/Switch/index.d.ts.map +1 -1
  247. package/types/fields/ToggleGroup/index.d.ts.map +1 -1
  248. package/types/fields/pickerHandle.d.ts +12 -0
  249. package/types/fields/pickerHandle.d.ts.map +1 -0
  250. package/types/hooks/useHoldCue.d.ts +10 -0
  251. package/types/hooks/useHoldCue.d.ts.map +1 -0
  252. package/types/index.d.ts +2 -0
  253. package/types/index.d.ts.map +1 -1
  254. package/types/index.gnome.d.ts +1 -0
  255. package/types/index.gnome.d.ts.map +1 -1
  256. package/types/shared/OverlayWindow.d.ts +2 -2
  257. package/types/shared/OverlayWindow.d.ts.map +1 -1
  258. package/types/shared/colorRamps.d.ts +8 -6
  259. package/types/shared/colorRamps.d.ts.map +1 -1
  260. package/types/shared/controlTrack.d.ts +3 -0
  261. package/types/shared/controlTrack.d.ts.map +1 -0
  262. package/types/shared/nativeOverlayWindow.d.ts +1 -1
  263. package/types/shared/nativeOverlayWindow.d.ts.map +1 -1
  264. package/types/shared/systemControls.d.ts +2 -1
  265. package/types/shared/systemControls.d.ts.map +1 -1
@@ -28,8 +28,10 @@ __export(Wheel_exports, {
28
28
  });
29
29
  module.exports = __toCommonJS(Wheel_exports);
30
30
  var import_jsx_runtime = require("react/jsx-runtime");
31
+ var import_theme = require("@multiplatform.one/theme");
31
32
  var import_react = require("react");
32
33
  var import_tamagui = require("tamagui");
34
+ var import_linear_gradient = require("tamagui/linear-gradient");
33
35
  var import_t = require("../shared/t.native.js");
34
36
  var import_haptic = require("./haptic.native.js");
35
37
  var import_NativeWheel = require("./NativeWheel.native.js");
@@ -48,10 +50,8 @@ function ensureWheelFocusStyles() {
48
50
  style.textContent = ".mp1-wheel-wrapper:focus-visible { outline: 2px solid var(--outlineColor, var(--c-outlineColor, CanvasText)); outline-offset: -2px; }";
49
51
  document.head.appendChild(style);
50
52
  }
51
- var wheelMaskStyle = import_tamagui.isWeb ? {
52
- WebkitMaskImage: "linear-gradient(to bottom, rgba(0,0,0,0.28) 0%, #000 32%, #000 68%, rgba(0,0,0,0.28) 100%)",
53
- maskImage: "linear-gradient(to bottom, rgba(0,0,0,0.28) 0%, #000 32%, #000 68%, rgba(0,0,0,0.28) 100%)"
54
- } : void 0;
53
+ var wheelFadeStops = [0, 0.32, 0.68, 1];
54
+ var wheelFadeOpacity = 0.72;
55
55
  var WheelContainer = (0, import_tamagui.styled)(import_tamagui.View, {
56
56
  name: "Wheel",
57
57
  position: "relative",
@@ -106,6 +106,8 @@ function Wheel(props) {
106
106
  });
107
107
  }
108
108
  function WebWheel(props) {
109
+ var _ref;
110
+ var _theme_fadeKey_replace;
109
111
  var {
110
112
  items,
111
113
  value,
@@ -129,6 +131,10 @@ function WebWheel(props) {
129
131
  highlightClassName
130
132
  } = (0, import_wheelShared.useWheelLayout)(props);
131
133
  var columnWidth = widthProp !== null && widthProp !== void 0 ? widthProp : import_wheelShared.defaultColumnWidth;
134
+ var theme = (0, import_tamagui.useTheme)();
135
+ var elevatedGround = (0, import_theme.useElevatedSurface)();
136
+ var fadeKey = elevatedGround ? knobProps.elevatedSurface.backgroundColor : "$background";
137
+ var fadeSurface = String((_ref = (_theme_fadeKey_replace = theme[fadeKey.replace(/^\$/, "")]) === null || _theme_fadeKey_replace === void 0 ? void 0 : _theme_fadeKey_replace.val) !== null && _ref !== void 0 ? _ref : fadeKey);
132
138
  ensureWheelFocusStyles();
133
139
  var containerRef = (0, import_react.useRef)(null);
134
140
  var [scrollOffset, setScrollOffset] = (0, import_react.useState)(0);
@@ -368,11 +374,11 @@ function WebWheel(props) {
368
374
  containerRef.current.style.cursor = disabled ? "not-allowed" : "grab";
369
375
  }
370
376
  if (dragDistanceRef.current < tapSlopPx) {
371
- var _ref;
377
+ var _ref2;
372
378
  var _containerRef_current;
373
379
  var localY = e.locationY;
374
380
  var rect = (_containerRef_current = containerRef.current) === null || _containerRef_current === void 0 ? void 0 : _containerRef_current.getBoundingClientRect();
375
- var tapY = typeof localY === "number" ? localY : e.clientY - ((_ref = rect === null || rect === void 0 ? void 0 : rect.top) !== null && _ref !== void 0 ? _ref : 0);
381
+ var tapY = typeof localY === "number" ? localY : e.clientY - ((_ref2 = rect === null || rect === void 0 ? void 0 : rect.top) !== null && _ref2 !== void 0 ? _ref2 : 0);
376
382
  var tapped = hitTestDataIndex(tapY);
377
383
  if (tapped != null) {
378
384
  snapToIndex(tapped, true);
@@ -555,8 +561,7 @@ function WebWheel(props) {
555
561
  overflow: "hidden",
556
562
  userSelect: "none",
557
563
  touchAction: "none",
558
- cursor: disabled ? "not-allowed" : "grab",
559
- ...wheelMaskStyle
564
+ cursor: disabled ? "not-allowed" : "grab"
560
565
  },
561
566
  onPointerDown: handlePointerDown,
562
567
  onPointerMove: handlePointerMove,
@@ -595,6 +600,19 @@ function WebWheel(props) {
595
600
  children: renderItemNode(dataIndex, isSelected)
596
601
  }, `${dataIndex}-${virtualRow}`);
597
602
  })
603
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_linear_gradient.LinearGradient, {
604
+ "data-testid": "wheel-fade",
605
+ pointerEvents: "none",
606
+ position: "absolute",
607
+ top: 0,
608
+ right: 0,
609
+ bottom: 0,
610
+ left: 0,
611
+ opacity: wheelFadeOpacity,
612
+ colors: [fadeSurface, "transparent", "transparent", fadeSurface],
613
+ locations: wheelFadeStops,
614
+ start: [0, 0],
615
+ end: [0, 1]
598
616
  })]
599
617
  });
600
618
  }
@@ -1 +1 @@
1
- {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","Wheel_exports","Wheel","module","exports","import_jsx_runtime","require","import_react","import_tamagui","import_t","import_haptic","import_NativeWheel","import_wheelShared","friction","minVelocity","momentumMultiplier","rubberBandConstant","tapSlopPx","WHEEL_FOCUS_STYLE_ID","ensureWheelFocusStyles","isWeb","document","getElementById","style","createElement","id","textContent","head","appendChild","wheelMaskStyle","WebkitMaskImage","maskImage","WheelContainer","styled","View","position","overflow","userSelect","WheelItemContainer","left","right","alignItems","justifyContent","SelectionIndicator","pointerEvents","equivalentOffsetNear","referenceOffset","targetOffset","n","itemHeight","rT","Math","round","m","modIndex","span","base","k","rubberBand","offset","dimension","c","x","abs","result","getItemTransform","index","scrollOffset","containerHeight","pose","drumPose","translateY","rotateX","scale","opacity","props","jsx","WebWheel","NativeWheel","items","onChange","visibleItems","width","widthProp","renderItem","disabled","loop","flex","onItemCross","ariaLabel","knobProps","selectedFill","size","snapDurationMs","highlightStyle","highlightClassName","useWheelLayout","columnWidth","defaultColumnWidth","containerRef","useRef","setScrollOffset","useState","selectedIndex","setSelectedIndex","length","loopEnabled","Boolean","scrollOffsetRef","current","animationRef","isAnimatingRef","hasMountedRef","selectedIndexRef","isDraggingRef","lastYRef","downYRef","dragDistanceRef","lastTimeRef","dragVelocitiesRef","paddingItems","floor","minOffset","maxOffset","liveDataIndex","max","min","lastCrossIndexRef","onItemCrossRef","useEffect","_onItemCrossRef_current","item","getItemValue","fireSelectionHaptic","runSnapComplete","useCallback","finalOffset","dataIndex","safeIdx","settled","animateToOffset","animated","startOffset","goal","distance","duration","startTime","performance","now","animate","animate1","currentTime","elapsed","progress","eased","pow","newOffset","requestAnimationFrame","cancelAnimationFrame","snapToIndex","targetIndex","arguments","clampedData","currentR","targetR","nearestRowForDataIndex","targetOffset1","dataIdx","findIndex","raw","snapToNearestRow","r","dataIdx1","hitTestDataIndex","tapY","centerRow","rowBuffer","best","vr","dist","startMomentum","initialVelocity","velocity","handlePointerDown","e","clientY","setPointerCapture","pointerId","cursor","handlePointerMove","currentY","deltaY","deltaTime","push","shift","handlePointerUp","releasePointerCapture","unused","_ref","_containerRef_current","localY","locationY","rect","getBoundingClientRect","top","tapped","velocities","avgVelocity","reduce","a","b","handleWheel","preventDefault","delta","currentOffset","setTimeout","handleKeyDown","newIndex","newIndex1","container","wheelHandler","wheelHandler2","addEventListener","passive","removeEventListener","renderRows","useMemo","ceil","drumReachRows","first","last","list","virtualRow","itemColor","itemColor2","isSelected","renderItemNode","renderItemNode2","itemValue","Text","body","fontSize","color","numberOfLines","ellipsizeMode","maxWidth","paddingHorizontal","children","getItemLabel","jsxs","height","minWidth","className","backgroundColor","ref","tabIndex","role","t","perspective","perspectiveOrigin","touchAction","onPointerDown","onPointerMove","onPointerUp","onPointerCancel","onKeyDown","map","param","transform","display","transformOrigin","transformStyle","backfaceVisibility","Item"],"sources":["index.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar Wheel_exports = {};\n__export(Wheel_exports, {\n Wheel: () => Wheel\n});\nmodule.exports = __toCommonJS(Wheel_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_react = require(\"react\");\nvar import_tamagui = require(\"tamagui\");\nvar import_t = require(\"../shared/t\");\nvar import_haptic = require(\"./haptic\");\nvar import_NativeWheel = require(\"./NativeWheel\");\nvar import_wheelShared = require(\"./wheelShared\");\nvar friction = 0.95;\nvar minVelocity = 0.5;\nvar momentumMultiplier = 0.8;\nvar rubberBandConstant = 0.55;\nvar tapSlopPx = 8;\nvar WHEEL_FOCUS_STYLE_ID = \"mp1-wheel-focus\";\nfunction ensureWheelFocusStyles() {\n if (!import_tamagui.isWeb || typeof document === \"undefined\") return;\n if (document.getElementById(WHEEL_FOCUS_STYLE_ID)) return;\n var style = document.createElement(\"style\");\n style.id = WHEEL_FOCUS_STYLE_ID;\n style.textContent = \".mp1-wheel-wrapper:focus-visible { outline: 2px solid var(--outlineColor, var(--c-outlineColor, CanvasText)); outline-offset: -2px; }\";\n document.head.appendChild(style);\n}\nvar wheelMaskStyle = import_tamagui.isWeb ? {\n WebkitMaskImage: \"linear-gradient(to bottom, rgba(0,0,0,0.28) 0%, #000 32%, #000 68%, rgba(0,0,0,0.28) 100%)\",\n maskImage: \"linear-gradient(to bottom, rgba(0,0,0,0.28) 0%, #000 32%, #000 68%, rgba(0,0,0,0.28) 100%)\"\n} : void 0;\nvar WheelContainer = (0, import_tamagui.styled)(import_tamagui.View, {\n name: \"Wheel\",\n position: \"relative\",\n overflow: \"hidden\",\n userSelect: \"none\"\n});\nvar WheelItemContainer = (0, import_tamagui.styled)(import_tamagui.View, {\n name: \"WheelItem\",\n position: \"absolute\",\n left: 0,\n right: 0,\n alignItems: \"center\",\n justifyContent: \"center\",\n userSelect: \"none\"\n});\nvar SelectionIndicator = (0, import_tamagui.styled)(import_tamagui.View, {\n name: \"WheelSelectionIndicator\",\n position: \"absolute\",\n left: 0,\n right: 0,\n pointerEvents: \"none\"\n});\nfunction equivalentOffsetNear(referenceOffset, targetOffset, n, itemHeight) {\n if (n <= 0 || itemHeight <= 0) return targetOffset;\n var rT = Math.round(targetOffset / itemHeight);\n var m = (0, import_wheelShared.modIndex)(rT, n);\n var span = n * itemHeight;\n var base = m * itemHeight;\n var k = Math.round((referenceOffset - base) / span);\n return base + k * span;\n}\nfunction rubberBand(offset, dimension) {\n var c = rubberBandConstant;\n var x = Math.abs(offset);\n var result = x * dimension * c / (dimension + c * x);\n return offset < 0 ? -result : result;\n}\nfunction getItemTransform(index, scrollOffset, itemHeight, containerHeight) {\n var pose = (0, import_wheelShared.drumPose)(index - scrollOffset / itemHeight, itemHeight, containerHeight);\n return {\n translateY: (containerHeight - itemHeight) / 2 + pose.offset,\n rotateX: pose.rotateX,\n scale: pose.scale,\n opacity: 1\n };\n}\nfunction Wheel(props) {\n return import_tamagui.isWeb ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(WebWheel, {\n ...props\n }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_NativeWheel.NativeWheel, {\n ...props\n });\n}\nfunction WebWheel(props) {\n var { items, value, onChange, visibleItems = 5, width: widthProp, renderItem, disabled = false, loop = false, flex, onItemCross, \"aria-label\": ariaLabel } = props;\n var { knobProps, selectedFill, size, itemHeight, snapDurationMs, highlightStyle, highlightClassName } = (0, import_wheelShared.useWheelLayout)(props);\n var columnWidth = widthProp !== null && widthProp !== void 0 ? widthProp : import_wheelShared.defaultColumnWidth;\n ensureWheelFocusStyles();\n var containerRef = (0, import_react.useRef)(null);\n var [scrollOffset, setScrollOffset] = (0, import_react.useState)(0);\n var [selectedIndex, setSelectedIndex] = (0, import_react.useState)(0);\n var n = items.length;\n var loopEnabled = Boolean(loop && n > 1);\n var scrollOffsetRef = (0, import_react.useRef)(scrollOffset);\n scrollOffsetRef.current = scrollOffset;\n var animationRef = (0, import_react.useRef)(null);\n var isAnimatingRef = (0, import_react.useRef)(false);\n var hasMountedRef = (0, import_react.useRef)(false);\n var selectedIndexRef = (0, import_react.useRef)(selectedIndex);\n selectedIndexRef.current = selectedIndex;\n var isDraggingRef = (0, import_react.useRef)(false);\n var lastYRef = (0, import_react.useRef)(0);\n var downYRef = (0, import_react.useRef)(0);\n var dragDistanceRef = (0, import_react.useRef)(0);\n var lastTimeRef = (0, import_react.useRef)(0);\n var dragVelocitiesRef = (0, import_react.useRef)([]);\n var containerHeight = itemHeight * visibleItems;\n var paddingItems = Math.floor(visibleItems / 2);\n var minOffset = 0;\n var maxOffset = n > 0 ? (n - 1) * itemHeight : 0;\n var liveDataIndex = n === 0 ? 0 : loopEnabled ? (0, import_wheelShared.modIndex)(Math.round(scrollOffset / itemHeight), n) : Math.max(0, Math.min(Math.round(scrollOffset / itemHeight), n - 1));\n var lastCrossIndexRef = (0, import_react.useRef)(null);\n var onItemCrossRef = (0, import_react.useRef)(onItemCross);\n onItemCrossRef.current = onItemCross;\n (0, import_react.useEffect)(function() {\n var _onItemCrossRef_current;\n if (n === 0) return;\n if (lastCrossIndexRef.current === null) {\n lastCrossIndexRef.current = liveDataIndex;\n return;\n }\n if (lastCrossIndexRef.current === liveDataIndex) return;\n lastCrossIndexRef.current = liveDataIndex;\n var item = items[liveDataIndex];\n if (item === void 0) return;\n (_onItemCrossRef_current = onItemCrossRef.current) === null || _onItemCrossRef_current === void 0 ? void 0 : _onItemCrossRef_current.call(onItemCrossRef, (0, import_wheelShared.getItemValue)(item), liveDataIndex);\n (0, import_haptic.fireSelectionHaptic)();\n }, [\n liveDataIndex,\n items,\n n\n ]);\n var runSnapComplete = (0, import_react.useCallback)(function(finalOffset, dataIndex) {\n var safeIdx = Math.max(0, Math.min(dataIndex, n - 1));\n var settled = loopEnabled && n > 0 ? equivalentOffsetNear(0, finalOffset, n, itemHeight) : finalOffset;\n scrollOffsetRef.current = settled;\n setScrollOffset(settled);\n setSelectedIndex(safeIdx);\n onChange === null || onChange === void 0 ? void 0 : onChange((0, import_wheelShared.getItemValue)(items[safeIdx]));\n isAnimatingRef.current = false;\n }, [\n items,\n n,\n onChange,\n loopEnabled,\n itemHeight\n ]);\n var animateToOffset = (0, import_react.useCallback)(function(targetOffset, dataIndex, animated) {\n var startOffset = scrollOffsetRef.current;\n var goal = loopEnabled && n > 0 ? equivalentOffsetNear(startOffset, targetOffset, n, itemHeight) : targetOffset;\n if (!animated || snapDurationMs <= 0) {\n runSnapComplete(goal, dataIndex);\n return;\n }\n var distance = goal - startOffset;\n if (Math.abs(distance) < 0.5) {\n runSnapComplete(goal, dataIndex);\n return;\n }\n var duration = snapDurationMs;\n var startTime = performance.now();\n var animate = function animate1(currentTime) {\n var elapsed = currentTime - startTime;\n var progress = Math.min(elapsed / duration, 1);\n var eased = 1 - Math.pow(1 - progress, 3);\n var newOffset = startOffset + distance * eased;\n scrollOffsetRef.current = newOffset;\n setScrollOffset(newOffset);\n if (progress < 1) {\n animationRef.current = requestAnimationFrame(animate);\n } else {\n runSnapComplete(goal, dataIndex);\n }\n };\n isAnimatingRef.current = true;\n if (animationRef.current) cancelAnimationFrame(animationRef.current);\n animationRef.current = requestAnimationFrame(animate);\n }, [\n loopEnabled,\n n,\n itemHeight,\n runSnapComplete,\n snapDurationMs\n ]);\n var snapToIndex = (0, import_react.useCallback)(function(targetIndex) {\n var animated = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;\n if (n === 0) return;\n var clampedData = Math.max(0, Math.min(targetIndex, n - 1));\n if (!loopEnabled) {\n var targetOffset = clampedData * itemHeight;\n animateToOffset(targetOffset, clampedData, animated);\n return;\n }\n var currentR = Math.round(scrollOffsetRef.current / itemHeight);\n var targetR = (0, import_wheelShared.nearestRowForDataIndex)(currentR, clampedData, n);\n var targetOffset1 = targetR * itemHeight;\n var dataIdx = (0, import_wheelShared.modIndex)(targetR, n);\n animateToOffset(targetOffset1, dataIdx, animated);\n }, [\n n,\n itemHeight,\n loopEnabled,\n animateToOffset\n ]);\n (0, import_react.useEffect)(function() {\n if (value === void 0) return;\n var index = items.findIndex(function(item) {\n return (0, import_wheelShared.getItemValue)(item) === value;\n });\n if (index === -1) return;\n if (!hasMountedRef.current) {\n hasMountedRef.current = true;\n setSelectedIndex(index);\n var raw = index * itemHeight;\n var settled = loopEnabled && n > 1 ? equivalentOffsetNear(0, raw, n, itemHeight) : raw;\n scrollOffsetRef.current = settled;\n setScrollOffset(settled);\n return;\n }\n if (isDraggingRef.current) {\n setSelectedIndex(index);\n return;\n }\n if (index === selectedIndexRef.current && !isAnimatingRef.current) {\n return;\n }\n snapToIndex(index, true);\n }, [\n value,\n items,\n itemHeight,\n loopEnabled,\n n,\n snapToIndex\n ]);\n var snapToNearestRow = (0, import_react.useCallback)(function() {\n var animated = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;\n if (n === 0) return;\n var r = Math.round(scrollOffsetRef.current / itemHeight);\n if (loopEnabled) {\n var targetOffset = r * itemHeight;\n var dataIdx = (0, import_wheelShared.modIndex)(r, n);\n animateToOffset(targetOffset, dataIdx, animated);\n } else {\n var dataIdx1 = Math.max(0, Math.min(r, n - 1));\n animateToOffset(dataIdx1 * itemHeight, dataIdx1, animated);\n }\n }, [\n n,\n itemHeight,\n loopEnabled,\n animateToOffset\n ]);\n var hitTestDataIndex = (0, import_react.useCallback)(function(tapY) {\n if (n === 0) return null;\n var offset = scrollOffsetRef.current;\n var centerRow = Math.round(offset / itemHeight);\n var rowBuffer = paddingItems + 5;\n var best = null;\n for (var vr = centerRow - rowBuffer; vr <= centerRow + rowBuffer; vr++) {\n if (!loopEnabled && (vr < 0 || vr >= n)) continue;\n var dataIndex = loopEnabled ? (0, import_wheelShared.modIndex)(vr, n) : vr;\n var { translateY } = getItemTransform(vr, offset, itemHeight, containerHeight);\n var dist = Math.abs(translateY + itemHeight / 2 - tapY);\n if (!best || dist < best.dist) best = {\n dataIndex,\n dist\n };\n }\n if (best && best.dist <= itemHeight) return best.dataIndex;\n return null;\n }, [\n n,\n itemHeight,\n paddingItems,\n loopEnabled,\n containerHeight\n ]);\n var startMomentum = (0, import_react.useCallback)(function(initialVelocity) {\n if (snapDurationMs <= 0) {\n snapToNearestRow(false);\n return;\n }\n var velocity = initialVelocity * momentumMultiplier;\n var offset = scrollOffsetRef.current;\n var animate = function animate1() {\n velocity *= friction;\n offset += velocity;\n if (!loopEnabled) {\n if (offset < minOffset) {\n offset = minOffset + rubberBand(offset - minOffset, containerHeight);\n velocity *= 0.5;\n } else if (offset > maxOffset) {\n offset = maxOffset + rubberBand(offset - maxOffset, containerHeight);\n velocity *= 0.5;\n }\n }\n scrollOffsetRef.current = offset;\n setScrollOffset(offset);\n if (Math.abs(velocity) > minVelocity) {\n animationRef.current = requestAnimationFrame(animate);\n } else {\n snapToNearestRow(true);\n }\n };\n isAnimatingRef.current = true;\n if (animationRef.current) cancelAnimationFrame(animationRef.current);\n animationRef.current = requestAnimationFrame(animate);\n }, [\n loopEnabled,\n minOffset,\n maxOffset,\n containerHeight,\n snapToNearestRow,\n snapDurationMs\n ]);\n var handlePointerDown = (0, import_react.useCallback)(function(e) {\n if (disabled) return;\n if (animationRef.current) {\n cancelAnimationFrame(animationRef.current);\n isAnimatingRef.current = false;\n }\n isDraggingRef.current = true;\n lastYRef.current = e.clientY;\n downYRef.current = e.clientY;\n dragDistanceRef.current = 0;\n lastTimeRef.current = performance.now();\n dragVelocitiesRef.current = [];\n if (import_tamagui.isWeb && containerRef.current) {\n containerRef.current.setPointerCapture(e.pointerId);\n containerRef.current.style.cursor = \"grabbing\";\n }\n }, [\n disabled\n ]);\n var handlePointerMove = (0, import_react.useCallback)(function(e) {\n if (!isDraggingRef.current || disabled) return;\n var currentY = e.clientY;\n var currentTime = performance.now();\n var deltaY = lastYRef.current - currentY;\n var deltaTime = currentTime - lastTimeRef.current;\n dragDistanceRef.current += Math.abs(deltaY);\n if (deltaTime > 0) {\n var velocity = deltaY / deltaTime * 16;\n dragVelocitiesRef.current.push(velocity);\n if (dragVelocitiesRef.current.length > 5) {\n dragVelocitiesRef.current.shift();\n }\n }\n var newOffset = scrollOffsetRef.current + deltaY;\n if (!loopEnabled) {\n if (newOffset < minOffset) {\n newOffset = minOffset + rubberBand(newOffset - minOffset, containerHeight);\n } else if (newOffset > maxOffset) {\n newOffset = maxOffset + rubberBand(newOffset - maxOffset, containerHeight);\n }\n }\n scrollOffsetRef.current = newOffset;\n setScrollOffset(newOffset);\n lastYRef.current = currentY;\n lastTimeRef.current = currentTime;\n }, [\n disabled,\n loopEnabled,\n minOffset,\n maxOffset,\n containerHeight\n ]);\n var handlePointerUp = (0, import_react.useCallback)(function(e) {\n if (!isDraggingRef.current) return;\n isDraggingRef.current = false;\n if (import_tamagui.isWeb && containerRef.current) {\n try {\n containerRef.current.releasePointerCapture(e.pointerId);\n } catch (unused) {\n }\n containerRef.current.style.cursor = disabled ? \"not-allowed\" : \"grab\";\n }\n if (dragDistanceRef.current < tapSlopPx) {\n var _ref;\n var _containerRef_current;\n var localY = e.locationY;\n var rect = (_containerRef_current = containerRef.current) === null || _containerRef_current === void 0 ? void 0 : _containerRef_current.getBoundingClientRect();\n var tapY = typeof localY === \"number\" ? localY : e.clientY - ((_ref = rect === null || rect === void 0 ? void 0 : rect.top) !== null && _ref !== void 0 ? _ref : 0);\n var tapped = hitTestDataIndex(tapY);\n if (tapped != null) {\n snapToIndex(tapped, true);\n return;\n }\n }\n var velocities = dragVelocitiesRef.current;\n if (velocities.length > 0) {\n var avgVelocity = velocities.reduce(function(a, b) {\n return a + b;\n }, 0) / velocities.length;\n if (Math.abs(avgVelocity) > minVelocity * 2) {\n startMomentum(avgVelocity);\n } else {\n snapToNearestRow(true);\n }\n } else {\n snapToNearestRow(true);\n }\n }, [\n snapToNearestRow,\n startMomentum,\n hitTestDataIndex,\n snapToIndex,\n disabled\n ]);\n var handleWheel = (0, import_react.useCallback)(function(e) {\n if (disabled) return;\n e.preventDefault();\n if (animationRef.current) {\n cancelAnimationFrame(animationRef.current);\n isAnimatingRef.current = false;\n }\n var delta = e.deltaY;\n var currentOffset = scrollOffsetRef.current;\n var newOffset = currentOffset + delta;\n if (!loopEnabled) {\n if (newOffset < minOffset) {\n newOffset = minOffset;\n } else if (newOffset > maxOffset) {\n newOffset = maxOffset;\n }\n }\n scrollOffsetRef.current = newOffset;\n setScrollOffset(newOffset);\n if (animationRef.current) cancelAnimationFrame(animationRef.current);\n animationRef.current = requestAnimationFrame(function() {\n setTimeout(function() {\n if (!isDraggingRef.current && !isAnimatingRef.current) {\n snapToNearestRow(true);\n }\n }, 100);\n });\n }, [\n disabled,\n loopEnabled,\n minOffset,\n maxOffset,\n snapToNearestRow\n ]);\n var handleKeyDown = (0, import_react.useCallback)(function(e) {\n if (disabled) return;\n var delta = 0;\n switch (e.key) {\n case \"ArrowUp\":\n case \"k\":\n delta = -1;\n break;\n case \"ArrowDown\":\n case \"j\":\n delta = 1;\n break;\n case \"PageUp\":\n delta = -visibleItems;\n break;\n case \"PageDown\":\n delta = visibleItems;\n break;\n case \"Home\":\n snapToIndex(0);\n e.preventDefault();\n return;\n case \"End\":\n snapToIndex(n - 1);\n e.preventDefault();\n return;\n default:\n return;\n }\n e.preventDefault();\n if (loopEnabled) {\n var newIndex = (0, import_wheelShared.modIndex)(selectedIndex + delta, n);\n snapToIndex(newIndex);\n } else {\n var newIndex1 = Math.max(0, Math.min(selectedIndex + delta, n - 1));\n snapToIndex(newIndex1);\n }\n }, [\n disabled,\n selectedIndex,\n n,\n visibleItems,\n snapToIndex,\n loopEnabled\n ]);\n (0, import_react.useEffect)(function() {\n if (!import_tamagui.isWeb) return;\n var container = containerRef.current;\n if (!container) return;\n var wheelHandler = function wheelHandler2(e) {\n return handleWheel(e);\n };\n container.addEventListener(\"wheel\", wheelHandler, {\n passive: false\n });\n return function() {\n container.removeEventListener(\"wheel\", wheelHandler);\n };\n }, [\n handleWheel\n ]);\n (0, import_react.useEffect)(function() {\n return function() {\n if (animationRef.current) {\n cancelAnimationFrame(animationRef.current);\n }\n };\n }, []);\n var renderRows = (0, import_react.useMemo)(function() {\n if (n === 0) return [];\n var span = Math.ceil((0, import_wheelShared.drumReachRows)(itemHeight, containerHeight));\n var centerRow = Math.round(scrollOffset / itemHeight);\n var first = loopEnabled ? centerRow - span : Math.max(0, centerRow - span);\n var last = loopEnabled ? centerRow + span : Math.min(n - 1, centerRow + span);\n var list = [];\n for (var vr = first; vr <= last; vr++) {\n list.push({\n virtualRow: vr,\n dataIndex: (0, import_wheelShared.modIndex)(vr, n)\n });\n }\n return list;\n }, [\n n,\n loopEnabled,\n scrollOffset,\n itemHeight,\n containerHeight\n ]);\n var itemColor = function itemColor2(isSelected) {\n return disabled ? \"$color10\" : isSelected ? \"$color12\" : \"$color11\";\n };\n var renderItemNode = function renderItemNode2(dataIndex, isSelected) {\n var item = items[dataIndex];\n var itemValue = (0, import_wheelShared.getItemValue)(item);\n if (renderItem) return renderItem(itemValue, dataIndex, isSelected);\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tamagui.Text, {\n ...knobProps.body,\n fontSize: size,\n color: itemColor(isSelected),\n numberOfLines: 1,\n ellipsizeMode: \"tail\",\n maxWidth: \"100%\",\n paddingHorizontal: \"$2\",\n children: (0, import_wheelShared.getItemLabel)(item)\n });\n };\n return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(WheelContainer, {\n height: containerHeight,\n width: flex ? \"100%\" : columnWidth,\n minWidth: flex ? 0 : columnWidth,\n flex,\n \"data-testid\": \"wheel\",\n \"data-disabled\": disabled ? true : void 0,\n \"aria-disabled\": disabled || void 0,\n opacity: 1,\n children: [\n /* iOS 14+ selection fill — LC-71 selected=fill, never hairline borders */\n /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectionIndicator, {\n className: highlightClassName,\n // FZ-8438: the selection tint (FZ-8355). $color4 is the dark elevated\n // surface itself, so the band vanished on a dark cover panel.\n backgroundColor: selectedFill,\n top: paddingItems * itemHeight,\n height: itemHeight,\n style: highlightStyle,\n \"data-testid\": \"wheel-selection\"\n }),\n /* Interactive container */\n /* @__PURE__ */ (0, import_jsx_runtime.jsx)(\"div\", {\n ref: containerRef,\n className: \"mp1-wheel-wrapper\",\n tabIndex: disabled ? -1 : 0,\n role: \"slider\",\n \"aria-label\": ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : (0, import_t.t)(\"Value picker\"),\n \"aria-orientation\": \"vertical\",\n \"aria-valuemin\": 0,\n \"aria-valuemax\": Math.max(0, n - 1),\n \"aria-valuenow\": selectedIndex,\n \"aria-valuetext\": items[selectedIndex] !== void 0 ? (0, import_wheelShared.getItemLabel)(items[selectedIndex]) : void 0,\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? true : void 0,\n style: {\n width: \"100%\",\n height: containerHeight,\n position: \"relative\",\n perspective: `${containerHeight * 4}px`,\n perspectiveOrigin: \"center center\",\n overflow: \"hidden\",\n userSelect: \"none\",\n touchAction: \"none\",\n cursor: disabled ? \"not-allowed\" : \"grab\",\n ...wheelMaskStyle\n },\n onPointerDown: handlePointerDown,\n onPointerMove: handlePointerMove,\n onPointerUp: handlePointerUp,\n onPointerCancel: handlePointerUp,\n onKeyDown: handleKeyDown,\n \"data-testid\": \"wheel-wrapper\",\n children: renderRows.map(function(param) {\n var { virtualRow, dataIndex } = param;\n var isSelected = dataIndex === liveDataIndex;\n var transform = getItemTransform(virtualRow, scrollOffset, itemHeight, containerHeight);\n if (Math.abs(transform.rotateX) > 85) return null;\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(\"div\", {\n \"data-testid\": \"wheel-item\",\n \"data-index\": dataIndex,\n \"data-selected\": isSelected ? true : void 0,\n \"aria-hidden\": isSelected ? void 0 : true,\n style: {\n position: \"absolute\",\n left: 0,\n right: 0,\n height: itemHeight,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n transform: `translateY(${transform.translateY}px) rotateX(${transform.rotateX}deg) scale(${transform.scale})`,\n opacity: transform.opacity,\n pointerEvents: \"none\",\n transformOrigin: \"center center\",\n transformStyle: \"preserve-3d\",\n backfaceVisibility: \"hidden\"\n },\n children: renderItemNode(dataIndex, isSelected)\n }, `${dataIndex}-${virtualRow}`);\n })\n })\n ]\n });\n}\nWheel.Item = WheelItemContainer;\n//# sourceMappingURL=index.js.map\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","Wheel_exports","Wheel","module","exports","import_jsx_runtime","require","import_theme","import_react","import_tamagui","import_linear_gradient","import_t","import_haptic","import_NativeWheel","import_wheelShared","friction","minVelocity","momentumMultiplier","rubberBandConstant","tapSlopPx","WHEEL_FOCUS_STYLE_ID","ensureWheelFocusStyles","isWeb","document","getElementById","style","createElement","id","textContent","head","appendChild","wheelFadeStops","wheelFadeOpacity","WheelContainer","styled","View","position","overflow","userSelect","WheelItemContainer","left","right","alignItems","justifyContent","SelectionIndicator","pointerEvents","equivalentOffsetNear","referenceOffset","targetOffset","n","itemHeight","rT","Math","round","m","modIndex","span","base","k","rubberBand","offset","dimension","c","x","abs","result","getItemTransform","index","scrollOffset","containerHeight","pose","drumPose","translateY","rotateX","scale","opacity","props","jsx","WebWheel","NativeWheel","_ref","_theme_fadeKey_replace","items","onChange","visibleItems","width","widthProp","renderItem","disabled","loop","flex","onItemCross","ariaLabel","knobProps","selectedFill","size","snapDurationMs","highlightStyle","highlightClassName","useWheelLayout","columnWidth","defaultColumnWidth","theme","useTheme","elevatedGround","useElevatedSurface","fadeKey","elevatedSurface","backgroundColor","fadeSurface","String","replace","val","containerRef","useRef","setScrollOffset","useState","selectedIndex","setSelectedIndex","length","loopEnabled","Boolean","scrollOffsetRef","current","animationRef","isAnimatingRef","hasMountedRef","selectedIndexRef","isDraggingRef","lastYRef","downYRef","dragDistanceRef","lastTimeRef","dragVelocitiesRef","paddingItems","floor","minOffset","maxOffset","liveDataIndex","max","min","lastCrossIndexRef","onItemCrossRef","useEffect","_onItemCrossRef_current","item","getItemValue","fireSelectionHaptic","runSnapComplete","useCallback","finalOffset","dataIndex","safeIdx","settled","animateToOffset","animated","startOffset","goal","distance","duration","startTime","performance","now","animate","animate1","currentTime","elapsed","progress","eased","pow","newOffset","requestAnimationFrame","cancelAnimationFrame","snapToIndex","targetIndex","arguments","clampedData","currentR","targetR","nearestRowForDataIndex","targetOffset1","dataIdx","findIndex","raw","snapToNearestRow","r","dataIdx1","hitTestDataIndex","tapY","centerRow","rowBuffer","best","vr","dist","startMomentum","initialVelocity","velocity","handlePointerDown","e","clientY","setPointerCapture","pointerId","cursor","handlePointerMove","currentY","deltaY","deltaTime","push","shift","handlePointerUp","releasePointerCapture","unused","_ref2","_containerRef_current","localY","locationY","rect","getBoundingClientRect","top","tapped","velocities","avgVelocity","reduce","a","b","handleWheel","preventDefault","delta","currentOffset","setTimeout","handleKeyDown","newIndex","newIndex1","container","wheelHandler","wheelHandler2","addEventListener","passive","removeEventListener","renderRows","useMemo","ceil","drumReachRows","first","last","list","virtualRow","itemColor","itemColor2","isSelected","renderItemNode","renderItemNode2","itemValue","Text","body","fontSize","color","numberOfLines","ellipsizeMode","maxWidth","paddingHorizontal","children","getItemLabel","jsxs","height","minWidth","className","ref","tabIndex","role","t","perspective","perspectiveOrigin","touchAction","onPointerDown","onPointerMove","onPointerUp","onPointerCancel","onKeyDown","map","param","transform","display","transformOrigin","transformStyle","backfaceVisibility","LinearGradient","bottom","colors","locations","start","end","Item"],"sources":["index.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar Wheel_exports = {};\n__export(Wheel_exports, {\n Wheel: () => Wheel\n});\nmodule.exports = __toCommonJS(Wheel_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_theme = require(\"@multiplatform.one/theme\");\nvar import_react = require(\"react\");\nvar import_tamagui = require(\"tamagui\");\nvar import_linear_gradient = require(\"tamagui/linear-gradient\");\nvar import_t = require(\"../shared/t\");\nvar import_haptic = require(\"./haptic\");\nvar import_NativeWheel = require(\"./NativeWheel\");\nvar import_wheelShared = require(\"./wheelShared\");\nvar friction = 0.95;\nvar minVelocity = 0.5;\nvar momentumMultiplier = 0.8;\nvar rubberBandConstant = 0.55;\nvar tapSlopPx = 8;\nvar WHEEL_FOCUS_STYLE_ID = \"mp1-wheel-focus\";\nfunction ensureWheelFocusStyles() {\n if (!import_tamagui.isWeb || typeof document === \"undefined\") return;\n if (document.getElementById(WHEEL_FOCUS_STYLE_ID)) return;\n var style = document.createElement(\"style\");\n style.id = WHEEL_FOCUS_STYLE_ID;\n style.textContent = \".mp1-wheel-wrapper:focus-visible { outline: 2px solid var(--outlineColor, var(--c-outlineColor, CanvasText)); outline-offset: -2px; }\";\n document.head.appendChild(style);\n}\nvar wheelFadeStops = [\n 0,\n 0.32,\n 0.68,\n 1\n];\nvar wheelFadeOpacity = 0.72;\nvar WheelContainer = (0, import_tamagui.styled)(import_tamagui.View, {\n name: \"Wheel\",\n position: \"relative\",\n overflow: \"hidden\",\n userSelect: \"none\"\n});\nvar WheelItemContainer = (0, import_tamagui.styled)(import_tamagui.View, {\n name: \"WheelItem\",\n position: \"absolute\",\n left: 0,\n right: 0,\n alignItems: \"center\",\n justifyContent: \"center\",\n userSelect: \"none\"\n});\nvar SelectionIndicator = (0, import_tamagui.styled)(import_tamagui.View, {\n name: \"WheelSelectionIndicator\",\n position: \"absolute\",\n left: 0,\n right: 0,\n pointerEvents: \"none\"\n});\nfunction equivalentOffsetNear(referenceOffset, targetOffset, n, itemHeight) {\n if (n <= 0 || itemHeight <= 0) return targetOffset;\n var rT = Math.round(targetOffset / itemHeight);\n var m = (0, import_wheelShared.modIndex)(rT, n);\n var span = n * itemHeight;\n var base = m * itemHeight;\n var k = Math.round((referenceOffset - base) / span);\n return base + k * span;\n}\nfunction rubberBand(offset, dimension) {\n var c = rubberBandConstant;\n var x = Math.abs(offset);\n var result = x * dimension * c / (dimension + c * x);\n return offset < 0 ? -result : result;\n}\nfunction getItemTransform(index, scrollOffset, itemHeight, containerHeight) {\n var pose = (0, import_wheelShared.drumPose)(index - scrollOffset / itemHeight, itemHeight, containerHeight);\n return {\n translateY: (containerHeight - itemHeight) / 2 + pose.offset,\n rotateX: pose.rotateX,\n scale: pose.scale,\n opacity: 1\n };\n}\nfunction Wheel(props) {\n return import_tamagui.isWeb ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(WebWheel, {\n ...props\n }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_NativeWheel.NativeWheel, {\n ...props\n });\n}\nfunction WebWheel(props) {\n var _ref;\n var _theme_fadeKey_replace;\n var { items, value, onChange, visibleItems = 5, width: widthProp, renderItem, disabled = false, loop = false, flex, onItemCross, \"aria-label\": ariaLabel } = props;\n var { knobProps, selectedFill, size, itemHeight, snapDurationMs, highlightStyle, highlightClassName } = (0, import_wheelShared.useWheelLayout)(props);\n var columnWidth = widthProp !== null && widthProp !== void 0 ? widthProp : import_wheelShared.defaultColumnWidth;\n var theme = (0, import_tamagui.useTheme)();\n var elevatedGround = (0, import_theme.useElevatedSurface)();\n var fadeKey = elevatedGround ? knobProps.elevatedSurface.backgroundColor : \"$background\";\n var fadeSurface = String((_ref = (_theme_fadeKey_replace = theme[fadeKey.replace(/^\\$/, \"\")]) === null || _theme_fadeKey_replace === void 0 ? void 0 : _theme_fadeKey_replace.val) !== null && _ref !== void 0 ? _ref : fadeKey);\n ensureWheelFocusStyles();\n var containerRef = (0, import_react.useRef)(null);\n var [scrollOffset, setScrollOffset] = (0, import_react.useState)(0);\n var [selectedIndex, setSelectedIndex] = (0, import_react.useState)(0);\n var n = items.length;\n var loopEnabled = Boolean(loop && n > 1);\n var scrollOffsetRef = (0, import_react.useRef)(scrollOffset);\n scrollOffsetRef.current = scrollOffset;\n var animationRef = (0, import_react.useRef)(null);\n var isAnimatingRef = (0, import_react.useRef)(false);\n var hasMountedRef = (0, import_react.useRef)(false);\n var selectedIndexRef = (0, import_react.useRef)(selectedIndex);\n selectedIndexRef.current = selectedIndex;\n var isDraggingRef = (0, import_react.useRef)(false);\n var lastYRef = (0, import_react.useRef)(0);\n var downYRef = (0, import_react.useRef)(0);\n var dragDistanceRef = (0, import_react.useRef)(0);\n var lastTimeRef = (0, import_react.useRef)(0);\n var dragVelocitiesRef = (0, import_react.useRef)([]);\n var containerHeight = itemHeight * visibleItems;\n var paddingItems = Math.floor(visibleItems / 2);\n var minOffset = 0;\n var maxOffset = n > 0 ? (n - 1) * itemHeight : 0;\n var liveDataIndex = n === 0 ? 0 : loopEnabled ? (0, import_wheelShared.modIndex)(Math.round(scrollOffset / itemHeight), n) : Math.max(0, Math.min(Math.round(scrollOffset / itemHeight), n - 1));\n var lastCrossIndexRef = (0, import_react.useRef)(null);\n var onItemCrossRef = (0, import_react.useRef)(onItemCross);\n onItemCrossRef.current = onItemCross;\n (0, import_react.useEffect)(function() {\n var _onItemCrossRef_current;\n if (n === 0) return;\n if (lastCrossIndexRef.current === null) {\n lastCrossIndexRef.current = liveDataIndex;\n return;\n }\n if (lastCrossIndexRef.current === liveDataIndex) return;\n lastCrossIndexRef.current = liveDataIndex;\n var item = items[liveDataIndex];\n if (item === void 0) return;\n (_onItemCrossRef_current = onItemCrossRef.current) === null || _onItemCrossRef_current === void 0 ? void 0 : _onItemCrossRef_current.call(onItemCrossRef, (0, import_wheelShared.getItemValue)(item), liveDataIndex);\n (0, import_haptic.fireSelectionHaptic)();\n }, [\n liveDataIndex,\n items,\n n\n ]);\n var runSnapComplete = (0, import_react.useCallback)(function(finalOffset, dataIndex) {\n var safeIdx = Math.max(0, Math.min(dataIndex, n - 1));\n var settled = loopEnabled && n > 0 ? equivalentOffsetNear(0, finalOffset, n, itemHeight) : finalOffset;\n scrollOffsetRef.current = settled;\n setScrollOffset(settled);\n setSelectedIndex(safeIdx);\n onChange === null || onChange === void 0 ? void 0 : onChange((0, import_wheelShared.getItemValue)(items[safeIdx]));\n isAnimatingRef.current = false;\n }, [\n items,\n n,\n onChange,\n loopEnabled,\n itemHeight\n ]);\n var animateToOffset = (0, import_react.useCallback)(function(targetOffset, dataIndex, animated) {\n var startOffset = scrollOffsetRef.current;\n var goal = loopEnabled && n > 0 ? equivalentOffsetNear(startOffset, targetOffset, n, itemHeight) : targetOffset;\n if (!animated || snapDurationMs <= 0) {\n runSnapComplete(goal, dataIndex);\n return;\n }\n var distance = goal - startOffset;\n if (Math.abs(distance) < 0.5) {\n runSnapComplete(goal, dataIndex);\n return;\n }\n var duration = snapDurationMs;\n var startTime = performance.now();\n var animate = function animate1(currentTime) {\n var elapsed = currentTime - startTime;\n var progress = Math.min(elapsed / duration, 1);\n var eased = 1 - Math.pow(1 - progress, 3);\n var newOffset = startOffset + distance * eased;\n scrollOffsetRef.current = newOffset;\n setScrollOffset(newOffset);\n if (progress < 1) {\n animationRef.current = requestAnimationFrame(animate);\n } else {\n runSnapComplete(goal, dataIndex);\n }\n };\n isAnimatingRef.current = true;\n if (animationRef.current) cancelAnimationFrame(animationRef.current);\n animationRef.current = requestAnimationFrame(animate);\n }, [\n loopEnabled,\n n,\n itemHeight,\n runSnapComplete,\n snapDurationMs\n ]);\n var snapToIndex = (0, import_react.useCallback)(function(targetIndex) {\n var animated = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;\n if (n === 0) return;\n var clampedData = Math.max(0, Math.min(targetIndex, n - 1));\n if (!loopEnabled) {\n var targetOffset = clampedData * itemHeight;\n animateToOffset(targetOffset, clampedData, animated);\n return;\n }\n var currentR = Math.round(scrollOffsetRef.current / itemHeight);\n var targetR = (0, import_wheelShared.nearestRowForDataIndex)(currentR, clampedData, n);\n var targetOffset1 = targetR * itemHeight;\n var dataIdx = (0, import_wheelShared.modIndex)(targetR, n);\n animateToOffset(targetOffset1, dataIdx, animated);\n }, [\n n,\n itemHeight,\n loopEnabled,\n animateToOffset\n ]);\n (0, import_react.useEffect)(function() {\n if (value === void 0) return;\n var index = items.findIndex(function(item) {\n return (0, import_wheelShared.getItemValue)(item) === value;\n });\n if (index === -1) return;\n if (!hasMountedRef.current) {\n hasMountedRef.current = true;\n setSelectedIndex(index);\n var raw = index * itemHeight;\n var settled = loopEnabled && n > 1 ? equivalentOffsetNear(0, raw, n, itemHeight) : raw;\n scrollOffsetRef.current = settled;\n setScrollOffset(settled);\n return;\n }\n if (isDraggingRef.current) {\n setSelectedIndex(index);\n return;\n }\n if (index === selectedIndexRef.current && !isAnimatingRef.current) {\n return;\n }\n snapToIndex(index, true);\n }, [\n value,\n items,\n itemHeight,\n loopEnabled,\n n,\n snapToIndex\n ]);\n var snapToNearestRow = (0, import_react.useCallback)(function() {\n var animated = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;\n if (n === 0) return;\n var r = Math.round(scrollOffsetRef.current / itemHeight);\n if (loopEnabled) {\n var targetOffset = r * itemHeight;\n var dataIdx = (0, import_wheelShared.modIndex)(r, n);\n animateToOffset(targetOffset, dataIdx, animated);\n } else {\n var dataIdx1 = Math.max(0, Math.min(r, n - 1));\n animateToOffset(dataIdx1 * itemHeight, dataIdx1, animated);\n }\n }, [\n n,\n itemHeight,\n loopEnabled,\n animateToOffset\n ]);\n var hitTestDataIndex = (0, import_react.useCallback)(function(tapY) {\n if (n === 0) return null;\n var offset = scrollOffsetRef.current;\n var centerRow = Math.round(offset / itemHeight);\n var rowBuffer = paddingItems + 5;\n var best = null;\n for (var vr = centerRow - rowBuffer; vr <= centerRow + rowBuffer; vr++) {\n if (!loopEnabled && (vr < 0 || vr >= n)) continue;\n var dataIndex = loopEnabled ? (0, import_wheelShared.modIndex)(vr, n) : vr;\n var { translateY } = getItemTransform(vr, offset, itemHeight, containerHeight);\n var dist = Math.abs(translateY + itemHeight / 2 - tapY);\n if (!best || dist < best.dist) best = {\n dataIndex,\n dist\n };\n }\n if (best && best.dist <= itemHeight) return best.dataIndex;\n return null;\n }, [\n n,\n itemHeight,\n paddingItems,\n loopEnabled,\n containerHeight\n ]);\n var startMomentum = (0, import_react.useCallback)(function(initialVelocity) {\n if (snapDurationMs <= 0) {\n snapToNearestRow(false);\n return;\n }\n var velocity = initialVelocity * momentumMultiplier;\n var offset = scrollOffsetRef.current;\n var animate = function animate1() {\n velocity *= friction;\n offset += velocity;\n if (!loopEnabled) {\n if (offset < minOffset) {\n offset = minOffset + rubberBand(offset - minOffset, containerHeight);\n velocity *= 0.5;\n } else if (offset > maxOffset) {\n offset = maxOffset + rubberBand(offset - maxOffset, containerHeight);\n velocity *= 0.5;\n }\n }\n scrollOffsetRef.current = offset;\n setScrollOffset(offset);\n if (Math.abs(velocity) > minVelocity) {\n animationRef.current = requestAnimationFrame(animate);\n } else {\n snapToNearestRow(true);\n }\n };\n isAnimatingRef.current = true;\n if (animationRef.current) cancelAnimationFrame(animationRef.current);\n animationRef.current = requestAnimationFrame(animate);\n }, [\n loopEnabled,\n minOffset,\n maxOffset,\n containerHeight,\n snapToNearestRow,\n snapDurationMs\n ]);\n var handlePointerDown = (0, import_react.useCallback)(function(e) {\n if (disabled) return;\n if (animationRef.current) {\n cancelAnimationFrame(animationRef.current);\n isAnimatingRef.current = false;\n }\n isDraggingRef.current = true;\n lastYRef.current = e.clientY;\n downYRef.current = e.clientY;\n dragDistanceRef.current = 0;\n lastTimeRef.current = performance.now();\n dragVelocitiesRef.current = [];\n if (import_tamagui.isWeb && containerRef.current) {\n containerRef.current.setPointerCapture(e.pointerId);\n containerRef.current.style.cursor = \"grabbing\";\n }\n }, [\n disabled\n ]);\n var handlePointerMove = (0, import_react.useCallback)(function(e) {\n if (!isDraggingRef.current || disabled) return;\n var currentY = e.clientY;\n var currentTime = performance.now();\n var deltaY = lastYRef.current - currentY;\n var deltaTime = currentTime - lastTimeRef.current;\n dragDistanceRef.current += Math.abs(deltaY);\n if (deltaTime > 0) {\n var velocity = deltaY / deltaTime * 16;\n dragVelocitiesRef.current.push(velocity);\n if (dragVelocitiesRef.current.length > 5) {\n dragVelocitiesRef.current.shift();\n }\n }\n var newOffset = scrollOffsetRef.current + deltaY;\n if (!loopEnabled) {\n if (newOffset < minOffset) {\n newOffset = minOffset + rubberBand(newOffset - minOffset, containerHeight);\n } else if (newOffset > maxOffset) {\n newOffset = maxOffset + rubberBand(newOffset - maxOffset, containerHeight);\n }\n }\n scrollOffsetRef.current = newOffset;\n setScrollOffset(newOffset);\n lastYRef.current = currentY;\n lastTimeRef.current = currentTime;\n }, [\n disabled,\n loopEnabled,\n minOffset,\n maxOffset,\n containerHeight\n ]);\n var handlePointerUp = (0, import_react.useCallback)(function(e) {\n if (!isDraggingRef.current) return;\n isDraggingRef.current = false;\n if (import_tamagui.isWeb && containerRef.current) {\n try {\n containerRef.current.releasePointerCapture(e.pointerId);\n } catch (unused) {\n }\n containerRef.current.style.cursor = disabled ? \"not-allowed\" : \"grab\";\n }\n if (dragDistanceRef.current < tapSlopPx) {\n var _ref2;\n var _containerRef_current;\n var localY = e.locationY;\n var rect = (_containerRef_current = containerRef.current) === null || _containerRef_current === void 0 ? void 0 : _containerRef_current.getBoundingClientRect();\n var tapY = typeof localY === \"number\" ? localY : e.clientY - ((_ref2 = rect === null || rect === void 0 ? void 0 : rect.top) !== null && _ref2 !== void 0 ? _ref2 : 0);\n var tapped = hitTestDataIndex(tapY);\n if (tapped != null) {\n snapToIndex(tapped, true);\n return;\n }\n }\n var velocities = dragVelocitiesRef.current;\n if (velocities.length > 0) {\n var avgVelocity = velocities.reduce(function(a, b) {\n return a + b;\n }, 0) / velocities.length;\n if (Math.abs(avgVelocity) > minVelocity * 2) {\n startMomentum(avgVelocity);\n } else {\n snapToNearestRow(true);\n }\n } else {\n snapToNearestRow(true);\n }\n }, [\n snapToNearestRow,\n startMomentum,\n hitTestDataIndex,\n snapToIndex,\n disabled\n ]);\n var handleWheel = (0, import_react.useCallback)(function(e) {\n if (disabled) return;\n e.preventDefault();\n if (animationRef.current) {\n cancelAnimationFrame(animationRef.current);\n isAnimatingRef.current = false;\n }\n var delta = e.deltaY;\n var currentOffset = scrollOffsetRef.current;\n var newOffset = currentOffset + delta;\n if (!loopEnabled) {\n if (newOffset < minOffset) {\n newOffset = minOffset;\n } else if (newOffset > maxOffset) {\n newOffset = maxOffset;\n }\n }\n scrollOffsetRef.current = newOffset;\n setScrollOffset(newOffset);\n if (animationRef.current) cancelAnimationFrame(animationRef.current);\n animationRef.current = requestAnimationFrame(function() {\n setTimeout(function() {\n if (!isDraggingRef.current && !isAnimatingRef.current) {\n snapToNearestRow(true);\n }\n }, 100);\n });\n }, [\n disabled,\n loopEnabled,\n minOffset,\n maxOffset,\n snapToNearestRow\n ]);\n var handleKeyDown = (0, import_react.useCallback)(function(e) {\n if (disabled) return;\n var delta = 0;\n switch (e.key) {\n case \"ArrowUp\":\n case \"k\":\n delta = -1;\n break;\n case \"ArrowDown\":\n case \"j\":\n delta = 1;\n break;\n case \"PageUp\":\n delta = -visibleItems;\n break;\n case \"PageDown\":\n delta = visibleItems;\n break;\n case \"Home\":\n snapToIndex(0);\n e.preventDefault();\n return;\n case \"End\":\n snapToIndex(n - 1);\n e.preventDefault();\n return;\n default:\n return;\n }\n e.preventDefault();\n if (loopEnabled) {\n var newIndex = (0, import_wheelShared.modIndex)(selectedIndex + delta, n);\n snapToIndex(newIndex);\n } else {\n var newIndex1 = Math.max(0, Math.min(selectedIndex + delta, n - 1));\n snapToIndex(newIndex1);\n }\n }, [\n disabled,\n selectedIndex,\n n,\n visibleItems,\n snapToIndex,\n loopEnabled\n ]);\n (0, import_react.useEffect)(function() {\n if (!import_tamagui.isWeb) return;\n var container = containerRef.current;\n if (!container) return;\n var wheelHandler = function wheelHandler2(e) {\n return handleWheel(e);\n };\n container.addEventListener(\"wheel\", wheelHandler, {\n passive: false\n });\n return function() {\n container.removeEventListener(\"wheel\", wheelHandler);\n };\n }, [\n handleWheel\n ]);\n (0, import_react.useEffect)(function() {\n return function() {\n if (animationRef.current) {\n cancelAnimationFrame(animationRef.current);\n }\n };\n }, []);\n var renderRows = (0, import_react.useMemo)(function() {\n if (n === 0) return [];\n var span = Math.ceil((0, import_wheelShared.drumReachRows)(itemHeight, containerHeight));\n var centerRow = Math.round(scrollOffset / itemHeight);\n var first = loopEnabled ? centerRow - span : Math.max(0, centerRow - span);\n var last = loopEnabled ? centerRow + span : Math.min(n - 1, centerRow + span);\n var list = [];\n for (var vr = first; vr <= last; vr++) {\n list.push({\n virtualRow: vr,\n dataIndex: (0, import_wheelShared.modIndex)(vr, n)\n });\n }\n return list;\n }, [\n n,\n loopEnabled,\n scrollOffset,\n itemHeight,\n containerHeight\n ]);\n var itemColor = function itemColor2(isSelected) {\n return disabled ? \"$color10\" : isSelected ? \"$color12\" : \"$color11\";\n };\n var renderItemNode = function renderItemNode2(dataIndex, isSelected) {\n var item = items[dataIndex];\n var itemValue = (0, import_wheelShared.getItemValue)(item);\n if (renderItem) return renderItem(itemValue, dataIndex, isSelected);\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tamagui.Text, {\n ...knobProps.body,\n fontSize: size,\n color: itemColor(isSelected),\n numberOfLines: 1,\n ellipsizeMode: \"tail\",\n maxWidth: \"100%\",\n paddingHorizontal: \"$2\",\n children: (0, import_wheelShared.getItemLabel)(item)\n });\n };\n return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(WheelContainer, {\n height: containerHeight,\n width: flex ? \"100%\" : columnWidth,\n minWidth: flex ? 0 : columnWidth,\n flex,\n \"data-testid\": \"wheel\",\n \"data-disabled\": disabled ? true : void 0,\n \"aria-disabled\": disabled || void 0,\n opacity: 1,\n children: [\n /* iOS 14+ selection fill — LC-71 selected=fill, never hairline borders */\n /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectionIndicator, {\n className: highlightClassName,\n // FZ-8438: the selection tint (FZ-8355). $color4 is the dark elevated\n // surface itself, so the band vanished on a dark cover panel.\n backgroundColor: selectedFill,\n top: paddingItems * itemHeight,\n height: itemHeight,\n style: highlightStyle,\n \"data-testid\": \"wheel-selection\"\n }),\n /* Interactive container */\n /* @__PURE__ */ (0, import_jsx_runtime.jsx)(\"div\", {\n ref: containerRef,\n className: \"mp1-wheel-wrapper\",\n tabIndex: disabled ? -1 : 0,\n role: \"slider\",\n \"aria-label\": ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : (0, import_t.t)(\"Value picker\"),\n \"aria-orientation\": \"vertical\",\n \"aria-valuemin\": 0,\n \"aria-valuemax\": Math.max(0, n - 1),\n \"aria-valuenow\": selectedIndex,\n \"aria-valuetext\": items[selectedIndex] !== void 0 ? (0, import_wheelShared.getItemLabel)(items[selectedIndex]) : void 0,\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? true : void 0,\n style: {\n width: \"100%\",\n height: containerHeight,\n position: \"relative\",\n perspective: `${containerHeight * 4}px`,\n perspectiveOrigin: \"center center\",\n overflow: \"hidden\",\n userSelect: \"none\",\n touchAction: \"none\",\n cursor: disabled ? \"not-allowed\" : \"grab\"\n },\n onPointerDown: handlePointerDown,\n onPointerMove: handlePointerMove,\n onPointerUp: handlePointerUp,\n onPointerCancel: handlePointerUp,\n onKeyDown: handleKeyDown,\n \"data-testid\": \"wheel-wrapper\",\n children: renderRows.map(function(param) {\n var { virtualRow, dataIndex } = param;\n var isSelected = dataIndex === liveDataIndex;\n var transform = getItemTransform(virtualRow, scrollOffset, itemHeight, containerHeight);\n if (Math.abs(transform.rotateX) > 85) return null;\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(\"div\", {\n \"data-testid\": \"wheel-item\",\n \"data-index\": dataIndex,\n \"data-selected\": isSelected ? true : void 0,\n \"aria-hidden\": isSelected ? void 0 : true,\n style: {\n position: \"absolute\",\n left: 0,\n right: 0,\n height: itemHeight,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n transform: `translateY(${transform.translateY}px) rotateX(${transform.rotateX}deg) scale(${transform.scale})`,\n opacity: transform.opacity,\n pointerEvents: \"none\",\n transformOrigin: \"center center\",\n transformStyle: \"preserve-3d\",\n backfaceVisibility: \"hidden\"\n },\n children: renderItemNode(dataIndex, isSelected)\n }, `${dataIndex}-${virtualRow}`);\n })\n }),\n /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_linear_gradient.LinearGradient, {\n \"data-testid\": \"wheel-fade\",\n pointerEvents: \"none\",\n position: \"absolute\",\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n opacity: wheelFadeOpacity,\n colors: [\n fadeSurface,\n \"transparent\",\n \"transparent\",\n fadeSurface\n ],\n locations: wheelFadeStops,\n start: [\n 0,\n 0\n ],\n end: [\n 0,\n 1\n ]\n })\n ]\n });\n}\nWheel.Item = WheelItemContainer;\n//# sourceMappingURL=index.js.map\n"],"mappings":"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","ignoreList":[]}
@@ -301,6 +301,7 @@ function CalendarDayCell({
301
301
  knobProps
302
302
  } = useCalendarKnobs();
303
303
  const accentText = (0, import_theme2.useAccentOnSurface)();
304
+ const onMark = (0, import_theme2.useReadableTextOn)(import_colorRamps.formSelectedColors.mark);
304
305
  const {
305
306
  px,
306
307
  hitSlop,
@@ -330,8 +331,7 @@ function CalendarDayCell({
330
331
  },
331
332
  opacity: disabled ? 0.5 : dimmed ? 0.45 : 1,
332
333
  pointerEvents: disabled ? "none" : "auto",
333
- backgroundColor: selected ? selectedBackground ?? "$background" : "transparent",
334
- theme: selected ? "accent" : void 0,
334
+ backgroundColor: selected ? selectedBackground ?? import_colorRamps.formSelectedColors.mark : "transparent",
335
335
  borderWidth: showTodayMark ? 2 : 0,
336
336
  borderColor: showTodayMark ? accentText : "transparent",
337
337
  zIndex: 1,
@@ -360,7 +360,7 @@ function CalendarDayCell({
360
360
  ...knobProps.label,
361
361
  ...knobProps.textWeight,
362
362
  fontWeight: selected ? "bold" : knobProps.textWeight.fontWeight,
363
- color: selected ? void 0 : today ? accentText : import_colorRamps.formCommonColors.text,
363
+ color: selected ? onMark : today ? accentText : import_colorRamps.formCommonColors.text,
364
364
  children: day.getDate()
365
365
  })
366
366
  });
@@ -569,6 +569,7 @@ function MonthGrid({
569
569
  const {
570
570
  knobProps
571
571
  } = useCalendarKnobs();
572
+ const onMark = (0, import_theme2.useReadableTextOn)(import_colorRamps.formSelectedColors.mark);
572
573
  const {
573
574
  animation,
574
575
  animationKey
@@ -602,8 +603,7 @@ function MonthGrid({
602
603
  cursor: "pointer",
603
604
  alignItems: "center",
604
605
  justifyContent: "center",
605
- theme: isSelected ? "accent" : void 0,
606
- backgroundColor: isSelected ? "$background" : "transparent",
606
+ backgroundColor: isSelected ? import_colorRamps.formSelectedColors.mark : "transparent",
607
607
  onPress: () => onSelectMonth(index),
608
608
  outlineWidth: 0,
609
609
  focusStyle: {
@@ -624,7 +624,7 @@ function MonthGrid({
624
624
  }),
625
625
  children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
626
626
  ...knobProps.label,
627
- color: isSelected ? "$color" : import_colorRamps.formCommonColors.text,
627
+ color: isSelected ? onMark : import_colorRamps.formCommonColors.text,
628
628
  fontWeight: isSelected ? "bold" : "400",
629
629
  children: (0, import_t.t)(name.slice(0, 3))
630
630
  })
@@ -643,6 +643,7 @@ function YearGrid({
643
643
  const {
644
644
  knobProps
645
645
  } = useCalendarKnobs();
646
+ const onMark = (0, import_theme2.useReadableTextOn)(import_colorRamps.formSelectedColors.mark);
646
647
  const glyphColor = (0, import_theme2.useGlyphColor)();
647
648
  const {
648
649
  px,
@@ -711,8 +712,7 @@ function YearGrid({
711
712
  cursor: "pointer",
712
713
  alignItems: "center",
713
714
  justifyContent: "center",
714
- theme: isSelected ? "accent" : void 0,
715
- backgroundColor: isSelected ? "$background" : "transparent",
715
+ backgroundColor: isSelected ? import_colorRamps.formSelectedColors.mark : "transparent",
716
716
  onPress: () => onSelectYear(year),
717
717
  outlineWidth: 0,
718
718
  focusStyle: {
@@ -733,7 +733,7 @@ function YearGrid({
733
733
  }),
734
734
  children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
735
735
  ...knobProps.label,
736
- color: isSelected ? "$color" : import_colorRamps.formCommonColors.text,
736
+ color: isSelected ? onMark : import_colorRamps.formCommonColors.text,
737
737
  fontWeight: isSelected ? "bold" : "400",
738
738
  children: year
739
739
  })
@@ -743,6 +743,17 @@ function YearGrid({
743
743
  }, animationKey)]
744
744
  });
745
745
  }
746
+ function TriggerGlyph({
747
+ glyph,
748
+ ...groupItem
749
+ }) {
750
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_InputParts.Input.Icon, {
751
+ adornment: "trailing",
752
+ color: import_colorRamps.formCommonColors.muted,
753
+ ...groupItem,
754
+ children: glyph === "clock" ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.ClockIcon, {}) : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.CalendarBlankIcon, {})
755
+ });
756
+ }
746
757
  function DatePickerClearButton({
747
758
  onReset,
748
759
  disabled,
@@ -786,7 +797,6 @@ function DatePickerInputTrigger({
786
797
  onReset();
787
798
  }
788
799
  };
789
- const Glyph = glyph === "clock" ? import_react.ClockIcon : import_react.CalendarBlankIcon;
790
800
  return (
791
801
  // LC-40: the disabled Box below is pointerEvents-none, so the cursor
792
802
  // affordance must ride this wrapper — the fragment's not-allowed never
@@ -823,13 +833,6 @@ function DatePickerInputTrigger({
823
833
  onKeyDown: handleTriggerKey
824
834
  } : void 0),
825
835
  children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_InputParts.Input.Section, {
826
- "data-testid": "date-picker-glyph",
827
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_InputParts.Input.Icon, {
828
- adornment: "leading",
829
- color: import_colorRamps.formCommonColors.muted,
830
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(Glyph, {})
831
- })
832
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_InputParts.Input.Section, {
833
836
  children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_InputParts.Input.Area, {
834
837
  readOnly: true,
835
838
  pointerEvents: "none",
@@ -837,15 +840,19 @@ function DatePickerInputTrigger({
837
840
  value,
838
841
  placeholder,
839
842
  disabled,
840
- color: import_colorRamps.formCommonColors.text,
841
- placeholderTextColor: import_colorRamps.formCommonColors.muted
843
+ color: import_colorRamps.formCommonColors.text
842
844
  })
843
- }), value && import_tamagui.isWeb ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_InputParts.Input.Section, {
845
+ }), value && import_tamagui.isWeb && !disabled ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_InputParts.Input.Section, {
844
846
  children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(DatePickerClearButton, {
845
847
  onReset,
846
848
  disabled
847
849
  })
848
- }) : null]
850
+ }) : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_InputParts.Input.Section, {
851
+ "data-testid": "date-picker-glyph",
852
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(TriggerGlyph, {
853
+ glyph
854
+ })
855
+ })]
849
856
  })
850
857
  })
851
858
  );
@@ -859,7 +866,6 @@ function DatePickerReadOnlyField({
859
866
  "aria-required": ariaRequired,
860
867
  "aria-invalid": ariaInvalid
861
868
  }) {
862
- const Glyph = glyph === "clock" ? import_react.ClockIcon : import_react.CalendarBlankIcon;
863
869
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
864
870
  flexDirection: "row",
865
871
  alignItems: "center",
@@ -870,25 +876,22 @@ function DatePickerReadOnlyField({
870
876
  elevation: void 0,
871
877
  "data-testid": "date-picker-readonly",
872
878
  children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_InputParts.Input.Section, {
873
- "data-testid": "date-picker-glyph",
874
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_InputParts.Input.Icon, {
875
- adornment: "leading",
876
- color: import_colorRamps.formCommonColors.muted,
877
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(Glyph, {})
878
- })
879
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_InputParts.Input.Section, {
880
879
  children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_InputParts.Input.Area, {
881
880
  readOnly: true,
882
881
  id,
883
882
  value,
884
883
  placeholder,
885
884
  color: import_colorRamps.formCommonColors.text,
886
- placeholderTextColor: import_colorRamps.formCommonColors.muted,
887
885
  "aria-label": ariaLabel,
888
886
  "aria-readonly": "true",
889
887
  "aria-required": ariaRequired,
890
888
  "aria-invalid": ariaInvalid
891
889
  })
890
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_InputParts.Input.Section, {
891
+ "data-testid": "date-picker-glyph",
892
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(TriggerGlyph, {
893
+ glyph
894
+ })
892
895
  })]
893
896
  })
894
897
  });