@astryxdesign/core 0.7.6-canary.f52dbbe → 0.7.6-canary.f67d5fa

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 (887) hide show
  1. package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -1
  2. package/dist/ComplexSelector/ComplexSelector.js +8 -2
  3. package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  4. package/dist/DateRangeInput/DateRangeInput.js +8 -4
  5. package/dist/FieldStatus/FieldStatus.d.ts +3 -0
  6. package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
  7. package/dist/FieldStatus/FieldStatus.js +1 -0
  8. package/dist/FileInput/FileInput.d.ts +3 -0
  9. package/dist/FileInput/FileInput.d.ts.map +1 -1
  10. package/dist/FileInput/FileInput.js +27 -12
  11. package/dist/Link/Link.d.ts.map +1 -1
  12. package/dist/Link/Link.js +10 -1
  13. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  14. package/dist/MultiSelector/MultiSelector.js +19 -9
  15. package/dist/Selector/Selector.d.ts.map +1 -1
  16. package/dist/Selector/Selector.js +9 -6
  17. package/dist/Selector/hooks.js +2 -2
  18. package/dist/Token/Token.d.ts +1 -1
  19. package/dist/Token/Token.d.ts.map +1 -1
  20. package/dist/Token/Token.js +15 -0
  21. package/dist/Typeahead/Typeahead.d.ts.map +1 -1
  22. package/dist/Typeahead/Typeahead.js +20 -9
  23. package/dist/astryx.css +1 -1
  24. package/dist/i18n/useListFormatter.d.ts +9 -0
  25. package/dist/i18n/useListFormatter.d.ts.map +1 -0
  26. package/dist/i18n/useListFormatter.js +41 -0
  27. package/package.json +18 -5
  28. package/src/Chat/ChatMessage.spec.md +64 -65
  29. package/src/Citation/Citation.spec.md +60 -47
  30. package/src/ComplexSelector/ComplexSelector.tsx +19 -2
  31. package/src/DateRangeInput/DateRangeInput.tsx +18 -3
  32. package/src/FieldStatus/FieldStatus.tsx +7 -0
  33. package/src/FileInput/FileInput.tsx +30 -5
  34. package/src/Lightbox/Lightbox.spec.md +249 -61
  35. package/src/Link/Link.tsx +9 -2
  36. package/src/MultiSelector/MultiSelector.spec.md +121 -114
  37. package/src/MultiSelector/MultiSelector.tsx +19 -5
  38. package/src/ProgressBar/ProgressBar.spec.md +143 -119
  39. package/src/Selector/Selector.tsx +16 -6
  40. package/src/Selector/hooks.ts +2 -2
  41. package/src/Token/Token.spec.md +24 -23
  42. package/src/Token/Token.tsx +15 -0
  43. package/src/Typeahead/Typeahead.tsx +30 -9
  44. package/src/i18n/useListFormatter.ts +42 -0
  45. package/dist/Item/ItemMarkerColumns.a11y.chromium.spec.d.ts +0 -2
  46. package/dist/Item/ItemMarkerColumns.a11y.chromium.spec.js +0 -132
  47. package/dist/Lightbox/LightboxKeyboard.a11y.browser.spec.d.ts +0 -2
  48. package/dist/Lightbox/LightboxKeyboard.a11y.browser.spec.js +0 -78
  49. package/dist/Lightbox/LightboxViewport.a11y.browser.spec.d.ts +0 -2
  50. package/dist/Lightbox/LightboxViewport.a11y.browser.spec.js +0 -66
  51. package/dist/List/ListMarkers.a11y.chromium.spec.d.ts +0 -2
  52. package/dist/List/ListMarkers.a11y.chromium.spec.js +0 -677
  53. package/dist/Markdown/Markdown.fr23.bench.d.ts +0 -2
  54. package/dist/Markdown/Markdown.fr23.bench.d.ts.map +0 -1
  55. package/dist/Markdown/Markdown.fr23.bench.js +0 -152
  56. package/dist/Markdown/MarkdownTable.a11y.chromium.spec.d.ts +0 -2
  57. package/dist/Markdown/MarkdownTable.a11y.chromium.spec.js +0 -590
  58. package/dist/Markdown/plugins/headingLinks.a11y.chromium.spec.d.ts +0 -2
  59. package/dist/Markdown/plugins/headingLinks.a11y.chromium.spec.js +0 -657
  60. package/dist/MobileNav/MobileNavPinchZoom.a11y.chromium.spec.d.ts +0 -2
  61. package/dist/MobileNav/MobileNavPinchZoom.a11y.chromium.spec.js +0 -153
  62. package/dist/MultiSelector/CreateRow.a11y.chromium.spec.d.ts +0 -2
  63. package/dist/MultiSelector/CreateRow.a11y.chromium.spec.js +0 -117
  64. package/dist/MultiSelector/MultiSelector.disabledFocus.a11y.chromium.spec.d.ts +0 -2
  65. package/dist/MultiSelector/MultiSelector.disabledFocus.a11y.chromium.spec.js +0 -49
  66. package/dist/MultiSelector/OptionActions.a11y.chromium.spec.d.ts +0 -2
  67. package/dist/MultiSelector/OptionActions.a11y.chromium.spec.js +0 -273
  68. package/dist/Outline/OutlineFocus.a11y.chromium.spec.d.ts +0 -2
  69. package/dist/Outline/OutlineFocus.a11y.chromium.spec.js +0 -421
  70. package/dist/Typeahead/BaseTypeahead.emptyState.a11y.chromium.spec.d.ts +0 -2
  71. package/dist/Typeahead/BaseTypeahead.emptyState.a11y.chromium.spec.js +0 -118
  72. package/dist/reset.a11y.chromium.spec.d.ts +0 -2
  73. package/dist/reset.a11y.chromium.spec.js +0 -231
  74. package/dist/reset.until-found.a11y.browser.spec.d.ts +0 -2
  75. package/dist/reset.until-found.a11y.browser.spec.js +0 -72
  76. package/src/AlertDialog/AlertDialog.test.tsx +0 -519
  77. package/src/AlertDialog/__tests__/AlertDialog.a11y.chromium.spec.ts +0 -128
  78. package/src/AlertDialog/__tests__/AlertDialog.a11y.renders.tsx +0 -52
  79. package/src/AlertDialog/__tests__/AlertDialog.a11y.states.ts +0 -68
  80. package/src/AlertDialog/__tests__/AlertDialog.a11y.test.tsx +0 -144
  81. package/src/AlertDialog/useImperativeAlertDialog.test.tsx +0 -163
  82. package/src/AppShell/AppShell.test.tsx +0 -1310
  83. package/src/AppShell/__tests__/AppShellMainKeyboard.a11y.browser.spec.ts +0 -534
  84. package/src/AppShell/observeMainOverflow.test.ts +0 -173
  85. package/src/AspectRatio/AspectRatio.test.tsx +0 -398
  86. package/src/AspectRatio/__tests__/AspectRatioFitLayers.a11y.browser.spec.ts +0 -158
  87. package/src/Avatar/Avatar.test.tsx +0 -867
  88. package/src/Avatar/AvatarStatusDot.test.tsx +0 -306
  89. package/src/Avatar/__tests__/AvatarForcedColors.a11y.chromium.spec.ts +0 -126
  90. package/src/AvatarGroup/AvatarGroup.test.tsx +0 -313
  91. package/src/AvatarGroup/AvatarGroupOverflow.test.tsx +0 -263
  92. package/src/Badge/Badge.test.tsx +0 -125
  93. package/src/Badge/__tests__/BadgeLargerText.a11y.chromium.spec.ts +0 -260
  94. package/src/Banner/Banner.test.tsx +0 -879
  95. package/src/Blockquote/Blockquote.test.tsx +0 -121
  96. package/src/BottomSheet/BottomSheet.test.tsx +0 -3154
  97. package/src/BottomSheet/BottomSheetEdgeTint.test.tsx +0 -248
  98. package/src/BottomSheet/BottomSheetKeyboard.test.tsx +0 -195
  99. package/src/BottomSheet/BottomSheetPanel.test.tsx +0 -549
  100. package/src/BottomSheet/BottomSheetReplace.test.tsx +0 -1638
  101. package/src/BottomSheet/BottomSheetStacking.announce.test.tsx +0 -246
  102. package/src/BottomSheet/BottomSheetStacking.test.tsx +0 -3184
  103. package/src/BottomSheet/BottomSheetSwitcher.test.tsx +0 -2010
  104. package/src/BottomSheet/__tests__/BottomSheetDrag.a11y.chromium.spec.ts +0 -129
  105. package/src/BottomSheet/__tests__/BottomSheetFocusReturn.a11y.browser.spec.ts +0 -97
  106. package/src/BottomSheet/__tests__/BottomSheetKeyboard.a11y.browser.spec.ts +0 -415
  107. package/src/BottomSheet/__tests__/BottomSheetNativeModal.a11y.browser.spec.ts +0 -462
  108. package/src/BottomSheet/__tests__/BottomSheetPinchZoom.a11y.chromium.spec.ts +0 -247
  109. package/src/BottomSheet/__tests__/BottomSheetToastOutlet.a11y.chromium.spec.ts +0 -83
  110. package/src/BottomSheet/snapOffsets.test.ts +0 -254
  111. package/src/BottomSheet/useSheetGestures.test.ts +0 -1690
  112. package/src/Breadcrumbs/Breadcrumbs.test.tsx +0 -921
  113. package/src/Breadcrumbs/__tests__/Breadcrumbs.a11y.chromium.spec.ts +0 -132
  114. package/src/Breadcrumbs/__tests__/Breadcrumbs.a11y.renders.tsx +0 -45
  115. package/src/Breadcrumbs/__tests__/Breadcrumbs.a11y.states.ts +0 -81
  116. package/src/Breadcrumbs/__tests__/Breadcrumbs.a11y.test.tsx +0 -125
  117. package/src/Button/Button.test.tsx +0 -864
  118. package/src/Button/__tests__/Button.a11y.chromium.spec.ts +0 -355
  119. package/src/Button/__tests__/Button.a11y.harnesses.tsx +0 -47
  120. package/src/Button/__tests__/Button.a11y.known-failures.ts +0 -25
  121. package/src/Button/__tests__/Button.a11y.renders.tsx +0 -139
  122. package/src/Button/__tests__/Button.a11y.states.ts +0 -317
  123. package/src/Button/__tests__/Button.a11y.test.tsx +0 -187
  124. package/src/ButtonGroup/ButtonGroup.test.tsx +0 -1025
  125. package/src/Calendar/Calendar.test.tsx +0 -2186
  126. package/src/Calendar/__tests__/Calendar.a11y.chromium.spec.ts +0 -141
  127. package/src/Calendar/__tests__/Calendar.a11y.known-failures.ts +0 -12
  128. package/src/Calendar/__tests__/Calendar.a11y.renders.tsx +0 -57
  129. package/src/Calendar/__tests__/Calendar.a11y.states.ts +0 -139
  130. package/src/Calendar/__tests__/Calendar.a11y.test.tsx +0 -137
  131. package/src/Calendar/dayCellUtils.test.ts +0 -520
  132. package/src/Calendar/getInitialFocusDate.test.ts +0 -94
  133. package/src/Calendar/getStandaloneShortWeekdayNames.test.ts +0 -54
  134. package/src/Calendar/hooks/useCalendarConstraints.test.ts +0 -153
  135. package/src/Calendar/hooks/useCalendarDays.test.ts +0 -265
  136. package/src/Calendar/hooks/useCalendarNavigation.test.ts +0 -252
  137. package/src/Card/Card.test.tsx +0 -202
  138. package/src/Carousel/Carousel.test.tsx +0 -1036
  139. package/src/Carousel/__tests__/Carousel.a11y.chromium.spec.ts +0 -207
  140. package/src/Carousel/__tests__/Carousel.a11y.known-failures.ts +0 -12
  141. package/src/Carousel/__tests__/Carousel.a11y.renders.tsx +0 -39
  142. package/src/Carousel/__tests__/Carousel.a11y.states.ts +0 -139
  143. package/src/Carousel/__tests__/Carousel.a11y.test.tsx +0 -127
  144. package/src/Center/Center.test.tsx +0 -406
  145. package/src/Chat/ChatComposer.test.tsx +0 -364
  146. package/src/Chat/ChatComposerDrawer.test.tsx +0 -130
  147. package/src/Chat/ChatComposerInput.test.tsx +0 -2136
  148. package/src/Chat/ChatComposerTokenElement.test.tsx +0 -85
  149. package/src/Chat/ChatDictationButton.test.tsx +0 -108
  150. package/src/Chat/ChatLayout.test.tsx +0 -311
  151. package/src/Chat/ChatLayoutScrollButton.test.tsx +0 -99
  152. package/src/Chat/ChatMessage.test.tsx +0 -344
  153. package/src/Chat/ChatMessageBubble.test.tsx +0 -294
  154. package/src/Chat/ChatMessageList.test.tsx +0 -198
  155. package/src/Chat/ChatMessageMetadata.test.tsx +0 -66
  156. package/src/Chat/ChatPastedTextToken.test.tsx +0 -71
  157. package/src/Chat/ChatSendButton.test.tsx +0 -309
  158. package/src/Chat/ChatSystemMessage.test.tsx +0 -189
  159. package/src/Chat/ChatTokenizedText.test.tsx +0 -163
  160. package/src/Chat/ChatToolCalls.test.tsx +0 -413
  161. package/src/Chat/__tests__/ChatLayoutScrollButton.a11y.chromium.spec.ts +0 -577
  162. package/src/Chat/__tests__/ChatLayoutScrollButtonSurface.a11y.chromium.spec.ts +0 -740
  163. package/src/Chat/__tests__/ChatMessageBubble.a11y.chromium.spec.ts +0 -457
  164. package/src/Chat/__tests__/ChatMessageBubble.auditProvenance.test.ts +0 -91
  165. package/src/Chat/__tests__/ChatMessageBubble.auditProvenance.ts +0 -91
  166. package/src/Chat/__tests__/ChatMessageList.a11y.chromium.spec.ts +0 -465
  167. package/src/Chat/__tests__/ChatMessageMetadata.a11y.chromium.spec.ts +0 -416
  168. package/src/Chat/__tests__/ChatSendButton.a11y.chromium.spec.ts +0 -1523
  169. package/src/Chat/__tests__/ChatSystemMessage.a11y.chromium.spec.ts +0 -1004
  170. package/src/Chat/__tests__/ChatTokenizedText.a11y.chromium.spec.ts +0 -574
  171. package/src/Chat/__tests__/useChatStreamScroll.a11y.chromium.spec.ts +0 -263
  172. package/src/Chat/__tests__/useChatStreamScroll.fixture.tsx +0 -61
  173. package/src/Chat/useChatDictation.test.tsx +0 -369
  174. package/src/Chat/useChatNewMessages.test.tsx +0 -209
  175. package/src/Chat/useChatPasteAsToken.test.ts +0 -191
  176. package/src/Chat/useChatStreamScroll.test.tsx +0 -381
  177. package/src/Chat/useTriggerMenu.test.tsx +0 -994
  178. package/src/CheckboxInput/CheckboxInput.test.tsx +0 -926
  179. package/src/CheckboxInput/__tests__/Checkbox.a11y.chromium.spec.ts +0 -354
  180. package/src/CheckboxInput/__tests__/Checkbox.a11y.known-failures.ts +0 -54
  181. package/src/CheckboxInput/__tests__/Checkbox.a11y.renders.tsx +0 -310
  182. package/src/CheckboxInput/__tests__/Checkbox.a11y.states.ts +0 -404
  183. package/src/CheckboxInput/__tests__/Checkbox.a11y.test.tsx +0 -128
  184. package/src/CheckboxList/CheckboxList.fr10.test.tsx +0 -51
  185. package/src/CheckboxList/CheckboxList.test.tsx +0 -1159
  186. package/src/CheckboxList/__tests__/CheckboxList.a11y.chromium.spec.ts +0 -1998
  187. package/src/Citation/Citation.test.tsx +0 -361
  188. package/src/ClickableCard/ClickableCard.test.tsx +0 -382
  189. package/src/Code/Code.test.tsx +0 -75
  190. package/src/CodeBlock/CodeBlock.highlightStyles.test.tsx +0 -87
  191. package/src/CodeBlock/CodeBlock.test.tsx +0 -752
  192. package/src/CodeBlock/CodeLanguage.test.tsx +0 -173
  193. package/src/CodeBlock/__tests__/CodeBlockCopyClearance.a11y.chromium.spec.ts +0 -325
  194. package/src/CodeBlock/__tests__/CodeBlockLanguages.a11y.chromium.spec.ts +0 -64
  195. package/src/CodeBlock/__tests__/CodeBlockOverflowStop.a11y.chromium.spec.ts +0 -126
  196. package/src/CodeBlock/__tests__/DiffRowPaint.a11y.chromium.spec.ts +0 -94
  197. package/src/CodeBlock/highlightRanges.test.ts +0 -253
  198. package/src/CodeBlock/languages.test.ts +0 -402
  199. package/src/CodeBlock/tokenizer.test.ts +0 -280
  200. package/src/CodeBlock/tokenizerBudget.test.ts +0 -112
  201. package/src/Collapsible/Collapsible.test.tsx +0 -620
  202. package/src/Collapsible/CollapsibleGroup.test.tsx +0 -656
  203. package/src/Collapsible/__tests__/Collapsible.a11y.chromium.spec.ts +0 -194
  204. package/src/Collapsible/__tests__/Collapsible.a11y.states.ts +0 -117
  205. package/src/Collapsible/__tests__/Collapsible.a11y.test.tsx +0 -140
  206. package/src/Collapsible/__tests__/CollapsibleGroup.a11y.chromium.spec.ts +0 -559
  207. package/src/Collapsible/__tests__/CollapsibleGroup.a11y.renders.tsx +0 -45
  208. package/src/Collapsible/__tests__/CollapsibleGroup.a11y.states.ts +0 -139
  209. package/src/Collapsible/__tests__/CollapsibleGroup.a11y.test.tsx +0 -135
  210. package/src/Collapsible/__tests__/CollapsibleGroupAccordion.a11y.chromium.spec.ts +0 -141
  211. package/src/Collapsible/useCollapsible.test.tsx +0 -236
  212. package/src/CommandPalette/CommandPalette.perf.test.ts +0 -100
  213. package/src/CommandPalette/CommandPalette.test.tsx +0 -750
  214. package/src/CommandPalette/CommandPaletteEmpty.test.tsx +0 -101
  215. package/src/CommandPalette/CommandPaletteFooter.test.tsx +0 -122
  216. package/src/CommandPalette/CommandPaletteGroup.test.tsx +0 -129
  217. package/src/CommandPalette/CommandPaletteInput.test.tsx +0 -539
  218. package/src/CommandPalette/CommandPaletteItem.test.tsx +0 -417
  219. package/src/CommandPalette/CommandPaletteList.test.tsx +0 -184
  220. package/src/CommandPalette/__tests__/CommandPalette.a11y.chromium.spec.ts +0 -600
  221. package/src/CommandPalette/__tests__/CommandPaletteEmptyAudit.a11y.chromium.spec.ts +0 -715
  222. package/src/CommandPalette/__tests__/CommandPaletteFooter.a11y.chromium.spec.ts +0 -582
  223. package/src/CommandPalette/__tests__/CommandPaletteInputAudit.a11y.chromium.spec.ts +0 -336
  224. package/src/CommandPalette/__tests__/CommandPaletteItemAudit.a11y.chromium.spec.ts +0 -523
  225. package/src/ComplexSelector/ComplexSelector.focusableDisabled.test.tsx +0 -76
  226. package/src/ComplexSelector/ComplexSelector.fr10.test.tsx +0 -262
  227. package/src/ComplexSelector/ComplexSelector.test.tsx +0 -1171
  228. package/src/ComplexSelector/__tests__/ComplexSelector.a11y.chromium.spec.ts +0 -965
  229. package/src/ContextMenu/ContextMenu.test.tsx +0 -1617
  230. package/src/ContextMenu/ContextMenu.triggerProps.test.tsx +0 -54
  231. package/src/ContextMenu/__tests__/ContextMenuAudit.a11y.chromium.spec.ts +0 -439
  232. package/src/ContextMenu/__tests__/ContextMenuCursorAnchor.a11y.browser.spec.ts +0 -154
  233. package/src/ContextMenu/__tests__/ContextMenuLongPress.a11y.chromium.spec.ts +0 -117
  234. package/src/DateInput/DateInput.fr10.test.tsx +0 -283
  235. package/src/DateInput/DateInput.test.tsx +0 -1571
  236. package/src/DateInput/DateInputTouch.test.tsx +0 -2948
  237. package/src/DateInput/MonthScrollerSettle.test.tsx +0 -165
  238. package/src/DateInput/NativeDateField.test.tsx +0 -741
  239. package/src/DateInput/Presentation.test.tsx +0 -121
  240. package/src/DateInput/__tests__/DateInputAudit.a11y.chromium.spec.ts +0 -577
  241. package/src/DateInput/__tests__/MonthScrollerSteps.interaction.browser.spec.ts +0 -312
  242. package/src/DateInput/__tests__/WheelPinchZoom.a11y.chromium.spec.ts +0 -171
  243. package/src/DateRangeInput/DateRangeInput.fr10.test.tsx +0 -165
  244. package/src/DateRangeInput/DateRangeInput.test.tsx +0 -1151
  245. package/src/DateTimeInput/DateTimeInput.fr10.test.tsx +0 -319
  246. package/src/DateTimeInput/DateTimeInput.test.tsx +0 -2656
  247. package/src/DateTimeInput/DateTimeInputTouch.test.tsx +0 -1071
  248. package/src/DateTimeInput/NativePickerSegments.test.tsx +0 -657
  249. package/src/DateTimeInput/Presentation.test.tsx +0 -89
  250. package/src/Dialog/Dialog.source-build.test.mjs +0 -43
  251. package/src/Dialog/Dialog.test.tsx +0 -1599
  252. package/src/Dialog/DialogHeader.test.tsx +0 -477
  253. package/src/Dialog/__tests__/Dialog.a11y.browser.spec.ts +0 -111
  254. package/src/Dialog/__tests__/Dialog.a11y.chromium.spec.ts +0 -218
  255. package/src/Dialog/__tests__/Dialog.a11y.known-failures.ts +0 -28
  256. package/src/Dialog/__tests__/Dialog.a11y.renders.tsx +0 -107
  257. package/src/Dialog/__tests__/Dialog.a11y.states.ts +0 -104
  258. package/src/Dialog/__tests__/Dialog.a11y.test.tsx +0 -102
  259. package/src/Dialog/__tests__/Dialog.reduced-motion.a11y.browser.spec.ts +0 -252
  260. package/src/Dialog/__tests__/DialogSecondDocument.a11y.browser.spec.ts +0 -202
  261. package/src/Dialog/useImperativeDialog.test.tsx +0 -78
  262. package/src/Divider/Divider.test.tsx +0 -155
  263. package/src/Drawer/Drawer.test.tsx +0 -1335
  264. package/src/Drawer/DrawerDirection.test.tsx +0 -127
  265. package/src/Drawer/DrawerHeader.test.tsx +0 -102
  266. package/src/Drawer/__tests__/DrawerAudit.a11y.chromium.spec.ts +0 -402
  267. package/src/Drawer/__tests__/DrawerHeaderAudit.a11y.chromium.spec.ts +0 -298
  268. package/src/Drawer/__tests__/DrawerNonModalPageScroll.a11y.chromium.spec.ts +0 -267
  269. package/src/DropdownMenu/DropdownMenu.ssr.test.tsx +0 -93
  270. package/src/DropdownMenu/DropdownMenu.test.tsx +0 -4498
  271. package/src/DropdownMenu/DropdownMenuContext.public.test.ts +0 -22
  272. package/src/DropdownMenu/DropdownMenuLazySheet.test.tsx +0 -126
  273. package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +0 -635
  274. package/src/DropdownMenu/DropdownMenuSheetFirstOpen.test.tsx +0 -72
  275. package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +0 -2442
  276. package/src/DropdownMenu/__tests__/DropdownMenuDividerAudit.a11y.chromium.spec.ts +0 -281
  277. package/src/DropdownMenu/__tests__/DropdownMenuDrillIn.a11y.chromium.spec.ts +0 -175
  278. package/src/DropdownMenu/__tests__/DropdownMenuFocusReturn.a11y.browser.spec.ts +0 -74
  279. package/src/DropdownMenu/__tests__/DropdownMenuGroupAudit.a11y.chromium.spec.ts +0 -335
  280. package/src/DropdownMenu/__tests__/DropdownMenuItemAudit.a11y.chromium.spec.ts +0 -367
  281. package/src/DropdownMenu/__tests__/DropdownMenuRadioGroupAudit.a11y.chromium.spec.ts +0 -328
  282. package/src/DropdownMenu/__tests__/DropdownMenuRadioItemAudit.a11y.chromium.spec.ts +0 -540
  283. package/src/DropdownMenu/__tests__/DropdownMenuSubMenuAudit.a11y.chromium.spec.ts +0 -671
  284. package/src/DropdownMenu/__tests__/Menu.a11y.chromium.spec.ts +0 -158
  285. package/src/DropdownMenu/__tests__/Menu.a11y.known-failures.ts +0 -26
  286. package/src/DropdownMenu/__tests__/Menu.a11y.renders.tsx +0 -65
  287. package/src/DropdownMenu/__tests__/Menu.a11y.states.ts +0 -138
  288. package/src/DropdownMenu/__tests__/Menu.a11y.test.tsx +0 -136
  289. package/src/DropdownMenu/__tests__/MenuButton.a11y.chromium.spec.ts +0 -149
  290. package/src/DropdownMenu/__tests__/MenuButton.a11y.known-failures.ts +0 -12
  291. package/src/DropdownMenu/__tests__/MenuButton.a11y.renders.tsx +0 -67
  292. package/src/DropdownMenu/__tests__/MenuButton.a11y.states.ts +0 -141
  293. package/src/DropdownMenu/__tests__/MenuButton.a11y.test.tsx +0 -138
  294. package/src/DropdownMenu/__tests__/MenuHeaderFooter.a11y.chromium.spec.ts +0 -231
  295. package/src/DropdownMenu/__tests__/MenuHoverFocus.a11y.chromium.spec.ts +0 -238
  296. package/src/DropdownMenu/__tests__/MenuPinchZoom.a11y.chromium.spec.ts +0 -173
  297. package/src/DropdownMenu/__tests__/MenuPress.a11y.chromium.spec.ts +0 -503
  298. package/src/DropdownMenu/__tests__/SubMenuHeaderFooter.a11y.chromium.spec.ts +0 -268
  299. package/src/DropdownMenu/__tests__/warmMenuBottomSheet.tsx +0 -43
  300. package/src/DropdownMenu/lazyMenuBottomSheet.test.ts +0 -60
  301. package/src/EmptyState/EmptyState.announce.test.tsx +0 -227
  302. package/src/EmptyState/EmptyState.test.tsx +0 -284
  303. package/src/Field/Field.test.tsx +0 -800
  304. package/src/Field/FieldLabel.test.tsx +0 -244
  305. package/src/Field/InputClearButton.test.tsx +0 -395
  306. package/src/Field/__tests__/FieldLabelAudit.a11y.chromium.spec.ts +0 -297
  307. package/src/Field/fieldInputFamily.test.tsx +0 -160
  308. package/src/FieldStatus/FieldStatus.test.tsx +0 -482
  309. package/src/FieldStatus/__tests__/StatusMessage.a11y.chromium.spec.ts +0 -206
  310. package/src/FieldStatus/__tests__/StatusMessage.a11y.known-failures.ts +0 -13
  311. package/src/FieldStatus/__tests__/StatusMessage.a11y.renders.tsx +0 -287
  312. package/src/FieldStatus/__tests__/StatusMessage.a11y.states.ts +0 -302
  313. package/src/FieldStatus/__tests__/StatusMessage.a11y.test.tsx +0 -154
  314. package/src/FileInput/FileInput.fr10.test.tsx +0 -21
  315. package/src/FileInput/FileInput.test.tsx +0 -1291
  316. package/src/FormLayout/FormLayout.test.tsx +0 -444
  317. package/src/FormLayout/__snapshots__/FormLayout.test.tsx.snap +0 -46
  318. package/src/Grid/Grid.test.tsx +0 -509
  319. package/src/HStack/HStack.test.tsx +0 -129
  320. package/src/Heading/Heading.test.tsx +0 -328
  321. package/src/HoverCard/HoverCard.test.tsx +0 -1339
  322. package/src/Icon/Icon.test.tsx +0 -990
  323. package/src/Icon/globalIconRegistry.test.tsx +0 -613
  324. package/src/IconButton/IconButton.test.tsx +0 -156
  325. package/src/Indicator/Indicator.test.tsx +0 -389
  326. package/src/Indicator/indicatorRegistry.test.tsx +0 -106
  327. package/src/InputGroup/InputGroup.test.tsx +0 -502
  328. package/src/InteractiveRoleContext/InteractiveRoleContext.test.tsx +0 -185
  329. package/src/Item/Item.source-build.test.mjs +0 -88
  330. package/src/Item/Item.swipeLayer.test.tsx +0 -74
  331. package/src/Item/Item.test.tsx +0 -1515
  332. package/src/Item/ItemMarkerColumns.a11y.chromium.spec.ts +0 -211
  333. package/src/Item/__tests__/ItemSwipeActions.a11y.chromium.spec.ts +0 -337
  334. package/src/Item/__tests__/ItemSwipePinchZoom.a11y.chromium.spec.ts +0 -186
  335. package/src/Kbd/Kbd.test.tsx +0 -299
  336. package/src/Layer/LayerProvider.test.tsx +0 -143
  337. package/src/Layer/__tests__/LayerBrowserHide.a11y.chromium.spec.ts +0 -126
  338. package/src/Layer/__tests__/LayerReducedMotion.a11y.chromium.spec.ts +0 -176
  339. package/src/Layer/__tests__/TouchTrigger.a11y.chromium.spec.ts +0 -200
  340. package/src/Layer/anchorName.test.ts +0 -146
  341. package/src/Layer/layerDismissalFamilies.test.tsx +0 -487
  342. package/src/Layer/layerDismissalInvariants.test.tsx +0 -501
  343. package/src/Layer/layerHost.test.ts +0 -117
  344. package/src/Layer/layerScopedContext.test.tsx +0 -499
  345. package/src/Layer/layerViewportInset.source-build.test.mjs +0 -90
  346. package/src/Layer/layerViewportInset.test.ts +0 -120
  347. package/src/Layer/popoverOperations.test.ts +0 -205
  348. package/src/Layer/useLayer.test.tsx +0 -2845
  349. package/src/Layer/useLayerDismissal.test.tsx +0 -580
  350. package/src/Layer/useTouchTrigger.test.ts +0 -70
  351. package/src/Layout/Layout.test.tsx +0 -375
  352. package/src/Layout/LayoutSlots.test.tsx +0 -376
  353. package/src/Layout/__tests__/Layout.a11y.chromium.spec.ts +0 -134
  354. package/src/Layout/__tests__/Layout.a11y.renders.tsx +0 -110
  355. package/src/Layout/__tests__/Layout.a11y.states.ts +0 -93
  356. package/src/Layout/__tests__/Layout.a11y.test.tsx +0 -142
  357. package/src/Layout/__tests__/childrenAsContent.test.tsx +0 -59
  358. package/src/Layout/__tests__/contentWidth.test.tsx +0 -303
  359. package/src/Layout/__tests__/edgeCompensation.test.tsx +0 -191
  360. package/src/Layout/__tests__/nestedPadding.test.tsx +0 -264
  361. package/src/Layout/overlayPaddingReset.test.tsx +0 -224
  362. package/src/Lightbox/Lightbox.test.tsx +0 -837
  363. package/src/Lightbox/LightboxKeyboard.a11y.browser.spec.ts +0 -78
  364. package/src/Lightbox/LightboxViewport.a11y.browser.spec.ts +0 -74
  365. package/src/Lightbox/useLightbox.test.tsx +0 -263
  366. package/src/Link/Link.test.tsx +0 -457
  367. package/src/Link/__tests__/Link.a11y.chromium.spec.ts +0 -153
  368. package/src/Link/__tests__/Link.a11y.renders.tsx +0 -97
  369. package/src/Link/__tests__/Link.a11y.states.ts +0 -104
  370. package/src/Link/__tests__/Link.a11y.test.tsx +0 -127
  371. package/src/Link/__tests__/Link.navigation.a11y.chromium.spec.ts +0 -262
  372. package/src/Link/__tests__/Link.truncation.a11y.chromium.spec.ts +0 -58
  373. package/src/Link/useLinkComponent.test.tsx +0 -572
  374. package/src/Link/useLinkify.test.tsx +0 -146
  375. package/src/List/List.test.tsx +0 -1052
  376. package/src/List/ListItem.source-build.test.mjs +0 -41
  377. package/src/List/ListMarkers.a11y.chromium.spec.ts +0 -904
  378. package/src/Markdown/Markdown.codeLanguages.test.tsx +0 -137
  379. package/src/Markdown/Markdown.fr23.bench.ts +0 -176
  380. package/src/Markdown/Markdown.fr23.perf.test.ts +0 -484
  381. package/src/Markdown/Markdown.helpers.perf.test.ts +0 -495
  382. package/src/Markdown/Markdown.public.test.ts +0 -309
  383. package/src/Markdown/Markdown.renderBoundary.test.tsx +0 -72
  384. package/src/Markdown/Markdown.rerender.test.tsx +0 -143
  385. package/src/Markdown/Markdown.test.tsx +0 -1383
  386. package/src/Markdown/MarkdownTable.a11y.chromium.spec.ts +0 -727
  387. package/src/Markdown/__tests__/MarkdownNesting.a11y.chromium.spec.ts +0 -102
  388. package/src/Markdown/angleDestinations.test.tsx +0 -104
  389. package/src/Markdown/ast.test.ts +0 -374
  390. package/src/Markdown/atxHeadingIndentation.test.tsx +0 -53
  391. package/src/Markdown/blockNesting.test.tsx +0 -124
  392. package/src/Markdown/blockquoteMarkers.test.tsx +0 -69
  393. package/src/Markdown/characterReferences.test.ts +0 -47
  394. package/src/Markdown/codeSpans.test.tsx +0 -65
  395. package/src/Markdown/emphasis.test.tsx +0 -214
  396. package/src/Markdown/fenceInfo.test.tsx +0 -47
  397. package/src/Markdown/imageAlt.test.tsx +0 -84
  398. package/src/Markdown/incremental.test.ts +0 -1198
  399. package/src/Markdown/incrementalIndentation.test.tsx +0 -36
  400. package/src/Markdown/indentedFences.test.tsx +0 -374
  401. package/src/Markdown/indentedTables.test.tsx +0 -53
  402. package/src/Markdown/linkBrackets.test.tsx +0 -116
  403. package/src/Markdown/linkDestinationLinear.test.tsx +0 -54
  404. package/src/Markdown/linkDestinations.test.tsx +0 -127
  405. package/src/Markdown/linkTextCode.test.tsx +0 -65
  406. package/src/Markdown/listBullets.test.tsx +0 -55
  407. package/src/Markdown/listContinuation.test.tsx +0 -94
  408. package/src/Markdown/listThematicBreak.test.tsx +0 -49
  409. package/src/Markdown/longLinkLabels.test.tsx +0 -49
  410. package/src/Markdown/openFenceFinalNewline.test.tsx +0 -85
  411. package/src/Markdown/parser.perf.test.ts +0 -398
  412. package/src/Markdown/parser.public.test.ts +0 -144
  413. package/src/Markdown/parser.test.ts +0 -1925
  414. package/src/Markdown/plugin-renderer/MarkdownPluginNodeRenderer.test.tsx +0 -300
  415. package/src/Markdown/plugins/frontmatter.test.tsx +0 -150
  416. package/src/Markdown/plugins/headingLinks.a11y.chromium.spec.ts +0 -856
  417. package/src/Markdown/plugins/headingLinks.ssr.test.tsx +0 -143
  418. package/src/Markdown/plugins/headingLinks.test.tsx +0 -637
  419. package/src/Markdown/plugins/protocol.test.tsx +0 -1083
  420. package/src/Markdown/plugins/semanticFence.test.tsx +0 -655
  421. package/src/Markdown/plugins/softBreaks.test.tsx +0 -172
  422. package/src/Markdown/plugins/sourceDecoration.test.tsx +0 -799
  423. package/src/Markdown/plugins/sourceLines.test.tsx +0 -715
  424. package/src/Markdown/plugins/textTransform.test.ts +0 -467
  425. package/src/Markdown/remark.test.tsx +0 -1877
  426. package/src/Markdown/streaming.test.ts +0 -148
  427. package/src/Markdown/streamingListShapes.test.tsx +0 -93
  428. package/src/Markdown/trailingSpaces.test.tsx +0 -45
  429. package/src/MetadataList/MetadataList.test.tsx +0 -383
  430. package/src/MobileNav/MobileNav.test.tsx +0 -296
  431. package/src/MobileNav/MobileNavCloseEdgeCases.test.tsx +0 -584
  432. package/src/MobileNav/MobileNavCloseTiming.test.ts +0 -58
  433. package/src/MobileNav/MobileNavCloseVisibility.test.tsx +0 -172
  434. package/src/MobileNav/MobileNavEntryAnimation.test.tsx +0 -212
  435. package/src/MobileNav/MobileNavFocus.test.tsx +0 -553
  436. package/src/MobileNav/MobileNavPinchZoom.a11y.chromium.spec.ts +0 -147
  437. package/src/MobileNav/MobileNavReopen.test.tsx +0 -118
  438. package/src/MobileNav/MobileNavScrollbarGutter.test.tsx +0 -109
  439. package/src/MobileNav/MobileNavToggle.test.tsx +0 -179
  440. package/src/MobileNav/__tests__/MobileNavHeader.a11y.chromium.spec.ts +0 -89
  441. package/src/MobileNav/__tests__/MobileNavWidth.a11y.chromium.spec.ts +0 -103
  442. package/src/MoreMenu/MoreMenu.test.tsx +0 -367
  443. package/src/MultiSelector/CreateRow.a11y.chromium.spec.ts +0 -148
  444. package/src/MultiSelector/MultiSelector.disabledFocus.a11y.chromium.spec.ts +0 -72
  445. package/src/MultiSelector/MultiSelector.focusableDisabled.test.tsx +0 -121
  446. package/src/MultiSelector/MultiSelector.fr10.test.tsx +0 -221
  447. package/src/MultiSelector/MultiSelector.test.tsx +0 -4971
  448. package/src/MultiSelector/OptionActions.a11y.chromium.spec.ts +0 -310
  449. package/src/MultiSelector/__tests__/MultiSelector.a11y.chromium.spec.ts +0 -46
  450. package/src/MultiSelector/__tests__/MultiSelector.listbox.a11y.test.tsx +0 -135
  451. package/src/NavIcon/NavIcon.test.tsx +0 -41
  452. package/src/NavMenu/NavHeadingMenu.test.tsx +0 -714
  453. package/src/NavMenu/__tests__/NavMenusSlideSelection.a11y.chromium.spec.ts +0 -137
  454. package/src/NumberInput/NumberInput.fr10.test.tsx +0 -21
  455. package/src/NumberInput/NumberInput.test.tsx +0 -2697
  456. package/src/NumberInput/__tests__/NumberInput.a11y.chromium.spec.ts +0 -124
  457. package/src/NumberInput/__tests__/NumberInput.a11y.known-failures.ts +0 -26
  458. package/src/NumberInput/__tests__/NumberInput.a11y.renders.tsx +0 -77
  459. package/src/NumberInput/__tests__/NumberInput.a11y.states.ts +0 -116
  460. package/src/NumberInput/__tests__/NumberInput.a11y.test.tsx +0 -154
  461. package/src/NumberInput/__tests__/NumberInput.coarse-pointer.a11y.chromium.spec.ts +0 -102
  462. package/src/NumberInput/numberInputCommit.test.ts +0 -72
  463. package/src/NumberInput/numberParser.docblock.test.ts +0 -234
  464. package/src/NumberInput/numberParser.test.ts +0 -222
  465. package/src/Outline/Outline.test.tsx +0 -1134
  466. package/src/Outline/OutlineFocus.a11y.chromium.spec.ts +0 -551
  467. package/src/Outline/parseOutlineFromMarkdown.test.ts +0 -104
  468. package/src/OverflowList/OverflowList.test.tsx +0 -1073
  469. package/src/Overlay/Overlay.test.tsx +0 -424
  470. package/src/Pagination/Pagination.test.tsx +0 -1754
  471. package/src/Popover/Popover.test.tsx +0 -1508
  472. package/src/Popover/PopoverPresentation.test.tsx +0 -952
  473. package/src/Popover/__tests__/PopoverSecondDocument.a11y.chromium.spec.ts +0 -267
  474. package/src/PowerSearch/PowerSearch.test.tsx +0 -1027
  475. package/src/PowerSearch/PowerSearchEditPopover.test.tsx +0 -1190
  476. package/src/PowerSearch/PowerSearchFilterEditor.test.tsx +0 -377
  477. package/src/PowerSearch/PowerSearchToken.test.tsx +0 -230
  478. package/src/PowerSearch/PowerSearchValueEditor.test.tsx +0 -754
  479. package/src/PowerSearch/formatFilterValue.test.ts +0 -339
  480. package/src/PowerSearch/resolveDateTimeRangePart.test.ts +0 -40
  481. package/src/PowerSearch/usePowerSearchConfig.test.ts +0 -832
  482. package/src/PowerSearch/usePowerSearchSource.test.ts +0 -621
  483. package/src/ProgressBar/ProgressBar.test.tsx +0 -928
  484. package/src/ProgressBar/__tests__/ProgressBar.a11y.chromium.spec.ts +0 -127
  485. package/src/ProgressBar/__tests__/ProgressBar.a11y.known-failures.ts +0 -12
  486. package/src/ProgressBar/__tests__/ProgressBar.a11y.renders.tsx +0 -38
  487. package/src/ProgressBar/__tests__/ProgressBar.a11y.states.ts +0 -123
  488. package/src/ProgressBar/__tests__/ProgressBar.a11y.test.tsx +0 -107
  489. package/src/ProgressBar/__tests__/ProgressBarMotion.a11y.chromium.spec.ts +0 -831
  490. package/src/RadioList/RadioList.fr10.test.tsx +0 -67
  491. package/src/RadioList/RadioList.test.tsx +0 -1051
  492. package/src/RadioList/RadioListItem.press.source-build.test.mjs +0 -80
  493. package/src/RadioList/__tests__/RadioGroup.a11y.chromium.spec.ts +0 -274
  494. package/src/RadioList/__tests__/RadioGroup.a11y.known-failures.ts +0 -12
  495. package/src/RadioList/__tests__/RadioGroup.a11y.renders.tsx +0 -232
  496. package/src/RadioList/__tests__/RadioGroup.a11y.states.ts +0 -503
  497. package/src/RadioList/__tests__/RadioGroup.a11y.test.tsx +0 -217
  498. package/src/Resizable/ResizeHandle.test.tsx +0 -1067
  499. package/src/Resizable/__tests__/ResizeHandle.a11y.chromium.spec.ts +0 -127
  500. package/src/Resizable/__tests__/ResizeHandle.a11y.known-failures.ts +0 -39
  501. package/src/Resizable/__tests__/ResizeHandle.a11y.renders.tsx +0 -80
  502. package/src/Resizable/__tests__/ResizeHandle.a11y.states.ts +0 -197
  503. package/src/Resizable/__tests__/ResizeHandle.a11y.test.tsx +0 -123
  504. package/src/Resizable/shippedDirections.test.ts +0 -462
  505. package/src/Resizable/useResizable.test.ts +0 -1725
  506. package/src/Resizable/utils.test.ts +0 -74
  507. package/src/ScrollableArea/ScrollableArea.test.tsx +0 -304
  508. package/src/Section/Section.test.tsx +0 -376
  509. package/src/SegmentedControl/SegmentedControl.test.tsx +0 -981
  510. package/src/SelectableCard/SelectableCard.test.tsx +0 -216
  511. package/src/Selector/Selector.focusableDisabled.test.tsx +0 -127
  512. package/src/Selector/Selector.fr10.test.tsx +0 -149
  513. package/src/Selector/Selector.sheetActiveDescendant.test.tsx +0 -95
  514. package/src/Selector/Selector.source-build.test.mjs +0 -79
  515. package/src/Selector/Selector.test.tsx +0 -5117
  516. package/src/Selector/__tests__/Combobox.a11y.known-failures.ts +0 -27
  517. package/src/Selector/__tests__/Combobox.a11y.states.ts +0 -145
  518. package/src/Selector/__tests__/ComboboxField.a11y.chromium.spec.ts +0 -458
  519. package/src/Selector/__tests__/EmptyStateAnnouncement.a11y.chromium.spec.ts +0 -91
  520. package/src/Selector/__tests__/Listbox.a11y.chromium.spec.ts +0 -131
  521. package/src/Selector/__tests__/Listbox.a11y.dom.ts +0 -38
  522. package/src/Selector/__tests__/Listbox.a11y.inventory.test.ts +0 -63
  523. package/src/Selector/__tests__/Listbox.a11y.known-failures.ts +0 -12
  524. package/src/Selector/__tests__/Listbox.a11y.states.ts +0 -232
  525. package/src/Selector/__tests__/Selector.a11y.chromium.spec.ts +0 -46
  526. package/src/Selector/__tests__/Selector.combobox.a11y.chromium.spec.ts +0 -109
  527. package/src/Selector/__tests__/Selector.combobox.a11y.test.tsx +0 -133
  528. package/src/Selector/__tests__/Selector.listbox.a11y.test.tsx +0 -128
  529. package/src/Selector/useCombobox.public.test.tsx +0 -89
  530. package/src/Selector/useCombobox.test.tsx +0 -444
  531. package/src/SideNav/SideNav.test.tsx +0 -4275
  532. package/src/SideNav/SideNavRailMotion.test.tsx +0 -620
  533. package/src/SideNav/__tests__/SideNavRailMotion.interaction.browser.spec.ts +0 -542
  534. package/src/SizeContext/SizeContext.test.tsx +0 -226
  535. package/src/Skeleton/Skeleton.test.tsx +0 -148
  536. package/src/Slider/Slider.fr10.test.tsx +0 -93
  537. package/src/Slider/Slider.test.tsx +0 -1661
  538. package/src/Slider/__tests__/Slider.a11y.chromium.spec.ts +0 -125
  539. package/src/Slider/__tests__/Slider.a11y.known-failures.ts +0 -12
  540. package/src/Slider/__tests__/Slider.a11y.renders.tsx +0 -42
  541. package/src/Slider/__tests__/Slider.a11y.states.ts +0 -106
  542. package/src/Slider/__tests__/Slider.a11y.test.tsx +0 -105
  543. package/src/Spinner/Spinner.test.tsx +0 -484
  544. package/src/Stack/Stack.test.tsx +0 -473
  545. package/src/Stack/StackItem.test.tsx +0 -105
  546. package/src/StatusDot/StatusDot.test.tsx +0 -213
  547. package/src/Stepper/Stepper.public.test.ts +0 -91
  548. package/src/Stepper/Stepper.test.tsx +0 -2130
  549. package/src/Switch/Switch.focusRing.source-build.test.mjs +0 -81
  550. package/src/Switch/Switch.test.tsx +0 -1136
  551. package/src/Switch/__tests__/Switch.a11y.chromium.spec.ts +0 -211
  552. package/src/Switch/__tests__/Switch.a11y.known-failures.ts +0 -28
  553. package/src/Switch/__tests__/Switch.a11y.states.ts +0 -275
  554. package/src/Switch/__tests__/Switch.a11y.test.tsx +0 -144
  555. package/src/TabList/TabList.test.tsx +0 -1755
  556. package/src/TabList/__tests__/TabListOverflow.interaction.browser.spec.ts +0 -99
  557. package/src/TabList/__tests__/TabPressPointer.interaction.browser.spec.ts +0 -163
  558. package/src/TabList/__tests__/Tabs.a11y.chromium.spec.ts +0 -199
  559. package/src/TabList/__tests__/Tabs.a11y.known-failures.ts +0 -12
  560. package/src/TabList/__tests__/Tabs.a11y.renders.tsx +0 -92
  561. package/src/TabList/__tests__/Tabs.a11y.states.ts +0 -247
  562. package/src/TabList/__tests__/Tabs.a11y.test.tsx +0 -153
  563. package/src/Table/Table.perf.test.tsx +0 -569
  564. package/src/Table/Table.test.tsx +0 -1883
  565. package/src/Table/TableHeaderCell.test.tsx +0 -291
  566. package/src/Table/TableSelectionToolbar.test.tsx +0 -109
  567. package/src/Table/__tests__/Table.a11y.chromium.spec.ts +0 -141
  568. package/src/Table/__tests__/Table.a11y.contracts.ts +0 -35
  569. package/src/Table/__tests__/Table.a11y.renders.tsx +0 -112
  570. package/src/Table/__tests__/Table.a11y.states.ts +0 -136
  571. package/src/Table/__tests__/Table.a11y.test.tsx +0 -198
  572. package/src/Table/__tests__/TableMinWidth.a11y.chromium.spec.ts +0 -75
  573. package/src/Table/__tests__/TableRowGlide.a11y.browser.spec.ts +0 -382
  574. package/src/Table/__tests__/TableScroll.a11y.chromium.spec.ts +0 -138
  575. package/src/Table/__tests__/TableStickyDividers.a11y.browser.spec.ts +0 -560
  576. package/src/Table/plugins/columnResize/useTableColumnResize.test.tsx +0 -941
  577. package/src/Table/plugins/columnSettings/useTableColumnSettings.test.tsx +0 -175
  578. package/src/Table/plugins/columnSettings/useTableColumnSettingsState.test.tsx +0 -296
  579. package/src/Table/plugins/filtering/useTableFilterState.test.tsx +0 -143
  580. package/src/Table/plugins/filtering/useTableFiltering.test.tsx +0 -357
  581. package/src/Table/plugins/groupedRows/useTableGroupedRows-perf.test.tsx +0 -112
  582. package/src/Table/plugins/groupedRows/useTableGroupedRows.test.tsx +0 -409
  583. package/src/Table/plugins/pagination/useTablePagination-perf.test.tsx +0 -232
  584. package/src/Table/plugins/pagination/useTablePagination.test.tsx +0 -666
  585. package/src/Table/plugins/rowExpansion/useTableRowExpansion.glide.test.tsx +0 -280
  586. package/src/Table/plugins/rowExpansion/useTableRowExpansion.test.tsx +0 -681
  587. package/src/Table/plugins/rowIndex/useTableRowIndex.test.tsx +0 -132
  588. package/src/Table/plugins/rowStatus/useTableRowStatus.public.test.ts +0 -92
  589. package/src/Table/plugins/rowStatus/useTableRowStatus.test.tsx +0 -519
  590. package/src/Table/plugins/selection/useTableSelection-perf.test.tsx +0 -258
  591. package/src/Table/plugins/selection/useTableSelection.test.tsx +0 -424
  592. package/src/Table/plugins/selection/useTableSelectionState.test.tsx +0 -451
  593. package/src/Table/plugins/sortable/__tests__/useTableSortable.a11y.test.tsx +0 -174
  594. package/src/Table/plugins/sortable/__tests__/useTableSortable.a11y.ts +0 -86
  595. package/src/Table/plugins/sortable/useTableSortable.test.tsx +0 -786
  596. package/src/Table/plugins/sortable/useTableSortableState.test.tsx +0 -580
  597. package/src/Table/plugins/stickyColumns/useTableStickyColumns.test.tsx +0 -334
  598. package/src/Table/plugins/tree/useTableTreeData-perf.test.tsx +0 -163
  599. package/src/Table/plugins/tree/useTableTreeData.test.tsx +0 -992
  600. package/src/Table/plugins/tree/useTableTreeState.test.tsx +0 -740
  601. package/src/Table/tableContextMenu.test.tsx +0 -208
  602. package/src/Text/Text.test.tsx +0 -405
  603. package/src/Text/useTruncation.test.tsx +0 -196
  604. package/src/TextArea/TextArea.fr10.test.tsx +0 -21
  605. package/src/TextArea/TextArea.test.tsx +0 -1317
  606. package/src/TextInput/TextInput.fr10.test.tsx +0 -21
  607. package/src/TextInput/TextInput.test.tsx +0 -1280
  608. package/src/TextInput/__tests__/TextInput.a11y.chromium.spec.ts +0 -214
  609. package/src/TextInput/__tests__/TextInput.a11y.known-failures.ts +0 -40
  610. package/src/TextInput/__tests__/TextInput.a11y.renders.tsx +0 -202
  611. package/src/TextInput/__tests__/TextInput.a11y.states.ts +0 -384
  612. package/src/TextInput/__tests__/TextInput.a11y.test.tsx +0 -130
  613. package/src/Thumbnail/Thumbnail.test.tsx +0 -384
  614. package/src/TimeInput/NativeTimeInput.test.tsx +0 -343
  615. package/src/TimeInput/Presentation.test.tsx +0 -192
  616. package/src/TimeInput/TimeInput.fr10.test.tsx +0 -312
  617. package/src/TimeInput/TimeInput.test.tsx +0 -907
  618. package/src/Timer/Timer.test.tsx +0 -302
  619. package/src/Timestamp/Timestamp.test.tsx +0 -1661
  620. package/src/Timestamp/tooltipEntries.test.ts +0 -566
  621. package/src/Toast/ToastViewport.modalHost.test.tsx +0 -891
  622. package/src/Toast/ToastViewport.test.tsx +0 -3130
  623. package/src/Toast/useToast.test.tsx +0 -258
  624. package/src/ToggleButton/ToggleButton.test.tsx +0 -1000
  625. package/src/ToggleButton/__tests__/ToggleButton.a11y.chromium.spec.ts +0 -177
  626. package/src/ToggleButton/__tests__/ToggleButton.a11y.renders.tsx +0 -133
  627. package/src/ToggleButton/__tests__/ToggleButton.a11y.states.ts +0 -167
  628. package/src/ToggleButton/__tests__/ToggleButton.a11y.test.tsx +0 -103
  629. package/src/Token/Token.test.tsx +0 -707
  630. package/src/Token/__tests__/TokenRemoveTarget.a11y.chromium.spec.ts +0 -87
  631. package/src/Tokenizer/Tokenizer.fr10.test.tsx +0 -28
  632. package/src/Tokenizer/Tokenizer.props-type.test.tsx +0 -126
  633. package/src/Tokenizer/Tokenizer.ssr.test.tsx +0 -196
  634. package/src/Tokenizer/Tokenizer.test.tsx +0 -2297
  635. package/src/Tokenizer/TokenizerBottomSheet.test.tsx +0 -2738
  636. package/src/Tokenizer/__tests__/TokenizerEndLane.a11y.chromium.spec.ts +0 -505
  637. package/src/Toolbar/Toolbar.test.tsx +0 -600
  638. package/src/Toolbar/__tests__/Toolbar.a11y.chromium.spec.ts +0 -176
  639. package/src/Toolbar/__tests__/Toolbar.a11y.renders.tsx +0 -63
  640. package/src/Toolbar/__tests__/Toolbar.a11y.states.ts +0 -142
  641. package/src/Toolbar/__tests__/Toolbar.a11y.test.tsx +0 -126
  642. package/src/Tooltip/Tooltip.test.tsx +0 -819
  643. package/src/Tooltip/__tests__/Tooltip.a11y.chromium.spec.ts +0 -141
  644. package/src/Tooltip/__tests__/Tooltip.a11y.renders.tsx +0 -86
  645. package/src/Tooltip/__tests__/Tooltip.a11y.states.ts +0 -132
  646. package/src/Tooltip/__tests__/Tooltip.a11y.test.tsx +0 -126
  647. package/src/Tooltip/__tests__/TooltipFocusReturn.a11y.chromium.spec.ts +0 -130
  648. package/src/Tooltip/__tests__/TooltipHoverBridge.a11y.chromium.spec.ts +0 -75
  649. package/src/Tooltip/__tests__/TooltipTallContent.a11y.browser.spec.ts +0 -673
  650. package/src/Tooltip/__tests__/TooltipTallContentTracking.a11y.browser.spec.ts +0 -1162
  651. package/src/Tooltip/useTooltip.test.tsx +0 -483
  652. package/src/TopNav/TopNav.test.tsx +0 -863
  653. package/src/TopNav/TopNavMegaMenu.reduced-motion.source-build.test.mjs +0 -83
  654. package/src/TopNav/TopNavMegaMenu.test.tsx +0 -1153
  655. package/src/TopNav/TopNavMenu.test.tsx +0 -502
  656. package/src/TopNav/__tests__/TopNavMobileLongHeading.a11y.chromium.spec.ts +0 -75
  657. package/src/TreeList/TreeList.test.tsx +0 -1737
  658. package/src/TreeList/__tests__/TreeList.a11y.chromium.spec.ts +0 -138
  659. package/src/TreeList/__tests__/TreeList.a11y.renders.tsx +0 -44
  660. package/src/TreeList/__tests__/TreeList.a11y.states.ts +0 -164
  661. package/src/TreeList/__tests__/TreeList.a11y.test.tsx +0 -138
  662. package/src/TreeList/__tests__/TreeListGuideAlignment.interaction.browser.spec.ts +0 -127
  663. package/src/TreeList/__tests__/TreeListRowNames.a11y.chromium.spec.ts +0 -83
  664. package/src/Typeahead/BaseTypeahead.emptyState.a11y.chromium.spec.ts +0 -138
  665. package/src/Typeahead/BaseTypeahead.test.tsx +0 -553
  666. package/src/Typeahead/Typeahead.fr10.test.tsx +0 -28
  667. package/src/Typeahead/Typeahead.test.tsx +0 -3063
  668. package/src/Typeahead/TypeaheadItem.test.tsx +0 -134
  669. package/src/VStack/VStack.test.tsx +0 -128
  670. package/src/VisuallyHidden/VisuallyHidden.test.tsx +0 -115
  671. package/src/__tests__/BusyOwnerAnnouncement.test.tsx +0 -853
  672. package/src/__tests__/CardPress.a11y.chromium.spec.ts +0 -353
  673. package/src/__tests__/DisabledTriggerFocus.a11y.chromium.spec.ts +0 -87
  674. package/src/__tests__/PressModality.a11y.chromium.spec.ts +0 -392
  675. package/src/__tests__/PressedState.a11y.chromium.spec.ts +0 -814
  676. package/src/__tests__/TestIcon.tsx +0 -26
  677. package/src/__tests__/babelPluginAddExtensions.test.ts +0 -190
  678. package/src/__tests__/fastRoleQueries.ts +0 -66
  679. package/src/__tests__/forcedColors.ts +0 -60
  680. package/src/__tests__/internalModulesNotExperimental.test.ts +0 -88
  681. package/src/__tests__/pressState.ts +0 -216
  682. package/src/__tests__/stubMatchMedia.test.ts +0 -79
  683. package/src/__tests__/stubMatchMedia.ts +0 -95
  684. package/src/__tests__/stylexDeclarations.ts +0 -51
  685. package/src/__tests__/unthemedLength.ts +0 -34
  686. package/src/docPropLiterals.test.ts +0 -964
  687. package/src/docPropReferences.test.ts +0 -178
  688. package/src/docs-script.test.mjs +0 -55
  689. package/src/gestures/__tests__/GestureHost.test.ts +0 -2136
  690. package/src/gestures/__tests__/LongPressGestureRecognizer.test.ts +0 -141
  691. package/src/gestures/__tests__/PanGestureRecognizer.test.ts +0 -327
  692. package/src/gestures/__tests__/PinchGestureRecognizer.test.ts +0 -74
  693. package/src/gestures/__tests__/PressTracker.test.ts +0 -275
  694. package/src/gestures/__tests__/ScreenEdgePanGestureRecognizer.test.ts +0 -498
  695. package/src/gestures/__tests__/SwipeGestureRecognizer.test.ts +0 -108
  696. package/src/gestures/__tests__/TapGestureRecognizer.test.ts +0 -154
  697. package/src/gestures/__tests__/VelocityTracker.streams.test.ts +0 -243
  698. package/src/gestures/__tests__/VelocityTracker.test.ts +0 -261
  699. package/src/gestures/__tests__/arena.test.ts +0 -864
  700. package/src/gestures/__tests__/arenaContinuous.test.ts +0 -207
  701. package/src/gestures/__tests__/arenaPinchSwipeEdge.test.ts +0 -193
  702. package/src/gestures/__tests__/arenaTapLongPress.test.ts +0 -211
  703. package/src/gestures/__tests__/browser/build-fixture.mjs +0 -46
  704. package/src/gestures/__tests__/browser/fixture.ts +0 -307
  705. package/src/gestures/__tests__/browser/gestures.interaction.browser.spec.ts +0 -1137
  706. package/src/gestures/__tests__/browserNegotiation.test.ts +0 -293
  707. package/src/gestures/__tests__/fixtures/pointer-streams/README.md +0 -82
  708. package/src/gestures/__tests__/fixtures/pointer-streams/android-chromium-fling.json +0 -130
  709. package/src/gestures/__tests__/fixtures/pointer-streams/android-chromium-slow.json +0 -860
  710. package/src/gestures/__tests__/fixtures/pointer-streams/android-chromium-stop-release.json +0 -357
  711. package/src/gestures/__tests__/fixtures/pointer-streams/android-firefox-fling.json +0 -66
  712. package/src/gestures/__tests__/fixtures/pointer-streams/android-firefox-slow.json +0 -268
  713. package/src/gestures/__tests__/fixtures/pointer-streams/android-firefox-stop-release.json +0 -128
  714. package/src/gestures/__tests__/fixtures/pointer-streams/capture.html +0 -123
  715. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-mouse-fling.json +0 -64
  716. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-mouse-slow.json +0 -268
  717. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-mouse-stop-release.json +0 -124
  718. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-pen-fling.json +0 -64
  719. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-pen-slow.json +0 -268
  720. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-pen-stop-release.json +0 -124
  721. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-touch-fling.json +0 -84
  722. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-touch-slow.json +0 -381
  723. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-touch-stop-release.json +0 -171
  724. package/src/gestures/__tests__/fixtures/pointer-streams/ios-safari-fling.json +0 -45
  725. package/src/gestures/__tests__/fixtures/pointer-streams/ios-safari-slow.json +0 -101
  726. package/src/gestures/__tests__/fixtures/pointer-streams/ios-safari-stop-release.json +0 -130
  727. package/src/gestures/__tests__/haptics.test.ts +0 -187
  728. package/src/gestures/__tests__/harness.ts +0 -252
  729. package/src/gestures/__tests__/pressTrackerFactory.test.ts +0 -59
  730. package/src/gestures/__tests__/recognizerKind.test.ts +0 -78
  731. package/src/gestures/__tests__/touchActionRule.test.ts +0 -54
  732. package/src/gestures/__tests__/useGestureRecognizer.test.tsx +0 -570
  733. package/src/hooks/__tests__/MenuPressShadowRoot.a11y.chromium.spec.ts +0 -144
  734. package/src/hooks/__tests__/menuLinkClicks.ts +0 -71
  735. package/src/hooks/actionGroupTracker.exports.test.ts +0 -28
  736. package/src/hooks/actionGroupTracker.test.ts +0 -510
  737. package/src/hooks/computeOverflow.test.ts +0 -422
  738. package/src/hooks/deprecatedApis.public.test.ts +0 -33
  739. package/src/hooks/menuPressGesture.test.ts +0 -253
  740. package/src/hooks/scrollKeyboardDelegation.test.ts +0 -188
  741. package/src/hooks/scrollbarGutter.test.ts +0 -167
  742. package/src/hooks/useAnnounce.modal.test.tsx +0 -1291
  743. package/src/hooks/useAnnounce.replace.test.tsx +0 -516
  744. package/src/hooks/useAnnounce.test.tsx +0 -293
  745. package/src/hooks/useAnnounceRenderedText.adopters.test.tsx +0 -235
  746. package/src/hooks/useAutoMediaMode.test.ts +0 -109
  747. package/src/hooks/useBusyAnnouncement.adopters.test.tsx +0 -69
  748. package/src/hooks/useBusyAnnouncement.test.tsx +0 -112
  749. package/src/hooks/useClickableContainer.test.tsx +0 -236
  750. package/src/hooks/useClipboard.test.tsx +0 -151
  751. package/src/hooks/useContainerReveal.test.tsx +0 -163
  752. package/src/hooks/useDevWarning.test.tsx +0 -45
  753. package/src/hooks/useEntryAnimation.ssr.test.tsx +0 -143
  754. package/src/hooks/useFocusTrap.test.tsx +0 -635
  755. package/src/hooks/useFocusTrapEscapeShim.test.tsx +0 -166
  756. package/src/hooks/useGridFocus.test.tsx +0 -165
  757. package/src/hooks/useHotkeys.test.ts +0 -265
  758. package/src/hooks/useImageMode.test.ts +0 -133
  759. package/src/hooks/useInputContainer.test.tsx +0 -180
  760. package/src/hooks/useInputStatusIcon.test.tsx +0 -240
  761. package/src/hooks/useIsHydrating.test.tsx +0 -70
  762. package/src/hooks/useKeyboardHint.test.tsx +0 -92
  763. package/src/hooks/useListFocus.test.tsx +0 -664
  764. package/src/hooks/useLongPress.test.tsx +0 -152
  765. package/src/hooks/useMediaQuery.test.ts +0 -165
  766. package/src/hooks/useMenuHover.test.tsx +0 -536
  767. package/src/hooks/useMenuPress.test.tsx +0 -565
  768. package/src/hooks/useMergedRefs.test.tsx +0 -62
  769. package/src/hooks/useOverflow.test.ts +0 -504
  770. package/src/hooks/useRenamedProp.test.tsx +0 -95
  771. package/src/hooks/useScrollLock.test.ts +0 -248
  772. package/src/hooks/useScrollOverflow.test.tsx +0 -323
  773. package/src/hooks/useScrollableArea.test.tsx +0 -836
  774. package/src/hooks/useStreamingText.test.ts +0 -237
  775. package/src/hooks/useTreeFocus.test.tsx +0 -351
  776. package/src/hooks/useTypeahead.test.tsx +0 -351
  777. package/src/i18n/__tests__/InternationalizationProvider.test.tsx +0 -128
  778. package/src/i18n/__tests__/e2e-pagination.test.tsx +0 -172
  779. package/src/i18n/__tests__/e2e-powersearch.test.tsx +0 -166
  780. package/src/i18n/__tests__/getLocaleDirection.test.ts +0 -40
  781. package/src/i18n/__tests__/resolve.test.ts +0 -325
  782. package/src/i18n/__tests__/useCollator.test.tsx +0 -115
  783. package/src/i18n/__tests__/useDirection.test.tsx +0 -66
  784. package/src/i18n/__tests__/useLocale.test.tsx +0 -52
  785. package/src/i18n/useTranslator.test.tsx +0 -267
  786. package/src/inputFontFloor.test.ts +0 -106
  787. package/src/internal/tokenizer-presentation.test.ts +0 -29
  788. package/src/internal/touch.test.ts +0 -44
  789. package/src/motion/__tests__/animatedLayout.interaction.browser.spec.ts +0 -1613
  790. package/src/motion/__tests__/animatedLayoutAdopters.interaction.browser.spec.ts +0 -217
  791. package/src/motion/__tests__/animatedLayoutBundle.ts +0 -17
  792. package/src/motion/__tests__/animator.interaction.browser.spec.ts +0 -843
  793. package/src/motion/__tests__/motionBundle.ts +0 -14
  794. package/src/motion/animatedLayout.boundary.test.ts +0 -155
  795. package/src/motion/animatedLayout.swap.test.ts +0 -827
  796. package/src/motion/animatedLayout.test.ts +0 -1154
  797. package/src/motion/animatedLayoutAdopters.test.tsx +0 -500
  798. package/src/motion/animator.test.ts +0 -3746
  799. package/src/motion/bezier.test.ts +0 -52
  800. package/src/motion/coast.test.ts +0 -99
  801. package/src/motion/decay.test.ts +0 -120
  802. package/src/motion/projection.test.ts +0 -107
  803. package/src/motion/reducedMotion.test.ts +0 -129
  804. package/src/motion/reducedMotionPlan.test.ts +0 -208
  805. package/src/motion/resolveMotion.test.ts +0 -123
  806. package/src/motion/resolveSnapPoint.test.ts +0 -189
  807. package/src/motion/roles.test.ts +0 -273
  808. package/src/motion/rubberBand.test.ts +0 -88
  809. package/src/motion/selectPage.test.ts +0 -31
  810. package/src/motion/spring.test.ts +0 -650
  811. package/src/motion/uikit/gestures.test.ts +0 -89
  812. package/src/motion/uikit/springRows.test.ts +0 -71
  813. package/src/motion/uikit/tableImports.test.ts +0 -293
  814. package/src/motion/uikit/uikit.test.ts +0 -364
  815. package/src/motion/uikit/values.test.ts +0 -121
  816. package/src/naming.test.ts +0 -44
  817. package/src/postinstall.test.mjs +0 -216
  818. package/src/reset.a11y.chromium.spec.ts +0 -238
  819. package/src/reset.test.ts +0 -205
  820. package/src/reset.until-found.a11y.browser.spec.ts +0 -76
  821. package/src/reset.until-found.test.ts +0 -32
  822. package/src/serverSafeComponents.test.ts +0 -675
  823. package/src/stylexValidation.source-build.test.mjs +0 -42
  824. package/src/tailwind-theme.test.ts +0 -153
  825. package/src/theme/MediaTheme.dom.test.tsx +0 -97
  826. package/src/theme/Theme.test.tsx +0 -337
  827. package/src/theme/__tests__/SpacingRootFontSize.a11y.chromium.spec.ts +0 -199
  828. package/src/theme/contrast.test.ts +0 -94
  829. package/src/theme/declarationBoundary.test.ts +0 -126
  830. package/src/theme/defineTheme.test.ts +0 -2028
  831. package/src/theme/derivedVarRegistry.test.ts +0 -592
  832. package/src/theme/expandColorScale.test.ts +0 -651
  833. package/src/theme/expandMotionScale.test.ts +0 -145
  834. package/src/theme/expandRadiusScale.test.ts +0 -59
  835. package/src/theme/expandTypeScale.test.ts +0 -351
  836. package/src/theme/extensibleAxes.test.ts +0 -432
  837. package/src/theme/generateThemeRules.test.ts +0 -1870
  838. package/src/theme/hct.test.ts +0 -93
  839. package/src/theme/onMediaTokens.test.ts +0 -431
  840. package/src/theme/publicThemeHelperContract.test.ts +0 -67
  841. package/src/theme/syntax/defineSyntaxTheme.diff.test.ts +0 -91
  842. package/src/theme/syntax/serverSafeSyntax.test.ts +0 -68
  843. package/src/theme/syntax/useSyntaxTheme.diff.test.tsx +0 -40
  844. package/src/theme/themeAdaptations.test.ts +0 -1795
  845. package/src/theme/themeMotion.test.ts +0 -620
  846. package/src/theme/themeRegistry.test.ts +0 -59
  847. package/src/theme/themingTargets.test.ts +0 -589
  848. package/src/theme/tokenValueCompat.test.ts +0 -204
  849. package/src/theme/tokens.test.ts +0 -441
  850. package/src/theme/useTheme.test.tsx +0 -322
  851. package/src/unicodePropertyEscapes.source-build.test.mjs +0 -69
  852. package/src/utils/chainEventHandlers.test.ts +0 -39
  853. package/src/utils/characters.test.ts +0 -141
  854. package/src/utils/color.test.ts +0 -233
  855. package/src/utils/composeEventHandlers.test.ts +0 -71
  856. package/src/utils/customPropertyArmLayering.test.ts +0 -131
  857. package/src/utils/dateParser.test.ts +0 -402
  858. package/src/utils/dateTypes.test.ts +0 -40
  859. package/src/utils/devWarning.test.ts +0 -56
  860. package/src/utils/edgeAutoscroll.test.ts +0 -192
  861. package/src/utils/focusReturn.test.ts +0 -119
  862. package/src/utils/getKey.test.ts +0 -25
  863. package/src/utils/getNodeText.test.ts +0 -24
  864. package/src/utils/hitArea.test.ts +0 -628
  865. package/src/utils/ime.test.ts +0 -32
  866. package/src/utils/inputAria.test.ts +0 -39
  867. package/src/utils/interactionModality.test.ts +0 -144
  868. package/src/utils/isApplePlatform.test.ts +0 -61
  869. package/src/utils/mergeProps.test.ts +0 -166
  870. package/src/utils/mergeRefs.test.ts +0 -48
  871. package/src/utils/parseStyleKey.test.ts +0 -56
  872. package/src/utils/plainDate.test.ts +0 -938
  873. package/src/utils/presentation.test.ts +0 -380
  874. package/src/utils/pressFeedback.test.ts +0 -1012
  875. package/src/utils/pressGesture.test.ts +0 -332
  876. package/src/utils/pressPaintPriority.test.ts +0 -80
  877. package/src/utils/pressPaintSource.test.ts +0 -65
  878. package/src/utils/pressableCoverage.test.ts +0 -192
  879. package/src/utils/primaryClick.test.ts +0 -38
  880. package/src/utils/safeUrl.test.ts +0 -101
  881. package/src/utils/sharedMutationObserver.test.ts +0 -106
  882. package/src/utils/sharedResizeObserver.test.ts +0 -283
  883. package/src/utils/themeProps.test.ts +0 -62
  884. package/src/utils/timeFormat.test.ts +0 -204
  885. package/src/utils/timeParser.test.ts +0 -295
  886. package/src/utils/touchPresentation.test.ts +0 -462
  887. package/src/utils/unicodeDigits.test.ts +0 -44
