@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
@@ -2,34 +2,209 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _react = _interopRequireDefault(require("react"));
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
6
+
7
+ var _react = _interopRequireWildcard(require("react"));
6
8
 
7
9
  var _react2 = require("@testing-library/react");
8
10
 
11
+ var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
12
+
13
+ require("@testing-library/jest-dom/extend-expect");
14
+
15
+ var _lodash = require("lodash");
16
+
17
+ var _ = require("..");
18
+
9
19
  var _Dropdown = _interopRequireDefault(require("./Dropdown"));
10
20
 
11
- var _ThemeProvider = _interopRequireDefault(require("../ThemeProvider"));
21
+ describe('Dropdown', function () {
22
+ describe('Text search', function () {
23
+ it("should render title", function () {
24
+ (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
25
+ title: "A menu"
26
+ }));
12
27
 
13
- it("should render title", function () {
14
- (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
15
- title: "A menu"
16
- }));
28
+ _react2.screen.getByText('A menu');
29
+ });
30
+ it("calls passed onSearch function when receiving keyboard input", function () {
31
+ var customTextSearch = jest.fn();
32
+ (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_.ThemeProvider, null, /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
33
+ title: "A menu",
34
+ onSearch: customTextSearch
35
+ })));
17
36
 
18
- _react2.screen.getByText('A menu');
19
- });
20
- it("calls passed onSearch function when receiving keyboard input", function () {
21
- var customTextSearch = jest.fn();
22
- (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ThemeProvider["default"], null, /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
23
- title: "A menu",
24
- onSearch: customTextSearch
25
- })));
37
+ var dropdown = _react2.screen.getByText('A menu');
26
38
 
27
- var dropdown = _react2.screen.getByText('A menu');
39
+ _react2.fireEvent.keyDown(dropdown, {
40
+ key: 'A',
41
+ code: 'KeyA'
42
+ });
28
43
 
29
- _react2.fireEvent.keyDown(dropdown, {
30
- key: 'A',
31
- code: 'KeyA'
44
+ expect(customTextSearch).toHaveBeenCalled();
45
+ });
32
46
  });
