@astryxdesign/core 0.6.2-canary.a4bcbeb → 0.6.2-canary.a540a6d

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 (194) hide show
  1. package/dist/BottomSheet/BottomSheet.d.ts +1 -1
  2. package/dist/BottomSheet/BottomSheet.d.ts.map +1 -1
  3. package/dist/BottomSheet/BottomSheet.js +3 -1
  4. package/dist/BottomSheet/BottomSheetPanel.d.ts +7 -5
  5. package/dist/BottomSheet/BottomSheetPanel.d.ts.map +1 -1
  6. package/dist/BottomSheet/BottomSheetPanel.js +56 -19
  7. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  8. package/dist/CheckboxInput/CheckboxInput.js +12 -2
  9. package/dist/Collapsible/Collapsible.d.ts.map +1 -1
  10. package/dist/Collapsible/Collapsible.js +6 -1
  11. package/dist/Kbd/Kbd.d.ts +5 -3
  12. package/dist/Kbd/Kbd.d.ts.map +1 -1
  13. package/dist/Kbd/Kbd.js +36 -42
  14. package/dist/Link/Link.d.ts.map +1 -1
  15. package/dist/Link/Link.js +6 -2
  16. package/dist/Markdown/Markdown.d.ts +8 -2
  17. package/dist/Markdown/Markdown.d.ts.map +1 -1
  18. package/dist/Markdown/Markdown.fr23.bench.d.ts +2 -0
  19. package/dist/Markdown/Markdown.fr23.bench.d.ts.map +1 -0
  20. package/dist/Markdown/Markdown.fr23.bench.js +248 -0
  21. package/dist/Markdown/Markdown.js +262 -109
  22. package/dist/Markdown/ast.d.ts +162 -0
  23. package/dist/Markdown/ast.d.ts.map +1 -0
  24. package/dist/Markdown/ast.js +74 -0
  25. package/dist/Markdown/index.d.ts +3 -1
  26. package/dist/Markdown/index.d.ts.map +1 -1
  27. package/dist/Markdown/index.js +1 -0
  28. package/dist/Markdown/parser.d.ts +104 -58
  29. package/dist/Markdown/parser.d.ts.map +1 -1
  30. package/dist/Markdown/parser.js +693 -167
  31. package/dist/Markdown/plugins/frontmatter.d.ts +32 -0
  32. package/dist/Markdown/plugins/frontmatter.d.ts.map +1 -0
  33. package/dist/Markdown/plugins/frontmatter.js +132 -0
  34. package/dist/Markdown/plugins/index.d.ts +16 -0
  35. package/dist/Markdown/plugins/index.d.ts.map +1 -0
  36. package/dist/Markdown/plugins/index.js +13 -0
  37. package/dist/Markdown/plugins/protocol.d.ts +191 -0
  38. package/dist/Markdown/plugins/protocol.d.ts.map +1 -0
  39. package/dist/Markdown/plugins/protocol.js +957 -0
  40. package/dist/Markdown/plugins/semanticFence.d.ts +36 -0
  41. package/dist/Markdown/plugins/semanticFence.d.ts.map +1 -0
  42. package/dist/Markdown/plugins/semanticFence.js +213 -0
  43. package/dist/Markdown/plugins/sourceDecoration.d.ts +76 -0
  44. package/dist/Markdown/plugins/sourceDecoration.d.ts.map +1 -0
  45. package/dist/Markdown/plugins/sourceDecoration.js +393 -0
  46. package/dist/Markdown/plugins/textTransform.d.ts +30 -0
  47. package/dist/Markdown/plugins/textTransform.d.ts.map +1 -0
  48. package/dist/Markdown/plugins/textTransform.js +374 -0
  49. package/dist/Markdown/remark.d.ts +196 -0
  50. package/dist/Markdown/remark.d.ts.map +1 -0
  51. package/dist/Markdown/remark.js +1062 -0
  52. package/dist/Markdown/url.d.ts +4 -0
  53. package/dist/Markdown/url.d.ts.map +1 -0
  54. package/dist/Markdown/url.js +25 -0
  55. package/dist/Markdown/utils.d.ts +4 -2
  56. package/dist/Markdown/utils.d.ts.map +1 -1
  57. package/dist/Markdown/utils.js +2 -1
  58. package/dist/Outline/index.d.ts +1 -0
  59. package/dist/Outline/index.d.ts.map +1 -1
  60. package/dist/Outline/parseOutlineFromMarkdown.d.ts +7 -1
  61. package/dist/Outline/parseOutlineFromMarkdown.d.ts.map +1 -1
  62. package/dist/Outline/parseOutlineFromMarkdown.js +14 -8
  63. package/dist/Outline/useOutlineFromMarkdown.d.ts +3 -1
  64. package/dist/Outline/useOutlineFromMarkdown.d.ts.map +1 -1
  65. package/dist/Outline/useOutlineFromMarkdown.js +8 -3
  66. package/dist/PowerSearch/PowerSearchEditPopover.d.ts.map +1 -1
  67. package/dist/PowerSearch/PowerSearchEditPopover.js +46 -30
  68. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  69. package/dist/RadioList/RadioListItem.js +13 -1
  70. package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
  71. package/dist/SegmentedControl/SegmentedControlItem.js +5 -5
  72. package/dist/SideNav/SideNav.d.ts +2 -1
  73. package/dist/SideNav/SideNav.d.ts.map +1 -1
  74. package/dist/SideNav/SideNav.js +9 -3
  75. package/dist/Slider/Slider.d.ts.map +1 -1
  76. package/dist/Slider/Slider.js +14 -8
  77. package/dist/Switch/Switch.d.ts.map +1 -1
  78. package/dist/Switch/Switch.js +11 -0
  79. package/dist/TabList/Tab.d.ts +1 -1
  80. package/dist/TabList/Tab.d.ts.map +1 -1
  81. package/dist/TabList/Tab.js +20 -7
  82. package/dist/ToggleButton/ToggleButton.d.ts +2 -1
  83. package/dist/ToggleButton/ToggleButton.d.ts.map +1 -1
  84. package/dist/ToggleButton/ToggleButton.js +7 -1
  85. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  86. package/dist/Typeahead/BaseTypeahead.js +15 -6
  87. package/dist/astryx.css +11 -1
  88. package/dist/hooks/scrollKeyboardDelegation.d.ts +3 -0
  89. package/dist/hooks/scrollKeyboardDelegation.d.ts.map +1 -0
  90. package/dist/hooks/scrollKeyboardDelegation.js +146 -0
  91. package/dist/hooks/useScrollableArea.d.ts +6 -2
  92. package/dist/hooks/useScrollableArea.d.ts.map +1 -1
  93. package/dist/hooks/useScrollableArea.js +17 -5
  94. package/dist/utils/interactionOverlay.stylex.d.ts +8 -0
  95. package/dist/utils/interactionOverlay.stylex.d.ts.map +1 -1
  96. package/dist/utils/interactionOverlay.stylex.js +9 -0
  97. package/package.json +13 -3
  98. package/src/BottomSheet/BottomSheet.doc.mjs +8 -1
  99. package/src/BottomSheet/BottomSheet.spec.md +46 -20
  100. package/src/BottomSheet/BottomSheet.test.tsx +6 -3
  101. package/src/BottomSheet/BottomSheet.tsx +3 -1
  102. package/src/BottomSheet/BottomSheetKeyboard.test.tsx +195 -0
  103. package/src/BottomSheet/BottomSheetPanel.test.tsx +11 -1
  104. package/src/BottomSheet/BottomSheetPanel.tsx +49 -16
  105. package/src/BottomSheet/__tests__/BottomSheetKeyboard.a11y.browser.spec.ts +344 -0
  106. package/src/Button/__tests__/Button.a11y.chromium.spec.ts +17 -1
  107. package/src/Button/__tests__/Button.a11y.known-failures.ts +0 -29
  108. package/src/Button/__tests__/Button.a11y.renders.tsx +9 -2
  109. package/src/Button/__tests__/Button.a11y.states.ts +9 -0
  110. package/src/CheckboxInput/CheckboxInput.doc.mjs +11 -0
  111. package/src/CheckboxInput/CheckboxInput.test.tsx +34 -0
  112. package/src/CheckboxInput/CheckboxInput.tsx +21 -1
  113. package/src/ClickableCard/ClickableCard.test.tsx +102 -5
  114. package/src/Collapsible/Collapsible.doc.mjs +11 -0
  115. package/src/Collapsible/Collapsible.test.tsx +21 -0
  116. package/src/Collapsible/Collapsible.tsx +5 -0
  117. package/src/Kbd/Kbd.doc.mjs +3 -3
  118. package/src/Kbd/Kbd.test.tsx +57 -1
  119. package/src/Kbd/Kbd.tsx +57 -37
  120. package/src/Link/Link.doc.mjs +11 -0
  121. package/src/Link/Link.test.tsx +24 -0
  122. package/src/Link/Link.tsx +5 -0
  123. package/src/Markdown/Markdown.doc.mjs +257 -0
  124. package/src/Markdown/Markdown.fr23.bench.ts +288 -0
  125. package/src/Markdown/Markdown.fr23.perf.test.ts +211 -0
  126. package/src/Markdown/Markdown.helpers.perf.test.ts +489 -0
  127. package/src/Markdown/Markdown.public.test.ts +126 -3
  128. package/src/Markdown/Markdown.spec.md +190 -44
  129. package/src/Markdown/Markdown.test.tsx +11 -0
  130. package/src/Markdown/Markdown.tsx +414 -135
  131. package/src/Markdown/ast.test.ts +307 -0
  132. package/src/Markdown/ast.ts +337 -0
  133. package/src/Markdown/incremental.test.ts +12 -0
  134. package/src/Markdown/index.ts +34 -0
  135. package/src/Markdown/modules/remark.spec.md +269 -0
  136. package/src/Markdown/parser.ts +1117 -235
  137. package/src/Markdown/plugins/frontmatter.test.tsx +125 -0
  138. package/src/Markdown/plugins/frontmatter.ts +198 -0
  139. package/src/Markdown/plugins/index.ts +53 -0
  140. package/src/Markdown/plugins/protocol.test.tsx +952 -0
  141. package/src/Markdown/plugins/protocol.ts +1618 -0
  142. package/src/Markdown/plugins/semanticFence.test.tsx +546 -0
  143. package/src/Markdown/plugins/semanticFence.ts +424 -0
  144. package/src/Markdown/plugins/sourceDecoration.test.tsx +799 -0
  145. package/src/Markdown/plugins/sourceDecoration.ts +539 -0
  146. package/src/Markdown/plugins/textTransform.test.ts +467 -0
  147. package/src/Markdown/plugins/textTransform.ts +554 -0
  148. package/src/Markdown/remark.test.tsx +1877 -0
  149. package/src/Markdown/remark.ts +1574 -0
  150. package/src/Markdown/url.ts +30 -0
  151. package/src/Markdown/utils.ts +13 -1
  152. package/src/Outline/Outline.doc.mjs +7 -5
  153. package/src/Outline/Outline.spec.md +1 -1
  154. package/src/Outline/index.ts +1 -0
  155. package/src/Outline/modules/parseOutlineFromMarkdown.spec.md +142 -0
  156. package/src/Outline/parseOutlineFromMarkdown.ts +39 -13
  157. package/src/Outline/useOutlineFromMarkdown.ts +15 -3
  158. package/src/PowerSearch/PowerSearchEditPopover.test.tsx +150 -1
  159. package/src/PowerSearch/PowerSearchEditPopover.tsx +51 -28
  160. package/src/RadioList/RadioList.doc.mjs +11 -0
  161. package/src/RadioList/RadioList.test.tsx +32 -0
  162. package/src/RadioList/RadioListItem.tsx +25 -1
  163. package/src/ScrollableArea/modules/useScrollableArea.spec.md +50 -22
  164. package/src/SegmentedControl/SegmentedControl.doc.mjs +2 -2
  165. package/src/SegmentedControl/SegmentedControl.test.tsx +31 -0
  166. package/src/SegmentedControl/SegmentedControlItem.tsx +6 -9
  167. package/src/SideNav/SideNav.doc.mjs +1 -1
  168. package/src/SideNav/SideNav.test.tsx +10 -0
  169. package/src/SideNav/SideNav.tsx +14 -2
  170. package/src/Slider/Slider.doc.mjs +11 -0
  171. package/src/Slider/Slider.test.tsx +128 -0
  172. package/src/Slider/Slider.tsx +25 -7
  173. package/src/Switch/Switch.doc.mjs +11 -0
  174. package/src/Switch/Switch.test.tsx +16 -0
  175. package/src/Switch/Switch.tsx +28 -0
  176. package/src/TabList/Tab.tsx +35 -7
  177. package/src/TabList/TabList.doc.mjs +11 -0
  178. package/src/TabList/TabList.test.tsx +66 -0
  179. package/src/TabList/__tests__/Tabs.a11y.known-failures.ts +1 -34
  180. package/src/ToggleButton/ToggleButton.test.tsx +133 -0
  181. package/src/ToggleButton/ToggleButton.tsx +9 -2
  182. package/src/ToggleButton/__tests__/ToggleButton.a11y.chromium.spec.ts +209 -0
  183. package/src/Tokenizer/Tokenizer.spec.md +142 -75
  184. package/src/Typeahead/BaseTypeahead.spec.md +4 -3
  185. package/src/Typeahead/BaseTypeahead.tsx +15 -6
  186. package/src/Typeahead/Typeahead.test.tsx +53 -0
  187. package/src/__tests__/PressedState.a11y.chromium.spec.ts +813 -0
  188. package/src/__tests__/pressState.ts +93 -0
  189. package/src/hooks/scrollKeyboardDelegation.test.ts +155 -0
  190. package/src/hooks/scrollKeyboardDelegation.ts +233 -0
  191. package/src/hooks/useScrollableArea.doc.mjs +15 -3
  192. package/src/hooks/useScrollableArea.test.tsx +59 -1
  193. package/src/hooks/useScrollableArea.ts +34 -10
  194. package/src/utils/interactionOverlay.stylex.ts +20 -0
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @file BottomSheet.tsx
3
- * @input Uses React, StyleX, core hooks/utils, BottomSheetPanel, BottomSheetSwitcherContext
3
+ * @input Uses React, StyleX, core hooks/utils, named BottomSheetPanel, BottomSheetSwitcherContext
4
4
  * @output Exports BottomSheet component and BottomSheetProps
