@elliemae/ds-mini-toolbar 2.3.0-alpha.9 → 2.3.0-next.3

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 (96) hide show
  1. package/cjs/Components/MiniToolbar.js +70 -0
  2. package/cjs/Components/ToolbarShortcut.js +72 -0
  3. package/cjs/Components/outOfTheBox/Button.js +29 -0
  4. package/cjs/Components/outOfTheBox/ComboBox.js +25 -0
  5. package/cjs/Components/outOfTheBox/IconItem.js +36 -0
  6. package/cjs/Components/outOfTheBox/SearchBox.js +55 -0
  7. package/cjs/Components/outOfTheBox/Separator.js +19 -0
  8. package/cjs/Components/outOfTheBox/index.js +26 -0
  9. package/cjs/hooks/useGenerateItems.js +134 -0
  10. package/cjs/index.d.js +2 -0
  11. package/cjs/index.js +12 -0
  12. package/cjs/propTypes.js +35 -0
  13. package/cjs/styles.js +29 -0
  14. package/esm/Components/MiniToolbar.js +60 -0
  15. package/esm/Components/ToolbarShortcut.js +63 -0
  16. package/esm/Components/outOfTheBox/Button.js +20 -0
  17. package/esm/Components/outOfTheBox/ComboBox.js +17 -0
  18. package/esm/Components/outOfTheBox/IconItem.js +28 -0
  19. package/esm/Components/outOfTheBox/SearchBox.js +45 -0
  20. package/esm/Components/outOfTheBox/Separator.js +11 -0
  21. package/esm/Components/outOfTheBox/index.js +13 -0
  22. package/esm/hooks/useGenerateItems.js +125 -0
  23. package/esm/index.d.js +1 -0
  24. package/esm/index.js +2 -0
  25. package/esm/propTypes.js +30 -0
  26. package/esm/styles.js +17 -0
  27. package/package.json +43 -45
  28. package/{dist/types → types}/Components/MiniToolbar.d.ts +0 -0
  29. package/{dist/types → types}/Components/ToolbarShortcut.d.ts +0 -0
  30. package/{dist/types → types}/Components/outOfTheBox/Button.d.ts +0 -0
  31. package/{dist/types → types}/Components/outOfTheBox/ComboBox.d.ts +0 -0
  32. package/{dist/types → types}/Components/outOfTheBox/IconItem.d.ts +0 -0
  33. package/{dist/types → types}/Components/outOfTheBox/SearchBox.d.ts +0 -0
  34. package/{dist/types → types}/Components/outOfTheBox/Separator.d.ts +0 -0
  35. package/{dist/types → types}/Components/outOfTheBox/index.d.ts +0 -0
  36. package/{dist/types → types}/hooks/useGenerateItems.d.ts +0 -0
  37. package/{dist/types → types}/index.d.d.ts +0 -0
  38. package/{dist/types → types}/index.d.ts +0 -0
  39. package/{dist/types → types}/propTypes.d.ts +0 -0
  40. package/{dist/types → types}/styles.d.ts +0 -0
  41. package/{dist/types → types}/tests/DSMiniToolbar.events.test.d.ts +0 -0
  42. package/{dist/types → types}/tests/DSMiniToolbar.keyboard.test.d.ts +0 -0
  43. package/{dist/types → types}/tests/DSMiniToolbar.test.d.ts +0 -0
  44. package/{dist/types → types}/tests/utils.test.d.ts +0 -0
  45. package/dist/cjs/Components/MiniToolbar.js +0 -81
  46. package/dist/cjs/Components/MiniToolbar.js.map +0 -7
  47. package/dist/cjs/Components/ToolbarShortcut.js +0 -72
  48. package/dist/cjs/Components/ToolbarShortcut.js.map +0 -7
  49. package/dist/cjs/Components/outOfTheBox/Button.js +0 -41
  50. package/dist/cjs/Components/outOfTheBox/Button.js.map +0 -7
  51. package/dist/cjs/Components/outOfTheBox/ComboBox.js +0 -39
  52. package/dist/cjs/Components/outOfTheBox/ComboBox.js.map +0 -7
  53. package/dist/cjs/Components/outOfTheBox/IconItem.js +0 -50
  54. package/dist/cjs/Components/outOfTheBox/IconItem.js.map +0 -7
  55. package/dist/cjs/Components/outOfTheBox/SearchBox.js +0 -58
  56. package/dist/cjs/Components/outOfTheBox/SearchBox.js.map +0 -7
  57. package/dist/cjs/Components/outOfTheBox/Separator.js +0 -39
  58. package/dist/cjs/Components/outOfTheBox/Separator.js.map +0 -7
  59. package/dist/cjs/Components/outOfTheBox/index.js +0 -53
  60. package/dist/cjs/Components/outOfTheBox/index.js.map +0 -7
  61. package/dist/cjs/hooks/useGenerateItems.js +0 -120
  62. package/dist/cjs/hooks/useGenerateItems.js.map +0 -7
  63. package/dist/cjs/index.d.js +0 -27
  64. package/dist/cjs/index.d.js.map +0 -7
  65. package/dist/cjs/index.js +0 -38
  66. package/dist/cjs/index.js.map +0 -7
  67. package/dist/cjs/propTypes.js +0 -69
  68. package/dist/cjs/propTypes.js.map +0 -7
  69. package/dist/cjs/styles.js +0 -62
  70. package/dist/cjs/styles.js.map +0 -7
  71. package/dist/esm/Components/MiniToolbar.js +0 -52
  72. package/dist/esm/Components/MiniToolbar.js.map +0 -7
  73. package/dist/esm/Components/ToolbarShortcut.js +0 -43
  74. package/dist/esm/Components/ToolbarShortcut.js.map +0 -7
  75. package/dist/esm/Components/outOfTheBox/Button.js +0 -12
  76. package/dist/esm/Components/outOfTheBox/Button.js.map +0 -7
  77. package/dist/esm/Components/outOfTheBox/ComboBox.js +0 -10
  78. package/dist/esm/Components/outOfTheBox/ComboBox.js.map +0 -7
  79. package/dist/esm/Components/outOfTheBox/IconItem.js +0 -21
  80. package/dist/esm/Components/outOfTheBox/IconItem.js.map +0 -7
  81. package/dist/esm/Components/outOfTheBox/SearchBox.js +0 -29
  82. package/dist/esm/Components/outOfTheBox/SearchBox.js.map +0 -7
  83. package/dist/esm/Components/outOfTheBox/Separator.js +0 -10
  84. package/dist/esm/Components/outOfTheBox/Separator.js.map +0 -7
  85. package/dist/esm/Components/outOfTheBox/index.js +0 -24
  86. package/dist/esm/Components/outOfTheBox/index.js.map +0 -7
  87. package/dist/esm/hooks/useGenerateItems.js +0 -102
  88. package/dist/esm/hooks/useGenerateItems.js.map +0 -7
  89. package/dist/esm/index.d.js +0 -2
  90. package/dist/esm/index.d.js.map +0 -7
  91. package/dist/esm/index.js +0 -9
  92. package/dist/esm/index.js.map +0 -7
  93. package/dist/esm/propTypes.js +0 -40
  94. package/dist/esm/propTypes.js.map +0 -7
  95. package/dist/esm/styles.js +0 -33
  96. package/dist/esm/styles.js.map +0 -7
