@procore/core-react 12.41.0 → 12.42.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 (215) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/AnchorNavigation/AnchorNavigation.styles.js +3 -3
  3. package/dist/Avatar/Avatar.styles.js +5 -5
  4. package/dist/AvatarStack/AvatarStack.styles.js +7 -7
  5. package/dist/Badge/Badge.styles.js +2 -2
  6. package/dist/BadgePill/BadgePill.styles.js +4 -4
  7. package/dist/Banner/Banner.styles.js +10 -10
  8. package/dist/Box/Box.styles.js +1 -1
  9. package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
  10. package/dist/Button/Button.styles.js +5 -5
  11. package/dist/Calendar/Calendar.styles.js +9 -9
  12. package/dist/Card/Card.styles.js +1 -1
  13. package/dist/Checkbox/Checkbox.styles.js +6 -6
  14. package/dist/ContactItem/ContactItem.js +7 -3
  15. package/dist/ContactItem/ContactItem.js.map +1 -1
  16. package/dist/ContactItem/ContactItem.styles.js +5 -5
  17. package/dist/Content/Content.styles.js +2 -2
  18. package/dist/DateInput/DateInput.styles.js +6 -6
  19. package/dist/DetailPage/DetailPage.styles.js +7 -7
  20. package/dist/Dropdown/Dropdown.styles.js +3 -3
  21. package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
  22. package/dist/Dropzone/Dropzone.js +1 -1
  23. package/dist/Dropzone/Dropzone.styles.js +9 -9
  24. package/dist/EmptyState/EmptyState.styles.js +6 -6
  25. package/dist/Field/Field.styles.js +3 -3
  26. package/dist/FileList/FileList.styles.js +3 -3
  27. package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
  28. package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
  29. package/dist/FileSelect/FileSelect.styles.js +2 -2
  30. package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
  31. package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
  32. package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
  33. package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
  34. package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
  35. package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
  36. package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
  37. package/dist/FileToken/FileToken.styles.js +6 -6
  38. package/dist/FilterToken/FilterToken.styles.js +5 -5
  39. package/dist/FlexList/FlexList.styles.js +1 -1
  40. package/dist/Form/Form.styles.js +13 -13
  41. package/dist/Form/StyledFormikForm.styles.js +2 -2
  42. package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
  43. package/dist/Grid/Grid.styles.js +2 -2
  44. package/dist/GroupSelect/GroupSelect.styles.js +1 -1
  45. package/dist/Input/Input.styles.js +1 -1
  46. package/dist/Link/Link.styles.js +1 -1
  47. package/dist/ListPage/ListPage.styles.js +8 -8
  48. package/dist/Loader/Loader.styles.js +2 -2
  49. package/dist/MenuImperative/MenuImperative.d.ts +1 -1
  50. package/dist/MenuImperative/MenuImperative.js +126 -34
  51. package/dist/MenuImperative/MenuImperative.js.map +1 -1
  52. package/dist/MenuImperative/MenuImperative.styles.js +15 -15
  53. package/dist/MenuImperative/MenuImperative.styles.js.map +1 -1
  54. package/dist/MenuImperative/MenuImperative.types.d.ts +36 -0
  55. package/dist/MenuImperative/MenuImperative.types.js.map +1 -1
  56. package/dist/MenuImperative/sensors.d.ts +6 -3
  57. package/dist/MenuImperative/sensors.js +42 -34
  58. package/dist/MenuImperative/sensors.js.map +1 -1
  59. package/dist/Modal/Modal.d.ts +4 -0
  60. package/dist/Modal/Modal.js +23 -13
  61. package/dist/Modal/Modal.js.map +1 -1
  62. package/dist/Modal/Modal.styles.js +13 -13
  63. package/dist/Modal/Modal.types.d.ts +28 -5
  64. package/dist/Modal/Modal.types.js.map +1 -1
  65. package/dist/Modal/index.d.ts +1 -1
  66. package/dist/Modal/index.js.map +1 -1
  67. package/dist/MultiSelect/MultiSelect.styles.js +8 -8
  68. package/dist/NextMenu/NextMenu.styles.js +3 -3
  69. package/dist/Notation/Notation.js +1 -1
  70. package/dist/NumberInput/NumberInput.styles.js +7 -7
  71. package/dist/Overlay/OverlayArrow.styles.js +1 -1
  72. package/dist/OverlayTrigger/a11yPresets.d.ts +17 -24
  73. package/dist/OverlayTrigger/a11yPresets.js +29 -27
  74. package/dist/OverlayTrigger/a11yPresets.js.map +1 -1
  75. package/dist/PageLayout/PageLayout.styles.js +16 -16
  76. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
  77. package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
  78. package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
  79. package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
  80. package/dist/Pagination/Pagination.styles.js +5 -5
  81. package/dist/Panel/Panel.styles.js +11 -11
  82. package/dist/Pill/Pill.styles.js +3 -3
  83. package/dist/PillSelect/PillSelect.styles.js +4 -4
  84. package/dist/Popover/Popover.styles.js +2 -2
  85. package/dist/Portal/Portal.styles.js +1 -1
  86. package/dist/ProgressBar/ProgressBar.styles.js +4 -4
  87. package/dist/ProgressBar/ProgressBar.styles.js.map +1 -1
  88. package/dist/RadioButton/RadioButton.styles.js +3 -3
  89. package/dist/Required/Required.styles.js +3 -3
  90. package/dist/Search/Search.styles.js +5 -5
  91. package/dist/Section/Section.styles.js +7 -7
  92. package/dist/SegmentedController/SegmentedController.styles.js +4 -4
  93. package/dist/Select/Select.styles.js +8 -8
  94. package/dist/Semantic/Semantic.styles.js +9 -9
  95. package/dist/Slider/Slider.styles.js +5 -5
  96. package/dist/Spinner/Spinner.styles.js +7 -7
  97. package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
  98. package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
  99. package/dist/SuperSelect/SuperSelect.styles.js +38 -38
  100. package/dist/SuperSelect/useSuperSelect.js +2 -2
  101. package/dist/SuperSelect/useSuperSelect.js.map +1 -1
  102. package/dist/Switch/Switch.styles.js +4 -4
  103. package/dist/Table/Table.styles.js +28 -28
  104. package/dist/TableShelf/TableShelf.styles.js +5 -5
  105. package/dist/Tabs/Tabs.styles.js +15 -15
  106. package/dist/Tearsheet/Tearsheet.js +1 -1
  107. package/dist/Tearsheet/Tearsheet.js.map +1 -1
  108. package/dist/Tearsheet/Tearsheet.styles.js +5 -5
  109. package/dist/Tearsheet/storybook/PageLayoutDemo.js +1 -0
  110. package/dist/Tearsheet/storybook/PageLayoutDemo.js.map +1 -1
  111. package/dist/TextArea/TextArea.styles.js +1 -1
  112. package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
  113. package/dist/Thumbnail/Thumbnail.styles.js +17 -17
  114. package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
  115. package/dist/TieredSelect/TieredSelect.styles.js +9 -9
  116. package/dist/Tile/Tile.styles.js +8 -8
  117. package/dist/Title/Title.styles.js +7 -7
  118. package/dist/Toast/Toast.styles.js +3 -3
  119. package/dist/ToggleButton/ToggleButton.styles.js +1 -1
  120. package/dist/Token/Token.styles.js +3 -3
  121. package/dist/ToolHeader/ToolHeader.styles.js +6 -6
  122. package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
  123. package/dist/Tooltip/Tooltip.styles.js +3 -3
  124. package/dist/Tree/Tree.js +1 -1
  125. package/dist/Tree/Tree.styles.js +10 -10
  126. package/dist/Typeahead/Typeahead.styles.js +3 -3
  127. package/dist/Typography/Typography.styles.js +1 -1
  128. package/dist/Typography/Typography.table.story.js +2 -2
  129. package/dist/_hooks/I18n.d.ts +14 -0
  130. package/dist/_locales/en.json +8 -1
  131. package/dist/_locales/pseudo.json +8 -1
  132. package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
  133. package/dist/_storyHelpers_/components/StoryGrid.js +3 -3
  134. package/dist/_styles/colors.js +1 -3
  135. package/dist/_styles/colors.js.map +1 -1
  136. package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +3 -3
  137. package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
  138. package/dist/_typedoc/AvatarStack/AvatarStack.types.json +25 -25
  139. package/dist/_typedoc/Badge/Badge.types.json +6 -6
  140. package/dist/_typedoc/Banner/Banner.types.json +15 -15
  141. package/dist/_typedoc/Box/Box.types.json +68 -68
  142. package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +10 -10
  143. package/dist/_typedoc/Button/Button.types.json +13 -13
  144. package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
  145. package/dist/_typedoc/Card/Card.types.json +6 -6
  146. package/dist/_typedoc/Checkbox/Checkbox.types.json +8 -8
  147. package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
  148. package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
  149. package/dist/_typedoc/DateSelect/DateSelect.types.json +13 -13
  150. package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
  151. package/dist/_typedoc/Dropdown/Dropdown.types.json +37 -37
  152. package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +31 -31
  153. package/dist/_typedoc/Dropzone/Dropzone.types.json +44 -44
  154. package/dist/_typedoc/EmptyState/EmptyState.types.json +16 -16
  155. package/dist/_typedoc/FileList/FileList.types.json +9 -9
  156. package/dist/_typedoc/FileSelect/FileSelect.types.json +27 -27
  157. package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
  158. package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
  159. package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +9 -9
  160. package/dist/_typedoc/Flex/Flex.types.json +27 -27
  161. package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
  162. package/dist/_typedoc/Form/Form.types.json +760 -760
  163. package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +12 -12
  164. package/dist/_typedoc/Grid/Grid.types.json +8 -8
  165. package/dist/_typedoc/GroupSelect/GroupSelect.types.json +54 -54
  166. package/dist/_typedoc/Input/Input.types.json +2 -2
  167. package/dist/_typedoc/Link/Link.types.json +1 -1
  168. package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
  169. package/dist/_typedoc/Menu/Menu.types.json +62 -62
  170. package/dist/_typedoc/MenuImperative/MenuImperative.types.json +147 -77
  171. package/dist/_typedoc/Modal/Modal.types.json +96 -68
  172. package/dist/_typedoc/MultiSelect/MultiSelect.types.json +33 -33
  173. package/dist/_typedoc/NextTile/NextTile.types.json +32 -32
  174. package/dist/_typedoc/Notation/Notation.types.json +4 -4
  175. package/dist/_typedoc/NumberInput/NumberInput.types.json +48 -48
  176. package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +33 -33
  177. package/dist/_typedoc/PageLayout/PageLayout.types.json +28 -28
  178. package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
  179. package/dist/_typedoc/Panel/Panel.types.json +27 -27
  180. package/dist/_typedoc/Pill/Pill.types.json +2 -2
  181. package/dist/_typedoc/PillSelect/PillSelect.types.json +49 -49
  182. package/dist/_typedoc/Popover/Popover.types.json +15 -15
  183. package/dist/_typedoc/ProgressBar/ProgressBar.types.json +7 -7
  184. package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
  185. package/dist/_typedoc/Required/Required.types.json +5 -5
  186. package/dist/_typedoc/Search/Search.types.json +18 -18
  187. package/dist/_typedoc/Section/Section.types.json +15 -15
  188. package/dist/_typedoc/SegmentedController/SegmentedController.types.json +21 -21
  189. package/dist/_typedoc/Select/Select.types.json +67 -67
  190. package/dist/_typedoc/SettingsPage/SettingsPage.types.json +10 -10
  191. package/dist/_typedoc/Slider/Slider.types.json +6 -6
  192. package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
  193. package/dist/_typedoc/SplitViewCard/SplitViewCard.types.json +14 -14
  194. package/dist/_typedoc/Table/Table.types.json +102 -102
  195. package/dist/_typedoc/Tabs/Tabs.types.json +21 -21
  196. package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
  197. package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
  198. package/dist/_typedoc/TextEditor/TextEditor.types.json +11 -11
  199. package/dist/_typedoc/TextEditorOutput/TextEditorOutput.types.json +4 -4
  200. package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
  201. package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +43 -43
  202. package/dist/_typedoc/TieredSelect/TieredSelect.types.json +29 -29
  203. package/dist/_typedoc/Tile/Tile.types.json +8 -8
  204. package/dist/_typedoc/Title/Title.types.json +1 -1
  205. package/dist/_typedoc/Toast/Toast.types.json +4 -4
  206. package/dist/_typedoc/ToggleButton/ToggleButton.types.json +4 -4
  207. package/dist/_typedoc/Token/Token.types.json +7 -7
  208. package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
  209. package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +8 -8
  210. package/dist/_typedoc/Tooltip/Tooltip.types.json +15 -15
  211. package/dist/_typedoc/Tree/Tree.types.json +88 -88
  212. package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
  213. package/dist/_typedoc/Typography/Typography.types.json +9 -9
  214. package/dist/_typedoc/_utils/types.json +3 -3
  215. package/package.json +2 -2
