@multiplatform.one/forms 7.6.3 → 7.7.1

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 (845) hide show
  1. package/dist/cjs/AdaptivePopup/index.native.js +1 -1
  2. package/dist/cjs/AdaptivePopup/index.native.js.map +1 -1
  3. package/dist/cjs/Button/index.cjs +8 -2
  4. package/dist/cjs/Button/index.native.js +14 -3
  5. package/dist/cjs/Button/index.native.js.map +1 -1
  6. package/dist/cjs/Chip/index.cjs +1 -3
  7. package/dist/cjs/Chip/index.native.js +5 -3
  8. package/dist/cjs/Chip/index.native.js.map +1 -1
  9. package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.native.js +1 -1
  10. package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -1
  11. package/dist/cjs/ContextualSaveBar/clientKnownIdentity.native.js.map +1 -1
  12. package/dist/cjs/ContextualSaveBar/commitImmediateField.native.js.map +1 -1
  13. package/dist/cjs/ContextualSaveBar/index.cjs +19 -3
  14. package/dist/cjs/ContextualSaveBar/index.native.js +22 -6
  15. package/dist/cjs/ContextualSaveBar/index.native.js.map +1 -1
  16. package/dist/cjs/ContextualSaveBar/useUnsavedChangesGuard.native.js.map +1 -1
  17. package/dist/cjs/ControlGroup/index.native.js +1 -1
  18. package/dist/cjs/ControlGroup/index.native.js.map +1 -1
  19. package/dist/cjs/DescriptionList/index.cjs +41 -13
  20. package/dist/cjs/DescriptionList/index.native.js +45 -15
  21. package/dist/cjs/DescriptionList/index.native.js.map +1 -1
  22. package/dist/cjs/ErrorSummary.cjs +4 -1
  23. package/dist/cjs/ErrorSummary.native.js +4 -1
  24. package/dist/cjs/ErrorSummary.native.js.map +1 -1
  25. package/dist/cjs/FieldDisplay/editMode.native.js.map +1 -1
  26. package/dist/cjs/FieldDisplay/formatters.native.js.map +1 -1
  27. package/dist/cjs/FieldDisplay/index.native.js +1 -1
  28. package/dist/cjs/FieldDisplay/index.native.js.map +1 -1
  29. package/dist/cjs/FieldGroup.native.js.map +1 -1
  30. package/dist/cjs/FloatingPanel/useFloatingPanel.cjs +24 -2
  31. package/dist/cjs/FloatingPanel/useFloatingPanel.native.js +43 -2
  32. package/dist/cjs/FloatingPanel/useFloatingPanel.native.js.map +1 -1
  33. package/dist/cjs/Form/index.native.js +1 -1
  34. package/dist/cjs/Form/index.native.js.map +1 -1
  35. package/dist/cjs/Form/validateOn.native.js.map +1 -1
  36. package/dist/cjs/FormGrid.native.js.map +1 -1
  37. package/dist/cjs/FormSection.native.js.map +1 -1
  38. package/dist/cjs/InputParts/index.cjs +42 -2
  39. package/dist/cjs/InputParts/index.native.js +42 -2
  40. package/dist/cjs/InputParts/index.native.js.map +1 -1
  41. package/dist/cjs/Label/index.native.js.map +1 -1
  42. package/dist/cjs/Skeleton/index.native.js.map +1 -1
  43. package/dist/cjs/Spinner/SpinnerGlyph.native.js.map +1 -1
  44. package/dist/cjs/Spinner/spinnerSize.native.js.map +1 -1
  45. package/dist/cjs/Table/index.native.js.map +1 -1
  46. package/dist/cjs/Wheel/haptic.native.js.map +1 -1
  47. package/dist/cjs/Wheel/index.native.js.map +1 -1
  48. package/dist/cjs/actionLabel.native.js.map +1 -1
  49. package/dist/cjs/fieldDefaults.native.js.map +1 -1
  50. package/dist/cjs/fieldLayout.native.js +1 -1
  51. package/dist/cjs/fieldLayout.native.js.map +1 -1
  52. package/dist/cjs/fields/Barcode/BarcodePreview.native.js.map +1 -1
  53. package/dist/cjs/fields/Barcode/BarcodeScanner.native.js +1 -1
  54. package/dist/cjs/fields/Barcode/code128.native.js.map +1 -1
  55. package/dist/cjs/fields/Barcode/index.native.js +2 -2
  56. package/dist/cjs/fields/Barcode/index.native.js.map +1 -1
  57. package/dist/cjs/fields/Barcode/qr.native.js.map +1 -1
  58. package/dist/cjs/fields/Barcode/scannerTypes.native.js.map +1 -1
  59. package/dist/cjs/fields/Checkbox/Checkbox.cjs +5 -2
  60. package/dist/cjs/fields/Checkbox/Checkbox.native.js +7 -4
  61. package/dist/cjs/fields/Checkbox/Checkbox.native.js.map +1 -1
  62. package/dist/cjs/fields/Checkbox/CheckboxBox.native.js.map +1 -1
  63. package/dist/cjs/fields/Checkbox/CheckboxCard.native.js.map +1 -1
  64. package/dist/cjs/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
  65. package/dist/cjs/fields/Checkbox/CheckboxGroup.cjs +69 -59
  66. package/dist/cjs/fields/Checkbox/CheckboxGroup.native.js +76 -66
  67. package/dist/cjs/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
  68. package/dist/cjs/fields/Checkbox/checkboxGroupContext.cjs +33 -0
  69. package/dist/cjs/fields/Checkbox/checkboxGroupContext.native.js +36 -0
  70. package/dist/cjs/fields/Checkbox/checkboxGroupContext.native.js.map +1 -0
  71. package/dist/cjs/fields/Checkbox/index.native.js.map +1 -1
  72. package/dist/cjs/fields/ColorPicker/index.native.js +3 -3
  73. package/dist/cjs/fields/ColorPicker/index.native.js.map +1 -1
  74. package/dist/cjs/fields/ColorPicker/parts.native.js +2 -2
  75. package/dist/cjs/fields/ColorPicker/parts.native.js.map +1 -1
  76. package/dist/cjs/fields/Combobox/authorOptions.native.js.map +1 -1
  77. package/dist/cjs/fields/Combobox/index.native.js +5 -5
  78. package/dist/cjs/fields/Combobox/index.native.js.map +1 -1
  79. package/dist/cjs/fields/DatePicker/Calendar.native.js.map +1 -1
  80. package/dist/cjs/fields/DatePicker/DateRangePicker.native.js +2 -2
  81. package/dist/cjs/fields/DatePicker/DateRangePicker.native.js.map +1 -1
  82. package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.cjs +402 -0
  83. package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js +441 -0
  84. package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -0
  85. package/dist/cjs/fields/DatePicker/DatetimePicker.cjs +2 -376
  86. package/dist/cjs/fields/DatePicker/DatetimePicker.native.js +70 -298
  87. package/dist/cjs/fields/DatePicker/DatetimePicker.native.js.map +1 -1
  88. package/dist/cjs/fields/DatePicker/MonthPicker.native.js +2 -2
  89. package/dist/cjs/fields/DatePicker/MonthPicker.native.js.map +1 -1
  90. package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js +2 -2
  91. package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
  92. package/dist/cjs/fields/DatePicker/catalog.cjs +306 -0
  93. package/dist/cjs/fields/DatePicker/catalog.native.js +350 -0
  94. package/dist/cjs/fields/DatePicker/catalog.native.js.map +1 -0
  95. package/dist/cjs/fields/DatePicker/fieldValueSync.native.js.map +1 -1
  96. package/dist/cjs/fields/DatePicker/index.cjs +7 -280
  97. package/dist/cjs/fields/DatePicker/index.native.js +67 -186
  98. package/dist/cjs/fields/DatePicker/index.native.js.map +1 -1
  99. package/dist/cjs/fields/DatePicker/parts.cjs +12 -9
  100. package/dist/cjs/fields/DatePicker/parts.native.js +14 -11
  101. package/dist/cjs/fields/DatePicker/parts.native.js.map +1 -1
  102. package/dist/cjs/fields/DatePicker/utils.native.js.map +1 -1
  103. package/dist/cjs/fields/Duration/durationMath.native.js.map +1 -1
  104. package/dist/cjs/fields/Duration/index.cjs +29 -3
  105. package/dist/cjs/fields/Duration/index.native.js +32 -6
  106. package/dist/cjs/fields/Duration/index.native.js.map +1 -1
  107. package/dist/cjs/fields/FileUpload/filePickerTypes.native.js.map +1 -1
  108. package/dist/cjs/fields/FileUpload/index.cjs +0 -1
  109. package/dist/cjs/fields/FileUpload/index.native.js +7 -3
  110. package/dist/cjs/fields/FileUpload/index.native.js.map +1 -1
  111. package/dist/cjs/fields/FileUpload/nativePickerLoader.native.js.map +1 -1
  112. package/dist/cjs/fields/Geolocation/expoMapsLoader.native.js.map +1 -1
  113. package/dist/cjs/fields/Geolocation/geoValue.native.js.map +1 -1
  114. package/dist/cjs/fields/Geolocation/index.native.js +5 -5
  115. package/dist/cjs/fields/Geolocation/index.native.js.map +1 -1
  116. package/dist/cjs/fields/Geolocation/mapMath.native.js.map +1 -1
  117. package/dist/cjs/fields/Geolocation/mapTypes.native.js.map +1 -1
  118. package/dist/cjs/fields/Icon/drawnSet.native.js.map +1 -1
  119. package/dist/cjs/fields/Icon/index.native.js +3 -3
  120. package/dist/cjs/fields/Icon/index.native.js.map +1 -1
  121. package/dist/cjs/fields/ImageField/index.native.js +2 -2
  122. package/dist/cjs/fields/ImageField/index.native.js.map +1 -1
  123. package/dist/cjs/fields/Input/index.native.js +2 -2
  124. package/dist/cjs/fields/Input/index.native.js.map +1 -1
  125. package/dist/cjs/fields/MentionInput/index.native.js +3 -3
  126. package/dist/cjs/fields/MentionInput/index.native.js.map +1 -1
  127. package/dist/cjs/fields/OTPInput/index.native.js +3 -3
  128. package/dist/cjs/fields/OTPInput/index.native.js.map +1 -1
  129. package/dist/cjs/fields/OTPInput/otpCellCss.native.js.map +1 -1
  130. package/dist/cjs/fields/PhoneInput/dialCodes.native.js.map +1 -1
  131. package/dist/cjs/fields/PhoneInput/index.cjs +9 -4
  132. package/dist/cjs/fields/PhoneInput/index.native.js +16 -9
  133. package/dist/cjs/fields/PhoneInput/index.native.js.map +1 -1
  134. package/dist/cjs/fields/PhoneInput/phone.native.js.map +1 -1
  135. package/dist/cjs/fields/Progress/index.native.js +1 -1
  136. package/dist/cjs/fields/Progress/index.native.js.map +1 -1
  137. package/dist/cjs/fields/RadioGroup/index.native.js +1 -1
  138. package/dist/cjs/fields/RadioGroup/index.native.js.map +1 -1
  139. package/dist/cjs/fields/Rating/index.cjs +1 -1
  140. package/dist/cjs/fields/Rating/index.native.js +5 -2
  141. package/dist/cjs/fields/Rating/index.native.js.map +1 -1
  142. package/dist/cjs/fields/Rating/ratingMath.native.js.map +1 -1
  143. package/dist/cjs/fields/Rating/types.native.js.map +1 -1
  144. package/dist/cjs/fields/SearchInput/index.cjs +6 -0
  145. package/dist/cjs/fields/SearchInput/index.native.js +8 -2
  146. package/dist/cjs/fields/SearchInput/index.native.js.map +1 -1
  147. package/dist/cjs/fields/Select/index.cjs +88 -2
  148. package/dist/cjs/fields/Select/index.native.js +94 -6
  149. package/dist/cjs/fields/Select/index.native.js.map +1 -1
  150. package/dist/cjs/fields/Signature/index.cjs +9 -5
  151. package/dist/cjs/fields/Signature/index.native.js +11 -7
  152. package/dist/cjs/fields/Signature/index.native.js.map +1 -1
  153. package/dist/cjs/fields/Slider/index.cjs +3 -1
  154. package/dist/cjs/fields/Slider/index.native.js +4 -2
  155. package/dist/cjs/fields/Slider/index.native.js.map +1 -1
  156. package/dist/cjs/fields/Slider/jumpMotion.native.js.map +1 -1
  157. package/dist/cjs/fields/Stepper/index.native.js +2 -2
  158. package/dist/cjs/fields/Stepper/index.native.js.map +1 -1
  159. package/dist/cjs/fields/Stepper/resolveStepperPlacement.native.js.map +1 -1
  160. package/dist/cjs/fields/Switch/index.cjs +5 -18
  161. package/dist/cjs/fields/Switch/index.native.js +7 -20
  162. package/dist/cjs/fields/Switch/index.native.js.map +1 -1
  163. package/dist/cjs/fields/TextArea/index.cjs +19 -5
  164. package/dist/cjs/fields/TextArea/index.native.js +25 -7
  165. package/dist/cjs/fields/TextArea/index.native.js.map +1 -1
  166. package/dist/cjs/fields/TimePicker/catalog.cjs +203 -0
  167. package/dist/cjs/fields/TimePicker/catalog.native.js +227 -0
  168. package/dist/cjs/fields/TimePicker/catalog.native.js.map +1 -0
  169. package/dist/cjs/fields/TimePicker/index.cjs +6 -177
  170. package/dist/cjs/fields/TimePicker/index.native.js +75 -86
  171. package/dist/cjs/fields/TimePicker/index.native.js.map +1 -1
  172. package/dist/cjs/fields/TimePicker/parts.native.js +1 -1
  173. package/dist/cjs/fields/TimePicker/parts.native.js.map +1 -1
  174. package/dist/cjs/fields/TimeRangeScrubber/geometry.cjs +6 -0
  175. package/dist/cjs/fields/TimeRangeScrubber/geometry.native.js +6 -0
  176. package/dist/cjs/fields/TimeRangeScrubber/geometry.native.js.map +1 -1
  177. package/dist/cjs/fields/TimeRangeScrubber/index.cjs +34 -14
  178. package/dist/cjs/fields/TimeRangeScrubber/index.native.js +40 -16
  179. package/dist/cjs/fields/TimeRangeScrubber/index.native.js.map +1 -1
  180. package/dist/cjs/fields/ToggleGroup/index.native.js +1 -1
  181. package/dist/cjs/fields/ToggleGroup/index.native.js.map +1 -1
  182. package/dist/cjs/fields/nativeDateTime/OsDateTimeSheet.cjs +202 -0
  183. package/dist/cjs/fields/nativeDateTime/OsDateTimeSheet.native.js +211 -0
  184. package/dist/cjs/fields/nativeDateTime/OsDateTimeSheet.native.js.map +1 -0
  185. package/dist/cjs/fields/nativeDateTime/osDateTimeIosDisplay.cjs +30 -0
  186. package/dist/cjs/fields/nativeDateTime/osDateTimeIosDisplay.native.js +33 -0
  187. package/dist/cjs/fields/nativeDateTime/osDateTimeIosDisplay.native.js.map +1 -0
  188. package/dist/cjs/fields/nativeSelect.cjs +30 -0
  189. package/dist/cjs/fields/nativeSelect.native.js +33 -0
  190. package/dist/cjs/fields/nativeSelect.native.js.map +1 -0
  191. package/dist/cjs/fields/selectedOrder.native.js.map +1 -1
  192. package/dist/cjs/formSpacing.native.js.map +1 -1
  193. package/dist/cjs/hooks/useFocusManagement.native.js.map +1 -1
  194. package/dist/cjs/index.cjs +1 -0
  195. package/dist/cjs/index.native.js +44 -43
  196. package/dist/cjs/index.native.js.map +1 -1
  197. package/dist/cjs/requiredMarking.native.js.map +1 -1
  198. package/dist/cjs/shared/TimeColumn.native.js +1 -1
  199. package/dist/cjs/shared/TimeColumn.native.js.map +1 -1
  200. package/dist/cjs/shared/capabilityPreflight.native.js.map +1 -1
  201. package/dist/cjs/shared/colorRamps.native.js.map +1 -1
  202. package/dist/cjs/shared/devWarn.native.js.map +1 -1
  203. package/dist/cjs/shared/floatingList.native.js +1 -1
  204. package/dist/cjs/shared/floatingList.native.js.map +1 -1
  205. package/dist/cjs/shared/focusManagement.native.js.map +1 -1
  206. package/dist/cjs/shared/groupContext.native.js.map +1 -1
  207. package/dist/cjs/shared/i18n.native.js.map +1 -1
  208. package/dist/cjs/shared/t.native.js.map +1 -1
  209. package/dist/cjs/shared/tableCellContext.native.js.map +1 -1
  210. package/dist/cjs/shared/useDragScroll.native.js.map +1 -1
  211. package/dist/cjs/shared/useKeyboardInset.native.js.map +1 -1
  212. package/dist/cjs/shared/useSheetEscapeDismiss.native.js.map +1 -1
  213. package/dist/cjs/shared/useWheelIncrement.native.js.map +1 -1
  214. package/dist/cjs/shared/utils.native.js +1 -1
  215. package/dist/cjs/shared/utils.native.js.map +1 -1
  216. package/dist/cjs/shared/zIndex.native.js.map +1 -1
  217. package/dist/cjs/themedPrimitives.cjs +5 -0
  218. package/dist/cjs/themedPrimitives.native.js +5 -0
  219. package/dist/cjs/themedPrimitives.native.js.map +1 -1
  220. package/dist/cjs/types.native.js.map +1 -1
  221. package/dist/cjs/utils/LinkCell.native.js.map +1 -1
  222. package/dist/esm/AdaptivePopup/index.native.js.map +1 -1
  223. package/dist/esm/Button/index.mjs +9 -3
  224. package/dist/esm/Button/index.mjs.map +1 -1
  225. package/dist/esm/Button/index.native.js +14 -3
  226. package/dist/esm/Button/index.native.js.map +1 -1
  227. package/dist/esm/Chip/index.mjs +1 -3
  228. package/dist/esm/Chip/index.mjs.map +1 -1
  229. package/dist/esm/Chip/index.native.js +5 -3
  230. package/dist/esm/Chip/index.native.js.map +1 -1
  231. package/dist/esm/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -1
  232. package/dist/esm/ContextualSaveBar/clientKnownIdentity.native.js.map +1 -1
  233. package/dist/esm/ContextualSaveBar/commitImmediateField.native.js.map +1 -1
  234. package/dist/esm/ContextualSaveBar/index.mjs +19 -3
  235. package/dist/esm/ContextualSaveBar/index.mjs.map +1 -1
  236. package/dist/esm/ContextualSaveBar/index.native.js +19 -3
  237. package/dist/esm/ContextualSaveBar/index.native.js.map +1 -1
  238. package/dist/esm/ContextualSaveBar/useUnsavedChangesGuard.native.js.map +1 -1
  239. package/dist/esm/ControlGroup/index.native.js.map +1 -1
  240. package/dist/esm/DescriptionList/index.mjs +41 -13
  241. package/dist/esm/DescriptionList/index.mjs.map +1 -1
  242. package/dist/esm/DescriptionList/index.native.js +43 -13
  243. package/dist/esm/DescriptionList/index.native.js.map +1 -1
  244. package/dist/esm/ErrorSummary.mjs +5 -2
  245. package/dist/esm/ErrorSummary.mjs.map +1 -1
  246. package/dist/esm/ErrorSummary.native.js +5 -2
  247. package/dist/esm/ErrorSummary.native.js.map +1 -1
  248. package/dist/esm/FieldDisplay/editMode.native.js.map +1 -1
  249. package/dist/esm/FieldDisplay/formatters.native.js.map +1 -1
  250. package/dist/esm/FieldDisplay/index.native.js.map +1 -1
  251. package/dist/esm/FieldGroup.native.js.map +1 -1
  252. package/dist/esm/FloatingPanel/useFloatingPanel.mjs +24 -3
  253. package/dist/esm/FloatingPanel/useFloatingPanel.mjs.map +1 -1
  254. package/dist/esm/FloatingPanel/useFloatingPanel.native.js +43 -3
  255. package/dist/esm/FloatingPanel/useFloatingPanel.native.js.map +1 -1
  256. package/dist/esm/Form/index.native.js.map +1 -1
  257. package/dist/esm/Form/validateOn.native.js.map +1 -1
  258. package/dist/esm/FormGrid.native.js.map +1 -1
  259. package/dist/esm/FormSection.native.js.map +1 -1
  260. package/dist/esm/InputParts/index.mjs +43 -3
  261. package/dist/esm/InputParts/index.mjs.map +1 -1
  262. package/dist/esm/InputParts/index.native.js +43 -3
  263. package/dist/esm/InputParts/index.native.js.map +1 -1
  264. package/dist/esm/Label/index.native.js.map +1 -1
  265. package/dist/esm/Skeleton/index.native.js.map +1 -1
  266. package/dist/esm/Spinner/SpinnerGlyph.native.js.map +1 -1
  267. package/dist/esm/Spinner/spinnerSize.native.js.map +1 -1
  268. package/dist/esm/Table/index.native.js.map +1 -1
  269. package/dist/esm/Wheel/haptic.native.js.map +1 -1
  270. package/dist/esm/Wheel/index.native.js.map +1 -1
  271. package/dist/esm/actionLabel.native.js.map +1 -1
  272. package/dist/esm/fieldDefaults.native.js.map +1 -1
  273. package/dist/esm/fieldLayout.native.js.map +1 -1
  274. package/dist/esm/fields/Barcode/BarcodePreview.native.js.map +1 -1
  275. package/dist/esm/fields/Barcode/code128.native.js.map +1 -1
  276. package/dist/esm/fields/Barcode/index.native.js.map +1 -1
  277. package/dist/esm/fields/Barcode/qr.native.js.map +1 -1
  278. package/dist/esm/fields/Barcode/scannerTypes.native.js.map +1 -1
  279. package/dist/esm/fields/Checkbox/Checkbox.mjs +5 -2
  280. package/dist/esm/fields/Checkbox/Checkbox.mjs.map +1 -1
  281. package/dist/esm/fields/Checkbox/Checkbox.native.js +6 -3
  282. package/dist/esm/fields/Checkbox/Checkbox.native.js.map +1 -1
  283. package/dist/esm/fields/Checkbox/CheckboxBox.native.js.map +1 -1
  284. package/dist/esm/fields/Checkbox/CheckboxCard.native.js.map +1 -1
  285. package/dist/esm/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
  286. package/dist/esm/fields/Checkbox/CheckboxGroup.mjs +69 -59
  287. package/dist/esm/fields/Checkbox/CheckboxGroup.mjs.map +1 -1
  288. package/dist/esm/fields/Checkbox/CheckboxGroup.native.js +75 -65
  289. package/dist/esm/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
  290. package/dist/esm/fields/Checkbox/checkboxGroupContext.mjs +7 -0
  291. package/dist/esm/fields/Checkbox/checkboxGroupContext.mjs.map +1 -0
  292. package/dist/esm/fields/Checkbox/checkboxGroupContext.native.js +7 -0
  293. package/dist/esm/fields/Checkbox/checkboxGroupContext.native.js.map +1 -0
  294. package/dist/esm/fields/Checkbox/index.native.js.map +1 -1
  295. package/dist/esm/fields/ColorPicker/index.native.js.map +1 -1
  296. package/dist/esm/fields/ColorPicker/parts.native.js.map +1 -1
  297. package/dist/esm/fields/Combobox/authorOptions.native.js.map +1 -1
  298. package/dist/esm/fields/Combobox/index.native.js.map +1 -1
  299. package/dist/esm/fields/DatePicker/Calendar.native.js.map +1 -1
  300. package/dist/esm/fields/DatePicker/DateRangePicker.native.js.map +1 -1
  301. package/dist/esm/fields/DatePicker/DatetimePicker.catalog.mjs +377 -0
  302. package/dist/esm/fields/DatePicker/DatetimePicker.catalog.mjs.map +1 -0
  303. package/dist/esm/fields/DatePicker/DatetimePicker.catalog.native.js +413 -0
  304. package/dist/esm/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -0
  305. package/dist/esm/fields/DatePicker/DatetimePicker.mjs +1 -375
  306. package/dist/esm/fields/DatePicker/DatetimePicker.mjs.map +1 -1
  307. package/dist/esm/fields/DatePicker/DatetimePicker.native.js +65 -293
  308. package/dist/esm/fields/DatePicker/DatetimePicker.native.js.map +1 -1
  309. package/dist/esm/fields/DatePicker/MonthPicker.native.js.map +1 -1
  310. package/dist/esm/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
  311. package/dist/esm/fields/DatePicker/catalog.mjs +276 -0
  312. package/dist/esm/fields/DatePicker/catalog.mjs.map +1 -0
  313. package/dist/esm/fields/DatePicker/catalog.native.js +317 -0
  314. package/dist/esm/fields/DatePicker/catalog.native.js.map +1 -0
  315. package/dist/esm/fields/DatePicker/fieldValueSync.native.js.map +1 -1
  316. package/dist/esm/fields/DatePicker/index.mjs +1 -274
  317. package/dist/esm/fields/DatePicker/index.mjs.map +1 -1
  318. package/dist/esm/fields/DatePicker/index.native.js +60 -179
  319. package/dist/esm/fields/DatePicker/index.native.js.map +1 -1
  320. package/dist/esm/fields/DatePicker/parts.mjs +13 -10
  321. package/dist/esm/fields/DatePicker/parts.mjs.map +1 -1
  322. package/dist/esm/fields/DatePicker/parts.native.js +13 -10
  323. package/dist/esm/fields/DatePicker/parts.native.js.map +1 -1
  324. package/dist/esm/fields/DatePicker/utils.native.js.map +1 -1
  325. package/dist/esm/fields/Duration/durationMath.native.js.map +1 -1
  326. package/dist/esm/fields/Duration/index.mjs +29 -4
  327. package/dist/esm/fields/Duration/index.mjs.map +1 -1
  328. package/dist/esm/fields/Duration/index.native.js +29 -4
  329. package/dist/esm/fields/Duration/index.native.js.map +1 -1
  330. package/dist/esm/fields/FileUpload/filePickerTypes.native.js.map +1 -1
  331. package/dist/esm/fields/FileUpload/index.mjs +0 -1
  332. package/dist/esm/fields/FileUpload/index.mjs.map +1 -1
  333. package/dist/esm/fields/FileUpload/index.native.js +5 -1
  334. package/dist/esm/fields/FileUpload/index.native.js.map +1 -1
  335. package/dist/esm/fields/FileUpload/nativePickerLoader.native.js.map +1 -1
  336. package/dist/esm/fields/Geolocation/expoMapsLoader.native.js.map +1 -1
  337. package/dist/esm/fields/Geolocation/geoValue.native.js.map +1 -1
  338. package/dist/esm/fields/Geolocation/index.native.js.map +1 -1
  339. package/dist/esm/fields/Geolocation/mapMath.native.js.map +1 -1
  340. package/dist/esm/fields/Geolocation/mapTypes.native.js.map +1 -1
  341. package/dist/esm/fields/Icon/drawnSet.native.js.map +1 -1
  342. package/dist/esm/fields/Icon/index.native.js.map +1 -1
  343. package/dist/esm/fields/ImageField/index.native.js.map +1 -1
  344. package/dist/esm/fields/Input/index.native.js.map +1 -1
  345. package/dist/esm/fields/MentionInput/index.native.js.map +1 -1
  346. package/dist/esm/fields/OTPInput/index.native.js.map +1 -1
  347. package/dist/esm/fields/OTPInput/otpCellCss.native.js.map +1 -1
  348. package/dist/esm/fields/PhoneInput/dialCodes.native.js.map +1 -1
  349. package/dist/esm/fields/PhoneInput/index.mjs +9 -4
  350. package/dist/esm/fields/PhoneInput/index.mjs.map +1 -1
  351. package/dist/esm/fields/PhoneInput/index.native.js +13 -6
  352. package/dist/esm/fields/PhoneInput/index.native.js.map +1 -1
  353. package/dist/esm/fields/PhoneInput/phone.native.js.map +1 -1
  354. package/dist/esm/fields/Progress/index.native.js.map +1 -1
  355. package/dist/esm/fields/RadioGroup/index.native.js.map +1 -1
  356. package/dist/esm/fields/Rating/index.mjs +2 -2
  357. package/dist/esm/fields/Rating/index.mjs.map +1 -1
  358. package/dist/esm/fields/Rating/index.native.js +5 -2
  359. package/dist/esm/fields/Rating/index.native.js.map +1 -1
  360. package/dist/esm/fields/Rating/ratingMath.native.js.map +1 -1
  361. package/dist/esm/fields/Rating/types.native.js.map +1 -1
  362. package/dist/esm/fields/SearchInput/index.mjs +6 -0
  363. package/dist/esm/fields/SearchInput/index.mjs.map +1 -1
  364. package/dist/esm/fields/SearchInput/index.native.js +6 -0
  365. package/dist/esm/fields/SearchInput/index.native.js.map +1 -1
  366. package/dist/esm/fields/Select/index.mjs +78 -3
  367. package/dist/esm/fields/Select/index.mjs.map +1 -1
  368. package/dist/esm/fields/Select/index.native.js +80 -3
  369. package/dist/esm/fields/Select/index.native.js.map +1 -1
  370. package/dist/esm/fields/Signature/index.mjs +10 -6
  371. package/dist/esm/fields/Signature/index.mjs.map +1 -1
  372. package/dist/esm/fields/Signature/index.native.js +10 -6
  373. package/dist/esm/fields/Signature/index.native.js.map +1 -1
  374. package/dist/esm/fields/Slider/index.mjs +4 -2
  375. package/dist/esm/fields/Slider/index.mjs.map +1 -1
  376. package/dist/esm/fields/Slider/index.native.js +4 -2
  377. package/dist/esm/fields/Slider/index.native.js.map +1 -1
  378. package/dist/esm/fields/Slider/jumpMotion.native.js.map +1 -1
  379. package/dist/esm/fields/Stepper/index.native.js.map +1 -1
  380. package/dist/esm/fields/Stepper/resolveStepperPlacement.native.js.map +1 -1
  381. package/dist/esm/fields/Switch/index.mjs +6 -19
  382. package/dist/esm/fields/Switch/index.mjs.map +1 -1
  383. package/dist/esm/fields/Switch/index.native.js +6 -19
  384. package/dist/esm/fields/Switch/index.native.js.map +1 -1
  385. package/dist/esm/fields/TextArea/index.mjs +19 -5
  386. package/dist/esm/fields/TextArea/index.mjs.map +1 -1
  387. package/dist/esm/fields/TextArea/index.native.js +23 -5
  388. package/dist/esm/fields/TextArea/index.native.js.map +1 -1
  389. package/dist/esm/fields/TimePicker/catalog.mjs +174 -0
  390. package/dist/esm/fields/TimePicker/catalog.mjs.map +1 -0
  391. package/dist/esm/fields/TimePicker/catalog.native.js +195 -0
  392. package/dist/esm/fields/TimePicker/catalog.native.js.map +1 -0
  393. package/dist/esm/fields/TimePicker/index.mjs +2 -173
  394. package/dist/esm/fields/TimePicker/index.mjs.map +1 -1
  395. package/dist/esm/fields/TimePicker/index.native.js +76 -87
  396. package/dist/esm/fields/TimePicker/index.native.js.map +1 -1
  397. package/dist/esm/fields/TimePicker/parts.native.js.map +1 -1
  398. package/dist/esm/fields/TimeRangeScrubber/geometry.mjs +6 -1
  399. package/dist/esm/fields/TimeRangeScrubber/geometry.mjs.map +1 -1
  400. package/dist/esm/fields/TimeRangeScrubber/geometry.native.js +6 -1
  401. package/dist/esm/fields/TimeRangeScrubber/geometry.native.js.map +1 -1
  402. package/dist/esm/fields/TimeRangeScrubber/index.mjs +37 -18
  403. package/dist/esm/fields/TimeRangeScrubber/index.mjs.map +1 -1
  404. package/dist/esm/fields/TimeRangeScrubber/index.native.js +41 -18
  405. package/dist/esm/fields/TimeRangeScrubber/index.native.js.map +1 -1
  406. package/dist/esm/fields/ToggleGroup/index.native.js.map +1 -1
  407. package/dist/esm/fields/nativeDateTime/OsDateTimeSheet.mjs +166 -0
  408. package/dist/esm/fields/nativeDateTime/OsDateTimeSheet.mjs.map +1 -0
  409. package/dist/esm/fields/nativeDateTime/OsDateTimeSheet.native.js +172 -0
  410. package/dist/esm/fields/nativeDateTime/OsDateTimeSheet.native.js.map +1 -0
  411. package/dist/esm/fields/nativeDateTime/osDateTimeIosDisplay.mjs +5 -0
  412. package/dist/esm/fields/nativeDateTime/osDateTimeIosDisplay.mjs.map +1 -0
  413. package/dist/esm/fields/nativeDateTime/osDateTimeIosDisplay.native.js +5 -0
  414. package/dist/esm/fields/nativeDateTime/osDateTimeIosDisplay.native.js.map +1 -0
  415. package/dist/esm/fields/nativeSelect.mjs +5 -0
  416. package/dist/esm/fields/nativeSelect.mjs.map +1 -0
  417. package/dist/esm/fields/nativeSelect.native.js +5 -0
  418. package/dist/esm/fields/nativeSelect.native.js.map +1 -0
  419. package/dist/esm/fields/selectedOrder.native.js.map +1 -1
  420. package/dist/esm/formSpacing.native.js.map +1 -1
  421. package/dist/esm/hooks/useFocusManagement.native.js.map +1 -1
  422. package/dist/esm/index.mjs +2 -2
  423. package/dist/esm/index.mjs.map +1 -1
  424. package/dist/esm/index.native.js +2 -2
  425. package/dist/esm/index.native.js.map +1 -1
  426. package/dist/esm/requiredMarking.native.js.map +1 -1
  427. package/dist/esm/shared/TimeColumn.native.js.map +1 -1
  428. package/dist/esm/shared/capabilityPreflight.native.js.map +1 -1
  429. package/dist/esm/shared/colorRamps.native.js.map +1 -1
  430. package/dist/esm/shared/devWarn.native.js.map +1 -1
  431. package/dist/esm/shared/floatingList.native.js.map +1 -1
  432. package/dist/esm/shared/focusManagement.native.js.map +1 -1
  433. package/dist/esm/shared/groupContext.native.js.map +1 -1
  434. package/dist/esm/shared/i18n.native.js.map +1 -1
  435. package/dist/esm/shared/t.native.js.map +1 -1
  436. package/dist/esm/shared/tableCellContext.native.js.map +1 -1
  437. package/dist/esm/shared/useDragScroll.native.js.map +1 -1
  438. package/dist/esm/shared/useKeyboardInset.native.js.map +1 -1
  439. package/dist/esm/shared/useSheetEscapeDismiss.native.js.map +1 -1
  440. package/dist/esm/shared/useWheelIncrement.native.js.map +1 -1
  441. package/dist/esm/shared/utils.native.js.map +1 -1
  442. package/dist/esm/shared/zIndex.native.js.map +1 -1
  443. package/dist/esm/themedPrimitives.mjs +5 -0
  444. package/dist/esm/themedPrimitives.mjs.map +1 -1
  445. package/dist/esm/themedPrimitives.native.js +5 -0
  446. package/dist/esm/themedPrimitives.native.js.map +1 -1
  447. package/dist/esm/types.native.js.map +1 -1
  448. package/dist/esm/utils/LinkCell.native.js.map +1 -1
  449. package/dist/jsx/AdaptivePopup/index.native.js +1 -1
  450. package/dist/jsx/AdaptivePopup/index.native.js.map +1 -1
  451. package/dist/jsx/Button/index.mjs +9 -3
  452. package/dist/jsx/Button/index.mjs.map +1 -1
  453. package/dist/jsx/Button/index.native.js +14 -3
  454. package/dist/jsx/Button/index.native.js.map +1 -1
  455. package/dist/jsx/Chip/index.mjs +1 -3
  456. package/dist/jsx/Chip/index.mjs.map +1 -1
  457. package/dist/jsx/Chip/index.native.js +5 -3
  458. package/dist/jsx/Chip/index.native.js.map +1 -1
  459. package/dist/jsx/ContextualSaveBar/UnsavedChangesDialog.native.js +1 -1
  460. package/dist/jsx/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -1
  461. package/dist/jsx/ContextualSaveBar/clientKnownIdentity.native.js.map +1 -1
  462. package/dist/jsx/ContextualSaveBar/commitImmediateField.native.js.map +1 -1
  463. package/dist/jsx/ContextualSaveBar/index.mjs +19 -3
  464. package/dist/jsx/ContextualSaveBar/index.mjs.map +1 -1
  465. package/dist/jsx/ContextualSaveBar/index.native.js +22 -6
  466. package/dist/jsx/ContextualSaveBar/index.native.js.map +1 -1
  467. package/dist/jsx/ContextualSaveBar/useUnsavedChangesGuard.native.js.map +1 -1
  468. package/dist/jsx/ControlGroup/index.native.js +1 -1
  469. package/dist/jsx/ControlGroup/index.native.js.map +1 -1
  470. package/dist/jsx/DescriptionList/index.mjs +41 -13
  471. package/dist/jsx/DescriptionList/index.mjs.map +1 -1
  472. package/dist/jsx/DescriptionList/index.native.js +45 -15
  473. package/dist/jsx/DescriptionList/index.native.js.map +1 -1
  474. package/dist/jsx/ErrorSummary.mjs +5 -2
  475. package/dist/jsx/ErrorSummary.mjs.map +1 -1
  476. package/dist/jsx/ErrorSummary.native.js +4 -1
  477. package/dist/jsx/ErrorSummary.native.js.map +1 -1
  478. package/dist/jsx/FieldDisplay/editMode.native.js.map +1 -1
  479. package/dist/jsx/FieldDisplay/formatters.native.js.map +1 -1
  480. package/dist/jsx/FieldDisplay/index.native.js +1 -1
  481. package/dist/jsx/FieldDisplay/index.native.js.map +1 -1
  482. package/dist/jsx/FieldGroup.native.js.map +1 -1
  483. package/dist/jsx/FloatingPanel/useFloatingPanel.mjs +24 -3
  484. package/dist/jsx/FloatingPanel/useFloatingPanel.mjs.map +1 -1
  485. package/dist/jsx/FloatingPanel/useFloatingPanel.native.js +43 -2
  486. package/dist/jsx/FloatingPanel/useFloatingPanel.native.js.map +1 -1
  487. package/dist/jsx/Form/index.native.js +1 -1
  488. package/dist/jsx/Form/index.native.js.map +1 -1
  489. package/dist/jsx/Form/validateOn.native.js.map +1 -1
  490. package/dist/jsx/FormGrid.native.js.map +1 -1
  491. package/dist/jsx/FormSection.native.js.map +1 -1
  492. package/dist/jsx/InputParts/index.mjs +43 -3
  493. package/dist/jsx/InputParts/index.mjs.map +1 -1
  494. package/dist/jsx/InputParts/index.native.js +42 -2
  495. package/dist/jsx/InputParts/index.native.js.map +1 -1
  496. package/dist/jsx/Label/index.native.js.map +1 -1
  497. package/dist/jsx/Skeleton/index.native.js.map +1 -1
  498. package/dist/jsx/Spinner/SpinnerGlyph.native.js.map +1 -1
  499. package/dist/jsx/Spinner/spinnerSize.native.js.map +1 -1
  500. package/dist/jsx/Table/index.native.js.map +1 -1
  501. package/dist/jsx/Wheel/haptic.native.js.map +1 -1
  502. package/dist/jsx/Wheel/index.native.js.map +1 -1
  503. package/dist/jsx/actionLabel.native.js.map +1 -1
  504. package/dist/jsx/fieldDefaults.native.js.map +1 -1
  505. package/dist/jsx/fieldLayout.native.js +1 -1
  506. package/dist/jsx/fieldLayout.native.js.map +1 -1
  507. package/dist/jsx/fields/Barcode/BarcodePreview.native.js.map +1 -1
  508. package/dist/jsx/fields/Barcode/BarcodeScanner.native.js +1 -1
  509. package/dist/jsx/fields/Barcode/code128.native.js.map +1 -1
  510. package/dist/jsx/fields/Barcode/index.native.js +2 -2
  511. package/dist/jsx/fields/Barcode/index.native.js.map +1 -1
  512. package/dist/jsx/fields/Barcode/qr.native.js.map +1 -1
  513. package/dist/jsx/fields/Barcode/scannerTypes.native.js.map +1 -1
  514. package/dist/jsx/fields/Checkbox/Checkbox.mjs +5 -2
  515. package/dist/jsx/fields/Checkbox/Checkbox.mjs.map +1 -1
  516. package/dist/jsx/fields/Checkbox/Checkbox.native.js +7 -4
  517. package/dist/jsx/fields/Checkbox/Checkbox.native.js.map +1 -1
  518. package/dist/jsx/fields/Checkbox/CheckboxBox.native.js.map +1 -1
  519. package/dist/jsx/fields/Checkbox/CheckboxCard.native.js.map +1 -1
  520. package/dist/jsx/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
  521. package/dist/jsx/fields/Checkbox/CheckboxGroup.mjs +69 -59
  522. package/dist/jsx/fields/Checkbox/CheckboxGroup.mjs.map +1 -1
  523. package/dist/jsx/fields/Checkbox/CheckboxGroup.native.js +76 -66
  524. package/dist/jsx/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
  525. package/dist/jsx/fields/Checkbox/checkboxGroupContext.mjs +7 -0
  526. package/dist/jsx/fields/Checkbox/checkboxGroupContext.mjs.map +1 -0
  527. package/dist/jsx/fields/Checkbox/checkboxGroupContext.native.js +36 -0
  528. package/dist/jsx/fields/Checkbox/checkboxGroupContext.native.js.map +1 -0
  529. package/dist/jsx/fields/Checkbox/index.native.js.map +1 -1
  530. package/dist/jsx/fields/ColorPicker/index.native.js +3 -3
  531. package/dist/jsx/fields/ColorPicker/index.native.js.map +1 -1
  532. package/dist/jsx/fields/ColorPicker/parts.native.js +2 -2
  533. package/dist/jsx/fields/ColorPicker/parts.native.js.map +1 -1
  534. package/dist/jsx/fields/Combobox/authorOptions.native.js.map +1 -1
  535. package/dist/jsx/fields/Combobox/index.native.js +5 -5
  536. package/dist/jsx/fields/Combobox/index.native.js.map +1 -1
  537. package/dist/jsx/fields/DatePicker/Calendar.native.js.map +1 -1
  538. package/dist/jsx/fields/DatePicker/DateRangePicker.native.js +2 -2
  539. package/dist/jsx/fields/DatePicker/DateRangePicker.native.js.map +1 -1
  540. package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.mjs +377 -0
  541. package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.mjs.map +1 -0
  542. package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.native.js +441 -0
  543. package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -0
  544. package/dist/jsx/fields/DatePicker/DatetimePicker.mjs +1 -375
  545. package/dist/jsx/fields/DatePicker/DatetimePicker.mjs.map +1 -1
  546. package/dist/jsx/fields/DatePicker/DatetimePicker.native.js +70 -298
  547. package/dist/jsx/fields/DatePicker/DatetimePicker.native.js.map +1 -1
  548. package/dist/jsx/fields/DatePicker/MonthPicker.native.js +2 -2
  549. package/dist/jsx/fields/DatePicker/MonthPicker.native.js.map +1 -1
  550. package/dist/jsx/fields/DatePicker/MultiDatePicker.native.js +2 -2
  551. package/dist/jsx/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
  552. package/dist/jsx/fields/DatePicker/catalog.mjs +276 -0
  553. package/dist/jsx/fields/DatePicker/catalog.mjs.map +1 -0
  554. package/dist/jsx/fields/DatePicker/catalog.native.js +350 -0
  555. package/dist/jsx/fields/DatePicker/catalog.native.js.map +1 -0
  556. package/dist/jsx/fields/DatePicker/fieldValueSync.native.js.map +1 -1
  557. package/dist/jsx/fields/DatePicker/index.mjs +1 -274
  558. package/dist/jsx/fields/DatePicker/index.mjs.map +1 -1
  559. package/dist/jsx/fields/DatePicker/index.native.js +67 -186
  560. package/dist/jsx/fields/DatePicker/index.native.js.map +1 -1
  561. package/dist/jsx/fields/DatePicker/parts.mjs +13 -10
  562. package/dist/jsx/fields/DatePicker/parts.mjs.map +1 -1
  563. package/dist/jsx/fields/DatePicker/parts.native.js +14 -11
  564. package/dist/jsx/fields/DatePicker/parts.native.js.map +1 -1
  565. package/dist/jsx/fields/DatePicker/utils.native.js.map +1 -1
  566. package/dist/jsx/fields/Duration/durationMath.native.js.map +1 -1
  567. package/dist/jsx/fields/Duration/index.mjs +29 -4
  568. package/dist/jsx/fields/Duration/index.mjs.map +1 -1
  569. package/dist/jsx/fields/Duration/index.native.js +32 -6
  570. package/dist/jsx/fields/Duration/index.native.js.map +1 -1
  571. package/dist/jsx/fields/FileUpload/filePickerTypes.native.js.map +1 -1
  572. package/dist/jsx/fields/FileUpload/index.mjs +0 -1
  573. package/dist/jsx/fields/FileUpload/index.mjs.map +1 -1
  574. package/dist/jsx/fields/FileUpload/index.native.js +7 -3
  575. package/dist/jsx/fields/FileUpload/index.native.js.map +1 -1
  576. package/dist/jsx/fields/FileUpload/nativePickerLoader.native.js.map +1 -1
  577. package/dist/jsx/fields/Geolocation/expoMapsLoader.native.js.map +1 -1
  578. package/dist/jsx/fields/Geolocation/geoValue.native.js.map +1 -1
  579. package/dist/jsx/fields/Geolocation/index.native.js +5 -5
  580. package/dist/jsx/fields/Geolocation/index.native.js.map +1 -1
  581. package/dist/jsx/fields/Geolocation/mapMath.native.js.map +1 -1
  582. package/dist/jsx/fields/Geolocation/mapTypes.native.js.map +1 -1
  583. package/dist/jsx/fields/Icon/drawnSet.native.js.map +1 -1
  584. package/dist/jsx/fields/Icon/index.native.js +3 -3
  585. package/dist/jsx/fields/Icon/index.native.js.map +1 -1
  586. package/dist/jsx/fields/ImageField/index.native.js +2 -2
  587. package/dist/jsx/fields/ImageField/index.native.js.map +1 -1
  588. package/dist/jsx/fields/Input/index.native.js +2 -2
  589. package/dist/jsx/fields/Input/index.native.js.map +1 -1
  590. package/dist/jsx/fields/MentionInput/index.native.js +3 -3
  591. package/dist/jsx/fields/MentionInput/index.native.js.map +1 -1
  592. package/dist/jsx/fields/OTPInput/index.native.js +3 -3
  593. package/dist/jsx/fields/OTPInput/index.native.js.map +1 -1
  594. package/dist/jsx/fields/OTPInput/otpCellCss.native.js.map +1 -1
  595. package/dist/jsx/fields/PhoneInput/dialCodes.native.js.map +1 -1
  596. package/dist/jsx/fields/PhoneInput/index.mjs +9 -4
  597. package/dist/jsx/fields/PhoneInput/index.mjs.map +1 -1
  598. package/dist/jsx/fields/PhoneInput/index.native.js +16 -9
  599. package/dist/jsx/fields/PhoneInput/index.native.js.map +1 -1
  600. package/dist/jsx/fields/PhoneInput/phone.native.js.map +1 -1
  601. package/dist/jsx/fields/Progress/index.native.js +1 -1
  602. package/dist/jsx/fields/Progress/index.native.js.map +1 -1
  603. package/dist/jsx/fields/RadioGroup/index.native.js +1 -1
  604. package/dist/jsx/fields/RadioGroup/index.native.js.map +1 -1
  605. package/dist/jsx/fields/Rating/index.mjs +2 -2
  606. package/dist/jsx/fields/Rating/index.mjs.map +1 -1
  607. package/dist/jsx/fields/Rating/index.native.js +5 -2
  608. package/dist/jsx/fields/Rating/index.native.js.map +1 -1
  609. package/dist/jsx/fields/Rating/ratingMath.native.js.map +1 -1
  610. package/dist/jsx/fields/Rating/types.native.js.map +1 -1
  611. package/dist/jsx/fields/SearchInput/index.mjs +6 -0
  612. package/dist/jsx/fields/SearchInput/index.mjs.map +1 -1
  613. package/dist/jsx/fields/SearchInput/index.native.js +8 -2
  614. package/dist/jsx/fields/SearchInput/index.native.js.map +1 -1
  615. package/dist/jsx/fields/Select/index.mjs +78 -3
  616. package/dist/jsx/fields/Select/index.mjs.map +1 -1
  617. package/dist/jsx/fields/Select/index.native.js +94 -6
  618. package/dist/jsx/fields/Select/index.native.js.map +1 -1
  619. package/dist/jsx/fields/Signature/index.mjs +10 -6
  620. package/dist/jsx/fields/Signature/index.mjs.map +1 -1
  621. package/dist/jsx/fields/Signature/index.native.js +11 -7
  622. package/dist/jsx/fields/Signature/index.native.js.map +1 -1
  623. package/dist/jsx/fields/Slider/index.mjs +4 -2
  624. package/dist/jsx/fields/Slider/index.mjs.map +1 -1
  625. package/dist/jsx/fields/Slider/index.native.js +4 -2
  626. package/dist/jsx/fields/Slider/index.native.js.map +1 -1
  627. package/dist/jsx/fields/Slider/jumpMotion.native.js.map +1 -1
  628. package/dist/jsx/fields/Stepper/index.native.js +2 -2
  629. package/dist/jsx/fields/Stepper/index.native.js.map +1 -1
  630. package/dist/jsx/fields/Stepper/resolveStepperPlacement.native.js.map +1 -1
  631. package/dist/jsx/fields/Switch/index.mjs +6 -19
  632. package/dist/jsx/fields/Switch/index.mjs.map +1 -1
  633. package/dist/jsx/fields/Switch/index.native.js +7 -20
  634. package/dist/jsx/fields/Switch/index.native.js.map +1 -1
  635. package/dist/jsx/fields/TextArea/index.mjs +19 -5
  636. package/dist/jsx/fields/TextArea/index.mjs.map +1 -1
  637. package/dist/jsx/fields/TextArea/index.native.js +25 -7
  638. package/dist/jsx/fields/TextArea/index.native.js.map +1 -1
  639. package/dist/jsx/fields/TimePicker/catalog.mjs +174 -0
  640. package/dist/jsx/fields/TimePicker/catalog.mjs.map +1 -0
  641. package/dist/jsx/fields/TimePicker/catalog.native.js +227 -0
  642. package/dist/jsx/fields/TimePicker/catalog.native.js.map +1 -0
  643. package/dist/jsx/fields/TimePicker/index.mjs +2 -173
  644. package/dist/jsx/fields/TimePicker/index.mjs.map +1 -1
  645. package/dist/jsx/fields/TimePicker/index.native.js +75 -86
  646. package/dist/jsx/fields/TimePicker/index.native.js.map +1 -1
  647. package/dist/jsx/fields/TimePicker/parts.native.js +1 -1
  648. package/dist/jsx/fields/TimePicker/parts.native.js.map +1 -1
  649. package/dist/jsx/fields/TimeRangeScrubber/geometry.mjs +6 -1
  650. package/dist/jsx/fields/TimeRangeScrubber/geometry.mjs.map +1 -1
  651. package/dist/jsx/fields/TimeRangeScrubber/geometry.native.js +6 -0
  652. package/dist/jsx/fields/TimeRangeScrubber/geometry.native.js.map +1 -1
  653. package/dist/jsx/fields/TimeRangeScrubber/index.mjs +37 -18
  654. package/dist/jsx/fields/TimeRangeScrubber/index.mjs.map +1 -1
  655. package/dist/jsx/fields/TimeRangeScrubber/index.native.js +40 -16
  656. package/dist/jsx/fields/TimeRangeScrubber/index.native.js.map +1 -1
  657. package/dist/jsx/fields/ToggleGroup/index.native.js +1 -1
  658. package/dist/jsx/fields/ToggleGroup/index.native.js.map +1 -1
  659. package/dist/jsx/fields/nativeDateTime/OsDateTimeSheet.mjs +166 -0
  660. package/dist/jsx/fields/nativeDateTime/OsDateTimeSheet.mjs.map +1 -0
  661. package/dist/jsx/fields/nativeDateTime/OsDateTimeSheet.native.js +211 -0
  662. package/dist/jsx/fields/nativeDateTime/OsDateTimeSheet.native.js.map +1 -0
  663. package/dist/jsx/fields/nativeDateTime/osDateTimeIosDisplay.mjs +5 -0
  664. package/dist/jsx/fields/nativeDateTime/osDateTimeIosDisplay.mjs.map +1 -0
  665. package/dist/jsx/fields/nativeDateTime/osDateTimeIosDisplay.native.js +33 -0
  666. package/dist/jsx/fields/nativeDateTime/osDateTimeIosDisplay.native.js.map +1 -0
  667. package/dist/jsx/fields/nativeSelect.mjs +5 -0
  668. package/dist/jsx/fields/nativeSelect.mjs.map +1 -0
  669. package/dist/jsx/fields/nativeSelect.native.js +33 -0
  670. package/dist/jsx/fields/nativeSelect.native.js.map +1 -0
  671. package/dist/jsx/fields/selectedOrder.native.js.map +1 -1
  672. package/dist/jsx/formSpacing.native.js.map +1 -1
  673. package/dist/jsx/hooks/useFocusManagement.native.js.map +1 -1
  674. package/dist/jsx/index.js +2 -2
  675. package/dist/jsx/index.js.map +1 -1
  676. package/dist/jsx/index.mjs +2 -2
  677. package/dist/jsx/index.mjs.map +1 -1
  678. package/dist/jsx/index.native.js +44 -43
  679. package/dist/jsx/index.native.js.map +1 -1
  680. package/dist/jsx/requiredMarking.native.js.map +1 -1
  681. package/dist/jsx/shared/TimeColumn.native.js +1 -1
  682. package/dist/jsx/shared/TimeColumn.native.js.map +1 -1
  683. package/dist/jsx/shared/capabilityPreflight.native.js.map +1 -1
  684. package/dist/jsx/shared/colorRamps.native.js.map +1 -1
  685. package/dist/jsx/shared/devWarn.native.js.map +1 -1
  686. package/dist/jsx/shared/floatingList.native.js +1 -1
  687. package/dist/jsx/shared/floatingList.native.js.map +1 -1
  688. package/dist/jsx/shared/focusManagement.native.js.map +1 -1
  689. package/dist/jsx/shared/groupContext.native.js.map +1 -1
  690. package/dist/jsx/shared/i18n.native.js.map +1 -1
  691. package/dist/jsx/shared/t.native.js.map +1 -1
  692. package/dist/jsx/shared/tableCellContext.native.js.map +1 -1
  693. package/dist/jsx/shared/useDragScroll.native.js.map +1 -1
  694. package/dist/jsx/shared/useKeyboardInset.native.js.map +1 -1
  695. package/dist/jsx/shared/useSheetEscapeDismiss.native.js.map +1 -1
  696. package/dist/jsx/shared/useWheelIncrement.native.js.map +1 -1
  697. package/dist/jsx/shared/utils.native.js +1 -1
  698. package/dist/jsx/shared/utils.native.js.map +1 -1
  699. package/dist/jsx/shared/zIndex.native.js.map +1 -1
  700. package/dist/jsx/themedPrimitives.mjs +5 -0
  701. package/dist/jsx/themedPrimitives.mjs.map +1 -1
  702. package/dist/jsx/themedPrimitives.native.js +5 -0
  703. package/dist/jsx/themedPrimitives.native.js.map +1 -1
  704. package/dist/jsx/types.native.js.map +1 -1
  705. package/dist/jsx/utils/LinkCell.native.js.map +1 -1
  706. package/package.json +12 -9
  707. package/src/Button/Button.labelInk.spec.tsx +1 -1
  708. package/src/Button/Button.sizeLadder.spec.tsx +124 -0
  709. package/src/Button/Button.spec.tsx +7 -17
  710. package/src/Button/Button.stories.tsx +14 -0
  711. package/src/Button/index.tsx +24 -4
  712. package/src/Chip/Chip.spec.tsx +15 -0
  713. package/src/Chip/Chip.stories.tsx +251 -0
  714. package/src/Chip/index.tsx +5 -1
  715. package/src/ContextualSaveBar/ContextualSaveBar.spec.tsx +51 -0
  716. package/src/ContextualSaveBar/ContextualSaveBar.stories.tsx +42 -23
  717. package/src/ContextualSaveBar/UnsavedChangesDialog.spec.tsx +167 -0
  718. package/src/ContextualSaveBar/UnsavedChangesDialog.stories.tsx +118 -0
  719. package/src/ContextualSaveBar/index.tsx +14 -5
  720. package/src/ContextualSaveBar/unsavedChangesDialogStories.spec.tsx +79 -0
  721. package/src/DescriptionList/DescriptionList.spec.tsx +19 -1
  722. package/src/DescriptionList/DescriptionList.stories.tsx +5 -1
  723. package/src/DescriptionList/index.tsx +60 -20
  724. package/src/ErrorSummary.stories.tsx +197 -0
  725. package/src/ErrorSummary.tsx +5 -2
  726. package/src/FloatingPanel/panelWidthContract.spec.ts +2 -2
  727. package/src/FloatingPanel/useFloatingPanel.spec.tsx +199 -1
  728. package/src/FloatingPanel/useFloatingPanel.ts +45 -3
  729. package/src/InputParts/InputParts.stories.tsx +230 -0
  730. package/src/InputParts/index.tsx +56 -2
  731. package/src/InputParts/inputPartsStories.spec.tsx +122 -0
  732. package/src/Skeleton/Skeleton.stories.tsx +148 -0
  733. package/src/Skeleton/skeletonStories.spec.tsx +107 -0
  734. package/src/Spinner/SpinnerGlyph.spec.tsx +132 -0
  735. package/src/Wheel/Wheel.stories.tsx +232 -0
  736. package/src/Wheel/WheelEdgeFade.spec.tsx +141 -0
  737. package/src/Wheel/wheelStories.spec.tsx +143 -0
  738. package/src/errorSummaryStories.spec.tsx +114 -0
  739. package/src/fields/Checkbox/Checkbox.spec.tsx +24 -0
  740. package/src/fields/Checkbox/Checkbox.tsx +8 -3
  741. package/src/fields/Checkbox/CheckboxBox.spec.tsx +395 -0
  742. package/src/fields/Checkbox/CheckboxCard.spec.tsx +197 -0
  743. package/src/fields/Checkbox/CheckboxFieldFrame.spec.tsx +116 -0
  744. package/src/fields/Checkbox/CheckboxGroup.stories.tsx +15 -0
  745. package/src/fields/Checkbox/CheckboxGroup.tsx +77 -70
  746. package/src/fields/Checkbox/checkboxGroupContext.ts +12 -0
  747. package/src/fields/DatePicker/Calendar.spec.tsx +6 -5
  748. package/src/fields/DatePicker/DatePicker.stories.tsx +13 -0
  749. package/src/fields/DatePicker/DatetimePicker.catalog.tsx +586 -0
  750. package/src/fields/DatePicker/DatetimePicker.native.tsx +243 -0
  751. package/src/fields/DatePicker/DatetimePicker.tsx +2 -584
  752. package/src/fields/DatePicker/catalog.tsx +450 -0
  753. package/src/fields/DatePicker/index.native.tsx +261 -0
  754. package/src/fields/DatePicker/index.tsx +20 -448
  755. package/src/fields/DatePicker/parts.tsx +11 -6
  756. package/src/fields/Duration/Duration.spec.tsx +50 -0
  757. package/src/fields/Duration/Duration.stories.tsx +21 -0
  758. package/src/fields/Duration/index.tsx +43 -5
  759. package/src/fields/FileUpload/index.tsx +5 -1
  760. package/src/fields/Input/Input.spec.tsx +3 -1
  761. package/src/fields/PhoneInput/PhoneInput.spec.tsx +16 -63
  762. package/src/fields/PhoneInput/PhoneInput.tvalue-source.spec.ts +23 -0
  763. package/src/fields/PhoneInput/index.tsx +10 -3
  764. package/src/fields/Rating/index.tsx +9 -1
  765. package/src/fields/SearchInput/SearchInput.spec.tsx +20 -0
  766. package/src/fields/SearchInput/index.tsx +6 -0
  767. package/src/fields/Select/Select.stories.tsx +23 -1
  768. package/src/fields/Select/index.tsx +87 -1
  769. package/src/fields/Signature/Signature.spec.tsx +22 -3
  770. package/src/fields/Signature/index.tsx +16 -7
  771. package/src/fields/Slider/index.tsx +4 -1
  772. package/src/fields/Switch/index.tsx +14 -12
  773. package/src/fields/TextArea/TextArea.spec.tsx +68 -0
  774. package/src/fields/TextArea/index.tsx +23 -5
  775. package/src/fields/TimePicker/TimePicker.stories.tsx +13 -0
  776. package/src/fields/TimePicker/catalog.tsx +265 -0
  777. package/src/fields/TimePicker/index.native.tsx +229 -0
  778. package/src/fields/TimePicker/index.tsx +6 -261
  779. package/src/fields/TimeRangeScrubber/TimeRangeScrubber.spec.tsx +36 -0
  780. package/src/fields/TimeRangeScrubber/geometry.ts +13 -0
  781. package/src/fields/TimeRangeScrubber/index.tsx +49 -8
  782. package/src/fields/nativeDateTime/OsDateTimeSheet.spec.ts +12 -0
  783. package/src/fields/nativeDateTime/OsDateTimeSheet.tsx +197 -0
  784. package/src/fields/nativeDateTime/osDateTimeIosDisplay.ts +4 -0
  785. package/src/fields/nativeSelect.spec.ts +28 -0
  786. package/src/fields/nativeSelect.ts +13 -0
  787. package/src/index.ts +2 -2
  788. package/src/themedPrimitives.tsx +10 -6
  789. package/types/Button/index.d.ts +3 -2
  790. package/types/Button/index.d.ts.map +1 -1
  791. package/types/Chip/index.d.ts.map +1 -1
  792. package/types/ContextualSaveBar/index.d.ts.map +1 -1
  793. package/types/DescriptionList/index.d.ts.map +1 -1
  794. package/types/ErrorSummary.d.ts.map +1 -1
  795. package/types/FloatingPanel/useFloatingPanel.d.ts +13 -0
  796. package/types/FloatingPanel/useFloatingPanel.d.ts.map +1 -1
  797. package/types/InputParts/index.d.ts.map +1 -1
  798. package/types/fields/Checkbox/Checkbox.d.ts.map +1 -1
  799. package/types/fields/Checkbox/CheckboxGroup.d.ts.map +1 -1
  800. package/types/fields/Checkbox/checkboxGroupContext.d.ts +8 -0
  801. package/types/fields/Checkbox/checkboxGroupContext.d.ts.map +1 -0
  802. package/types/fields/DatePicker/DatetimePicker.catalog.d.ts +35 -0
  803. package/types/fields/DatePicker/DatetimePicker.catalog.d.ts.map +1 -0
  804. package/types/fields/DatePicker/DatetimePicker.d.ts +2 -32
  805. package/types/fields/DatePicker/DatetimePicker.d.ts.map +1 -1
  806. package/types/fields/DatePicker/DatetimePicker.native.d.ts +26 -0
  807. package/types/fields/DatePicker/DatetimePicker.native.d.ts.map +1 -0
  808. package/types/fields/DatePicker/catalog.d.ts +42 -0
  809. package/types/fields/DatePicker/catalog.d.ts.map +1 -0
  810. package/types/fields/DatePicker/index.d.ts +2 -39
  811. package/types/fields/DatePicker/index.d.ts.map +1 -1
  812. package/types/fields/DatePicker/index.native.d.ts +40 -0
  813. package/types/fields/DatePicker/index.native.d.ts.map +1 -0
  814. package/types/fields/DatePicker/parts.d.ts.map +1 -1
  815. package/types/fields/Duration/index.d.ts +2 -0
  816. package/types/fields/Duration/index.d.ts.map +1 -1
  817. package/types/fields/FileUpload/index.d.ts.map +1 -1
  818. package/types/fields/PhoneInput/index.d.ts.map +1 -1
  819. package/types/fields/Rating/index.d.ts.map +1 -1
  820. package/types/fields/SearchInput/index.d.ts.map +1 -1
  821. package/types/fields/Select/index.d.ts +6 -1
  822. package/types/fields/Select/index.d.ts.map +1 -1
  823. package/types/fields/Signature/index.d.ts.map +1 -1
  824. package/types/fields/Slider/index.d.ts.map +1 -1
  825. package/types/fields/Switch/index.d.ts.map +1 -1
  826. package/types/fields/TextArea/index.d.ts.map +1 -1
  827. package/types/fields/TimePicker/catalog.d.ts +41 -0
  828. package/types/fields/TimePicker/catalog.d.ts.map +1 -0
  829. package/types/fields/TimePicker/index.d.ts +2 -38
  830. package/types/fields/TimePicker/index.d.ts.map +1 -1
  831. package/types/fields/TimePicker/index.native.d.ts +31 -0
  832. package/types/fields/TimePicker/index.native.d.ts.map +1 -0
  833. package/types/fields/TimeRangeScrubber/geometry.d.ts +8 -0
  834. package/types/fields/TimeRangeScrubber/geometry.d.ts.map +1 -1
  835. package/types/fields/TimeRangeScrubber/index.d.ts +1 -1
  836. package/types/fields/TimeRangeScrubber/index.d.ts.map +1 -1
  837. package/types/fields/nativeDateTime/OsDateTimeSheet.d.ts +12 -0
  838. package/types/fields/nativeDateTime/OsDateTimeSheet.d.ts.map +1 -0
  839. package/types/fields/nativeDateTime/osDateTimeIosDisplay.d.ts +3 -0
  840. package/types/fields/nativeDateTime/osDateTimeIosDisplay.d.ts.map +1 -0
  841. package/types/fields/nativeSelect.d.ts +12 -0
  842. package/types/fields/nativeSelect.d.ts.map +1 -0
  843. package/types/index.d.ts +2 -2
  844. package/types/index.d.ts.map +1 -1
  845. package/types/themedPrimitives.d.ts.map +1 -1
