@astryxdesign/core 0.7.8 → 0.7.9-canary.0a64fdb

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 (276) hide show
  1. package/dist/AppShell/observeMainOverflow.d.ts.map +1 -1
  2. package/dist/AppShell/observeMainOverflow.js +9 -6
  3. package/dist/BottomSheet/BottomSheet.d.ts.map +1 -1
  4. package/dist/BottomSheet/BottomSheet.js +5 -0
  5. package/dist/Calendar/styles.d.ts +1 -1
  6. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  7. package/dist/CheckboxInput/CheckboxInput.js +54 -11
  8. package/dist/ClickableCard/ClickableCard.d.ts +1 -1
  9. package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
  10. package/dist/ClickableCard/ClickableCard.js +5 -1
  11. package/dist/DateInput/PickerWheel.d.ts.map +1 -1
  12. package/dist/DateInput/PickerWheel.js +7 -1
  13. package/dist/DateRangeInput/DateRangeInput.js +1 -1
  14. package/dist/Dialog/Dialog.d.ts +2 -1
  15. package/dist/Dialog/Dialog.d.ts.map +1 -1
  16. package/dist/Dialog/Dialog.js +12 -1
  17. package/dist/Drawer/useDrawerDialogPresence.d.ts +2 -1
  18. package/dist/Drawer/useDrawerDialogPresence.d.ts.map +1 -1
  19. package/dist/Drawer/useDrawerDialogPresence.js +11 -2
  20. package/dist/DropdownMenu/DropdownMenu.d.ts +9 -1
  21. package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  22. package/dist/DropdownMenu/DropdownMenu.js +9 -4
  23. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -1
  24. package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +3 -2
  25. package/dist/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
  26. package/dist/DropdownMenu/DropdownMenuItem.js +3 -2
  27. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
  28. package/dist/DropdownMenu/DropdownMenuRadioItem.js +3 -2
  29. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
  30. package/dist/DropdownMenu/DropdownMenuSubMenu.js +3 -2
  31. package/dist/Field/inputDisabledFocus.d.ts +4 -4
  32. package/dist/Field/inputStyles.stylex.d.ts +1 -1
  33. package/dist/FileInput/FileInput.d.ts.map +1 -1
  34. package/dist/FileInput/FileInput.js +16 -2
  35. package/dist/Icon/Icon.d.ts +1 -1
  36. package/dist/InfoTip/InfoTip.d.ts +1 -0
  37. package/dist/InfoTip/InfoTip.d.ts.map +1 -1
  38. package/dist/InfoTip/InfoTip.js +1 -0
  39. package/dist/InputGroup/InputGroup.d.ts +4 -3
  40. package/dist/InputGroup/InputGroup.d.ts.map +1 -1
  41. package/dist/InputGroup/InputGroup.js +2 -2
  42. package/dist/InputGroup/groupStyles.d.ts +1 -1
  43. package/dist/InputGroup/groupStyles.d.ts.map +1 -1
  44. package/dist/InputGroup/groupStyles.js +1 -1
  45. package/dist/Item/Item.d.ts +2 -1
  46. package/dist/Item/Item.d.ts.map +1 -1
  47. package/dist/Item/Item.js +29 -6
  48. package/dist/Layer/holdEntranceInput.d.ts +24 -0
  49. package/dist/Layer/holdEntranceInput.d.ts.map +1 -0
  50. package/dist/Layer/holdEntranceInput.js +65 -0
  51. package/dist/Layer/inputHold.d.ts +49 -0
  52. package/dist/Layer/inputHold.d.ts.map +1 -0
  53. package/dist/Layer/inputHold.js +636 -0
  54. package/dist/Layer/preserveAnimations.d.ts +1 -5
  55. package/dist/Layer/preserveAnimations.d.ts.map +1 -1
  56. package/dist/Layer/preserveAnimations.js +12 -214
  57. package/dist/Layout/LayoutContent.d.ts +3 -1
  58. package/dist/Layout/LayoutContent.d.ts.map +1 -1
  59. package/dist/Layout/LayoutContent.js +12 -4
  60. package/dist/Layout/LayoutPanel.d.ts +4 -1
  61. package/dist/Layout/LayoutPanel.d.ts.map +1 -1
  62. package/dist/Layout/LayoutPanel.js +13 -4
  63. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  64. package/dist/Lightbox/Lightbox.js +4 -0
  65. package/dist/MetadataList/MetadataList.js +1 -1
  66. package/dist/MobileNav/MobileNav.d.ts +11 -1
  67. package/dist/MobileNav/MobileNav.d.ts.map +1 -1
  68. package/dist/MobileNav/MobileNav.js +39 -1
  69. package/dist/MoreMenu/MoreMenu.d.ts +5 -3
  70. package/dist/MoreMenu/MoreMenu.d.ts.map +1 -1
  71. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  72. package/dist/RadioList/RadioListItem.js +22 -4
  73. package/dist/SelectableCard/SelectableCard.d.ts +1 -1
  74. package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
  75. package/dist/SelectableCard/SelectableCard.js +5 -1
  76. package/dist/Spinner/Spinner.d.ts.map +1 -1
  77. package/dist/Spinner/Spinner.js +12 -2
  78. package/dist/Stack/StackItem.d.ts +8 -4
  79. package/dist/Stack/StackItem.d.ts.map +1 -1
  80. package/dist/Stack/StackItem.js +17 -4
  81. package/dist/Table/plugins/sortable/useTableSortable.js +1 -1
  82. package/dist/Token/Token.d.ts.map +1 -1
  83. package/dist/Token/Token.js +9 -0
  84. package/dist/Token/TokenLink.d.ts +1 -1
  85. package/dist/Token/TokenLink.d.ts.map +1 -1
  86. package/dist/Token/TokenLink.js +4 -1
  87. package/dist/Tooltip/useTooltip.d.ts.map +1 -1
  88. package/dist/Tooltip/useTooltip.js +162 -59
  89. package/dist/TreeList/TreeListItem.d.ts +2 -1
  90. package/dist/TreeList/TreeListItem.d.ts.map +1 -1
  91. package/dist/TreeList/TreeListItem.js +27 -3
  92. package/dist/astryx.css +35 -8
  93. package/dist/gestures/GestureHost.d.ts +2 -2
  94. package/dist/gestures/GestureHost.d.ts.map +1 -1
  95. package/dist/gestures/GestureHost.js +21 -6
  96. package/dist/gestures/PanGestureRecognizer.d.ts +11 -1
  97. package/dist/gestures/PanGestureRecognizer.d.ts.map +1 -1
  98. package/dist/gestures/PanGestureRecognizer.js +15 -1
  99. package/dist/gestures/ScreenEdgePanGestureRecognizer.d.ts +6 -1
  100. package/dist/gestures/ScreenEdgePanGestureRecognizer.d.ts.map +1 -1
  101. package/dist/gestures/nativeScroll.d.ts +3 -6
  102. package/dist/gestures/nativeScroll.d.ts.map +1 -1
  103. package/dist/gestures/nativeScroll.js +7 -52
  104. package/dist/gestures/wheelSegmenter.d.ts +68 -1
  105. package/dist/gestures/wheelSegmenter.d.ts.map +1 -1
  106. package/dist/gestures/wheelSegmenter.js +199 -10
  107. package/dist/hooks/StackItemScrollRegion.d.ts +31 -0
  108. package/dist/hooks/StackItemScrollRegion.d.ts.map +1 -0
  109. package/dist/hooks/StackItemScrollRegion.js +40 -0
  110. package/dist/hooks/menuPressGesture.d.ts +133 -21
  111. package/dist/hooks/menuPressGesture.d.ts.map +1 -1
  112. package/dist/hooks/menuPressGesture.js +155 -30
  113. package/dist/hooks/menuPressValues.d.ts +16 -0
  114. package/dist/hooks/menuPressValues.d.ts.map +1 -0
  115. package/dist/hooks/menuPressValues.js +18 -0
  116. package/dist/hooks/useClickableContainer.d.ts +27 -5
  117. package/dist/hooks/useClickableContainer.d.ts.map +1 -1
  118. package/dist/hooks/useClickableContainer.js +41 -5
  119. package/dist/hooks/useFocusTrap.d.ts +10 -0
  120. package/dist/hooks/useFocusTrap.d.ts.map +1 -1
  121. package/dist/hooks/useFocusTrap.js +225 -132
  122. package/dist/hooks/useMenuPress.d.ts +34 -1
  123. package/dist/hooks/useMenuPress.d.ts.map +1 -1
  124. package/dist/hooks/useMenuPress.js +93 -5
  125. package/dist/hooks/usePressFeedback.d.ts +6 -6
  126. package/dist/hooks/usePressFeedback.js +6 -6
  127. package/dist/hooks/useScrollRegionProps.d.ts +35 -0
  128. package/dist/hooks/useScrollRegionProps.d.ts.map +1 -0
  129. package/dist/hooks/useScrollRegionProps.js +51 -0
  130. package/dist/i18n/generated-english/hooks/useScrollRegionProps.generated.d.ts +8 -0
  131. package/dist/i18n/generated-english/hooks/useScrollRegionProps.generated.d.ts.map +1 -0
  132. package/dist/i18n/generated-english/hooks/useScrollRegionProps.generated.js +12 -0
  133. package/dist/i18n/generated-locales/en.generated.d.ts.map +1 -1
  134. package/dist/i18n/generated-locales/en.generated.js +1 -0
  135. package/dist/i18n/generated-locales/pseudo.generated.d.ts.map +1 -1
  136. package/dist/i18n/generated-locales/pseudo.generated.js +1 -0
  137. package/dist/motion/carryAnimations.d.ts +58 -0
  138. package/dist/motion/carryAnimations.d.ts.map +1 -0
  139. package/dist/motion/carryAnimations.js +305 -0
  140. package/dist/motion/transientCopy.d.ts +4 -2
  141. package/dist/motion/transientCopy.d.ts.map +1 -1
  142. package/dist/motion/transientCopy.js +34 -5
  143. package/dist/motion/uikit/gestures.d.ts +41 -0
  144. package/dist/motion/uikit/gestures.d.ts.map +1 -1
  145. package/dist/motion/uikit/gestures.js +25 -0
  146. package/dist/motion/uikit/index.d.ts +1 -1
  147. package/dist/motion/uikit/index.d.ts.map +1 -1
  148. package/dist/motion/uikit/index.js +1 -1
  149. package/dist/privateAttributes/menuPressLit.stylex.d.ts +52 -0
  150. package/dist/privateAttributes/menuPressLit.stylex.d.ts.map +1 -0
  151. package/dist/privateAttributes/menuPressLit.stylex.js +99 -0
  152. package/dist/privateAttributes/press.stylex.d.ts +139 -0
  153. package/dist/privateAttributes/press.stylex.d.ts.map +1 -0
  154. package/dist/privateAttributes/press.stylex.js +98 -0
  155. package/dist/theme/tokens.stylex.d.ts +2 -2
  156. package/dist/theme/tokens.stylex.js +1 -1
  157. package/dist/utils/flatTree.d.ts +6 -3
  158. package/dist/utils/flatTree.d.ts.map +1 -1
  159. package/dist/utils/flatTree.js +13 -3
  160. package/dist/utils/hitArea.d.ts.map +1 -1
  161. package/dist/utils/hitArea.js +82 -5
  162. package/dist/utils/inputStream.d.ts +14 -1
  163. package/dist/utils/inputStream.d.ts.map +1 -1
  164. package/dist/utils/inputStream.js +40 -9
  165. package/dist/utils/interactionOverlay.stylex.d.ts +2 -1
  166. package/dist/utils/interactionOverlay.stylex.d.ts.map +1 -1
  167. package/dist/utils/interactionOverlay.stylex.js +7 -2
  168. package/dist/utils/pressFeedback.d.ts +7 -0
  169. package/dist/utils/pressFeedback.d.ts.map +1 -1
  170. package/dist/utils/pressFeedback.js +32 -7
  171. package/dist/utils/pressGesture.d.ts +6 -0
  172. package/dist/utils/pressGesture.d.ts.map +1 -1
  173. package/dist/utils/pressGesture.js +17 -0
  174. package/dist/utils/rowPressLayer.stylex.d.ts +14 -0
  175. package/dist/utils/rowPressLayer.stylex.d.ts.map +1 -0
  176. package/dist/utils/rowPressLayer.stylex.js +25 -0
  177. package/dist/utils/scrollView.d.ts +25 -0
  178. package/dist/utils/scrollView.d.ts.map +1 -0
  179. package/dist/utils/scrollView.js +108 -0
  180. package/dist/utils/selectionLock.d.ts.map +1 -1
  181. package/dist/utils/selectionLock.js +1 -10
  182. package/dist/utils/touchHitArea.stylex.d.ts +35 -0
  183. package/dist/utils/touchHitArea.stylex.d.ts.map +1 -0
  184. package/dist/utils/touchHitArea.stylex.js +32 -0
  185. package/dist/utils/triggerFocus.d.ts +5 -0
  186. package/dist/utils/triggerFocus.d.ts.map +1 -1
  187. package/dist/utils/triggerFocus.js +9 -2
  188. package/locales/en.json +4 -0
  189. package/locales/pseudo.json +3 -0
  190. package/package.json +5 -5
  191. package/src/AppShell/observeMainOverflow.ts +9 -6
  192. package/src/BottomSheet/BottomSheet.tsx +5 -0
  193. package/src/CheckboxInput/CheckboxInput.doc.mjs +3 -2
  194. package/src/CheckboxInput/CheckboxInput.tsx +71 -9
  195. package/src/ClickableCard/ClickableCard.tsx +8 -1
  196. package/src/DateInput/PickerWheel.tsx +7 -2
  197. package/src/DateRangeInput/DateRangeInput.tsx +1 -1
  198. package/src/Dialog/Dialog.doc.mjs +1 -1
  199. package/src/Dialog/Dialog.tsx +12 -1
  200. package/src/Drawer/Drawer.doc.mjs +1 -1
  201. package/src/Drawer/useDrawerDialogPresence.ts +9 -2
  202. package/src/DropdownMenu/DropdownMenu.doc.mjs +1 -2
  203. package/src/DropdownMenu/DropdownMenu.tsx +29 -5
  204. package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +5 -1
  205. package/src/DropdownMenu/DropdownMenuItem.tsx +8 -4
  206. package/src/DropdownMenu/DropdownMenuRadioItem.tsx +5 -1
  207. package/src/DropdownMenu/DropdownMenuSubMenu.tsx +5 -1
  208. package/src/FileInput/FileInput.tsx +16 -2
  209. package/src/InfoTip/InfoTip.doc.mjs +26 -2
  210. package/src/InfoTip/InfoTip.tsx +1 -0
  211. package/src/InputGroup/InputGroup.doc.mjs +4 -3
  212. package/src/InputGroup/InputGroup.tsx +4 -3
  213. package/src/InputGroup/groupStyles.ts +3 -1
  214. package/src/Item/Item.tsx +51 -9
  215. package/src/Layer/holdEntranceInput.ts +84 -0
  216. package/src/Layer/inputHold.ts +734 -0
  217. package/src/Layer/preserveAnimations.ts +12 -275
  218. package/src/Layout/LayoutContent.doc.mjs +6 -3
  219. package/src/Layout/LayoutContent.tsx +10 -4
  220. package/src/Layout/LayoutPanel.doc.mjs +6 -3
  221. package/src/Layout/LayoutPanel.tsx +11 -4
  222. package/src/Lightbox/Lightbox.tsx +4 -0
  223. package/src/MetadataList/MetadataList.tsx +1 -1
  224. package/src/MobileNav/MobileNav.doc.mjs +3 -3
  225. package/src/MobileNav/MobileNav.tsx +39 -1
  226. package/src/MoreMenu/MoreMenu.doc.mjs +2 -4
  227. package/src/MoreMenu/MoreMenu.tsx +5 -3
  228. package/src/RadioList/RadioListItem.doc.mjs +3 -2
  229. package/src/RadioList/RadioListItem.tsx +25 -7
  230. package/src/SelectableCard/SelectableCard.tsx +8 -1
  231. package/src/Spinner/Spinner.tsx +13 -3
  232. package/src/Stack/Stack.doc.mjs +1 -1
  233. package/src/Stack/StackItem.tsx +27 -13
  234. package/src/Table/plugins/sortable/useTableSortable.tsx +1 -1
  235. package/src/Token/Token.tsx +18 -1
  236. package/src/Token/TokenLink.tsx +7 -1
  237. package/src/Tooltip/useTooltip.tsx +175 -79
  238. package/src/TreeList/TreeListItem.tsx +36 -2
  239. package/src/gestures/GestureHost.ts +21 -5
  240. package/src/gestures/PanGestureRecognizer.ts +19 -2
  241. package/src/gestures/README.md +14 -5
  242. package/src/gestures/ScreenEdgePanGestureRecognizer.ts +6 -1
  243. package/src/gestures/nativeScroll.ts +12 -68
  244. package/src/gestures/wheelSegmenter.ts +243 -10
  245. package/src/hooks/StackItemScrollRegion.tsx +57 -0
  246. package/src/hooks/menuPressGesture.ts +244 -38
  247. package/src/hooks/menuPressValues.ts +18 -0
  248. package/src/hooks/useClickableContainer.doc.mjs +8 -2
  249. package/src/hooks/useClickableContainer.ts +72 -6
  250. package/src/hooks/useFocusTrap.ts +268 -151
  251. package/src/hooks/useMenuPress.ts +118 -11
  252. package/src/hooks/usePressFeedback.doc.mjs +3 -3
  253. package/src/hooks/usePressFeedback.ts +6 -6
  254. package/src/hooks/useScrollRegionProps.ts +76 -0
  255. package/src/i18n/generated-english/hooks/useScrollRegionProps.generated.ts +13 -0
  256. package/src/i18n/generated-locales/en.generated.ts +1 -0
  257. package/src/i18n/generated-locales/pseudo.generated.ts +1 -0
  258. package/src/motion/MEASUREMENTS.md +11 -0
  259. package/src/motion/carryAnimations.ts +389 -0
  260. package/src/motion/transientCopy.ts +45 -5
  261. package/src/motion/uikit/gestures.ts +22 -0
  262. package/src/motion/uikit/index.ts +1 -0
  263. package/src/privateAttributes/menuPressLit.stylex.ts +104 -0
  264. package/src/privateAttributes/press.stylex.ts +244 -0
  265. package/src/theme/tokens.stylex.ts +1 -1
  266. package/src/utils/flatTree.ts +15 -3
  267. package/src/utils/hitArea.ts +107 -5
  268. package/src/utils/inputStream.ts +47 -10
  269. package/src/utils/interactionOverlay.stylex.ts +7 -2
  270. package/src/utils/pressFeedback.ts +31 -6
  271. package/src/utils/pressGesture.ts +24 -1
  272. package/src/utils/rowPressLayer.stylex.ts +27 -0
  273. package/src/utils/scrollView.ts +135 -0
  274. package/src/utils/selectionLock.ts +5 -10
  275. package/src/utils/touchHitArea.stylex.ts +41 -0
  276. package/src/utils/triggerFocus.ts +17 -4
