@procore/core-react 12.49.1 → 12.50.1

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 (266) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/AnchorNavigation/AnchorNavigation.styles.js +4 -4
  3. package/dist/AnchorNavigation/AnchorNavigationProvider.js +11 -2
  4. package/dist/AnchorNavigation/AnchorNavigationProvider.js.map +1 -1
  5. package/dist/Avatar/Avatar.styles.js +5 -5
  6. package/dist/AvatarStack/AvatarStack.styles.js +8 -8
  7. package/dist/Badge/Badge.styles.js +2 -2
  8. package/dist/BadgePill/BadgePill.styles.js +4 -4
  9. package/dist/Banner/Banner.styles.js +10 -10
  10. package/dist/Box/Box.styles.js +1 -1
  11. package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
  12. package/dist/Button/Button.styles.js +5 -5
  13. package/dist/Calendar/Calendar.styles.js +9 -9
  14. package/dist/Card/Card.styles.js +1 -1
  15. package/dist/Checkbox/Checkbox.styles.js +6 -6
  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.d.ts +2 -1
  20. package/dist/DetailPage/DetailPage.js +11 -10
  21. package/dist/DetailPage/DetailPage.js.map +1 -1
  22. package/dist/DetailPage/DetailPage.styles.js +9 -8
  23. package/dist/DetailPage/DetailPage.styles.js.map +1 -1
  24. package/dist/DetailPage/DetailPage.types.d.ts +5 -5
  25. package/dist/DetailPage/DetailPage.types.js.map +1 -1
  26. package/dist/DetailPageTemplate/DetailPageTemplate.types.d.ts +7 -1
  27. package/dist/DetailPageTemplate/DetailPageTemplate.types.js.map +1 -1
  28. package/dist/Dropdown/Dropdown.js +2 -2
  29. package/dist/Dropdown/Dropdown.js.map +1 -1
  30. package/dist/Dropdown/Dropdown.styles.js +3 -3
  31. package/dist/Dropdown/Dropdown.types.d.ts +12 -2
  32. package/dist/Dropdown/Dropdown.types.js.map +1 -1
  33. package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
  34. package/dist/Dropzone/Dropzone.js +1 -1
  35. package/dist/Dropzone/Dropzone.styles.js +9 -9
  36. package/dist/EmptyState/EmptyState.styles.js +6 -6
  37. package/dist/Field/Field.styles.js +3 -3
  38. package/dist/FileList/FileList.styles.js +3 -3
  39. package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
  40. package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
  41. package/dist/FileSelect/FileSelect.styles.js +2 -2
  42. package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
  43. package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
  44. package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
  45. package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
  46. package/dist/FileSelect/SourceItem/SourceItem.d.ts +7 -0
  47. package/dist/FileSelect/SourceItem/SourceItem.js.map +1 -1
  48. package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
  49. package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
  50. package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
  51. package/dist/FileToken/FileToken.styles.js +6 -6
  52. package/dist/FilterToken/FilterToken.styles.js +5 -5
  53. package/dist/FlexList/FlexList.styles.js +1 -1
  54. package/dist/Form/Form.styles.js +13 -13
  55. package/dist/Form/StyledFormikForm.styles.d.ts +2 -2
  56. package/dist/Form/StyledFormikForm.styles.js +2 -2
  57. package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +3 -3
  58. package/dist/GhostPlaceholder/GhostPlaceholder.styles.js.map +1 -1
  59. package/dist/GhostPlaceholder/GhostPlaceholder.types.d.ts +10 -0
  60. package/dist/GhostPlaceholder/GhostPlaceholder.types.js.map +1 -1
  61. package/dist/Grid/Grid.styles.js +2 -2
  62. package/dist/GroupSelect/GroupSelect.styles.js +1 -1
  63. package/dist/Input/Input.styles.js +1 -1
  64. package/dist/Link/Link.styles.js +1 -1
  65. package/dist/ListPage/ListPage.styles.js +8 -8
  66. package/dist/Loader/Loader.styles.js +2 -2
  67. package/dist/MenuImperative/MenuImperative.styles.js +11 -11
  68. package/dist/Modal/Modal.styles.js +26 -33
  69. package/dist/Modal/Modal.styles.js.map +1 -1
  70. package/dist/MultiSelect/MultiSelect.styles.d.ts +1 -1
  71. package/dist/MultiSelect/MultiSelect.styles.js +8 -8
  72. package/dist/NextMenu/NextMenu.styles.js +3 -3
  73. package/dist/NextTile/NextTile.styles.js +5 -5
  74. package/dist/Notation/Notation.js +1 -1
  75. package/dist/NumberInput/NumberInput.styles.js +7 -7
  76. package/dist/Overlay/OverlayArrow.styles.js +1 -1
  77. package/dist/PageLayout/PageLayout.js +8 -5
  78. package/dist/PageLayout/PageLayout.js.map +1 -1
  79. package/dist/PageLayout/PageLayout.styles.js +19 -20
  80. package/dist/PageLayout/PageLayout.styles.js.map +1 -1
  81. package/dist/PageLayout/PageLayout.types.d.ts +7 -0
  82. package/dist/PageLayout/PageLayout.types.js.map +1 -1
  83. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
  84. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.types.d.ts +5 -0
  85. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.types.js.map +1 -1
  86. package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
  87. package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
  88. package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
  89. package/dist/Pagination/Pagination.styles.js +5 -5
  90. package/dist/Panel/Panel.styles.js +14 -13
  91. package/dist/Panel/Panel.styles.js.map +1 -1
  92. package/dist/Pill/Pill.styles.js +3 -3
  93. package/dist/PillSelect/PillSelect.styles.js +4 -4
  94. package/dist/Popover/Popover.styles.js +2 -2
  95. package/dist/Portal/Portal.styles.js +1 -1
  96. package/dist/ProgressBar/ProgressBar.styles.js +2 -2
  97. package/dist/RadioButton/RadioButton.styles.js +3 -3
  98. package/dist/Required/Required.js +1 -0
  99. package/dist/Required/Required.js.map +1 -1
  100. package/dist/Required/Required.styles.js +5 -5
  101. package/dist/Required/Required.styles.js.map +1 -1
  102. package/dist/Required/Required.types.d.ts +2 -0
  103. package/dist/Required/Required.types.js.map +1 -1
  104. package/dist/Search/Search.styles.js +5 -5
  105. package/dist/Section/Section.styles.js +7 -7
  106. package/dist/SegmentedController/SegmentedController.styles.js +4 -4
  107. package/dist/Select/Select.js +4 -3
  108. package/dist/Select/Select.js.map +1 -1
  109. package/dist/Select/Select.styles.js +8 -8
  110. package/dist/Select/Select.types.d.ts +0 -1
  111. package/dist/Select/Select.types.js.map +1 -1
  112. package/dist/Semantic/Semantic.styles.js +9 -9
  113. package/dist/Slider/Slider.styles.js +5 -5
  114. package/dist/Spinner/Spinner.styles.js +7 -7
  115. package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
  116. package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
  117. package/dist/SuperSelect/SuperSelect.styles.js +41 -41
  118. package/dist/SuperSelect/SuperSelect.styles.js.map +1 -1
  119. package/dist/Switch/Switch.styles.js +4 -4
  120. package/dist/Table/Table.styles.js +29 -29
  121. package/dist/TableShelf/TableShelf.styles.js +5 -5
  122. package/dist/Tabs/Tablist.d.ts +11 -0
  123. package/dist/Tabs/Tablist.js +45 -0
  124. package/dist/Tabs/Tablist.js.map +1 -0
  125. package/dist/Tabs/Tablist.types.d.ts +58 -0
  126. package/dist/Tabs/Tablist.types.js +2 -0
  127. package/dist/Tabs/Tablist.types.js.map +1 -0
  128. package/dist/Tabs/Tabs.js +60 -8
  129. package/dist/Tabs/Tabs.js.map +1 -1
  130. package/dist/Tabs/Tabs.styles.js +16 -16
  131. package/dist/Tabs/Tabs.types.d.ts +25 -10
  132. package/dist/Tabs/Tabs.types.js.map +1 -1
  133. package/dist/Tabs/index.d.ts +2 -0
  134. package/dist/Tabs/index.js +1 -0
  135. package/dist/Tabs/index.js.map +1 -1
  136. package/dist/Tearsheet/Tearsheet.styles.js +5 -5
  137. package/dist/Tearsheet/storybook/PageLayoutDemo.js +3 -1
  138. package/dist/Tearsheet/storybook/PageLayoutDemo.js.map +1 -1
  139. package/dist/TextArea/TextArea.styles.js +1 -1
  140. package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
  141. package/dist/Thumbnail/Thumbnail.hooks.d.ts +14 -14
  142. package/dist/Thumbnail/Thumbnail.styles.js +21 -21
  143. package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
  144. package/dist/TieredSelect/TieredSelect.styles.js +9 -9
  145. package/dist/Tile/Tile.styles.js +8 -8
  146. package/dist/Title/Title.styles.js +7 -7
  147. package/dist/Toast/Toast.styles.js +3 -3
  148. package/dist/ToggleButton/ToggleButton.styles.js +1 -1
  149. package/dist/Token/Token.styles.js +5 -5
  150. package/dist/ToolHeader/ToolHeader.styles.js +6 -6
  151. package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
  152. package/dist/Tooltip/Tooltip.styles.js +3 -3
  153. package/dist/Tree/Tree.js +1 -1
  154. package/dist/Tree/Tree.styles.js +10 -10
  155. package/dist/Typeahead/Typeahead.styles.js +4 -4
  156. package/dist/Typography/Typography.styles.js +1 -1
  157. package/dist/Typography/Typography.table.story.js +2 -2
  158. package/dist/_hooks/I18n.d.ts +92 -1
  159. package/dist/_locales/de-DE.json +8 -4
  160. package/dist/_locales/en-AU.json +7 -3
  161. package/dist/_locales/en-CA.json +7 -3
  162. package/dist/_locales/en-GB.json +7 -3
  163. package/dist/_locales/en.json +1 -1
  164. package/dist/_locales/es-ES.json +7 -3
  165. package/dist/_locales/es.json +7 -3
  166. package/dist/_locales/fr-CA.json +10 -6
  167. package/dist/_locales/fr-FR.json +8 -4
  168. package/dist/_locales/is-IS.json +7 -3
  169. package/dist/_locales/it-IT.json +7 -3
  170. package/dist/_locales/ja-JP.json +7 -3
  171. package/dist/_locales/nb-NO.json +79 -75
  172. package/dist/_locales/pl-PL.json +7 -3
  173. package/dist/_locales/pseudo.json +1 -1
  174. package/dist/_locales/pt-BR.json +7 -3
  175. package/dist/_locales/pt-PT.json +13 -9
  176. package/dist/_locales/th-TH.json +7 -3
  177. package/dist/_locales/zh-SG.json +7 -3
  178. package/dist/_locales/zh-TW.json +13 -9
  179. package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
  180. package/dist/_storyHelpers_/components/StoryGrid.js +3 -3
  181. package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +4 -4
  182. package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
  183. package/dist/_typedoc/AvatarStack/AvatarStack.types.json +25 -25
  184. package/dist/_typedoc/Badge/Badge.types.json +6 -6
  185. package/dist/_typedoc/Banner/Banner.types.json +15 -15
  186. package/dist/_typedoc/Box/Box.types.json +68 -68
  187. package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +10 -10
  188. package/dist/_typedoc/Button/Button.types.json +14 -14
  189. package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
  190. package/dist/_typedoc/Card/Card.types.json +6 -6
  191. package/dist/_typedoc/Checkbox/Checkbox.types.json +8 -8
  192. package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
  193. package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
  194. package/dist/_typedoc/DateSelect/DateSelect.types.json +14 -14
  195. package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
  196. package/dist/_typedoc/Dropdown/Dropdown.types.json +41 -40
  197. package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +31 -31
  198. package/dist/_typedoc/Dropzone/Dropzone.types.json +44 -44
  199. package/dist/_typedoc/EmptyState/EmptyState.types.json +18 -18
  200. package/dist/_typedoc/FileList/FileList.types.json +9 -9
  201. package/dist/_typedoc/FileSelect/FileSelect.types.json +27 -27
  202. package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
  203. package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
  204. package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +9 -9
  205. package/dist/_typedoc/Flex/Flex.types.json +27 -27
  206. package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
  207. package/dist/_typedoc/Form/Form.types.json +770 -770
  208. package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +14 -13
  209. package/dist/_typedoc/Grid/Grid.types.json +8 -8
  210. package/dist/_typedoc/GroupSelect/GroupSelect.types.json +54 -54
  211. package/dist/_typedoc/Input/Input.types.json +2 -2
  212. package/dist/_typedoc/Link/Link.types.json +1 -1
  213. package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
  214. package/dist/_typedoc/Menu/Menu.types.json +62 -62
  215. package/dist/_typedoc/MenuImperative/MenuImperative.types.json +84 -84
  216. package/dist/_typedoc/Modal/Modal.types.json +48 -48
  217. package/dist/_typedoc/MultiSelect/MultiSelect.types.json +33 -33
  218. package/dist/_typedoc/NextTile/NextTile.types.json +33 -33
  219. package/dist/_typedoc/Notation/Notation.types.json +4 -4
  220. package/dist/_typedoc/NumberInput/NumberInput.types.json +52 -52
  221. package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +33 -33
  222. package/dist/_typedoc/PageLayout/PageLayout.types.json +48 -38
  223. package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
  224. package/dist/_typedoc/Panel/Panel.types.json +28 -28
  225. package/dist/_typedoc/Pill/Pill.types.json +2 -2
  226. package/dist/_typedoc/PillSelect/PillSelect.types.json +49 -49
  227. package/dist/_typedoc/Popover/Popover.types.json +15 -15
  228. package/dist/_typedoc/ProgressBar/ProgressBar.types.json +7 -7
  229. package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
  230. package/dist/_typedoc/Required/Required.types.json +8 -6
  231. package/dist/_typedoc/Search/Search.types.json +18 -18
  232. package/dist/_typedoc/Section/Section.types.json +15 -15
  233. package/dist/_typedoc/SegmentedController/SegmentedController.types.json +21 -21
  234. package/dist/_typedoc/Select/Select.types.json +67 -72
  235. package/dist/_typedoc/SettingsPage/SettingsPage.types.json +10 -10
  236. package/dist/_typedoc/Slider/Slider.types.json +6 -6
  237. package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
  238. package/dist/_typedoc/SplitViewCard/SplitViewCard.types.json +14 -14
  239. package/dist/_typedoc/Table/Table.types.json +105 -105
  240. package/dist/_typedoc/Tabs/Tablist.types.json +17 -0
  241. package/dist/_typedoc/Tabs/Tabs.types.json +46 -25
  242. package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
  243. package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
  244. package/dist/_typedoc/TextEditor/TextEditor.types.json +11 -11
  245. package/dist/_typedoc/TextEditorOutput/TextEditorOutput.types.json +4 -4
  246. package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
  247. package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +43 -43
  248. package/dist/_typedoc/TieredSelect/TieredSelect.types.json +29 -29
  249. package/dist/_typedoc/Tile/Tile.types.json +8 -8
  250. package/dist/_typedoc/Title/Title.types.json +1 -1
  251. package/dist/_typedoc/Toast/Toast.types.json +4 -4
  252. package/dist/_typedoc/ToggleButton/ToggleButton.types.json +4 -4
  253. package/dist/_typedoc/Token/Token.types.json +7 -7
  254. package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
  255. package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +8 -8
  256. package/dist/_typedoc/Tooltip/Tooltip.types.json +15 -15
  257. package/dist/_typedoc/Tree/Tree.types.json +88 -88
  258. package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
  259. package/dist/_typedoc/Typography/Typography.types.json +9 -9
  260. package/dist/_typedoc/_utils/types.json +3 -3
  261. package/dist/_typedoc/a11y-tips.json +1 -1
  262. package/dist/_typedoc/deprecations.json +1 -1
  263. package/dist/_utils/propsTypedoc.d.ts +1 -0
  264. package/dist/_utils/propsTypedoc.js +1 -0
  265. package/dist/_utils/propsTypedoc.js.map +1 -1
  266. package/package.json +1 -1