@@ -23,7 +23,7 @@ function applyStylesOnlyToIE11(styles) {
23
23
  }
24
24
  export var StyledFormFieldMain = /*#__PURE__*/styled.div.withConfig({
25
25
  displayName: "StyledFormFieldMain",
26
- componentId: "core-12_41_0__sc-ncj3pf-0"
26
+ componentId: "core-12_42_0__sc-ncj3pf-0"
27
27
  })(["-ms-grid-row:2;grid-row:2;", " ", " ", ""], function (_ref) {
28
28
  var $colStart = _ref.$colStart,
29
29
  $colEnd = _ref.$colEnd,
@@ -35,15 +35,15 @@ export var StyledFormFieldMain = /*#__PURE__*/styled.div.withConfig({
35
35
  }, applyStylesOnlyToIE11("\n padding-left: ".concat(columnGutter, ";\n\n &:nth-child(2) {\n padding-left: 0;\n }\n ")));
36
36
  export var StyledLabel = /*#__PURE__*/styled(Label).withConfig({
37
37
  displayName: "StyledLabel",
38
- componentId: "core-12_41_0__sc-ncj3pf-1"
38
+ componentId: "core-12_42_0__sc-ncj3pf-1"
39
39
  })(["word-wrap:break-word;word-break:break-word;"]);
40
40
  export var StyledDescription = /*#__PURE__*/styled.div.withConfig({
41
41
  displayName: "StyledDescription",
42
- componentId: "core-12_41_0__sc-ncj3pf-2"
42
+ componentId: "core-12_42_0__sc-ncj3pf-2"
43
43
  })(["", " color:", ";word-wrap:break-word;word-break:break-word;"], getTypographyIntent('body'), colors.gray45);
44
44
  export var StyledCheckboxInlineDescription = /*#__PURE__*/styled(StyledDescription).withConfig({
45
45
  displayName: "StyledCheckboxInlineDescription",
46
- componentId: "core-12_41_0__sc-ncj3pf-3"
46
+ componentId: "core-12_42_0__sc-ncj3pf-3"
47
47
  })(["margin-top:", "px;", ""], spacing.xs, function (_ref3) {
48
48
  var $read = _ref3.$read;
49
49
  if (!$read) {
@@ -52,7 +52,7 @@ export var StyledCheckboxInlineDescription = /*#__PURE__*/styled(StyledDescripti
52
52
  });
53
53
  export var StyledFormFieldHeader = /*#__PURE__*/styled(StyledFieldHeader).withConfig({
54
54
  displayName: "StyledFormFieldHeader",
55
- componentId: "core-12_41_0__sc-ncj3pf-4"
55
+ componentId: "core-12_42_0__sc-ncj3pf-4"
56
56
  })(["-ms-grid-row:1;grid-row:1;align-self:end;margin-bottom:", "px;", " ", " * + ", "{margin-top:", "px;}"], spacing.xs, function (_ref4) {
57
57
  var $colStart = _ref4.$colStart,
58
58
  $colEnd = _ref4.$colEnd,
@@ -61,20 +61,20 @@ export var StyledFormFieldHeader = /*#__PURE__*/styled(StyledFieldHeader).withCo
61
61
  }, applyStylesOnlyToIE11("\n padding-left: ".concat(columnGutter, ";\n\n &:first-child {\n padding-left: 0;\n }\n\n ").concat(StyledFormFieldMain, " {\n padding-left: ").concat(columnGutter, ";\n\n &:nth-child(2) {\n padding-left: 0;\n }\n }\n ")), StyledDescription, spacing.xs);
62
62
  export var StyledFormFieldRequiredMark = /*#__PURE__*/styled(Required).withConfig({
63
63
  displayName: "StyledFormFieldRequiredMark",
64
- componentId: "core-12_41_0__sc-ncj3pf-5"
64
+ componentId: "core-12_42_0__sc-ncj3pf-5"
65
65
  })(["padding-left:", "px;vertical-align:top;"], spacing.xs);
66
66
  export var StyledFormFieldErrorIcon = /*#__PURE__*/styled(Error).withConfig({
67
67
  displayName: "StyledFormFieldErrorIcon",
68
- componentId: "core-12_41_0__sc-ncj3pf-6"
68
+ componentId: "core-12_42_0__sc-ncj3pf-6"
69
69
  })(["vertical-align:sub;"]);
70
70
  export var StyledFormFieldBanner = /*#__PURE__*/styled.div.withConfig({
71
71
  displayName: "StyledFormFieldBanner",
72
- componentId: "core-12_41_0__sc-ncj3pf-7"
72
+ componentId: "core-12_42_0__sc-ncj3pf-7"
73
73
  })(["display:flex;align-items:flex-start;min-height:22px;margin-top:", "px;margin-bottom:2px;word-break:break-word;word-wrap:break-word;color:", ";", ""], spacing.xs, colors.red50, getTypographyIntent('body'));
74
74
  /** @deprecated The traditional field layout is deprecated */
75
75
  export var StyledTraditionalFormColumn = /*#__PURE__*/styled.div.withConfig({
76
76
  displayName: "StyledTraditionalFormColumn",
77
- componentId: "core-12_41_0__sc-ncj3pf-8"
77
+ componentId: "core-12_42_0__sc-ncj3pf-8"
78
78
  })(["padding:", ";align-self:center;height:100%;&:nth-child(1){-ms-grid-column:1;}&:nth-child(2){-ms-grid-column:2;}&:nth-child(3){-ms-grid-column:3;}&:nth-child(4){-ms-grid-column:4;}", " ", ""], traditionalPadding, function (_ref5) {
79
79
  var _ref5$$fullWidth = _ref5.$fullWidth,
80
80
  $fullWidth = _ref5$$fullWidth === void 0 ? false : _ref5$$fullWidth;
@@ -86,15 +86,15 @@ export var StyledTraditionalFormColumn = /*#__PURE__*/styled.div.withConfig({
86
86
  });
87
87
  export var StyledFormOutputTextArea = /*#__PURE__*/styled.span.withConfig({
88
88
  displayName: "StyledFormOutputTextArea",
89
- componentId: "core-12_41_0__sc-ncj3pf-9"
89
+ componentId: "core-12_42_0__sc-ncj3pf-9"
90
90
  })(["white-space:pre-wrap;"]);
91
91
  export var StyledFormOutputFiledset = /*#__PURE__*/styled.fieldset.withConfig({
92
92
  displayName: "StyledFormOutputFiledset",
93
- componentId: "core-12_41_0__sc-ncj3pf-10"
93
+ componentId: "core-12_42_0__sc-ncj3pf-10"
94
94
  })(["border:none;padding:0;margin-top:", "px;"], spacing.xs);
95
95
  export var StyledFormRow = /*#__PURE__*/styled.div.withConfig({
96
96
  displayName: "StyledFormRow",
97
- componentId: "core-12_41_0__sc-ncj3pf-11"
97
+ componentId: "core-12_42_0__sc-ncj3pf-11"
98
98
  })(["", ""], function (_ref7) {
99
99
  var _ref7$$traditional = _ref7.$traditional,
100
100
  $traditional = _ref7$$traditional === void 0 ? false : _ref7$$traditional,
@@ -105,6 +105,6 @@ export var StyledFormRow = /*#__PURE__*/styled.div.withConfig({
105
105
  export var formWrapper = /*#__PURE__*/css(["display:inherit;flex-direction:inherit;height:inherit;max-height:inherit;"]);
106
106
  export var StyledForm = /*#__PURE__*/styled.div.withConfig({
107
107
  displayName: "StyledForm",
108
- componentId: "core-12_41_0__sc-ncj3pf-12"
108
+ componentId: "core-12_42_0__sc-ncj3pf-12"
109
109
  })(["", ""], formWrapper);
110
110
  //# sourceMappingURL=Form.styles.js.map
@@ -5,13 +5,13 @@ import { spacing } from '../_styles/spacing';
5
5
  import { formWrapper } from './Form.styles';
6
6
  export var StyledFormikForm = /*#__PURE__*/styled(FormikForm).withConfig({
7
7
  displayName: "StyledFormikForm",
8
- componentId: "core-12_41_0__sc-1ks7m0l-0"
8
+ componentId: "core-12_42_0__sc-1ks7m0l-0"
9
9
  })(["", ""], formWrapper);
10
10
 
11
11
  /** @deprecated The traditional field layout is deprecated */
12
12
  export var StyledTraditionalFormLabel = /*#__PURE__*/styled(Typography).withConfig({
13
13
  displayName: "StyledTraditionalFormLabel",
14
- componentId: "core-12_41_0__sc-1ks7m0l-1"
14
+ componentId: "core-12_42_0__sc-1ks7m0l-1"
15
15
  })(["display:inline-block;word-break:break-word;word-wrap:break-word;", ""], function (_ref) {
16
16
  var $view = _ref.$view;
17
17
  return ['create', 'update'].includes($view) && css(["padding-top:", "px;"], spacing.sm);
@@ -3,7 +3,7 @@ import { spacing } from '../_styles/spacing';
3
3
  var shimmerAnimation = /*#__PURE__*/keyframes(["0%{background-position:-1000px 500px;}100%{background-position:1000px 500px;}"]);
4
4
  export var PlaceholderItem = /*#__PURE__*/styled.div.withConfig({
5
5
  displayName: "PlaceholderItem",
6
- componentId: "core-12_41_0__sc-1nja302-0"
6
+ componentId: "core-12_42_0__sc-1nja302-0"
7
7
  })(["width:100%;min-height:24px;padding:10px 0;animation:", " 3s ease-out infinite;background:radial-gradient( ellipse at center,", " 0%,", " 50% );background-size:2000px 2000px;border-radius:", "px;"], shimmerAnimation, function (props) {
8
8
  return props.$startGradientColor;
9
9
  }, function (props) {
@@ -11,7 +11,7 @@ export var PlaceholderItem = /*#__PURE__*/styled.div.withConfig({
11
11
  }, spacing.sm);
12
12
  export var RoundPlaceholderItem = /*#__PURE__*/styled(PlaceholderItem).withConfig({
13
13
  displayName: "RoundPlaceholderItem",
14
- componentId: "core-12_41_0__sc-1nja302-1"
14
+ componentId: "core-12_42_0__sc-1nja302-1"
15
15
  })(["width:", ";height:", ";border-radius:50%;"], function (props) {
16
16
  return props.$small ? '24px' : '40px';
17
17
  }, function (props) {
@@ -75,7 +75,7 @@ var getRowGutterVertical = function getRowGutterVertical(gutterY, breakpoint) {
75
75
  };
76
76
  export var StyledGridRow = /*#__PURE__*/styled.div.withConfig({
77
77
  displayName: "StyledGridRow",
78
- componentId: "core-12_41_0__sc-8pinsp-0"
78
+ componentId: "core-12_42_0__sc-8pinsp-0"
79
79
  })(["", " display:flex;flex-wrap:wrap;"], function (_ref) {
80
80
  var $gutterX = _ref.$gutterX,
81
81
  $gutterY = _ref.$gutterY;
@@ -87,7 +87,7 @@ export var StyledGridRow = /*#__PURE__*/styled.div.withConfig({
87
87
  });
88
88
  export var StyledGridCol = /*#__PURE__*/styled.div.withConfig({
89
89
  displayName: "StyledGridCol",
90
- componentId: "core-12_41_0__sc-8pinsp-1"
90
+ componentId: "core-12_42_0__sc-8pinsp-1"
91
91
  })(["flex-shrink:0;width:100%;max-width:100%;", ""], function (_ref2) {
92
92
  var $span = _ref2.$span,
93
93
  $offset = _ref2.$offset,
@@ -3,7 +3,7 @@ import { MultiSelect } from '../MultiSelect/MultiSelect';
3
3
  import { colors } from '../_styles/colors';
4
4
  export var StyledGroupSelectOption = /*#__PURE__*/styled(MultiSelect.Option).withConfig({
5
5
  displayName: "StyledGroupSelectOption",
6
- componentId: "core-12_41_0__sc-u5gu8j-0"
6
+ componentId: "core-12_42_0__sc-u5gu8j-0"
7
7
  })(["", ""], function (_ref) {
8
8
  var disabled = _ref.disabled;
9
9
  return disabled && css(["color:", ";cursor:not-allowed;a,a:hover{color:", ";text-decoration:none;}"], colors.gray70, colors.gray70);
@@ -16,6 +16,6 @@ export function getInputStyles(_ref) {
16
16
  }
17
17
  export var StyledInput = /*#__PURE__*/styled.input.withConfig({
18
18
  displayName: "StyledInput",
19
- componentId: "core-12_41_0__sc-12sjkxg-0"
19
+ componentId: "core-12_42_0__sc-12sjkxg-0"
20
20
  })(["", " padding:0 ", "px;&::-ms-clear{display:none;}&[type='number']{-moz-appearance:textfield;&::-webkit-inner-spin-button,&::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}}"], getInputStyles, spacing.md);
21
21
  //# sourceMappingURL=Input.styles.js.map
@@ -17,6 +17,6 @@ function getLinkColors(_ref) {
17
17
  }
18
18
  export var StyledLink = /*#__PURE__*/styled.a.withConfig({
19
19
  displayName: "StyledLink",
20
- componentId: "core-12_41_0__sc-jfowrl-0"
20
+ componentId: "core-12_42_0__sc-jfowrl-0"
21
21
  })(["text-decoration:underline;&:hover{cursor:pointer;text-decoration:underline;}", " &.focus,&:focus{", ";}", ""], focusable, getBorderRadius('md'), getLinkColors);
22
22
  //# sourceMappingURL=Link.styles.js.map
@@ -3,19 +3,19 @@ import { colors } from '../_styles/colors';
3
3
  import { spacing } from '../_styles/spacing';
4
4
  export var StyledListPageMain = /*#__PURE__*/styled.div.withConfig({
5
5
  displayName: "StyledListPageMain",
6
- componentId: "core-12_41_0__sc-1eq7fzi-0"
6
+ componentId: "core-12_42_0__sc-1eq7fzi-0"
7
7
  })(["display:flex;flex:1 0 auto;flex-direction:column;min-width:0;padding:", "px ", "px;width:100%;"], spacing.lg, spacing.xl);
8
8
  export var StyledListPageBanner = /*#__PURE__*/styled.div.withConfig({
9
9
  displayName: "StyledListPageBanner",
10
- componentId: "core-12_41_0__sc-1eq7fzi-1"
10
+ componentId: "core-12_42_0__sc-1eq7fzi-1"
11
11
  })(["flex:0 0 auto;"]);
12
12
  export var StyledListPageToolHeader = /*#__PURE__*/styled.div.withConfig({
13
13
  displayName: "StyledListPageToolHeader",
14
- componentId: "core-12_41_0__sc-1eq7fzi-2"
14
+ componentId: "core-12_42_0__sc-1eq7fzi-2"
15
15
  })(["flex:0 0 auto;padding-bottom:", "px;"], spacing.lg);
16
16
  export var StyledListPageControl = /*#__PURE__*/styled.div.withConfig({
17
17
  displayName: "StyledListPageControl",
18
- componentId: "core-12_41_0__sc-1eq7fzi-3"
18
+ componentId: "core-12_42_0__sc-1eq7fzi-3"
19
19
  })(["flex:", ";", " ", ""], function (_ref) {
20
20
  var $block = _ref.$block;
21
21
  return $block ? '1 0 auto' : '0 0 auto';
@@ -32,18 +32,18 @@ export var StyledListPageControl = /*#__PURE__*/styled.div.withConfig({
32
32
  });
33
33
  export var StyledListPageContentControls = /*#__PURE__*/styled.div.withConfig({
34
34
  displayName: "StyledListPageContentControls",
35
- componentId: "core-12_41_0__sc-1eq7fzi-4"
35
+ componentId: "core-12_42_0__sc-1eq7fzi-4"
36
36
  })(["align-items:center;display:flex;flex:0 0 auto;justify-content:space-between;padding:", "px 0;", " + ", "{margin-left:", "px;}"], spacing.md, StyledListPageControl, StyledListPageControl, spacing.lg);
37
37
  export var StyledListPageBody = /*#__PURE__*/styled.div.withConfig({
38
38
  displayName: "StyledListPageBody",
39
- componentId: "core-12_41_0__sc-1eq7fzi-5"
39
+ componentId: "core-12_42_0__sc-1eq7fzi-5"
40
40
  })(["display:flex;flex:1 0 auto;padding-top:", "px;"], spacing.md);
41
41
  export var StyledListPageBodyContent = /*#__PURE__*/styled.div.withConfig({
42
42
  displayName: "StyledListPageBodyContent",
43
- componentId: "core-12_41_0__sc-1eq7fzi-6"
43
+ componentId: "core-12_42_0__sc-1eq7fzi-6"
44
44
  })(["flex:1 1 auto;"]);
45
45
  export var StyledListPage = /*#__PURE__*/styled.div.withConfig({
46
46
  displayName: "StyledListPage",
47
- componentId: "core-12_41_0__sc-1eq7fzi-7"
47
+ componentId: "core-12_42_0__sc-1eq7fzi-7"
48
48
  })(["display:flex;flex-direction:row;height:100%;width:100%;", " + ", "{padding-top:", "px;}", " + ", "{border-top-color:", ";border-top-style:solid;border-top-width:1px;}", " + ", ",", " + ", "{border-top-color:", ";border-top-style:solid;border-top-width:1px;}", " + ", "{padding-top:0;}"], StyledListPageBanner, StyledListPageToolHeader, spacing.lg, StyledListPageContentControls, StyledListPageContentControls, colors.gray85, StyledListPageToolHeader, StyledListPageContentControls, StyledListPageToolHeader, StyledListPageBody, colors.gray85, StyledListPageContentControls, StyledListPageBody);
49
49
  //# sourceMappingURL=ListPage.styles.js.map
@@ -7,11 +7,11 @@ export var loaderTransitionDuration = 250;
7
7
  var movingStripes = /*#__PURE__*/keyframes(["from{background-position:", "px 0;}100%{background-position:0 ", "px;}"], backgroundSize, backgroundSize);
8
8
  export var StyledLoader = /*#__PURE__*/styled.div.withConfig({
9
9
  displayName: "StyledLoader",
10
- componentId: "core-12_41_0__sc-wgvjj9-0"
10
+ componentId: "core-12_42_0__sc-wgvjj9-0"
11
11
  })(["display:block;height:100%;left:0;min-width:12px;position:absolute;transition:width ", "ms ease-out;top:0;"], loaderTransitionDuration);
12
12
  export var StyledGradient = /*#__PURE__*/styled.div.withConfig({
13
13
  displayName: "StyledGradient",
14
- componentId: "core-12_41_0__sc-wgvjj9-1"
14
+ componentId: "core-12_42_0__sc-wgvjj9-1"
15
15
  })(["height:100%;", ""], function (_ref) {
16
16
  var $animated = _ref.$animated;
17
17
  return $animated ? css(["@media (prefers-reduced-motion:no-preference){animation:", " 0.5s linear infinite;}background-image:linear-gradient( 45deg,", " 26%,", " 25%,", " 51%,", " 50%,", " 76%,", " 75%,", " );background-size:", "px ", "px;"], movingStripes, color1, color2, color2, color1, color1, color2, color2, backgroundSize, backgroundSize) : css(["background-color:", ";"], colors.blue50);
@@ -15,7 +15,7 @@ export declare function useMenuContext(): IMenuContext;
15
15
  */
16
16
  export declare const useMenuImperativeControlNavigation: (ref: React.RefObject<MenuRef>, enable?: boolean, options?: ControlNavigationProps) => ControlNavigationReturn;
17
17
  export declare const Group: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & GroupProps & React.RefAttributes<HTMLDivElement>>;
18
- export declare function Droppable({ id, children }: DroppableProps): React.JSX.Element;
18
+ export declare function Droppable({ id, children, ...props }: DroppableProps): React.JSX.Element;
19
19
  export declare namespace Droppable {
20
20
  var displayName: string;
21
21
  }
@@ -1,11 +1,12 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
2
  var _excluded = ["circular", "onDragEnd", "onScrollBottom", "onSelect", "role", "onChangeActiveDescendant", "onKeyboardNavigation", "id", "multiple"],
3
- _excluded2 = ["clickable", "item", "id", "label", "children"],
4
- _excluded3 = ["hasCheckbox", "children", "selected", "provided"],
5
- _excluded4 = ["as", "children", "item", "onClick", "selected", "suggested", "disabled", "id", "role", "restoreFocus", "draggableId", "draggableIndex", "droppableIn"],
6
- _excluded5 = ["selected", "disabled", "error", "indeterminate", "children", "role"],
7
- _excluded6 = ["className", "i18nScope", "placeholder", "onChange", "value"],
8
- _excluded7 = ["padding"];
3
+ _excluded2 = ["clickable", "item", "label", "labelId", "children", "id"],
4
+ _excluded3 = ["id", "children"],
5
+ _excluded4 = ["hasCheckbox", "children", "selected", "provided", "dndInstructionsId"],
6
+ _excluded5 = ["as", "children", "item", "onClick", "selected", "suggested", "disabled", "id", "role", "restoreFocus", "draggableId", "draggableIndex", "droppableIn"],
7
+ _excluded6 = ["selected", "disabled", "error", "indeterminate", "children", "role"],
8
+ _excluded7 = ["className", "i18nScope", "placeholder", "onChange", "value"],
9
+ _excluded8 = ["padding"];
9
10
  function _objectDestructuringEmpty(t) { if (null == t) throw new TypeError("Cannot destructure " + t); }
10
11
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
11
12
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -26,6 +27,7 @@ import { Grip } from '@procore/core-icons/dist';
26
27
  import { useLabel } from '@react-aria/label';
27
28
  import { useId } from '@react-aria/utils';
28
29
  import React, { isValidElement, useEffect, useMemo, useState } from 'react';
30
+ import { flushSync } from 'react-dom';
29
31
  import { Checkbox, FakeCheckbox } from '../Checkbox/Checkbox';
30
32
  import { Typeahead } from '../Typeahead';
31
33
  import { useI18nContext } from '../_hooks/I18n';
@@ -36,7 +38,18 @@ import { mergeRefs } from '../_utils/mergeRefs';
36
38
  import { StyledDroppable, StyledFooter, StyledGrip, StyledGroup, StyledGroupLabel, StyledHeader, StyledItem, StyledMenu, StyledOptions, StyledSearch, StyledWrapper } from './MenuImperative.styles';
37
39
  import { createSensors } from './sensors';
38
40
  var onScrollBottomThreshold = 8;
39
- var NO_ANNOUCEMENT = '';
41
+
42
+ /**
43
+ * Finds the group element for a given droppable ID (from DnD result).
44
+ * Locates the Droppable via data-droppable-id, then returns its parent Group
45
+ * (ancestor with data-group="true") so we can read data-title for announcements.
46
+ */
47
+ function findGroupByDroppableId(container, droppableId) {
48
+ var droppable = container === null || container === void 0 ? void 0 : container.querySelector("[data-droppable-id=\"".concat(droppableId, "\"]"));
49
+ if (!droppable) return null;
50
+ var group = droppable.closest('[data-group="true"]');
51
+ return group !== null && group !== void 0 ? group : null;
52
+ }
40
53
  function noop() {}
41
54
  function isScrolledToBottom(e) {
42
55
  return e.currentTarget instanceof HTMLElement && e.currentTarget.scrollTop >= e.currentTarget.scrollHeight - e.currentTarget.clientHeight - onScrollBottomThreshold;
@@ -44,7 +57,10 @@ function isScrolledToBottom(e) {
44
57
  export var MenuContext = /*#__PURE__*/React.createContext({
45
58
  a11yOptionsProps: {},
46
59
  currentlyDroppableIn: [],
60
+ dndInstructionsId: '',
47
61
  onHoverItem: noop,
62
+ onFocusItem: noop,
63
+ onBlurItem: noop,
48
64
  onScrollBottom: noop,
49
65
  onSelect: noop,
50
66
  role: 'none'
@@ -56,6 +72,10 @@ export function useMenuContext() {
56
72
  }
57
73
  return context;
58
74
  }
75
+ var IsInsideDroppableContext = /*#__PURE__*/React.createContext(false);
76
+ function useIsInsideDroppable() {
77
+ return React.useContext(IsInsideDroppableContext);
78
+ }
59
79
 
60
80
  /**
61
81
  * Usefully if navigation is controlled by search input or another input.
@@ -136,6 +156,8 @@ var MenuImperative_ = /*#__PURE__*/React.forwardRef(function Menu(_ref, forwardR
136
156
  _useState4 = _slicedToArray(_useState3, 2),
137
157
  currentlyDroppableIn = _useState4[0],
138
158
  setCurrentlyDroppableIn = _useState4[1];
159
+ var i18n = useI18nContext();
160
+ var dndInstructionsId = useId();
139
161
 
140
162
  // for context, used by Menu.Item
141
163
  var onSelect = React.useCallback(function (selection) {
@@ -146,6 +168,8 @@ var MenuImperative_ = /*#__PURE__*/React.forwardRef(function Menu(_ref, forwardR
146
168
  return createSensors(ref, circular, onChangeHighlight);
147
169
  }, [circular, onChangeHighlight]),
148
170
  handleItemHover = _useMemo.handleItemHover,
171
+ handleItemFocus = _useMemo.handleItemFocus,
172
+ handleItemBlur = _useMemo.handleItemBlur,
149
173
  defaultKeyDownNavigationHandler = _useMemo.handleKeyDown,
150
174
  highlight = _useMemo.highlight,
151
175
  highlighted = _useMemo.highlighted,
@@ -157,7 +181,8 @@ var MenuImperative_ = /*#__PURE__*/React.forwardRef(function Menu(_ref, forwardR
157
181
  prev = _useMemo.prev,
158
182
  next = _useMemo.next,
159
183
  select = _useMemo.select,
160
- updateSelectCallback = _useMemo.updateSelectCallback;
184
+ updateSelectCallback = _useMemo.updateSelectCallback,
185
+ setIsDragging = _useMemo.setIsDragging;
161
186
  var commonA11yOptionProps = _defineProperty({
162
187
  role: role,
163
188
  id: id
@@ -189,19 +214,53 @@ var MenuImperative_ = /*#__PURE__*/React.forwardRef(function Menu(_ref, forwardR
189
214
  });
190
215
  useEffect(rehighlightCurrent);
191
216
  function onDragStart(start, provided) {
192
- // TODO Replace with localized instructions
193
- provided.announce(NO_ANNOUCEMENT);
217
+ var _findGroupByDroppable, _findGroupByDroppable2;
194
218
  var itemInfo = JSON.parse(start.draggableId);
195
- setCurrentlyDroppableIn(itemInfo.droppableIn);
196
- }
197
- function onDragUpdate(_update, provided) {
198
- // TODO Replace with localized instructions
199
- provided.announce(NO_ANNOUCEMENT);
219
+ // flushSync needed to ensure proper behavior in Safari
220
+ flushSync(function () {
221
+ return setCurrentlyDroppableIn(itemInfo.droppableIn);
222
+ });
223
+ setIsDragging(true);
224
+ var startPosition = start.source.index + 1;
225
+ var startGroupTitle = (_findGroupByDroppable = (_findGroupByDroppable2 = findGroupByDroppableId(ref.current, start.source.droppableId)) === null || _findGroupByDroppable2 === void 0 ? void 0 : _findGroupByDroppable2.getAttribute('data-title')) !== null && _findGroupByDroppable !== void 0 ? _findGroupByDroppable : '';
226
+ var announcement = startGroupTitle ? i18n.t('core.menuImperative.dragStartWithGroup', {
227
+ startPosition: startPosition,
228
+ startGroupTitle: startGroupTitle
229
+ }) : i18n.t('core.menuImperative.dragStart', {
230
+ startPosition: startPosition
231
+ });
232
+ provided.announce(announcement);
200
233
  }
234
+ var onDragUpdate = React.useCallback(function (_update, provided) {
235
+ var _findGroupByDroppable3, _findGroupByDroppable4, _update$destination, _findGroupByDroppable5, _findGroupByDroppable6;
236
+ var startPosition = _update.source.index + 1;
237
+ var startGroupTitle = (_findGroupByDroppable3 = (_findGroupByDroppable4 = findGroupByDroppableId(ref.current, _update.source.droppableId)) === null || _findGroupByDroppable4 === void 0 ? void 0 : _findGroupByDroppable4.getAttribute('data-title')) !== null && _findGroupByDroppable3 !== void 0 ? _findGroupByDroppable3 : '';
238
+ var endPosition = ((_update$destination = _update.destination) === null || _update$destination === void 0 ? void 0 : _update$destination.index) + 1;
239
+ var endGroupTitle = _update.destination ? (_findGroupByDroppable5 = (_findGroupByDroppable6 = findGroupByDroppableId(ref.current, _update.destination.droppableId)) === null || _findGroupByDroppable6 === void 0 ? void 0 : _findGroupByDroppable6.getAttribute('data-title')) !== null && _findGroupByDroppable5 !== void 0 ? _findGroupByDroppable5 : '' : '';
240
+ var announcement = startGroupTitle === endGroupTitle || !endGroupTitle || !startGroupTitle ? i18n.t('core.menuImperative.dragUpdate', {
241
+ startPosition: startPosition,
242
+ endPosition: endPosition
243
+ }) : i18n.t('core.menuImperative.dragUpdateWithGroup', {
244
+ startPosition: startPosition,
245
+ endPosition: endPosition,
246
+ startGroupTitle: startGroupTitle,
247
+ endGroupTitle: endGroupTitle
248
+ });
249
+ provided.announce(announcement);
250
+ }, []);
201
251
  var onDragEnd = React.useCallback(function (result, provided) {
202
- // TODO Replace with localized instructions
203
- provided.announce(NO_ANNOUCEMENT);
252
+ var _result$destination, _findGroupByDroppable7, _findGroupByDroppable8;
253
+ var endPosition = ((_result$destination = result.destination) === null || _result$destination === void 0 ? void 0 : _result$destination.index) + 1;
254
+ var endGroupTitle = result.destination ? (_findGroupByDroppable7 = (_findGroupByDroppable8 = findGroupByDroppableId(ref.current, result.destination.droppableId)) === null || _findGroupByDroppable8 === void 0 ? void 0 : _findGroupByDroppable8.getAttribute('data-title')) !== null && _findGroupByDroppable7 !== void 0 ? _findGroupByDroppable7 : '' : '';
255
+ var announcement = endGroupTitle ? i18n.t('core.menuImperative.dragEndWithGroup', {
256
+ endPosition: endPosition,
257
+ endGroupTitle: endGroupTitle
258
+ }) : i18n.t('core.menuImperative.dragEnd', {
259
+ endPosition: endPosition
260
+ });
261
+ provided.announce(announcement);
204
262
  setCurrentlyDroppableIn([]);
263
+ setIsDragging(false);
205
264
  if (result.reason === 'DROP' && result.destination) {
206
265
  var itemInfo = JSON.parse(result.draggableId);
207
266
  onDragEnd_({
@@ -210,7 +269,7 @@ var MenuImperative_ = /*#__PURE__*/React.forwardRef(function Menu(_ref, forwardR
210
269
  destination: result.destination
211
270
  });
212
271
  }
213
- }, [onDragEnd_]);
272
+ }, [onDragEnd_, setIsDragging]);
214
273
 
215
274
  // for context, used by Menu.Options
216
275
  var onScrollBottom = React.useCallback(function (e) {
@@ -222,7 +281,10 @@ var MenuImperative_ = /*#__PURE__*/React.forwardRef(function Menu(_ref, forwardR
222
281
  value: {
223
282
  a11yOptionsProps: a11yOptionsProps,
224
283
  currentlyDroppableIn: currentlyDroppableIn,
284
+ dndInstructionsId: dndInstructionsId,
225
285
  onHoverItem: handleItemHover,
286
+ onFocusItem: handleItemFocus,
287
+ onBlurItem: handleItemBlur,
226
288
  onScrollBottom: onScrollBottom,
227
289
  onSelect: onSelect,
228
290
  role: role
@@ -233,15 +295,19 @@ var MenuImperative_ = /*#__PURE__*/React.forwardRef(function Menu(_ref, forwardR
233
295
  onDragStart: onDragStart,
234
296
  onDragUpdate: onDragUpdate,
235
297
  onDragEnd: onDragEnd
236
- }, /*#__PURE__*/React.createElement(StyledMenu, props))));
298
+ }, /*#__PURE__*/React.createElement(StyledMenu, props))), /*#__PURE__*/React.createElement("div", {
299
+ id: dndInstructionsId,
300
+ hidden: true
301
+ }, i18n.t('core.menuImperative.dragAndDropInstructions')));
237
302
  });
238
303
  export var Group = /*#__PURE__*/React.forwardRef(function Group(_ref2, ref) {
239
304
  var clickable = _ref2.clickable,
240
305
  _ref2$item = _ref2.item,
241
306
  item = _ref2$item === void 0 ? 'group' : _ref2$item,
242
- id = _ref2.id,
243
307
  label = _ref2.label,
308
+ labelId = _ref2.labelId,
244
309
  children = _ref2.children,
310
+ id = _ref2.id,
245
311
  props = _objectWithoutProperties(_ref2, _excluded2);
246
312
  var _useLabel = useLabel({
247
313
  id: id,
@@ -250,10 +316,19 @@ export var Group = /*#__PURE__*/React.forwardRef(function Group(_ref2, ref) {
250
316
  }),
251
317
  fieldProps = _useLabel.fieldProps,
252
318
  labelProps = _useLabel.labelProps;
319
+ if (labelId) {
320
+ fieldProps = _objectSpread(_objectSpread({}, fieldProps), {}, {
321
+ 'aria-labelledby': labelId
322
+ });
323
+ labelProps = _objectSpread(_objectSpread({}, labelProps), {}, {
324
+ id: labelId
325
+ });
326
+ }
253
327
  return /*#__PURE__*/React.createElement(StyledGroup, _extends({
254
328
  ref: ref,
255
329
  "data-group": true,
256
330
  "data-value": JSON.stringify(item),
331
+ "data-title": label,
257
332
  role: label ? 'group' : 'separator'
258
333
  }, fieldProps, props), /*#__PURE__*/React.createElement(StyledGroupLabel, labelProps, label !== null && label !== void 0 ? label : children), label ? children : null);
259
334
  });
@@ -278,7 +353,8 @@ function findDraggableRecursively(children, draggableId) {
278
353
  }
279
354
  export function Droppable(_ref3) {
280
355
  var id = _ref3.id,
281
- children = _ref3.children;
356
+ children = _ref3.children,
357
+ props = _objectWithoutProperties(_ref3, _excluded3);
282
358
  var ctx = useMenuContext();
283
359
  var cloneZIndex = useZIndexContext().value;
284
360
  function renderItemClone(provided, _snapshot, rubric) {
@@ -289,7 +365,8 @@ export function Droppable(_ref3) {
289
365
  return /*#__PURE__*/React.createElement(ClonedItem, _extends({
290
366
  hasCheckbox: (draggingChild === null || draggingChild === void 0 ? void 0 : draggingChild.type) === CheckboxItem,
291
367
  provided: provided,
292
- cloneZIndex: cloneZIndex
368
+ cloneZIndex: cloneZIndex,
369
+ dndInstructionsId: ctx.dndInstructionsId
293
370
  }, cloneProps));
294
371
  }
295
372
  return /*#__PURE__*/React.createElement(DndDroppable, {
@@ -297,10 +374,13 @@ export function Droppable(_ref3) {
297
374
  isDropDisabled: !ctx.currentlyDroppableIn.includes(id),
298
375
  renderClone: renderItemClone
299
376
  }, function (provided, snapshot) {
300
- return /*#__PURE__*/React.createElement(StyledDroppable, {
377
+ return /*#__PURE__*/React.createElement(StyledDroppable, _extends({
301
378
  ref: provided.innerRef,
302
- "data-droppable": true
303
- }, children, provided.placeholder);
379
+ "data-droppable": true,
380
+ "data-droppable-id": id
381
+ }, props), /*#__PURE__*/React.createElement(IsInsideDroppableContext.Provider, {
382
+ value: true
383
+ }, children, provided.placeholder));
304
384
  });
305
385
  }
306
386
 
@@ -315,8 +395,10 @@ var ClonedItem = function ClonedItem(_ref4) {
315
395
  _ref4$selected = _ref4.selected,
316
396
  selected = _ref4$selected === void 0 ? false : _ref4$selected,
317
397
  provided = _ref4.provided,
318
- props = _objectWithoutProperties(_ref4, _excluded3);
398
+ dndInstructionsId = _ref4.dndInstructionsId,
399
+ props = _objectWithoutProperties(_ref4, _excluded4);
319
400
  var itemProps = _objectSpread(_objectSpread({}, props), {}, {
401
+ 'aria-describedby': dndInstructionsId,
320
402
  $selected: selected
321
403
  });
322
404
  var itemChildren = hasCheckbox ? /*#__PURE__*/React.createElement(Checkbox, {
@@ -362,9 +444,10 @@ forwardRef) {
362
444
  draggableId = _ref5.draggableId,
363
445
  draggableIndex = _ref5.draggableIndex,
364
446
  droppableIn = _ref5.droppableIn,
365
- props = _objectWithoutProperties(_ref5, _excluded4);
447
+ props = _objectWithoutProperties(_ref5, _excluded5);
366
448
  var id = useId(_id);
367
449
  var ctx = useMenuContext();
450
+ var isInsideDroppable = useIsInsideDroppable();
368
451
  var onClick = React.useCallback(function (event) {
369
452
  if (disabled) return;
370
453
  onClick_(event);
@@ -381,20 +464,30 @@ forwardRef) {
381
464
  var ariaSelected;
382
465
  if (ctx.role === 'listbox') {
383
466
  contextRole = 'option';
384
- ariaSelected = selected ? true : undefined;
385
467
  } else if (ctx.role === 'menu') {
386
468
  contextRole = 'menuitem';
387
469
  }
470
+ if ([role, contextRole].includes('option')) {
471
+ ariaSelected = selected ? true : undefined;
472
+ }
473
+ var ariaDescribedBy = isInsideDroppable ? ctx.dndInstructionsId : undefined;
388
474
  var itemProps = _objectSpread(_objectSpread({
389
475
  'aria-disabled': disabled ? true : undefined,
390
- 'aria-selected': ariaSelected
476
+ 'aria-describedby': ariaDescribedBy
391
477
  }, props), {}, {
478
+ 'aria-selected': ariaSelected,
392
479
  id: id,
393
480
  role: role !== null && role !== void 0 ? role : contextRole,
394
481
  onClick: onClick,
395
482
  onMouseMove: function onMouseMove(e) {
396
483
  return ctx.onHoverItem(e.currentTarget);
397
484
  },
485
+ onFocus: function onFocus(e) {
486
+ return ctx.onFocusItem(e.currentTarget);
487
+ },
488
+ onBlur: function onBlur(e) {
489
+ return ctx.onBlurItem(e.currentTarget);
490
+ },
398
491
  'data-group': false,
399
492
  'data-value': JSON.stringify(item),
400
493
  'data-selected': selected,
@@ -420,8 +513,7 @@ forwardRef) {
420
513
  as: as
421
514
  }, provided.draggableProps, provided.dragHandleProps, itemProps, {
422
515
  $isDraggable: !disabled,
423
- style: _objectSpread(_objectSpread({}, provided.draggableProps.style), itemProps.style),
424
- tabIndex: -1
516
+ style: _objectSpread(_objectSpread({}, provided.draggableProps.style), itemProps.style)
425
517
  }), !disabled && /*#__PURE__*/React.createElement(StyledGrip, null, /*#__PURE__*/React.createElement(Grip, {
426
518
  color: colors.gray45
427
519
  })), children);
@@ -444,7 +536,7 @@ export var CheckboxItem = /*#__PURE__*/React.forwardRef(function CheckboxItem(_r
444
536
  _ref6$children = _ref6.children,
445
537
  children = _ref6$children === void 0 ? null : _ref6$children,
446
538
  role = _ref6.role,
447
- props = _objectWithoutProperties(_ref6, _excluded5);
539
+ props = _objectWithoutProperties(_ref6, _excluded6);
448
540
  var ctx = useMenuContext();
449
541
  var contextRole;
450
542
  var ariaChecked;
@@ -494,7 +586,7 @@ export var Search = function Search(_ref7) {
494
586
  placeholder = _ref7.placeholder,
495
587
  _onChange = _ref7.onChange,
496
588
  valueProp = _ref7.value,
497
- props = _objectWithoutProperties(_ref7, _excluded6);
589
+ props = _objectWithoutProperties(_ref7, _excluded7);
498
590
  var I18n = useI18nContext();
499
591
  var isControlled = valueProp !== undefined;
500
592
  var _React$useState3 = React.useState(''),
@@ -533,7 +625,7 @@ export var Header = /*#__PURE__*/React.forwardRef(function Header(_ref8, ref) {
533
625
  export var Footer = /*#__PURE__*/React.forwardRef(function Footer(_ref9, ref) {
534
626
  var _ref9$padding = _ref9.padding,
535
627
  padding = _ref9$padding === void 0 ? 'md lg' : _ref9$padding,
536
- props = _objectWithoutProperties(_ref9, _excluded7);
628
+ props = _objectWithoutProperties(_ref9, _excluded8);
537
629
  return /*#__PURE__*/React.createElement(StyledFooter, _extends({
538
630
  ref: ref,
539
631
  padding: padding