@astryxdesign/core 0.7.7-canary.bf14580 → 0.7.7-canary.c19ca12

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 (266) hide show
  1. package/dist/AlertDialog/AlertDialog.d.ts +4 -1
  2. package/dist/AlertDialog/AlertDialog.d.ts.map +1 -1
  3. package/dist/AlertDialog/AlertDialog.js +36 -6
  4. package/dist/BottomSheet/BottomSheet.d.ts.map +1 -1
  5. package/dist/BottomSheet/BottomSheet.js +76 -6
  6. package/dist/BottomSheet/BottomSheetPanel.d.ts.map +1 -1
  7. package/dist/BottomSheet/BottomSheetPanel.js +23 -4
  8. package/dist/BottomSheet/bottomSheetStack.d.ts.map +1 -1
  9. package/dist/BottomSheet/bottomSheetStack.js +5 -4
  10. package/dist/BottomSheet/useSheetGestures.d.ts.map +1 -1
  11. package/dist/BottomSheet/useSheetGestures.js +3 -1
  12. package/dist/Button/Button.d.ts.map +1 -1
  13. package/dist/Button/Button.js +47 -3
  14. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  15. package/dist/CheckboxInput/CheckboxInput.js +13 -2
  16. package/dist/ComplexSelector/ComplexSelector.d.ts +4 -1
  17. package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -1
  18. package/dist/ComplexSelector/ComplexSelector.js +14 -4
  19. package/dist/ContextMenu/ContextMenu.js +2 -2
  20. package/dist/DateInput/MonthScroller.d.ts.map +1 -1
  21. package/dist/DateInput/MonthScroller.js +13 -27
  22. package/dist/DateInput/Wheel.d.ts.map +1 -1
  23. package/dist/DateInput/Wheel.js +22 -41
  24. package/dist/Dialog/Dialog.d.ts.map +1 -1
  25. package/dist/Dialog/Dialog.js +7 -31
  26. package/dist/Field/Field.js +2 -2
  27. package/dist/HoverCard/HoverCard.d.ts +4 -3
  28. package/dist/HoverCard/HoverCard.d.ts.map +1 -1
  29. package/dist/HoverCard/HoverCard.js +27 -2
  30. package/dist/HoverCard/useHoverCard.d.ts +5 -4
  31. package/dist/HoverCard/useHoverCard.d.ts.map +1 -1
  32. package/dist/HoverCard/useHoverCard.js +17 -31
  33. package/dist/Icon/Icon.d.ts +5 -1
  34. package/dist/Icon/Icon.d.ts.map +1 -1
  35. package/dist/Icon/Icon.js +5 -2
  36. package/dist/Layer/layerAnimations.stylex.d.ts +7 -8
  37. package/dist/Layer/layerAnimations.stylex.d.ts.map +1 -1
  38. package/dist/Layer/layerAnimations.stylex.js +25 -20
  39. package/dist/Layer/usePressPin.d.ts +17 -5
  40. package/dist/Layer/usePressPin.d.ts.map +1 -1
  41. package/dist/Layer/usePressPin.js +62 -12
  42. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  43. package/dist/Lightbox/Lightbox.js +18 -0
  44. package/dist/PowerSearch/PowerSearch.d.ts +36 -3
  45. package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
  46. package/dist/PowerSearch/PowerSearch.js +522 -269
  47. package/dist/PowerSearch/PowerSearchBottomSheet.d.ts +100 -0
  48. package/dist/PowerSearch/PowerSearchBottomSheet.d.ts.map +1 -0
  49. package/dist/PowerSearch/PowerSearchBottomSheet.js +1913 -0
  50. package/dist/PowerSearch/PowerSearchEditPopover.d.ts +32 -1
  51. package/dist/PowerSearch/PowerSearchEditPopover.d.ts.map +1 -1
  52. package/dist/PowerSearch/PowerSearchEditPopover.js +17 -6
  53. package/dist/PowerSearch/PowerSearchValueEditor.d.ts +38 -3
  54. package/dist/PowerSearch/PowerSearchValueEditor.d.ts.map +1 -1
  55. package/dist/PowerSearch/PowerSearchValueEditor.js +170 -61
  56. package/dist/PowerSearch/formatFilterValue.d.ts +7 -0
  57. package/dist/PowerSearch/formatFilterValue.d.ts.map +1 -1
  58. package/dist/PowerSearch/formatFilterValue.js +11 -1
  59. package/dist/PowerSearch/formatTokenValue.d.ts +28 -0
  60. package/dist/PowerSearch/formatTokenValue.d.ts.map +1 -0
  61. package/dist/PowerSearch/formatTokenValue.js +160 -0
  62. package/dist/PowerSearch/powerSearchSheetUtils.d.ts +65 -0
  63. package/dist/PowerSearch/powerSearchSheetUtils.d.ts.map +1 -0
  64. package/dist/PowerSearch/powerSearchSheetUtils.js +168 -0
  65. package/dist/RadioList/RadioList.d.ts.map +1 -1
  66. package/dist/RadioList/RadioList.js +3 -2
  67. package/dist/RadioList/RadioListItem.d.ts +1 -1
  68. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  69. package/dist/RadioList/RadioListItem.js +5 -3
  70. package/dist/SegmentedControl/useSegmentedSelectionMotion.d.ts.map +1 -1
  71. package/dist/SegmentedControl/useSegmentedSelectionMotion.js +3 -3
  72. package/dist/Slider/sliderTouchController.js +2 -2
  73. package/dist/Spinner/Spinner.d.ts +1 -1
  74. package/dist/Spinner/Spinner.d.ts.map +1 -1
  75. package/dist/Spinner/Spinner.js +60 -58
  76. package/dist/Switch/useSwitchTouch.js +4 -4
  77. package/dist/Table/BaseTable.d.ts.map +1 -1
  78. package/dist/Table/BaseTable.js +29 -8
  79. package/dist/TextInput/TextInput.d.ts +2 -2
  80. package/dist/TextInput/TextInput.d.ts.map +1 -1
  81. package/dist/TextInput/TextInput.js +10 -7
  82. package/dist/Toast/Toast.d.ts +11 -1
  83. package/dist/Toast/Toast.d.ts.map +1 -1
  84. package/dist/Toast/Toast.js +25 -15
  85. package/dist/Toast/ToastViewport.d.ts.map +1 -1
  86. package/dist/Toast/ToastViewport.js +94 -34
  87. package/dist/Toast/types.d.ts +9 -3
  88. package/dist/Toast/types.d.ts.map +1 -1
  89. package/dist/Token/Token.d.ts +2 -2
  90. package/dist/Token/Token.d.ts.map +1 -1
  91. package/dist/Token/Token.js +12 -4
  92. package/dist/Token/TokenNamingContext.d.ts +14 -0
  93. package/dist/Token/TokenNamingContext.d.ts.map +1 -0
  94. package/dist/Token/TokenNamingContext.js +23 -0
  95. package/dist/Tooltip/useTooltip.d.ts +19 -1
  96. package/dist/Tooltip/useTooltip.d.ts.map +1 -1
  97. package/dist/Tooltip/useTooltip.js +34 -53
  98. package/dist/Typeahead/TypeaheadItem.d.ts +2 -1
  99. package/dist/Typeahead/TypeaheadItem.d.ts.map +1 -1
  100. package/dist/animator/createAnimator.d.ts +98 -0
  101. package/dist/animator/createAnimator.d.ts.map +1 -0
  102. package/dist/animator/createAnimator.js +259 -0
  103. package/dist/astryx.css +22 -6
  104. package/dist/gestures/GestureHost.d.ts +27 -1
  105. package/dist/gestures/GestureHost.d.ts.map +1 -1
  106. package/dist/gestures/GestureHost.js +90 -8
  107. package/dist/gestures/PressTracker.d.ts.map +1 -1
  108. package/dist/gestures/PressTracker.js +4 -3
  109. package/dist/hooks/actionGroupTracker.d.ts +4 -1
  110. package/dist/hooks/actionGroupTracker.d.ts.map +1 -1
  111. package/dist/hooks/actionGroupTracker.js +13 -3
  112. package/dist/hooks/index.d.ts +1 -0
  113. package/dist/hooks/index.d.ts.map +1 -1
  114. package/dist/hooks/index.js +1 -0
  115. package/dist/hooks/pressGroupContext.d.ts +6 -0
  116. package/dist/hooks/pressGroupContext.d.ts.map +1 -0
  117. package/dist/hooks/pressGroupContext.js +20 -0
  118. package/dist/hooks/useActionGroupTracking.d.ts +53 -0
  119. package/dist/hooks/useActionGroupTracking.d.ts.map +1 -0
  120. package/dist/hooks/useActionGroupTracking.js +174 -0
  121. package/dist/hooks/useAnimator.d.ts +41 -0
  122. package/dist/hooks/useAnimator.d.ts.map +1 -0
  123. package/dist/hooks/useAnimator.js +70 -0
  124. package/dist/hooks/useAttachment.d.ts +1 -1
  125. package/dist/hooks/useAttachment.js +1 -1
  126. package/dist/hooks/useInputStatusIcon.d.ts +1 -1
  127. package/dist/hooks/useInputStatusIcon.d.ts.map +1 -1
  128. package/dist/hooks/useInputStatusIcon.js +2 -2
  129. package/dist/hooks/useLongPress.d.ts +6 -2
  130. package/dist/hooks/useLongPress.d.ts.map +1 -1
  131. package/dist/hooks/useLongPress.js +95 -15
  132. package/dist/hooks/useMenuPress.d.ts.map +1 -1
  133. package/dist/hooks/useMenuPress.js +4 -2
  134. package/dist/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.d.ts +8 -0
  135. package/dist/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.d.ts.map +1 -0
  136. package/dist/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.js +42 -0
  137. package/dist/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.d.ts.map +1 -1
  138. package/dist/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.js +6 -0
  139. package/dist/i18n/generated-english/PowerSearch/formatTokenValue.generated.d.ts +8 -0
  140. package/dist/i18n/generated-english/PowerSearch/formatTokenValue.generated.d.ts.map +1 -0
  141. package/dist/i18n/generated-english/PowerSearch/formatTokenValue.generated.js +14 -0
  142. package/dist/i18n/generated-locales/en.generated.d.ts.map +1 -1
  143. package/dist/i18n/generated-locales/en.generated.js +30 -0
  144. package/dist/i18n/generated-locales/pseudo.generated.d.ts.map +1 -1
  145. package/dist/i18n/generated-locales/pseudo.generated.js +30 -0
  146. package/dist/index.d.ts +1 -0
  147. package/dist/index.d.ts.map +1 -1
  148. package/dist/index.js +4 -0
  149. package/dist/internal/indicatorPress.stylex.d.ts +20 -0
  150. package/dist/internal/indicatorPress.stylex.d.ts.map +1 -0
  151. package/dist/internal/indicatorPress.stylex.js +26 -0
  152. package/dist/motion/animator.d.ts +14 -14
  153. package/dist/motion/animator.d.ts.map +1 -1
  154. package/dist/motion/animator.js +41 -18
  155. package/dist/motion/reducedMotion.d.ts +24 -0
  156. package/dist/motion/reducedMotion.d.ts.map +1 -1
  157. package/dist/motion/reducedMotion.js +78 -1
  158. package/dist/motion/uikit/alert.d.ts +41 -0
  159. package/dist/motion/uikit/alert.d.ts.map +1 -0
  160. package/dist/motion/uikit/alert.js +43 -0
  161. package/dist/privateAttributes/pressGroupItem.stylex.d.ts +15 -0
  162. package/dist/privateAttributes/pressGroupItem.stylex.d.ts.map +1 -0
  163. package/dist/privateAttributes/pressGroupItem.stylex.js +23 -0
  164. package/dist/utils/clickGuard.d.ts +8 -1
  165. package/dist/utils/clickGuard.d.ts.map +1 -1
  166. package/dist/utils/clickGuard.js +24 -1
  167. package/dist/utils/dateParser.d.ts.map +1 -1
  168. package/dist/utils/dateParser.js +12 -0
  169. package/dist/utils/focusReturn.d.ts +15 -0
  170. package/dist/utils/focusReturn.d.ts.map +1 -1
  171. package/dist/utils/focusReturn.js +28 -0
  172. package/dist/utils/interactionOverlay.stylex.d.ts +3 -2
  173. package/dist/utils/interactionOverlay.stylex.d.ts.map +1 -1
  174. package/dist/utils/interactionOverlay.stylex.js +3 -2
  175. package/dist/utils/pressFeedback.d.ts.map +1 -1
  176. package/dist/utils/pressFeedback.js +19 -6
  177. package/dist/utils/triggerFocus.d.ts +36 -0
  178. package/dist/utils/triggerFocus.d.ts.map +1 -0
  179. package/dist/utils/triggerFocus.js +65 -0
  180. package/locales/en.json +120 -0
  181. package/locales/pseudo.json +90 -0
  182. package/package.json +9 -4
  183. package/src/AlertDialog/AlertDialog.doc.mjs +2 -2
  184. package/src/AlertDialog/AlertDialog.tsx +37 -5
  185. package/src/BottomSheet/BottomSheet.tsx +85 -5
  186. package/src/BottomSheet/BottomSheetPanel.tsx +40 -5
  187. package/src/BottomSheet/bottomSheetStack.ts +8 -4
  188. package/src/BottomSheet/useSheetGestures.ts +3 -1
  189. package/src/Button/Button.tsx +63 -5
  190. package/src/CheckboxInput/CheckboxInput.doc.mjs +18 -0
  191. package/src/CheckboxInput/CheckboxInput.tsx +36 -9
  192. package/src/ComplexSelector/ComplexSelector.tsx +20 -5
  193. package/src/ContextMenu/ContextMenu.tsx +2 -2
  194. package/src/DateInput/MonthScroller.tsx +18 -22
  195. package/src/DateInput/Wheel.tsx +30 -32
  196. package/src/Dialog/Dialog.tsx +10 -31
  197. package/src/Field/Field.tsx +2 -2
  198. package/src/HoverCard/HoverCard.doc.mjs +4 -2
  199. package/src/HoverCard/HoverCard.tsx +35 -4
  200. package/src/HoverCard/useHoverCard.doc.mjs +178 -36
  201. package/src/HoverCard/useHoverCard.tsx +46 -52
  202. package/src/Icon/Icon.doc.mjs +49 -8
  203. package/src/Icon/Icon.tsx +15 -7
  204. package/src/Layer/layerAnimations.stylex.ts +24 -16
  205. package/src/Layer/usePressPin.ts +81 -15
  206. package/src/Lightbox/Lightbox.tsx +18 -0
  207. package/src/PowerSearch/PowerSearch.doc.mjs +54 -5
  208. package/src/PowerSearch/PowerSearch.tsx +734 -288
  209. package/src/PowerSearch/PowerSearchBottomSheet.tsx +2515 -0
  210. package/src/PowerSearch/PowerSearchEditPopover.tsx +28 -6
  211. package/src/PowerSearch/PowerSearchValueEditor.tsx +203 -38
  212. package/src/PowerSearch/formatFilterValue.ts +18 -1
  213. package/src/PowerSearch/formatTokenValue.ts +215 -0
  214. package/src/PowerSearch/powerSearchSheetUtils.ts +224 -0
  215. package/src/RadioList/RadioList.tsx +3 -2
  216. package/src/RadioList/RadioListItem.tsx +5 -3
  217. package/src/SegmentedControl/useSegmentedSelectionMotion.ts +6 -3
  218. package/src/Slider/sliderTouchController.ts +2 -2
  219. package/src/Spinner/Spinner.tsx +77 -63
  220. package/src/Switch/useSwitchTouch.ts +4 -4
  221. package/src/Table/BaseTable.tsx +46 -12
  222. package/src/TextInput/TextInput.tsx +11 -10
  223. package/src/Toast/Toast.doc.mjs +4 -3
  224. package/src/Toast/Toast.tsx +52 -32
  225. package/src/Toast/ToastViewport.tsx +121 -35
  226. package/src/Toast/types.ts +9 -3
  227. package/src/Token/Token.tsx +13 -4
  228. package/src/Token/TokenNamingContext.ts +28 -0
  229. package/src/Tooltip/useTooltip.doc.mjs +24 -0
  230. package/src/Tooltip/useTooltip.tsx +61 -56
  231. package/src/Typeahead/TypeaheadItem.doc.mjs +6 -3
  232. package/src/Typeahead/TypeaheadItem.tsx +2 -1
  233. package/src/animator/createAnimator.doc.mjs +153 -0
  234. package/src/animator/createAnimator.ts +324 -0
  235. package/src/gestures/GestureHost.ts +105 -10
  236. package/src/gestures/PressTracker.ts +4 -3
  237. package/src/gestures/README.md +7 -1
  238. package/src/hooks/actionGroupTracker.ts +20 -5
  239. package/src/hooks/index.ts +2 -0
  240. package/src/hooks/pressGroupContext.ts +21 -0
  241. package/src/hooks/useActionGroupTracking.ts +224 -0
  242. package/src/hooks/useAnimator.doc.mjs +109 -0
  243. package/src/hooks/useAnimator.ts +67 -0
  244. package/src/hooks/useAttachment.ts +1 -1
  245. package/src/hooks/useInputStatusIcon.tsx +3 -2
  246. package/src/hooks/useLongPress.doc.mjs +2 -2
  247. package/src/hooks/useLongPress.ts +136 -15
  248. package/src/hooks/useMenuPress.ts +8 -2
  249. package/src/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.ts +43 -0
  250. package/src/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.ts +6 -0
  251. package/src/i18n/generated-english/PowerSearch/formatTokenValue.generated.ts +15 -0
  252. package/src/i18n/generated-locales/en.generated.ts +41 -0
  253. package/src/i18n/generated-locales/pseudo.generated.ts +42 -0
  254. package/src/index.ts +13 -0
  255. package/src/internal/indicatorPress.stylex.ts +24 -0
  256. package/src/motion/README.md +8 -5
  257. package/src/motion/animator.ts +61 -29
  258. package/src/motion/reducedMotion.ts +79 -1
  259. package/src/motion/uikit/alert.ts +43 -0
  260. package/src/privateAttributes/pressGroupItem.stylex.ts +23 -0
  261. package/src/utils/clickGuard.ts +37 -1
  262. package/src/utils/dateParser.ts +16 -0
  263. package/src/utils/focusReturn.ts +30 -0
  264. package/src/utils/interactionOverlay.stylex.ts +3 -2
  265. package/src/utils/pressFeedback.ts +19 -6
  266. package/src/utils/triggerFocus.ts +80 -0