@@ -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_49_1__sc-w10btf-0"
13
+ componentId: "core-12_50_1__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_49_1__sc-w10btf-1"
17
+ componentId: "core-12_50_1__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_49_1__sc-w10btf-2"
21
+ componentId: "core-12_50_1__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_49_1__sc-w10btf-3"
32
+ componentId: "core-12_50_1__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_49_1__sc-w10btf-4"
36
+ componentId: "core-12_50_1__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_49_1__sc-w10btf-5"
40
+ componentId: "core-12_50_1__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);
@@ -3,8 +3,8 @@ import type { PageComponentProps, PageFooterProps } from '../PageLayout/PageLayo
3
3
  import type { Props } from '../_utils/types';
4
4
  import type { DetailPageCardProps, DetailPageProps, DetailPageWidth } from './DetailPage.types';
5
5
  export declare const DetailPageViewContext: React.Context<{
6
- width: DetailPageWidth;
7
6
  hasNavigation: boolean;
7
+ width: DetailPageWidth;
8
8
  }>;
9
9
  export declare const Heading: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLDivElement>>;
10
10
  export declare const Body: React.ForwardRefExoticComponent<PageComponentProps & React.RefAttributes<HTMLDivElement>>;
@@ -31,6 +31,7 @@ export declare const Card: React.ForwardRefExoticComponent<DetailPageCardProps &
31
31
  - DetailPage.Body
32
32
  - DetailPage.Title
33
33
  - DetailPage.Banner
34
+ - Required
34
35
  - DetailPage.Card
35
36
  - DetailPage.Banner
36
37
  - DetailPage.Section
@@ -1,4 +1,4 @@
1
- var _excluded = ["width", "hasNavigation", "children"],
1
+ var _excluded = ["children", "hasNavigation", "width"],
2
2
  _excluded2 = ["children"],
3
3
  _excluded3 = ["navigationLabel"];
4
4
  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); }
@@ -17,20 +17,20 @@ import { mergeRefs } from '../_utils/mergeRefs';
17
17
  import { gridConfig } from './DetailPage.constants';
18
18
  import { StyledDetailPageBody, StyledDetailPageCard, StyledDetailPageFooter, StyledDetailPageFooterActions, StyledDetailPageFooterContent, StyledDetailPageFooterNotation } from './DetailPage.styles';
19
19
  export var DetailPageViewContext = /*#__PURE__*/React.createContext({
20
- width: 'md',
21
- hasNavigation: false
20
+ hasNavigation: false,
21
+ width: 'md'
22
22
  });
