@procore/core-react 12.50.1 → 12.52.0

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 (271) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +14 -0
  3. package/dist/AnchorNavigation/AnchorNavigation.styles.js +4 -4
  4. package/dist/Avatar/Avatar.styles.js +5 -5
  5. package/dist/AvatarStack/AvatarStack.styles.js +8 -8
  6. package/dist/Badge/Badge.styles.js +2 -2
  7. package/dist/BadgePill/BadgePill.styles.js +4 -4
  8. package/dist/Banner/Banner.d.ts +7 -5
  9. package/dist/Banner/Banner.js +146 -71
  10. package/dist/Banner/Banner.js.map +1 -1
  11. package/dist/Banner/Banner.styles.js +10 -10
  12. package/dist/Banner/Banner.types.d.ts +16 -0
  13. package/dist/Banner/Banner.types.js.map +1 -1
  14. package/dist/Box/Box.styles.js +1 -1
  15. package/dist/Breadcrumbs/Breadcrumbs.d.ts +15 -2
  16. package/dist/Breadcrumbs/Breadcrumbs.js +27 -4
  17. package/dist/Breadcrumbs/Breadcrumbs.js.map +1 -1
  18. package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
  19. package/dist/Breadcrumbs/Breadcrumbs.types.d.ts +9 -0
  20. package/dist/Breadcrumbs/Breadcrumbs.types.js.map +1 -1
  21. package/dist/Button/Button.styles.js +11 -12
  22. package/dist/Button/Button.styles.js.map +1 -1
  23. package/dist/Calendar/Calendar.styles.js +9 -9
  24. package/dist/Card/Card.styles.js +1 -1
  25. package/dist/Checkbox/Checkbox.styles.js +6 -6
  26. package/dist/ContactItem/ContactItem.styles.js +5 -5
  27. package/dist/Content/Content.styles.js +2 -2
  28. package/dist/DateInput/DateInput.styles.js +6 -6
  29. package/dist/DetailPage/DetailPage.styles.js +7 -7
  30. package/dist/Dropdown/Dropdown.styles.js +3 -3
  31. package/dist/DropdownFlyout/DropdownFlyout.helpers.d.ts +3 -0
  32. package/dist/DropdownFlyout/DropdownFlyout.helpers.js +30 -2
  33. package/dist/DropdownFlyout/DropdownFlyout.helpers.js.map +1 -1
  34. package/dist/DropdownFlyout/DropdownFlyout.js +7 -1
  35. package/dist/DropdownFlyout/DropdownFlyout.js.map +1 -1
  36. package/dist/DropdownFlyout/DropdownFlyout.styles.js +7 -8
  37. package/dist/DropdownFlyout/DropdownFlyout.styles.js.map +1 -1
  38. package/dist/DropdownFlyout/DropdownFlyout.types.d.ts +4 -0
  39. package/dist/DropdownFlyout/DropdownFlyout.types.js.map +1 -1
  40. package/dist/DropdownFlyout/useDropdownFlyoutOverlay.js +13 -1
  41. package/dist/DropdownFlyout/useDropdownFlyoutOverlay.js.map +1 -1
  42. package/dist/Dropzone/Dropzone.js +1 -1
  43. package/dist/Dropzone/Dropzone.styles.d.ts +2 -2
  44. package/dist/Dropzone/Dropzone.styles.js +9 -9
  45. package/dist/EmptyState/EmptyState.styles.js +6 -6
  46. package/dist/Field/Field.styles.js +3 -3
  47. package/dist/FileList/FileList.styles.js +3 -3
  48. package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
  49. package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
  50. package/dist/FileSelect/FileSelect.styles.js +2 -2
  51. package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
  52. package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
  53. package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
  54. package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
  55. package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
  56. package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
  57. package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
  58. package/dist/FileToken/FileToken.styles.js +6 -6
  59. package/dist/FilterToken/FilterToken.styles.js +5 -5
  60. package/dist/FlexList/FlexList.styles.js +1 -1
  61. package/dist/Form/Form.styles.js +13 -13
  62. package/dist/Form/StyledFormikForm.styles.js +2 -2
  63. package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
  64. package/dist/Grid/Grid.styles.js +2 -2
  65. package/dist/GroupSelect/GroupSelect.styles.js +1 -1
  66. package/dist/Input/Input.styles.js +1 -1
  67. package/dist/Link/Link.styles.js +1 -1
  68. package/dist/ListPage/ListPage.styles.js +8 -8
  69. package/dist/Loader/Loader.styles.js +2 -2
  70. package/dist/Menu/Menu.js +7 -0
  71. package/dist/Menu/Menu.js.map +1 -1
  72. package/dist/Menu/Menu.types.d.ts +1 -0
  73. package/dist/Menu/Menu.types.js.map +1 -1
  74. package/dist/MenuImperative/MenuImperative.styles.d.ts +1 -0
  75. package/dist/MenuImperative/MenuImperative.styles.js +25 -22
  76. package/dist/MenuImperative/MenuImperative.styles.js.map +1 -1
  77. package/dist/MenuImperative/sensors.js +20 -4
  78. package/dist/MenuImperative/sensors.js.map +1 -1
  79. package/dist/Modal/Modal.styles.js +13 -13
  80. package/dist/MultiSelect/MultiSelect.styles.js +8 -8
  81. package/dist/NextMenu/NextMenu.styles.js +3 -3
  82. package/dist/NextTile/NextTile.styles.js +5 -5
  83. package/dist/Notation/Notation.js +1 -1
  84. package/dist/NumberInput/NumberInput.styles.js +7 -7
  85. package/dist/Overlay/OverlayArrow.styles.js +1 -1
  86. package/dist/Overlay/useOverlay.d.ts +2 -1
  87. package/dist/Overlay/useOverlay.js +4 -2
  88. package/dist/Overlay/useOverlay.js.map +1 -1
  89. package/dist/PageLayout/PageLayout.js +4 -2
  90. package/dist/PageLayout/PageLayout.js.map +1 -1
  91. package/dist/PageLayout/PageLayout.styles.d.ts +0 -1
  92. package/dist/PageLayout/PageLayout.styles.js +18 -19
  93. package/dist/PageLayout/PageLayout.styles.js.map +1 -1
  94. package/dist/PageLayout/PageLayout.types.d.ts +11 -3
  95. package/dist/PageLayout/PageLayout.types.js.map +1 -1
  96. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
  97. package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
  98. package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
  99. package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
  100. package/dist/Pagination/Pagination.styles.js +5 -5
  101. package/dist/Panel/Panel.styles.js +11 -11
  102. package/dist/Pill/Pill.styles.js +3 -3
  103. package/dist/PillSelect/PillSelect.styles.js +4 -4
  104. package/dist/Popover/Popover.styles.js +2 -2
  105. package/dist/Portal/Portal.styles.js +1 -1
  106. package/dist/ProgressBar/ProgressBar.styles.js +2 -2
  107. package/dist/RadioButton/RadioButton.styles.js +3 -3
  108. package/dist/Required/Required.styles.js +3 -3
  109. package/dist/Search/Search.styles.js +5 -5
  110. package/dist/Section/Section.styles.js +7 -7
  111. package/dist/SegmentedController/SegmentedController.styles.js +4 -4
  112. package/dist/Select/Select.styles.js +8 -8
  113. package/dist/Semantic/Semantic.styles.js +9 -9
  114. package/dist/Slider/Slider.styles.js +5 -5
  115. package/dist/Spinner/Spinner.styles.js +7 -7
  116. package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
  117. package/dist/SuperSelect/SuperSelect.components.js +2 -0
  118. package/dist/SuperSelect/SuperSelect.components.js.map +1 -1
  119. package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
  120. package/dist/SuperSelect/SuperSelect.styles.d.ts +1 -0
  121. package/dist/SuperSelect/SuperSelect.styles.js +79 -76
  122. package/dist/SuperSelect/SuperSelect.styles.js.map +1 -1
  123. package/dist/SuperSelect/SuperSelect.types.d.ts +1 -0
  124. package/dist/SuperSelect/SuperSelect.types.js.map +1 -1
  125. package/dist/SuperSelect/useSuperSelect.js +1 -0
  126. package/dist/SuperSelect/useSuperSelect.js.map +1 -1
  127. package/dist/Switch/Switch.styles.js +4 -4
  128. package/dist/Table/Table.styles.js +29 -29
  129. package/dist/TableShelf/TableShelf.styles.js +5 -5
  130. package/dist/Tabs/Tabs.js +2 -1
  131. package/dist/Tabs/Tabs.js.map +1 -1
  132. package/dist/Tabs/Tabs.styles.d.ts +1 -0
  133. package/dist/Tabs/Tabs.styles.js +29 -26
  134. package/dist/Tabs/Tabs.styles.js.map +1 -1
  135. package/dist/Tearsheet/Tearsheet.styles.js +5 -5
  136. package/dist/TextArea/TextArea.styles.js +1 -1
  137. package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
  138. package/dist/Thumbnail/Thumbnail.js +99 -37
  139. package/dist/Thumbnail/Thumbnail.js.map +1 -1
  140. package/dist/Thumbnail/Thumbnail.styles.js +23 -23
  141. package/dist/Thumbnail/Thumbnail.styles.js.map +1 -1
  142. package/dist/Thumbnail/Thumbnail.types.d.ts +1 -0
  143. package/dist/Thumbnail/Thumbnail.types.js.map +1 -1
  144. package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
  145. package/dist/TieredSelect/TieredSelect.styles.js +9 -9
  146. package/dist/Tile/Tile.styles.js +8 -8
  147. package/dist/Title/Title.styles.js +7 -7
  148. package/dist/Toast/Toast.styles.js +3 -3
  149. package/dist/ToggleButton/ToggleButton.styles.js +1 -1
  150. package/dist/Token/Token.styles.js +5 -5
  151. package/dist/ToolHeader/ToolHeader.styles.js +6 -6
  152. package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
  153. package/dist/Tooltip/Tooltip.styles.js +3 -3
  154. package/dist/Tree/Tree.js +46 -21
  155. package/dist/Tree/Tree.js.map +1 -1
  156. package/dist/Tree/Tree.styles.d.ts +1 -0
  157. package/dist/Tree/Tree.styles.js +17 -14
  158. package/dist/Tree/Tree.styles.js.map +1 -1
  159. package/dist/Tree/Tree.types.d.ts +10 -0
  160. package/dist/Tree/Tree.types.js.map +1 -1
  161. package/dist/Typeahead/Typeahead.styles.js +4 -4
  162. package/dist/Typography/Typography.styles.js +1 -1
  163. package/dist/Typography/Typography.table.story.js +2 -2
  164. package/dist/_hooks/I18n.d.ts +57 -9
  165. package/dist/_locales/de-DE.json +1 -1
  166. package/dist/_locales/en-AU.json +1 -1
  167. package/dist/_locales/en-CA.json +1 -1
  168. package/dist/_locales/en-GB.json +1 -1
  169. package/dist/_locales/en.json +8 -2
  170. package/dist/_locales/es-ES.json +1 -1
  171. package/dist/_locales/fr-CA.json +1 -1
  172. package/dist/_locales/fr-FR.json +1 -1
  173. package/dist/_locales/is-IS.json +1 -1
  174. package/dist/_locales/ja-JP.json +2 -2
  175. package/dist/_locales/nb-NO.json +1 -1
  176. package/dist/_locales/pl-PL.json +1 -1
  177. package/dist/_locales/pseudo.json +8 -2
  178. package/dist/_locales/pt-PT.json +1 -1
  179. package/dist/_locales/th-TH.json +1 -1
  180. package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
  181. package/dist/_storyHelpers_/components/StoryGrid.js +3 -3
  182. package/dist/_storyHelpers_/primaryButtonThemeCssVars.d.ts +8 -0
  183. package/dist/_storyHelpers_/primaryButtonThemeCssVars.js +9 -0
  184. package/dist/_storyHelpers_/primaryButtonThemeCssVars.js.map +1 -0
  185. package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +4 -4
  186. package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
  187. package/dist/_typedoc/AvatarStack/AvatarStack.types.json +25 -25
  188. package/dist/_typedoc/Badge/Badge.types.json +6 -6
  189. package/dist/_typedoc/Banner/Banner.types.json +37 -15
  190. package/dist/_typedoc/Box/Box.types.json +68 -68
  191. package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +32 -10
  192. package/dist/_typedoc/Button/Button.types.json +14 -14
  193. package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
  194. package/dist/_typedoc/Card/Card.types.json +6 -6
  195. package/dist/_typedoc/Checkbox/Checkbox.types.json +8 -8
  196. package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
  197. package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
  198. package/dist/_typedoc/DateSelect/DateSelect.types.json +14 -14
  199. package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
  200. package/dist/_typedoc/Dropdown/Dropdown.types.json +38 -38
  201. package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +41 -31
  202. package/dist/_typedoc/Dropzone/Dropzone.types.json +44 -44
  203. package/dist/_typedoc/EmptyState/EmptyState.types.json +18 -18
  204. package/dist/_typedoc/FileList/FileList.types.json +9 -9
  205. package/dist/_typedoc/FileSelect/FileSelect.types.json +27 -27
  206. package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
  207. package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
  208. package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +9 -9
  209. package/dist/_typedoc/Flex/Flex.types.json +27 -27
  210. package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
  211. package/dist/_typedoc/Form/Form.types.json +770 -770
  212. package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +12 -12
  213. package/dist/_typedoc/Grid/Grid.types.json +8 -8
  214. package/dist/_typedoc/GroupSelect/GroupSelect.types.json +54 -54
  215. package/dist/_typedoc/Input/Input.types.json +2 -2
  216. package/dist/_typedoc/Link/Link.types.json +1 -1
  217. package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
  218. package/dist/_typedoc/Menu/Menu.types.json +62 -62
  219. package/dist/_typedoc/MenuImperative/MenuImperative.types.json +84 -84
  220. package/dist/_typedoc/Modal/Modal.types.json +48 -48
  221. package/dist/_typedoc/MultiSelect/MultiSelect.types.json +33 -33
  222. package/dist/_typedoc/NextTile/NextTile.types.json +33 -33
  223. package/dist/_typedoc/Notation/Notation.types.json +4 -4
  224. package/dist/_typedoc/NumberInput/NumberInput.types.json +52 -52
  225. package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +33 -33
  226. package/dist/_typedoc/PageLayout/PageLayout.types.json +58 -45
  227. package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
  228. package/dist/_typedoc/Panel/Panel.types.json +28 -28
  229. package/dist/_typedoc/Pill/Pill.types.json +2 -2
  230. package/dist/_typedoc/PillSelect/PillSelect.types.json +49 -49
  231. package/dist/_typedoc/Popover/Popover.types.json +15 -15
  232. package/dist/_typedoc/ProgressBar/ProgressBar.types.json +7 -7
  233. package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
  234. package/dist/_typedoc/Required/Required.types.json +5 -5
  235. package/dist/_typedoc/Search/Search.types.json +18 -18
  236. package/dist/_typedoc/Section/Section.types.json +15 -15
  237. package/dist/_typedoc/SegmentedController/SegmentedController.types.json +21 -21
  238. package/dist/_typedoc/Select/Select.types.json +67 -67
  239. package/dist/_typedoc/SettingsPage/SettingsPage.types.json +10 -10
  240. package/dist/_typedoc/Slider/Slider.types.json +6 -6
  241. package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
  242. package/dist/_typedoc/SplitViewCard/SplitViewCard.types.json +14 -14
  243. package/dist/_typedoc/Table/Table.types.json +105 -105
  244. package/dist/_typedoc/Tabs/Tabs.types.json +23 -23
  245. package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
  246. package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
  247. package/dist/_typedoc/TextEditor/TextEditor.types.json +11 -11
  248. package/dist/_typedoc/TextEditorOutput/TextEditorOutput.types.json +4 -4
  249. package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
  250. package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +43 -43
  251. package/dist/_typedoc/TieredSelect/TieredSelect.types.json +29 -29
  252. package/dist/_typedoc/Tile/Tile.types.json +8 -8
  253. package/dist/_typedoc/Title/Title.types.json +1 -1
  254. package/dist/_typedoc/Toast/Toast.types.json +4 -4
  255. package/dist/_typedoc/ToggleButton/ToggleButton.types.json +4 -4
  256. package/dist/_typedoc/Token/Token.types.json +7 -7
  257. package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
  258. package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +8 -8
  259. package/dist/_typedoc/Tooltip/Tooltip.types.json +15 -15
  260. package/dist/_typedoc/Tree/Tree.types.json +118 -88
  261. package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
  262. package/dist/_typedoc/Typography/Typography.types.json +9 -9
  263. package/dist/_typedoc/_utils/types.json +3 -3
  264. package/dist/_typedoc/a11y-tips.json +1 -1
  265. package/dist/_utils/shadowDOM.d.ts +3 -0
  266. package/dist/_utils/shadowDOM.js +20 -0
  267. package/dist/_utils/shadowDOM.js.map +1 -0
  268. package/dist/index.d.ts +1 -0
  269. package/dist/index.js +1 -0
  270. package/dist/index.js.map +1 -1
  271. package/package.json +3 -2
