@multiplatform.one/forms 7.70.0 → 7.72.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 (333) hide show
  1. package/dist/cjs/Button/index.cjs +16 -0
  2. package/dist/cjs/Button/index.native.js +16 -0
  3. package/dist/cjs/Button/index.native.js.map +1 -1
  4. package/dist/cjs/FloatingPanel/echoContext.cjs +39 -0
  5. package/dist/cjs/FloatingPanel/echoContext.native.js +42 -0
  6. package/dist/cjs/FloatingPanel/echoContext.native.js.map +1 -0
  7. package/dist/cjs/FloatingPanel/index.cjs +212 -80
  8. package/dist/cjs/FloatingPanel/index.native.js +92 -17
  9. package/dist/cjs/FloatingPanel/index.native.js.map +1 -1
  10. package/dist/cjs/FloatingPanel/panelWidth.cjs +92 -0
  11. package/dist/cjs/FloatingPanel/panelWidth.native.js +99 -0
  12. package/dist/cjs/FloatingPanel/panelWidth.native.js.map +1 -0
  13. package/dist/cjs/FloatingPanel/pointAnchor.cjs +15 -5
  14. package/dist/cjs/FloatingPanel/pointAnchor.native.js +15 -5
  15. package/dist/cjs/FloatingPanel/pointAnchor.native.js.map +1 -1
  16. package/dist/cjs/FloatingPanel/useFloatingPanel.cjs +58 -4
  17. package/dist/cjs/FloatingPanel/useFloatingPanel.native.js +69 -4
  18. package/dist/cjs/FloatingPanel/useFloatingPanel.native.js.map +1 -1
  19. package/dist/cjs/InputParts/index.cjs +20 -1
  20. package/dist/cjs/InputParts/index.native.js +22 -2
  21. package/dist/cjs/InputParts/index.native.js.map +1 -1
  22. package/dist/cjs/Wheel/NativeWheel.native.js +1 -1
  23. package/dist/cjs/Wheel/NativeWheel.native.js.map +1 -1
  24. package/dist/cjs/Wheel/index.cjs +2 -1
  25. package/dist/cjs/Wheel/index.native.js +4 -1
  26. package/dist/cjs/Wheel/index.native.js.map +1 -1
  27. package/dist/cjs/Wheel/wheelShared.cjs +6 -1
  28. package/dist/cjs/Wheel/wheelShared.native.js +7 -1
  29. package/dist/cjs/Wheel/wheelShared.native.js.map +1 -1
  30. package/dist/cjs/fields/Combobox/index.cjs +1 -0
  31. package/dist/cjs/fields/Combobox/index.native.js +1 -0
  32. package/dist/cjs/fields/Combobox/index.native.js.map +1 -1
  33. package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.cjs +6 -30
  34. package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js +11 -34
  35. package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
  36. package/dist/cjs/fields/DatePicker/DatetimePicker.native.js.map +1 -1
  37. package/dist/cjs/fields/DatePicker/catalog.cjs +2 -28
  38. package/dist/cjs/fields/DatePicker/catalog.native.js +2 -30
  39. package/dist/cjs/fields/DatePicker/catalog.native.js.map +1 -1
  40. package/dist/cjs/fields/DatePicker/index.native.js.map +1 -1
  41. package/dist/cjs/fields/DatePicker/parts.cjs +11 -20
  42. package/dist/cjs/fields/DatePicker/parts.native.js +13 -22
  43. package/dist/cjs/fields/DatePicker/parts.native.js.map +1 -1
  44. package/dist/cjs/fields/SearchInput/index.cjs +23 -1
  45. package/dist/cjs/fields/SearchInput/index.native.js +23 -1
  46. package/dist/cjs/fields/SearchInput/index.native.js.map +1 -1
  47. package/dist/cjs/fields/Select/index.cjs +65 -44
  48. package/dist/cjs/fields/Select/index.native.js +69 -47
  49. package/dist/cjs/fields/Select/index.native.js.map +1 -1
  50. package/dist/cjs/fields/Select/shouldInlineChoices.cjs +3 -1
  51. package/dist/cjs/fields/Select/shouldInlineChoices.native.js +3 -1
  52. package/dist/cjs/fields/Select/shouldInlineChoices.native.js.map +1 -1
  53. package/dist/cjs/fields/TimePicker/catalog.cjs +4 -25
  54. package/dist/cjs/fields/TimePicker/catalog.native.js +7 -29
  55. package/dist/cjs/fields/TimePicker/catalog.native.js.map +1 -1
  56. package/dist/cjs/fields/TimePicker/index.native.js.map +1 -1
  57. package/dist/cjs/fields/TimePicker/parts.cjs +8 -21
  58. package/dist/cjs/fields/TimePicker/parts.native.js +8 -21
  59. package/dist/cjs/fields/TimePicker/parts.native.js.map +1 -1
  60. package/dist/cjs/index.native.js.map +1 -1
  61. package/dist/cjs/shared/floatingList.cjs +13 -4
  62. package/dist/cjs/shared/floatingList.native.js +15 -4
  63. package/dist/cjs/shared/floatingList.native.js.map +1 -1
  64. package/dist/esm/Button/index.mjs +17 -1
  65. package/dist/esm/Button/index.mjs.map +1 -1
  66. package/dist/esm/Button/index.native.js +17 -1
  67. package/dist/esm/Button/index.native.js.map +1 -1
  68. package/dist/esm/FloatingPanel/echoContext.mjs +11 -0
  69. package/dist/esm/FloatingPanel/echoContext.mjs.map +1 -0
  70. package/dist/esm/FloatingPanel/echoContext.native.js +11 -0
  71. package/dist/esm/FloatingPanel/echoContext.native.js.map +1 -0
  72. package/dist/esm/FloatingPanel/index.mjs +213 -83
  73. package/dist/esm/FloatingPanel/index.mjs.map +1 -1
  74. package/dist/esm/FloatingPanel/index.native.js +92 -19
  75. package/dist/esm/FloatingPanel/index.native.js.map +1 -1
  76. package/dist/esm/FloatingPanel/panelWidth.mjs +63 -0
  77. package/dist/esm/FloatingPanel/panelWidth.mjs.map +1 -0
  78. package/dist/esm/FloatingPanel/panelWidth.native.js +67 -0
  79. package/dist/esm/FloatingPanel/panelWidth.native.js.map +1 -0
  80. package/dist/esm/FloatingPanel/pointAnchor.mjs +15 -5
  81. package/dist/esm/FloatingPanel/pointAnchor.mjs.map +1 -1
  82. package/dist/esm/FloatingPanel/pointAnchor.native.js +15 -5
  83. package/dist/esm/FloatingPanel/pointAnchor.native.js.map +1 -1
  84. package/dist/esm/FloatingPanel/useFloatingPanel.mjs +58 -5
  85. package/dist/esm/FloatingPanel/useFloatingPanel.mjs.map +1 -1
  86. package/dist/esm/FloatingPanel/useFloatingPanel.native.js +69 -5
  87. package/dist/esm/FloatingPanel/useFloatingPanel.native.js.map +1 -1
  88. package/dist/esm/InputParts/index.mjs +21 -2
  89. package/dist/esm/InputParts/index.mjs.map +1 -1
  90. package/dist/esm/InputParts/index.native.js +23 -3
  91. package/dist/esm/InputParts/index.native.js.map +1 -1
  92. package/dist/esm/Wheel/NativeWheel.native.js +1 -1
  93. package/dist/esm/Wheel/NativeWheel.native.js.map +1 -1
  94. package/dist/esm/Wheel/index.mjs +2 -1
  95. package/dist/esm/Wheel/index.mjs.map +1 -1
  96. package/dist/esm/Wheel/index.native.js +4 -1
  97. package/dist/esm/Wheel/index.native.js.map +1 -1
  98. package/dist/esm/Wheel/wheelShared.mjs +6 -1
  99. package/dist/esm/Wheel/wheelShared.mjs.map +1 -1
  100. package/dist/esm/Wheel/wheelShared.native.js +7 -1
  101. package/dist/esm/Wheel/wheelShared.native.js.map +1 -1
  102. package/dist/esm/fields/Combobox/index.mjs +1 -0
  103. package/dist/esm/fields/Combobox/index.mjs.map +1 -1
  104. package/dist/esm/fields/Combobox/index.native.js +1 -0
  105. package/dist/esm/fields/Combobox/index.native.js.map +1 -1
  106. package/dist/esm/fields/DatePicker/DatetimePicker.catalog.mjs +6 -30
  107. package/dist/esm/fields/DatePicker/DatetimePicker.catalog.mjs.map +1 -1
  108. package/dist/esm/fields/DatePicker/DatetimePicker.catalog.native.js +11 -34
  109. package/dist/esm/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
  110. package/dist/esm/fields/DatePicker/DatetimePicker.native.js.map +1 -1
  111. package/dist/esm/fields/DatePicker/catalog.mjs +2 -28
  112. package/dist/esm/fields/DatePicker/catalog.mjs.map +1 -1
  113. package/dist/esm/fields/DatePicker/catalog.native.js +2 -30
  114. package/dist/esm/fields/DatePicker/catalog.native.js.map +1 -1
  115. package/dist/esm/fields/DatePicker/index.native.js.map +1 -1
  116. package/dist/esm/fields/DatePicker/parts.mjs +11 -20
  117. package/dist/esm/fields/DatePicker/parts.mjs.map +1 -1
  118. package/dist/esm/fields/DatePicker/parts.native.js +13 -22
  119. package/dist/esm/fields/DatePicker/parts.native.js.map +1 -1
  120. package/dist/esm/fields/SearchInput/index.mjs +25 -3
  121. package/dist/esm/fields/SearchInput/index.mjs.map +1 -1
  122. package/dist/esm/fields/SearchInput/index.native.js +25 -3
  123. package/dist/esm/fields/SearchInput/index.native.js.map +1 -1
  124. package/dist/esm/fields/Select/index.mjs +66 -45
  125. package/dist/esm/fields/Select/index.mjs.map +1 -1
  126. package/dist/esm/fields/Select/index.native.js +70 -48
  127. package/dist/esm/fields/Select/index.native.js.map +1 -1
  128. package/dist/esm/fields/Select/shouldInlineChoices.mjs +3 -1
  129. package/dist/esm/fields/Select/shouldInlineChoices.mjs.map +1 -1
  130. package/dist/esm/fields/Select/shouldInlineChoices.native.js +3 -1
  131. package/dist/esm/fields/Select/shouldInlineChoices.native.js.map +1 -1
  132. package/dist/esm/fields/TimePicker/catalog.mjs +4 -25
  133. package/dist/esm/fields/TimePicker/catalog.mjs.map +1 -1
  134. package/dist/esm/fields/TimePicker/catalog.native.js +7 -29
  135. package/dist/esm/fields/TimePicker/catalog.native.js.map +1 -1
  136. package/dist/esm/fields/TimePicker/index.native.js.map +1 -1
  137. package/dist/esm/fields/TimePicker/parts.mjs +8 -21
  138. package/dist/esm/fields/TimePicker/parts.mjs.map +1 -1
  139. package/dist/esm/fields/TimePicker/parts.native.js +8 -21
  140. package/dist/esm/fields/TimePicker/parts.native.js.map +1 -1
  141. package/dist/esm/index.mjs.map +1 -1
  142. package/dist/esm/index.native.js.map +1 -1
  143. package/dist/esm/shared/floatingList.mjs +14 -5
  144. package/dist/esm/shared/floatingList.mjs.map +1 -1
  145. package/dist/esm/shared/floatingList.native.js +16 -5
  146. package/dist/esm/shared/floatingList.native.js.map +1 -1
  147. package/dist/jsx/Button/index.mjs +17 -1
  148. package/dist/jsx/Button/index.mjs.map +1 -1
  149. package/dist/jsx/Button/index.native.js +16 -0
  150. package/dist/jsx/Button/index.native.js.map +1 -1
  151. package/dist/jsx/FloatingPanel/echoContext.mjs +11 -0
  152. package/dist/jsx/FloatingPanel/echoContext.mjs.map +1 -0
  153. package/dist/jsx/FloatingPanel/echoContext.native.js +42 -0
  154. package/dist/jsx/FloatingPanel/echoContext.native.js.map +1 -0
  155. package/dist/jsx/FloatingPanel/index.mjs +213 -83
  156. package/dist/jsx/FloatingPanel/index.mjs.map +1 -1
  157. package/dist/jsx/FloatingPanel/index.native.js +92 -17
  158. package/dist/jsx/FloatingPanel/index.native.js.map +1 -1
  159. package/dist/jsx/FloatingPanel/panelWidth.mjs +63 -0
  160. package/dist/jsx/FloatingPanel/panelWidth.mjs.map +1 -0
  161. package/dist/jsx/FloatingPanel/panelWidth.native.js +99 -0
  162. package/dist/jsx/FloatingPanel/panelWidth.native.js.map +1 -0
  163. package/dist/jsx/FloatingPanel/pointAnchor.mjs +15 -5
  164. package/dist/jsx/FloatingPanel/pointAnchor.mjs.map +1 -1
  165. package/dist/jsx/FloatingPanel/pointAnchor.native.js +15 -5
  166. package/dist/jsx/FloatingPanel/pointAnchor.native.js.map +1 -1
  167. package/dist/jsx/FloatingPanel/useFloatingPanel.mjs +58 -5
  168. package/dist/jsx/FloatingPanel/useFloatingPanel.mjs.map +1 -1
  169. package/dist/jsx/FloatingPanel/useFloatingPanel.native.js +69 -4
  170. package/dist/jsx/FloatingPanel/useFloatingPanel.native.js.map +1 -1
  171. package/dist/jsx/InputParts/index.mjs +21 -2
  172. package/dist/jsx/InputParts/index.mjs.map +1 -1
  173. package/dist/jsx/InputParts/index.native.js +22 -2
  174. package/dist/jsx/InputParts/index.native.js.map +1 -1
  175. package/dist/jsx/Wheel/NativeWheel.native.js +1 -1
  176. package/dist/jsx/Wheel/NativeWheel.native.js.map +1 -1
  177. package/dist/jsx/Wheel/index.mjs +2 -1
  178. package/dist/jsx/Wheel/index.mjs.map +1 -1
  179. package/dist/jsx/Wheel/index.native.js +4 -1
  180. package/dist/jsx/Wheel/index.native.js.map +1 -1
  181. package/dist/jsx/Wheel/wheelShared.mjs +6 -1
  182. package/dist/jsx/Wheel/wheelShared.mjs.map +1 -1
  183. package/dist/jsx/Wheel/wheelShared.native.js +7 -1
  184. package/dist/jsx/Wheel/wheelShared.native.js.map +1 -1
  185. package/dist/jsx/fields/Combobox/index.mjs +1 -0
  186. package/dist/jsx/fields/Combobox/index.mjs.map +1 -1
  187. package/dist/jsx/fields/Combobox/index.native.js +1 -0
  188. package/dist/jsx/fields/Combobox/index.native.js.map +1 -1
  189. package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.mjs +6 -30
  190. package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.mjs.map +1 -1
  191. package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.native.js +11 -34
  192. package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
  193. package/dist/jsx/fields/DatePicker/DatetimePicker.native.js.map +1 -1
  194. package/dist/jsx/fields/DatePicker/catalog.mjs +2 -28
  195. package/dist/jsx/fields/DatePicker/catalog.mjs.map +1 -1
  196. package/dist/jsx/fields/DatePicker/catalog.native.js +2 -30
  197. package/dist/jsx/fields/DatePicker/catalog.native.js.map +1 -1
  198. package/dist/jsx/fields/DatePicker/index.native.js.map +1 -1
  199. package/dist/jsx/fields/DatePicker/parts.mjs +11 -20
  200. package/dist/jsx/fields/DatePicker/parts.mjs.map +1 -1
  201. package/dist/jsx/fields/DatePicker/parts.native.js +13 -22
  202. package/dist/jsx/fields/DatePicker/parts.native.js.map +1 -1
  203. package/dist/jsx/fields/SearchInput/index.mjs +25 -3
  204. package/dist/jsx/fields/SearchInput/index.mjs.map +1 -1
  205. package/dist/jsx/fields/SearchInput/index.native.js +23 -1
  206. package/dist/jsx/fields/SearchInput/index.native.js.map +1 -1
  207. package/dist/jsx/fields/Select/index.mjs +66 -45
  208. package/dist/jsx/fields/Select/index.mjs.map +1 -1
  209. package/dist/jsx/fields/Select/index.native.js +69 -47
  210. package/dist/jsx/fields/Select/index.native.js.map +1 -1
  211. package/dist/jsx/fields/Select/shouldInlineChoices.mjs +3 -1
  212. package/dist/jsx/fields/Select/shouldInlineChoices.mjs.map +1 -1
  213. package/dist/jsx/fields/Select/shouldInlineChoices.native.js +3 -1
  214. package/dist/jsx/fields/Select/shouldInlineChoices.native.js.map +1 -1
  215. package/dist/jsx/fields/TimePicker/catalog.mjs +4 -25
  216. package/dist/jsx/fields/TimePicker/catalog.mjs.map +1 -1
  217. package/dist/jsx/fields/TimePicker/catalog.native.js +7 -29
  218. package/dist/jsx/fields/TimePicker/catalog.native.js.map +1 -1
  219. package/dist/jsx/fields/TimePicker/index.native.js.map +1 -1
  220. package/dist/jsx/fields/TimePicker/parts.mjs +8 -21
  221. package/dist/jsx/fields/TimePicker/parts.mjs.map +1 -1
  222. package/dist/jsx/fields/TimePicker/parts.native.js +8 -21
  223. package/dist/jsx/fields/TimePicker/parts.native.js.map +1 -1
  224. package/dist/jsx/index.js.map +1 -1
  225. package/dist/jsx/index.mjs.map +1 -1
  226. package/dist/jsx/index.native.js.map +1 -1
  227. package/dist/jsx/shared/floatingList.mjs +14 -5
  228. package/dist/jsx/shared/floatingList.mjs.map +1 -1
  229. package/dist/jsx/shared/floatingList.native.js +15 -4
  230. package/dist/jsx/shared/floatingList.native.js.map +1 -1
  231. package/package.json +8 -8
  232. package/src/Button/index.tsx +22 -0
  233. package/src/FloatingPanel/FloatingPanel.echoStretch.spec.tsx +67 -0
  234. package/src/FloatingPanel/FloatingPanel.menuFace.native.spec.tsx +193 -2
  235. package/src/FloatingPanel/FloatingPanel.seamlessCover.spec.tsx +237 -0
  236. package/src/FloatingPanel/echoContext.ts +22 -0
  237. package/src/FloatingPanel/index.native.tsx +106 -9
  238. package/src/FloatingPanel/index.tsx +310 -102
  239. package/src/FloatingPanel/panelWidth.spec.ts +158 -0
  240. package/src/FloatingPanel/panelWidth.ts +122 -0
  241. package/src/FloatingPanel/panelWidthContract.spec.ts +10 -10
  242. package/src/FloatingPanel/pointAnchor.spec.ts +64 -2
  243. package/src/FloatingPanel/pointAnchor.ts +28 -3
  244. package/src/FloatingPanel/useFloatingPanel.spec.tsx +124 -4
  245. package/src/FloatingPanel/useFloatingPanel.ts +106 -33
  246. package/src/InputParts/index.tsx +30 -1
  247. package/src/Wheel/NativeWheel.native.tsx +1 -1
  248. package/src/Wheel/Wheel.spec.tsx +9 -0
  249. package/src/Wheel/index.tsx +12 -3
  250. package/src/Wheel/wheelShared.ts +6 -2
  251. package/src/fields/Combobox/index.tsx +1 -0
  252. package/src/fields/DatePicker/DatePicker.stories.tsx +3 -3
  253. package/src/fields/DatePicker/DatetimePicker.catalog.tsx +17 -45
  254. package/src/fields/DatePicker/DatetimePicker.native.tsx +3 -0
  255. package/src/fields/DatePicker/catalog.tsx +8 -39
  256. package/src/fields/DatePicker/index.native.tsx +3 -0
  257. package/src/fields/DatePicker/parts.tsx +13 -23
  258. package/src/fields/DatePicker/seamlessCover.spec.tsx +180 -0
  259. package/src/fields/DatePicker/touchWeb.spec.tsx +109 -167
  260. package/src/fields/SearchInput/SearchInput.spec.tsx +40 -0
  261. package/src/fields/SearchInput/index.tsx +47 -2
  262. package/src/fields/Select/Select.containingBlock.spec.tsx +191 -0
  263. package/src/fields/Select/Select.stories.tsx +43 -0
  264. package/src/fields/Select/index.tsx +109 -45
  265. package/src/fields/Select/shouldInlineChoices.spec.ts +13 -0
  266. package/src/fields/Select/shouldInlineChoices.ts +6 -0
  267. package/src/fields/TimePicker/catalog.tsx +12 -33
  268. package/src/fields/TimePicker/index.native.tsx +2 -0
  269. package/src/fields/TimePicker/parts.tsx +6 -20
  270. package/src/index.ts +1 -0
  271. package/src/shared/floatingList.tsx +21 -5
  272. package/types/Button/index.d.ts.map +1 -1
  273. package/types/FloatingPanel/echoContext.d.ts +14 -0
  274. package/types/FloatingPanel/echoContext.d.ts.map +1 -0
  275. package/types/FloatingPanel/index.d.ts +59 -0
  276. package/types/FloatingPanel/index.d.ts.map +1 -1
  277. package/types/FloatingPanel/index.native.d.ts +9 -1
  278. package/types/FloatingPanel/index.native.d.ts.map +1 -1
  279. package/types/FloatingPanel/panelWidth.d.ts +71 -0
  280. package/types/FloatingPanel/panelWidth.d.ts.map +1 -0
  281. package/types/FloatingPanel/pointAnchor.d.ts +8 -1
  282. package/types/FloatingPanel/pointAnchor.d.ts.map +1 -1
  283. package/types/FloatingPanel/useFloatingPanel.d.ts +33 -2
  284. package/types/FloatingPanel/useFloatingPanel.d.ts.map +1 -1
  285. package/types/InputParts/index.d.ts +5 -1
  286. package/types/InputParts/index.d.ts.map +1 -1
  287. package/types/Wheel/index.d.ts.map +1 -1
  288. package/types/Wheel/wheelShared.d.ts +2 -1
  289. package/types/Wheel/wheelShared.d.ts.map +1 -1
  290. package/types/fields/Combobox/index.d.ts.map +1 -1
  291. package/types/fields/DatePicker/DatetimePicker.catalog.d.ts +6 -0
  292. package/types/fields/DatePicker/DatetimePicker.catalog.d.ts.map +1 -1
  293. package/types/fields/DatePicker/DatetimePicker.native.d.ts +3 -0
  294. package/types/fields/DatePicker/DatetimePicker.native.d.ts.map +1 -1
  295. package/types/fields/DatePicker/catalog.d.ts +6 -0
  296. package/types/fields/DatePicker/catalog.d.ts.map +1 -1
  297. package/types/fields/DatePicker/index.native.d.ts +3 -0
  298. package/types/fields/DatePicker/index.native.d.ts.map +1 -1
  299. package/types/fields/DatePicker/parts.d.ts +5 -7
  300. package/types/fields/DatePicker/parts.d.ts.map +1 -1
  301. package/types/fields/Input/index.d.ts +3 -1
  302. package/types/fields/Input/index.d.ts.map +1 -1
  303. package/types/fields/SearchInput/index.d.ts +11 -0
  304. package/types/fields/SearchInput/index.d.ts.map +1 -1
  305. package/types/fields/Select/index.d.ts +8 -1
  306. package/types/fields/Select/index.d.ts.map +1 -1
  307. package/types/fields/Select/shouldInlineChoices.d.ts +5 -1
  308. package/types/fields/Select/shouldInlineChoices.d.ts.map +1 -1
  309. package/types/fields/TimePicker/catalog.d.ts +7 -1
  310. package/types/fields/TimePicker/catalog.d.ts.map +1 -1
  311. package/types/fields/TimePicker/index.native.d.ts +2 -0
  312. package/types/fields/TimePicker/index.native.d.ts.map +1 -1
  313. package/types/fields/TimePicker/parts.d.ts +1 -3
  314. package/types/fields/TimePicker/parts.d.ts.map +1 -1
  315. package/types/index.d.ts +1 -0
  316. package/types/index.d.ts.map +1 -1
  317. package/types/shared/floatingList.d.ts +5 -1
  318. package/types/shared/floatingList.d.ts.map +1 -1
  319. package/dist/cjs/shared/touchWebPicker.cjs +0 -136
  320. package/dist/cjs/shared/touchWebPicker.native.js +0 -154
  321. package/dist/cjs/shared/touchWebPicker.native.js.map +0 -1
  322. package/dist/esm/shared/touchWebPicker.mjs +0 -105
  323. package/dist/esm/shared/touchWebPicker.mjs.map +0 -1
  324. package/dist/esm/shared/touchWebPicker.native.js +0 -120
  325. package/dist/esm/shared/touchWebPicker.native.js.map +0 -1
  326. package/dist/jsx/shared/touchWebPicker.mjs +0 -105
  327. package/dist/jsx/shared/touchWebPicker.mjs.map +0 -1
  328. package/dist/jsx/shared/touchWebPicker.native.js +0 -154
  329. package/dist/jsx/shared/touchWebPicker.native.js.map +0 -1
  330. package/src/shared/touchWebPicker.spec.ts +0 -98
  331. package/src/shared/touchWebPicker.tsx +0 -158
  332. package/types/shared/touchWebPicker.d.ts +0 -40
  333. package/types/shared/touchWebPicker.d.ts.map +0 -1