@@ -426,4 +426,72 @@ describe("TextArea", () => {
426
426
  expect(result.container.querySelector("label")?.textContent).toContain("Description");
427
427
  });
428
428
  });
429
+
430
+ describe("RM-TXT-6 fontWeight and T-VALUE textAccent", () => {
431
+ function inkWeight(el: Element | null): string {
432
+ if (!el) return "";
433
+ const html = el as HTMLElement;
434
+ const fromStyle = html.style.fontWeight || getComputedStyle(html).fontWeight;
435
+ if (fromStyle && fromStyle !== "normal" && fromStyle !== "") return String(fromStyle);
436
+ for (const cls of String(html.className ?? "").split(/\s+/)) {
437
+ const match = cls.match(/(?:^|_)(?:fw|fow|fontWeight)-?(\d+)/i);
438
+ if (match) return match[1];
439
+ }
440
+ return String(fromStyle || "");
441
+ }
442
+
443
+ function isBold(weight: string): boolean {
444
+ const n = Number.parseInt(weight, 10);
445
+ if (!Number.isNaN(n)) return n >= 700;
446
+ return weight === "bold";
447
+ }
448
+
449
+ function colorToken(el: Element | null): string {
450
+ if (!el) return "";
451
+ const html = el as HTMLElement;
452
+ const cls = String(html.className ?? "");
453
+ // Tamagui atomics (`_col-color11`, `_col-color`) — happy-dom often
454
+ // leaves getComputedStyle().color empty for theme tokens.
455
+ const match = cls.match(/_col-(color\d*)\b/);
456
+ if (match) return match[1];
457
+ const fromStyle = html.style.color || getComputedStyle(html).color || "";
458
+ return fromStyle;
459
+ }
460
+
461
+ it("bold: multiline value rides 700 with its helper (RM-TXT-6)", () => {
462
+ const result = renderWithProviders(
463
+ <Preset overrides={{ fontWeight: "bold" }}>
464
+ <TextArea label="Notes" helperText="Be specific" defaultValue="hello" />
465
+ </Preset>,
466
+ );
467
+ const textarea = result.getTextArea() as HTMLTextAreaElement;
468
+ const helper = result.findTextElement("Be specific") as HTMLElement | undefined;
469
+ expect(textarea).toBeTruthy();
470
+ expect(helper).toBeTruthy();
471
+ expect(isBold(inkWeight(textarea))).toBe(true);
472
+ expect(isBold(inkWeight(helper ?? null))).toBe(true);
473
+ });
474
+
475
+ it("T-VALUE ignores textAccent: value color at low equals high (no inversion)", () => {
476
+ const low = renderWithProviders(
477
+ <Preset overrides={{ textAccent: "low" }}>
478
+ <TextArea label="Notes" helperText="Be specific" defaultValue="hello" />
479
+ </Preset>,
480
+ );
481
+ const high = renderWithProviders(
482
+ <Preset overrides={{ textAccent: "high" }}>
483
+ <TextArea label="Notes" helperText="Be specific" defaultValue="hello" />
484
+ </Preset>,
485
+ );
486
+ const lowValue = colorToken(low.getTextArea());
487
+ const highValue = colorToken(high.getTextArea());
488
+ expect(lowValue).toBeTruthy();
489
+ expect(lowValue).toBe(highValue);
490
+ // Full ramp, not the accent floor (`$color11`).
491
+ expect(lowValue).toMatch(/^color$|^rgb|^#/i);
492
+ expect(lowValue).not.toMatch(/color11/);
493
+ low.unmount();
494
+ high.unmount();
495
+ });
496
+ });
429
497
  });