47
+ describe('Keyboard navigation', function () {
48
+ var StatefulDropdown = function StatefulDropdown() {
49
+ var _useState = (0, _react.useState)(0),
50
+ count = _useState[0],
51
+ setCount = _useState[1];
52
+
53
+ return /*#__PURE__*/_react["default"].createElement(_.ThemeProvider, null, /*#__PURE__*/_react["default"].createElement(_.Box, null, /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], null, /*#__PURE__*/_react["default"].createElement(_Dropdown["default"].Item, null, /*#__PURE__*/_react["default"].createElement(_.Button, {
54
+ title: "One",
55
+ onClick: function onClick() {
56
+ return (0, _lodash.noop)();
57
+ }
58
+ })), /*#__PURE__*/_react["default"].createElement(_Dropdown["default"].Item, null, /*#__PURE__*/_react["default"].createElement(_.Button, {
59
+ title: "Two",
60
+ onClick: function onClick() {
61
+ return setCount(function (c) {
62
+ return c + 1;
63
+ });
64
+ }
65
+ }), /*#__PURE__*/_react["default"].createElement(_.Text, {
66
+ "data-testid": "count-text"
67
+ }, count)), /*#__PURE__*/_react["default"].createElement(_Dropdown["default"].Item, null, /*#__PURE__*/_react["default"].createElement(_.Button, {
68
+ title: "Three",
69
+ onClick: function onClick() {
70
+ return (0, _lodash.noop)();
71
+ }
72
+ })))));
73
+ };
74
+
75
+ it('should trap focus, tab forward through all elements', function () {
76
+ (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(StatefulDropdown, null));
77
+
78
+ _userEvent["default"].tab();
79
+
80
+ _userEvent["default"].keyboard('{enter}');
81
+
82
+ var _screen$getAllByRole = _react2.screen.getAllByRole('button'),
83
+ openPopover = _screen$getAllByRole[0],
84
+ buttonOne = _screen$getAllByRole[1],
85
+ buttonTwo = _screen$getAllByRole[2],
86
+ buttonThree = _screen$getAllByRole[3];
87
+
88
+ expect(openPopover).toHaveFocus();
89
+
90
+ _userEvent["default"].tab();
91
+
92
+ expect(buttonOne).toHaveFocus();
93
+
94
+ _userEvent["default"].tab();
95
+
96
+ expect(buttonTwo).toHaveFocus();
97
+
98
+ _userEvent["default"].tab();
99
+
100
+ expect(buttonThree).toHaveFocus();
101
+
102
+ _userEvent["default"].tab();
103
+
104
+ expect(buttonOne).toHaveFocus();
105
+ });
106
+ it('should trap focus, tab backwards from first element to last', function () {
107
+ (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(StatefulDropdown, null));
108
+
109
+ _userEvent["default"].tab();
110
+
111
+ _userEvent["default"].keyboard('{enter}');
112
+
113
+ var _screen$getAllByRole2 = _react2.screen.getAllByRole('button'),
114
+ openPopover = _screen$getAllByRole2[0],
115
+ buttonOne = _screen$getAllByRole2[1],
116
+ _buttonTwo = _screen$getAllByRole2[2],
117
+ buttonThree = _screen$getAllByRole2[3];
118
+
119
+ expect(openPopover).toHaveFocus();
120
+
121
+ _userEvent["default"].tab();
122
+
123
+ expect(buttonOne).toHaveFocus();
124
+
125
+ _userEvent["default"].tab({
126
+ shift: true
127
+ });
128
+
129
+ expect(buttonThree).toHaveFocus();
130
+ });
131
+ it('should retain tab order after rerender', function () {
132
+ (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(StatefulDropdown, null));
133
+
134
+ _userEvent["default"].tab();
33
135
 
34
- expect(customTextSearch).toHaveBeenCalled();
136
+ _userEvent["default"].keyboard('{enter}');
137
+
138
+ var _screen$getAllByRole3 = _react2.screen.getAllByRole('button'),
139
+ buttonOne = _screen$getAllByRole3[1],
140
+ buttonTwo = _screen$getAllByRole3[2],
141
+ buttonThree = _screen$getAllByRole3[3];
142
+
143
+ _userEvent["default"].tab();
144
+
145
+ _userEvent["default"].tab();
146
+
147
+ expect(_react2.screen.getByTestId('count-text')).toHaveTextContent('0');
148
+
149
+ _userEvent["default"].keyboard('{enter}');
150
+
151
+ expect(_react2.screen.getByTestId('count-text')).toHaveTextContent('1');
152
+ expect(buttonTwo).toHaveFocus();
153
+
154
+ _userEvent["default"].tab();
155
+
156
+ expect(buttonThree).toHaveFocus();
157
+
158
+ _userEvent["default"].tab({
159
+ shift: true
160
+ });
161
+
162
+ _userEvent["default"].tab({
163
+ shift: true
164
+ });
165
+
166
+ expect(buttonOne).toHaveFocus();
167
+
168
+ _userEvent["default"].tab();
169
+
170
+ _userEvent["default"].tab();
171
+
172
+ _userEvent["default"].tab();
173
+
174
+ expect(buttonOne).toHaveFocus();
175
+
176
+ _userEvent["default"].tab({
177
+ shift: true
178
+ });
179
+
180
+ _userEvent["default"].tab({
181
+ shift: true
182
+ });
183
+
184
+ _userEvent["default"].tab({
185
+ shift: true
186
+ });
187
+
188
+ expect(buttonOne).toHaveFocus();
189
+ });
190
+ it('should focus dropdown toggle when a user presses escape key', function () {
191
+ (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(StatefulDropdown, null));
192
+
193
+ _userEvent["default"].tab();
194
+
195
+ _userEvent["default"].keyboard('{enter}');
196
+
197
+ var _screen$getAllByRole4 = _react2.screen.getAllByRole('button'),
198
+ openPopover = _screen$getAllByRole4[0],
199
+ buttonOne = _screen$getAllByRole4[1];
200
+
201
+ _userEvent["default"].tab();
202
+
203
+ expect(buttonOne).toHaveFocus();
204
+
205
+ _userEvent["default"].keyboard("{esc}");
206
+
207
+ expect(openPopover).toHaveFocus();
208
+ });
209
+ });
35
210
  });