@@ -0,0 +1,41 @@
1
+ /**
2
+ * @file useAnimator.ts
3
+ * @input React (useState), the element ref the caller owns, the public
4
+ * animator factory (animator/createAnimator.ts) and useAttachment
5
+ * @output Exports `useAnimator(ref)`: the public animator for the element
6
+ * behind `ref`
7
+ * @position Public hook, exported from `@astryxdesign/core/hooks`. A thin
8
+ * wrapper over `createAnimator` with no behavior of its own.
9
+ *
10
+ * SYNC: When modified, update:
11
+ * - /packages/core/src/hooks/useAnimator.test.tsx
12
+ * - /packages/core/src/hooks/useAnimator.doc.mjs
13
+ */
14
+ import { type RefObject } from 'react';
15
+ import { type AnimatorHandle } from '../animator/createAnimator.js';
16
+ /**
17
+ * Animates the element behind `ref` with the motion Core uses. Call
18
+ * `animate`, `decay`, `set`, `get`, `getVelocity` or `stop` on the returned
19
+ * animator from event handlers and effects. Pass the same `ref` to a gesture
20
+ * hook to drag and animate one element.
21
+ *
22
+ * The hook makes the animator once, and animating never re-renders the
23
+ * component. After each commit, the animator follows the element behind
24
+ * `ref`, also a node that replaces it. An unmount stops running motion and
25
+ * drops the values. A remount, or a node that replaces the element, starts
26
+ * at rest. While no element is attached, every call does nothing, and
27
+ * `animate` and `decay` resolve at once.
28
+ *
29
+ * @example
30
+ * ```
31
+ * const ref = useRef<HTMLDivElement>(null);
32
+ * const animator = useAnimator(ref);
33
+ * return (
34
+ * <div ref={ref} onClick={() => animator.animate({scale: 1.2})}>
35
+ * Card
36
+ * </div>
37
+ * );
38
+ * ```
39
+ */
40
+ export declare function useAnimator(ref: RefObject<HTMLElement | null>): AnimatorHandle;
41
+ //# sourceMappingURL=useAnimator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAnimator.d.ts","sourceRoot":"","sources":["../../src/hooks/useAnimator.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAW,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAC/C,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;AAGpC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,GACjC,cAAc,CAehB"}
@@ -0,0 +1,70 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ 'use client';
4
+
5
+ /**
6
+ * @file useAnimator.ts
7
+ * @input React (useState), the element ref the caller owns, the public
8
+ * animator factory (animator/createAnimator.ts) and useAttachment
9
+ * @output Exports `useAnimator(ref)`: the public animator for the element
10
+ * behind `ref`
11
+ * @position Public hook, exported from `@astryxdesign/core/hooks`. A thin
12
+ * wrapper over `createAnimator` with no behavior of its own.
13
+ *
14
+ * SYNC: When modified, update:
15
+ * - /packages/core/src/hooks/useAnimator.test.tsx
16
+ * - /packages/core/src/hooks/useAnimator.doc.mjs
17
+ */
18
+ import { useState } from 'react';
19
+ import { createAttachableAnimator } from "../animator/createAnimator.js";
20
+ import { useAttachment } from "./useAttachment.js";
21
+
22
+ /**
23
+ * Animates the element behind `ref` with the motion Core uses. Call
24
+ * `animate`, `decay`, `set`, `get`, `getVelocity` or `stop` on the returned
25
+ * animator from event handlers and effects. Pass the same `ref` to a gesture
26
+ * hook to drag and animate one element.
27
+ *
28
+ * The hook makes the animator once, and animating never re-renders the
29
+ * component. After each commit, the animator follows the element behind
30
+ * `ref`, also a node that replaces it. An unmount stops running motion and
31
+ * drops the values. A remount, or a node that replaces the element, starts
32
+ * at rest. While no element is attached, every call does nothing, and
33
+ * `animate` and `decay` resolve at once.
34
+ *
35
+ * @example
36
+ * ```
37
+ * const ref = useRef<HTMLDivElement>(null);
38
+ * const animator = useAnimator(ref);
39
+ * return (
40
+ * <div ref={ref} onClick={() => animator.animate({scale: 1.2})}>
41
+ * Card
42
+ * </div>
43
+ * );
44
+ * ```
45
+ */
46
+ export function useAnimator(ref) {
47
+ const [{
48
+ handle,
49
+ attach
50
+ }] = useState(() => {
51
+ const {
52
+ animator,
53
+ attach: attachElement
54
+ } = createAttachableAnimator();
55
+ // The handle without `destroy`: the hook owns the element's lifetime.
56
+ const {
57
+ destroy: _destroy,
58
+ ...handle
59
+ } = animator;
60
+ return {
61
+ handle,
62
+ attach: element => {
63
+ attachElement(element);
64
+ return () => attachElement(null);
65
+ }
66
+ };
67
+ });
68
+ useAttachment(ref, attach, null);
69
+ return handle;
70
+ }
@@ -5,7 +5,7 @@
5
5
  * @output Exports useAttachment and useAttachmentPair (two elements): they keep
