@astryxdesign/core 0.7.9-canary.4776d40 → 0.7.9-canary.4b69beb

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 (229) hide show
  1. package/dist/BottomSheet/BottomSheet.d.ts.map +1 -1
  2. package/dist/BottomSheet/BottomSheet.js +31 -2
  3. package/dist/BottomSheet/useSheetGestures.d.ts.map +1 -1
  4. package/dist/BottomSheet/useSheetGestures.js +36 -9
  5. package/dist/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
  6. package/dist/Breadcrumbs/BreadcrumbItem.js +3 -1
  7. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  8. package/dist/CheckboxInput/CheckboxInput.js +2 -1
  9. package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
  10. package/dist/CodeBlock/CodeBlock.js +12 -4
  11. package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
  12. package/dist/ContextMenu/ContextMenu.js +3 -1
  13. package/dist/DateInput/wheelStrip.js +2 -2
  14. package/dist/Drawer/Drawer.d.ts.map +1 -1
  15. package/dist/Drawer/Drawer.js +3 -1
  16. package/dist/DropdownMenu/DropdownMenu.d.ts +2 -1
  17. package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  18. package/dist/DropdownMenu/DropdownMenu.js +25 -1
  19. package/dist/Icon/ComponentIcon.d.ts +33 -0
  20. package/dist/Icon/ComponentIcon.d.ts.map +1 -0
  21. package/dist/Icon/ComponentIcon.js +56 -0
  22. package/dist/Icon/globalIconRegistry.d.ts +45 -4
  23. package/dist/Icon/globalIconRegistry.d.ts.map +1 -1
  24. package/dist/Icon/globalIconRegistry.js +137 -3
  25. package/dist/Icon/index.d.ts +69 -2
  26. package/dist/Icon/index.d.ts.map +1 -1
  27. package/dist/Icon/index.js +42 -3
  28. package/dist/Icon/useIcon.d.ts +13 -4
  29. package/dist/Icon/useIcon.d.ts.map +1 -1
  30. package/dist/Icon/useIcon.js +16 -5
  31. package/dist/InputGroup/InputGroupText.d.ts +2 -1
  32. package/dist/InputGroup/InputGroupText.d.ts.map +1 -1
  33. package/dist/InputGroup/InputGroupText.js +2 -1
  34. package/dist/Item/Item.d.ts.map +1 -1
  35. package/dist/Item/Item.js +13 -3
  36. package/dist/Layer/LayerProvider.d.ts.map +1 -1
  37. package/dist/Layer/LayerProvider.js +8 -7
  38. package/dist/Layer/LayerTouch.d.ts +13 -0
  39. package/dist/Layer/LayerTouch.d.ts.map +1 -0
  40. package/dist/Layer/LayerTouch.js +16 -0
  41. package/dist/Layer/holdEntranceInput.d.ts.map +1 -1
  42. package/dist/Layer/holdEntranceInput.js +4 -2
  43. package/dist/Layer/layerKeyboardClearance.d.ts +41 -0
  44. package/dist/Layer/layerKeyboardClearance.d.ts.map +1 -0
  45. package/dist/Layer/layerKeyboardClearance.js +51 -0
  46. package/dist/Layer/layerViewportInset.stylex.d.ts +5 -1
  47. package/dist/Layer/layerViewportInset.stylex.d.ts.map +1 -1
  48. package/dist/Layer/layerViewportInset.stylex.js +11 -4
  49. package/dist/Layer/settledBox.d.ts +16 -0
  50. package/dist/Layer/settledBox.d.ts.map +1 -0
  51. package/dist/Layer/settledBox.js +117 -0
  52. package/dist/Layer/toastHost.d.ts +77 -0
  53. package/dist/Layer/toastHost.d.ts.map +1 -0
  54. package/dist/Layer/toastHost.js +172 -0
  55. package/dist/Layer/useLayer.d.ts.map +1 -1
  56. package/dist/Layer/useLayer.js +36 -106
  57. package/dist/Layer/useLayerKeyboardClearance.d.ts +54 -0
  58. package/dist/Layer/useLayerKeyboardClearance.d.ts.map +1 -0
  59. package/dist/Layer/useLayerKeyboardClearance.js +330 -0
  60. package/dist/Layout/LayoutPanel.d.ts.map +1 -1
  61. package/dist/Layout/LayoutPanel.js +12 -3
  62. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  63. package/dist/MultiSelector/MultiSelector.js +7 -2
  64. package/dist/OverflowList/OverflowList.d.ts.map +1 -1
  65. package/dist/OverflowList/OverflowList.js +7 -2
  66. package/dist/Popover/Popover.d.ts.map +1 -1
  67. package/dist/Popover/Popover.js +1 -0
  68. package/dist/Resizable/resizablePane.d.ts +0 -2
  69. package/dist/Resizable/resizablePane.d.ts.map +1 -1
  70. package/dist/Resizable/resizablePane.js +2 -7
  71. package/dist/SegmentedControl/useSegmentedSelectionMotion.d.ts.map +1 -1
  72. package/dist/SegmentedControl/useSegmentedSelectionMotion.js +16 -56
  73. package/dist/Selector/Selector.d.ts.map +1 -1
  74. package/dist/Selector/Selector.js +39 -17
  75. package/dist/SideNav/SideNav.d.ts.map +1 -1
  76. package/dist/SideNav/SideNav.js +0 -2
  77. package/dist/SideNav/SideNavItem.d.ts.map +1 -1
  78. package/dist/SideNav/SideNavItem.js +7 -4
  79. package/dist/Slider/sliderTouchController.js +2 -2
  80. package/dist/Switch/useSwitchTouch.d.ts.map +1 -1
  81. package/dist/Switch/useSwitchTouch.js +13 -9
  82. package/dist/Table/plugins/sortable/useTableSortable.d.ts.map +1 -1
  83. package/dist/Table/plugins/sortable/useTableSortable.js +16 -8
  84. package/dist/Timestamp/TimestampHoverCard.d.ts +2 -1
  85. package/dist/Timestamp/TimestampHoverCard.d.ts.map +1 -1
  86. package/dist/Timestamp/TimestampHoverCard.js +12 -5
  87. package/dist/Toast/Toast.js +4 -4
  88. package/dist/Toast/ToastContext.d.ts +6 -13
  89. package/dist/Toast/ToastContext.d.ts.map +1 -1
  90. package/dist/Toast/ToastContext.js +6 -8
  91. package/dist/Toast/ToastViewport.d.ts.map +1 -1
  92. package/dist/Toast/ToastViewport.js +75 -10
  93. package/dist/Toast/useToast.d.ts.map +1 -1
  94. package/dist/Toast/useToast.js +10 -50
  95. package/dist/TopNav/TopNavItem.d.ts.map +1 -1
  96. package/dist/TopNav/TopNavItem.js +7 -2
  97. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  98. package/dist/Typeahead/BaseTypeahead.js +8 -2
  99. package/dist/animator/createAnimator.js +2 -2
  100. package/dist/astryx.css +12 -4
  101. package/dist/gestures/createPanGesture.d.ts +49 -0
  102. package/dist/gestures/createPanGesture.d.ts.map +1 -0
  103. package/dist/gestures/createPanGesture.js +80 -0
  104. package/dist/hooks/index.d.ts +2 -0
  105. package/dist/hooks/index.d.ts.map +1 -1
  106. package/dist/hooks/index.js +2 -1
  107. package/dist/hooks/useMenuPress.d.ts.map +1 -1
  108. package/dist/hooks/useMenuPress.js +7 -0
  109. package/dist/hooks/useOverflow.d.ts +10 -0
  110. package/dist/hooks/useOverflow.d.ts.map +1 -1
  111. package/dist/hooks/useOverflow.js +25 -3
  112. package/dist/hooks/usePanGesture.d.ts +32 -0
  113. package/dist/hooks/usePanGesture.d.ts.map +1 -0
  114. package/dist/hooks/usePanGesture.js +67 -0
  115. package/dist/index.d.ts +1 -0
  116. package/dist/index.d.ts.map +1 -1
  117. package/dist/index.js +1 -0
  118. package/dist/internal/touch.d.ts +10 -5
  119. package/dist/internal/touch.d.ts.map +1 -1
  120. package/dist/internal/touch.js +15 -7
  121. package/dist/motion/animatedLayout.d.ts.map +1 -1
  122. package/dist/motion/animatedLayout.js +10 -7
  123. package/dist/motion/animator.d.ts +5 -5
  124. package/dist/motion/animator.d.ts.map +1 -1
  125. package/dist/motion/animator.js +10 -8
  126. package/dist/motion/resolveMotion.d.ts +6 -27
  127. package/dist/motion/resolveMotion.d.ts.map +1 -1
  128. package/dist/motion/resolveMotion.js +82 -16
  129. package/dist/motion/themeTempo.d.ts +7 -0
  130. package/dist/motion/themeTempo.d.ts.map +1 -0
  131. package/dist/motion/themeTempo.js +38 -0
  132. package/dist/motion/themeTiming.d.ts +63 -0
  133. package/dist/motion/themeTiming.d.ts.map +1 -0
  134. package/dist/motion/themeTiming.js +173 -0
  135. package/dist/privateAttributes/press.stylex.d.ts +5 -1
  136. package/dist/privateAttributes/press.stylex.d.ts.map +1 -1
  137. package/dist/privateAttributes/press.stylex.js +6 -1
  138. package/dist/theme/defineTheme.d.ts +42 -3
  139. package/dist/theme/defineTheme.d.ts.map +1 -1
  140. package/dist/theme/defineTheme.js +48 -0
  141. package/dist/theme/resolveThemeValues.d.ts.map +1 -1
  142. package/dist/theme/resolveThemeValues.js +12 -4
  143. package/dist/theme/themeMotion.d.ts +7 -5
  144. package/dist/theme/themeMotion.d.ts.map +1 -1
  145. package/dist/theme/themeMotion.js +7 -5
  146. package/dist/utils/focusReturn.d.ts +24 -11
  147. package/dist/utils/focusReturn.d.ts.map +1 -1
  148. package/dist/utils/focusReturn.js +48 -14
  149. package/package.json +4 -4
  150. package/src/BottomSheet/BottomSheet.tsx +39 -2
  151. package/src/BottomSheet/useSheetGestures.ts +41 -10
  152. package/src/Breadcrumbs/BreadcrumbItem.tsx +7 -1
  153. package/src/Calendar/useCalendarDays.doc.mjs +158 -0
  154. package/src/CheckboxInput/CheckboxInput.tsx +5 -1
  155. package/src/CodeBlock/CodeBlock.doc.mjs +17 -0
  156. package/src/CodeBlock/CodeBlock.tsx +11 -2
  157. package/src/ContextMenu/ContextMenu.tsx +7 -1
  158. package/src/DateInput/wheelStrip.ts +2 -2
  159. package/src/Drawer/Drawer.tsx +3 -1
  160. package/src/DropdownMenu/DropdownMenu.tsx +32 -1
  161. package/src/Icon/ComponentIcon.tsx +71 -0
  162. package/src/Icon/globalIconRegistry.tsx +181 -4
  163. package/src/Icon/index.ts +83 -2
  164. package/src/Icon/useIcon.doc.mjs +94 -0
  165. package/src/Icon/useIcon.ts +24 -3
  166. package/src/InputGroup/InputGroupText.doc.mjs +45 -3
  167. package/src/InputGroup/InputGroupText.tsx +2 -1
  168. package/src/Item/Item.doc.mjs +19 -4
  169. package/src/Item/Item.tsx +21 -2
  170. package/src/Layer/LayerProvider.tsx +9 -8
  171. package/src/Layer/LayerTouch.ts +17 -0
  172. package/src/Layer/holdEntranceInput.ts +4 -2
  173. package/src/Layer/layerKeyboardClearance.ts +55 -0
  174. package/src/Layer/layerViewportInset.stylex.ts +16 -5
  175. package/src/Layer/settledBox.ts +138 -0
  176. package/src/Layer/toastHost.tsx +212 -0
  177. package/src/Layer/useLayer.tsx +41 -123
  178. package/src/Layer/useLayerKeyboardClearance.ts +371 -0
  179. package/src/Layout/LayoutPanel.tsx +16 -2
  180. package/src/Link/useLinkComponent.doc.mjs +95 -0
  181. package/src/MultiSelector/MultiSelector.tsx +24 -2
  182. package/src/OverflowList/OverflowList.tsx +15 -9
  183. package/src/Overlay/useOverlay.doc.mjs +176 -0
  184. package/src/Popover/Popover.tsx +5 -0
  185. package/src/Resizable/resizablePane.ts +4 -13
  186. package/src/SegmentedControl/useSegmentedSelectionMotion.ts +15 -62
  187. package/src/Selector/Selector.tsx +61 -8
  188. package/src/SideNav/SideNav.tsx +0 -1
  189. package/src/SideNav/SideNavItem.tsx +8 -6
  190. package/src/Slider/sliderTouchController.ts +2 -2
  191. package/src/Switch/useSwitchTouch.ts +17 -9
  192. package/src/Table/Table.doc.mjs +19 -0
  193. package/src/Table/plugins/sortable/useTableSortable.tsx +19 -12
  194. package/src/Timestamp/Timestamp.doc.mjs +17 -0
  195. package/src/Timestamp/TimestampHoverCard.tsx +11 -3
  196. package/src/Toast/Toast.doc.mjs +14 -0
  197. package/src/Toast/Toast.tsx +2 -2
  198. package/src/Toast/ToastContext.ts +7 -17
  199. package/src/Toast/ToastViewport.tsx +53 -9
  200. package/src/Toast/useToast.tsx +7 -52
  201. package/src/TopNav/TopNavItem.tsx +7 -2
  202. package/src/Typeahead/BaseTypeahead.tsx +23 -3
  203. package/src/animator/createAnimator.doc.mjs +1 -1
  204. package/src/animator/createAnimator.ts +3 -3
  205. package/src/gestures/README.md +2 -1
  206. package/src/gestures/createPanGesture.doc.mjs +145 -0
  207. package/src/gestures/createPanGesture.ts +107 -0
  208. package/src/hooks/index.ts +8 -0
  209. package/src/hooks/useAnimatedLayout.doc.mjs +1 -1
  210. package/src/hooks/useAnimator.doc.mjs +1 -1
  211. package/src/hooks/useEntryAnimation.doc.mjs +1 -1
  212. package/src/hooks/useMenuPress.ts +14 -1
  213. package/src/hooks/useOverflow.ts +25 -3
  214. package/src/hooks/usePanGesture.doc.mjs +158 -0
  215. package/src/hooks/usePanGesture.ts +75 -0
  216. package/src/hooks/usePressFeedback.doc.mjs +1 -1
  217. package/src/index.ts +2 -0
  218. package/src/internal/touch.ts +16 -8
  219. package/src/motion/README.md +6 -5
  220. package/src/motion/animatedLayout.ts +10 -7
  221. package/src/motion/animator.ts +10 -9
  222. package/src/motion/resolveMotion.ts +89 -18
  223. package/src/motion/themeTempo.ts +41 -0
  224. package/src/motion/themeTiming.ts +198 -0
  225. package/src/privateAttributes/press.stylex.ts +21 -1
  226. package/src/theme/defineTheme.ts +99 -2
  227. package/src/theme/resolveThemeValues.ts +12 -3
  228. package/src/theme/themeMotion.ts +7 -5
  229. package/src/utils/focusReturn.ts +61 -15