@@ -35,6 +35,8 @@ var Link = /*#__PURE__*/function (_Component) {
35
35
 
36
36
  var _proto = Link.prototype;
37
37
 
38
+ // Graphql wasn't picking up the correct displayName when this was
39
+ // assigned to LINK_DISPLAY_NAME, but using a string works
38
40
  _proto.render = function render() {
39
41
  var _this$props = this.props,
40
42
  disabled = _this$props.disabled,
@@ -80,6 +82,6 @@ var Link = /*#__PURE__*/function (_Component) {
80
82
  return Link;
81
83
  }(_react.Component);
82
84
 
83
- (0, _defineProperty2["default"])(Link, "displayName", LINK_DISPLAY_NAME);
85
+ (0, _defineProperty2["default"])(Link, "displayName", 'Dropdown.Link');
84
86
  var _default = Link;
85
87
  exports["default"] = _default;
@@ -19,6 +19,8 @@ var _StackView = _interopRequireDefault(require("../StackView"));
19
19
 
20
20
  var _hooks = require("../hooks");
21
21
 
22
+ var _system = require("../system");
23
+
22
24
  function EditActions(_ref) {
23
25
  var display = _ref.display,
24
26
  edit = _ref.edit,
@@ -47,6 +49,10 @@ function EditActions(_ref) {
47
49
  });
48
50
  };
49
51
 
52
+ var _useThemeProps = (0, _system.useThemeProps)('editActions', restProps),
53
+ buttonProps = _useThemeProps.buttonProps,
54
+ themeProps = (0, _objectWithoutPropertiesLoose2["default"])(_useThemeProps, ["buttonProps"]);
55
+
50
56
  (0, _react.useEffect)(function () {
51
57
  if (loading === false) {
52
58
  setShowCheck(true);
@@ -68,11 +74,11 @@ function EditActions(_ref) {
68
74
  onClick: on ? undefined : function () {
69
75
  return setOn(true);
70
76
  }
71
- }, focusProps, hoverProps, restProps), _react.Children.toArray(on ? edit : display), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
77
+ }, focusProps, hoverProps, themeProps), _react.Children.toArray(on ? edit : display), /*#__PURE__*/_react["default"].createElement(_Button["default"], (0, _extends2["default"])({
72
78
  grow: 0,
73
79
  title: on ? 'Close' : 'Edit',
74
80
  icon: {
75
- name: showCheck ? 'checkmark' : on ? 'close' : 'pencil',
81
+ name: showCheck ? 'general.check' : on ? 'general.x' : 'general.pencil',
76
82
  color: showCheck ? 'green' : undefined
77
83
  },
78
84
  tooltip: {
@@ -87,7 +93,7 @@ function EditActions(_ref) {
87
93
  spinner: on && loading ? {
88
94
  color: 'primary'
89
95
  } : undefined
90
- }));
96
+ }, buttonProps)));
91
97
  }
92
98
 
93
99
  var _default = EditActions;
@@ -7,6 +7,8 @@ exports["default"] = void 0;
7
7
 
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
 
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
10
12
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
13
 
12
14
  var _react = _interopRequireDefault(require("react"));
@@ -19,30 +21,42 @@ var _TileView = _interopRequireDefault(require("../TileView"));
19
21
 
20
22
  var _Toolbar = _interopRequireDefault(require("../Toolbar"));
21
23
 