@@ -1,105 +0,0 @@
1
- import { formatCalendarDate, parseCalendarDate } from "@multiplatform.one/theme";
2
- import { useSyncExternalStore } from "react";
3
- import { isWeb } from "tamagui";
4
- import { jsx } from "react/jsx-runtime";
5
- const coarsePointerQuery = "(pointer: coarse)";
6
- function coarsePointerList() {
7
- if (!isWeb || typeof window === "undefined" || typeof window.matchMedia !== "function") {
8
- return null;
9
- }
10
- return window.matchMedia(coarsePointerQuery);
11
- }
12
- function subscribeCoarsePointer(onChange) {
13
- const list = coarsePointerList();
14
- if (!list) return () => {};
15
- if (typeof list.addEventListener === "function") {
16
- list.addEventListener("change", onChange);
17
- return () => list.removeEventListener("change", onChange);
18
- }
19
- list.addListener?.(onChange);
20
- return () => list.removeListener?.(onChange);
21
- }
22
- function readCoarsePointer() {
23
- return coarsePointerList()?.matches ?? false;
24
- }
25
- function useCoarsePointer() {
26
- return useSyncExternalStore(subscribeCoarsePointer, readCoarsePointer, () => false);
27
- }
28
- function toDateInputValue(value) {
29
- return value ? formatCalendarDate(value, "date") : "";
30
- }
31
- function toDatetimeLocalValue(value, showSeconds) {
32
- if (!value) return "";
33
- const wire = formatCalendarDate(value, "datetime").replace(" ", "T");
34
- return showSeconds ? wire : wire.slice(0, 16);
35
- }
36
- function fromNativeDateValue(value) {
37
- return parseCalendarDate(value);
38
- }
39
- const nativeTimePattern = /^([01]\d|2[0-3]):([0-5]\d)(?::([0-5]\d)(?:\.\d+)?)?$/;
40
- function fromTimeInputValue(value, showSeconds) {
41
- const match = value.trim().replace(/^(\d):/, "0$1:").match(nativeTimePattern);
42
- if (!match) return "";
43
- const base = `${match[1]}:${match[2]}`;
44
- return showSeconds ? `${base}:${match[3] ?? "00"}` : base;
45
- }
46
- function toTimeInputValue(value, showSeconds) {
47
- return fromTimeInputValue(value ?? "", showSeconds);
48
- }
49
- const overlayStyle = {
50
- position: "absolute",
51
- top: 0,
52
- left: 0,
53
- width: "100%",
54
- height: "100%",
55
- margin: 0,
56
- padding: 0,
57
- border: 0,
58
- opacity: 0,
59
- // iOS Safari zooms the page into a focused input under 16px.
60
- fontSize: 16,
61
- cursor: "pointer",
62
- zIndex: 1,
63
- WebkitAppearance: "none",
64
- appearance: "none"
65
- };
66
- function TouchWebPickerInput({
67
- kind,
68
- value,
69
- onValue,
70
- onBlur,
71
- id,
72
- min,
73
- max,
74
- showSeconds,
75
- disabled,
76
- required,
77
- invalid,
78
- "aria-label": ariaLabel,
79
- "aria-describedby": ariaDescribedBy
80
- }) {
81
- return /* @__PURE__ */jsx("input", {
82
- type: kind,
83
- id,
84
- value,
85
- min: min || void 0,
86
- max: max || void 0,
87
- step: showSeconds ? 1 : void 0,
88
- disabled,
89
- required,
90
- "aria-label": ariaLabel,
91
- "aria-describedby": ariaDescribedBy,
92
- "aria-invalid": invalid || void 0,
93
- "data-testid": "touch-web-picker",
94
- style: overlayStyle,
95
- onChange: event => onValue(event.currentTarget.value),
96
- onBlur,
97
- onClick: event => {
98
- try {
99
- event.currentTarget.showPicker?.();
100
- } catch {}
101
- }
102
- });
103
- }
104
- export { TouchWebPickerInput, fromNativeDateValue, fromTimeInputValue, toDateInputValue, toDatetimeLocalValue, toTimeInputValue, useCoarsePointer };
105
- //# sourceMappingURL=touchWebPicker.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["formatCalendarDate","parseCalendarDate","useSyncExternalStore","isWeb","jsx","coarsePointerQuery","coarsePointerList","window","matchMedia","subscribeCoarsePointer","onChange","list","addEventListener","removeEventListener","addListener","removeListener","readCoarsePointer","matches","useCoarsePointer","toDateInputValue","value","toDatetimeLocalValue","showSeconds","wire","replace","slice","fromNativeDateValue","nativeTimePattern","fromTimeInputValue","match","trim","base","toTimeInputValue","overlayStyle","position","top","left","width","height","margin","padding","border","opacity","fontSize","cursor","zIndex","WebkitAppearance","appearance","TouchWebPickerInput","kind","onValue","onBlur","id","min","max","disabled","required","invalid","ariaLabel","ariaDescribedBy","type","step","style","event","currentTarget","onClick","showPicker"],"sources":["../../../src/shared/touchWebPicker.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,120 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { formatCalendarDate, parseCalendarDate } from "@multiplatform.one/theme";
3
- import { useSyncExternalStore } from "react";
4
- import { isWeb } from "tamagui";
5
- var coarsePointerQuery = "(pointer: coarse)";
6
- function coarsePointerList() {
7
- if (!isWeb || typeof window === "undefined" || typeof window.matchMedia !== "function") {
8
- return null;
9
- }
10
- return window.matchMedia(coarsePointerQuery);
11
- }
12
- function subscribeCoarsePointer(onChange) {
13
- var _list_addListener;
14
- var list = coarsePointerList();
15
- if (!list) return function () {};
16
- if (typeof list.addEventListener === "function") {
17
- list.addEventListener("change", onChange);
18
- return function () {
19
- return list.removeEventListener("change", onChange);
20
- };
21
- }
22
- (_list_addListener = list.addListener) === null || _list_addListener === void 0 ? void 0 : _list_addListener.call(list, onChange);
23
- return function () {
24
- var _list_removeListener;
25
- return (_list_removeListener = list.removeListener) === null || _list_removeListener === void 0 ? void 0 : _list_removeListener.call(list, onChange);
26
- };
27
- }
28
- function readCoarsePointer() {
29
- var _ref;
30
- var _coarsePointerList;
31
- return (_ref = (_coarsePointerList = coarsePointerList()) === null || _coarsePointerList === void 0 ? void 0 : _coarsePointerList.matches) !== null && _ref !== void 0 ? _ref : false;
32
- }
33
- function useCoarsePointer() {
34
- return useSyncExternalStore(subscribeCoarsePointer, readCoarsePointer, function () {
35
- return false;
36
- });
37
- }
38
- function toDateInputValue(value) {
39
- return value ? formatCalendarDate(value, "date") : "";
40
- }
41
- function toDatetimeLocalValue(value, showSeconds) {
42
- if (!value) return "";
43
- var wire = formatCalendarDate(value, "datetime").replace(" ", "T");
44
- return showSeconds ? wire : wire.slice(0, 16);
45
- }
46
- function fromNativeDateValue(value) {
47
- return parseCalendarDate(value);
48
- }
49
- var nativeTimePattern = /^([01]\d|2[0-3]):([0-5]\d)(?::([0-5]\d)(?:\.\d+)?)?$/;
50
- function fromTimeInputValue(value, showSeconds) {
51
- var _match_;
52
- var match = value.trim().replace(/^(\d):/, "0$1:").match(nativeTimePattern);
53
- if (!match) return "";
54
- var base = `${match[1]}:${match[2]}`;
55
- return showSeconds ? `${base}:${(_match_ = match[3]) !== null && _match_ !== void 0 ? _match_ : "00"}` : base;
56
- }
57
- function toTimeInputValue(value, showSeconds) {
58
- return fromTimeInputValue(value !== null && value !== void 0 ? value : "", showSeconds);
59
- }
60
- var overlayStyle = {
61
- position: "absolute",
62
- top: 0,
63
- left: 0,
64
- width: "100%",
65
- height: "100%",
66
- margin: 0,
67
- padding: 0,
68
- border: 0,
69
- opacity: 0,
70
- // iOS Safari zooms the page into a focused input under 16px.
71
- fontSize: 16,
72
- cursor: "pointer",
73
- zIndex: 1,
74
- WebkitAppearance: "none",
75
- appearance: "none"
76
- };
77
- function TouchWebPickerInput(param) {
78
- var {
79
- kind,
80
- value,
81
- onValue,
82
- onBlur,
83
- id,
84
- min,
85
- max,
86
- showSeconds,
87
- disabled,
88
- required,
89
- invalid,
90
- "aria-label": ariaLabel,
91
- "aria-describedby": ariaDescribedBy
92
- } = param;
93
- return /* @__PURE__ */_jsx("input", {
94
- type: kind,
95
- id,
96
- value,
97
- min: min || void 0,
98
- max: max || void 0,
99
- step: showSeconds ? 1 : void 0,
100
- disabled,
101
- required,
102
- "aria-label": ariaLabel,
103
- "aria-describedby": ariaDescribedBy,
104
- "aria-invalid": invalid || void 0,
105
- "data-testid": "touch-web-picker",
106
- style: overlayStyle,
107
- onChange: function onChange(event) {
108
- return onValue(event.currentTarget.value);
109
- },
110
- onBlur,
111
- onClick: function onClick(event) {
112
- try {
113
- var _event_currentTarget_showPicker, _event_currentTarget;
114
- (_event_currentTarget_showPicker = (_event_currentTarget = event.currentTarget).showPicker) === null || _event_currentTarget_showPicker === void 0 ? void 0 : _event_currentTarget_showPicker.call(_event_currentTarget);
115
- } catch (unused) {}
116
- }
117
- });
118
- }
119
- export { TouchWebPickerInput, fromNativeDateValue, fromTimeInputValue, toDateInputValue, toDatetimeLocalValue, toTimeInputValue, useCoarsePointer };
120
- //# sourceMappingURL=touchWebPicker.native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["jsx","_jsx","formatCalendarDate","parseCalendarDate","useSyncExternalStore","isWeb","coarsePointerQuery","coarsePointerList","window","matchMedia","subscribeCoarsePointer","onChange","_list_addListener","list","addEventListener","removeEventListener","addListener","call","_list_removeListener","removeListener","readCoarsePointer","_ref","_coarsePointerList","matches","useCoarsePointer","toDateInputValue","value","toDatetimeLocalValue","showSeconds","wire","replace","slice","fromNativeDateValue","nativeTimePattern","fromTimeInputValue","_match_","match","trim","base","toTimeInputValue","overlayStyle","position","top","left","width","height","margin","padding","border","opacity","fontSize","cursor","zIndex","WebkitAppearance","appearance","TouchWebPickerInput","param","kind","onValue","onBlur","id","min","max","disabled","required","invalid","ariaLabel","ariaDescribedBy","type","step","style","event","currentTarget","onClick","_event_currentTarget_showPicker","_event_currentTarget","showPicker","unused"],"sources":["../../../src/shared/touchWebPicker.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,105 +0,0 @@
1
- import { formatCalendarDate, parseCalendarDate } from "@multiplatform.one/theme";
2
- import { useSyncExternalStore } from "react";
3
- import { isWeb } from "tamagui";
4
- import { jsx } from "react/jsx-runtime";
5
- const coarsePointerQuery = "(pointer: coarse)";
6
- function coarsePointerList() {
7
- if (!isWeb || typeof window === "undefined" || typeof window.matchMedia !== "function") {
8
- return null;
9
- }
10
- return window.matchMedia(coarsePointerQuery);
11
- }
12
- function subscribeCoarsePointer(onChange) {
13
- const list = coarsePointerList();
14
- if (!list) return () => {};
15
- if (typeof list.addEventListener === "function") {
16
- list.addEventListener("change", onChange);
17
- return () => list.removeEventListener("change", onChange);
18
- }
19
- list.addListener?.(onChange);
20
- return () => list.removeListener?.(onChange);
21
- }
22
- function readCoarsePointer() {
23
- return coarsePointerList()?.matches ?? false;
24
- }
25
- function useCoarsePointer() {
26
- return useSyncExternalStore(subscribeCoarsePointer, readCoarsePointer, () => false);
27
- }
28
- function toDateInputValue(value) {
29
- return value ? formatCalendarDate(value, "date") : "";
30
- }
31
- function toDatetimeLocalValue(value, showSeconds) {
32
- if (!value) return "";
33
- const wire = formatCalendarDate(value, "datetime").replace(" ", "T");
34
- return showSeconds ? wire : wire.slice(0, 16);
35
- }
36
- function fromNativeDateValue(value) {
37
- return parseCalendarDate(value);
38
- }
39
- const nativeTimePattern = /^([01]\d|2[0-3]):([0-5]\d)(?::([0-5]\d)(?:\.\d+)?)?$/;
40
- function fromTimeInputValue(value, showSeconds) {
41
- const match = value.trim().replace(/^(\d):/, "0$1:").match(nativeTimePattern);
42
- if (!match) return "";
43
- const base = `${match[1]}:${match[2]}`;
44
- return showSeconds ? `${base}:${match[3] ?? "00"}` : base;
45
- }
46
- function toTimeInputValue(value, showSeconds) {
47
- return fromTimeInputValue(value ?? "", showSeconds);
48
- }
49
- const overlayStyle = {
50
- position: "absolute",
51
- top: 0,
52
- left: 0,
53
- width: "100%",
54
- height: "100%",
55
- margin: 0,
56
- padding: 0,
57
- border: 0,
58
- opacity: 0,
59
- // iOS Safari zooms the page into a focused input under 16px.
60
- fontSize: 16,
61
- cursor: "pointer",
62
- zIndex: 1,
63
- WebkitAppearance: "none",
64
- appearance: "none"
65
- };
66
- function TouchWebPickerInput({
67
- kind,
68
- value,
69
- onValue,
70
- onBlur,
71
- id,
72
- min,
73
- max,
74
- showSeconds,
75
- disabled,
76
- required,
77
- invalid,
78
- "aria-label": ariaLabel,
79
- "aria-describedby": ariaDescribedBy
80
- }) {
81
- return /* @__PURE__ */jsx("input", {
82
- type: kind,
83
- id,
84
- value,
85
- min: min || void 0,
86
- max: max || void 0,
87
- step: showSeconds ? 1 : void 0,
88
- disabled,
89
- required,
90
- "aria-label": ariaLabel,
91
- "aria-describedby": ariaDescribedBy,
92
- "aria-invalid": invalid || void 0,
93
- "data-testid": "touch-web-picker",
94
- style: overlayStyle,
95
- onChange: event => onValue(event.currentTarget.value),
96
- onBlur,
97
- onClick: event => {
98
- try {
99
- event.currentTarget.showPicker?.();
100
- } catch {}
101
- }
102
- });
103
- }
104
- export { TouchWebPickerInput, fromNativeDateValue, fromTimeInputValue, toDateInputValue, toDatetimeLocalValue, toTimeInputValue, useCoarsePointer };
105
- //# sourceMappingURL=touchWebPicker.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["formatCalendarDate","parseCalendarDate","useSyncExternalStore","isWeb","jsx","coarsePointerQuery","coarsePointerList","window","matchMedia","subscribeCoarsePointer","onChange","list","addEventListener","removeEventListener","addListener","removeListener","readCoarsePointer","matches","useCoarsePointer","toDateInputValue","value","toDatetimeLocalValue","showSeconds","wire","replace","slice","fromNativeDateValue","nativeTimePattern","fromTimeInputValue","match","trim","base","toTimeInputValue","overlayStyle","position","top","left","width","height","margin","padding","border","opacity","fontSize","cursor","zIndex","WebkitAppearance","appearance","TouchWebPickerInput","kind","onValue","onBlur","id","min","max","disabled","required","invalid","ariaLabel","ariaDescribedBy","type","step","style","event","currentTarget","onClick","showPicker"],"sources":["../../../src/shared/touchWebPicker.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,154 +0,0 @@
1
- "use strict";
2
-
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all) __defProp(target, name, {
9
- get: all[name],
10
- enumerable: true
11
- });
12
- };
13
- var __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from === "object" || typeof from === "function") {
15
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
- get: () => from[key],
17
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
- });
19
- }
20
- return to;
21
- };
22
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
- value: true
24
- }), mod);
25
- var touchWebPicker_exports = {};
26
- __export(touchWebPicker_exports, {
27
- TouchWebPickerInput: () => TouchWebPickerInput,
28
- fromNativeDateValue: () => fromNativeDateValue,
29
- fromTimeInputValue: () => fromTimeInputValue,
30
- toDateInputValue: () => toDateInputValue,
31
- toDatetimeLocalValue: () => toDatetimeLocalValue,
32
- toTimeInputValue: () => toTimeInputValue,
33
- useCoarsePointer: () => useCoarsePointer
34
- });
35
- module.exports = __toCommonJS(touchWebPicker_exports);
36
- var import_jsx_runtime = require("react/jsx-runtime");
37
- var import_theme = require("@multiplatform.one/theme");
38
- var import_react = require("react");
39
- var import_tamagui = require("tamagui");
40
- var coarsePointerQuery = "(pointer: coarse)";
41
- function coarsePointerList() {
42
- if (!import_tamagui.isWeb || typeof window === "undefined" || typeof window.matchMedia !== "function") {
43
- return null;
44
- }
45
- return window.matchMedia(coarsePointerQuery);
46
- }
47
- function subscribeCoarsePointer(onChange) {
48
- var _list_addListener;
49
- var list = coarsePointerList();
50
- if (!list) return function () {};
51
- if (typeof list.addEventListener === "function") {
52
- list.addEventListener("change", onChange);
53
- return function () {
54
- return list.removeEventListener("change", onChange);
55
- };
56
- }
57
- (_list_addListener = list.addListener) === null || _list_addListener === void 0 ? void 0 : _list_addListener.call(list, onChange);
58
- return function () {
59
- var _list_removeListener;
60
- return (_list_removeListener = list.removeListener) === null || _list_removeListener === void 0 ? void 0 : _list_removeListener.call(list, onChange);
61
- };
62
- }
63
- function readCoarsePointer() {
64
- var _ref;
65
- var _coarsePointerList;
66
- return (_ref = (_coarsePointerList = coarsePointerList()) === null || _coarsePointerList === void 0 ? void 0 : _coarsePointerList.matches) !== null && _ref !== void 0 ? _ref : false;
67
- }
68
- function useCoarsePointer() {
69
- return (0, import_react.useSyncExternalStore)(subscribeCoarsePointer, readCoarsePointer, function () {
70
- return false;
71
- });
72
- }
73
- function toDateInputValue(value) {
74
- return value ? (0, import_theme.formatCalendarDate)(value, "date") : "";
75
- }
76
- function toDatetimeLocalValue(value, showSeconds) {
77
- if (!value) return "";
78
- var wire = (0, import_theme.formatCalendarDate)(value, "datetime").replace(" ", "T");
79
- return showSeconds ? wire : wire.slice(0, 16);
80
- }
81
- function fromNativeDateValue(value) {
82
- return (0, import_theme.parseCalendarDate)(value);
83
- }
84
- var nativeTimePattern = /^([01]\d|2[0-3]):([0-5]\d)(?::([0-5]\d)(?:\.\d+)?)?$/;
85
- function fromTimeInputValue(value, showSeconds) {
86
- var _match_;
87
- var match = value.trim().replace(/^(\d):/, "0$1:").match(nativeTimePattern);
88
- if (!match) return "";
89
- var base = `${match[1]}:${match[2]}`;
90
- return showSeconds ? `${base}:${(_match_ = match[3]) !== null && _match_ !== void 0 ? _match_ : "00"}` : base;
91
- }
92
- function toTimeInputValue(value, showSeconds) {
93
- return fromTimeInputValue(value !== null && value !== void 0 ? value : "", showSeconds);
94
- }
95
- var overlayStyle = {
96
- position: "absolute",
97
- top: 0,
98
- left: 0,
99
- width: "100%",
100
- height: "100%",
101
- margin: 0,
102
- padding: 0,
103
- border: 0,
104
- opacity: 0,
105
- // iOS Safari zooms the page into a focused input under 16px.
106
- fontSize: 16,
107
- cursor: "pointer",
108
- zIndex: 1,
109
- WebkitAppearance: "none",
110
- appearance: "none"
111
- };
112
- function TouchWebPickerInput(param) {
113
- var {
114
- kind,
115
- value,
116
- onValue,
117
- onBlur,
118
- id,
119
- min,
120
- max,
121
- showSeconds,
122
- disabled,
123
- required,
124
- invalid,
125
- "aria-label": ariaLabel,
126
- "aria-describedby": ariaDescribedBy
127
- } = param;
128
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)("input", {
129
- type: kind,
130
- id,
131
- value,
132
- min: min || void 0,
133
- max: max || void 0,
134
- step: showSeconds ? 1 : void 0,
135
- disabled,
136
- required,
137
- "aria-label": ariaLabel,
138
- "aria-describedby": ariaDescribedBy,
139
- "aria-invalid": invalid || void 0,
140
- "data-testid": "touch-web-picker",
141
- style: overlayStyle,
142
- onChange: function onChange(event) {
143
- return onValue(event.currentTarget.value);
144
- },
145
- onBlur,
146
- onClick: function onClick(event) {
147
- try {
148
- var _event_currentTarget_showPicker, _event_currentTarget;
149
- (_event_currentTarget_showPicker = (_event_currentTarget = event.currentTarget).showPicker) === null || _event_currentTarget_showPicker === void 0 ? void 0 : _event_currentTarget_showPicker.call(_event_currentTarget);
150
- } catch (unused) {}
151
- }
152
- });
153
- }
154
- //# sourceMappingURL=touchWebPicker.native.js.map
@@ -1 +0,0 @@
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","touchWebPicker_exports","TouchWebPickerInput","fromNativeDateValue","fromTimeInputValue","toDateInputValue","toDatetimeLocalValue","toTimeInputValue","useCoarsePointer","module","exports","import_jsx_runtime","require","import_theme","import_react","import_tamagui","coarsePointerQuery","coarsePointerList","isWeb","window","matchMedia","subscribeCoarsePointer","onChange","_list_addListener","list","addEventListener","removeEventListener","addListener","_list_removeListener","removeListener","readCoarsePointer","_ref","_coarsePointerList","matches","useSyncExternalStore","formatCalendarDate","showSeconds","wire","replace","slice","parseCalendarDate","nativeTimePattern","_match_","match","trim","base","overlayStyle","position","top","left","width","height","margin","padding","border","opacity","fontSize","cursor","zIndex","WebkitAppearance","appearance","param","kind","onValue","onBlur","id","min","max","disabled","required","invalid","ariaLabel","ariaDescribedBy"],"sources":["../../../src/shared/touchWebPicker.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,98 +0,0 @@
1
- /**
2
- * FZ-8114 value contract for the touch-web picker inputs, across timezones.
3
- * The browser speaks timezone-naive strings; the MPO calendar speaks local
4
- * Dates. Each zone below must map one onto the other without a day or hour
5
- * shift. The negative control (the UTC-instant formulation) has to FAIL in
6
- * some zone, so a host that stopped honouring TZ cannot pass this vacuously.
7
- */
8
- import { formatCalendarDate } from "@multiplatform.one/theme";
9
- import { describe, expect, it } from "vitest";
10
- import {
11
- fromNativeDateValue,
12
- fromTimeInputValue,
13
- toDateInputValue,
14
- toDatetimeLocalValue,
15
- toTimeInputValue,
16
- } from "./touchWebPicker";
17
-
18
- const zones = [
19
- "UTC",
20
- "America/Los_Angeles",
21
- "America/St_Johns",
22
- "Asia/Kolkata",
23
- "Pacific/Kiritimati",
24
- ] as const;
25
-
26
- function inZone<T>(timeZone: string, read: () => T): T {
27
- const previous = process.env.TZ;
28
- process.env.TZ = timeZone;
29
- try {
30
- return read();
31
- } finally {
32
- if (previous === undefined) delete process.env.TZ;
33
- else process.env.TZ = previous;
34
- }
35
- }
36
-
37
- describe("touch-web picker values (FZ-8114)", () => {
38
- it("the zones really differ on this host", () => {
39
- const offsets = new Set(
40
- zones.map((zone) => inZone(zone, () => new Date(2026, 2, 5).getTimezoneOffset())),
41
- );
42
- expect(offsets.size).toBe(zones.length);
43
- });
44
-
45
- for (const zone of zones) {
46
- describe(zone, () => {
47
- it("date: the calendar's local midnight and the input string round-trip", () => {
48
- inZone(zone, () => {
49
- const picked = new Date(2026, 2, 5);
50
- expect(toDateInputValue(picked)).toBe("2026-03-05");
51
- const back = fromNativeDateValue("2026-03-05");
52
- expect(back?.getTime()).toBe(picked.getTime());
53
- expect(formatCalendarDate(back, "date")).toBe("2026-03-05");
54
- });
55
- });
56
-
57
- it("datetime: the local wall clock and the datetime-local string round-trip", () => {
58
- inZone(zone, () => {
59
- const picked = new Date(2026, 7, 15, 23, 45, 30);
60
- expect(toDatetimeLocalValue(picked, false)).toBe("2026-08-15T23:45");
61
- expect(toDatetimeLocalValue(picked, true)).toBe("2026-08-15T23:45:30");
62
- const back = fromNativeDateValue("2026-08-15T23:45");
63
- expect(back?.getTime()).toBe(new Date(2026, 7, 15, 23, 45, 0).getTime());
64
- expect(formatCalendarDate(back, "datetime")).toBe("2026-08-15 23:45:00");
65
- const withSeconds = fromNativeDateValue("2026-08-15T23:45:30");
66
- expect(withSeconds?.getTime()).toBe(picked.getTime());
67
- });
68
- });
69
- });
70
- }
71
-
72
- it("negative control: the UTC instant names the wrong day in some zone", () => {
73
- const wrong = zones.filter((zone) =>
74
- inZone(zone, () => new Date(2026, 7, 15).toISOString().slice(0, 10) !== "2026-08-15"),
75
- );
76
- expect(wrong.length).toBeGreaterThan(0);
77
- });
78
-
79
- it("empty and unparseable input clears", () => {
80
- expect(toDateInputValue(null)).toBe("");
81
- expect(toDatetimeLocalValue(undefined, true)).toBe("");
82
- expect(fromNativeDateValue("")).toBeNull();
83
- expect(fromNativeDateValue("2026-13-45")).toBeNull();
84
- });
85
-
86
- it("time: the input string normalises to the string TimePicker's wheels emit", () => {
87
- expect(fromTimeInputValue("14:30", false)).toBe("14:30");
88
- expect(fromTimeInputValue("14:30", true)).toBe("14:30:00");
89
- expect(fromTimeInputValue("14:30:15", false)).toBe("14:30");
90
- expect(fromTimeInputValue("14:30:15.250", true)).toBe("14:30:15");
91
- expect(fromTimeInputValue("9:05", false)).toBe("09:05");
92
- expect(fromTimeInputValue("", false)).toBe("");
93
- expect(fromTimeInputValue("25:00", false)).toBe("");
94
- expect(toTimeInputValue("08:00:00", false)).toBe("08:00");
95
- expect(toTimeInputValue("08:00", true)).toBe("08:00:00");
96
- expect(toTimeInputValue(undefined, false)).toBe("");
97
- });
98
- });