@primer/react 38.30.1-rc.bce2a87c7 → 38.31.0-rc.2630f104b

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 (1134) hide show
  1. package/CHANGELOG.md +5 -1
  2. package/dist/ActionBar/ActionBar.d.ts +82 -137
  3. package/dist/ActionBar/ActionBar.js +514 -713
  4. package/dist/ActionBar/ActionBar.module.css.js +14 -5
  5. package/dist/ActionBar/index.d.ts +49 -47
  6. package/dist/ActionBar/index.js +9 -9
  7. package/dist/ActionList/ActionList.module.css.js +32 -5
  8. package/dist/ActionList/ActionListContainerContext.js +4 -5
  9. package/dist/ActionList/Description.d.ts +19 -18
  10. package/dist/ActionList/Description.js +117 -133
  11. package/dist/ActionList/Divider.d.ts +8 -10
  12. package/dist/ActionList/Divider.js +31 -38
  13. package/dist/ActionList/Group.d.ts +34 -37
  14. package/dist/ActionList/Group.js +313 -377
  15. package/dist/ActionList/Group.module.css.js +11 -5
  16. package/dist/ActionList/GroupContext.js +6 -6
  17. package/dist/ActionList/GroupHeadingTrailingAction.d.ts +8 -11
  18. package/dist/ActionList/GroupHeadingTrailingAction.js +69 -69
  19. package/dist/ActionList/Heading.d.ts +11 -11
  20. package/dist/ActionList/Heading.js +88 -107
  21. package/dist/ActionList/Heading.module.css.js +5 -5
  22. package/dist/ActionList/Item.js +678 -819
  23. package/dist/ActionList/LinkItem.d.ts +17 -20
  24. package/dist/ActionList/LinkItem.js +36 -56
  25. package/dist/ActionList/List.js +173 -215
  26. package/dist/ActionList/Selection.js +83 -112
  27. package/dist/ActionList/TrailingAction.d.ts +21 -21
  28. package/dist/ActionList/TrailingAction.js +103 -119
  29. package/dist/ActionList/Visuals.d.ts +8 -18
  30. package/dist/ActionList/Visuals.js +145 -193
  31. package/dist/ActionList/index.d.ts +113 -120
  32. package/dist/ActionList/index.js +39 -39
  33. package/dist/ActionList/shared.d.ts +96 -118
  34. package/dist/ActionList/shared.js +5 -9
  35. package/dist/ActionMenu/ActionMenu.d.ts +46 -46
  36. package/dist/ActionMenu/ActionMenu.js +244 -314
  37. package/dist/ActionMenu/ActionMenu.module.css.js +5 -5
  38. package/dist/ActionMenu/index.d.ts +2 -2
  39. package/dist/AnchoredOverlay/AnchoredOverlay.d.ts +118 -115
  40. package/dist/AnchoredOverlay/AnchoredOverlay.js +259 -365
  41. package/dist/AnchoredOverlay/AnchoredOverlay.module.css.js +9 -5
  42. package/dist/AnchoredOverlay/index.d.ts +2 -3
  43. package/dist/Autocomplete/Autocomplete.d.ts +42 -43
  44. package/dist/Autocomplete/Autocomplete.js +125 -141
  45. package/dist/Autocomplete/AutocompleteContext.js +18 -20
  46. package/dist/Autocomplete/AutocompleteInput.d.ts +16 -14
  47. package/dist/Autocomplete/AutocompleteInput.js +114 -161
  48. package/dist/Autocomplete/AutocompleteMenu.d.ts +71 -68
  49. package/dist/Autocomplete/AutocompleteMenu.js +202 -245
  50. package/dist/Autocomplete/AutocompleteMenu.module.css.js +8 -5
  51. package/dist/Autocomplete/AutocompleteOverlay.d.ts +26 -18
  52. package/dist/Autocomplete/AutocompleteOverlay.js +55 -80
  53. package/dist/Autocomplete/AutocompleteOverlay.module.css.js +5 -5
  54. package/dist/Autocomplete/index.d.ts +5 -3
  55. package/dist/Avatar/Avatar.d.ts +17 -26
  56. package/dist/Avatar/Avatar.js +106 -133
  57. package/dist/Avatar/Avatar.module.css.js +5 -5
  58. package/dist/Avatar/index.d.ts +2 -3
  59. package/dist/AvatarStack/AvatarStack.d.ts +25 -14
  60. package/dist/AvatarStack/AvatarStack.js +210 -260
  61. package/dist/AvatarStack/AvatarStack.module.css.js +9 -5
  62. package/dist/AvatarStack/index.d.ts +2 -3
  63. package/dist/Banner/Banner.d.ts +82 -148
  64. package/dist/Banner/Banner.js +133 -182
  65. package/dist/Banner/Banner.module.css.js +14 -5
  66. package/dist/Banner/index.d.ts +25 -23
  67. package/dist/Banner/index.js +7 -7
  68. package/dist/BaseStyles.d.ts +17 -11
  69. package/dist/BaseStyles.js +74 -91
  70. package/dist/BaseStyles.module.css.js +5 -5
  71. package/dist/Blankslate/Blankslate.d.ts +63 -34
  72. package/dist/Blankslate/Blankslate.js +272 -334
  73. package/dist/Blankslate/Blankslate.module.css.js +12 -5
  74. package/dist/Blankslate/BlankslateContext.js +7 -9
  75. package/dist/Blankslate/index.d.ts +10 -10
  76. package/dist/Blankslate/index.js +8 -8
  77. package/dist/BranchName/BranchName.d.ts +11 -9
  78. package/dist/BranchName/BranchName.js +50 -60
  79. package/dist/BranchName/BranchName.module.css.js +5 -5
  80. package/dist/BranchName/index.d.ts +2 -3
  81. package/dist/Breadcrumbs/Breadcrumbs.d.ts +57 -49
  82. package/dist/Breadcrumbs/Breadcrumbs.js +477 -604
  83. package/dist/Breadcrumbs/Breadcrumbs.module.css.js +15 -5
  84. package/dist/Breadcrumbs/index.d.ts +2 -3
  85. package/dist/Button/Button.d.ts +7 -5
  86. package/dist/Button/Button.js +15 -18
  87. package/dist/Button/ButtonBase.d.ts +7 -5
  88. package/dist/Button/ButtonBase.js +77 -140
  89. package/dist/Button/ButtonBase.module.css.js +17 -5
  90. package/dist/Button/IconButton.d.ts +7 -5
  91. package/dist/Button/IconButton.js +43 -75
  92. package/dist/Button/LinkButton.d.ts +8 -6
  93. package/dist/Button/LinkButton.js +13 -17
  94. package/dist/Button/index.d.ts +6 -8
  95. package/dist/Button/types.d.ts +86 -85
  96. package/dist/ButtonGroup/ButtonGroup.d.ts +10 -10
  97. package/dist/ButtonGroup/ButtonGroup.js +84 -99
  98. package/dist/ButtonGroup/ButtonGroup.module.css.js +8 -5
  99. package/dist/ButtonGroup/index.d.ts +2 -3
  100. package/dist/Card/Card.d.ts +70 -108
  101. package/dist/Card/Card.js +486 -595
  102. package/dist/Card/Card.module.css.js +18 -5
  103. package/dist/Card/index.d.ts +26 -25
  104. package/dist/Card/index.js +9 -9
  105. package/dist/Checkbox/Checkbox.d.ts +34 -32
  106. package/dist/Checkbox/Checkbox.js +57 -80
  107. package/dist/Checkbox/Checkbox.module.css.js +9 -5
  108. package/dist/Checkbox/index.d.ts +2 -3
  109. package/dist/Checkbox/shared.module.css.js +5 -5
  110. package/dist/CheckboxGroup/CheckboxGroup.d.ts +22 -21
  111. package/dist/CheckboxGroup/CheckboxGroup.js +110 -131
  112. package/dist/CheckboxGroup/CheckboxGroupContext.d.ts +1 -6
  113. package/dist/CheckboxGroup/CheckboxGroupContext.js +4 -4
  114. package/dist/CheckboxGroup/index.d.ts +2 -2
  115. package/dist/CircleBadge/CircleBadge.d.ts +26 -21
  116. package/dist/CircleBadge/CircleBadge.js +91 -107
  117. package/dist/CircleBadge/CircleBadge.module.css.js +8 -5
  118. package/dist/CircleBadge/index.d.ts +2 -3
  119. package/dist/ConfirmationDialog/ConfirmationDialog.d.ts +64 -61
  120. package/dist/ConfirmationDialog/ConfirmationDialog.js +44 -58
  121. package/dist/ConfirmationDialog/useConfirm.d.ts +9 -6
  122. package/dist/ConfirmationDialog/useConfirm.js +27 -32
  123. package/dist/CounterLabel/CounterLabel.d.ts +15 -16
  124. package/dist/CounterLabel/CounterLabel.js +24 -34
  125. package/dist/CounterLabel/CounterLabel.module.css.js +5 -5
  126. package/dist/CounterLabel/index.d.ts +2 -3
  127. package/dist/DataTable/DataTable.d.ts +75 -62
  128. package/dist/DataTable/DataTable.js +100 -140
  129. package/dist/DataTable/ErrorDialog.d.ts +25 -17
  130. package/dist/DataTable/ErrorDialog.js +33 -45
  131. package/dist/DataTable/Pagination.d.ts +50 -40
  132. package/dist/DataTable/Pagination.js +464 -592
  133. package/dist/DataTable/Pagination.module.css.js +13 -5
  134. package/dist/DataTable/Table.d.ts +148 -124
  135. package/dist/DataTable/Table.js +527 -710
  136. package/dist/DataTable/Table.module.css.js +26 -5
  137. package/dist/DataTable/column.d.ts +63 -60
  138. package/dist/DataTable/column.js +10 -11
  139. package/dist/DataTable/index.d.ts +27 -28
  140. package/dist/DataTable/index.js +22 -20
  141. package/dist/DataTable/row.d.ts +5 -3
  142. package/dist/DataTable/sorting.d.ts +14 -16
  143. package/dist/DataTable/sorting.js +64 -102
  144. package/dist/DataTable/useTable.js +209 -292
  145. package/dist/DataTable/utils.d.ts +5 -5
  146. package/dist/Details/Details.d.ts +21 -16
  147. package/dist/Details/Details.js +107 -134
  148. package/dist/Details/Details.module.css.js +5 -5
  149. package/dist/Details/index.d.ts +2 -3
  150. package/dist/Dialog/Dialog.d.ts +159 -157
  151. package/dist/Dialog/Dialog.js +286 -383
  152. package/dist/Dialog/Dialog.module.css.js +22 -5
  153. package/dist/Dialog/DialogContext.js +4 -4
  154. package/dist/Dialog/index.d.ts +2 -3
  155. package/dist/FeatureFlags/DefaultFeatureFlags.d.ts +6 -3
  156. package/dist/FeatureFlags/DefaultFeatureFlags.js +10 -11
  157. package/dist/FeatureFlags/FeatureFlagContext.js +5 -5
  158. package/dist/FeatureFlags/FeatureFlagScope.d.ts +22 -20
  159. package/dist/FeatureFlags/FeatureFlagScope.js +36 -44
  160. package/dist/FeatureFlags/FeatureFlags.d.ts +12 -6
  161. package/dist/FeatureFlags/FeatureFlags.js +29 -37
  162. package/dist/FeatureFlags/index.d.ts +4 -5
  163. package/dist/FeatureFlags/useFeatureFlag.d.ts +4 -2
  164. package/dist/FeatureFlags/useFeatureFlag.js +17 -19
  165. package/dist/FilteredActionList/FilteredActionList.d.ts +142 -109
  166. package/dist/FilteredActionList/FilteredActionList.js +443 -568
  167. package/dist/FilteredActionList/FilteredActionList.module.css.js +15 -5
  168. package/dist/FilteredActionList/FilteredActionListInput.d.ts +30 -14
  169. package/dist/FilteredActionList/FilteredActionListInput.js +97 -116
  170. package/dist/FilteredActionList/FilteredActionListLoaders.d.ts +12 -7
  171. package/dist/FilteredActionList/FilteredActionListLoaders.js +110 -142
  172. package/dist/FilteredActionList/FilteredActionListLoaders.module.css.js +10 -5
  173. package/dist/FilteredActionList/constants.d.ts +11 -9
  174. package/dist/FilteredActionList/constants.js +11 -10
  175. package/dist/FilteredActionList/index.d.ts +12 -11
  176. package/dist/FilteredActionList/index.js +9 -8
  177. package/dist/FilteredActionList/types.d.ts +154 -151
  178. package/dist/FilteredActionList/useAnnouncements.js +167 -180
  179. package/dist/Flash/Flash.d.ts +11 -9
  180. package/dist/Flash/Flash.js +58 -70
  181. package/dist/Flash/Flash.module.css.js +5 -5
  182. package/dist/Flash/index.d.ts +2 -3
  183. package/dist/FormControl/FormControl.d.ts +42 -36
  184. package/dist/FormControl/FormControl.js +213 -229
  185. package/dist/FormControl/FormControl.module.css.js +11 -5
  186. package/dist/FormControl/FormControlCaption.d.ts +16 -9
  187. package/dist/FormControl/FormControlCaption.js +38 -50
  188. package/dist/FormControl/FormControlCaption.module.css.js +5 -5
  189. package/dist/FormControl/FormControlLabel.d.ts +15 -18
  190. package/dist/FormControl/FormControlLabel.js +96 -116
  191. package/dist/FormControl/FormControlLeadingVisual.js +30 -38
  192. package/dist/FormControl/FormControlLeadingVisual.module.css.js +5 -5
  193. package/dist/FormControl/_FormControlContext.d.ts +7 -21
  194. package/dist/FormControl/_FormControlContext.js +41 -48
  195. package/dist/FormControl/_FormControlValidation.d.ts +11 -11
  196. package/dist/FormControl/_FormControlValidation.js +30 -40
  197. package/dist/FormControl/index.d.ts +6 -7
  198. package/dist/Header/Header.d.ts +17 -15
  199. package/dist/Header/Header.js +141 -168
  200. package/dist/Header/Header.module.css.js +9 -5
  201. package/dist/Header/index.d.ts +2 -3
  202. package/dist/Heading/Heading.d.ts +10 -8
  203. package/dist/Heading/Heading.js +69 -80
  204. package/dist/Heading/Heading.module.css.js +5 -5
  205. package/dist/Heading/index.d.ts +2 -3
  206. package/dist/Hidden/Hidden.d.ts +18 -12
  207. package/dist/Hidden/Hidden.js +55 -78
  208. package/dist/Hidden/Hidden.module.css.js +5 -5
  209. package/dist/Hidden/index.d.ts +2 -6
  210. package/dist/InlineMessage/InlineMessage.d.ts +26 -17
  211. package/dist/InlineMessage/InlineMessage.js +99 -132
  212. package/dist/InlineMessage/InlineMessage.module.css.js +8 -5
  213. package/dist/InlineMessage/index.d.ts +2 -3
  214. package/dist/KeybindingHint/KeybindingHint.d.ts +9 -3
  215. package/dist/KeybindingHint/KeybindingHint.js +64 -81
  216. package/dist/KeybindingHint/KeybindingHint.module.css.js +5 -5
  217. package/dist/KeybindingHint/components/Chord.js +65 -80
  218. package/dist/KeybindingHint/components/Chord.module.css.js +11 -5
  219. package/dist/KeybindingHint/components/Key.js +49 -66
  220. package/dist/KeybindingHint/components/Sequence.js +11 -22
  221. package/dist/KeybindingHint/components/utils.js +20 -23
  222. package/dist/KeybindingHint/key-names.js +100 -115
  223. package/dist/KeybindingHint/platform.d.ts +4 -14
  224. package/dist/KeybindingHint/platform.js +36 -45
  225. package/dist/KeybindingHint/props.d.ts +38 -36
  226. package/dist/KeybindingHint/utils.d.ts +6 -3
  227. package/dist/KeybindingHint/utils.js +15 -15
  228. package/dist/Label/Label.d.ts +10 -10
  229. package/dist/Label/Label.js +57 -67
  230. package/dist/Label/Label.module.css.js +5 -5
  231. package/dist/Label/index.d.ts +2 -4
  232. package/dist/Label/index.js +5 -5
  233. package/dist/LabelGroup/LabelGroup.d.ts +10 -11
  234. package/dist/LabelGroup/LabelGroup.js +265 -352
  235. package/dist/LabelGroup/LabelGroup.module.css.js +12 -5
  236. package/dist/LabelGroup/index.d.ts +2 -3
  237. package/dist/Link/Link.d.ts +15 -15
  238. package/dist/Link/Link.js +80 -95
  239. package/dist/Link/Link.module.css.js +5 -5
  240. package/dist/Link/index.d.ts +2 -3
  241. package/dist/NavList/NavList.d.ts +66 -64
  242. package/dist/NavList/NavList.js +562 -801
  243. package/dist/NavList/NavList.module.css.js +8 -5
  244. package/dist/NavList/index.d.ts +2 -2
  245. package/dist/Octicon/Octicon.d.ts +11 -9
  246. package/dist/Octicon/Octicon.js +35 -37
  247. package/dist/Octicon/index.d.ts +2 -3
  248. package/dist/Overlay/Overlay.d.ts +42 -41
  249. package/dist/Overlay/Overlay.js +251 -304
  250. package/dist/Overlay/Overlay.module.css.js +9 -5
  251. package/dist/Overlay/constants.d.ts +19 -17
  252. package/dist/Overlay/constants.js +16 -15
  253. package/dist/Overlay/index.d.ts +2 -3
  254. package/dist/PageHeader/PageHeader.d.ts +50 -43
  255. package/dist/PageHeader/PageHeader.js +612 -857
  256. package/dist/PageHeader/PageHeader.module.css.js +21 -5
  257. package/dist/PageHeader/index.d.ts +2 -2
  258. package/dist/PageLayout/PageLayout.d.ts +272 -273
  259. package/dist/PageLayout/PageLayout.js +641 -926
  260. package/dist/PageLayout/PageLayout.module.css.js +31 -5
  261. package/dist/PageLayout/index.d.ts +2 -3
  262. package/dist/PageLayout/paneUtils.js +15 -29
  263. package/dist/PageLayout/usePaneWidth.d.ts +11 -92
  264. package/dist/PageLayout/usePaneWidth.js +341 -445
  265. package/dist/Pagehead/Pagehead.d.ts +12 -6
  266. package/dist/Pagehead/Pagehead.js +42 -50
  267. package/dist/Pagehead/Pagehead.module.css.js +5 -5
  268. package/dist/Pagehead/index.d.ts +2 -3
  269. package/dist/Pagination/Pagination.d.ts +35 -22
  270. package/dist/Pagination/Pagination.js +84 -114
  271. package/dist/Pagination/Pagination.module.css.js +9 -5
  272. package/dist/Pagination/index.d.ts +2 -4
  273. package/dist/Pagination/index.js +5 -5
  274. package/dist/Pagination/model.d.ts +17 -25
  275. package/dist/Pagination/model.js +118 -194
  276. package/dist/Popover/Popover.d.ts +18 -18
  277. package/dist/Popover/Popover.js +128 -153
  278. package/dist/Popover/Popover.module.css.js +8 -5
  279. package/dist/Popover/index.d.ts +2 -3
  280. package/dist/Portal/Portal.d.ts +17 -14
  281. package/dist/Portal/Portal.js +40 -51
  282. package/dist/Portal/PortalContext.d.ts +7 -4
  283. package/dist/Portal/PortalContext.js +4 -4
  284. package/dist/Portal/index.d.ts +4 -9
  285. package/dist/Portal/index.js +7 -5
  286. package/dist/Portal/portalRoot.d.ts +4 -5
  287. package/dist/Portal/portalRoot.js +27 -30
  288. package/dist/ProgressBar/ProgressBar.d.ts +17 -23
  289. package/dist/ProgressBar/ProgressBar.js +212 -257
  290. package/dist/ProgressBar/ProgressBar.module.css.js +9 -5
  291. package/dist/ProgressBar/index.d.ts +20 -17
  292. package/dist/ProgressBar/index.js +6 -8
  293. package/dist/Radio/Radio.d.ts +32 -31
  294. package/dist/Radio/Radio.js +98 -116
  295. package/dist/Radio/Radio.module.css.js +5 -5
  296. package/dist/Radio/index.d.ts +2 -3
  297. package/dist/RadioGroup/RadioGroup.d.ts +25 -21
  298. package/dist/RadioGroup/RadioGroup.js +98 -117
  299. package/dist/RadioGroup/RadioGroupContext.d.ts +1 -7
  300. package/dist/RadioGroup/RadioGroupContext.js +4 -4
  301. package/dist/RadioGroup/index.d.ts +2 -4
  302. package/dist/RelativeTime/RelativeTime.d.ts +14 -6
  303. package/dist/RelativeTime/RelativeTime.js +65 -77
  304. package/dist/RelativeTime/index.d.ts +2 -3
  305. package/dist/ScrollableRegion/ScrollableRegion.d.ts +16 -9
  306. package/dist/ScrollableRegion/ScrollableRegion.js +68 -80
  307. package/dist/ScrollableRegion/ScrollableRegion.module.css.js +5 -5
  308. package/dist/ScrollableRegion/index.d.ts +2 -3
  309. package/dist/SegmentedControl/SegmentedControl.d.ts +22 -22
  310. package/dist/SegmentedControl/SegmentedControl.js +238 -287
  311. package/dist/SegmentedControl/SegmentedControl.module.css.js +15 -5
  312. package/dist/SegmentedControl/SegmentedControlButton.d.ts +14 -22
  313. package/dist/SegmentedControl/SegmentedControlButton.js +157 -188
  314. package/dist/SegmentedControl/SegmentedControlIconButton.d.ts +15 -22
  315. package/dist/SegmentedControl/SegmentedControlIconButton.js +133 -161
  316. package/dist/SegmentedControl/index.d.ts +4 -5
  317. package/dist/Select/Select.d.ts +15 -13
  318. package/dist/Select/Select.js +193 -238
  319. package/dist/Select/Select.module.css.js +10 -5
  320. package/dist/Select/index.d.ts +2 -3
  321. package/dist/SelectPanel/SelectPanel.d.ts +122 -82
  322. package/dist/SelectPanel/SelectPanel.js +625 -861
  323. package/dist/SelectPanel/SelectPanel.module.css.js +27 -5
  324. package/dist/SelectPanel/SelectPanelMessage.d.ts +23 -21
  325. package/dist/SelectPanel/SelectPanelMessage.js +37 -39
  326. package/dist/SelectPanel/index.d.ts +3 -5
  327. package/dist/SideNav.d.ts +47 -25
  328. package/dist/SideNav.js +92 -121
  329. package/dist/SideNav.module.css.js +12 -5
  330. package/dist/Skeleton/SkeletonBox.d.ts +12 -14
  331. package/dist/Skeleton/SkeletonBox.js +100 -118
  332. package/dist/Skeleton/SkeletonBox.module.css.js +8 -5
  333. package/dist/Skeleton/index.d.ts +2 -5
  334. package/dist/SkeletonAvatar/SkeletonAvatar.d.ts +17 -10
  335. package/dist/SkeletonAvatar/SkeletonAvatar.js +95 -120
  336. package/dist/SkeletonAvatar/SkeletonAvatar.module.css.js +5 -5
  337. package/dist/SkeletonAvatar/index.d.ts +2 -3
  338. package/dist/SkeletonText/SkeletonText.d.ts +21 -14
  339. package/dist/SkeletonText/SkeletonText.js +114 -137
  340. package/dist/SkeletonText/SkeletonText.module.css.js +8 -5
  341. package/dist/SkeletonText/index.d.ts +2 -3
  342. package/dist/Spinner/Spinner.d.ts +26 -20
  343. package/dist/Spinner/Spinner.js +184 -212
  344. package/dist/Spinner/Spinner.module.css.js +9 -5
  345. package/dist/Spinner/index.d.ts +2 -3
  346. package/dist/SplitPageLayout/SplitPageLayout.d.ts +18 -22
  347. package/dist/SplitPageLayout/SplitPageLayout.js +214 -275
  348. package/dist/SplitPageLayout/index.d.ts +2 -2
  349. package/dist/Stack/Stack.d.ts +65 -68
  350. package/dist/Stack/Stack.js +207 -255
  351. package/dist/Stack/Stack.module.css.js +8 -5
  352. package/dist/Stack/index.d.ts +8 -4
  353. package/dist/Stack/index.js +4 -6
  354. package/dist/StateLabel/StateLabel.d.ts +29 -29
  355. package/dist/StateLabel/StateLabel.js +110 -123
  356. package/dist/StateLabel/StateLabel.module.css.js +8 -5
  357. package/dist/StateLabel/index.d.ts +2 -3
  358. package/dist/SubNav/SubNav.d.ts +19 -17
  359. package/dist/SubNav/SubNav.js +159 -197
  360. package/dist/SubNav/SubNav.module.css.js +11 -5
  361. package/dist/SubNav/index.d.ts +2 -3
  362. package/dist/TabNav/TabNav.d.ts +21 -15
  363. package/dist/TabNav/TabNav.js +167 -199
  364. package/dist/TabNav/TabNav.module.css.js +10 -5
  365. package/dist/TabNav/index.d.ts +2 -3
  366. package/dist/Text/Text.d.ts +17 -15
  367. package/dist/Text/Text.js +61 -73
  368. package/dist/Text/Text.module.css.js +5 -5
  369. package/dist/Text/index.d.ts +2 -3
  370. package/dist/TextInput/TextInput.d.ts +53 -53
  371. package/dist/TextInput/TextInput.js +149 -188
  372. package/dist/TextInput/TextInput.module.css.js +8 -5
  373. package/dist/TextInput/index.d.ts +3 -4
  374. package/dist/TextInputWithTokens/TextInputWithTokens.d.ts +85 -83
  375. package/dist/TextInputWithTokens/TextInputWithTokens.js +568 -674
  376. package/dist/TextInputWithTokens/TextInputWithTokens.module.css.js +14 -5
  377. package/dist/TextInputWithTokens/index.d.ts +2 -3
  378. package/dist/Textarea/TextArea.module.css.js +9 -5
  379. package/dist/Textarea/Textarea.d.ts +90 -92
  380. package/dist/Textarea/Textarea.js +232 -266
  381. package/dist/Textarea/index.d.ts +2 -3
  382. package/dist/ThemeContext.js +7 -7
  383. package/dist/ThemeProvider.d.ts +24 -23
  384. package/dist/ThemeProvider.js +156 -271
  385. package/dist/Timeline/Timeline.d.ts +47 -50
  386. package/dist/Timeline/Timeline.js +353 -424
  387. package/dist/Timeline/Timeline.module.css.js +14 -5
  388. package/dist/Timeline/constants.d.ts +4 -2
  389. package/dist/Timeline/index.d.ts +2 -3
  390. package/dist/ToggleSwitch/ToggleSwitch.d.ts +43 -42
  391. package/dist/ToggleSwitch/ToggleSwitch.js +403 -471
  392. package/dist/ToggleSwitch/ToggleSwitch.module.css.js +16 -5
  393. package/dist/ToggleSwitch/index.d.ts +2 -3
  394. package/dist/Token/IssueLabelToken.d.ts +12 -10
  395. package/dist/Token/IssueLabelToken.js +258 -299
  396. package/dist/Token/IssueLabelToken.module.css.js +8 -5
  397. package/dist/Token/Token.d.ts +14 -12
  398. package/dist/Token/Token.js +234 -282
  399. package/dist/Token/Token.module.css.js +9 -5
  400. package/dist/Token/TokenBase.d.ts +36 -37
  401. package/dist/Token/TokenBase.js +97 -116
  402. package/dist/Token/TokenBase.module.css.js +5 -5
  403. package/dist/Token/_RemoveTokenButton.js +27 -48
  404. package/dist/Token/_RemoveTokenButton.module.css.js +5 -5
  405. package/dist/Token/_TokenTextContainer.js +54 -65
  406. package/dist/Token/_TokenTextContainer.module.css.js +8 -5
  407. package/dist/Token/constants.d.ts +4 -4
  408. package/dist/Token/constants.js +3 -2
  409. package/dist/Token/index.d.ts +4 -6
  410. package/dist/Token/utils.js +5 -12
  411. package/dist/Tooltip/Tooltip.d.ts +15 -13
  412. package/dist/Tooltip/Tooltip.js +49 -55
  413. package/dist/Tooltip/Tooltip.module.css.js +20 -5
  414. package/dist/Tooltip/TooltipContext.js +4 -4
  415. package/dist/TooltipV2/Tooltip.d.ts +31 -28
  416. package/dist/TooltipV2/Tooltip.js +223 -307
  417. package/dist/TooltipV2/Tooltip.module.css.js +11 -5
  418. package/dist/TooltipV2/TooltipContext.js +4 -4
  419. package/dist/TooltipV2/index.d.ts +2 -3
  420. package/dist/TopicTag/TopicTag.d.ts +19 -13
  421. package/dist/TopicTag/TopicTag.js +46 -55
  422. package/dist/TopicTag/TopicTag.module.css.js +5 -5
  423. package/dist/TopicTag/TopicTagGroup.d.ts +10 -5
  424. package/dist/TopicTag/TopicTagGroup.js +40 -48
  425. package/dist/TopicTag/TopicTagGroup.module.css.js +5 -5
  426. package/dist/TopicTag/index.d.ts +8 -9
  427. package/dist/TopicTag/index.js +5 -7
  428. package/dist/TreeView/TreeView.d.ts +67 -73
  429. package/dist/TreeView/TreeView.js +1102 -1462
  430. package/dist/TreeView/TreeView.module.css.js +23 -5
  431. package/dist/TreeView/index.d.ts +2 -2
  432. package/dist/TreeView/shared.js +10 -9
  433. package/dist/TreeView/useRovingTabIndex.d.ts +13 -13
  434. package/dist/TreeView/useRovingTabIndex.js +144 -223
  435. package/dist/TreeView/useTreeItemCache.js +64 -79
  436. package/dist/TreeView/useTypeahead.js +90 -112
  437. package/dist/Truncate/Truncate.d.ts +11 -10
  438. package/dist/Truncate/Truncate.js +21 -33
  439. package/dist/Truncate/Truncate.module.css.js +5 -5
  440. package/dist/Truncate/index.d.ts +2 -3
  441. package/dist/UnderlineNav/UnderlineNav.d.ts +20 -18
  442. package/dist/UnderlineNav/UnderlineNav.js +94 -136
  443. package/dist/UnderlineNav/UnderlineNav.module.css.js +14 -5
  444. package/dist/UnderlineNav/UnderlineNavContext.js +4 -6
  445. package/dist/UnderlineNav/UnderlineNavItem.js +44 -67
  446. package/dist/UnderlineNav/UnderlineNavItem.module.css.js +5 -5
  447. package/dist/UnderlineNav/UnderlineNavItemsRegistry.d.ts +44 -48
  448. package/dist/UnderlineNav/UnderlineNavItemsRegistry.js +3 -5
  449. package/dist/UnderlineNav/index.d.ts +8 -6
  450. package/dist/UnderlineNav/index.js +5 -7
  451. package/dist/UnderlineNav/utils.js +6 -7
  452. package/dist/VisuallyHidden/VisuallyHidden.d.ts +12 -6
  453. package/dist/VisuallyHidden/VisuallyHidden.js +51 -49
  454. package/dist/VisuallyHidden/VisuallyHidden.module.css.js +5 -5
  455. package/dist/VisuallyHidden/index.d.ts +2 -3
  456. package/dist/_VisuallyHidden.js +50 -62
  457. package/dist/_VisuallyHidden.module.css.js +5 -5
  458. package/dist/deprecated/ActionList/Divider.d.ts +8 -5
  459. package/dist/deprecated/ActionList/Divider.js +23 -23
  460. package/dist/deprecated/ActionList/Divider.module.css.js +5 -5
  461. package/dist/deprecated/ActionList/Group.d.ts +29 -22
  462. package/dist/deprecated/ActionList/Group.js +46 -54
  463. package/dist/deprecated/ActionList/Header.d.ts +21 -23
  464. package/dist/deprecated/ActionList/Header.js +69 -81
  465. package/dist/deprecated/ActionList/Header.module.css.js +5 -5
  466. package/dist/deprecated/ActionList/Item.d.ts +88 -90
  467. package/dist/deprecated/ActionList/Item.js +308 -352
  468. package/dist/deprecated/ActionList/Item.module.css.js +18 -5
  469. package/dist/deprecated/ActionList/List.d.ts +79 -82
  470. package/dist/deprecated/ActionList/List.js +157 -196
  471. package/dist/deprecated/ActionList/List.module.css.js +5 -5
  472. package/dist/deprecated/ActionList/index.d.ts +13 -13
  473. package/dist/deprecated/ActionList/index.js +14 -14
  474. package/dist/deprecated/ActionMenu.d.ts +49 -38
  475. package/dist/deprecated/ActionMenu.js +159 -190
  476. package/dist/deprecated/DialogV1/Dialog.d.ts +30 -23
  477. package/dist/deprecated/DialogV1/Dialog.js +167 -201
  478. package/dist/deprecated/DialogV1/Dialog.module.css.js +11 -5
  479. package/dist/deprecated/DialogV1/index.d.ts +2 -3
  480. package/dist/deprecated/FilteredSearch/FilteredSearch.d.ts +8 -4
  481. package/dist/deprecated/FilteredSearch/FilteredSearch.js +43 -51
  482. package/dist/deprecated/FilteredSearch/FilteredSearch.module.css.js +5 -5
  483. package/dist/deprecated/UnderlineNav/UnderlineNav.d.ts +23 -14
  484. package/dist/deprecated/UnderlineNav/UnderlineNav.js +132 -160
  485. package/dist/deprecated/UnderlineNav/UnderlineNav.module.css.js +14 -5
  486. package/dist/deprecated/UnderlineNav/index.d.ts +2 -3
  487. package/dist/deprecated/index.d.ts +13 -26
  488. package/dist/deprecated/index.js +19 -9
  489. package/dist/experimental/IssueLabel/IssueLabel.d.ts +16 -15
  490. package/dist/experimental/IssueLabel/IssueLabel.js +134 -158
  491. package/dist/experimental/IssueLabel/IssueLabel.module.css.js +5 -5
  492. package/dist/experimental/IssueLabel/index.d.ts +2 -3
  493. package/dist/experimental/SelectPanel2/SelectPanel.d.ts +81 -74
  494. package/dist/experimental/SelectPanel2/SelectPanel.js +420 -569
  495. package/dist/experimental/SelectPanel2/SelectPanel.module.css.js +32 -5
  496. package/dist/experimental/SelectPanel2/index.d.ts +2 -3
  497. package/dist/experimental/Tabs/Tabs.d.ts +6 -11
  498. package/dist/experimental/Tabs/Tabs.js +76 -80
  499. package/dist/experimental/Tabs/TabsContext.js +4 -4
  500. package/dist/experimental/Tabs/index.d.ts +6 -6
  501. package/dist/experimental/Tabs/types.d.ts +81 -85
  502. package/dist/experimental/Tabs/useTab.d.ts +6 -3
  503. package/dist/experimental/Tabs/useTab.js +73 -93
  504. package/dist/experimental/Tabs/useTabList.d.ts +6 -3
  505. package/dist/experimental/Tabs/useTabList.js +61 -91
  506. package/dist/experimental/Tabs/useTabPanel.d.ts +6 -3
  507. package/dist/experimental/Tabs/useTabPanel.js +27 -33
  508. package/dist/experimental/Tabs/useTabs.js +7 -9
  509. package/dist/experimental/UnderlinePanels/UnderlinePanels.d.ts +57 -55
  510. package/dist/experimental/UnderlinePanels/UnderlinePanels.js +177 -254
  511. package/dist/experimental/UnderlinePanels/UnderlinePanels.module.css.js +5 -5
  512. package/dist/experimental/UnderlinePanels/index.d.ts +2 -4
  513. package/dist/experimental/hooks/index.d.ts +3 -3
  514. package/dist/experimental/index.d.ts +53 -53
  515. package/dist/experimental/index.js +48 -38
  516. package/dist/hooks/MatchMediaContext.js +4 -7
  517. package/dist/hooks/index.d.ts +11 -21
  518. package/dist/hooks/useAnchoredPosition.d.ts +16 -13
  519. package/dist/hooks/useAnchoredPosition.js +132 -148
  520. package/dist/hooks/useControllableState.js +34 -61
  521. package/dist/hooks/useDetails.d.ts +19 -13
  522. package/dist/hooks/useDetails.js +84 -99
  523. package/dist/hooks/useDialog.js +140 -178
  524. package/dist/hooks/useFocusTrap.d.ts +42 -39
  525. package/dist/hooks/useFocusTrap.js +57 -71
  526. package/dist/hooks/useFocusZone.d.ts +29 -28
  527. package/dist/hooks/useFocusZone.js +32 -40
  528. package/dist/hooks/useId.d.ts +4 -2
  529. package/dist/hooks/useId.js +14 -16
  530. package/dist/hooks/useMedia.js +65 -76
  531. package/dist/hooks/useMenuInitialFocus.d.ts +1 -3
  532. package/dist/hooks/useMenuInitialFocus.js +65 -63
  533. package/dist/hooks/useMenuKeyboardNavigation.d.ts +1 -11
  534. package/dist/hooks/useMenuKeyboardNavigation.js +129 -126
  535. package/dist/hooks/useMergedRefs.d.ts +8 -6
  536. package/dist/hooks/useMergedRefs.js +62 -76
  537. package/dist/hooks/useMnemonics.d.ts +1 -6
  538. package/dist/hooks/useMnemonics.js +77 -107
  539. package/dist/hooks/useOnEscapePress.d.ts +4 -2
  540. package/dist/hooks/useOnEscapePress.js +45 -56
  541. package/dist/hooks/useOnOutsideClick.d.ts +15 -8
  542. package/dist/hooks/useOnOutsideClick.js +32 -63
  543. package/dist/hooks/useOpenAndCloseFocus.d.ts +16 -8
  544. package/dist/hooks/useOpenAndCloseFocus.js +40 -43
  545. package/dist/hooks/useOverflow.d.ts +4 -2
  546. package/dist/hooks/useOverflow.js +32 -36
  547. package/dist/hooks/useOverlay.d.ts +24 -13
  548. package/dist/hooks/useOverlay.js +56 -75
  549. package/dist/hooks/useProvidedRefOrCreate.d.ts +6 -3
  550. package/dist/hooks/useProvidedRefOrCreate.js +24 -24
  551. package/dist/hooks/useProvidedStateOrCreate.js +33 -39
  552. package/dist/hooks/useRefObjectAsForwardedRef.d.ts +6 -3
  553. package/dist/hooks/useRefObjectAsForwardedRef.js +30 -32
  554. package/dist/hooks/useRenderForcingRef.d.ts +1 -9
  555. package/dist/hooks/useRenderForcingRef.js +42 -46
  556. package/dist/hooks/useResizeObserver.d.ts +9 -6
  557. package/dist/hooks/useResizeObserver.js +37 -46
  558. package/dist/hooks/useResponsiveValue.d.ts +9 -17
  559. package/dist/hooks/useResponsiveValue.js +37 -57
  560. package/dist/hooks/useSafeTimeout.d.ts +6 -5
  561. package/dist/hooks/useSafeTimeout.js +26 -29
  562. package/dist/hooks/useScrollFlash.js +16 -23
  563. package/dist/hooks/useSlots.d.ts +9 -12
  564. package/dist/hooks/useSlots.js +119 -157
  565. package/dist/hooks/useSyncedState.d.ts +9 -4
  566. package/dist/hooks/useSyncedState.js +31 -37
  567. package/dist/index.d.ts +120 -152
  568. package/dist/index.js +94 -94
  569. package/dist/internal/components/ButtonReset.js +45 -50
  570. package/dist/internal/components/ButtonReset.module.css.js +5 -5
  571. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroup.d.ts +26 -34
  572. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroup.js +190 -227
  573. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroup.module.css.js +12 -5
  574. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroupCaption.js +36 -46
  575. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroupContext.d.ts +1 -10
  576. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroupContext.js +4 -4
  577. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroupLabel.d.ts +11 -12
  578. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroupLabel.js +59 -75
  579. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroupValidation.d.ts +8 -9
  580. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroupValidation.js +29 -37
  581. package/dist/internal/components/CheckboxOrRadioGroup/index.d.ts +2 -4
  582. package/dist/internal/components/ConditionalWrapper.js +41 -51
  583. package/dist/internal/components/InputLabel.d.ts +18 -18
  584. package/dist/internal/components/InputLabel.js +92 -113
  585. package/dist/internal/components/InputLabel.module.css.js +8 -5
  586. package/dist/internal/components/InputValidation.js +96 -118
  587. package/dist/internal/components/InputValidation.module.css.js +9 -5
  588. package/dist/internal/components/TextInputInnerAction.d.ts +17 -34
  589. package/dist/internal/components/TextInputInnerAction.js +134 -173
  590. package/dist/internal/components/TextInputInnerAction.module.css.js +9 -5
  591. package/dist/internal/components/TextInputInnerVisualSlot.js +89 -110
  592. package/dist/internal/components/TextInputInnerVisualSlot.module.css.js +11 -5
  593. package/dist/internal/components/TextInputWrapper.d.ts +27 -34
  594. package/dist/internal/components/TextInputWrapper.js +195 -238
  595. package/dist/internal/components/TextInputWrapper.module.css.js +8 -5
  596. package/dist/internal/components/UnderlineTabbedInterface.js +196 -243
  597. package/dist/internal/components/UnderlineTabbedInterface.module.css.js +11 -5
  598. package/dist/internal/components/UnstyledTextInput.js +40 -47
  599. package/dist/internal/components/UnstyledTextInput.module.css.js +5 -5
  600. package/dist/internal/components/ValidationAnimationContainer.js +55 -66
  601. package/dist/internal/components/ValidationAnimationContainer.module.css.js +8 -5
  602. package/dist/internal/hooks/useDevOnlyEffect.js +17 -21
  603. package/dist/internal/hooks/useEffectCallback.js +35 -38
  604. package/dist/internal/hooks/useEffectOnce.js +23 -25
  605. package/dist/internal/internal-types.d.ts +5 -3
  606. package/dist/internal/utils/getResponsiveAttributes.js +23 -26
  607. package/dist/internal/utils/hasInteractiveNodes.js +34 -46
  608. package/dist/legacy-theme/ts/color-schemes.js +4250 -4732
  609. package/dist/live-region/Announce.d.ts +29 -26
  610. package/dist/live-region/Announce.js +151 -195
  611. package/dist/live-region/AriaAlert.d.ts +19 -17
  612. package/dist/live-region/AriaAlert.js +20 -22
  613. package/dist/live-region/AriaStatus.d.ts +23 -21
  614. package/dist/live-region/AriaStatus.js +20 -22
  615. package/dist/live-region/index.d.ts +4 -7
  616. package/dist/next/index.d.ts +2 -3
  617. package/dist/next/index.js +2 -1
  618. package/dist/test-helpers.d.ts +4 -0
  619. package/dist/test-helpers.js +40 -62
  620. package/dist/theme.d.ts +1164 -1162
  621. package/dist/theme.js +83 -47
  622. package/dist/useTheme.d.ts +18 -14
  623. package/dist/useTheme.js +8 -11
  624. package/dist/utils/as-slot.d.ts +6 -3
  625. package/dist/utils/as-slot.js +22 -26
  626. package/dist/utils/character-counter.js +18 -27
  627. package/dist/utils/create-component.d.ts +6 -4
  628. package/dist/utils/create-component.js +15 -16
  629. package/dist/utils/descendant-registry.d.ts +1 -32
  630. package/dist/utils/descendant-registry.js +182 -218
  631. package/dist/utils/environment.js +10 -21
  632. package/dist/utils/getBreakpointDeclarations.js +9 -10
  633. package/dist/utils/invariant.js +17 -23
  634. package/dist/utils/is-slot.d.ts +6 -3
  635. package/dist/utils/is-slot.js +10 -11
  636. package/dist/utils/isNumeric.js +3 -3
  637. package/dist/utils/modern-polymorphic.d.ts +8 -14
  638. package/dist/utils/modern-polymorphic.js +12 -20
  639. package/dist/utils/polymorphic.d.ts +25 -34
  640. package/dist/utils/scroll.js +8 -11
  641. package/dist/utils/theme.js +5 -10
  642. package/dist/utils/types/AriaRole.d.ts +4 -2
  643. package/dist/utils/types/ComponentProps.d.ts +4 -2
  644. package/dist/utils/types/FormValidationStatus.d.ts +4 -2
  645. package/dist/utils/types/KeyPaths.d.ts +4 -4
  646. package/dist/utils/types/MandateProps.d.ts +4 -4
  647. package/dist/utils/types/Merge.d.ts +4 -2
  648. package/dist/utils/types/Slots.d.ts +8 -6
  649. package/dist/utils/types/ViewportRangeKeys.d.ts +5 -3
  650. package/dist/utils/useIsomorphicLayoutEffect.d.ts +5 -3
  651. package/dist/utils/useIsomorphicLayoutEffect.js +4 -9
  652. package/dist/utils/warning.js +13 -20
  653. package/generated/hooks.json +1 -1
  654. package/package.json +6 -10
  655. package/dist/ActionBar/ActionBar.d.ts.map +0 -1
  656. package/dist/ActionBar/disabled.ActionBar.Figma.d.ts +0 -2
  657. package/dist/ActionBar/disabled.ActionBar.Figma.d.ts.map +0 -1
  658. package/dist/ActionBar/index.d.ts.map +0 -1
  659. package/dist/ActionList/ActionListContainerContext.d.ts +0 -16
  660. package/dist/ActionList/ActionListContainerContext.d.ts.map +0 -1
  661. package/dist/ActionList/Description.d.ts.map +0 -1
  662. package/dist/ActionList/Divider.d.ts.map +0 -1
  663. package/dist/ActionList/Group.d.ts.map +0 -1
  664. package/dist/ActionList/GroupContext.d.ts +0 -8
  665. package/dist/ActionList/GroupContext.d.ts.map +0 -1
  666. package/dist/ActionList/GroupHeadingTrailingAction.d.ts.map +0 -1
  667. package/dist/ActionList/Heading.d.ts.map +0 -1
  668. package/dist/ActionList/Item.d.ts +0 -56
  669. package/dist/ActionList/Item.d.ts.map +0 -1
  670. package/dist/ActionList/LinkItem.d.ts.map +0 -1
  671. package/dist/ActionList/List.d.ts +0 -15
  672. package/dist/ActionList/List.d.ts.map +0 -1
  673. package/dist/ActionList/Selection.d.ts +0 -6
  674. package/dist/ActionList/Selection.d.ts.map +0 -1
  675. package/dist/ActionList/TrailingAction.d.ts.map +0 -1
  676. package/dist/ActionList/Visuals.d.ts.map +0 -1
  677. package/dist/ActionList/index.d.ts.map +0 -1
  678. package/dist/ActionList/shared.d.ts.map +0 -1
  679. package/dist/ActionMenu/ActionMenu.d.ts.map +0 -1
  680. package/dist/ActionMenu/index.d.ts.map +0 -1
  681. package/dist/AnchoredOverlay/AnchoredOverlay.d.ts.map +0 -1
  682. package/dist/AnchoredOverlay/index.d.ts.map +0 -1
  683. package/dist/Autocomplete/Autocomplete.d.ts.map +0 -1
  684. package/dist/Autocomplete/AutocompleteContext.d.ts +0 -37
  685. package/dist/Autocomplete/AutocompleteContext.d.ts.map +0 -1
  686. package/dist/Autocomplete/AutocompleteInput.d.ts.map +0 -1
  687. package/dist/Autocomplete/AutocompleteMenu.d.ts.map +0 -1
  688. package/dist/Autocomplete/AutocompleteOverlay.d.ts.map +0 -1
  689. package/dist/Autocomplete/index.d.ts.map +0 -1
  690. package/dist/Avatar/Avatar.d.ts.map +0 -1
  691. package/dist/Avatar/index.d.ts.map +0 -1
  692. package/dist/Avatar/storyHelpers.d.ts +0 -6
  693. package/dist/Avatar/storyHelpers.d.ts.map +0 -1
  694. package/dist/AvatarStack/AvatarStack.d.ts.map +0 -1
  695. package/dist/AvatarStack/index.d.ts.map +0 -1
  696. package/dist/Banner/Banner.d.ts.map +0 -1
  697. package/dist/Banner/index.d.ts.map +0 -1
  698. package/dist/BaseStyles.d.ts.map +0 -1
  699. package/dist/Blankslate/Blankslate.d.ts.map +0 -1
  700. package/dist/Blankslate/BlankslateContext.d.ts +0 -7
  701. package/dist/Blankslate/BlankslateContext.d.ts.map +0 -1
  702. package/dist/Blankslate/index.d.ts.map +0 -1
  703. package/dist/BranchName/BranchName.d.ts.map +0 -1
  704. package/dist/BranchName/index.d.ts.map +0 -1
  705. package/dist/Breadcrumbs/Breadcrumbs.d.ts.map +0 -1
  706. package/dist/Breadcrumbs/index.d.ts.map +0 -1
  707. package/dist/Button/Button.d.ts.map +0 -1
  708. package/dist/Button/ButtonBase.d.ts.map +0 -1
  709. package/dist/Button/IconButton.d.ts.map +0 -1
  710. package/dist/Button/LinkButton.d.ts.map +0 -1
  711. package/dist/Button/index.d.ts.map +0 -1
  712. package/dist/Button/types.d.ts.map +0 -1
  713. package/dist/ButtonGroup/ButtonGroup.d.ts.map +0 -1
  714. package/dist/ButtonGroup/index.d.ts.map +0 -1
  715. package/dist/Card/Card.d.ts.map +0 -1
  716. package/dist/Card/index.d.ts.map +0 -1
  717. package/dist/Checkbox/Checkbox.d.ts.map +0 -1
  718. package/dist/Checkbox/index.d.ts.map +0 -1
  719. package/dist/CheckboxGroup/CheckboxGroup.d.ts.map +0 -1
  720. package/dist/CheckboxGroup/CheckboxGroupContext.d.ts.map +0 -1
  721. package/dist/CheckboxGroup/index.d.ts.map +0 -1
  722. package/dist/CircleBadge/CircleBadge.d.ts.map +0 -1
  723. package/dist/CircleBadge/index.d.ts.map +0 -1
  724. package/dist/ConfirmationDialog/ConfirmationDialog.d.ts.map +0 -1
  725. package/dist/ConfirmationDialog/useConfirm.d.ts.map +0 -1
  726. package/dist/CounterLabel/CounterLabel.d.ts.map +0 -1
  727. package/dist/CounterLabel/index.d.ts.map +0 -1
  728. package/dist/DataTable/DataTable.d.ts.map +0 -1
  729. package/dist/DataTable/ErrorDialog.d.ts.map +0 -1
  730. package/dist/DataTable/Pagination.d.ts.map +0 -1
  731. package/dist/DataTable/Table.d.ts.map +0 -1
  732. package/dist/DataTable/__tests__/sorting.test.d.ts +0 -2
  733. package/dist/DataTable/__tests__/sorting.test.d.ts.map +0 -1
  734. package/dist/DataTable/column.d.ts.map +0 -1
  735. package/dist/DataTable/index.d.ts.map +0 -1
  736. package/dist/DataTable/row.d.ts.map +0 -1
  737. package/dist/DataTable/sorting.d.ts.map +0 -1
  738. package/dist/DataTable/storyHelpers.d.ts +0 -4
  739. package/dist/DataTable/storyHelpers.d.ts.map +0 -1
  740. package/dist/DataTable/storybook/data.d.ts +0 -41
  741. package/dist/DataTable/storybook/data.d.ts.map +0 -1
  742. package/dist/DataTable/useTable.d.ts +0 -43
  743. package/dist/DataTable/useTable.d.ts.map +0 -1
  744. package/dist/DataTable/utils.d.ts.map +0 -1
  745. package/dist/Details/Details.d.ts.map +0 -1
  746. package/dist/Details/index.d.ts.map +0 -1
  747. package/dist/Dialog/Dialog.d.ts.map +0 -1
  748. package/dist/Dialog/DialogContext.d.ts +0 -3
  749. package/dist/Dialog/DialogContext.d.ts.map +0 -1
  750. package/dist/Dialog/index.d.ts.map +0 -1
  751. package/dist/FeatureFlags/DefaultFeatureFlags.d.ts.map +0 -1
  752. package/dist/FeatureFlags/FeatureFlagContext.d.ts +0 -3
  753. package/dist/FeatureFlags/FeatureFlagContext.d.ts.map +0 -1
  754. package/dist/FeatureFlags/FeatureFlagScope.d.ts.map +0 -1
  755. package/dist/FeatureFlags/FeatureFlags.d.ts.map +0 -1
  756. package/dist/FeatureFlags/index.d.ts.map +0 -1
  757. package/dist/FeatureFlags/useFeatureFlag.d.ts.map +0 -1
  758. package/dist/FilteredActionList/FilteredActionList.d.ts.map +0 -1
  759. package/dist/FilteredActionList/FilteredActionListInput.d.ts.map +0 -1
  760. package/dist/FilteredActionList/FilteredActionListLoaders.d.ts.map +0 -1
  761. package/dist/FilteredActionList/constants.d.ts.map +0 -1
  762. package/dist/FilteredActionList/index.d.ts.map +0 -1
  763. package/dist/FilteredActionList/types.d.ts.map +0 -1
  764. package/dist/FilteredActionList/useAnnouncements.d.ts +0 -6
  765. package/dist/FilteredActionList/useAnnouncements.d.ts.map +0 -1
  766. package/dist/Flash/Flash.d.ts.map +0 -1
  767. package/dist/Flash/index.d.ts.map +0 -1
  768. package/dist/FormControl/FormControl.d.ts.map +0 -1
  769. package/dist/FormControl/FormControlCaption.d.ts.map +0 -1
  770. package/dist/FormControl/FormControlLabel.d.ts.map +0 -1
  771. package/dist/FormControl/FormControlLeadingVisual.d.ts +0 -7
  772. package/dist/FormControl/FormControlLeadingVisual.d.ts.map +0 -1
  773. package/dist/FormControl/_FormControlContext.d.ts.map +0 -1
  774. package/dist/FormControl/_FormControlValidation.d.ts.map +0 -1
  775. package/dist/FormControl/index.d.ts.map +0 -1
  776. package/dist/Header/Header.d.ts.map +0 -1
  777. package/dist/Header/index.d.ts.map +0 -1
  778. package/dist/Heading/Heading.d.ts.map +0 -1
  779. package/dist/Heading/index.d.ts.map +0 -1
  780. package/dist/Hidden/Hidden.d.ts.map +0 -1
  781. package/dist/Hidden/index.d.ts.map +0 -1
  782. package/dist/InlineMessage/InlineMessage.d.ts.map +0 -1
  783. package/dist/InlineMessage/index.d.ts.map +0 -1
  784. package/dist/KeybindingHint/KeybindingHint.d.ts.map +0 -1
  785. package/dist/KeybindingHint/components/Chord.d.ts +0 -3
  786. package/dist/KeybindingHint/components/Chord.d.ts.map +0 -1
  787. package/dist/KeybindingHint/components/Key.d.ts +0 -9
  788. package/dist/KeybindingHint/components/Key.d.ts.map +0 -1
  789. package/dist/KeybindingHint/components/Sequence.d.ts +0 -3
  790. package/dist/KeybindingHint/components/Sequence.d.ts.map +0 -1
  791. package/dist/KeybindingHint/components/utils.d.ts +0 -8
  792. package/dist/KeybindingHint/components/utils.d.ts.map +0 -1
  793. package/dist/KeybindingHint/index.d.ts +0 -4
  794. package/dist/KeybindingHint/index.d.ts.map +0 -1
  795. package/dist/KeybindingHint/key-names.d.ts +0 -17
  796. package/dist/KeybindingHint/key-names.d.ts.map +0 -1
  797. package/dist/KeybindingHint/platform.d.ts.map +0 -1
  798. package/dist/KeybindingHint/props.d.ts.map +0 -1
  799. package/dist/KeybindingHint/utils.d.ts.map +0 -1
  800. package/dist/Label/Label.d.ts.map +0 -1
  801. package/dist/Label/index.d.ts.map +0 -1
  802. package/dist/LabelGroup/LabelGroup.d.ts.map +0 -1
  803. package/dist/LabelGroup/index.d.ts.map +0 -1
  804. package/dist/Link/Link.d.ts.map +0 -1
  805. package/dist/Link/index.d.ts.map +0 -1
  806. package/dist/NavList/NavList.d.ts.map +0 -1
  807. package/dist/NavList/index.d.ts.map +0 -1
  808. package/dist/Octicon/Octicon.d.ts.map +0 -1
  809. package/dist/Octicon/index.d.ts.map +0 -1
  810. package/dist/Overlay/Overlay.d.ts.map +0 -1
  811. package/dist/Overlay/constants.d.ts.map +0 -1
  812. package/dist/Overlay/index.d.ts.map +0 -1
  813. package/dist/PageHeader/PageHeader.d.ts.map +0 -1
  814. package/dist/PageHeader/index.d.ts.map +0 -1
  815. package/dist/PageLayout/PageLayout.d.ts.map +0 -1
  816. package/dist/PageLayout/index.d.ts.map +0 -1
  817. package/dist/PageLayout/paneUtils.d.ts +0 -11
  818. package/dist/PageLayout/paneUtils.d.ts.map +0 -1
  819. package/dist/PageLayout/usePaneWidth.d.ts.map +0 -1
  820. package/dist/PageLayout/usePaneWidth.test.d.ts +0 -2
  821. package/dist/PageLayout/usePaneWidth.test.d.ts.map +0 -1
  822. package/dist/Pagehead/Pagehead.d.ts.map +0 -1
  823. package/dist/Pagehead/index.d.ts.map +0 -1
  824. package/dist/Pagination/Pagination.d.ts.map +0 -1
  825. package/dist/Pagination/index.d.ts.map +0 -1
  826. package/dist/Pagination/mocks/ReactRouterLink.d.ts +0 -8
  827. package/dist/Pagination/mocks/ReactRouterLink.d.ts.map +0 -1
  828. package/dist/Pagination/model.d.ts.map +0 -1
  829. package/dist/Placeholder.d.ts +0 -9
  830. package/dist/Placeholder.d.ts.map +0 -1
  831. package/dist/Popover/Popover.d.ts.map +0 -1
  832. package/dist/Popover/index.d.ts.map +0 -1
  833. package/dist/Portal/Portal.d.ts.map +0 -1
  834. package/dist/Portal/PortalContext.d.ts.map +0 -1
  835. package/dist/Portal/index.d.ts.map +0 -1
  836. package/dist/Portal/portalRoot.d.ts.map +0 -1
  837. package/dist/ProgressBar/ProgressBar.d.ts.map +0 -1
  838. package/dist/ProgressBar/index.d.ts.map +0 -1
  839. package/dist/Radio/Radio.d.ts.map +0 -1
  840. package/dist/Radio/index.d.ts.map +0 -1
  841. package/dist/RadioGroup/RadioGroup.d.ts.map +0 -1
  842. package/dist/RadioGroup/RadioGroupContext.d.ts.map +0 -1
  843. package/dist/RadioGroup/index.d.ts.map +0 -1
  844. package/dist/RelativeTime/RelativeTime.d.ts.map +0 -1
  845. package/dist/RelativeTime/index.d.ts.map +0 -1
  846. package/dist/ScrollableRegion/ScrollableRegion.d.ts.map +0 -1
  847. package/dist/ScrollableRegion/index.d.ts.map +0 -1
  848. package/dist/SegmentedControl/SegmentedControl.d.ts.map +0 -1
  849. package/dist/SegmentedControl/SegmentedControlButton.d.ts.map +0 -1
  850. package/dist/SegmentedControl/SegmentedControlIconButton.d.ts.map +0 -1
  851. package/dist/SegmentedControl/index.d.ts.map +0 -1
  852. package/dist/Select/Select.d.ts.map +0 -1
  853. package/dist/Select/index.d.ts.map +0 -1
  854. package/dist/SelectPanel/SelectPanel.d.ts.map +0 -1
  855. package/dist/SelectPanel/SelectPanelMessage.d.ts.map +0 -1
  856. package/dist/SelectPanel/index.d.ts.map +0 -1
  857. package/dist/SideNav.d.ts.map +0 -1
  858. package/dist/Skeleton/SkeletonBox.d.ts.map +0 -1
  859. package/dist/Skeleton/index.d.ts.map +0 -1
  860. package/dist/SkeletonAvatar/SkeletonAvatar.d.ts.map +0 -1
  861. package/dist/SkeletonAvatar/index.d.ts.map +0 -1
  862. package/dist/SkeletonText/SkeletonText.d.ts.map +0 -1
  863. package/dist/SkeletonText/index.d.ts.map +0 -1
  864. package/dist/Spinner/Spinner.d.ts.map +0 -1
  865. package/dist/Spinner/index.d.ts.map +0 -1
  866. package/dist/SplitPageLayout/SplitPageLayout.d.ts.map +0 -1
  867. package/dist/SplitPageLayout/index.d.ts.map +0 -1
  868. package/dist/Stack/Stack.d.ts.map +0 -1
  869. package/dist/Stack/index.d.ts.map +0 -1
  870. package/dist/StateLabel/StateLabel.d.ts.map +0 -1
  871. package/dist/StateLabel/index.d.ts.map +0 -1
  872. package/dist/SubNav/SubNav.d.ts.map +0 -1
  873. package/dist/SubNav/index.d.ts.map +0 -1
  874. package/dist/TabNav/TabNav.d.ts.map +0 -1
  875. package/dist/TabNav/index.d.ts.map +0 -1
  876. package/dist/Text/Text.d.ts.map +0 -1
  877. package/dist/Text/index.d.ts.map +0 -1
  878. package/dist/TextInput/TextInput.d.ts.map +0 -1
  879. package/dist/TextInput/index.d.ts.map +0 -1
  880. package/dist/TextInputWithTokens/TextInputWithTokens.d.ts.map +0 -1
  881. package/dist/TextInputWithTokens/index.d.ts.map +0 -1
  882. package/dist/Textarea/Textarea.d.ts.map +0 -1
  883. package/dist/Textarea/index.d.ts.map +0 -1
  884. package/dist/ThemeContext.d.ts +0 -15
  885. package/dist/ThemeContext.d.ts.map +0 -1
  886. package/dist/ThemeProvider.d.ts.map +0 -1
  887. package/dist/Timeline/Timeline.d.ts.map +0 -1
  888. package/dist/Timeline/constants.d.ts.map +0 -1
  889. package/dist/Timeline/index.d.ts.map +0 -1
  890. package/dist/ToggleSwitch/ToggleSwitch.d.ts.map +0 -1
  891. package/dist/ToggleSwitch/ToggleSwitchStoryWrapper.d.ts +0 -4
  892. package/dist/ToggleSwitch/ToggleSwitchStoryWrapper.d.ts.map +0 -1
  893. package/dist/ToggleSwitch/index.d.ts.map +0 -1
  894. package/dist/Token/IssueLabelToken.d.ts.map +0 -1
  895. package/dist/Token/Token.d.ts.map +0 -1
  896. package/dist/Token/TokenBase.d.ts.map +0 -1
  897. package/dist/Token/_RemoveTokenButton.d.ts +0 -13
  898. package/dist/Token/_RemoveTokenButton.d.ts.map +0 -1
  899. package/dist/Token/_TokenTextContainer.d.ts +0 -5
  900. package/dist/Token/_TokenTextContainer.d.ts.map +0 -1
  901. package/dist/Token/constants.d.ts.map +0 -1
  902. package/dist/Token/index.d.ts.map +0 -1
  903. package/dist/Token/utils.d.ts +0 -3
  904. package/dist/Token/utils.d.ts.map +0 -1
  905. package/dist/Tooltip/Tooltip.d.ts.map +0 -1
  906. package/dist/Tooltip/TooltipContext.d.ts +0 -5
  907. package/dist/Tooltip/TooltipContext.d.ts.map +0 -1
  908. package/dist/Tooltip/index.d.ts +0 -3
  909. package/dist/Tooltip/index.d.ts.map +0 -1
  910. package/dist/TooltipV2/Tooltip.d.ts.map +0 -1
  911. package/dist/TooltipV2/TooltipContext.d.ts +0 -5
  912. package/dist/TooltipV2/TooltipContext.d.ts.map +0 -1
  913. package/dist/TooltipV2/index.d.ts.map +0 -1
  914. package/dist/TopicTag/TopicTag.d.ts.map +0 -1
  915. package/dist/TopicTag/TopicTagGroup.d.ts.map +0 -1
  916. package/dist/TopicTag/index.d.ts.map +0 -1
  917. package/dist/TreeView/TreeView.d.ts.map +0 -1
  918. package/dist/TreeView/index.d.ts.map +0 -1
  919. package/dist/TreeView/shared.d.ts +0 -5
  920. package/dist/TreeView/shared.d.ts.map +0 -1
  921. package/dist/TreeView/useRovingTabIndex.d.ts.map +0 -1
  922. package/dist/TreeView/useTreeItemCache.d.ts +0 -16
  923. package/dist/TreeView/useTreeItemCache.d.ts.map +0 -1
  924. package/dist/TreeView/useTreeItemCache.test.d.ts +0 -2
  925. package/dist/TreeView/useTreeItemCache.test.d.ts.map +0 -1
  926. package/dist/TreeView/useTypeahead.d.ts +0 -8
  927. package/dist/TreeView/useTypeahead.d.ts.map +0 -1
  928. package/dist/Truncate/Truncate.d.ts.map +0 -1
  929. package/dist/Truncate/index.d.ts.map +0 -1
  930. package/dist/UnderlineNav/UnderlineNav.d.ts.map +0 -1
  931. package/dist/UnderlineNav/UnderlineNavContext.d.ts +0 -4
  932. package/dist/UnderlineNav/UnderlineNavContext.d.ts.map +0 -1
  933. package/dist/UnderlineNav/UnderlineNavItem.d.ts +0 -4
  934. package/dist/UnderlineNav/UnderlineNavItem.d.ts.map +0 -1
  935. package/dist/UnderlineNav/UnderlineNavItemsRegistry.d.ts.map +0 -1
  936. package/dist/UnderlineNav/index.d.ts.map +0 -1
  937. package/dist/UnderlineNav/utils.d.ts +0 -5
  938. package/dist/UnderlineNav/utils.d.ts.map +0 -1
  939. package/dist/VisuallyHidden/VisuallyHidden.d.ts.map +0 -1
  940. package/dist/VisuallyHidden/index.d.ts.map +0 -1
  941. package/dist/_VisuallyHidden.d.ts +0 -8
  942. package/dist/_VisuallyHidden.d.ts.map +0 -1
  943. package/dist/deprecated/ActionList/Divider.d.ts.map +0 -1
  944. package/dist/deprecated/ActionList/Group.d.ts.map +0 -1
  945. package/dist/deprecated/ActionList/Header.d.ts.map +0 -1
  946. package/dist/deprecated/ActionList/Item.d.ts.map +0 -1
  947. package/dist/deprecated/ActionList/List.d.ts.map +0 -1
  948. package/dist/deprecated/ActionList/index.d.ts.map +0 -1
  949. package/dist/deprecated/ActionMenu.d.ts.map +0 -1
  950. package/dist/deprecated/DialogV1/Dialog.d.ts.map +0 -1
  951. package/dist/deprecated/DialogV1/index.d.ts.map +0 -1
  952. package/dist/deprecated/FilteredSearch/FilteredSearch.d.ts.map +0 -1
  953. package/dist/deprecated/FilteredSearch/index.d.ts +0 -3
  954. package/dist/deprecated/FilteredSearch/index.d.ts.map +0 -1
  955. package/dist/deprecated/UnderlineNav/UnderlineNav.d.ts.map +0 -1
  956. package/dist/deprecated/UnderlineNav/index.d.ts.map +0 -1
  957. package/dist/deprecated/index.d.ts.map +0 -1
  958. package/dist/deprecated/utils/create-slots.d.ts +0 -21
  959. package/dist/deprecated/utils/create-slots.d.ts.map +0 -1
  960. package/dist/experimental/CSSComponent/index.d.ts +0 -3
  961. package/dist/experimental/CSSComponent/index.d.ts.map +0 -1
  962. package/dist/experimental/IssueLabel/IssueLabel.d.ts.map +0 -1
  963. package/dist/experimental/IssueLabel/index.d.ts.map +0 -1
  964. package/dist/experimental/SelectPanel2/SelectPanel.d.ts.map +0 -1
  965. package/dist/experimental/SelectPanel2/index.d.ts.map +0 -1
  966. package/dist/experimental/SelectPanel2/mock-story-data.d.ts +0 -67
  967. package/dist/experimental/SelectPanel2/mock-story-data.d.ts.map +0 -1
  968. package/dist/experimental/Tabs/Tabs.d.ts.map +0 -1
  969. package/dist/experimental/Tabs/TabsContext.d.ts +0 -3
  970. package/dist/experimental/Tabs/TabsContext.d.ts.map +0 -1
  971. package/dist/experimental/Tabs/index.d.ts.map +0 -1
  972. package/dist/experimental/Tabs/types.d.ts.map +0 -1
  973. package/dist/experimental/Tabs/useTab.d.ts.map +0 -1
  974. package/dist/experimental/Tabs/useTabList.d.ts.map +0 -1
  975. package/dist/experimental/Tabs/useTabPanel.d.ts.map +0 -1
  976. package/dist/experimental/Tabs/useTabs.d.ts +0 -3
  977. package/dist/experimental/Tabs/useTabs.d.ts.map +0 -1
  978. package/dist/experimental/UnderlinePanels/UnderlinePanels.d.ts.map +0 -1
  979. package/dist/experimental/UnderlinePanels/index.d.ts.map +0 -1
  980. package/dist/experimental/hooks/index.d.ts.map +0 -1
  981. package/dist/experimental/index.d.ts.map +0 -1
  982. package/dist/hooks/MatchMedia.d.ts +0 -23
  983. package/dist/hooks/MatchMedia.d.ts.map +0 -1
  984. package/dist/hooks/MatchMediaContext.d.ts +0 -5
  985. package/dist/hooks/MatchMediaContext.d.ts.map +0 -1
  986. package/dist/hooks/index.d.ts.map +0 -1
  987. package/dist/hooks/useAnchoredPosition.d.ts.map +0 -1
  988. package/dist/hooks/useControllableState.d.ts +0 -35
  989. package/dist/hooks/useControllableState.d.ts.map +0 -1
  990. package/dist/hooks/useDetails.d.ts.map +0 -1
  991. package/dist/hooks/useDialog.d.ts +0 -16
  992. package/dist/hooks/useDialog.d.ts.map +0 -1
  993. package/dist/hooks/useFocusTrap.d.ts.map +0 -1
  994. package/dist/hooks/useFocusZone.d.ts.map +0 -1
  995. package/dist/hooks/useId.d.ts.map +0 -1
  996. package/dist/hooks/useIsMacOS.d.ts +0 -19
  997. package/dist/hooks/useIsMacOS.d.ts.map +0 -1
  998. package/dist/hooks/useMedia.d.ts +0 -16
  999. package/dist/hooks/useMedia.d.ts.map +0 -1
  1000. package/dist/hooks/useMenuInitialFocus.d.ts.map +0 -1
  1001. package/dist/hooks/useMenuKeyboardNavigation.d.ts.map +0 -1
  1002. package/dist/hooks/useMergedRefs.d.ts.map +0 -1
  1003. package/dist/hooks/useMnemonics.d.ts.map +0 -1
  1004. package/dist/hooks/useOnEscapePress.d.ts.map +0 -1
  1005. package/dist/hooks/useOnOutsideClick.d.ts.map +0 -1
  1006. package/dist/hooks/useOpenAndCloseFocus.d.ts.map +0 -1
  1007. package/dist/hooks/useOverflow.d.ts.map +0 -1
  1008. package/dist/hooks/useOverlay.d.ts.map +0 -1
  1009. package/dist/hooks/useProvidedRefOrCreate.d.ts.map +0 -1
  1010. package/dist/hooks/useProvidedStateOrCreate.d.ts +0 -11
  1011. package/dist/hooks/useProvidedStateOrCreate.d.ts.map +0 -1
  1012. package/dist/hooks/useRefObjectAsForwardedRef.d.ts.map +0 -1
  1013. package/dist/hooks/useRenderForcingRef.d.ts.map +0 -1
  1014. package/dist/hooks/useResizeObserver.d.ts.map +0 -1
  1015. package/dist/hooks/useResponsiveValue.d.ts.map +0 -1
  1016. package/dist/hooks/useSafeTimeout.d.ts.map +0 -1
  1017. package/dist/hooks/useScrollFlash.d.ts +0 -7
  1018. package/dist/hooks/useScrollFlash.d.ts.map +0 -1
  1019. package/dist/hooks/useSlots.d.ts.map +0 -1
  1020. package/dist/hooks/useSyncedState.d.ts.map +0 -1
  1021. package/dist/index.d.ts.map +0 -1
  1022. package/dist/internal/components/ButtonReset.d.ts +0 -5
  1023. package/dist/internal/components/ButtonReset.d.ts.map +0 -1
  1024. package/dist/internal/components/Caret.d.ts +0 -15
  1025. package/dist/internal/components/Caret.d.ts.map +0 -1
  1026. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroup.d.ts.map +0 -1
  1027. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroupCaption.d.ts +0 -8
  1028. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroupCaption.d.ts.map +0 -1
  1029. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroupContext.d.ts.map +0 -1
  1030. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroupLabel.d.ts.map +0 -1
  1031. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroupValidation.d.ts.map +0 -1
  1032. package/dist/internal/components/CheckboxOrRadioGroup/index.d.ts.map +0 -1
  1033. package/dist/internal/components/ConditionalWrapper.d.ts +0 -5
  1034. package/dist/internal/components/ConditionalWrapper.d.ts.map +0 -1
  1035. package/dist/internal/components/InputLabel.d.ts.map +0 -1
  1036. package/dist/internal/components/InputValidation.d.ts +0 -12
  1037. package/dist/internal/components/InputValidation.d.ts.map +0 -1
  1038. package/dist/internal/components/TextInputInnerAction.d.ts.map +0 -1
  1039. package/dist/internal/components/TextInputInnerVisualSlot.d.ts +0 -18
  1040. package/dist/internal/components/TextInputInnerVisualSlot.d.ts.map +0 -1
  1041. package/dist/internal/components/TextInputWrapper.d.ts.map +0 -1
  1042. package/dist/internal/components/UnderlineTabbedInterface.d.ts +0 -26
  1043. package/dist/internal/components/UnderlineTabbedInterface.d.ts.map +0 -1
  1044. package/dist/internal/components/UnstyledTextInput.d.ts +0 -4
  1045. package/dist/internal/components/UnstyledTextInput.d.ts.map +0 -1
  1046. package/dist/internal/components/ValidationAnimationContainer.d.ts +0 -8
  1047. package/dist/internal/components/ValidationAnimationContainer.d.ts.map +0 -1
  1048. package/dist/internal/hooks/useDevOnlyEffect.d.ts +0 -16
  1049. package/dist/internal/hooks/useDevOnlyEffect.d.ts.map +0 -1
  1050. package/dist/internal/hooks/useEffectCallback.d.ts +0 -8
  1051. package/dist/internal/hooks/useEffectCallback.d.ts.map +0 -1
  1052. package/dist/internal/hooks/useEffectOnce.d.ts +0 -2
  1053. package/dist/internal/hooks/useEffectOnce.d.ts.map +0 -1
  1054. package/dist/internal/hooks/useFocus.d.ts +0 -11
  1055. package/dist/internal/hooks/useFocus.d.ts.map +0 -1
  1056. package/dist/internal/internal-types.d.ts.map +0 -1
  1057. package/dist/internal/utils/__tests__/getResponsiveAttributes.test.d.ts +0 -2
  1058. package/dist/internal/utils/__tests__/getResponsiveAttributes.test.d.ts.map +0 -1
  1059. package/dist/internal/utils/__tests__/hasInteractiveNodes.test.d.ts +0 -2
  1060. package/dist/internal/utils/__tests__/hasInteractiveNodes.test.d.ts.map +0 -1
  1061. package/dist/internal/utils/getResponsiveAttributes.d.ts +0 -19
  1062. package/dist/internal/utils/getResponsiveAttributes.d.ts.map +0 -1
  1063. package/dist/internal/utils/getResponsiveControlValues.d.ts +0 -8
  1064. package/dist/internal/utils/getResponsiveControlValues.d.ts.map +0 -1
  1065. package/dist/internal/utils/hasInteractiveNodes.d.ts +0 -11
  1066. package/dist/internal/utils/hasInteractiveNodes.d.ts.map +0 -1
  1067. package/dist/legacy-theme/ts/color-schemes.d.ts +0 -4733
  1068. package/dist/legacy-theme/ts/color-schemes.d.ts.map +0 -1
  1069. package/dist/legacy-theme/ts/index.d.ts +0 -2
  1070. package/dist/legacy-theme/ts/index.d.ts.map +0 -1
  1071. package/dist/live-region/Announce.d.ts.map +0 -1
  1072. package/dist/live-region/AriaAlert.d.ts.map +0 -1
  1073. package/dist/live-region/AriaStatus.d.ts.map +0 -1
  1074. package/dist/live-region/__tests__/test-helpers.d.ts +0 -3
  1075. package/dist/live-region/__tests__/test-helpers.d.ts.map +0 -1
  1076. package/dist/live-region/index.d.ts.map +0 -1
  1077. package/dist/next/index.d.ts.map +0 -1
  1078. package/dist/theme.d.ts.map +0 -1
  1079. package/dist/useTheme.d.ts.map +0 -1
  1080. package/dist/utils/StressTest.d.ts +0 -10
  1081. package/dist/utils/StressTest.d.ts.map +0 -1
  1082. package/dist/utils/__tests__/character-counter.test.d.ts +0 -2
  1083. package/dist/utils/__tests__/character-counter.test.d.ts.map +0 -1
  1084. package/dist/utils/__tests__/invariant.test.d.ts +0 -2
  1085. package/dist/utils/__tests__/invariant.test.d.ts.map +0 -1
  1086. package/dist/utils/__tests__/warning.test.d.ts +0 -2
  1087. package/dist/utils/__tests__/warning.test.d.ts.map +0 -1
  1088. package/dist/utils/as-slot.d.ts.map +0 -1
  1089. package/dist/utils/character-counter.d.ts +0 -22
  1090. package/dist/utils/character-counter.d.ts.map +0 -1
  1091. package/dist/utils/create-component.d.ts.map +0 -1
  1092. package/dist/utils/deprecate.d.ts +0 -19
  1093. package/dist/utils/deprecate.d.ts.map +0 -1
  1094. package/dist/utils/descendant-registry.d.ts.map +0 -1
  1095. package/dist/utils/environment.d.ts +0 -10
  1096. package/dist/utils/environment.d.ts.map +0 -1
  1097. package/dist/utils/form-story-helpers.d.ts +0 -63
  1098. package/dist/utils/form-story-helpers.d.ts.map +0 -1
  1099. package/dist/utils/getBreakpointDeclarations.d.ts +0 -4
  1100. package/dist/utils/getBreakpointDeclarations.d.ts.map +0 -1
  1101. package/dist/utils/invariant.d.ts +0 -3
  1102. package/dist/utils/invariant.d.ts.map +0 -1
  1103. package/dist/utils/is-slot.d.ts.map +0 -1
  1104. package/dist/utils/isNumeric.d.ts +0 -2
  1105. package/dist/utils/isNumeric.d.ts.map +0 -1
  1106. package/dist/utils/modern-polymorphic.d.ts.map +0 -1
  1107. package/dist/utils/polymorphic.d.ts.map +0 -1
  1108. package/dist/utils/scroll.d.ts +0 -6
  1109. package/dist/utils/scroll.d.ts.map +0 -1
  1110. package/dist/utils/story-helpers.d.ts +0 -71
  1111. package/dist/utils/story-helpers.d.ts.map +0 -1
  1112. package/dist/utils/test-helpers.d.ts +0 -2
  1113. package/dist/utils/test-helpers.d.ts.map +0 -1
  1114. package/dist/utils/testing/profiler.d.ts +0 -35
  1115. package/dist/utils/testing/profiler.d.ts.map +0 -1
  1116. package/dist/utils/theme.d.ts +0 -20
  1117. package/dist/utils/theme.d.ts.map +0 -1
  1118. package/dist/utils/types/AriaRole.d.ts.map +0 -1
  1119. package/dist/utils/types/ComponentProps.d.ts.map +0 -1
  1120. package/dist/utils/types/Flatten.d.ts +0 -5
  1121. package/dist/utils/types/Flatten.d.ts.map +0 -1
  1122. package/dist/utils/types/FormValidationStatus.d.ts.map +0 -1
  1123. package/dist/utils/types/KeyPaths.d.ts.map +0 -1
  1124. package/dist/utils/types/MandateProps.d.ts.map +0 -1
  1125. package/dist/utils/types/Merge.d.ts.map +0 -1
  1126. package/dist/utils/types/Slots.d.ts.map +0 -1
  1127. package/dist/utils/types/ViewportRangeKeys.d.ts.map +0 -1
  1128. package/dist/utils/types/index.d.ts +0 -7
  1129. package/dist/utils/types/index.d.ts.map +0 -1
  1130. package/dist/utils/use-force-update.d.ts +0 -2
  1131. package/dist/utils/use-force-update.d.ts.map +0 -1
  1132. package/dist/utils/useIsomorphicLayoutEffect.d.ts.map +0 -1
  1133. package/dist/utils/warning.d.ts +0 -4
  1134. package/dist/utils/warning.d.ts.map +0 -1
