@elliemae/ds-toolbar 2.0.0-alpha.1 → 2.0.0-alpha.13

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 (46) hide show
  1. package/cjs/DSToolbarItemV2.js +50 -0
  2. package/cjs/DSToolbarSeparatorV2.js +18 -0
  3. package/cjs/DSToolbarV2.js +80 -0
  4. package/cjs/DSToolbarV2Context.js +13 -0
  5. package/cjs/{DSToolbar.js → deprecated/DSToolbar.js} +25 -17
  6. package/cjs/{ToolbarDivider.js → deprecated/ToolbarDivider.js} +0 -0
  7. package/cjs/{ToolbarGroup.js → deprecated/ToolbarGroup.js} +22 -16
  8. package/cjs/{ToolbarItem.js → deprecated/ToolbarItem.js} +12 -6
  9. package/cjs/{decorateToolbarChildren.js → deprecated/decorateToolbarChildren.js} +14 -4
  10. package/cjs/deprecated/index.js +17 -0
  11. package/cjs/index.js +12 -5
  12. package/cjs/props.js +14 -0
  13. package/cjs/styled.js +25 -0
  14. package/cjs/useToolbarItemHandlers.js +39 -0
  15. package/esm/DSToolbarItemV2.js +42 -0
  16. package/esm/DSToolbarSeparatorV2.js +10 -0
  17. package/esm/DSToolbarV2.js +69 -0
  18. package/esm/DSToolbarV2Context.js +9 -0
  19. package/esm/{DSToolbar.js → deprecated/DSToolbar.js} +21 -13
  20. package/esm/{ToolbarDivider.js → deprecated/ToolbarDivider.js} +0 -0
  21. package/esm/{ToolbarGroup.js → deprecated/ToolbarGroup.js} +22 -16
  22. package/esm/{ToolbarItem.js → deprecated/ToolbarItem.js} +8 -2
  23. package/esm/{decorateToolbarChildren.js → deprecated/decorateToolbarChildren.js} +13 -3
  24. package/esm/deprecated/index.js +4 -0
  25. package/esm/index.js +7 -4
  26. package/esm/props.js +10 -0
  27. package/esm/styled.js +14 -0
  28. package/esm/useToolbarItemHandlers.js +35 -0
  29. package/package.json +64 -24
  30. package/types/DSToolbarItemV2.d.ts +8 -0
  31. package/types/DSToolbarSeparatorV2.d.ts +2 -0
  32. package/types/DSToolbarV2.d.ts +10 -0
  33. package/types/DSToolbarV2Context.d.ts +8 -0
  34. package/types/deprecated/DSToolbar.d.ts +60 -0
  35. package/types/{ToolbarDivider.d.ts → deprecated/ToolbarDivider.d.ts} +0 -0
  36. package/types/{ToolbarGroup.d.ts → deprecated/ToolbarGroup.d.ts} +0 -0
  37. package/types/{ToolbarItem.d.ts → deprecated/ToolbarItem.d.ts} +0 -0
  38. package/types/{decorateToolbarChildren.d.ts → deprecated/decorateToolbarChildren.d.ts} +0 -0
  39. package/types/deprecated/index.d.ts +2 -0
  40. package/types/index.d.ts +5 -2
  41. package/types/props.d.ts +18 -0
  42. package/types/styled.d.ts +4 -0
  43. package/types/useToolbarItemHandlers.d.ts +3 -0
  44. package/cjs/package.json +0 -7
  45. package/esm/package.json +0 -7
  46. package/types/DSToolbar.d.ts +0 -28