6
6
  * the attach function bound to the nodes the refs hold across commits
7
7
  * @position Internal React helper, not in hooks/index.ts: the one attach and
8
- * release lifecycle of the gesture hooks and the pager
8
+ * release lifecycle of the gesture hooks, the pager and useAnimator
9
9
  *
10
10
  * SYNC: When modified, update gestures/__tests__/useGestureRecognizer.test.tsx,
11
11
  * gestures/__tests__/useFingerScroll.test.tsx and
@@ -9,7 +9,7 @@
9
9
  * @output Exports useAttachment and useAttachmentPair (two elements): they keep
10
10
  * the attach function bound to the nodes the refs hold across commits
11
11
  * @position Internal React helper, not in hooks/index.ts: the one attach and
12
- * release lifecycle of the gesture hooks and the pager
12
+ * release lifecycle of the gesture hooks, the pager and useAnimator
13
13
  *
14
14
  * SYNC: When modified, update gestures/__tests__/useGestureRecognizer.test.tsx,
15
15
  * gestures/__tests__/useFingerScroll.test.tsx and
@@ -1,5 +1,5 @@
1
1
  import type { ReactNode } from 'react';
2
- import { type IconSize } from '../Icon/index.js';
2
+ import { type IconSize } from '../Icon/Icon.js';
3
3
  import type { InputStatus } from '../Field/types.js';
