@atlaskit/pragmatic-drag-and-drop-react-accessibility 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -2
- package/constellation/drag-handle-button/examples.mdx +13 -3
- package/constellation/drag-handle-button/props.mdx +0 -1
- package/constellation/drag-handle-dropdown-menu/examples.mdx +13 -3
- package/constellation/drag-handle-dropdown-menu/props.mdx +0 -1
- package/constellation/index/about.mdx +1 -1
- package/dist/cjs/drag-handle-button-base.js +75 -0
- package/dist/cjs/drag-handle-button-small.js +31 -0
- package/dist/cjs/drag-handle-button.js +14 -61
- package/dist/cjs/drag-handle-dropdown-menu-small.js +43 -0
- package/dist/cjs/drag-handle-icon-small.js +26 -0
- package/dist/cjs/drag-handle-icon.js +16 -0
- package/dist/cjs/index.js +1 -2
- package/dist/cjs/types.js +5 -0
- package/dist/es2019/drag-handle-button-base.js +74 -0
- package/dist/es2019/drag-handle-button-small.js +20 -0
- package/dist/es2019/drag-handle-button.js +7 -63
- package/dist/es2019/drag-handle-dropdown-menu-small.js +34 -0
- package/dist/es2019/drag-handle-icon-small.js +20 -0
- package/dist/es2019/drag-handle-icon.js +10 -0
- package/dist/es2019/types.js +1 -0
- package/dist/esm/drag-handle-button-base.js +69 -0
- package/dist/esm/drag-handle-button-small.js +21 -0
- package/dist/esm/drag-handle-button.js +9 -59
- package/dist/esm/drag-handle-dropdown-menu-small.js +34 -0
- package/dist/esm/drag-handle-icon-small.js +19 -0
- package/dist/esm/drag-handle-icon.js +9 -0
- package/dist/esm/types.js +1 -0
- package/dist/types/drag-handle-button-base.d.ts +11 -0
- package/dist/types/drag-handle-button-small.d.ts +11 -0
- package/dist/types/drag-handle-button.d.ts +3 -41
- package/dist/types/drag-handle-dropdown-menu-small.d.ts +8 -0
- package/dist/types/drag-handle-dropdown-menu.d.ts +2 -20
- package/dist/types/drag-handle-icon-small.d.ts +4 -0
- package/dist/types/drag-handle-icon.d.ts +3 -0
- package/dist/types/types.d.ts +37 -0
- package/dist/types-ts4.5/drag-handle-button-base.d.ts +11 -0
- package/dist/types-ts4.5/drag-handle-button-small.d.ts +11 -0
- package/dist/types-ts4.5/drag-handle-button.d.ts +3 -41
- package/dist/types-ts4.5/drag-handle-dropdown-menu-small.d.ts +8 -0
- package/dist/types-ts4.5/drag-handle-dropdown-menu.d.ts +2 -20
- package/dist/types-ts4.5/drag-handle-icon-small.d.ts +4 -0
- package/dist/types-ts4.5/drag-handle-icon.d.ts +3 -0
- package/dist/types-ts4.5/types.d.ts +37 -0
- package/drag-handle-button-small/package.json +15 -0
- package/drag-handle-dropdown-menu-small/package.json +15 -0
- package/extract-react-types/drag-handle-button.tsx +1 -1
- package/extract-react-types/drag-handle-dropdown-menu.tsx +1 -1
- package/package.json +7 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,14 +1,37 @@
|
|
|
1
1
|
# @atlaskit/pragmatic-drag-and-drop-react-accessibility
|
|
2
2
|
|
|
3
|
+
## 0.4.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#41296](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/41296) [`3e479ba1a4a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/3e479ba1a4a) - [ux] The drag handle icon now uses the `color.icon.subtle` token.
|
|
8
|
+
- [#41296](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/41296) [`ac64412c674`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ac64412c674) - Introduced small variants of the drag handle button and drag handle dropdown menu.
|
|
9
|
+
|
|
10
|
+
These are intended for existing experiences with little space available to
|
|
11
|
+
introduce a drag handle. They are not recommended for general use.
|
|
12
|
+
|
|
13
|
+
These small variants can be accessed through the `/drag-handle-button-small` and
|
|
14
|
+
`/drag-handle-dropdown-menu-small` entrypoints.
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- Updated dependencies
|
|
19
|
+
|
|
20
|
+
## 0.3.1
|
|
21
|
+
|
|
22
|
+
### Patch Changes
|
|
23
|
+
|
|
24
|
+
- Updated dependencies
|
|
25
|
+
|
|
3
26
|
## 0.3.0
|
|
4
27
|
|
|
5
28
|
### Minor Changes
|
|
6
29
|
|
|
7
|
-
- [`ee9aa9b7300`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ee9aa9b7300) - [ux] The button now has `display: flex`
|
|
30
|
+
- [#38144](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/38144) [`ee9aa9b7300`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ee9aa9b7300) - [ux] The button now has `display: flex`
|
|
8
31
|
|
|
9
32
|
## 0.2.0
|
|
10
33
|
|
|
11
34
|
### Minor Changes
|
|
12
35
|
|
|
13
|
-
- [`ffb3e727aaf`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ffb3e727aaf) - The `type` of the `DragHandleButton` now defaults to `'button'` (instead of `'submit'`)
|
|
36
|
+
- [#38115](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/38115) [`ffb3e727aaf`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ffb3e727aaf) - The `type` of the `DragHandleButton` now defaults to `'button'` (instead of `'submit'`)
|
|
14
37
|
- [`9f5b56f5677`](https://bitbucket.org/atlassian/atlassian-frontend/commits/9f5b56f5677) - The `DragHandleButton` props now extend `ButtonHTMLAttributes` (instead of just `HTMLAttributes`)
|
|
@@ -8,14 +8,24 @@ import { Code } from '@atlaskit/code';
|
|
|
8
8
|
import SectionMessage from '@atlaskit/section-message';
|
|
9
9
|
|
|
10
10
|
import DragHandleButtonExample from '../../examples/drag-handle-button';
|
|
11
|
+
import DragHandleButtonSmallExample from '../../examples/drag-handle-button-small';
|
|
11
12
|
|
|
12
13
|
<SectionMessage appearance="warning">
|
|
13
14
|
This component does not use the <Code>@atlaskit/button</Code> component,
|
|
14
15
|
because <Code>@atlaskit/button</Code> cancels <Code>mousedown</Code> events
|
|
15
|
-
and prevents dragging from occurring.
|
|
16
|
-
|
|
16
|
+
and prevents dragging from occurring. Instead this component uses a native{' '}
|
|
17
|
+
<Code><button></Code> element.
|
|
17
18
|
</SectionMessage>
|
|
18
19
|
|
|
19
20
|
## Default
|
|
20
21
|
|
|
21
|
-
<Example Component={DragHandleButtonExample} />
|
|
22
|
+
<Example Component={DragHandleButtonExample} />
|
|
23
|
+
|
|
24
|
+
## Small variant
|
|
25
|
+
|
|
26
|
+
A small variant is available through the `/drag-handle-button-small` entrypoint.
|
|
27
|
+
|
|
28
|
+
It is intended for experiences with very limited space to accomodate a drag handle.
|
|
29
|
+
It is not recommended for general use due to the small target size.
|
|
30
|
+
|
|
31
|
+
<Example Component={DragHandleButtonSmallExample} />
|
|
@@ -8,14 +8,24 @@ import { Code } from '@atlaskit/code';
|
|
|
8
8
|
import SectionMessage from '@atlaskit/section-message';
|
|
9
9
|
|
|
10
10
|
import DragHandleDropdownMenuExample from '../../examples/drag-handle-dropdown-menu';
|
|
11
|
+
import DragHandleDropdownMenuSmallExample from '../../examples/drag-handle-dropdown-menu-small';
|
|
11
12
|
|
|
12
13
|
<SectionMessage appearance="warning">
|
|
13
14
|
This component does not use the <Code>@atlaskit/button</Code> component,
|
|
14
15
|
because <Code>@atlaskit/button</Code> cancels <Code>mousedown</Code> events
|
|
15
|
-
and prevents dragging from occurring.
|
|
16
|
-
|
|
16
|
+
and prevents dragging from occurring. Instead this component uses a native{' '}
|
|
17
|
+
<Code><button></Code> element.
|
|
17
18
|
</SectionMessage>
|
|
18
19
|
|
|
19
20
|
## Default
|
|
20
21
|
|
|
21
|
-
<Example Component={DragHandleDropdownMenuExample} />
|
|
22
|
+
<Example Component={DragHandleDropdownMenuExample} />
|
|
23
|
+
|
|
24
|
+
## Small variant
|
|
25
|
+
|
|
26
|
+
A small variant is available through the `/drag-handle-dropdown-menu-small` entrypoint.
|
|
27
|
+
|
|
28
|
+
It is intended for experiences with very limited space to accomodate a drag handle.
|
|
29
|
+
It is not recommended for general use due to the small target size.
|
|
30
|
+
|
|
31
|
+
<Example Component={DragHandleButtonSizeExample} />
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.DragHandleButtonBase = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
|
+
var _react = require("react");
|
|
11
|
+
var _react2 = require("@emotion/react");
|
|
12
|
+
var _focusRing = _interopRequireDefault(require("@atlaskit/focus-ring"));
|
|
13
|
+
var _excluded = ["children", "isSelected", "testId", "appearance", "type"];
|
|
14
|
+
/** @jsx jsx */
|
|
15
|
+
/**
|
|
16
|
+
* Cannot use `@atlaskit/button` here because it cancels `mousedown` events
|
|
17
|
+
* which prevents dragging.
|
|
18
|
+
*/
|
|
19
|
+
var buttonStyles = (0, _react2.css)({
|
|
20
|
+
borderRadius: "var(--ds-border-radius-100, 3px)",
|
|
21
|
+
padding: "var(--ds-space-0, 0px)",
|
|
22
|
+
width: 'max-content',
|
|
23
|
+
border: 'none',
|
|
24
|
+
cursor: 'grab',
|
|
25
|
+
display: 'flex'
|
|
26
|
+
});
|
|
27
|
+
var buttonAppearanceStyles = {
|
|
28
|
+
default: (0, _react2.css)({
|
|
29
|
+
backgroundColor: "var(--ds-background-neutral, #091E420F)",
|
|
30
|
+
':hover': {
|
|
31
|
+
backgroundColor: "var(--ds-background-neutral-hovered, #091E4224)"
|
|
32
|
+
},
|
|
33
|
+
':active': {
|
|
34
|
+
backgroundColor: "var(--ds-background-neutral-pressed, #091E424F)"
|
|
35
|
+
}
|
|
36
|
+
}),
|
|
37
|
+
subtle: (0, _react2.css)({
|
|
38
|
+
backgroundColor: "var(--ds-background-neutral-subtle, #00000000)",
|
|
39
|
+
':hover': {
|
|
40
|
+
backgroundColor: "var(--ds-background-neutral-subtle-hovered, #091E420F)"
|
|
41
|
+
},
|
|
42
|
+
':active': {
|
|
43
|
+
backgroundColor: "var(--ds-background-neutral-subtle-pressed, #091E4224)"
|
|
44
|
+
}
|
|
45
|
+
}),
|
|
46
|
+
selected: (0, _react2.css)({
|
|
47
|
+
backgroundColor: "var(--ds-background-selected, #E9F2FF)",
|
|
48
|
+
color: "var(--ds-text-selected, #0C66E4)"
|
|
49
|
+
})
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* A button with pre-configured styling to look like a drag handle.
|
|
54
|
+
*
|
|
55
|
+
* This component uses a native button because the `@atlaskit/button`
|
|
56
|
+
* cancels `mouseDown` events, which prevents dragging.
|
|
57
|
+
*/
|
|
58
|
+
var DragHandleButtonBase = exports.DragHandleButtonBase = /*#__PURE__*/(0, _react.forwardRef)(function DragHandleButton(_ref, ref) {
|
|
59
|
+
var children = _ref.children,
|
|
60
|
+
_ref$isSelected = _ref.isSelected,
|
|
61
|
+
isSelected = _ref$isSelected === void 0 ? false : _ref$isSelected,
|
|
62
|
+
testId = _ref.testId,
|
|
63
|
+
_ref$appearance = _ref.appearance,
|
|
64
|
+
appearanceProp = _ref$appearance === void 0 ? 'default' : _ref$appearance,
|
|
65
|
+
_ref$type = _ref.type,
|
|
66
|
+
type = _ref$type === void 0 ? 'button' : _ref$type,
|
|
67
|
+
buttonProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
68
|
+
var appearance = isSelected ? 'selected' : appearanceProp;
|
|
69
|
+
return (0, _react2.jsx)(_focusRing.default, null, (0, _react2.jsx)("button", (0, _extends2.default)({
|
|
70
|
+
ref: ref,
|
|
71
|
+
css: [buttonStyles, buttonAppearanceStyles[appearance]],
|
|
72
|
+
"data-testid": testId,
|
|
73
|
+
type: type
|
|
74
|
+
}, buttonProps), children));
|
|
75
|
+
});
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.DragHandleButtonSmall = void 0;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _dragHandleButtonBase = require("./drag-handle-button-base");
|
|
13
|
+
var _dragHandleIconSmall = require("./drag-handle-icon-small");
|
|
14
|
+
var _excluded = ["label"];
|
|
15
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
|
+
/**
|
|
18
|
+
* A button with pre-configured styling to look like a drag handle.
|
|
19
|
+
*
|
|
20
|
+
* This component uses a native button because the `@atlaskit/button`
|
|
21
|
+
* cancels `mouseDown` events, which prevents dragging.
|
|
22
|
+
*/
|
|
23
|
+
var DragHandleButtonSmall = exports.DragHandleButtonSmall = /*#__PURE__*/(0, _react.forwardRef)(function DragHandleButton(_ref, ref) {
|
|
24
|
+
var label = _ref.label,
|
|
25
|
+
buttonProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
26
|
+
return /*#__PURE__*/_react.default.createElement(_dragHandleButtonBase.DragHandleButtonBase, (0, _extends2.default)({
|
|
27
|
+
ref: ref
|
|
28
|
+
}, buttonProps), /*#__PURE__*/_react.default.createElement(_dragHandleIconSmall.DragHandleIconSmall, {
|
|
29
|
+
label: label
|
|
30
|
+
}));
|
|
31
|
+
});
|
|
@@ -1,78 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.DragHandleButton = void 0;
|
|
8
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
10
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
|
-
var _react = require("react");
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Cannot use `@atlaskit/button` here because it cancels `mousedown` events
|
|
18
|
-
* which prevents dragging.
|
|
19
|
-
*/
|
|
20
|
-
var buttonStyles = (0, _react2.css)({
|
|
21
|
-
borderRadius: "var(--ds-border-radius-100, 3px)",
|
|
22
|
-
padding: "var(--ds-space-0, 0px)",
|
|
23
|
-
width: 'max-content',
|
|
24
|
-
border: 'none',
|
|
25
|
-
cursor: 'grab',
|
|
26
|
-
display: 'flex'
|
|
27
|
-
});
|
|
28
|
-
var buttonAppearanceStyles = {
|
|
29
|
-
default: (0, _react2.css)({
|
|
30
|
-
backgroundColor: "var(--ds-background-neutral, #091E420F)",
|
|
31
|
-
':hover': {
|
|
32
|
-
backgroundColor: "var(--ds-background-neutral-hovered, #091E4224)"
|
|
33
|
-
},
|
|
34
|
-
':active': {
|
|
35
|
-
backgroundColor: "var(--ds-background-neutral-pressed, #091E424F)"
|
|
36
|
-
}
|
|
37
|
-
}),
|
|
38
|
-
subtle: (0, _react2.css)({
|
|
39
|
-
backgroundColor: "var(--ds-background-neutral-subtle, #00000000)",
|
|
40
|
-
':hover': {
|
|
41
|
-
backgroundColor: "var(--ds-background-neutral-subtle-hovered, #091E420F)"
|
|
42
|
-
},
|
|
43
|
-
':active': {
|
|
44
|
-
backgroundColor: "var(--ds-background-neutral-subtle-pressed, #091E4224)"
|
|
45
|
-
}
|
|
46
|
-
}),
|
|
47
|
-
selected: (0, _react2.css)({
|
|
48
|
-
backgroundColor: "var(--ds-background-selected, #E9F2FF)",
|
|
49
|
-
color: "var(--ds-text-selected, #0C66E4)"
|
|
50
|
-
})
|
|
51
|
-
};
|
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _dragHandleButtonBase = require("./drag-handle-button-base");
|
|
13
|
+
var _dragHandleIcon = require("./drag-handle-icon");
|
|
14
|
+
var _excluded = ["label"];
|
|
15
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
52
17
|
/**
|
|
53
18
|
* A button with pre-configured styling to look like a drag handle.
|
|
54
19
|
*
|
|
55
20
|
* This component uses a native button because the `@atlaskit/button`
|
|
56
21
|
* cancels `mouseDown` events, which prevents dragging.
|
|
57
22
|
*/
|
|
58
|
-
var DragHandleButton = /*#__PURE__*/(0, _react.forwardRef)(function DragHandleButton(_ref, ref) {
|
|
59
|
-
var
|
|
60
|
-
isSelected = _ref$isSelected === void 0 ? false : _ref$isSelected,
|
|
61
|
-
testId = _ref.testId,
|
|
62
|
-
_ref$appearance = _ref.appearance,
|
|
63
|
-
appearanceProp = _ref$appearance === void 0 ? 'default' : _ref$appearance,
|
|
64
|
-
label = _ref.label,
|
|
65
|
-
_ref$type = _ref.type,
|
|
66
|
-
type = _ref$type === void 0 ? 'button' : _ref$type,
|
|
23
|
+
var DragHandleButton = exports.DragHandleButton = /*#__PURE__*/(0, _react.forwardRef)(function DragHandleButton(_ref, ref) {
|
|
24
|
+
var label = _ref.label,
|
|
67
25
|
buttonProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
css: [buttonStyles, buttonAppearanceStyles[appearance]],
|
|
72
|
-
"data-testid": testId,
|
|
73
|
-
type: type
|
|
74
|
-
}, buttonProps), (0, _react2.jsx)(_dragHandler.default, {
|
|
26
|
+
return /*#__PURE__*/_react.default.createElement(_dragHandleButtonBase.DragHandleButtonBase, (0, _extends2.default)({
|
|
27
|
+
ref: ref
|
|
28
|
+
}, buttonProps), /*#__PURE__*/_react.default.createElement(_dragHandleIcon.DragHandleIcon, {
|
|
75
29
|
label: label
|
|
76
|
-
}))
|
|
77
|
-
});
|
|
78
|
-
exports.DragHandleButton = DragHandleButton;
|
|
30
|
+
}));
|
|
31
|
+
});
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.DragHandleDropdownMenuSmall = DragHandleDropdownMenuSmall;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _dropdownMenu = _interopRequireDefault(require("@atlaskit/dropdown-menu"));
|
|
13
|
+
var _mergeRefs = _interopRequireDefault(require("@atlaskit/ds-lib/merge-refs"));
|
|
14
|
+
var _dragHandleButtonBase = require("./drag-handle-button-base");
|
|
15
|
+
var _dragHandleIconSmall = require("./drag-handle-icon-small");
|
|
16
|
+
var _excluded = ["triggerRef"]; // eslint-disable-next-line @atlaskit/design-system/no-banned-imports
|
|
17
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
18
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
19
|
+
/**
|
|
20
|
+
* A dropdown menu with a predefined trigger, styled to look like a drag handle.
|
|
21
|
+
*
|
|
22
|
+
* The API is designed to mirror the `@atlaskit/dropdown-menu` API.
|
|
23
|
+
*/
|
|
24
|
+
function DragHandleDropdownMenuSmall(_ref) {
|
|
25
|
+
var children = _ref.children,
|
|
26
|
+
consumerRef = _ref.triggerRef,
|
|
27
|
+
appearance = _ref.appearance,
|
|
28
|
+
label = _ref.label;
|
|
29
|
+
var renderTrigger = (0, _react.useCallback)(function (_ref2) {
|
|
30
|
+
var triggerRef = _ref2.triggerRef,
|
|
31
|
+
triggerProps = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
|
|
32
|
+
var mergedRef = (0, _mergeRefs.default)([consumerRef, triggerRef]);
|
|
33
|
+
return /*#__PURE__*/_react.default.createElement(_dragHandleButtonBase.DragHandleButtonBase, (0, _extends2.default)({
|
|
34
|
+
ref: mergedRef,
|
|
35
|
+
appearance: appearance
|
|
36
|
+
}, triggerProps), /*#__PURE__*/_react.default.createElement(_dragHandleIconSmall.DragHandleIconSmall, {
|
|
37
|
+
label: label
|
|
38
|
+
}));
|
|
39
|
+
}, [appearance, consumerRef, label]);
|
|
40
|
+
return /*#__PURE__*/_react.default.createElement(_dropdownMenu.default, {
|
|
41
|
+
trigger: renderTrigger
|
|
42
|
+
}, children);
|
|
43
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.DragHandleIconSmall = DragHandleIconSmall;
|
|
8
|
+
var _react = require("@emotion/react");
|
|
9
|
+
var _dragHandler = _interopRequireDefault(require("@atlaskit/icon/glyph/drag-handler"));
|
|
10
|
+
var _primitives = require("@atlaskit/primitives");
|
|
11
|
+
/** @jsx jsx */
|
|
12
|
+
|
|
13
|
+
var iconSmallStyles = (0, _primitives.xcss)({
|
|
14
|
+
display: 'inline-flex',
|
|
15
|
+
marginInline: "var(--ds-space-negative-050, -4px)"
|
|
16
|
+
});
|
|
17
|
+
function DragHandleIconSmall(_ref) {
|
|
18
|
+
var label = _ref.label;
|
|
19
|
+
return (0, _react.jsx)(_primitives.Box, {
|
|
20
|
+
xcss: iconSmallStyles
|
|
21
|
+
}, (0, _react.jsx)(_dragHandler.default, {
|
|
22
|
+
label: label,
|
|
23
|
+
size: "small",
|
|
24
|
+
primaryColor: "var(--ds-icon-subtle, #626F86)"
|
|
25
|
+
}));
|
|
26
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.DragHandleIcon = DragHandleIcon;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _dragHandler = _interopRequireDefault(require("@atlaskit/icon/glyph/drag-handler"));
|
|
10
|
+
function DragHandleIcon(_ref) {
|
|
11
|
+
var label = _ref.label;
|
|
12
|
+
return /*#__PURE__*/_react.default.createElement(_dragHandler.default, {
|
|
13
|
+
label: label,
|
|
14
|
+
primaryColor: "var(--ds-icon-subtle, #626F86)"
|
|
15
|
+
});
|
|
16
|
+
}
|
package/dist/cjs/index.js
CHANGED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
/** @jsx jsx */
|
|
3
|
+
|
|
4
|
+
import { forwardRef } from 'react';
|
|
5
|
+
import { css, jsx } from '@emotion/react';
|
|
6
|
+
import FocusRing from '@atlaskit/focus-ring';
|
|
7
|
+
/**
|
|
8
|
+
* Cannot use `@atlaskit/button` here because it cancels `mousedown` events
|
|
9
|
+
* which prevents dragging.
|
|
10
|
+
*/
|
|
11
|
+
const buttonStyles = css({
|
|
12
|
+
borderRadius: "var(--ds-border-radius-100, 3px)",
|
|
13
|
+
padding: "var(--ds-space-0, 0px)",
|
|
14
|
+
width: 'max-content',
|
|
15
|
+
border: 'none',
|
|
16
|
+
cursor: 'grab',
|
|
17
|
+
display: 'flex'
|
|
18
|
+
});
|
|
19
|
+
const buttonAppearanceStyles = {
|
|
20
|
+
default: css({
|
|
21
|
+
backgroundColor: "var(--ds-background-neutral, #091E420F)",
|
|
22
|
+
':hover': {
|
|
23
|
+
backgroundColor: "var(--ds-background-neutral-hovered, #091E4224)"
|
|
24
|
+
},
|
|
25
|
+
':active': {
|
|
26
|
+
backgroundColor: "var(--ds-background-neutral-pressed, #091E424F)"
|
|
27
|
+
}
|
|
28
|
+
}),
|
|
29
|
+
subtle: css({
|
|
30
|
+
backgroundColor: "var(--ds-background-neutral-subtle, #00000000)",
|
|
31
|
+
':hover': {
|
|
32
|
+
backgroundColor: "var(--ds-background-neutral-subtle-hovered, #091E420F)"
|
|
33
|
+
},
|
|
34
|
+
':active': {
|
|
35
|
+
backgroundColor: "var(--ds-background-neutral-subtle-pressed, #091E4224)"
|
|
36
|
+
}
|
|
37
|
+
}),
|
|
38
|
+
selected: css({
|
|
39
|
+
backgroundColor: "var(--ds-background-selected, #E9F2FF)",
|
|
40
|
+
color: "var(--ds-text-selected, #0C66E4)"
|
|
41
|
+
})
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* A button with pre-configured styling to look like a drag handle.
|
|
46
|
+
*
|
|
47
|
+
* This component uses a native button because the `@atlaskit/button`
|
|
48
|
+
* cancels `mouseDown` events, which prevents dragging.
|
|
49
|
+
*/
|
|
50
|
+
export const DragHandleButtonBase = /*#__PURE__*/forwardRef(function DragHandleButton({
|
|
51
|
+
children,
|
|
52
|
+
isSelected = false,
|
|
53
|
+
testId,
|
|
54
|
+
appearance: appearanceProp = 'default',
|
|
55
|
+
/**
|
|
56
|
+
* Defaulting to `button` instead of `submit` (native default in some cases).
|
|
57
|
+
*
|
|
58
|
+
* A type of `submit` only makes sense in a form context, and isn't very
|
|
59
|
+
* relevant to a drag handle.
|
|
60
|
+
*
|
|
61
|
+
* `@atlaskit/button` also defaults to a type of `button` as well, as it
|
|
62
|
+
* is more semantically appropriate in a wider range of cases.
|
|
63
|
+
*/
|
|
64
|
+
type = 'button',
|
|
65
|
+
...buttonProps
|
|
66
|
+
}, ref) {
|
|
67
|
+
const appearance = isSelected ? 'selected' : appearanceProp;
|
|
68
|
+
return jsx(FocusRing, null, jsx("button", _extends({
|
|
69
|
+
ref: ref,
|
|
70
|
+
css: [buttonStyles, buttonAppearanceStyles[appearance]],
|
|
71
|
+
"data-testid": testId,
|
|
72
|
+
type: type
|
|
73
|
+
}, buttonProps), children));
|
|
74
|
+
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import React, { forwardRef } from 'react';
|
|
3
|
+
import { DragHandleButtonBase } from './drag-handle-button-base';
|
|
4
|
+
import { DragHandleIconSmall } from './drag-handle-icon-small';
|
|
5
|
+
/**
|
|
6
|
+
* A button with pre-configured styling to look like a drag handle.
|
|
7
|
+
*
|
|
8
|
+
* This component uses a native button because the `@atlaskit/button`
|
|
9
|
+
* cancels `mouseDown` events, which prevents dragging.
|
|
10
|
+
*/
|
|
11
|
+
export const DragHandleButtonSmall = /*#__PURE__*/forwardRef(function DragHandleButton({
|
|
12
|
+
label,
|
|
13
|
+
...buttonProps
|
|
14
|
+
}, ref) {
|
|
15
|
+
return /*#__PURE__*/React.createElement(DragHandleButtonBase, _extends({
|
|
16
|
+
ref: ref
|
|
17
|
+
}, buttonProps), /*#__PURE__*/React.createElement(DragHandleIconSmall, {
|
|
18
|
+
label: label
|
|
19
|
+
}));
|
|
20
|
+
});
|
|
@@ -1,46 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
import { css, jsx } from '@emotion/react';
|
|
6
|
-
import FocusRing from '@atlaskit/focus-ring';
|
|
7
|
-
import DragHandlerIcon from '@atlaskit/icon/glyph/drag-handler';
|
|
8
|
-
/**
|
|
9
|
-
* Cannot use `@atlaskit/button` here because it cancels `mousedown` events
|
|
10
|
-
* which prevents dragging.
|
|
11
|
-
*/
|
|
12
|
-
const buttonStyles = css({
|
|
13
|
-
borderRadius: "var(--ds-border-radius-100, 3px)",
|
|
14
|
-
padding: "var(--ds-space-0, 0px)",
|
|
15
|
-
width: 'max-content',
|
|
16
|
-
border: 'none',
|
|
17
|
-
cursor: 'grab',
|
|
18
|
-
display: 'flex'
|
|
19
|
-
});
|
|
20
|
-
const buttonAppearanceStyles = {
|
|
21
|
-
default: css({
|
|
22
|
-
backgroundColor: "var(--ds-background-neutral, #091E420F)",
|
|
23
|
-
':hover': {
|
|
24
|
-
backgroundColor: "var(--ds-background-neutral-hovered, #091E4224)"
|
|
25
|
-
},
|
|
26
|
-
':active': {
|
|
27
|
-
backgroundColor: "var(--ds-background-neutral-pressed, #091E424F)"
|
|
28
|
-
}
|
|
29
|
-
}),
|
|
30
|
-
subtle: css({
|
|
31
|
-
backgroundColor: "var(--ds-background-neutral-subtle, #00000000)",
|
|
32
|
-
':hover': {
|
|
33
|
-
backgroundColor: "var(--ds-background-neutral-subtle-hovered, #091E420F)"
|
|
34
|
-
},
|
|
35
|
-
':active': {
|
|
36
|
-
backgroundColor: "var(--ds-background-neutral-subtle-pressed, #091E4224)"
|
|
37
|
-
}
|
|
38
|
-
}),
|
|
39
|
-
selected: css({
|
|
40
|
-
backgroundColor: "var(--ds-background-selected, #E9F2FF)",
|
|
41
|
-
color: "var(--ds-text-selected, #0C66E4)"
|
|
42
|
-
})
|
|
43
|
-
};
|
|
2
|
+
import React, { forwardRef } from 'react';
|
|
3
|
+
import { DragHandleButtonBase } from './drag-handle-button-base';
|
|
4
|
+
import { DragHandleIcon } from './drag-handle-icon';
|
|
44
5
|
/**
|
|
45
6
|
* A button with pre-configured styling to look like a drag handle.
|
|
46
7
|
*
|
|
@@ -48,29 +9,12 @@ const buttonAppearanceStyles = {
|
|
|
48
9
|
* cancels `mouseDown` events, which prevents dragging.
|
|
49
10
|
*/
|
|
50
11
|
export const DragHandleButton = /*#__PURE__*/forwardRef(function DragHandleButton({
|
|
51
|
-
isSelected = false,
|
|
52
|
-
testId,
|
|
53
|
-
appearance: appearanceProp = 'default',
|
|
54
12
|
label,
|
|
55
|
-
/**
|
|
56
|
-
* Defaulting to `button` instead of `submit` (native default in some cases).
|
|
57
|
-
*
|
|
58
|
-
* A type of `submit` only makes sense in a form context, and isn't very
|
|
59
|
-
* relevant to a drag handle.
|
|
60
|
-
*
|
|
61
|
-
* `@atlaskit/button` also defaults to a type of `button` as well, as it
|
|
62
|
-
* is more semantically appropriate in a wider range of cases.
|
|
63
|
-
*/
|
|
64
|
-
type = 'button',
|
|
65
13
|
...buttonProps
|
|
66
14
|
}, ref) {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
css: [buttonStyles, buttonAppearanceStyles[appearance]],
|
|
71
|
-
"data-testid": testId,
|
|
72
|
-
type: type
|
|
73
|
-
}, buttonProps), jsx(DragHandlerIcon, {
|
|
15
|
+
return /*#__PURE__*/React.createElement(DragHandleButtonBase, _extends({
|
|
16
|
+
ref: ref
|
|
17
|
+
}, buttonProps), /*#__PURE__*/React.createElement(DragHandleIcon, {
|
|
74
18
|
label: label
|
|
75
|
-
}))
|
|
19
|
+
}));
|
|
76
20
|
});
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import React, { useCallback } from 'react';
|
|
3
|
+
import DropdownMenu from '@atlaskit/dropdown-menu';
|
|
4
|
+
// eslint-disable-next-line @atlaskit/design-system/no-banned-imports
|
|
5
|
+
import mergeRefs from '@atlaskit/ds-lib/merge-refs';
|
|
6
|
+
import { DragHandleButtonBase } from './drag-handle-button-base';
|
|
7
|
+
import { DragHandleIconSmall } from './drag-handle-icon-small';
|
|
8
|
+
/**
|
|
9
|
+
* A dropdown menu with a predefined trigger, styled to look like a drag handle.
|
|
10
|
+
*
|
|
11
|
+
* The API is designed to mirror the `@atlaskit/dropdown-menu` API.
|
|
12
|
+
*/
|
|
13
|
+
export function DragHandleDropdownMenuSmall({
|
|
14
|
+
children,
|
|
15
|
+
triggerRef: consumerRef,
|
|
16
|
+
appearance,
|
|
17
|
+
label
|
|
18
|
+
}) {
|
|
19
|
+
const renderTrigger = useCallback(({
|
|
20
|
+
triggerRef,
|
|
21
|
+
...triggerProps
|
|
22
|
+
}) => {
|
|
23
|
+
const mergedRef = mergeRefs([consumerRef, triggerRef]);
|
|
24
|
+
return /*#__PURE__*/React.createElement(DragHandleButtonBase, _extends({
|
|
25
|
+
ref: mergedRef,
|
|
26
|
+
appearance: appearance
|
|
27
|
+
}, triggerProps), /*#__PURE__*/React.createElement(DragHandleIconSmall, {
|
|
28
|
+
label: label
|
|
29
|
+
}));
|
|
30
|
+
}, [appearance, consumerRef, label]);
|
|
31
|
+
return /*#__PURE__*/React.createElement(DropdownMenu, {
|
|
32
|
+
trigger: renderTrigger
|
|
33
|
+
}, children);
|
|
34
|
+
}
|