@@ -1,1052 +0,0 @@
1
- // Copyright (c) Meta Platforms, Inc. and affiliates.
2
-
3
- /**
4
- * @file List.test.tsx
5
- * @input Uses vitest, @testing-library/react, List, ListItem
6
- * @output Unit tests for List and ListItem, including the row edge treatment
7
- * @position Testing; validates List.tsx and ListItem.tsx implementation
8
- *
9
- * SYNC: When modified, update this header
10
- */
11
-
12
- import {describe, it, expect, vi} from 'vitest';
13
- import {cleanup, render, screen, waitFor} from '@testing-library/react';
14
- import userEvent from '@testing-library/user-event';
15
- import {rulesDeclaredFor} from '../__tests__/pressState';
16
- import {List} from './List';
17
- import {ListItem} from './ListItem';
18
- import {ListMarkerScope} from './ListContext';
19
-
20
- describe('List', () => {
21
- it('forwards ListItem align to its Item row unchanged', () => {
22
- render(
23
- <List>
24
- <ListItem label="Default" data-testid="default" />
25
- <ListItem label="Start" align="start" data-testid="start" />
26
- <ListItem label="First" align="first-line" data-testid="first" />
27
- </List>,
28
- );
29
- expect(screen.getByTestId('default')).toHaveAttribute(
30
- 'data-align',
31
- 'center',
32
- );
33
- expect(screen.getByTestId('start')).toHaveAttribute('data-align', 'start');
34
- expect(screen.getByTestId('first')).toHaveAttribute(
35
- 'data-align',
36
- 'first-line',
37
- );
38
- });
39
-
40
- // ===========================================================================
41
- // Basic rendering
42
- // ===========================================================================
43
-
44
- it('renders a list with items', () => {
45
- render(
46
- <List>
47
- <ListItem label="Item 1" />
48
- <ListItem label="Item 2" />
49
- </List>,
50
- );
51
- expect(screen.getByText('Item 1')).toBeInTheDocument();
52
- expect(screen.getByText('Item 2')).toBeInTheDocument();
53
- });
54
-
55
- it('renders label and description', () => {
56
- render(
57
- <List>
58
- <ListItem label="Settings" description="Manage your preferences" />
59
- </List>,
60
- );
61
- expect(screen.getByText('Settings')).toBeInTheDocument();
62
- expect(screen.getByText('Manage your preferences')).toBeInTheDocument();
63
- });
64
-
65
- it('supports data-testid on list', () => {
66
- render(
67
- <List data-testid="my-list">
68
- <ListItem label="Item" />
69
- </List>,
70
- );
71
- expect(screen.getByTestId('my-list')).toBeInTheDocument();
72
- });
73
-
74
- it('supports data-testid on list item', () => {
75
- render(
76
- <List>
77
- <ListItem label="Item" data-testid="my-item" />
78
- </List>,
79
- );
80
- expect(screen.getByTestId('my-item')).toBeInTheDocument();
81
- });
82
-
83
- // ===========================================================================
84
- // Semantic HTML
85
- // ===========================================================================
86
-
87
- it('renders as <ul> by default', () => {
88
- const {container} = render(
89
- <List>
90
- <ListItem label="Item" />
91
- </List>,
92
- );
93
- expect(container.querySelector('ul')).toBeInTheDocument();
94
- expect(container.querySelector('ol')).not.toBeInTheDocument();
95
- });
96
-
97
- it('renders as <ol> when listStyle is decimal', () => {
98
- const {container} = render(
99
- <List listStyle="decimal">
100
- <ListItem label="First" />
101
- <ListItem label="Second" />
102
- </List>,
103
- );
104
- expect(container.querySelector('ol')).toBeInTheDocument();
105
- expect(container.querySelector('ul')).not.toBeInTheDocument();
106
- });
107
-
108
- it('applies custom counter start value', () => {
109
- const {container} = render(
110
- <List listStyle="decimal" start={3}>
111
- <ListItem label="Third" />
112
- <ListItem label="Fourth" />
113
- </List>,
114
- );
115
- const ol = container.querySelector('ol')!;
116
- // The counter-reset style should include the start offset (start - 1 = 2)
117
- expect(ol.className).toContain('counterStart');
118
- });
119
-
120
- it('emits the start HTML attribute on <ol> when start is non-default', () => {
121
- // Browsers and assistive tech read the start attribute directly; the CSS
122
- // counter alone is invisible to AT and copy-paste.
123
- const {container} = render(
124
- <List listStyle="decimal" start={5}>
125
- <ListItem label="Fifth" />
126
- </List>,
127
- );
128
- const ol = container.querySelector('ol')!;
129
- expect(ol.getAttribute('start')).toBe('5');
130
- });
131
-
132
- it('does not emit the start HTML attribute for the default (start=1)', () => {
133
- const {container} = render(
134
- <List listStyle="decimal">
135
- <ListItem label="First" />
136
- </List>,
137
- );
138
- const ol = container.querySelector('ol')!;
139
- expect(ol.hasAttribute('start')).toBe(false);
140
- });
141
-
142
- it('renders as <ul> when listStyle is disc', () => {
143
- const {container} = render(
144
- <List listStyle="disc">
145
- <ListItem label="Item" />
146
- </List>,
147
- );
148
- expect(container.querySelector('ul')).toBeInTheDocument();
149
- });
150
-
151
- it('renders as <ul> when listStyle is circle', () => {
152
- const {container} = render(
153
- <List listStyle="circle">
154
- <ListItem label="Item" />
155
- </List>,
156
- );
157
- expect(container.querySelector('ul')).toBeInTheDocument();
158
- });
159
-
160
- it.each(['none', 'disc', 'circle', 'decimal'] as const)(
161
- 'adds an explicit role="list" when listStyle is %s (Safari fix)',
162
- listStyle => {
163
- // The base list style always sets list-style-type: none (markers are
164
- // custom-rendered by ListItem), so Safari/VoiceOver drops the implicit
165
- // list role for EVERY variant — the explicit role must always be there.
166
- render(
167
- <List listStyle={listStyle}>
168
- <ListItem label="Item 1" />
169
- <ListItem label="Item 2" />
170
- </List>,
171
- );
172
- const list = screen.getByRole('list');
173
- expect(list).toHaveAttribute('role', 'list');
174
- expect(screen.getAllByRole('listitem')).toHaveLength(2);
175
- },
176
- );
177
-
178
- it('renders items as <li> elements', () => {
179
- const {container} = render(
180
- <List>
181
- <ListItem label="Item 1" />
182
- <ListItem label="Item 2" />
183
- </List>,
184
- );
185
- const items = container.querySelectorAll('li');
186
- expect(items).toHaveLength(2);
187
- });
188
-
189
- // ===========================================================================
190
- // Header with aria-labelledby
191
- // ===========================================================================
192
-
193
- it('renders header and associates via aria-labelledby', () => {
194
- const {container} = render(
195
- <List header={<span>Team Members</span>}>
196
- <ListItem label="Alice" />
197
- </List>,
198
- );
199
- expect(screen.getByText('Team Members')).toBeInTheDocument();
200
- const ul = container.querySelector('ul');
201
- const headerId = ul?.getAttribute('aria-labelledby');
202
- expect(headerId).toBeTruthy();
203
- const headerEl = document.getElementById(headerId!);
204
- expect(headerEl).toBeInTheDocument();
205
- expect(headerEl?.textContent).toBe('Team Members');
206
- });
207
-
208
- it('does not render aria-labelledby when no header', () => {
209
- const {container} = render(
210
- <List>
211
- <ListItem label="Item" />
212
- </List>,
213
- );
214
- const ul = container.querySelector('ul');
215
- expect(ul).not.toHaveAttribute('aria-labelledby');
216
- });
217
-
218
- it('wraps header and list in a column container', () => {
219
- const {container} = render(
220
- <List header={<span>Group</span>}>
221
- <ListItem label="Item" />
222
- </List>,
223
- );
224
- const header = screen.getByText('Group');
225
- const wrapper = header.parentElement?.parentElement;
226
- const ul = container.querySelector('ul');
227
- expect(wrapper).toContainElement(header.parentElement);
228
- expect(wrapper).toContainElement(ul);
229
- });
230
-
231
- it('does not add a wrapper div when header is absent', () => {
232
- const {container} = render(
233
- <List data-testid="my-list">
234
- <ListItem label="Item" />
235
- </List>,
236
- );
237
- const ul = container.querySelector('ul');
238
- expect(ul?.parentElement).toBe(container);
239
- });
240
-
241
- // ===========================================================================
242
- // Density variants
243
- // ===========================================================================
244
-
245
- it('renders with compact density', () => {
246
- const {container} = render(
247
- <List density="compact">
248
- <ListItem label="Item" />
249
- </List>,
250
- );
251
- const item = container.querySelector('li');
252
- expect(item).toBeInTheDocument();
253
- expect(item).toHaveAttribute('data-density', 'compact');
254
- });
255
-
256
- it('renders with balanced density (default)', () => {
257
- const {container} = render(
258
- <List>
259
- <ListItem label="Item" />
260
- </List>,
261
- );
262
- const item = container.querySelector('li');
263
- expect(item).toBeInTheDocument();
264
- expect(item).toHaveAttribute('data-density', 'balanced');
265
- expect(item).not.toHaveAttribute('data-density', 'spacious');
266
- });
267
-
268
- it('renders with spacious density', () => {
269
- const {container} = render(
270
- <List density="spacious">
271
- <ListItem label="Item" />
272
- </List>,
273
- );
274
- const item = container.querySelector('li');
275
- expect(item).toBeInTheDocument();
276
- expect(item).toHaveAttribute('data-density', 'spacious');
277
- });
278
-
279
- // ===========================================================================
280
- // Edge treatment
281
- // ===========================================================================
282
-
283
- /** Every injected rule that names one of the element's classes. */
284
- function declarationsFor(el: Element): string {
285
- return rulesDeclaredFor(el).join('\n').replace(/\s+/g, '');
286
- }
287
-
288
- /** The declarations of the row inset variable that reach the row. */
289
- function insetDeclarations(item: Element): string[] {
290
- return rulesDeclaredFor(item).filter(rule =>
291
- rule.includes('--_item-inset-inline:'),
292
- );
293
- }
294
-
295
- const ZERO_INSET = /--_item-inset-inline:\s*0(px)?\s*;/;
296
- const LIST_REACH = [
297
- 'margin-inline-start:calc(-1*var(--container-padding-inline-start,0px))',
298
- 'margin-inline-end:calc(-1*var(--container-padding-inline-end,0px))',
299
- 'width:calc(100%+var(--container-padding-inline-start,0px)+var(--container-padding-inline-end,0px))',
300
- ];
301
- const OUTSET_ROW = [
302
- 'margin-inline-start:max(var(--container-padding-inline-start,0px)-var(--_item-inset-inline),0px)',
303
- 'margin-inline-end:max(var(--container-padding-inline-end,0px)-var(--_item-inset-inline),0px)',
304
- ];
305
- const BLEED_ROW = [
306
- 'padding-inline-start:max(var(--container-padding-inline-start,0px),var(--_item-inset-inline))',
307
- 'padding-inline-end:max(var(--container-padding-inline-end,0px),var(--_item-inset-inline))',
308
- ];
309
-
310
- function renderEdge(props: Partial<React.ComponentProps<typeof List>>) {
311
- const {container} = render(
312
- <List header={<span>Items</span>} {...props}>
313
- <ListItem label="Static" />
314
- <ListItem label="Button" onClick={() => {}} />
315
- <ListItem label="Link" href="/docs" />
316
- </List>,
317
- );
318
- const ul = container.querySelector('ul')!;
319
- return {
320
- ul,
321
- header: ul.parentElement!,
322
- items: [...ul.querySelectorAll('li')],
323
- };
324
- }
325
-
326
- it('keeps the row padding and leaves the list and rows in place by default', () => {
327
- const {ul, items} = renderEdge({});
328
- for (const item of items) {
329
- expect(item.className).not.toMatch(/edge(Flush|Outset|Bleed)/);
330
- expect(insetDeclarations(item)).toHaveLength(1);
331
- expect(insetDeclarations(item)[0]).not.toMatch(ZERO_INSET);
332
- }
333
- expect(ul.className).not.toContain('reachesContainerPadding');
334
- expect(edgeContext(ul)).toBe('padded');
335
- });
336
-
337
- /** The edge each row resolved, read from the row's own edge class. */
338
- function edgeContext(ul: Element): string {
339
- const edges = [...ul.querySelectorAll('li')].map(li => {
340
- const match = /edge(Flush|Outset|Bleed)/.exec(li.className);
341
- return match ? match[1].toLowerCase() : 'padded';
342
- });
343
- expect(new Set(edges).size).toBe(1);
344
- return edges[0];
345
- }
346
-
347
- it('applies one treatment to every row, static or interactive, and never to the header', () => {
348
- for (const edge of ['flush', 'outset', 'bleed'] as const) {
349
- const {ul, header, items} = renderEdge({edge});
350
- expect(items).toHaveLength(3);
351
- expect(edgeContext(ul)).toBe(edge);
352
- expect(header.className).not.toMatch(/edge|reachesContainerPadding/);
353
- cleanup();
354
- }
355
- });
356
-
357
- it('flush: zeroes the shared inset at every density and leaves the list in place', () => {
358
- for (const density of ['compact', 'balanced', 'spacious'] as const) {
359
- const {ul, items} = renderEdge({edge: 'flush', density});
360
- expect(ul.className).not.toContain('reachesContainerPadding');
361
- for (const item of items) {
362
- expect(item).toHaveAttribute('data-density', density);
363
- const insets = insetDeclarations(item);
364
- expect(insets).toHaveLength(1);
365
- expect(insets[0]).toMatch(ZERO_INSET);
366
- }
367
- cleanup();
368
- }
369
- });
370
-
371
- it('outset: the list reaches the container padding and each row steps back in by what its inset does not fill, per edge', () => {
372
- // Each edge reads its own container padding var: one var on both edges
373
- // over-reaches the other edge under asymmetric padding (16px start /
374
- // 4px end), so a selected row would paint past the outer border.
375
- const {ul, items} = renderEdge({edge: 'outset'});
376
- const listCss = declarationsFor(ul);
377
- for (const declaration of LIST_REACH) {
378
- expect(listCss).toContain(declaration);
379
- }
380
- for (const item of items) {
381
- const css = declarationsFor(item);
382
- for (const declaration of OUTSET_ROW) {
383
- expect(css).toContain(declaration);
384
- }
385
- expect(css).not.toContain(
386
- 'margin-inline-end:max(var(--container-padding-inline-start',
387
- );
388
- expect(insetDeclarations(item)[0]).not.toMatch(ZERO_INSET);
389
- }
390
- });
391
-
392
- it('bleed: the list reaches the container padding and rows fill it with text on the padding line, per edge', () => {
393
- const {ul, items} = renderEdge({edge: 'bleed'});
394
- const listCss = declarationsFor(ul);
395
- for (const declaration of LIST_REACH) {
396
- expect(listCss).toContain(declaration);
397
- }
398
- for (const item of items) {
399
- const css = declarationsFor(item);
400
- for (const declaration of BLEED_ROW) {
401
- expect(css).toContain(declaration);
402
- }
403
- expect(css).toContain('border-radius:0');
404
- expect(css).not.toMatch(/margin-inline-(start|end):max/);
405
- }
406
- });
407
-
408
- it('keeps the inline clip on the list for every treatment', () => {
409
- for (const edge of ['padded', 'flush', 'outset', 'bleed'] as const) {
410
- const {ul} = renderEdge({edge});
411
- expect(declarationsFor(ul)).toContain('overflow-x:clip');
412
- cleanup();
413
- }
414
- });
415
-
416
- it('treats the deprecated edgeCompensation="inline" as edge="outset" without a runtime warning', () => {
417
- // Plain use is reported statically by the @deprecated type; rendering
418
- // never warns merely because the old name is used (spec:AST-017 FR29a).
419
- const warn = vi.spyOn(console, 'warn').mockImplementation(() => {});
420
- const {ul} = renderEdge({edgeCompensation: 'inline'});
421
- expect(edgeContext(ul)).toBe('outset');
422
- expect(ul.className).toContain('reachesContainerPadding');
423
- expect(warn).not.toHaveBeenCalled();
424
- warn.mockRestore();
425
- });
426
-
427
- it('lets edge win over the deprecated edgeCompensation and warns about the conflict', () => {
428
- const warn = vi.spyOn(console, 'warn').mockImplementation(() => {});
429
- const {ul} = renderEdge({edge: 'flush', edgeCompensation: 'inline'});
430
- expect(edgeContext(ul)).toBe('flush');
431
- expect(ul.className).not.toContain('reachesContainerPadding');
432
- expect(warn).toHaveBeenCalledTimes(1);
433
- const message = String(warn.mock.calls[0][0]);
434
- expect(message).toContain('`edge` wins');
435
- expect(message).toContain('astryx upgrade');
436
- warn.mockRestore();
437
- });
438
-
439
- it('keeps the inset of a ListItem outside a List', () => {
440
- const {container} = render(<ListItem label="Standalone" />);
441
- expect(container.querySelector('li')!.className).not.toMatch(
442
- /edge(Flush|Outset|Bleed)/,
443
- );
444
- });
445
- // ===========================================================================
446
- // Dividers
447
- // ===========================================================================
448
-
449
- it('renders dividers between items when hasDividers is true', () => {
450
- const {container} = render(
451
- <List hasDividers>
452
- <ListItem label="Item 1" />
453
- <ListItem label="Item 2" />
454
- <ListItem label="Item 3" />
455
- </List>,
456
- );
457
- // Dividers are rendered as borders on <li> elements, not separate DOM nodes
458
- const items = container.querySelectorAll('li');
459
- expect(items).toHaveLength(3);
460
- // No <hr> elements should exist
461
- const hrs = container.querySelectorAll('hr');
462
- expect(hrs).toHaveLength(0);
463
- });
464
-
465
- it('does not add extra DOM elements for dividers', () => {
466
- const {container} = render(
467
- <List hasDividers>
468
- <ListItem label="Item 1" />
469
- <ListItem label="Item 2" />
470
- </List>,
471
- );
472
- const list = container.querySelector('ul');
473
- // Only <li> children — no <hr> or other divider elements
474
- const children = list?.children;
475
- expect(children).toHaveLength(2);
476
- expect(children?.[0]?.tagName).toBe('LI');
477
- expect(children?.[1]?.tagName).toBe('LI');
478
- });
479
-
480
- it('does not render dividers when hasDividers is false', () => {
481
- const {container} = render(
482
- <List>
483
- <ListItem label="Item 1" />
484
- <ListItem label="Item 2" />
485
- </List>,
486
- );
487
- const hrs = container.querySelectorAll('hr');
488
- expect(hrs).toHaveLength(0);
489
- });
490
-
491
- // ===========================================================================
492
- // Interactive items — onClick (invisible button pattern)
493
- // ===========================================================================
494
-
495
- it('renders an invisible button when onClick is provided', () => {
496
- const onClick = vi.fn();
497
- const {container} = render(
498
- <List>
499
- <ListItem label="Clickable" onClick={onClick} />
500
- </List>,
501
- );
502
- const button = container.querySelector('button');
503
- expect(button).toBeInTheDocument();
504
- expect(button?.textContent).toContain('Clickable');
505
- });
506
-
507
- it('fires onClick when invisible button is clicked', async () => {
508
- const user = userEvent.setup();
509
- const onClick = vi.fn();
510
- render(
511
- <List>
512
- <ListItem label="Clickable" onClick={onClick} />
513
- </List>,
514
- );
515
- await user.click(screen.getByRole('button'));
516
- expect(onClick).toHaveBeenCalledTimes(1);
517
- });
518
-
519
- it('fires onClick when container area is clicked', async () => {
520
- const user = userEvent.setup();
521
- const onClick = vi.fn();
522
- render(
523
- <List>
524
- <ListItem
525
- label="Clickable"
526
- onClick={onClick}
527
- data-testid="item"
528
- startContent={<span data-testid="start">★</span>}
529
- />
530
- </List>,
531
- );
532
- // Click on startContent (non-interactive, should propagate)
533
- await user.click(screen.getByTestId('start'));
534
- expect(onClick).toHaveBeenCalledTimes(1);
535
- });
536
-
537
- it('does not fire item onClick when endContent interactive element is clicked', async () => {
538
- const user = userEvent.setup();
539
- const itemClick = vi.fn();
540
- const buttonClick = vi.fn();
541
- render(
542
- <List>
543
- <ListItem
544
- label="Item"
545
- onClick={itemClick}
546
- endContent={
547
- <button type="button" onClick={buttonClick}>
548
- Action
549
- </button>
550
- }
551
- />
552
- </List>,
553
- );
554
- await user.click(screen.getByText('Action'));
555
- expect(buttonClick).toHaveBeenCalledTimes(1);
556
- expect(itemClick).not.toHaveBeenCalled();
557
- });
558
-
559
- it('invisible button is focusable via keyboard', async () => {
560
- const user = userEvent.setup();
561
- const onClick = vi.fn();
562
- render(
563
- <List>
564
- <ListItem label="Focusable" onClick={onClick} />
565
- </List>,
566
- );
567
- await user.tab();
568
- expect(screen.getByRole('button')).toHaveFocus();
569
- });
570
-
571
- it('invisible button can be activated via keyboard', async () => {
572
- const user = userEvent.setup();
573
- const onClick = vi.fn();
574
- render(
575
- <List>
576
- <ListItem label="Pressable" onClick={onClick} />
577
- </List>,
578
- );
579
- await user.tab();
580
- await user.keyboard('{Enter}');
581
- expect(onClick).toHaveBeenCalledTimes(1);
582
- });
583
-
584
- it('does not render nested buttons — only one invisible button', () => {
585
- const {container} = render(
586
- <List>
587
- <ListItem label="Item" onClick={() => {}} />
588
- </List>,
589
- );
590
- const buttons = container.querySelectorAll('li button');
591
- // Should be exactly 1 invisible button (no nesting)
592
- expect(buttons).toHaveLength(1);
593
- });
594
-
595
- // ===========================================================================
596
- // Interactive items — href (invisible anchor pattern)
597
- // ===========================================================================
598
-
599
- it('renders an invisible anchor when href is provided', () => {
600
- const {container} = render(
601
- <List>
602
- <ListItem label="Link" href="/docs" />
603
- </List>,
604
- );
605
- const anchor = container.querySelector('a');
606
- expect(anchor).toBeInTheDocument();
607
- expect(anchor).toHaveAttribute('href', '/docs');
608
- expect(anchor?.textContent).toContain('Link');
609
- });
610
-
611
- it('sets target on anchor when provided', () => {
612
- const {container} = render(
613
- <List>
614
- <ListItem label="External" href="https://example.com" target="_blank" />
615
- </List>,
616
- );
617
- const anchor = container.querySelector('a');
618
- expect(anchor).toHaveAttribute('target', '_blank');
619
- expect(anchor).toHaveAttribute('rel', 'noopener noreferrer');
620
- });
621
-
622
- it('does not render button or anchor for static items', () => {
623
- const {container} = render(
624
- <List>
625
- <ListItem label="Static" />
626
- </List>,
627
- );
628
- expect(container.querySelector('button')).not.toBeInTheDocument();
629
- expect(container.querySelector('a')).not.toBeInTheDocument();
630
- });
631
-
632
- // ===========================================================================
633
- // Disabled state
634
- // ===========================================================================
635
-
636
- it('applies aria-disabled when isDisabled', () => {
637
- const {container} = render(
638
- <List>
639
- <ListItem label="Disabled" isDisabled />
640
- </List>,
641
- );
642
- const item = container.querySelector('.astryx-item');
643
- expect(item).toHaveAttribute('aria-disabled', 'true');
644
- });
645
-
646
- it('disables the invisible button when isDisabled', () => {
647
- const {container} = render(
648
- <List>
649
- <ListItem label="Disabled" onClick={() => {}} isDisabled />
650
- </List>,
651
- );
652
- const button = container.querySelector('button');
653
- expect(button).toBeDisabled();
654
- });
655
-
656
- it('does not fire onClick when disabled item is clicked', async () => {
657
- const onClick = vi.fn();
658
- const {container} = render(
659
- <List>
660
- <ListItem label="Disabled" onClick={onClick} isDisabled />
661
- </List>,
662
- );
663
- // pointerEvents: none prevents click, but let's verify the handler guards
664
- const li = container.querySelector('li');
665
- // Manually dispatch click (bypassing pointer-events)
666
- li?.dispatchEvent(new MouseEvent('click', {bubbles: true}));
667
- expect(onClick).not.toHaveBeenCalled();
668
- });
669
-
670
- // ===========================================================================
671
- // Selected state
672
- // ===========================================================================
673
-
674
- it('conveys selection via aria-current when isSelected', () => {
675
- // aria-selected is not permitted on an li (role listitem, axe:
676
- // aria-allowed-attr), so selection is exposed via aria-current — valid on
677
- // any element — so screen-reader users are still told which item is chosen.
678
- const {container} = render(
679
- <List>
680
- <ListItem label="Selected" isSelected onClick={() => {}} />
681
- </List>,
682
- );
683
- const item = container.querySelector('.astryx-item');
684
- expect(item).not.toHaveAttribute('aria-selected');
685
- expect(item).toHaveAttribute('aria-current', 'true');
686
- });
687
-
688
- it('applies neither aria-selected nor aria-current when not selected', () => {
689
- const {container} = render(
690
- <List>
691
- <ListItem label="Not Selected" />
692
- </List>,
693
- );
694
- const li = container.querySelector('li');
695
- expect(li).not.toHaveAttribute('aria-selected');
696
- expect(li).not.toHaveAttribute('aria-current');
697
- });
698
-
699
- // ===========================================================================
700
- // startContent and endContent
701
- // ===========================================================================
702
-
703
- it('renders startContent before label', () => {
704
- render(
705
- <List>
706
- <ListItem
707
- label="With Icon"
708
- startContent={<span data-testid="icon">★</span>}
709
- />
710
- </List>,
711
- );
712
- expect(screen.getByTestId('icon')).toBeInTheDocument();
713
- });
714
-
715
- it('renders endContent after label', () => {
716
- render(
717
- <List>
718
- <ListItem
719
- label="With Badge"
720
- endContent={<span data-testid="badge">3</span>}
721
- />
722
- </List>,
723
- );
724
- expect(screen.getByTestId('badge')).toBeInTheDocument();
725
- });
726
-
727
- it('startContent and endContent are siblings to invisible button', () => {
728
- const {container} = render(
729
- <List>
730
- <ListItem
731
- label="Item"
732
- onClick={() => {}}
733
- startContent={<span data-testid="start">★</span>}
734
- endContent={<span data-testid="end">→</span>}
735
- />
736
- </List>,
737
- );
738
- const button = container.querySelector('button');
739
- const li = container.querySelector('li');
740
- // startContent and endContent should be children of li, not inside button
741
- expect(li?.querySelector('[data-testid="start"]')).toBeInTheDocument();
742
- expect(li?.querySelector('[data-testid="end"]')).toBeInTheDocument();
743
- expect(
744
- button?.querySelector('[data-testid="start"]'),
745
- ).not.toBeInTheDocument();
746
- expect(
747
- button?.querySelector('[data-testid="end"]'),
748
- ).not.toBeInTheDocument();
749
- });
750
-
751
- // ===========================================================================
752
- // Border radius
753
- // ===========================================================================
754
-
755
- it('applies content radius by default', () => {
756
- render(
757
- <List>
758
- <ListItem label="Item" data-testid="item" isSelected />
759
- </List>,
760
- );
761
- const item = screen.getByTestId('item');
762
- expect(item).toBeInTheDocument();
763
- });
764
-
765
- it('removes radius when hasDividers is true', () => {
766
- render(
767
- <List hasDividers>
768
- <ListItem label="Item" data-testid="item" isSelected />
769
- </List>,
770
- );
771
- const item = screen.getByTestId('item');
772
- expect(item).toBeInTheDocument();
773
- });
774
-
775
- // ===========================================================================
776
- // List markers
777
- // ===========================================================================
778
-
779
- it('renders list markers for disc style', () => {
780
- render(
781
- <List listStyle="disc">
782
- <ListItem label="Bullet item" data-testid="item" />
783
- </List>,
784
- );
785
- const item = screen.getByTestId('item');
786
- // Custom marker rendered as a span (dot marker container)
787
- const markerContainer = item.querySelector(':scope > span:first-child');
788
- expect(markerContainer).toBeInTheDocument();
789
- // The dot itself is a nested span
790
- const dot = markerContainer?.querySelector('span');
791
- expect(dot).toBeInTheDocument();
792
- });
793
-
794
- it('renders list markers for decimal style', () => {
795
- render(
796
- <List listStyle="decimal">
797
- <ListItem label="Numbered item" data-testid="item" />
798
- </List>,
799
- );
800
- const item = screen.getByTestId('item');
801
- // Number marker uses CSS counter via ::before pseudo-element
802
- const marker = item.querySelector(':scope > span:first-child');
803
- expect(marker).toBeInTheDocument();
804
- });
805
-
806
- it('does not render markers when listStyle is none', () => {
807
- render(
808
- <List listStyle="disc">
809
- <ListItem label="With marker" data-testid="with-marker" />
810
- </List>,
811
- );
812
- const withMarker = screen.getByTestId('with-marker');
813
- const markerCount = withMarker.children.length;
814
-
815
- render(
816
- <List listStyle="none">
817
- <ListItem label="Plain item" data-testid="no-marker" />
818
- </List>,
819
- );
820
- const noMarker = screen.getByTestId('no-marker');
821
- // Without markers, the item should have fewer direct children
822
- // (no marker container element)
823
- expect(noMarker.children.length).toBeLessThan(markerCount);
824
- });
825
-
826
- // ===========================================================================
827
- // Description rendering
828
- // ===========================================================================
829
-
830
- it('does not render description when not provided', () => {
831
- render(
832
- <List>
833
- <ListItem label="Label Only" />
834
- </List>,
835
- );
836
- // Should have the label span only (plus possibly wrapper spans)
837
- expect(screen.getByText('Label Only')).toBeInTheDocument();
838
- expect(screen.queryByText('undefined')).not.toBeInTheDocument();
839
- });
840
-
841
- // ===========================================================================
842
- // ReactNode description
843
- // ===========================================================================
844
-
845
- it('accepts ReactNode as description', () => {
846
- render(
847
- <List>
848
- <ListItem
849
- label="Item"
850
- description={
851
- <div>
852
- <span>Rich</span> <span>description</span>
853
- </div>
854
- }
855
- />
856
- </List>,
857
- );
858
- expect(screen.getByText('Rich')).toBeInTheDocument();
859
- expect(screen.getByText('description')).toBeInTheDocument();
860
- });
861
-
862
- it('still accepts string description', () => {
863
- render(
864
- <List>
865
- <ListItem label="Item" description="Simple text" />
866
- </List>,
867
- );
868
- expect(screen.getByText('Simple text')).toBeInTheDocument();
869
- });
870
-
871
- it('forwards data and aria attributes onto the list element', () => {
872
- // BaseProps keeps data-*/aria-*; the list element dropped them.
873
- const {container} = render(
874
- <List listStyle="decimal" data-delimiter=")" aria-label="Steps">
875
- <ListItem label="First" />
876
- </List>,
877
- );
878
- const list = container.querySelector('ol')!;
879
- expect(list.getAttribute('data-delimiter')).toBe(')');
880
- expect(list.getAttribute('aria-label')).toBe('Steps');
881
- });
882
-
883
- it('keeps an aria-labelledby pointing outside the component', () => {
884
- // With no header of its own there is nothing to associate, so the
885
- // consumer's label must survive.
886
- const {container} = render(
887
- <List aria-labelledby="external-heading">
888
- <ListItem label="First" />
889
- </List>,
890
- );
891
- expect(container.querySelector('ul')!.getAttribute('aria-labelledby')).toBe(
892
- 'external-heading',
893
- );
894
- });
895
-
896
- it('keeps its own list role and header association', () => {
897
- // The rest spread comes first so a consumer prop cannot drop the
898
- // Safari/VoiceOver role workaround or the generated header association.
899
- const {container} = render(
900
- <List header="Steps" role="presentation" aria-labelledby="elsewhere">
901
- <ListItem label="First" />
902
- </List>,
903
- );
904
- const list = container.querySelector('ul')!;
905
- expect(list.getAttribute('role')).toBe('list');
906
- expect(list.getAttribute('aria-labelledby')).not.toBe('elsewhere');
907
- });
908
-
909
- it('accepts number as description (ReactNode)', () => {
910
- render(
911
- <List>
912
- <ListItem label="Count" description={42} />
913
- </List>,
914
- );
915
- expect(screen.getByText('42')).toBeInTheDocument();
916
- });
917
-
918
- describe('ListMarkerScope (internal, for Markdown nested lists)', () => {
919
- /** The shape inside the item's marker box. */
920
- const markerShape = (container: HTMLElement) => {
921
- // The dot, ring, or square: an empty element in the marker box.
922
- const shape = container.querySelector('li > span > span:empty');
923
- return shape == null ? null : getComputedStyle(shape);
924
- };
925
-
926
- it('draws the list style marker without a scope', () => {
927
- const {container} = render(
928
- <List listStyle="disc">
929
- <ListItem label="Item" />
930
- </List>,
931
- );
932
- expect(markerShape(container)?.borderRadius).toBe('50%');
933
- });
934
-
935
- it('draws the scope marker in place of the list style', () => {
936
- const {container} = render(
937
- <List listStyle="disc">
938
- <ListMarkerScope marker="square">
939
- <ListItem label="Item" />
940
- </ListMarkerScope>
941
- </List>,
942
- );
943
- const shape = markerShape(container);
944
- expect(shape).not.toBeNull();
945
- expect(shape?.borderRadius).not.toBe('50%');
946
- expect(container.querySelector('ul')).not.toBeNull();
947
- });
948
-
949
- it("draws a task item's read-only checkbox in place of its marker", () => {
950
- const {container} = render(
951
- <List listStyle="disc">
952
- <ListMarkerScope
953
- marker="disc"
954
- task={{isChecked: true, label: 'Done'}}>
955
- <ListItem label="Done" />
956
- </ListMarkerScope>
957
- <ListItem label="Plain" />
958
- </List>,
959
- );
960
- const checkbox = screen.getByRole('checkbox', {name: 'Done'});
961
- expect(checkbox).toBeChecked();
962
- expect(checkbox).toHaveAttribute('aria-readonly', 'true');
963
- const [task, plain] = container.querySelectorAll('li');
964
- expect(task?.contains(checkbox)).toBe(true);
965
- // The task item has no dot in its marker box; the plain item keeps it.
966
- expect(task?.querySelector(':scope > span > span:empty')).toBeNull();
967
- expect(plain?.querySelector(':scope > span > span:empty')).not.toBeNull();
968
- });
969
-
970
- it('draws no task checkbox in a list without markers', () => {
971
- render(
972
- <List>
973
- <ListMarkerScope
974
- marker="disc"
975
- task={{isChecked: true, label: 'Done'}}>
976
- <ListItem label="Done" />
977
- </ListMarkerScope>
978
- </List>,
979
- );
980
- expect(screen.queryByRole('checkbox')).toBeNull();
981
- });
982
-
983
- it('keeps a numbered list ordered with a letter marker', () => {
984
- render(
985
- <List listStyle="decimal" start={3}>
986
- <ListMarkerScope marker="lower-alpha">
987
- <ListItem label="Item" />
988
- </ListMarkerScope>
989
- </List>,
990
- );
991
- const list = screen.getByRole('list');
992
- expect(list.tagName).toBe('OL');
993
- expect(list).toHaveAttribute('start', '3');
994
- });
995
-
996
- it('draws no marker in a list without markers, or outside a list', () => {
997
- const {container} = render(
998
- <>
999
- <List>
1000
- <ListMarkerScope marker="square">
1001
- <ListItem label="In a plain list" />
1002
- </ListMarkerScope>
1003
- </List>
1004
- <ListMarkerScope marker="square">
1005
- <span>Outside a list</span>
1006
- </ListMarkerScope>
1007
- </>,
1008
- );
1009
- expect(markerShape(container)).toBeNull();
1010
- expect(screen.getByText('Outside a list')).toBeInTheDocument();
1011
- });
1012
- });
1013
- });
1014
-
1015
- describe('List and swipe actions', () => {
1016
- it('clips the rows in the inline axis with clip, never hidden, so a row dragged aside paints no further than the list', () => {
1017
- render(
1018
- <List>
1019
- <ListItem label="A" />
1020
- </List>,
1021
- );
1022
- const rules = rulesDeclaredFor(screen.getByRole('list'));
1023
- // Declared as `overflow-inline`; StyleX emits the physical longhand of
1024
- // the same axis in horizontal writing modes.
1025
- expect(rules.some(r => /overflow-(inline|x): clip/.test(r))).toBe(true);
1026
- expect(rules.some(r => /overflow[-a-z]*: hidden/.test(r))).toBe(false);
1027
- });
1028
-
1029
- it('passes swipeActions and swipeBehavior through to the row unchanged', async () => {
1030
- render(
1031
- <List>
1032
- <ListItem
1033
- label="A"
1034
- data-testid="row"
1035
- swipeBehavior="commit"
1036
- swipeActions={{trailing: [{label: 'Archive', onActivate: () => {}}]}}
1037
- />
1038
- </List>,
1039
- );
1040
- const row = screen.getByTestId('row');
1041
- expect(row.tagName).toBe('LI');
1042
- expect(row.parentElement).toBe(screen.getByRole('list'));
1043
- // The panel arrives with the lazily loaded swipe layer.
1044
- const panel = await waitFor(() => {
1045
- const found = row.querySelector('[data-swipe-panel="trailing"]');
1046
- expect(found).not.toBeNull();
1047
- return found;
1048
- });
1049
- // Commit: presentational.
1050
- expect(panel).toHaveAttribute('aria-hidden', 'true');
1051
- });
1052
- });