4
4
  import type { FieldStatusPlacement } from '../Field/fieldStatusPlacement.js';
5
5
  export interface UseInputStatusIconOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"useInputStatusIcon.d.ts","sourceRoot":"","sources":["../../src/hooks/useInputStatusIcon.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAErC,OAAO,EAAsB,KAAK,QAAQ,EAAC,MAAM,SAAS,CAAC;AAC3D,OAAO,KAAK,EAAC,WAAW,EAAkB,MAAM,gBAAgB,CAAC;AAKjE,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,+BAA+B,CAAC;AA8DxE,MAAM,WAAW,yBAAyB;IACxC,2DAA2D;IAC3D,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,yDAAyD;IACzD,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,+EAA+E;IAC/E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,UAAU,EAAE,SAAS,CAAC;IACtB;;;;;;;OAOG;IACH,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,aAA0B,EAC1B,SAAiB,EACjB,IAAW,GACZ,EAAE,yBAAyB,GAAG,wBAAwB,CAoGtD"}
1
+ {"version":3,"file":"useInputStatusIcon.d.ts","sourceRoot":"","sources":["../../src/hooks/useInputStatusIcon.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAErC,OAAO,EAAO,KAAK,QAAQ,EAAC,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAC,WAAW,EAAkB,MAAM,gBAAgB,CAAC;AAKjE,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,+BAA+B,CAAC;AA8DxE,MAAM,WAAW,yBAAyB;IACxC,2DAA2D;IAC3D,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,yDAAyD;IACzD,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,+EAA+E;IAC/E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,UAAU,EAAE,SAAS,CAAC;IACtB;;;;;;;OAOG;IACH,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,aAA0B,EAC1B,SAAiB,EACjB,IAAW,GACZ,EAAE,yBAAyB,GAAG,wBAAwB,CAoGtD"}
@@ -13,8 +13,8 @@
13
13
  */
14
14
  import { useCallback, useEffect, useState } from 'react';
15
15
  import * as stylex from '@stylexjs/stylex';
16
- import { Icon } from "../Icon/index.js";
17
- import { useTooltip } from "../Tooltip/index.js";
16
+ import { Icon } from "../Icon/Icon.js";
17
+ import { useTooltip } from "../Tooltip/useTooltip.js";
18
18
  import "../theme/tokens.stylex.js";
19
19
  import { radiusVars } from "../theme/tokens.stylex.js";
20
20
  import { themeProps } from "../utils/themeProps.js";
@@ -21,8 +21,12 @@ export interface LongPressTolerance {
21
21
  export interface UseLongPressHandlers {
22
22
  onTouchStart: (e: React.TouchEvent) => void;
23
23
  onTouchMove: (e: React.TouchEvent) => void;
24
- onTouchEnd: () => void;
25
- onTouchCancel: () => void;
24
+ /**
25
+ * The lift. Pass the event, so a press it is stamped past (its timer held
26
+ * back by a busy page) still reports first. Spreading the handlers does.
27
+ */
28
+ onTouchEnd: (e?: React.TouchEvent) => void;
29
+ onTouchCancel: (e?: React.TouchEvent) => void;
26
30
  /**
27
31
  * Begin detection at a point, for a caller driving this from its own
28
32
  * pointer events rather than the touch handlers above.
@@ -1 +1 @@
1
- {"version":3,"file":"useLongPress.d.ts","sourceRoot":"","sources":["../../src/hooks/useLongPress.ts"],"names":[],"mappings":"AAuCA,MAAM,WAAW,mBAAmB;IAClC,6EAA6E;IAC7E,WAAW,EAAE,CAAC,KAAK,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC,KAAK,IAAI,CAAC;IACrD,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uFAAuF;IACvF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAC5C,WAAW,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAC3C,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B;;;OAGG;IACH,KAAK,EAAE,CAAC,KAAK,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC,KAAK,IAAI,CAAC;IAC/C;;;;OAIG;IACH,MAAM,EAAE,CAAC,KAAK,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC,KAAK,OAAO,CAAC;IACnD,2EAA2E;IAC3E,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,yBAA0B,SAAQ,IAAI,CACrD,oBAAoB,EACpB,OAAO,CACR;IACC,KAAK,EAAE,CACL,KAAK,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC,EAC7B,SAAS,CAAC,EAAE,kBAAkB,KAC3B,IAAI,CAAC;CACX;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,mBAAmB,GAC3B,oBAAoB,CAStB;AAED,qFAAqF;AACrF,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,mBAAmB,GAC3B,yBAAyB,CA0G3B"}
1
+ {"version":3,"file":"useLongPress.d.ts","sourceRoot":"","sources":["../../src/hooks/useLongPress.ts"],"names":[],"mappings":"AA+EA,MAAM,WAAW,mBAAmB;IAClC,6EAA6E;IAC7E,WAAW,EAAE,CAAC,KAAK,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC,KAAK,IAAI,CAAC;IACrD,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uFAAuF;IACvF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAC5C,WAAW,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAC3C;;;OAGG;IACH,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAC3C,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAC9C;;;OAGG;IACH,KAAK,EAAE,CAAC,KAAK,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC,KAAK,IAAI,CAAC;IAC/C;;;;OAIG;IACH,MAAM,EAAE,CAAC,KAAK,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC,KAAK,OAAO,CAAC;IACnD,2EAA2E;IAC3E,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,yBAA0B,SAAQ,IAAI,CACrD,oBAAoB,EACpB,OAAO,CACR;IACC,KAAK,EAAE,CACL,KAAK,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC,EAC7B,SAAS,CAAC,EAAE,kBAAkB,KAC3B,IAAI,CAAC;CACX;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,mBAAmB,GAC3B,oBAAoB,CAStB;AAED,qFAAqF;AACrF,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,mBAAmB,GAC3B,yBAAyB,CAuL3B"}
@@ -25,6 +25,11 @@
25
25
  // its tolerance as a distance, as UIKit does. This hook measures it on each
26
26
  // axis. The context menu's own movement allowance is a guess and is not
27
27
  // measured yet (AST-094).
28
+ //
29
+ // The hold is a deadline on the touch events' timestamps, on the clock of the
30
+ // touch's own window. A busy main thread can delay the timer past the
31
+ // deadline. A touch stamped after the deadline then reports the press before
32
+ // it acts.
28
33
  import { useCallback, useEffect, useRef } from 'react';
29
34
  import { LONG_PRESS_ALLOWABLE_MOVEMENT_PX, LONG_PRESS_DURATION_MS } from "../motion/uikit/longPress.js";
30
35
 
@@ -33,6 +38,31 @@ import { LONG_PRESS_ALLOWABLE_MOVEMENT_PX, LONG_PRESS_DURATION_MS } from "../mot
33
38
  const DEFAULT_DELAY_MS = LONG_PRESS_DURATION_MS;
34
39
  const DEFAULT_MOVE_CANCEL_PX = LONG_PRESS_ALLOWABLE_MOVEMENT_PX;
35
40
 
41
+ /** The part of a window's performance timeline a press reads. */
42
+
43
+ function clockOf(e) {
44
+ const view = e.view;
45
+ return view?.performance ?? (typeof performance === 'undefined' ? null : performance);
46
+ }
47
+
48
+ /**
49
+ * An event's time on its window's clock. jsdom stamps events with
50
+ * `Date.now()`. The hook reads the age of such a stamp on that clock, so a
51
+ * frozen system time keeps the hold's length. A stamp nearer `Date.now()` than
52
+ * the window's clock is that kind of stamp.
53
+ */
54
+ function timeOn(clock, timeStamp) {
55
+ // A stamp of 0 means the event carries no time, so the hold falls back to
56
+ // the full delay on the page's timer.
57
+ if (timeStamp == null || !Number.isFinite(timeStamp) || timeStamp <= 0) {
58
+ return undefined;
59
+ }
60
+ if (clock != null && Math.abs(Date.now() - timeStamp) < Math.abs(clock.now() - timeStamp)) {
61
+ return clock.now() - (Date.now() - timeStamp);
62
+ }
63
+ return timeStamp;
64
+ }
65
+
36
66
  /**
37
67
  * @internal A press's own movement tolerance, for a core caller that decides
38
68
  * it as the press starts (useMenuPress's trigger). Not in the hooks entry.
@@ -69,6 +99,9 @@ export function useLongPressDetector(options) {
69
99
  } = options;
70
100
  const timerRef = useRef(null);
71
101
  const startRef = useRef(null);
102
+ // The pending press's deadline and clock, when it started from a touch.
103
+ const deadlineRef = useRef(null);
104
+ const clockRef = useRef(null);
72
105
  // The press in progress's tolerance, when its caller chose one at start.
73
106
  const pressToleranceRef = useRef(null);
74
107
  // Keep the latest callback without re-creating handlers on every render.
@@ -80,8 +113,31 @@ export function useLongPressDetector(options) {
80
113
  timerRef.current = null;
81
114
  }
82
115
  startRef.current = null;
116
+ deadlineRef.current = null;
117
+ clockRef.current = null;
83
118
  }, []);
84
- const start = useCallback((point, tolerance) => {
119
+ const fire = useCallback(() => {
120
+ const from = startRef.current;
121
+ if (from == null) {
122
+ return;
123
+ }
124
+ clear();
125
+ onLongPressRef.current({
126
+ x: from.x,
127
+ y: from.y
128
+ });
129
+ }, [clear]);
130
+
131
+ // A touch stamped at or past the deadline: the finger was down for the
132
+ // whole delay, so the press reports before the touch acts.
133
+ const fireIfDue = useCallback(e => {
134
+ const deadline = deadlineRef.current;
135
+ const eventTime = e == null ? undefined : timeOn(clockRef.current, e.timeStamp);
136
+ if (deadline != null && eventTime != null && eventTime >= deadline) {
137
+ fire();
138
+ }
139
+ }, [fire]);
140
+ const begin = useCallback((point, tolerance, started) => {
85
141
  if (disabled) {
86
142
  return;
87
143
  }
@@ -93,17 +149,26 @@ export function useLongPressDetector(options) {
93
149
  y: point.y
94
150
  };
95
151
  pressToleranceRef.current = tolerance ?? null;
96
- timerRef.current = setTimeout(() => {
97
- const from = startRef.current;
98
- if (from == null) {
152
+ const clock = started?.clock ?? null;
153
+ const deadline = started == null ? null : started.at + delayMs;
154
+ clockRef.current = clock;
155
+ deadlineRef.current = deadline;
156
+ // Wait only for the rest of the hold, so a touch handled late does not
157
+ // lengthen it, and never past the delay.
158
+ const remaining = clock == null || deadline == null ? delayMs : Math.min(delayMs, Math.max(0, deadline - clock.now()));
159
+ // A late timer yields to queued input once, so a lift stamped before
160
+ // the deadline still cancels the press. The gesture arena does the same.
161
+ const run = mayYield => {
162
+ timerRef.current = null;
163
+ if (mayYield && clock != null && deadline != null && clock.now() > deadline) {
164
+ timerRef.current = setTimeout(() => run(false), 0);
99
165
  return;
100
166
  }
101
- onLongPressRef.current({
102
- x: from.x,
103
- y: from.y
104
- });
105
- }, delayMs);
106
- }, [disabled, delayMs, clear]);
167
+ fire();
168
+ };
169
+ timerRef.current = setTimeout(() => run(true), remaining);
170
+ }, [disabled, delayMs, clear, fire]);
171
+ const start = useCallback((point, tolerance) => begin(point, tolerance, undefined), [begin]);
107
172
  const moveTo = useCallback(point => {
108
173
  const from = startRef.current;
109
174
  if (from == null) {
@@ -122,16 +187,27 @@ export function useLongPressDetector(options) {
122
187
  return;
123
188
  }
124
189
  if (e.touches.length !== 1) {
190
+ // A second finger ends the press, unless the press was already due.
191
+ fireIfDue(e);
125
192
  clear();
126
193
  return;
127
194
  }
128
195
  const touch = e.touches[0];
129
- start({
196
+ const clock = clockOf(e);
197
+ const at = timeOn(clock, e.timeStamp);
198
+ begin({
130
199
  x: touch.clientX,
131
200
  y: touch.clientY
201
+ }, undefined, clock == null || at == null ? undefined : {
202
+ at,
203
+ clock
132
204
  });
133
- }, [disabled, clear, start]);
205
+ }, [disabled, clear, begin, fireIfDue]);
134
206
  const onTouchMove = useCallback(e => {
207
+ if (startRef.current == null) {
208
+ return;
209
+ }
210
+ fireIfDue(e);
135
211
  if (startRef.current == null) {
136
212
  return;
137
213
  }
@@ -144,13 +220,17 @@ export function useLongPressDetector(options) {
144
220
  x: touch.clientX,
145
221
  y: touch.clientY
146
222
  });
147
- }, [clear, moveTo]);
223
+ }, [clear, moveTo, fireIfDue]);
224
+ const onTouchEnd = useCallback(e => {
225
+ fireIfDue(e);
226
+ clear();
227
+ }, [clear, fireIfDue]);
148
228
  useEffect(() => clear, [clear]);
149
229
  return {
150
230
  onTouchStart,
151
231
  onTouchMove,
152
- onTouchEnd: clear,
153
- onTouchCancel: clear,
232
+ onTouchEnd,
233
+ onTouchCancel: onTouchEnd,
154
234
  start,
155
235
  moveTo,
156
236
  cancel: clear
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuPress.d.ts","sourceRoot":"","sources":["../../src/hooks/useMenuPress.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,EAML,KAAK,oBAAoB,EAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAiBpD,OAAO,EAAC,iBAAiB,EAAC,CAAC;AAE3B;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,mCAAmC,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,yBAAyB,MAAwB,CAAC;AAC/D,iFAAiF;AACjF,eAAO,MAAM,wBAAwB,MAAyB,CAAC;AAC/D;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAM9C,oFAAoF;AACpF,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAUhD;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAED,4DAA4D;AAC5D,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED,MAAM,WAAW,mBAAmB;IAClC,+EAA+E;IAC/E,OAAO,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACvC,uEAAuE;IACvE,UAAU,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC3C;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,oBAAoB,KAAK,OAAO,CAAC;IAChE;;;;;OAKG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAC/D,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IACvC;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC;IACnD,mBAAmB;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,+CAA+C;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,SAAS,EAAE;QACT,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;QAChE,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC;KACzB,CAAC;IACF,yEAAyE;IACzE,YAAY,EAAE;QACZ,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;QAChE,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;KAC/D,CAAC;IACF;;;;OAIG;IACH,uBAAuB,EAAE,MAAM,OAAO,CAAC;IACvC,uEAAuE;IACvE,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AA0DD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,kBAAkB,CAwkB7E"}
1
+ {"version":3,"file":"useMenuPress.d.ts","sourceRoot":"","sources":["../../src/hooks/useMenuPress.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,EAML,KAAK,oBAAoB,EAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAiBpD,OAAO,EAAC,iBAAiB,EAAC,CAAC;AAE3B;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,mCAAmC,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,yBAAyB,MAAwB,CAAC;AAC/D,iFAAiF;AACjF,eAAO,MAAM,wBAAwB,MAAyB,CAAC;AAC/D;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAM9C,oFAAoF;AACpF,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAUhD;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAED,4DAA4D;AAC5D,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED,MAAM,WAAW,mBAAmB;IAClC,+EAA+E;IAC/E,OAAO,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACvC,uEAAuE;IACvE,UAAU,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC3C;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,oBAAoB,KAAK,OAAO,CAAC;IAChE;;;;;OAKG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAC/D,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IACvC;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC;IACnD,mBAAmB;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,+CAA+C;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,SAAS,EAAE;QACT,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;QAChE,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC;KACzB,CAAC;IACF,yEAAyE;IACzE,YAAY,EAAE;QACZ,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;QAChE,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;KAC/D,CAAC;IACF;;;;OAIG;IACH,uBAAuB,EAAE,MAAM,OAAO,CAAC;IACvC,uEAAuE;IACvE,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AA0DD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,kBAAkB,CA8kB7E"}
@@ -344,7 +344,8 @@ export function useMenuPress(options) {
344
344
  endGesture();
345
345
  // Once armed, the one swallower stays installed.
346
346
  armClickGuard(doc, {
347
- staysInstalled: true
347
+ staysInstalled: true,
348
+ cancelsTouchEnd: native?.pointerType === 'touch'
348
349
  });
349
350
  if (native != null) {
350
351
  activate(effect.row, native);
@@ -356,7 +357,8 @@ export function useMenuPress(options) {
356
357
  endGesture();
357
358
  if (effect.stray) {
358
359
  armClickGuard(doc, {
359
- staysInstalled: true
360
+ staysInstalled: true,
361
+ cancelsTouchEnd: native?.pointerType === 'touch'
360
362
  });
361
363
  }
362
364
  if (effect.dismiss) {
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @generated by scripts/generate-i18n-runtime.mjs from packages/core/locales/en.json,
3
+ * holding the English for the catalog keys named in packages/core/src/PowerSearch/PowerSearchBottomSheet.tsx.
4
+ * Do not edit by hand. Run `pnpm generate:i18n-runtime` instead.
5
+ */
6
+ declare const english: Readonly<Record<string, string>>;
7
+ export default english;
8
+ //# sourceMappingURL=PowerSearchBottomSheet.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PowerSearchBottomSheet.generated.d.ts","sourceRoot":"","sources":["../../../../src/i18n/generated-english/PowerSearch/PowerSearchBottomSheet.generated.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,QAAA,MAAM,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgC7C,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,42 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ /**
4
+ * @generated by scripts/generate-i18n-runtime.mjs from packages/core/locales/en.json,
5
+ * holding the English for the catalog keys named in packages/core/src/PowerSearch/PowerSearchBottomSheet.tsx.
6
+ * Do not edit by hand. Run `pnpm generate:i18n-runtime` instead.
7
+ */
8
+
9
+ const english = {
10
+ "@astryx.powersearch.allFiltersRemoved": "All filters removed",
11
+ "@astryx.powersearch.editableFiltersRemoved": "Editable filters removed",
12
+ "@astryx.powersearch.editor.apply": "Apply",
13
+ "@astryx.powersearch.editor.cancel": "Cancel",
14
+ "@astryx.powersearch.editor.operator": "Operator",
15
+ "@astryx.powersearch.sheet.addFilter": "Add filter",
16
+ "@astryx.powersearch.sheet.clearAll": "Clear all",
17
+ "@astryx.powersearch.sheet.clearAllCancel": "Keep filters",
18
+ "@astryx.powersearch.sheet.clearAllConfirm": "Clear filters",
19
+ "@astryx.powersearch.sheet.clearAllDescription": "This removes all editable filters from this search.",
20
+ "@astryx.powersearch.sheet.clearAllTitle": "Clear all filters?",
21
+ "@astryx.powersearch.sheet.done": "Done",
22
+ "@astryx.powersearch.sheet.editableFiltersClearedWithCount": "Editable filters removed. {resultCount}",
23
+ "@astryx.powersearch.sheet.fieldOperator": "{field} {operator}",
24
+ "@astryx.powersearch.sheet.filterUnavailable": "This filter is no longer available",
25
+ "@astryx.powersearch.sheet.filtersClearedWithCount": "All filters removed. {resultCount}",
26
+ "@astryx.powersearch.sheet.filtersTitle": "Filters",
27
+ "@astryx.powersearch.sheet.labelValue": "{label} {value}",
28
+ "@astryx.powersearch.sheet.noFilters": "No filters applied",
29
+ "@astryx.powersearch.sheet.noFiltersDescription": "Add a filter to narrow your results and find what you need faster.",
30
+ "@astryx.powersearch.sheet.noMatchingFields": "No filters match your search",
31
+ "@astryx.powersearch.sheet.noResults": "No results found",
32
+ "@astryx.powersearch.sheet.removeFilter": "Remove {field} filter",
33
+ "@astryx.powersearch.sheet.search": "Search",
34
+ "@astryx.powersearch.sheet.searchFields": "Search filters",
35
+ "@astryx.powersearch.sheet.searchFieldsPlaceholder": "Search filters…",
36
+ "@astryx.powersearch.sheet.searchResults": "Search results",
37
+ "@astryx.powersearch.sheet.tryDifferentSearch": "Try a different search.",
38
+ "@astryx.powersearch.sheet.ungroupedFields": "General",
39
+ "@astryx.tokenizer.tokenAdded": "Added {label}",
40
+ "@astryx.tokenizer.tokenRemoved": "Removed {label}"
41
+ };
42
+ export default english;
@@ -1 +1 @@
1
- {"version":3,"file":"PowerSearchValueEditor.generated.d.ts","sourceRoot":"","sources":["../../../../src/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,QAAA,MAAM,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAa7C,CAAC;AAEF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"PowerSearchValueEditor.generated.d.ts","sourceRoot":"","sources":["../../../../src/i18n/generated-english/PowerSearch/PowerSearchValueEditor.generated.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,QAAA,MAAM,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmB7C,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -7,6 +7,12 @@
7
7
  */
8
8
 
9
9
  const english = {
10
+ "@astryx.powersearch.sheet.relativeDaysAgo": "{count, number} {count, plural, one {day} other {days}} ago",
11
+ "@astryx.powersearch.sheet.relativeDaysFromNow": "{count, number} {count, plural, one {day} other {days}} from now",
12
+ "@astryx.powersearch.sheet.relativeMonthsAgo": "{count, number} {count, plural, one {month} other {months}} ago",
13
+ "@astryx.powersearch.sheet.relativeMonthsFromNow": "{count, number} {count, plural, one {month} other {months}} from now",
14
+ "@astryx.powersearch.sheet.relativeWeeksAgo": "{count, number} {count, plural, one {week} other {weeks}} ago",
15
+ "@astryx.powersearch.sheet.relativeWeeksFromNow": "{count, number} {count, plural, one {week} other {weeks}} from now",
10
16
  "@astryx.powersearch.valueEditor.addValuesPlaceholder": "Add values…",
11
17
  "@astryx.powersearch.valueEditor.date": "Date",
12
18
  "@astryx.powersearch.valueEditor.dateRange": "date range",
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @generated by scripts/generate-i18n-runtime.mjs from packages/core/locales/en.json,
3
+ * holding the English for the catalog keys named in packages/core/src/PowerSearch/formatTokenValue.ts.
4
+ * Do not edit by hand. Run `pnpm generate:i18n-runtime` instead.
5
+ */
6
+ declare const english: Readonly<Record<string, string>>;
7
+ export default english;
8
+ //# sourceMappingURL=formatTokenValue.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatTokenValue.generated.d.ts","sourceRoot":"","sources":["../../../../src/i18n/generated-english/PowerSearch/formatTokenValue.generated.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,QAAA,MAAM,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAI7C,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,14 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ /**
4
+ * @generated by scripts/generate-i18n-runtime.mjs from packages/core/locales/en.json,
5
+ * holding the English for the catalog keys named in packages/core/src/PowerSearch/formatTokenValue.ts.
6
+ * Do not edit by hand. Run `pnpm generate:i18n-runtime` instead.
7
+ */
8
+
9
+ const english = {
10
+ "@astryx.powersearch.valueEditor.dateRange": "date range",
11
+ "@astryx.powersearch.valueEditor.filtersCount": "{count, number} {count, plural, one {filter} other {filters}}",
12
+ "@astryx.powersearch.valueEditor.itemsCount": "{count, number} {count, plural, one {item} other {items}}"
13
+ };
14
+ export default english;
@@ -1 +1 @@
1
- {"version":3,"file":"en.generated.d.ts","sourceRoot":"","sources":["../../../src/i18n/generated-locales/en.generated.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,QAAA,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAonBpD,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"en.generated.d.ts","sourceRoot":"","sources":["../../../src/i18n/generated-locales/en.generated.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,QAAA,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA6pBpD,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -71,6 +71,36 @@ const runtimeCatalog = {
71
71
  '@astryx.powersearch.valueEditor.dateRange': 'date range',
72
72
  '@astryx.powersearch.valueEditor.filtersCount': '{count, number} {count, plural, one {filter} other {filters}}',
73
73
  '@astryx.powersearch.resultCount': '{count, number} {count, plural, one {result} other {results}}',
74
+ '@astryx.powersearch.sheet.filtersTitle': 'Filters',
75
+ '@astryx.powersearch.sheet.addFilter': 'Add filter',
76
+ '@astryx.powersearch.sheet.noFilters': 'No filters applied',
77
+ '@astryx.powersearch.sheet.noFiltersDescription': 'Add a filter to narrow your results and find what you need faster.',
78
+ '@astryx.powersearch.sheet.clearAll': 'Clear all',
79
+ '@astryx.powersearch.sheet.clearAllTitle': 'Clear all filters?',
80
+ '@astryx.powersearch.sheet.clearAllDescription': 'This removes all editable filters from this search.',
81
+ '@astryx.powersearch.sheet.clearAllConfirm': 'Clear filters',
82
+ '@astryx.powersearch.sheet.clearAllCancel': 'Keep filters',
83
+ '@astryx.powersearch.sheet.done': 'Done',
84
+ '@astryx.powersearch.sheet.search': 'Search',
85
+ '@astryx.powersearch.sheet.searchResults': 'Search results',
86
+ '@astryx.powersearch.sheet.searchFields': 'Search filters',
87
+ '@astryx.powersearch.sheet.searchFieldsPlaceholder': 'Search filters…',
88
+ '@astryx.powersearch.sheet.ungroupedFields': 'General',
89
+ '@astryx.powersearch.sheet.noMatchingFields': 'No filters match your search',
90
+ '@astryx.powersearch.sheet.tryDifferentSearch': 'Try a different search.',
91
+ '@astryx.powersearch.sheet.noResults': 'No results found',
92
+ '@astryx.powersearch.sheet.filterUnavailable': 'This filter is no longer available',
93
+ '@astryx.powersearch.sheet.removeFilter': 'Remove {field} filter',
94
+ '@astryx.powersearch.sheet.relativeDaysAgo': '{count, number} {count, plural, one {day} other {days}} ago',
95
+ '@astryx.powersearch.sheet.relativeDaysFromNow': '{count, number} {count, plural, one {day} other {days}} from now',
96
+ '@astryx.powersearch.sheet.relativeWeeksAgo': '{count, number} {count, plural, one {week} other {weeks}} ago',
97
+ '@astryx.powersearch.sheet.relativeWeeksFromNow': '{count, number} {count, plural, one {week} other {weeks}} from now',
98
+ '@astryx.powersearch.sheet.relativeMonthsAgo': '{count, number} {count, plural, one {month} other {months}} ago',
99
+ '@astryx.powersearch.sheet.relativeMonthsFromNow': '{count, number} {count, plural, one {month} other {months}} from now',
100
+ '@astryx.powersearch.sheet.fieldOperator': '{field} {operator}',
101
+ '@astryx.powersearch.sheet.labelValue': '{label} {value}',
102
+ '@astryx.powersearch.sheet.filtersClearedWithCount': 'All filters removed. {resultCount}',
103
+ '@astryx.powersearch.sheet.editableFiltersClearedWithCount': 'Editable filters removed. {resultCount}',
74
104
  '@astryx.alertDialog.cancel': 'Cancel',
75
105
  '@astryx.appShell.mobileNavigation': 'Mobile navigation',
76
106
  '@astryx.appShell.skipToContent': 'Skip to content',
@@ -1 +1 @@
1
- {"version":3,"file":"pseudo.generated.d.ts","sourceRoot":"","sources":["../../../src/i18n/generated-locales/pseudo.generated.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,QAAA,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA+nBpD,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"pseudo.generated.d.ts","sourceRoot":"","sources":["../../../src/i18n/generated-locales/pseudo.generated.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,QAAA,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAyqBpD,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -71,6 +71,36 @@ const runtimeCatalog = {
71
71
  '@astryx.powersearch.valueEditor.dateRange': '⟦ðàţé řàñĝé⟧',
72
72
  '@astryx.powersearch.valueEditor.filtersCount': '⟦{count, number} {count, plural, one {filter} other {filters}}⟧',
73
73
  '@astryx.powersearch.resultCount': '⟦{count, number} {count, plural, one {result} other {results}}⟧',
74
+ '@astryx.powersearch.sheet.filtersTitle': '⟦Ƒíłţéřš⟧',
75
+ '@astryx.powersearch.sheet.addFilter': '⟦Àðð ƒíłţéř⟧',
76
+ '@astryx.powersearch.sheet.noFilters': '⟦Ñó ƒíłţéřš àþþłíéð⟧',
77
+ '@astryx.powersearch.sheet.noFiltersDescription': '⟦Àðð à ƒíłţéř ţó ñàřřóŵ ýóúř řéšúłţš àñð ƒíñð ŵĥàţ ýóú ñééð ƒàšţéř.⟧',
78
+ '@astryx.powersearch.sheet.clearAll': '⟦Çłéàř àłł⟧',
79
+ '@astryx.powersearch.sheet.clearAllTitle': '⟦Çłéàř àłł ƒíłţéřš?⟧',
80
+ '@astryx.powersearch.sheet.clearAllDescription': '⟦Ţĥíš řéɱóṽéš àłł éðíţàƀłé ƒíłţéřš ƒřóɱ ţĥíš šéàřçĥ.⟧',
81
+ '@astryx.powersearch.sheet.clearAllConfirm': '⟦Çłéàř ƒíłţéřš⟧',
82
+ '@astryx.powersearch.sheet.clearAllCancel': '⟦Ķééþ ƒíłţéřš⟧',
83
+ '@astryx.powersearch.sheet.done': '⟦Ðóñé⟧',
84
+ '@astryx.powersearch.sheet.search': '⟦Šéàřçĥ⟧',
85
+ '@astryx.powersearch.sheet.searchResults': '⟦Šéàřçĥ řéšúłţš⟧',
86
+ '@astryx.powersearch.sheet.searchFields': '⟦Šéàřçĥ ƒíłţéřš⟧',
87
+ '@astryx.powersearch.sheet.searchFieldsPlaceholder': '⟦Šéàřçĥ ƒíłţéřš…⟧',
88
+ '@astryx.powersearch.sheet.ungroupedFields': '⟦Ĝéñéřàł⟧',
89
+ '@astryx.powersearch.sheet.noMatchingFields': '⟦Ñó ƒíłţéřš ɱàţçĥ ýóúř šéàřçĥ⟧',
90
+ '@astryx.powersearch.sheet.tryDifferentSearch': '⟦Ţřý à ð탃éřéñţ šéàřçĥ.⟧',
91
+ '@astryx.powersearch.sheet.noResults': '⟦Ñó řéšúłţš ƒóúñð⟧',
92
+ '@astryx.powersearch.sheet.filterUnavailable': '⟦Ţĥíš ƒíłţéř íš ñó łóñĝéř àṽàíłàƀłé⟧',
93
+ '@astryx.powersearch.sheet.removeFilter': '⟦Řéɱóṽé {field} ƒíłţéř⟧',
94
+ '@astryx.powersearch.sheet.relativeDaysAgo': '⟦{count, number} {count, plural, one {day} other {days}} àĝó⟧',
95
+ '@astryx.powersearch.sheet.relativeDaysFromNow': '⟦{count, number} {count, plural, one {day} other {days}} ƒřóɱ ñóŵ⟧',
96
+ '@astryx.powersearch.sheet.relativeWeeksAgo': '⟦{count, number} {count, plural, one {week} other {weeks}} àĝó⟧',
97
+ '@astryx.powersearch.sheet.relativeWeeksFromNow': '⟦{count, number} {count, plural, one {week} other {weeks}} ƒřóɱ ñóŵ⟧',
98
+ '@astryx.powersearch.sheet.relativeMonthsAgo': '⟦{count, number} {count, plural, one {month} other {months}} àĝó⟧',
99
+ '@astryx.powersearch.sheet.relativeMonthsFromNow': '⟦{count, number} {count, plural, one {month} other {months}} ƒřóɱ ñóŵ⟧',
100
+ '@astryx.powersearch.sheet.fieldOperator': '⟦{field} {operator}⟧',
101
+ '@astryx.powersearch.sheet.labelValue': '⟦{label} {value}⟧',
102
+ '@astryx.powersearch.sheet.filtersClearedWithCount': '⟦Àłł ƒíłţéřš řéɱóṽéð. {resultCount}⟧',
103
+ '@astryx.powersearch.sheet.editableFiltersClearedWithCount': '⟦Éðíţàƀłé ƒíłţéřš řéɱóṽéð. {resultCount}⟧',
74
104
  '@astryx.alertDialog.cancel': '⟦Çàñçéł⟧',
75
105
  '@astryx.appShell.mobileNavigation': '⟦Ṁóƀíłé ñàṽíĝàţíóñ⟧',
76
106
  '@astryx.appShell.skipToContent': '⟦Šķíþ ţó çóñţéñţ⟧',
package/dist/index.d.ts CHANGED
@@ -113,6 +113,7 @@ export * from './Timer/index.js';
113
113
  export * from './Overlay/index.js';
114
114
  export * from './Outline/index.js';
115
115
  export * from './OverflowList/index.js';
116
+ export { createAnimator, type Animator, type AnimatorAnimateOptions, type AnimatorChannel, type AnimatorDecayVelocity, type AnimatorHandle, type AnimatorSnapshot, type AnimatorValues, } from './animator/createAnimator.js';
116
117
  export * from './hooks/index.js';
117
118
  export * from './utils/index.js';
118
119
  export type { TextColorMap } from './Text/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -145,6 +145,10 @@ export * from "./Outline/index.js";
145
145
  // Overflow list
146
146
  export * from "./OverflowList/index.js";
147
147
 
148
+ // Animating one element: from the package root only, since one API has one
149
+ // entry. Its hook ships from './hooks'.
150
+ export { createAnimator } from "./animator/createAnimator.js";
151
+
148
152
  // Hooks
149
153
  export * from "./hooks/index.js";
150
154