23
23
  var DetailPage_ = /*#__PURE__*/React.forwardRef(function DetailPage_(_ref, ref) {
24
- var _ref$width = _ref.width,
25
- width = _ref$width === void 0 ? 'md' : _ref$width,
24
+ var children = _ref.children,
26
25
  _ref$hasNavigation = _ref.hasNavigation,
27
26
  hasNavigation = _ref$hasNavigation === void 0 ? false : _ref$hasNavigation,
28
- children = _ref.children,
27
+ _ref$width = _ref.width,
28
+ width = _ref$width === void 0 ? 'md' : _ref$width,
29
29
  props = _objectWithoutProperties(_ref, _excluded);
30
30
  return /*#__PURE__*/React.createElement(DetailPageViewContext.Provider, {
31
31
  value: {
32
- width: width,
33
- hasNavigation: hasNavigation
32
+ hasNavigation: hasNavigation,
33
+ width: width
34
34
  }
35
35
  }, /*#__PURE__*/React.createElement(AnchorNavigationProvider, {
36
36
  offset: spacing.xs
@@ -48,8 +48,8 @@ export var Heading = /*#__PURE__*/React.forwardRef(function Heading(props, ref)
48
48
  });
49
49
  export var Body = /*#__PURE__*/React.forwardRef(function Body(props, ref) {
50
50
  var _React$useContext = React.useContext(DetailPageViewContext),
51
- width = _React$useContext.width,
52
- hasNavigation = _React$useContext.hasNavigation;
51
+ hasNavigation = _React$useContext.hasNavigation,
52
+ width = _React$useContext.width;
53
53
  return /*#__PURE__*/React.createElement(Page.Body, null, hasNavigation && /*#__PURE__*/React.createElement(PageBodyNavigation, null), /*#__PURE__*/React.createElement(Grid.Row, null, /*#__PURE__*/React.createElement(Grid.Col, {
54
54
  colWidth: gridConfig[width].width,
55
55
  colStart: gridConfig[width].offset
@@ -124,6 +124,7 @@ Card.displayName = 'DetailPage.Card';
124
124
  - DetailPage.Body
125
125
  - DetailPage.Title
126
126
  - DetailPage.Banner
127
+ - Required
127
128
  - DetailPage.Card
128
129
  - DetailPage.Banner
129
130
  - DetailPage.Section
@@ -1 +1 @@
1
- {"version":3,"file":"DetailPage.js","names":["useId","React","AnchorNavigationProvider","useAnchorNavigationContext","Grid","Page","PageBodyNavigation","Section","SectionProvider","H1","spacing","addSubcomponents","mergeRefs","gridConfig","StyledDetailPageBody","StyledDetailPageCard","StyledDetailPageFooter","StyledDetailPageFooterActions","StyledDetailPageFooterContent","StyledDetailPageFooterNotation","DetailPageViewContext","createContext","width","hasNavigation","DetailPage_","forwardRef","_ref","ref","_ref$width","_ref$hasNavigation","children","props","_objectWithoutProperties","_excluded","createElement","Provider","value","offset","xs","_extends","fillHeight","Heading","Body","_React$useContext","useContext","Row","Col","colWidth","colStart","Footer","_ref2","_excluded2","FooterNotation","FooterActions","Actions","Card","_ref3","navigationLabel","_excluded3","cardId","card","useRef","_useAnchorNavigationC","registerSection","unregisterSection","id","useEffect","_card$current","_card$current$querySe","label","current","querySelector","textContent","displayName","DetailPage","Main","Header","Breadcrumbs","Banner","Title","Tabs","Aside"],"sources":["../../src/DetailPage/DetailPage.tsx"],"sourcesContent":["import { useId } from '@react-aria/utils'\nimport React from 'react'\nimport {\n AnchorNavigationProvider,\n useAnchorNavigationContext,\n} from '../AnchorNavigation/AnchorNavigationProvider'\nimport { Grid } from '../Grid/Grid'\nimport { Page, PageBodyNavigation } from '../PageLayout/PageLayout'\nimport type {\n PageComponentProps,\n PageFooterProps,\n} from '../PageLayout/PageLayout.types'\nimport { Section, SectionProvider } from '../Section/Section'\nimport { H1 } from '../Semantic/Semantic'\nimport { spacing } from '../_styles/spacing'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport type { Props } from '../_utils/types'\nimport { gridConfig } from './DetailPage.constants'\nimport {\n StyledDetailPageBody,\n StyledDetailPageCard,\n StyledDetailPageFooter,\n StyledDetailPageFooterActions,\n StyledDetailPageFooterContent,\n StyledDetailPageFooterNotation,\n} from './DetailPage.styles'\nimport type {\n DetailPageCardProps,\n DetailPageProps,\n DetailPageWidth,\n} from './DetailPage.types'\n\nexport const DetailPageViewContext = React.createContext<{\n width: DetailPageWidth\n hasNavigation: boolean\n}>({\n width: 'md',\n hasNavigation: false,\n})\n\nconst DetailPage_ = React.forwardRef<HTMLDivElement, DetailPageProps>(\n function DetailPage_(\n { width = 'md', hasNavigation = false, children, ...props },\n ref\n ) {\n return (\n <DetailPageViewContext.Provider value={{ width, hasNavigation }}>\n <AnchorNavigationProvider offset={spacing.xs}>\n <Page fillHeight ref={ref} {...props} data-core-react=\"detail-page\">\n {children}\n </Page>\n </AnchorNavigationProvider>\n </DetailPageViewContext.Provider>\n )\n }\n)\n\nexport const Heading = React.forwardRef<HTMLDivElement, Props>(function Heading(\n props,\n ref\n) {\n return <H1 ref={ref} {...props} />\n})\n\nexport const Body = React.forwardRef<HTMLDivElement, PageComponentProps>(\n function Body(props, ref) {\n const { width, hasNavigation } = React.useContext(DetailPageViewContext)\n\n return (\n <Page.Body>\n {hasNavigation && <PageBodyNavigation />}\n <Grid.Row>\n <Grid.Col\n colWidth={gridConfig[width].width}\n colStart={gridConfig[width].offset}\n >\n <StyledDetailPageBody ref={ref} {...props} />\n </Grid.Col>\n </Grid.Row>\n </Page.Body>\n )\n }\n)\n\nexport const Footer = React.forwardRef<HTMLDivElement, PageFooterProps>(\n function Footer({ children, ...props }, ref) {\n return (\n <StyledDetailPageFooter ref={ref} {...props}>\n <StyledDetailPageFooterContent>\n {children}\n </StyledDetailPageFooterContent>\n </StyledDetailPageFooter>\n )\n }\n)\n\nexport const FooterNotation = React.forwardRef<HTMLDivElement, Props>(\n function FooterNotation(props, ref) {\n return <StyledDetailPageFooterNotation ref={ref} {...props} />\n }\n)\n\nexport const FooterActions = React.forwardRef<HTMLDivElement, Props>(\n function Actions(props, ref) {\n return <StyledDetailPageFooterActions ref={ref} {...props} />\n }\n)\n\nexport const Card = React.forwardRef<HTMLDivElement, DetailPageCardProps>(\n function Card({ navigationLabel, ...props }, ref) {\n const cardId = useId()\n const card = React.useRef<HTMLDivElement>(null)\n const { registerSection, unregisterSection } = useAnchorNavigationContext()\n const id = props.id || cardId\n\n React.useEffect(() => {\n // Use content of first H2 element as label if navigationLabel is not provided\n const label =\n navigationLabel || card.current?.querySelector('h2')?.textContent\n if (!card.current || !label) return\n\n registerSection(id, label, card.current)\n\n return () => unregisterSection(id)\n }, [id, navigationLabel]) // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n <SectionProvider>\n <StyledDetailPageCard ref={mergeRefs(ref, card)} id={id} {...props} />\n </SectionProvider>\n )\n }\n)\n\nDetailPage_.displayName = 'DetailPage'\nHeading.displayName = 'DetailPage.Heading'\nBody.displayName = 'DetailPage.Body'\nFooter.displayName = 'DetailPage.Footer'\nCard.displayName = 'DetailPage.Card'\n\n/**\n\n A detail page is used when an object is selected from a list page. The layout\n can adhere to varying predefined widths depending on use case.\n\n - DetailPage\n - DetailPage.Main\n - DetailPage.Header\n - DetailPage.Breadcrumbs\n - Breadcrumbs\n - DetailPage.Banner\n - Banner\n - DetailPage.Title\n - Title or H1\n - DetailPage.Tabs\n - Tabs\n - DetailPage.Body\n - DetailPage.Title\n - DetailPage.Banner\n - DetailPage.Card\n - DetailPage.Banner\n - DetailPage.Section\n - DetailPage.Section\n - DetailPage.Section\n - DetailPage.Footer\n - DetailPage.FooterNotation\n - DetailPage.FooterActions\n - Button\n - DetailPage.Aside\n - Panel\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-detailpage--edit)\n\n @see [Design Guidelines](https://design.procore.com/detail)\n\n */\nexport const DetailPage = addSubcomponents(\n {\n Main: Page.Main,\n Header: Page.Header,\n Breadcrumbs: Page.Breadcrumbs,\n Card,\n Banner: Page.Banner,\n Title: Page.Title,\n Heading,\n Tabs: Page.Tabs,\n Footer,\n FooterActions,\n FooterNotation,\n Section,\n Body,\n Aside: Page.Aside,\n },\n DetailPage_\n)\n"],"mappings":"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"}
1
+ {"version":3,"file":"DetailPage.js","names":["useId","React","AnchorNavigationProvider","useAnchorNavigationContext","Grid","Page","PageBodyNavigation","Section","SectionProvider","H1","spacing","addSubcomponents","mergeRefs","gridConfig","StyledDetailPageBody","StyledDetailPageCard","StyledDetailPageFooter","StyledDetailPageFooterActions","StyledDetailPageFooterContent","StyledDetailPageFooterNotation","DetailPageViewContext","createContext","hasNavigation","width","DetailPage_","forwardRef","_ref","ref","children","_ref$hasNavigation","_ref$width","props","_objectWithoutProperties","_excluded","createElement","Provider","value","offset","xs","_extends","fillHeight","Heading","Body","_React$useContext","useContext","Row","Col","colWidth","colStart","Footer","_ref2","_excluded2","FooterNotation","FooterActions","Actions","Card","_ref3","navigationLabel","_excluded3","cardId","card","useRef","_useAnchorNavigationC","registerSection","unregisterSection","id","useEffect","_card$current","_card$current$querySe","label","current","querySelector","textContent","displayName","DetailPage","Main","Header","Breadcrumbs","Banner","Title","Tabs","Aside"],"sources":["../../src/DetailPage/DetailPage.tsx"],"sourcesContent":["import { useId } from '@react-aria/utils'\nimport React from 'react'\nimport {\n AnchorNavigationProvider,\n useAnchorNavigationContext,\n} from '../AnchorNavigation/AnchorNavigationProvider'\nimport { Grid } from '../Grid/Grid'\nimport { Page, PageBodyNavigation } from '../PageLayout/PageLayout'\nimport type {\n PageComponentProps,\n PageFooterProps,\n} from '../PageLayout/PageLayout.types'\nimport { Section, SectionProvider } from '../Section/Section'\nimport { H1 } from '../Semantic/Semantic'\nimport { spacing } from '../_styles/spacing'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport type { Props } from '../_utils/types'\nimport { gridConfig } from './DetailPage.constants'\nimport {\n StyledDetailPageBody,\n StyledDetailPageCard,\n StyledDetailPageFooter,\n StyledDetailPageFooterActions,\n StyledDetailPageFooterContent,\n StyledDetailPageFooterNotation,\n} from './DetailPage.styles'\nimport type {\n DetailPageCardProps,\n DetailPageProps,\n DetailPageWidth,\n} from './DetailPage.types'\n\nexport const DetailPageViewContext = React.createContext<{\n hasNavigation: boolean\n width: DetailPageWidth\n}>({\n hasNavigation: false,\n width: 'md',\n})\n\nconst DetailPage_ = React.forwardRef<HTMLDivElement, DetailPageProps>(\n function DetailPage_(\n { children, hasNavigation = false, width = 'md', ...props },\n ref\n ) {\n return (\n <DetailPageViewContext.Provider value={{ hasNavigation, width }}>\n <AnchorNavigationProvider offset={spacing.xs}>\n <Page fillHeight ref={ref} {...props} data-core-react=\"detail-page\">\n {children}\n </Page>\n </AnchorNavigationProvider>\n </DetailPageViewContext.Provider>\n )\n }\n)\n\nexport const Heading = React.forwardRef<HTMLDivElement, Props>(function Heading(\n props,\n ref\n) {\n return <H1 ref={ref} {...props} />\n})\n\nexport const Body = React.forwardRef<HTMLDivElement, PageComponentProps>(\n function Body(props, ref) {\n const { hasNavigation, width } = React.useContext(DetailPageViewContext)\n\n return (\n <Page.Body>\n {hasNavigation && <PageBodyNavigation />}\n\n <Grid.Row>\n <Grid.Col\n colWidth={gridConfig[width].width}\n colStart={gridConfig[width].offset}\n >\n <StyledDetailPageBody ref={ref} {...props} />\n </Grid.Col>\n </Grid.Row>\n </Page.Body>\n )\n }\n)\n\nexport const Footer = React.forwardRef<HTMLDivElement, PageFooterProps>(\n function Footer({ children, ...props }, ref) {\n return (\n <StyledDetailPageFooter ref={ref} {...props}>\n <StyledDetailPageFooterContent>\n {children}\n </StyledDetailPageFooterContent>\n </StyledDetailPageFooter>\n )\n }\n)\n\nexport const FooterNotation = React.forwardRef<HTMLDivElement, Props>(\n function FooterNotation(props, ref) {\n return <StyledDetailPageFooterNotation ref={ref} {...props} />\n }\n)\n\nexport const FooterActions = React.forwardRef<HTMLDivElement, Props>(\n function Actions(props, ref) {\n return <StyledDetailPageFooterActions ref={ref} {...props} />\n }\n)\n\nexport const Card = React.forwardRef<HTMLDivElement, DetailPageCardProps>(\n function Card({ navigationLabel, ...props }, ref) {\n const cardId = useId()\n const card = React.useRef<HTMLDivElement>(null)\n const { registerSection, unregisterSection } = useAnchorNavigationContext()\n const id = props.id || cardId\n\n React.useEffect(() => {\n // Use content of first H2 element as label if navigationLabel is not provided\n const label =\n navigationLabel || card.current?.querySelector('h2')?.textContent\n if (!card.current || !label) return\n\n registerSection(id, label, card.current)\n\n return () => unregisterSection(id)\n }, [id, navigationLabel]) // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n <SectionProvider>\n <StyledDetailPageCard ref={mergeRefs(ref, card)} id={id} {...props} />\n </SectionProvider>\n )\n }\n)\n\nDetailPage_.displayName = 'DetailPage'\nHeading.displayName = 'DetailPage.Heading'\nBody.displayName = 'DetailPage.Body'\nFooter.displayName = 'DetailPage.Footer'\nCard.displayName = 'DetailPage.Card'\n\n/**\n\n A detail page is used when an object is selected from a list page. The layout\n can adhere to varying predefined widths depending on use case.\n\n - DetailPage\n - DetailPage.Main\n - DetailPage.Header\n - DetailPage.Breadcrumbs\n - Breadcrumbs\n - DetailPage.Banner\n - Banner\n - DetailPage.Title\n - Title or H1\n - DetailPage.Tabs\n - Tabs\n - DetailPage.Body\n - DetailPage.Title\n - DetailPage.Banner\n - Required\n - DetailPage.Card\n - DetailPage.Banner\n - DetailPage.Section\n - DetailPage.Section\n - DetailPage.Section\n - DetailPage.Footer\n - DetailPage.FooterNotation\n - DetailPage.FooterActions\n - Button\n - DetailPage.Aside\n - Panel\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-detailpage--edit)\n\n @see [Design Guidelines](https://design.procore.com/detail)\n\n */\nexport const DetailPage = addSubcomponents(\n {\n Main: Page.Main,\n Header: Page.Header,\n Breadcrumbs: Page.Breadcrumbs,\n Card,\n Banner: Page.Banner,\n Title: Page.Title,\n Heading,\n Tabs: Page.Tabs,\n Footer,\n FooterActions,\n FooterNotation,\n Section,\n Body,\n Aside: Page.Aside,\n },\n DetailPage_\n)\n"],"mappings":"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"}
@@ -3,37 +3,38 @@ import { Box } from '../Box/Box';
3
3
  import { Card } from '../Card/Card';
4
4
  import { Page } from '../PageLayout/PageLayout';
5
5
  import { getActions, StyledPageBanner } from '../PageLayout/PageLayout.styles';
6
+ import { StyledRequiredContainer } from '../Required/Required.styles';
6
7
  import { sectionClassnames, StyledSection, StyledSectionInner } from '../Section/Section.styles';
7
8
  import { colors } from '../_styles/colors';
8
9
  import { spacing } from '../_styles/spacing';
9
10
  export var StyledDetailPage = /*#__PURE__*/styled.div.withConfig({
10
11
  displayName: "StyledDetailPage",
11
- componentId: "core-12_49_1__sc-cytnlo-0"
12
+ componentId: "core-12_50_1__sc-cytnlo-0"
12
13
  })(["background-color:", ";height:100%;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:space-between;"], colors.gray96);
13
14
  export var StyledDetailPageBody = /*#__PURE__*/styled.div.withConfig({
14
15
  displayName: "StyledDetailPageBody",
15
- componentId: "core-12_49_1__sc-cytnlo-1"
16
- })(["padding-bottom:", "px;"], spacing.xl);
16
+ componentId: "core-12_50_1__sc-cytnlo-1"
17
+ })(["padding-bottom:", "px;> ", "{margin-top:", "px;}"], spacing.xl, StyledRequiredContainer, spacing.lg);
17
18
  export var StyledDetailPageFooterNotation = /*#__PURE__*/styled.div.withConfig({
18
19
  displayName: "StyledDetailPageFooterNotation",
19
- componentId: "core-12_49_1__sc-cytnlo-2"
20
+ componentId: "core-12_50_1__sc-cytnlo-2"
20
21
  })(["flex-grow:1;z-index:1;"]);
21
22
  export var StyledDetailPageFooter = /*#__PURE__*/styled(Page.Footer).withConfig({
22
23
  displayName: "StyledDetailPageFooter",
23
- componentId: "core-12_49_1__sc-cytnlo-3"
24
+ componentId: "core-12_50_1__sc-cytnlo-3"
24
25
  })(["display:flex;padding:", "px 0;background-color:", ";justify-content:center;"], spacing.lg, colors.white);
25
26
  export var StyledDetailPageFooterActions = /*#__PURE__*/styled(Box).withConfig({
26
27
  displayName: "StyledDetailPageFooterActions",
27
- componentId: "core-12_49_1__sc-cytnlo-4"
28
+ componentId: "core-12_50_1__sc-cytnlo-4"
28
29
  })(["", ""], getActions());
29
30
  var maxFooterContentWidth = 1920;
30
31
  export var StyledDetailPageFooterContent = /*#__PURE__*/styled.div.withConfig({
31
32
  displayName: "StyledDetailPageFooterContent",
32
- componentId: "core-12_49_1__sc-cytnlo-5"
33
+ componentId: "core-12_50_1__sc-cytnlo-5"
33
34
  })(["width:100%;align-items:center;display:flex;justify-content:flex-end;padding:0 ", "px;max-width:", "px;"], spacing.xl, maxFooterContentWidth);
34
35
  var detailPageCardBorderRadius = 8;
35
36
  export var StyledDetailPageCard = /*#__PURE__*/styled(Card).withConfig({
36
37
  displayName: "StyledDetailPageCard",
37
- componentId: "core-12_49_1__sc-cytnlo-6"
38
+ componentId: "core-12_50_1__sc-cytnlo-6"
38
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);
39
40
  //# sourceMappingURL=DetailPage.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DetailPage.styles.js","names":["styled","Box","Card","Page","getActions","StyledPageBanner","sectionClassnames","StyledSection","StyledSectionInner","colors","spacing","StyledDetailPage","div","withConfig","displayName","componentId","gray96","StyledDetailPageBody","xl","StyledDetailPageFooterNotation","StyledDetailPageFooter","Footer","lg","white","StyledDetailPageFooterActions","maxFooterContentWidth","StyledDetailPageFooterContent","detailPageCardBorderRadius","StyledDetailPageCard","sm","levelAnonymous","level","xxl"],"sources":["../../src/DetailPage/DetailPage.styles.ts"],"sourcesContent":["import styled from 'styled-components'\nimport { Box } from '../Box/Box'\nimport { Card } from '../Card/Card'\nimport { Page } from '../PageLayout/PageLayout'\nimport { getActions, StyledPageBanner } from '../PageLayout/PageLayout.styles'\nimport {\n sectionClassnames,\n StyledSection,\n StyledSectionInner,\n} from '../Section/Section.styles'\nimport { colors } from '../_styles/colors'\nimport { spacing } from '../_styles/spacing'\n\nexport const StyledDetailPage = styled.div`\n background-color: ${colors.gray96};\n height: 100%;\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n`\n\nexport const StyledDetailPageBody = styled.div`\n padding-bottom: ${spacing.xl}px;\n`\n\nexport const StyledDetailPageFooterNotation = styled.div`\n flex-grow: 1;\n z-index: 1;\n`\n\nexport const StyledDetailPageFooter = styled(Page.Footer)`\n display: flex;\n padding: ${spacing.lg}px 0;\n background-color: ${colors.white};\n justify-content: center;\n`\n\nexport const StyledDetailPageFooterActions = styled(Box)`\n ${getActions()}\n`\n\nconst maxFooterContentWidth = 1920\n\nexport const StyledDetailPageFooterContent = styled.div`\n width: 100%;\n align-items: center;\n display: flex;\n justify-content: flex-end;\n padding: 0 ${spacing.xl}px;\n max-width: ${maxFooterContentWidth}px;\n`\n\nconst detailPageCardBorderRadius = 8\n\nexport const StyledDetailPageCard = styled(Card)`\n width: 100%;\n border-radius: ${detailPageCardBorderRadius}px;\n margin-top: ${spacing.lg}px;\n margin-bottom: ${spacing.sm}px;\n\n & + & {\n margin-top: ${spacing.sm}px;\n }\n\n &:first-child {\n margin-top: 0;\n }\n &:last-child {\n margin-bottom: ${spacing.lg}px;\n }\n\n & > ${StyledPageBanner} {\n padding: ${spacing.lg}px ${spacing.lg}px 0 ${spacing.lg}px;\n max-width: 100%;\n\n &:empty {\n padding: 0;\n }\n }\n\n & > ${StyledPageBanner} + ${StyledSection} > ${StyledSectionInner} {\n border-top: 0;\n }\n\n > .${sectionClassnames.levelAnonymous}:first-child\n + .${sectionClassnames.level(2)},\n > ${StyledPageBanner}\n + .${sectionClassnames.levelAnonymous}\n + .${sectionClassnames.level(2)} {\n margin-top: ${spacing.xxl * -1}px;\n }\n`\n"],"mappings":"AAAA,OAAOA,MAAM,MAAM,mBAAmB;AACtC,SAASC,GAAG,QAAQ,YAAY;AAChC,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,IAAI,QAAQ,0BAA0B;AAC/C,SAASC,UAAU,EAAEC,gBAAgB,QAAQ,iCAAiC;AAC9E,SACEC,iBAAiB,EACjBC,aAAa,EACbC,kBAAkB,QACb,2BAA2B;AAClC,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,OAAO,QAAQ,oBAAoB;AAE5C,OAAO,IAAMC,gBAAgB,gBAAGX,MAAM,CAACY,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,iJACpBN,MAAM,CAACO,MAAM,CAOlC;AAED,OAAO,IAAMC,oBAAoB,gBAAGjB,MAAM,CAACY,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,+BAC1BL,OAAO,CAACQ,EAAE,CAC7B;AAED,OAAO,IAAMC,8BAA8B,gBAAGnB,MAAM,CAACY,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,8BAGvD;AAED,OAAO,IAAMK,sBAAsB,gBAAGpB,MAAM,CAACG,IAAI,CAACkB,MAAM,CAAC,CAAAR,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,oFAE5CL,OAAO,CAACY,EAAE,EACDb,MAAM,CAACc,KAAK,CAEjC;AAED,OAAO,IAAMC,6BAA6B,gBAAGxB,MAAM,CAACC,GAAG,CAAC,CAAAY,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,aACpDX,UAAU,CAAC,CAAC,CACf;AAED,IAAMqB,qBAAqB,GAAG,IAAI;AAElC,OAAO,IAAMC,6BAA6B,gBAAG1B,MAAM,CAACY,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,+GAKxCL,OAAO,CAACQ,EAAE,EACVO,qBAAqB,CACnC;AAED,IAAME,0BAA0B,GAAG,CAAC;AAEpC,OAAO,IAAMC,oBAAoB,gBAAG5B,MAAM,CAACE,IAAI,CAAC,CAAAW,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,8VAE7BY,0BAA0B,EAC7BjB,OAAO,CAACY,EAAE,EACPZ,OAAO,CAACmB,EAAE,EAGXnB,OAAO,CAACmB,EAAE,EAOPnB,OAAO,CAACY,EAAE,EAGvBjB,gBAAgB,EACTK,OAAO,CAACY,EAAE,EAAMZ,OAAO,CAACY,EAAE,EAAQZ,OAAO,CAACY,EAAE,EAQnDjB,gBAAgB,EAAME,aAAa,EAAMC,kBAAkB,EAI5DF,iBAAiB,CAACwB,cAAc,EAC9BxB,iBAAiB,CAACyB,KAAK,CAAC,CAAC,CAAC,EAC3B1B,gBAAgB,EACfC,iBAAiB,CAACwB,cAAc,EAChCxB,iBAAiB,CAACyB,KAAK,CAAC,CAAC,CAAC,EACjBrB,OAAO,CAACsB,GAAG,GAAG,CAAC,CAAC,CAEjC"}
1
+ {"version":3,"file":"DetailPage.styles.js","names":["styled","Box","Card","Page","getActions","StyledPageBanner","StyledRequiredContainer","sectionClassnames","StyledSection","StyledSectionInner","colors","spacing","StyledDetailPage","div","withConfig","displayName","componentId","gray96","StyledDetailPageBody","xl","lg","StyledDetailPageFooterNotation","StyledDetailPageFooter","Footer","white","StyledDetailPageFooterActions","maxFooterContentWidth","StyledDetailPageFooterContent","detailPageCardBorderRadius","StyledDetailPageCard","sm","levelAnonymous","level","xxl"],"sources":["../../src/DetailPage/DetailPage.styles.ts"],"sourcesContent":["import styled from 'styled-components'\nimport { Box } from '../Box/Box'\nimport { Card } from '../Card/Card'\nimport { Page } from '../PageLayout/PageLayout'\nimport { getActions, StyledPageBanner } from '../PageLayout/PageLayout.styles'\nimport { StyledRequiredContainer } from '../Required/Required.styles'\nimport {\n sectionClassnames,\n StyledSection,\n StyledSectionInner,\n} from '../Section/Section.styles'\nimport { colors } from '../_styles/colors'\nimport { spacing } from '../_styles/spacing'\n\nexport const StyledDetailPage = styled.div`\n background-color: ${colors.gray96};\n height: 100%;\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n`\n\nexport const StyledDetailPageBody = styled.div`\n padding-bottom: ${spacing.xl}px;\n\n > ${StyledRequiredContainer} {\n margin-top: ${spacing.lg}px;\n }\n`\n\nexport const StyledDetailPageFooterNotation = styled.div`\n flex-grow: 1;\n z-index: 1;\n`\n\nexport const StyledDetailPageFooter = styled(Page.Footer)`\n display: flex;\n padding: ${spacing.lg}px 0;\n background-color: ${colors.white};\n justify-content: center;\n`\n\nexport const StyledDetailPageFooterActions = styled(Box)`\n ${getActions()}\n`\n\nconst maxFooterContentWidth = 1920\n\nexport const StyledDetailPageFooterContent = styled.div`\n width: 100%;\n align-items: center;\n display: flex;\n justify-content: flex-end;\n padding: 0 ${spacing.xl}px;\n max-width: ${maxFooterContentWidth}px;\n`\n\nconst detailPageCardBorderRadius = 8\n\nexport const StyledDetailPageCard = styled(Card)`\n width: 100%;\n border-radius: ${detailPageCardBorderRadius}px;\n margin-top: ${spacing.lg}px;\n margin-bottom: ${spacing.sm}px;\n\n & + & {\n margin-top: ${spacing.sm}px;\n }\n\n &:first-child {\n margin-top: 0;\n }\n &:last-child {\n margin-bottom: ${spacing.lg}px;\n }\n\n & > ${StyledPageBanner} {\n padding: ${spacing.lg}px ${spacing.lg}px 0 ${spacing.lg}px;\n max-width: 100%;\n\n &:empty {\n padding: 0;\n }\n }\n\n & > ${StyledPageBanner} + ${StyledSection} > ${StyledSectionInner} {\n border-top: 0;\n }\n\n > .${sectionClassnames.levelAnonymous}:first-child\n + .${sectionClassnames.level(2)},\n > ${StyledPageBanner}\n + .${sectionClassnames.levelAnonymous}\n + .${sectionClassnames.level(2)} {\n margin-top: ${spacing.xxl * -1}px;\n }\n`\n"],"mappings":"AAAA,OAAOA,MAAM,MAAM,mBAAmB;AACtC,SAASC,GAAG,QAAQ,YAAY;AAChC,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,IAAI,QAAQ,0BAA0B;AAC/C,SAASC,UAAU,EAAEC,gBAAgB,QAAQ,iCAAiC;AAC9E,SAASC,uBAAuB,QAAQ,6BAA6B;AACrE,SACEC,iBAAiB,EACjBC,aAAa,EACbC,kBAAkB,QACb,2BAA2B;AAClC,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,OAAO,QAAQ,oBAAoB;AAE5C,OAAO,IAAMC,gBAAgB,gBAAGZ,MAAM,CAACa,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,iJACpBN,MAAM,CAACO,MAAM,CAOlC;AAED,OAAO,IAAMC,oBAAoB,gBAAGlB,MAAM,CAACa,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,yDAC1BL,OAAO,CAACQ,EAAE,EAExBb,uBAAuB,EACXK,OAAO,CAACS,EAAE,CAE3B;AAED,OAAO,IAAMC,8BAA8B,gBAAGrB,MAAM,CAACa,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,8BAGvD;AAED,OAAO,IAAMM,sBAAsB,gBAAGtB,MAAM,CAACG,IAAI,CAACoB,MAAM,CAAC,CAAAT,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,oFAE5CL,OAAO,CAACS,EAAE,EACDV,MAAM,CAACc,KAAK,CAEjC;AAED,OAAO,IAAMC,6BAA6B,gBAAGzB,MAAM,CAACC,GAAG,CAAC,CAAAa,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,aACpDZ,UAAU,CAAC,CAAC,CACf;AAED,IAAMsB,qBAAqB,GAAG,IAAI;AAElC,OAAO,IAAMC,6BAA6B,gBAAG3B,MAAM,CAACa,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,+GAKxCL,OAAO,CAACQ,EAAE,EACVO,qBAAqB,CACnC;AAED,IAAME,0BAA0B,GAAG,CAAC;AAEpC,OAAO,IAAMC,oBAAoB,gBAAG7B,MAAM,CAACE,IAAI,CAAC,CAAAY,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,8VAE7BY,0BAA0B,EAC7BjB,OAAO,CAACS,EAAE,EACPT,OAAO,CAACmB,EAAE,EAGXnB,OAAO,CAACmB,EAAE,EAOPnB,OAAO,CAACS,EAAE,EAGvBf,gBAAgB,EACTM,OAAO,CAACS,EAAE,EAAMT,OAAO,CAACS,EAAE,EAAQT,OAAO,CAACS,EAAE,EAQnDf,gBAAgB,EAAMG,aAAa,EAAMC,kBAAkB,EAI5DF,iBAAiB,CAACwB,cAAc,EAC9BxB,iBAAiB,CAACyB,KAAK,CAAC,CAAC,CAAC,EAC3B3B,gBAAgB,EACfE,iBAAiB,CAACwB,cAAc,EAChCxB,iBAAiB,CAACyB,KAAK,CAAC,CAAC,CAAC,EACjBrB,OAAO,CAACsB,GAAG,GAAG,CAAC,CAAC,CAEjC"}
@@ -3,16 +3,16 @@ import type { SectionProps } from '../Section/Section.types';
3
3
  import type { Props } from '../_utils/types';
4
4
  export declare type DetailPageWidth = 'md' | 'lg' | 'xl' | 'block';
5
5
  export interface DetailPageProps extends Props {
6
- /**
7
- * @description Width of the content
8
- * @since 10.19.0
9
- */
10
- width?: DetailPageWidth;
11
6
  /**
12
7
  * @description If the page has anchor navigation
13
8
  * @since TBD
14
9
  */
15
10
  hasNavigation?: boolean;
11
+ /**
12
+ * @description Width of the content
13
+ * @since 10.19.0
14
+ */
15
+ width?: DetailPageWidth;
16
16
  }
17
17
  export interface DetailPageAsideProps extends PageAsideProps {
18
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DetailPage.types.js","names":[],"sources":["../../src/DetailPage/DetailPage.types.ts"],"sourcesContent":["import type {\n PageAsideProps,\n PageComponentProps,\n PageHeaderProps,\n} from '../PageLayout/PageLayout.types'\nimport type { SectionProps } from '../Section/Section.types'\nimport type { Props } from '../_utils/types'\n\nexport type DetailPageWidth = 'md' | 'lg' | 'xl' | 'block'\n\nexport interface DetailPageProps extends Props {\n /**\n * @description Width of the content\n * @since 10.19.0\n */\n width?: DetailPageWidth\n\n /**\n * @description If the page has anchor navigation\n * @since TBD\n */\n hasNavigation?: boolean\n}\nexport interface DetailPageAsideProps extends PageAsideProps {}\n\nexport interface DetailPageHeaderProps extends PageHeaderProps {}\n\nexport interface DetailPageSectionProps extends SectionProps {}\n\nexport interface DetailPageCardProps extends PageComponentProps {\n navigationLabel?: string\n}\n"],"mappings":""}
1
+ {"version":3,"file":"DetailPage.types.js","names":[],"sources":["../../src/DetailPage/DetailPage.types.ts"],"sourcesContent":["import type {\n PageAsideProps,\n PageComponentProps,\n PageHeaderProps,\n} from '../PageLayout/PageLayout.types'\nimport type { SectionProps } from '../Section/Section.types'\nimport type { Props } from '../_utils/types'\n\nexport type DetailPageWidth = 'md' | 'lg' | 'xl' | 'block'\n\nexport interface DetailPageProps extends Props {\n /**\n * @description If the page has anchor navigation\n * @since TBD\n */\n hasNavigation?: boolean\n\n /**\n * @description Width of the content\n * @since 10.19.0\n */\n width?: DetailPageWidth\n}\nexport interface DetailPageAsideProps extends PageAsideProps {}\n\nexport interface DetailPageHeaderProps extends PageHeaderProps {}\n\nexport interface DetailPageSectionProps extends SectionProps {}\n\nexport interface DetailPageCardProps extends PageComponentProps {\n navigationLabel?: string\n}\n"],"mappings":""}
@@ -3,7 +3,13 @@ import type { PageHeaderTemplateProps } from '../PageTemplate/PageHeaderTemplate
3
3
  import type { PageTemplateProps } from '../PageTemplate/PageTemplate';
4
4
  import type { UsingProps } from '../_utils/types';
5
5
  export declare type DetailPageHeaderTemplateProps = UsingProps<PageHeaderTemplateProps, 'breadcrumbs' | 'heading', 'actions' | 'banner' | 'pills' | 'subheading' | 'tabs' | 'toggleAction'>;
6
- export declare type DetailPageFooterTemplateProps = UsingProps<PageFooterTemplateProps, 'actions', 'required' | 'notation'>;
6
+ export declare type DetailPageFooterTemplateProps = UsingProps<PageFooterTemplateProps, 'actions',
7
+ /**
8
+ * @a11y @deprecated required is deprecated as this is not the correct placement of this for accessibility
9
+ * and will be removed in a future version, only being notation
10
+ * @deprecatedSince 12.48.0
11
+ */
12
+ 'required' | 'notation'>;
7
13
  export declare type DetailPageTemplateProps = Pick<PageTemplateProps, 'header' | 'footer' | 'pane' | 'children'> & {
8
14
  /**
9
15
  * @since 12.20.0
@@ -1 +1 @@
1
- {"version":3,"file":"DetailPageTemplate.types.js","names":[],"sources":["../../src/DetailPageTemplate/DetailPageTemplate.types.ts"],"sourcesContent":["import type { PageFooterTemplateProps } from '../PageTemplate/PageFooterTemplate'\nimport type { PageHeaderTemplateProps } from '../PageTemplate/PageHeaderTemplate'\nimport type { PageTemplateProps } from '../PageTemplate/PageTemplate'\n\nimport type { UsingProps } from '../_utils/types'\n\nexport type DetailPageHeaderTemplateProps = UsingProps<\n PageHeaderTemplateProps,\n 'breadcrumbs' | 'heading',\n 'actions' | 'banner' | 'pills' | 'subheading' | 'tabs' | 'toggleAction'\n>\n\nexport type DetailPageFooterTemplateProps = UsingProps<\n PageFooterTemplateProps,\n 'actions',\n 'required' | 'notation'\n>\n\nexport type DetailPageTemplateProps = Pick<\n PageTemplateProps,\n 'header' | 'footer' | 'pane' | 'children'\n> & {\n /**\n * @since 12.20.0\n */\n headerProps?: DetailPageHeaderTemplateProps\n /**\n * @since 12.20.0\n */\n footerProps?: PageFooterTemplateProps\n /**\n * @since 12.20.0\n */\n hasNavigation?: boolean\n}\n"],"mappings":""}
1
+ {"version":3,"file":"DetailPageTemplate.types.js","names":[],"sources":["../../src/DetailPageTemplate/DetailPageTemplate.types.ts"],"sourcesContent":["import type { PageFooterTemplateProps } from '../PageTemplate/PageFooterTemplate'\nimport type { PageHeaderTemplateProps } from '../PageTemplate/PageHeaderTemplate'\nimport type { PageTemplateProps } from '../PageTemplate/PageTemplate'\n\nimport type { UsingProps } from '../_utils/types'\n\nexport type DetailPageHeaderTemplateProps = UsingProps<\n PageHeaderTemplateProps,\n 'breadcrumbs' | 'heading',\n 'actions' | 'banner' | 'pills' | 'subheading' | 'tabs' | 'toggleAction'\n>\n\nexport type DetailPageFooterTemplateProps = UsingProps<\n PageFooterTemplateProps,\n 'actions',\n /**\n * @a11y @deprecated required is deprecated as this is not the correct placement of this for accessibility\n * and will be removed in a future version, only being notation\n * @deprecatedSince 12.48.0\n */\n 'required' | 'notation'\n>\n\nexport type DetailPageTemplateProps = Pick<\n PageTemplateProps,\n 'header' | 'footer' | 'pane' | 'children'\n> & {\n /**\n * @since 12.20.0\n */\n headerProps?: DetailPageHeaderTemplateProps\n /**\n * @since 12.20.0\n */\n footerProps?: PageFooterTemplateProps\n /**\n * @since 12.20.0\n */\n hasNavigation?: boolean\n}\n"],"mappings":""}
@@ -154,7 +154,7 @@ var Dropdown_ = /*#__PURE__*/React.forwardRef(function Dropdown(_ref5, ref) {
154
154
  var menuRef = React.useRef(null);
155
155
  var buttonRef = React.useRef(null);
156
156
  var isSearchable = Boolean(onSearch);
157
- var isDialog = hasTabbableElements && !isSearchable;
157
+ var isDialog = hasTabbableElements || isSearchable;
158
158
  function afterHide(e) {
159
159
  // @ts-expect-error
160
160
  if ((e === null || e === void 0 ? void 0 : e.key) === 'Escape' || e !== null && e !== void 0 && e.restoreFocus) {
@@ -171,7 +171,7 @@ var Dropdown_ = /*#__PURE__*/React.forwardRef(function Dropdown(_ref5, ref) {
171
171
  var I18n = useI18nContext();
172
172
  var ariaLabel = props['aria-label'] || label || I18n.t("core.dropdown.".concat(props.loading ? 'loading' : 'moreOptions'));
173
173
  return /*#__PURE__*/React.createElement(OverlayTrigger, {
174
- role: isSearchable ? undefined : isDialog ? 'dialog' : 'menu',
174
+ role: isDialog ? 'dialog' : 'menu',
175
175
  trackAriaExpanded: isSearchable,
176
176
  passA11yPropsToOverlay: !isDialog,
177
177
  autoFocus: true,
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown.js","names":["CaretDown","CaretUp","EllipsisVertical","classNames","React","MenuImperative","useMenuImperativeControlNavigation","OverlayTrigger","useOverlayTriggerContext","useI18nContext","addSubcomponents","mergeRefs","StyledDropdownButton","StyledDropdownMenu","StyledDropdownSpinner","noop","isFunction","obj","isOpen","_ref","_ref$open","open","Item","forwardRef","_ref2","ref","_ref2$restoreFocus","restoreFocus","props","_objectWithoutProperties","_excluded","createElement","_extends","DropdownButton","_ref3","children","className","_ref3$arrow","arrow","_ref3$loading","loading","_ref3$open","_ref3$focus","focus","_ref3$variant","variant","_excluded2","caret","size","icon","undefined","iconRight","$loading","DropdownMenu","_ref4","footer","i18nScope","menuRef","onSearch_","onSearch","_ref4$onSelect","onSelect","onSelect_","id","overlayTriggerContext","_React$useState","useState","_React$useState2","_slicedToArray","search","setSearch","_useMenuImperativeCon","Boolean","menuId","menuProps","menuNavigationTriggerProps","selection","hide","e","target","value","onKeyDown","key","stopPropagation","shadowStrength","role","Search","onChange","Options","Footer","Dropdown_","Dropdown","_ref5","afterHide_","afterHide","afterShow","beforeHide","beforeShow","error","_ref5$i18nScope","label","_ref5$onKeyDown","_ref5$onSelect","_ref5$placement","placement","_ref5$restoreFocusOnH","restoreFocusOnHide","_ref5$variant","_ref5$hasTabbableElem","hasTabbableElements","_excluded3","useRef","buttonRef","isSearchable","isDialog","_buttonRef$current","current","I18n","ariaLabel","t","concat","trackAriaExpanded","passA11yPropsToOverlay","autoFocus","containFocus","overlay","useDropdownContext","DropdownConsumer","_ref6","displayName","Group"],"sources":["../../src/Dropdown/Dropdown.tsx"],"sourcesContent":["import { CaretDown, CaretUp, EllipsisVertical } from '@procore/core-icons/dist'\nimport classNames from 'classnames'\nimport React from 'react'\nimport {\n MenuImperative,\n useMenuImperativeControlNavigation,\n} from '../MenuImperative/MenuImperative'\nimport type { MenuRef, Selection } from '../MenuImperative/MenuImperative.types'\nimport {\n OverlayTrigger,\n useOverlayTriggerContext,\n} from '../OverlayTrigger/OverlayTrigger'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport {\n StyledDropdownButton,\n StyledDropdownMenu,\n StyledDropdownSpinner,\n} from './Dropdown.styles'\nimport type {\n ConsumerProps,\n DropdownButtonProps,\n DropdownItemProps,\n DropdownMenuProps,\n DropdownProps,\n} from './Dropdown.types'\n\nfunction noop() {}\nfunction isFunction(obj: any) {\n return typeof obj === 'function'\n}\nfunction isOpen({ open = false }) {\n return open\n}\n\nconst Item = React.forwardRef<HTMLDivElement, DropdownItemProps>(function Item(\n { restoreFocus = false, ...props },\n ref\n) {\n return (\n <MenuImperative.Item ref={ref} restoreFocus={restoreFocus} {...props} />\n )\n}) as typeof MenuImperative.Item\n\nexport const DropdownButton = React.forwardRef<\n HTMLButtonElement,\n DropdownButtonProps\n>(function DropdownButton(\n {\n children,\n className,\n arrow = false,\n loading = false,\n open = false,\n focus = false,\n variant = 'secondary',\n ...props\n },\n ref\n) {\n const caret =\n arrow && (open ? <CaretUp size=\"sm\" /> : <CaretDown size=\"sm\" />)\n\n const icon = loading ? (\n <StyledDropdownSpinner\n size=\"xs\"\n variant={variant === 'primary' ? 'light' : 'default'}\n />\n ) : (\n caret\n )\n\n return (\n <StyledDropdownButton\n {...props}\n className={classNames(className, {\n focus: isFunction(focus) ? (focus as Function)({ open }) : focus,\n })}\n aria-busy={loading || undefined}\n iconRight={icon}\n $loading={loading}\n variant={variant}\n ref={ref}\n >\n {children}\n </StyledDropdownButton>\n )\n})\n\nconst DropdownMenu = React.forwardRef<HTMLDivElement, DropdownMenuProps>(\n function DropdownMenu(\n {\n children,\n footer,\n i18nScope,\n menuRef,\n onSearch: onSearch_,\n onSelect: onSelect_ = noop,\n id,\n },\n ref\n ) {\n const overlayTriggerContext = useOverlayTriggerContext()\n\n const [search, setSearch] = React.useState('')\n const { menuProps, menuNavigationTriggerProps } =\n useMenuImperativeControlNavigation(menuRef, Boolean(onSearch_), {\n menuId: id,\n })\n\n function onSelect(selection: Selection) {\n overlayTriggerContext.hide({ restoreFocus: selection.restoreFocus })\n\n onSelect_(selection)\n }\n\n function onSearch(e: React.ChangeEvent<HTMLInputElement>) {\n setSearch(e.target.value)\n\n onSearch_?.(e)\n }\n\n function onKeyDown(e: React.KeyboardEvent<HTMLInputElement>) {\n // This is disconnected from the OverlayTrigger closing on Escape.\n // Closing a dropdown with Escape will not close a Modal, because stopP.\n // It is called only once because the menu component is unmounted.\n // The next Escape will propagate.\n if (e.key === 'Escape' || e.key === 'Esc') {\n // only let parent listeners (modal, overlay) know when empty\n e.stopPropagation()\n }\n }\n\n return (\n <StyledDropdownMenu ref={ref} shadowStrength={2}>\n <MenuImperative\n {...menuProps}\n ref={menuRef}\n onKeyDown={onKeyDown}\n onSelect={onSelect}\n role=\"menu\"\n >\n {onSearch_ && (\n <MenuImperative.Search\n {...menuNavigationTriggerProps}\n onChange={onSearch}\n i18nScope={i18nScope}\n />\n )}\n <MenuImperative.Options>{children}</MenuImperative.Options>\n {footer && <MenuImperative.Footer>{footer}</MenuImperative.Footer>}\n </MenuImperative>\n </StyledDropdownMenu>\n )\n }\n)\n\nconst Dropdown_ = React.forwardRef<HTMLButtonElement, DropdownProps>(\n function Dropdown(\n {\n afterHide: afterHide_,\n afterShow,\n beforeHide,\n beforeShow,\n children,\n error,\n footer,\n i18nScope = 'core.dropdown',\n icon,\n label,\n onKeyDown = noop,\n onSearch,\n onSelect = noop,\n placement = 'bottom-left',\n restoreFocusOnHide = false,\n variant = 'secondary',\n hasTabbableElements = false,\n ...props\n },\n ref\n ) {\n const menuRef = React.useRef<MenuRef>(null)\n const buttonRef = React.useRef<HTMLButtonElement>(null)\n const isSearchable = Boolean(onSearch)\n const isDialog = hasTabbableElements && !isSearchable\n\n function afterHide(e: Event | undefined) {\n // @ts-expect-error\n if (e?.key === 'Escape' || e?.restoreFocus) {\n buttonRef.current?.focus()\n }\n\n afterHide_?.(e)\n\n onSearch?.({\n target: { value: '' },\n } as React.ChangeEvent<HTMLInputElement>)\n }\n\n const I18n = useI18nContext()\n\n const ariaLabel =\n props['aria-label'] ||\n label ||\n I18n.t(`core.dropdown.${props.loading ? 'loading' : 'moreOptions'}`)\n\n return (\n <OverlayTrigger\n role={isSearchable ? undefined : isDialog ? 'dialog' : 'menu'}\n trackAriaExpanded={isSearchable}\n passA11yPropsToOverlay={!isDialog}\n autoFocus\n afterHide={afterHide}\n afterShow={afterShow}\n beforeHide={beforeHide}\n beforeShow={beforeShow}\n containFocus={!!footer || hasTabbableElements}\n overlay={\n <DropdownMenu\n footer={footer}\n i18nScope={i18nScope}\n menuRef={menuRef}\n onSearch={onSearch}\n onSelect={onSelect}\n >\n {children}\n </DropdownMenu>\n }\n placement={placement}\n ref={mergeRefs(ref, buttonRef)}\n restoreFocusOnHide={restoreFocusOnHide}\n >\n <DropdownButton\n {...props}\n aria-label={ariaLabel}\n arrow={label !== undefined}\n focus={onSearch ? false : isOpen}\n icon={\n props.loading && !label ? undefined : !icon && !label ? (\n <EllipsisVertical />\n ) : (\n icon\n )\n }\n onKeyDown={onKeyDown}\n variant={variant}\n >\n {label}\n </DropdownButton>\n </OverlayTrigger>\n )\n }\n)\n\nexport const useDropdownContext = useOverlayTriggerContext\n\nexport function DropdownConsumer({ children }: ConsumerProps) {\n return children(useDropdownContext())\n}\n\nDropdown_.displayName = 'Dropdown'\n\nItem.displayName = 'Dropdown.Item'\n\n/**\n\n Dropdowns display a list of actions in a menu that opens and closes. We use\n dropdowns most commonly to trigger an action or to redirect the user to\n a new page or modal.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-dropdown--demo)\n\n @see [Design Guidelines](https://design.procore.com/dropdown)\n\n*/\nexport const Dropdown = addSubcomponents(\n {\n Item,\n Group: MenuImperative.Group,\n },\n Dropdown_\n)\n"],"mappings":"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"}
1
+ {"version":3,"file":"Dropdown.js","names":["CaretDown","CaretUp","EllipsisVertical","classNames","React","MenuImperative","useMenuImperativeControlNavigation","OverlayTrigger","useOverlayTriggerContext","useI18nContext","addSubcomponents","mergeRefs","StyledDropdownButton","StyledDropdownMenu","StyledDropdownSpinner","noop","isFunction","obj","isOpen","_ref","_ref$open","open","Item","forwardRef","_ref2","ref","_ref2$restoreFocus","restoreFocus","props","_objectWithoutProperties","_excluded","createElement","_extends","DropdownButton","_ref3","children","className","_ref3$arrow","arrow","_ref3$loading","loading","_ref3$open","_ref3$focus","focus","_ref3$variant","variant","_excluded2","caret","size","icon","undefined","iconRight","$loading","DropdownMenu","_ref4","footer","i18nScope","menuRef","onSearch_","onSearch","_ref4$onSelect","onSelect","onSelect_","id","overlayTriggerContext","_React$useState","useState","_React$useState2","_slicedToArray","search","setSearch","_useMenuImperativeCon","Boolean","menuId","menuProps","menuNavigationTriggerProps","selection","hide","e","target","value","onKeyDown","key","stopPropagation","shadowStrength","role","Search","onChange","Options","Footer","Dropdown_","Dropdown","_ref5","afterHide_","afterHide","afterShow","beforeHide","beforeShow","error","_ref5$i18nScope","label","_ref5$onKeyDown","_ref5$onSelect","_ref5$placement","placement","_ref5$restoreFocusOnH","restoreFocusOnHide","_ref5$variant","_ref5$hasTabbableElem","hasTabbableElements","_excluded3","useRef","buttonRef","isSearchable","isDialog","_buttonRef$current","current","I18n","ariaLabel","t","concat","trackAriaExpanded","passA11yPropsToOverlay","autoFocus","containFocus","overlay","useDropdownContext","DropdownConsumer","_ref6","displayName","Group"],"sources":["../../src/Dropdown/Dropdown.tsx"],"sourcesContent":["import { CaretDown, CaretUp, EllipsisVertical } from '@procore/core-icons/dist'\nimport classNames from 'classnames'\nimport React from 'react'\nimport {\n MenuImperative,\n useMenuImperativeControlNavigation,\n} from '../MenuImperative/MenuImperative'\nimport type { MenuRef, Selection } from '../MenuImperative/MenuImperative.types'\nimport {\n OverlayTrigger,\n useOverlayTriggerContext,\n} from '../OverlayTrigger/OverlayTrigger'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport {\n StyledDropdownButton,\n StyledDropdownMenu,\n StyledDropdownSpinner,\n} from './Dropdown.styles'\nimport type {\n ConsumerProps,\n DropdownButtonProps,\n DropdownItemProps,\n DropdownMenuProps,\n DropdownProps,\n} from './Dropdown.types'\n\nfunction noop() {}\nfunction isFunction(obj: any) {\n return typeof obj === 'function'\n}\nfunction isOpen({ open = false }) {\n return open\n}\n\nconst Item = React.forwardRef<HTMLDivElement, DropdownItemProps>(function Item(\n { restoreFocus = false, ...props },\n ref\n) {\n return (\n <MenuImperative.Item ref={ref} restoreFocus={restoreFocus} {...props} />\n )\n}) as typeof MenuImperative.Item\n\nexport const DropdownButton = React.forwardRef<\n HTMLButtonElement,\n DropdownButtonProps\n>(function DropdownButton(\n {\n children,\n className,\n arrow = false,\n loading = false,\n open = false,\n focus = false,\n variant = 'secondary',\n ...props\n },\n ref\n) {\n const caret =\n arrow && (open ? <CaretUp size=\"sm\" /> : <CaretDown size=\"sm\" />)\n\n const icon = loading ? (\n <StyledDropdownSpinner\n size=\"xs\"\n variant={variant === 'primary' ? 'light' : 'default'}\n />\n ) : (\n caret\n )\n\n return (\n <StyledDropdownButton\n {...props}\n className={classNames(className, {\n focus: isFunction(focus) ? (focus as Function)({ open }) : focus,\n })}\n aria-busy={loading || undefined}\n iconRight={icon}\n $loading={loading}\n variant={variant}\n ref={ref}\n >\n {children}\n </StyledDropdownButton>\n )\n})\n\nconst DropdownMenu = React.forwardRef<HTMLDivElement, DropdownMenuProps>(\n function DropdownMenu(\n {\n children,\n footer,\n i18nScope,\n menuRef,\n onSearch: onSearch_,\n onSelect: onSelect_ = noop,\n id,\n },\n ref\n ) {\n const overlayTriggerContext = useOverlayTriggerContext()\n\n const [search, setSearch] = React.useState('')\n const { menuProps, menuNavigationTriggerProps } =\n useMenuImperativeControlNavigation(menuRef, Boolean(onSearch_), {\n menuId: id,\n })\n\n function onSelect(selection: Selection) {\n overlayTriggerContext.hide({ restoreFocus: selection.restoreFocus })\n\n onSelect_(selection)\n }\n\n function onSearch(e: React.ChangeEvent<HTMLInputElement>) {\n setSearch(e.target.value)\n\n onSearch_?.(e)\n }\n\n function onKeyDown(e: React.KeyboardEvent<HTMLInputElement>) {\n // This is disconnected from the OverlayTrigger closing on Escape.\n // Closing a dropdown with Escape will not close a Modal, because stopP.\n // It is called only once because the menu component is unmounted.\n // The next Escape will propagate.\n if (e.key === 'Escape' || e.key === 'Esc') {\n // only let parent listeners (modal, overlay) know when empty\n e.stopPropagation()\n }\n }\n\n return (\n <StyledDropdownMenu ref={ref} shadowStrength={2}>\n <MenuImperative\n {...menuProps}\n ref={menuRef}\n onKeyDown={onKeyDown}\n onSelect={onSelect}\n role=\"menu\"\n >\n {onSearch_ && (\n <MenuImperative.Search\n {...menuNavigationTriggerProps}\n onChange={onSearch}\n i18nScope={i18nScope}\n />\n )}\n <MenuImperative.Options>{children}</MenuImperative.Options>\n {footer && <MenuImperative.Footer>{footer}</MenuImperative.Footer>}\n </MenuImperative>\n </StyledDropdownMenu>\n )\n }\n)\n\nconst Dropdown_ = React.forwardRef<HTMLButtonElement, DropdownProps>(\n function Dropdown(\n {\n afterHide: afterHide_,\n afterShow,\n beforeHide,\n beforeShow,\n children,\n error,\n footer,\n i18nScope = 'core.dropdown',\n icon,\n label,\n onKeyDown = noop,\n onSearch,\n onSelect = noop,\n placement = 'bottom-left',\n restoreFocusOnHide = false,\n variant = 'secondary',\n hasTabbableElements = false,\n ...props\n },\n ref\n ) {\n const menuRef = React.useRef<MenuRef>(null)\n const buttonRef = React.useRef<HTMLButtonElement>(null)\n const isSearchable = Boolean(onSearch)\n const isDialog = hasTabbableElements || isSearchable\n\n function afterHide(e: Event | undefined) {\n // @ts-expect-error\n if (e?.key === 'Escape' || e?.restoreFocus) {\n buttonRef.current?.focus()\n }\n\n afterHide_?.(e)\n\n onSearch?.({\n target: { value: '' },\n } as React.ChangeEvent<HTMLInputElement>)\n }\n\n const I18n = useI18nContext()\n\n const ariaLabel =\n props['aria-label'] ||\n label ||\n I18n.t(`core.dropdown.${props.loading ? 'loading' : 'moreOptions'}`)\n\n return (\n <OverlayTrigger\n role={isDialog ? 'dialog' : 'menu'}\n trackAriaExpanded={isSearchable}\n passA11yPropsToOverlay={!isDialog}\n autoFocus\n afterHide={afterHide}\n afterShow={afterShow}\n beforeHide={beforeHide}\n beforeShow={beforeShow}\n containFocus={!!footer || hasTabbableElements}\n overlay={\n <DropdownMenu\n footer={footer}\n i18nScope={i18nScope}\n menuRef={menuRef}\n onSearch={onSearch}\n onSelect={onSelect}\n >\n {children}\n </DropdownMenu>\n }\n placement={placement}\n ref={mergeRefs(ref, buttonRef)}\n restoreFocusOnHide={restoreFocusOnHide}\n >\n <DropdownButton\n {...props}\n aria-label={ariaLabel}\n arrow={label !== undefined}\n focus={onSearch ? false : isOpen}\n icon={\n props.loading && !label ? undefined : !icon && !label ? (\n <EllipsisVertical />\n ) : (\n icon\n )\n }\n onKeyDown={onKeyDown}\n variant={variant}\n >\n {label}\n </DropdownButton>\n </OverlayTrigger>\n )\n }\n)\n\nexport const useDropdownContext = useOverlayTriggerContext\n\nexport function DropdownConsumer({ children }: ConsumerProps) {\n return children(useDropdownContext())\n}\n\nDropdown_.displayName = 'Dropdown'\n\nItem.displayName = 'Dropdown.Item'\n\n/**\n\n Dropdowns display a list of actions in a menu that opens and closes. We use\n dropdowns most commonly to trigger an action or to redirect the user to\n a new page or modal.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-dropdown--demo)\n\n @see [Design Guidelines](https://design.procore.com/dropdown)\n\n*/\nexport const Dropdown = addSubcomponents(\n {\n Item,\n Group: MenuImperative.Group,\n },\n Dropdown_\n)\n"],"mappings":"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"}
@@ -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_49_1__sc-ufsy2q-0"
8
+ componentId: "core-12_50_1__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_49_1__sc-ufsy2q-1"
12
+ componentId: "core-12_50_1__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_49_1__sc-ufsy2q-2"
16
+ componentId: "core-12_50_1__sc-ufsy2q-2"
17
17
  })(["pointer-events:", ";", ""], function (_ref) {
18
18
  var disabled = _ref.disabled,
19
19
  $loading = _ref.$loading;
@@ -115,8 +115,18 @@ export interface DropdownProps extends Omit<HTMLButtonProps, 'onSelect'> {
115
115
  */
116
116
  variant?: ButtonProps['variant'];
117
117
  /**
118
- * Whether to act as modal dialog.
119
- * Should be used when Dropdown has tabbable elements (e.g. buttons in footer).
118
+ * Whether the popup should use dialog semantics instead of menu semantics.
119
+ * @a11y Use `false` for menu-only content (`aria-haspopup="menu"`). Use `true`
120
+ * when the popup includes additional focusable widgets beyond menu items so
121
+ * assistive technology receives dialog semantics (`aria-haspopup="dialog"`).
122
+ *
123
+ * Defaults to menu behavior (`aria-haspopup="menu"` and overlay role `menu`).
124
+ * Set this to `true` when the overlay contains additional focusable widgets
125
+ * beyond menu items (for example footer buttons, form fields, or links), so
126
+ * the trigger/overlay relationship uses dialog semantics (`aria-haspopup="dialog"`
127
+ * and overlay role `dialog`).
128
+ *
129
+ * For menu-only overlays, keep this as `false`.
120
130
  * @default 'false'
121
131
  * @since 11.5.0
122
132
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown.types.js","names":[],"sources":["../../src/Dropdown/Dropdown.types.ts"],"sourcesContent":["import type { ButtonProps } from '../Button/Button.types'\nimport type {\n MenuItemProps,\n MenuRef,\n Selection,\n} from '../MenuImperative/MenuImperative.types'\nimport type { OverlayTriggerProps } from '../OverlayTrigger/OverlayTrigger.types'\nimport type { Placement } from '../_utils/types'\n\ntype HTMLButtonProps = React.ComponentPropsWithoutRef<'button'>\n\ntype HTMLDivProps = React.ComponentPropsWithoutRef<'div'>\n\nexport type DropdownPlacement = Extract<\n Placement,\n 'bottom' | 'bottom-left' | 'bottom-right' | 'top' | 'top-left' | 'top-right'\n>\n\nexport interface DropdownProps extends Omit<HTMLButtonProps, 'onSelect'> {\n /**\n * @since 10.19.0\n */\n afterHide?: OverlayTriggerProps['afterHide']\n /**\n * @since 10.19.0\n */\n afterShow?: OverlayTriggerProps['afterShow']\n /**\n * @since 10.19.0\n */\n beforeHide?: OverlayTriggerProps['beforeHide']\n /**\n * @since 10.19.0\n */\n beforeShow?: OverlayTriggerProps['beforeShow']\n /**\n * @since 10.19.0\n */\n block?: ButtonProps['block']\n /**\n * @since 10.19.0\n */\n className?: ButtonProps['className']\n /**\n * @since 10.19.0\n */\n disabled?: ButtonProps['disabled']\n /**\n * @since 10.19.0\n */\n error?: boolean\n\n /**\n * Content to render in a footer.\n * @since 10.19.0\n */\n footer?: React.ReactNode\n /**\n * The i18n key to use for the dropdowns's configurable strings.\n * Defaults to using the core library's default strings.\n * @since 10.19.0\n */\n i18nScope?: string\n /**\n * @remarks string icons have been deprecated, please pass a component from `@procore/core-icons`\n * @since 10.19.0\n */\n icon?: ButtonProps['icon']\n /**\n * The button text.\n * @since 10.19.0\n */\n label?: string\n /**\n * @since 10.19.0\n */\n loading?: ButtonProps['loading']\n\n /**\n * Adds a search bar to the dropdown.\n * @since 10.19.0\n */\n onSearch?: (event: React.ChangeEvent<HTMLInputElement>) => void\n\n /**\n * Callback for selecting an item from the menu\n * ```\n * ({ event: ReactEvent, item: Menu.Item.props.item, group: bool }) => void\n * ```\n * `item` will be the `item` prop supplied to the `Item` component\n * @since 10.19.0\n */\n onSelect?: (selection: Selection) => void\n\n /**\n * The placement of the overlay.\n * @default 'bottom-left'\n * @since 10.19.0\n */\n placement?: DropdownPlacement\n /**\n * If focus should return to the button after selection.\n * @a11y Dropdowns hold no value and take an action. Focus is expected\n * to be moved from a Dropdown to something else, to continue the user flow .\n * If all actions are inert and does not move focus, set this to `true`.\n * If some actions are inert consider using `restoreFocus` on `Dropdown.Item`.\n * Closing Dropdown via `Escape` always restores focus.\n * @default false\n * @since 11.13.0\n */\n restoreFocusOnHide?: OverlayTriggerProps['restoreFocusOnHide']\n /**\n * The button size\n * @default 'md'\n * @since 10.19.0\n */\n size?: ButtonProps['size']\n /**\n * @since 10.19.0\n */\n trigger?: OverlayTriggerProps['trigger']\n /**\n * @since 10.19.0\n */\n type?: ButtonProps['type']\n\n /**\n * @default 'secondary'\n * @since 10.19.0\n */\n variant?: ButtonProps['variant']\n /**\n * Whether to act as modal dialog.\n * Should be used when Dropdown has tabbable elements (e.g. buttons in footer).\n * @default 'false'\n * @since 11.5.0\n */\n hasTabbableElements?: boolean\n}\n\nexport type DropdownItemProps = MenuItemProps\n\nexport interface DropdownButtonProps extends ButtonProps {\n /**\n * Shows the arrow when activated\n * @since 10.19.0\n */\n arrow?: boolean\n /**\n * Shows the button spinner\n * @since 10.19.0\n */\n loading?: boolean\n /**\n * Changes the direction of the arrow if shown\n * @since 10.19.0\n */\n open?: boolean\n /**\n * @since 11.9.0\n * If the component should apply a focus appeareance. This is\n * not DOM focus management, and purely visual.\n */\n focus?: boolean | ((obj: { open: boolean }) => boolean)\n}\n\nexport interface DropdownMenuProps extends Omit<HTMLDivProps, 'onSelect'> {\n /**\n * @since 10.19.0\n */\n footer?: React.ReactNode\n /**\n * @since 10.19.0\n */\n menuRef: React.RefObject<MenuRef>\n /**\n * @since 10.19.0\n */\n i18nScope?: string\n /**\n * @since 10.19.0\n */\n onSearch?: (event: React.ChangeEvent<HTMLInputElement>) => void\n /**\n * @since 10.19.0\n */\n onSelect?: (selection: Selection) => void\n}\n\nexport interface ConsumerProps {\n /**\n * @since 10.19.0\n */\n children: (api: any) => JSX.Element\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Dropdown.types.js","names":[],"sources":["../../src/Dropdown/Dropdown.types.ts"],"sourcesContent":["import type { ButtonProps } from '../Button/Button.types'\nimport type {\n MenuItemProps,\n MenuRef,\n Selection,\n} from '../MenuImperative/MenuImperative.types'\nimport type { OverlayTriggerProps } from '../OverlayTrigger/OverlayTrigger.types'\nimport type { Placement } from '../_utils/types'\n\ntype HTMLButtonProps = React.ComponentPropsWithoutRef<'button'>\n\ntype HTMLDivProps = React.ComponentPropsWithoutRef<'div'>\n\nexport type DropdownPlacement = Extract<\n Placement,\n 'bottom' | 'bottom-left' | 'bottom-right' | 'top' | 'top-left' | 'top-right'\n>\n\nexport interface DropdownProps extends Omit<HTMLButtonProps, 'onSelect'> {\n /**\n * @since 10.19.0\n */\n afterHide?: OverlayTriggerProps['afterHide']\n /**\n * @since 10.19.0\n */\n afterShow?: OverlayTriggerProps['afterShow']\n /**\n * @since 10.19.0\n */\n beforeHide?: OverlayTriggerProps['beforeHide']\n /**\n * @since 10.19.0\n */\n beforeShow?: OverlayTriggerProps['beforeShow']\n /**\n * @since 10.19.0\n */\n block?: ButtonProps['block']\n /**\n * @since 10.19.0\n */\n className?: ButtonProps['className']\n /**\n * @since 10.19.0\n */\n disabled?: ButtonProps['disabled']\n /**\n * @since 10.19.0\n */\n error?: boolean\n\n /**\n * Content to render in a footer.\n * @since 10.19.0\n */\n footer?: React.ReactNode\n /**\n * The i18n key to use for the dropdowns's configurable strings.\n * Defaults to using the core library's default strings.\n * @since 10.19.0\n */\n i18nScope?: string\n /**\n * @remarks string icons have been deprecated, please pass a component from `@procore/core-icons`\n * @since 10.19.0\n */\n icon?: ButtonProps['icon']\n /**\n * The button text.\n * @since 10.19.0\n */\n label?: string\n /**\n * @since 10.19.0\n */\n loading?: ButtonProps['loading']\n\n /**\n * Adds a search bar to the dropdown.\n * @since 10.19.0\n */\n onSearch?: (event: React.ChangeEvent<HTMLInputElement>) => void\n\n /**\n * Callback for selecting an item from the menu\n * ```\n * ({ event: ReactEvent, item: Menu.Item.props.item, group: bool }) => void\n * ```\n * `item` will be the `item` prop supplied to the `Item` component\n * @since 10.19.0\n */\n onSelect?: (selection: Selection) => void\n\n /**\n * The placement of the overlay.\n * @default 'bottom-left'\n * @since 10.19.0\n */\n placement?: DropdownPlacement\n /**\n * If focus should return to the button after selection.\n * @a11y Dropdowns hold no value and take an action. Focus is expected\n * to be moved from a Dropdown to something else, to continue the user flow .\n * If all actions are inert and does not move focus, set this to `true`.\n * If some actions are inert consider using `restoreFocus` on `Dropdown.Item`.\n * Closing Dropdown via `Escape` always restores focus.\n * @default false\n * @since 11.13.0\n */\n restoreFocusOnHide?: OverlayTriggerProps['restoreFocusOnHide']\n /**\n * The button size\n * @default 'md'\n * @since 10.19.0\n */\n size?: ButtonProps['size']\n /**\n * @since 10.19.0\n */\n trigger?: OverlayTriggerProps['trigger']\n /**\n * @since 10.19.0\n */\n type?: ButtonProps['type']\n\n /**\n * @default 'secondary'\n * @since 10.19.0\n */\n variant?: ButtonProps['variant']\n /**\n * Whether the popup should use dialog semantics instead of menu semantics.\n * @a11y Use `false` for menu-only content (`aria-haspopup=\"menu\"`). Use `true`\n * when the popup includes additional focusable widgets beyond menu items so\n * assistive technology receives dialog semantics (`aria-haspopup=\"dialog\"`).\n *\n * Defaults to menu behavior (`aria-haspopup=\"menu\"` and overlay role `menu`).\n * Set this to `true` when the overlay contains additional focusable widgets\n * beyond menu items (for example footer buttons, form fields, or links), so\n * the trigger/overlay relationship uses dialog semantics (`aria-haspopup=\"dialog\"`\n * and overlay role `dialog`).\n *\n * For menu-only overlays, keep this as `false`.\n * @default 'false'\n * @since 11.5.0\n */\n hasTabbableElements?: boolean\n}\n\nexport type DropdownItemProps = MenuItemProps\n\nexport interface DropdownButtonProps extends ButtonProps {\n /**\n * Shows the arrow when activated\n * @since 10.19.0\n */\n arrow?: boolean\n /**\n * Shows the button spinner\n * @since 10.19.0\n */\n loading?: boolean\n /**\n * Changes the direction of the arrow if shown\n * @since 10.19.0\n */\n open?: boolean\n /**\n * @since 11.9.0\n * If the component should apply a focus appeareance. This is\n * not DOM focus management, and purely visual.\n */\n focus?: boolean | ((obj: { open: boolean }) => boolean)\n}\n\nexport interface DropdownMenuProps extends Omit<HTMLDivProps, 'onSelect'> {\n /**\n * @since 10.19.0\n */\n footer?: React.ReactNode\n /**\n * @since 10.19.0\n */\n menuRef: React.RefObject<MenuRef>\n /**\n * @since 10.19.0\n */\n i18nScope?: string\n /**\n * @since 10.19.0\n */\n onSearch?: (event: React.ChangeEvent<HTMLInputElement>) => void\n /**\n * @since 10.19.0\n */\n onSelect?: (selection: Selection) => void\n}\n\nexport interface ConsumerProps {\n /**\n * @since 10.19.0\n */\n children: (api: any) => JSX.Element\n}\n"],"mappings":""}
@@ -6,18 +6,18 @@ import { getEllipsis } from '../_styles/mixins';
6
6
  import { spacing } from '../_styles/spacing';
7
7
  export var StyledDropdownFlyout = /*#__PURE__*/styled.div.withConfig({
8
8
  displayName: "StyledDropdownFlyout",
9
- componentId: "core-12_49_1__sc-1i79jsg-0"
9
+ componentId: "core-12_50_1__sc-1i79jsg-0"
10
10
  })(["display:flex;flex-wrap:wrap;flex-direction:column;width:100%;max-height:855px;padding:", "px 0;"], spacing.sm);
11
11
  export var StyledDropdownFlyoutItem = /*#__PURE__*/styled.div.withConfig({
12
12
  displayName: "StyledDropdownFlyoutItem",
13
- componentId: "core-12_49_1__sc-1i79jsg-1"
13
+ componentId: "core-12_50_1__sc-1i79jsg-1"
14
14
  })(["display:flex;justify-content:space-between;cursor:pointer;width:100%;padding:", "px ", "px;color:", ";", " &[data-highlighted='true'],&:hover{background-color:", ";}"], spacing.xs, spacing.lg, colors.gray20, getTypographyIntent('body'), colors.gray96);
15
15
  export var StyledDropdownFlyoutLabel = /*#__PURE__*/styled.span.withConfig({
16
16
  displayName: "StyledDropdownFlyoutLabel",
17
- componentId: "core-12_49_1__sc-1i79jsg-2"
17
+ componentId: "core-12_50_1__sc-1i79jsg-2"
18
18
  })(["", ""], getEllipsis());
19
19
  export var StyledDropdownFlyoutExpandIcon = /*#__PURE__*/styled.span.withConfig({
20
20
  displayName: "StyledDropdownFlyoutExpandIcon",
21
- componentId: "core-12_49_1__sc-1i79jsg-3"
21
+ componentId: "core-12_50_1__sc-1i79jsg-3"
22
22
  })(["position:relative;display:inline-flex;align-self:center;flex-shrink:0;margin-left:", "px;white-space:nowrap;", ""], spacing.lg, arrowRight(4, 'black'));
23
23
  //# sourceMappingURL=DropdownFlyout.styles.js.map
@@ -95,7 +95,7 @@ export function MultipleErrors(props) {
95
95
  // make error banner accessible as a styled-components selector
96
96
  export var DropzoneErrorBanner = /*#__PURE__*/styled(DropzoneErrorBannerBase).withConfig({
97
97
  displayName: "DropzoneErrorBanner",
98
- componentId: "core-12_49_1__sc-l4fojb-0"
98
+ componentId: "core-12_50_1__sc-l4fojb-0"
99
99
  })([""]);
100
100
  function DropzoneContainer(_ref2) {
101
101
  var active = _ref2.active,
@@ -9,15 +9,15 @@ import { colors } from '../_styles/colors';
9
9
  import { spacing } from '../_styles/spacing';
10
10
  export var StyledErrorBanner = /*#__PURE__*/styled(ErrorBannerBase).withConfig({
11
11
  displayName: "StyledErrorBanner",
12
- componentId: "core-12_49_1__sc-by95hy-0"
12
+ componentId: "core-12_50_1__sc-by95hy-0"
13
13
  })(["margin-top:", "px;flex-shrink:0;"], spacing.lg);
14
14
  export var StyledErrorBannerDetails = /*#__PURE__*/styled.ul.withConfig({
15
15
  displayName: "StyledErrorBannerDetails",
16
- componentId: "core-12_49_1__sc-by95hy-1"
16
+ componentId: "core-12_50_1__sc-by95hy-1"
17
17
  })(["margin:", "px;padding:0;list-style-position:inside;list-style-type:disc;"], spacing.xs);
18
18
  export var StyledDropzoneIcon = /*#__PURE__*/styled.div.withConfig({
19
19
  displayName: "StyledDropzoneIcon",
20
- componentId: "core-12_49_1__sc-by95hy-2"
20
+ componentId: "core-12_50_1__sc-by95hy-2"
21
21
  })(["display:flex;justify-content:center;align-items:center;height:64px;color:", ";margin-bottom:", "px;transition:all 250ms ease-out;", " svg{width:auto;height:100%;}"], colors.gray45, spacing.lg, function (_ref) {
22
22
  var $disabled = _ref.$disabled;
23
23
  return $disabled && css(["height:72px;margin-bottom:", "px;"], spacing.sm);
@@ -26,7 +26,7 @@ var activeDropzone = /*#__PURE__*/css(["outline:none;border:2px dashed ", ";back
26
26
  var disabledDropzone = /*#__PURE__*/css(["color:", ";border:2px dashed ", ";background-color:", ";cursor:not-allowed;& ", "{color:", ";transform:none;}"], colors.gray70, colors.gray85, colors.gray98, StyledDropzoneIcon, colors.gray85);
27
27
  export var StyledDropzoneContainer = /*#__PURE__*/styled.div.withConfig({
28
28
  displayName: "StyledDropzoneContainer",
29
- componentId: "core-12_49_1__sc-by95hy-3"
29
+ componentId: "core-12_50_1__sc-by95hy-3"
30
30
  })(["", " display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;width:100%;height:100%;min-height:92px;padding:", "px;color:", ";border:2px dashed ", ";background-color:", ";border-radius:", "px;text-align:center;letter-spacing:0.25px;transition:all 250ms ease-out;cursor:grab;", " ", " ", " ", ""], getTypographyIntent('body'), spacing.lg, colors.gray40, colors.gray70, colors.gray96, borderRadius.md, function (_ref2) {
31
31
  var $disabled = _ref2.$disabled;
32
32
  return !$disabled && css(["&:hover{", "}"], activeDropzone);
@@ -43,25 +43,25 @@ export var StyledDropzoneContainer = /*#__PURE__*/styled.div.withConfig({
43
43
  });
44
44
  export var StyledDropzoneMessage = /*#__PURE__*/styled.div.withConfig({
45
45
  displayName: "StyledDropzoneMessage",
46
- componentId: "core-12_49_1__sc-by95hy-4"
46
+ componentId: "core-12_50_1__sc-by95hy-4"
47
47
  })(["user-select:none;"]);
48
48
  export var StyledUploadButton = /*#__PURE__*/styled(Button).withConfig({
49
49
  displayName: "StyledUploadButton",
50
- componentId: "core-12_49_1__sc-by95hy-5"
50
+ componentId: "core-12_50_1__sc-by95hy-5"
51
51
  })(["&&{display:block;margin-left:auto;margin-right:auto;margin-bottom:", "px;}"], spacing.sm);
52
52
  export var StyledDropzoneCaption = /*#__PURE__*/styled.span.withConfig({
53
53
  displayName: "StyledDropzoneCaption",
54
- componentId: "core-12_49_1__sc-by95hy-6"
54
+ componentId: "core-12_50_1__sc-by95hy-6"
55
55
  })(["color:", ";"], function (_ref6) {
56
56
  var $error = _ref6.$error;
57
57
  return $error && colors.gray15;
58
58
  });
59
59
  export var StyledDropzoneWrapper = /*#__PURE__*/styled(Flex).withConfig({
60
60
  displayName: "StyledDropzoneWrapper",
61
- componentId: "core-12_49_1__sc-by95hy-7"
61
+ componentId: "core-12_50_1__sc-by95hy-7"
62
62
  })(["height:100%;"]);
63
63
  export var StyledDropzoneFocusDetector = /*#__PURE__*/styled(Box).withConfig({
64
64
  displayName: "StyledDropzoneFocusDetector",
65
- componentId: "core-12_49_1__sc-by95hy-8"
65
+ componentId: "core-12_50_1__sc-by95hy-8"
66
66
  })(["height:100%;"]);
67
67
  //# sourceMappingURL=Dropzone.styles.js.map