@procore/core-react 12.40.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 (265) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/dist/AnchorNavigation/AnchorNavigation.styles.js +3 -3
  3. package/dist/Avatar/Avatar.styles.js +5 -5
  4. package/dist/AvatarStack/AvatarStack.d.ts +1 -1
  5. package/dist/AvatarStack/AvatarStack.js +29 -6
  6. package/dist/AvatarStack/AvatarStack.js.map +1 -1
  7. package/dist/AvatarStack/AvatarStack.styles.js +7 -7
  8. package/dist/AvatarStack/AvatarStack.types.d.ts +7 -0
  9. package/dist/AvatarStack/AvatarStack.types.js.map +1 -1
  10. package/dist/Badge/Badge.styles.js +2 -2
  11. package/dist/BadgePill/BadgePill.styles.js +4 -4
  12. package/dist/Banner/Banner.styles.js +10 -10
  13. package/dist/Box/Box.styles.js +1 -1
  14. package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
  15. package/dist/Button/Button.styles.js +5 -5
  16. package/dist/Calendar/Calendar.styles.js +9 -9
  17. package/dist/Card/Card.styles.js +1 -1
  18. package/dist/Checkbox/Checkbox.styles.js +6 -6
  19. package/dist/ContactItem/ContactItem.js +7 -3
  20. package/dist/ContactItem/ContactItem.js.map +1 -1
  21. package/dist/ContactItem/ContactItem.styles.js +5 -5
  22. package/dist/Content/Content.styles.js +2 -2
  23. package/dist/DateInput/DateInput.styles.js +6 -6
  24. package/dist/DetailPage/DetailPage.styles.js +7 -7
  25. package/dist/Dropdown/Dropdown.styles.js +3 -3
  26. package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
  27. package/dist/Dropzone/Dropzone.js +1 -1
  28. package/dist/Dropzone/Dropzone.styles.js +10 -10
  29. package/dist/Dropzone/Dropzone.styles.js.map +1 -1
  30. package/dist/EmptyState/EmptyState.styles.js +6 -6
  31. package/dist/Field/Field.styles.js +3 -3
  32. package/dist/FileList/FileList.styles.js +3 -3
  33. package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
  34. package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
  35. package/dist/FileSelect/FileSelect.d.ts +8 -15
  36. package/dist/FileSelect/FileSelect.js +8 -15
  37. package/dist/FileSelect/FileSelect.js.map +1 -1
  38. package/dist/FileSelect/FileSelect.styles.js +2 -2
  39. package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
  40. package/dist/FileSelect/FileTokenList/FileTokenList.d.ts +8 -0
  41. package/dist/FileSelect/FileTokenList/FileTokenList.js +9 -0
  42. package/dist/FileSelect/FileTokenList/FileTokenList.js.map +1 -1
  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.styles.js +3 -3
  47. package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
  48. package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
  49. package/dist/FileToken/FileToken.styles.js +6 -6
  50. package/dist/FilterToken/FilterToken.styles.js +5 -5
  51. package/dist/FlexList/FlexList.styles.js +1 -1
  52. package/dist/Form/Form.styles.js +13 -13
  53. package/dist/Form/StyledFormikForm.styles.js +2 -2
  54. package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
  55. package/dist/Grid/Grid.styles.js +2 -2
  56. package/dist/GroupSelect/GroupSelect.styles.js +1 -1
  57. package/dist/Input/Input.styles.js +1 -1
  58. package/dist/Link/Link.styles.js +1 -1
  59. package/dist/ListPage/ListPage.styles.js +8 -8
  60. package/dist/Loader/Loader.styles.js +2 -2
  61. package/dist/MenuImperative/MenuImperative.d.ts +1 -1
  62. package/dist/MenuImperative/MenuImperative.js +126 -34
  63. package/dist/MenuImperative/MenuImperative.js.map +1 -1
  64. package/dist/MenuImperative/MenuImperative.styles.js +15 -15
  65. package/dist/MenuImperative/MenuImperative.styles.js.map +1 -1
  66. package/dist/MenuImperative/MenuImperative.types.d.ts +36 -0
  67. package/dist/MenuImperative/MenuImperative.types.js.map +1 -1
  68. package/dist/MenuImperative/sensors.d.ts +6 -3
  69. package/dist/MenuImperative/sensors.js +42 -34
  70. package/dist/MenuImperative/sensors.js.map +1 -1
  71. package/dist/Modal/Modal.d.ts +4 -0
  72. package/dist/Modal/Modal.js +23 -13
  73. package/dist/Modal/Modal.js.map +1 -1
  74. package/dist/Modal/Modal.styles.js +13 -13
  75. package/dist/Modal/Modal.types.d.ts +28 -5
  76. package/dist/Modal/Modal.types.js.map +1 -1
  77. package/dist/Modal/index.d.ts +1 -1
  78. package/dist/Modal/index.js.map +1 -1
  79. package/dist/MultiSelect/MultiSelect.styles.js +8 -8
  80. package/dist/NextMenu/NextMenu.styles.js +3 -3
  81. package/dist/Notation/Notation.js +1 -1
  82. package/dist/NumberInput/NumberInput.styles.js +7 -7
  83. package/dist/Overlay/OverlayArrow.styles.js +1 -1
  84. package/dist/OverlayTrigger/a11yPresets.d.ts +17 -24
  85. package/dist/OverlayTrigger/a11yPresets.js +29 -27
  86. package/dist/OverlayTrigger/a11yPresets.js.map +1 -1
  87. package/dist/PageLayout/PageLayout.styles.js +16 -16
  88. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
  89. package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
  90. package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
  91. package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
  92. package/dist/Pagination/Pagination.styles.js +5 -5
  93. package/dist/Panel/Panel.styles.js +11 -11
  94. package/dist/Pill/Pill.styles.js +3 -3
  95. package/dist/PillSelect/PillSelect.d.ts +2 -1
  96. package/dist/PillSelect/PillSelect.js +59 -41
  97. package/dist/PillSelect/PillSelect.js.map +1 -1
  98. package/dist/PillSelect/PillSelect.styles.js +4 -4
  99. package/dist/Popover/Popover.styles.js +2 -2
  100. package/dist/Portal/Portal.styles.js +1 -1
  101. package/dist/ProgressBar/ProgressBar.styles.js +4 -4
  102. package/dist/ProgressBar/ProgressBar.styles.js.map +1 -1
  103. package/dist/RadioButton/RadioButton.styles.js +3 -3
  104. package/dist/Required/Required.styles.js +3 -3
  105. package/dist/Search/Search.styles.js +5 -5
  106. package/dist/Section/Section.js +0 -1
  107. package/dist/Section/Section.js.map +1 -1
  108. package/dist/Section/Section.styles.js +7 -7
  109. package/dist/SegmentedController/SegmentedController.styles.js +4 -4
  110. package/dist/Select/Select.d.ts +2 -0
  111. package/dist/Select/Select.js +108 -79
  112. package/dist/Select/Select.js.map +1 -1
  113. package/dist/Select/Select.styles.js +8 -8
  114. package/dist/Semantic/Semantic.styles.js +9 -9
  115. package/dist/Slider/Slider.styles.js +5 -5
  116. package/dist/Spinner/Spinner.styles.js +7 -7
  117. package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
  118. package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
  119. package/dist/SuperSelect/SuperSelect.styles.js +38 -38
  120. package/dist/SuperSelect/useSuperSelect.js +2 -2
  121. package/dist/SuperSelect/useSuperSelect.js.map +1 -1
  122. package/dist/Switch/Switch.styles.js +4 -4
  123. package/dist/Table/Table.styles.js +28 -28
  124. package/dist/Table/Table.types.d.ts +5 -2
  125. package/dist/Table/Table.types.js.map +1 -1
  126. package/dist/TableShelf/TableShelf.styles.js +5 -5
  127. package/dist/Tabs/Tabs.styles.js +15 -15
  128. package/dist/Tearsheet/Tearsheet.js +1 -1
  129. package/dist/Tearsheet/Tearsheet.js.map +1 -1
  130. package/dist/Tearsheet/Tearsheet.styles.js +5 -5
  131. package/dist/Tearsheet/storybook/PageLayoutDemo.js +1 -0
  132. package/dist/Tearsheet/storybook/PageLayoutDemo.js.map +1 -1
  133. package/dist/TextArea/TextArea.styles.js +1 -1
  134. package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
  135. package/dist/Thumbnail/Thumbnail.js +126 -46
  136. package/dist/Thumbnail/Thumbnail.js.map +1 -1
  137. package/dist/Thumbnail/Thumbnail.styles.js +17 -17
  138. package/dist/Thumbnail/Thumbnail.types.d.ts +12 -0
  139. package/dist/Thumbnail/Thumbnail.types.js.map +1 -1
  140. package/dist/Thumbnail/Thumbnail.utils.d.ts +2 -0
  141. package/dist/Thumbnail/Thumbnail.utils.js +6 -0
  142. package/dist/Thumbnail/Thumbnail.utils.js.map +1 -1
  143. package/dist/Thumbnail/ThumbnailCaption.js +45 -52
  144. package/dist/Thumbnail/ThumbnailCaption.js.map +1 -1
  145. package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
  146. package/dist/TieredSelect/TieredSelect.styles.js +9 -9
  147. package/dist/Tile/Tile.styles.js +8 -8
  148. package/dist/Title/Title.styles.js +7 -7
  149. package/dist/Toast/Toast.styles.js +3 -3
  150. package/dist/ToggleButton/ToggleButton.styles.js +1 -1
  151. package/dist/Token/Token.styles.js +3 -3
  152. package/dist/ToolHeader/ToolHeader.styles.js +6 -6
  153. package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
  154. package/dist/Tooltip/Tooltip.styles.js +3 -3
  155. package/dist/Tree/Tree.js +1 -1
  156. package/dist/Tree/Tree.styles.js +10 -10
  157. package/dist/Typeahead/Typeahead.styles.js +3 -3
  158. package/dist/Typography/Typography.styles.js +1 -1
  159. package/dist/Typography/Typography.table.story.js +2 -2
  160. package/dist/_hooks/I18n.d.ts +22 -153
  161. package/dist/_locales/de-DE.json +1 -10
  162. package/dist/_locales/en-AU.json +1 -10
  163. package/dist/_locales/en-CA.json +1 -10
  164. package/dist/_locales/en-GB.json +1 -10
  165. package/dist/_locales/en.json +13 -2
  166. package/dist/_locales/es-ES.json +1 -10
  167. package/dist/_locales/es.json +1 -10
  168. package/dist/_locales/fr-CA.json +1 -10
  169. package/dist/_locales/fr-FR.json +1 -10
  170. package/dist/_locales/is-IS.json +1 -10
  171. package/dist/_locales/it-IT.json +1 -10
  172. package/dist/_locales/ja-JP.json +1 -10
  173. package/dist/_locales/pl-PL.json +1 -10
  174. package/dist/_locales/pseudo.json +13 -2
  175. package/dist/_locales/pt-BR.json +1 -10
  176. package/dist/_locales/pt-PT.json +2 -11
  177. package/dist/_locales/th-TH.json +1 -10
  178. package/dist/_locales/zh-SG.json +1 -10
  179. package/dist/_locales/zh-TW.json +1 -10
  180. package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
  181. package/dist/_storyHelpers_/components/StoryGrid.js +3 -3
  182. package/dist/_styles/colors.js +1 -3
  183. package/dist/_styles/colors.js.map +1 -1
  184. package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +3 -3
  185. package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
  186. package/dist/_typedoc/AvatarStack/AvatarStack.types.json +34 -24
  187. package/dist/_typedoc/Badge/Badge.types.json +6 -6
  188. package/dist/_typedoc/Banner/Banner.types.json +15 -15
  189. package/dist/_typedoc/Box/Box.types.json +68 -68
  190. package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +10 -10
  191. package/dist/_typedoc/Button/Button.types.json +13 -13
  192. package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
  193. package/dist/_typedoc/Card/Card.types.json +6 -6
  194. package/dist/_typedoc/Checkbox/Checkbox.types.json +8 -8
  195. package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
  196. package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
  197. package/dist/_typedoc/DateSelect/DateSelect.types.json +13 -13
  198. package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
  199. package/dist/_typedoc/Dropdown/Dropdown.types.json +37 -37
  200. package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +31 -31
  201. package/dist/_typedoc/Dropzone/Dropzone.types.json +44 -44
  202. package/dist/_typedoc/EmptyState/EmptyState.types.json +16 -16
  203. package/dist/_typedoc/FileList/FileList.types.json +9 -9
  204. package/dist/_typedoc/FileSelect/FileSelect.json +3 -3
  205. package/dist/_typedoc/FileSelect/FileSelect.types.json +27 -27
  206. package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
  207. package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
  208. package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +9 -9
  209. package/dist/_typedoc/Flex/Flex.types.json +27 -27
  210. package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
  211. package/dist/_typedoc/Form/Form.types.json +760 -760
  212. package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +12 -12
  213. package/dist/_typedoc/Grid/Grid.types.json +8 -8
  214. package/dist/_typedoc/GroupSelect/GroupSelect.types.json +54 -54
  215. package/dist/_typedoc/Input/Input.types.json +2 -2
  216. package/dist/_typedoc/Link/Link.types.json +1 -1
  217. package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
  218. package/dist/_typedoc/Menu/Menu.types.json +62 -62
  219. package/dist/_typedoc/MenuImperative/MenuImperative.types.json +147 -77
  220. package/dist/_typedoc/Modal/Modal.types.json +96 -68
  221. package/dist/_typedoc/MultiSelect/MultiSelect.types.json +33 -33
  222. package/dist/_typedoc/NextTile/NextTile.types.json +32 -32
  223. package/dist/_typedoc/Notation/Notation.types.json +4 -4
  224. package/dist/_typedoc/NumberInput/NumberInput.types.json +48 -48
  225. package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +33 -33
  226. package/dist/_typedoc/PageLayout/PageLayout.types.json +28 -28
  227. package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
  228. package/dist/_typedoc/Panel/Panel.types.json +27 -27
  229. package/dist/_typedoc/Pill/Pill.types.json +2 -2
  230. package/dist/_typedoc/PillSelect/PillSelect.types.json +49 -49
  231. package/dist/_typedoc/Popover/Popover.types.json +15 -15
  232. package/dist/_typedoc/ProgressBar/ProgressBar.types.json +7 -7
  233. package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
  234. package/dist/_typedoc/Required/Required.types.json +5 -5
  235. package/dist/_typedoc/Search/Search.types.json +18 -18
  236. package/dist/_typedoc/Section/Section.types.json +15 -15
  237. package/dist/_typedoc/SegmentedController/SegmentedController.types.json +21 -21
  238. package/dist/_typedoc/Select/Select.types.json +67 -67
  239. package/dist/_typedoc/SettingsPage/SettingsPage.types.json +10 -10
  240. package/dist/_typedoc/Slider/Slider.types.json +6 -6
  241. package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
  242. package/dist/_typedoc/SplitViewCard/SplitViewCard.types.json +14 -14
  243. package/dist/_typedoc/Table/Table.types.json +102 -102
  244. package/dist/_typedoc/Tabs/Tabs.types.json +21 -21
  245. package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
  246. package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
  247. package/dist/_typedoc/TextEditor/TextEditor.types.json +11 -11
  248. package/dist/_typedoc/TextEditorOutput/TextEditorOutput.types.json +4 -4
  249. package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
  250. package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +43 -43
  251. package/dist/_typedoc/TieredSelect/TieredSelect.types.json +29 -29
  252. package/dist/_typedoc/Tile/Tile.types.json +8 -8
  253. package/dist/_typedoc/Title/Title.types.json +1 -1
  254. package/dist/_typedoc/Toast/Toast.types.json +4 -4
  255. package/dist/_typedoc/ToggleButton/ToggleButton.types.json +4 -4
  256. package/dist/_typedoc/Token/Token.types.json +7 -7
  257. package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
  258. package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +8 -8
  259. package/dist/_typedoc/Tooltip/Tooltip.types.json +15 -15
  260. package/dist/_typedoc/Tree/Tree.types.json +88 -88
  261. package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
  262. package/dist/_typedoc/Typography/Typography.types.json +9 -9
  263. package/dist/_typedoc/_utils/types.json +3 -3
  264. package/dist/_typedoc/deprecations.json +1 -1
  265. package/package.json +3 -3
