@primer/react 38.30.1-rc.0d136c1b7 → 38.30.1-rc.34724960c

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 (1132) hide show
  1. package/dist/ActionBar/ActionBar.d.ts +82 -137
  2. package/dist/ActionBar/ActionBar.js +514 -713
  3. package/dist/ActionBar/ActionBar.module.css.js +14 -5
  4. package/dist/ActionBar/index.d.ts +49 -47
  5. package/dist/ActionBar/index.js +9 -9
  6. package/dist/ActionList/ActionList.module.css.js +32 -5
  7. package/dist/ActionList/ActionListContainerContext.js +4 -5
  8. package/dist/ActionList/Description.d.ts +19 -18
  9. package/dist/ActionList/Description.js +117 -133
  10. package/dist/ActionList/Divider.d.ts +8 -10
  11. package/dist/ActionList/Divider.js +31 -38
  12. package/dist/ActionList/Group.d.ts +34 -37
  13. package/dist/ActionList/Group.js +313 -377
  14. package/dist/ActionList/Group.module.css.js +11 -5
  15. package/dist/ActionList/GroupContext.js +6 -6
  16. package/dist/ActionList/GroupHeadingTrailingAction.d.ts +8 -11
  17. package/dist/ActionList/GroupHeadingTrailingAction.js +69 -69
  18. package/dist/ActionList/Heading.d.ts +11 -11
  19. package/dist/ActionList/Heading.js +88 -107
  20. package/dist/ActionList/Heading.module.css.js +5 -5
  21. package/dist/ActionList/Item.js +678 -819
  22. package/dist/ActionList/LinkItem.d.ts +17 -20
  23. package/dist/ActionList/LinkItem.js +36 -56
  24. package/dist/ActionList/List.js +173 -215
  25. package/dist/ActionList/Selection.js +83 -112
  26. package/dist/ActionList/TrailingAction.d.ts +21 -21
  27. package/dist/ActionList/TrailingAction.js +103 -119
  28. package/dist/ActionList/Visuals.d.ts +8 -18
  29. package/dist/ActionList/Visuals.js +145 -193
  30. package/dist/ActionList/index.d.ts +113 -120
  31. package/dist/ActionList/index.js +39 -39
  32. package/dist/ActionList/shared.d.ts +96 -118
  33. package/dist/ActionList/shared.js +5 -9
  34. package/dist/ActionMenu/ActionMenu.d.ts +46 -46
  35. package/dist/ActionMenu/ActionMenu.js +244 -314
  36. package/dist/ActionMenu/ActionMenu.module.css.js +5 -5
  37. package/dist/ActionMenu/index.d.ts +2 -2
  38. package/dist/AnchoredOverlay/AnchoredOverlay.d.ts +118 -115
  39. package/dist/AnchoredOverlay/AnchoredOverlay.js +259 -365
  40. package/dist/AnchoredOverlay/AnchoredOverlay.module.css.js +9 -5
  41. package/dist/AnchoredOverlay/index.d.ts +2 -3
  42. package/dist/Autocomplete/Autocomplete.d.ts +42 -43
  43. package/dist/Autocomplete/Autocomplete.js +125 -141
  44. package/dist/Autocomplete/AutocompleteContext.js +18 -20
  45. package/dist/Autocomplete/AutocompleteInput.d.ts +16 -14
  46. package/dist/Autocomplete/AutocompleteInput.js +114 -161
  47. package/dist/Autocomplete/AutocompleteMenu.d.ts +71 -68
  48. package/dist/Autocomplete/AutocompleteMenu.js +202 -245
  49. package/dist/Autocomplete/AutocompleteMenu.module.css.js +8 -5
  50. package/dist/Autocomplete/AutocompleteOverlay.d.ts +26 -18
  51. package/dist/Autocomplete/AutocompleteOverlay.js +55 -80
  52. package/dist/Autocomplete/AutocompleteOverlay.module.css.js +5 -5
  53. package/dist/Autocomplete/index.d.ts +5 -3
  54. package/dist/Avatar/Avatar.d.ts +17 -26
  55. package/dist/Avatar/Avatar.js +106 -133
  56. package/dist/Avatar/Avatar.module.css.js +5 -5
  57. package/dist/Avatar/index.d.ts +2 -3
  58. package/dist/AvatarStack/AvatarStack.d.ts +25 -14
  59. package/dist/AvatarStack/AvatarStack.js +210 -260
  60. package/dist/AvatarStack/AvatarStack.module.css.js +9 -5
  61. package/dist/AvatarStack/index.d.ts +2 -3
  62. package/dist/Banner/Banner.d.ts +82 -148
  63. package/dist/Banner/Banner.js +133 -182
  64. package/dist/Banner/Banner.module.css.js +14 -5
  65. package/dist/Banner/index.d.ts +25 -23
  66. package/dist/Banner/index.js +7 -7
  67. package/dist/BaseStyles.d.ts +17 -11
  68. package/dist/BaseStyles.js +74 -91
  69. package/dist/BaseStyles.module.css.js +5 -5
  70. package/dist/Blankslate/Blankslate.d.ts +63 -34
  71. package/dist/Blankslate/Blankslate.js +272 -334
  72. package/dist/Blankslate/Blankslate.module.css.js +12 -5
  73. package/dist/Blankslate/BlankslateContext.js +7 -9
  74. package/dist/Blankslate/index.d.ts +10 -10
  75. package/dist/Blankslate/index.js +8 -8
  76. package/dist/BranchName/BranchName.d.ts +11 -9
  77. package/dist/BranchName/BranchName.js +50 -60
  78. package/dist/BranchName/BranchName.module.css.js +5 -5
  79. package/dist/BranchName/index.d.ts +2 -3
  80. package/dist/Breadcrumbs/Breadcrumbs.d.ts +57 -49
  81. package/dist/Breadcrumbs/Breadcrumbs.js +477 -604
  82. package/dist/Breadcrumbs/Breadcrumbs.module.css.js +15 -5
  83. package/dist/Breadcrumbs/index.d.ts +2 -3
  84. package/dist/Button/Button.d.ts +7 -5
  85. package/dist/Button/Button.js +15 -18
  86. package/dist/Button/ButtonBase.d.ts +7 -5
  87. package/dist/Button/ButtonBase.js +77 -140
  88. package/dist/Button/ButtonBase.module.css.js +17 -5
  89. package/dist/Button/IconButton.d.ts +7 -5
  90. package/dist/Button/IconButton.js +43 -75
  91. package/dist/Button/LinkButton.d.ts +8 -6
  92. package/dist/Button/LinkButton.js +13 -17
  93. package/dist/Button/index.d.ts +6 -8
  94. package/dist/Button/types.d.ts +86 -85
  95. package/dist/ButtonGroup/ButtonGroup.d.ts +10 -10
  96. package/dist/ButtonGroup/ButtonGroup.js +84 -99
  97. package/dist/ButtonGroup/ButtonGroup.module.css.js +8 -5
  98. package/dist/ButtonGroup/index.d.ts +2 -3
  99. package/dist/Card/Card.d.ts +70 -108
  100. package/dist/Card/Card.js +486 -595
  101. package/dist/Card/Card.module.css.js +18 -5
  102. package/dist/Card/index.d.ts +26 -25
  103. package/dist/Card/index.js +9 -9
  104. package/dist/Checkbox/Checkbox.d.ts +34 -32
  105. package/dist/Checkbox/Checkbox.js +57 -80
  106. package/dist/Checkbox/Checkbox.module.css.js +9 -5
  107. package/dist/Checkbox/index.d.ts +2 -3
  108. package/dist/Checkbox/shared.module.css.js +5 -5
  109. package/dist/CheckboxGroup/CheckboxGroup.d.ts +22 -21
  110. package/dist/CheckboxGroup/CheckboxGroup.js +110 -131
  111. package/dist/CheckboxGroup/CheckboxGroupContext.d.ts +1 -6
  112. package/dist/CheckboxGroup/CheckboxGroupContext.js +4 -4
  113. package/dist/CheckboxGroup/index.d.ts +2 -2
  114. package/dist/CircleBadge/CircleBadge.d.ts +26 -21
  115. package/dist/CircleBadge/CircleBadge.js +91 -107
  116. package/dist/CircleBadge/CircleBadge.module.css.js +8 -5
  117. package/dist/CircleBadge/index.d.ts +2 -3
  118. package/dist/ConfirmationDialog/ConfirmationDialog.d.ts +64 -61
  119. package/dist/ConfirmationDialog/ConfirmationDialog.js +44 -58
  120. package/dist/ConfirmationDialog/useConfirm.d.ts +9 -6
  121. package/dist/ConfirmationDialog/useConfirm.js +27 -32
  122. package/dist/CounterLabel/CounterLabel.d.ts +15 -16
  123. package/dist/CounterLabel/CounterLabel.js +24 -34
  124. package/dist/CounterLabel/CounterLabel.module.css.js +5 -5
  125. package/dist/CounterLabel/index.d.ts +2 -3
  126. package/dist/DataTable/DataTable.d.ts +75 -62
  127. package/dist/DataTable/DataTable.js +100 -140
  128. package/dist/DataTable/ErrorDialog.d.ts +25 -17
  129. package/dist/DataTable/ErrorDialog.js +33 -45
  130. package/dist/DataTable/Pagination.d.ts +50 -40
  131. package/dist/DataTable/Pagination.js +464 -592
  132. package/dist/DataTable/Pagination.module.css.js +13 -5
  133. package/dist/DataTable/Table.d.ts +148 -124
  134. package/dist/DataTable/Table.js +527 -710
  135. package/dist/DataTable/Table.module.css.js +26 -5
  136. package/dist/DataTable/column.d.ts +63 -60
  137. package/dist/DataTable/column.js +10 -11
  138. package/dist/DataTable/index.d.ts +27 -28
  139. package/dist/DataTable/index.js +22 -20
  140. package/dist/DataTable/row.d.ts +5 -3
  141. package/dist/DataTable/sorting.d.ts +14 -16
  142. package/dist/DataTable/sorting.js +64 -102
  143. package/dist/DataTable/useTable.js +209 -292
  144. package/dist/DataTable/utils.d.ts +5 -5
  145. package/dist/Details/Details.d.ts +21 -16
  146. package/dist/Details/Details.js +107 -134
  147. package/dist/Details/Details.module.css.js +5 -5
  148. package/dist/Details/index.d.ts +2 -3
  149. package/dist/Dialog/Dialog.d.ts +159 -157
  150. package/dist/Dialog/Dialog.js +286 -383
  151. package/dist/Dialog/Dialog.module.css.js +22 -5
  152. package/dist/Dialog/DialogContext.js +4 -4
  153. package/dist/Dialog/index.d.ts +2 -3
  154. package/dist/FeatureFlags/DefaultFeatureFlags.d.ts +6 -3
  155. package/dist/FeatureFlags/DefaultFeatureFlags.js +11 -11
  156. package/dist/FeatureFlags/FeatureFlagContext.js +5 -5
  157. package/dist/FeatureFlags/FeatureFlagScope.d.ts +22 -20
  158. package/dist/FeatureFlags/FeatureFlagScope.js +36 -44
  159. package/dist/FeatureFlags/FeatureFlags.d.ts +12 -6
  160. package/dist/FeatureFlags/FeatureFlags.js +29 -37
  161. package/dist/FeatureFlags/index.d.ts +4 -5
  162. package/dist/FeatureFlags/useFeatureFlag.d.ts +4 -2
  163. package/dist/FeatureFlags/useFeatureFlag.js +17 -19
  164. package/dist/FilteredActionList/FilteredActionList.d.ts +142 -109
  165. package/dist/FilteredActionList/FilteredActionList.js +443 -568
  166. package/dist/FilteredActionList/FilteredActionList.module.css.js +15 -5
  167. package/dist/FilteredActionList/FilteredActionListInput.d.ts +30 -14
  168. package/dist/FilteredActionList/FilteredActionListInput.js +97 -116
  169. package/dist/FilteredActionList/FilteredActionListLoaders.d.ts +12 -7
  170. package/dist/FilteredActionList/FilteredActionListLoaders.js +110 -142
  171. package/dist/FilteredActionList/FilteredActionListLoaders.module.css.js +10 -5
  172. package/dist/FilteredActionList/constants.d.ts +11 -9
  173. package/dist/FilteredActionList/constants.js +11 -10
  174. package/dist/FilteredActionList/index.d.ts +12 -11
  175. package/dist/FilteredActionList/index.js +9 -8
  176. package/dist/FilteredActionList/types.d.ts +154 -151
  177. package/dist/FilteredActionList/useAnnouncements.js +167 -180
  178. package/dist/Flash/Flash.d.ts +11 -9
  179. package/dist/Flash/Flash.js +58 -70
  180. package/dist/Flash/Flash.module.css.js +5 -5
  181. package/dist/Flash/index.d.ts +2 -3
  182. package/dist/FormControl/FormControl.d.ts +42 -36
  183. package/dist/FormControl/FormControl.js +213 -229
  184. package/dist/FormControl/FormControl.module.css.js +11 -5
  185. package/dist/FormControl/FormControlCaption.d.ts +16 -9
  186. package/dist/FormControl/FormControlCaption.js +38 -50
  187. package/dist/FormControl/FormControlCaption.module.css.js +5 -5
  188. package/dist/FormControl/FormControlLabel.d.ts +15 -18
  189. package/dist/FormControl/FormControlLabel.js +96 -116
  190. package/dist/FormControl/FormControlLeadingVisual.js +30 -38
  191. package/dist/FormControl/FormControlLeadingVisual.module.css.js +5 -5
  192. package/dist/FormControl/_FormControlContext.d.ts +7 -21
  193. package/dist/FormControl/_FormControlContext.js +41 -48
  194. package/dist/FormControl/_FormControlValidation.d.ts +11 -11
  195. package/dist/FormControl/_FormControlValidation.js +30 -40
  196. package/dist/FormControl/index.d.ts +6 -7
  197. package/dist/Header/Header.d.ts +17 -15
  198. package/dist/Header/Header.js +141 -168
  199. package/dist/Header/Header.module.css.js +9 -5
  200. package/dist/Header/index.d.ts +2 -3
  201. package/dist/Heading/Heading.d.ts +10 -8
  202. package/dist/Heading/Heading.js +69 -80
  203. package/dist/Heading/Heading.module.css.js +5 -5
  204. package/dist/Heading/index.d.ts +2 -3
  205. package/dist/Hidden/Hidden.d.ts +18 -12
  206. package/dist/Hidden/Hidden.js +55 -78
  207. package/dist/Hidden/Hidden.module.css.js +5 -5
  208. package/dist/Hidden/index.d.ts +2 -6
  209. package/dist/InlineMessage/InlineMessage.d.ts +26 -17
  210. package/dist/InlineMessage/InlineMessage.js +99 -132
  211. package/dist/InlineMessage/InlineMessage.module.css.js +8 -5
  212. package/dist/InlineMessage/index.d.ts +2 -3
  213. package/dist/KeybindingHint/KeybindingHint.d.ts +9 -3
  214. package/dist/KeybindingHint/KeybindingHint.js +64 -81
  215. package/dist/KeybindingHint/KeybindingHint.module.css.js +5 -5
  216. package/dist/KeybindingHint/components/Chord.js +65 -80
  217. package/dist/KeybindingHint/components/Chord.module.css.js +11 -5
  218. package/dist/KeybindingHint/components/Key.js +49 -66
  219. package/dist/KeybindingHint/components/Sequence.js +11 -22
  220. package/dist/KeybindingHint/components/utils.js +20 -23
  221. package/dist/KeybindingHint/key-names.js +100 -115
  222. package/dist/KeybindingHint/platform.d.ts +4 -14
  223. package/dist/KeybindingHint/platform.js +36 -45
  224. package/dist/KeybindingHint/props.d.ts +38 -36
  225. package/dist/KeybindingHint/utils.d.ts +6 -3
  226. package/dist/KeybindingHint/utils.js +15 -15
  227. package/dist/Label/Label.d.ts +10 -10
  228. package/dist/Label/Label.js +57 -67
  229. package/dist/Label/Label.module.css.js +5 -5
  230. package/dist/Label/index.d.ts +2 -4
  231. package/dist/Label/index.js +5 -5
  232. package/dist/LabelGroup/LabelGroup.d.ts +10 -11
  233. package/dist/LabelGroup/LabelGroup.js +265 -352
  234. package/dist/LabelGroup/LabelGroup.module.css.js +12 -5
  235. package/dist/LabelGroup/index.d.ts +2 -3
  236. package/dist/Link/Link.d.ts +15 -15
  237. package/dist/Link/Link.js +80 -95
  238. package/dist/Link/Link.module.css.js +5 -5
  239. package/dist/Link/index.d.ts +2 -3
  240. package/dist/NavList/NavList.d.ts +66 -64
  241. package/dist/NavList/NavList.js +562 -801
  242. package/dist/NavList/NavList.module.css.js +8 -5
  243. package/dist/NavList/index.d.ts +2 -2
  244. package/dist/Octicon/Octicon.d.ts +11 -9
  245. package/dist/Octicon/Octicon.js +35 -37
  246. package/dist/Octicon/index.d.ts +2 -3
  247. package/dist/Overlay/Overlay.d.ts +42 -41
  248. package/dist/Overlay/Overlay.js +251 -304
  249. package/dist/Overlay/Overlay.module.css.js +9 -5
  250. package/dist/Overlay/constants.d.ts +19 -17
  251. package/dist/Overlay/constants.js +16 -15
  252. package/dist/Overlay/index.d.ts +2 -3
  253. package/dist/PageHeader/PageHeader.d.ts +50 -43
  254. package/dist/PageHeader/PageHeader.js +612 -857
  255. package/dist/PageHeader/PageHeader.module.css.js +21 -5
  256. package/dist/PageHeader/index.d.ts +2 -2
  257. package/dist/PageLayout/PageLayout.d.ts +272 -273
  258. package/dist/PageLayout/PageLayout.js +641 -926
  259. package/dist/PageLayout/PageLayout.module.css.js +31 -5
  260. package/dist/PageLayout/index.d.ts +2 -3
  261. package/dist/PageLayout/paneUtils.js +15 -29
  262. package/dist/PageLayout/usePaneWidth.d.ts +11 -92
  263. package/dist/PageLayout/usePaneWidth.js +341 -445
  264. package/dist/Pagehead/Pagehead.d.ts +12 -6
  265. package/dist/Pagehead/Pagehead.js +42 -50
  266. package/dist/Pagehead/Pagehead.module.css.js +5 -5
  267. package/dist/Pagehead/index.d.ts +2 -3
  268. package/dist/Pagination/Pagination.d.ts +35 -22
  269. package/dist/Pagination/Pagination.js +84 -114
  270. package/dist/Pagination/Pagination.module.css.js +9 -5
  271. package/dist/Pagination/index.d.ts +2 -4
  272. package/dist/Pagination/index.js +5 -5
  273. package/dist/Pagination/model.d.ts +17 -25
  274. package/dist/Pagination/model.js +118 -194
  275. package/dist/Popover/Popover.d.ts +18 -18
  276. package/dist/Popover/Popover.js +128 -153
  277. package/dist/Popover/Popover.module.css.js +8 -5
  278. package/dist/Popover/index.d.ts +2 -3
  279. package/dist/Portal/Portal.d.ts +17 -14
  280. package/dist/Portal/Portal.js +40 -51
  281. package/dist/Portal/PortalContext.d.ts +7 -4
  282. package/dist/Portal/PortalContext.js +4 -4
  283. package/dist/Portal/index.d.ts +4 -9
  284. package/dist/Portal/index.js +7 -5
  285. package/dist/Portal/portalRoot.d.ts +4 -5
  286. package/dist/Portal/portalRoot.js +27 -30
  287. package/dist/ProgressBar/ProgressBar.d.ts +17 -23
  288. package/dist/ProgressBar/ProgressBar.js +212 -257
  289. package/dist/ProgressBar/ProgressBar.module.css.js +9 -5
  290. package/dist/ProgressBar/index.d.ts +20 -17
  291. package/dist/ProgressBar/index.js +6 -8
  292. package/dist/Radio/Radio.d.ts +32 -31
  293. package/dist/Radio/Radio.js +98 -116
  294. package/dist/Radio/Radio.module.css.js +5 -5
  295. package/dist/Radio/index.d.ts +2 -3
  296. package/dist/RadioGroup/RadioGroup.d.ts +25 -21
  297. package/dist/RadioGroup/RadioGroup.js +98 -117
  298. package/dist/RadioGroup/RadioGroupContext.d.ts +1 -7
  299. package/dist/RadioGroup/RadioGroupContext.js +4 -4
  300. package/dist/RadioGroup/index.d.ts +2 -4
  301. package/dist/RelativeTime/RelativeTime.d.ts +14 -6
  302. package/dist/RelativeTime/RelativeTime.js +65 -77
  303. package/dist/RelativeTime/index.d.ts +2 -3
  304. package/dist/ScrollableRegion/ScrollableRegion.d.ts +16 -9
  305. package/dist/ScrollableRegion/ScrollableRegion.js +68 -80
  306. package/dist/ScrollableRegion/ScrollableRegion.module.css.js +5 -5
  307. package/dist/ScrollableRegion/index.d.ts +2 -3
  308. package/dist/SegmentedControl/SegmentedControl.d.ts +22 -22
  309. package/dist/SegmentedControl/SegmentedControl.js +238 -287
  310. package/dist/SegmentedControl/SegmentedControl.module.css.js +15 -5
  311. package/dist/SegmentedControl/SegmentedControlButton.d.ts +14 -22
  312. package/dist/SegmentedControl/SegmentedControlButton.js +157 -188
  313. package/dist/SegmentedControl/SegmentedControlIconButton.d.ts +15 -22
  314. package/dist/SegmentedControl/SegmentedControlIconButton.js +133 -161
  315. package/dist/SegmentedControl/index.d.ts +4 -5
  316. package/dist/Select/Select.d.ts +15 -13
  317. package/dist/Select/Select.js +193 -238
  318. package/dist/Select/Select.module.css.js +10 -5
  319. package/dist/Select/index.d.ts +2 -3
  320. package/dist/SelectPanel/SelectPanel.d.ts +122 -82
  321. package/dist/SelectPanel/SelectPanel.js +625 -861
  322. package/dist/SelectPanel/SelectPanel.module.css.js +27 -5
  323. package/dist/SelectPanel/SelectPanelMessage.d.ts +23 -21
  324. package/dist/SelectPanel/SelectPanelMessage.js +37 -39
  325. package/dist/SelectPanel/index.d.ts +3 -5
  326. package/dist/SideNav.d.ts +47 -25
  327. package/dist/SideNav.js +92 -121
  328. package/dist/SideNav.module.css.js +12 -5
  329. package/dist/Skeleton/SkeletonBox.d.ts +12 -14
  330. package/dist/Skeleton/SkeletonBox.js +100 -118
  331. package/dist/Skeleton/SkeletonBox.module.css.js +8 -5
  332. package/dist/Skeleton/index.d.ts +2 -5
  333. package/dist/SkeletonAvatar/SkeletonAvatar.d.ts +17 -10
  334. package/dist/SkeletonAvatar/SkeletonAvatar.js +95 -120
  335. package/dist/SkeletonAvatar/SkeletonAvatar.module.css.js +5 -5
  336. package/dist/SkeletonAvatar/index.d.ts +2 -3
  337. package/dist/SkeletonText/SkeletonText.d.ts +21 -14
  338. package/dist/SkeletonText/SkeletonText.js +114 -137
  339. package/dist/SkeletonText/SkeletonText.module.css.js +8 -5
  340. package/dist/SkeletonText/index.d.ts +2 -3
  341. package/dist/Spinner/Spinner.d.ts +26 -20
  342. package/dist/Spinner/Spinner.js +184 -212
  343. package/dist/Spinner/Spinner.module.css.js +9 -5
  344. package/dist/Spinner/index.d.ts +2 -3
  345. package/dist/SplitPageLayout/SplitPageLayout.d.ts +18 -22
  346. package/dist/SplitPageLayout/SplitPageLayout.js +214 -275
  347. package/dist/SplitPageLayout/index.d.ts +2 -2
  348. package/dist/Stack/Stack.d.ts +65 -68
  349. package/dist/Stack/Stack.js +207 -255
  350. package/dist/Stack/Stack.module.css.js +8 -5
  351. package/dist/Stack/index.d.ts +8 -4
  352. package/dist/Stack/index.js +4 -6
  353. package/dist/StateLabel/StateLabel.d.ts +29 -29
  354. package/dist/StateLabel/StateLabel.js +110 -123
  355. package/dist/StateLabel/StateLabel.module.css.js +8 -5
  356. package/dist/StateLabel/index.d.ts +2 -3
  357. package/dist/SubNav/SubNav.d.ts +19 -17
  358. package/dist/SubNav/SubNav.js +159 -197
  359. package/dist/SubNav/SubNav.module.css.js +11 -5
  360. package/dist/SubNav/index.d.ts +2 -3
  361. package/dist/TabNav/TabNav.d.ts +21 -15
  362. package/dist/TabNav/TabNav.js +167 -199
  363. package/dist/TabNav/TabNav.module.css.js +10 -5
  364. package/dist/TabNav/index.d.ts +2 -3
  365. package/dist/Text/Text.d.ts +17 -15
  366. package/dist/Text/Text.js +61 -73
  367. package/dist/Text/Text.module.css.js +5 -5
  368. package/dist/Text/index.d.ts +2 -3
  369. package/dist/TextInput/TextInput.d.ts +53 -53
  370. package/dist/TextInput/TextInput.js +149 -188
  371. package/dist/TextInput/TextInput.module.css.js +8 -5
  372. package/dist/TextInput/index.d.ts +3 -4
  373. package/dist/TextInputWithTokens/TextInputWithTokens.d.ts +85 -83
  374. package/dist/TextInputWithTokens/TextInputWithTokens.js +568 -674
  375. package/dist/TextInputWithTokens/TextInputWithTokens.module.css.js +14 -5
  376. package/dist/TextInputWithTokens/index.d.ts +2 -3
  377. package/dist/Textarea/TextArea.module.css.js +9 -5
  378. package/dist/Textarea/Textarea.d.ts +90 -92
  379. package/dist/Textarea/Textarea.js +232 -266
  380. package/dist/Textarea/index.d.ts +2 -3
  381. package/dist/ThemeContext.js +7 -7
  382. package/dist/ThemeProvider.d.ts +24 -23
  383. package/dist/ThemeProvider.js +212 -268
  384. package/dist/Timeline/Timeline.d.ts +47 -50
  385. package/dist/Timeline/Timeline.js +353 -424
  386. package/dist/Timeline/Timeline.module.css.js +14 -5
  387. package/dist/Timeline/constants.d.ts +4 -2
  388. package/dist/Timeline/index.d.ts +2 -3
  389. package/dist/ToggleSwitch/ToggleSwitch.d.ts +43 -42
  390. package/dist/ToggleSwitch/ToggleSwitch.js +403 -471
  391. package/dist/ToggleSwitch/ToggleSwitch.module.css.js +16 -5
  392. package/dist/ToggleSwitch/index.d.ts +2 -3
  393. package/dist/Token/IssueLabelToken.d.ts +12 -10
  394. package/dist/Token/IssueLabelToken.js +258 -299
  395. package/dist/Token/IssueLabelToken.module.css.js +8 -5
  396. package/dist/Token/Token.d.ts +14 -12
  397. package/dist/Token/Token.js +234 -282
  398. package/dist/Token/Token.module.css.js +9 -5
  399. package/dist/Token/TokenBase.d.ts +36 -37
  400. package/dist/Token/TokenBase.js +97 -116
  401. package/dist/Token/TokenBase.module.css.js +5 -5
  402. package/dist/Token/_RemoveTokenButton.js +27 -48
  403. package/dist/Token/_RemoveTokenButton.module.css.js +5 -5
  404. package/dist/Token/_TokenTextContainer.js +54 -65
  405. package/dist/Token/_TokenTextContainer.module.css.js +8 -5
  406. package/dist/Token/constants.d.ts +4 -4
  407. package/dist/Token/constants.js +3 -2
  408. package/dist/Token/index.d.ts +4 -6
  409. package/dist/Token/utils.js +5 -12
  410. package/dist/Tooltip/Tooltip.d.ts +15 -13
  411. package/dist/Tooltip/Tooltip.js +49 -55
  412. package/dist/Tooltip/Tooltip.module.css.js +20 -5
  413. package/dist/Tooltip/TooltipContext.js +4 -4
  414. package/dist/TooltipV2/Tooltip.d.ts +31 -28
  415. package/dist/TooltipV2/Tooltip.js +223 -307
  416. package/dist/TooltipV2/Tooltip.module.css.js +11 -5
  417. package/dist/TooltipV2/TooltipContext.js +4 -4
  418. package/dist/TooltipV2/index.d.ts +2 -3
  419. package/dist/TopicTag/TopicTag.d.ts +19 -13
  420. package/dist/TopicTag/TopicTag.js +46 -55
  421. package/dist/TopicTag/TopicTag.module.css.js +5 -5
  422. package/dist/TopicTag/TopicTagGroup.d.ts +10 -5
  423. package/dist/TopicTag/TopicTagGroup.js +40 -48
  424. package/dist/TopicTag/TopicTagGroup.module.css.js +5 -5
  425. package/dist/TopicTag/index.d.ts +8 -9
  426. package/dist/TopicTag/index.js +5 -7
  427. package/dist/TreeView/TreeView.d.ts +67 -73
  428. package/dist/TreeView/TreeView.js +1102 -1462
  429. package/dist/TreeView/TreeView.module.css.js +23 -5
  430. package/dist/TreeView/index.d.ts +2 -2
  431. package/dist/TreeView/shared.js +10 -9
  432. package/dist/TreeView/useRovingTabIndex.d.ts +13 -13
  433. package/dist/TreeView/useRovingTabIndex.js +144 -223
  434. package/dist/TreeView/useTreeItemCache.js +64 -79
  435. package/dist/TreeView/useTypeahead.js +90 -112
  436. package/dist/Truncate/Truncate.d.ts +11 -10
  437. package/dist/Truncate/Truncate.js +21 -33
  438. package/dist/Truncate/Truncate.module.css.js +5 -5
  439. package/dist/Truncate/index.d.ts +2 -3
  440. package/dist/UnderlineNav/UnderlineNav.d.ts +20 -18
  441. package/dist/UnderlineNav/UnderlineNav.js +94 -136
  442. package/dist/UnderlineNav/UnderlineNav.module.css.js +14 -5
  443. package/dist/UnderlineNav/UnderlineNavContext.js +4 -6
  444. package/dist/UnderlineNav/UnderlineNavItem.js +44 -67
  445. package/dist/UnderlineNav/UnderlineNavItem.module.css.js +5 -5
  446. package/dist/UnderlineNav/UnderlineNavItemsRegistry.d.ts +44 -48
  447. package/dist/UnderlineNav/UnderlineNavItemsRegistry.js +3 -5
  448. package/dist/UnderlineNav/index.d.ts +8 -6
  449. package/dist/UnderlineNav/index.js +5 -7
  450. package/dist/UnderlineNav/utils.js +6 -7
  451. package/dist/VisuallyHidden/VisuallyHidden.d.ts +12 -6
  452. package/dist/VisuallyHidden/VisuallyHidden.js +51 -49
  453. package/dist/VisuallyHidden/VisuallyHidden.module.css.js +5 -5
  454. package/dist/VisuallyHidden/index.d.ts +2 -3
  455. package/dist/_VisuallyHidden.js +50 -62
  456. package/dist/_VisuallyHidden.module.css.js +5 -5
  457. package/dist/deprecated/ActionList/Divider.d.ts +8 -5
  458. package/dist/deprecated/ActionList/Divider.js +23 -23
  459. package/dist/deprecated/ActionList/Divider.module.css.js +5 -5
  460. package/dist/deprecated/ActionList/Group.d.ts +29 -22
  461. package/dist/deprecated/ActionList/Group.js +46 -54
  462. package/dist/deprecated/ActionList/Header.d.ts +21 -23
  463. package/dist/deprecated/ActionList/Header.js +69 -81
  464. package/dist/deprecated/ActionList/Header.module.css.js +5 -5
  465. package/dist/deprecated/ActionList/Item.d.ts +88 -90
  466. package/dist/deprecated/ActionList/Item.js +308 -352
  467. package/dist/deprecated/ActionList/Item.module.css.js +18 -5
  468. package/dist/deprecated/ActionList/List.d.ts +79 -82
  469. package/dist/deprecated/ActionList/List.js +157 -196
  470. package/dist/deprecated/ActionList/List.module.css.js +5 -5
  471. package/dist/deprecated/ActionList/index.d.ts +13 -13
  472. package/dist/deprecated/ActionList/index.js +14 -14
  473. package/dist/deprecated/ActionMenu.d.ts +49 -38
  474. package/dist/deprecated/ActionMenu.js +159 -190
  475. package/dist/deprecated/DialogV1/Dialog.d.ts +30 -23
  476. package/dist/deprecated/DialogV1/Dialog.js +167 -201
  477. package/dist/deprecated/DialogV1/Dialog.module.css.js +11 -5
  478. package/dist/deprecated/DialogV1/index.d.ts +2 -3
  479. package/dist/deprecated/FilteredSearch/FilteredSearch.d.ts +8 -4
  480. package/dist/deprecated/FilteredSearch/FilteredSearch.js +43 -51
  481. package/dist/deprecated/FilteredSearch/FilteredSearch.module.css.js +5 -5
  482. package/dist/deprecated/UnderlineNav/UnderlineNav.d.ts +23 -14
  483. package/dist/deprecated/UnderlineNav/UnderlineNav.js +132 -160
  484. package/dist/deprecated/UnderlineNav/UnderlineNav.module.css.js +14 -5
  485. package/dist/deprecated/UnderlineNav/index.d.ts +2 -3
  486. package/dist/deprecated/index.d.ts +13 -26
  487. package/dist/deprecated/index.js +19 -9
  488. package/dist/experimental/IssueLabel/IssueLabel.d.ts +16 -15
  489. package/dist/experimental/IssueLabel/IssueLabel.js +134 -158
  490. package/dist/experimental/IssueLabel/IssueLabel.module.css.js +5 -5
  491. package/dist/experimental/IssueLabel/index.d.ts +2 -3
  492. package/dist/experimental/SelectPanel2/SelectPanel.d.ts +81 -74
  493. package/dist/experimental/SelectPanel2/SelectPanel.js +420 -569
  494. package/dist/experimental/SelectPanel2/SelectPanel.module.css.js +32 -5
  495. package/dist/experimental/SelectPanel2/index.d.ts +2 -3
  496. package/dist/experimental/Tabs/Tabs.d.ts +6 -11
  497. package/dist/experimental/Tabs/Tabs.js +76 -80
  498. package/dist/experimental/Tabs/TabsContext.js +4 -4
  499. package/dist/experimental/Tabs/index.d.ts +6 -6
  500. package/dist/experimental/Tabs/types.d.ts +81 -85
  501. package/dist/experimental/Tabs/useTab.d.ts +6 -3
  502. package/dist/experimental/Tabs/useTab.js +73 -93
  503. package/dist/experimental/Tabs/useTabList.d.ts +6 -3
  504. package/dist/experimental/Tabs/useTabList.js +61 -91
  505. package/dist/experimental/Tabs/useTabPanel.d.ts +6 -3
  506. package/dist/experimental/Tabs/useTabPanel.js +27 -33
  507. package/dist/experimental/Tabs/useTabs.js +7 -9
  508. package/dist/experimental/UnderlinePanels/UnderlinePanels.d.ts +57 -55
  509. package/dist/experimental/UnderlinePanels/UnderlinePanels.js +177 -254
  510. package/dist/experimental/UnderlinePanels/UnderlinePanels.module.css.js +5 -5
  511. package/dist/experimental/UnderlinePanels/index.d.ts +2 -4
  512. package/dist/experimental/hooks/index.d.ts +3 -3
  513. package/dist/experimental/index.d.ts +53 -53
  514. package/dist/experimental/index.js +48 -38
  515. package/dist/hooks/MatchMediaContext.js +4 -7
  516. package/dist/hooks/index.d.ts +11 -21
  517. package/dist/hooks/useAnchoredPosition.d.ts +16 -13
  518. package/dist/hooks/useAnchoredPosition.js +132 -148
  519. package/dist/hooks/useControllableState.js +34 -61
  520. package/dist/hooks/useDetails.d.ts +19 -13
  521. package/dist/hooks/useDetails.js +84 -99
  522. package/dist/hooks/useDialog.js +140 -178
  523. package/dist/hooks/useFocusTrap.d.ts +42 -39
  524. package/dist/hooks/useFocusTrap.js +57 -71
  525. package/dist/hooks/useFocusZone.d.ts +29 -28
  526. package/dist/hooks/useFocusZone.js +32 -40
  527. package/dist/hooks/useId.d.ts +4 -2
  528. package/dist/hooks/useId.js +14 -16
  529. package/dist/hooks/useMedia.js +65 -76
  530. package/dist/hooks/useMenuInitialFocus.d.ts +1 -3
  531. package/dist/hooks/useMenuInitialFocus.js +65 -63
  532. package/dist/hooks/useMenuKeyboardNavigation.d.ts +1 -11
  533. package/dist/hooks/useMenuKeyboardNavigation.js +129 -126
  534. package/dist/hooks/useMergedRefs.d.ts +8 -6
  535. package/dist/hooks/useMergedRefs.js +62 -76
  536. package/dist/hooks/useMnemonics.d.ts +1 -6
  537. package/dist/hooks/useMnemonics.js +77 -107
  538. package/dist/hooks/useOnEscapePress.d.ts +4 -2
  539. package/dist/hooks/useOnEscapePress.js +45 -56
  540. package/dist/hooks/useOnOutsideClick.d.ts +15 -8
  541. package/dist/hooks/useOnOutsideClick.js +32 -63
  542. package/dist/hooks/useOpenAndCloseFocus.d.ts +16 -8
  543. package/dist/hooks/useOpenAndCloseFocus.js +40 -43
  544. package/dist/hooks/useOverflow.d.ts +4 -2
  545. package/dist/hooks/useOverflow.js +32 -36
  546. package/dist/hooks/useOverlay.d.ts +24 -13
  547. package/dist/hooks/useOverlay.js +56 -75
  548. package/dist/hooks/useProvidedRefOrCreate.d.ts +6 -3
  549. package/dist/hooks/useProvidedRefOrCreate.js +24 -24
  550. package/dist/hooks/useProvidedStateOrCreate.js +33 -39
  551. package/dist/hooks/useRefObjectAsForwardedRef.d.ts +6 -3
  552. package/dist/hooks/useRefObjectAsForwardedRef.js +30 -32
  553. package/dist/hooks/useRenderForcingRef.d.ts +1 -9
  554. package/dist/hooks/useRenderForcingRef.js +42 -46
  555. package/dist/hooks/useResizeObserver.d.ts +9 -6
  556. package/dist/hooks/useResizeObserver.js +37 -46
  557. package/dist/hooks/useResponsiveValue.d.ts +9 -17
  558. package/dist/hooks/useResponsiveValue.js +37 -57
  559. package/dist/hooks/useSafeTimeout.d.ts +6 -5
  560. package/dist/hooks/useSafeTimeout.js +26 -29
  561. package/dist/hooks/useScrollFlash.js +16 -23
  562. package/dist/hooks/useSlots.d.ts +9 -12
  563. package/dist/hooks/useSlots.js +119 -157
  564. package/dist/hooks/useSyncedState.d.ts +9 -4
  565. package/dist/hooks/useSyncedState.js +31 -37
  566. package/dist/index.d.ts +120 -152
  567. package/dist/index.js +94 -94
  568. package/dist/internal/components/ButtonReset.js +45 -50
  569. package/dist/internal/components/ButtonReset.module.css.js +5 -5
  570. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroup.d.ts +26 -34
  571. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroup.js +190 -227
  572. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroup.module.css.js +12 -5
  573. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroupCaption.js +36 -46
  574. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroupContext.d.ts +1 -10
  575. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroupContext.js +4 -4
  576. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroupLabel.d.ts +11 -12
  577. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroupLabel.js +59 -75
  578. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroupValidation.d.ts +8 -9
  579. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroupValidation.js +29 -37
  580. package/dist/internal/components/CheckboxOrRadioGroup/index.d.ts +2 -4
  581. package/dist/internal/components/ConditionalWrapper.js +41 -51
  582. package/dist/internal/components/InputLabel.d.ts +18 -18
  583. package/dist/internal/components/InputLabel.js +92 -113
  584. package/dist/internal/components/InputLabel.module.css.js +8 -5
  585. package/dist/internal/components/InputValidation.js +96 -118
  586. package/dist/internal/components/InputValidation.module.css.js +9 -5
  587. package/dist/internal/components/TextInputInnerAction.d.ts +17 -34
  588. package/dist/internal/components/TextInputInnerAction.js +134 -173
  589. package/dist/internal/components/TextInputInnerAction.module.css.js +9 -5
  590. package/dist/internal/components/TextInputInnerVisualSlot.js +89 -110
  591. package/dist/internal/components/TextInputInnerVisualSlot.module.css.js +11 -5
  592. package/dist/internal/components/TextInputWrapper.d.ts +27 -34
  593. package/dist/internal/components/TextInputWrapper.js +195 -238
  594. package/dist/internal/components/TextInputWrapper.module.css.js +8 -5
  595. package/dist/internal/components/UnderlineTabbedInterface.js +196 -243
  596. package/dist/internal/components/UnderlineTabbedInterface.module.css.js +11 -5
  597. package/dist/internal/components/UnstyledTextInput.js +40 -47
  598. package/dist/internal/components/UnstyledTextInput.module.css.js +5 -5
  599. package/dist/internal/components/ValidationAnimationContainer.js +55 -66
  600. package/dist/internal/components/ValidationAnimationContainer.module.css.js +8 -5
  601. package/dist/internal/hooks/useDevOnlyEffect.js +17 -21
  602. package/dist/internal/hooks/useEffectCallback.js +35 -38
  603. package/dist/internal/hooks/useEffectOnce.js +23 -25
  604. package/dist/internal/internal-types.d.ts +5 -3
  605. package/dist/internal/utils/getResponsiveAttributes.js +23 -26
  606. package/dist/internal/utils/hasInteractiveNodes.js +34 -46
  607. package/dist/legacy-theme/ts/color-schemes.js +4250 -4732
  608. package/dist/live-region/Announce.d.ts +29 -26
  609. package/dist/live-region/Announce.js +151 -195
  610. package/dist/live-region/AriaAlert.d.ts +19 -17
  611. package/dist/live-region/AriaAlert.js +20 -22
  612. package/dist/live-region/AriaStatus.d.ts +23 -21
  613. package/dist/live-region/AriaStatus.js +20 -22
  614. package/dist/live-region/index.d.ts +4 -7
  615. package/dist/next/index.d.ts +2 -3
  616. package/dist/next/index.js +2 -1
  617. package/dist/test-helpers.d.ts +4 -0
  618. package/dist/test-helpers.js +40 -62
  619. package/dist/theme.d.ts +1164 -1162
  620. package/dist/theme.js +83 -47
  621. package/dist/useTheme.d.ts +18 -14
  622. package/dist/useTheme.js +8 -11
  623. package/dist/utils/as-slot.d.ts +6 -3
  624. package/dist/utils/as-slot.js +22 -26
  625. package/dist/utils/character-counter.js +18 -27
  626. package/dist/utils/create-component.d.ts +6 -4
  627. package/dist/utils/create-component.js +15 -16
  628. package/dist/utils/descendant-registry.d.ts +1 -32
  629. package/dist/utils/descendant-registry.js +182 -218
  630. package/dist/utils/environment.js +10 -21
  631. package/dist/utils/getBreakpointDeclarations.js +9 -10
  632. package/dist/utils/invariant.js +17 -23
  633. package/dist/utils/is-slot.d.ts +6 -3
  634. package/dist/utils/is-slot.js +10 -11
  635. package/dist/utils/isNumeric.js +3 -3
  636. package/dist/utils/modern-polymorphic.d.ts +8 -14
  637. package/dist/utils/modern-polymorphic.js +12 -20
  638. package/dist/utils/polymorphic.d.ts +25 -34
  639. package/dist/utils/scroll.js +8 -11
  640. package/dist/utils/theme.js +5 -10
  641. package/dist/utils/types/AriaRole.d.ts +4 -2
  642. package/dist/utils/types/ComponentProps.d.ts +4 -2
  643. package/dist/utils/types/FormValidationStatus.d.ts +4 -2
  644. package/dist/utils/types/KeyPaths.d.ts +4 -4
  645. package/dist/utils/types/MandateProps.d.ts +4 -4
  646. package/dist/utils/types/Merge.d.ts +4 -2
  647. package/dist/utils/types/Slots.d.ts +8 -6
  648. package/dist/utils/types/ViewportRangeKeys.d.ts +5 -3
  649. package/dist/utils/useIsomorphicLayoutEffect.d.ts +5 -3
  650. package/dist/utils/useIsomorphicLayoutEffect.js +4 -9
  651. package/dist/utils/warning.js +13 -20
  652. package/package.json +6 -10
  653. package/dist/ActionBar/ActionBar.d.ts.map +0 -1
  654. package/dist/ActionBar/disabled.ActionBar.Figma.d.ts +0 -2
  655. package/dist/ActionBar/disabled.ActionBar.Figma.d.ts.map +0 -1
  656. package/dist/ActionBar/index.d.ts.map +0 -1
  657. package/dist/ActionList/ActionListContainerContext.d.ts +0 -16
  658. package/dist/ActionList/ActionListContainerContext.d.ts.map +0 -1
  659. package/dist/ActionList/Description.d.ts.map +0 -1
  660. package/dist/ActionList/Divider.d.ts.map +0 -1
  661. package/dist/ActionList/Group.d.ts.map +0 -1
  662. package/dist/ActionList/GroupContext.d.ts +0 -8
  663. package/dist/ActionList/GroupContext.d.ts.map +0 -1
  664. package/dist/ActionList/GroupHeadingTrailingAction.d.ts.map +0 -1
  665. package/dist/ActionList/Heading.d.ts.map +0 -1
  666. package/dist/ActionList/Item.d.ts +0 -56
  667. package/dist/ActionList/Item.d.ts.map +0 -1
  668. package/dist/ActionList/LinkItem.d.ts.map +0 -1
  669. package/dist/ActionList/List.d.ts +0 -15
  670. package/dist/ActionList/List.d.ts.map +0 -1
  671. package/dist/ActionList/Selection.d.ts +0 -6
  672. package/dist/ActionList/Selection.d.ts.map +0 -1
  673. package/dist/ActionList/TrailingAction.d.ts.map +0 -1
  674. package/dist/ActionList/Visuals.d.ts.map +0 -1
  675. package/dist/ActionList/index.d.ts.map +0 -1
  676. package/dist/ActionList/shared.d.ts.map +0 -1
  677. package/dist/ActionMenu/ActionMenu.d.ts.map +0 -1
  678. package/dist/ActionMenu/index.d.ts.map +0 -1
  679. package/dist/AnchoredOverlay/AnchoredOverlay.d.ts.map +0 -1
  680. package/dist/AnchoredOverlay/index.d.ts.map +0 -1
  681. package/dist/Autocomplete/Autocomplete.d.ts.map +0 -1
  682. package/dist/Autocomplete/AutocompleteContext.d.ts +0 -37
  683. package/dist/Autocomplete/AutocompleteContext.d.ts.map +0 -1
  684. package/dist/Autocomplete/AutocompleteInput.d.ts.map +0 -1
  685. package/dist/Autocomplete/AutocompleteMenu.d.ts.map +0 -1
  686. package/dist/Autocomplete/AutocompleteOverlay.d.ts.map +0 -1
  687. package/dist/Autocomplete/index.d.ts.map +0 -1
  688. package/dist/Avatar/Avatar.d.ts.map +0 -1
  689. package/dist/Avatar/index.d.ts.map +0 -1
  690. package/dist/Avatar/storyHelpers.d.ts +0 -6
  691. package/dist/Avatar/storyHelpers.d.ts.map +0 -1
  692. package/dist/AvatarStack/AvatarStack.d.ts.map +0 -1
  693. package/dist/AvatarStack/index.d.ts.map +0 -1
  694. package/dist/Banner/Banner.d.ts.map +0 -1
  695. package/dist/Banner/index.d.ts.map +0 -1
  696. package/dist/BaseStyles.d.ts.map +0 -1
  697. package/dist/Blankslate/Blankslate.d.ts.map +0 -1
  698. package/dist/Blankslate/BlankslateContext.d.ts +0 -7
  699. package/dist/Blankslate/BlankslateContext.d.ts.map +0 -1
  700. package/dist/Blankslate/index.d.ts.map +0 -1
  701. package/dist/BranchName/BranchName.d.ts.map +0 -1
  702. package/dist/BranchName/index.d.ts.map +0 -1
  703. package/dist/Breadcrumbs/Breadcrumbs.d.ts.map +0 -1
  704. package/dist/Breadcrumbs/index.d.ts.map +0 -1
  705. package/dist/Button/Button.d.ts.map +0 -1
  706. package/dist/Button/ButtonBase.d.ts.map +0 -1
  707. package/dist/Button/IconButton.d.ts.map +0 -1
  708. package/dist/Button/LinkButton.d.ts.map +0 -1
  709. package/dist/Button/index.d.ts.map +0 -1
  710. package/dist/Button/types.d.ts.map +0 -1
  711. package/dist/ButtonGroup/ButtonGroup.d.ts.map +0 -1
  712. package/dist/ButtonGroup/index.d.ts.map +0 -1
  713. package/dist/Card/Card.d.ts.map +0 -1
  714. package/dist/Card/index.d.ts.map +0 -1
  715. package/dist/Checkbox/Checkbox.d.ts.map +0 -1
  716. package/dist/Checkbox/index.d.ts.map +0 -1
  717. package/dist/CheckboxGroup/CheckboxGroup.d.ts.map +0 -1
  718. package/dist/CheckboxGroup/CheckboxGroupContext.d.ts.map +0 -1
  719. package/dist/CheckboxGroup/index.d.ts.map +0 -1
  720. package/dist/CircleBadge/CircleBadge.d.ts.map +0 -1
  721. package/dist/CircleBadge/index.d.ts.map +0 -1
  722. package/dist/ConfirmationDialog/ConfirmationDialog.d.ts.map +0 -1
  723. package/dist/ConfirmationDialog/useConfirm.d.ts.map +0 -1
  724. package/dist/CounterLabel/CounterLabel.d.ts.map +0 -1
  725. package/dist/CounterLabel/index.d.ts.map +0 -1
  726. package/dist/DataTable/DataTable.d.ts.map +0 -1
  727. package/dist/DataTable/ErrorDialog.d.ts.map +0 -1
  728. package/dist/DataTable/Pagination.d.ts.map +0 -1
  729. package/dist/DataTable/Table.d.ts.map +0 -1
  730. package/dist/DataTable/__tests__/sorting.test.d.ts +0 -2
  731. package/dist/DataTable/__tests__/sorting.test.d.ts.map +0 -1
  732. package/dist/DataTable/column.d.ts.map +0 -1
  733. package/dist/DataTable/index.d.ts.map +0 -1
  734. package/dist/DataTable/row.d.ts.map +0 -1
  735. package/dist/DataTable/sorting.d.ts.map +0 -1
  736. package/dist/DataTable/storyHelpers.d.ts +0 -4
  737. package/dist/DataTable/storyHelpers.d.ts.map +0 -1
  738. package/dist/DataTable/storybook/data.d.ts +0 -41
  739. package/dist/DataTable/storybook/data.d.ts.map +0 -1
  740. package/dist/DataTable/useTable.d.ts +0 -43
  741. package/dist/DataTable/useTable.d.ts.map +0 -1
  742. package/dist/DataTable/utils.d.ts.map +0 -1
  743. package/dist/Details/Details.d.ts.map +0 -1
  744. package/dist/Details/index.d.ts.map +0 -1
  745. package/dist/Dialog/Dialog.d.ts.map +0 -1
  746. package/dist/Dialog/DialogContext.d.ts +0 -3
  747. package/dist/Dialog/DialogContext.d.ts.map +0 -1
  748. package/dist/Dialog/index.d.ts.map +0 -1
  749. package/dist/FeatureFlags/DefaultFeatureFlags.d.ts.map +0 -1
  750. package/dist/FeatureFlags/FeatureFlagContext.d.ts +0 -3
  751. package/dist/FeatureFlags/FeatureFlagContext.d.ts.map +0 -1
  752. package/dist/FeatureFlags/FeatureFlagScope.d.ts.map +0 -1
  753. package/dist/FeatureFlags/FeatureFlags.d.ts.map +0 -1
  754. package/dist/FeatureFlags/index.d.ts.map +0 -1
  755. package/dist/FeatureFlags/useFeatureFlag.d.ts.map +0 -1
  756. package/dist/FilteredActionList/FilteredActionList.d.ts.map +0 -1
  757. package/dist/FilteredActionList/FilteredActionListInput.d.ts.map +0 -1
  758. package/dist/FilteredActionList/FilteredActionListLoaders.d.ts.map +0 -1
  759. package/dist/FilteredActionList/constants.d.ts.map +0 -1
  760. package/dist/FilteredActionList/index.d.ts.map +0 -1
  761. package/dist/FilteredActionList/types.d.ts.map +0 -1
  762. package/dist/FilteredActionList/useAnnouncements.d.ts +0 -6
  763. package/dist/FilteredActionList/useAnnouncements.d.ts.map +0 -1
  764. package/dist/Flash/Flash.d.ts.map +0 -1
  765. package/dist/Flash/index.d.ts.map +0 -1
  766. package/dist/FormControl/FormControl.d.ts.map +0 -1
  767. package/dist/FormControl/FormControlCaption.d.ts.map +0 -1
  768. package/dist/FormControl/FormControlLabel.d.ts.map +0 -1
  769. package/dist/FormControl/FormControlLeadingVisual.d.ts +0 -7
  770. package/dist/FormControl/FormControlLeadingVisual.d.ts.map +0 -1
  771. package/dist/FormControl/_FormControlContext.d.ts.map +0 -1
  772. package/dist/FormControl/_FormControlValidation.d.ts.map +0 -1
  773. package/dist/FormControl/index.d.ts.map +0 -1
  774. package/dist/Header/Header.d.ts.map +0 -1
  775. package/dist/Header/index.d.ts.map +0 -1
  776. package/dist/Heading/Heading.d.ts.map +0 -1
  777. package/dist/Heading/index.d.ts.map +0 -1
  778. package/dist/Hidden/Hidden.d.ts.map +0 -1
  779. package/dist/Hidden/index.d.ts.map +0 -1
  780. package/dist/InlineMessage/InlineMessage.d.ts.map +0 -1
  781. package/dist/InlineMessage/index.d.ts.map +0 -1
  782. package/dist/KeybindingHint/KeybindingHint.d.ts.map +0 -1
  783. package/dist/KeybindingHint/components/Chord.d.ts +0 -3
  784. package/dist/KeybindingHint/components/Chord.d.ts.map +0 -1
  785. package/dist/KeybindingHint/components/Key.d.ts +0 -9
  786. package/dist/KeybindingHint/components/Key.d.ts.map +0 -1
  787. package/dist/KeybindingHint/components/Sequence.d.ts +0 -3
  788. package/dist/KeybindingHint/components/Sequence.d.ts.map +0 -1
  789. package/dist/KeybindingHint/components/utils.d.ts +0 -8
  790. package/dist/KeybindingHint/components/utils.d.ts.map +0 -1
  791. package/dist/KeybindingHint/index.d.ts +0 -4
  792. package/dist/KeybindingHint/index.d.ts.map +0 -1
  793. package/dist/KeybindingHint/key-names.d.ts +0 -17
  794. package/dist/KeybindingHint/key-names.d.ts.map +0 -1
  795. package/dist/KeybindingHint/platform.d.ts.map +0 -1
  796. package/dist/KeybindingHint/props.d.ts.map +0 -1
  797. package/dist/KeybindingHint/utils.d.ts.map +0 -1
  798. package/dist/Label/Label.d.ts.map +0 -1
  799. package/dist/Label/index.d.ts.map +0 -1
  800. package/dist/LabelGroup/LabelGroup.d.ts.map +0 -1
  801. package/dist/LabelGroup/index.d.ts.map +0 -1
  802. package/dist/Link/Link.d.ts.map +0 -1
  803. package/dist/Link/index.d.ts.map +0 -1
  804. package/dist/NavList/NavList.d.ts.map +0 -1
  805. package/dist/NavList/index.d.ts.map +0 -1
  806. package/dist/Octicon/Octicon.d.ts.map +0 -1
  807. package/dist/Octicon/index.d.ts.map +0 -1
  808. package/dist/Overlay/Overlay.d.ts.map +0 -1
  809. package/dist/Overlay/constants.d.ts.map +0 -1
  810. package/dist/Overlay/index.d.ts.map +0 -1
  811. package/dist/PageHeader/PageHeader.d.ts.map +0 -1
  812. package/dist/PageHeader/index.d.ts.map +0 -1
  813. package/dist/PageLayout/PageLayout.d.ts.map +0 -1
  814. package/dist/PageLayout/index.d.ts.map +0 -1
  815. package/dist/PageLayout/paneUtils.d.ts +0 -11
  816. package/dist/PageLayout/paneUtils.d.ts.map +0 -1
  817. package/dist/PageLayout/usePaneWidth.d.ts.map +0 -1
  818. package/dist/PageLayout/usePaneWidth.test.d.ts +0 -2
  819. package/dist/PageLayout/usePaneWidth.test.d.ts.map +0 -1
  820. package/dist/Pagehead/Pagehead.d.ts.map +0 -1
  821. package/dist/Pagehead/index.d.ts.map +0 -1
  822. package/dist/Pagination/Pagination.d.ts.map +0 -1
  823. package/dist/Pagination/index.d.ts.map +0 -1
  824. package/dist/Pagination/mocks/ReactRouterLink.d.ts +0 -8
  825. package/dist/Pagination/mocks/ReactRouterLink.d.ts.map +0 -1
  826. package/dist/Pagination/model.d.ts.map +0 -1
  827. package/dist/Placeholder.d.ts +0 -9
  828. package/dist/Placeholder.d.ts.map +0 -1
  829. package/dist/Popover/Popover.d.ts.map +0 -1
  830. package/dist/Popover/index.d.ts.map +0 -1
  831. package/dist/Portal/Portal.d.ts.map +0 -1
  832. package/dist/Portal/PortalContext.d.ts.map +0 -1
  833. package/dist/Portal/index.d.ts.map +0 -1
  834. package/dist/Portal/portalRoot.d.ts.map +0 -1
  835. package/dist/ProgressBar/ProgressBar.d.ts.map +0 -1
  836. package/dist/ProgressBar/index.d.ts.map +0 -1
  837. package/dist/Radio/Radio.d.ts.map +0 -1
  838. package/dist/Radio/index.d.ts.map +0 -1
  839. package/dist/RadioGroup/RadioGroup.d.ts.map +0 -1
  840. package/dist/RadioGroup/RadioGroupContext.d.ts.map +0 -1
  841. package/dist/RadioGroup/index.d.ts.map +0 -1
  842. package/dist/RelativeTime/RelativeTime.d.ts.map +0 -1
  843. package/dist/RelativeTime/index.d.ts.map +0 -1
  844. package/dist/ScrollableRegion/ScrollableRegion.d.ts.map +0 -1
  845. package/dist/ScrollableRegion/index.d.ts.map +0 -1
  846. package/dist/SegmentedControl/SegmentedControl.d.ts.map +0 -1
  847. package/dist/SegmentedControl/SegmentedControlButton.d.ts.map +0 -1
  848. package/dist/SegmentedControl/SegmentedControlIconButton.d.ts.map +0 -1
  849. package/dist/SegmentedControl/index.d.ts.map +0 -1
  850. package/dist/Select/Select.d.ts.map +0 -1
  851. package/dist/Select/index.d.ts.map +0 -1
  852. package/dist/SelectPanel/SelectPanel.d.ts.map +0 -1
  853. package/dist/SelectPanel/SelectPanelMessage.d.ts.map +0 -1
  854. package/dist/SelectPanel/index.d.ts.map +0 -1
  855. package/dist/SideNav.d.ts.map +0 -1
  856. package/dist/Skeleton/SkeletonBox.d.ts.map +0 -1
  857. package/dist/Skeleton/index.d.ts.map +0 -1
  858. package/dist/SkeletonAvatar/SkeletonAvatar.d.ts.map +0 -1
  859. package/dist/SkeletonAvatar/index.d.ts.map +0 -1
  860. package/dist/SkeletonText/SkeletonText.d.ts.map +0 -1
  861. package/dist/SkeletonText/index.d.ts.map +0 -1
  862. package/dist/Spinner/Spinner.d.ts.map +0 -1
  863. package/dist/Spinner/index.d.ts.map +0 -1
  864. package/dist/SplitPageLayout/SplitPageLayout.d.ts.map +0 -1
  865. package/dist/SplitPageLayout/index.d.ts.map +0 -1
  866. package/dist/Stack/Stack.d.ts.map +0 -1
  867. package/dist/Stack/index.d.ts.map +0 -1
  868. package/dist/StateLabel/StateLabel.d.ts.map +0 -1
  869. package/dist/StateLabel/index.d.ts.map +0 -1
  870. package/dist/SubNav/SubNav.d.ts.map +0 -1
  871. package/dist/SubNav/index.d.ts.map +0 -1
  872. package/dist/TabNav/TabNav.d.ts.map +0 -1
  873. package/dist/TabNav/index.d.ts.map +0 -1
  874. package/dist/Text/Text.d.ts.map +0 -1
  875. package/dist/Text/index.d.ts.map +0 -1
  876. package/dist/TextInput/TextInput.d.ts.map +0 -1
  877. package/dist/TextInput/index.d.ts.map +0 -1
  878. package/dist/TextInputWithTokens/TextInputWithTokens.d.ts.map +0 -1
  879. package/dist/TextInputWithTokens/index.d.ts.map +0 -1
  880. package/dist/Textarea/Textarea.d.ts.map +0 -1
  881. package/dist/Textarea/index.d.ts.map +0 -1
  882. package/dist/ThemeContext.d.ts +0 -15
  883. package/dist/ThemeContext.d.ts.map +0 -1
  884. package/dist/ThemeProvider.d.ts.map +0 -1
  885. package/dist/Timeline/Timeline.d.ts.map +0 -1
  886. package/dist/Timeline/constants.d.ts.map +0 -1
  887. package/dist/Timeline/index.d.ts.map +0 -1
  888. package/dist/ToggleSwitch/ToggleSwitch.d.ts.map +0 -1
  889. package/dist/ToggleSwitch/ToggleSwitchStoryWrapper.d.ts +0 -4
  890. package/dist/ToggleSwitch/ToggleSwitchStoryWrapper.d.ts.map +0 -1
  891. package/dist/ToggleSwitch/index.d.ts.map +0 -1
  892. package/dist/Token/IssueLabelToken.d.ts.map +0 -1
  893. package/dist/Token/Token.d.ts.map +0 -1
  894. package/dist/Token/TokenBase.d.ts.map +0 -1
  895. package/dist/Token/_RemoveTokenButton.d.ts +0 -13
  896. package/dist/Token/_RemoveTokenButton.d.ts.map +0 -1
  897. package/dist/Token/_TokenTextContainer.d.ts +0 -5
  898. package/dist/Token/_TokenTextContainer.d.ts.map +0 -1
  899. package/dist/Token/constants.d.ts.map +0 -1
  900. package/dist/Token/index.d.ts.map +0 -1
  901. package/dist/Token/utils.d.ts +0 -3
  902. package/dist/Token/utils.d.ts.map +0 -1
  903. package/dist/Tooltip/Tooltip.d.ts.map +0 -1
  904. package/dist/Tooltip/TooltipContext.d.ts +0 -5
  905. package/dist/Tooltip/TooltipContext.d.ts.map +0 -1
  906. package/dist/Tooltip/index.d.ts +0 -3
  907. package/dist/Tooltip/index.d.ts.map +0 -1
  908. package/dist/TooltipV2/Tooltip.d.ts.map +0 -1
  909. package/dist/TooltipV2/TooltipContext.d.ts +0 -5
  910. package/dist/TooltipV2/TooltipContext.d.ts.map +0 -1
  911. package/dist/TooltipV2/index.d.ts.map +0 -1
  912. package/dist/TopicTag/TopicTag.d.ts.map +0 -1
  913. package/dist/TopicTag/TopicTagGroup.d.ts.map +0 -1
  914. package/dist/TopicTag/index.d.ts.map +0 -1
  915. package/dist/TreeView/TreeView.d.ts.map +0 -1
  916. package/dist/TreeView/index.d.ts.map +0 -1
  917. package/dist/TreeView/shared.d.ts +0 -5
  918. package/dist/TreeView/shared.d.ts.map +0 -1
  919. package/dist/TreeView/useRovingTabIndex.d.ts.map +0 -1
  920. package/dist/TreeView/useTreeItemCache.d.ts +0 -16
  921. package/dist/TreeView/useTreeItemCache.d.ts.map +0 -1
  922. package/dist/TreeView/useTreeItemCache.test.d.ts +0 -2
  923. package/dist/TreeView/useTreeItemCache.test.d.ts.map +0 -1
  924. package/dist/TreeView/useTypeahead.d.ts +0 -8
  925. package/dist/TreeView/useTypeahead.d.ts.map +0 -1
  926. package/dist/Truncate/Truncate.d.ts.map +0 -1
  927. package/dist/Truncate/index.d.ts.map +0 -1
  928. package/dist/UnderlineNav/UnderlineNav.d.ts.map +0 -1
  929. package/dist/UnderlineNav/UnderlineNavContext.d.ts +0 -4
  930. package/dist/UnderlineNav/UnderlineNavContext.d.ts.map +0 -1
  931. package/dist/UnderlineNav/UnderlineNavItem.d.ts +0 -4
  932. package/dist/UnderlineNav/UnderlineNavItem.d.ts.map +0 -1
  933. package/dist/UnderlineNav/UnderlineNavItemsRegistry.d.ts.map +0 -1
  934. package/dist/UnderlineNav/index.d.ts.map +0 -1
  935. package/dist/UnderlineNav/utils.d.ts +0 -5
  936. package/dist/UnderlineNav/utils.d.ts.map +0 -1
  937. package/dist/VisuallyHidden/VisuallyHidden.d.ts.map +0 -1
  938. package/dist/VisuallyHidden/index.d.ts.map +0 -1
  939. package/dist/_VisuallyHidden.d.ts +0 -8
  940. package/dist/_VisuallyHidden.d.ts.map +0 -1
  941. package/dist/deprecated/ActionList/Divider.d.ts.map +0 -1
  942. package/dist/deprecated/ActionList/Group.d.ts.map +0 -1
  943. package/dist/deprecated/ActionList/Header.d.ts.map +0 -1
  944. package/dist/deprecated/ActionList/Item.d.ts.map +0 -1
  945. package/dist/deprecated/ActionList/List.d.ts.map +0 -1
  946. package/dist/deprecated/ActionList/index.d.ts.map +0 -1
  947. package/dist/deprecated/ActionMenu.d.ts.map +0 -1
  948. package/dist/deprecated/DialogV1/Dialog.d.ts.map +0 -1
  949. package/dist/deprecated/DialogV1/index.d.ts.map +0 -1
  950. package/dist/deprecated/FilteredSearch/FilteredSearch.d.ts.map +0 -1
  951. package/dist/deprecated/FilteredSearch/index.d.ts +0 -3
  952. package/dist/deprecated/FilteredSearch/index.d.ts.map +0 -1
  953. package/dist/deprecated/UnderlineNav/UnderlineNav.d.ts.map +0 -1
  954. package/dist/deprecated/UnderlineNav/index.d.ts.map +0 -1
  955. package/dist/deprecated/index.d.ts.map +0 -1
  956. package/dist/deprecated/utils/create-slots.d.ts +0 -21
  957. package/dist/deprecated/utils/create-slots.d.ts.map +0 -1
  958. package/dist/experimental/CSSComponent/index.d.ts +0 -3
  959. package/dist/experimental/CSSComponent/index.d.ts.map +0 -1
  960. package/dist/experimental/IssueLabel/IssueLabel.d.ts.map +0 -1
  961. package/dist/experimental/IssueLabel/index.d.ts.map +0 -1
  962. package/dist/experimental/SelectPanel2/SelectPanel.d.ts.map +0 -1
  963. package/dist/experimental/SelectPanel2/index.d.ts.map +0 -1
  964. package/dist/experimental/SelectPanel2/mock-story-data.d.ts +0 -67
  965. package/dist/experimental/SelectPanel2/mock-story-data.d.ts.map +0 -1
  966. package/dist/experimental/Tabs/Tabs.d.ts.map +0 -1
  967. package/dist/experimental/Tabs/TabsContext.d.ts +0 -3
  968. package/dist/experimental/Tabs/TabsContext.d.ts.map +0 -1
  969. package/dist/experimental/Tabs/index.d.ts.map +0 -1
  970. package/dist/experimental/Tabs/types.d.ts.map +0 -1
  971. package/dist/experimental/Tabs/useTab.d.ts.map +0 -1
  972. package/dist/experimental/Tabs/useTabList.d.ts.map +0 -1
  973. package/dist/experimental/Tabs/useTabPanel.d.ts.map +0 -1
  974. package/dist/experimental/Tabs/useTabs.d.ts +0 -3
  975. package/dist/experimental/Tabs/useTabs.d.ts.map +0 -1
  976. package/dist/experimental/UnderlinePanels/UnderlinePanels.d.ts.map +0 -1
  977. package/dist/experimental/UnderlinePanels/index.d.ts.map +0 -1
  978. package/dist/experimental/hooks/index.d.ts.map +0 -1
  979. package/dist/experimental/index.d.ts.map +0 -1
  980. package/dist/hooks/MatchMedia.d.ts +0 -23
  981. package/dist/hooks/MatchMedia.d.ts.map +0 -1
  982. package/dist/hooks/MatchMediaContext.d.ts +0 -5
  983. package/dist/hooks/MatchMediaContext.d.ts.map +0 -1
  984. package/dist/hooks/index.d.ts.map +0 -1
  985. package/dist/hooks/useAnchoredPosition.d.ts.map +0 -1
  986. package/dist/hooks/useControllableState.d.ts +0 -35
  987. package/dist/hooks/useControllableState.d.ts.map +0 -1
  988. package/dist/hooks/useDetails.d.ts.map +0 -1
  989. package/dist/hooks/useDialog.d.ts +0 -16
  990. package/dist/hooks/useDialog.d.ts.map +0 -1
  991. package/dist/hooks/useFocusTrap.d.ts.map +0 -1
  992. package/dist/hooks/useFocusZone.d.ts.map +0 -1
  993. package/dist/hooks/useId.d.ts.map +0 -1
  994. package/dist/hooks/useIsMacOS.d.ts +0 -19
  995. package/dist/hooks/useIsMacOS.d.ts.map +0 -1
  996. package/dist/hooks/useMedia.d.ts +0 -16
  997. package/dist/hooks/useMedia.d.ts.map +0 -1
  998. package/dist/hooks/useMenuInitialFocus.d.ts.map +0 -1
  999. package/dist/hooks/useMenuKeyboardNavigation.d.ts.map +0 -1
  1000. package/dist/hooks/useMergedRefs.d.ts.map +0 -1
  1001. package/dist/hooks/useMnemonics.d.ts.map +0 -1
  1002. package/dist/hooks/useOnEscapePress.d.ts.map +0 -1
  1003. package/dist/hooks/useOnOutsideClick.d.ts.map +0 -1
  1004. package/dist/hooks/useOpenAndCloseFocus.d.ts.map +0 -1
  1005. package/dist/hooks/useOverflow.d.ts.map +0 -1
  1006. package/dist/hooks/useOverlay.d.ts.map +0 -1
  1007. package/dist/hooks/useProvidedRefOrCreate.d.ts.map +0 -1
  1008. package/dist/hooks/useProvidedStateOrCreate.d.ts +0 -11
  1009. package/dist/hooks/useProvidedStateOrCreate.d.ts.map +0 -1
  1010. package/dist/hooks/useRefObjectAsForwardedRef.d.ts.map +0 -1
  1011. package/dist/hooks/useRenderForcingRef.d.ts.map +0 -1
  1012. package/dist/hooks/useResizeObserver.d.ts.map +0 -1
  1013. package/dist/hooks/useResponsiveValue.d.ts.map +0 -1
  1014. package/dist/hooks/useSafeTimeout.d.ts.map +0 -1
  1015. package/dist/hooks/useScrollFlash.d.ts +0 -7
  1016. package/dist/hooks/useScrollFlash.d.ts.map +0 -1
  1017. package/dist/hooks/useSlots.d.ts.map +0 -1
  1018. package/dist/hooks/useSyncedState.d.ts.map +0 -1
  1019. package/dist/index.d.ts.map +0 -1
  1020. package/dist/internal/components/ButtonReset.d.ts +0 -5
  1021. package/dist/internal/components/ButtonReset.d.ts.map +0 -1
  1022. package/dist/internal/components/Caret.d.ts +0 -15
  1023. package/dist/internal/components/Caret.d.ts.map +0 -1
  1024. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroup.d.ts.map +0 -1
  1025. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroupCaption.d.ts +0 -8
  1026. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroupCaption.d.ts.map +0 -1
  1027. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroupContext.d.ts.map +0 -1
  1028. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroupLabel.d.ts.map +0 -1
  1029. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroupValidation.d.ts.map +0 -1
  1030. package/dist/internal/components/CheckboxOrRadioGroup/index.d.ts.map +0 -1
  1031. package/dist/internal/components/ConditionalWrapper.d.ts +0 -5
  1032. package/dist/internal/components/ConditionalWrapper.d.ts.map +0 -1
  1033. package/dist/internal/components/InputLabel.d.ts.map +0 -1
  1034. package/dist/internal/components/InputValidation.d.ts +0 -12
  1035. package/dist/internal/components/InputValidation.d.ts.map +0 -1
  1036. package/dist/internal/components/TextInputInnerAction.d.ts.map +0 -1
  1037. package/dist/internal/components/TextInputInnerVisualSlot.d.ts +0 -18
  1038. package/dist/internal/components/TextInputInnerVisualSlot.d.ts.map +0 -1
  1039. package/dist/internal/components/TextInputWrapper.d.ts.map +0 -1
  1040. package/dist/internal/components/UnderlineTabbedInterface.d.ts +0 -26
  1041. package/dist/internal/components/UnderlineTabbedInterface.d.ts.map +0 -1
  1042. package/dist/internal/components/UnstyledTextInput.d.ts +0 -4
  1043. package/dist/internal/components/UnstyledTextInput.d.ts.map +0 -1
  1044. package/dist/internal/components/ValidationAnimationContainer.d.ts +0 -8
  1045. package/dist/internal/components/ValidationAnimationContainer.d.ts.map +0 -1
  1046. package/dist/internal/hooks/useDevOnlyEffect.d.ts +0 -16
  1047. package/dist/internal/hooks/useDevOnlyEffect.d.ts.map +0 -1
  1048. package/dist/internal/hooks/useEffectCallback.d.ts +0 -8
  1049. package/dist/internal/hooks/useEffectCallback.d.ts.map +0 -1
  1050. package/dist/internal/hooks/useEffectOnce.d.ts +0 -2
  1051. package/dist/internal/hooks/useEffectOnce.d.ts.map +0 -1
  1052. package/dist/internal/hooks/useFocus.d.ts +0 -11
  1053. package/dist/internal/hooks/useFocus.d.ts.map +0 -1
  1054. package/dist/internal/internal-types.d.ts.map +0 -1
  1055. package/dist/internal/utils/__tests__/getResponsiveAttributes.test.d.ts +0 -2
  1056. package/dist/internal/utils/__tests__/getResponsiveAttributes.test.d.ts.map +0 -1
  1057. package/dist/internal/utils/__tests__/hasInteractiveNodes.test.d.ts +0 -2
  1058. package/dist/internal/utils/__tests__/hasInteractiveNodes.test.d.ts.map +0 -1
  1059. package/dist/internal/utils/getResponsiveAttributes.d.ts +0 -19
  1060. package/dist/internal/utils/getResponsiveAttributes.d.ts.map +0 -1
  1061. package/dist/internal/utils/getResponsiveControlValues.d.ts +0 -8
  1062. package/dist/internal/utils/getResponsiveControlValues.d.ts.map +0 -1
  1063. package/dist/internal/utils/hasInteractiveNodes.d.ts +0 -11
  1064. package/dist/internal/utils/hasInteractiveNodes.d.ts.map +0 -1
  1065. package/dist/legacy-theme/ts/color-schemes.d.ts +0 -4733
  1066. package/dist/legacy-theme/ts/color-schemes.d.ts.map +0 -1
  1067. package/dist/legacy-theme/ts/index.d.ts +0 -2
  1068. package/dist/legacy-theme/ts/index.d.ts.map +0 -1
  1069. package/dist/live-region/Announce.d.ts.map +0 -1
  1070. package/dist/live-region/AriaAlert.d.ts.map +0 -1
  1071. package/dist/live-region/AriaStatus.d.ts.map +0 -1
  1072. package/dist/live-region/__tests__/test-helpers.d.ts +0 -3
  1073. package/dist/live-region/__tests__/test-helpers.d.ts.map +0 -1
  1074. package/dist/live-region/index.d.ts.map +0 -1
  1075. package/dist/next/index.d.ts.map +0 -1
  1076. package/dist/theme.d.ts.map +0 -1
  1077. package/dist/useTheme.d.ts.map +0 -1
  1078. package/dist/utils/StressTest.d.ts +0 -10
  1079. package/dist/utils/StressTest.d.ts.map +0 -1
  1080. package/dist/utils/__tests__/character-counter.test.d.ts +0 -2
  1081. package/dist/utils/__tests__/character-counter.test.d.ts.map +0 -1
  1082. package/dist/utils/__tests__/invariant.test.d.ts +0 -2
  1083. package/dist/utils/__tests__/invariant.test.d.ts.map +0 -1
  1084. package/dist/utils/__tests__/warning.test.d.ts +0 -2
  1085. package/dist/utils/__tests__/warning.test.d.ts.map +0 -1
  1086. package/dist/utils/as-slot.d.ts.map +0 -1
  1087. package/dist/utils/character-counter.d.ts +0 -22
  1088. package/dist/utils/character-counter.d.ts.map +0 -1
  1089. package/dist/utils/create-component.d.ts.map +0 -1
  1090. package/dist/utils/deprecate.d.ts +0 -19
  1091. package/dist/utils/deprecate.d.ts.map +0 -1
  1092. package/dist/utils/descendant-registry.d.ts.map +0 -1
  1093. package/dist/utils/environment.d.ts +0 -10
  1094. package/dist/utils/environment.d.ts.map +0 -1
  1095. package/dist/utils/form-story-helpers.d.ts +0 -63
  1096. package/dist/utils/form-story-helpers.d.ts.map +0 -1
  1097. package/dist/utils/getBreakpointDeclarations.d.ts +0 -4
  1098. package/dist/utils/getBreakpointDeclarations.d.ts.map +0 -1
  1099. package/dist/utils/invariant.d.ts +0 -3
  1100. package/dist/utils/invariant.d.ts.map +0 -1
  1101. package/dist/utils/is-slot.d.ts.map +0 -1
  1102. package/dist/utils/isNumeric.d.ts +0 -2
  1103. package/dist/utils/isNumeric.d.ts.map +0 -1
  1104. package/dist/utils/modern-polymorphic.d.ts.map +0 -1
  1105. package/dist/utils/polymorphic.d.ts.map +0 -1
  1106. package/dist/utils/scroll.d.ts +0 -6
  1107. package/dist/utils/scroll.d.ts.map +0 -1
  1108. package/dist/utils/story-helpers.d.ts +0 -71
  1109. package/dist/utils/story-helpers.d.ts.map +0 -1
  1110. package/dist/utils/test-helpers.d.ts +0 -2
  1111. package/dist/utils/test-helpers.d.ts.map +0 -1
  1112. package/dist/utils/testing/profiler.d.ts +0 -35
  1113. package/dist/utils/testing/profiler.d.ts.map +0 -1
  1114. package/dist/utils/theme.d.ts +0 -20
  1115. package/dist/utils/theme.d.ts.map +0 -1
  1116. package/dist/utils/types/AriaRole.d.ts.map +0 -1
  1117. package/dist/utils/types/ComponentProps.d.ts.map +0 -1
  1118. package/dist/utils/types/Flatten.d.ts +0 -5
  1119. package/dist/utils/types/Flatten.d.ts.map +0 -1
  1120. package/dist/utils/types/FormValidationStatus.d.ts.map +0 -1
  1121. package/dist/utils/types/KeyPaths.d.ts.map +0 -1
  1122. package/dist/utils/types/MandateProps.d.ts.map +0 -1
  1123. package/dist/utils/types/Merge.d.ts.map +0 -1
  1124. package/dist/utils/types/Slots.d.ts.map +0 -1
  1125. package/dist/utils/types/ViewportRangeKeys.d.ts.map +0 -1
  1126. package/dist/utils/types/index.d.ts +0 -7
  1127. package/dist/utils/types/index.d.ts.map +0 -1
  1128. package/dist/utils/use-force-update.d.ts +0 -2
  1129. package/dist/utils/use-force-update.d.ts.map +0 -1
  1130. package/dist/utils/useIsomorphicLayoutEffect.d.ts.map +0 -1
  1131. package/dist/utils/warning.d.ts +0 -4
  1132. 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 { useFeatureFlag } from "../FeatureFlags/useFeatureFlag.js";
6
+ import useSafeTimeout from "../hooks/useSafeTimeout.js";
7
+ import { IconButton } from "../Button/IconButton.js";
8
+ import { LinkButton } from "../Button/LinkButton.js";
9
+ import { ButtonComponent } from "../Button/Button.js";
10
+ import { useResponsiveValue } from "../hooks/useResponsiveValue.js";
11
+ import Heading from "../Heading/Heading.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 };