5
5
  * @position Public BottomSheet router plus private standalone/switcher hosts
6
6
  *
@@ -1 +1 @@
1
- {"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../src/BottomSheet/BottomSheet.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAOL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,WAAW,CAAC;AAgB7C,YAAY,EAAC,iBAAiB,EAAE,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;AAChF,OAAO,KAAK,EAAC,iBAAiB,EAAE,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;AAyEhF,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,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,0DAA0D;IAC1D,aAAa,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,KAAK,CAAC;CACjB;AAED,UAAU,wBAAyB,SAAQ,sBAAsB;IAC/D,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;AA4XxD;;;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;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAOL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,WAAW,CAAC;AAgB7C,YAAY,EAAC,iBAAiB,EAAE,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;AAChF,OAAO,KAAK,EAAC,iBAAiB,EAAE,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;AAyEhF,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,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,0DAA0D;IAC1D,aAAa,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,KAAK,CAAC;CACjB;AAED,UAAU,wBAAyB,SAAQ,sBAAsB;IAC/D,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;AA8XxD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,+BA6BlD;yBA7Be,WAAW"}
@@ -4,7 +4,7 @@
4
4
 
5
5
  /**
6
6
  * @file BottomSheet.tsx
7
- * @input Uses React, StyleX, core hooks/utils, BottomSheetPanel, BottomSheetSwitcherContext
7
+ * @input Uses React, StyleX, core hooks/utils, named BottomSheetPanel, BottomSheetSwitcherContext
8
8
  * @output Exports BottomSheet component and BottomSheetProps
9
9
  * @position Public BottomSheet router plus private standalone/switcher hosts
10
10
  *
@@ -266,6 +266,7 @@ function StandaloneBottomSheet({
266
266
  ref: ref,
267
267
  state: panelState,
268
268
  height: height,
269
+ label: label,
269
270
  snapPoints: snapPoints,
270
271
  isSwipeDismissAllowed: purpose === 'info',
271
272
  isPageScrollLocked: shouldPresent && hasScrim,
@@ -397,6 +398,7 @@ function SwitcherBottomSheetItem({
397
398
  ref: ref,
398
399
  state: panelState,
399
400
  height: height,
401
+ label: label,
400
402
  snapPoints: snapPoints,
401
403
  isSwipeDismissAllowed: purpose === 'info',
402
404
  isPageScrollLocked: hasScrim,
@@ -1,13 +1,13 @@
1
1
  /**
2
2
  * @file BottomSheetPanel.tsx
3
- * @input Uses React, StyleX, theme tokens, useSheetGestures
4
- * @output Internal BottomSheetPanel surface and motion-state types
3
+ * @input Uses React, StyleX, theme tokens, sheet gestures, shared scroll behavior, and the host label
4
+ * @output Internal BottomSheetPanel with a keyboard-reachable scrolling body and motion-state types
5
5
  * @position Shared presentation layer for standalone and switcher BottomSheets
6
6
  *
7
7
  * This component owns everything intrinsic to a sheet surface: height budgets,
8
8
  * drag and snap gestures, the handle and scrolling body, motion styles, and
9
- * transition completion. It deliberately does not own a dialog, focus, inert
10
- * state, or switcher registration; those belong to the hosting controller.
9
+ * transition completion. It owns the body's keyboard access; dialog focus
10
+ * entry/return, inert state, and switcher registration belong to the host.
11
11
  *
12
12
  * SYNC: When modified, update these files to stay in sync:
13
13
  * - /packages/core/src/BottomSheet/BottomSheet.tsx
@@ -44,6 +44,8 @@ interface BottomSheetPanelProps extends BaseProps<HTMLDivElement> {
44
44
  ref?: React.Ref<HTMLDivElement>;
45
45
  state: BottomSheetPanelState;
46
46
  height: BottomSheetHeight | number | string;
47
+ /** Existing host name, reused for the keyboard scrolling group. */
48
+ label: string;
47
49
  children: ReactNode;
