@multiplatform.one/forms 7.23.2 → 7.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/dist/cjs/ContextualSaveBar/index.cjs +1 -1
  2. package/dist/cjs/ContextualSaveBar/index.native.js +1 -1
  3. package/dist/cjs/ContextualSaveBar/index.native.js.map +1 -1
  4. package/dist/cjs/DescriptionList/index.cjs +1 -1
  5. package/dist/cjs/DescriptionList/index.native.js +1 -1
  6. package/dist/cjs/DescriptionList/index.native.js.map +1 -1
  7. package/dist/cjs/fields/ColorPicker/index.cjs +9 -7
  8. package/dist/cjs/fields/ColorPicker/index.native.js +9 -7
  9. package/dist/cjs/fields/ColorPicker/index.native.js.map +1 -1
  10. package/dist/cjs/fields/PhoneInput/index.cjs +7 -4
  11. package/dist/cjs/fields/PhoneInput/index.native.js +7 -4
  12. package/dist/cjs/fields/PhoneInput/index.native.js.map +1 -1
  13. package/dist/cjs/fields/TimeRangeScrubber/index.cjs +180 -178
  14. package/dist/cjs/fields/TimeRangeScrubber/index.native.js +170 -168
  15. package/dist/cjs/fields/TimeRangeScrubber/index.native.js.map +1 -1
  16. package/dist/esm/AdaptivePopup/index.native.js.map +1 -1
  17. package/dist/esm/Button/index.native.js.map +1 -1
  18. package/dist/esm/Chip/index.native.js.map +1 -1
  19. package/dist/esm/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -1
  20. package/dist/esm/ContextualSaveBar/clientKnownIdentity.native.js.map +1 -1
  21. package/dist/esm/ContextualSaveBar/commitImmediateField.native.js.map +1 -1
  22. package/dist/esm/ContextualSaveBar/index.mjs +1 -1
  23. package/dist/esm/ContextualSaveBar/index.mjs.map +1 -1
  24. package/dist/esm/ContextualSaveBar/index.native.js +1 -1
  25. package/dist/esm/ContextualSaveBar/index.native.js.map +1 -1
  26. package/dist/esm/ContextualSaveBar/useUnsavedChangesGuard.native.js.map +1 -1
  27. package/dist/esm/ControlGroup/index.native.js.map +1 -1
  28. package/dist/esm/DescriptionList/index.mjs +1 -1
  29. package/dist/esm/DescriptionList/index.mjs.map +1 -1
  30. package/dist/esm/DescriptionList/index.native.js +1 -1
  31. package/dist/esm/DescriptionList/index.native.js.map +1 -1
  32. package/dist/esm/ErrorSummary.native.js.map +1 -1
  33. package/dist/esm/FieldDisplay/editMode.native.js.map +1 -1
  34. package/dist/esm/FieldDisplay/formatters.native.js.map +1 -1
  35. package/dist/esm/FieldDisplay/index.native.js.map +1 -1
  36. package/dist/esm/FieldGroup.native.js.map +1 -1
  37. package/dist/esm/FloatingPanel/nestedAction.native.js.map +1 -1
  38. package/dist/esm/FloatingPanel/pointAnchor.native.js.map +1 -1
  39. package/dist/esm/FloatingPanel/useFloatingPanel.native.js.map +1 -1
  40. package/dist/esm/Form/index.native.js.map +1 -1
  41. package/dist/esm/Form/submissionController.native.js.map +1 -1
  42. package/dist/esm/Form/validateOn.native.js.map +1 -1
  43. package/dist/esm/FormGrid.native.js.map +1 -1
  44. package/dist/esm/FormSection.native.js.map +1 -1
  45. package/dist/esm/InputParts/index.native.js.map +1 -1
  46. package/dist/esm/Label/index.native.js.map +1 -1
  47. package/dist/esm/Skeleton/index.native.js.map +1 -1
  48. package/dist/esm/Spinner/SpinnerGlyph.native.js.map +1 -1
  49. package/dist/esm/Spinner/spinnerSize.native.js.map +1 -1
  50. package/dist/esm/Table/index.native.js.map +1 -1
  51. package/dist/esm/Wheel/haptic.native.js.map +1 -1
  52. package/dist/esm/Wheel/index.native.js.map +1 -1
  53. package/dist/esm/actionLabel.native.js.map +1 -1
  54. package/dist/esm/fieldDefaults.native.js.map +1 -1
  55. package/dist/esm/fieldLayout.native.js.map +1 -1
  56. package/dist/esm/fields/Barcode/BarcodePreview.native.js.map +1 -1
  57. package/dist/esm/fields/Barcode/code128.native.js.map +1 -1
  58. package/dist/esm/fields/Barcode/index.native.js.map +1 -1
  59. package/dist/esm/fields/Barcode/qr.native.js.map +1 -1
  60. package/dist/esm/fields/Barcode/scannerTypes.native.js.map +1 -1
  61. package/dist/esm/fields/Checkbox/Checkbox.native.js.map +1 -1
  62. package/dist/esm/fields/Checkbox/CheckboxBox.native.js.map +1 -1
  63. package/dist/esm/fields/Checkbox/CheckboxCard.native.js.map +1 -1
  64. package/dist/esm/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
  65. package/dist/esm/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
  66. package/dist/esm/fields/Checkbox/checkboxGroupContext.native.js.map +1 -1
  67. package/dist/esm/fields/Checkbox/index.native.js.map +1 -1
  68. package/dist/esm/fields/ColorPicker/index.mjs +9 -7
  69. package/dist/esm/fields/ColorPicker/index.mjs.map +1 -1
  70. package/dist/esm/fields/ColorPicker/index.native.js +9 -7
  71. package/dist/esm/fields/ColorPicker/index.native.js.map +1 -1
  72. package/dist/esm/fields/ColorPicker/parts.native.js.map +1 -1
  73. package/dist/esm/fields/Combobox/authorOptions.native.js.map +1 -1
  74. package/dist/esm/fields/Combobox/index.native.js.map +1 -1
  75. package/dist/esm/fields/DatePicker/Calendar.native.js.map +1 -1
  76. package/dist/esm/fields/DatePicker/DateRangePicker.native.js.map +1 -1
  77. package/dist/esm/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
  78. package/dist/esm/fields/DatePicker/MonthPicker.native.js.map +1 -1
  79. package/dist/esm/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
  80. package/dist/esm/fields/DatePicker/catalog.native.js.map +1 -1
  81. package/dist/esm/fields/DatePicker/fieldValueSync.native.js.map +1 -1
  82. package/dist/esm/fields/DatePicker/parts.native.js.map +1 -1
  83. package/dist/esm/fields/DatePicker/utils.native.js.map +1 -1
  84. package/dist/esm/fields/Duration/durationMath.native.js.map +1 -1
  85. package/dist/esm/fields/Duration/index.native.js.map +1 -1
  86. package/dist/esm/fields/FileUpload/filePickerTypes.native.js.map +1 -1
  87. package/dist/esm/fields/FileUpload/index.native.js.map +1 -1
  88. package/dist/esm/fields/FileUpload/nativePickerLoader.native.js.map +1 -1
  89. package/dist/esm/fields/Geolocation/expoMapsLoader.native.js.map +1 -1
  90. package/dist/esm/fields/Geolocation/geoValue.native.js.map +1 -1
  91. package/dist/esm/fields/Geolocation/geocoder.native.js.map +1 -1
  92. package/dist/esm/fields/Geolocation/geocoderContext.native.js.map +1 -1
  93. package/dist/esm/fields/Geolocation/index.native.js.map +1 -1
  94. package/dist/esm/fields/Geolocation/mapMath.native.js.map +1 -1
  95. package/dist/esm/fields/Geolocation/mapTypes.native.js.map +1 -1
  96. package/dist/esm/fields/Geolocation/nativeSearchFocus.native.js.map +1 -1
  97. package/dist/esm/fields/Geolocation/photonGeocoder.native.js.map +1 -1
  98. package/dist/esm/fields/Icon/drawnSet.native.js.map +1 -1
  99. package/dist/esm/fields/Icon/index.native.js.map +1 -1
  100. package/dist/esm/fields/ImageField/index.native.js.map +1 -1
  101. package/dist/esm/fields/Input/index.native.js.map +1 -1
  102. package/dist/esm/fields/MentionInput/index.native.js.map +1 -1
  103. package/dist/esm/fields/OTPInput/index.native.js.map +1 -1
  104. package/dist/esm/fields/OTPInput/otpCellCss.native.js.map +1 -1
  105. package/dist/esm/fields/PhoneInput/dialCodes.native.js.map +1 -1
  106. package/dist/esm/fields/PhoneInput/index.mjs +7 -4
  107. package/dist/esm/fields/PhoneInput/index.mjs.map +1 -1
  108. package/dist/esm/fields/PhoneInput/index.native.js +7 -4
  109. package/dist/esm/fields/PhoneInput/index.native.js.map +1 -1
  110. package/dist/esm/fields/PhoneInput/phone.native.js.map +1 -1
  111. package/dist/esm/fields/PhoneInput/regionNames.native.js.map +1 -1
  112. package/dist/esm/fields/Progress/index.native.js.map +1 -1
  113. package/dist/esm/fields/RadioGroup/index.native.js.map +1 -1
  114. package/dist/esm/fields/Rating/index.native.js.map +1 -1
  115. package/dist/esm/fields/Rating/ratingMath.native.js.map +1 -1
  116. package/dist/esm/fields/Rating/types.native.js.map +1 -1
  117. package/dist/esm/fields/SearchInput/index.native.js.map +1 -1
  118. package/dist/esm/fields/Select/index.native.js.map +1 -1
  119. package/dist/esm/fields/Signature/index.native.js.map +1 -1
  120. package/dist/esm/fields/Slider/index.native.js.map +1 -1
  121. package/dist/esm/fields/Slider/jumpMotion.native.js.map +1 -1
  122. package/dist/esm/fields/Stepper/index.native.js.map +1 -1
  123. package/dist/esm/fields/Stepper/resolveStepperPlacement.native.js.map +1 -1
  124. package/dist/esm/fields/Switch/footprint.native.js.map +1 -1
  125. package/dist/esm/fields/Switch/index.native.js.map +1 -1
  126. package/dist/esm/fields/TextArea/index.native.js.map +1 -1
  127. package/dist/esm/fields/TimePicker/catalog.native.js.map +1 -1
  128. package/dist/esm/fields/TimePicker/parts.native.js.map +1 -1
  129. package/dist/esm/fields/TimeRangeScrubber/geometry.native.js.map +1 -1
  130. package/dist/esm/fields/TimeRangeScrubber/index.mjs +180 -178
  131. package/dist/esm/fields/TimeRangeScrubber/index.mjs.map +1 -1
  132. package/dist/esm/fields/TimeRangeScrubber/index.native.js +170 -168
  133. package/dist/esm/fields/TimeRangeScrubber/index.native.js.map +1 -1
  134. package/dist/esm/fields/ToggleGroup/index.native.js.map +1 -1
  135. package/dist/esm/fields/nativeDateTime/OsDateTimeSheet.native.js.map +1 -1
  136. package/dist/esm/fields/nativeDateTime/osDateTimeIosDisplay.native.js.map +1 -1
  137. package/dist/esm/fields/nativeSelect.native.js.map +1 -1
  138. package/dist/esm/fields/selectedOrder.native.js.map +1 -1
  139. package/dist/esm/formSpacing.native.js.map +1 -1
  140. package/dist/esm/hooks/useFocusManagement.native.js.map +1 -1
  141. package/dist/esm/index.native.js.map +1 -1
  142. package/dist/esm/requiredMarking.native.js.map +1 -1
  143. package/dist/esm/shared/TimeColumn.native.js.map +1 -1
  144. package/dist/esm/shared/capabilityPreflight.native.js.map +1 -1
  145. package/dist/esm/shared/colorRamps.native.js.map +1 -1
  146. package/dist/esm/shared/devWarn.native.js.map +1 -1
  147. package/dist/esm/shared/floatingList.native.js.map +1 -1
  148. package/dist/esm/shared/focusManagement.native.js.map +1 -1
  149. package/dist/esm/shared/groupContext.native.js.map +1 -1
  150. package/dist/esm/shared/i18n.native.js.map +1 -1
  151. package/dist/esm/shared/nativeA11y.native.js.map +1 -1
  152. package/dist/esm/shared/panelPortal.native.js.map +1 -1
  153. package/dist/esm/shared/pickerTriggerContract.native.js.map +1 -1
  154. package/dist/esm/shared/pressSlopProps.native.js.map +1 -1
  155. package/dist/esm/shared/t.native.js.map +1 -1
  156. package/dist/esm/shared/tableCellContext.native.js.map +1 -1
  157. package/dist/esm/shared/useDragScroll.native.js.map +1 -1
  158. package/dist/esm/shared/useKeyboardInset.native.js.map +1 -1
  159. package/dist/esm/shared/useSheetEscapeDismiss.native.js.map +1 -1
  160. package/dist/esm/shared/useWheelIncrement.native.js.map +1 -1
  161. package/dist/esm/shared/utils.native.js.map +1 -1
  162. package/dist/esm/shared/zIndex.native.js.map +1 -1
  163. package/dist/esm/themedPrimitives.native.js.map +1 -1
  164. package/dist/esm/types.native.js.map +1 -1
  165. package/dist/esm/utils/LinkCell.native.js.map +1 -1
  166. package/dist/jsx/ContextualSaveBar/index.mjs +1 -1
  167. package/dist/jsx/ContextualSaveBar/index.mjs.map +1 -1
  168. package/dist/jsx/ContextualSaveBar/index.native.js +1 -1
  169. package/dist/jsx/ContextualSaveBar/index.native.js.map +1 -1
  170. package/dist/jsx/DescriptionList/index.mjs +1 -1
  171. package/dist/jsx/DescriptionList/index.mjs.map +1 -1
  172. package/dist/jsx/DescriptionList/index.native.js +1 -1
  173. package/dist/jsx/DescriptionList/index.native.js.map +1 -1
  174. package/dist/jsx/fields/ColorPicker/index.mjs +9 -7
  175. package/dist/jsx/fields/ColorPicker/index.mjs.map +1 -1
  176. package/dist/jsx/fields/ColorPicker/index.native.js +9 -7
  177. package/dist/jsx/fields/ColorPicker/index.native.js.map +1 -1
  178. package/dist/jsx/fields/PhoneInput/index.mjs +7 -4
  179. package/dist/jsx/fields/PhoneInput/index.mjs.map +1 -1
  180. package/dist/jsx/fields/PhoneInput/index.native.js +7 -4
  181. package/dist/jsx/fields/PhoneInput/index.native.js.map +1 -1
  182. package/dist/jsx/fields/TimeRangeScrubber/index.mjs +180 -178
  183. package/dist/jsx/fields/TimeRangeScrubber/index.mjs.map +1 -1
  184. package/dist/jsx/fields/TimeRangeScrubber/index.native.js +170 -168
  185. package/dist/jsx/fields/TimeRangeScrubber/index.native.js.map +1 -1
  186. package/package.json +8 -8
  187. package/src/AdaptivePopup/AdaptivePopup.stories.tsx +2 -2
  188. package/src/ContextualSaveBar/index.tsx +1 -1
  189. package/src/DescriptionList/index.tsx +1 -1
  190. package/src/Form/Form.stories.tsx +9 -3
  191. package/src/FormGrid.stories.tsx +2 -4
  192. package/src/fields/ColorPicker/index.tsx +10 -10
  193. package/src/fields/PhoneInput/index.tsx +8 -7
  194. package/src/fields/TimeRangeScrubber/index.tsx +162 -161
  195. package/types/fields/PhoneInput/index.d.ts.map +1 -1
  196. package/types/fields/TimeRangeScrubber/index.d.ts.map +1 -1