@@ -0,0 +1,50 @@
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 React = require('react');
12
+ var uid = require('uid');
13
+ var DSToolbarV2Context = require('./DSToolbarV2Context.js');
14
+ var styled = require('./styled.js');
15
+ var useToolbarItemHandlers = require('./useToolbarItemHandlers.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
+
22
+ 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; }
23
+
24
+ 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__default["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; }
25
+ const DSToolbarItemV2 = _ref => {
26
+ let {
27
+ render
28
+ } = _ref;
29
+ const {
30
+ registerReference
31
+ } = React.useContext(DSToolbarV2Context.DSToolbarV2Context);
32
+ const ref = React.useRef(null);
33
+ const toolbarItemId = React.useMemo(() => {
34
+ const id = "ds-toolbar-item-".concat(uid.uid());
35
+ registerReference(id, ref);
36
+ return id;
37
+ }, [registerReference, ref]);
38
+ const handlers = useToolbarItemHandlers.useToolbarItemHandlers(toolbarItemId);
39
+ return /*#__PURE__*/jsxRuntime.jsx(styled.StyledToolbarItem, _objectSpread(_objectSpread({
40
+ id: toolbarItemId,
41
+ "data-testid": "ds-toolbar-item",
42
+ className: "ds-toolbar-item"
43
+ }, handlers), {}, {
44
+ children: render({
45
+ innerRef: ref
46
+ })
47
+ }));
48
+ };
49
+
50
+ exports.DSToolbarItemV2 = DSToolbarItemV2;
@@ -0,0 +1,18 @@
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 styled = require('./styled.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 _StyledSeparator;
14
+ const DSToolbarSeparatorV2 = () => _StyledSeparator || (_StyledSeparator = /*#__PURE__*/_jsx__default["default"](styled.StyledSeparator, {
15
+ className: "ds-toolbar-separator"
16
+ }));
17
+
18
+ exports.DSToolbarSeparatorV2 = DSToolbarSeparatorV2;
@@ -0,0 +1,80 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _jsx = require('@babel/runtime/helpers/jsx');
6
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
+ require('core-js/modules/web.dom-collections.iterator.js');
8
+ require('core-js/modules/esnext.async-iterator.map.js');
9
+ require('core-js/modules/esnext.iterator.map.js');
10
+ require('core-js/modules/esnext.async-iterator.filter.js');
11
+ require('core-js/modules/esnext.iterator.constructor.js');
12
+ require('core-js/modules/esnext.iterator.filter.js');
13
+ require('core-js/modules/esnext.async-iterator.for-each.js');
14
+ require('core-js/modules/esnext.iterator.for-each.js');
15
+ var React = require('react');
16
+ var dsPropsHelpers = require('@elliemae/ds-props-helpers');
17
+ var reactDesc = require('react-desc');
18
+ var uid = require('uid');
19
+ var DSToolbarV2Context = require('./DSToolbarV2Context.js');
20
+ var props = require('./props.js');
21
+ var styled = require('./styled.js');
22
+ var jsxRuntime = require('react/jsx-runtime');
23
+
24
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
25
+
26
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
27
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
28
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
29
+
30
+ 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; }
31
+
32
+ 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__default["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; }
33
+
34
+ const DSToolbarV2 = props$1 => {
35
+ const {
36
+ alignment,
37
+ withDepth,
38
+ compact,
39
+ innerRef,
40
+ children
41
+ } = props$1;
42
+ dsPropsHelpers.useValidateTypescriptPropTypes(props$1, props.DSToolbarV2Schema);
43
+ const toolbarUid = React.useMemo(() => "ds-toolbar-".concat(uid.uid()), []);
44
+ const [itemReferences, setItemReferences] = React.useState({});
45
+ const registerReference = React.useCallback((itemId, ref) => {
46
+ setItemReferences(prevItemReferences => _objectSpread(_objectSpread({}, prevItemReferences), {}, {
47
+ [itemId]: ref
48
+ }));
49
+ }, [setItemReferences]);
50
+ return /*#__PURE__*/_jsx__default["default"](DSToolbarV2Context.DSToolbarV2Context.Provider, {
51
+ value: {
52
+ toolbarUid,
53
+ registerReference,
54
+ itemReferences
55
+ }
56
+ }, void 0, /*#__PURE__*/jsxRuntime.jsx(styled.StyledToolbarWrapper, {
57
+ role: "toolbar",
58
+ "data-testid": "ds-toolbar-wrapper",
59
+ id: toolbarUid,
60
+ alignItems: "center",
61
+ justifyContent: alignment === 'left' ? 'flex-start' : 'flex-end',
62
+ withDepth: withDepth,
63
+ cols: React__default["default"].Children.map(children, () => ['auto']),
64
+ gutter: "xxs2",
65
+ compact: compact,
66
+ ref: innerRef,
67
+ children: children
68
+ }));
69
+ };
70
+
71
+ DSToolbarV2.defaultProps = {
72
+ alignment: 'right',
73
+ withDepth: true,
74
+ compact: false
75
+ };
76
+ const DSToolbarV2WithSchema = reactDesc.describe(DSToolbarV2).description('Toolbar');
77
+ DSToolbarV2WithSchema.propTypes = props.DSToolbarV2Schema;
78
+
79
+ exports.DSToolbarV2 = DSToolbarV2;
80
+ exports.DSToolbarV2WithSchema = DSToolbarV2WithSchema;
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+
7
+ const DSToolbarV2Context = /*#__PURE__*/React.createContext({
8
+ registerReference: () => null,
9
+ itemReferences: {},
10
+ toolbarUid: ''
11
+ });
12
+
13
+ exports.DSToolbarV2Context = DSToolbarV2Context;
@@ -2,6 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
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');
5
10
  var _jsx = require('@babel/runtime/helpers/jsx');
6
11
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
12
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
@@ -9,7 +14,7 @@ var React = require('react');
9
14
  var reactDesc = require('react-desc');
10
15
  var dsClassnames = require('@elliemae/ds-classnames');
11
16
  var FocusGroupProvider = require('@elliemae/ds-shared/FocusGroup/FocusGroupManager');
12
- var system = require('@elliemae/ds-utilities/system');
17
+ var dsUtilities = require('@elliemae/ds-utilities');
13
18
  var decorateToolbarChildren = require('./decorateToolbarChildren.js');
14
19
  var ToolbarItem = require('./ToolbarItem.js');
15
20
  var ToolbarGroup = require('./ToolbarGroup.js');
@@ -27,19 +32,22 @@ const _excluded = ["containerProps", "innerRef", "withDepth", "alignment", "auto
27
32
 
28
33
  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; }
29
34
 
30
- 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__default['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; }
35
+ 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__default["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; }
31
36
  const blockName = 'toolbar';
32
- const ToolbarContainer = dsClassnames.aggregatedClasses('div')(blockName, null, ({
33
- withDepth,
34
- alignment,
35
- size
36
- }) => ({
37
- 'without-depth': !withDepth,
38
- [alignment]: !!alignment,
39
- [size]: size
40
- }));
37
+ const ToolbarContainer = dsClassnames.aggregatedClasses('div')(blockName, null, _ref => {
38
+ let {
39
+ withDepth,
40
+ alignment,
41
+ size
42
+ } = _ref;
43
+ return {
44
+ 'without-depth': !withDepth,
45
+ [alignment]: !!alignment,
46
+ [size]: size
47
+ };
48
+ });
41
49
 
42
- const DSToolbar = _ref => {
50
+ const DSToolbar = _ref2 => {
43
51
  let {
44
52
  containerProps = {},
45
53
  innerRef,
@@ -49,11 +57,11 @@ const DSToolbar = _ref => {
49
57
  autoFocusOnMount = true,
50
58
  children = [],
51
59
  size = 'normal'
52
- } = _ref,
53
- otherProps = _objectWithoutProperties__default['default'](_ref, _excluded);
60
+ } = _ref2,
61
+ otherProps = _objectWithoutProperties__default["default"](_ref2, _excluded);
54
62
 
55
63
  const containerRef = React.useRef(null);
56
- return /*#__PURE__*/_jsx__default['default'](FocusGroupProvider__default['default'], {
64
+ return /*#__PURE__*/_jsx__default["default"](FocusGroupProvider__default["default"], {
57
65
  autoFocusOnMount: autoFocusOnMount,
58
66
  getContainer: () => containerRef.current,
59
67
  keyBindings: {
@@ -66,7 +74,7 @@ const DSToolbar = _ref => {
66
74
  alignment,
67
75
  size
68
76
  },
69
- innerRef: system.mergeRefs(innerRef, containerRef),
77
+ innerRef: dsUtilities.mergeRefs(innerRef, containerRef),
70
78
  children: decorateToolbarChildren(children)
71
79
  })));
72
80
  };
@@ -88,4 +96,4 @@ exports.ToolbarGroup = ToolbarGroup;
88
96
  exports.ToolbarDivider = ToolbarDivider;
89
97
  exports.DSToolbar = DSToolbar;
90
98
  exports.ToolbarWithSchema = ToolbarWithSchema;
91
- exports['default'] = DSToolbar;
99
+ exports["default"] = DSToolbar;
@@ -10,22 +10,28 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
10
10
  var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
11
11
 
12
12
  const blockName = 'toolbar-group';
13
- const ToolbarGroupContainer = dsClassnames.aggregatedClasses('div')(blockName, null, ({
14
- space
15
- }) => ({
16
- [`space-${space}`]: !!space
17
- }));
18
-
19
- const ToolbarGroup = ({
20
- children,
21
- size,
22
- space = 0
23
- }) => /*#__PURE__*/_jsx__default['default'](ToolbarGroupContainer, {
24
- classProps: {
13
+ const ToolbarGroupContainer = dsClassnames.aggregatedClasses('div')(blockName, null, _ref => {
14
+ let {
25
15
  space
26
- }
27
- }, void 0, decorateToolbarChildren(children, {
28
- size
29
- }));
16
+ } = _ref;
17
+ return {
18
+ ["space-".concat(space)]: !!space
19
+ };
20
+ });
21
+
22
+ const ToolbarGroup = _ref2 => {
23
+ let {
24
+ children,
25
+ size,
26
+ space = 0
27
+ } = _ref2;
28
+ return /*#__PURE__*/_jsx__default["default"](ToolbarGroupContainer, {
29
+ classProps: {
30
+ space
31
+ }
32
+ }, void 0, decorateToolbarChildren(children, {
33
+ size
34
+ }));
35
+ };
30
36
 
31
37
  module.exports = ToolbarGroup;
@@ -2,10 +2,16 @@
2
2
 
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
4
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
5
+ require('core-js/modules/web.dom-collections.iterator.js');
6
+ require('core-js/modules/esnext.async-iterator.filter.js');
7
+ require('core-js/modules/esnext.iterator.constructor.js');
8
+ require('core-js/modules/esnext.iterator.filter.js');
9
+ require('core-js/modules/esnext.async-iterator.for-each.js');
10
+ require('core-js/modules/esnext.iterator.for-each.js');
5
11
  var React = require('react');
6
12
  var FocusGroup = require('@elliemae/ds-shared/FocusGroup');
7
13
  var DSButton = require('@elliemae/ds-button');
8
- var positions = require('@elliemae/ds-popper/positions');
14
+ var dsPopper = require('@elliemae/ds-popper');
9
15
  var jsxRuntime = require('react/jsx-runtime');
10
16
 
11
17
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -19,7 +25,7 @@ const _excluded = ["icon", "labelText", "menu"];
19
25
 
20
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; }
21
27
 
22
- 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__default['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; }
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) { _defineProperty__default["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; }
23
29
 
24
30
  const ToolbarItem = _ref => {
25
31
  let {
@@ -27,12 +33,12 @@ const ToolbarItem = _ref => {
27
33
  labelText,
28
34
  menu = undefined
29
35
  } = _ref,
30
- otherProps = _objectWithoutProperties__default['default'](_ref, _excluded);
36
+ otherProps = _objectWithoutProperties__default["default"](_ref, _excluded);
31
37
 
32
38
  const [ref, setRef] = React.useState(null);
33
39
  FocusGroup.useFocusGroupWithState(ref);
34
40
 
35
- const btn = /*#__PURE__*/jsxRuntime.jsx(DSButton__default['default'], _objectSpread(_objectSpread({}, otherProps), {}, {
41
+ const btn = /*#__PURE__*/jsxRuntime.jsx(DSButton__default["default"], _objectSpread(_objectSpread({}, otherProps), {}, {
36
42
  buttonType: "text",
37
43
  icon: icon,
38
44
  innerRef: r => setRef(r),
@@ -40,8 +46,8 @@ const ToolbarItem = _ref => {
40
46
  }));
41
47
 
42
48
  if (menu) {
43
- return /*#__PURE__*/React__default['default'].cloneElement(menu, _objectSpread(_objectSpread({}, menu.props), {}, {
44
- placement: positions.Position.BOTTOM_END,
49
+ return /*#__PURE__*/React__default["default"].cloneElement(menu, _objectSpread(_objectSpread({}, menu.props), {}, {
50
+ placement: dsPopper.PopperPositions.BOTTOM_END,
45
51
  triggerComponent: btn
46
52
  }));
47
53
  }
@@ -1,6 +1,13 @@
1
1
  'use strict';
2
2
 
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ require('core-js/modules/esnext.async-iterator.map.js');
5
+ require('core-js/modules/esnext.iterator.map.js');
6
+ require('core-js/modules/esnext.async-iterator.filter.js');
7
+ require('core-js/modules/esnext.iterator.constructor.js');
8
+ require('core-js/modules/esnext.iterator.filter.js');
9
+ require('core-js/modules/esnext.async-iterator.for-each.js');
10
+ require('core-js/modules/esnext.iterator.for-each.js');
4
11
  var React = require('react');
5
12
 
6
13
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -10,9 +17,12 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
10
17
 
11
18
  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; }
12
19
 
13
- 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__default['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; }
14
- var decorateToolbarChildren = ((children, extraProps = {}) => React__default['default'].Children.map(children, component => component ? /*#__PURE__*/React.cloneElement(component, _objectSpread(_objectSpread(_objectSpread({}, extraProps), component.props), {}, {
15
- className: `${component.props.className} toolbar-item`
16
- })) : component, null));
20
+ 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__default["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; }
21
+ var decorateToolbarChildren = (function (children) {
22
+ let extraProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
23
+ return React__default["default"].Children.map(children, component => component ? /*#__PURE__*/React.cloneElement(component, _objectSpread(_objectSpread(_objectSpread({}, extraProps), component.props), {}, {
24
+ className: "".concat(component.props.className, " toolbar-item")
25
+ })) : component, null);
26
+ });
17
27
 
18
28
  module.exports = decorateToolbarChildren;
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var DSToolbar = require('./DSToolbar.js');
6
+ var ToolbarItem = require('./ToolbarItem.js');
7
+ var ToolbarGroup = require('./ToolbarGroup.js');
8
+ var ToolbarDivider = require('./ToolbarDivider.js');
9
+
10
+
11
+
12
+ exports.DSToolbar = DSToolbar.DSToolbar;
13
+ exports.ToolbarWithSchema = DSToolbar.ToolbarWithSchema;
14
+ exports["default"] = DSToolbar.DSToolbar;
15
+ exports.ToolbarItem = ToolbarItem;
16
+ exports.ToolbarGroup = ToolbarGroup;
17
+ exports.ToolbarDivider = ToolbarDivider;
package/cjs/index.js CHANGED
@@ -2,16 +2,23 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var DSToolbar = require('./DSToolbar.js');
6
- var ToolbarItem = require('./ToolbarItem.js');
7
- var ToolbarGroup = require('./ToolbarGroup.js');
8
- var ToolbarDivider = require('./ToolbarDivider.js');
5
+ var DSToolbar = require('./deprecated/DSToolbar.js');
6
+ var DSToolbarV2 = require('./DSToolbarV2.js');
7
+ var DSToolbarItemV2 = require('./DSToolbarItemV2.js');
8
+ var DSToolbarSeparatorV2 = require('./DSToolbarSeparatorV2.js');
9
+ var ToolbarItem = require('./deprecated/ToolbarItem.js');
10
+ var ToolbarGroup = require('./deprecated/ToolbarGroup.js');
11
+ var ToolbarDivider = require('./deprecated/ToolbarDivider.js');
9
12
 
10
13
 
11
14
 
12
15
  exports.DSToolbar = DSToolbar.DSToolbar;
13
16
  exports.ToolbarWithSchema = DSToolbar.ToolbarWithSchema;
14
- exports.default = DSToolbar.DSToolbar;
17
+ exports["default"] = DSToolbar.DSToolbar;
18
+ exports.DSToolbarV2 = DSToolbarV2.DSToolbarV2;
19
+ exports.DSToolbarV2WithSchema = DSToolbarV2.DSToolbarV2WithSchema;
20
+ exports.DSToolbarItemV2 = DSToolbarItemV2.DSToolbarItemV2;
21
+ exports.DSToolbarSeparatorV2 = DSToolbarSeparatorV2.DSToolbarSeparatorV2;
15
22
  exports.ToolbarItem = ToolbarItem;
16
23
  exports.ToolbarGroup = ToolbarGroup;
17
24
  exports.ToolbarDivider = ToolbarDivider;
package/cjs/props.js ADDED
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var reactDesc = require('react-desc');
6
+
7
+ const DSToolbarV2Schema = {
8
+ alignment: reactDesc.PropTypes.oneOf(['right', 'left']).description('Whether to align the content left or right').defaultValue('right'),
9
+ withDepth: reactDesc.PropTypes.bool.description('Whether to add a box-shadow to the container').defaultValue(true),
10
+ compact: reactDesc.PropTypes.bool.description('Whether you want the compact version of the toolbar').defaultValue(false),
11
+ innerRef: reactDesc.PropTypes.oneOfType([reactDesc.PropTypes.func, reactDesc.PropTypes.object]).description('Reference to attach to the wrapper')
12
+ };
13
+
14
+ exports.DSToolbarV2Schema = DSToolbarV2Schema;
package/cjs/styled.js ADDED
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var styled = require('styled-components');
6
+ var Grid = require('@elliemae/ds-grid');
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 Grid__default = /*#__PURE__*/_interopDefaultLegacy(Grid);
12
+
13
+ const StyledToolbarWrapper = /*#__PURE__*/styled__default["default"](Grid__default["default"]).withConfig({
14
+ componentId: "sc-8ez8n4-0"
15
+ })(["background-color:", ";min-height:", ";max-height:", ";padding:0 ", ";box-shadow:", ";"], props => props.theme.colors.neutral['000'], props => props.compact ? '28px' : '40px', props => props.theme.space.xxl, props => props.theme.space.xxs, props => !props.withDepth ? 'none' : '0 1px 5px 0 rgb(0 0 0 / 13%), 0 2px 4px 0 rgb(0 0 0 / 20%)');
16
+ const StyledToolbarItem = /*#__PURE__*/styled__default["default"](Grid__default["default"]).withConfig({
17
+ componentId: "sc-8ez8n4-1"
18
+ })([""]);
19
+ const StyledSeparator = /*#__PURE__*/styled__default["default"](Grid__default["default"]).withConfig({
20
+ componentId: "sc-8ez8n4-2"
21
+ })(["height:30px;width:1px;background-color:", ";"], props => props.theme.colors.neutral[200]);
22
+
23
+ exports.StyledSeparator = StyledSeparator;
24
+ exports.StyledToolbarItem = StyledToolbarItem;
25
+ exports.StyledToolbarWrapper = StyledToolbarWrapper;
@@ -0,0 +1,39 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('core-js/modules/web.dom-collections.iterator.js');
6
+ var React = require('react');
7
+ var DSToolbarV2Context = require('./DSToolbarV2Context.js');
8
+
9
+ const useToolbarItemHandlers = toolbarItemId => {
10
+ const {
11
+ toolbarUid,
12
+ itemReferences
13
+ } = React.useContext(DSToolbarV2Context.DSToolbarV2Context);
14
+ const onKeyDown = React.useCallback(e => {
15
+ const toolbarItems = [...document.querySelectorAll("#".concat(toolbarUid, " .ds-toolbar-item"))];
16
+ let nextToolbarItemIndex = -1;
17
+
18
+ if (['ArrowLeft', 'ArrowRight'].includes(e.code)) {
19
+ const toolbarItemIndex = toolbarItems.findIndex(domElem => domElem.id === toolbarItemId);
20
+ nextToolbarItemIndex = toolbarItemIndex + (e.code === 'ArrowLeft' ? -1 : 1);
21
+ } else if (e.code === 'Home') {
22
+ nextToolbarItemIndex = 0;
23
+ } else if (e.code === 'End') {
24
+ nextToolbarItemIndex = toolbarItems.length - 1;
25
+ }
26
+
27
+ if (nextToolbarItemIndex >= 0 && nextToolbarItemIndex < toolbarItems.length) {
28
+ e.preventDefault();
29
+ e.stopPropagation();
30
+ const ref = itemReferences[toolbarItems[nextToolbarItemIndex].id];
31
+ if (ref.current) ref.current.focus();
32
+ }
33
+ }, [toolbarUid, toolbarItemId, itemReferences]);
34
+ return {
35
+ onKeyDown
36
+ };
37
+ };
38
+
39
+ exports.useToolbarItemHandlers = useToolbarItemHandlers;
@@ -0,0 +1,42 @@
1
+ import 'core-js/modules/esnext.async-iterator.filter.js';
2
+ import 'core-js/modules/esnext.iterator.constructor.js';
3
+ import 'core-js/modules/esnext.iterator.filter.js';
4
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
5
+ import 'core-js/modules/esnext.iterator.for-each.js';
6
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
7
+ import { useContext, useRef, useMemo } from 'react';
8
+ import { uid } from 'uid';
9
+ import { DSToolbarV2Context } from './DSToolbarV2Context.js';
10
+ import { StyledToolbarItem } from './styled.js';
11
+ import { useToolbarItemHandlers } from './useToolbarItemHandlers.js';
12
+ import { jsx } from 'react/jsx-runtime';
13
+
14
+ 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; }
15
+
16
+ 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; }
17
+ const DSToolbarItemV2 = _ref => {
18
+ let {
19
+ render
20
+ } = _ref;
21
+ const {
22
+ registerReference
23
+ } = useContext(DSToolbarV2Context);
24
+ const ref = useRef(null);
25
+ const toolbarItemId = useMemo(() => {
26
+ const id = "ds-toolbar-item-".concat(uid());
27
+ registerReference(id, ref);
28
+ return id;
29
+ }, [registerReference, ref]);
30
+ const handlers = useToolbarItemHandlers(toolbarItemId);
31
+ return /*#__PURE__*/jsx(StyledToolbarItem, _objectSpread(_objectSpread({
32
+ id: toolbarItemId,
33
+ "data-testid": "ds-toolbar-item",
34
+ className: "ds-toolbar-item"
35
+ }, handlers), {}, {
36
+ children: render({
37
+ innerRef: ref
38
+ })
39
+ }));
40
+ };
41
+
42
+ export { DSToolbarItemV2 };
@@ -0,0 +1,10 @@
1
+ import _jsx from '@babel/runtime/helpers/esm/jsx';
2
+ import 'react';
3
+ import { StyledSeparator } from './styled.js';
4
+
5
+ var _StyledSeparator;
6
+ const DSToolbarSeparatorV2 = () => _StyledSeparator || (_StyledSeparator = /*#__PURE__*/_jsx(StyledSeparator, {
7
+ className: "ds-toolbar-separator"
8
+ }));
9
+
10
+ export { DSToolbarSeparatorV2 };
@@ -0,0 +1,69 @@
1
+ import 'core-js/modules/esnext.async-iterator.filter.js';
2
+ import 'core-js/modules/esnext.iterator.constructor.js';
3
+ import 'core-js/modules/esnext.iterator.filter.js';
4
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
5
+ import 'core-js/modules/esnext.iterator.for-each.js';
6
+ import _jsx from '@babel/runtime/helpers/esm/jsx';
7
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
8
+ import 'core-js/modules/web.dom-collections.iterator.js';
9
+ import 'core-js/modules/esnext.async-iterator.map.js';
10
+ import 'core-js/modules/esnext.iterator.map.js';
11
+ import React, { useMemo, useState, useCallback } from 'react';
12
+ import { useValidateTypescriptPropTypes } from '@elliemae/ds-props-helpers';
13
+ import { describe } from 'react-desc';
14
+ import { uid } from 'uid';
15
+ import { DSToolbarV2Context } from './DSToolbarV2Context.js';
16
+ import { DSToolbarV2Schema } from './props.js';
17
+ import { StyledToolbarWrapper } from './styled.js';
18
+ import { jsx } from 'react/jsx-runtime';
19
+
20
+ 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; }
21
+
22
+ 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; }
23
+
24
+ const DSToolbarV2 = props => {
25
+ const {
26
+ alignment,
27
+ withDepth,
28
+ compact,
29
+ innerRef,
30
+ children
31
+ } = props;
32
+ useValidateTypescriptPropTypes(props, DSToolbarV2Schema);
33
+ const toolbarUid = useMemo(() => "ds-toolbar-".concat(uid()), []);
34
+ const [itemReferences, setItemReferences] = useState({});
35
+ const registerReference = useCallback((itemId, ref) => {
36
+ setItemReferences(prevItemReferences => _objectSpread(_objectSpread({}, prevItemReferences), {}, {
37
+ [itemId]: ref
38
+ }));
39
+ }, [setItemReferences]);
40
+ return /*#__PURE__*/_jsx(DSToolbarV2Context.Provider, {
41
+ value: {
42
+ toolbarUid,
43
+ registerReference,
44
+ itemReferences
45
+ }
46
+ }, void 0, /*#__PURE__*/jsx(StyledToolbarWrapper, {
47
+ role: "toolbar",
48
+ "data-testid": "ds-toolbar-wrapper",
49
+ id: toolbarUid,
50
+ alignItems: "center",
51
+ justifyContent: alignment === 'left' ? 'flex-start' : 'flex-end',
52
+ withDepth: withDepth,
53
+ cols: React.Children.map(children, () => ['auto']),
54
+ gutter: "xxs2",
55
+ compact: compact,
56
+ ref: innerRef,
57
+ children: children
58
+ }));
59
+ };
60
+
61
+ DSToolbarV2.defaultProps = {
62
+ alignment: 'right',
63
+ withDepth: true,
64
+ compact: false
65
+ };
66
+ const DSToolbarV2WithSchema = describe(DSToolbarV2).description('Toolbar');
67
+ DSToolbarV2WithSchema.propTypes = DSToolbarV2Schema;
68
+
69
+ export { DSToolbarV2, DSToolbarV2WithSchema };
@@ -0,0 +1,9 @@
1
+ import { createContext } from 'react';
2
+
3
+ const DSToolbarV2Context = /*#__PURE__*/createContext({
4
+ registerReference: () => null,
5
+ itemReferences: {},
6
+ toolbarUid: ''
7
+ });
8
+
9
+ export { DSToolbarV2Context };
@@ -1,3 +1,8 @@
1
+ import 'core-js/modules/esnext.async-iterator.filter.js';
2
+ import 'core-js/modules/esnext.iterator.constructor.js';
3
+ import 'core-js/modules/esnext.iterator.filter.js';
4
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
5
+ import 'core-js/modules/esnext.iterator.for-each.js';
1
6
  import _jsx from '@babel/runtime/helpers/esm/jsx';
2
7
  import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
3
8
  import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
@@ -5,7 +10,7 @@ import { useRef } from 'react';
5
10
  import { PropTypes, describe } from 'react-desc';
6
11
  import { aggregatedClasses } from '@elliemae/ds-classnames';
7
12
  import FocusGroupProvider from '@elliemae/ds-shared/FocusGroup/FocusGroupManager';
8
- import { mergeRefs } from '@elliemae/ds-utilities/system';
13
+ import { mergeRefs } from '@elliemae/ds-utilities';
9
14
  import decorateToolbarChildren from './decorateToolbarChildren.js';
10
15
  export { default as ToolbarItem } from './ToolbarItem.js';
11
16
  export { default as ToolbarGroup } from './ToolbarGroup.js';
@@ -18,17 +23,20 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
18
23
 
19
24
  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; }
20
25
  const blockName = 'toolbar';
21
- const ToolbarContainer = aggregatedClasses('div')(blockName, null, ({
22
- withDepth,
23
- alignment,
24
- size
25
- }) => ({
26
- 'without-depth': !withDepth,
27
- [alignment]: !!alignment,
28
- [size]: size
29
- }));
26
+ const ToolbarContainer = aggregatedClasses('div')(blockName, null, _ref => {
27
+ let {
28
+ withDepth,
29
+ alignment,
30
+ size
31
+ } = _ref;
32
+ return {
33
+ 'without-depth': !withDepth,
34
+ [alignment]: !!alignment,
35
+ [size]: size
36
+ };
37
+ });
30
38
 
31
- const DSToolbar = _ref => {
39
+ const DSToolbar = _ref2 => {
32
40
  let {
33
41
  containerProps = {},
34
42
  innerRef,
@@ -38,8 +46,8 @@ const DSToolbar = _ref => {
38
46
  autoFocusOnMount = true,
39
47
  children = [],
40
48
  size = 'normal'
41
- } = _ref,
42
- otherProps = _objectWithoutProperties(_ref, _excluded);
49
+ } = _ref2,
50
+ otherProps = _objectWithoutProperties(_ref2, _excluded);
43
51
 
44
52
  const containerRef = useRef(null);
45
53
  return /*#__PURE__*/_jsx(FocusGroupProvider, {
@@ -4,22 +4,28 @@ import { aggregatedClasses } from '@elliemae/ds-classnames';
4
4
  import decorateToolbarChildren from './decorateToolbarChildren.js';
5
5
 
6
6
  const blockName = 'toolbar-group';
7
- const ToolbarGroupContainer = aggregatedClasses('div')(blockName, null, ({
8
- space
9
- }) => ({
10
- [`space-${space}`]: !!space
11
- }));
12
-
13
- const ToolbarGroup = ({
14
- children,
15
- size,
16
- space = 0
17
- }) => /*#__PURE__*/_jsx(ToolbarGroupContainer, {
18
- classProps: {
7
+ const ToolbarGroupContainer = aggregatedClasses('div')(blockName, null, _ref => {
8
+ let {
19
9
  space
20
- }
21
- }, void 0, decorateToolbarChildren(children, {
22
- size
23
- }));
10
+ } = _ref;
11
+ return {
12
+ ["space-".concat(space)]: !!space
13
+ };
14
+ });
15
+
16
+ const ToolbarGroup = _ref2 => {
17
+ let {
18
+ children,
19
+ size,
20
+ space = 0
21
+ } = _ref2;
22
+ return /*#__PURE__*/_jsx(ToolbarGroupContainer, {
23
+ classProps: {
24
+ space
25
+ }
26
+ }, void 0, decorateToolbarChildren(children, {
27
+ size
28
+ }));
29
+ };
24
30
 
25
31
  export { ToolbarGroup as default };
@@ -1,9 +1,15 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
2
2
  import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
3
+ import 'core-js/modules/web.dom-collections.iterator.js';
4
+ import 'core-js/modules/esnext.async-iterator.filter.js';
5
+ import 'core-js/modules/esnext.iterator.constructor.js';
6
+ import 'core-js/modules/esnext.iterator.filter.js';
7
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
8
+ import 'core-js/modules/esnext.iterator.for-each.js';
3
9
  import React, { useState } from 'react';
4
10
  import { useFocusGroupWithState } from '@elliemae/ds-shared/FocusGroup';
5
11
  import DSButton from '@elliemae/ds-button';
6
- import { Position } from '@elliemae/ds-popper/positions';
12
+ import { PopperPositions } from '@elliemae/ds-popper';
7
13
  import { jsx } from 'react/jsx-runtime';
8
14
 
9
15
  const _excluded = ["icon", "labelText", "menu"];
@@ -32,7 +38,7 @@ const ToolbarItem = _ref => {
32
38
 
33
39
  if (menu) {
34
40
  return /*#__PURE__*/React.cloneElement(menu, _objectSpread(_objectSpread({}, menu.props), {}, {
35
- placement: Position.BOTTOM_END,
41
+ placement: PopperPositions.BOTTOM_END,
36
42
  triggerComponent: btn
37
43
  }));
38
44
  }
@@ -1,11 +1,21 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
2
+ import 'core-js/modules/esnext.async-iterator.map.js';
3
+ import 'core-js/modules/esnext.iterator.map.js';
4
+ import 'core-js/modules/esnext.async-iterator.filter.js';
5
+ import 'core-js/modules/esnext.iterator.constructor.js';
6
+ import 'core-js/modules/esnext.iterator.filter.js';
7
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
8
+ import 'core-js/modules/esnext.iterator.for-each.js';
2
9
  import React, { cloneElement } from 'react';
3
10
 
4
11
  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; }
5
12
 
6
13
  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; }
7
- var decorateToolbarChildren = ((children, extraProps = {}) => React.Children.map(children, component => component ? /*#__PURE__*/cloneElement(component, _objectSpread(_objectSpread(_objectSpread({}, extraProps), component.props), {}, {
8
- className: `${component.props.className} toolbar-item`
9
- })) : component, null));
14
+ var decorateToolbarChildren = (function (children) {
15
+ let extraProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
16
+ return React.Children.map(children, component => component ? /*#__PURE__*/cloneElement(component, _objectSpread(_objectSpread(_objectSpread({}, extraProps), component.props), {}, {
17
+ className: "".concat(component.props.className, " toolbar-item")
18
+ })) : component, null);
19
+ });
10
20
 
11
21
  export { decorateToolbarChildren as default };
@@ -0,0 +1,4 @@
1
+ export { DSToolbar, ToolbarWithSchema, DSToolbar as default } from './DSToolbar.js';
2
+ export { default as ToolbarItem } from './ToolbarItem.js';
3
+ export { default as ToolbarGroup } from './ToolbarGroup.js';
4
+ export { default as ToolbarDivider } from './ToolbarDivider.js';
package/esm/index.js CHANGED
@@ -1,4 +1,7 @@
1
- export { DSToolbar, ToolbarWithSchema, DSToolbar as default } from './DSToolbar.js';
2
- export { default as ToolbarItem } from './ToolbarItem.js';
3
- export { default as ToolbarGroup } from './ToolbarGroup.js';
4
- export { default as ToolbarDivider } from './ToolbarDivider.js';
1
+ export { DSToolbar, ToolbarWithSchema, DSToolbar as default } from './deprecated/DSToolbar.js';
2
+ export { DSToolbarV2, DSToolbarV2WithSchema } from './DSToolbarV2.js';
3
+ export { DSToolbarItemV2 } from './DSToolbarItemV2.js';
4
+ export { DSToolbarSeparatorV2 } from './DSToolbarSeparatorV2.js';
5
+ export { default as ToolbarItem } from './deprecated/ToolbarItem.js';
6
+ export { default as ToolbarGroup } from './deprecated/ToolbarGroup.js';
7
+ export { default as ToolbarDivider } from './deprecated/ToolbarDivider.js';
package/esm/props.js ADDED
@@ -0,0 +1,10 @@
1
+ import { PropTypes } from 'react-desc';
2
+
3
+ const DSToolbarV2Schema = {
4
+ alignment: PropTypes.oneOf(['right', 'left']).description('Whether to align the content left or right').defaultValue('right'),
5
+ withDepth: PropTypes.bool.description('Whether to add a box-shadow to the container').defaultValue(true),
6
+ compact: PropTypes.bool.description('Whether you want the compact version of the toolbar').defaultValue(false),
7
+ innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).description('Reference to attach to the wrapper')
8
+ };
9
+
10
+ export { DSToolbarV2Schema };
package/esm/styled.js ADDED
@@ -0,0 +1,14 @@
1
+ import styled from 'styled-components';
2
+ import Grid from '@elliemae/ds-grid';
3
+
4
+ const StyledToolbarWrapper = /*#__PURE__*/styled(Grid).withConfig({
5
+ componentId: "sc-8ez8n4-0"
6
+ })(["background-color:", ";min-height:", ";max-height:", ";padding:0 ", ";box-shadow:", ";"], props => props.theme.colors.neutral['000'], props => props.compact ? '28px' : '40px', props => props.theme.space.xxl, props => props.theme.space.xxs, props => !props.withDepth ? 'none' : '0 1px 5px 0 rgb(0 0 0 / 13%), 0 2px 4px 0 rgb(0 0 0 / 20%)');
7
+ const StyledToolbarItem = /*#__PURE__*/styled(Grid).withConfig({
8
+ componentId: "sc-8ez8n4-1"
9
+ })([""]);
10
+ const StyledSeparator = /*#__PURE__*/styled(Grid).withConfig({
11
+ componentId: "sc-8ez8n4-2"
12
+ })(["height:30px;width:1px;background-color:", ";"], props => props.theme.colors.neutral[200]);
13
+
14
+ export { StyledSeparator, StyledToolbarItem, StyledToolbarWrapper };
@@ -0,0 +1,35 @@
1
+ import 'core-js/modules/web.dom-collections.iterator.js';
2
+ import { useContext, useCallback } from 'react';
3
+ import { DSToolbarV2Context } from './DSToolbarV2Context.js';
4
+
5
+ const useToolbarItemHandlers = toolbarItemId => {
6
+ const {
7
+ toolbarUid,
8
+ itemReferences
9
+ } = useContext(DSToolbarV2Context);
10
+ const onKeyDown = useCallback(e => {
11
+ const toolbarItems = [...document.querySelectorAll("#".concat(toolbarUid, " .ds-toolbar-item"))];
12
+ let nextToolbarItemIndex = -1;
13
+
14
+ if (['ArrowLeft', 'ArrowRight'].includes(e.code)) {
15
+ const toolbarItemIndex = toolbarItems.findIndex(domElem => domElem.id === toolbarItemId);
16
+ nextToolbarItemIndex = toolbarItemIndex + (e.code === 'ArrowLeft' ? -1 : 1);
17
+ } else if (e.code === 'Home') {
18
+ nextToolbarItemIndex = 0;
19
+ } else if (e.code === 'End') {
20
+ nextToolbarItemIndex = toolbarItems.length - 1;
21
+ }
22
+
23
+ if (nextToolbarItemIndex >= 0 && nextToolbarItemIndex < toolbarItems.length) {
24
+ e.preventDefault();
25
+ e.stopPropagation();
26
+ const ref = itemReferences[toolbarItems[nextToolbarItemIndex].id];
27
+ if (ref.current) ref.current.focus();
28
+ }
29
+ }, [toolbarUid, toolbarItemId, itemReferences]);
30
+ return {
31
+ onKeyDown
32
+ };
33
+ };
34
+
35
+ export { useToolbarItemHandlers };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elliemae/ds-toolbar",
3
- "version": "2.0.0-alpha.1",
3
+ "version": "2.0.0-alpha.13",
4
4
  "license": "MIT",
5
5
  "description": "ICE MT - Dimsum - Toolbar",
6
6
  "module": "./esm/index.js",
@@ -11,25 +11,57 @@
11
11
  "import": "./esm/index.js",
12
12
  "require": "./cjs/index.js"
13
13
  },
14
- "./ToolbarItem": {
15
- "import": "./esm/ToolbarItem.js",
16
- "require": "./cjs/ToolbarItem.js"
14
+ "./useToolbarItemHandlers": {
15
+ "import": "./esm/useToolbarItemHandlers.js",
16
+ "require": "./cjs/useToolbarItemHandlers.js"
17
17
  },
18
- "./ToolbarGroup": {
19
- "import": "./esm/ToolbarGroup.js",
20
- "require": "./cjs/ToolbarGroup.js"
18
+ "./styled": {
19
+ "import": "./esm/styled.js",
20
+ "require": "./cjs/styled.js"
21
21
  },
22
- "./ToolbarDivider": {
23
- "import": "./esm/ToolbarDivider.js",
24
- "require": "./cjs/ToolbarDivider.js"
22
+ "./props": {
23
+ "import": "./esm/props.js",
24
+ "require": "./cjs/props.js"
25
25
  },
26
- "./DSToolbar": {
27
- "import": "./esm/DSToolbar.js",
28
- "require": "./cjs/DSToolbar.js"
26
+ "./DSToolbarV2Context": {
27
+ "import": "./esm/DSToolbarV2Context.js",
28
+ "require": "./cjs/DSToolbarV2Context.js"
29
29
  },
30
- "./decorateToolbarChildren": {
31
- "import": "./esm/decorateToolbarChildren.js",
32
- "require": "./cjs/decorateToolbarChildren.js"
30
+ "./DSToolbarV2": {
31
+ "import": "./esm/DSToolbarV2.js",
32
+ "require": "./cjs/DSToolbarV2.js"
33
+ },
34
+ "./DSToolbarSeparatorV2": {
35
+ "import": "./esm/DSToolbarSeparatorV2.js",
36
+ "require": "./cjs/DSToolbarSeparatorV2.js"
37
+ },
38
+ "./DSToolbarItemV2": {
39
+ "import": "./esm/DSToolbarItemV2.js",
40
+ "require": "./cjs/DSToolbarItemV2.js"
41
+ },
42
+ "./deprecated/ToolbarItem": {
43
+ "import": "./esm/deprecated/ToolbarItem.js",
44
+ "require": "./cjs/deprecated/ToolbarItem.js"
45
+ },
46
+ "./deprecated/ToolbarGroup": {
47
+ "import": "./esm/deprecated/ToolbarGroup.js",
48
+ "require": "./cjs/deprecated/ToolbarGroup.js"
49
+ },
50
+ "./deprecated/ToolbarDivider": {
51
+ "import": "./esm/deprecated/ToolbarDivider.js",
52
+ "require": "./cjs/deprecated/ToolbarDivider.js"
53
+ },
54
+ "./deprecated": {
55
+ "import": "./esm/deprecated/index.js",
56
+ "require": "./cjs/deprecated/index.js"
57
+ },
58
+ "./deprecated/DSToolbar": {
59
+ "import": "./esm/deprecated/DSToolbar.js",
60
+ "require": "./cjs/deprecated/DSToolbar.js"
61
+ },
62
+ "./deprecated/decorateToolbarChildren": {
63
+ "import": "./esm/deprecated/decorateToolbarChildren.js",
64
+ "require": "./cjs/deprecated/decorateToolbarChildren.js"
33
65
  }
34
66
  },
35
67
  "sideEffects": [
@@ -52,22 +84,30 @@
52
84
  "build": "node ../../scripts/build/build.js"
53
85
  },
54
86
  "dependencies": {
55
- "@elliemae/ds-button": "2.0.0-alpha.1",
56
- "@elliemae/ds-classnames": "2.0.0-alpha.1",
57
- "@elliemae/ds-popper": "2.0.0-alpha.1",
58
- "@elliemae/ds-shared": "2.0.0-alpha.1",
59
- "@elliemae/ds-utilities": "2.0.0-alpha.1",
87
+ "@elliemae/ds-button": "2.0.0-alpha.13",
88
+ "@elliemae/ds-classnames": "2.0.0-alpha.13",
89
+ "@elliemae/ds-grid": "2.0.0-alpha.13",
90
+ "@elliemae/ds-icons": "2.0.0-alpha.13",
91
+ "@elliemae/ds-popper": "2.0.0-alpha.13",
92
+ "@elliemae/ds-props-helpers": "2.0.0-alpha.13",
93
+ "@elliemae/ds-shared": "2.0.0-alpha.13",
94
+ "@elliemae/ds-system": "2.0.0-alpha.13",
95
+ "@elliemae/ds-utilities": "2.0.0-alpha.13",
60
96
  "prop-types": "~15.7.2",
61
- "react-desc": "~4.1.3"
97
+ "react-desc": "~4.1.3",
98
+ "uid": "2.0.0"
62
99
  },
63
100
  "devDependencies": {
64
- "styled-components": "~5.3.1"
101
+ "@testing-library/jest-dom": "~5.15.0",
102
+ "@testing-library/react": "~12.1.2",
103
+ "@testing-library/user-event": "~13.5.0",
104
+ "styled-components": "~5.3.3"
65
105
  },
66
106
  "peerDependencies": {
67
107
  "lodash": "^4.17.21",
68
108
  "react": "^17.0.2",
69
109
  "react-dom": "^17.0.2",
70
- "styled-components": "^5.3.1"
110
+ "styled-components": "^5.3.3"
71
111
  },
72
112
  "publishConfig": {
73
113
  "access": "public",
@@ -0,0 +1,8 @@
1
+ import React, { MutableRefObject } from 'react';
2
+ interface ToolbarItemProps {
3
+ render: (props: {
4
+ innerRef: MutableRefObject<HTMLElement>;
5
+ }) => JSX.Element;
6
+ }
7
+ export declare const DSToolbarItemV2: React.ComponentType<ToolbarItemProps>;
8
+ export {};
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const DSToolbarSeparatorV2: React.ComponentType;
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ interface ToolbarProps {
3
+ alignment?: 'left' | 'right';
4
+ withDepth?: boolean;
5
+ compact?: boolean;
6
+ innerRef?: React.MutableRefObject<HTMLDivElement>;
7
+ }
8
+ declare const DSToolbarV2: React.ComponentType<ToolbarProps>;
9
+ declare const DSToolbarV2WithSchema: any;
10
+ export { DSToolbarV2, DSToolbarV2WithSchema };
@@ -0,0 +1,8 @@
1
+ import { MutableRefObject } from 'react';
2
+ interface IDSToolbarV2Context {
3
+ registerReference: (uid: string, ref: MutableRefObject<HTMLElement>) => void;
4
+ itemReferences: Record<string, MutableRefObject<HTMLElement>>;
5
+ toolbarUid: string;
6
+ }
7
+ export declare const DSToolbarV2Context: import("react").Context<IDSToolbarV2Context>;
8
+ export {};
@@ -0,0 +1,60 @@
1
+ /// <reference path="../../../../../shared/typings/react-desc.d.ts" />
2
+ /// <reference types="react" />
3
+ import Item from './ToolbarItem';
4
+ import ToolbarGroup from './ToolbarGroup';
5
+ import Divider from './ToolbarDivider';
6
+ declare const DSToolbar: {
7
+ ({ containerProps, innerRef, withDepth, alignment, autoFocusOnMount, children, size, ...otherProps }: {
8
+ [x: string]: any;
9
+ containerProps?: {} | undefined;
10
+ innerRef: any;
11
+ withDepth?: boolean | undefined;
12
+ alignment?: string | undefined;
13
+ autoFocusOnMount?: boolean | undefined;
14
+ children?: never[] | undefined;
15
+ size?: string | undefined;
16
+ }): JSX.Element;
17
+ propTypes: {
18
+ containerProps: {
19
+ defaultValue<T = unknown>(arg: T): {
20
+ deprecated: import("react-desc").PropTypesDescValidator;
21
+ };
22
+ isRequired: import("react-desc").PropTypesDescValidator;
23
+ };
24
+ withDepth: {
25
+ deprecated: import("react-desc").PropTypesDescValidator;
26
+ };
27
+ alignment: {
28
+ deprecated: import("react-desc").PropTypesDescValidator;
29
+ };
30
+ size: {
31
+ deprecated: import("react-desc").PropTypesDescValidator;
32
+ };
33
+ autoFocusOnMount: {
34
+ deprecated: import("react-desc").PropTypesDescValidator;
35
+ };
36
+ children: import("react-desc").PropTypesDescValidator;
37
+ innerRef: {
38
+ defaultValue<T = unknown>(arg: T): {
39
+ deprecated: import("react-desc").PropTypesDescValidator;
40
+ };
41
+ isRequired: import("react-desc").PropTypesDescValidator;
42
+ };
43
+ };
44
+ };
45
+ declare const ToolbarWithSchema: {
46
+ (props?: {
47
+ [x: string]: any;
48
+ containerProps?: {} | undefined;
49
+ innerRef: any;
50
+ withDepth?: boolean | undefined;
51
+ alignment?: string | undefined;
52
+ autoFocusOnMount?: boolean | undefined;
53
+ children?: never[] | undefined;
54
+ size?: string | undefined;
55
+ } | undefined): JSX.Element;
56
+ propTypes: unknown;
57
+ toTypescript: () => import("react-desc").TypescriptSchema;
58
+ };
59
+ export { DSToolbar, Item as ToolbarItem, ToolbarGroup, Divider as ToolbarDivider, ToolbarWithSchema, };
60
+ export default DSToolbar;
@@ -0,0 +1,2 @@
1
+ export * from './DSToolbar';
2
+ export { default } from './DSToolbar';
package/types/index.d.ts CHANGED
@@ -1,2 +1,5 @@
1
- export * from './DSToolbar';
2
- export { default } from './DSToolbar';
1
+ export * from './deprecated';
2
+ export { default } from './deprecated';
3
+ export * from './DSToolbarV2';
4
+ export * from './DSToolbarItemV2';
5
+ export * from './DSToolbarSeparatorV2';
@@ -0,0 +1,18 @@
1
+ /// <reference path="../../../../shared/typings/react-desc.d.ts" />
2
+ export declare const DSToolbarV2Schema: {
3
+ alignment: {
4
+ deprecated: import("react-desc").PropTypesDescValidator;
5
+ };
6
+ withDepth: {
7
+ deprecated: import("react-desc").PropTypesDescValidator;
8
+ };
9
+ compact: {
10
+ deprecated: import("react-desc").PropTypesDescValidator;
11
+ };
12
+ innerRef: {
13
+ defaultValue<T = unknown>(arg: T): {
14
+ deprecated: import("react-desc").PropTypesDescValidator;
15
+ };
16
+ isRequired: import("react-desc").PropTypesDescValidator;
17
+ };
18
+ };
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ export declare const StyledToolbarWrapper: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("@elliemae/ds-grid/types/types").GridPropsT & import("react").RefAttributes<HTMLDivElement>>, import("styled-components").DefaultTheme, {}, never>;
3
+ export declare const StyledToolbarItem: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("@elliemae/ds-grid/types/types").GridPropsT & import("react").RefAttributes<HTMLDivElement>>, import("styled-components").DefaultTheme, {}, never>;
4
+ export declare const StyledSeparator: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("@elliemae/ds-grid/types/types").GridPropsT & import("react").RefAttributes<HTMLDivElement>>, import("styled-components").DefaultTheme, {}, never>;
@@ -0,0 +1,3 @@
1
+ export declare const useToolbarItemHandlers: (toolbarItemId: string) => {
2
+ onKeyDown: React.KeyboardEventHandler;
3
+ };
package/cjs/package.json DELETED
@@ -1,7 +0,0 @@
1
- {
2
- "type": "commonjs",
3
- "sideEffects": [
4
- "*.css",
5
- "*.scss"
6
- ]
7
- }
package/esm/package.json DELETED
@@ -1,7 +0,0 @@
1
- {
2
- "type": "module",
3
- "sideEffects": [
4
- "*.css",
5
- "*.scss"
6
- ]
7
- }
@@ -1,28 +0,0 @@
1
- /// <reference types="react" />
2
- import Item from './ToolbarItem';
3
- import ToolbarGroup from './ToolbarGroup';
4
- import Divider from './ToolbarDivider';
5
- declare const DSToolbar: {
6
- ({ containerProps, innerRef, withDepth, alignment, autoFocusOnMount, children, size, ...otherProps }: {
7
- [x: string]: any;
8
- containerProps?: {} | undefined;
9
- innerRef: any;
10
- withDepth?: boolean | undefined;
11
- alignment?: string | undefined;
12
- autoFocusOnMount?: boolean | undefined;
13
- children?: never[] | undefined;
14
- size?: string | undefined;
15
- }): JSX.Element;
16
- propTypes: {
17
- containerProps: any;
18
- withDepth: any;
19
- alignment: any;
20
- size: any;
21
- autoFocusOnMount: any;
22
- children: any;
23
- innerRef: any;
24
- };
25
- };
26
- declare const ToolbarWithSchema: any;
27
- export { DSToolbar, Item as ToolbarItem, ToolbarGroup, Divider as ToolbarDivider, ToolbarWithSchema, };
28
- export default DSToolbar;