48
50
  snapPoints?: ReadonlyArray<BottomSheetSnapPoint>;
49
51
  isSwipeDismissAllowed?: boolean;
@@ -56,7 +58,7 @@ interface BottomSheetPanelProps extends BaseProps<HTMLDivElement> {
56
58
  onMotionComplete?: (motion: BottomSheetPanelMotion) => void;
57
59
  }
58
60
  /** Internal visual and gesture surface shared by every BottomSheet host. */
59
- export declare function BottomSheetPanel({ ref, state, height, children, snapPoints, className, style, tabIndex, xstyle, isSwipeDismissAllowed, isPageScrollLocked, onDismiss, onScrimOpacity, onElementChange, onMotionStart, onMotionComplete, ...props }: BottomSheetPanelProps): import("react").JSX.Element;
61
+ export declare function BottomSheetPanel({ ref, state, height, label, children, snapPoints, className, style, tabIndex, xstyle, isSwipeDismissAllowed, isPageScrollLocked, onDismiss, onScrimOpacity, onElementChange, onMotionStart, onMotionComplete, ...props }: BottomSheetPanelProps): import("react").JSX.Element;
60
62
  export declare namespace BottomSheetPanel {
61
63
  var displayName: string;
62
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BottomSheetPanel.d.ts","sourceRoot":"","sources":["../../src/BottomSheet/BottomSheetPanel.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAc5C,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,eAAe,CAAC;AAIvB,QAAA,MAAM,cAAc;;;;CAIV,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,cAAc,CAAC;AAC5D,YAAY,EAAC,oBAAoB,EAAC,CAAC;AA2LnC,MAAM,MAAM,sBAAsB,GAChC,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjD,MAAM,MAAM,qBAAqB,GAC7B;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAC,GAChB;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAC,GACjC;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC1C,eAAe,EAAE,MAAM,CAAC;CACzB,GACD;IAAC,IAAI,EAAE,SAAS,CAAA;CAAC,CAAC;AAEtB,UAAU,qBAAsB,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC/D,+CAA+C;IAC/C,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,MAAM,EAAE,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5C,QAAQ,EAAE,SAAS,CAAC;IACpB,UAAU,CAAC,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC;IACjD,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gFAAgF;IAChF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3D,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACzD,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,IAAI,CAAC;CAC7D;AA+GD,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,EAC/B,GAAG,EACH,KAAK,EACL,MAAM,EACN,QAAQ,EACR,UAAU,EACV,SAAS,EACT,KAAK,EACL,QAAQ,EACR,MAAM,EACN,qBAA4B,EAC5B,kBAA0B,EAC1B,SAAS,EACT,cAAc,EACd,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,GAAG,KAAK,EACT,EAAE,qBAAqB,+BAyQvB;yBA3Re,gBAAgB"}
1
+ {"version":3,"file":"BottomSheetPanel.d.ts","sourceRoot":"","sources":["../../src/BottomSheet/BottomSheetPanel.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAiB5C,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,eAAe,CAAC;AAIvB,QAAA,MAAM,cAAc;;;;CAIV,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,cAAc,CAAC;AAC5D,YAAY,EAAC,oBAAoB,EAAC,CAAC;AAsMnC,MAAM,MAAM,sBAAsB,GAChC,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjD,MAAM,MAAM,qBAAqB,GAC7B;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAC,GAChB;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAC,GACjC;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC1C,eAAe,EAAE,MAAM,CAAC;CACzB,GACD;IAAC,IAAI,EAAE,SAAS,CAAA;CAAC,CAAC;AAEtB,UAAU,qBAAsB,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC/D,+CAA+C;IAC/C,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,MAAM,EAAE,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5C,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;IACpB,UAAU,CAAC,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC;IACjD,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gFAAgF;IAChF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3D,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACzD,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,IAAI,CAAC;CAC7D;AA+GD,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,EAC/B,GAAG,EACH,KAAK,EACL,MAAM,EACN,KAAK,EACL,QAAQ,EACR,UAAU,EACV,SAAS,EACT,KAAK,EACL,QAAQ,EACR,MAAM,EACN,qBAA4B,EAC5B,kBAA0B,EAC1B,SAAS,EACT,cAAc,EACd,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,GAAG,KAAK,EACT,EAAE,qBAAqB,+BAyRvB;yBA5Se,gBAAgB"}
@@ -4,14 +4,14 @@
4
4
 
5
5
  /**
6
6
  * @file BottomSheetPanel.tsx
7
- * @input Uses React, StyleX, theme tokens, useSheetGestures
8
- * @output Internal BottomSheetPanel surface and motion-state types
7
+ * @input Uses React, StyleX, theme tokens, sheet gestures, shared scroll behavior, and the host label
8
+ * @output Internal BottomSheetPanel with a keyboard-reachable scrolling body and motion-state types
9
9
  * @position Shared presentation layer for standalone and switcher BottomSheets
10
10
  *
11
11
  * This component owns everything intrinsic to a sheet surface: height budgets,
12
12
  * drag and snap gestures, the handle and scrolling body, motion styles, and
13
- * transition completion. It deliberately does not own a dialog, focus, inert
14
- * state, or switcher registration; those belong to the hosting controller.
13
+ * transition completion. It owns the body's keyboard access; dialog focus
14
+ * entry/return, inert state, and switcher registration belong to the host.
15
15
  *
16
16
  * SYNC: When modified, update these files to stay in sync:
17
17
  * - /packages/core/src/BottomSheet/BottomSheet.tsx
@@ -23,9 +23,11 @@
23
23
  import { useCallback, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useRef } from 'react';
24
24
  import * as stylex from '@stylexjs/stylex';
25
25
  import { useDevWarning } from "../hooks/index.js";
26
+ import { useScrollableArea } from "../hooks/useScrollableArea.js";
26
27
  import "../theme/tokens.stylex.js";
27
- import { borderVars, colorVars, durationVars, easeVars, radiusVars, shadowVars, sizeVars, spacingVars } from "../theme/tokens.stylex.js";
28
+ import { borderVars, colorVars, durationVars, easeVars, focusVars, radiusVars, shadowVars, sizeVars, spacingVars } from "../theme/tokens.stylex.js";
28
29
  import { mergeProps, themeProps } from "../utils/index.js";
30
+ import { focusOutlineStyles } from "../utils/focusOutline.stylex.js";
29
31
  import { overlayPaddingReset } from "../Layout/padding.stylex.js";
30
32
  import { isValidSnapPoint, resolveSnapPoints } from "./snapOffsets.js";
31
33
  import { useMobileKeyboard } from "./useMobileKeyboard.js";
@@ -120,6 +122,24 @@ const styles = {
120
122
  kfzvcC: "x47corl",
121
123
  $$css: true
122
124
  },
125
+ body: {
126
+ kzQI83: "x1iyjqo2",
127
+ kAzted: "x2lwn1j",
128
+ kB7OPa: "x9f619",
129
+ kFalU9: "xx69xxh",
130
+ kInvED: "x1wfwxd8 x1nw7mhf",
131
+ kWkggS: "x10xzikg",
132
+ kGO01o: "x18d9i69",
133
+ $$css: true
134
+ },
135
+ tallKeyboardBody: {
136
+ kFlMNQ: "xrw9175",
137
+ k5JduY: "x1s928wv",
138
+ kc3QkE: "xhkezso",
139
+ k4zj60: "xu6fald",
140
+ kloYau: "x2q1x1w",
141
+ $$css: true
142
+ },
123
143
  budget: {
124
144
  kZKoxP: "x1tpcejd",
125
145
  $$css: true
@@ -222,6 +242,7 @@ export function BottomSheetPanel({
222
242
  ref,
223
243
  state,
224
244
  height,
245
+ label,
225
246
  children,
226
247
  snapPoints,
227
248
  className,
@@ -312,6 +333,22 @@ export function BottomSheetPanel({
312
333
  snapHeights,
313
334
  onScrimOpacity
314
335
  });
336
+ const {
337
+ getViewportProps,
338
+ getContentProps
339
+ } = useScrollableArea({
340
+ // The previous overflow-y:auto also computed overflow-x:auto. Keep wide
341
+ // content reachable instead of clipping that existing inline scroll path.
342
+ axis: 'both',
343
+ keyboardAccess: {
344
+ owner: 'contentOrViewport',
345
+ label
346
+ },
347
+ overscroll: 'contain',
348
+ // The sheet body deliberately remains the boundary for sheet-local sticky
349
+ // content while fitting, as it was before shared scroll adoption.
350
+ stickyContainment: 'always'
351
+ });
315
352
  const setElement = useCallback(element => {
316
353
  sheetRef(element);
317
354
  elementRef.current = element;
@@ -438,20 +475,20 @@ export function BottomSheetPanel({
438
475
  }
439
476
  })
440
477
  }), /*#__PURE__*/_jsx("div", {
441
- ...mergeProps({
442
- 0: {
443
- className: "x1iyjqo2 x2lwn1j x9f619 x1odjw0f x8du1vd xx69xxh x10xzikg x18d9i69"
444
- },
445
- 1: {
446
- className: "x1iyjqo2 x2lwn1j x9f619 x1odjw0f x8du1vd xx69xxh x10xzikg x18d9i69 xrw9175 x1s928wv xhkezso xu6fald x2q1x1w"
447
- }
448
- }[!!(height === 'tall') << 0], scrollPreservationInset > 0 ? {
449
- style: {
450
- paddingBlockEnd: `${scrollPreservationInset}px`
451
- }
452
- } : {}),
453
- ...bodyProps,
454
- children: children
478
+ ...getViewportProps({
479
+ ...bodyProps,
480
+ ...mergeProps(stylex.props(focusOutlineStyles.focusVisible, styles.body, height === 'tall' && styles.tallKeyboardBody), scrollPreservationInset > 0 ? {
481
+ style: {
482
+ paddingBlockEnd: `${scrollPreservationInset}px`
483
+ }
484
+ } : {})
485
+ }),
486
+ children: /*#__PURE__*/_jsx("div", {
487
+ ...getContentProps({
488
+ className: "xufnvkl x9f619 x5yr21d x121v3j4"
489
+ }),
490
+ children: children
491
+ })
455
492
  })]
456
493
  });