24
+ var _system = require("../system");
25
+
26
+ 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; }
27
+
28
+ 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) { (0, _defineProperty2["default"])(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; }
29
+
22
30
  function FieldSet(_ref) {
23
31
  var children = _ref.children,
24
- _ref$minCellWidth = _ref.minCellWidth,
25
- minCellWidth = _ref$minCellWidth === void 0 ? 16 : _ref$minCellWidth,
26
- _ref$spacing = _ref.spacing,
27
- spacing = _ref$spacing === void 0 ? 1 : _ref$spacing,
28
32
  helpContent = _ref.helpContent,
29
33
  legend = _ref.legend,
30
- restProps = (0, _objectWithoutPropertiesLoose2["default"])(_ref, ["children", "minCellWidth", "spacing", "helpContent", "legend"]);
34
+ restProps = (0, _objectWithoutPropertiesLoose2["default"])(_ref, ["children", "helpContent", "legend"]);
35
+
36
+ var _useThemeProps = (0, _system.useThemeProps)('fieldset', _objectSpread({}, restProps)),
37
+ headingProps = _useThemeProps.headingProps,
38
+ tileViewProps = _useThemeProps.tileViewProps,
39
+ _useThemeProps$spacin = _useThemeProps.spacing,
40
+ spacing = _useThemeProps$spacin === void 0 ? 1 : _useThemeProps$spacin,
41
+ _useThemeProps$minCel = _useThemeProps.minCellWidth,
42
+ minCellWidth = _useThemeProps$minCel === void 0 ? 16 : _useThemeProps$minCel,
43
+ themeProps = (0, _objectWithoutPropertiesLoose2["default"])(_useThemeProps, ["headingProps", "tileViewProps", "spacing", "minCellWidth"]);
44
+
31
45
  return /*#__PURE__*/_react["default"].createElement(_StackView["default"], (0, _extends2["default"])({
32
46
  as: "fieldset",
33
47
  padding: 0,
34
48
  margin: 2
35
- }, restProps), /*#__PURE__*/_react["default"].createElement(_Toolbar["default"], {
36
- title: /*#__PURE__*/_react["default"].createElement(_Heading["default"], {
49
+ }, themeProps, restProps), /*#__PURE__*/_react["default"].createElement(_Toolbar["default"], {
50
+ title: /*#__PURE__*/_react["default"].createElement(_Heading["default"], (0, _extends2["default"])({
37
51
  as: "legend",
38
52
  level: 4
39
- }, legend),
53
+ }, headingProps), legend),
40
54
  helpContent: helpContent,
41
55
  marginBottom: 1
42
- }), /*#__PURE__*/_react["default"].createElement(_TileView["default"], {
56
+ }), /*#__PURE__*/_react["default"].createElement(_TileView["default"], (0, _extends2["default"])({
43
57
  minCellWidth: minCellWidth,
44
58
  spacing: spacing
45
- }, children));
59
+ }, tileViewProps), children));
46
60
  }
47
61
 
48
62
  var _default = FieldSet;