@@ -11,189 +11,23 @@
11
11
  *
12
12
  * Taking an element out of rendering cancels every CSS animation and
13
13
  * transition of it and its subtree. When it returns, the browser creates the
14
- * animations again from the stylesheet, at their start, and the transitions
15
- * not at all; script-created animations are untouched. `preserveAnimations`
16
- * reads every animation's state first and, afterwards, gives each recreated
17
- * CSS animation that state and resumes each cancelled transition with a
18
- * script animation at the same point.
19
- *
20
- * The state is read generically, from what the platform exposes: every
21
- * accessor with a setter on the animation's and its effect's prototype
22
- * chains, every field of the effect's timing, and its keyframes. Only values
23
- * that differ from the recreated animation's are written, so a value the
24
- * stylesheet controls stays under its control. A few members are not plain
25
- * state and are handled in their own step (`ORDERED`); the rest need no
26
- * handling (`DERIVED`). What cannot be carried over is the Animation and
27
- * effect objects themselves: the old ones are idle, their `addEventListener`
28
- * listeners and `finished`/`ready` promises stay with them, and the browser
29
- * fires `animationcancel`/`transitioncancel` for them and `animationstart`
14
+ * animations again from the stylesheet, at their start. It starts no
15
+ * transition but one from `@starting-style`, and script-created animations
16
+ * are untouched. `preserveAnimations` reads every animation's state first.
17
+ * Afterwards it gives each recreated CSS animation that state, and resumes
18
+ * each cancelled transition with a script animation at the same point. Any
19
+ * other animation the return started is finished, unless it never ends
20
+ * (motion/carryAnimations.ts). The browser fires
21
+ * `animationcancel`/`transitioncancel` for the old ones and `animationstart`
30
22
  * for the new ones.