@@ -1 +1 @@
1
- {"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../src/BottomSheet/BottomSheet.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAuBH,OAAO,EAOL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAyDhD,YAAY,EAAC,iBAAiB,EAAE,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;AAChF,OAAO,KAAK,EAAC,iBAAiB,EAAE,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;AAmLhF,UAAU,sBAAuB,SAAQ,SAAS,CAAC,cAAc,CAAC;IAChE,qDAAqD;IACrD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAEhC,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IAEd,0EAA0E;IAC1E,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB,wGAAwG;IACxG,MAAM,CAAC,EAAE,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;IAE7C;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC;IAEjD;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,UAAU,0BAA2B,SAAQ,sBAAsB;IACjE,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,KAAK,CAAC;CACjB;AAED,UAAU,wBAAyB,SAAQ,sBAAsB;IAC/D;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB;AAED,MAAM,MAAM,gBAAgB,GAC1B,0BAA0B,GAAG,wBAAwB,CAAC;AAy5BxD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,+BA6BlD;yBA7Be,WAAW"}
1
+ {"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../src/BottomSheet/BottomSheet.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAuBH,OAAO,EAOL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AA4DhD,YAAY,EAAC,iBAAiB,EAAE,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;AAChF,OAAO,KAAK,EAAC,iBAAiB,EAAE,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;AAmLhF,UAAU,sBAAuB,SAAQ,SAAS,CAAC,cAAc,CAAC;IAChE,qDAAqD;IACrD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAEhC,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IAEd,0EAA0E;IAC1E,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB,wGAAwG;IACxG,MAAM,CAAC,EAAE,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;IAE7C;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC;IAEjD;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,UAAU,0BAA2B,SAAQ,sBAAsB;IACjE,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,KAAK,CAAC;CACjB;AAED,UAAU,wBAAyB,SAAQ,sBAAsB;IAC/D;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB;AAED,MAAM,MAAM,gBAAgB,GAC1B,0BAA0B,GAAG,wBAAwB,CAAC;AA27BxD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,+BA6BlD;yBA7Be,WAAW"}
@@ -65,7 +65,7 @@ import { ModalAnnounceProvider } from "../hooks/ModalAnnounceProvider.js";
65
65
  import { useModalOutlet } from "../Layer/modalOutlet.js";