@@ -8,37 +8,37 @@ var cellSize = 36; // TODO one-off size
8
8
 
9
9
  export var StyledContainer = /*#__PURE__*/styled.div.withConfig({
10
10
  displayName: "StyledContainer",
11
- componentId: "core-12_50_1__sc-1kkl86t-0"
11
+ componentId: "core-12_52_0__sc-1kkl86t-0"
12
12
  })(["", ";display:inline-flex;flex-direction:column;padding:", "px ", "px ", "px;"], getTypographyIntent('small'), spacing.lg, spacing.md, spacing.md);
13
13
  export var StyledPaginator = /*#__PURE__*/styled(Button).withConfig({
14
14
  displayName: "StyledPaginator",
15
- componentId: "core-12_50_1__sc-1kkl86t-1"
15
+ componentId: "core-12_52_0__sc-1kkl86t-1"
16
16
  })(["flex:0 0 auto;"]);
17
17
  export var StyledSelect = /*#__PURE__*/styled.div.withConfig({
18
18
  displayName: "StyledSelect",
19
- componentId: "core-12_50_1__sc-1kkl86t-2"
19
+ componentId: "core-12_52_0__sc-1kkl86t-2"
20
20
  })(["display:inline-flex;flex:1 1 0;margin-left:", "px;> div{font-size:12px;}"], spacing.sm);