31
23
  */
32
24
 
33
- /**
34
- * Animation members written in a fixed order rather than generically: the
35
- * timeline before the range that is measured on it, the rate before the
36
- * time, and the start time (or, for a paused animation, the current time)
37
- * last, once the play state is set. `effect` is not
38
- * replaced, because a CSS animation whose effect script replaces leaves the
39
- * stylesheet's control; its state is copied onto the new effect instead.
40
- */
41
- const ORDERED = new Set(['effect', 'timeline', 'rangeStart', 'rangeEnd', 'playbackRate', 'startTime', 'currentTime']);
42
- /** Every accessor with a setter on `object`'s prototype chain. */
43
- function writableAccessors(object) {
44
- const names = new Set();
45
- for (let proto = Object.getPrototypeOf(object); proto != null && proto !== Object.prototype; proto = Object.getPrototypeOf(proto)) {
46
- for (const [name, descriptor] of Object.entries(Object.getOwnPropertyDescriptors(proto))) {
47
- if (descriptor.set != null) {
48
- names.add(name);
49
- }
50
- }
51
- }
52
- return [...names];
53
- }
54
-
55
- /**
56
- * A textual form of a value that is compared by content rather than by
57
- * identity: a CSS numeric value (as in a timeline range offset) through its
58
- * serialization, a plain object (a range) through its members. Anything else
59
- * is compared by identity (`null`).
60
- */
61
- function contentOf(value) {
62
- if (typeof CSSNumericValue !== 'undefined' && value instanceof CSSNumericValue) {
63
- return value.toString();
64
- }
65
- if (value != null && typeof value === 'object' && Object.getPrototypeOf(value) === Object.prototype) {
66
- return Object.entries(value).map(([key, inner]) => `${key}:${contentOf(inner) ?? String(inner)}`).join(';');
67
- }
68
- return null;
69
- }
70
- function differs(a, b) {
71
- if (a === b) {
72
- return false;
73
- }
74
- const textA = contentOf(a);
75
- return textA == null || textA !== contentOf(b);
76
- }
77
- function save(animation) {
78
- const effect = animation.effect;
79
- const values = {};
80
- for (const name of writableAccessors(animation)) {
81
- values[name] = animation[name];
82
- }
83
- const effectValues = {};
84
- if (effect != null) {
85
- for (const name of writableAccessors(effect)) {
86
- effectValues[name] = effect[name];
87
- }
88
- }
89
- return {
90
- animation,
91
- name: animation.animationName ?? '',
92
- target: effect?.target ?? null,
93
- pseudoElement: effect?.pseudoElement ?? null,
94
- values,
95
- effectValues,
96
- timing: effect?.getTiming() ?? null,
97
- keyframes: effect?.getKeyframes() ?? null,
98
- playState: animation.playState,
99
- replaceState: animation.replaceState
100
- };
101
- }
102
- function write(object, name, value) {
103
- object[name] = value;
104
- }
105
-
106
- /** Give `next` the effect state `saved` had: every writable member. */
107
- function restoreEffect(next, saved) {
108
- for (const name of writableAccessors(next)) {
109
- if (name in saved.effectValues && differs(saved.effectValues[name], next[name])) {
110
- write(next, name, saved.effectValues[name]);
111
- }
112
- }
113
- if (saved.timing != null) {
114
- const timing = next.getTiming();
115
- const changed = {};
116
- for (const [field, value] of Object.entries(saved.timing)) {
117
- if (differs(value, timing[field])) {
118
- changed[field] = value;
119
- }
120
- }
121
- if (Object.keys(changed).length > 0) {
122
- next.updateTiming(changed);
123
- }
124
- }
125
- if (saved.keyframes != null && JSON.stringify(saved.keyframes) !== JSON.stringify(next.getKeyframes())) {
126
- next.setKeyframes(saved.keyframes);
127
- }
128
- }
129
-
130
- /** Give `next` the state `saved` had, member by member. */
131
- function restore(next, saved) {
132
- const effect = next.effect;
133
- if (effect != null) {
134
- restoreEffect(effect, saved);
135
- }
136
- const current = next;
137
- for (const name of ['timeline', 'rangeStart', 'rangeEnd']) {
138
- if (name in saved.values && differs(saved.values[name], current[name])) {
139
- write(next, name, saved.values[name]);
140
- }
141
- }
142
- for (const name of writableAccessors(next)) {
143
- if (!ORDERED.has(name) && name in saved.values && differs(saved.values[name], current[name])) {
144
- write(next, name, saved.values[name]);
145
- }
146
- }
147
- if (saved.replaceState === 'persisted' && next.replaceState !== 'persisted') {
148
- next.persist();
149
- }
150
- const rate = saved.values.playbackRate;
151
- if (typeof rate === 'number' && rate !== next.playbackRate) {
152
- next.playbackRate = rate;
153
- }
154
- if (saved.playState === 'paused' && next.playState !== 'paused') {
155
- next.pause();
156
- } else if (saved.playState !== 'paused' && next.playState === 'paused') {
157
- next.play();
158
- }
159
- // A running animation is anchored to its timeline by its start time, which
160
- // carries its current time on exactly. A paused one has none and keeps its
161
- // current time. A finished one holds its end: finishing it again holds the
162
- // same time, though its start time is then counted from now, since script
163
- // cannot set a start time and a held time together.
164
- const start = saved.values.startTime;
165
- const time = saved.values.currentTime;
166
- if (saved.playState === 'finished') {
167
- next.finish();
168
- } else if (start != null) {
169
- next.startTime = start;
170
- } else if (time != null) {
171
- next.currentTime = time;
172
- }
173
- }
174
-
175
- /** Resume a cancelled CSS transition with a script animation in its state. */
176
- function resumeTransition(saved) {
177
- if (saved.target == null || saved.keyframes == null) {
178
- return;
179
- }
180
- const replacement = saved.target.animate(saved.keyframes, {
181
- pseudoElement: saved.pseudoElement ?? undefined
182
- });
183
- restore(replacement, saved);
184
- }
185
- function isTransition(animation) {
186
- return typeof CSSTransition !== 'undefined' && animation instanceof CSSTransition;
187
- }
25
+ import { restoreAnimations, saveAnimation } from "../motion/carryAnimations.js";
188
26
 