457
494
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxInput.d.ts","sourceRoot":"","sources":["../../src/CheckboxInput/CheckboxInput.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAOL,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAS3C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAG9C,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAqEhD,QAAA,MAAM,iBAAiB;;;;;;;;;EASrB,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAE/D,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IACrE,wDAAwD;IACxD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAClC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACxE;;OAEG;IACH,YAAY,CAAC,EAAE,CACb,OAAO,EAAE,OAAO,EAChB,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAC7B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,KAAK,EAAE,OAAO,GAAG,eAAe,CAAC;IACjC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACpD;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACnD;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IACjC;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAOD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,aAAqB,EACrB,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,SAAiB,EACjB,KAAK,EACL,UAAkB,EAClB,QAAQ,EACR,eAAe,EACf,UAAkB,EAClB,UAAkB,EAClB,UAAkB,EAClB,IAAW,EACX,OAAO,EACP,MAAM,EACN,SAAS,EACT,MAAM,EACN,KAAK,EACL,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,kBAAkB,EAAE,mBAAmB,EACvC,GAAG,IAAI,EACR,EAAE,kBAAkB,+BAqNpB;yBA/Oe,aAAa"}
1
+ {"version":3,"file":"CheckboxInput.d.ts","sourceRoot":"","sources":["../../src/CheckboxInput/CheckboxInput.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAOL,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAS3C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAG9C,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAqFhD,QAAA,MAAM,iBAAiB;;;;;;;;;EASrB,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAE/D,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IACrE,wDAAwD;IACxD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAClC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACxE;;OAEG;IACH,YAAY,CAAC,EAAE,CACb,OAAO,EAAE,OAAO,EAChB,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAC7B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,KAAK,EAAE,OAAO,GAAG,eAAe,CAAC;IACjC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACpD;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACnD;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IACjC;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAOD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,aAAqB,EACrB,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,SAAiB,EACjB,KAAK,EACL,UAAkB,EAClB,QAAQ,EACR,eAAe,EACf,UAAkB,EAClB,UAAkB,EAClB,UAAkB,EAClB,IAAW,EACX,OAAO,EACP,MAAM,EACN,SAAS,EACT,MAAM,EACN,KAAK,EACL,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,kBAAkB,EAAE,mBAAmB,EACvC,GAAG,IAAI,EACR,EAAE,kBAAkB,+BAyNpB;yBAnPe,aAAa"}
@@ -18,12 +18,13 @@
18
18
  import { useId, useCallback, use, useOptimistic, useRef, useTransition } from 'react';
19
19
  import * as stylex from '@stylexjs/stylex';
20
20
  import "../theme/tokens.stylex.js";
21
- import { colorVars, spacingVars, typographyVars, typeScaleVars, fontWeightVars } from "../theme/tokens.stylex.js";
21
+ import { colorVars, spacingVars, radiusVars, typographyVars, typeScaleVars, fontWeightVars } from "../theme/tokens.stylex.js";
22
22
  import { FieldLabel } from "../Field/FieldLabel.js";
23
23
  import { FieldStatus } from "../FieldStatus/FieldStatus.js";
24
24
  import { Spinner } from "../Spinner/index.js";
25
25
  import { useTooltip } from "../Tooltip/index.js";
26
26
  import { mergeProps, rtlStyles } from "../utils/index.js";
27
+ import "../Indicator/indicator.markers.stylex.js";
27
28
  import { indicatorScope } from "../Indicator/indicator.markers.stylex.js";
28
29
  import { useIndicatorFocusRing } from "../hooks/useIndicatorFocusRing.js";
29
30
  import { useResolvedRequired } from "../hooks/useResolvedRequired.js";
@@ -52,6 +53,15 @@ const styles = {
52
53
  kHBbk8: "xc8icb0",
53
54
  $$css: true
54
55
  },
56
+ indicatorPressOverlay: {
57
+ k5JduY: "x1s928wv",
58
+ kwXMNM: "x1j6awrg",
59
+ kv0HGH: "xarstr8",
60
+ kUfP38: "xtb6wbx",
61
+ kloYau: "x2q1x1w",
62
+ ks3ayO: "xyhc2n1 xzywxsk",
63
+ $$css: true
64
+ },
55
65
  input: {
56
66
  kVAEAm: "x10l6tqk",
57
67
  k87sOh: "xwa60dl",
@@ -236,7 +246,7 @@ export function CheckboxInput({
236
246
  // marker rather than props, so the whole row drives it.
237
247
  !isDisabled && indicatorScope),
238
248
  children: [/*#__PURE__*/_jsxs("div", {
239
- ...stylex.props(styles.checkboxWrapper, wrapperSizeStyles[size]),
249
+ ...stylex.props(styles.checkboxWrapper, wrapperSizeStyles[size], !isDisabled && styles.indicatorPressOverlay),
240
250
  ...focusProps,
241
251
  children: [/*#__PURE__*/_jsx("input", {
242
252
  ...rest,
@@ -1 +1 @@
1
- {"version":3,"file":"Collapsible.d.ts","sourceRoot":"","sources":["../../src/Collapsible/Collapsible.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAa,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAejD,OAAO,KAAK,EAAC,0BAA0B,EAAC,MAAM,2BAA2B,CAAC;AAG1E,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA0J5C,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;;OAGG;IACH,OAAO,EAAE,SAAS,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAEzC;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,EAAE,0BAA0B,CAAC;IAE7C;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,QAAQ,EACR,aAAa,EACb,MAAM,EAAE,gBAAgB,EACxB,UAAkB,EAClB,YAAY,EACZ,eAAe,EACf,KAAK,EACL,GAAG,EACH,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,gBAAgB,+BA0HlB;yBAxIe,WAAW"}
1
+ {"version":3,"file":"Collapsible.d.ts","sourceRoot":"","sources":["../../src/Collapsible/Collapsible.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAa,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAejD,OAAO,KAAK,EAAC,0BAA0B,EAAC,MAAM,2BAA2B,CAAC;AAG1E,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA2J5C,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;;OAGG;IACH,OAAO,EAAE,SAAS,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAEzC;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,EAAE,0BAA0B,CAAC;IAE7C;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,QAAQ,EACR,aAAa,EACb,MAAM,EAAE,gBAAgB,EACxB,UAAkB,EAClB,YAAY,EACZ,eAAe,EACf,KAAK,EACL,GAAG,EACH,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,gBAAgB,+BA8HlB;yBA5Ie,WAAW"}
@@ -36,6 +36,7 @@ import { Icon } from "../Icon/index.js";
36
36
  import { mergeProps } from "../utils/index.js";
37
37
  import { themeProps } from "../utils/themeProps.js";
38
38
  import { focusOutlineProps } from "../utils/focusOutline.stylex.js";
39
+ import { interactionOverlayStyles } from "../utils/interactionOverlay.stylex.js";
39
40
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
40
41
  const styles = {
41
42
  root: {
@@ -282,7 +283,11 @@ export function Collapsible({
282
283
  tabIndex: isDisabled ? -1 : undefined,
283
284
  ...mergeProps(themeProps('collapsible-trigger', {
284
285
  density: density ?? undefined
285
- }), focusOutlineProps.focusVisible(styles.trigger, density != null && triggerDensity[density], isDisabled && styles.triggerDisabled)),
286
+ }), focusOutlineProps.focusVisible(styles.trigger, density != null && triggerDensity[density],
287
+ // The system's pressed overlay on the disclosure row. The trigger
288
+ // has no hover surface of its own, so this is the one background
289
+ // it paints, and only while it is pressed.
290
+ !isDisabled && interactionOverlayStyles.pressedBackgroundColor, isDisabled && styles.triggerDisabled)),
286
291
  children: [isChevronAtStart && chevron, /*#__PURE__*/_jsx("span", {
287
292
  ...{
288
293
  className: "x1b2iylo xwgcxoh x1iyjqo2"
package/dist/Kbd/Kbd.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @file Kbd.tsx
3
- * @input Uses React, StyleX, theme tokens
4
- * @output Exports Kbd component and KbdProps
3
+ * @input Uses React, StyleX, theme tokens, shortcut key names and aliases
4
+ * @output Exports Kbd component and KbdProps with canonical shortcut labels
5
5
  * @position Core implementation; renders styled keyboard shortcut indicators
6
6
  *
7
7
  * SYNC: When modified, update:
@@ -14,7 +14,9 @@ export interface KbdProps extends BaseProps<HTMLSpanElement> {
14
14
  ref?: React.Ref<HTMLSpanElement>;
15
15
  /**
16
16
  * Keyboard shortcut string. Use "+" to separate keys.
17
- * Special keys: mod (Cmd on Mac), ctrl, alt, shift, enter, backspace, escape.
17
+ * Special keys: mod (Cmd on Mac), ctrl, alt, shift, enter, backspace, escape,
18
+ * tab, up, down, left, and right.
19
+ * Aliases: "esc" for "escape" and "return" for "enter".
18
20
  * Use "plus" to render a literal "+" key (e.g. "shift+plus").
19
21
  *
20
22
  * @example
@@ -1 +1 @@
1
- {"version":3,"file":"Kbd.d.ts","sourceRoot":"","sources":["../../src/Kbd/Kbd.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AAEH,OAAO,KAA6B,MAAM,OAAO,CAAC;AAIlD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA0G5C,MAAM,WAAW,QAAS,SAAQ,SAAS,CAAC,eAAe,CAAC;IAC1D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACjC;;;;;;;;;;;;OAYG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,GAAG,CAAC,EAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,EAAC,EAAE,QAAQ,qBAgC3E;yBAhCe,GAAG"}
1
+ {"version":3,"file":"Kbd.d.ts","sourceRoot":"","sources":["../../src/Kbd/Kbd.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AAEH,OAAO,KAA6B,MAAM,OAAO,CAAC;AAIlD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA+G5C,MAAM,WAAW,QAAS,SAAQ,SAAS,CAAC,eAAe,CAAC;IAC1D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACjC;;;;;;;;;;;;;;OAcG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,GAAG,CAAC,EAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,EAAC,EAAE,QAAQ,qBA6C3E;yBA7Ce,GAAG"}
package/dist/Kbd/Kbd.js CHANGED
@@ -4,8 +4,8 @@
4
4
 
5
5
  /**
6
6
  * @file Kbd.tsx
7
- * @input Uses React, StyleX, theme tokens
8
- * @output Exports Kbd component and KbdProps
7
+ * @input Uses React, StyleX, theme tokens, shortcut key names and aliases
8
+ * @output Exports Kbd component and KbdProps with canonical shortcut labels
9
9
  * @position Core implementation; renders styled keyboard shortcut indicators
10
10
  *
11
11
  * SYNC: When modified, update:
@@ -35,26 +35,20 @@ const styles = {
35
35
  * Note: `mod` is not in this map — it resolves dynamically via platform
36
36
  * detection inside the component.
37
37
  */
38
- const KEY_DISPLAY = {
39
- ctrl: '\u2303',
40
- // ⌃
41
- alt: '\u2325',
42
- // ⌥
43
- shift: '\u21E7',
44
- // ⇧
45
- enter: '\u21B5',
46
- // ↵
47
- backspace: '\u232B',
48
- // ⌫
49
- escape: 'Esc',
50
- tab: '\u21E5',
51
- // ⇥
52
- up: '\u2191',
53
- down: '\u2193',
54
- left: '\u2190',
55
- right: '\u2192',
56
- plus: '+'
57
- };
38
+ const KEY_DISPLAY = new Map([['ctrl', '\u2303'],
39
+ // ⌃
40
+ ['alt', '\u2325'],
41
+ // ⌥
42
+ ['shift', '\u21E7'],
43
+ // ⇧
44
+ ['enter', '\u21B5'],
45
+ // ↵
46
+ ['backspace', '\u232B'],
47
+ // ⌫
48
+ ['escape', 'Esc'], ['tab', '\u21E5'],
49
+ // ⇥
50
+ ['up', '\u2191'], ['down', '\u2193'], ['left', '\u2190'], ['right', '\u2192'], ['plus', '+']]);
51
+ const KBD_KEY_ALIASES = new Map([['esc', 'escape'], ['return', 'enter']]);
58
52
 
59
53
  /**
60
54
  * Resolves a key name to its display string. Handles the platform-aware
@@ -65,7 +59,7 @@ function getKeyDisplay(key, isMac) {
65
59
  if (key === 'mod') {
66
60
  return isMac ? '\u2318' : 'Ctrl';
67
61
  }
68
- return KEY_DISPLAY[key] ?? key.toUpperCase();
62
+ return KEY_DISPLAY.get(key) ?? key.toUpperCase();
69
63
  }
70
64
 
71
65
  /**
@@ -73,25 +67,12 @@ function getKeyDisplay(key, isMac) {
73
67
  * (⌘, ⇧, ↵, …) that assistive tech cannot announce meaningfully, so the
74
68
  * accessible name for the shortcut is built from these words instead.
75
69
  */
76
- const KEY_LABEL = {
77
- ctrl: 'Control',
78
- alt: 'Alt',
79
- shift: 'Shift',
80
- enter: 'Enter',
81
- backspace: 'Backspace',
82
- escape: 'Escape',
83
- tab: 'Tab',
84
- up: 'Up arrow',
85
- down: 'Down arrow',
86
- left: 'Left arrow',
87
- right: 'Right arrow',
88
- plus: 'Plus'
89
- };
70
+ const KEY_LABEL = new Map([['ctrl', 'Control'], ['alt', 'Alt'], ['shift', 'Shift'], ['enter', 'Enter'], ['backspace', 'Backspace'], ['escape', 'Escape'], ['tab', 'Tab'], ['up', 'Up arrow'], ['down', 'Down arrow'], ['left', 'Left arrow'], ['right', 'Right arrow'], ['plus', 'Plus']]);
90
71
  function getKeyLabel(key, isMac) {
91
72
  if (key === 'mod') {
92
73
  return isMac ? 'Command' : 'Control';
93
74
  }
94
- return KEY_LABEL[key] ?? key.toUpperCase();
75
+ return KEY_LABEL.get(key) ?? key.toUpperCase();
95
76
  }
96
77
  function subscribeToPlatformChanges() {
97
78
  return () => {};
@@ -123,24 +104,37 @@ export function Kbd({
123
104
  ...rest
124
105
  }) {
125
106
  const isMac = useSyncExternalStore(subscribeToPlatformChanges, isApplePlatform, getServerPlatformSnapshot);
126
- const parts = keys.split('+').map(key => key.trim().toLowerCase());
107
+ const keyOccurrences = new Map();
108
+ const parts = keys.split('+').map(key => key.trim().toLowerCase()).map(sourceKey => {
109
+ const occurrence = keyOccurrences.get(sourceKey) ?? 0;
110
+ keyOccurrences.set(sourceKey, occurrence + 1);
111
+ return {
112
+ key: KBD_KEY_ALIASES.get(sourceKey) ?? sourceKey,
113
+ reactKey: `${sourceKey}:${occurrence}`
114
+ };
115
+ });
127
116
 
128
117
  // Screen-reader name: the joined spoken labels (e.g. "Command + K"), since
129
118
  // the visual glyphs below are announced meaninglessly by assistive tech.
130
- const accessibleName = parts.map(key => getKeyLabel(key, isMac)).join(' + ');
119
+ const accessibleName = parts.map(({
120
+ key
121
+ }) => getKeyLabel(key, isMac)).join(' + ');
131
122
  return /*#__PURE__*/_jsx("span", {
132
123
  ...rest,
133
124
  ref: ref,
134
125
  role: "img",
135
126
  "aria-label": accessibleName,
136
127
  ...mergeProps(themeProps('kbd'), stylex.props(styles.wrapper, xstyle), className, style),
137
- children: parts.map(key => /*#__PURE__*/_jsx("kbd", {
128
+ children: parts.map(({
129
+ key,
130
+ reactKey
131
+ }) => /*#__PURE__*/_jsx("kbd", {
138
132
  "aria-hidden": "true",
139
133
  ...{
140
134
  className: "x3nfvp2 x6s0dn4 xl56j7k x16asifk x1grt7ep x7a5moj xx3sua9 x17x4s8c xlxy82 x1q0q8m5 xib2hle xv1l7n4 x9ynric x141an7d x1e4wzip x1ltkj2j x87ps6o"
141
135
  },
142
136
  children: getKeyDisplay(key, isMac)
143
- }, key))
137
+ }, reactKey))
144
138
  });
145
139
  }
146
140
  Kbd.displayName = 'Kbd';
@@ -1 +1 @@
1
- {"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../src/Link/Link.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAc5C,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,SAAS,CAAC;AAmG/C,MAAM,WAAW,SAAU,SAAQ,SAAS,CAC1C,iBAAiB,GAAG,iBAAiB,CACtC;IACC,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,CAAC;IACvD;;;;;OAKG;IACH,EAAE,CAAC,EAAE,iBAAiB,CAAC;IACvB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,2BAA2B,CAAC;IACnD;;;OAGG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,CAAC;IACzE;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;OAEG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;CACrB;AAWD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,IAAI,CAAC,EACnB,EAAE,EACF,KAAK,EACL,IAAI,EACJ,YAAoB,EACpB,UAAkB,EAClB,cAAsB,EACtB,WAAW,EAAE,oBAAoB,EACjC,MAAM,EAAE,eAAe,EACvB,OAAO,EACP,OAAO,EACP,YAAoB,EACpB,IAAa,EACb,IAAI,EACJ,MAAM,EACN,KAAgB,EAChB,OAAkB,EAClB,QAAY,EACZ,QAAQ,EACR,GAAG,EAAE,YAAY,EACjB,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,SAAS,+BAyIX;yBAlKe,IAAI"}
1
+ {"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../src/Link/Link.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAc5C,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,SAAS,CAAC;AAoG/C,MAAM,WAAW,SAAU,SAAQ,SAAS,CAC1C,iBAAiB,GAAG,iBAAiB,CACtC;IACC,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,CAAC;IACvD;;;;;OAKG;IACH,EAAE,CAAC,EAAE,iBAAiB,CAAC;IACvB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,2BAA2B,CAAC;IACnD;;;OAGG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,CAAC;IACzE;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;OAEG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;CACrB;AAWD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,IAAI,CAAC,EACnB,EAAE,EACF,KAAK,EACL,IAAI,EACJ,YAAoB,EACpB,UAAkB,EAClB,cAAsB,EACtB,WAAW,EAAE,oBAAoB,EACjC,MAAM,EAAE,eAAe,EACvB,OAAO,EACP,OAAO,EACP,YAAoB,EACpB,IAAa,EACb,IAAI,EACJ,MAAM,EACN,KAAgB,EAChB,OAAkB,EAClB,QAAY,EACZ,QAAQ,EACR,GAAG,EAAE,YAAY,EACjB,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,SAAS,+BA6IX;yBAtKe,IAAI"}
package/dist/Link/Link.js CHANGED
@@ -28,6 +28,7 @@ import { computeTargetAndRel } from "./computeTargetAndRel.js";
28
28
  import { useInteractiveRole } from "../hooks/useInteractiveRole.js";
29
29
  import { themeProps } from "../utils/themeProps.js";
30
30
  import { focusOutlineProps } from "../utils/focusOutline.stylex.js";
31
+ import { interactionOverlayStyles } from "../utils/interactionOverlay.stylex.js";
31
32
  import { useTranslator } from "../i18n/index.js";
32
33
 
33
34
  /**
@@ -206,7 +207,10 @@ export function Link({
206
207
  disabled: isDisabled,
207
208
  ...mergeProps(themeProps('link', {
208
209
  color
209
- }), focusOutlineProps.focusVisible(styles.base, styles.buttonReset, linkColorStyles[color], hasUnderline && styles.hasUnderline, isStandalone && styles.standalone, isDisabled && styles.disabled, xstyle), className, style),
210
+ }), focusOutlineProps.focusVisible(styles.base, styles.buttonReset, linkColorStyles[color],
211
+ // The system's pressed overlay behind the text; the hover stays the
212
+ // colour change above, so a press is the one background it paints.
213
+ !isDisabled && interactionOverlayStyles.pressedBackgroundColor, hasUnderline && styles.hasUnderline, isStandalone && styles.standalone, isDisabled && styles.disabled, xstyle), className, style),
210
214
  ...props,
211
215
  children: sharedContent
212
216
  });
@@ -241,7 +245,7 @@ export function Link({
241
245
  tabIndex: isDisabled ? -1 : undefined,
242
246
  ...mergeProps(themeProps('link', {
243
247
  color
244
- }), focusOutlineProps.focusVisible(styles.base, linkColorStyles[color], hasUnderline && styles.hasUnderline, isStandalone && styles.standalone, isDisabled && styles.disabled, xstyle), className, style),
248
+ }), focusOutlineProps.focusVisible(styles.base, linkColorStyles[color], !isDisabled && interactionOverlayStyles.pressedBackgroundColor, hasUnderline && styles.hasUnderline, isStandalone && styles.standalone, isDisabled && styles.disabled, xstyle), className, style),
245
249
  ...props,
246
250
  children: sharedContent
247
251
  });
@@ -2,6 +2,7 @@ import type React from 'react';
2
2
  import type { TextDisplay } from '../theme/types';
3
3
  import type { BaseProps } from '../BaseProps';
4
4
  import type { CitationSource } from '../Citation/Citation';
5
+ import type { MarkdownPluginEntry } from './plugins/protocol';
5
6
  /**
6
7
  * A plugin that transforms text patterns into custom React elements
7
8
  * inside Markdown. Applied to parsed text nodes only — code blocks,
@@ -79,7 +80,7 @@ export interface MarkdownComponents {
79
80
  }>;
80
81
  hr?: React.ComponentType<object>;
81
82
  }
82
- export interface MarkdownProps extends BaseProps<HTMLElement> {
83
+ export interface MarkdownProps<Plugins extends ReadonlyArray<MarkdownPluginEntry> = readonly []> extends BaseProps<HTMLElement> {
83
84
  ref?: React.Ref<HTMLDivElement> | React.Ref<HTMLSpanElement>;
84
85
  children: string;
85
86
  /**
@@ -137,6 +138,11 @@ export interface MarkdownProps extends BaseProps<HTMLElement> {
137
138
  * are unaffected. Patterns are matched in order; first match wins
138
139
  * for overlapping ranges.
139
140
  */
141
+ /** Ordered syntax, immutable transforms, and typed extension renderers. */
142
+ plugins?: Plugins;
143
+ /**
144
+ * Legacy text-match renderers. Unchanged and independent from `plugins`.
145
+ */
140
146
  inlinePlugins?: MarkdownInlinePlugin[];
141
147
  /**
142
148
  * Opt-in autolinking of bare URLs and emails inside text.
@@ -163,7 +169,7 @@ export interface MarkdownProps extends BaseProps<HTMLElement> {
163
169
  * </Markdown>
164
170
  * ```
165
171
  */
166
- export declare function Markdown({ ref, children, display, density, headingLevelStart, isStreaming, onLinkClick, sources, citationStyle, contentWidth, contentAlign, components, inlinePlugins, autolink, xstyle, className, style, 'data-testid': testId, ...props }: MarkdownProps): React.ReactElement;
172
+ export declare function Markdown<const Plugins extends ReadonlyArray<MarkdownPluginEntry> = readonly []>({ ref, children, display, density, headingLevelStart, isStreaming, onLinkClick, sources, citationStyle, contentWidth, contentAlign, components, plugins, inlinePlugins, autolink, xstyle, className, style, 'data-testid': testId, ...props }: MarkdownProps<Plugins>): React.ReactElement;
167
173
  export declare namespace Markdown {
168
174
  var displayName: string;
169
175
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["../../src/Markdown/Markdown.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["../../src/Markdown/Markdown.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Markdown.fr23.bench.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Markdown.fr23.bench.d.ts","sourceRoot":"","sources":["../../src/Markdown/Markdown.fr23.bench.ts"],"names":[],"mappings":""}