@planningcenter/tapestry-react 1.4.0 → 2.0.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 (319) hide show
  1. package/dist/cjs/ActionsDropdown/ActionsDropdown.js +3 -3
  2. package/dist/cjs/Badge/Badge.js +41 -26
  3. package/dist/cjs/Badge/Status.js +2 -2
  4. package/dist/cjs/Calendar/Calendar.js +5 -3
  5. package/dist/cjs/Card/Card.js +2 -0
  6. package/dist/cjs/Checkbox/Checkbox.js +3 -3
  7. package/dist/cjs/ChurchCenterStatus/ChurchCenterStatus.js +4 -4
  8. package/dist/cjs/ColumnView/ColumnView.js +5 -2
  9. package/dist/cjs/Combobox/ComboboxPopover.js +2 -2
  10. package/dist/cjs/DataTable/components/CheckboxCell.js +4 -4
  11. package/dist/cjs/DataTable/components/ColumnPicker.js +6 -5
  12. package/dist/cjs/DataTable/hooks/useCollapsibleRows.js +1 -1
  13. package/dist/cjs/DataTable/hooks/useColumnSort.js +1 -1
  14. package/dist/cjs/DataTable/utils/getParsedColumns.js +4 -4
  15. package/dist/cjs/DateField/DateField.js +1 -1
  16. package/dist/cjs/Drawer/Drawer.js +4 -1
  17. package/dist/cjs/Dropdown/Dropdown.js +1 -1
  18. package/dist/cjs/Dropdown/Dropdown.test.js +194 -19
  19. package/dist/cjs/Dropdown/Link.js +3 -1
  20. package/dist/cjs/EditActions/EditActions.js +9 -3
  21. package/dist/cjs/FieldSet/FieldSet.js +24 -10
  22. package/dist/cjs/FilterLayout/FilterLayout.js +2 -1
  23. package/dist/cjs/Form/Form.js +1 -1
  24. package/dist/cjs/GridView/GridView.js +6 -4
  25. package/dist/cjs/Group/Group.js +10 -3
  26. package/dist/cjs/HeadingUppercase/HeadingUppercase.js +2 -2
  27. package/dist/cjs/HelperDrawer/HelperDrawer.js +1 -1
  28. package/dist/cjs/Highlight/Highlight.js +11 -5
  29. package/dist/cjs/Icon/Status.js +4 -4
  30. package/dist/cjs/Input/InputBox.js +1 -1
  31. package/dist/cjs/List/ListItem.js +1 -1
  32. package/dist/cjs/Menu/Heading.js +1 -0
  33. package/dist/cjs/Modal/Modal.test.js +156 -0
  34. package/dist/cjs/Pagination/Pagination.js +4 -2
  35. package/dist/cjs/Popover/Popover.js +4 -0
  36. package/dist/cjs/Popover/Popover.test.js +65 -0
  37. package/dist/cjs/Popover/rewireTabOrder.js +13 -30
  38. package/dist/cjs/Progress/Progress.js +12 -6
  39. package/dist/cjs/Radio/Radio.js +2 -2
  40. package/dist/cjs/RangeSlider/RangeSlider.js +10 -4
  41. package/dist/cjs/Scrim/Scrim.js +2 -2
  42. package/dist/cjs/Section/Section.js +14 -6
  43. package/dist/cjs/Select/Option.js +1 -1
  44. package/dist/cjs/Select/Select.js +10 -1
  45. package/dist/cjs/Sidebar/Sidebar.js +4 -3
  46. package/dist/cjs/Sortable/SortableItem.js +1 -1
  47. package/dist/cjs/StackView/StackView.js +5 -5
  48. package/dist/cjs/StepperField/StepperField.js +9 -6
  49. package/dist/cjs/StepperProgress/StepperProgress.js +9 -5
  50. package/dist/cjs/Table/ColumnPicker.js +1 -1
  51. package/dist/cjs/Table/DragHandle.js +1 -1
  52. package/dist/cjs/Table/NavigationArrow.js +1 -1
  53. package/dist/cjs/Table/SubRowToggleCell.js +1 -1
  54. package/dist/cjs/Table/Table.js +4 -6
  55. package/dist/cjs/Tabs/Tab.js +1 -0
  56. package/dist/cjs/ThemeProvider/ThemeProvider.js +5 -5
  57. package/dist/cjs/TileView/TileView.js +1 -1
  58. package/dist/cjs/TokenInput/DefaultToken.js +1 -1
  59. package/dist/cjs/Wizard/Wizard.js +2 -1
  60. package/dist/cjs/WrapView/WrapView.js +2 -27
  61. package/dist/cjs/hooks/use-accessibility-violation.js +1 -1
  62. package/dist/cjs/hooks/useConstant.js +23 -0
  63. package/dist/cjs/system/default-theme.js +8 -3
  64. package/dist/cjs/system/utils.js +2 -2
  65. package/dist/cjs/utils.js +3 -3
  66. package/dist/esm/ActionsDropdown/ActionsDropdown.js +3 -3
  67. package/dist/esm/Badge/Badge.js +42 -27
  68. package/dist/esm/Badge/Status.js +2 -2
  69. package/dist/esm/Calendar/Calendar.js +5 -3
  70. package/dist/esm/Card/Card.js +2 -3
  71. package/dist/esm/Checkbox/Checkbox.js +3 -3
  72. package/dist/esm/ChurchCenterStatus/ChurchCenterStatus.js +4 -4
  73. package/dist/esm/ColumnView/ColumnView.js +4 -2
  74. package/dist/esm/Combobox/ComboboxPopover.js +2 -2
  75. package/dist/esm/DataTable/components/CheckboxCell.js +4 -4
  76. package/dist/esm/DataTable/components/ColumnPicker.js +6 -5
  77. package/dist/esm/DataTable/hooks/useCollapsibleRows.js +1 -1
  78. package/dist/esm/DataTable/hooks/useColumnSort.js +1 -1
  79. package/dist/esm/DataTable/utils/getParsedColumns.js +4 -4
  80. package/dist/esm/DateField/DateField.js +1 -1
  81. package/dist/esm/Drawer/Drawer.js +3 -1
  82. package/dist/esm/Dropdown/Dropdown.js +1 -1
  83. package/dist/esm/Dropdown/Dropdown.test.js +158 -17
  84. package/dist/esm/Dropdown/Link.js +3 -1
  85. package/dist/esm/EditActions/EditActions.js +8 -3
  86. package/dist/esm/FieldSet/FieldSet.js +22 -10
  87. package/dist/esm/FilterLayout/FilterLayout.js +2 -1
  88. package/dist/esm/Form/Form.js +1 -1
  89. package/dist/esm/GridView/GridView.js +5 -4
  90. package/dist/esm/Group/Group.js +10 -3
  91. package/dist/esm/HeadingUppercase/HeadingUppercase.js +3 -3
  92. package/dist/esm/HelperDrawer/HelperDrawer.js +1 -1
  93. package/dist/esm/Highlight/Highlight.js +9 -5
  94. package/dist/esm/Icon/Status.js +4 -4
  95. package/dist/esm/Input/InputBox.js +1 -1
  96. package/dist/esm/List/ListItem.js +1 -1
  97. package/dist/esm/Menu/Heading.js +1 -0
  98. package/dist/esm/Modal/Modal.test.js +122 -0
  99. package/dist/esm/Pagination/Pagination.js +4 -2
  100. package/dist/esm/Popover/Popover.js +4 -0
  101. package/dist/esm/Popover/Popover.test.js +51 -0
  102. package/dist/esm/Popover/rewireTabOrder.js +13 -33
  103. package/dist/esm/Progress/Progress.js +10 -6
  104. package/dist/esm/Radio/Radio.js +2 -2
  105. package/dist/esm/RangeSlider/RangeSlider.js +8 -4
  106. package/dist/esm/Scrim/Scrim.js +2 -2
  107. package/dist/esm/Section/Section.js +12 -6
  108. package/dist/esm/Select/Option.js +1 -1
  109. package/dist/esm/Select/Select.js +10 -1
  110. package/dist/esm/Sidebar/Sidebar.js +4 -2
  111. package/dist/esm/Sortable/SortableItem.js +1 -1
  112. package/dist/esm/StackView/StackView.js +4 -5
  113. package/dist/esm/StepperField/StepperField.js +10 -7
  114. package/dist/esm/StepperProgress/StepperProgress.js +8 -5
  115. package/dist/esm/Table/ColumnPicker.js +1 -1
  116. package/dist/esm/Table/DragHandle.js +1 -1
  117. package/dist/esm/Table/NavigationArrow.js +1 -1
  118. package/dist/esm/Table/SubRowToggleCell.js +1 -1
  119. package/dist/esm/Table/Table.js +2 -3
  120. package/dist/esm/Tabs/Tab.js +1 -0
  121. package/dist/esm/ThemeProvider/ThemeProvider.js +1 -1
  122. package/dist/esm/TileView/TileView.js +1 -1
  123. package/dist/esm/TokenInput/DefaultToken.js +1 -1
  124. package/dist/esm/Wizard/Wizard.js +2 -1
  125. package/dist/esm/WrapView/WrapView.js +2 -28
  126. package/dist/esm/hooks/use-accessibility-violation.js +1 -1
  127. package/dist/esm/hooks/useConstant.js +15 -0
  128. package/dist/esm/system/default-theme.js +6 -2
  129. package/dist/esm/system/utils.js +1 -1
  130. package/dist/esm/utils.js +3 -3
  131. package/dist/types/Alert/Alert.d.ts +3 -0
  132. package/dist/types/Box/Box.d.ts +11 -2
  133. package/dist/types/Button/Button.d.ts +9 -1
  134. package/dist/types/Button/Input.d.ts +1 -1
  135. package/dist/types/Card/Card.d.ts +8 -1
  136. package/dist/types/Dropdown/Dropdown.test.d.ts +1 -1
  137. package/dist/types/GridView/GridView.d.ts +16 -4
  138. package/dist/types/Group/Group.d.ts +5 -1
  139. package/dist/types/Modal/Modal.test.d.ts +1 -0
  140. package/dist/types/Popover/Popover.test.d.ts +1 -0
  141. package/dist/types/Scrim/Scrim.d.ts +6 -1
  142. package/dist/types/StackView/StackView.d.ts +11 -0
  143. package/dist/types/Text/Text.d.ts +12 -0
  144. package/dist/types/TileView/TileView.d.ts +15 -7
  145. package/dist/types/WrapView/WrapView.d.ts +2 -1
  146. package/dist/types/hooks/useConstant.d.ts +1 -0
  147. package/package.json +16 -24
  148. package/src/ActionsDropdown/ActionsDropdown.tsx +3 -3
  149. package/src/Alert/Alert.mdx +1 -0
  150. package/src/Alert/Alert.tsx +5 -0
  151. package/src/Avatar/Avatar.mdx +1 -0
  152. package/src/Badge/Badge.js +66 -25
  153. package/src/Badge/Badge.mdx +2 -1
  154. package/src/Badge/Status.js +2 -2
  155. package/src/Badge/Status.mdx +1 -0
  156. package/src/Box/Box.mdx +2 -1
  157. package/src/Box/Box.tsx +13 -2
  158. package/src/Button/Button.mdx +4 -3
  159. package/src/Button/Button.tsx +11 -0
  160. package/src/Button/Input.mdx +2 -2
  161. package/src/Calendar/Calendar.js +8 -3
  162. package/src/Calendar/Calendar.mdx +1 -0
  163. package/src/Card/Card.mdx +1 -0
  164. package/src/Card/Card.tsx +7 -1
  165. package/src/Checkbox/Checkbox.js +8 -3
  166. package/src/Checkbox/Checkbox.mdx +1 -0
  167. package/src/CheckboxCard/CheckboxCard.js +26 -1
  168. package/src/CheckboxCard/CheckboxCard.mdx +1 -0
  169. package/src/CheckboxGroup/CheckboxGroup.js +6 -0
  170. package/src/CheckboxGroup/CheckboxGroup.mdx +1 -0
  171. package/src/ChurchCenterStatus/ChurchCenterStatus.mdx +1 -0
  172. package/src/ChurchCenterStatus/ChurchCenterStatus.tsx +4 -4
  173. package/src/Collapse/Collapse.js +2 -0
  174. package/src/ColumnView/ColumnView.js +7 -3
  175. package/src/ColumnView/ColumnView.mdx +1 -0
  176. package/src/Combobox/Combobox.js +11 -1
  177. package/src/Combobox/Combobox.mdx +2 -1
  178. package/src/Combobox/ComboboxPopover.js +2 -2
  179. package/src/DataTable/DataTable.js +48 -0
  180. package/src/DataTable/DataTable.mdx +2 -2
  181. package/src/DataTable/components/CheckboxCell.js +5 -4
  182. package/src/DataTable/components/ColumnPicker.js +4 -4
  183. package/src/DataTable/hooks/useCollapsibleRows.js +1 -1
  184. package/src/DataTable/hooks/useColumnSort.js +1 -1
  185. package/src/DataTable/utils/getParsedColumns.js +4 -4
  186. package/src/DateField/DateField.js +11 -1
  187. package/src/DateField/DateField.mdx +1 -0
  188. package/src/Divider/Divider.mdx +1 -0
  189. package/src/DragDrop/DragDrop.mdx +23 -9
  190. package/src/Drawer/Drawer.js +3 -0
  191. package/src/Drawer/Drawer.mdx +2 -1
  192. package/src/Dropdown/Dropdown.js +49 -3
  193. package/src/Dropdown/Dropdown.mdx +3 -2
  194. package/src/Dropdown/Dropdown.test.tsx +128 -17
  195. package/src/Dropdown/Link.js +3 -1
  196. package/src/EditActions/EditActions.js +18 -3
  197. package/src/EditActions/EditActions.mdx +1 -0
  198. package/src/Field/Field.js +15 -0
  199. package/src/Field/Field.mdx +1 -0
  200. package/src/FieldSet/FieldSet.js +35 -11
  201. package/src/FieldSet/FieldSet.mdx +1 -0
  202. package/src/FilterLayout/FilterLayout.mdx +1 -0
  203. package/src/FilterLayout/FilterLayout.tsx +4 -1
  204. package/src/Form/Form.js +1 -1
  205. package/src/Form/Form.mdx +26 -24
  206. package/src/GridView/GridView.mdx +2 -1
  207. package/src/GridView/GridView.tsx +27 -8
  208. package/src/Group/Group.mdx +8 -7
  209. package/src/Group/Group.tsx +12 -1
  210. package/src/Heading/Heading.js +6 -2
  211. package/src/Heading/Heading.mdx +1 -0
  212. package/src/HeadingUppercase/HeadingUppercase.js +9 -5
  213. package/src/HeadingUppercase/HeadingUppercase.mdx +1 -0
  214. package/src/HelperDrawer/HelperDrawer.js +10 -2
  215. package/src/HelperDrawer/HelperDrawer.mdx +1 -0
  216. package/src/Highlight/Highlight.js +6 -2
  217. package/src/Highlight/Highlight.mdx +1 -0
  218. package/src/Icon/Icon.js +6 -0
  219. package/src/Icon/Icon.mdx +42 -37
  220. package/src/Icon/Status.js +4 -4
  221. package/src/Input/Inline.js +11 -1
  222. package/src/Input/Inline.mdx +2 -1
  223. package/src/Input/Input.js +119 -1
  224. package/src/Input/Input.mdx +1 -6
  225. package/src/Input/InputBox.js +41 -1
  226. package/src/Input/InputBox.mdx +1 -0
  227. package/src/Input/InputField.js +32 -0
  228. package/src/Input/InputField.mdx +1 -0
  229. package/src/Input/InputLabel.mdx +1 -0
  230. package/src/Link/Link.js +10 -0
  231. package/src/Link/Link.mdx +2 -1
  232. package/src/LinkList/LinkList.js +7 -1
  233. package/src/LinkList/LinkList.mdx +1 -0
  234. package/src/List/List.js +25 -1
  235. package/src/List/List.mdx +1 -0
  236. package/src/List/ListItem.js +1 -1
  237. package/src/Logo/Logo.js +10 -1
  238. package/src/Logo/Logo.mdx +1 -0
  239. package/src/Menu/Heading.js +1 -0
  240. package/src/Menu/Menu.js +7 -1
  241. package/src/Menu/Menu.mdx +2 -1
  242. package/src/Modal/Modal.js +1 -0
  243. package/src/Modal/Modal.mdx +1 -0
  244. package/src/Modal/Modal.test.tsx +113 -0
  245. package/src/NumberField/NumberField.js +19 -0
  246. package/src/Page/Page.mdx +1 -1
  247. package/src/PagerView/PagerView.js +1 -0
  248. package/src/PagerView/PagerView.mdx +9 -8
  249. package/src/Pagination/Pagination.js +2 -2
  250. package/src/Pagination/Pagination.mdx +1 -0
  251. package/src/Popover/Popover.test.tsx +62 -0
  252. package/src/Popover/Popover.tsx +3 -0
  253. package/src/Popover/rewireTabOrder.ts +24 -42
  254. package/src/Progress/Progress.js +8 -3
  255. package/src/Progress/Progress.mdx +1 -0
  256. package/src/Radio/Radio.js +4 -2
  257. package/src/Radio/Radio.mdx +1 -0
  258. package/src/RangeSlider/RangeSlider.js +11 -2
  259. package/src/RangeSlider/RangeSlider.mdx +13 -10
  260. package/src/ScreenReader/ScreenReader.js +6 -1
  261. package/src/ScreenReader/ScreenReader.mdx +1 -0
  262. package/src/Scrim/Scrim.mdx +1 -0
  263. package/src/Scrim/Scrim.tsx +8 -2
  264. package/src/Section/Section.js +15 -3
  265. package/src/Section/Section.mdx +1 -0
  266. package/src/SegmentedControl/SegmentedControl.mdx +3 -2
  267. package/src/SegmentedTabs/SegmentedTabs.js +2 -0
  268. package/src/SegmentedTabs/SegmentedTabs.mdx +1 -0
  269. package/src/Select/Option.js +1 -1
  270. package/src/Select/Select.js +69 -2
  271. package/src/Select/Select.mdx +1 -0
  272. package/src/Sidebar/Sidebar.js +14 -6
  273. package/src/Sidebar/Sidebar.mdx +1 -0
  274. package/src/Sortable/SortableItem.js +1 -1
  275. package/src/Spinner/Spinner.mdx +1 -0
  276. package/src/StackView/StackView.mdx +17 -1
  277. package/src/StackView/StackView.tsx +23 -8
  278. package/src/StepperField/StepperField.js +35 -6
  279. package/src/StepperField/StepperField.mdx +2 -2
  280. package/src/StepperProgress/StepperProgress.js +9 -10
  281. package/src/StepperProgress/StepperProgress.mdx +1 -0
  282. package/src/Summary/Summary.mdx +1 -0
  283. package/src/Tab/Tab.mdx +1 -0
  284. package/src/Table/ColumnPicker.js +1 -1
  285. package/src/Table/DragHandle.js +1 -1
  286. package/src/Table/NavigationArrow.js +1 -1
  287. package/src/Table/SubRowToggleCell.js +1 -1
  288. package/src/Table/Table.js +2 -3
  289. package/src/Table/Table.mdx +2 -2
  290. package/src/Tabs/Tab.js +1 -0
  291. package/src/Tabs/Tabs.js +5 -0
  292. package/src/Tabs/Tabs.mdx +1 -0
  293. package/src/Text/Text.mdx +1 -0
  294. package/src/Text/Text.tsx +12 -0
  295. package/src/TextArea/TextArea.js +7 -1
  296. package/src/TextArea/TextArea.mdx +1 -0
  297. package/src/ThemeProvider/ThemeProvider.tsx +1 -1
  298. package/src/TileView/TileView.mdx +1 -0
  299. package/src/TileView/TileView.tsx +17 -3
  300. package/src/TimeField/TimeField.mdx +1 -0
  301. package/src/TokenInput/DefaultToken.js +1 -1
  302. package/src/TokenInput/TokenInput.js +12 -6
  303. package/src/TokenInput/TokenInput.mdx +1 -0
  304. package/src/Toolbar/Toolbar.mdx +1 -0
  305. package/src/Tooltip/Tooltip.js +39 -0
  306. package/src/Tooltip/Tooltip.mdx +4 -3
  307. package/src/Wizard/Wizard.js +1 -1
  308. package/src/Wizard/Wizard.mdx +7 -2
  309. package/src/WrapView/WrapView.mdx +1 -0
  310. package/src/WrapView/WrapView.tsx +6 -28
  311. package/src/hooks/use-accessibility-violation.tsx +1 -1
  312. package/src/hooks/useConstant.ts +17 -0
  313. package/src/system/default-theme.ts +7 -2
  314. package/src/system/utils.js +1 -1
  315. package/src/utils.js +3 -3
  316. package/src/utils.test.js +29 -0
  317. package/dist/cjs/icons.js +0 -126
  318. package/dist/esm/icons.js +0 -121
  319. package/src/icons.js +0 -121