@@ -481,185 +481,187 @@ function TimeRangeScrubberControl({
481
481
  position: "relative",
482
482
  width: "100%",
483
483
  minHeight: import_geometry.AXIS_BAND,
484
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
485
- height: import_geometry.CAP_HEIGHT,
486
- position: "relative",
487
- marginBottom: 4,
488
- width: "100%",
489
- onLayout: event => setCapTrackWidth(event.nativeEvent.layout.width),
490
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
491
- position: "absolute",
492
- left: capLeft ?? `${scrubFraction * 100}%`,
493
- x: capLeft == null ? "-50%" : 0,
484
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
485
+ gap: 4,
486
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
494
487
  height: import_geometry.CAP_HEIGHT,
495
- paddingHorizontal: 10,
496
- flexDirection: "row",
497
- alignItems: "center",
498
- justifyContent: "center",
499
- overflow: "hidden",
500
- maxHeight: import_geometry.CAP_HEIGHT,
501
- borderRadius: import_geometry.CAP_RADIUS,
502
- borderWidth: 1,
503
- borderColor: "$borderColor",
504
- backgroundColor: "$color2",
505
- onLayout: event => setCapWidth(event.nativeEvent.layout.width),
506
- "data-part": "cap",
507
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
508
- fontFamily: "$mono",
509
- fontSize: 12,
510
- lineHeight: 16,
511
- color: "$color12",
512
- numberOfLines: 1,
513
- ellipsizeMode: "clip",
514
- whiteSpace: "nowrap",
515
- children: formatClock(scrubTime)
488
+ position: "relative",
489
+ width: "100%",
490
+ onLayout: event => setCapTrackWidth(event.nativeEvent.layout.width),
491
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
492
+ position: "absolute",
493
+ left: capLeft ?? `${scrubFraction * 100}%`,
494
+ x: capLeft == null ? "-50%" : 0,
495
+ height: import_geometry.CAP_HEIGHT,
496
+ paddingHorizontal: 10,
497
+ flexDirection: "row",
498
+ alignItems: "center",
499
+ justifyContent: "center",
500
+ overflow: "hidden",
501
+ maxHeight: import_geometry.CAP_HEIGHT,
502
+ borderRadius: import_geometry.CAP_RADIUS,
503
+ borderWidth: 1,
504
+ borderColor: "$borderColor",
505
+ backgroundColor: "$color2",
506
+ onLayout: event => setCapWidth(event.nativeEvent.layout.width),
507
+ "data-part": "cap",
508
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
509
+ fontFamily: "$mono",
510
+ fontSize: 12,
511
+ lineHeight: 16,
512
+ color: "$color12",
513
+ numberOfLines: 1,
514
+ ellipsizeMode: "clip",
515
+ whiteSpace: "nowrap",
516
+ children: formatClock(scrubTime)
517
+ })
516
518
  })