@@ -70,7 +70,8 @@ function FilterLayout(props) {
70
70
  title: "Filter",
71
71
  "aria-label": sidebarOpen ? 'close filter' : 'open filter',
72
72
  iconRight: {
73
- name: sidebarOpen ? 'caret-left' : 'filter'
73
+ name: sidebarOpen ? 'general.leftChevron' : 'general.threeReducingHorizontalBars',
74
+ size: sidebarOpen ? 'xs' : 'md'
74
75
  },
75
76
  onClick: toggleSidebar
76
77
  }), /*#__PURE__*/React.createElement(_Box["default"], {
@@ -113,7 +113,7 @@ var Form = /*#__PURE__*/function (_React$Component) {
113
113
  editButtonProps: {
114
114
  disabled: isSubmitting,
115
115
  icon: isEditing ? undefined : {
116
- name: 'pencil'
116
+ name: 'general.pencil'
117
117
  },
118
118
  onClick: function onClick() {
119
119
  // bail out if we've already triggered a submit in onBlur
@@ -19,6 +19,8 @@ var React = _interopRequireWildcard(require("react"));
19
19
 
20
20
  var _splitStyles = _interopRequireDefault(require("../system/split-styles"));
21
21
 
22
+ var _system = require("../system");
23
+
22
24
  var _VariantProvider = require("../VariantProvider");
23
25
 
24
26
  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; }
@@ -75,15 +77,15 @@ var gridViewPlugin = {
75
77
  }
76
78
 
77
79
  if (columnSpacing !== undefined && styles.gridColumnGap === undefined) {
78
- styles.gridColumnGap = columnSpacing * 8;
80
+ styles.gridColumnGap = (0, _system.spacingValue)(columnSpacing);
79
81
  }
80
82
 
81
83
  if (rowSpacing !== undefined && styles.gridRowGap === undefined) {
82
- styles.gridRowGap = rowSpacing * 8;
84
+ styles.gridRowGap = (0, _system.spacingValue)(rowSpacing);
83
85
  }
84
86
 
85
- if (spacing !== undefined && styles.gridGap === undefined) {
86
- styles.gridGap = spacing * 8;
87
+ if (spacing !== undefined && styles.gap === undefined) {
88
+ styles.gap = (0, _system.spacingValue)(spacing);
87
89
  }
88
90
 
89
91
  return styles;
@@ -29,20 +29,27 @@ function Group(_ref) {
29
29
  childProps = _ref.childProps,
30
30
  children = _ref.children,
31
31
  radius = _ref.radius,
32
- restProps = (0, _objectWithoutPropertiesLoose2["default"])(_ref, ["axis", "childProps", "children", "radius"]);
32
+ spacing = _ref.spacing,
33
+ restProps = (0, _objectWithoutPropertiesLoose2["default"])(_ref, ["axis", "childProps", "children", "radius", "spacing"]);
33
34
  var themeRadius = (0, _system.useThemeValue)('group.radius');
34
35
  var radiusValue = radius != null ? radius : themeRadius;
35
36
  var isHorizontalLayout = axis === 'horizontal';
36
37
  var startRadius = isHorizontalLayout ? 'radiusLeft' : 'radiusTop';
37
38
  var endRadius = isHorizontalLayout ? 'radiusRight' : 'radiusBottom';
39
+ var marginBottom = isHorizontalLayout ? 0 : '-1px';
40
+ var marginRight = isHorizontalLayout ? '-1px' : 0;
38
41
  return /*#__PURE__*/_react["default"].createElement(_StackView["default"], (0, _extends2["default"])({
39
42
  axis: axis,
40
- spacing: -0.125
43
+ spacing: spacing
41
44
  }, restProps), (0, _utils.cloneChildren)(children, function (child, _ref2) {
42
45
  var _objectSpread2;
43
46
 
44
47
  var firstChild = _ref2.firstChild,
45
48
  lastChild = _ref2.lastChild;
46
- return _objectSpread(_objectSpread({}, childProps), {}, (_objectSpread2 = {}, _objectSpread2[startRadius] = firstChild ? radiusValue : 0, _objectSpread2[endRadius] = lastChild ? radiusValue : 0, _objectSpread2));
49
+ return _objectSpread(_objectSpread(_objectSpread({}, childProps), {}, (_objectSpread2 = {}, _objectSpread2[startRadius] = firstChild ? radiusValue : 0, _objectSpread2[endRadius] = lastChild ? radiusValue : 0, _objectSpread2), !spacing && !lastChild && {
50
+ marginBottom: marginBottom
51
+ }), !spacing && !lastChild && {
52
+ marginRight: marginRight
53
+ });
47
54
  }));
48
55
  }
@@ -18,7 +18,7 @@ var _system = require("../system");
18
18
  function HeadingUppercase(_ref) {
19
19
  var children = _ref.children,
20
20
  restProps = (0, _objectWithoutPropertiesLoose2["default"])(_ref, ["children"]);
21
- var themedProps = (0, _system.useThemeValue)('HeadingUppercase');
21
+ var themeProps = (0, _system.useThemeProps)('HeadingUppercase', restProps);
22
22
  return /*#__PURE__*/_react["default"].createElement(_Text["default"], (0, _extends2["default"])({
23
23
  as: "span",
24
24
  uppercase: true,
@@ -28,7 +28,7 @@ function HeadingUppercase(_ref) {
28
28
  color: "foregroundSecondary",
29
29
  shrink: 0,
30
30
  margin: 0
31
- }, themedProps, restProps), children);
31
+ }, themeProps), children);
32
32
  }
33
33
 
34
34
  var _default = HeadingUppercase;
@@ -37,7 +37,7 @@ function Toggle(_ref) {
37
37
  }, [drawerId]);
38
38
  return (0, _core.jsx)(_Button["default"], (0, _extends2["default"])({
39
39
  icon: {
40
- name: 'info'
40
+ name: 'general.outlinedInfoCircle'
41
41
  },
42
42
  tooltip: {
43
43
  title: 'More info'
@@ -13,22 +13,28 @@ var _react = _interopRequireDefault(require("react"));
13
13
 
14
14
  var _Text = _interopRequireDefault(require("../Text"));
15
15
 
16
+ var _system = require("../system");
17
+
16
18
  var _utils = require("./utils");
17
19
 
18
20
  /**
19
21
  * Highlight or mark letters in a string using a provided query.
20
22
  */
21
23
  function Highlight(_ref) {
22
- var _ref$color = _ref.color,
23
- color = _ref$color === void 0 ? 'primary' : _ref$color,
24
- _ref$marker = _ref.marker,
24
+ var _ref$marker = _ref.marker,
25
25
  marker = _ref$marker === void 0 ? _utils.markStartsWithMatchSubstring : _ref$marker,
26
26
  query = _ref.query,
27
27
  text = _ref.text,
28
- restProps = (0, _objectWithoutPropertiesLoose2["default"])(_ref, ["color", "marker", "query", "text"]);
28
+ restProps = (0, _objectWithoutPropertiesLoose2["default"])(_ref, ["marker", "query", "text"]);
29
+
30
+ var _useThemeProps = (0, _system.useThemeProps)('highlight', restProps),
31
+ _useThemeProps$color = _useThemeProps.color,
32
+ color = _useThemeProps$color === void 0 ? 'primary' : _useThemeProps$color,
33
+ themeProps = (0, _objectWithoutPropertiesLoose2["default"])(_useThemeProps, ["color"]);
34
+
29
35
  return /*#__PURE__*/_react["default"].createElement(_Text["default"], (0, _extends2["default"])({
30
36
  as: "span"
31
- }, restProps), marker(text, query).map(function (part, index) {
37
+ }, themeProps), marker(text, query).map(function (part, index) {
32
38
  return /*#__PURE__*/_react["default"].createElement(_Text["default"], {
33
39
  key: index,
34
40
  inline: true,
@@ -16,9 +16,9 @@ var _Icon = _interopRequireDefault(require("./Icon"));
16
16
  var _Path = _interopRequireDefault(require("./Path"));
17
17
 
18
18
  var STATUS_VARIANTS = {
19
- confirmed: ['checkmark-circle', 'success'],
20
- unconfirmed: ['question-circle', 'warning'],
21
- declined: ['close-circle', 'error']
19
+ confirmed: ['general.outlinedCircleCheck', 'success'],
20
+ unconfirmed: ['general.outlinedQuestionCircle', 'warning'],
21
+ declined: ['general.outlinedXCircle', 'error']
22
22
  };
23
23
 
24
24
  function Status(props) {
@@ -42,7 +42,7 @@ function Status(props) {
42
42
  name: variantName,
43
43
  color: color || variantColor
44
44
  }, restProps), /*#__PURE__*/_react["default"].createElement(_Path["default"], {
45
- name: "radio-0",
45
+ name: "tapestry.radio0",
46
46
  color: color
47
47
  }));
48
48
  }
@@ -324,7 +324,7 @@ var InputBox = /*#__PURE__*/function (_Component) {
324
324
  size: size
325
325
  }) : onClear ? /*#__PURE__*/_react["default"].createElement(_Button["default"], {
326
326
  icon: {
327
- name: 'close'
327
+ name: 'general.x'
328
328
  },
329
329
  title: "clear input value",
330
330
  size: size,
@@ -36,7 +36,7 @@ function ListItem(_ref) {
36
36
  backgroundColor: "surface"
37
37
  }, hoverProps, restProps), children, onRemoveRequest && /*#__PURE__*/_react["default"].createElement(_Button["default"], {
38
38
  icon: {
39
- name: 'remove-circle-filled'
39
+ name: 'general.minusCircle'
40
40
  },
41
41
  title: removeTitle,
42
42
  size: "sm",
@@ -23,5 +23,6 @@ function Heading(_ref) {
23
23
  }, restProps), children);
24
24
  }
25
25
 
26
+ Heading.displayName = 'Menu.Heading';
26
27
  var _default = Heading;
27
28
  exports["default"] = _default;