@@ -8,7 +8,7 @@ import { useCallback, useState } from 'react';
8
8
  export var SORT_ASC = 'ASC';
9
9
  export var SORT_DESC = 'DESC';
10
10
  export function getIconDirection(direction) {
11
- return direction === SORT_ASC ? 'arrow-up' : 'arrow-down';
11
+ return direction === SORT_ASC ? 'general.upCaret' : 'general.downCaret';
12
12
  }
13
13
  export function getOppositeSortDirection(direction) {
14
14
  return direction === SORT_ASC ? SORT_DESC : SORT_ASC;
@@ -3,7 +3,7 @@ import React from 'react';
3
3
  import Box from '../../Box';
4
4
  import Tooltip from '../../Tooltip';
5
5
  import { useCollapsibleRowsStore, useSubRowOpen, useAnySubRowsOpen } from '../hooks/useCollapsibleRows';
6
- import Icon from '../components/Icon';
6
+ import Icon from '../../Icon';
7
7
  var buttonStyles = {
8
8
  appearance: 'none',
9
9
  display: 'flex',
@@ -45,7 +45,7 @@ function CollapseHeader(_ref) {
45
45
  callbacks.toggleAllSubRows();
46
46
  }
47
47
  }, /*#__PURE__*/React.createElement(Icon, {
48
- name: "arrow-down",
48
+ name: "general.downCaret",
49
49
  size: "sm",
50
50
  style: {
51
51
  transform: anySubRowsOpen ? undefined : 'rotate(-90deg)',
@@ -68,7 +68,7 @@ function CollapseCell(_ref2) {
68
68
  callbacks.toggleSubRowAtIndex(rowIndex);
69
69
  }
70
70
  }, /*#__PURE__*/React.createElement(Icon, {
71
- name: "arrow-down",
71
+ name: "general.downCaret",
72
72
  size: "sm",
73
73
  style: {
74
74
  transform: isSubRowOpen ? undefined : 'rotate(-90deg)',
@@ -119,7 +119,7 @@ function getParsedColumns(_ref3) {
119
119
  return event.preventDefault();
120
120
  }
121
121
  }, _dragHandleProps), /*#__PURE__*/React.createElement(Icon, {
122
- name: "drag-handle",
122
+ name: "general.dragHandle",
123
123
  size: "sm",
124
124
  color: "foregroundTertiary",
125
125
  style: {
@@ -14,7 +14,7 @@ import Popover from '../Popover';
14
14
  import { generateId } from '../utils';
15
15
 
16
16
  var _ref2 = /*#__PURE__*/React.createElement(Icon, {
17
- name: "calendar",
17
+ name: "general.calendar",
18
18
  color: "foregroundTertiary"
19
19
  });
20
20
 
@@ -2,12 +2,14 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  import React, { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';
4
4
  import StackView from '../StackView';
5
+ import { useThemeValue } from '../system';
5
6
 
6
7
  function DrawerContents(_ref) {
7
8
  var shouldClose = _ref.shouldClose,
8
9
  onClose = _ref.onClose,
9
10
  restProps = _objectWithoutPropertiesLoose(_ref, ["shouldClose", "onClose"]);
10
11
 
12
+ var themeProps = useThemeValue('drawer');
11
13
  var ref = useRef(null);
12
14
 
13
15
  var _useState = useState(false),
@@ -51,7 +53,7 @@ function DrawerContents(_ref) {
51
53
  boxShadow: "-6px 0px 6px -4px rgba(150,150,150,0.25)",
52
54
  backgroundColor: "surfaceTertiary",
53
55
  transition: "transform 240ms ease-out"
54
- }, restProps));
56
+ }, themeProps, restProps));
55
57
  }
56
58
 
57
59
  function Drawer(props) {
@@ -177,7 +177,7 @@ var Dropdown = /*#__PURE__*/function (_Component) {
177
177
  'aria-haspopup': true,
178
178
  'aria-expanded': isPopoverOpen
179
179
  }, _objectSpread2[arrowIconOnly ? 'icon' : 'iconRight'] = {
180
- name: isPopoverOpen ? 'arrow-up' : 'arrow-down',
180
+ name: isPopoverOpen ? 'general.upCaret' : 'general.downCaret',
181
181
  size: 'sm'
182
182
  }, _objectSpread2.title = arrowIconOnly ? 'arrow down' : restProps.title, _objectSpread2.tabIndex = 0, _objectSpread2.cursor = 'pointer', _objectSpread2.onBlur = requestBlur, _objectSpread2.onClick = function onClick() {
183
183
  _this2.togglePopover();
@@ -1,26 +1,167 @@
1
- import React from 'react';
1
+ import React, { useState } from 'react';
2
2
  import { fireEvent, render, screen } from '@testing-library/react';
3
+ import userEvent from '@testing-library/user-event';
4
+ import '@testing-library/jest-dom/extend-expect';
5
+ import { noop } from 'lodash';
6
+ import { Box, Button, Text, ThemeProvider } from '..';
3
7
  import Dropdown from './Dropdown';
4
- import ThemeProvider from '../ThemeProvider';
5
8
 
6
9
  var _ref = /*#__PURE__*/React.createElement(Dropdown, {
7
10
  title: "A menu"
8
11
  });
9
12
 
10
- it("should render title", function () {
11
- render(_ref);
12
- screen.getByText('A menu');
13
- });
14
- it("calls passed onSearch function when receiving keyboard input", function () {
15
- var customTextSearch = jest.fn();
16
- render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Dropdown, {
17
- title: "A menu",
18
- onSearch: customTextSearch
19
- })));
20
- var dropdown = screen.getByText('A menu');
21
- fireEvent.keyDown(dropdown, {
22
- key: 'A',
23
- code: 'KeyA'
13
+ describe('Dropdown', function () {
14
+ describe('Text search', function () {
15
+ it("should render title", function () {
16
+ render(_ref);
17
+ screen.getByText('A menu');
18
+ });
19
+ it("calls passed onSearch function when receiving keyboard input", function () {
20
+ var customTextSearch = jest.fn();
21
+ render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Dropdown, {
22
+ title: "A menu",
23
+ onSearch: customTextSearch
24
+ })));
25
+ var dropdown = screen.getByText('A menu');
26
+ fireEvent.keyDown(dropdown, {
27
+ key: 'A',
28
+ code: 'KeyA'
29
+ });
30
+ expect(customTextSearch).toHaveBeenCalled();
31
+ });
32
+ });
33
+ describe('Keyboard navigation', function () {
34
+ var StatefulDropdown = function StatefulDropdown() {
35
+ var _useState = useState(0),
36
+ count = _useState[0],
37
+ setCount = _useState[1];
38
+
39
+ return /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Box, null, /*#__PURE__*/React.createElement(Dropdown, null, /*#__PURE__*/React.createElement(Dropdown.Item, null, /*#__PURE__*/React.createElement(Button, {
40
+ title: "One",
41
+ onClick: function onClick() {
42
+ return noop();
43
+ }
44
+ })), /*#__PURE__*/React.createElement(Dropdown.Item, null, /*#__PURE__*/React.createElement(Button, {
45
+ title: "Two",
46
+ onClick: function onClick() {
47
+ return setCount(function (c) {
48
+ return c + 1;
49
+ });
50
+ }
51
+ }), /*#__PURE__*/React.createElement(Text, {
52
+ "data-testid": "count-text"
53
+ }, count)), /*#__PURE__*/React.createElement(Dropdown.Item, null, /*#__PURE__*/React.createElement(Button, {
54
+ title: "Three",
55
+ onClick: function onClick() {
56
+ return noop();
57
+ }
58
+ })))));
59
+ };
60
+
61
+ var _ref2 = /*#__PURE__*/React.createElement(StatefulDropdown, null);
62
+
63
+ it('should trap focus, tab forward through all elements', function () {
64
+ render(_ref2);
65
+ userEvent.tab();
66
+ userEvent.keyboard('{enter}');
67
+
68
+ var _screen$getAllByRole = screen.getAllByRole('button'),
69
+ openPopover = _screen$getAllByRole[0],
70
+ buttonOne = _screen$getAllByRole[1],
71
+ buttonTwo = _screen$getAllByRole[2],
72
+ buttonThree = _screen$getAllByRole[3];
73
+
74
+ expect(openPopover).toHaveFocus();
75
+ userEvent.tab();
76
+ expect(buttonOne).toHaveFocus();
77
+ userEvent.tab();
78
+ expect(buttonTwo).toHaveFocus();
79
+ userEvent.tab();
80
+ expect(buttonThree).toHaveFocus();
81
+ userEvent.tab();
82
+ expect(buttonOne).toHaveFocus();
83
+ });
84
+
85
+ var _ref3 = /*#__PURE__*/React.createElement(StatefulDropdown, null);
86
+
87
+ it('should trap focus, tab backwards from first element to last', function () {
88
+ render(_ref3);
89
+ userEvent.tab();
90
+ userEvent.keyboard('{enter}');
91
+
92
+ var _screen$getAllByRole2 = screen.getAllByRole('button'),
93
+ openPopover = _screen$getAllByRole2[0],
94
+ buttonOne = _screen$getAllByRole2[1],
95
+ _buttonTwo = _screen$getAllByRole2[2],
96
+ buttonThree = _screen$getAllByRole2[3];
97
+
98
+ expect(openPopover).toHaveFocus();
99
+ userEvent.tab();
100
+ expect(buttonOne).toHaveFocus();
101
+ userEvent.tab({
102
+ shift: true
103
+ });
104
+ expect(buttonThree).toHaveFocus();
105
+ });
106
+
107
+ var _ref4 = /*#__PURE__*/React.createElement(StatefulDropdown, null);
108
+
109
+ it('should retain tab order after rerender', function () {
110
+ render(_ref4);
111
+ userEvent.tab();
112
+ userEvent.keyboard('{enter}');
113
+
114
+ var _screen$getAllByRole3 = screen.getAllByRole('button'),
115
+ buttonOne = _screen$getAllByRole3[1],
116
+ buttonTwo = _screen$getAllByRole3[2],
117
+ buttonThree = _screen$getAllByRole3[3];
118
+
119
+ userEvent.tab();
120
+ userEvent.tab();
121
+ expect(screen.getByTestId('count-text')).toHaveTextContent('0');
122
+ userEvent.keyboard('{enter}');
123
+ expect(screen.getByTestId('count-text')).toHaveTextContent('1');
124
+ expect(buttonTwo).toHaveFocus();
125
+ userEvent.tab();
126
+ expect(buttonThree).toHaveFocus();
127
+ userEvent.tab({
128
+ shift: true
129
+ });
130
+ userEvent.tab({
131
+ shift: true
132
+ });
133
+ expect(buttonOne).toHaveFocus();
134
+ userEvent.tab();
135
+ userEvent.tab();
136
+ userEvent.tab();
137
+ expect(buttonOne).toHaveFocus();
138
+ userEvent.tab({
139
+ shift: true
140
+ });
141
+ userEvent.tab({
142
+ shift: true
143
+ });
144
+ userEvent.tab({
145
+ shift: true
146
+ });
147
+ expect(buttonOne).toHaveFocus();
148
+ });
149
+
150
+ var _ref5 = /*#__PURE__*/React.createElement(StatefulDropdown, null);
151
+
152
+ it('should focus dropdown toggle when a user presses escape key', function () {
153
+ render(_ref5);
154
+ userEvent.tab();
155
+ userEvent.keyboard('{enter}');
156
+
157
+ var _screen$getAllByRole4 = screen.getAllByRole('button'),
158
+ openPopover = _screen$getAllByRole4[0],
159
+ buttonOne = _screen$getAllByRole4[1];
160
+
161
+ userEvent.tab();
162
+ expect(buttonOne).toHaveFocus();
163
+ userEvent.keyboard("{esc}");
164
+ expect(openPopover).toHaveFocus();
165
+ });
24
166
  });
25
- expect(customTextSearch).toHaveBeenCalled();
26
167
  });
@@ -17,6 +17,8 @@ var Link = /*#__PURE__*/function (_Component) {
17
17
 
18
18
  var _proto = Link.prototype;
19
19
 
20
+ // Graphql wasn't picking up the correct displayName when this was
21
+ // assigned to LINK_DISPLAY_NAME, but using a string works
20
22
  _proto.render = function render() {
21
23
  var _this$props = this.props,
22
24
  disabled = _this$props.disabled,
@@ -62,6 +64,6 @@ var Link = /*#__PURE__*/function (_Component) {
62
64
  return Link;
63
65
  }(Component);
64
66
 
65
- _defineProperty(Link, "displayName", LINK_DISPLAY_NAME);
67
+ _defineProperty(Link, "displayName", 'Dropdown.Link');
66
68
 
67
69
  export default Link;
@@ -4,6 +4,7 @@ import React, { Children, useEffect, useState } from 'react';
4
4
  import Button from '../Button';
5
5
  import StackView from '../StackView';
6
6
  import { useDocumentEvent, useFocus, useHover } from '../hooks';
7
+ import { useThemeProps } from '../system';
7
8
 
8
9
  function EditActions(_ref) {
9
10
  var display = _ref.display,
@@ -33,6 +34,10 @@ function EditActions(_ref) {
33
34
  });
34
35
  };
35
36
 
37
+ var _useThemeProps = useThemeProps('editActions', restProps),
38
+ buttonProps = _useThemeProps.buttonProps,
39
+ themeProps = _objectWithoutPropertiesLoose(_useThemeProps, ["buttonProps"]);
40
+
36
41
  useEffect(function () {
37
42
  if (loading === false) {
38
43
  setShowCheck(true);
@@ -54,11 +59,11 @@ function EditActions(_ref) {
54
59
  onClick: on ? undefined : function () {
55
60
  return setOn(true);
56
61
  }
57
- }, focusProps, hoverProps, restProps), Children.toArray(on ? edit : display), /*#__PURE__*/React.createElement(Button, {
62
+ }, focusProps, hoverProps, themeProps), Children.toArray(on ? edit : display), /*#__PURE__*/React.createElement(Button, _extends({
58
63
  grow: 0,
59
64
  title: on ? 'Close' : 'Edit',
60
65
  icon: {
61
- name: showCheck ? 'checkmark' : on ? 'close' : 'pencil',
66
+ name: showCheck ? 'general.check' : on ? 'general.x' : 'general.pencil',
62
67
  color: showCheck ? 'green' : undefined
63
68
  },
64
69
  tooltip: {
@@ -73,7 +78,7 @@ function EditActions(_ref) {
73
78
  spinner: on && loading ? {
74
79
  color: 'primary'
75
80
  } : undefined
76
- }));
81
+ }, buttonProps)));
77
82
  }
78
83
 
79
84
  export default EditActions;
@@ -1,36 +1,48 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
+
5
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
6
+
7
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
8
+
3
9
  import React from 'react';
4
10
  import Heading from '../Heading';
5
11
  import StackView from '../StackView';
6
12
  import TileView from '../TileView';
7
13
  import Toolbar from '../Toolbar';
14
+ import { useThemeProps } from '../system';
8
15
 
9
16
  function FieldSet(_ref) {
10
17
  var children = _ref.children,
11
- _ref$minCellWidth = _ref.minCellWidth,
12
- minCellWidth = _ref$minCellWidth === void 0 ? 16 : _ref$minCellWidth,
13
- _ref$spacing = _ref.spacing,
14
- spacing = _ref$spacing === void 0 ? 1 : _ref$spacing,
15
18
  helpContent = _ref.helpContent,
16
19
  legend = _ref.legend,
17
- restProps = _objectWithoutPropertiesLoose(_ref, ["children", "minCellWidth", "spacing", "helpContent", "legend"]);
20
+ restProps = _objectWithoutPropertiesLoose(_ref, ["children", "helpContent", "legend"]);
21
+
22
+ var _useThemeProps = useThemeProps('fieldset', _objectSpread({}, restProps)),
23
+ headingProps = _useThemeProps.headingProps,
24
+ tileViewProps = _useThemeProps.tileViewProps,
25
+ _useThemeProps$spacin = _useThemeProps.spacing,
26
+ spacing = _useThemeProps$spacin === void 0 ? 1 : _useThemeProps$spacin,
27
+ _useThemeProps$minCel = _useThemeProps.minCellWidth,
28
+ minCellWidth = _useThemeProps$minCel === void 0 ? 16 : _useThemeProps$minCel,
29
+ themeProps = _objectWithoutPropertiesLoose(_useThemeProps, ["headingProps", "tileViewProps", "spacing", "minCellWidth"]);
18
30
 
19
31
  return /*#__PURE__*/React.createElement(StackView, _extends({
20
32
  as: "fieldset",
21
33
  padding: 0,
22
34
  margin: 2
23
- }, restProps), /*#__PURE__*/React.createElement(Toolbar, {
24
- title: /*#__PURE__*/React.createElement(Heading, {
35
+ }, themeProps, restProps), /*#__PURE__*/React.createElement(Toolbar, {
36
+ title: /*#__PURE__*/React.createElement(Heading, _extends({
25
37
  as: "legend",
26
38
  level: 4
27
- }, legend),
39
+ }, headingProps), legend),
28
40
  helpContent: helpContent,
29
41
  marginBottom: 1
30
- }), /*#__PURE__*/React.createElement(TileView, {
42
+ }), /*#__PURE__*/React.createElement(TileView, _extends({
31
43
  minCellWidth: minCellWidth,
32
44
  spacing: spacing
33
- }, children));
45
+ }, tileViewProps), children));
34
46
  }