21
21
  export var StyledNavigation = /*#__PURE__*/styled.div.withConfig({
22
22
  displayName: "StyledNavigation",
23
- componentId: "core-12_50_1__sc-1kkl86t-3"
23
+ componentId: "core-12_52_0__sc-1kkl86t-3"
24
24
  })(["display:inline-flex;margin-bottom:", "px;", " + ", ",", " + ", "{margin-left:", "px;}"], spacing.sm, StyledPaginator, StyledSelect, StyledSelect, StyledPaginator, spacing.sm);
25
25
  export var StyledCell = /*#__PURE__*/styled.div.withConfig({
26
26
  displayName: "StyledCell",
27
- componentId: "core-12_50_1__sc-1kkl86t-4"
27
+ componentId: "core-12_52_0__sc-1kkl86t-4"
28
28
  })(["align-items:center;display:inline-flex;height:", "px;justify-content:center;width:", "px;"], cellSize, cellSize);
29
29
  export var StyledDayHeaderCell = /*#__PURE__*/styled(StyledCell).withConfig({
30
30
  displayName: "StyledDayHeaderCell",
31
- componentId: "core-12_50_1__sc-1kkl86t-5"
31
+ componentId: "core-12_52_0__sc-1kkl86t-5"
32
32
  })(["cursor:default;font-weight:", ";"], typographyWeights.semibold);
33
33
  export var StyledCellButton = /*#__PURE__*/styled.button.attrs({
34
34
  type: 'button'
35
35
  }).withConfig({
36
36
  displayName: "StyledCellButton",
37
- componentId: "core-12_50_1__sc-1kkl86t-6"
37
+ componentId: "core-12_52_0__sc-1kkl86t-6"
38
38
  })(["align-items:center;display:inline-flex;height:", "px;justify-content:center;width:", "px;cursor:pointer;border:none;background:none;padding:0;font:inherit;color:inherit;"], cellSize, cellSize);