517
- })
518
- }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.View, {
519
- position: "relative",
520
- height: import_geometry.AXIS_BAND,
521
- "data-part": "frames-lane",
522
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
523
- position: "absolute",
524
- left: 0,
525
- right: 0,
526
- top: "50%",
527
- height: 1,
528
- backgroundColor: "$color5",
529
- y: -0.5
530
- }), activity.length === 0 && frames.length === 0 ? null : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
531
- position: "absolute",
532
- left: 0,
533
- width: `${(0, import_geometry.timeToFraction)(windowValue.end, windowValue) * 100}%`,
534
- top: "50%",
535
- height: 1,
536
- backgroundColor: "$color7",
537
- y: -0.5
538
- }), frames.map(frame => /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
539
- position: "absolute",
540
- left: leftPct(frame),
541
- width: import_geometry.FRAME_TICK.width,
542
- height: import_geometry.FRAME_TICK.height,
543
- top: "50%",
544
- marginTop: -import_geometry.FRAME_TICK.height,
545
- backgroundColor: "$color11",
546
- borderRadius: 0,
547
- "data-part": "frame-tick"
548
- }, frame.toISOString())), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
549
- position: "absolute",
550
- left: leftPct(brush.start ?? windowValue.start),
551
- width: `${Math.max(0, (0, import_geometry.timeToFraction)(brush.end ?? windowValue.end, windowValue) - (0, import_geometry.timeToFraction)(brush.start ?? windowValue.start, windowValue)) * 100}%`,
552
- top: "50%",
553
- marginTop: -import_geometry.BRUSH_BAND_HEIGHT / 2,
554
- height: import_geometry.BRUSH_BAND_HEIGHT,
555
- backgroundColor: import_colorRamps.formInputColors.background.focus,
556
- borderRadius: bandRadius,
557
- "data-part": "brush-band",
558
- "data-radius-class": "binary",
559
- "data-radius": String(bandRadius)
560
- }), [["brush-start", brush.start ?? windowValue.start, startFocus], ["brush-end", brush.end ?? windowValue.end, endFocus]].map(([part, time, ring]) => /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
561
- position: "absolute",
562
- left: leftPct(time),
563
- x: "-50%",
564
- top: "50%",
565
- marginTop: -import_geometry.BRUSH_HANDLE.height / 2,
566
- width: import_geometry.BRUSH_HANDLE.width,
567
- height: import_geometry.BRUSH_HANDLE.height,
568
- backgroundColor: "$color11",
569
- borderRadius: handleRadius,
570
- cursor: locked ? "not-allowed" : "ew-resize",
571
- zIndex: 4,
572
- tabIndex: locked ? -1 : part === "brush-start" ? 2 : 3,
573
- role: "slider",
574
- "aria-label": part === "brush-start" ? (0, import_t.t)("Range start") : (0, import_t.t)("Range end"),
575
- "aria-valuemin": windowValue.start.getTime(),
576
- "aria-valuemax": windowValue.end.getTime(),
577
- "aria-valuenow": time.getTime(),
578
- "aria-disabled": disabled || void 0,
579
- "aria-readonly": readOnly || void 0,
580
- "aria-invalid": hasError || void 0,
581
- "data-part": part,
582
- "data-radius-class": "binary",
583
- "data-radius": String(handleRadius),
584
- "data-session": session,
585
- "data-transition": transition,
586
- hitSlop: (0, import_geometry.rectHitSlop)(import_geometry.BRUSH_HANDLE.width, import_geometry.BRUSH_HANDLE.height),
587
- ...ring,
588
- onFocus: () => {
589
- if (import_tamagui.isWeb && (0, import_theme.wasKeyboardFocus)()) setKbFocus(part);
590
- },
591
- onBlur: () => setKbFocus(prev => prev === part ? null : prev),
592
- onKeyDown: event => onHandleKey(part, event),
593
- onPointerDown: event => {
594
- if (import_tamagui.isWeb) setKbFocus(null);
595
- startPointer(part, event.clientX, event.pointerType);
596
- },
597
- onPointerMove: event => {
598
- if (dragRoleRef.current === part) applyDrag(event.clientX);
599
- },
600
- onPointerUp: clearHold,
601
- onPointerCancel: clearHold
602
- }, part)), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
603
- position: "absolute",
604
- left: leftPct(scrubTime),
605
- x: "-50%",
606
- top: 0,
607
- bottom: 0,
608
- width: import_geometry.PLAYHEAD_WIDTH,
609
- backgroundColor: "$color12",
610
- zIndex: 3,
611
- "data-part": "playhead"
612
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
613
- position: "absolute",
614
- left: leftPct(scrubTime),
615
- x: "-50%",
616
- top: "50%",
617
- marginTop: -gripSize / 2,
618
- width: gripSize,
619
- height: gripSize,
620
- borderRadius: gripRadius,
621
- borderWidth: 2,
622
- borderColor: "$color11",
623
- backgroundColor: "$color12",
624
- shadowOpacity: 0,
625
- ...(import_tamagui.isWeb ? {
626
- boxShadow: "none"
627
- } : void 0),
628
- cursor: locked ? "not-allowed" : "grab",
629
- zIndex: 5,
630
- tabIndex: locked ? -1 : 1,
631
- role: "slider",
632
- "aria-label": (0, import_t.t)("{{name}} playhead", {
633
- name
634
- }),
635
- "aria-valuemin": windowValue.start.getTime(),
636
- "aria-valuemax": windowValue.end.getTime(),
637
- "aria-valuenow": scrubTime.getTime(),
638
- "aria-disabled": disabled || void 0,
639
- "aria-readonly": readOnly || void 0,
640
- "aria-invalid": hasError || void 0,
641
- "data-part": "grip",
642
- "data-radius-class": "binary",
643
- "data-radius": String(gripRadius),
644
- "data-session": session,
645
- "data-transition": transition,
646
- hitSlop: (0, import_theme.pressTargetHitSlop)(gripSize),
647
- transition,
648
- ...gripFocus,
649
- onFocus: () => {
650
- if (import_tamagui.isWeb && (0, import_theme.wasKeyboardFocus)()) setKbFocus("grip");
651
- },
652
- onBlur: () => setKbFocus(prev => prev === "grip" ? null : prev),
653
- onKeyDown: event => onHandleKey("grip", event),
654
- onPointerDown: event => {
655
- if (import_tamagui.isWeb) setKbFocus(null);
656
- startPointer("grip", event.clientX, event.pointerType);
657
- },
658
- onPointerMove: event => {
659
- if (dragRoleRef.current === "grip") applyDrag(event.clientX);
660
- },
661
- onPointerUp: clearHold,
662
- onPointerCancel: clearHold
519
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.View, {
520
+ position: "relative",
521
+ height: import_geometry.AXIS_BAND,
522
+ "data-part": "frames-lane",
523
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
524
+ position: "absolute",
525
+ left: 0,
526
+ right: 0,
527
+ top: "50%",
528
+ height: 1,
529
+ backgroundColor: "$color5",
530
+ y: -0.5
531
+ }), activity.length === 0 && frames.length === 0 ? null : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
532
+ position: "absolute",
533
+ left: 0,
534
+ width: `${(0, import_geometry.timeToFraction)(windowValue.end, windowValue) * 100}%`,
535
+ top: "50%",
536
+ height: 1,
537
+ backgroundColor: "$color7",
538
+ y: -0.5
539
+ }), frames.map(frame => /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
540
+ position: "absolute",
541
+ left: leftPct(frame),
542
+ width: import_geometry.FRAME_TICK.width,
543
+ height: import_geometry.FRAME_TICK.height,
544
+ top: "50%",
545
+ y: -import_geometry.FRAME_TICK.height,
546
+ backgroundColor: "$color11",
547
+ borderRadius: 0,
548
+ "data-part": "frame-tick"
549
+ }, frame.toISOString())), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
550
+ position: "absolute",
551
+ left: leftPct(brush.start ?? windowValue.start),
552
+ width: `${Math.max(0, (0, import_geometry.timeToFraction)(brush.end ?? windowValue.end, windowValue) - (0, import_geometry.timeToFraction)(brush.start ?? windowValue.start, windowValue)) * 100}%`,
553
+ top: "50%",
554
+ y: -import_geometry.BRUSH_BAND_HEIGHT / 2,
555
+ height: import_geometry.BRUSH_BAND_HEIGHT,
556
+ backgroundColor: import_colorRamps.formInputColors.background.focus,
557
+ borderRadius: bandRadius,
558
+ "data-part": "brush-band",
559
+ "data-radius-class": "binary",
560
+ "data-radius": String(bandRadius)
561
+ }), [["brush-start", brush.start ?? windowValue.start, startFocus], ["brush-end", brush.end ?? windowValue.end, endFocus]].map(([part, time, ring]) => /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
562
+ position: "absolute",
563
+ left: leftPct(time),
564
+ x: "-50%",
565
+ top: "50%",
566
+ y: -import_geometry.BRUSH_HANDLE.height / 2,
567
+ width: import_geometry.BRUSH_HANDLE.width,
568
+ height: import_geometry.BRUSH_HANDLE.height,
569
+ backgroundColor: "$color11",
570
+ borderRadius: handleRadius,
571
+ cursor: locked ? "not-allowed" : "ew-resize",
572
+ zIndex: 4,
573
+ tabIndex: locked ? -1 : part === "brush-start" ? 2 : 3,
574
+ role: "slider",
575
+ "aria-label": part === "brush-start" ? (0, import_t.t)("Range start") : (0, import_t.t)("Range end"),
576
+ "aria-valuemin": windowValue.start.getTime(),
577
+ "aria-valuemax": windowValue.end.getTime(),
578
+ "aria-valuenow": time.getTime(),
579
+ "aria-disabled": disabled || void 0,
580
+ "aria-readonly": readOnly || void 0,
581
+ "aria-invalid": hasError || void 0,
582
+ "data-part": part,
583
+ "data-radius-class": "binary",
584
+ "data-radius": String(handleRadius),
585
+ "data-session": session,
586
+ "data-transition": transition,
587
+ hitSlop: (0, import_geometry.rectHitSlop)(import_geometry.BRUSH_HANDLE.width, import_geometry.BRUSH_HANDLE.height),
588
+ ...ring,
589
+ onFocus: () => {
590
+ if (import_tamagui.isWeb && (0, import_theme.wasKeyboardFocus)()) setKbFocus(part);
591
+ },
592
+ onBlur: () => setKbFocus(prev => prev === part ? null : prev),
593
+ onKeyDown: event => onHandleKey(part, event),
594
+ onPointerDown: event => {
595
+ if (import_tamagui.isWeb) setKbFocus(null);
596
+ startPointer(part, event.clientX, event.pointerType);
597
+ },
598
+ onPointerMove: event => {
599
+ if (dragRoleRef.current === part) applyDrag(event.clientX);
600
+ },
601
+ onPointerUp: clearHold,
602
+ onPointerCancel: clearHold
603
+ }, part)), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
604
+ position: "absolute",
605
+ left: leftPct(scrubTime),
606
+ x: "-50%",
607
+ top: 0,
608
+ bottom: 0,
609
+ width: import_geometry.PLAYHEAD_WIDTH,
610
+ backgroundColor: "$color12",
611
+ zIndex: 3,
612
+ "data-part": "playhead"
613
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
614
+ position: "absolute",
615
+ left: leftPct(scrubTime),
616
+ x: "-50%",
617
+ top: "50%",
618
+ y: -gripSize / 2,
619
+ width: gripSize,
620
+ height: gripSize,
621
+ borderRadius: gripRadius,
622
+ borderWidth: 2,
623
+ borderColor: "$color11",
624
+ backgroundColor: "$color12",
625
+ shadowOpacity: 0,
626
+ ...(import_tamagui.isWeb ? {
627
+ boxShadow: "none"
628
+ } : void 0),
629
+ cursor: locked ? "not-allowed" : "grab",
630
+ zIndex: 5,
631
+ tabIndex: locked ? -1 : 1,
632
+ role: "slider",
633
+ "aria-label": (0, import_t.t)("{{name}} playhead", {
634
+ name
635
+ }),
636
+ "aria-valuemin": windowValue.start.getTime(),
637
+ "aria-valuemax": windowValue.end.getTime(),
638
+ "aria-valuenow": scrubTime.getTime(),
639
+ "aria-disabled": disabled || void 0,
640
+ "aria-readonly": readOnly || void 0,
641
+ "aria-invalid": hasError || void 0,
642
+ "data-part": "grip",
643
+ "data-radius-class": "binary",
644
+ "data-radius": String(gripRadius),
645
+ "data-session": session,
646
+ "data-transition": transition,
647
+ hitSlop: (0, import_theme.pressTargetHitSlop)(gripSize),
648
+ transition,
649
+ ...gripFocus,
650
+ onFocus: () => {
651
+ if (import_tamagui.isWeb && (0, import_theme.wasKeyboardFocus)()) setKbFocus("grip");
652
+ },
653
+ onBlur: () => setKbFocus(prev => prev === "grip" ? null : prev),
654
+ onKeyDown: event => onHandleKey("grip", event),
655
+ onPointerDown: event => {
656
+ if (import_tamagui.isWeb) setKbFocus(null);
657
+ startPointer("grip", event.clientX, event.pointerType);
658
+ },
659
+ onPointerMove: event => {
660
+ if (dragRoleRef.current === "grip") applyDrag(event.clientX);
661
+ },
662
+ onPointerUp: clearHold,
663
+ onPointerCancel: clearHold
664
+ })]
663
665
  })]
664
666
  }), activity.length > 0 ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
665
667
  position: "relative",
@@ -671,7 +673,7 @@ function TimeRangeScrubberControl({
671
673
  left: leftPct(span.start),
672
674
  width: `${Math.max(0, (0, import_geometry.timeToFraction)(span.end, windowValue) - (0, import_geometry.timeToFraction)(span.start, windowValue)) * 100}%`,
673
675
  top: "50%",
674
- marginTop: -ACTIVITY_BAR_HEIGHT / 2,
676
+ y: -ACTIVITY_BAR_HEIGHT / 2,
675
677
  height: ACTIVITY_BAR_HEIGHT,
676
678
  backgroundColor: "$color6",
677
679
  borderRadius: 0,