@@ -45,8 +45,10 @@ function updateHighlightedAttribute(item, highlight) {
45
45
  export function createSensors(ref, circular, onChangeActiveDescendant) {
46
46
  var highlightedItem = null;
47
47
  var dragAndDropApi = null;
48
- var currentDrag = null;
49
48
  var onSelect = noop;
49
+ var isDraggingStateRef = {
50
+ current: false
51
+ };
50
52
  function select(event) {
51
53
  if (ref.current && highlightedItem) {
52
54
  var _highlightedItem, _highlightedItem2, _highlightedItem3, _highlightedItem4, _highlightedItem5, _onSelect;
@@ -70,6 +72,7 @@ export function createSensors(ref, circular, onChangeActiveDescendant) {
70
72
  }
71
73
  function highlightItem(item) {
72
74
  var shouldScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
75
+ var shouldFocus = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
73
76
  // performance improvement, highlightItem is called onMouseMove for Item
74
77
  if (item === highlightedItem) {
75
78
  return;
@@ -83,6 +86,9 @@ export function createSensors(ref, circular, onChangeActiveDescendant) {
83
86
  var id = (_item$getAttribute = item.getAttribute('id')) !== null && _item$getAttribute !== void 0 ? _item$getAttribute : undefined;
84
87
  onChangeActiveDescendant(id, ref.current);
85
88
  highlightedItem = item;
89
+ if (shouldFocus) {
90
+ item.focus();
91
+ }
86
92
  if (shouldScroll) {
87
93
  scrollIntoView(-1, item);
88
94
  }
@@ -90,6 +96,10 @@ export function createSensors(ref, circular, onChangeActiveDescendant) {
90
96
  onChangeActiveDescendant('', ref.current);
91
97
  }
92
98
  }
99
+ function _handleItemBlur(el) {
100
+ updateHighlightedAttribute(el, false);
101
+ highlightedItem = null;
102
+ }
93
103
  function getPrevHighlightableItem(currentItem) {
94
104
  var prev = getPrevItem(currentItem, ref.current);
95
105
  if (prev) {
@@ -113,21 +123,23 @@ export function createSensors(ref, circular, onChangeActiveDescendant) {
113
123
  }
114
124
  function highlightFirstItem() {
115
125
  var shouldScroll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
116
- highlightItem(getFirstItem(ref.current), shouldScroll);
126
+ var shouldFocus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
127
+ highlightItem(getFirstItem(ref.current), shouldScroll, shouldFocus);
117
128
  }
118
129
  function highlightLastItem() {
119
130
  var shouldScroll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
120
- highlightItem(getLastItem(ref.current), shouldScroll);
131
+ var shouldFocus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
132
+ highlightItem(getLastItem(ref.current), shouldScroll, shouldFocus);
121
133
  }
122
134
  function highlightPrevItem() {
123
135
  var _ref$current;
124
136
  if (highlightedItem && (_ref$current = ref.current) !== null && _ref$current !== void 0 && _ref$current.contains(highlightedItem)) {
125
137
  var prev = getPrevHighlightableItem(highlightedItem);
126
138
  if (prev) {
127
- highlightItem(prev);
139
+ highlightItem(prev, true, true);
128
140
  }
129
141
  } else {
130
- highlightLastItem();
142
+ highlightLastItem(true, true);
131
143
  }
132
144
  }
133
145
  function highlightNextItem() {
@@ -135,67 +147,63 @@ export function createSensors(ref, circular, onChangeActiveDescendant) {
135
147
  if (highlightedItem && (_ref$current2 = ref.current) !== null && _ref$current2 !== void 0 && _ref$current2.contains(highlightedItem)) {
136
148
  var next = getNextHighlightableItem(highlightedItem);
137
149
  if (next) {
138
- highlightItem(next);
150
+ highlightItem(next, true, true);
139
151
  }
140
152
  } else {
141
- highlightFirstItem();
153
+ highlightFirstItem(true, true);
142
154
  }
143
155
  }
144
156
  return {
145
157
  handleKeyDown: function handleKeyDown(event) {
146
158
  if (ref.current) {
147
- var _currentDrag4;
159
+ var isDragActive = isDraggingStateRef.current;
148
160
  if (event.key === 'ArrowUp' || event.key === 'Up') {
149
- var _currentDrag;
150
- event.preventDefault();
151
- (_currentDrag = currentDrag) !== null && _currentDrag !== void 0 && _currentDrag.isActive() ? currentDrag.moveUp() : highlightPrevItem();
161
+ if (!isDragActive) {
162
+ event.preventDefault();
163
+ highlightPrevItem();
164
+ }
152
165
  } else if (event.key === 'ArrowDown' || event.key === 'Down') {
153
- var _currentDrag2;
154
- event.preventDefault();
155
- (_currentDrag2 = currentDrag) !== null && _currentDrag2 !== void 0 && _currentDrag2.isActive() ? currentDrag.moveDown() : highlightNextItem();
166
+ if (!isDragActive) {
167
+ event.preventDefault();
168
+ highlightNextItem();
169
+ }
156
170
  } else if (event.key === 'Enter') {
157
- var _currentDrag3;
158
171
  event.preventDefault();
159
- if (event.ctrlKey || event.metaKey) {
160
- var _highlightedItem6;
161
- var draggableId = (_highlightedItem6 = highlightedItem) === null || _highlightedItem6 === void 0 ? void 0 : _highlightedItem6.getAttribute('data-rbd-draggable-id');
162
- if (draggableId) {
163
- var _dragAndDropApi;
164
- var preDrag = (_dragAndDropApi = dragAndDropApi) === null || _dragAndDropApi === void 0 ? void 0 : _dragAndDropApi.tryGetLock(draggableId);
165
- if (preDrag) {
166
- currentDrag = preDrag.snapLift();
167
- }
168
- }
169
- } else if ((_currentDrag3 = currentDrag) !== null && _currentDrag3 !== void 0 && _currentDrag3.isActive()) {
170
- currentDrag.drop();
171
- } else {
172
+ if (!isDragActive) {
172
173
  select(event);
173
174
  }
174
- } else if (event.key === 'Escape' && (_currentDrag4 = currentDrag) !== null && _currentDrag4 !== void 0 && _currentDrag4.isActive()) {
175
- currentDrag.cancel();
176
175
  }
177
176
  }
178
177
  },
179
178
  handleItemHover: function handleItemHover(el) {
180
179
  highlightItem(el, false);
181
180
  },
181
+ handleItemFocus: function handleItemFocus(el) {
182
+ highlightItem(el, true, true);
183
+ },
184
+ handleItemBlur: function handleItemBlur(el) {
185
+ _handleItemBlur(el);
186
+ },
182
187
  useKeyboardSensor: function useKeyboardSensor(api) {
183
188
  dragAndDropApi = api;
184
189
  },
190
+ setIsDragging: function setIsDragging(isDragging) {
191
+ isDraggingStateRef.current = isDragging;
192
+ },
185
193
  updateSelectCallback: function updateSelectCallback(callback) {
186
194
  onSelect = callback;
187
195
  },
188
196
  highlight: highlightItem,
189
197
  highlighted: function highlighted() {
190
- var _highlightedItem7;
191
- return JSON.parse(((_highlightedItem7 = highlightedItem) === null || _highlightedItem7 === void 0 ? void 0 : _highlightedItem7.dataset.value) || 'null');
198
+ var _highlightedItem6;
199
+ return JSON.parse(((_highlightedItem6 = highlightedItem) === null || _highlightedItem6 === void 0 ? void 0 : _highlightedItem6.dataset.value) || 'null');
192
200
  },
193
201
  highlightFirst: highlightFirstItem,
194
202
  highlightLast: highlightLastItem,
195
203
  rehighlightCurrent: function rehighlightCurrent() {
196
- var _highlightedItem8;
204
+ var _highlightedItem7;
197
205
  // Rehighlights an item that may have lost its styling due to the re-render of the list items
198
- var draggableId = (_highlightedItem8 = highlightedItem) === null || _highlightedItem8 === void 0 ? void 0 : _highlightedItem8.getAttribute('data-rbd-draggable-id');
206
+ var draggableId = (_highlightedItem7 = highlightedItem) === null || _highlightedItem7 === void 0 ? void 0 : _highlightedItem7.getAttribute('data-rbd-draggable-id');
199
207
  if (draggableId) {
200
208
  var _ref$current3;
201
209
  var newItem = (_ref$current3 = ref.current) === null || _ref$current3 === void 0 ? void 0 : _ref$current3.querySelector("[data-rbd-draggable-id=\"".concat(draggableId.replace(/["\\]/g, '\\$&'), "\"]"));
@@ -1 +1 @@
1
- {"version":3,"file":"sensors.js","names":["scrollIntoView","noop","MOUSE_ENTER","MOUSE_LEAVE","menuItemsWrapperAttributeName","menuItemsWrapperAttribute","_defineProperty","isItem","element","hasAttribute","isGroup","el","JSON","parse","dataset","group","isWrapper","getAttribute","getAllItems","menu","querySelectorAll","getFirstItem","_getAllItems","getPrevItem","item","items","Array","prototype","indexOf","call","getNextItem","getLastItem","length","updateHighlightedAttribute","highlight","setAttribute","dispatchEvent","MouseEvent","createSensors","ref","circular","onChangeActiveDescendant","highlightedItem","dragAndDropApi","currentDrag","onSelect","select","event","current","_highlightedItem","_highlightedItem2","_highlightedItem3","_highlightedItem4","_highlightedItem5","_onSelect","disabled","value","selected","restoreFocus","restorefocus","undefined","tagName","click","_objectSpread","action","highlightItem","shouldScroll","arguments","_item$getAttribute","id","getPrevHighlightableItem","currentItem","prev","getNextHighlightableItem","next","highlightFirstItem","highlightLastItem","highlightPrevItem","_ref$current","contains","highlightNextItem","_ref$current2","handleKeyDown","_currentDrag4","key","_currentDrag","preventDefault","isActive","moveUp","_currentDrag2","moveDown","_currentDrag3","ctrlKey","metaKey","_highlightedItem6","draggableId","_dragAndDropApi","preDrag","tryGetLock","snapLift","drop","cancel","handleItemHover","useKeyboardSensor","api","updateSelectCallback","callback","highlighted","_highlightedItem7","highlightFirst","highlightLast","rehighlightCurrent","_highlightedItem8","_ref$current3","newItem","querySelector","concat","replace","highlightSelected","_ref$current4","selectedItem","highlightSuggested","_ref$current5","suggestedItem"],"sources":["../../src/MenuImperative/sensors.ts"],"sourcesContent":["import type {\n SensorAPI,\n SnapDragActions,\n} from '@atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-migration'\nimport type React from 'react'\nimport { scrollIntoView } from '../_utils/scrollIntoView'\nimport type { Selection } from './MenuImperative.types'\n\nfunction noop() {}\n\nconst MOUSE_ENTER = 'mouseenter'\nconst MOUSE_LEAVE = 'mouseleave'\n\nconst menuItemsWrapperAttributeName = 'data-core-menuimperative-items-wrapper'\nexport const menuItemsWrapperAttribute = {\n [menuItemsWrapperAttributeName]: 'true',\n}\n\nconst isItem = (element: Element | null) => element?.hasAttribute('data-value')\n\nfunction isGroup(el: HTMLElement) {\n return JSON.parse(el.dataset.group || 'false')\n}\n\nconst isWrapper = (element: Element | null) =>\n element?.getAttribute(menuItemsWrapperAttributeName) === 'true'\n\nfunction getAllItems(menu: Element | null) {\n return menu?.querySelectorAll<HTMLElement>(\n '[data-value]:not([data-group=\"true\"])'\n )\n}\n\nfunction getFirstItem(menu: Element | null) {\n return getAllItems(menu)?.[0]\n}\n\nfunction getPrevItem(item: Element, menu: Element | null): HTMLElement | null {\n const items = getAllItems(menu)\n\n return items ? items[Array.prototype.indexOf.call(items, item) - 1] : null\n}\n\nfunction getNextItem(item: Element, menu: Element | null): HTMLElement | null {\n const items = getAllItems(menu)\n\n return items ? items[Array.prototype.indexOf.call(items, item) + 1] : null\n}\n\nfunction getLastItem(menu: Element | null) {\n const items = getAllItems(menu)\n return items?.[items.length - 1]\n}\n\nfunction updateHighlightedAttribute(\n item: Element | null | undefined,\n highlight: boolean\n) {\n item?.setAttribute('data-highlighted', highlight ? 'true' : 'false')\n item?.dispatchEvent(new MouseEvent(highlight ? MOUSE_ENTER : MOUSE_LEAVE))\n}\n\nexport function createSensors(\n ref: React.RefObject<HTMLDivElement>,\n circular: boolean,\n onChangeActiveDescendant: (\n id: string | undefined,\n menuRef: Element | null\n ) => void\n) {\n let highlightedItem: HTMLElement | null = null\n let dragAndDropApi: SensorAPI | null = null\n let currentDrag: SnapDragActions | null = null\n let onSelect: (selection: Selection) => any = noop\n\n function select(\n event:\n | React.MouseEvent<HTMLElement, MouseEvent>\n | React.KeyboardEvent<HTMLElement>\n ) {\n if (ref.current && highlightedItem) {\n const disabled = JSON.parse(highlightedItem?.dataset.disabled || 'false')\n if (disabled) return\n\n const item = JSON.parse(highlightedItem?.dataset.value || 'null')\n const selected = JSON.parse(highlightedItem?.dataset.selected || 'false')\n const restoreFocus = highlightedItem?.dataset.restorefocus\n ? JSON.parse(highlightedItem?.dataset.restorefocus)\n : undefined\n\n if (highlightedItem.tagName === 'A') {\n highlightedItem.click()\n }\n\n onSelect?.({\n event,\n item,\n group: false,\n action: selected ? 'unselected' : 'selected',\n ...(restoreFocus === undefined ? {} : { restoreFocus }),\n })\n }\n }\n\n function highlightItem(\n item: HTMLElement | null | undefined,\n shouldScroll: boolean = true\n ) {\n // performance improvement, highlightItem is called onMouseMove for Item\n if (item === highlightedItem) {\n return\n }\n\n if (item) {\n updateHighlightedAttribute(highlightedItem, false)\n\n // TODO add localized screenreader instructions for the item\n updateHighlightedAttribute(item, true)\n\n const id = item.getAttribute('id') ?? undefined\n onChangeActiveDescendant(id, ref.current)\n\n highlightedItem = item\n\n if (shouldScroll) {\n scrollIntoView(-1, item)\n }\n } else {\n onChangeActiveDescendant('', ref.current)\n }\n }\n\n function getPrevHighlightableItem(\n currentItem: HTMLElement\n ): HTMLElement | null | undefined {\n const prev = getPrevItem(currentItem, ref.current)\n if (prev) {\n if (isItem(prev)) {\n return prev\n }\n } else if (circular) {\n return getLastItem(ref.current)\n }\n\n return prev\n }\n\n function getNextHighlightableItem(\n currentItem: HTMLElement\n ): HTMLElement | null | undefined {\n const next = getNextItem(currentItem, ref.current)\n\n if (next) {\n if (isItem(next)) {\n return next\n }\n } else if (circular) {\n return getFirstItem(ref.current)\n }\n }\n\n function highlightFirstItem(shouldScroll: boolean = true) {\n highlightItem(getFirstItem(ref.current), shouldScroll)\n }\n\n function highlightLastItem(shouldScroll: boolean = true) {\n highlightItem(getLastItem(ref.current), shouldScroll)\n }\n\n function highlightPrevItem() {\n if (highlightedItem && ref.current?.contains(highlightedItem)) {\n const prev = getPrevHighlightableItem(highlightedItem)\n if (prev) {\n highlightItem(prev)\n }\n } else {\n highlightLastItem()\n }\n }\n\n function highlightNextItem() {\n if (highlightedItem && ref.current?.contains(highlightedItem)) {\n const next = getNextHighlightableItem(highlightedItem)\n if (next) {\n highlightItem(next)\n }\n } else {\n highlightFirstItem()\n }\n }\n\n return {\n handleKeyDown(event: React.KeyboardEvent<HTMLDivElement>) {\n if (ref.current) {\n if (event.key === 'ArrowUp' || event.key === 'Up') {\n event.preventDefault()\n currentDrag?.isActive() ? currentDrag.moveUp() : highlightPrevItem()\n } else if (event.key === 'ArrowDown' || event.key === 'Down') {\n event.preventDefault()\n currentDrag?.isActive() ? currentDrag.moveDown() : highlightNextItem()\n } else if (event.key === 'Enter') {\n event.preventDefault()\n if (event.ctrlKey || event.metaKey) {\n const draggableId = highlightedItem?.getAttribute(\n 'data-rbd-draggable-id'\n )\n if (draggableId) {\n const preDrag = dragAndDropApi?.tryGetLock(draggableId)\n if (preDrag) {\n currentDrag = preDrag.snapLift()\n }\n }\n } else if (currentDrag?.isActive()) {\n currentDrag.drop()\n } else {\n select(event)\n }\n } else if (event.key === 'Escape' && currentDrag?.isActive()) {\n currentDrag.cancel()\n }\n }\n },\n handleItemHover(el?: HTMLDivElement) {\n highlightItem(el, false)\n },\n useKeyboardSensor(api: SensorAPI) {\n dragAndDropApi = api\n },\n\n updateSelectCallback(callback: (selection: Selection) => any) {\n onSelect = callback\n },\n\n highlight: highlightItem,\n\n highlighted() {\n return JSON.parse(highlightedItem?.dataset.value || 'null')\n },\n\n highlightFirst: highlightFirstItem,\n highlightLast: highlightLastItem,\n rehighlightCurrent() {\n // Rehighlights an item that may have lost its styling due to the re-render of the list items\n const draggableId = highlightedItem?.getAttribute('data-rbd-draggable-id')\n if (draggableId) {\n const newItem = ref.current?.querySelector<HTMLElement>(\n `[data-rbd-draggable-id=\"${draggableId.replace(/[\"\\\\]/g, '\\\\$&')}\"]`\n )\n highlightItem(newItem)\n }\n },\n\n highlightSelected(shouldScroll: boolean = true) {\n const selectedItem = ref.current?.querySelector<HTMLElement>(\n '[data-selected=\"true\"]'\n )\n\n highlightItem(selectedItem, shouldScroll)\n },\n\n highlightSuggested(shouldScroll: boolean = true) {\n const suggestedItem = ref.current?.querySelector<HTMLElement>(\n '[data-suggested=\"true\"]'\n )\n\n highlightItem(suggestedItem, shouldScroll)\n },\n\n prev: highlightPrevItem,\n next: highlightNextItem,\n select,\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"sensors.js","names":["scrollIntoView","noop","MOUSE_ENTER","MOUSE_LEAVE","menuItemsWrapperAttributeName","menuItemsWrapperAttribute","_defineProperty","isItem","element","hasAttribute","isGroup","el","JSON","parse","dataset","group","isWrapper","getAttribute","getAllItems","menu","querySelectorAll","getFirstItem","_getAllItems","getPrevItem","item","items","Array","prototype","indexOf","call","getNextItem","getLastItem","length","updateHighlightedAttribute","highlight","setAttribute","dispatchEvent","MouseEvent","createSensors","ref","circular","onChangeActiveDescendant","highlightedItem","dragAndDropApi","onSelect","isDraggingStateRef","current","select","event","_highlightedItem","_highlightedItem2","_highlightedItem3","_highlightedItem4","_highlightedItem5","_onSelect","disabled","value","selected","restoreFocus","restorefocus","undefined","tagName","click","_objectSpread","action","highlightItem","shouldScroll","arguments","shouldFocus","_item$getAttribute","id","focus","handleItemBlur","getPrevHighlightableItem","currentItem","prev","getNextHighlightableItem","next","highlightFirstItem","highlightLastItem","highlightPrevItem","_ref$current","contains","highlightNextItem","_ref$current2","handleKeyDown","isDragActive","key","preventDefault","handleItemHover","handleItemFocus","useKeyboardSensor","api","setIsDragging","isDragging","updateSelectCallback","callback","highlighted","_highlightedItem6","highlightFirst","highlightLast","rehighlightCurrent","_highlightedItem7","draggableId","_ref$current3","newItem","querySelector","concat","replace","highlightSelected","_ref$current4","selectedItem","highlightSuggested","_ref$current5","suggestedItem"],"sources":["../../src/MenuImperative/sensors.ts"],"sourcesContent":["import type { SensorAPI } from '@atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-migration'\nimport type React from 'react'\nimport { scrollIntoView } from '../_utils/scrollIntoView'\nimport type { Selection } from './MenuImperative.types'\n\nfunction noop() {}\n\nconst MOUSE_ENTER = 'mouseenter'\nconst MOUSE_LEAVE = 'mouseleave'\n\nconst menuItemsWrapperAttributeName = 'data-core-menuimperative-items-wrapper'\nexport const menuItemsWrapperAttribute = {\n [menuItemsWrapperAttributeName]: 'true',\n}\n\nconst isItem = (element: Element | null) => element?.hasAttribute('data-value')\n\nfunction isGroup(el: HTMLElement) {\n return JSON.parse(el.dataset.group || 'false')\n}\n\nconst isWrapper = (element: Element | null) =>\n element?.getAttribute(menuItemsWrapperAttributeName) === 'true'\n\nfunction getAllItems(menu: Element | null) {\n return menu?.querySelectorAll<HTMLElement>(\n '[data-value]:not([data-group=\"true\"])'\n )\n}\n\nfunction getFirstItem(menu: Element | null) {\n return getAllItems(menu)?.[0]\n}\n\nfunction getPrevItem(item: Element, menu: Element | null): HTMLElement | null {\n const items = getAllItems(menu)\n\n return items ? items[Array.prototype.indexOf.call(items, item) - 1] : null\n}\n\nfunction getNextItem(item: Element, menu: Element | null): HTMLElement | null {\n const items = getAllItems(menu)\n\n return items ? items[Array.prototype.indexOf.call(items, item) + 1] : null\n}\n\nfunction getLastItem(menu: Element | null) {\n const items = getAllItems(menu)\n return items?.[items.length - 1]\n}\n\nfunction updateHighlightedAttribute(\n item: Element | null | undefined,\n highlight: boolean\n) {\n item?.setAttribute('data-highlighted', highlight ? 'true' : 'false')\n item?.dispatchEvent(new MouseEvent(highlight ? MOUSE_ENTER : MOUSE_LEAVE))\n}\n\nexport function createSensors(\n ref: React.RefObject<HTMLDivElement>,\n circular: boolean,\n onChangeActiveDescendant: (\n id: string | undefined,\n menuRef: Element | null\n ) => void\n) {\n let highlightedItem: HTMLElement | null = null\n let dragAndDropApi: SensorAPI | null = null\n let onSelect: (selection: Selection) => any = noop\n const isDraggingStateRef = { current: false }\n\n function select(\n event:\n | React.MouseEvent<HTMLElement, MouseEvent>\n | React.KeyboardEvent<HTMLElement>\n ) {\n if (ref.current && highlightedItem) {\n const disabled = JSON.parse(highlightedItem?.dataset.disabled || 'false')\n if (disabled) return\n\n const item = JSON.parse(highlightedItem?.dataset.value || 'null')\n const selected = JSON.parse(highlightedItem?.dataset.selected || 'false')\n const restoreFocus = highlightedItem?.dataset.restorefocus\n ? JSON.parse(highlightedItem?.dataset.restorefocus)\n : undefined\n\n if (highlightedItem.tagName === 'A') {\n highlightedItem.click()\n }\n\n onSelect?.({\n event,\n item,\n group: false,\n action: selected ? 'unselected' : 'selected',\n ...(restoreFocus === undefined ? {} : { restoreFocus }),\n })\n }\n }\n\n function highlightItem(\n item: HTMLElement | null | undefined,\n shouldScroll: boolean = true,\n shouldFocus: boolean = false\n ) {\n // performance improvement, highlightItem is called onMouseMove for Item\n if (item === highlightedItem) {\n return\n }\n\n if (item) {\n updateHighlightedAttribute(highlightedItem, false)\n\n // TODO add localized screenreader instructions for the item\n updateHighlightedAttribute(item, true)\n\n const id = item.getAttribute('id') ?? undefined\n onChangeActiveDescendant(id, ref.current)\n\n highlightedItem = item\n\n if (shouldFocus) {\n item.focus()\n }\n\n if (shouldScroll) {\n scrollIntoView(-1, item)\n }\n } else {\n onChangeActiveDescendant('', ref.current)\n }\n }\n\n function handleItemBlur(el?: HTMLDivElement) {\n updateHighlightedAttribute(el, false)\n highlightedItem = null\n }\n\n function getPrevHighlightableItem(\n currentItem: HTMLElement\n ): HTMLElement | null | undefined {\n const prev = getPrevItem(currentItem, ref.current)\n if (prev) {\n if (isItem(prev)) {\n return prev\n }\n } else if (circular) {\n return getLastItem(ref.current)\n }\n\n return prev\n }\n\n function getNextHighlightableItem(\n currentItem: HTMLElement\n ): HTMLElement | null | undefined {\n const next = getNextItem(currentItem, ref.current)\n\n if (next) {\n if (isItem(next)) {\n return next\n }\n } else if (circular) {\n return getFirstItem(ref.current)\n }\n }\n\n function highlightFirstItem(\n shouldScroll: boolean = true,\n shouldFocus: boolean = true\n ) {\n highlightItem(getFirstItem(ref.current), shouldScroll, shouldFocus)\n }\n\n function highlightLastItem(\n shouldScroll: boolean = true,\n shouldFocus: boolean = true\n ) {\n highlightItem(getLastItem(ref.current), shouldScroll, shouldFocus)\n }\n\n function highlightPrevItem() {\n if (highlightedItem && ref.current?.contains(highlightedItem)) {\n const prev = getPrevHighlightableItem(highlightedItem)\n if (prev) {\n highlightItem(prev, true, true)\n }\n } else {\n highlightLastItem(true, true)\n }\n }\n\n function highlightNextItem() {\n if (highlightedItem && ref.current?.contains(highlightedItem)) {\n const next = getNextHighlightableItem(highlightedItem)\n if (next) {\n highlightItem(next, true, true)\n }\n } else {\n highlightFirstItem(true, true)\n }\n }\n\n return {\n handleKeyDown(event: React.KeyboardEvent<HTMLDivElement>) {\n if (ref.current) {\n const isDragActive = isDraggingStateRef.current\n if (event.key === 'ArrowUp' || event.key === 'Up') {\n if (!isDragActive) {\n event.preventDefault()\n highlightPrevItem()\n }\n } else if (event.key === 'ArrowDown' || event.key === 'Down') {\n if (!isDragActive) {\n event.preventDefault()\n highlightNextItem()\n }\n } else if (event.key === 'Enter') {\n event.preventDefault()\n if (!isDragActive) {\n select(event)\n }\n }\n }\n },\n handleItemHover(el?: HTMLDivElement) {\n highlightItem(el, false)\n },\n handleItemFocus(el?: HTMLDivElement) {\n highlightItem(el, true, true)\n },\n handleItemBlur(el?: HTMLDivElement) {\n handleItemBlur(el)\n },\n useKeyboardSensor(api: SensorAPI) {\n dragAndDropApi = api\n },\n setIsDragging(isDragging: boolean) {\n isDraggingStateRef.current = isDragging\n },\n\n updateSelectCallback(callback: (selection: Selection) => any) {\n onSelect = callback\n },\n\n highlight: highlightItem,\n\n highlighted() {\n return JSON.parse(highlightedItem?.dataset.value || 'null')\n },\n\n highlightFirst: highlightFirstItem,\n highlightLast: highlightLastItem,\n rehighlightCurrent() {\n // Rehighlights an item that may have lost its styling due to the re-render of the list items\n const draggableId = highlightedItem?.getAttribute('data-rbd-draggable-id')\n if (draggableId) {\n const newItem = ref.current?.querySelector<HTMLElement>(\n `[data-rbd-draggable-id=\"${draggableId.replace(/[\"\\\\]/g, '\\\\$&')}\"]`\n )\n highlightItem(newItem)\n }\n },\n\n highlightSelected(shouldScroll: boolean = true) {\n const selectedItem = ref.current?.querySelector<HTMLElement>(\n '[data-selected=\"true\"]'\n )\n\n highlightItem(selectedItem, shouldScroll)\n },\n\n highlightSuggested(shouldScroll: boolean = true) {\n const suggestedItem = ref.current?.querySelector<HTMLElement>(\n '[data-suggested=\"true\"]'\n )\n\n highlightItem(suggestedItem, shouldScroll)\n },\n\n prev: highlightPrevItem,\n next: highlightNextItem,\n select,\n }\n}\n"],"mappings":"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"}
@@ -32,6 +32,10 @@ export declare const Modal: React.ForwardRefExoticComponent<ModalProps & React.R
32
32
  FooterNotation: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLSpanElement> & TypographyProps & React.RefAttributes<HTMLSpanElement>>;
33
33
  FooterSummary: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
34
34
  Header: React.ForwardRefExoticComponent<ModalCloseableHeaderProps & React.RefAttributes<HTMLDivElement>>;
35
+ /**
36
+ * @a11y The primary heading inside the `Modal.Header` that is auto linked
37
+ * to the dialog and scroll region with aria-labelledby.
38
+ */
35
39
  Heading: (props: React.PropsWithChildren<HeadingProps & {
36
40
  level?: number;
37
41
  }>) => React.JSX.Element;
@@ -4,7 +4,7 @@ var _excluded = ["children", "compact", "onClose", "qa"],
4
4
  _excluded4 = ["children", "compact", "noSideSpacing"],
5
5
  _excluded5 = ["children"],
6
6
  _excluded6 = ["children"],
7
- _excluded7 = ["aria-describedby", "aria-details", "aria-labelledby", "aria-label", "children", "compact", "howToClose", "id", "onClickOverlay", "onClose", "open", "placement", "role"],
7
+ _excluded7 = ["aria-describedby", "aria-details", "aria-labelledby", "aria-label", "aria-modal", "children", "compact", "howToClose", "id", "onClickOverlay", "onClose", "open", "placement", "role"],
8
8
  _excluded8 = ["children", "headline", "onClose"];
9
9
  function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
10
10
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -58,7 +58,6 @@ var ModalClosableHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
58
58
  qa = _ref.qa,
59
59
  props = _objectWithoutProperties(_ref, _excluded);
60
60
  var _React$useContext = React.useContext(ModalBodyScrollContext),
61
- ariaLabelledBy = _React$useContext.ariaLabelledBy,
62
61
  isBodyScrolled = _React$useContext.isBodyScrolled;
63
62
  var _React$useContext2 = React.useContext(ModalCloseContext),
64
63
  howToClose = _React$useContext2.howToClose,
@@ -93,9 +92,6 @@ var ModalClosableHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
93
92
  }
94
93
  }, /*#__PURE__*/React.createElement(StyledModalHeading, {
95
94
  $compact: compact
96
- // This made all children the heading, like Title content
97
- ,
98
- id: ariaLabelledBy
99
95
  }, children), onClose && howToClose !== null && howToClose !== void 0 && howToClose.includes('x') || externalOnClose ? /*#__PURE__*/React.createElement(StyledModalCancel, null, /*#__PURE__*/React.createElement(Button, {
100
96
  "aria-label": I18n.t('core.modal.a11y.close'),
101
97
  "data-internal": "close-button",
@@ -219,6 +215,7 @@ var Modal_ = /*#__PURE__*/React.forwardRef(function (_ref7, ref) {
219
215
  ariaDetails = _ref7['aria-details'],
220
216
  ariaLabelledby = _ref7['aria-labelledby'],
221
217
  ariaLabel = _ref7['aria-label'],
218
+ ariaModal = _ref7['aria-modal'],
222
219
  children = _ref7.children,
223
220
  _ref7$compact = _ref7.compact,
224
221
  compact = _ref7$compact === void 0 ? false : _ref7$compact,
@@ -277,13 +274,13 @@ var Modal_ = /*#__PURE__*/React.forwardRef(function (_ref7, ref) {
277
274
  'aria-details': ariaDetails,
278
275
  'aria-labelledby': labelledbyId,
279
276
  'aria-label': ariaLabel,
277
+ 'aria-modal': ariaModal,
280
278
  id: id,
281
- isModal: false,
282
279
  isOpen: open,
283
280
  role: role
284
281
  }),
285
282
  dialogProps_ = _useModalDialogLike.dialogProps;
286
- var dialogProps = onClose && role === 'dialog' ? dialogProps_ : {};
283
+ var dialogProps = onClose && (role === 'dialog' || role === 'alertdialog') ? dialogProps_ : {};
287
284
  function onClickScrim(e) {
288
285
  onClickOverlay(e);
289
286
  if (onClose && howToClose !== null && howToClose !== void 0 && howToClose.includes('scrim')) {
@@ -344,19 +341,28 @@ export var ConfirmModal = /*#__PURE__*/React.forwardRef(function (_ref9, ref) {
344
341
  headline = _ref9.headline,
345
342
  onClose = _ref9.onClose,
346
343
  props = _objectWithoutProperties(_ref9, _excluded8);
347
- return /*#__PURE__*/React.createElement(Modal, _extends({}, props, {
344
+ var isDialog = props.role === 'dialog' || props.role === 'alertdialog';
345
+
346
+ // When role="dialog", pass onClose to Modal for focus management and Escape key.
347
+ // The header X button is handled via ModalCloseContext when howToClose includes 'x'.
348
+ var configuredModalProps = isDialog && onClose ? {
349
+ onClose: onClose,
350
+ howToClose: ['x']
351
+ } : undefined;
352
+ var headerOnClose = !isDialog && onClose ? onClose : undefined;
353
+ return /*#__PURE__*/React.createElement(Modal, _extends({}, props, configuredModalProps, {
348
354
  ref: ref
349
355
  }), /*#__PURE__*/React.createElement(ModalClosableHeader, {
350
- onClose: onClose
356
+ onClose: headerOnClose
351
357
  }, /*#__PURE__*/React.createElement(StyledModalWarningIcon, {
352
358
  size: "lg"
353
- }), headline), children);
359
+ }), /*#__PURE__*/React.createElement(ModalHeading, null, headline)), children);
354
360
  });
355
361
 
356
362
  /**
357
- * Applies proper smenatics regardless of where in the Modal.
358
- * Adds the generate ID to node when necessary so the dialog and scroll region
359
- * aria-labelledby by can find the primary heading (in the Modal.Header)
363
+ * Applies proper semantics regardless of where in the Modal.
364
+ * @a11y The primary heading that is auto linked to the dialog and scroll region with
365
+ * aria-labelledby, when inside the Modal.Header.
360
366
  */
361
367
  var ModalHeading = function ModalHeading(props) {
362
368
  var _React$useContext6 = React.useContext(ModalBodyScrollContext),
@@ -415,6 +421,10 @@ export var Modal = addSubcomponents({
415
421
  FooterNotation: FooterNotation,
416
422
  FooterSummary: FooterSummary,
417
423
  Header: Header,
424
+ /**
425
+ * @a11y The primary heading inside the `Modal.Header` that is auto linked
426
+ * to the dialog and scroll region with aria-labelledby.
427
+ */
418
428
  Heading: ModalHeading,
419
429
  Overlay: Overlay,
420
430
  Scrim: Scrim,
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","names":["Clear","useId","React","useEffect","Button","useModalDialogLike","Portal","Heading","LevelContext","Section","SectionProvider","useDeprecation","useLayoutEventListener","OverridableFocusScope","useI18nContext","useOverflowObserver","useScrollLock","Visibility","addSubcomponents","CloseWithConfirmContext","useCloseWithConfirmContext","useCloseWithConfirmState","mergeRefs","ChildRegistryProvider","useModalChildRegistryDispatch","fadeInClassName","fadeOutClassName","StyledModal","StyledModalBody","StyledModalButtons","StyledModalCancel","StyledModalContainer","StyledModalContent","StyledModalFooter","StyledModalFooterNotation","StyledModalFooterSummary","StyledModalHeader","StyledModalHeading","StyledModalScrim","StyledModalWarningIcon","useInitializeModalFocus","noop","defaultStartLevel","initialBodyLevel","ModalCloseContext","createContext","howToClose","onClose","undefined","ModalPrimaryHeadingCheckContext","inModalHeader","ModalBodyScrollContext","isBodyScrolled","setIsBodyScrolled","ariaLabelledBy","ModalClosableHeader","forwardRef","_ref","ref","children","_ref$compact","compact","externalOnClose","qa","props","_objectWithoutProperties","_excluded","_React$useContext","useContext","_React$useContext2","I18n","modalClosableHeaderRef","useRef","_useCloseWithConfirmC","closeWithConfirm","registerChildRef","child","onClickButton","e","includes","createElement","_extends","$compact","$isBodyScrolled","Provider","value","id","t","closeButton","icon","onClick","size","variant","ModalClosableFooterButtons","_ref2","_excluded2","_React$useContext3","_useCloseWithConfirmC2","modalClosableFooterButtonsRef","ModalContainer","_ref3","_ref3$compact","placement","width","_excluded3","_React$useContext4","modalContainerRef","hasOnClose","shadowStrength","$placement","$width","ModalBody","_ref4","_ref4$compact","_ref4$noSideSpacing","noSideSpacing","_excluded4","_useOverflowObserver","isOverflowingY","overflowRef","scrollRef","modalBodyRef","_React$useContext5","event","handler","currentTarget","scrollTop","scope","$isOverflowingY","$noSideSpacing","tabIndex","role","ModalFooterSummary","_ref5","_excluded5","ModalFooterNotation","_ref6","_excluded6","intent","color","italic","Modal_","_ref7","ariaDescribedby","ariaDetails","ariaLabelledby","ariaLabel","_ref7$compact","_ref7$onClickOverlay","onClickOverlay","_ref7$open","open","_ref7$placement","_excluded7","defaultLabelId","labelledbyId","_React$useState","useState","_React$useState2","_slicedToArray","visible","setVisible","_React$useState3","_React$useState4","fadeType","setFadeType","closeWithConfirmState","fadeTimer","setTimeout","clearTimeout","onTransitionEnd","handleKeyDown","key","preventDefault","stopPropagation","_useModalDialogLike","isModal","isOpen","dialogProps_","dialogProps","onClickScrim","autoFocus","contain","restoreFocus","className","onKeyDown","ModalBodyScrollObserver","_ref8","_React$useState5","_React$useState6","ConfirmModal","_ref9","headline","_excluded8","Modal","ModalHeading","_React$useContext6","_React$useContext7","ModalState","oldThing","displayName","Body","Container","Content","FooterSummary","Footer","FooterButtons","FooterNotation","Header","Overlay","Scrim","State"],"sources":["../../src/Modal/Modal.tsx"],"sourcesContent":["import { Clear } from '@procore/core-icons/dist'\nimport { useId } from '@react-aria/utils'\nimport React, { useEffect } from 'react'\nimport { Button } from '../Button'\nimport { useModalDialogLike } from '../OverlayTrigger/a11yPresets'\nimport { Portal } from '../Portal'\nimport {\n Heading,\n LevelContext,\n Section,\n SectionProvider,\n} from '../Section/Section'\nimport type { HeadingProps } from '../Semantic/Semantic.types'\nimport type { TypographyProps } from '../Typography'\nimport { useDeprecation } from '../_hooks/Deprecation'\nimport { useLayoutEventListener } from '../_hooks/EventListener'\nimport { OverridableFocusScope } from '../_hooks/FocusScopeOverride'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { useOverflowObserver } from '../_hooks/OverflowObserver'\nimport { useScrollLock } from '../_hooks/ScrollLock'\nimport type { RenderProps } from '../_hooks/Visibility'\nimport { Visibility } from '../_hooks/Visibility'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport {\n CloseWithConfirmContext,\n useCloseWithConfirmContext,\n useCloseWithConfirmState,\n} from '../_utils/closeWithConfirm'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport {\n ChildRegistryProvider,\n useModalChildRegistryDispatch,\n} from './ChildRegistry.context'\nimport {\n fadeInClassName,\n fadeOutClassName,\n StyledModal,\n StyledModalBody,\n StyledModalButtons,\n StyledModalCancel,\n StyledModalContainer,\n StyledModalContent,\n StyledModalFooter,\n StyledModalFooterNotation,\n StyledModalFooterSummary,\n StyledModalHeader,\n StyledModalHeading,\n StyledModalScrim,\n StyledModalWarningIcon,\n} from './Modal.styles'\nimport type {\n ConfirmModalProps,\n ModalBodyProps,\n ModalCloseableHeaderProps,\n ModalCloseContextApi,\n ModalContainerProps,\n ModalProps,\n} from './Modal.types'\nimport { useInitializeModalFocus } from './useInitializeModalFocus'\n\nfunction noop() {}\nconst defaultStartLevel = 2\nconst initialBodyLevel = 3\n\nconst ModalCloseContext = React.createContext<ModalCloseContextApi>({\n howToClose: [],\n onClose: undefined,\n})\n\nconst ModalPrimaryHeadingCheckContext = React.createContext({\n inModalHeader: false,\n})\n\ninterface ModalBodyScrollContextApi {\n isBodyScrolled: boolean\n setIsBodyScrolled: React.Dispatch<React.SetStateAction<boolean>>\n ariaLabelledBy?: string\n}\n\nconst ModalBodyScrollContext = React.createContext<ModalBodyScrollContextApi>({\n isBodyScrolled: false,\n setIsBodyScrolled: noop,\n ariaLabelledBy: undefined,\n})\n\nconst ModalClosableHeader = React.forwardRef<\n HTMLDivElement,\n ModalCloseableHeaderProps\n>(\n (\n { children, compact = false, onClose: externalOnClose, qa, ...props },\n ref\n ) => {\n const { ariaLabelledBy, isBodyScrolled } = React.useContext(\n ModalBodyScrollContext\n )\n const { howToClose, onClose } = React.useContext(ModalCloseContext)\n const I18n = useI18nContext()\n const modalClosableHeaderRef = React.useRef(null)\n\n const { closeWithConfirm } = useCloseWithConfirmContext()\n const registerChildRef = useModalChildRegistryDispatch()\n\n useEffect(() => {\n registerChildRef({ child: 'header', ref: modalClosableHeaderRef })\n }, [])\n\n function onClickButton(e: React.MouseEvent<HTMLButtonElement>) {\n if (onClose && howToClose?.includes('x')) {\n closeWithConfirm(onClose)(e, 'x')\n return\n }\n closeWithConfirm(externalOnClose!)(e)\n }\n\n return (\n <StyledModalHeader\n $compact={compact}\n $isBodyScrolled={isBodyScrolled}\n {...props}\n ref={mergeRefs(ref, modalClosableHeaderRef)}\n data-id=\"modal-header\"\n >\n <ModalPrimaryHeadingCheckContext.Provider\n value={{ inModalHeader: true }}\n >\n <StyledModalHeading\n $compact={compact}\n // This made all children the heading, like Title content\n id={ariaLabelledBy}\n >\n {children}\n </StyledModalHeading>\n {(onClose && howToClose?.includes('x')) || externalOnClose ? (\n <StyledModalCancel>\n <Button\n aria-label={I18n.t('core.modal.a11y.close')}\n data-internal=\"close-button\"\n data-qa={qa?.closeButton}\n icon={<Clear />}\n onClick={onClickButton}\n size={compact ? 'sm' : 'md'}\n variant=\"tertiary\"\n />\n </StyledModalCancel>\n ) : null}\n </ModalPrimaryHeadingCheckContext.Provider>\n </StyledModalHeader>\n )\n }\n)\n\nconst ModalClosableFooterButtons = React.forwardRef<\n HTMLDivElement,\n ModalCloseableHeaderProps\n>(({ children, ...props }, ref) => {\n const { howToClose, onClose } = React.useContext(ModalCloseContext)\n const I18n = useI18nContext()\n const { closeWithConfirm } = useCloseWithConfirmContext()\n const modalClosableFooterButtonsRef = React.useRef(null)\n\n const registerChildRef = useModalChildRegistryDispatch()\n\n useEffect(() => {\n registerChildRef({\n child: 'closeableButtons',\n ref: modalClosableFooterButtonsRef,\n })\n }, [])\n\n function onClickButton(e: React.MouseEvent<HTMLButtonElement>) {\n closeWithConfirm(onClose!)(e, 'footer-button')\n }\n\n return (\n <StyledModalButtons\n {...props}\n ref={mergeRefs(ref, modalClosableFooterButtonsRef)}\n >\n {howToClose?.includes('footer-button') && (\n <Button onClick={onClickButton} variant=\"tertiary\">\n {I18n.t('core.modal.cancel')}\n </Button>\n )}\n {children}\n </StyledModalButtons>\n )\n})\n\nconst ModalContainer = React.forwardRef<HTMLDivElement, ModalContainerProps>(\n ({ compact = false, placement, width, ...props }, ref) => {\n const { onClose } = React.useContext(ModalCloseContext)\n const modalContainerRef = React.useRef<HTMLDivElement>(null)\n useInitializeModalFocus({ modalContainerRef, hasOnClose: !!onClose })\n\n return (\n <StyledModalContainer\n {...props}\n shadowStrength={4}\n $compact={compact}\n $placement={placement}\n $width={width}\n ref={mergeRefs(ref, modalContainerRef)}\n />\n )\n }\n)\n\nconst ModalBody = React.forwardRef<HTMLDivElement, ModalBodyProps>(\n ({ children, compact = false, noSideSpacing = false, ...props }, ref) => {\n const { isOverflowingY, ref: overflowRef } = useOverflowObserver()\n const scrollRef = React.useRef(null)\n const modalBodyRef = React.useRef(null)\n const { ariaLabelledBy, setIsBodyScrolled } = React.useContext(\n ModalBodyScrollContext\n )\n const registerChildRef = useModalChildRegistryDispatch()\n\n useEffect(() => {\n registerChildRef({ child: 'body', ref: modalBodyRef })\n }, [])\n\n useLayoutEventListener({\n event: 'scroll',\n handler: (e: React.UIEvent<HTMLElement>) => {\n setIsBodyScrolled(e.currentTarget.scrollTop > 0)\n },\n scope: scrollRef,\n })\n\n return (\n <SectionProvider>\n <LevelContext.Provider value={initialBodyLevel}>\n <StyledModalBody\n {...props}\n $compact={compact}\n $isOverflowingY={isOverflowingY}\n $noSideSpacing={noSideSpacing}\n ref={mergeRefs(overflowRef, scrollRef, ref, modalBodyRef)}\n tabIndex={0}\n role=\"region\"\n aria-labelledby={ariaLabelledBy}\n >\n {children}\n </StyledModalBody>\n </LevelContext.Provider>\n </SectionProvider>\n )\n }\n)\n\nconst ModalFooterSummary = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ children, ...props }, ref) => {\n return (\n <StyledModalFooterSummary {...props} ref={ref}>\n {children}\n </StyledModalFooterSummary>\n )\n})\n\nconst ModalFooterNotation = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes<HTMLSpanElement> & TypographyProps\n>(({ children, ...props }, ref) => (\n <StyledModalFooterNotation\n aria-live=\"polite\"\n intent=\"small\"\n color=\"gray45\"\n italic\n {...props}\n ref={ref}\n >\n {children}\n </StyledModalFooterNotation>\n))\n\nconst Modal_ = React.forwardRef<HTMLDivElement, ModalProps>(\n (\n {\n ['aria-describedby']: ariaDescribedby,\n ['aria-details']: ariaDetails,\n ['aria-labelledby']: ariaLabelledby,\n ['aria-label']: ariaLabel,\n children,\n compact = false,\n howToClose,\n id,\n onClickOverlay = noop,\n onClose,\n open = false,\n placement = 'center',\n role,\n ...props\n },\n ref\n ) => {\n useScrollLock(open)\n const defaultLabelId = useId()\n const labelledbyId = ariaLabel ? id : ariaLabelledby ?? defaultLabelId\n const [visible, setVisible] = React.useState<boolean>(open)\n const [fadeType, setFadeType] = React.useState<string>('')\n const closeWithConfirmState = useCloseWithConfirmState()\n const { closeWithConfirm } = closeWithConfirmState\n\n React.useEffect(() => {\n if (open) {\n setVisible(true)\n const fadeTimer = setTimeout(() => {\n setFadeType(fadeInClassName)\n }, 0)\n return () => clearTimeout(fadeTimer)\n } else {\n setFadeType(fadeOutClassName)\n }\n }, [open])\n\n const onTransitionEnd = () => {\n if (fadeType === fadeOutClassName) {\n setVisible(false)\n }\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (!onClose) return\n if (e.key === 'Escape') {\n e.preventDefault()\n e.stopPropagation()\n closeWithConfirm(onClose)(e, 'x')\n }\n }\n\n const { dialogProps: dialogProps_ } = useModalDialogLike({\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n 'aria-labelledby': labelledbyId,\n 'aria-label': ariaLabel,\n id,\n isModal: false,\n isOpen: open,\n role,\n })\n\n const dialogProps = onClose && role === 'dialog' ? dialogProps_ : {}\n\n function onClickScrim(e: React.MouseEvent<HTMLDivElement>) {\n onClickOverlay(e)\n if (onClose && howToClose?.includes('scrim')) {\n closeWithConfirm(onClose)(e, 'scrim')\n }\n }\n\n return visible ? (\n <Portal>\n <ModalCloseContext.Provider value={{ onClose, howToClose }}>\n <LevelContext.Provider value={defaultStartLevel}>\n <ChildRegistryProvider>\n <OverridableFocusScope\n // TODO breaking - always\n autoFocus={!!onClose}\n contain={!!onClose}\n restoreFocus={!!onClose}\n >\n <StyledModal\n className={fadeType}\n ref={ref}\n onTransitionEnd={onTransitionEnd}\n onKeyDown={handleKeyDown}\n {...dialogProps}\n data-id=\"modal\"\n >\n <StyledModalScrim\n data-qa=\"core-modal-scrim\"\n onClick={onClickScrim}\n />\n\n <ModalContainer\n {...props}\n compact={compact}\n placement={placement}\n >\n <StyledModalContent $compact={compact}>\n <ModalBodyScrollObserver ariaLabelledBy={labelledbyId}>\n <CloseWithConfirmContext.Provider\n value={closeWithConfirmState}\n >\n {children}\n </CloseWithConfirmContext.Provider>\n </ModalBodyScrollObserver>\n </StyledModalContent>\n </ModalContainer>\n </StyledModal>\n </OverridableFocusScope>\n </ChildRegistryProvider>\n </LevelContext.Provider>\n </ModalCloseContext.Provider>\n </Portal>\n ) : null\n }\n)\n\ninterface ModalBodyScrollObserverProps {\n ariaLabelledBy?: string\n}\n\nconst ModalBodyScrollObserver = ({\n ariaLabelledBy,\n children,\n}: React.PropsWithChildren<ModalBodyScrollObserverProps>) => {\n const [isBodyScrolled, setIsBodyScrolled] = React.useState<boolean>(false)\n\n return (\n <ModalBodyScrollContext.Provider\n value={{ ariaLabelledBy, isBodyScrolled, setIsBodyScrolled }}\n >\n {children}\n </ModalBodyScrollContext.Provider>\n )\n}\n\nexport const ConfirmModal = React.forwardRef<HTMLDivElement, ConfirmModalProps>(\n ({ children, headline, onClose, ...props }, ref) => {\n return (\n <Modal {...props} ref={ref}>\n <ModalClosableHeader onClose={onClose}>\n <StyledModalWarningIcon size=\"lg\" />\n {headline}\n </ModalClosableHeader>\n {children}\n </Modal>\n )\n }\n)\n\n/**\n * Applies proper smenatics regardless of where in the Modal.\n * Adds the generate ID to node when necessary so the dialog and scroll region\n * aria-labelledby by can find the primary heading (in the Modal.Header)\n */\nconst ModalHeading = (\n props: React.PropsWithChildren<HeadingProps & { level?: number }>\n) => {\n const { ariaLabelledBy } = React.useContext(ModalBodyScrollContext)\n const { inModalHeader } = React.useContext(ModalPrimaryHeadingCheckContext)\n\n return <Heading id={inModalHeader ? ariaLabelledBy : undefined} {...props} />\n}\n\nfunction ModalState(props: RenderProps) {\n useDeprecation({ oldThing: 'Modal.State' })\n return <Visibility {...props} />\n}\n\nModal_.displayName = 'Modal'\n\nConfirmModal.displayName = 'ConfirmModal'\n\nModalBody.displayName = 'Modal.Body'\n\nModalFooterNotation.displayName = 'Modal.FooterNotation'\n\nModalFooterSummary.displayName = 'Modal.FooterSummary'\n\nconst Body = ModalBody\nconst Container = ModalContainer\nconst Content = StyledModalContent\nconst FooterSummary = ModalFooterSummary\nconst Footer = StyledModalFooter\nconst FooterButtons = ModalClosableFooterButtons\nconst FooterNotation = ModalFooterNotation\nconst Header = ModalClosableHeader\nconst Overlay = StyledModal\nconst Scrim = StyledModalScrim\nconst State = ModalState\n\n/**\n\n We use modals to present additional actions, information, or forms on pages\n where a user’s experience would benefit from remaining on the same page.\n They can include graphics, inputs, buttons, and other elements as needed to\n produce the workflow or action needed.\n\n Do not include modals on pages with complicated UI layouts.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-modal--demo)\n\n @see [Design Guidelines](https://design.procore.com/modal)\n\n */\nexport const Modal = addSubcomponents(\n {\n Body,\n Container,\n Content,\n Footer,\n FooterButtons,\n FooterNotation,\n FooterSummary,\n Header,\n Heading: ModalHeading,\n Overlay,\n Scrim,\n State,\n Section,\n },\n Modal_\n)\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,SAASA,KAAK,QAAQ,0BAA0B;AAChD,SAASC,KAAK,QAAQ,mBAAmB;AACzC,OAAOC,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,kBAAkB,QAAQ,+BAA+B;AAClE,SAASC,MAAM,QAAQ,WAAW;AAClC,SACEC,OAAO,EACPC,YAAY,EACZC,OAAO,EACPC,eAAe,QACV,oBAAoB;AAG3B,SAASC,cAAc,QAAQ,uBAAuB;AACtD,SAASC,sBAAsB,QAAQ,yBAAyB;AAChE,SAASC,qBAAqB,QAAQ,8BAA8B;AACpE,SAASC,cAAc,QAAQ,gBAAgB;AAC/C,SAASC,mBAAmB,QAAQ,4BAA4B;AAChE,SAASC,aAAa,QAAQ,sBAAsB;AAEpD,SAASC,UAAU,QAAQ,sBAAsB;AACjD,SAASC,gBAAgB,QAAQ,4BAA4B;AAC7D,SACEC,uBAAuB,EACvBC,0BAA0B,EAC1BC,wBAAwB,QACnB,4BAA4B;AACnC,SAASC,SAAS,QAAQ,qBAAqB;AAC/C,SACEC,qBAAqB,EACrBC,6BAA6B,QACxB,yBAAyB;AAChC,SACEC,eAAe,EACfC,gBAAgB,EAChBC,WAAW,EACXC,eAAe,EACfC,kBAAkB,EAClBC,iBAAiB,EACjBC,oBAAoB,EACpBC,kBAAkB,EAClBC,iBAAiB,EACjBC,yBAAyB,EACzBC,wBAAwB,EACxBC,iBAAiB,EACjBC,kBAAkB,EAClBC,gBAAgB,EAChBC,sBAAsB,QACjB,gBAAgB;AASvB,SAASC,uBAAuB,QAAQ,2BAA2B;AAEnE,SAASC,IAAIA,CAAA,EAAG,CAAC;AACjB,IAAMC,iBAAiB,GAAG,CAAC;AAC3B,IAAMC,gBAAgB,GAAG,CAAC;AAE1B,IAAMC,iBAAiB,gBAAG1C,KAAK,CAAC2C,aAAa,CAAuB;EAClEC,UAAU,EAAE,EAAE;EACdC,OAAO,EAAEC;AACX,CAAC,CAAC;AAEF,IAAMC,+BAA+B,gBAAG/C,KAAK,CAAC2C,aAAa,CAAC;EAC1DK,aAAa,EAAE;AACjB,CAAC,CAAC;AAQF,IAAMC,sBAAsB,gBAAGjD,KAAK,CAAC2C,aAAa,CAA4B;EAC5EO,cAAc,EAAE,KAAK;EACrBC,iBAAiB,EAAEZ,IAAI;EACvBa,cAAc,EAAEN;AAClB,CAAC,CAAC;AAEF,IAAMO,mBAAmB,gBAAGrD,KAAK,CAACsD,UAAU,CAI1C,UAAAC,IAAA,EAEEC,GAAG,EACA;EAAA,IAFDC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAAC,YAAA,GAAAH,IAAA,CAAEI,OAAO;IAAPA,OAAO,GAAAD,YAAA,cAAG,KAAK,GAAAA,YAAA;IAAWE,eAAe,GAAAL,IAAA,CAAxBV,OAAO;IAAmBgB,EAAE,GAAAN,IAAA,CAAFM,EAAE;IAAKC,KAAK,GAAAC,wBAAA,CAAAR,IAAA,EAAAS,SAAA;EAGnE,IAAAC,iBAAA,GAA2CjE,KAAK,CAACkE,UAAU,CACzDjB,sBACF,CAAC;IAFOG,cAAc,GAAAa,iBAAA,CAAdb,cAAc;IAAEF,cAAc,GAAAe,iBAAA,CAAdf,cAAc;EAGtC,IAAAiB,kBAAA,GAAgCnE,KAAK,CAACkE,UAAU,CAACxB,iBAAiB,CAAC;IAA3DE,UAAU,GAAAuB,kBAAA,CAAVvB,UAAU;IAAEC,OAAO,GAAAsB,kBAAA,CAAPtB,OAAO;EAC3B,IAAMuB,IAAI,GAAGxD,cAAc,CAAC,CAAC;EAC7B,IAAMyD,sBAAsB,GAAGrE,KAAK,CAACsE,MAAM,CAAC,IAAI,CAAC;EAEjD,IAAAC,qBAAA,GAA6BrD,0BAA0B,CAAC,CAAC;IAAjDsD,gBAAgB,GAAAD,qBAAA,CAAhBC,gBAAgB;EACxB,IAAMC,gBAAgB,GAAGnD,6BAA6B,CAAC,CAAC;EAExDrB,SAAS,CAAC,YAAM;IACdwE,gBAAgB,CAAC;MAAEC,KAAK,EAAE,QAAQ;MAAElB,GAAG,EAAEa;IAAuB,CAAC,CAAC;EACpE,CAAC,EAAE,EAAE,CAAC;EAEN,SAASM,aAAaA,CAACC,CAAsC,EAAE;IAC7D,IAAI/B,OAAO,IAAID,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAEiC,QAAQ,CAAC,GAAG,CAAC,EAAE;MACxCL,gBAAgB,CAAC3B,OAAO,CAAC,CAAC+B,CAAC,EAAE,GAAG,CAAC;MACjC;IACF;IACAJ,gBAAgB,CAACZ,eAAgB,CAAC,CAACgB,CAAC,CAAC;EACvC;EAEA,oBACE5E,KAAA,CAAA8E,aAAA,CAAC5C,iBAAiB,EAAA6C,QAAA;IAChBC,QAAQ,EAAErB,OAAQ;IAClBsB,eAAe,EAAE/B;EAAe,GAC5BY,KAAK;IACTN,GAAG,EAAEpC,SAAS,CAACoC,GAAG,EAAEa,sBAAsB,CAAE;IAC5C,WAAQ;EAAc,iBAEtBrE,KAAA,CAAA8E,aAAA,CAAC/B,+BAA+B,CAACmC,QAAQ;IACvCC,KAAK,EAAE;MAAEnC,aAAa,EAAE;IAAK;EAAE,gBAE/BhD,KAAA,CAAA8E,aAAA,CAAC3C,kBAAkB;IACjB6C,QAAQ,EAAErB;IACV;IAAA;IACAyB,EAAE,EAAEhC;EAAe,GAElBK,QACiB,CAAC,EACnBZ,OAAO,IAAID,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAEiC,QAAQ,CAAC,GAAG,CAAC,IAAKjB,eAAe,gBACxD5D,KAAA,CAAA8E,aAAA,CAAClD,iBAAiB,qBAChB5B,KAAA,CAAA8E,aAAA,CAAC5E,MAAM;IACL,cAAYkE,IAAI,CAACiB,CAAC,CAAC,uBAAuB,CAAE;IAC5C,iBAAc,cAAc;IAC5B,WAASxB,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAEyB,WAAY;IACzBC,IAAI,eAAEvF,KAAA,CAAA8E,aAAA,CAAChF,KAAK,MAAE,CAAE;IAChB0F,OAAO,EAAEb,aAAc;IACvBc,IAAI,EAAE9B,OAAO,GAAG,IAAI,GAAG,IAAK;IAC5B+B,OAAO,EAAC;EAAU,CACnB,CACgB,CAAC,GAClB,IACoC,CACzB,CAAC;AAExB,CACF,CAAC;AAED,IAAMC,0BAA0B,gBAAG3F,KAAK,CAACsD,UAAU,CAGjD,UAAAsC,KAAA,EAAyBpC,GAAG,EAAK;EAAA,IAA9BC,QAAQ,GAAAmC,KAAA,CAARnC,QAAQ;IAAKK,KAAK,GAAAC,wBAAA,CAAA6B,KAAA,EAAAC,UAAA;EACrB,IAAAC,kBAAA,GAAgC9F,KAAK,CAACkE,UAAU,CAACxB,iBAAiB,CAAC;IAA3DE,UAAU,GAAAkD,kBAAA,CAAVlD,UAAU;IAAEC,OAAO,GAAAiD,kBAAA,CAAPjD,OAAO;EAC3B,IAAMuB,IAAI,GAAGxD,cAAc,CAAC,CAAC;EAC7B,IAAAmF,sBAAA,GAA6B7E,0BAA0B,CAAC,CAAC;IAAjDsD,gBAAgB,GAAAuB,sBAAA,CAAhBvB,gBAAgB;EACxB,IAAMwB,6BAA6B,GAAGhG,KAAK,CAACsE,MAAM,CAAC,IAAI,CAAC;EAExD,IAAMG,gBAAgB,GAAGnD,6BAA6B,CAAC,CAAC;EAExDrB,SAAS,CAAC,YAAM;IACdwE,gBAAgB,CAAC;MACfC,KAAK,EAAE,kBAAkB;MACzBlB,GAAG,EAAEwC;IACP,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN,SAASrB,aAAaA,CAACC,CAAsC,EAAE;IAC7DJ,gBAAgB,CAAC3B,OAAQ,CAAC,CAAC+B,CAAC,EAAE,eAAe,CAAC;EAChD;EAEA,oBACE5E,KAAA,CAAA8E,aAAA,CAACnD,kBAAkB,EAAAoD,QAAA,KACbjB,KAAK;IACTN,GAAG,EAAEpC,SAAS,CAACoC,GAAG,EAAEwC,6BAA6B;EAAE,IAElD,CAAApD,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEiC,QAAQ,CAAC,eAAe,CAAC,kBACpC7E,KAAA,CAAA8E,aAAA,CAAC5E,MAAM;IAACsF,OAAO,EAAEb,aAAc;IAACe,OAAO,EAAC;EAAU,GAC/CtB,IAAI,CAACiB,CAAC,CAAC,mBAAmB,CACrB,CACT,EACA5B,QACiB,CAAC;AAEzB,CAAC,CAAC;AAEF,IAAMwC,cAAc,gBAAGjG,KAAK,CAACsD,UAAU,CACrC,UAAA4C,KAAA,EAAkD1C,GAAG,EAAK;EAAA,IAAA2C,aAAA,GAAAD,KAAA,CAAvDvC,OAAO;IAAPA,OAAO,GAAAwC,aAAA,cAAG,KAAK,GAAAA,aAAA;IAAEC,SAAS,GAAAF,KAAA,CAATE,SAAS;IAAEC,KAAK,GAAAH,KAAA,CAALG,KAAK;IAAKvC,KAAK,GAAAC,wBAAA,CAAAmC,KAAA,EAAAI,UAAA;EAC5C,IAAAC,kBAAA,GAAoBvG,KAAK,CAACkE,UAAU,CAACxB,iBAAiB,CAAC;IAA/CG,OAAO,GAAA0D,kBAAA,CAAP1D,OAAO;EACf,IAAM2D,iBAAiB,GAAGxG,KAAK,CAACsE,MAAM,CAAiB,IAAI,CAAC;EAC5DhC,uBAAuB,CAAC;IAAEkE,iBAAiB,EAAjBA,iBAAiB;IAAEC,UAAU,EAAE,CAAC,CAAC5D;EAAQ,CAAC,CAAC;EAErE,oBACE7C,KAAA,CAAA8E,aAAA,CAACjD,oBAAoB,EAAAkD,QAAA,KACfjB,KAAK;IACT4C,cAAc,EAAE,CAAE;IAClB1B,QAAQ,EAAErB,OAAQ;IAClBgD,UAAU,EAAEP,SAAU;IACtBQ,MAAM,EAAEP,KAAM;IACd7C,GAAG,EAAEpC,SAAS,CAACoC,GAAG,EAAEgD,iBAAiB;EAAE,EACxC,CAAC;AAEN,CACF,CAAC;AAED,IAAMK,SAAS,gBAAG7G,KAAK,CAACsD,UAAU,CAChC,UAAAwD,KAAA,EAAiEtD,GAAG,EAAK;EAAA,IAAtEC,QAAQ,GAAAqD,KAAA,CAARrD,QAAQ;IAAAsD,aAAA,GAAAD,KAAA,CAAEnD,OAAO;IAAPA,OAAO,GAAAoD,aAAA,cAAG,KAAK,GAAAA,aAAA;IAAAC,mBAAA,GAAAF,KAAA,CAAEG,aAAa;IAAbA,aAAa,GAAAD,mBAAA,cAAG,KAAK,GAAAA,mBAAA;IAAKlD,KAAK,GAAAC,wBAAA,CAAA+C,KAAA,EAAAI,UAAA;EAC3D,IAAAC,oBAAA,GAA6CtG,mBAAmB,CAAC,CAAC;IAA1DuG,cAAc,GAAAD,oBAAA,CAAdC,cAAc;IAAOC,WAAW,GAAAF,oBAAA,CAAhB3D,GAAG;EAC3B,IAAM8D,SAAS,GAAGtH,KAAK,CAACsE,MAAM,CAAC,IAAI,CAAC;EACpC,IAAMiD,YAAY,GAAGvH,KAAK,CAACsE,MAAM,CAAC,IAAI,CAAC;EACvC,IAAAkD,kBAAA,GAA8CxH,KAAK,CAACkE,UAAU,CAC5DjB,sBACF,CAAC;IAFOG,cAAc,GAAAoE,kBAAA,CAAdpE,cAAc;IAAED,iBAAiB,GAAAqE,kBAAA,CAAjBrE,iBAAiB;EAGzC,IAAMsB,gBAAgB,GAAGnD,6BAA6B,CAAC,CAAC;EAExDrB,SAAS,CAAC,YAAM;IACdwE,gBAAgB,CAAC;MAAEC,KAAK,EAAE,MAAM;MAAElB,GAAG,EAAE+D;IAAa,CAAC,CAAC;EACxD,CAAC,EAAE,EAAE,CAAC;EAEN7G,sBAAsB,CAAC;IACrB+G,KAAK,EAAE,QAAQ;IACfC,OAAO,EAAE,SAATA,OAAOA,CAAG9C,CAA6B,EAAK;MAC1CzB,iBAAiB,CAACyB,CAAC,CAAC+C,aAAa,CAACC,SAAS,GAAG,CAAC,CAAC;IAClD,CAAC;IACDC,KAAK,EAAEP;EACT,CAAC,CAAC;EAEF,oBACEtH,KAAA,CAAA8E,aAAA,CAACtE,eAAe,qBACdR,KAAA,CAAA8E,aAAA,CAACxE,YAAY,CAAC4E,QAAQ;IAACC,KAAK,EAAE1C;EAAiB,gBAC7CzC,KAAA,CAAA8E,aAAA,CAACpD,eAAe,EAAAqD,QAAA,KACVjB,KAAK;IACTkB,QAAQ,EAAErB,OAAQ;IAClBmE,eAAe,EAAEV,cAAe;IAChCW,cAAc,EAAEd,aAAc;IAC9BzD,GAAG,EAAEpC,SAAS,CAACiG,WAAW,EAAEC,SAAS,EAAE9D,GAAG,EAAE+D,YAAY,CAAE;IAC1DS,QAAQ,EAAE,CAAE;IACZC,IAAI,EAAC,QAAQ;IACb,mBAAiB7E;EAAe,IAE/BK,QACc,CACI,CACR,CAAC;AAEtB,CACF,CAAC;AAED,IAAMyE,kBAAkB,gBAAGlI,KAAK,CAACsD,UAAU,CAGzC,UAAA6E,KAAA,EAAyB3E,GAAG,EAAK;EAAA,IAA9BC,QAAQ,GAAA0E,KAAA,CAAR1E,QAAQ;IAAKK,KAAK,GAAAC,wBAAA,CAAAoE,KAAA,EAAAC,UAAA;EACrB,oBACEpI,KAAA,CAAA8E,aAAA,CAAC7C,wBAAwB,EAAA8C,QAAA,KAAKjB,KAAK;IAAEN,GAAG,EAAEA;EAAI,IAC3CC,QACuB,CAAC;AAE/B,CAAC,CAAC;AAEF,IAAM4E,mBAAmB,gBAAGrI,KAAK,CAACsD,UAAU,CAG1C,UAAAgF,KAAA,EAAyB9E,GAAG;EAAA,IAAzBC,QAAQ,GAAA6E,KAAA,CAAR7E,QAAQ;IAAKK,KAAK,GAAAC,wBAAA,CAAAuE,KAAA,EAAAC,UAAA;EAAA,oBACrBvI,KAAA,CAAA8E,aAAA,CAAC9C,yBAAyB,EAAA+C,QAAA;IACxB,aAAU,QAAQ;IAClByD,MAAM,EAAC,OAAO;IACdC,KAAK,EAAC,QAAQ;IACdC,MAAM;EAAA,GACF5E,KAAK;IACTN,GAAG,EAAEA;EAAI,IAERC,QACwB,CAAC;AAAA,CAC7B,CAAC;AAEF,IAAMkF,MAAM,gBAAG3I,KAAK,CAACsD,UAAU,CAC7B,UAAAsF,KAAA,EAiBEpF,GAAG,EACA;EAAA,IAhBqBqF,eAAe,GAAAD,KAAA,CAApC,kBAAkB;IACDE,WAAW,GAAAF,KAAA,CAA5B,cAAc;IACMG,cAAc,GAAAH,KAAA,CAAlC,iBAAiB;IACFI,SAAS,GAAAJ,KAAA,CAAxB,YAAY;IACbnF,QAAQ,GAAAmF,KAAA,CAARnF,QAAQ;IAAAwF,aAAA,GAAAL,KAAA,CACRjF,OAAO;IAAPA,OAAO,GAAAsF,aAAA,cAAG,KAAK,GAAAA,aAAA;IACfrG,UAAU,GAAAgG,KAAA,CAAVhG,UAAU;IACVwC,EAAE,GAAAwD,KAAA,CAAFxD,EAAE;IAAA8D,oBAAA,GAAAN,KAAA,CACFO,cAAc;IAAdA,cAAc,GAAAD,oBAAA,cAAG3G,IAAI,GAAA2G,oBAAA;IACrBrG,OAAO,GAAA+F,KAAA,CAAP/F,OAAO;IAAAuG,UAAA,GAAAR,KAAA,CACPS,IAAI;IAAJA,IAAI,GAAAD,UAAA,cAAG,KAAK,GAAAA,UAAA;IAAAE,eAAA,GAAAV,KAAA,CACZxC,SAAS;IAATA,SAAS,GAAAkD,eAAA,cAAG,QAAQ,GAAAA,eAAA;IACpBrB,IAAI,GAAAW,KAAA,CAAJX,IAAI;IACDnE,KAAK,GAAAC,wBAAA,CAAA6E,KAAA,EAAAW,UAAA;EAIVzI,aAAa,CAACuI,IAAI,CAAC;EACnB,IAAMG,cAAc,GAAGzJ,KAAK,CAAC,CAAC;EAC9B,IAAM0J,YAAY,GAAGT,SAAS,GAAG5D,EAAE,GAAG2D,cAAc,aAAdA,cAAc,cAAdA,cAAc,GAAIS,cAAc;EACtE,IAAAE,eAAA,GAA8B1J,KAAK,CAAC2J,QAAQ,CAAUN,IAAI,CAAC;IAAAO,gBAAA,GAAAC,cAAA,CAAAH,eAAA;IAApDI,OAAO,GAAAF,gBAAA;IAAEG,UAAU,GAAAH,gBAAA;EAC1B,IAAAI,gBAAA,GAAgChK,KAAK,CAAC2J,QAAQ,CAAS,EAAE,CAAC;IAAAM,gBAAA,GAAAJ,cAAA,CAAAG,gBAAA;IAAnDE,QAAQ,GAAAD,gBAAA;IAAEE,WAAW,GAAAF,gBAAA;EAC5B,IAAMG,qBAAqB,GAAGjJ,wBAAwB,CAAC,CAAC;EACxD,IAAQqD,gBAAgB,GAAK4F,qBAAqB,CAA1C5F,gBAAgB;EAExBxE,KAAK,CAACC,SAAS,CAAC,YAAM;IACpB,IAAIoJ,IAAI,EAAE;MACRU,UAAU,CAAC,IAAI,CAAC;MAChB,IAAMM,SAAS,GAAGC,UAAU,CAAC,YAAM;QACjCH,WAAW,CAAC5I,eAAe,CAAC;MAC9B,CAAC,EAAE,CAAC,CAAC;MACL,OAAO;QAAA,OAAMgJ,YAAY,CAACF,SAAS,CAAC;MAAA;IACtC,CAAC,MAAM;MACLF,WAAW,CAAC3I,gBAAgB,CAAC;IAC/B;EACF,CAAC,EAAE,CAAC6H,IAAI,CAAC,CAAC;EAEV,IAAMmB,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAS;IAC5B,IAAIN,QAAQ,KAAK1I,gBAAgB,EAAE;MACjCuI,UAAU,CAAC,KAAK,CAAC;IACnB;EACF,CAAC;EAED,IAAMU,aAAa,GAAG,SAAhBA,aAAaA,CAAI7F,CAAsC,EAAK;IAChE,IAAI,CAAC/B,OAAO,EAAE;IACd,IAAI+B,CAAC,CAAC8F,GAAG,KAAK,QAAQ,EAAE;MACtB9F,CAAC,CAAC+F,cAAc,CAAC,CAAC;MAClB/F,CAAC,CAACgG,eAAe,CAAC,CAAC;MACnBpG,gBAAgB,CAAC3B,OAAO,CAAC,CAAC+B,CAAC,EAAE,GAAG,CAAC;IACnC;EACF,CAAC;EAED,IAAAiG,mBAAA,GAAsC1K,kBAAkB,CAAC;MACvD,kBAAkB,EAAE0I,eAAe;MACnC,cAAc,EAAEC,WAAW;MAC3B,iBAAiB,EAAEW,YAAY;MAC/B,YAAY,EAAET,SAAS;MACvB5D,EAAE,EAAFA,EAAE;MACF0F,OAAO,EAAE,KAAK;MACdC,MAAM,EAAE1B,IAAI;MACZpB,IAAI,EAAJA;IACF,CAAC,CAAC;IATmB+C,YAAY,GAAAH,mBAAA,CAAzBI,WAAW;EAWnB,IAAMA,WAAW,GAAGpI,OAAO,IAAIoF,IAAI,KAAK,QAAQ,GAAG+C,YAAY,GAAG,CAAC,CAAC;EAEpE,SAASE,YAAYA,CAACtG,CAAmC,EAAE;IACzDuE,cAAc,CAACvE,CAAC,CAAC;IACjB,IAAI/B,OAAO,IAAID,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAEiC,QAAQ,CAAC,OAAO,CAAC,EAAE;MAC5CL,gBAAgB,CAAC3B,OAAO,CAAC,CAAC+B,CAAC,EAAE,OAAO,CAAC;IACvC;EACF;EAEA,OAAOkF,OAAO,gBACZ9J,KAAA,CAAA8E,aAAA,CAAC1E,MAAM,qBACLJ,KAAA,CAAA8E,aAAA,CAACpC,iBAAiB,CAACwC,QAAQ;IAACC,KAAK,EAAE;MAAEtC,OAAO,EAAPA,OAAO;MAAED,UAAU,EAAVA;IAAW;EAAE,gBACzD5C,KAAA,CAAA8E,aAAA,CAACxE,YAAY,CAAC4E,QAAQ;IAACC,KAAK,EAAE3C;EAAkB,gBAC9CxC,KAAA,CAAA8E,aAAA,CAACzD,qBAAqB,qBACpBrB,KAAA,CAAA8E,aAAA,CAACnE;EACC;EAAA;IACAwK,SAAS,EAAE,CAAC,CAACtI,OAAQ;IACrBuI,OAAO,EAAE,CAAC,CAACvI,OAAQ;IACnBwI,YAAY,EAAE,CAAC,CAACxI;EAAQ,gBAExB7C,KAAA,CAAA8E,aAAA,CAACrD,WAAW,EAAAsD,QAAA;IACVuG,SAAS,EAAEpB,QAAS;IACpB1G,GAAG,EAAEA,GAAI;IACTgH,eAAe,EAAEA,eAAgB;IACjCe,SAAS,EAAEd;EAAc,GACrBQ,WAAW;IACf,WAAQ;EAAO,iBAEfjL,KAAA,CAAA8E,aAAA,CAAC1C,gBAAgB;IACf,WAAQ,kBAAkB;IAC1BoD,OAAO,EAAE0F;EAAa,CACvB,CAAC,eAEFlL,KAAA,CAAA8E,aAAA,CAACmB,cAAc,EAAAlB,QAAA,KACTjB,KAAK;IACTH,OAAO,EAAEA,OAAQ;IACjByC,SAAS,EAAEA;EAAU,iBAErBpG,KAAA,CAAA8E,aAAA,CAAChD,kBAAkB;IAACkD,QAAQ,EAAErB;EAAQ,gBACpC3D,KAAA,CAAA8E,aAAA,CAAC0G,uBAAuB;IAACpI,cAAc,EAAEqG;EAAa,gBACpDzJ,KAAA,CAAA8E,aAAA,CAAC7D,uBAAuB,CAACiE,QAAQ;IAC/BC,KAAK,EAAEiF;EAAsB,GAE5B3G,QAC+B,CACX,CACP,CACN,CACL,CACQ,CACF,CACF,CACG,CACtB,CAAC,GACP,IAAI;AACV,CACF,CAAC;AAMD,IAAM+H,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAAC,KAAA,EAGgC;EAAA,IAF3DrI,cAAc,GAAAqI,KAAA,CAAdrI,cAAc;IACdK,QAAQ,GAAAgI,KAAA,CAARhI,QAAQ;EAER,IAAAiI,gBAAA,GAA4C1L,KAAK,CAAC2J,QAAQ,CAAU,KAAK,CAAC;IAAAgC,gBAAA,GAAA9B,cAAA,CAAA6B,gBAAA;IAAnExI,cAAc,GAAAyI,gBAAA;IAAExI,iBAAiB,GAAAwI,gBAAA;EAExC,oBACE3L,KAAA,CAAA8E,aAAA,CAAC7B,sBAAsB,CAACiC,QAAQ;IAC9BC,KAAK,EAAE;MAAE/B,cAAc,EAAdA,cAAc;MAAEF,cAAc,EAAdA,cAAc;MAAEC,iBAAiB,EAAjBA;IAAkB;EAAE,GAE5DM,QAC8B,CAAC;AAEtC,CAAC;AAED,OAAO,IAAMmI,YAAY,gBAAG5L,KAAK,CAACsD,UAAU,CAC1C,UAAAuI,KAAA,EAA4CrI,GAAG,EAAK;EAAA,IAAjDC,QAAQ,GAAAoI,KAAA,CAARpI,QAAQ;IAAEqI,QAAQ,GAAAD,KAAA,CAARC,QAAQ;IAAEjJ,OAAO,GAAAgJ,KAAA,CAAPhJ,OAAO;IAAKiB,KAAK,GAAAC,wBAAA,CAAA8H,KAAA,EAAAE,UAAA;EACtC,oBACE/L,KAAA,CAAA8E,aAAA,CAACkH,KAAK,EAAAjH,QAAA,KAAKjB,KAAK;IAAEN,GAAG,EAAEA;EAAI,iBACzBxD,KAAA,CAAA8E,aAAA,CAACzB,mBAAmB;IAACR,OAAO,EAAEA;EAAQ,gBACpC7C,KAAA,CAAA8E,aAAA,CAACzC,sBAAsB;IAACoD,IAAI,EAAC;EAAI,CAAE,CAAC,EACnCqG,QACkB,CAAC,EACrBrI,QACI,CAAC;AAEZ,CACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,IAAMwI,YAAY,GAAG,SAAfA,YAAYA,CAChBnI,KAAiE,EAC9D;EACH,IAAAoI,kBAAA,GAA2BlM,KAAK,CAACkE,UAAU,CAACjB,sBAAsB,CAAC;IAA3DG,cAAc,GAAA8I,kBAAA,CAAd9I,cAAc;EACtB,IAAA+I,kBAAA,GAA0BnM,KAAK,CAACkE,UAAU,CAACnB,+BAA+B,CAAC;IAAnEC,aAAa,GAAAmJ,kBAAA,CAAbnJ,aAAa;EAErB,oBAAOhD,KAAA,CAAA8E,aAAA,CAACzE,OAAO,EAAA0E,QAAA;IAACK,EAAE,EAAEpC,aAAa,GAAGI,cAAc,GAAGN;EAAU,GAAKgB,KAAK,CAAG,CAAC;AAC/E,CAAC;AAED,SAASsI,UAAUA,CAACtI,KAAkB,EAAE;EACtCrD,cAAc,CAAC;IAAE4L,QAAQ,EAAE;EAAc,CAAC,CAAC;EAC3C,oBAAOrM,KAAA,CAAA8E,aAAA,CAAC/D,UAAU,EAAK+C,KAAQ,CAAC;AAClC;AAEA6E,MAAM,CAAC2D,WAAW,GAAG,OAAO;AAE5BV,YAAY,CAACU,WAAW,GAAG,cAAc;AAEzCzF,SAAS,CAACyF,WAAW,GAAG,YAAY;AAEpCjE,mBAAmB,CAACiE,WAAW,GAAG,sBAAsB;AAExDpE,kBAAkB,CAACoE,WAAW,GAAG,qBAAqB;AAEtD,IAAMC,IAAI,GAAG1F,SAAS;AACtB,IAAM2F,SAAS,GAAGvG,cAAc;AAChC,IAAMwG,OAAO,GAAG3K,kBAAkB;AAClC,IAAM4K,aAAa,GAAGxE,kBAAkB;AACxC,IAAMyE,MAAM,GAAG5K,iBAAiB;AAChC,IAAM6K,aAAa,GAAGjH,0BAA0B;AAChD,IAAMkH,cAAc,GAAGxE,mBAAmB;AAC1C,IAAMyE,MAAM,GAAGzJ,mBAAmB;AAClC,IAAM0J,OAAO,GAAGtL,WAAW;AAC3B,IAAMuL,KAAK,GAAG5K,gBAAgB;AAC9B,IAAM6K,KAAK,GAAGb,UAAU;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMJ,KAAK,GAAGhL,gBAAgB,CACnC;EACEuL,IAAI,EAAJA,IAAI;EACJC,SAAS,EAATA,SAAS;EACTC,OAAO,EAAPA,OAAO;EACPE,MAAM,EAANA,MAAM;EACNC,aAAa,EAAbA,aAAa;EACbC,cAAc,EAAdA,cAAc;EACdH,aAAa,EAAbA,aAAa;EACbI,MAAM,EAANA,MAAM;EACNzM,OAAO,EAAE4L,YAAY;EACrBc,OAAO,EAAPA,OAAO;EACPC,KAAK,EAALA,KAAK;EACLC,KAAK,EAALA,KAAK;EACL1M,OAAO,EAAPA;AACF,CAAC,EACDoI,MACF,CAAC"}
1
+ {"version":3,"file":"Modal.js","names":["Clear","useId","React","useEffect","Button","useModalDialogLike","Portal","Heading","LevelContext","Section","SectionProvider","useDeprecation","useLayoutEventListener","OverridableFocusScope","useI18nContext","useOverflowObserver","useScrollLock","Visibility","addSubcomponents","CloseWithConfirmContext","useCloseWithConfirmContext","useCloseWithConfirmState","mergeRefs","ChildRegistryProvider","useModalChildRegistryDispatch","fadeInClassName","fadeOutClassName","StyledModal","StyledModalBody","StyledModalButtons","StyledModalCancel","StyledModalContainer","StyledModalContent","StyledModalFooter","StyledModalFooterNotation","StyledModalFooterSummary","StyledModalHeader","StyledModalHeading","StyledModalScrim","StyledModalWarningIcon","useInitializeModalFocus","noop","defaultStartLevel","initialBodyLevel","ModalCloseContext","createContext","howToClose","onClose","undefined","ModalPrimaryHeadingCheckContext","inModalHeader","ModalBodyScrollContext","isBodyScrolled","setIsBodyScrolled","ariaLabelledBy","ModalClosableHeader","forwardRef","_ref","ref","children","_ref$compact","compact","externalOnClose","qa","props","_objectWithoutProperties","_excluded","_React$useContext","useContext","_React$useContext2","I18n","modalClosableHeaderRef","useRef","_useCloseWithConfirmC","closeWithConfirm","registerChildRef","child","onClickButton","e","includes","createElement","_extends","$compact","$isBodyScrolled","Provider","value","t","closeButton","icon","onClick","size","variant","ModalClosableFooterButtons","_ref2","_excluded2","_React$useContext3","_useCloseWithConfirmC2","modalClosableFooterButtonsRef","ModalContainer","_ref3","_ref3$compact","placement","width","_excluded3","_React$useContext4","modalContainerRef","hasOnClose","shadowStrength","$placement","$width","ModalBody","_ref4","_ref4$compact","_ref4$noSideSpacing","noSideSpacing","_excluded4","_useOverflowObserver","isOverflowingY","overflowRef","scrollRef","modalBodyRef","_React$useContext5","event","handler","currentTarget","scrollTop","scope","$isOverflowingY","$noSideSpacing","tabIndex","role","ModalFooterSummary","_ref5","_excluded5","ModalFooterNotation","_ref6","_excluded6","intent","color","italic","Modal_","_ref7","ariaDescribedby","ariaDetails","ariaLabelledby","ariaLabel","ariaModal","_ref7$compact","id","_ref7$onClickOverlay","onClickOverlay","_ref7$open","open","_ref7$placement","_excluded7","defaultLabelId","labelledbyId","_React$useState","useState","_React$useState2","_slicedToArray","visible","setVisible","_React$useState3","_React$useState4","fadeType","setFadeType","closeWithConfirmState","fadeTimer","setTimeout","clearTimeout","onTransitionEnd","handleKeyDown","key","preventDefault","stopPropagation","_useModalDialogLike","isOpen","dialogProps_","dialogProps","onClickScrim","autoFocus","contain","restoreFocus","className","onKeyDown","ModalBodyScrollObserver","_ref8","_React$useState5","_React$useState6","ConfirmModal","_ref9","headline","_excluded8","isDialog","configuredModalProps","headerOnClose","Modal","ModalHeading","_React$useContext6","_React$useContext7","ModalState","oldThing","displayName","Body","Container","Content","FooterSummary","Footer","FooterButtons","FooterNotation","Header","Overlay","Scrim","State"],"sources":["../../src/Modal/Modal.tsx"],"sourcesContent":["import { Clear } from '@procore/core-icons/dist'\nimport { useId } from '@react-aria/utils'\nimport React, { useEffect } from 'react'\nimport { Button } from '../Button'\nimport { useModalDialogLike } from '../OverlayTrigger/a11yPresets'\nimport { Portal } from '../Portal'\nimport {\n Heading,\n LevelContext,\n Section,\n SectionProvider,\n} from '../Section/Section'\nimport type { HeadingProps } from '../Semantic/Semantic.types'\nimport type { TypographyProps } from '../Typography'\nimport { useDeprecation } from '../_hooks/Deprecation'\nimport { useLayoutEventListener } from '../_hooks/EventListener'\nimport { OverridableFocusScope } from '../_hooks/FocusScopeOverride'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { useOverflowObserver } from '../_hooks/OverflowObserver'\nimport { useScrollLock } from '../_hooks/ScrollLock'\nimport type { RenderProps } from '../_hooks/Visibility'\nimport { Visibility } from '../_hooks/Visibility'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport {\n CloseWithConfirmContext,\n useCloseWithConfirmContext,\n useCloseWithConfirmState,\n} from '../_utils/closeWithConfirm'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport {\n ChildRegistryProvider,\n useModalChildRegistryDispatch,\n} from './ChildRegistry.context'\nimport {\n fadeInClassName,\n fadeOutClassName,\n StyledModal,\n StyledModalBody,\n StyledModalButtons,\n StyledModalCancel,\n StyledModalContainer,\n StyledModalContent,\n StyledModalFooter,\n StyledModalFooterNotation,\n StyledModalFooterSummary,\n StyledModalHeader,\n StyledModalHeading,\n StyledModalScrim,\n StyledModalWarningIcon,\n} from './Modal.styles'\nimport type {\n ConfirmModalProps,\n ModalBodyProps,\n ModalCloseableHeaderProps,\n ModalCloseContextApi,\n ModalContainerProps,\n ModalOnClose,\n ModalOptionalCloseStartegy,\n ModalProps,\n} from './Modal.types'\nimport { useInitializeModalFocus } from './useInitializeModalFocus'\n\nfunction noop() {}\nconst defaultStartLevel = 2\nconst initialBodyLevel = 3\n\nconst ModalCloseContext = React.createContext<ModalCloseContextApi>({\n howToClose: [],\n onClose: undefined,\n})\n\nconst ModalPrimaryHeadingCheckContext = React.createContext({\n inModalHeader: false,\n})\n\ninterface ModalBodyScrollContextApi {\n isBodyScrolled: boolean\n setIsBodyScrolled: React.Dispatch<React.SetStateAction<boolean>>\n ariaLabelledBy?: string\n}\n\nconst ModalBodyScrollContext = React.createContext<ModalBodyScrollContextApi>({\n isBodyScrolled: false,\n setIsBodyScrolled: noop,\n ariaLabelledBy: undefined,\n})\n\nconst ModalClosableHeader = React.forwardRef<\n HTMLDivElement,\n ModalCloseableHeaderProps\n>(\n (\n { children, compact = false, onClose: externalOnClose, qa, ...props },\n ref\n ) => {\n const { isBodyScrolled } = React.useContext(ModalBodyScrollContext)\n const { howToClose, onClose } = React.useContext(ModalCloseContext)\n const I18n = useI18nContext()\n const modalClosableHeaderRef = React.useRef(null)\n\n const { closeWithConfirm } = useCloseWithConfirmContext()\n const registerChildRef = useModalChildRegistryDispatch()\n\n useEffect(() => {\n registerChildRef({ child: 'header', ref: modalClosableHeaderRef })\n }, [])\n\n function onClickButton(e: React.MouseEvent<HTMLButtonElement>) {\n if (onClose && howToClose?.includes('x')) {\n closeWithConfirm(onClose)(e, 'x')\n return\n }\n closeWithConfirm(externalOnClose!)(e)\n }\n\n return (\n <StyledModalHeader\n $compact={compact}\n $isBodyScrolled={isBodyScrolled}\n {...props}\n ref={mergeRefs(ref, modalClosableHeaderRef)}\n data-id=\"modal-header\"\n >\n <ModalPrimaryHeadingCheckContext.Provider\n value={{ inModalHeader: true }}\n >\n <StyledModalHeading $compact={compact}>{children}</StyledModalHeading>\n {(onClose && howToClose?.includes('x')) || externalOnClose ? (\n <StyledModalCancel>\n <Button\n aria-label={I18n.t('core.modal.a11y.close')}\n data-internal=\"close-button\"\n data-qa={qa?.closeButton}\n icon={<Clear />}\n onClick={onClickButton}\n size={compact ? 'sm' : 'md'}\n variant=\"tertiary\"\n />\n </StyledModalCancel>\n ) : null}\n </ModalPrimaryHeadingCheckContext.Provider>\n </StyledModalHeader>\n )\n }\n)\n\nconst ModalClosableFooterButtons = React.forwardRef<\n HTMLDivElement,\n ModalCloseableHeaderProps\n>(({ children, ...props }, ref) => {\n const { howToClose, onClose } = React.useContext(ModalCloseContext)\n const I18n = useI18nContext()\n const { closeWithConfirm } = useCloseWithConfirmContext()\n const modalClosableFooterButtonsRef = React.useRef(null)\n\n const registerChildRef = useModalChildRegistryDispatch()\n\n useEffect(() => {\n registerChildRef({\n child: 'closeableButtons',\n ref: modalClosableFooterButtonsRef,\n })\n }, [])\n\n function onClickButton(e: React.MouseEvent<HTMLButtonElement>) {\n closeWithConfirm(onClose!)(e, 'footer-button')\n }\n\n return (\n <StyledModalButtons\n {...props}\n ref={mergeRefs(ref, modalClosableFooterButtonsRef)}\n >\n {howToClose?.includes('footer-button') && (\n <Button onClick={onClickButton} variant=\"tertiary\">\n {I18n.t('core.modal.cancel')}\n </Button>\n )}\n {children}\n </StyledModalButtons>\n )\n})\n\nconst ModalContainer = React.forwardRef<HTMLDivElement, ModalContainerProps>(\n ({ compact = false, placement, width, ...props }, ref) => {\n const { onClose } = React.useContext(ModalCloseContext)\n const modalContainerRef = React.useRef<HTMLDivElement>(null)\n useInitializeModalFocus({ modalContainerRef, hasOnClose: !!onClose })\n\n return (\n <StyledModalContainer\n {...props}\n shadowStrength={4}\n $compact={compact}\n $placement={placement}\n $width={width}\n ref={mergeRefs(ref, modalContainerRef)}\n />\n )\n }\n)\n\nconst ModalBody = React.forwardRef<HTMLDivElement, ModalBodyProps>(\n ({ children, compact = false, noSideSpacing = false, ...props }, ref) => {\n const { isOverflowingY, ref: overflowRef } = useOverflowObserver()\n const scrollRef = React.useRef(null)\n const modalBodyRef = React.useRef(null)\n const { ariaLabelledBy, setIsBodyScrolled } = React.useContext(\n ModalBodyScrollContext\n )\n const registerChildRef = useModalChildRegistryDispatch()\n\n useEffect(() => {\n registerChildRef({ child: 'body', ref: modalBodyRef })\n }, [])\n\n useLayoutEventListener({\n event: 'scroll',\n handler: (e: React.UIEvent<HTMLElement>) => {\n setIsBodyScrolled(e.currentTarget.scrollTop > 0)\n },\n scope: scrollRef,\n })\n\n return (\n <SectionProvider>\n <LevelContext.Provider value={initialBodyLevel}>\n <StyledModalBody\n {...props}\n $compact={compact}\n $isOverflowingY={isOverflowingY}\n $noSideSpacing={noSideSpacing}\n ref={mergeRefs(overflowRef, scrollRef, ref, modalBodyRef)}\n tabIndex={0}\n role=\"region\"\n aria-labelledby={ariaLabelledBy}\n >\n {children}\n </StyledModalBody>\n </LevelContext.Provider>\n </SectionProvider>\n )\n }\n)\n\nconst ModalFooterSummary = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ children, ...props }, ref) => {\n return (\n <StyledModalFooterSummary {...props} ref={ref}>\n {children}\n </StyledModalFooterSummary>\n )\n})\n\nconst ModalFooterNotation = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes<HTMLSpanElement> & TypographyProps\n>(({ children, ...props }, ref) => (\n <StyledModalFooterNotation\n aria-live=\"polite\"\n intent=\"small\"\n color=\"gray45\"\n italic\n {...props}\n ref={ref}\n >\n {children}\n </StyledModalFooterNotation>\n))\n\nconst Modal_ = React.forwardRef<HTMLDivElement, ModalProps>(\n (\n {\n ['aria-describedby']: ariaDescribedby,\n ['aria-details']: ariaDetails,\n ['aria-labelledby']: ariaLabelledby,\n ['aria-label']: ariaLabel,\n ['aria-modal']: ariaModal,\n children,\n compact = false,\n howToClose,\n id,\n onClickOverlay = noop,\n onClose,\n open = false,\n placement = 'center',\n role,\n ...props\n },\n ref\n ) => {\n useScrollLock(open)\n const defaultLabelId = useId()\n const labelledbyId = ariaLabel ? id : ariaLabelledby ?? defaultLabelId\n const [visible, setVisible] = React.useState<boolean>(open)\n const [fadeType, setFadeType] = React.useState<string>('')\n const closeWithConfirmState = useCloseWithConfirmState()\n const { closeWithConfirm } = closeWithConfirmState\n\n React.useEffect(() => {\n if (open) {\n setVisible(true)\n const fadeTimer = setTimeout(() => {\n setFadeType(fadeInClassName)\n }, 0)\n return () => clearTimeout(fadeTimer)\n } else {\n setFadeType(fadeOutClassName)\n }\n }, [open])\n\n const onTransitionEnd = () => {\n if (fadeType === fadeOutClassName) {\n setVisible(false)\n }\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (!onClose) return\n if (e.key === 'Escape') {\n e.preventDefault()\n e.stopPropagation()\n closeWithConfirm(onClose)(e, 'x')\n }\n }\n\n const { dialogProps: dialogProps_ } = useModalDialogLike({\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n 'aria-labelledby': labelledbyId,\n 'aria-label': ariaLabel,\n 'aria-modal': ariaModal,\n id,\n isOpen: open,\n role,\n })\n\n const dialogProps =\n onClose && (role === 'dialog' || role === 'alertdialog')\n ? dialogProps_\n : {}\n\n function onClickScrim(e: React.MouseEvent<HTMLDivElement>) {\n onClickOverlay(e)\n if (onClose && howToClose?.includes('scrim')) {\n closeWithConfirm(onClose)(e, 'scrim')\n }\n }\n\n return visible ? (\n <Portal>\n <ModalCloseContext.Provider value={{ onClose, howToClose }}>\n <LevelContext.Provider value={defaultStartLevel}>\n <ChildRegistryProvider>\n <OverridableFocusScope\n // TODO breaking - always\n autoFocus={!!onClose}\n contain={!!onClose}\n restoreFocus={!!onClose}\n >\n <StyledModal\n className={fadeType}\n ref={ref}\n onTransitionEnd={onTransitionEnd}\n onKeyDown={handleKeyDown}\n {...dialogProps}\n data-id=\"modal\"\n >\n <StyledModalScrim\n data-qa=\"core-modal-scrim\"\n onClick={onClickScrim}\n />\n\n <ModalContainer\n {...props}\n compact={compact}\n placement={placement}\n >\n <StyledModalContent $compact={compact}>\n <ModalBodyScrollObserver ariaLabelledBy={labelledbyId}>\n <CloseWithConfirmContext.Provider\n value={closeWithConfirmState}\n >\n {children}\n </CloseWithConfirmContext.Provider>\n </ModalBodyScrollObserver>\n </StyledModalContent>\n </ModalContainer>\n </StyledModal>\n </OverridableFocusScope>\n </ChildRegistryProvider>\n </LevelContext.Provider>\n </ModalCloseContext.Provider>\n </Portal>\n ) : null\n }\n)\n\ninterface ModalBodyScrollObserverProps {\n ariaLabelledBy?: string\n}\n\nconst ModalBodyScrollObserver = ({\n ariaLabelledBy,\n children,\n}: React.PropsWithChildren<ModalBodyScrollObserverProps>) => {\n const [isBodyScrolled, setIsBodyScrolled] = React.useState<boolean>(false)\n\n return (\n <ModalBodyScrollContext.Provider\n value={{ ariaLabelledBy, isBodyScrolled, setIsBodyScrolled }}\n >\n {children}\n </ModalBodyScrollContext.Provider>\n )\n}\n\nexport const ConfirmModal = React.forwardRef<HTMLDivElement, ConfirmModalProps>(\n ({ children, headline, onClose, ...props }, ref) => {\n const isDialog = props.role === 'dialog' || props.role === 'alertdialog'\n\n // When role=\"dialog\", pass onClose to Modal for focus management and Escape key.\n // The header X button is handled via ModalCloseContext when howToClose includes 'x'.\n const configuredModalProps =\n isDialog && onClose\n ? {\n onClose: onClose as ModalOnClose,\n howToClose: ['x'] as ModalOptionalCloseStartegy[],\n }\n : undefined\n const headerOnClose =\n !isDialog && onClose\n ? (onClose as (event: React.MouseEvent<HTMLButtonElement>) => void)\n : undefined\n\n return (\n <Modal {...props} {...configuredModalProps} ref={ref}>\n <ModalClosableHeader onClose={headerOnClose}>\n <StyledModalWarningIcon size=\"lg\" />\n <ModalHeading>{headline}</ModalHeading>\n </ModalClosableHeader>\n {children}\n </Modal>\n )\n }\n)\n\n/**\n * Applies proper semantics regardless of where in the Modal.\n * @a11y The primary heading that is auto linked to the dialog and scroll region with\n * aria-labelledby, when inside the Modal.Header.\n */\nconst ModalHeading = (\n props: React.PropsWithChildren<HeadingProps & { level?: number }>\n) => {\n const { ariaLabelledBy } = React.useContext(ModalBodyScrollContext)\n const { inModalHeader } = React.useContext(ModalPrimaryHeadingCheckContext)\n\n return <Heading id={inModalHeader ? ariaLabelledBy : undefined} {...props} />\n}\n\nfunction ModalState(props: RenderProps) {\n useDeprecation({ oldThing: 'Modal.State' })\n return <Visibility {...props} />\n}\n\nModal_.displayName = 'Modal'\n\nConfirmModal.displayName = 'ConfirmModal'\n\nModalBody.displayName = 'Modal.Body'\n\nModalFooterNotation.displayName = 'Modal.FooterNotation'\n\nModalFooterSummary.displayName = 'Modal.FooterSummary'\n\nconst Body = ModalBody\nconst Container = ModalContainer\nconst Content = StyledModalContent\nconst FooterSummary = ModalFooterSummary\nconst Footer = StyledModalFooter\nconst FooterButtons = ModalClosableFooterButtons\nconst FooterNotation = ModalFooterNotation\nconst Header = ModalClosableHeader\nconst Overlay = StyledModal\nconst Scrim = StyledModalScrim\nconst State = ModalState\n\n/**\n\n We use modals to present additional actions, information, or forms on pages\n where a user’s experience would benefit from remaining on the same page.\n They can include graphics, inputs, buttons, and other elements as needed to\n produce the workflow or action needed.\n\n Do not include modals on pages with complicated UI layouts.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-modal--demo)\n\n @see [Design Guidelines](https://design.procore.com/modal)\n\n */\nexport const Modal = addSubcomponents(\n {\n Body,\n Container,\n Content,\n Footer,\n FooterButtons,\n FooterNotation,\n FooterSummary,\n Header,\n /**\n * @a11y The primary heading inside the `Modal.Header` that is auto linked\n * to the dialog and scroll region with aria-labelledby.\n */\n Heading: ModalHeading,\n Overlay,\n Scrim,\n State,\n Section,\n },\n Modal_\n)\n"],"mappings":"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"}
@@ -32,15 +32,15 @@ var screenWidthPixelBreakpoints = {
32
32
  };
33
33
  export var StyledModal = /*#__PURE__*/styled.div.withConfig({
34
34
  displayName: "StyledModal",
35
- componentId: "core-12_40_0__sc-1ijdug2-0"
35
+ componentId: "core-12_42_0__sc-1ijdug2-0"
36
36
  })(["display:flex;height:100vh;position:absolute;opacity:0;transition:0.3s opacity ease;width:100vw;z-index:0;pointer-events:none;&.", "{opacity:1;pointer-events:auto;}&.", "{opacity:0;pointer-events:none;}"], fadeInClassName, fadeOutClassName);
37
37
  export var StyledModalButtons = /*#__PURE__*/styled.div.withConfig({
38
38
  displayName: "StyledModalButtons",
39
- componentId: "core-12_40_0__sc-1ijdug2-1"
39
+ componentId: "core-12_42_0__sc-1ijdug2-1"
40
40
  })(["display:flex;flex:0 0 auto;margin-left:", "px;> * + *{margin-left:", "px;}"], spacing.lg, spacing.sm);
41
41
  export var StyledModalContainer = /*#__PURE__*/styled(Card).withConfig({
42
42
  displayName: "StyledModalContainer",
43
- componentId: "core-12_40_0__sc-1ijdug2-2"
43
+ componentId: "core-12_42_0__sc-1ijdug2-2"
44
44
  })(["display:flex;flex-direction:row;position:absolute;z-index:2;", " ", " ", ""], function (_ref) {
45
45
  var $compact = _ref.$compact;
46
46
  if (!$compact) {
@@ -64,11 +64,11 @@ export var StyledModalContainer = /*#__PURE__*/styled(Card).withConfig({
64
64
  });
65
65
  export var StyledModalFooter = /*#__PURE__*/styled.div.withConfig({
66
66
  displayName: "StyledModalFooter",
67
- componentId: "core-12_40_0__sc-1ijdug2-3"
67
+ componentId: "core-12_42_0__sc-1ijdug2-3"
68
68
  })(["align-items:center;display:flex;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end;padding:", "px ", "px ", "px;"], spacing.xl, spacing.xxl, spacing.xxl);
69
69
  export var StyledModalBody = /*#__PURE__*/styled.div.withConfig({
70
70
  displayName: "StyledModalBody",
71
- componentId: "core-12_40_0__sc-1ijdug2-4"
71
+ componentId: "core-12_42_0__sc-1ijdug2-4"
72
72
  })(["", " &:focus-visible{", "}box-sizing:border-box;color:", ";display:flex;flex-direction:column;overflow:auto;", " ", " > ", "{padding-left:0;padding-right:0;&:first-child > ", "{padding-top:0;}}", ""], getTypographyIntent('body'), getFocusInset(), colors.gray15, function (_ref4) {
73
73
  var $noSideSpacing = _ref4.$noSideSpacing;
74
74
  return css(["padding:", "px ", "px;"], spacing.xl, $noSideSpacing ? 0 : spacing.xxl);
@@ -85,7 +85,7 @@ export var StyledModalBody = /*#__PURE__*/styled.div.withConfig({
85
85
  });
86
86
  export var StyledModalContent = /*#__PURE__*/styled.div.withConfig({
87
87
  displayName: "StyledModalContent",
88
- componentId: "core-12_40_0__sc-1ijdug2-5"
88
+ componentId: "core-12_42_0__sc-1ijdug2-5"
89
89
  })(["display:flex;flex-direction:column;max-height:90vh;overflow:hidden;width:100%;", ""], function (_ref7) {
90
90
  var _ref7$$compact = _ref7.$compact,
91
91
  $compact = _ref7$$compact === void 0 ? false : _ref7$$compact;
@@ -96,11 +96,11 @@ export var StyledModalContent = /*#__PURE__*/styled.div.withConfig({
96
96
  });
97
97
  export var StyledModalFooterNotation = /*#__PURE__*/styled(Typography).withConfig({
98
98
  displayName: "StyledModalFooterNotation",
99
- componentId: "core-12_40_0__sc-1ijdug2-6"
99
+ componentId: "core-12_42_0__sc-1ijdug2-6"
100
100
  })(["flex-grow:1;"]);
101
101
  export var StyledModalHeader = /*#__PURE__*/styled.div.withConfig({
102
102
  displayName: "StyledModalHeader",
103
- componentId: "core-12_40_0__sc-1ijdug2-7"
103
+ componentId: "core-12_42_0__sc-1ijdug2-7"
104
104
  })(["align-items:flex-start;color:", ";display:flex;flex:0 0 auto;position:relative;", " ", ""], colors.gray10, function (_ref8) {
105
105
  var $compact = _ref8.$compact,
106
106
  $isBodyScrolled = _ref8.$isBodyScrolled;
@@ -118,7 +118,7 @@ export var StyledModalHeader = /*#__PURE__*/styled.div.withConfig({
118
118
  });
119
119
  export var StyledModalHeading = /*#__PURE__*/styled.div.withConfig({
120
120
  displayName: "StyledModalHeading",
121
- componentId: "core-12_40_0__sc-1ijdug2-8"
121
+ componentId: "core-12_42_0__sc-1ijdug2-8"
122
122
  })(["", " align-items:center;display:flex;flex:1 1 auto;min-height:36px;padding-right:", "px;", ""], function (_ref0) {
123
123
  var $compact = _ref0.$compact;
124
124
  return getTypographyIntent($compact ? 'h3' : 'h2');
@@ -134,18 +134,18 @@ export var StyledModalHeading = /*#__PURE__*/styled.div.withConfig({
134
134
  });
135
135
  export var StyledModalCancel = /*#__PURE__*/styled.div.withConfig({
136
136
  displayName: "StyledModalCancel",
137
- componentId: "core-12_40_0__sc-1ijdug2-9"
137
+ componentId: "core-12_42_0__sc-1ijdug2-9"
138
138
  })(["flex:0 0 auto;"]);
139
139
  export var StyledModalScrim = /*#__PURE__*/styled.div.withConfig({
140
140
  displayName: "StyledModalScrim",
141
- componentId: "core-12_40_0__sc-1ijdug2-10"
141
+ componentId: "core-12_42_0__sc-1ijdug2-10"
142
142
  })(["background:hsla(200,8%,10%,0.6);height:100vh;left:0;position:absolute;top:0;width:100vw;z-index:1;"]);
143
143
  export var StyledModalWarningIcon = /*#__PURE__*/styled(Warning).withConfig({
144
144
  displayName: "StyledModalWarningIcon",
145
- componentId: "core-12_40_0__sc-1ijdug2-11"
145
+ componentId: "core-12_42_0__sc-1ijdug2-11"
146
146
  })(["color:", ";margin-right:", "px;"], colors.yellow40, spacing.sm);
147
147
  export var StyledModalFooterSummary = /*#__PURE__*/styled.div.withConfig({
148
148
  displayName: "StyledModalFooterSummary",
149
- componentId: "core-12_40_0__sc-1ijdug2-12"
149
+ componentId: "core-12_42_0__sc-1ijdug2-12"
150
150
  })(["", " border-top:1px solid ", ";border-bottom:1px solid ", ";padding:", "px ", "px;color:", ";font-style:italic;background-color:", ";margin:-", "px -", "px ", "px -", "px;flex:1 1 100%;"], getTypographyIntent('small'), colors.gray85, colors.gray85, spacing.md, spacing.xxl, colors.gray15, colors.gray98, spacing.xl, spacing.xxl, spacing.xl, spacing.xxl);
151
151
  //# sourceMappingURL=Modal.styles.js.map