39
39
  export var StyledDayCell = /*#__PURE__*/styled(StyledCellButton).withConfig({
40
40
  displayName: "StyledDayCell",
41
- componentId: "core-12_50_1__sc-1kkl86t-7"
41
+ componentId: "core-12_52_0__sc-1kkl86t-7"
42
42
  })(["", ""], function (_ref) {
43
43
  var _ref$$disabled = _ref.$disabled,
44
44
  $disabled = _ref$$disabled === void 0 ? false : _ref$$disabled,
@@ -61,6 +61,6 @@ export var StyledDayCell = /*#__PURE__*/styled(StyledCellButton).withConfig({
61
61
  });
62
62
  export var StyledWeekRow = /*#__PURE__*/styled.div.withConfig({
63
63
  displayName: "StyledWeekRow",
64
- componentId: "core-12_50_1__sc-1kkl86t-8"
64
+ componentId: "core-12_52_0__sc-1kkl86t-8"
65
65
  })(["display:inline-flex;padding-bottom:2px;user-select:none;&:last-child{padding-bottom:0;}", "{&:first-child{border-top-left-radius:", "px;border-bottom-left-radius:", "px;}&:last-child{border-top-right-radius:", "px;border-bottom-right-radius:", "px;}}"], StyledCell, borderRadius.md, borderRadius.md, borderRadius.md, borderRadius.md);
66
66
  //# sourceMappingURL=Calendar.styles.js.map
@@ -4,7 +4,7 @@ import { colors } from '../_styles/colors';
4
4
  import { getShadow } from '../_styles/shadows';
5
5
  export var StyledCardContainer = /*#__PURE__*/styled.div.withConfig({
6
6
  displayName: "StyledCardContainer",
7
- componentId: "core-12_50_1__sc-2fii7b-0"
7
+ componentId: "core-12_52_0__sc-2fii7b-0"
8
8
  })(["background-color:", ";border-radius:", "px;transition:box-shadow 0.2s ease-in-out;", " ", ""], colors.white, borderRadius.md, function (_ref) {
9
9
  var $level = _ref.$level,
10
10
  $shadowStrength = _ref.$shadowStrength;
@@ -9,7 +9,7 @@ export var dataQa = {
9
9
  export var checkboxSize = 20;
10
10
  export var StyledCheckboxContainer = /*#__PURE__*/styled.div.withConfig({
11
11
  displayName: "StyledCheckboxContainer",
12
- componentId: "core-12_50_1__sc-u63tye-0"
12
+ componentId: "core-12_52_0__sc-u63tye-0"
13
13
  })(["color:", ";display:block;position:relative;& + &{margin-top:", "px;}"], colors.gray15, spacing.md);
14
14
  function StyledIndeterminate() {
15
15
  return css(["background-color:", ";content:'';height:2px;left:5px;position:absolute;top:9px;width:10px;border:none;"], colors.white);
@@ -48,18 +48,18 @@ function StyledFakeIndeterminate() {
48
48
  }
49
49
  export var StyledCheckboxLabelWrapper = /*#__PURE__*/styled.div.withConfig({
50
50
  displayName: "StyledCheckboxLabelWrapper",
51
- componentId: "core-12_50_1__sc-u63tye-1"
51
+ componentId: "core-12_52_0__sc-u63tye-1"
52
52
  })(["padding-left:", "px;min-height:", "px;position:relative;", ""], function (_ref) {
53
53
  var $hasLabel = _ref.$hasLabel;
54
54
  return $hasLabel ? checkboxSize + spacing.md : checkboxSize;
55
55
  }, checkboxSize, getTypographyIntent('body'));
56
56
  export var StyledCheckboxLabel = /*#__PURE__*/styled.label.withConfig({
57
57
  displayName: "StyledCheckboxLabel",
58
- componentId: "core-12_50_1__sc-u63tye-2"
58
+ componentId: "core-12_52_0__sc-u63tye-2"
59
59
  })(["user-select:none;&:before{background-color:", ";border-radius:2px;border:2px solid ", ";content:'';display:inline-block;height:", "px;width:", "px;min-width:", "px;top:0;left:0;position:absolute;}"], colors.white, colors.gray50, checkboxSize, checkboxSize, checkboxSize);
60
60
  export var StyledCheckboxInput = /*#__PURE__*/styled.input.withConfig({
61
61
  displayName: "StyledCheckboxInput",
62
- componentId: "core-12_50_1__sc-u63tye-3"
62
+ componentId: "core-12_52_0__sc-u63tye-3"
63
63
  })(["left:0;opacity:0;position:absolute;top:0;&:disabled:checked + ", " > ", ":before{background-color:", ";border-color:", ";}&:disabled + ", " > ", ":before{background-color:", ";border-color:", ";}", " &:checked + ", " > ", "{&:before{background-color:", ";border-color:", ";color:", ";}&:after{", "}}&:focus:not(:disabled),&[data-qa=", "]:not(:disabled){+ ", " > ", ":before{", "}}", ""], StyledCheckboxLabelWrapper, StyledCheckboxLabel, colors.blue85, colors.blue85, StyledCheckboxLabelWrapper, StyledCheckboxLabel, function (_ref2) {
64
64
  var $indeterminate = _ref2.$indeterminate;
65
65
  return $indeterminate ? colors.gray85 : colors.white;
@@ -83,7 +83,7 @@ export var StyledCheckboxInput = /*#__PURE__*/styled.input.withConfig({
83
83
  });
84
84
  export var StyledFakeCheckboxLabel = /*#__PURE__*/styled.span.withConfig({
85
85
  displayName: "StyledFakeCheckboxLabel",
86
- componentId: "core-12_50_1__sc-u63tye-4"
86
+ componentId: "core-12_52_0__sc-u63tye-4"
87
87
  })(["", " display:block;min-height:", "px;padding-left:", "px;position:relative;user-select:none;cursor:pointer;", ""], getTypographyIntent('body'), checkboxSize, function (_ref7) {
88
88
  var children = _ref7.children;
89
89
  return children ? checkboxSize + spacing.md : checkboxSize;
@@ -99,7 +99,7 @@ export var StyledFakeCheckboxLabel = /*#__PURE__*/styled.span.withConfig({
99
99
  });
100
100
  export var StyledFakeCheckboxInput = /*#__PURE__*/styled.div.withConfig({
101
101
  displayName: "StyledFakeCheckboxInput",
102
- componentId: "core-12_50_1__sc-u63tye-5"
102
+ componentId: "core-12_52_0__sc-u63tye-5"
103
103
  })(["width:", "px;height:", "px;border-radius:2px;border:2px solid ", ";position:absolute;", " ", " ", " ", ""], checkboxSize, checkboxSize, colors.gray70, function (_ref9) {
104
104
  var $checked = _ref9.$checked,
105
105
  $disabled = _ref9.$disabled,
@@ -7,23 +7,23 @@ import { getLineClamp } from '../_styles/mixins';
7
7
  import { spacing } from '../_styles/spacing';
8
8
  export var ContactItemAvatarWrapper = /*#__PURE__*/styled.div.withConfig({
9
9
  displayName: "ContactItemAvatarWrapper",
10
- componentId: "core-12_50_1__sc-1c4z9pn-0"
10
+ componentId: "core-12_52_0__sc-1c4z9pn-0"
11
11
  })(["display:inline-flex;align-self:flex-start;"]);
12
12
  export var ContactItemAvatar = /*#__PURE__*/styled(Avatar).withConfig({
13
13
  displayName: "ContactItemAvatar",
14
- componentId: "core-12_50_1__sc-1c4z9pn-1"
14
+ componentId: "core-12_52_0__sc-1c4z9pn-1"
15
15
  })(["cursor:inherit;font-weight:", ";"], typographyWeights.bold);
16
16
  export var ContactItemTextWrapper = /*#__PURE__*/styled.div.withConfig({
17
17
  displayName: "ContactItemTextWrapper",
18
- componentId: "core-12_50_1__sc-1c4z9pn-2"
18
+ componentId: "core-12_52_0__sc-1c4z9pn-2"
19
19
  })(["overflow:hidden;margin-left:", "px;"], spacing.sm);
20
20
  export var ContactItemText = /*#__PURE__*/styled(Typography).withConfig({
21
21
  displayName: "ContactItemText",
22
- componentId: "core-12_50_1__sc-1c4z9pn-3"
22
+ componentId: "core-12_52_0__sc-1c4z9pn-3"
23
23
  })(["display:flex;", ""], getLineClamp());
24
24
  export var ContactItemWrapper = /*#__PURE__*/styled.div.withConfig({
25
25
  displayName: "ContactItemWrapper",
26
- componentId: "core-12_50_1__sc-1c4z9pn-4"
26
+ componentId: "core-12_52_0__sc-1c4z9pn-4"
27
27
  })(["display:flex;flex-direction:row;align-items:center;padding:", "px ", "px ", "px ", "px;", " ", " ", ""], spacing.sm, spacing.lg, spacing.sm, spacing.sm, function (_ref) {
28
28
  var $disabled = _ref.$disabled,
29
29
  $clickable = _ref.$clickable;
@@ -5,10 +5,10 @@ import { mediaIE11Hack } from '../_styles/media';
5
5
  import { spacing } from '../_styles/spacing';
6
6
  export var StyledContent = /*#__PURE__*/styled(Box).withConfig({
7
7
  displayName: "StyledContent",
8
- componentId: "core-12_50_1__sc-10y57gh-0"
8
+ componentId: "core-12_52_0__sc-10y57gh-0"
9
9
  })(["> * + *,> * + h1,> * + h2,> * + h3,> * + h4,> * + p,> * + ul,> * + ol{margin-top:", "px;}> ", " + *{margin-top:0;}> ", ",> ", " > ", ",> ", "{", "{min-height:0;margin-bottom:", "px;}&:last-child ", "{margin-bottom:0;}}"], spacing.lg, StyledFormRow, StyledFormRow, StyledForm, StyledFormRow, StyledFormRow, StyledFormFieldBanner, spacing.md, StyledFormFieldBanner);
10
10
  export var StyledActions = /*#__PURE__*/styled(Box).withConfig({
11
11
  displayName: "StyledActions",
12
- componentId: "core-12_50_1__sc-10y57gh-1"
12
+ componentId: "core-12_52_0__sc-10y57gh-1"
13
13
  })(["display:flex;justify-content:flex-end;gap:", "px;@media ", "{& > * + *{margin-left:", "px;}}"], spacing.sm, mediaIE11Hack, spacing.sm);
14
14
  //# sourceMappingURL=Content.styles.js.map
@@ -10,15 +10,15 @@ var inputHeight = 36; // TODO one-off
10
10
  var disabledCss = /*#__PURE__*/css(["background-color:", ";color:", ";border-width:1px;border-style:solid;border-color:", ";pointer-events:none;svg{color:", ";}"], colors.gray94, colors.gray45, colors.gray50, colors.gray45);
11
11
  export var StyledCalendar = /*#__PURE__*/styled(Calendar).withConfig({
12
12
  displayName: "StyledCalendar",
13
- componentId: "core-12_50_1__sc-w10btf-0"
13
+ componentId: "core-12_52_0__sc-w10btf-0"
14
14
  })(["color:", ";"], colors.gray45);
15
15
  export var StyledDateSegmentsContainer = /*#__PURE__*/styled.div.withConfig({
16
16
  displayName: "StyledDateSegmentsContainer",
17
- componentId: "core-12_50_1__sc-w10btf-1"
17
+ componentId: "core-12_52_0__sc-w10btf-1"
18
18
  })(["min-width:104px;display:flex;gap:", "px;"], spacing.xs);
19
19
  export var StyledDateInputSegment = /*#__PURE__*/styled.div.withConfig({
20
20
  displayName: "StyledDateInputSegment",
21
- componentId: "core-12_50_1__sc-w10btf-2"
21
+ componentId: "core-12_52_0__sc-w10btf-2"
22
22
  })(["", " outline:none;text-align:center;&:focus{background-color:", ";}&::selection{background-color:transparent;}&[data-placeholder='true']{color:", ";}"], getTypographyIntent('body'), colors.blue96, function (_ref) {
23
23
  var $disabled = _ref.$disabled;
24
24
  return $disabled ? colors.gray70 : colors.gray45;
@@ -29,15 +29,15 @@ export var StyledDateInputDelimiter = /*#__PURE__*/styled.span.attrs(function (p
29
29
  };
30
30
  }).withConfig({
31
31
  displayName: "StyledDateInputDelimiter",
32
- componentId: "core-12_50_1__sc-w10btf-3"
32
+ componentId: "core-12_52_0__sc-w10btf-3"
33
33
  })(["", " user-select:none;"], getTypographyIntent('body'));
34
34
  export var StyledDateInputIconContainer = /*#__PURE__*/styled.div.withConfig({
35
35
  displayName: "StyledDateInputIconContainer",
36
- componentId: "core-12_50_1__sc-w10btf-4"
36
+ componentId: "core-12_52_0__sc-w10btf-4"
37
37
  })(["display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;margin:0 0 0 ", "px;height:24px;width:24px;"], spacing.xs);
38
38
  export var StyledDateInput = /*#__PURE__*/styled.div.withConfig({
39
39
  displayName: "StyledDateInput",
40
- componentId: "core-12_50_1__sc-w10btf-5"
40
+ componentId: "core-12_52_0__sc-w10btf-5"
41
41
  })(["align-items:center;border-color:", ";border-radius:4px;border-style:solid;border-width:1px;display:inline-flex;flex-direction:row;height:", "px;justify-content:center;padding:0 ", "px 0 ", "px;&::placeholder{color:", ";}", " &:focus-within,&[data-qa=", "]{", ";}&:disabled{", "}", " ", ""], colors.gray50, inputHeight, spacing.xs, spacing.sm, colors.gray45, function (_ref2) {
42
42
  var $error = _ref2.$error;
43
43
  return !$error && css(["&:hover,&[data-qa=", "]{border-color:", ";}"], dataQa.hovered, colors.gray20);
@@ -9,32 +9,32 @@ import { colors } from '../_styles/colors';
9
9
  import { spacing } from '../_styles/spacing';
10
10
  export var StyledDetailPage = /*#__PURE__*/styled.div.withConfig({
11
11
  displayName: "StyledDetailPage",
12
- componentId: "core-12_50_1__sc-cytnlo-0"
12
+ componentId: "core-12_52_0__sc-cytnlo-0"
13
13
  })(["background-color:", ";height:100%;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:space-between;"], colors.gray96);
14
14
  export var StyledDetailPageBody = /*#__PURE__*/styled.div.withConfig({
15
15
  displayName: "StyledDetailPageBody",
16
- componentId: "core-12_50_1__sc-cytnlo-1"
16
+ componentId: "core-12_52_0__sc-cytnlo-1"
17
17
  })(["padding-bottom:", "px;> ", "{margin-top:", "px;}"], spacing.xl, StyledRequiredContainer, spacing.lg);
18
18
  export var StyledDetailPageFooterNotation = /*#__PURE__*/styled.div.withConfig({
19
19
  displayName: "StyledDetailPageFooterNotation",
20
- componentId: "core-12_50_1__sc-cytnlo-2"
20
+ componentId: "core-12_52_0__sc-cytnlo-2"
21
21
  })(["flex-grow:1;z-index:1;"]);
22
22
  export var StyledDetailPageFooter = /*#__PURE__*/styled(Page.Footer).withConfig({
23
23
  displayName: "StyledDetailPageFooter",
24
- componentId: "core-12_50_1__sc-cytnlo-3"
24
+ componentId: "core-12_52_0__sc-cytnlo-3"
25
25
  })(["display:flex;padding:", "px 0;background-color:", ";justify-content:center;"], spacing.lg, colors.white);
26
26
  export var StyledDetailPageFooterActions = /*#__PURE__*/styled(Box).withConfig({
27
27
  displayName: "StyledDetailPageFooterActions",
28
- componentId: "core-12_50_1__sc-cytnlo-4"
28
+ componentId: "core-12_52_0__sc-cytnlo-4"
29
29
  })(["", ""], getActions());
30
30
  var maxFooterContentWidth = 1920;
31
31
  export var StyledDetailPageFooterContent = /*#__PURE__*/styled.div.withConfig({
32
32
  displayName: "StyledDetailPageFooterContent",
33
- componentId: "core-12_50_1__sc-cytnlo-5"
33
+ componentId: "core-12_52_0__sc-cytnlo-5"
34
34
  })(["width:100%;align-items:center;display:flex;justify-content:flex-end;padding:0 ", "px;max-width:", "px;"], spacing.xl, maxFooterContentWidth);
35
35
  var detailPageCardBorderRadius = 8;
36
36
  export var StyledDetailPageCard = /*#__PURE__*/styled(Card).withConfig({
37
37
  displayName: "StyledDetailPageCard",
38
- componentId: "core-12_50_1__sc-cytnlo-6"
38
+ componentId: "core-12_52_0__sc-cytnlo-6"
39
39
  })(["width:100%;border-radius:", "px;margin-top:", "px;margin-bottom:", "px;& + &{margin-top:", "px;}&:first-child{margin-top:0;}&:last-child{margin-bottom:", "px;}& > ", "{padding:", "px ", "px 0 ", "px;max-width:100%;&:empty{padding:0;}}& > ", " + ", " > ", "{border-top:0;}> .", ":first-child + .", ",> ", " + .", " + .", "{margin-top:", "px;}"], detailPageCardBorderRadius, spacing.lg, spacing.sm, spacing.sm, spacing.lg, StyledPageBanner, spacing.lg, spacing.lg, spacing.lg, StyledPageBanner, StyledSection, StyledSectionInner, sectionClassnames.levelAnonymous, sectionClassnames.level(2), StyledPageBanner, sectionClassnames.levelAnonymous, sectionClassnames.level(2), spacing.xxl * -1);
40
40
  //# sourceMappingURL=DetailPage.styles.js.map
@@ -5,15 +5,15 @@ import { Card } from '../Card/Card';
5
5
  import { Spinner } from '../Spinner/Spinner';
6
6
  export var StyledDropdownMenu = /*#__PURE__*/styled(Card).withConfig({
7
7
  displayName: "StyledDropdownMenu",
8
- componentId: "core-12_50_1__sc-ufsy2q-0"
8
+ componentId: "core-12_52_0__sc-ufsy2q-0"
9
9
  })(["display:flex;max-height:40vh;max-width:248px;min-width:inherit;"]);
10
10
  export var StyledDropdownSpinner = /*#__PURE__*/styled(Spinner).withConfig({
11
11
  displayName: "StyledDropdownSpinner",
12
- componentId: "core-12_50_1__sc-ufsy2q-1"
12
+ componentId: "core-12_52_0__sc-ufsy2q-1"
13
13
  })(["margin:0 6px;"]);
14
14
  export var StyledDropdownButton = /*#__PURE__*/styled(Button).withConfig({
15
15
  displayName: "StyledDropdownButton",
16
- componentId: "core-12_50_1__sc-ufsy2q-2"
16
+ componentId: "core-12_52_0__sc-ufsy2q-2"
17
17
  })(["pointer-events:", ";", ""], function (_ref) {
18
18
  var disabled = _ref.disabled,
19
19
  $loading = _ref.$loading;
@@ -8,6 +8,7 @@ export declare function useDropdownFlyout({ flyoutOptions, onClick: _onClick, on
8
8
  flyoutOptions: FlyoutOption[];
9
9
  }): {
10
10
  isFocused: boolean;
11
+ isFocusVisible: (option: FlyoutOption) => boolean;
11
12
  isMouseOver: boolean;
12
13
  isOpen: boolean;
13
14
  options: FlyoutOption[];
@@ -32,6 +33,7 @@ export declare const DropdownFlyoutContext: React.Context<{
32
33
  collapse: (option: FlyoutOption) => void;
33
34
  optionRenderer: (option: DropdownOption) => React.ReactNode;
34
35
  isExpanded: (option: FlyoutOption) => boolean;
36
+ isFocusVisible: (option: FlyoutOption) => boolean;
35
37
  isHighlighted: (option: FlyoutOption) => boolean;
36
38
  }>;
37
39
  export declare const useDropdownFlyoutContext: () => {
@@ -40,5 +42,6 @@ export declare const useDropdownFlyoutContext: () => {
40
42
  collapse: (option: FlyoutOption) => void;
41
43
  optionRenderer: (option: DropdownOption) => React.ReactNode;
42
44
  isExpanded: (option: FlyoutOption) => boolean;
45
+ isFocusVisible: (option: FlyoutOption) => boolean;
43
46
  isHighlighted: (option: FlyoutOption) => boolean;
44
47
  };
@@ -59,12 +59,17 @@ function reducer(state, action) {
59
59
  });
60
60
  case 'setMouseOver':
61
61
  return _objectSpread(_objectSpread({}, state), {}, {
62
- isMouseOver: action.isMouseOver
62
+ isMouseOver: action.isMouseOver,
63
+ keyboardNavigated: action.isMouseOver ? false : state.keyboardNavigated
63
64
  });
64
65
  case 'setFocused':
65
66
  return _objectSpread(_objectSpread({}, state), {}, {
66
67
  isFocused: action.isFocused
67
68
  });
69
+ case 'setKeyboardNavigated':
70
+ return _objectSpread(_objectSpread({}, state), {}, {
71
+ keyboardNavigated: true
72
+ });
68
73
  case 'updateOptions':
69
74
  return _objectSpread(_objectSpread({}, state), {}, {
70
75
  options: action.options
@@ -116,7 +121,8 @@ export function useDropdownFlyout(_ref) {
116
121
  highlighted: getFirst(flyoutOptions),
117
122
  isMouseOver: false,
118
123
  isFocused: false,
119
- isOpen: false
124
+ isOpen: false,
125
+ keyboardNavigated: false
120
126
  }),
121
127
  _React$useReducer2 = _slicedToArray(_React$useReducer, 2),
122
128
  _React$useReducer2$ = _React$useReducer2[0],
@@ -126,6 +132,7 @@ export function useDropdownFlyout(_ref) {
126
132
  isOpen = _React$useReducer2$.isOpen,
127
133
  isMouseOver = _React$useReducer2$.isMouseOver,
128
134
  isFocused = _React$useReducer2$.isFocused,
135
+ keyboardNavigated = _React$useReducer2$.keyboardNavigated,
129
136
  dispatch = _React$useReducer2[1];
130
137
  var setMouseOver = React.useCallback(function (isMouseOver) {
131
138
  return dispatch({
@@ -149,6 +156,13 @@ export function useDropdownFlyout(_ref) {
149
156
  });
150
157
  return (isMouseOver || isFocused) && isCorrectId;
151
158
  };
159
+ var isFocusVisible = function isFocusVisible(option) {
160
+ var parentIds = collectParentIds(options, highlighted.id);
161
+ var isCorrectId = option.id === highlighted.id || parentIds.some(function (id) {
162
+ return id === option.id;
163
+ });
164
+ return keyboardNavigated && isCorrectId;
165
+ };
152
166
  var findOptionById = React.useCallback(function (id) {
153
167
  return findById(options, id);
154
168
  }, [options]);
@@ -232,9 +246,15 @@ export function useDropdownFlyout(_ref) {
232
246
  case 'Enter':
233
247
  e.preventDefault();
234
248
  if (!isOpen && isFocused) {
249
+ dispatch({
250
+ type: 'setKeyboardNavigated'
251
+ });
235
252
  openDropdown();
236
253
  } else {
237
254
  if (hasChildren(highlighted.origin)) {
255
+ dispatch({
256
+ type: 'setKeyboardNavigated'
257
+ });
238
258
  traversingHighlight('children');
239
259
  } else {
240
260
  onClick(highlighted);
@@ -259,11 +279,17 @@ export function useDropdownFlyout(_ref) {
259
279
  case 'ArrowDown':
260
280
  case 'Down':
261
281
  e.preventDefault();
282
+ dispatch({
283
+ type: 'setKeyboardNavigated'
284
+ });
262
285
  traversingHighlight('next');
263
286
  break;
264
287
  case 'ArrowUp':
265
288
  case 'Up':
266
289
  e.preventDefault();
290
+ dispatch({
291
+ type: 'setKeyboardNavigated'
292
+ });
267
293
  traversingHighlight('prev');
268
294
  break;
269
295
  }
@@ -283,6 +309,7 @@ export function useDropdownFlyout(_ref) {
283
309
  }, [flyoutOptions]);
284
310
  return {
285
311
  isFocused: isFocused,
312
+ isFocusVisible: isFocusVisible,
286
313
  isMouseOver: isMouseOver,
287
314
  isOpen: isOpen,
288
315
  options: options,
@@ -312,6 +339,7 @@ export var DropdownFlyoutContext = /*#__PURE__*/React.createContext({
312
339
  collapse: noop,
313
340
  optionRenderer: defaultOptionRenderer,
314
341
  isExpanded: returnFalse,
342
+ isFocusVisible: returnFalse,
315
343
  isHighlighted: returnFalse
316
344
  });
317
345
  export var useDropdownFlyoutContext = function useDropdownFlyoutContext() {
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownFlyout.helpers.js","names":["React","ulid","StyledDropdownFlyoutExpandIcon","StyledDropdownFlyoutLabel","rootId","noop","returnFalse","getFirst","arr","isRootOption","optionId","hasChildren","option","Array","isArray","children","reducer","state","action","type","_objectSpread","highlighted","expanded","concat","_toConsumableArray","collectParentIds","options","id","isOpen","isMouseOver","isFocused","findById","initialValue","arguments","length","undefined","reduce","result","current","transformOption","parentId","acc","updatedOption","origin","useDropdownFlyout","_ref","flyoutOptions","_ref$onClick","onClick","_onClick","_onKeyDown","onKeyDown","_React$useReducer","useReducer","_React$useReducer2","_slicedToArray","_React$useReducer2$","dispatch","setMouseOver","useCallback","setFocused","isExpanded","includes","isHighlighted","parentIds","isCorrectId","some","findOptionById","expand","collapse","highlight","traversingHighlight","item","tier","optionIndex","findIndex","nextIndex","prevIndex","parentOption","closeDropdown","closeSelectedDropdown","e","composedPath","node","_dataset","dataset","flyout","openDropdown","key","preventDefault","_e$stopPropagation","stopPropagation","call","_e$stopPropagation2","useEffect","defaultOptionRenderer","createElement","Fragment","label","DropdownFlyoutContext","createContext","optionRenderer","useDropdownFlyoutContext","useContext"],"sources":["../../src/DropdownFlyout/DropdownFlyout.helpers.tsx"],"sourcesContent":["import React from 'react'\nimport { ulid } from 'ulid'\nimport {\n StyledDropdownFlyoutExpandIcon,\n StyledDropdownFlyoutLabel,\n} from './DropdownFlyout.styles'\nimport type {\n Action,\n DropdownFlyoutProps,\n DropdownOption,\n FlyoutOption,\n FlyoutOptionId,\n State,\n} from './DropdownFlyout.types'\nimport { rootId } from './DropdownFlyout.types'\n\nexport function noop() {}\n\nexport function returnFalse() {\n return false\n}\n\nfunction getFirst<T extends any>(arr: T[]) {\n return arr[0]\n}\nfunction isRootOption(optionId: FlyoutOptionId) {\n return optionId === rootId\n}\n\nexport function hasChildren(option: DropdownOption) {\n return Array.isArray(option.children)\n}\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'highlight':\n return {\n ...state,\n highlighted: action.option,\n }\n case 'expand':\n return {\n ...state,\n highlighted: action.option,\n expanded: [\n ...collectParentIds(state.options, action.option.id),\n action.option.id,\n ],\n }\n case 'collapse':\n return {\n ...state,\n highlighted: action.option,\n expanded: collectParentIds(state.options, action.option.id),\n }\n case 'close':\n return {\n ...state,\n expanded: [],\n highlighted: getFirst(state.options),\n isOpen: false,\n }\n case 'open':\n return {\n ...state,\n isOpen: true,\n }\n case 'setMouseOver':\n return {\n ...state,\n isMouseOver: action.isMouseOver,\n }\n case 'setFocused':\n return {\n ...state,\n isFocused: action.isFocused,\n }\n case 'updateOptions':\n return {\n ...state,\n options: action.options,\n }\n default:\n return state\n }\n}\n\nfunction findById(\n options: FlyoutOption[],\n optionId: FlyoutOption['id'],\n initialValue: FlyoutOption = getFirst(options)\n): FlyoutOption {\n return options.reduce((result, current) => {\n if (current.id === optionId) {\n return current\n }\n\n if (current.children) {\n return findById(current.children, optionId, result)\n }\n\n return result\n }, initialValue)\n}\n\nexport function transformOption(\n options: DropdownOption[],\n parentId: FlyoutOption['parentId']\n): FlyoutOption[] {\n return options.reduce<FlyoutOption[]>((acc, option) => {\n const id = ulid()\n const updatedOption = {\n id,\n parentId,\n origin: option,\n ...(Array.isArray(option.children) && {\n children: transformOption(option.children, id),\n }),\n }\n\n return [...acc, updatedOption]\n }, [])\n}\n\nfunction collectParentIds(\n options: FlyoutOption[],\n optionId: FlyoutOption['id']\n): FlyoutOption['id'][] {\n const option = findById(options, optionId)\n\n if (!isRootOption(option.parentId)) {\n return [...collectParentIds(options, option.parentId), option.parentId]\n }\n return [option.parentId]\n}\n\nexport function useDropdownFlyout({\n flyoutOptions,\n onClick: _onClick = noop,\n onKeyDown: _onKeyDown,\n}: Pick<DropdownFlyoutProps, 'onClick' | 'onKeyDown'> & {\n flyoutOptions: FlyoutOption[]\n}) {\n const [\n { options, expanded, highlighted, isOpen, isMouseOver, isFocused },\n dispatch,\n ] = React.useReducer(reducer, {\n options: flyoutOptions,\n expanded: [],\n highlighted: getFirst(flyoutOptions),\n isMouseOver: false,\n isFocused: false,\n isOpen: false,\n })\n\n const setMouseOver = React.useCallback(\n (isMouseOver: boolean) => dispatch({ type: 'setMouseOver', isMouseOver }),\n []\n )\n\n const setFocused = React.useCallback(\n (isFocused: boolean) => dispatch({ type: 'setFocused', isFocused }),\n []\n )\n\n const isExpanded = (option: FlyoutOption) => expanded.includes(option.id)\n\n const isHighlighted = (option: FlyoutOption): boolean => {\n const parentIds = collectParentIds(options, highlighted.id)\n const isCorrectId =\n option.id === highlighted.id || parentIds.some((id) => id === option.id)\n return (isMouseOver || isFocused) && isCorrectId\n }\n\n const findOptionById = React.useCallback(\n (id: FlyoutOptionId) => findById(options, id),\n [options]\n )\n\n const expand = React.useCallback(\n (option: FlyoutOption) =>\n dispatch({\n type: 'expand',\n option,\n }),\n []\n )\n\n const collapse = React.useCallback(\n (option: FlyoutOption) =>\n dispatch({\n type: 'collapse',\n option,\n }),\n []\n )\n\n const highlight = React.useCallback(\n (option: FlyoutOption) =>\n dispatch({\n type: 'highlight',\n option,\n }),\n []\n )\n\n const traversingHighlight = React.useCallback(\n (item: 'next' | 'prev' | 'children' | 'parent') => {\n const tier = isRootOption(highlighted.parentId)\n ? options\n : findOptionById(highlighted.parentId).children || []\n const optionIndex = tier.findIndex((item) => item.id === highlighted.id)\n\n switch (item) {\n case 'next':\n const nextIndex = optionIndex + 1 >= tier.length ? 0 : optionIndex + 1\n\n highlight(tier[nextIndex])\n break\n case 'prev':\n const prevIndex =\n optionIndex - 1 < 0 ? tier.length - 1 : optionIndex - 1\n\n highlight(tier[prevIndex])\n break\n case 'children':\n if (Array.isArray(highlighted.children)) {\n expand(highlighted)\n\n highlight(getFirst(highlighted.children))\n }\n break\n case 'parent':\n if (!isRootOption(highlighted.parentId)) {\n const parentOption = findOptionById(highlighted.parentId)\n collapse(parentOption)\n }\n break\n default:\n return\n }\n },\n [options, findOptionById, collapse, highlighted, expand, highlight]\n )\n\n const closeDropdown = React.useCallback(() => {\n dispatch({ type: 'close' })\n }, [])\n\n const closeSelectedDropdown = React.useCallback(\n (e: Event | React.FocusEvent) => {\n if (\n e &&\n (e.type === 'click' || e.type === 'mouseup') &&\n !(e as MouseEvent)\n .composedPath()\n .some((node) => (node as HTMLElement).dataset?.flyout)\n ) {\n dispatch({ type: 'close' })\n }\n },\n []\n )\n\n const openDropdown = React.useCallback(() => {\n dispatch({ type: 'open' })\n }, [])\n\n const onClick = React.useCallback(\n (option: FlyoutOption) => {\n if (!hasChildren(option.origin)) {\n _onClick(option.origin)\n closeDropdown()\n }\n },\n [_onClick, closeDropdown]\n )\n\n const onKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLDivElement>) => {\n const { key } = e\n\n switch (key) {\n case 'Enter':\n e.preventDefault()\n if (!isOpen && isFocused) {\n openDropdown()\n } else {\n if (hasChildren(highlighted.origin)) {\n traversingHighlight('children')\n } else {\n onClick(highlighted)\n }\n }\n break\n case 'Escape':\n case 'Esc':\n e.preventDefault()\n if (isRootOption(highlighted.parentId)) {\n if (isOpen) {\n e.stopPropagation?.()\n }\n closeDropdown()\n } else {\n e.stopPropagation?.()\n traversingHighlight('parent')\n }\n break\n case 'ArrowDown':\n case 'Down':\n e.preventDefault()\n traversingHighlight('next')\n break\n case 'ArrowUp':\n case 'Up':\n e.preventDefault()\n traversingHighlight('prev')\n break\n }\n _onKeyDown?.(e)\n },\n [\n closeDropdown,\n openDropdown,\n traversingHighlight,\n highlighted,\n isOpen,\n isFocused,\n onClick,\n _onKeyDown,\n ]\n )\n // There was an issue that was fixed in scope of UISP-215 https://procoretech.atlassian.net/browse/UISP-215\n // UseEffect is necessary for updating state in UseReducer because props don't automatically update state. (In this case: property \"options\")\n React.useEffect(() => {\n dispatch({ type: 'updateOptions', options: flyoutOptions })\n dispatch({ type: 'highlight', option: getFirst(flyoutOptions) })\n }, [flyoutOptions])\n\n return {\n isFocused,\n isMouseOver,\n isOpen,\n options,\n expanded,\n highlighted,\n expand,\n collapse,\n isHighlighted,\n isExpanded,\n closeDropdown,\n closeSelectedDropdown,\n openDropdown,\n onKeyDown,\n onClick,\n setMouseOver,\n setFocused,\n }\n}\n\nexport function defaultOptionRenderer(option: DropdownOption) {\n return (\n <>\n <StyledDropdownFlyoutLabel>{option.label}</StyledDropdownFlyoutLabel>\n {hasChildren(option) && (\n <StyledDropdownFlyoutExpandIcon data-qa=\"core-dropdown-flyout-option-expand-icon\" />\n )}\n </>\n )\n}\n\nexport const DropdownFlyoutContext = React.createContext<{\n onClick: (option: FlyoutOption) => void\n\n expand: (option: FlyoutOption) => void\n collapse: (option: FlyoutOption) => void\n optionRenderer: (option: DropdownOption) => React.ReactNode\n\n isExpanded: (option: FlyoutOption) => boolean\n isHighlighted: (option: FlyoutOption) => boolean\n}>({\n onClick: noop,\n\n expand: noop,\n collapse: noop,\n optionRenderer: defaultOptionRenderer,\n\n isExpanded: returnFalse,\n isHighlighted: returnFalse,\n})\n\nexport const useDropdownFlyoutContext = () =>\n React.useContext(DropdownFlyoutContext)\n"],"mappings":"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"}
1
+ {"version":3,"file":"DropdownFlyout.helpers.js","names":["React","ulid","StyledDropdownFlyoutExpandIcon","StyledDropdownFlyoutLabel","rootId","noop","returnFalse","getFirst","arr","isRootOption","optionId","hasChildren","option","Array","isArray","children","reducer","state","action","type","_objectSpread","highlighted","expanded","concat","_toConsumableArray","collectParentIds","options","id","isOpen","isMouseOver","keyboardNavigated","isFocused","findById","initialValue","arguments","length","undefined","reduce","result","current","transformOption","parentId","acc","updatedOption","origin","useDropdownFlyout","_ref","flyoutOptions","_ref$onClick","onClick","_onClick","_onKeyDown","onKeyDown","_React$useReducer","useReducer","_React$useReducer2","_slicedToArray","_React$useReducer2$","dispatch","setMouseOver","useCallback","setFocused","isExpanded","includes","isHighlighted","parentIds","isCorrectId","some","isFocusVisible","findOptionById","expand","collapse","highlight","traversingHighlight","item","tier","optionIndex","findIndex","nextIndex","prevIndex","parentOption","closeDropdown","closeSelectedDropdown","e","composedPath","node","_dataset","dataset","flyout","openDropdown","key","preventDefault","_e$stopPropagation","stopPropagation","call","_e$stopPropagation2","useEffect","defaultOptionRenderer","createElement","Fragment","label","DropdownFlyoutContext","createContext","optionRenderer","useDropdownFlyoutContext","useContext"],"sources":["../../src/DropdownFlyout/DropdownFlyout.helpers.tsx"],"sourcesContent":["import React from 'react'\nimport { ulid } from 'ulid'\nimport {\n StyledDropdownFlyoutExpandIcon,\n StyledDropdownFlyoutLabel,\n} from './DropdownFlyout.styles'\nimport type {\n Action,\n DropdownFlyoutProps,\n DropdownOption,\n FlyoutOption,\n FlyoutOptionId,\n State,\n} from './DropdownFlyout.types'\nimport { rootId } from './DropdownFlyout.types'\n\nexport function noop() {}\n\nexport function returnFalse() {\n return false\n}\n\nfunction getFirst<T extends any>(arr: T[]) {\n return arr[0]\n}\nfunction isRootOption(optionId: FlyoutOptionId) {\n return optionId === rootId\n}\n\nexport function hasChildren(option: DropdownOption) {\n return Array.isArray(option.children)\n}\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'highlight':\n return {\n ...state,\n highlighted: action.option,\n }\n case 'expand':\n return {\n ...state,\n highlighted: action.option,\n expanded: [\n ...collectParentIds(state.options, action.option.id),\n action.option.id,\n ],\n }\n case 'collapse':\n return {\n ...state,\n highlighted: action.option,\n expanded: collectParentIds(state.options, action.option.id),\n }\n case 'close':\n return {\n ...state,\n expanded: [],\n highlighted: getFirst(state.options),\n isOpen: false,\n }\n case 'open':\n return {\n ...state,\n isOpen: true,\n }\n case 'setMouseOver':\n return {\n ...state,\n isMouseOver: action.isMouseOver,\n keyboardNavigated: action.isMouseOver ? false : state.keyboardNavigated,\n }\n case 'setFocused':\n return {\n ...state,\n isFocused: action.isFocused,\n }\n case 'setKeyboardNavigated':\n return {\n ...state,\n keyboardNavigated: true,\n }\n case 'updateOptions':\n return {\n ...state,\n options: action.options,\n }\n default:\n return state\n }\n}\n\nfunction findById(\n options: FlyoutOption[],\n optionId: FlyoutOption['id'],\n initialValue: FlyoutOption = getFirst(options)\n): FlyoutOption {\n return options.reduce((result, current) => {\n if (current.id === optionId) {\n return current\n }\n\n if (current.children) {\n return findById(current.children, optionId, result)\n }\n\n return result\n }, initialValue)\n}\n\nexport function transformOption(\n options: DropdownOption[],\n parentId: FlyoutOption['parentId']\n): FlyoutOption[] {\n return options.reduce<FlyoutOption[]>((acc, option) => {\n const id = ulid()\n const updatedOption = {\n id,\n parentId,\n origin: option,\n ...(Array.isArray(option.children) && {\n children: transformOption(option.children, id),\n }),\n }\n\n return [...acc, updatedOption]\n }, [])\n}\n\nfunction collectParentIds(\n options: FlyoutOption[],\n optionId: FlyoutOption['id']\n): FlyoutOption['id'][] {\n const option = findById(options, optionId)\n\n if (!isRootOption(option.parentId)) {\n return [...collectParentIds(options, option.parentId), option.parentId]\n }\n return [option.parentId]\n}\n\nexport function useDropdownFlyout({\n flyoutOptions,\n onClick: _onClick = noop,\n onKeyDown: _onKeyDown,\n}: Pick<DropdownFlyoutProps, 'onClick' | 'onKeyDown'> & {\n flyoutOptions: FlyoutOption[]\n}) {\n const [\n {\n options,\n expanded,\n highlighted,\n isOpen,\n isMouseOver,\n isFocused,\n keyboardNavigated,\n },\n dispatch,\n ] = React.useReducer(reducer, {\n options: flyoutOptions,\n expanded: [],\n highlighted: getFirst(flyoutOptions),\n isMouseOver: false,\n isFocused: false,\n isOpen: false,\n keyboardNavigated: false,\n })\n\n const setMouseOver = React.useCallback(\n (isMouseOver: boolean) => dispatch({ type: 'setMouseOver', isMouseOver }),\n []\n )\n\n const setFocused = React.useCallback(\n (isFocused: boolean) => dispatch({ type: 'setFocused', isFocused }),\n []\n )\n\n const isExpanded = (option: FlyoutOption) => expanded.includes(option.id)\n\n const isHighlighted = (option: FlyoutOption): boolean => {\n const parentIds = collectParentIds(options, highlighted.id)\n const isCorrectId =\n option.id === highlighted.id || parentIds.some((id) => id === option.id)\n return (isMouseOver || isFocused) && isCorrectId\n }\n\n const isFocusVisible = (option: FlyoutOption): boolean => {\n const parentIds = collectParentIds(options, highlighted.id)\n const isCorrectId =\n option.id === highlighted.id || parentIds.some((id) => id === option.id)\n return keyboardNavigated && isCorrectId\n }\n\n const findOptionById = React.useCallback(\n (id: FlyoutOptionId) => findById(options, id),\n [options]\n )\n\n const expand = React.useCallback(\n (option: FlyoutOption) =>\n dispatch({\n type: 'expand',\n option,\n }),\n []\n )\n\n const collapse = React.useCallback(\n (option: FlyoutOption) =>\n dispatch({\n type: 'collapse',\n option,\n }),\n []\n )\n\n const highlight = React.useCallback(\n (option: FlyoutOption) =>\n dispatch({\n type: 'highlight',\n option,\n }),\n []\n )\n\n const traversingHighlight = React.useCallback(\n (item: 'next' | 'prev' | 'children' | 'parent') => {\n const tier = isRootOption(highlighted.parentId)\n ? options\n : findOptionById(highlighted.parentId).children || []\n const optionIndex = tier.findIndex((item) => item.id === highlighted.id)\n\n switch (item) {\n case 'next':\n const nextIndex = optionIndex + 1 >= tier.length ? 0 : optionIndex + 1\n\n highlight(tier[nextIndex])\n break\n case 'prev':\n const prevIndex =\n optionIndex - 1 < 0 ? tier.length - 1 : optionIndex - 1\n\n highlight(tier[prevIndex])\n break\n case 'children':\n if (Array.isArray(highlighted.children)) {\n expand(highlighted)\n\n highlight(getFirst(highlighted.children))\n }\n break\n case 'parent':\n if (!isRootOption(highlighted.parentId)) {\n const parentOption = findOptionById(highlighted.parentId)\n collapse(parentOption)\n }\n break\n default:\n return\n }\n },\n [options, findOptionById, collapse, highlighted, expand, highlight]\n )\n\n const closeDropdown = React.useCallback(() => {\n dispatch({ type: 'close' })\n }, [])\n\n const closeSelectedDropdown = React.useCallback(\n (e: Event | React.FocusEvent) => {\n if (\n e &&\n (e.type === 'click' || e.type === 'mouseup') &&\n !(e as MouseEvent)\n .composedPath()\n .some((node) => (node as HTMLElement).dataset?.flyout)\n ) {\n dispatch({ type: 'close' })\n }\n },\n []\n )\n\n const openDropdown = React.useCallback(() => {\n dispatch({ type: 'open' })\n }, [])\n\n const onClick = React.useCallback(\n (option: FlyoutOption) => {\n if (!hasChildren(option.origin)) {\n _onClick(option.origin)\n closeDropdown()\n }\n },\n [_onClick, closeDropdown]\n )\n\n const onKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLDivElement>) => {\n const { key } = e\n\n switch (key) {\n case 'Enter':\n e.preventDefault()\n if (!isOpen && isFocused) {\n dispatch({ type: 'setKeyboardNavigated' })\n openDropdown()\n } else {\n if (hasChildren(highlighted.origin)) {\n dispatch({ type: 'setKeyboardNavigated' })\n traversingHighlight('children')\n } else {\n onClick(highlighted)\n }\n }\n break\n case 'Escape':\n case 'Esc':\n e.preventDefault()\n if (isRootOption(highlighted.parentId)) {\n if (isOpen) {\n e.stopPropagation?.()\n }\n closeDropdown()\n } else {\n e.stopPropagation?.()\n traversingHighlight('parent')\n }\n break\n case 'ArrowDown':\n case 'Down':\n e.preventDefault()\n dispatch({ type: 'setKeyboardNavigated' })\n traversingHighlight('next')\n break\n case 'ArrowUp':\n case 'Up':\n e.preventDefault()\n dispatch({ type: 'setKeyboardNavigated' })\n traversingHighlight('prev')\n break\n }\n _onKeyDown?.(e)\n },\n [\n closeDropdown,\n openDropdown,\n traversingHighlight,\n highlighted,\n isOpen,\n isFocused,\n onClick,\n _onKeyDown,\n ]\n )\n // There was an issue that was fixed in scope of UISP-215 https://procoretech.atlassian.net/browse/UISP-215\n // UseEffect is necessary for updating state in UseReducer because props don't automatically update state. (In this case: property \"options\")\n React.useEffect(() => {\n dispatch({ type: 'updateOptions', options: flyoutOptions })\n dispatch({ type: 'highlight', option: getFirst(flyoutOptions) })\n }, [flyoutOptions])\n\n return {\n isFocused,\n isFocusVisible,\n isMouseOver,\n isOpen,\n options,\n expanded,\n highlighted,\n expand,\n collapse,\n isHighlighted,\n isExpanded,\n closeDropdown,\n closeSelectedDropdown,\n openDropdown,\n onKeyDown,\n onClick,\n setMouseOver,\n setFocused,\n }\n}\n\nexport function defaultOptionRenderer(option: DropdownOption) {\n return (\n <>\n <StyledDropdownFlyoutLabel>{option.label}</StyledDropdownFlyoutLabel>\n {hasChildren(option) && (\n <StyledDropdownFlyoutExpandIcon data-qa=\"core-dropdown-flyout-option-expand-icon\" />\n )}\n </>\n )\n}\n\nexport const DropdownFlyoutContext = React.createContext<{\n onClick: (option: FlyoutOption) => void\n\n expand: (option: FlyoutOption) => void\n collapse: (option: FlyoutOption) => void\n optionRenderer: (option: DropdownOption) => React.ReactNode\n\n isExpanded: (option: FlyoutOption) => boolean\n isFocusVisible: (option: FlyoutOption) => boolean\n isHighlighted: (option: FlyoutOption) => boolean\n}>({\n onClick: noop,\n\n expand: noop,\n collapse: noop,\n optionRenderer: defaultOptionRenderer,\n\n isExpanded: returnFalse,\n isFocusVisible: returnFalse,\n isHighlighted: returnFalse,\n})\n\nexport const useDropdownFlyoutContext = () =>\n React.useContext(DropdownFlyoutContext)\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- var _excluded = ["option", "highlighted", "expanded", "optionRenderer"],
1
+ var _excluded = ["option", "focusVisible", "highlighted", "expanded", "optionRenderer"],
2
2
  _excluded2 = ["children", "icon"],
3
3
  _excluded3 = ["disabled", "icon", "label", "loading", "options", "onClick", "optionRenderer", "children", "placement", "onKeyDown", "onFocus", "onBlur", "onMouseDown", "onMouseEnter", "onMouseLeave", "size", "variant"];
4
4
  function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
@@ -24,6 +24,7 @@ import { rootId } from './DropdownFlyout.types';
24
24
  import { useDropdownFlyoutOverlay } from './useDropdownFlyoutOverlay';
25
25
  export var FlyoutCaption = /*#__PURE__*/React.forwardRef(function FlyoutCaption(_ref, ref) {
26
26
  var option = _ref.option,
27
+ focusVisible = _ref.focusVisible,
27
28
  highlighted = _ref.highlighted,
28
29
  expanded = _ref.expanded,
29
30
  optionRenderer = _ref.optionRenderer,
@@ -32,6 +33,7 @@ export var FlyoutCaption = /*#__PURE__*/React.forwardRef(function FlyoutCaption(
32
33
  return /*#__PURE__*/React.createElement(StyledDropdownFlyoutItem, _extends({}, props, {
33
34
  ref: ref,
34
35
  "aria-expanded": expanded,
36
+ "data-focus-visible": focusVisible,
35
37
  "data-highlighted": highlighted,
36
38
  "data-flyout": true
37
39
  }), renderedOption);
@@ -41,6 +43,7 @@ export function FlyoutItem(_ref2) {
41
43
  var option = _ref2.option;
42
44
  var overlayElRef = React.useRef(null);
43
45
  var _useDropdownFlyoutCon = useDropdownFlyoutContext(),
46
+ isFocusVisible = _useDropdownFlyoutCon.isFocusVisible,
44
47
  isHighlighted = _useDropdownFlyoutCon.isHighlighted,
45
48
  isExpanded = _useDropdownFlyoutCon.isExpanded,
46
49
  _onClick = _useDropdownFlyoutCon.onClick,
@@ -68,6 +71,7 @@ export function FlyoutItem(_ref2) {
68
71
  option: option.origin,
69
72
  onClick: onClick,
70
73
  optionRenderer: optionRenderer,
74
+ focusVisible: isFocusVisible(option),
71
75
  highlighted: isHighlighted(option),
72
76
  expanded: hasChildren(option.origin) ? isExpanded(option) : undefined,
73
77
  onMouseEnter: onMouseEnter,
@@ -183,6 +187,7 @@ export var DropdownFlyout = /*#__PURE__*/React.forwardRef(function DropdownFlyou
183
187
  setMouseOver = _useDropdownFlyout.setMouseOver,
184
188
  setFocused = _useDropdownFlyout.setFocused,
185
189
  isExpanded = _useDropdownFlyout.isExpanded,
190
+ isFocusVisible = _useDropdownFlyout.isFocusVisible,
186
191
  isHighlighted = _useDropdownFlyout.isHighlighted,
187
192
  closeDropdown = _useDropdownFlyout.closeDropdown;
188
193
  useClickOutside({
@@ -271,6 +276,7 @@ export var DropdownFlyout = /*#__PURE__*/React.forwardRef(function DropdownFlyou
271
276
  collapse: collapse,
272
277
  onClick: onClick,
273
278
  isExpanded: isExpanded,
279
+ isFocusVisible: isFocusVisible,
274
280
  isHighlighted: isHighlighted,
275
281
  optionRenderer: optionRenderer
276
282
  }