189
27
  /**
190
28
  * Run `reset`, which takes `root` out of rendering and back, and put every
191
29
  * CSS animation and transition of `root` and its subtree back in the state it
192
- * was in before. Recreated animations are matched to the ones they replace by
193
- * element, pseudo-element and name, in order, and then by name alone (an
194
- * effect script moved to another element or pseudo-element); a recreated
195
- * animation with no predecessor (an entry animation that had already played
196
- * and been dropped) is finished.
30
+ * was in before.
197
31
  */
198
32
  export function preserveAnimations(root, reset) {
199
33
  if (typeof root.getAnimations !== 'function') {
@@ -203,43 +37,7 @@ export function preserveAnimations(root, reset) {
203
37
  const before = root.getAnimations({
204
38
  subtree: true
205
39
  });
206
- const saved = before.map(save);
40
+ const saved = before.map(saveAnimation);
207
41
  reset();
208
- const after = root.getAnimations({
209
- subtree: true
210
- });
211
- const current = new Set(after);
212
- const survivors = new Set(before);
213
- const cancelled = [];
214
- for (const state of saved) {
215
- if (current.has(state.animation)) {
216
- continue;
217
- }
218
- if (isTransition(state.animation)) {
219
- resumeTransition(state);
220
- } else {
221
- cancelled.push(state);
222
- }
223
- }
224
- const recreated = after.filter(animation => !survivors.has(animation));
225
- const unmatched = [];
226
- for (const animation of recreated) {
227
- const effect = animation.effect;
228
- const name = animation.animationName ?? '';
229
- const index = cancelled.findIndex(state => state.name === name && state.target === (effect?.target ?? null) && state.pseudoElement === (effect?.pseudoElement ?? null));
230
- if (index === -1) {
231
- unmatched.push(animation);
232
- } else {
233
- restore(animation, cancelled.splice(index, 1)[0]);
234
- }
235
- }
236
- for (const animation of unmatched) {
237
- const name = animation.animationName ?? '';
238
- const index = cancelled.findIndex(state => state.name === name);
239
- if (index === -1) {
240
- animation.finish();
241
- } else {
242
- restore(animation, cancelled.splice(index, 1)[0]);
243
- }
244
- }
42
+ restoreAnimations(root, saved, new Set(before));
245
43
  }
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @file LayoutContent.tsx
3
- * @input Uses React StyleX, LayoutSlotsContext
3
+ * @input Uses React StyleX, LayoutSlotsContext, useScrollRegionProps
4
4
  * @output Exports LayoutContent component and LayoutContentProps
5
5
  * @position Scrollable main content area for Layout. Wraps the primary body content
6
6
  * with automatic scroll containment and context-aware padding.
@@ -35,6 +35,8 @@ export interface LayoutContentProps extends BaseProps<HTMLDivElement> {
35
35
  /**
36
36
  * Accessible label for the landmark.
37
37
  * Required when role is set and multiple landmarks of the same type exist.
38
+ * While the content scrolls, it also names the scrolling region, which
39
+ * otherwise takes a translated "Content".
38
40
  */
39
41
  label?: string;
40
42
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"LayoutContent.d.ts","sourceRoot":"","sources":["../../src/Layout/LayoutContent.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAC,QAAQ,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AAC/C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAM5C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAqFhD,MAAM,WAAW,kBAAmB,SAAQ,SAAS,CAAC,cAAc,CAAC;IACnE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,YAAmB,EACnB,OAAO,EACP,KAAK,EACL,IAAI,EACJ,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,kBAAkB,+BAkDpB;yBA7De,aAAa"}
1
+ {"version":3,"file":"LayoutContent.d.ts","sourceRoot":"","sources":["../../src/Layout/LayoutContent.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAC,QAAQ,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AAC/C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAQ5C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAqFhD,MAAM,WAAW,kBAAmB,SAAQ,SAAS,CAAC,cAAc,CAAC;IACnE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,YAAmB,EACnB,OAAO,EACP,KAAK,EACL,IAAI,EACJ,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,kBAAkB,+BAoDpB;yBA/De,aAAa"}
@@ -4,7 +4,7 @@
4
4
 
5
5
  /**
6
6
  * @file LayoutContent.tsx
7
- * @input Uses React StyleX, LayoutSlotsContext
7
+ * @input Uses React StyleX, LayoutSlotsContext, useScrollRegionProps
8
8
  * @output Exports LayoutContent component and LayoutContentProps
9
9
  * @position Scrollable main content area for Layout. Wraps the primary body content
10
10
  * with automatic scroll containment and context-aware padding.
@@ -19,6 +19,8 @@ import * as stylex from '@stylexjs/stylex';
19
19
  import "../theme/tokens.stylex.js";
20
20
  import { spacingVars } from "../theme/tokens.stylex.js";
21
21
  import { LayoutSlotsContext } from "./LayoutSlotsContext.js";
22
+ import { useMergedRefs } from "../hooks/useMergedRefs.js";
23
+ import { useScrollRegionProps } from "../hooks/useScrollRegionProps.js";
22
24
  import { mergeProps } from "../utils/mergeProps.js";
23
25
  import { themeProps } from "../utils/themeProps.js";
24
26
  import { paddingStyles, containerPaddingInlineVarStyles, containerPaddingBlockStartVarStyles, containerPaddingBlockEndVarStyles } from "./padding.stylex.js";
@@ -146,10 +148,16 @@ export function LayoutContent({
146
148
  hasEnd
147
149
  } = use(LayoutSlotsContext);
148
150
  const isZeroPadding = padding === 0;
151
+ const region = useScrollRegionProps({
152
+ isScrollable,
153
+ role,
154
+ label
155
+ });
156
+ const mergedRef = useMergedRefs(ref, region.ref);
149
157
  return /*#__PURE__*/_jsx("div", {
150
- ref: ref,
151
- role: role,
152
- "aria-label": label,
158
+ ref: mergedRef,
159
+ role: region.role,
160
+ "aria-label": region['aria-label'],
153
161
  ...mergeProps(themeProps('layout-content'), stylex.props(styles.content,
154
162
  // Outer padding on container edges (unless content is full bleed)
155
163
  !hasStart && !isZeroPadding && padding == null && styles.noStart, !hasEnd && !isZeroPadding && padding == null && styles.noEnd, !hasHeader && !isZeroPadding && padding == null && styles.noHeader, !hasFooter && !isZeroPadding && padding == null && styles.noFooter, isScrollable && styles.scrollable, isZeroPadding && styles.fullBleed, padding != null && paddingStyles[padding], padding != null && containerPaddingInlineVarStyles[padding], padding != null && containerPaddingBlockStartVarStyles[padding], padding != null && containerPaddingBlockEndVarStyles[padding], !hasStart && !hasEnd && !isZeroPadding && styles.constrainedNoPanelsStart, !hasStart && !hasEnd && !isZeroPadding && styles.constrainedNoPanelsEnd, hasStart && !hasEnd && !isZeroPadding && styles.constrainedSingleStartPanel, !hasStart && hasEnd && !isZeroPadding && styles.constrainedSingleEndPanel, xstyle), className, style),
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @file LayoutPanel.tsx
3
- * @input Uses React StyleX, LayoutAreaContext, LayoutSlotsContext
3
+ * @input Uses React StyleX, LayoutAreaContext, LayoutSlotsContext,
4
+ * useScrollRegionProps
4
5
  * @output Exports LayoutPanel component and LayoutPanelProps
5
6
  * @position Sidebar panel for Layout start/end slots. Use for navigation panels,
6
7
  * settings sidebars, detail panels, or any fixed-width side content.
@@ -47,6 +48,8 @@ export interface LayoutPanelProps extends BaseProps<HTMLDivElement> {
47
48
  /**
48
49
  * Accessible label for the landmark.
49
50
  * Required when role is set and multiple landmarks of the same type exist.
51
+ * While the panel scrolls, it also names the scrolling region, which
52
+ * otherwise takes a translated "Content".
50
53
  */
51
54
  label?: string;
52
55
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"LayoutPanel.d.ts","sourceRoot":"","sources":["../../src/Layout/LayoutPanel.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAC,QAAQ,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AAC/C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAO5C,OAAO,KAAK,EAAC,SAAS,EAAE,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AAmF9D,MAAM,WAAW,gBAAiB,SAAQ,SAAS,CAAC,cAAc,CAAC;IACjE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEhB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,UAAkB,EAClB,YAAmB,EACnB,KAAK,EACL,OAAO,EACP,IAAI,EACJ,KAAK,EACL,SAAS,EACT,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,gBAAgB,+BAkElB;yBAhFe,WAAW"}
1
+ {"version":3,"file":"LayoutPanel.d.ts","sourceRoot":"","sources":["../../src/Layout/LayoutPanel.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAC,QAAQ,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AAC/C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAS5C,OAAO,KAAK,EAAC,SAAS,EAAE,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AAmF9D,MAAM,WAAW,gBAAiB,SAAQ,SAAS,CAAC,cAAc,CAAC;IACjE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEhB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,UAAkB,EAClB,YAAmB,EACnB,KAAK,EACL,OAAO,EACP,IAAI,EACJ,KAAK,EACL,SAAS,EACT,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,gBAAgB,+BAoElB;yBAlFe,WAAW"}
@@ -4,7 +4,8 @@
4
4
 
5
5
  /**
6
6
  * @file LayoutPanel.tsx
7
- * @input Uses React StyleX, LayoutAreaContext, LayoutSlotsContext
7
+ * @input Uses React StyleX, LayoutAreaContext, LayoutSlotsContext,
8
+ * useScrollRegionProps
8
9
  * @output Exports LayoutPanel component and LayoutPanelProps
9
10
  * @position Sidebar panel for Layout start/end slots. Use for navigation panels,
10
11
  * settings sidebars, detail panels, or any fixed-width side content.
@@ -20,6 +21,8 @@ import "../theme/tokens.stylex.js";
20
21
  import { colorVars, spacingVars } from "../theme/tokens.stylex.js";
21
22
  import { LayoutAreaContext } from "./LayoutAreaContext.js";
22
23
  import { LayoutSlotsContext } from "./LayoutSlotsContext.js";
24
+ import { useMergedRefs } from "../hooks/useMergedRefs.js";
25
+ import { useScrollRegionProps } from "../hooks/useScrollRegionProps.js";
23
26
  import { mergeProps } from "../utils/index.js";
24
27
  import { themeProps } from "../utils/themeProps.js";
25
28
  import { paddingStyles, containerPaddingInlineVarStyles, containerPaddingBlockStartVarStyles, containerPaddingBlockEndVarStyles } from "./padding.stylex.js";
@@ -160,6 +163,12 @@ export function LayoutPanel({
160
163
 
161
164
  // When no divider, collapse spacing for seamless visual flow
162
165
  const shouldCollapseSpacing = !hasDivider && !isZeroPadding && padding == null;
166
+ const region = useScrollRegionProps({
167
+ isScrollable,
168
+ role,
169
+ label
170
+ });
171
+ const mergedRef = useMergedRefs(ref, region.ref);
163
172
 
164
173
  // Select divider style based on position
165
174
  const dividerStyle = isStartPanel ? styles.dividerEnd : isEndPanel ? styles.dividerStart : null;
@@ -167,9 +176,9 @@ export function LayoutPanel({
167
176
  // Select collapse style based on position (collapse the side where divider would be)
168
177
  const collapseStyle = isStartPanel ? styles.collapseEnd : isEndPanel ? styles.collapseStart : null;
169
178
  return /*#__PURE__*/_jsx("div", {
170
- ref: ref,
171
- role: role,
172
- "aria-label": label,
179
+ ref: mergedRef,
180
+ role: region.role,
181
+ "aria-label": region['aria-label'],
173
182
  ...mergeProps(themeProps('layout-panel'), stylex.props(styles.panel, dynamicStyles.sizing(effectiveWidth ?? null),
174
183
  // Outer padding on container edges (unless component is full bleed)
175
184
  isStartPanel && !isZeroPadding && padding == null && styles.startPanel, isEndPanel && !isZeroPadding && padding == null && styles.endPanel, !hasHeader && !isZeroPadding && padding == null && styles.noHeader, !hasFooter && !isZeroPadding && padding == null && styles.noFooter, isScrollable && styles.scrollable, isZeroPadding && styles.fullBleed, padding != null && paddingStyles[padding], padding != null && containerPaddingInlineVarStyles[padding], padding != null && containerPaddingBlockStartVarStyles[padding], padding != null && containerPaddingBlockEndVarStyles[padding], hasDivider && dividerStyle, shouldCollapseSpacing && collapseStyle, xstyle), className, style),
@@ -1 +1 @@
1
- {"version":3,"file":"Lightbox.d.ts","sourceRoot":"","sources":["../../src/Lightbox/Lightbox.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAuB5C;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,OAAO,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,gEAAgE;IAChE,GAAG,EAAE,MAAM,CAAC;IACZ,iDAAiD;IACjD,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,IAAI,CAAC,EAAE,iBAAiB,CAAC;CAC1B;AAED,MAAM,WAAW,aAAc,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IACjE,+CAA+C;IAC/C,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnC;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC;;;OAGG;IACH,KAAK,EAAE,aAAa,GAAG,aAAa,EAAE,CAAC;IACvC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAmKD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,QAAQ,CAAC,EACvB,MAAM,EACN,YAAY,EACZ,KAAK,EACL,KAAK,EAAE,eAAe,EACtB,YAAgB,EAChB,aAAa,EACb,OAAe,EACf,WAAmB,EACnB,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,aAAa,EACxB,GAAG,KAAK,EACT,EAAE,aAAa,sCAwef;yBAxfe,QAAQ"}
1
+ {"version":3,"file":"Lightbox.d.ts","sourceRoot":"","sources":["../../src/Lightbox/Lightbox.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAwB5C;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,OAAO,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,gEAAgE;IAChE,GAAG,EAAE,MAAM,CAAC;IACZ,iDAAiD;IACjD,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,IAAI,CAAC,EAAE,iBAAiB,CAAC;CAC1B;AAED,MAAM,WAAW,aAAc,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IACjE,+CAA+C;IAC/C,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnC;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC;;;OAGG;IACH,KAAK,EAAE,aAAa,GAAG,aAAa,EAAE,CAAC;IACvC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAmKD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,QAAQ,CAAC,EACvB,MAAM,EACN,YAAY,EACZ,KAAK,EACL,KAAK,EAAE,eAAe,EACtB,YAAgB,EAChB,aAAa,EACb,OAAe,EACf,WAAmB,EACnB,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,aAAa,EACxB,GAAG,KAAK,EACT,EAAE,aAAa,sCA2ef;yBA3fe,QAAQ"}
@@ -37,6 +37,7 @@ import { ModalAnnounceProvider } from "../hooks/ModalAnnounceProvider.js";
37
37
  import { overlayPaddingReset } from "../Layout/overlayPaddingReset.stylex.js";
38
38
  import { LayerDepthProvider } from "../Layer/LayerDepthContext.js";
39
39
  import { useLayerDismissal } from "../Layer/useLayerDismissal.js";
40
+ import { useFocusRegionContainment } from "../hooks/useFocusTrap.js";
40
41
  import { useMergedRefs } from "../hooks/useMergedRefs.js";
41
42
  import { isRtlElement } from "../hooks/isRtlElement.js";
42
43
  import { registerEnglishFallback, useComponentTranslator } from "../i18n/useComponentTranslator.js";
@@ -218,6 +219,9 @@ export function Lightbox({
218
219
  const t = useComponentTranslator();
219
220
  const dialogRef = useRef(null);
220
221
  const mergedDialogRef = useMergedRefs(ref, dialogRef);
222
+ // Native showModal() lets Tab leave for the browser's own UI, so the shared
223
+ // module wraps it.
224
+ useFocusRegionContainment(dialogRef, isOpen);
221
225
  const containerRef = useRef(null);
222
226
  const imageWrapperRef = useRef(null);
223
227
  const triggerElementRef = useRef(null);
@@ -216,7 +216,7 @@ export function MetadataList({
216
216
  "aria-expanded": isShowAll,
217
217
  onClick: () => setIsShowAll(prev => !prev),
218
218
  ...{
219
- className: "xjyslct xjbqb8w xc342km xng3xce x15nmkw0 x1ypdohk x16khyan xqwr325 xjm74w1 xw6l6zx x1e4wzip xjb2p0i x1yc453h xqcrz7y"
219
+ className: "xjyslct xjbqb8w xc342km xng3xce x15nmkw0 x1ypdohk x16khyan xjse4m1 xjm74w1 xw6l6zx x1e4wzip xjb2p0i x1yc453h xqcrz7y"
220
220
  },
221
221
  children: isShowAll ? t('@astryx.metadataList.showLess') : t('@astryx.metadataList.showMore')
222
222
  })]
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @file MobileNav.tsx
3
- * @input Uses React, useEffect, useRef, useCallback, ReactNode, StyleX
3
+ * @input Uses React, useEffect, useRef, useCallback, ReactNode, StyleX and
4
+ * the Layer module's entrance hold
4
5
  * @output Exports MobileNav component and MobileNavProps
5
6
  * @position Core implementation; consumed by index.ts
6
7
  *
@@ -34,6 +35,7 @@
34
35
  * - /packages/core/src/MobileNav/index.ts (exports if types change)
35
36
  * - /packages/core/src/Layer/useLayerDismissal.ts (dismissal stack)
36
37
  * - /packages/core/src/hooks/useScrollLock.ts (the page's scroll lock)
38
+ * - /packages/core/src/MobileNav/MobileNavTouchPresentation.test.tsx (touch)
37
39
  * - /packages/cli/assets/templates/blocks/components/MobileNav/ (showcase blocks)
38
40
  */
39
41
  import { type ReactNode } from 'react';
@@ -47,6 +49,14 @@ import type { BaseProps } from '../BaseProps.js';
47
49
  * own scheduled `dialog.close()` has a chance to run (#5701).
48
50
  */
49
51
  export declare const MAX_CLOSE_DELAY_MS = 250;
52
+ /**
53
+ * Longest the drawer slides in or out for, in ms. Both run for the theme's
54
+ * `--duration-medium`: 410 ms by default, and at most 545 ms on the default
55
+ * scale (`--duration-medium-max`). The slide-out keeps playing after the
56
+ * dialog closes, while the dialog's `display` transition keeps it rendered.
57
+ * The touch hold on the slide-in ends by this time.
58
+ */
59
+ export declare const MAX_EXIT_MS = 550;
50
60
  /**
51
61
  * Shortest duration in a `transition-duration` list, in ms; null if unreadable.
52
62
  *
@@ -1 +1 @@
1
- {"version":3,"file":"MobileNav.d.ts","sourceRoot":"","sources":["../../src/MobileNav/MobileNav.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAOL,KAAK,SAAS,EAEf,MAAM,OAAO,CAAC;AAsBf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAyM5C;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAItC;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkBpE;AA+DD,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;IAC9D,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnC;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAEzC;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;IAEhC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,SAAS,CAAC,EACxB,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,gBAAgB,EAC9B,QAAQ,EACR,MAAM,EACN,KAAW,EACX,IAAa,EACb,KAAK,EACL,aAAa,EAAE,MAAM,EACrB,MAAM,EACN,SAAS,EACT,KAAK,EACL,OAAO,EAAE,WAAW,EACpB,GAAG,EACH,GAAG,IAAI,EACR,EAAE,cAAc,+BAsQhB;yBArRe,SAAS"}
1
+ {"version":3,"file":"MobileNav.d.ts","sourceRoot":"","sources":["../../src/MobileNav/MobileNav.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EAOL,KAAK,SAAS,EAEf,MAAM,OAAO,CAAC;AAuBf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA0M5C;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,MAAM,CAAC;AAI/B;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkBpE;AA+DD,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;IAC9D,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnC;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAEzC;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;IAEhC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,SAAS,CAAC,EACxB,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,gBAAgB,EAC9B,QAAQ,EACR,MAAM,EACN,KAAW,EACX,IAAa,EACb,KAAK,EACL,aAAa,EAAE,MAAM,EACrB,MAAM,EACN,SAAS,EACT,KAAK,EACL,OAAO,EAAE,WAAW,EACpB,GAAG,EACH,GAAG,IAAI,EACR,EAAE,cAAc,+BAgShB;yBA/Se,SAAS"}
@@ -4,7 +4,8 @@
4
4
 
5
5
  /**
6
6
  * @file MobileNav.tsx
7
- * @input Uses React, useEffect, useRef, useCallback, ReactNode, StyleX
7
+ * @input Uses React, useEffect, useRef, useCallback, ReactNode, StyleX and
8
+ * the Layer module's entrance hold
8
9
  * @output Exports MobileNav component and MobileNavProps
9
10
  * @position Core implementation; consumed by index.ts
10
11
  *
@@ -38,6 +39,7 @@
38
39
  * - /packages/core/src/MobileNav/index.ts (exports if types change)
39
40
  * - /packages/core/src/Layer/useLayerDismissal.ts (dismissal stack)
40
41
  * - /packages/core/src/hooks/useScrollLock.ts (the page's scroll lock)
42
+ * - /packages/core/src/MobileNav/MobileNavTouchPresentation.test.tsx (touch)
41
43
  * - /packages/cli/assets/templates/blocks/components/MobileNav/ (showcase blocks)
42
44
  */
43
45
  import { useCallback, useEffect, useId, useMemo, useRef, useState } from 'react';
@@ -48,6 +50,7 @@ import { Button } from "../Button/index.js";
48
50
  import { Icon } from "../Icon/index.js";
49
51
  import { Heading } from "../Heading/Heading.js";
50
52
  import { useAppShellMobile } from "../AppShell/AppShellMobileContext.js";
53
+ import { holdEntranceInput } from "../Layer/holdEntranceInput.js";
51
54
  import { mergeProps, composeEventHandlers } from "../utils/index.js";
52
55
  import { layerTextReset } from "../Layer/layerTextReset.stylex.js";
53
56
  import { layerStructureReset } from "../Layer/layerStructureReset.stylex.js";
@@ -60,6 +63,7 @@ import { useLayerDismissal } from "../Layer/useLayerDismissal.js";
60
63
  import { themeProps } from "../utils/themeProps.js";
61
64
  import { useMergedRefs } from "../hooks/useMergedRefs.js";
62
65
  import { useScrollLock } from "../hooks/useScrollLock.js";
66
+ import { useFocusRegionContainment } from "../hooks/useFocusTrap.js";
63
67
  import { registerEnglishFallback, useComponentTranslator } from "../i18n/useComponentTranslator.js";
64
68
  import english from "../i18n/generated-english/MobileNav/MobileNav.generated.js";
65
69
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -177,6 +181,14 @@ const dynamicStyles = {
177
181
  * own scheduled `dialog.close()` has a chance to run (#5701).
178
182
  */
179
183
  export const MAX_CLOSE_DELAY_MS = 250;
184
+ /**
185
+ * Longest the drawer slides in or out for, in ms. Both run for the theme's
186
+ * `--duration-medium`: 410 ms by default, and at most 545 ms on the default
187
+ * scale (`--duration-medium-max`). The slide-out keeps playing after the
188
+ * dialog closes, while the dialog's `display` transition keeps it rendered.
189
+ * The touch hold on the slide-in ends by this time.
190
+ */
191
+ export const MAX_EXIT_MS = 550;
180
192
  /** Fraction of the hold to close at, so the close never lands on its boundary. */
181
193
  const CLOSE_WITHIN_HOLD = 0.6;
182
194
 
@@ -317,7 +329,15 @@ export function MobileNav({
317
329
  }
318
330
  }), [onOpenChangeProp, appShellMobile]);
319
331
  const dialogRef = useRef(null);
332
+ // Native showModal() lets Tab leave for the browser's own UI, so the shared
333
+ // module wraps it. A closing drawer stops containing as soon as it starts to
334
+ // slide out.
335
+ useFocusRegionContainment(dialogRef, isOpen);
336
+ const drawerRef = useRef(null);
320
337
  const closeTimeoutRef = useRef(null);
338
+ // The input hold on the drawer's layer while it slides in under a coarse
339
+ // primary pointer. It is null under a fine one and once the slide-in ends.
340
+ const releaseHoldRef = useRef(null);
321
341
  // Element that was focused when the drawer opened; focus goes back to it
322
342
  // once the native dialog has closed (see closeAndRestoreFocus).
323
343
  const triggerElementRef = useRef(null);
@@ -376,6 +396,8 @@ export function MobileNav({
376
396
  return;
377
397
  }
378
398
  if (isOpen) {
399
+ releaseHoldRef.current?.();
400
+ releaseHoldRef.current = null;
379
401
  if (!dialog.open) {
380
402
  // Capture the opener before showModal() pulls focus into the top
381
403
  // layer. Only on the transition into open: a reopen while the delayed
@@ -384,7 +406,16 @@ export function MobileNav({
384
406
  triggerElementRef.current = document.activeElement;
385
407
  dialog.showModal();
386
408
  }
409
+ // Under a coarse primary pointer, nothing takes a touch until the
410
+ // slide-in ends, at most MAX_EXIT_MS in. A close holds nothing, because
411
+ // only an entrance is held. Under a fine one, nothing is held.
412
+ releaseHoldRef.current = holdEntranceInput(dialog, {
413
+ entrance: drawerRef.current,
414
+ capMs: MAX_EXIT_MS
415
+ });
387
416
  } else if (dialog.open) {
417
+ releaseHoldRef.current?.();
418
+ releaseHoldRef.current = null;
388
419
  closeTimeoutRef.current = setTimeout(() => {
389
420
  closeAndRestoreFocus(dialog, triggerElementRef);
390
421
  setIsCloseHeld(false);
@@ -399,6 +430,10 @@ export function MobileNav({
399
430
  clearTimeout(closeTimeoutRef.current);
400
431
  closeTimeoutRef.current = null;
401
432
  }
433
+ // The hold this run took ends with it: a reopen, a close or an
434
+ // unmount mid-slide never leaves input blocked.
435
+ releaseHoldRef.current?.();
436
+ releaseHoldRef.current = null;
402
437
  };
403
438
  }, [isOpen]);
404
439
 
@@ -418,6 +453,8 @@ export function MobileNav({
418
453
  useEffect(() => {
419
454
  const dialog = dialogRef.current;
420
455
  return () => {
456
+ releaseHoldRef.current?.();
457
+ releaseHoldRef.current = null;
421
458
  if (dialog?.open) {
422
459
  closeAndRestoreFocus(dialog, triggerElementRef);
423
460
  }
@@ -486,6 +523,7 @@ export function MobileNav({
486
523
  children: /*#__PURE__*/_jsx(LayerDepthProvider, {
487
524
  children: /*#__PURE__*/_jsx(LayerContentBoundary, {
488
525
  children: /*#__PURE__*/_jsxs("div", {
526
+ ref: drawerRef,
489
527
  tabIndex: -1,
490
528
  ...stylex.props(styles.drawer, dynamicStyles.width(width), isStart && styles.drawerStart, isStart && isOpen && styles.drawerStartOpen, !isStart && styles.drawerEnd, !isStart && isOpen && styles.drawerEndOpen),
491
529
  children: [/*#__PURE__*/_jsxs("div", {
@@ -65,9 +65,11 @@ export interface MoreMenuProps extends Pick<BaseProps, 'xstyle' | 'className' |
65
65
  */
66
66
  alignment?: LayerAlignment;
67
67
  /**
68
- * Menu presentation policy. `adaptive` uses a BottomSheet on compact
69
- * coarse-pointer viewports and an anchored popover elsewhere.
70
- * @default 'popover'
68
+ * Menu presentation policy, forwarded to DropdownMenu. `adaptive` uses a
69
+ * BottomSheet on compact coarse-pointer viewports and an anchored popover
70
+ * elsewhere. Omitted, the menu is the anchored popover, and the finger that
71
+ * opened it follows UIMenu's handoff on every device. `'popover'` pins the
72
+ * pointer behavior on every device.
71
73
  */
72
74
  presentation?: DropdownMenuPresentation;
73
75
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"MoreMenu.d.ts","sourceRoot":"","sources":["../../src/MoreMenu/MoreMenu.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAIrC,OAAO,KAAK,EACV,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAC,cAAc,EAAE,cAAc,EAAC,MAAM,UAAU,CAAC;AAC7D,OAAO,KAAK,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,WAAW,CAAC;AACzD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAU5C,MAAM,WAAW,aAAc,SAAQ,IAAI,CACzC,SAAS,EACT,QAAQ,GAAG,WAAW,GAAG,OAAO,CACjC;IACC,0CAA0C;IAC1C,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAEnC;;;OAGG;IACH,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAE5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;OAIG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B;;;;OAIG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B;;;;OAIG;IACH,YAAY,CAAC,EAAE,wBAAwB,CAAC;IAExC;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAEzC,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,KAAK,EAAE,cAAc,EACrB,OAAiB,EACjB,IAAI,EAAE,QAAQ,EACd,IAAI,EACJ,UAAkB,EAClB,SAAS,EACT,SAAS,EACT,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,MAAM,EACN,SAAS,EAAE,aAAa,EACxB,KAAK,EACL,aAAa,EAAE,MAAM,EACrB,GAAG,GACJ,EAAE,aAAa,+BAmCf;yBApDe,QAAQ"}
1
+ {"version":3,"file":"MoreMenu.d.ts","sourceRoot":"","sources":["../../src/MoreMenu/MoreMenu.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAIrC,OAAO,KAAK,EACV,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAC,cAAc,EAAE,cAAc,EAAC,MAAM,UAAU,CAAC;AAC7D,OAAO,KAAK,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,WAAW,CAAC;AACzD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAU5C,MAAM,WAAW,aAAc,SAAQ,IAAI,CACzC,SAAS,EACT,QAAQ,GAAG,WAAW,GAAG,OAAO,CACjC;IACC,0CAA0C;IAC1C,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAEnC;;;OAGG;IACH,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAE5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;OAIG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B;;;;OAIG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,wBAAwB,CAAC;IAExC;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAEzC,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,KAAK,EAAE,cAAc,EACrB,OAAiB,EACjB,IAAI,EAAE,QAAQ,EACd,IAAI,EACJ,UAAkB,EAClB,SAAS,EACT,SAAS,EACT,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,MAAM,EACN,SAAS,EAAE,aAAa,EACxB,KAAK,EACL,aAAa,EAAE,MAAM,EACrB,GAAG,GACJ,EAAE,aAAa,+BAmCf;yBApDe,QAAQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"RadioListItem.d.ts","sourceRoot":"","sources":["../../src/RadioList/RadioListItem.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,EAAqB,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAGhE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAY5C,OAAO,EAAO,KAAK,SAAS,EAAC,MAAM,cAAc,CAAC;AA0IlD,MAAM,WAAW,kBAAmB,SAAQ,SAAS,CAAC,cAAc,CAAC;IACnE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;;;;OAKG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;;;;;;OAUG;IACH,KAAK,EAAE,SAAS,CAAC;IACjB;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,EAC5B,GAAG,EACH,KAAK,EACL,YAAY,EAAE,SAAS,EACvB,KAAK,EACL,WAAW,EACX,UAAU,EAAE,cAAsB,EAClC,YAAY,EACZ,UAAU,EACV,KAAK,EACL,MAAM,EACN,SAAS,EACT,KAAK,EACL,OAAO,EACP,GAAG,IAAI,EACR,EAAE,kBAAkB,qBAoLpB;yBAnMe,aAAa"}
1
+ {"version":3,"file":"RadioListItem.d.ts","sourceRoot":"","sources":["../../src/RadioList/RadioListItem.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,EAAkC,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAG7E,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAe5C,OAAO,EAAO,KAAK,SAAS,EAAC,MAAM,cAAc,CAAC;AAsIlD,MAAM,WAAW,kBAAmB,SAAQ,SAAS,CAAC,cAAc,CAAC;IACnE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;;;;OAKG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;;;;;;OAUG;IACH,KAAK,EAAE,SAAS,CAAC;IACjB;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,EAC5B,GAAG,EACH,KAAK,EACL,YAAY,EAAE,SAAS,EACvB,KAAK,EACL,WAAW,EACX,UAAU,EAAE,cAAsB,EAClC,YAAY,EACZ,UAAU,EACV,KAAK,EACL,MAAM,EACN,SAAS,EACT,KAAK,EACL,OAAO,EACP,GAAG,IAAI,EACR,EAAE,kBAAkB,qBAuMpB;yBAtNe,aAAa"}