@@ -250,12 +250,17 @@ export function TextArea({
250
250
  >
251
251
  <InputParts.TextArea
252
252
  innerRef={textAreaRef}
253
+ size={knobProps.sizeToken}
253
254
  {...knobProps.body}
254
- color={knobProps.textAccentColor}
255
+ // fontWeight after size, and baked into ThemedTextArea's size
256
+ // variant: Tamagui's size atomic otherwise pins 400 (RM-TXT-6).
257
+ fontWeight={knobProps.body.fontWeight}
258
+ // T-VALUE: entered text stays the full ramp. textAccent honours
259
+ // on the FieldLayout helper, not here.
260
+ color="$color"
255
261
  backgroundColor="transparent"
256
262
  borderWidth={0}
257
263
  borderColor="transparent"
258
- size={knobProps.sizeToken}
259
264
  {...resizeStyle}
260
265
  multiline
261
266
  {...textAreaProps}
@@ -265,18 +270,31 @@ export function TextArea({
265
270
  // vertical resize is the autoResize=false fallback only when
266
271
  // the host does not clip — we keep none so LC-71 inset ring
267
272
  // and overflow:hidden stay intact.
273
+ // fontWeight is inline so it beats the size atomic in the
274
+ // stylesheet (RM-TXT-6); consumer style still ejects after.
268
275
  style: {
269
276
  resize: "none",
270
277
  overflowWrap: "anywhere",
278
+ ...(knobProps.body.fontWeight != null
279
+ ? { fontWeight: knobProps.body.fontWeight }
280
+ : undefined),
271
281
  ...(typeof (textAreaProps as { style?: object } | undefined)?.style === "object"
272
282
  ? (textAreaProps as { style?: object }).style
273
283
  : undefined),
274
284
  },
275
285
  ...(countInside ? { paddingBottom: "$5" } : undefined),
276
286
  }
277
- : countInside
278
- ? { paddingBottom: "$5" }
279
- : undefined)}
287
+ : {
288
+ style: {
289
+ ...(knobProps.body.fontWeight != null
290
+ ? { fontWeight: knobProps.body.fontWeight }
291
+ : undefined),
292
+ ...(typeof (textAreaProps as { style?: object } | undefined)?.style === "object"
293
+ ? (textAreaProps as { style?: object }).style
294
+ : undefined),
295
+ },
296
+ ...(countInside ? { paddingBottom: "$5" } : undefined),
297
+ })}
280
298
  placeholderTextColor={theme.placeholderColor?.val ?? formCommonColors.muted}