35
47
 
36
48
  export default FieldSet;
@@ -57,7 +57,8 @@ export function FilterLayout(props) {
57
57
  title: "Filter",
58
58
  "aria-label": sidebarOpen ? 'close filter' : 'open filter',
59
59
  iconRight: {
60
- name: sidebarOpen ? 'caret-left' : 'filter'
60
+ name: sidebarOpen ? 'general.leftChevron' : 'general.threeReducingHorizontalBars',
61
+ size: sidebarOpen ? 'xs' : 'md'
61
62
  },
62
63
  onClick: toggleSidebar
63
64
  }), /*#__PURE__*/React.createElement(Box, {
@@ -110,7 +110,7 @@ var Form = /*#__PURE__*/function (_React$Component) {
110
110
  editButtonProps: {
111
111
  disabled: isSubmitting,
112
112
  icon: isEditing ? undefined : {
113
- name: 'pencil'
113
+ name: 'general.pencil'
114
114
  },
115
115
  onClick: function onClick() {
116
116
  // bail out if we've already triggered a submit in onBlur
@@ -12,6 +12,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
12
12
  import { jsx } from '@emotion/core';
13
13
  import * as React from 'react';
14
14
  import splitStyles from '../system/split-styles';
15
+ import { spacingValue } from '../system';
15
16
  import { useVariant } from '../VariantProvider';
16
17
 
17
18
  function getTemplateValue(value) {
@@ -64,15 +65,15 @@ var gridViewPlugin = {
64
65
  }
65
66
 
66
67
  if (columnSpacing !== undefined && styles.gridColumnGap === undefined) {
67
- styles.gridColumnGap = columnSpacing * 8;
68
+ styles.gridColumnGap = spacingValue(columnSpacing);
68
69
  }
69
70
 
70
71
  if (rowSpacing !== undefined && styles.gridRowGap === undefined) {
71
- styles.gridRowGap = rowSpacing * 8;
72
+ styles.gridRowGap = spacingValue(rowSpacing);
72
73
  }
73
74
 
74
- if (spacing !== undefined && styles.gridGap === undefined) {
75
- styles.gridGap = spacing * 8;
75
+ if (spacing !== undefined && styles.gap === undefined) {
76
+ styles.gap = spacingValue(spacing);
76
77
  }
77
78
 
78
79
  return styles;
@@ -16,21 +16,28 @@ export function Group(_ref) {
16
16
  childProps = _ref.childProps,
17
17
  children = _ref.children,
18
18
  radius = _ref.radius,
19
- restProps = _objectWithoutPropertiesLoose(_ref, ["axis", "childProps", "children", "radius"]);
19
+ spacing = _ref.spacing,
20
+ restProps = _objectWithoutPropertiesLoose(_ref, ["axis", "childProps", "children", "radius", "spacing"]);
20
21
 
21
22
  var themeRadius = useThemeValue('group.radius');
22
23
  var radiusValue = radius != null ? radius : themeRadius;
23
24
  var isHorizontalLayout = axis === 'horizontal';
24
25
  var startRadius = isHorizontalLayout ? 'radiusLeft' : 'radiusTop';
25
26
  var endRadius = isHorizontalLayout ? 'radiusRight' : 'radiusBottom';
27
+ var marginBottom = isHorizontalLayout ? 0 : '-1px';
28
+ var marginRight = isHorizontalLayout ? '-1px' : 0;
26
29
  return /*#__PURE__*/React.createElement(StackView, _extends({
27
30
  axis: axis,
28
- spacing: -0.125
31
+ spacing: spacing
29
32
  }, restProps), cloneChildren(children, function (child, _ref2) {
30
33
  var _objectSpread2;
31
34
 
32
35
  var firstChild = _ref2.firstChild,
33
36
  lastChild = _ref2.lastChild;
34
- return _objectSpread(_objectSpread({}, childProps), {}, (_objectSpread2 = {}, _objectSpread2[startRadius] = firstChild ? radiusValue : 0, _objectSpread2[endRadius] = lastChild ? radiusValue : 0, _objectSpread2));
37
+ return _objectSpread(_objectSpread(_objectSpread({}, childProps), {}, (_objectSpread2 = {}, _objectSpread2[startRadius] = firstChild ? radiusValue : 0, _objectSpread2[endRadius] = lastChild ? radiusValue : 0, _objectSpread2), !spacing && !lastChild && {
38
+ marginBottom: marginBottom
39
+ }), !spacing && !lastChild && {
40
+ marginRight: marginRight
41
+ });
35
42
  }));
36
43
  }
@@ -2,13 +2,13 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  import React from 'react';
4
4
  import Text from '../Text';
5
- import { useThemeValue } from '../system';
5
+ import { useThemeProps } from '../system';
6
6
 
7
7
  function HeadingUppercase(_ref) {
8
8
  var children = _ref.children,
9
9
  restProps = _objectWithoutPropertiesLoose(_ref, ["children"]);
10
10
 
11
- var themedProps = useThemeValue('HeadingUppercase');
11
+ var themeProps = useThemeProps('HeadingUppercase', restProps);
12
12
  return /*#__PURE__*/React.createElement(Text, _extends({
13
13
  as: "span",
14
14
  uppercase: true,
@@ -18,7 +18,7 @@ function HeadingUppercase(_ref) {
18
18
  color: "foregroundSecondary",
19
19
  shrink: 0,
20
20
  margin: 0
21
- }, themedProps, restProps), children);
21
+ }, themeProps), children);
22
22
  }
23
23
 
24
24
  export default HeadingUppercase;
@@ -25,7 +25,7 @@ function Toggle(_ref) {
25
25
  }, [drawerId]);
26
26
  return jsx(Button, _extends({
27
27
  icon: {
28
- name: 'info'
28
+ name: 'general.outlinedInfoCircle'
29
29
  },
30
30
  tooltip: {
31
31
  title: 'More info'
@@ -2,23 +2,27 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  import React from 'react';
4
4
  import Text from '../Text';
5
+ import { useThemeProps } from '../system';
5
6
  import { markFuzzyMatchSubstring, markStartsWithMatchSubstring } from './utils';
6
7
 
7
8
  /**
8
9
  * Highlight or mark letters in a string using a provided query.
9
10
  */
10
11
  function Highlight(_ref) {
11
- var _ref$color = _ref.color,
12
- color = _ref$color === void 0 ? 'primary' : _ref$color,
13
- _ref$marker = _ref.marker,
12
+ var _ref$marker = _ref.marker,
14
13
  marker = _ref$marker === void 0 ? markStartsWithMatchSubstring : _ref$marker,
15
14
  query = _ref.query,
16
15
  text = _ref.text,
17
- restProps = _objectWithoutPropertiesLoose(_ref, ["color", "marker", "query", "text"]);
16
+ restProps = _objectWithoutPropertiesLoose(_ref, ["marker", "query", "text"]);
17
+
18
+ var _useThemeProps = useThemeProps('highlight', restProps),
19
+ _useThemeProps$color = _useThemeProps.color,
20
+ color = _useThemeProps$color === void 0 ? 'primary' : _useThemeProps$color,
21
+ themeProps = _objectWithoutPropertiesLoose(_useThemeProps, ["color"]);
18
22
 
19
23
  return /*#__PURE__*/React.createElement(Text, _extends({
20
24
  as: "span"
21
- }, restProps), marker(text, query).map(function (part, index) {
25
+ }, themeProps), marker(text, query).map(function (part, index) {
22
26
  return /*#__PURE__*/React.createElement(Text, {
23
27
  key: index,
24
28
  inline: true,
@@ -4,9 +4,9 @@ import React from 'react';
4
4
  import Icon from './Icon';
5
5
  import Path from './Path';
6
6
  var STATUS_VARIANTS = {
7
- confirmed: ['checkmark-circle', 'success'],
8
- unconfirmed: ['question-circle', 'warning'],
9
- declined: ['close-circle', 'error']
7
+ confirmed: ['general.outlinedCircleCheck', 'success'],
8
+ unconfirmed: ['general.outlinedQuestionCircle', 'warning'],
9
+ declined: ['general.outlinedXCircle', 'error']
10
10
  };
11
11
 
12
12
  function Status(props) {
@@ -31,7 +31,7 @@ function Status(props) {
31
31
  name: variantName,
32
32
  color: color || variantColor
33
33
  }, restProps), /*#__PURE__*/React.createElement(Path, {
34
- name: "radio-0",
34
+ name: "tapestry.radio0",
35
35
  color: color
36
36
  }));
37
37
  }
@@ -313,7 +313,7 @@ var InputBox = /*#__PURE__*/function (_Component) {
313
313
  size: size
314
314
  }) : onClear ? /*#__PURE__*/React.createElement(Button, {
315
315
  icon: {
316
- name: 'close'
316
+ name: 'general.x'
317
317
  },
318
318
  title: "clear input value",
319
319
  size: size,
@@ -24,7 +24,7 @@ function ListItem(_ref) {
24
24
  backgroundColor: "surface"
25
25
  }, hoverProps, restProps), children, onRemoveRequest && /*#__PURE__*/React.createElement(Button, {
26
26
  icon: {
27
- name: 'remove-circle-filled'
27
+ name: 'general.minusCircle'
28
28
  },
29
29
  title: removeTitle,
30
30
  size: "sm",
@@ -14,4 +14,5 @@ function Heading(_ref) {
14
14
  }, restProps), children);
15
15
  }
16
16
 
17
+ Heading.displayName = 'Menu.Heading';
17
18
  export default Heading;