@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
@@ -0,0 +1,230 @@
1
+ import { action } from "@multiplatform.one/storybook";
2
+ import type { Meta, StoryObj } from "@storybook/react-native-web-vite";
3
+ import {
4
+ EnvelopeIcon,
5
+ EyeIcon,
6
+ MagnifyingGlassIcon,
7
+ WarningCircleIcon,
8
+ } from "@phosphor-icons/react";
9
+ import { useState } from "react";
10
+ import { Paragraph, YStack } from "tamagui";
11
+ import { Input as InputParts } from "./index";
12
+
13
+ const meta: Meta<typeof InputParts> = {
14
+ title: "Forms/InputParts",
15
+ component: InputParts,
16
+ parameters: {
17
+ status: { type: "beta" },
18
+ docs: {
19
+ description: {
20
+ component:
21
+ "The unstyled anatomy the Input field is assembled from, for consumers who need a shape the field does not offer. `InputParts.Box` is the bordered frame that owns the focus ring; `Area` is the text-entry itself and never rings; `Icon`, `Button` and `Section` are the slots either side of it; `Label`, `Info` and `Meta` are the chrome above and below. Reach for the `Input` FIELD first — this is the escape hatch.",
22
+ },
23
+ },
24
+ },
25
+ };
26
+
27
+ export default meta;
28
+ type Story = StoryObj<typeof InputParts>;
29
+
30
+ /**
31
+ * The whole anatomy at once: Label above, Box holding a leading Icon and the
32
+ * Area, Meta reserving the caption line underneath.
33
+ */
34
+ export const Anatomy: Story = {
35
+ render: () => (
36
+ <InputParts width={320}>
37
+ <InputParts.Label htmlFor="anatomy-email">Email</InputParts.Label>
38
+ <InputParts.Box>
39
+ <InputParts.Icon adornment="leading">
40
+ <EnvelopeIcon />
41
+ </InputParts.Icon>
42
+ <InputParts.Area
43
+ id="anatomy-email"
44
+ placeholder="you@example.com"
45
+ onChangeText={action("onChangeText")}
46
+ />
47
+ </InputParts.Box>
48
+ <InputParts.Meta helperText="We only use this to send receipts." />
49
+ </InputParts>
50
+ ),
51
+ };
52
+
53
+ /**
54
+ * RING-ON-BOX (LC-71): the Box carries the focus ring so adornments sit inside
55
+ * it; the Area's own outline is killed. Tab into the field and the whole frame
56
+ * rings once, not the text run.
57
+ */
58
+ export const FocusRingOnTheBox: Story = {
59
+ render: () => (
60
+ <YStack gap="$4" width={320}>
61
+ <Paragraph size="$2">Tab in — the border box rings, the input does not.</Paragraph>
62
+ <InputParts>
63
+ <InputParts.Box>
64
+ <InputParts.Icon adornment="leading">
65
+ <MagnifyingGlassIcon />
66
+ </InputParts.Icon>
67
+ <InputParts.Area placeholder="Search" onChangeText={action("onChangeText")} />
68
+ </InputParts.Box>
69
+ </InputParts>
70
+ </YStack>
71
+ ),
72
+ };
73
+
74
+ /** Leading and trailing slots. The trailing end-cap is square by size recipe. */
75
+ export const Adornments: Story = {
76
+ render: () => (
77
+ <YStack gap="$4" width={320}>
78
+ <InputParts>
79
+ <InputParts.Box>
80
+ <InputParts.Icon adornment="leading">
81
+ <MagnifyingGlassIcon />
82
+ </InputParts.Icon>
83
+ <InputParts.Area placeholder="Leading icon" />
84
+ </InputParts.Box>
85
+ </InputParts>
86
+ <InputParts>
87
+ <InputParts.Box>
88
+ <InputParts.Area placeholder="Trailing icon" />
89
+ <InputParts.Icon adornment="trailing">
90
+ <EnvelopeIcon />
91
+ </InputParts.Icon>
92
+ </InputParts.Box>
93
+ </InputParts>
94
+ <InputParts>
95
+ <InputParts.Box>
96
+ <InputParts.Icon adornment="leading">
97
+ <MagnifyingGlassIcon />
98
+ </InputParts.Icon>
99
+ <InputParts.Area placeholder="Both ends" />
100
+ <InputParts.Icon adornment="trailing">
101
+ <EnvelopeIcon />
102
+ </InputParts.Icon>
103
+ </InputParts.Box>
104
+ </InputParts>
105
+ </YStack>
106
+ ),
107
+ };
108
+
109
+ /**
110
+ * `InputParts.Button` is the pressable end-cap — a reveal toggle, a clear, a
111
+ * copy. It squares off to the control height so the frame stays rectangular.
112
+ */
113
+ export const TrailingButton: Story = {
114
+ render: () => {
115
+ const Example = () => {
116
+ const [secure, setSecure] = useState(true);
117
+ return (
118
+ <InputParts width={320}>
119
+ <InputParts.Label htmlFor="parts-password">Password</InputParts.Label>
120
+ <InputParts.Box paddingInlineEnd={0}>
121
+ <InputParts.Area
122
+ id="parts-password"
123
+ placeholder="••••••••"
124
+ secureTextEntry={secure}
125
+ onChangeText={action("onChangeText")}
126
+ />
127
+ <InputParts.Button
128
+ glyphRing
129
+ type="button"
130
+ aria-label={secure ? "Show password" : "Hide password"}
131
+ onPress={() => {
132
+ setSecure((prev) => !prev);
133
+ action("togglePasswordVisibility")(!secure);
134
+ }}
135
+ >
136
+ <InputParts.Icon aria-hidden>
137
+ <EyeIcon />
138
+ </InputParts.Icon>
139
+ </InputParts.Button>
140
+ </InputParts.Box>
141
+ <InputParts.Meta helperText={secure ? "Hidden" : "Visible"} />
142
+ </InputParts>
143
+ );
144
+ };
145
+ return <Example />;
146
+ },
147
+ };
148
+
149
+ /**
150
+ * STABLE GROUND (Axiom 8 / DG-FORM-04): `Meta` owns ONE caption slot. The error
151
+ * replaces the helper in place, so surfacing it shifts nothing below.
152
+ */
153
+ export const MetaReservesOneLine: Story = {
154
+ render: () => (
155
+ <YStack gap="$5" width={320}>
156
+ <InputParts>
157
+ <InputParts.Label>Helper</InputParts.Label>
158
+ <InputParts.Box>
159
+ <InputParts.Area placeholder="Valid" />
160
+ </InputParts.Box>
161
+ <InputParts.Meta helperText="Two to thirty characters." />
162
+ </InputParts>
163
+ <InputParts>
164
+ <InputParts.Label>Error replaces it</InputParts.Label>
165
+ <InputParts.Box>
166
+ <InputParts.Area placeholder="Invalid" aria-invalid />
167
+ <InputParts.Icon adornment="trailing" color="$red10">
168
+ <WarningCircleIcon aria-hidden />
169
+ </InputParts.Icon>
170
+ </InputParts.Box>
171
+ <InputParts.Meta
172
+ helperText="Two to thirty characters."
173
+ displayError="Enter at least two characters."
174
+ />
175
+ </InputParts>
176
+ </YStack>
177
+ ),
178
+ };
179
+
180
+ /** `Info` is the caption primitive `Meta` picks; use it directly for prose. */
181
+ export const Info: Story = {
182
+ render: () => (
183
+ <InputParts width={320}>
184
+ <InputParts.Label>Display name</InputParts.Label>
185
+ <InputParts.Box>
186
+ <InputParts.Area placeholder="Ada Lovelace" />
187
+ </InputParts.Box>
188
+ <InputParts.Info>Shown next to everything you publish.</InputParts.Info>
189
+ </InputParts>
190
+ ),
191
+ };
192
+
193
+ /** `TextArea` is the multi-line Area: same focus wiring, no ring of its own. */
194
+ export const MultiLine: Story = {
195
+ render: () => (
196
+ <InputParts width={360}>
197
+ <InputParts.Label htmlFor="parts-notes">Notes</InputParts.Label>
198
+ <InputParts.Box alignItems="flex-start" height="auto" paddingVertical="$2">
199
+ <InputParts.TextArea
200
+ id="parts-notes"
201
+ rows={4}
202
+ placeholder="Anything the team should know"
203
+ onChangeText={action("onChangeText")}
204
+ />
205
+ </InputParts.Box>
206
+ <InputParts.Meta helperText="Markdown is not parsed here." />
207
+ </InputParts>
208
+ ),
209
+ };
210
+
211
+ /** Disabled chrome lives on the Box, not on the Area. */
212
+ export const DisabledBox: Story = {
213
+ render: () => (
214
+ <YStack gap="$4" width={320}>
215
+ <InputParts>
216
+ <InputParts.Box>
217
+ <InputParts.Area placeholder="Enabled" />
218
+ </InputParts.Box>
219
+ </InputParts>
220
+ <InputParts>
221
+ <InputParts.Box disabled>
222
+ <InputParts.Icon adornment="leading">
223
+ <EnvelopeIcon />
224
+ </InputParts.Icon>
225
+ <InputParts.Area placeholder="Disabled" disabled />
226
+ </InputParts.Box>
227
+ </InputParts>
228
+ </YStack>
229
+ ),
230
+ };
@@ -27,6 +27,8 @@ import {
27
27
  import {
28
28
  ensureCompositeFocusRing,
29
29
  ensureFocusVisibleRing,
30
+ FOCUS_RING_CLIPPED_OFFSET,
31
+ FOCUS_RING_HALO_OFFSET,
30
32
  isTouchSurface,
31
33
  recipeFamilies,
32
34
  resolveGlyphPaint,
@@ -219,7 +221,9 @@ export function boxRingMode(
219
221
  }
220
222
 
221
223
  export function boxRingOffset(mode: "inset" | "outset" | undefined): number {
222
- return mode === "outset" ? 2 : -2;
224
+ // Both branches are LC-71 §4 sanctioned offsets: the clipping inset when the
225
+ // Box clips its adornments, the shape halo when it does not (MPO-92).
226
+ return mode === "outset" ? FOCUS_RING_HALO_OFFSET : FOCUS_RING_CLIPPED_OFFSET;
223
227
  }
224
228
 
225
229
  export const inputPartsRingCss = `/* LC-71: ring on Box (adornments inside); Area never outlines.
@@ -781,6 +785,13 @@ const InputAreaImpl = InputFrame.styleable<{
781
785
  focusVisibleStyle: focusVisibleStyleProp,
782
786
  className: classNameProp,
783
787
  inputMode: inputModeProp,
788
+ flex: flexProp,
789
+ width: widthProp,
790
+ minWidth: minWidthProp,
791
+ maxWidth: maxWidthProp,
792
+ height: heightProp,
793
+ minHeight: minHeightProp,
794
+ maxHeight: maxHeightProp,
784
795
  ...props
785
796
  } = areaProps as typeof areaProps & {
786
797
  focusStyle?: Record<string, unknown>;
@@ -788,6 +799,13 @@ const InputAreaImpl = InputFrame.styleable<{
788
799
  className?: string;
789
800
  inputMode?: InputModeValue;
790
801
  type?: string;
802
+ flex?: number | string;
803
+ width?: number | string;
804
+ minWidth?: number | string;
805
+ maxWidth?: number | string;
806
+ height?: number | string;
807
+ minHeight?: number | string;
808
+ maxHeight?: number | string;
791
809
  };
792
810
  const { knobProps } = useResolvedKnobs();
793
811
  const theme = useTheme();
@@ -799,6 +817,11 @@ const InputAreaImpl = InputFrame.styleable<{
799
817
  // number-pad↔numeric, decimal-pad↔decimal, email-address↔email.
800
818
  const resolvedInputMode = inputModeProp ?? mapKeyboardTypeToInputMode(keyboardType);
801
819
  const resolvedKeyboardType = keyboardType ?? mapInputModeToKeyboardType(resolvedInputMode);
820
+ // Duration (and any Area with a numeric width / flex 0) must not sit inside
821
+ // a flex:1 wrapper — that wrapper grows with the Box, then Section's
822
+ // justifyContent:center floats the cluster in the leftover space. OTP still
823
+ // pins width on Box, not Area, so it keeps the grow wrapper.
824
+ const hugWidth = flexProp === 0 || typeof widthProp === "number";
802
825
 
803
826
  return (
804
827
  // LC-06/LC-10 (UX-P12): in a table cell the flex wrapper and the raw
@@ -806,7 +829,20 @@ const InputAreaImpl = InputFrame.styleable<{
806
829
  // (min-width:auto floors flex items at it); width 100% makes the input
807
830
  // adopt the flexed width instead of its size-attribute default. Explicit
808
831
  // consumer widths (OTP digit boxes) still win via the later spread.
809
- <View flex={1} {...(inTableCell ? { minWidth: 0 } : undefined)}>
832
+ <View
833
+ flex={hugWidth ? 0 : 1}
834
+ {...(hugWidth && typeof widthProp === "number"
835
+ ? {
836
+ width: widthProp,
837
+ minWidth: minWidthProp ?? widthProp,
838
+ maxWidth: maxWidthProp ?? widthProp,
839
+ }
840
+ : undefined)}
841
+ {...(heightProp != null
842
+ ? { height: heightProp, minHeight: minHeightProp ?? 0, maxHeight: maxHeightProp }
843
+ : undefined)}
844
+ {...(inTableCell ? { minWidth: 0 } : undefined)}
845
+ >
810
846
  <InputFrame
811
847
  aria-describedby={fieldDescribedBy}
812
848
  {...nativeA11yProps}
@@ -837,7 +873,25 @@ const InputAreaImpl = InputFrame.styleable<{
837
873
  : undefined
838
874
  }
839
875
  {...props}
876
+ {...(flexProp != null ? { flex: flexProp } : undefined)}
877
+ {...(widthProp != null
878
+ ? { width: widthProp, minWidth: minWidthProp, maxWidth: maxWidthProp }
879
+ : undefined)}
880
+ {...(heightProp != null
881
+ ? { height: heightProp, minHeight: minHeightProp, maxHeight: maxHeightProp }
882
+ : undefined)}
840
883
  {...webAreaAttrs(classNameProp)}
884
+ {...(isWeb && typeof heightProp === "number"
885
+ ? {
886
+ // Beat the UA / `$true` 44px min on <input> when a recipe height is set
887
+ // (Duration size:$3 is 36; a 44 input overflows the box).
888
+ style: {
889
+ height: heightProp,
890
+ minHeight: typeof minHeightProp === "number" ? minHeightProp : 0,
891
+ maxHeight: typeof maxHeightProp === "number" ? maxHeightProp : heightProp,
892
+ },
893
+ }
894
+ : undefined)}
841
895
  {...AREA_NO_OUTLINE}
842
896
  focusStyle={{ ...focusStyleProp, ...AREA_NO_OUTLINE }}
843
897
  focusVisibleStyle={{ ...focusVisibleStyleProp, ...AREA_NO_OUTLINE }}
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Mounts every Forms/InputParts story and asserts the anatomy each one exists
3
+ * to show. The theme hooks stay REAL: Box height, icon size and the caption
4
+ * type ramp all come out of useResolvedKnobs, so a stub would measure a
5
+ * geometry the gallery never paints.
6
+ */
7
+ import { cleanup } from "@testing-library/react";
8
+ import { renderWithProviders } from "@multiplatform.one/test-utils";
9
+ import type { ReactElement } from "react";
10
+ import { afterEach, describe, expect, it } from "vitest";
11
+
12
+ import * as storiesModule from "./InputParts.stories";
13
+
14
+ afterEach(cleanup);
15
+
16
+ const meta = storiesModule.default;
17
+ const {
18
+ Anatomy,
19
+ FocusRingOnTheBox,
20
+ Adornments,
21
+ TrailingButton,
22
+ MetaReservesOneLine,
23
+ Info,
24
+ MultiLine,
25
+ DisabledBox,
26
+ } = storiesModule;
27
+
28
+ type StoryLike = { render?: (args: Record<string, unknown>) => ReactElement };
29
+
30
+ function mount(story: StoryLike) {
31
+ if (!story.render) throw new Error("story has no render");
32
+ return renderWithProviders(story.render({ ...(meta.args as Record<string, unknown>) }));
33
+ }
34
+
35
+ const stories = {
36
+ Anatomy,
37
+ FocusRingOnTheBox,
38
+ Adornments,
39
+ TrailingButton,
40
+ MetaReservesOneLine,
41
+ Info,
42
+ MultiLine,
43
+ DisabledBox,
44
+ } as const;
45
+
46
+ describe("Forms/InputParts stories", () => {
47
+ it("files under its own Forms title, separate from the Input field's", () => {
48
+ expect(meta.title).toBe("Forms/InputParts");
49
+ expect(meta.title).not.toBe("Forms/Input");
50
+ });
51
+
52
+ it.each(Object.entries(stories))("%s mounts something interactive", (_name, story) => {
53
+ const { container } = mount(story as StoryLike);
54
+ expect(container.querySelector("input, textarea, button")).toBeTruthy();
55
+ });
56
+
57
+ it("Anatomy wires the label to the control it names", () => {
58
+ const { container } = mount(Anatomy as StoryLike);
59
+ const input = container.querySelector("#anatomy-email");
60
+ expect(input).toBeTruthy();
61
+ expect(container.querySelector("label[for='anatomy-email']")).toBeTruthy();
62
+ });
63
+
64
+ it("Anatomy renders the helper caption under the box", () => {
65
+ const { getByText } = mount(Anatomy as StoryLike);
66
+ expect(getByText("We only use this to send receipts.")).toBeTruthy();
67
+ });
68
+
69
+ it("Adornments builds three boxes: leading, trailing, and both", () => {
70
+ const { container } = mount(Adornments as StoryLike);
71
+ const placeholders = Array.from(container.querySelectorAll("input")).map((i) =>
72
+ i.getAttribute("placeholder"),
73
+ );
74
+ expect(placeholders).toEqual(["Leading icon", "Trailing icon", "Both ends"]);
75
+ });
76
+
77
+ it("TrailingButton exposes a labelled reveal toggle beside the field", () => {
78
+ const { container } = mount(TrailingButton as StoryLike);
79
+ const button = container.querySelector("[aria-label='Show password']");
80
+ expect(button).toBeTruthy();
81
+ expect(container.querySelector("#parts-password")).toBeTruthy();
82
+ });
83
+
84
+ /**
85
+ * STABLE GROUND: Meta owns ONE caption slot. The error REPLACES the helper,
86
+ * so the errored field must not show both lines.
87
+ */
88
+ it("MetaReservesOneLine replaces the helper with the error rather than stacking them", () => {
89
+ const { container, getByText } = mount(MetaReservesOneLine as StoryLike);
90
+ expect(getByText("Enter at least two characters.")).toBeTruthy();
91
+ // The valid field keeps its helper; the errored one does not add a second line.
92
+ const helpers = Array.from(container.querySelectorAll("*")).filter(
93
+ (el) => el.children.length === 0 && el.textContent === "Two to thirty characters.",
94
+ );
95
+ expect(helpers.length).toBe(1);
96
+ });
97
+
98
+ it("MetaReservesOneLine announces the error to assistive tech", () => {
99
+ const { container } = mount(MetaReservesOneLine as StoryLike);
100
+ const alert = container.querySelector("[role='alert']");
101
+ expect(alert?.textContent).toBe("Enter at least two characters.");
102
+ });
103
+
104
+ it("Info renders caption prose without a Meta wrapper", () => {
105
+ const { getByText, container } = mount(Info as StoryLike);
106
+ expect(getByText("Shown next to everything you publish.")).toBeTruthy();
107
+ expect(container.querySelector("[role='alert']")).toBeNull();
108
+ });
109
+
110
+ it("MultiLine mounts a textarea, not a single-line input", () => {
111
+ const { container } = mount(MultiLine as StoryLike);
112
+ expect(container.querySelector("textarea#parts-notes")).toBeTruthy();
113
+ });
114
+
115
+ it("DisabledBox disables only the second field, leaving the first usable", () => {
116
+ const { container } = mount(DisabledBox as StoryLike);
117
+ const inputs = Array.from(container.querySelectorAll("input"));
118
+ expect(inputs.length).toBe(2);
119
+ expect(inputs[0].disabled).toBe(false);
120
+ expect(inputs[1].disabled).toBe(true);
121
+ });
122
+ });
@@ -0,0 +1,148 @@
1
+ import type { Meta, StoryObj } from "@storybook/react-native-web-vite";
2
+ import { Preset } from "@multiplatform.one/theme";
3
+ import { Paragraph, XStack, YStack } from "tamagui";
4
+ import { Skeleton, SkeletonCircle, SkeletonText } from "./index";
5
+
6
+ const meta: Meta<typeof Skeleton> = {
7
+ title: "Forms/Skeleton",
8
+ component: Skeleton,
9
+ parameters: {
10
+ status: { type: "beta" },
11
+ docs: {
12
+ description: {
13
+ component:
14
+ "The placeholder every field paints while its value is loading — what `skeleton` on Input, Select, CheckboxGroup and the rest resolves to. A flat blob: it takes the radius knob but never draws a border, and its pulse rides the animation knob, so `animation: none` stops it dead rather than dimming it.",
15
+ },
16
+ },
17
+ },
18
+ argTypes: {
19
+ variant: { control: "select", options: ["text", "circular", "rectangular", "rounded"] },
20
+ animate: { control: "boolean" },
21
+ width: { control: "text" },
22
+ height: { control: "text" },
23
+ },
24
+ args: {
25
+ variant: "text",
26
+ animate: true,
27
+ width: 240,
28
+ },
29
+ };
30
+
31
+ export default meta;
32
+ type Story = StoryObj<typeof Skeleton>;
33
+
34
+ export const Basic: Story = {
35
+ render: (args) => <Skeleton {...args} />,
36
+ };
37
+
38
+ /** The four variants. `text` and `circular` carry their own height. */
39
+ export const Variants: Story = {
40
+ render: () => (
41
+ <YStack gap="$4">
42
+ {(["text", "rounded", "rectangular"] as const).map((variant) => (
43
+ <YStack key={variant} gap="$2">
44
+ <Paragraph size="$2">{variant}</Paragraph>
45
+ <Skeleton variant={variant} width={240} height={variant === "text" ? undefined : 48} />
46
+ </YStack>
47
+ ))}
48
+ <YStack gap="$2">
49
+ <Paragraph size="$2">circular</Paragraph>
50
+ <Skeleton variant="circular" width={48} height={48} />
51
+ </YStack>
52
+ </YStack>
53
+ ),
54
+ };
55
+
56
+ /**
57
+ * `SkeletonText` stacks lines and shortens the last one, which is what makes a
58
+ * block of bones read as a paragraph rather than a table.
59
+ */
60
+ export const TextLines: Story = {
61
+ render: () => (
62
+ <YStack gap="$6" width={320}>
63
+ <YStack gap="$2">
64
+ <Paragraph size="$2">one line</Paragraph>
65
+ <SkeletonText />
66
+ </YStack>
67
+ <YStack gap="$2">
68
+ <Paragraph size="$2">three lines, last at 70%</Paragraph>
69
+ <SkeletonText lines={3} />
70
+ </YStack>
71
+ <YStack gap="$2">
72
+ <Paragraph size="$2">five lines, last at 40%</Paragraph>
73
+ <SkeletonText lines={5} lastLineWidth="40%" />
74
+ </YStack>
75
+ </YStack>
76
+ ),
77
+ };
78
+
79
+ /** `SkeletonCircle` sizes itself one height step above the control ramp. */
80
+ export const Circles: Story = {
81
+ render: () => (
82
+ <XStack gap="$4" alignItems="center">
83
+ <SkeletonCircle />
84
+ <SkeletonCircle size={32} />
85
+ <SkeletonCircle size={64} />
86
+ </XStack>
87
+ ),
88
+ };
89
+
90
+ /** What a loading row actually looks like: avatar, name, two lines of body. */
91
+ export const LoadingRow: Story = {
92
+ render: () => (
93
+ <XStack gap="$3" width={360} alignItems="flex-start">
94
+ <SkeletonCircle size={40} />
95
+ <YStack flex={1} gap="$2">
96
+ <Skeleton variant="text" width="45%" />
97
+ <SkeletonText lines={2} />
98
+ </YStack>
99
+ </XStack>
100
+ ),
101
+ };
102
+
103
+ /**
104
+ * MOTION-RIDES-KNOB (LC-68 / LC-20): the pulse is on when the animation knob
105
+ * is, and gone when it is not. `animate={false}` is the same off switch at the
106
+ * call site — neither leaves a half-speed shimmer behind.
107
+ */
108
+ export const MotionOff: Story = {
109
+ render: () => (
110
+ <XStack gap="$6" alignItems="flex-start">
111
+ <YStack gap="$2" width={180}>
112
+ <Paragraph size="$2">animation knob on</Paragraph>
113
+ <SkeletonText lines={3} />
114
+ </YStack>
115
+ <YStack gap="$2" width={180}>
116
+ <Paragraph size="$2">animate={"{false}"}</Paragraph>
117
+ <SkeletonText lines={3} animate={false} />
118
+ </YStack>
119
+ <Preset overrides={{ animation: "none" }}>
120
+ <YStack gap="$2" width={180}>
121
+ <Paragraph size="$2">animation: none</Paragraph>
122
+ <SkeletonText lines={3} />
123
+ </YStack>
124
+ </Preset>
125
+ </XStack>
126
+ ),
127
+ };
128
+
129
+ /**
130
+ * R-CLAMP / R-PILL: a text bone squares off at `borderRadius: none`, and a
131
+ * circle stays round at every radius value because it declares R-PILL.
132
+ */
133
+ export const RadiusKnob: Story = {
134
+ render: () => (
135
+ <XStack gap="$6" alignItems="flex-start">
136
+ {(["none", "medium", "large"] as const).map((borderRadius) => (
137
+ <Preset key={borderRadius} overrides={{ borderRadius }}>
138
+ <YStack gap="$2" width={160}>
139
+ <Paragraph size="$2">borderRadius: {borderRadius}</Paragraph>
140
+ <Skeleton variant="text" width={140} />
141
+ <Skeleton variant="rounded" width={140} height={40} />
142
+ <SkeletonCircle size={40} />
143
+ </YStack>
144
+ </Preset>
145
+ ))}
146
+ </XStack>
147
+ ),
148
+ };