@@ -0,0 +1,70 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _jsx = require('@babel/runtime/helpers/jsx');
6
+ require('core-js/modules/web.dom-collections.iterator.js');
7
+ var react = require('react');
8
+ var reactDesc = require('react-desc');
9
+ var DSDropdownMenu = require('@elliemae/ds-dropdownmenu');
10
+ var dsIcons = require('@elliemae/ds-icons');
11
+ var styles = require('../styles.js');
12
+ var propTypes = require('../propTypes.js');
13
+ var useGenerateItems = require('../hooks/useGenerateItems.js');
14
+
15
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
+
17
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
18
+ var DSDropdownMenu__default = /*#__PURE__*/_interopDefaultLegacy(DSDropdownMenu);
19
+
20
+ const Elipsis = /*#__PURE__*/_jsx__default["default"](dsIcons.MoreOptionsVert, {
21
+ color: ['brand-primary', '600'],
22
+ size: "m"
23
+ });
24
+
25
+ const MiniToolbar = _ref => {
26
+ let {
27
+ items,
28
+ overflowButtonProps
29
+ } = _ref;
30
+ const [shortcutItems, dropdownMenuItems] = useGenerateItems.useGenerateItems(items);
31
+ const [isDropdownMenuOpen, setIsDropdownMenuOpen] = react.useState(false);
32
+ const closeDropdownMenu = react.useCallback(() => setIsDropdownMenuOpen(false), []);
33
+ const openDropdownMenu = react.useCallback(() => setIsDropdownMenuOpen(true), []);
34
+ const openDropdownMenuKeyPress = react.useCallback(e => {
35
+ if (e.key === ' ') {
36
+ setIsDropdownMenuOpen(true);
37
+ }
38
+ }, []);
39
+ const {
40
+ ariaLabel,
41
+ style,
42
+ buttonType = 'secondary'
43
+ } = overflowButtonProps || {};
44
+ return /*#__PURE__*/_jsx__default["default"](styles.Container, {
45
+ role: "toolbar",
46
+ "data-testid": "ds-mini-toolbar"
47
+ }, void 0, shortcutItems, /*#__PURE__*/_jsx__default["default"](DSDropdownMenu__default["default"], {
48
+ "data-testid": "ds-mini-toolbar__dropdown-menu",
49
+ isOpen: isDropdownMenuOpen,
50
+ onSelectMenuItem: closeDropdownMenu,
51
+ onClickOutsideMenu: closeDropdownMenu,
52
+ options: dropdownMenuItems,
53
+ triggerComponent: /*#__PURE__*/_jsx__default["default"](styles.StyledButton, {
54
+ "aria-label": ariaLabel,
55
+ "data-testid": "ds-mini-toolbar__elipsis",
56
+ size: "m",
57
+ style: style,
58
+ buttonType: buttonType,
59
+ onClick: openDropdownMenu,
60
+ onKeyPress: openDropdownMenuKeyPress,
61
+ leftIcon: Elipsis
62
+ })
63
+ }));
64
+ };
65
+
66
+ const MiniToolbarWithSchema = reactDesc.describe(MiniToolbar);
67
+ MiniToolbarWithSchema.propTypes = propTypes.miniToolbarProps;
68
+
69
+ exports.MiniToolbar = MiniToolbar;
70
+ exports.MiniToolbarWithSchema = MiniToolbarWithSchema;
@@ -0,0 +1,72 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('core-js/modules/esnext.async-iterator.filter.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.filter.js');
8
+ require('core-js/modules/esnext.async-iterator.for-each.js');
9
+ require('core-js/modules/esnext.iterator.for-each.js');
10
+ var _jsx = require('@babel/runtime/helpers/jsx');
11
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
12
+ var react = require('react');
13
+ var styles = require('../styles.js');
14
+ var jsxRuntime = require('react/jsx-runtime');
15
+
16
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
17
+
18
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
19
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
20
+
21
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
22
+
23
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
24
+
25
+ const ToolbarShortcut = props => {
26
+ const {
27
+ Component,
28
+ shortcutProps,
29
+ sharedProps,
30
+ ContextualRegion,
31
+ contextualRegionProps
32
+ } = props;
33
+ const leftRef = react.useRef(null);
34
+ const rightRef = react.useRef(null);
35
+ const timerLeft = react.useRef(null);
36
+ const timerRight = react.useRef(null);
37
+ const {
38
+ position = 'left',
39
+ isOpen = false
40
+ } = contextualRegionProps || {};
41
+ const {
42
+ style
43
+ } = shortcutProps || {};
44
+
45
+ const mergedProps = _objectSpread(_objectSpread({}, sharedProps), shortcutProps);
46
+
47
+ react.useEffect(() => {
48
+ if (isOpen && leftRef.current) {
49
+ timerLeft.current = setTimeout(() => leftRef.current.focus(), 200);
50
+ }
51
+
52
+ if (isOpen && rightRef.current) {
53
+ timerRight.current = setTimeout(() => rightRef.current.focus(), 200);
54
+ }
55
+
56
+ return () => {
57
+ clearTimeout(timerLeft.current);
58
+ clearTimeout(timerRight.current);
59
+ };
60
+ }, [isOpen, leftRef, rightRef]);
61
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
62
+ children: [isOpen && position === 'left' && /*#__PURE__*/_jsx__default["default"](styles.Item, {}, void 0, /*#__PURE__*/jsxRuntime.jsx(ContextualRegion, _objectSpread({
63
+ innerRef: leftRef
64
+ }, contextualRegionProps))), Component && /*#__PURE__*/_jsx__default["default"](styles.Item, {
65
+ style: style
66
+ }, void 0, /*#__PURE__*/jsxRuntime.jsx(Component, _objectSpread({}, mergedProps))), isOpen && position === 'right' && /*#__PURE__*/_jsx__default["default"](styles.Item, {}, void 0, /*#__PURE__*/jsxRuntime.jsx(ContextualRegion, _objectSpread({
67
+ innerRef: rightRef
68
+ }, contextualRegionProps)))]
69
+ });
70
+ };
71
+
72
+ exports.ToolbarShortcut = ToolbarShortcut;
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('core-js/modules/esnext.async-iterator.filter.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.filter.js');
8
+ require('core-js/modules/esnext.async-iterator.for-each.js');
9
+ require('core-js/modules/esnext.iterator.for-each.js');
10
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
11
+ require('react');
12
+ var DSButton = require('@elliemae/ds-button');
13
+ var jsxRuntime = require('react/jsx-runtime');
14
+
15
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
+
17
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
18
+ var DSButton__default = /*#__PURE__*/_interopDefaultLegacy(DSButton);
19
+
20
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
21
+
22
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
23
+
24
+ const MiniToolbarButton = props => /*#__PURE__*/jsxRuntime.jsx(DSButton__default["default"], _objectSpread(_objectSpread({}, props), {}, {
25
+ "aria-label": props.ariaLabel,
26
+ "data-testid": "ds-mini-toolbar__shortcut"
27
+ }));
28
+
29
+ exports.MiniToolbarButton = MiniToolbarButton;
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('core-js/modules/esnext.async-iterator.filter.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.filter.js');
8
+ require('core-js/modules/esnext.async-iterator.for-each.js');
9
+ require('core-js/modules/esnext.iterator.for-each.js');
10
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
11
+ require('react');
12
+ var dsForm = require('@elliemae/ds-form');
13
+ var jsxRuntime = require('react/jsx-runtime');
14
+
15
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
+
17
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
18
+
19
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
20
+
21
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
22
+
23
+ const MiniToolbarComboBox = props => /*#__PURE__*/jsxRuntime.jsx(dsForm.DSComboBox2, _objectSpread({}, props));
24
+
25
+ exports.MiniToolbarComboBox = MiniToolbarComboBox;
@@ -0,0 +1,36 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _jsx = require('@babel/runtime/helpers/jsx');
6
+ require('react');
7
+ var styles = require('../../styles.js');
8
+
9
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
+
11
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
12
+
13
+ const MiniToolbarIcon = props => {
14
+ const {
15
+ Icon,
16
+ size,
17
+ color,
18
+ onClick,
19
+ ariaLabel,
20
+ style,
21
+ buttonType = 'secondary'
22
+ } = props;
23
+ return /*#__PURE__*/_jsx__default["default"](styles.StyledButton, {
24
+ "aria-label": ariaLabel,
25
+ buttonType: buttonType,
26
+ onClick: onClick,
27
+ style: style,
28
+ leftIcon: /*#__PURE__*/_jsx__default["default"](Icon, {
29
+ size: size,
30
+ color: color
31
+ }),
32
+ "data-testid": "ds-mini-toolbar__shortcut"
33
+ });
34
+ };
35
+
36
+ exports.MiniToolbarIcon = MiniToolbarIcon;
@@ -0,0 +1,55 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('core-js/modules/esnext.async-iterator.filter.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.filter.js');
8
+ require('core-js/modules/esnext.async-iterator.for-each.js');
9
+ require('core-js/modules/esnext.iterator.for-each.js');
10
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
11
+ var _jsx = require('@babel/runtime/helpers/jsx');
12
+ require('react');
13
+ var dsIcons = require('@elliemae/ds-icons');
14
+ var dsForm = require('@elliemae/ds-form');
15
+ var styles = require('../../styles.js');
16
+ var jsxRuntime = require('react/jsx-runtime');
17
+
18
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
19
+
20
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
21
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
22
+
23
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
24
+
25
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
26
+
27
+ const MiniToolbarSearchButton = props => {
28
+ const {
29
+ size,
30
+ color,
31
+ onClick,
32
+ ariaLabel,
33
+ style,
34
+ buttonType = 'secondary'
35
+ } = props;
36
+ return /*#__PURE__*/_jsx__default["default"](styles.StyledButton, {
37
+ "aria-label": ariaLabel,
38
+ buttonType: buttonType,
39
+ onClick: onClick,
40
+ style: style,
41
+ leftIcon: /*#__PURE__*/_jsx__default["default"](dsIcons.Search, {
42
+ size: size,
43
+ color: color
44
+ }),
45
+ "data-testid": "ds-mini-toolbar__shortcut"
46
+ });
47
+ };
48
+
49
+ const MiniToolbarSearchBox = props => /*#__PURE__*/jsxRuntime.jsx(dsForm.DSSearchBox, _objectSpread({
50
+ clearable: true,
51
+ showIcon: false
52
+ }, props));
53
+
54
+ exports.MiniToolbarSearchBox = MiniToolbarSearchBox;
55
+ exports.MiniToolbarSearchButton = MiniToolbarSearchButton;
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _jsx = require('@babel/runtime/helpers/jsx');
6
+ require('react');
7
+ var styles = require('../../styles.js');
8
+
9
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
+
11
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
12
+
13
+ var _Separator;
14
+
15
+ const MiniToolbarSeparator = () => _Separator || (_Separator = /*#__PURE__*/_jsx__default["default"](styles.Separator, {
16
+ "data-testid": "ds-mini-toolbar__separator"
17
+ }));
18
+
19
+ exports.MiniToolbarSeparator = MiniToolbarSeparator;
@@ -0,0 +1,26 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var Button = require('./Button.js');
6
+ var IconItem = require('./IconItem.js');
7
+ var SearchBox = require('./SearchBox.js');
8
+ var Separator = require('./Separator.js');
9
+ var ComboBox = require('./ComboBox.js');
10
+
11
+ const ICON_ITEM = 'ds-icon-item';
12
+ const SEPARATOR = 'ds-separator';
13
+ const BUTTON = 'ds-button';
14
+ const SEARCH_BOX = 'ds-search-box';
15
+ const COMBO_BOX = 'ds-combo-box';
16
+
17
+ exports.MiniToolbarButton = Button.MiniToolbarButton;
18
+ exports.MiniToolbarIcon = IconItem.MiniToolbarIcon;
19
+ exports.MiniToolbarSearchBox = SearchBox.MiniToolbarSearchBox;
20
+ exports.MiniToolbarSeparator = Separator.MiniToolbarSeparator;
21
+ exports.MiniToolbarComboBox = ComboBox.MiniToolbarComboBox;
22
+ exports.BUTTON = BUTTON;
23
+ exports.COMBO_BOX = COMBO_BOX;
24
+ exports.ICON_ITEM = ICON_ITEM;
25
+ exports.SEARCH_BOX = SEARCH_BOX;
26
+ exports.SEPARATOR = SEPARATOR;
@@ -0,0 +1,134 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
+ var _jsx = require('@babel/runtime/helpers/jsx');
7
+ require('core-js/modules/esnext.async-iterator.map.js');
8
+ require('core-js/modules/esnext.iterator.map.js');
9
+ require('core-js/modules/esnext.async-iterator.filter.js');
10
+ require('core-js/modules/esnext.iterator.constructor.js');
11
+ require('core-js/modules/esnext.iterator.filter.js');
12
+ require('core-js/modules/esnext.async-iterator.for-each.js');
13
+ require('core-js/modules/esnext.iterator.for-each.js');
14
+ var react = require('react');
15
+ var uid = require('uid');
16
+ var dsIcons = require('@elliemae/ds-icons');
17
+ var index = require('../Components/outOfTheBox/index.js');
18
+ var ToolbarShortcut = require('../Components/ToolbarShortcut.js');
19
+ var SearchBox = require('../Components/outOfTheBox/SearchBox.js');
20
+ var Separator = require('../Components/outOfTheBox/Separator.js');
21
+ var Button = require('../Components/outOfTheBox/Button.js');
22
+ var IconItem = require('../Components/outOfTheBox/IconItem.js');
23
+ var ComboBox = require('../Components/outOfTheBox/ComboBox.js');
24
+
25
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
26
+
27
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
28
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
29
+
30
+ var _MiniToolbarSeparator;
31
+
32
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
33
+
34
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
35
+
36
+ const useGenerateItems = items => {
37
+ const instanceUID = react.useMemo(() => uid.uid(6), []);
38
+ const shortcutItems = react.useMemo(() => items.filter(item => item.hasShortcut || item.component === index.SEARCH_BOX || item.contextualRegion).map((item, index$1) => {
39
+ const {
40
+ component,
41
+ shortcutComponent,
42
+ shortcutProps,
43
+ sharedProps,
44
+ contextualRegion,
45
+ contextualRegionProps
46
+ } = item;
47
+ let Component;
48
+ let ContextualRegion;
49
+ if (component === index.SEPARATOR) return _MiniToolbarSeparator || (_MiniToolbarSeparator = /*#__PURE__*/_jsx__default["default"](Separator.MiniToolbarSeparator, {}));
50
+ if (component === index.BUTTON) Component = Button.MiniToolbarButton;else if (component === index.ICON_ITEM) Component = IconItem.MiniToolbarIcon;else if (component === index.COMBO_BOX) Component = ComboBox.MiniToolbarComboBox;else if (component === index.SEARCH_BOX) {
51
+ if (item.hasShortcut) {
52
+ Component = SearchBox.MiniToolbarSearchButton;
53
+ }
54
+
55
+ ContextualRegion = SearchBox.MiniToolbarSearchBox;
56
+ }
57
+
58
+ if (!ContextualRegion) {
59
+ ContextualRegion = contextualRegion;
60
+ }
61
+
62
+ if (!Component) {
63
+ Component = shortcutComponent;
64
+ }
65
+
66
+ return /*#__PURE__*/_jsx__default["default"](ToolbarShortcut.ToolbarShortcut, {
67
+ Component: Component,
68
+ shortcutProps: shortcutProps,
69
+ sharedProps: sharedProps,
70
+ ContextualRegion: ContextualRegion,
71
+ contextualRegionProps: contextualRegionProps
72
+ }, "".concat(instanceUID, "-shortcut-").concat(index$1));
73
+ }), [instanceUID, items]);
74
+ const dropdownMenuItems = react.useMemo(() => items.map((item, index$1) => {
75
+ const {
76
+ component,
77
+ sharedProps,
78
+ dropdownComponentProps
79
+ } = item;
80
+ const dropdownItem = {};
81
+
82
+ const {
83
+ Icon,
84
+ color,
85
+ label,
86
+ onClick
87
+ } = _objectSpread(_objectSpread({}, sharedProps), dropdownComponentProps);
88
+
89
+ if (component === index.SEPARATOR) dropdownItem.type = 'separator';else {
90
+ dropdownItem.id = "".concat(instanceUID, "-dropdown-").concat(index$1);
91
+
92
+ dropdownItem.onClick = () => onClick(item);
93
+
94
+ dropdownItem.label = label;
95
+
96
+ dropdownItem.onKeyDown = e => {
97
+ if (e.key === 'Enter' || e.key === ' ') {
98
+ onClick(item);
99
+ }
100
+ };
101
+ }
102
+
103
+ if (component === index.ICON_ITEM) {
104
+ dropdownItem.leftAddon = /*#__PURE__*/_jsx__default["default"](Icon, {
105
+ color: color
106
+ });
107
+ } else if (component === index.SEARCH_BOX) {
108
+ dropdownItem.leftAddon = /*#__PURE__*/_jsx__default["default"](dsIcons.Search, {
109
+ color: color
110
+ });
111
+ } else if (component === index.COMBO_BOX) {
112
+ dropdownItem.type = 'subMenu';
113
+ dropdownItem.label = label;
114
+ dropdownItem.subItems = sharedProps.options.map((option, index) => {
115
+ option.id = "".concat(instanceUID, "-option-").concat(index);
116
+
117
+ option.onClick = () => dropdownComponentProps.onSelectMenuItem(option);
118
+
119
+ option.onKeyDown = e => {
120
+ if (e.key === ' ' || e.key === 'Enter') {
121
+ dropdownComponentProps.onSelectMenuItem(option);
122
+ }
123
+ };
124
+
125
+ return option;
126
+ });
127
+ }
128
+
129
+ return dropdownItem;
130
+ }), [instanceUID, items]);
131
+ return [shortcutItems, dropdownMenuItems];
132
+ };
133
+
134
+ exports.useGenerateItems = useGenerateItems;
package/cjs/index.d.js ADDED
@@ -0,0 +1,2 @@
1
+ 'use strict';
2
+
package/cjs/index.js ADDED
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var MiniToolbar = require('./Components/MiniToolbar.js');
6
+ var propTypes = require('./propTypes.js');
7
+
8
+
9
+
10
+ exports.MiniToolbar = MiniToolbar.MiniToolbar;
11
+ exports.MiniToolbarWithSchema = MiniToolbar.MiniToolbarWithSchema;
12
+ exports.ToolbarItemWithSchema = propTypes.ToolbarItemWithSchema;
@@ -0,0 +1,35 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var reactDesc = require('react-desc');
6
+
7
+ const outOfTheBoxType = reactDesc.PropTypes.oneOf(['ds-button', 'ds-icon-item', 'ds-separator', 'ds-search-box', 'ds-combo-box']).description('out-of-the-box toolbar components');
8
+ const toolbarItemProps = {
9
+ component: reactDesc.PropTypes.oneOfType([outOfTheBoxType, reactDesc.PropTypes.element]).description('Main component').isRequired,
10
+ hasShortcut: reactDesc.PropTypes.bool.description('Whether to include the component as a shortcut in the toolbar or not').defaultValue(false),
11
+ shortcutComponent: reactDesc.PropTypes.element.description('Component to render as a shortcut in the toolbar'),
12
+ shortcutProps: reactDesc.PropTypes.object.description('Shortcut component props'),
13
+ dropdownComponentProps: reactDesc.PropTypes.object.description('Dropdown component props'),
14
+ sharedProps: reactDesc.PropTypes.object.description('Props shared by shortcut component and dropdown component'),
15
+ contextualRegion: reactDesc.PropTypes.element.description('Component that can be rendered as an adjacent region to the shortcut component'),
16
+ contextualRegionProps: reactDesc.PropTypes.object.description('Contextual region component props')
17
+ };
18
+ const itemPropTypes = reactDesc.PropTypes.shape(toolbarItemProps).description('Items props');
19
+ const overflowButtonPropTypes = {
20
+ ariaLabel: reactDesc.PropTypes.string,
21
+ buttonType: reactDesc.PropTypes.oneOf(['secondary', 'text']),
22
+ style: reactDesc.PropTypes.object
23
+ };
24
+ const miniToolbarProps = {
25
+ items: reactDesc.PropTypes.arrayOf(itemPropTypes).description('Array of items').isRequired,
26
+ overflowButtonProps: reactDesc.PropTypes.shape(overflowButtonPropTypes).description('Overflow button props')
27
+ };
28
+
29
+ const ToolbarItem = () => null;
30
+
31
+ const ToolbarItemWithSchema = reactDesc.describe(ToolbarItem);
32
+ ToolbarItemWithSchema.propTypes = toolbarItemProps;
33
+
34
+ exports.ToolbarItemWithSchema = ToolbarItemWithSchema;
35
+ exports.miniToolbarProps = miniToolbarProps;
package/cjs/styles.js ADDED
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var styled = require('styled-components');
6
+ var DSButton = require('@elliemae/ds-button');
7
+
8
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
9
+
10
+ var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
11
+ var DSButton__default = /*#__PURE__*/_interopDefaultLegacy(DSButton);
12
+
13
+ const Container = /*#__PURE__*/styled__default["default"].ul.withConfig({
14
+ componentId: "sc-18ftw1x-0"
15
+ })(["display:flex;align-items:center;justify-content:center;width:fit-content;padding:0 6px;"]);
16
+ const Separator = /*#__PURE__*/styled__default["default"].span.withConfig({
17
+ componentId: "sc-18ftw1x-1"
18
+ })(["height:24px;width:1px;margin:6px;border-left:1px solid #bbb;"]);
19
+ const Item = /*#__PURE__*/styled__default["default"].li.withConfig({
20
+ componentId: "sc-18ftw1x-2"
21
+ })(["display:flex;margin:6px;cursor:pointer;"]);
22
+ const StyledButton = /*#__PURE__*/styled__default["default"](DSButton__default["default"]).withConfig({
23
+ componentId: "sc-18ftw1x-3"
24
+ })(["&:not(:focus){border-color:transparent;}"]);
25
+
26
+ exports.Container = Container;
27
+ exports.Item = Item;
28
+ exports.Separator = Separator;
29
+ exports.StyledButton = StyledButton;
@@ -0,0 +1,60 @@
1
+ import _jsx from '@babel/runtime/helpers/esm/jsx';
2
+ import 'core-js/modules/web.dom-collections.iterator.js';
3
+ import { useState, useCallback } from 'react';
4
+ import { describe } from 'react-desc';
5
+ import DSDropdownMenu from '@elliemae/ds-dropdownmenu';
6
+ import { MoreOptionsVert } from '@elliemae/ds-icons';
7
+ import { Container, StyledButton } from '../styles.js';
8
+ import { miniToolbarProps } from '../propTypes.js';
9
+ import { useGenerateItems } from '../hooks/useGenerateItems.js';
10
+
11
+ const Elipsis = /*#__PURE__*/_jsx(MoreOptionsVert, {
12
+ color: ['brand-primary', '600'],
13
+ size: "m"
14
+ });
15
+
16
+ const MiniToolbar = _ref => {
17
+ let {
18
+ items,
19
+ overflowButtonProps
20
+ } = _ref;
21
+ const [shortcutItems, dropdownMenuItems] = useGenerateItems(items);
22
+ const [isDropdownMenuOpen, setIsDropdownMenuOpen] = useState(false);
23
+ const closeDropdownMenu = useCallback(() => setIsDropdownMenuOpen(false), []);
24
+ const openDropdownMenu = useCallback(() => setIsDropdownMenuOpen(true), []);
25
+ const openDropdownMenuKeyPress = useCallback(e => {
26
+ if (e.key === ' ') {
27
+ setIsDropdownMenuOpen(true);
28
+ }
29
+ }, []);
30
+ const {
31
+ ariaLabel,
32
+ style,
33
+ buttonType = 'secondary'
34
+ } = overflowButtonProps || {};
35
+ return /*#__PURE__*/_jsx(Container, {
36
+ role: "toolbar",
37
+ "data-testid": "ds-mini-toolbar"
38
+ }, void 0, shortcutItems, /*#__PURE__*/_jsx(DSDropdownMenu, {
39
+ "data-testid": "ds-mini-toolbar__dropdown-menu",
40
+ isOpen: isDropdownMenuOpen,
41
+ onSelectMenuItem: closeDropdownMenu,
42
+ onClickOutsideMenu: closeDropdownMenu,
43
+ options: dropdownMenuItems,
44
+ triggerComponent: /*#__PURE__*/_jsx(StyledButton, {
45
+ "aria-label": ariaLabel,
46
+ "data-testid": "ds-mini-toolbar__elipsis",
47
+ size: "m",
48
+ style: style,
49
+ buttonType: buttonType,
50
+ onClick: openDropdownMenu,
51
+ onKeyPress: openDropdownMenuKeyPress,
52
+ leftIcon: Elipsis
53
+ })
54
+ }));
55
+ };
56
+
57
+ const MiniToolbarWithSchema = describe(MiniToolbar);
58
+ MiniToolbarWithSchema.propTypes = miniToolbarProps;
59
+
60
+ export { MiniToolbar, MiniToolbarWithSchema };