66
66
  import { useLayerDismissal } from "../Layer/useLayerDismissal.js";
67
67
  import { useFocusRegionContainment } from "../hooks/useFocusTrap.js";
68
- import { returnFocusForLastInput } from "../utils/focusReturn.js";
68
+ import { prepareFocusRepairOnRemoval, returnFocusForLastInput } from "../utils/focusReturn.js";
69
69
  import { useInteractionModalityTracking } from "../utils/interactionModality.js";
70
70
  import { BottomSheetPanel } from "./BottomSheetPanel.js";
71
71
  import { BottomSheetEdgeTint } from "./BottomSheetEdgeTint.js";
@@ -387,7 +387,14 @@ function StandaloneBottomSheet({
387
387
  return;
388
388
  }
389
389
  const key = stackKeyRef.current;
390
- return registerBottomSheet({
390
+ const dialog = dialogRef.current;
391
+ // Removing an open dialog runs no close, so focus would drop to the page.
392
+ // After the commit, the repair sends focus where a close would, if the
393
+ // removal lost focus.
394
+ const repairOnRemoval = dialog == null ? null : prepareFocusRepairOnRemoval(dialog, {
395
+ keepRestingFocus: true
396
+ });
397
+ const leave = registerBottomSheet({
391
398
  key,
392
399
  getElement: () => dialogRef.current,
393
400
  show: () => {
@@ -437,6 +444,28 @@ function StandaloneBottomSheet({
437
444
  }
438
445
  }
439
446
  }, isOpenRef.current, hasScrim);
447
+ return () => {
448
+ // Read before the registry lets go of the sheet beneath. Focus the
449
+ // person had already moved out of the sheet to the page body stays
450
+ // there: the removal did not lose it.
451
+ if (repairOnRemoval != null && isSheetHostPresented(dialog)) {
452
+ const returnTarget = finalFocusRefRef.current?.current ?? triggerRef.current;
453
+ const revealed = hasScrim ? getBottomSheetBeneath(key) : null;
454
+ repairOnRemoval(() => {
455
+ // The sheet beneath left too. Its own repair returns focus for the
456
+ // stack.
457
+ if (revealed != null && !revealed.element.isConnected) {
458
+ return;
459
+ }
460
+ if (revealed != null && (returnTarget == null || !revealed.element.contains(returnTarget))) {
461
+ revealed.focus();
462
+ } else if (returnTarget != null && returnTarget.isConnected) {
463
+ returnFocusForLastInput(returnTarget);
464
+ }
465
+ });
466
+ }
467
+ leave();
468
+ };
440
469
  }, [hasScrim, shouldPresent, writeScrim]);
441
470
  useLayoutEffect(() => {
442
471
  if (!isOpen) {
@@ -1 +1 @@
1
- {"version":3,"file":"useSheetGestures.d.ts","sourceRoot":"","sources":["../../src/BottomSheet/useSheetGestures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSheetGestures.d.ts","sourceRoot":"","sources":["../../src/BottomSheet/useSheetGestures.ts"],"names":[],"mappings":"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"}
@@ -333,18 +333,26 @@ export function useSheetGestures({
333
333
  // onDismiss() and sets `pending`; the host answers in the same update, so
334
334
  // the first render afterwards says whether it took the close (its
335
335
  // controlled state now says closed: the exit under way is the drag's) or
336
- // refused it (a guarded onOpenChange left it open: the sheet snaps back and
337
- // the request is spent). Either way the flag is settled during render, the
338
- // prev-prop pattern, and derived back to false once the sheet is open
339
- // again — so a later close from a control, Escape or code is never
340
- // mistaken for a drag.
336
+ // refused it (a guarded onOpenChange left it open: the sheet snaps back,
337
+ // its scrim with it, and the request is spent). Either way the flag is
338
+ // settled during render, the prev-prop pattern, and derived back to false
339
+ // once the sheet is open again — so a later close from a control, Escape
340
+ // or code is never mistaken for a drag.
341
341
  const [touchDragDismissal, setTouchDragDismissal] = useState(null);
342
+ // The render that spends a refused request counts it. The layout effect
343
+ // below answers each count.
344
+ const [refusedDismissalCount, setRefusedDismissalCount] = useState(0);
342
345
  if (touchDragDismissal != null) {
343
346
  if (touchDragDismissal.pending) {
344
- setTouchDragDismissal(isOpenRequested ? null : {
345
- isTouch: touchDragDismissal.isTouch,
346
- pending: false
347
- });
347
+ if (isOpenRequested) {
348
+ setTouchDragDismissal(null);
349
+ setRefusedDismissalCount(count => count + 1);
350
+ } else {
351
+ setTouchDragDismissal({
352
+ isTouch: touchDragDismissal.isTouch,
353
+ pending: false
354
+ });
355
+ }
348
356
  } else if (isOpenRequested) {
349
357
  setTouchDragDismissal(null);
350
358
  }
@@ -452,6 +460,24 @@ export function useSheetGestures({
452
460
  hasFixedHeightRef.current = hasFixedHeight;
453
461
  });
454
462
 
463
+ // The release cannot know whether the host takes the close. The host
464
+ // answers through `isOpenRequested` in the next render. Keep the left
465
+ // detent's scrim until then.
466
+ const restingScrimOpacityRef = useRef(null);
467
+ // Syncs the host's scrim (its backdrop, written through `onScrimOpacity`)
468
+ // with the panel's return to rest after a refusal: the panel rests on that
469
+ // detent again, so the scrim the drag thinned toward the dismiss line rests
470
+ // with it. The refusal changes none of the host's own scrim inputs, so the
471
+ // drag's last value would otherwise stand.
472
+ useLayoutEffect(() => {
473
+ const restingScrimOpacity = restingScrimOpacityRef.current;
474
+ if (refusedDismissalCount === 0 || restingScrimOpacity == null) {
475
+ return;
476
+ }
477
+ restingScrimOpacityRef.current = null;
478
+ onScrimOpacityRef.current?.(restingScrimOpacity);
479
+ }, [refusedDismissalCount]);
480
+
455
481
  // Live drag bookkeeping (refs so pointermove doesn't churn renders).
456
482
  const dragStateRef = useRef(null);
457
483
 
@@ -770,6 +796,7 @@ export function useSheetGestures({
770
796
  if (dir > 0 && projected > dismissOffset) {
771
797
  if (canDismissRef.current) {
772
798
  prepareScrollAreaSettle(baseLayoutOffset, baseOffset, baseLayoutOffset, baseLayoutOffset, baseLayoutOffset, naturalEndGap, false);
799
+ restingScrimOpacityRef.current = scrimOpacityForOffset(baseOffset, offsets, dismissOffset, peekOffset);
773
800
  setTouchDragDismissal({
774
801
  isTouch,
775
802
  pending: true
@@ -1 +1 @@
1
- {"version":3,"file":"BreadcrumbItem.d.ts","sourceRoot":"","sources":["../../src/Breadcrumbs/BreadcrumbItem.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,EAOZ,KAAK,SAAS,EACd,KAAK,UAAU,EAChB,MAAM,OAAO,CAAC;AAWf,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAErD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAa5C,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,qCAAqC,CAAC;AAM7C,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,8BAA8B,CAAC;AAarE,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAC/C,SAAS,CAAC,aAAa,CAAC,EACxB,SAAS,CACV;IACC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC/B;;;;OAIG;IACH,EAAE,CAAC,EAAE,iBAAiB,CAAC;IACvB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAC/C;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC;IACxC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAsID;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,EAC7B,GAAG,EACH,EAAE,EACF,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,SAAS,EAAE,aAAa,EACxB,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,EAAE,MAAM,EACrB,GAAG,IAAI,EACR,EAAE,mBAAmB,qBAuMrB;yBAtNe,cAAc"}
1
+ {"version":3,"file":"BreadcrumbItem.d.ts","sourceRoot":"","sources":["../../src/Breadcrumbs/BreadcrumbItem.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,EAOZ,KAAK,SAAS,EACd,KAAK,UAAU,EAChB,MAAM,OAAO,CAAC;AAWf,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAErD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAc5C,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,qCAAqC,CAAC;AAM7C,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,8BAA8B,CAAC;AAarE,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAC/C,SAAS,CAAC,aAAa,CAAC,EACxB,SAAS,CACV;IACC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC/B;;;;OAIG;IACH,EAAE,CAAC,EAAE,iBAAiB,CAAC;IACvB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAC/C;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC;IACxC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AA2ID;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,EAC7B,GAAG,EACH,EAAE,EACF,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,SAAS,EAAE,aAAa,EACxB,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,EAAE,MAAM,EACrB,GAAG,IAAI,EACR,EAAE,mBAAmB,qBAuMrB;yBAtNe,cAAc"}
@@ -41,6 +41,8 @@ import { menuTouchActionStyles } from "../DropdownMenu/menuTouchAction.stylex.js
41
41
  import { useMenuOverflow } from "../DropdownMenu/useMenuOverflow.js";
42
42
  import { useTypeahead } from "../hooks/useTypeahead.js";
43
43
  import { layerAnimations } from "../Layer/layerAnimations.stylex.js";
44
+ import "../Layer/layerViewportInset.stylex.js";
45
+ import { layerViewportInset } from "../Layer/layerViewportInset.stylex.js";
44
46
  import { renderDropdownItems } from "../DropdownMenu/renderDropdownItems.js";
45
47
  import { DropdownMenuContext, DropdownMenuRootOpenContext } from "../DropdownMenu/DropdownMenuContext.js";
46
48
  import { MENU_ITEM_ROLES, MENU_ITEM_SELECTOR, MENU_BOUNDARY_SELECTOR } from "../DropdownMenu/menuItemRoles.js";
@@ -131,7 +133,7 @@ const menuStyles = {
131
133
  k1xSpc: "x78zum5",
132
134
  kXwgrk: "xdt5ytf",
133
135
  kOIVth: "x1lsbc85",
134
- kskxy: "xuyqlj2",
136
+ kskxy: "x1uh1i8a",
135
137
  kORKVm: "x1odjw0f",
136
138
  "--_dropdown-menu-radius": "x1fcsqxe",
137
139
  "--_dropdown-menu-padding": "xgory14",
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxInput.d.ts","sourceRoot":"","sources":["../../src/CheckboxInput/CheckboxInput.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CheckboxInput.d.ts","sourceRoot":"","sources":["../../src/CheckboxInput/CheckboxInput.tsx"],"names":[],"mappings":"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"}
@@ -26,6 +26,7 @@ import { Spinner } from "../Spinner/Spinner.js";
26
26
  import { useTooltip } from "../Tooltip/useTooltip.js";
27
27
  import { mergeProps } from "../utils/mergeProps.js";
28
28
  import { rtlStyles } from "../utils/rtlStyles.js";
29
+ import { withholdCallerHandlers } from "../utils/disabledInteraction.js";
29
30
  import "../Indicator/indicator.markers.stylex.js";
30
31
  import { indicatorScope } from "../Indicator/indicator.markers.stylex.js";
31
32
  import "../internal/indicatorPress.stylex.js";
@@ -327,7 +328,7 @@ export function CheckboxInput({
327
328
  ...stylex.props(styles.checkboxWrapper, wrapperSizeStyles[size], !isDisabled && styles.indicatorPressOverlay, !isDisabled && isRowPressSurface && styles.indicatorRowPressOverlay),
328
329
  ...focusProps,
329
330
  children: [/*#__PURE__*/_jsx("input", {
330
- ...rest,
331
+ ...withholdCallerHandlers(rest, isDisabled),
331
332
  ref: useMergedRefs(ref, indeterminateRef, disabledMessageTooltip.positionRef, inputRef),
332
333
  id: id,
333
334
  type: "checkbox"
@@ -1 +1 @@
1
- {"version":3,"file":"CodeBlock.d.ts","sourceRoot":"","sources":["../../src/CodeBlock/CodeBlock.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA2B5C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC;AAW5C,OAAO,EAAc,KAAK,qBAAqB,EAAC,MAAM,iBAAiB,CAAC;AAqfxE,MAAM,WAAW,cAAe,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC/D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yJAAyJ;IACzJ,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,CACV,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,KACb;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;IAClD,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC5C;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,qBAAqB,CAAC;CACrC;AA0UD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,QAAsB,EACtB,KAAK,EACL,gBAAuB,EACvB,cAAsB,EACtB,eAAmB,EACnB,cAAc,EACd,MAAc,EACd,aAAoB,EACpB,MAAM,EACN,UAAU,EACV,SAAiB,EACjB,SAAS,EACT,aAAqB,EACrB,oBAAyB,EACzB,IAAW,EACX,KAAK,EAAE,SAAyB,EAChC,SAAkB,EAClB,SAAS,EAAE,eAAe,EAC1B,aAAsB,EACtB,WAAW,EACX,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,cAAc,qBA4ThB;yBAvVe,SAAS"}
1
+ {"version":3,"file":"CodeBlock.d.ts","sourceRoot":"","sources":["../../src/CodeBlock/CodeBlock.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA4B5C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC;AAW5C,OAAO,EAAc,KAAK,qBAAqB,EAAC,MAAM,iBAAiB,CAAC;AAqfxE,MAAM,WAAW,cAAe,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC/D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yJAAyJ;IACzJ,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,CACV,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,KACb;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;IAClD,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC5C;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,qBAAqB,CAAC;CACrC;AA0UD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,QAAsB,EACtB,KAAK,EACL,gBAAuB,EACvB,cAAsB,EACtB,eAAmB,EACnB,cAAc,EACd,MAAc,EACd,aAAoB,EACpB,MAAM,EACN,UAAU,EACV,SAAiB,EACjB,SAAS,EACT,aAAqB,EACrB,oBAAyB,EACzB,IAAW,EACX,KAAK,EAAE,SAAyB,EAChC,SAAkB,EAClB,SAAS,EAAE,eAAe,EAC1B,aAAsB,EACtB,WAAW,EACX,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,cAAc,qBAmUhB;yBA9Ve,SAAS"}
@@ -4,7 +4,8 @@
4
4
 
5
5
  /**
6
6
  * @file CodeBlock.tsx
7
- * @input Uses React, StyleX, theme tokens, CSS Custom Highlight API, SyntaxTheme provider
7
+ * @input Uses React, StyleX, theme tokens, CSS Custom Highlight API, SyntaxTheme
8
+ * provider, and the theme's `code-block-copy` icon slot
8
9
  * @output Exports CodeBlock component and CodeBlockProps
9
10
  * @position Core implementation; read-only syntax-highlighted code display
10
11
  */
@@ -17,6 +18,7 @@ import { isRenderable, mergeProps, rtlStyles } from "../utils/index.js";
17
18
  import { useClipboard } from "../hooks/useClipboard.js";
18
19
  import { useScrollableArea } from "../hooks/useScrollableArea.js";
19
20
  import { Icon } from "../Icon/index.js";
21
+ import { ComponentIcon } from "../Icon/ComponentIcon.js";
20
22
  import { IconButton } from "../IconButton/index.js";
21
23
  import { tokenize, tokenizeAsync, splitDiffLines, flatTokensToLines, SYNC_TOKENIZE_THRESHOLD } from "./tokenizer.js";
22
24
  import { isCustomCodeLanguage, languageKey, languageLabel as languageWord, sameCodeLanguage } from "./grammar.js";
@@ -693,9 +695,15 @@ export function CodeBlock({
693
695
  const copyButtonEl = hasCopyButton ? /*#__PURE__*/_jsx(IconButton, {
694
696
  variant: "ghost",
695
697
  size: "sm",
696
- icon: /*#__PURE__*/_jsx(Icon, {
697
- icon: copied ? 'check' : 'copy',
698
- size: "sm",
698
+ icon: /*#__PURE__*/_jsx(ComponentIcon, {
699
+ slot: "code-block-copy",
700
+ state: {
701
+ copied
702
+ },
703
+ fallback: {
704
+ icon: copied ? 'check' : 'copy',
705
+ size: 'sm'
706
+ },
699
707
  color: "inherit"
700
708
  })
701
709
  // A visible "Copy" hover/focus hint via Button's built-in tooltip. It
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenu.d.ts","sourceRoot":"","sources":["../../src/ContextMenu/ContextMenu.tsx"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,KASN,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAwCrC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAEjD,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,kCAAkC,CAAC;AAgI1C,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAEvD,MAAM,MAAM,sBAAsB,GAAG,uBAAuB,CAAC;AAE7D,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAErD,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAMnD,UAAU,oBAAqB,SAAQ,SAAS;IAC9C,oDAAoD;IACpD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC;IAC9C,+DAA+D;IAC/D,QAAQ,EAAE,SAAS,CAAC;IACpB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,wCAAwC;IACxC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,oBAAqB,SAAQ,oBAAoB;IACzD,gDAAgD;IAChD,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AAED,UAAU,wBAAyB,SAAQ,oBAAoB;IAC7D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,+CAA+C;IAC/C,WAAW,EAAE,SAAS,CAAC;CACxB;AAED,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,wBAAwB,CAAC;AAM/E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,SAAS,EACT,IAAW,EACX,KAAK,EAAE,cAAc,EACrB,UAAkB,EAClB,YAAY,EACZ,YAAwB,EACxB,SAAiB,EACjB,GAAG,EACH,SAAS,EACT,KAAK,EACL,MAAM,EACN,aAAa,EACb,aAAa,EAAE,iBAAiB,EAChC,YAAY,EAAE,gBAAgB,EAC9B,WAAW,EAAE,eAAe,EAC5B,UAAU,EAAE,cAAc,EAC1B,aAAa,EAAE,iBAAiB,EAChC,aAAa,EAAE,MAAM,EACrB,GAAG,IAAI,EACR,EAAE,gBAAgB,qBAijBlB;yBAtkBe,WAAW"}
1
+ {"version":3,"file":"ContextMenu.d.ts","sourceRoot":"","sources":["../../src/ContextMenu/ContextMenu.tsx"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,KASN,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAyCrC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAEjD,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,kCAAkC,CAAC;AAqI1C,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAEvD,MAAM,MAAM,sBAAsB,GAAG,uBAAuB,CAAC;AAE7D,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAErD,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAMnD,UAAU,oBAAqB,SAAQ,SAAS;IAC9C,oDAAoD;IACpD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC;IAC9C,+DAA+D;IAC/D,QAAQ,EAAE,SAAS,CAAC;IACpB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,wCAAwC;IACxC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,oBAAqB,SAAQ,oBAAoB;IACzD,gDAAgD;IAChD,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AAED,UAAU,wBAAyB,SAAQ,oBAAoB;IAC7D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,+CAA+C;IAC/C,WAAW,EAAE,SAAS,CAAC;CACxB;AAED,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,wBAAwB,CAAC;AAM/E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,SAAS,EACT,IAAW,EACX,KAAK,EAAE,cAAc,EACrB,UAAkB,EAClB,YAAY,EACZ,YAAwB,EACxB,SAAiB,EACjB,GAAG,EACH,SAAS,EACT,KAAK,EACL,MAAM,EACN,aAAa,EACb,aAAa,EAAE,iBAAiB,EAChC,YAAY,EAAE,gBAAgB,EAC9B,WAAW,EAAE,eAAe,EAC5B,UAAU,EAAE,cAAc,EAC1B,aAAa,EAAE,iBAAiB,EAChC,aAAa,EAAE,MAAM,EACrB,GAAG,IAAI,EACR,EAAE,gBAAgB,qBAijBlB;yBAtkBe,WAAW"}
@@ -61,6 +61,8 @@ import { useMenuPress } from "../hooks/useMenuPress.js";
61
61
  import { useTypeahead } from "../hooks/useTypeahead.js";
62
62
  import { useLongPress } from "../hooks/useLongPress.js";
63
63
  import { layerAnimations } from "../Layer/layerAnimations.stylex.js";
64
+ import "../Layer/layerViewportInset.stylex.js";
65
+ import { layerViewportInset } from "../Layer/layerViewportInset.stylex.js";
64
66
  import "../theme/tokens.stylex.js";
65
67
  import { colorVars, spacingVars, radiusVars, durationVars, easeVars, shadowVars } from "../theme/tokens.stylex.js";
66
68
  import { mergeProps, rtlStyles } from "../utils/index.js";
@@ -87,7 +89,7 @@ const styles = {
87
89
  k1xSpc: "x78zum5",
88
90
  kXwgrk: "xdt5ytf",
89
91
  kOIVth: "x1lsbc85",
90
- kskxy: "xuyqlj2",
92
+ kskxy: "x1uh1i8a",
91
93
  kORKVm: "x1odjw0f",
92
94
  "--_dropdown-menu-radius": "x1fcsqxe",
93
95
  "--_dropdown-menu-padding": "xgory14",
@@ -16,7 +16,7 @@
16
16
  */
17
17
 
18
18
  import { canVibrate, playHaptic } from "../gestures/haptics.js";
19
- import { createMotionAnimator } from "../motion/animator.js";
19
+ import { createMotionEngine } from "../motion/animator.js";
20
20
  import { reducedMotionFade } from "../motion/reducedMotion.js";
21
21
  import { picker } from "../motion/uikit/picker.js";
22
22
  import { nearestIndex, reachesRow, tickTimes } from "./wheelPhysics.js";
@@ -55,7 +55,7 @@ function now() {
55
55
  * ```
56
56
  */
57
57
  export function createWheelStrip(initialLayout) {
58
- const animator = createMotionAnimator(null);
58
+ const animator = createMotionEngine(null);
59
59
  let layout = initialLayout;
60
60
  let running = null;
61
61
  let nearestListener = null;
@@ -1 +1 @@
1
- {"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../src/Drawer/Drawer.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAEH,OAAO,EAAgC,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAIpE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAQ5C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,WAAW,CAAC;AAoB7C,OAAO,KAAK,EAAC,WAAW,EAAe,MAAM,WAAW,CAAC;AA+MzD,MAAM,WAAW,WAAY,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IAC/D,iDAAiD;IACjD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAEnC;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;;;;;OAMG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAExC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAEvB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB;;;;;OAKG;IACH,YAAY,CAAC,EAAE;QACb;;;;;;WAMG;QACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;KAC/B,CAAC;IAEF;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;OAGG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,MAAM,CAAC,EACrB,MAAM,EAAE,UAAU,EAClB,YAAY,EACZ,IAAY,EACZ,KAAW,EACX,YAAY,EACZ,KAAK,EACL,QAAe,EACf,OAAgB,EAChB,OAAO,EACP,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,aAAa,EACxB,GAAG,EACH,GAAG,KAAK,EACT,EAAE,WAAW,+BAsNb;yBAxOe,MAAM"}
1
+ {"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../src/Drawer/Drawer.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAEH,OAAO,EAAgC,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAIpE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAQ5C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,WAAW,CAAC;AAsB7C,OAAO,KAAK,EAAC,WAAW,EAAe,MAAM,WAAW,CAAC;AA+MzD,MAAM,WAAW,WAAY,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IAC/D,iDAAiD;IACjD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAEnC;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;;;;;OAMG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAExC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAEvB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB;;;;;OAKG;IACH,YAAY,CAAC,EAAE;QACb;;;;;;WAMG;QACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;KAC/B,CAAC;IAEF;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;OAGG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,MAAM,CAAC,EACrB,MAAM,EAAE,UAAU,EAClB,YAAY,EACZ,IAAY,EACZ,KAAW,EACX,YAAY,EACZ,KAAK,EACL,QAAe,EACf,OAAgB,EAChB,OAAO,EACP,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,aAAa,EACxB,GAAG,EACH,GAAG,KAAK,EACT,EAAE,WAAW,+BAsNb;yBAxOe,MAAM"}
@@ -64,7 +64,9 @@ import { useSettledOpen } from "../hooks/useSettledOpen.js";
64
64
  import * as stylex from '@stylexjs/stylex';
65
65
  import "../theme/tokens.stylex.js";
66
66
  import { borderVars, colorVars, durationVars, easeVars, shadowVars } from "../theme/tokens.stylex.js";
67
- import { useFocusTrap, useMergedRefs, useScrollLock } from "../hooks/index.js";
67
+ import { useFocusTrap } from "../hooks/useFocusTrap.js";
68
+ import { useMergedRefs } from "../hooks/useMergedRefs.js";
69
+ import { useScrollLock } from "../hooks/useScrollLock.js";
68
70
  import { LayerDepthProvider, useLayerDismissal } from "../Layer/index.js";
69
71
  import { layerTextReset } from "../Layer/layerTextReset.stylex.js";
70
72
  import { layerStructureReset } from "../Layer/layerStructureReset.stylex.js";
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * @file DropdownMenu.tsx
3
3
  * @input Uses React, StyleX, usePopover, MenuBottomSheet (lazy), Button, List,
4
- * useListFocus, and the shared viewport-safe menu-width resolver
4
+ * useListFocus, the shared viewport-safe menu-width resolver, and the
5
+ * layer runtime's entrance hold
5
6
  * @output Exports DropdownMenu with caller-selected popover or bottom-sheet
6
7
  * presentation
7
8
  * @position Core implementation; consumed by index.ts
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../src/DropdownMenu/DropdownMenu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../src/DropdownMenu/DropdownMenu.tsx"],"names":[],"mappings":"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"}
@@ -5,7 +5,8 @@
5
5
  /**
6
6
  * @file DropdownMenu.tsx
7
7
  * @input Uses React, StyleX, usePopover, MenuBottomSheet (lazy), Button, List,
8
- * useListFocus, and the shared viewport-safe menu-width resolver
8
+ * useListFocus, the shared viewport-safe menu-width resolver, and the
9
+ * layer runtime's entrance hold
9
10
  * @output Exports DropdownMenu with caller-selected popover or bottom-sheet
10
11
  * presentation
11
12
  * @position Core implementation; consumed by index.ts
@@ -38,6 +39,7 @@ import React, { useCallback, useEffect, useId, useMemo, useRef, useState } from
38
39
  import { readAccessibleName } from "../utils/accessibleName.js";
39
40
  import * as stylex from '@stylexjs/stylex';
40
41
  import { usePopover } from "../Popover/usePopover.js";
42
+ import { holdEntranceInput } from "../Layer/holdEntranceInput.js";
41
43
  import { Button } from "../Button/index.js";
42
44
  import { Heading } from "../Heading/index.js";
43
45
  import { Icon } from "../Icon/index.js";
@@ -631,6 +633,10 @@ function DropdownMenuPopover({
631
633
  // The press model is mounted below (it needs the popover); the hide path
632
634
  // above it ends the gesture in flight through this ref.
633
635
  const cancelMenuPressRef = useRef(() => {});
636
+ // The entrance hold starts as the layer shows. Its start is set below, once
637
+ // the list ref exists, and its release is kept for the close.
638
+ const holdEntranceRef = useRef(() => {});
639
+ const releaseEntranceRef = useRef(null);
634
640
 
635
641
  // Submenu flyouts are `popover="manual"` elements nested inside the menu's
636
642
  // `popover="auto"` element, so the browser's light dismiss of the menu never
@@ -676,6 +682,8 @@ function DropdownMenuPopover({
676
682
  // keyboard (the modality tracker decides; the suppressed style hides the
677
683
  // pointer case, which Safari would otherwise paint after a touch pick).
678
684
  const handleLayerHide = useCallback(() => {
685
+ releaseEntranceRef.current?.();
686
+ releaseEntranceRef.current = null;
679
687
  // Whatever closed the menu — light dismiss, the dismissal stack, Escape
680
688
  // or a controlled close — its flyouts close with it.
681
689
  hideOpenFlyouts();
@@ -731,6 +739,7 @@ function DropdownMenuPopover({
731
739
  }, [renderTrigger, hasRegions, triggerName]);
732
740
  const handleLayerShow = useCallback(() => {
733
741
  acceptedOpenRef.current = true;
742
+ holdEntranceRef.current();
734
743
  resetFocusReturn();
735
744
  if (renderTrigger != null) {
736
745
  setTriggerName(readAccessibleName(buttonRef.current));
@@ -858,6 +867,21 @@ function DropdownMenuPopover({
858
867
  });
859
868
  }, [popover.isOpen, focusFirst, focusLast, listRef]);
860
869
 
870
+ // Under a finger, where the primary pointer is coarse, a tap or a drag during
871
+ // the entrance reaches nothing, as in UIMenu. Keys and assistive technology
872
+ // stay live.
873
+ const holdEntrance = useCallback(() => {
874
+ releaseEntranceRef.current?.();
875
+ const layer = pressTouchModel === 'uikit' ? listRef.current?.closest('[popover]') : null;
876
+ releaseEntranceRef.current = layer == null ? null : holdEntranceInput(layer);
877
+ }, [listRef, pressTouchModel]);
878
+ holdEntranceRef.current = holdEntrance;
879
+ // The layer runtime's input hold: an unmount during the entrance releases it.
880
+ useEffect(() => () => {
881
+ releaseEntranceRef.current?.();
882
+ releaseEntranceRef.current = null;
883
+ }, []);
884
+
861
885
  // With a header or footer the popover is a modal dialog: Tab and Shift+Tab
862
886
  // walk the header's controls, the menu as one stop, then the footer's
863
887
  // controls, and wrap at either end. The key is handled here in full, so the
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @file ComponentIcon.tsx
3
+ * @input A component icon slot, its state, the component's fallback, and
4
+ * optional caller-supplied icon content
5
+ * @output Exports the internal ComponentIcon renderer
6
+ * @position Shared renderer that components use for a themeable icon slot:
7
+ * caller content, then the theme's slot, then the component's fallback
8
+ */
9
+ import type { ReactNode } from 'react';
10
+ import { type IconColor } from './Icon.js';
11
+ import type { ComponentIconFallback, ComponentIconSlotState } from './globalIconRegistry.js';
12
+ import type { ComponentIconSlotName } from './index.js';
13
+ type ComponentIconProps<Slot extends ComponentIconSlotName> = {
14
+ slot: Slot;
15
+ state: ComponentIconSlotState<Slot>;
16
+ fallback: ComponentIconFallback;
17
+ color?: IconColor;
18
+ /**
19
+ * Icon content the component's caller supplied. When set (`null`
20
+ * included), it renders instead of the slot.
21
+ */
22
+ content?: ReactNode;
23
+ };
24
+ /**
25
+ * Render a component's themeable icon. Caller content wins. Otherwise the
26
+ * active theme's `componentIcons[slot]` adjusts the component's fallback,
27
+ * and the result renders through `Icon`, so shared icon resolution chooses
28
+ * the artwork. A resolved `null` renders nothing.
29
+ * @internal
30
+ */
31
+ export declare function ComponentIcon<Slot extends ComponentIconSlotName>({ content, ...props }: ComponentIconProps<Slot>): ReactNode;
32
+ export {};
33
+ //# sourceMappingURL=ComponentIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentIcon.d.ts","sourceRoot":"","sources":["../../src/Icon/ComponentIcon.tsx"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAO,KAAK,SAAS,EAAC,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAC,qBAAqB,EAAc,MAAM,SAAS,CAAC;AAGhE,KAAK,kBAAkB,CAAC,IAAI,SAAS,qBAAqB,IAAI;IAC5D,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACpC,QAAQ,EAAE,qBAAqB,CAAC;IAChC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,SAAS,qBAAqB,EAAE,EAChE,OAAO,EACP,GAAG,KAAK,EACT,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAAG,SAAS,CAKtC"}
@@ -0,0 +1,56 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ 'use client';
4
+
5
+ /**
6
+ * @file ComponentIcon.tsx
7
+ * @input A component icon slot, its state, the component's fallback, and
8
+ * optional caller-supplied icon content
9
+ * @output Exports the internal ComponentIcon renderer
10
+ * @position Shared renderer that components use for a themeable icon slot:
11
+ * caller content, then the theme's slot, then the component's fallback
12
+ */
13
+ import { Icon } from "./Icon.js";
14
+ import { useComponentIcon } from "./useIcon.js";
15
+ import { jsx as _jsx } from "react/jsx-runtime";
16
+ /**
17
+ * Render a component's themeable icon. Caller content wins. Otherwise the
18
+ * active theme's `componentIcons[slot]` adjusts the component's fallback,
19
+ * and the result renders through `Icon`, so shared icon resolution chooses
20
+ * the artwork. A resolved `null` renders nothing.
21
+ * @internal
22
+ */
23
+ export function ComponentIcon({
24
+ content,
25
+ ...props
26
+ }) {
27
+ if (content !== undefined) {
28
+ return content;
29
+ }
30
+ return /*#__PURE__*/_jsx(SlotIcon, {
31
+ ...props
32
+ });
33
+ }
34
+ function SlotIcon({
35
+ slot,
36
+ state,
37
+ fallback,
38
+ color
39
+ }) {
40
+ const {
41
+ icon,
42
+ variant,
43
+ size
44
+ } = useComponentIcon(slot, state, fallback);
45
+ if (icon == null) {
46
+ return null;
47
+ }
48
+ return /*#__PURE__*/_jsx(Icon, {
49
+ icon: icon
50
+ // Resolution keeps only a variant the active theme lists.
51
+ ,
52
+ variant: variant,
53
+ size: size,
54
+ color: color
55
+ });
56
+ }
@@ -3,9 +3,10 @@
3
3
  * @input Theme icon entries (a DefinedTheme or a registered theme name), the
4
4
  * process-wide registry, and built-in defaults
5
5
  * @output Exports registerIcons, getIconRegistry, getIcon, getExtendedIcon,
6
- * resetIcons, resolveIcon (internal), IconName, IconRegistry, IconEntry,
7
- * IconRequest
8
- * @position Global and theme-scoped icon registry; works in server and client environments
6
+ * resetIcons, resolveIcon and resolveComponentIcon (internal), IconName,
7
+ * IconRegistry, IconEntry, IconRequest
8
+ * @position Global and theme-scoped icon registry and component icon slot
9
+ * resolution; works in server and client environments
9
10
  *
10
11
  * This module has NO 'use client' directive — it's importable from RSC.
11
12
  * Components resolve semantic icons through getIcon() or the client useIcon() hook.
@@ -17,10 +18,14 @@
17
18
  * its resolved size and a variant the entry can receive (listed by the active
18
19
  * theme and, for a theme entry, by the theme that defined it), otherwise
19
20
  * `undefined`; the public reads below pass `{size: 'md'}`.
21
+ *
22
+ * `resolveComponentIcon` is the only caller of a theme's `componentIcons`
23
+ * slot functions. It turns a slot, its state, and the component's own
24
+ * fallback into the request the component renders through `Icon`.
20
25
  */
21
26
  import type { ReactNode } from 'react';
22
27
  import type { IconSize } from './IconSize.stylex.js';
23
- import type { IconVariant } from './index.js';
28
+ import type { ComponentIconRequest, ComponentIconSlotMap, ComponentIconSlotName, IconVariant } from './index.js';
24
29
  import type { DefinedTheme } from '../theme/defineTheme.js';
25
30
  /**
26
31
  * Semantic icon names used internally by Astryx components.
@@ -173,6 +178,42 @@ export declare function getIcon(name: ExtendedIconName, source?: IconRegistrySou
173
178
  * ```
174
179
  */
175
180
  export declare function getExtendedIcon(name: ExtendedIconName, fallback?: ReactNode, source?: IconRegistrySource): ReactNode;
181
+ /**
182
+ * A theme's stored value for a slot, function included. A function was typed
183
+ * for its slot's state; resolution passes it the state of that slot only.
184
+ */
185
+ export type StoredComponentIconValue = IconName | null | ComponentIconRequest<string> | ((state: never) => ComponentIconRequest<string> | null | undefined);
186
+ /** The state a slot's component passes: `undefined` for a stateless slot. */
187
+ export type ComponentIconSlotState<Slot extends ComponentIconSlotName> = ComponentIconSlotMap[Slot] extends true ? undefined : Readonly<ComponentIconSlotMap[Slot]>;
188
+ /**
189
+ * What a component renders for a slot when the theme maps nothing: its own
190
+ * icon name (or `null` for none), and optionally its own variant and size.
191
+ */
192
+ export type ComponentIconFallback = IconName | null | Readonly<{
193
+ icon: IconName | null;
194
+ variant?: IconVariant;
195
+ size?: IconSize;
196
+ }>;
197
+ /** A slot resolved to what the component renders through `Icon`. */
198
+ export type ResolvedComponentIcon = Readonly<{
199
+ icon: IconName | null;
200
+ variant?: string;
201
+ size?: IconSize;
202
+ }>;
203
+ /**
204
+ * Resolve a component's icon slot. The component passes its slot state and
205
+ * its own fallback; the active theme's `componentIcons[slot]` adjusts that
206
+ * fallback. A shared icon name replaces the fallback icon, `null` hides the
207
+ * icon, a request applies field by field, and a slot function receives the
208
+ * state and returns a request whose result is final: `null` hides the icon,
209
+ * `undefined` changes nothing.
210
+ *
211
+ * This is the only caller of a theme's slot functions. Caller-supplied icon
212
+ * content wins before resolution, so a component does not resolve the slot
213
+ * when its caller passed content.
214
+ * @internal
215
+ */
216
+ export declare function resolveComponentIcon<Slot extends ComponentIconSlotName>(slot: Slot, state: ComponentIconSlotState<Slot>, fallback: ComponentIconFallback, source: IconRegistrySource): ResolvedComponentIcon;
176
217
  /**
177
218
  * Reset the global registry. For testing only.
178
219
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"globalIconRegistry.d.ts","sourceRoot":"","sources":["../../src/Icon/globalIconRegistry.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAErC,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAQvD;;;;;GAKG;AAEH,MAAM,MAAM,QAAQ,GAChB,OAAO,GACP,aAAa,GACb,aAAa,GACb,cAAc,GACd,cAAc,GACd,eAAe,GACf,OAAO,GACP,SAAS,GACT,OAAO,GACP,SAAS,GACT,MAAM,GACN,UAAU,GACV,OAAO,GACP,cAAc,GACd,MAAM,GACN,gBAAgB,GAChB,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,WAAW,GACX,cAAc,GACd,QAAQ,GACR,UAAU,GACV,aAAa,GACb,MAAM,GACN,aAAa,GACb,QAAQ,GACR,MAAM,GACN,YAAY,CAAC;AAEjB;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,kBAAkB,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;AAEvD;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAEvD;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,CAAC,OAAO,SAAS,MAAM,GAAG,WAAW,IAAI,QAAQ,CAAC;IACvE,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,SAAS,CAAC,OAAO,SAAS,MAAM,GAAG,WAAW,IACxD,SAAS,GAAG,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC;AAQ7D,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AA4G1E;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,GAC3B,SAAS,CAEX;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC,GAClD,IAAI,CAON;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,MAAM,CAAC,EAAE,kBAAkB,GAC1B,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAsBvC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,gBAAgB,EACtB,MAAM,CAAC,EAAE,kBAAkB,GAC1B,SAAS,CAEX;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,gBAAgB,EACtB,QAAQ,CAAC,EAAE,SAAS,EACpB,MAAM,CAAC,EAAE,kBAAkB,GAC1B,SAAS,CAKX;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAEjC"}
1
+ {"version":3,"file":"globalIconRegistry.d.ts","sourceRoot":"","sources":["../../src/Icon/globalIconRegistry.tsx"],"names":[],"mappings":"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"}