281
299
  {...(maxLength != null ? { maxLength } : undefined)}
282
300
  {...(placeholder !== undefined ? { placeholder } : undefined)}
@@ -35,6 +35,11 @@ const meta: Meta<typeof TimePicker> = {
35
35
  minuteStep: { control: "number", description: "Minute increment step" },
36
36
  showSeconds: { control: "boolean" },
37
37
  placeholder: { control: "text" },
38
+ native: {
39
+ control: "boolean",
40
+ description:
41
+ "On device, omit (default) for the OS time wheel. Set false for the catalog panel.",
42
+ },
38
43
  },
39
44
  };
40
45
 
@@ -224,3 +229,11 @@ export const InTable: Story = {
224
229
  );
225
230
  },
226
231
  };
232
+
233
+ export const NativeOsWheel: Story = {
234
+ name: "Native OS wheel",
235
+ args: {
236
+ label: "Start Time",
237
+ helperText: "Device default: iOS spinner / Android dialog. native={false} keeps the catalog.",
238
+ },
239
+ };
@@ -0,0 +1,265 @@
1
+ import type { ReactNode } from "react";
2
+ import { useCallback, useEffect, useMemo, useState } from "react";
3
+ import type { LabelProps, SizeTokens } from "tamagui";
4
+ import { isWeb } from "tamagui";
5
+ import { Skeleton } from "../../Skeleton";
6
+ import { Field, FieldLayout } from "../../fieldLayout";
7
+ import { FloatingPanel } from "../../FloatingPanel";
8
+ import { Input as InputParts } from "../../InputParts";
9
+ import { t } from "../../shared/t";
10
+ import {
11
+ getFieldError,
12
+ mergeFieldHandler,
13
+ useFormField,
14
+ useResolvedValidators,
15
+ } from "../../shared/utils";
16
+ import type { AnyFormApi } from "../../types";
17
+ import {
18
+ TimePanel,
19
+ TimePickerClearButton,
20
+ TimePickerInputTrigger,
21
+ formatTimeDisplay,
22
+ isValidTimeString,
23
+ type TimeFormat,
24
+ } from "./parts";
25
+
26
+ export type { TimeFormat } from "./parts";
27
+ export { formatTimeDisplay, isValidTimeString, parseTimeString, toTimeString } from "./parts";
28
+
29
+ export interface TimePickerProps {
30
+ name?: string;
31
+ form?: AnyFormApi;
32
+ validators?: Record<string, unknown>;
33
+ label?: ReactNode;
34
+ labelProps?: Omit<LabelProps, "htmlFor" | "ref">;
35
+ helperText?: string;
36
+ error?: string | boolean;
37
+ required?: boolean;
38
+ size?: SizeTokens;
39
+ id?: string;
40
+ /** Time string in "HH:MM" or "HH:MM:SS" 24h format */
41
+ value?: string;
42
+ defaultValue?: string;
43
+ onChange?: (value: string) => void;
44
+ onBlur?: (...args: any[]) => void;
45
+ disabled?: boolean;
46
+ readOnly?: boolean;
47
+ /** Display format (default "12h") */
48
+ timeFormat?: TimeFormat;
49
+ /** Minute step increment (default 5) */
50
+ minuteStep?: number;
51
+ /** Show seconds column (default false) */
52
+ showSeconds?: boolean;
53
+ placeholder?: string;
54
+ clockIcon?: ReactNode;
55
+ /** When true, renders a skeleton placeholder instead of the time picker */
56
+ skeleton?: boolean;
57
+ /** When true, applies compact density (tighter layout gaps; control size unchanged) */
58
+ compact?: boolean;
59
+ /** Native only. Omit for the OS time wheel; `false` keeps the catalog panel. */
60
+ native?: boolean;
61
+ }
62
+
63
+ export function TimePicker({
64
+ name,
65
+ form: formProp,
66
+ validators,
67
+ label,
68
+ labelProps,
69
+ helperText,
70
+ error,
71
+ required,
72
+ size,
73
+ id: idProp,
74
+ value: valueProp,
75
+ defaultValue,
76
+ onChange,
77
+ onBlur,
78
+ disabled,
79
+ readOnly,
80
+ timeFormat = "12h",
81
+ minuteStep = 5,
82
+ showSeconds = false,
83
+ placeholder = t("Select time"),
84
+ clockIcon,
85
+ skeleton,
86
+ compact,
87
+ }: TimePickerProps) {
88
+ const { resolvedForm, knobProps, id } = useFormField({
89
+ form: formProp,
90
+ id: idProp,
91
+ compact,
92
+ });
93
+ const resolvedValidators = useResolvedValidators(required, validators, label, name);
94
+ const [open, setOpen] = useState(false);
95
+ const [internalValue, setInternalValue] = useState<string>(() => valueProp ?? defaultValue ?? "");
96
+ useEffect(() => {
97
+ if (valueProp === undefined) return;
98
+ setInternalValue(valueProp);
99
+ }, [valueProp]);
100
+ const value = internalValue;
101
+ const valueIsInvalid = !!value.trim() && !isValidTimeString(value);
102
+ const formatError = valueIsInvalid ? t("Invalid time value") : undefined;
103
+
104
+ const displayValue = useMemo(
105
+ () => (valueIsInvalid ? "" : formatTimeDisplay(value, timeFormat, showSeconds)),
106
+ [value, valueIsInvalid, timeFormat, showSeconds],
107
+ );
108
+
109
+ const handleChange = useCallback(
110
+ (time: string, fieldChange?: (v: any) => void) => {
111
+ setInternalValue(time);
112
+ fieldChange?.(time);
113
+ onChange?.(time);
114
+ },
115
+ [onChange],
116
+ );
117
+
118
+ const handleClear = useCallback(
119
+ (fieldChange?: (v: any) => void) => {
120
+ handleChange("", fieldChange);
121
+ },
122
+ [handleChange],
123
+ );
124
+
125
+ const renderTrigger = (
126
+ triggerValue: string,
127
+ hasError?: boolean,
128
+ fieldChange?: (v: any) => void,
129
+ readonly?: boolean,
130
+ ) => (
131
+ <TimePickerInputTrigger
132
+ value={triggerValue}
133
+ placeholder={placeholder}
134
+ disabled={disabled}
135
+ error={hasError}
136
+ id={id}
137
+ clockIcon={clockIcon}
138
+ onOpen={() => setOpen(true)}
139
+ onClear={() => handleClear(fieldChange)}
140
+ aria-label={label ? undefined : t("Time")}
141
+ aria-readonly={readonly || undefined}
142
+ aria-required={required || undefined}
143
+ aria-invalid={hasError || undefined}
144
+ />
145
+ );
146
+
147
+ const panelContent = (currentValue: string, onValueChange: (next: string) => void) => (
148
+ <TimePanel
149
+ value={currentValue || "00:00"}
150
+ onChange={onValueChange}
151
+ timeFormat={timeFormat}
152
+ minuteStep={minuteStep}
153
+ showSeconds={showSeconds}
154
+ />
155
+ );
156
+
157
+ if (skeleton) {
158
+ return (
159
+ <FieldLayout id={id} label={label} size={size} knobProps={knobProps}>
160
+ <Skeleton variant="rounded" width="100%" height={knobProps.sizeToken} />
161
+ </FieldLayout>
162
+ );
163
+ }
164
+
165
+ const renderField = (
166
+ triggerValue: string,
167
+ hasError?: boolean,
168
+ blurHandler?: (...args: any[]) => void,
169
+ fieldChange?: (v: any) => void,
170
+ fieldValue?: string,
171
+ ) => {
172
+ if (readOnly) {
173
+ return renderTrigger(triggerValue, hasError, undefined, true);
174
+ }
175
+ return (
176
+ <FloatingPanel
177
+ open={open}
178
+ onOpenChange={(isOpen) => {
179
+ setOpen(isOpen);
180
+ if (!isOpen) blurHandler?.();
181
+ }}
182
+ disabled={disabled}
183
+ sizing="grow"
184
+ widthMode="at-least-trigger"
185
+ triggerA11y={{
186
+ label: (typeof label === "string" && label) || t("Time"),
187
+ value: triggerValue || placeholder,
188
+ hint: typeof helperText === "string" ? helperText : undefined,
189
+ }}
190
+ trigger={renderTrigger(triggerValue, hasError, fieldChange)}
191
+ triggerEnd={
192
+ !isWeb && triggerValue ? (
193
+ <TimePickerClearButton onClear={() => handleClear(fieldChange)} disabled={disabled} />
194
+ ) : undefined
195
+ }
196
+ >
197
+ {panelContent(fieldValue ?? value, (time) => handleChange(time, fieldChange))}
198
+ </FloatingPanel>
199
+ );
200
+ };
201
+
202
+ if (!resolvedForm || !name) {
203
+ return (
204
+ <FieldLayout
205
+ id={id}
206
+ label={label}
207
+ labelProps={labelProps}
208
+ error={error || formatError}
209
+ helperText={helperText}
210
+ required={required}
211
+ size={size}
212
+ knobProps={knobProps}
213
+ onBlur={onBlur}
214
+ disabled={disabled}
215
+ >
216
+ <InputParts size={size || knobProps.sizeToken}>
217
+ {renderField(displayValue, !!error || valueIsInvalid, onBlur)}
218
+ </InputParts>
219
+ </FieldLayout>
220
+ );
221
+ }
222
+
223
+ return (
224
+ <Field
225
+ form={resolvedForm}
226
+ name={name}
227
+ defaultValue={defaultValue}
228
+ validators={resolvedValidators}
229
+ >
230
+ {(field) => {
231
+ const resolvedError = getFieldError(field, error);
232
+ const fieldValue = (field.state.value as string) ?? "";
233
+ const fieldIsInvalid = !!fieldValue.trim() && !isValidTimeString(fieldValue);
234
+ const fieldFormatError = fieldIsInvalid ? t("Invalid time value") : undefined;
235
+ const fieldDisplay = fieldIsInvalid
236
+ ? ""
237
+ : formatTimeDisplay(fieldValue, timeFormat, showSeconds);
238
+ return (
239
+ <FieldLayout
240
+ id={id}
241
+ label={label}
242
+ labelProps={labelProps}
243
+ error={resolvedError || fieldFormatError}
244
+ helperText={helperText}
245
+ required={required}
246
+ size={size}
247
+ knobProps={knobProps}
248
+ onBlur={mergeFieldHandler(field, "handleBlur", onBlur)}
249
+ disabled={disabled}
250
+ >
251
+ <InputParts size={size || knobProps.sizeToken}>
252
+ {renderField(
253
+ fieldDisplay,
254
+ !!resolvedError || fieldIsInvalid,
255
+ mergeFieldHandler(field, "handleBlur", onBlur),
256
+ (v) => field.handleChange(v),
257
+ fieldValue,
258
+ )}
259
+ </InputParts>
260
+ </FieldLayout>
261
+ );
262
+ }}
263
+ </Field>
264
+ );
265
+ }
@@ -0,0 +1,229 @@
1
+ /**
2
+ * Native TimePicker — iOS time wheel / Android time dialog.
3
+ */
4
+ import { useCallback, useEffect, useState } from "react";
5
+ import { Pressable as RNPressable } from "react-native";
6
+ import { Field, FieldLayout } from "../../fieldLayout";
7
+ import { Input as InputParts } from "../../InputParts";
8
+ import { Skeleton } from "../../Skeleton";
9
+ import { t } from "../../shared/t";
10
+ import {
11
+ getFieldError,
12
+ mergeFieldHandler,
13
+ useFormField,
14
+ useResolvedValidators,
15
+ } from "../../shared/utils";
16
+ import { OsDateTimeSheet } from "../nativeDateTime/OsDateTimeSheet";
17
+ import { TimePicker as CatalogTimePicker } from "./catalog";
18
+ import {
19
+ TimePickerInputTrigger,
20
+ formatTimeDisplay,
21
+ isValidTimeString,
22
+ parseTimeString,
23
+ toTimeString,
24
+ type TimeFormat,
25
+ } from "./parts";
26
+
27
+ export type TimePickerProps = {
28
+ name?: string;
29
+ form?: import("../../types").AnyFormApi;
30
+ validators?: Record<string, unknown>;
31
+ label?: import("react").ReactNode;
32
+ labelProps?: Omit<import("tamagui").LabelProps, "htmlFor" | "ref">;
33
+ helperText?: string;
34
+ error?: string | boolean;
35
+ required?: boolean;
36
+ size?: import("tamagui").SizeTokens;
37
+ id?: string;
38
+ value?: string;
39
+ defaultValue?: string;
40
+ onChange?: (value: string) => void;
41
+ onBlur?: (...args: any[]) => void;
42
+ disabled?: boolean;
43
+ readOnly?: boolean;
44
+ timeFormat?: TimeFormat;
45
+ minuteStep?: number;
46
+ showSeconds?: boolean;
47
+ placeholder?: string;
48
+ clockIcon?: import("react").ReactNode;
49
+ skeleton?: boolean;
50
+ compact?: boolean;
51
+ native?: boolean;
52
+ };
53
+
54
+ export type { TimeFormat } from "./parts";
55
+ export { formatTimeDisplay, isValidTimeString, parseTimeString, toTimeString } from "./parts";
56
+
57
+ function timeToDate(value: string): Date {
58
+ const { h, m, s } = parseTimeString(value);
59
+ const d = new Date();
60
+ d.setHours(h, m, s, 0);
61
+ return d;
62
+ }
63
+
64
+ function dateToTime(date: Date, showSeconds: boolean): string {
65
+ return toTimeString(
66
+ date.getHours(),
67
+ date.getMinutes(),
68
+ showSeconds ? date.getSeconds() : undefined,
69
+ );
70
+ }
71
+
72
+ export function TimePicker(props: TimePickerProps) {
73
+ if (props.native === false) {
74
+ return <CatalogTimePicker {...props} />;
75
+ }
76
+ const {
77
+ name,
78
+ form: formProp,
79
+ validators,
80
+ label,
81
+ labelProps,
82
+ helperText,
83
+ error,
84
+ required,
85
+ size,
86
+ id: idProp,
87
+ value: valueProp,
88
+ defaultValue,
89
+ onChange,
90
+ onBlur,
91
+ disabled,
92
+ readOnly,
93
+ timeFormat = "12h",
94
+ showSeconds = false,
95
+ placeholder = t("Select time"),
96
+ clockIcon,
97
+ skeleton,
98
+ compact,
99
+ } = props;
100
+ const { resolvedForm, knobProps, id } = useFormField({
101
+ form: formProp,
102
+ id: idProp,
103
+ compact,
104
+ });
105
+ const resolvedValidators = useResolvedValidators(required, validators, label, name);
106
+ const [open, setOpen] = useState(false);
107
+ const [internalValue, setInternalValue] = useState<string>(() => valueProp ?? defaultValue ?? "");
108
+ useEffect(() => {
109
+ if (valueProp === undefined) return;
110
+ setInternalValue(valueProp);
111
+ }, [valueProp]);
112
+ const value = internalValue;
113
+ const valueIsInvalid = !!value.trim() && !isValidTimeString(value);
114
+ const formatError = valueIsInvalid ? t("Invalid time value") : undefined;
115
+
116
+ const commit = useCallback(
117
+ (time: string, fieldChange?: (v: unknown) => void) => {
118
+ setInternalValue(time);
119
+ fieldChange?.(time);
120
+ onChange?.(time);
121
+ setOpen(false);
122
+ },
123
+ [onChange],
124
+ );
125
+
126
+ const renderControl = (
127
+ current: string,
128
+ hasError?: boolean,
129
+ fieldChange?: (v: unknown) => void,
130
+ readonly?: boolean,
131
+ ) => (
132
+ <>
133
+ <RNPressable
134
+ onPress={() => !disabled && setOpen(true)}
135
+ disabled={disabled}
136
+ accessibilityRole="button"
137
+ accessibilityLabel={label ? undefined : t("Time")}
138
+ style={{ width: "100%" }}
139
+ >
140
+ <TimePickerInputTrigger
141
+ value={valueIsInvalid ? "" : formatTimeDisplay(current, timeFormat, showSeconds)}
142
+ placeholder={placeholder}
143
+ disabled={disabled}
144
+ error={hasError}
145
+ id={id}
146
+ clockIcon={clockIcon}
147
+ onOpen={() => {}}
148
+ onClear={() => commit("", fieldChange)}
149
+ aria-label={label ? undefined : t("Time")}
150
+ aria-readonly={readonly || undefined}
151
+ aria-required={required || undefined}
152
+ aria-invalid={hasError || undefined}
153
+ />
154
+ </RNPressable>
155
+ <OsDateTimeSheet
156
+ open={open}
157
+ value={timeToDate(current || "00:00")}
158
+ mode="time"
159
+ onCancel={() => setOpen(false)}
160
+ onConfirm={(date) => commit(dateToTime(date, showSeconds), fieldChange)}
161
+ />
162
+ </>
163
+ );
164
+
165
+ if (skeleton) {
166
+ return (
167
+ <FieldLayout id={id} label={label} size={size} knobProps={knobProps}>
168
+ <Skeleton variant="rounded" width="100%" height={knobProps.sizeToken} />
169
+ </FieldLayout>
170
+ );
171
+ }
172
+
173
+ if (!resolvedForm || !name) {
174
+ return (
175
+ <FieldLayout
176
+ id={id}
177
+ label={label}
178
+ labelProps={labelProps}
179
+ error={formatError || error}
180
+ helperText={helperText}
181
+ required={required}
182
+ size={size}
183
+ knobProps={knobProps}
184
+ onBlur={onBlur}
185
+ disabled={disabled}
186
+ >
187
+ <InputParts size={size || knobProps.sizeToken}>
188
+ {renderControl(value, !!(formatError || error), undefined, readOnly)}
189
+ </InputParts>
190
+ </FieldLayout>
191
+ );
192
+ }
193
+
194
+ return (
195
+ <Field
196
+ form={resolvedForm}
197
+ name={name}
198
+ defaultValue={defaultValue}
199
+ validators={resolvedValidators}
200
+ >
201
+ {(field) => {
202
+ const resolvedError = getFieldError(field, error) || formatError;
203
+ const current = (field.state.value as string | undefined) ?? value;
204
+ return (
205
+ <FieldLayout
206
+ id={id}
207
+ label={label}
208
+ labelProps={labelProps}
209
+ error={resolvedError}
210
+ helperText={helperText}
211
+ required={required}
212
+ size={size}
213
+ knobProps={knobProps}
214
+ disabled={disabled}
215
+ >
216
+ <InputParts size={size || knobProps.sizeToken}>
217
+ {renderControl(
218
+ current,
219
+ !!resolvedError,
220
+ mergeFieldHandler(field, "handleChange"),
221
+ readOnly,
222
+ )}
223
+ </InputParts>
224
+ </FieldLayout>
225
+ );
226
+ }}
227
+ </Field>
228
+ );
229
+ }