@@ -1,885 +1,649 @@
1
- import { SearchIcon, XIcon, TriangleDownIcon } from '@primer/octicons-react';
2
- import React, { useState, useRef, useEffect, useCallback, useMemo } from 'react';
3
- import { FilteredActionList } from '../FilteredActionList/index.js';
4
- import { SelectPanelMessage } from './SelectPanelMessage.js';
5
- import { IconButton } from '../Button/IconButton.js';
6
- import { LinkButton } from '../Button/LinkButton.js';
7
- import { ButtonComponent } from '../Button/Button.js';
8
- import { useId } from '../hooks/useId.js';
9
- import { useProvidedStateOrCreate } from '../hooks/useProvidedStateOrCreate.js';
10
- import useSafeTimeout from '../hooks/useSafeTimeout.js';
11
- import '../FilteredActionList/FilteredActionListLoaders.js';
12
- import { announceFromElement, announce } from '@primer/live-region-element';
13
- import classes from './SelectPanel.module.css.js';
14
- import { clsx } from 'clsx';
15
- import { debounce } from '@github/mini-throttle';
16
- import { useResponsiveValue } from '../hooks/useResponsiveValue.js';
17
- import { Banner } from '../Banner/index.js';
18
- import { isAlphabetKey } from '../hooks/useMnemonics.js';
19
- import { useFormControlContext } from '../FormControl/_FormControlContext.js';
20
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
21
- import { useFeatureFlag } from '../FeatureFlags/useFeatureFlag.js';
22
- import { useProvidedRefOrCreate } from '../hooks/useProvidedRefOrCreate.js';
23
- import { AnchoredOverlay } from '../AnchoredOverlay/AnchoredOverlay.js';
24
- import Heading from '../Heading/Heading.js';
25
- import { FilteredActionListLoadingTypes } from '../FilteredActionList/constants.js';
26
-
1
+ import { useProvidedRefOrCreate } from "../hooks/useProvidedRefOrCreate.js";
2
+ import { useProvidedStateOrCreate } from "../hooks/useProvidedStateOrCreate.js";
3
+ import { isAlphabetKey } from "../hooks/useMnemonics.js";
4
+ import { useId as useId$1 } from "../hooks/useId.js";
5
+ import useSafeTimeout from "../hooks/useSafeTimeout.js";
6
+ import { IconButton } from "../Button/IconButton.js";
7
+ import { LinkButton } from "../Button/LinkButton.js";
8
+ import { ButtonComponent } from "../Button/Button.js";
9
+ import { useResponsiveValue } from "../hooks/useResponsiveValue.js";
10
+ import Heading from "../Heading/Heading.js";
11
+ import { useFeatureFlag } from "../FeatureFlags/useFeatureFlag.js";
12
+ import { AnchoredOverlay } from "../AnchoredOverlay/AnchoredOverlay.js";
13
+ import { Banner } from "../Banner/index.js";
14
+ import { useFormControlContext } from "../FormControl/_FormControlContext.js";
15
+ import { FilteredActionListLoadingTypes } from "../FilteredActionList/constants.js";
16
+ import { FilteredActionList } from "../FilteredActionList/index.js";
17
+ import SelectPanel_module_css_default from "./SelectPanel.module.css.js";
18
+ import { SelectPanelMessage } from "./SelectPanelMessage.js";
19
+ import { clsx } from "clsx";
20
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
21
+ import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
22
+ import { announce, announceFromElement } from "@primer/live-region-element";
23
+ import { SearchIcon, TriangleDownIcon, XIcon } from "@primer/octicons-react";
24
+ import { debounce } from "@github/mini-throttle";
25
+ //#region src/SelectPanel/SelectPanel.tsx
27
26
  const SHORT_DELAY_MS = 500;
28
- const LONG_DELAY_MS = 1000;
27
+ const LONG_DELAY_MS = 1e3;
29
28
  const EMPTY_MESSAGE = {
30
- title: 'No items available',
31
- description: ''
29
+ title: "No items available",
30
+ description: ""
32
31
  };
33
- const DefaultEmptyMessage = /*#__PURE__*/jsx(SelectPanelMessage, {
34
- variant: "empty",
35
- title: EMPTY_MESSAGE.title,
36
- children: EMPTY_MESSAGE.description
32
+ const DefaultEmptyMessage = /*#__PURE__*/ jsx(SelectPanelMessage, {
33
+ variant: "empty",
34
+ title: EMPTY_MESSAGE.title,
35
+ children: EMPTY_MESSAGE.description
37
36
  }, "empty-message");
38
37
  async function announceText(text, delayMs = SHORT_DELAY_MS) {
39
- const liveRegion = document.querySelector('live-region');
40
- liveRegion === null || liveRegion === void 0 ? void 0 : liveRegion.clear(); // clear previous announcements
41
-
42
- await announce(text, {
43
- delayMs,
44
- from: liveRegion ? liveRegion : undefined // announce will create a liveRegion if it doesn't find one
45
- });
38
+ const liveRegion = document.querySelector("live-region");
39
+ liveRegion === null || liveRegion === void 0 || liveRegion.clear();
40
+ await announce(text, {
41
+ delayMs,
42
+ from: liveRegion ? liveRegion : void 0
43
+ });
46
44
  }
47
45
  async function announceLoading() {
48
- await announceText('Loading.');
46
+ await announceText("Loading.");
49
47
  }
50
-
51
- // onCancel is optional with variant=anchored, but required with variant=modal
52
-
53
48
  function isMultiSelectVariant(selected) {
54
- return Array.isArray(selected);
49
+ return Array.isArray(selected);
55
50
  }
56
- const focusZoneSettings = {
57
- // Let FilteredActionList handle focus zone
58
- disabled: true
59
- };
60
- const closeButtonProps = {
61
- 'aria-label': 'Cancel and close'
62
- };
51
+ const focusZoneSettings = { disabled: true };
52
+ const closeButtonProps = { "aria-label": "Cancel and close" };
63
53
  const areItemsEqual = (itemA, itemB) => {
64
- // prefer checking equivality by item.id
65
- if (typeof itemA.id !== 'undefined') return itemA.id === itemB.id;else return itemA === itemB;
54
+ if (typeof itemA.id !== "undefined") return itemA.id === itemB.id;
55
+ else return itemA === itemB;
66
56
  };
67
57
  const doesItemsIncludeItem = (items, item) => {
68
- return items.some(i => areItemsEqual(i, item));
58
+ return items.some((i) => areItemsEqual(i, item));
69
59
  };
70
- const defaultRenderAnchor = props => {
71
- const {
72
- children,
73
- ...rest
74
- } = props;
75
- return /*#__PURE__*/jsx(ButtonComponent, {
76
- trailingAction: TriangleDownIcon,
77
- ...rest,
78
- children: children
79
- });
60
+ const defaultRenderAnchor = (props) => {
61
+ const { children, ...rest } = props;
62
+ return /*#__PURE__*/ jsx(ButtonComponent, {
63
+ trailingAction: TriangleDownIcon,
64
+ ...rest,
65
+ children
66
+ });
80
67
  };
81
68
  defaultRenderAnchor.displayName = "defaultRenderAnchor";
82
- function Panel({
83
- open,
84
- onOpenChange,
85
- renderAnchor = defaultRenderAnchor,
86
- anchorRef: externalAnchorRef,
87
- placeholder,
88
- placeholderText = 'Filter items',
89
- inputLabel = placeholderText,
90
- selected,
91
- title = isMultiSelectVariant(selected) ? 'Select items' : 'Select an item',
92
- subtitle,
93
- onSelectedChange,
94
- filterValue: externalFilterValue,
95
- onFilterChange: externalOnFilterChange,
96
- items,
97
- footer,
98
- textInputProps,
99
- overlayProps,
100
- loading,
101
- initialLoadingType = 'spinner',
102
- className,
103
- height,
104
- width,
105
- id,
106
- message,
107
- notice,
108
- onCancel,
109
- variant = 'anchored',
110
- secondaryAction,
111
- showSelectedOptionsFirst = true,
112
- disableFullscreenOnNarrow,
113
- align,
114
- showSelectAll = false,
115
- focusPrependedElements,
116
- virtualized,
117
- displayInViewport,
118
- cssAnchorPositioningSettings,
119
- ...listProps
120
- }) {
121
- var _listProps$groupMetad;
122
- const titleId = useId();
123
- const subtitleId = useId();
124
- const [dataLoadedOnce, setDataLoadedOnce] = useState(false);
125
- const [isLoading, setIsLoading] = useState(false);
126
- const [filterValue, setInternalFilterValue] = useProvidedStateOrCreate(externalFilterValue, undefined, '');
127
- const {
128
- safeSetTimeout,
129
- safeClearTimeout
130
- } = useSafeTimeout();
131
- const loadingDelayTimeoutId = useRef(null);
132
- const loadingManagedInternally = loading === undefined;
133
- const loadingManagedExternally = !loadingManagedInternally;
134
- const [inputRef, setInputRef] = React.useState(null);
135
- const [listContainerElement, setListContainerElement] = useState(null);
136
- const [needsNoItemsAnnouncement, setNeedsNoItemsAnnouncement] = useState(false);
137
- const isNarrowScreenSize = useResponsiveValue({
138
- narrow: true,
139
- regular: false,
140
- wide: false
141
- }, false);
142
- const [selectedOnSort, setSelectedOnSort] = useState([]);
143
- const initialHeightRef = useRef(0);
144
- const initialScaleRef = useRef(1);
145
- const noticeRef = useRef(null);
146
- const [isKeyboardVisible, setIsKeyboardVisible] = useState(false);
147
- const [availablePanelHeight, setAvailablePanelHeight] = useState(undefined);
148
- const KEYBOARD_VISIBILITY_THRESHOLD = 10;
149
- const featureFlagFullScreenOnNarrow = useFeatureFlag('primer_react_select_panel_fullscreen_on_narrow');
150
- const usingFullScreenOnNarrow = disableFullscreenOnNarrow ? false : featureFlagFullScreenOnNarrow;
151
- const shouldOrderSelectedFirst = useFeatureFlag('primer_react_select_panel_order_selected_at_top') && showSelectedOptionsFirst;
152
- const {
153
- isReferenced,
154
- labelId
155
- } = useFormControlContext();
156
- const selectedValueId = id ? `${id}-selected-value` : undefined;
157
-
158
- // Single select modals work differently, they have an intermediate state where the user has selected an item but
159
- // has not yet confirmed the selection. This is the only time the user can cancel the selection.
160
- const isSingleSelectModal = variant === 'modal' && !isMultiSelectVariant(selected);
161
- const [intermediateSelected, setIntermediateSelected] = useState(isSingleSelectModal ? selected : undefined);
162
-
163
- // Reset the intermediate selected item when the panel is open/closed
164
- useEffect(() => {
165
- // eslint-disable-next-line react-hooks/set-state-in-effect, react-you-might-not-need-an-effect/no-derived-state
166
- setIntermediateSelected(isSingleSelectModal ? selected : undefined);
167
- }, [isSingleSelectModal, open, selected]);
168
- const onListContainerRefChanged = useCallback(node => {
169
- setListContainerElement(node);
170
- if (!node && needsNoItemsAnnouncement) {
171
- setNeedsNoItemsAnnouncement(false);
172
- }
173
- }, [needsNoItemsAnnouncement]);
174
- const onInputRefChanged = useCallback(ref => {
175
- setInputRef(ref);
176
- }, [setInputRef]);
177
- const resetSort = useCallback(() => {
178
- if (isMultiSelectVariant(selected)) {
179
- setSelectedOnSort(selected);
180
- } else if (selected) {
181
- setSelectedOnSort([selected]);
182
- } else {
183
- setSelectedOnSort([]);
184
- }
185
- }, [selected]);
186
- const onFilterChange = useCallback((value, e) => {
187
- if (loadingManagedInternally) {
188
- if (loadingDelayTimeoutId.current) {
189
- safeClearTimeout(loadingDelayTimeoutId.current);
190
- }
191
- if (dataLoadedOnce) {
192
- // If data has already been loaded once, delay the spinner a bit. This also helps
193
- // not show and then immediately hide the spinner if items are loaded quickly, i.e.
194
- // not async.
195
-
196
- loadingDelayTimeoutId.current = safeSetTimeout(() => {
197
- setIsLoading(true);
198
- announceLoading();
199
- }, LONG_DELAY_MS);
200
- } else {
201
- // If this is the first data load and there are no items, show the loading spinner
202
- // immediately
203
-
204
- if (items.length === 0) {
205
- setIsLoading(true);
206
- }
207
-
208
- // We still want to announce if loading is taking too long
209
- loadingDelayTimeoutId.current = safeSetTimeout(() => {
210
- announceLoading();
211
- }, LONG_DELAY_MS);
212
- }
213
- }
214
- externalOnFilterChange(value, e);
215
- setInternalFilterValue(value);
216
- if (!value) {
217
- resetSort();
218
- }
219
- }, [loadingManagedInternally, externalOnFilterChange, setInternalFilterValue, dataLoadedOnce, safeSetTimeout, safeClearTimeout, items.length, resetSort]);
220
-
221
- // Pre-compute a Set of item IDs in the current filtered view for O(1) lookups
222
- const itemsInViewSet = useMemo(() => {
223
- const set = new Set();
224
- for (const item of items) {
225
- if (item.id !== undefined) {
226
- set.add(item.id);
227
- } else {
228
- set.add(item);
229
- }
230
- }
231
- return set;
232
- }, [items]);
233
- const handleSelectAllChange = useCallback(checked => {
234
- // Exit early if not in multi-select mode
235
- if (!isMultiSelectVariant(selected)) {
236
- return;
237
- }
238
- const multiSelectOnChange = onSelectedChange;
239
- const selectedArray = selected;
240
-
241
- // Use Set for O(1) lookup instead of O(n) items.some()
242
- const selectedItemsNotInFilteredView = selectedArray.filter(selectedItem => {
243
- if (selectedItem.id !== undefined) {
244
- return !itemsInViewSet.has(selectedItem.id);
245
- }
246
- return !itemsInViewSet.has(selectedItem);
247
- });
248
- if (checked) {
249
- multiSelectOnChange([...selectedItemsNotInFilteredView, ...items]);
250
- } else {
251
- multiSelectOnChange(selectedItemsNotInFilteredView);
252
- }
253
- }, [items, itemsInViewSet, onSelectedChange, selected]);
254
-
255
- // disable body scroll when the panel is open in modal mode or on narrow screens
256
- useEffect(() => {
257
- // eslint-disable-next-line react-you-might-not-need-an-effect/no-event-handler
258
- if (open && (variant === 'modal' || isNarrowScreenSize && usingFullScreenOnNarrow)) {
259
- const bodyOverflowStyle = document.body.style.overflow || '';
260
- // If the body is already set to overflow: hidden, it likely means
261
- // that there is already a modal open. In that case, we should bail
262
- // so we don't re-enable scroll after the second dialog is closed.
263
- if (bodyOverflowStyle === 'hidden') {
264
- return;
265
- }
266
- document.body.style.overflow = 'hidden';
267
- return () => {
268
- document.body.style.overflow = bodyOverflowStyle;
269
- };
270
- }
271
- }, [isNarrowScreenSize, open, usingFullScreenOnNarrow, variant]);
272
- useEffect(() => {
273
- // eslint-disable-next-line react-you-might-not-need-an-effect/no-event-handler
274
- if (open) {
275
- // eslint-disable-next-line react-you-might-not-need-an-effect/no-event-handler
276
- if (items.length === 0 && !(isLoading || loading)) {
277
- // we need to wait for the listContainerElement to disappear before announcing no items, otherwise it will be interrupted
278
- // eslint-disable-next-line react-hooks/set-state-in-effect, react-you-might-not-need-an-effect/no-adjust-state-on-prop-change
279
- setNeedsNoItemsAnnouncement(true);
280
- }
281
- }
282
-
283
- // eslint-disable-next-line react-you-might-not-need-an-effect/no-event-handler
284
- if (loadingManagedExternally) {
285
- // eslint-disable-next-line react-you-might-not-need-an-effect/no-event-handler
286
- if (items.length > 0) {
287
- // eslint-disable-next-line react-you-might-not-need-an-effect/no-adjust-state-on-prop-change
288
- setDataLoadedOnce(true);
289
- }
290
- return;
291
- }
292
-
293
- // eslint-disable-next-line react-you-might-not-need-an-effect/no-event-handler
294
- if (isLoading || items.length > 0) {
295
- // eslint-disable-next-line react-you-might-not-need-an-effect/no-adjust-state-on-prop-change
296
- setIsLoading(false);
297
- // eslint-disable-next-line react-you-might-not-need-an-effect/no-adjust-state-on-prop-change
298
- setDataLoadedOnce(true);
299
- }
300
- if (loadingDelayTimeoutId.current) {
301
- safeClearTimeout(loadingDelayTimeoutId.current);
302
- }
303
-
304
- // Only fire this effect if items have changed
305
- // eslint-disable-next-line react-hooks/exhaustive-deps
306
- }, [items]);
307
- useEffect(() => {
308
- // eslint-disable-next-line react-you-might-not-need-an-effect/no-event-handler
309
- if (inputRef !== null && inputRef !== void 0 && inputRef.current) {
310
- const ref = inputRef.current;
311
-
312
- // We would normally expect AnchoredOverlay's focus trap to automatically focus the input,
313
- // but for some reason the ref isn't populated until _after_ the panel is open, which is
314
- // too late. So, we focus manually here.
315
- // eslint-disable-next-line react-you-might-not-need-an-effect/no-event-handler
316
- if (open) {
317
- ref.focus();
318
- }
319
- }
320
- }, [inputRef, open]);
321
-
322
- // Manage loading announcements when loadingManagedExternally
323
- useEffect(() => {
324
- // eslint-disable-next-line react-you-might-not-need-an-effect/no-event-handler
325
- if (loadingManagedExternally) {
326
- if (isLoading) {
327
- // Delay the announcement a bit, just in case the loading is quick
328
- loadingDelayTimeoutId.current = safeSetTimeout(() => {
329
- announceLoading();
330
- }, LONG_DELAY_MS);
331
- } else {
332
- // If loading is done, we can clear the loading announcement
333
- if (loadingDelayTimeoutId.current) {
334
- safeClearTimeout(loadingDelayTimeoutId.current);
335
- }
336
- }
337
- }
338
- }, [isLoading, loadingManagedExternally, safeSetTimeout, safeClearTimeout]);
339
-
340
- // Populate panel with items on first open
341
- useEffect(() => {
342
- // eslint-disable-next-line react-you-might-not-need-an-effect/no-event-handler
343
- if (loadingManagedExternally) return;
344
-
345
- // If data was already loaded once, do nothing
346
- // eslint-disable-next-line react-you-might-not-need-an-effect/no-event-handler
347
- if (dataLoadedOnce) return;
348
-
349
- // Only load data when the panel is open
350
- // eslint-disable-next-line react-you-might-not-need-an-effect/no-event-handler
351
- if (open) {
352
- // Only trigger filter change event if there are no items
353
- // eslint-disable-next-line react-you-might-not-need-an-effect/no-event-handler
354
- if (items.length === 0) {
355
- // Trigger filter event to populate panel on first open
356
- // eslint-disable-next-line react-hooks/set-state-in-effect
357
- onFilterChange(filterValue, null);
358
- }
359
- }
360
- }, [open, dataLoadedOnce, onFilterChange, filterValue, items, loadingManagedExternally, listContainerElement]);
361
- useEffect(() => {
362
- if (!window.visualViewport || !open || !isNarrowScreenSize) {
363
- return;
364
- }
365
- initialHeightRef.current = window.visualViewport.height;
366
- initialScaleRef.current = window.visualViewport.scale;
367
- const handleViewportChange = debounce(() => {
368
- if (window.visualViewport) {
369
- const currentScale = window.visualViewport.scale;
370
- const isZooming = currentScale !== initialScaleRef.current;
371
- if (!isZooming) {
372
- const currentHeight = window.visualViewport.height;
373
- const keyboardVisible = initialHeightRef.current - currentHeight > KEYBOARD_VISIBILITY_THRESHOLD;
374
- setIsKeyboardVisible(keyboardVisible);
375
- setAvailablePanelHeight(keyboardVisible ? currentHeight : undefined);
376
- }
377
- }
378
- }, 100);
379
-
380
- // keeping this check to satisfy typescript but need eslint to ignore redundancy rule
381
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
382
- if (window.visualViewport) {
383
- // Using visualViewport to more reliably detect viewport changes across different browsers, which specifically requires these listeners
384
- // eslint-disable-next-line github/prefer-observers
385
- window.visualViewport.addEventListener('resize', handleViewportChange);
386
- // eslint-disable-next-line github/prefer-observers
387
- window.visualViewport.addEventListener('scroll', handleViewportChange);
388
- }
389
- return () => {
390
- if (window.visualViewport) {
391
- window.visualViewport.removeEventListener('resize', handleViewportChange);
392
- window.visualViewport.removeEventListener('scroll', handleViewportChange);
393
- }
394
- handleViewportChange.cancel();
395
- };
396
- }, [open, isNarrowScreenSize]);
397
- useEffect(() => {
398
- const announceNotice = async () => {
399
- if (!noticeRef.current) return;
400
- const liveRegion = document.querySelector('live-region');
401
- liveRegion === null || liveRegion === void 0 ? void 0 : liveRegion.clear();
402
- await announceFromElement(noticeRef.current, {
403
- from: liveRegion ? liveRegion : undefined
404
- });
405
- };
406
-
407
- // eslint-disable-next-line react-you-might-not-need-an-effect/no-event-handler
408
- if (open && notice) {
409
- announceNotice();
410
- }
411
- }, [notice, open]);
412
- const anchorRef = useProvidedRefOrCreate(externalAnchorRef);
413
- const onOpen = useCallback(gesture => onOpenChange(true, gesture), [onOpenChange]);
414
- const onCancelRequested = useCallback(() => {
415
- onOpenChange(false, 'cancel');
416
- }, [onOpenChange]);
417
- const onClose = useCallback(gesture => {
418
- // Clicking outside should cancel the selection only on modals
419
- if (variant === 'modal' && gesture === 'click-outside') {
420
- onCancel === null || onCancel === void 0 ? void 0 : onCancel();
421
- }
422
- if (gesture === 'close') {
423
- onCancel === null || onCancel === void 0 ? void 0 : onCancel();
424
- onCancelRequested();
425
- } else {
426
- onOpenChange(false, gesture);
427
- }
428
- }, [onOpenChange, variant, onCancel, onCancelRequested]);
429
- const renderMenuAnchor = useMemo(() => {
430
- if (renderAnchor === null) {
431
- return null;
432
- }
433
- const selectedItems = Array.isArray(selected) ? selected : [...(selected ? [selected] : [])];
434
- const selectedValueText = selectedItems.length ? selectedItems.map(item => item.text).join(', ') : placeholder;
435
- const shouldAutoWireLabel = isReferenced === false && Boolean(labelId) && Boolean(selectedValueId);
436
- return props => {
437
- return renderAnchor({
438
- ...props,
439
- ...(shouldAutoWireLabel ? {
440
- 'aria-labelledby': [labelId, selectedValueId].filter(Boolean).join(' ')
441
- } : {}),
442
- children: shouldAutoWireLabel ? /*#__PURE__*/jsx("span", {
443
- id: selectedValueId,
444
- children: selectedValueText
445
- }) : selectedValueText
446
- });
447
- };
448
- }, [placeholder, renderAnchor, selected, isReferenced, labelId, selectedValueId]);
449
-
450
- // Pre-compute a Set of selected item IDs/references for O(1) lookups
451
- // This optimizes isItemCurrentlySelected from O(m) to O(1) per call
452
- const selectedItemsSet = useMemo(() => {
453
- const set = new Set();
454
- if (isMultiSelectVariant(selected)) {
455
- for (const item of selected) {
456
- if (item.id !== undefined) {
457
- set.add(item.id);
458
- } else {
459
- set.add(item);
460
- }
461
- }
462
- }
463
- return set;
464
- }, [selected]);
465
- const isItemCurrentlySelected = useCallback(item => {
466
- // For multi-select, use the pre-computed Set for O(1) lookup
467
- if (isMultiSelectVariant(selected)) {
468
- if (item.id !== undefined) {
469
- return selectedItemsSet.has(item.id);
470
- }
471
- return selectedItemsSet.has(item);
472
- }
473
-
474
- // For single-select modal, there is an intermediate state when the user has selected
475
- // an item but has not yet saved the selection. We need to check for this state.
476
- if (isSingleSelectModal) {
477
- return (intermediateSelected === null || intermediateSelected === void 0 ? void 0 : intermediateSelected.id) !== undefined ? intermediateSelected.id === item.id : intermediateSelected === item;
478
- }
479
-
480
- // For single-select anchored, we just need to check if the item is the selected item
481
- return (selected === null || selected === void 0 ? void 0 : selected.id) !== undefined ? selected.id === item.id : selected === item;
482
- }, [selected, selectedItemsSet, intermediateSelected, isSingleSelectModal]);
483
- const itemsToRender = useMemo(() => {
484
- // Pre-compute a Set of selected item IDs/references for O(1) lookups during sorting
485
- // This avoids O(m * k) work per comparison in the sort function
486
- const selectedOnSortSet = new Set();
487
- for (const item of selectedOnSort) {
488
- if (item.id !== undefined) {
489
- selectedOnSortSet.add(item.id);
490
- } else {
491
- selectedOnSortSet.add(item);
492
- }
493
- }
494
- const isSelectedForSort = item => {
495
- if (item.id !== undefined) {
496
- return selectedOnSortSet.has(item.id);
497
- }
498
- return selectedOnSortSet.has(item);
499
- };
500
- return items.map(item => {
501
- return {
502
- ...item,
503
- role: 'option',
504
- id: item.id,
505
- selected: 'selected' in item && item.selected === undefined ? undefined : isItemCurrentlySelected(item),
506
- onAction: (itemFromAction, event) => {
507
- var _item$onAction;
508
- (_item$onAction = item.onAction) === null || _item$onAction === void 0 ? void 0 : _item$onAction.call(item, itemFromAction, event);
509
- if (event.defaultPrevented) {
510
- return;
511
- }
512
- if (isMultiSelectVariant(selected)) {
513
- const otherSelectedItems = selected.filter(selectedItem => !areItemsEqual(selectedItem, item));
514
- const newSelectedItems = doesItemsIncludeItem(selected, item) ? otherSelectedItems : [...otherSelectedItems, item];
515
- const multiSelectOnChange = onSelectedChange;
516
- multiSelectOnChange(newSelectedItems);
517
- return;
518
- }
519
- if (isSingleSelectModal) {
520
- if ((intermediateSelected === null || intermediateSelected === void 0 ? void 0 : intermediateSelected.id) === item.id) {
521
- // if the item is already selected, we need to unselect it
522
- setIntermediateSelected(undefined);
523
- } else {
524
- setIntermediateSelected(item);
525
- }
526
- return;
527
- }
528
- // single select anchored, direct save on click
529
- const singleSelectOnChange = onSelectedChange;
530
- singleSelectOnChange(item === selected ? undefined : item);
531
- onClose('selection');
532
- }
533
- };
534
- }).sort((itemA, itemB) => {
535
- if (shouldOrderSelectedFirst) {
536
- const itemASelected = isSelectedForSort(itemA);
537
- const itemBSelected = isSelectedForSort(itemB);
538
-
539
- // order selected items first
540
- if (itemASelected && !itemBSelected) {
541
- return -1;
542
- } else if (!itemASelected && itemBSelected) {
543
- return 1;
544
- }
545
- }
546
- return 0;
547
- });
548
- }, [onClose, onSelectedChange, items, selected, isItemCurrentlySelected, isSingleSelectModal, intermediateSelected, shouldOrderSelectedFirst, selectedOnSort]);
549
-
550
- // Track previous items and reset sort when items first load
551
- const prevItemsRef = useRef(items);
552
- useEffect(() => {
553
- // eslint-disable-next-line react-you-might-not-need-an-effect/no-event-handler
554
- if (prevItemsRef.current !== items) {
555
- // eslint-disable-next-line react-you-might-not-need-an-effect/no-event-handler
556
- if (prevItemsRef.current.length === 0 && items.length > 0) {
557
- resetSort();
558
- }
559
- prevItemsRef.current = items;
560
- }
561
- }, [items, resetSort]);
562
-
563
- // Reset sort when panel opens
564
- const prevOpenRef = useRef(open);
565
- useEffect(() => {
566
- // eslint-disable-next-line react-you-might-not-need-an-effect/no-event-handler
567
- if (prevOpenRef.current !== open) {
568
- resetSort();
569
- prevOpenRef.current = open;
570
- }
571
- }, [open, resetSort]);
572
- const focusTrapSettings = useMemo(() => ({
573
- initialFocusRef: inputRef || undefined
574
- }), [inputRef]);
575
- const extendedTextInputProps = useMemo(() => {
576
- return {
577
- className: classes.TextInput,
578
- contrast: true,
579
- leadingVisual: SearchIcon,
580
- 'aria-label': inputLabel,
581
- ...textInputProps
582
- };
583
- }, [inputLabel, textInputProps]);
584
- const loadingType = () => {
585
- if (dataLoadedOnce) {
586
- return FilteredActionListLoadingTypes.input;
587
- } else {
588
- if (initialLoadingType === 'spinner') {
589
- return FilteredActionListLoadingTypes.bodySpinner;
590
- } else {
591
- return FilteredActionListLoadingTypes.bodySkeleton;
592
- }
593
- }
594
- };
595
- function getMessage() {
596
- if (items.length === 0 && !message) {
597
- return DefaultEmptyMessage;
598
- } else if (message) {
599
- return /*#__PURE__*/jsx(SelectPanelMessage, {
600
- title: message.title,
601
- variant: message.variant,
602
- icon: message.icon,
603
- action: message.action,
604
- children: message.body
605
- });
606
- }
607
- }
608
-
609
- // We add permanent save and cancel buttons on:
610
- // - modals
611
- const showPermanentCancelSaveButtons = variant === 'modal';
612
-
613
- // The next two could be collapsed, left them separate for readability
614
-
615
- // We add a responsive save and cancel button on:
616
- // - anchored panels with multi select if there is onCancel
617
- const showResponsiveCancelSaveButtons = variant !== 'modal' && usingFullScreenOnNarrow && isMultiSelectVariant(selected) && onCancel !== undefined;
618
-
619
- // The responsive save and close button is only covering a very specific case:
620
- // - anchored panel with multi select if there is no onCancel.
621
- // This variant should disappear in the future, once onCancel is required,
622
- // but for now we need to support it so there is a user friendly way to close the panel.
623
- const showResponsiveSaveAndCloseButton = variant !== 'modal' && usingFullScreenOnNarrow && isMultiSelectVariant(selected) && onCancel === undefined;
624
-
625
- // If there is any element in the footer, we render it.
626
- const renderFooter = secondaryAction !== undefined || showPermanentCancelSaveButtons || showResponsiveSaveAndCloseButton || showResponsiveCancelSaveButtons;
627
-
628
- // If there's any permanent elements in the footer, we show it always.
629
- // The save button is only shown on small screens.
630
- const displayFooter = secondaryAction !== undefined || showPermanentCancelSaveButtons ? 'always' : showResponsiveSaveAndCloseButton || showResponsiveCancelSaveButtons ? 'only-small' : undefined;
631
- const stretchSecondaryAction = showResponsiveSaveAndCloseButton || showResponsiveCancelSaveButtons ? 'only-big' : showPermanentCancelSaveButtons ? 'never' : 'always';
632
- const stretchSaveButton = showResponsiveSaveAndCloseButton && secondaryAction === undefined ? 'only-small' : 'never';
633
-
634
- /*
635
- * SelectPanel uses two close button implementations for different use cases:
636
- *
637
- * 1. AnchoredOverlay close button - Enabled on narrow screens (showXCloseIcon logic)
638
- *
639
- * 2. SelectPanel modal close button - Used for modal variant on wider screens
640
- * (variant === 'modal' && !isNarrowScreenSize logic below)
641
- *
642
- * The dual approach handles different responsive behaviors: AnchoredOverlay manages
643
- * close functionality for narrow fullscreen, while SelectPanel handles modal close on desktop.
644
- */
645
- const showXCloseIcon = (onCancel !== undefined || !isMultiSelectVariant(selected)) && usingFullScreenOnNarrow;
646
- const currentResponsiveVariant = useResponsiveValue(usingFullScreenOnNarrow ? {
647
- regular: 'anchored',
648
- narrow: 'fullscreen'
649
- } : undefined, 'anchored');
650
- const preventBubbling = useCallback(event => {
651
- var _overlayProps$onKeyDo;
652
- overlayProps === null || overlayProps === void 0 ? void 0 : (_overlayProps$onKeyDo = overlayProps.onKeyDown) === null || _overlayProps$onKeyDo === void 0 ? void 0 : _overlayProps$onKeyDo.call(overlayProps, event);
653
-
654
- // skip if a TextInput has focus
655
- const activeElement = document.activeElement;
656
- if (activeElement.tagName === 'INPUT' || activeElement.tagName === 'TEXTAREA') return;
657
-
658
- // skip if used with modifier to preserve shortcuts like ⌘ + F
659
- const hasModifier = event.ctrlKey || event.altKey || event.metaKey;
660
- if (hasModifier) return;
661
-
662
- // skip if it's not the forward slash or an alphabet key
663
- if (event.key !== '/' && !isAlphabetKey(event.nativeEvent)) {
664
- return;
665
- }
666
-
667
- // if this is a typeahead event, don't propagate outside of menu
668
- event.stopPropagation();
669
- }, [overlayProps]);
670
- const mergedOverlayProps = useMemo(() => ({
671
- role: 'dialog',
672
- 'aria-labelledby': titleId,
673
- 'aria-describedby': subtitle ? subtitleId : undefined,
674
- ...overlayProps,
675
- ...(variant === 'modal' ? {
676
- top: '50vh',
677
- left: '50vw',
678
- anchorSide: undefined
679
- } : {}),
680
- style: {
681
- transform: variant === 'modal' ? 'translate(-50%, -50%)' : undefined,
682
- ...(isKeyboardVisible ? {
683
- maxHeight: availablePanelHeight !== undefined ? `${availablePanelHeight}px` : 'auto'
684
- } : {})
685
- },
686
- onKeyDown: preventBubbling
687
- }), [titleId, subtitle, subtitleId, overlayProps, variant, isKeyboardVisible, availablePanelHeight, preventBubbling]);
688
- return /*#__PURE__*/jsxs(Fragment, {
689
- children: [/*#__PURE__*/jsx(AnchoredOverlay, {
690
- renderAnchor: renderMenuAnchor,
691
- anchorRef: anchorRef,
692
- align: align,
693
- open: open,
694
- onOpen: onOpen,
695
- onClose: onClose,
696
- overlayProps: mergedOverlayProps,
697
- focusTrapSettings: focusTrapSettings,
698
- focusZoneSettings: focusZoneSettings,
699
- height: height,
700
- width: width,
701
- anchorId: id,
702
- variant: usingFullScreenOnNarrow ? {
703
- regular: 'anchored',
704
- narrow: 'fullscreen'
705
- } : undefined,
706
- pinPosition: !height,
707
- className: classes.Overlay,
708
- displayCloseButton: showXCloseIcon,
709
- closeButtonProps: closeButtonProps,
710
- displayInViewport: displayInViewport
711
- // Modal variant is positioned manually so native CSS anchor positioning must not be used
712
- // Other cssAnchorPositioningSettings (e.g. fallbackStrategy) may be passed in and are forwarded here
713
- ,
714
- cssAnchorPositioningSettings: {
715
- ...cssAnchorPositioningSettings,
716
- disable: variant === 'modal' || (cssAnchorPositioningSettings === null || cssAnchorPositioningSettings === void 0 ? void 0 : cssAnchorPositioningSettings.disable)
717
- },
718
- children: /*#__PURE__*/jsxs("div", {
719
- className: classes.Wrapper,
720
- "data-variant": variant,
721
- "data-component": "SelectPanel",
722
- children: [/*#__PURE__*/jsxs("div", {
723
- className: classes.Header,
724
- "data-variant": currentResponsiveVariant,
725
- "data-component": "SelectPanel.Header",
726
- children: [/*#__PURE__*/jsxs("div", {
727
- children: [/*#__PURE__*/jsx(Heading, {
728
- as: "h1",
729
- id: titleId,
730
- className: classes.Title,
731
- "data-component": "SelectPanel.Title",
732
- children: title
733
- }), subtitle ? /*#__PURE__*/jsx("div", {
734
- id: subtitleId,
735
- className: classes.Subtitle,
736
- "data-component": "SelectPanel.Subtitle",
737
- children: subtitle
738
- }) : null]
739
- }), variant === 'modal' && !isNarrowScreenSize ? /*#__PURE__*/jsx(IconButton, {
740
- type: "button",
741
- variant: "invisible",
742
- icon: XIcon,
743
- "aria-label": "Cancel and close",
744
- className: classes.ResponsiveCloseButton,
745
- "data-component": "SelectPanel.CloseButton",
746
- onClick: () => {
747
- onCancel === null || onCancel === void 0 ? void 0 : onCancel();
748
- onCancelRequested();
749
- }
750
- }) : null]
751
- }), notice && /*#__PURE__*/jsx("div", {
752
- ref: noticeRef,
753
- "data-component": "SelectPanel.Notice",
754
- children: /*#__PURE__*/jsx(Banner, {
755
- variant: notice.variant === 'error' ? 'critical' : notice.variant,
756
- description: notice.text,
757
- title: "Notice",
758
- hideTitle: true,
759
- className: classes.Notice,
760
- layout: "compact"
761
- })
762
- }), /*#__PURE__*/jsx(FilteredActionList, {
763
- filterValue: filterValue,
764
- onFilterChange: onFilterChange,
765
- onListContainerRefChanged: onListContainerRefChanged
766
- // @ts-expect-error it needs a non nullable ref
767
- ,
768
- onInputRefChanged: onInputRefChanged,
769
- placeholderText: placeholderText,
770
- ...listProps,
771
- variant: (_listProps$groupMetad = listProps.groupMetadata) !== null && _listProps$groupMetad !== void 0 && _listProps$groupMetad.length ? 'horizontal-inset' : 'inset',
772
- role: "listbox"
773
- // browsers give aria-labelledby precedence over aria-label so we need to make sure
774
- // we don't accidentally override props.aria-label
775
- ,
776
- "aria-labelledby": listProps['aria-label'] ? undefined : titleId,
777
- "aria-multiselectable": isMultiSelectVariant(selected) ? 'true' : 'false',
778
- selectionVariant: isSingleSelectModal ? 'radio' : isMultiSelectVariant(selected) ? 'multiple' : 'single',
779
- items: itemsToRender,
780
- textInputProps: extendedTextInputProps,
781
- loading: loading || isLoading && !message,
782
- loadingType: loadingType(),
783
- onSelectAllChange: showSelectAll ? handleSelectAllChange : undefined
784
- // hack because the deprecated ActionList does not support this prop
785
- ,
786
- message: getMessage(),
787
- messageText: {
788
- title: (message === null || message === void 0 ? void 0 : message.title) || EMPTY_MESSAGE.title,
789
- description: typeof (message === null || message === void 0 ? void 0 : message.body) === 'string' ? message.body : EMPTY_MESSAGE.description
790
- },
791
- fullScreenOnNarrow: usingFullScreenOnNarrow,
792
- className: clsx(className, classes.FilteredActionList),
793
- focusPrependedElements: focusPrependedElements,
794
- virtualized: virtualized
795
- }), footer ? /*#__PURE__*/jsx("div", {
796
- className: classes.Footer,
797
- "data-component": "SelectPanel.Footer",
798
- children: footer
799
- }) : renderFooter ? /*#__PURE__*/jsxs("div", {
800
- "data-display-footer": displayFooter,
801
- "data-stretch-secondary-action": stretchSecondaryAction,
802
- "data-stretch-save-button": stretchSaveButton,
803
- className: clsx(classes.Footer, classes.ResponsiveFooter),
804
- "data-component": "SelectPanel.Footer",
805
- children: [/*#__PURE__*/jsx("div", {
806
- "data-stretch-secondary-action": stretchSecondaryAction,
807
- className: classes.SecondaryAction,
808
- "data-component": "SelectPanel.SecondaryAction",
809
- children: secondaryAction
810
- }), showPermanentCancelSaveButtons || showResponsiveCancelSaveButtons ? /*#__PURE__*/jsxs("div", {
811
- "data-stretch-save-button": stretchSaveButton,
812
- className: clsx(classes.CancelSaveButtons, {
813
- [classes.ResponsiveSaveButton]: showResponsiveCancelSaveButtons
814
- }),
815
- children: [/*#__PURE__*/jsx(ButtonComponent, {
816
- size: "medium",
817
- "data-component": "SelectPanel.CancelButton",
818
- onClick: () => {
819
- onCancel === null || onCancel === void 0 ? void 0 : onCancel();
820
- onCancelRequested();
821
- },
822
- children: "Cancel"
823
- }), /*#__PURE__*/jsx(ButtonComponent, {
824
- block: onCancel === undefined,
825
- variant: "primary",
826
- size: "medium",
827
- "data-component": "SelectPanel.SaveButton",
828
- onClick: () => {
829
- if (isSingleSelectModal) {
830
- const singleSelectOnChange = onSelectedChange;
831
- singleSelectOnChange(intermediateSelected);
832
- }
833
- onClose(variant === 'modal' ? 'selection' : 'click-outside');
834
- },
835
- children: "Save"
836
- })]
837
- }) : null, showResponsiveSaveAndCloseButton ? /*#__PURE__*/jsx("div", {
838
- className: classes.ResponsiveSaveButton,
839
- "data-stretch-save-button": stretchSaveButton,
840
- children: /*#__PURE__*/jsx(ButtonComponent, {
841
- block: true,
842
- variant: "primary",
843
- size: "medium",
844
- "data-component": "SelectPanel.SaveAndCloseButton",
845
- onClick: () => {
846
- onClose('click-outside');
847
- },
848
- children: "Save and close"
849
- })
850
- }) : null]
851
- }) : null]
852
- })
853
- }), variant === 'modal' && open ? /*#__PURE__*/jsx("div", {
854
- className: classes.Backdrop,
855
- "data-component": "SelectPanel.Backdrop"
856
- }) : null]
857
- });
69
+ function Panel({ open, onOpenChange, renderAnchor = defaultRenderAnchor, anchorRef: externalAnchorRef, placeholder, placeholderText = "Filter items", inputLabel = placeholderText, selected, title = isMultiSelectVariant(selected) ? "Select items" : "Select an item", subtitle, onSelectedChange, filterValue: externalFilterValue, onFilterChange: externalOnFilterChange, items, footer, textInputProps, overlayProps, loading, initialLoadingType = "spinner", className, height, width, id, message, notice, onCancel, variant = "anchored", secondaryAction, showSelectedOptionsFirst = true, disableFullscreenOnNarrow, align, showSelectAll = false, focusPrependedElements, virtualized, displayInViewport, cssAnchorPositioningSettings, ...listProps }) {
70
+ var _listProps$groupMetad;
71
+ const titleId = useId$1();
72
+ const subtitleId = useId$1();
73
+ const [dataLoadedOnce, setDataLoadedOnce] = useState(false);
74
+ const [isLoading, setIsLoading] = useState(false);
75
+ const [filterValue, setInternalFilterValue] = useProvidedStateOrCreate(externalFilterValue, void 0, "");
76
+ const { safeSetTimeout, safeClearTimeout } = useSafeTimeout();
77
+ const loadingDelayTimeoutId = useRef(null);
78
+ const loadingManagedInternally = loading === void 0;
79
+ const loadingManagedExternally = !loadingManagedInternally;
80
+ const [inputRef, setInputRef] = React.useState(null);
81
+ const [listContainerElement, setListContainerElement] = useState(null);
82
+ const [needsNoItemsAnnouncement, setNeedsNoItemsAnnouncement] = useState(false);
83
+ const isNarrowScreenSize = useResponsiveValue({
84
+ narrow: true,
85
+ regular: false,
86
+ wide: false
87
+ }, false);
88
+ const [selectedOnSort, setSelectedOnSort] = useState([]);
89
+ const initialHeightRef = useRef(0);
90
+ const initialScaleRef = useRef(1);
91
+ const noticeRef = useRef(null);
92
+ const [isKeyboardVisible, setIsKeyboardVisible] = useState(false);
93
+ const [availablePanelHeight, setAvailablePanelHeight] = useState(void 0);
94
+ const KEYBOARD_VISIBILITY_THRESHOLD = 10;
95
+ const featureFlagFullScreenOnNarrow = useFeatureFlag("primer_react_select_panel_fullscreen_on_narrow");
96
+ const usingFullScreenOnNarrow = disableFullscreenOnNarrow ? false : featureFlagFullScreenOnNarrow;
97
+ const shouldOrderSelectedFirst = useFeatureFlag("primer_react_select_panel_order_selected_at_top") && showSelectedOptionsFirst;
98
+ const { isReferenced, labelId } = useFormControlContext();
99
+ const selectedValueId = id ? `${id}-selected-value` : void 0;
100
+ const isSingleSelectModal = variant === "modal" && !isMultiSelectVariant(selected);
101
+ const [intermediateSelected, setIntermediateSelected] = useState(isSingleSelectModal ? selected : void 0);
102
+ useEffect(() => {
103
+ setIntermediateSelected(isSingleSelectModal ? selected : void 0);
104
+ }, [
105
+ isSingleSelectModal,
106
+ open,
107
+ selected
108
+ ]);
109
+ const onListContainerRefChanged = useCallback((node) => {
110
+ setListContainerElement(node);
111
+ if (!node && needsNoItemsAnnouncement) setNeedsNoItemsAnnouncement(false);
112
+ }, [needsNoItemsAnnouncement]);
113
+ const onInputRefChanged = useCallback((ref) => {
114
+ setInputRef(ref);
115
+ }, [setInputRef]);
116
+ const resetSort = useCallback(() => {
117
+ if (isMultiSelectVariant(selected)) setSelectedOnSort(selected);
118
+ else if (selected) setSelectedOnSort([selected]);
119
+ else setSelectedOnSort([]);
120
+ }, [selected]);
121
+ const onFilterChange = useCallback((value, e) => {
122
+ if (loadingManagedInternally) {
123
+ if (loadingDelayTimeoutId.current) safeClearTimeout(loadingDelayTimeoutId.current);
124
+ if (dataLoadedOnce) loadingDelayTimeoutId.current = safeSetTimeout(() => {
125
+ setIsLoading(true);
126
+ announceLoading();
127
+ }, LONG_DELAY_MS);
128
+ else {
129
+ if (items.length === 0) setIsLoading(true);
130
+ loadingDelayTimeoutId.current = safeSetTimeout(() => {
131
+ announceLoading();
132
+ }, LONG_DELAY_MS);
133
+ }
134
+ }
135
+ externalOnFilterChange(value, e);
136
+ setInternalFilterValue(value);
137
+ if (!value) resetSort();
138
+ }, [
139
+ loadingManagedInternally,
140
+ externalOnFilterChange,
141
+ setInternalFilterValue,
142
+ dataLoadedOnce,
143
+ safeSetTimeout,
144
+ safeClearTimeout,
145
+ items.length,
146
+ resetSort
147
+ ]);
148
+ const itemsInViewSet = useMemo(() => {
149
+ const set = /* @__PURE__ */ new Set();
150
+ for (const item of items) if (item.id !== void 0) set.add(item.id);
151
+ else set.add(item);
152
+ return set;
153
+ }, [items]);
154
+ const handleSelectAllChange = useCallback((checked) => {
155
+ if (!isMultiSelectVariant(selected)) return;
156
+ const multiSelectOnChange = onSelectedChange;
157
+ const selectedItemsNotInFilteredView = selected.filter((selectedItem) => {
158
+ if (selectedItem.id !== void 0) return !itemsInViewSet.has(selectedItem.id);
159
+ return !itemsInViewSet.has(selectedItem);
160
+ });
161
+ if (checked) multiSelectOnChange([...selectedItemsNotInFilteredView, ...items]);
162
+ else multiSelectOnChange(selectedItemsNotInFilteredView);
163
+ }, [
164
+ items,
165
+ itemsInViewSet,
166
+ onSelectedChange,
167
+ selected
168
+ ]);
169
+ useEffect(() => {
170
+ if (open && (variant === "modal" || isNarrowScreenSize && usingFullScreenOnNarrow)) {
171
+ const bodyOverflowStyle = document.body.style.overflow || "";
172
+ if (bodyOverflowStyle === "hidden") return;
173
+ document.body.style.overflow = "hidden";
174
+ return () => {
175
+ document.body.style.overflow = bodyOverflowStyle;
176
+ };
177
+ }
178
+ }, [
179
+ isNarrowScreenSize,
180
+ open,
181
+ usingFullScreenOnNarrow,
182
+ variant
183
+ ]);
184
+ useEffect(() => {
185
+ if (open) {
186
+ if (items.length === 0 && !(isLoading || loading)) setNeedsNoItemsAnnouncement(true);
187
+ }
188
+ if (loadingManagedExternally) {
189
+ if (items.length > 0) setDataLoadedOnce(true);
190
+ return;
191
+ }
192
+ if (isLoading || items.length > 0) {
193
+ setIsLoading(false);
194
+ setDataLoadedOnce(true);
195
+ }
196
+ if (loadingDelayTimeoutId.current) safeClearTimeout(loadingDelayTimeoutId.current);
197
+ }, [items]);
198
+ useEffect(() => {
199
+ if (inputRef !== null && inputRef !== void 0 && inputRef.current) {
200
+ const ref = inputRef.current;
201
+ if (open) ref.focus();
202
+ }
203
+ }, [inputRef, open]);
204
+ useEffect(() => {
205
+ if (loadingManagedExternally) {
206
+ if (isLoading) loadingDelayTimeoutId.current = safeSetTimeout(() => {
207
+ announceLoading();
208
+ }, LONG_DELAY_MS);
209
+ else if (loadingDelayTimeoutId.current) safeClearTimeout(loadingDelayTimeoutId.current);
210
+ }
211
+ }, [
212
+ isLoading,
213
+ loadingManagedExternally,
214
+ safeSetTimeout,
215
+ safeClearTimeout
216
+ ]);
217
+ useEffect(() => {
218
+ if (loadingManagedExternally) return;
219
+ if (dataLoadedOnce) return;
220
+ if (open) {
221
+ if (items.length === 0) onFilterChange(filterValue, null);
222
+ }
223
+ }, [
224
+ open,
225
+ dataLoadedOnce,
226
+ onFilterChange,
227
+ filterValue,
228
+ items,
229
+ loadingManagedExternally,
230
+ listContainerElement
231
+ ]);
232
+ useEffect(() => {
233
+ if (!window.visualViewport || !open || !isNarrowScreenSize) return;
234
+ initialHeightRef.current = window.visualViewport.height;
235
+ initialScaleRef.current = window.visualViewport.scale;
236
+ const handleViewportChange = debounce(() => {
237
+ if (window.visualViewport) {
238
+ if (!(window.visualViewport.scale !== initialScaleRef.current)) {
239
+ const currentHeight = window.visualViewport.height;
240
+ const keyboardVisible = initialHeightRef.current - currentHeight > KEYBOARD_VISIBILITY_THRESHOLD;
241
+ setIsKeyboardVisible(keyboardVisible);
242
+ setAvailablePanelHeight(keyboardVisible ? currentHeight : void 0);
243
+ }
244
+ }
245
+ }, 100);
246
+ if (window.visualViewport) {
247
+ window.visualViewport.addEventListener("resize", handleViewportChange);
248
+ window.visualViewport.addEventListener("scroll", handleViewportChange);
249
+ }
250
+ return () => {
251
+ if (window.visualViewport) {
252
+ window.visualViewport.removeEventListener("resize", handleViewportChange);
253
+ window.visualViewport.removeEventListener("scroll", handleViewportChange);
254
+ }
255
+ handleViewportChange.cancel();
256
+ };
257
+ }, [open, isNarrowScreenSize]);
258
+ useEffect(() => {
259
+ const announceNotice = async () => {
260
+ if (!noticeRef.current) return;
261
+ const liveRegion = document.querySelector("live-region");
262
+ liveRegion === null || liveRegion === void 0 || liveRegion.clear();
263
+ await announceFromElement(noticeRef.current, { from: liveRegion ? liveRegion : void 0 });
264
+ };
265
+ if (open && notice) announceNotice();
266
+ }, [notice, open]);
267
+ const anchorRef = useProvidedRefOrCreate(externalAnchorRef);
268
+ const onOpen = useCallback((gesture) => onOpenChange(true, gesture), [onOpenChange]);
269
+ const onCancelRequested = useCallback(() => {
270
+ onOpenChange(false, "cancel");
271
+ }, [onOpenChange]);
272
+ const onClose = useCallback((gesture) => {
273
+ if (variant === "modal" && gesture === "click-outside") onCancel === null || onCancel === void 0 || onCancel();
274
+ if (gesture === "close") {
275
+ onCancel === null || onCancel === void 0 || onCancel();
276
+ onCancelRequested();
277
+ } else onOpenChange(false, gesture);
278
+ }, [
279
+ onOpenChange,
280
+ variant,
281
+ onCancel,
282
+ onCancelRequested
283
+ ]);
284
+ const renderMenuAnchor = useMemo(() => {
285
+ if (renderAnchor === null) return null;
286
+ const selectedItems = Array.isArray(selected) ? selected : [...selected ? [selected] : []];
287
+ const selectedValueText = selectedItems.length ? selectedItems.map((item) => item.text).join(", ") : placeholder;
288
+ const shouldAutoWireLabel = isReferenced === false && Boolean(labelId) && Boolean(selectedValueId);
289
+ return (props) => {
290
+ return renderAnchor({
291
+ ...props,
292
+ ...shouldAutoWireLabel ? { "aria-labelledby": [labelId, selectedValueId].filter(Boolean).join(" ") } : {},
293
+ children: shouldAutoWireLabel ? /*#__PURE__*/ jsx("span", {
294
+ id: selectedValueId,
295
+ children: selectedValueText
296
+ }) : selectedValueText
297
+ });
298
+ };
299
+ }, [
300
+ placeholder,
301
+ renderAnchor,
302
+ selected,
303
+ isReferenced,
304
+ labelId,
305
+ selectedValueId
306
+ ]);
307
+ const selectedItemsSet = useMemo(() => {
308
+ const set = /* @__PURE__ */ new Set();
309
+ if (isMultiSelectVariant(selected)) for (const item of selected) if (item.id !== void 0) set.add(item.id);
310
+ else set.add(item);
311
+ return set;
312
+ }, [selected]);
313
+ const isItemCurrentlySelected = useCallback((item) => {
314
+ if (isMultiSelectVariant(selected)) {
315
+ if (item.id !== void 0) return selectedItemsSet.has(item.id);
316
+ return selectedItemsSet.has(item);
317
+ }
318
+ if (isSingleSelectModal) return (intermediateSelected === null || intermediateSelected === void 0 ? void 0 : intermediateSelected.id) !== void 0 ? intermediateSelected.id === item.id : intermediateSelected === item;
319
+ return (selected === null || selected === void 0 ? void 0 : selected.id) !== void 0 ? selected.id === item.id : selected === item;
320
+ }, [
321
+ selected,
322
+ selectedItemsSet,
323
+ intermediateSelected,
324
+ isSingleSelectModal
325
+ ]);
326
+ const itemsToRender = useMemo(() => {
327
+ const selectedOnSortSet = /* @__PURE__ */ new Set();
328
+ for (const item of selectedOnSort) if (item.id !== void 0) selectedOnSortSet.add(item.id);
329
+ else selectedOnSortSet.add(item);
330
+ const isSelectedForSort = (item) => {
331
+ if (item.id !== void 0) return selectedOnSortSet.has(item.id);
332
+ return selectedOnSortSet.has(item);
333
+ };
334
+ return items.map((item) => {
335
+ return {
336
+ ...item,
337
+ role: "option",
338
+ id: item.id,
339
+ selected: "selected" in item && item.selected === void 0 ? void 0 : isItemCurrentlySelected(item),
340
+ onAction: (itemFromAction, event) => {
341
+ var _item$onAction;
342
+ (_item$onAction = item.onAction) === null || _item$onAction === void 0 || _item$onAction.call(item, itemFromAction, event);
343
+ if (event.defaultPrevented) return;
344
+ if (isMultiSelectVariant(selected)) {
345
+ const otherSelectedItems = selected.filter((selectedItem) => !areItemsEqual(selectedItem, item));
346
+ onSelectedChange(doesItemsIncludeItem(selected, item) ? otherSelectedItems : [...otherSelectedItems, item]);
347
+ return;
348
+ }
349
+ if (isSingleSelectModal) {
350
+ if ((intermediateSelected === null || intermediateSelected === void 0 ? void 0 : intermediateSelected.id) === item.id) setIntermediateSelected(void 0);
351
+ else setIntermediateSelected(item);
352
+ return;
353
+ }
354
+ onSelectedChange(item === selected ? void 0 : item);
355
+ onClose("selection");
356
+ }
357
+ };
358
+ }).sort((itemA, itemB) => {
359
+ if (shouldOrderSelectedFirst) {
360
+ const itemASelected = isSelectedForSort(itemA);
361
+ const itemBSelected = isSelectedForSort(itemB);
362
+ if (itemASelected && !itemBSelected) return -1;
363
+ else if (!itemASelected && itemBSelected) return 1;
364
+ }
365
+ return 0;
366
+ });
367
+ }, [
368
+ onClose,
369
+ onSelectedChange,
370
+ items,
371
+ selected,
372
+ isItemCurrentlySelected,
373
+ isSingleSelectModal,
374
+ intermediateSelected,
375
+ shouldOrderSelectedFirst,
376
+ selectedOnSort
377
+ ]);
378
+ const prevItemsRef = useRef(items);
379
+ useEffect(() => {
380
+ if (prevItemsRef.current !== items) {
381
+ if (prevItemsRef.current.length === 0 && items.length > 0) resetSort();
382
+ prevItemsRef.current = items;
383
+ }
384
+ }, [items, resetSort]);
385
+ const prevOpenRef = useRef(open);
386
+ useEffect(() => {
387
+ if (prevOpenRef.current !== open) {
388
+ resetSort();
389
+ prevOpenRef.current = open;
390
+ }
391
+ }, [open, resetSort]);
392
+ const focusTrapSettings = useMemo(() => ({ initialFocusRef: inputRef || void 0 }), [inputRef]);
393
+ const extendedTextInputProps = useMemo(() => {
394
+ return {
395
+ className: SelectPanel_module_css_default.TextInput,
396
+ contrast: true,
397
+ leadingVisual: SearchIcon,
398
+ "aria-label": inputLabel,
399
+ ...textInputProps
400
+ };
401
+ }, [inputLabel, textInputProps]);
402
+ const loadingType = () => {
403
+ if (dataLoadedOnce) return FilteredActionListLoadingTypes.input;
404
+ else if (initialLoadingType === "spinner") return FilteredActionListLoadingTypes.bodySpinner;
405
+ else return FilteredActionListLoadingTypes.bodySkeleton;
406
+ };
407
+ function getMessage() {
408
+ if (items.length === 0 && !message) return DefaultEmptyMessage;
409
+ else if (message) return /*#__PURE__*/ jsx(SelectPanelMessage, {
410
+ title: message.title,
411
+ variant: message.variant,
412
+ icon: message.icon,
413
+ action: message.action,
414
+ children: message.body
415
+ });
416
+ }
417
+ const showPermanentCancelSaveButtons = variant === "modal";
418
+ const showResponsiveCancelSaveButtons = variant !== "modal" && usingFullScreenOnNarrow && isMultiSelectVariant(selected) && onCancel !== void 0;
419
+ const showResponsiveSaveAndCloseButton = variant !== "modal" && usingFullScreenOnNarrow && isMultiSelectVariant(selected) && onCancel === void 0;
420
+ const renderFooter = secondaryAction !== void 0 || showPermanentCancelSaveButtons || showResponsiveSaveAndCloseButton || showResponsiveCancelSaveButtons;
421
+ const displayFooter = secondaryAction !== void 0 || showPermanentCancelSaveButtons ? "always" : showResponsiveSaveAndCloseButton || showResponsiveCancelSaveButtons ? "only-small" : void 0;
422
+ const stretchSecondaryAction = showResponsiveSaveAndCloseButton || showResponsiveCancelSaveButtons ? "only-big" : showPermanentCancelSaveButtons ? "never" : "always";
423
+ const stretchSaveButton = showResponsiveSaveAndCloseButton && secondaryAction === void 0 ? "only-small" : "never";
424
+ const showXCloseIcon = (onCancel !== void 0 || !isMultiSelectVariant(selected)) && usingFullScreenOnNarrow;
425
+ const currentResponsiveVariant = useResponsiveValue(usingFullScreenOnNarrow ? {
426
+ regular: "anchored",
427
+ narrow: "fullscreen"
428
+ } : void 0, "anchored");
429
+ const preventBubbling = useCallback((event) => {
430
+ var _overlayProps$onKeyDo;
431
+ overlayProps === null || overlayProps === void 0 || (_overlayProps$onKeyDo = overlayProps.onKeyDown) == null || _overlayProps$onKeyDo.call(overlayProps, event);
432
+ const activeElement = document.activeElement;
433
+ if (activeElement.tagName === "INPUT" || activeElement.tagName === "TEXTAREA") return;
434
+ if (event.ctrlKey || event.altKey || event.metaKey) return;
435
+ if (event.key !== "/" && !isAlphabetKey(event.nativeEvent)) return;
436
+ event.stopPropagation();
437
+ }, [overlayProps]);
438
+ return /*#__PURE__*/ jsxs(Fragment, { children: [/*#__PURE__*/ jsx(AnchoredOverlay, {
439
+ renderAnchor: renderMenuAnchor,
440
+ anchorRef,
441
+ align,
442
+ open,
443
+ onOpen,
444
+ onClose,
445
+ overlayProps: useMemo(() => ({
446
+ role: "dialog",
447
+ "aria-labelledby": titleId,
448
+ "aria-describedby": subtitle ? subtitleId : void 0,
449
+ ...overlayProps,
450
+ ...variant === "modal" ? {
451
+ top: "50vh",
452
+ left: "50vw",
453
+ anchorSide: void 0
454
+ } : {},
455
+ style: {
456
+ transform: variant === "modal" ? "translate(-50%, -50%)" : void 0,
457
+ ...isKeyboardVisible ? { maxHeight: availablePanelHeight !== void 0 ? `${availablePanelHeight}px` : "auto" } : {}
458
+ },
459
+ onKeyDown: preventBubbling
460
+ }), [
461
+ titleId,
462
+ subtitle,
463
+ subtitleId,
464
+ overlayProps,
465
+ variant,
466
+ isKeyboardVisible,
467
+ availablePanelHeight,
468
+ preventBubbling
469
+ ]),
470
+ focusTrapSettings,
471
+ focusZoneSettings,
472
+ height,
473
+ width,
474
+ anchorId: id,
475
+ variant: usingFullScreenOnNarrow ? {
476
+ regular: "anchored",
477
+ narrow: "fullscreen"
478
+ } : void 0,
479
+ pinPosition: !height,
480
+ className: SelectPanel_module_css_default.Overlay,
481
+ displayCloseButton: showXCloseIcon,
482
+ closeButtonProps,
483
+ displayInViewport,
484
+ cssAnchorPositioningSettings: {
485
+ ...cssAnchorPositioningSettings,
486
+ disable: variant === "modal" || (cssAnchorPositioningSettings === null || cssAnchorPositioningSettings === void 0 ? void 0 : cssAnchorPositioningSettings.disable)
487
+ },
488
+ children: /*#__PURE__*/ jsxs("div", {
489
+ className: SelectPanel_module_css_default.Wrapper,
490
+ "data-variant": variant,
491
+ "data-component": "SelectPanel",
492
+ children: [
493
+ /*#__PURE__*/ jsxs("div", {
494
+ className: SelectPanel_module_css_default.Header,
495
+ "data-variant": currentResponsiveVariant,
496
+ "data-component": "SelectPanel.Header",
497
+ children: [/*#__PURE__*/ jsxs("div", { children: [/*#__PURE__*/ jsx(Heading, {
498
+ as: "h1",
499
+ id: titleId,
500
+ className: SelectPanel_module_css_default.Title,
501
+ "data-component": "SelectPanel.Title",
502
+ children: title
503
+ }), subtitle ? /*#__PURE__*/ jsx("div", {
504
+ id: subtitleId,
505
+ className: SelectPanel_module_css_default.Subtitle,
506
+ "data-component": "SelectPanel.Subtitle",
507
+ children: subtitle
508
+ }) : null] }), variant === "modal" && !isNarrowScreenSize ? /*#__PURE__*/ jsx(IconButton, {
509
+ type: "button",
510
+ variant: "invisible",
511
+ icon: XIcon,
512
+ "aria-label": "Cancel and close",
513
+ className: SelectPanel_module_css_default.ResponsiveCloseButton,
514
+ "data-component": "SelectPanel.CloseButton",
515
+ onClick: () => {
516
+ onCancel === null || onCancel === void 0 || onCancel();
517
+ onCancelRequested();
518
+ }
519
+ }) : null]
520
+ }),
521
+ notice && /*#__PURE__*/ jsx("div", {
522
+ ref: noticeRef,
523
+ "data-component": "SelectPanel.Notice",
524
+ children: /*#__PURE__*/ jsx(Banner, {
525
+ variant: notice.variant === "error" ? "critical" : notice.variant,
526
+ description: notice.text,
527
+ title: "Notice",
528
+ hideTitle: true,
529
+ className: SelectPanel_module_css_default.Notice,
530
+ layout: "compact"
531
+ })
532
+ }),
533
+ /*#__PURE__*/ jsx(FilteredActionList, {
534
+ filterValue,
535
+ onFilterChange,
536
+ onListContainerRefChanged,
537
+ onInputRefChanged,
538
+ placeholderText,
539
+ ...listProps,
540
+ variant: (_listProps$groupMetad = listProps.groupMetadata) !== null && _listProps$groupMetad !== void 0 && _listProps$groupMetad.length ? "horizontal-inset" : "inset",
541
+ role: "listbox",
542
+ "aria-labelledby": listProps["aria-label"] ? void 0 : titleId,
543
+ "aria-multiselectable": isMultiSelectVariant(selected) ? "true" : "false",
544
+ selectionVariant: isSingleSelectModal ? "radio" : isMultiSelectVariant(selected) ? "multiple" : "single",
545
+ items: itemsToRender,
546
+ textInputProps: extendedTextInputProps,
547
+ loading: loading || isLoading && !message,
548
+ loadingType: loadingType(),
549
+ onSelectAllChange: showSelectAll ? handleSelectAllChange : void 0,
550
+ message: getMessage(),
551
+ messageText: {
552
+ title: (message === null || message === void 0 ? void 0 : message.title) || EMPTY_MESSAGE.title,
553
+ description: typeof (message === null || message === void 0 ? void 0 : message.body) === "string" ? message.body : EMPTY_MESSAGE.description || EMPTY_MESSAGE.description
554
+ },
555
+ fullScreenOnNarrow: usingFullScreenOnNarrow,
556
+ className: clsx(className, SelectPanel_module_css_default.FilteredActionList),
557
+ focusPrependedElements,
558
+ virtualized
559
+ }),
560
+ footer ? /*#__PURE__*/ jsx("div", {
561
+ className: SelectPanel_module_css_default.Footer,
562
+ "data-component": "SelectPanel.Footer",
563
+ children: footer
564
+ }) : renderFooter ? /*#__PURE__*/ jsxs("div", {
565
+ "data-display-footer": displayFooter,
566
+ "data-stretch-secondary-action": stretchSecondaryAction,
567
+ "data-stretch-save-button": stretchSaveButton,
568
+ className: clsx(SelectPanel_module_css_default.Footer, SelectPanel_module_css_default.ResponsiveFooter),
569
+ "data-component": "SelectPanel.Footer",
570
+ children: [
571
+ /*#__PURE__*/ jsx("div", {
572
+ "data-stretch-secondary-action": stretchSecondaryAction,
573
+ className: SelectPanel_module_css_default.SecondaryAction,
574
+ "data-component": "SelectPanel.SecondaryAction",
575
+ children: secondaryAction
576
+ }),
577
+ showPermanentCancelSaveButtons || showResponsiveCancelSaveButtons ? /*#__PURE__*/ jsxs("div", {
578
+ "data-stretch-save-button": stretchSaveButton,
579
+ className: clsx(SelectPanel_module_css_default.CancelSaveButtons, { [SelectPanel_module_css_default.ResponsiveSaveButton]: showResponsiveCancelSaveButtons }),
580
+ children: [/*#__PURE__*/ jsx(ButtonComponent, {
581
+ size: "medium",
582
+ "data-component": "SelectPanel.CancelButton",
583
+ onClick: () => {
584
+ onCancel === null || onCancel === void 0 || onCancel();
585
+ onCancelRequested();
586
+ },
587
+ children: "Cancel"
588
+ }), /*#__PURE__*/ jsx(ButtonComponent, {
589
+ block: onCancel === void 0,
590
+ variant: "primary",
591
+ size: "medium",
592
+ "data-component": "SelectPanel.SaveButton",
593
+ onClick: () => {
594
+ if (isSingleSelectModal) onSelectedChange(intermediateSelected);
595
+ onClose(variant === "modal" ? "selection" : "click-outside");
596
+ },
597
+ children: "Save"
598
+ })]
599
+ }) : null,
600
+ showResponsiveSaveAndCloseButton ? /*#__PURE__*/ jsx("div", {
601
+ className: SelectPanel_module_css_default.ResponsiveSaveButton,
602
+ "data-stretch-save-button": stretchSaveButton,
603
+ children: /*#__PURE__*/ jsx(ButtonComponent, {
604
+ block: true,
605
+ variant: "primary",
606
+ size: "medium",
607
+ "data-component": "SelectPanel.SaveAndCloseButton",
608
+ onClick: () => {
609
+ onClose("click-outside");
610
+ },
611
+ children: "Save and close"
612
+ })
613
+ }) : null
614
+ ]
615
+ }) : null
616
+ ]
617
+ })
618
+ }), variant === "modal" && open ? /*#__PURE__*/ jsx("div", {
619
+ className: SelectPanel_module_css_default.Backdrop,
620
+ "data-component": "SelectPanel.Backdrop"
621
+ }) : null] });
858
622
  }
859
- const SecondaryButton = props => {
860
- return /*#__PURE__*/jsx(ButtonComponent, {
861
- block: true,
862
- "data-component": "SelectPanel.SecondaryActionButton",
863
- ...props,
864
- children: props.children
865
- });
623
+ const SecondaryButton = (props) => {
624
+ return /*#__PURE__*/ jsx(ButtonComponent, {
625
+ block: true,
626
+ "data-component": "SelectPanel.SecondaryActionButton",
627
+ ...props,
628
+ children: props.children
629
+ });
866
630
  };
867
631
  SecondaryButton.displayName = "SecondaryButton";
868
- const SecondaryLink = props => {
869
- return /*#__PURE__*/jsx(LinkButton, {
870
- ...props,
871
- variant: "invisible",
872
- block: true,
873
- "data-component": "SelectPanel.SecondaryActionLink",
874
- children: props.children
875
- });
632
+ const SecondaryLink = (props) => {
633
+ return /*#__PURE__*/ jsx(LinkButton, {
634
+ ...props,
635
+ variant: "invisible",
636
+ block: true,
637
+ "data-component": "SelectPanel.SecondaryActionLink",
638
+ children: props.children
639
+ });
876
640
  };
877
641
  SecondaryLink.displayName = "SecondaryLink";
878
642
  const SelectPanel = Object.assign(Panel, {
879
- __SLOT__: Symbol('SelectPanel'),
880
- SecondaryActionButton: SecondaryButton,
881
- SecondaryActionLink: SecondaryLink,
882
- Message: SelectPanelMessage
643
+ __SLOT__: Symbol("SelectPanel"),
644
+ SecondaryActionButton: SecondaryButton,
645
+ SecondaryActionLink: SecondaryLink,
646
+ Message: SelectPanelMessage
883
647
  });
884
-
648
+ //#endregion
885
649
  export { SelectPanel };