@pie-lib/drag 4.0.3-next.127 → 4.0.3-next.133

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.
@@ -20,7 +20,8 @@ function DragProvider(_ref) {
20
20
  modifiers = _ref.modifiers,
21
21
  autoScroll = _ref.autoScroll,
22
22
  keyboardCoordinateGetter = _ref.keyboardCoordinateGetter,
23
- keyboardCodes = _ref.keyboardCodes;
23
+ keyboardCodes = _ref.keyboardCodes,
24
+ accessibility = _ref.accessibility;
24
25
  var _useState = (0, _react.useState)(null),
25
26
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
26
27
  activeId = _useState2[0],
@@ -56,7 +57,8 @@ function DragProvider(_ref) {
56
57
  onDragEnd: handleDragEnd,
57
58
  collisionDetection: collisionDetection,
58
59
  modifiers: modifiers,
59
- autoScroll: autoScroll
60
+ autoScroll: autoScroll,
61
+ accessibility: accessibility
60
62
  }, children);
61
63
  }
62
64
  DragProvider.propTypes = {
@@ -75,7 +77,10 @@ DragProvider.propTypes = {
75
77
  start: _propTypes["default"].arrayOf(_propTypes["default"].string),
76
78
  cancel: _propTypes["default"].arrayOf(_propTypes["default"].string),
77
79
  end: _propTypes["default"].arrayOf(_propTypes["default"].string)
78
- })
80
+ }),
81
+ // Passed straight through to dnd-kit's DndContext (screenReaderInstructions,
82
+ // announcements, container). Omit to keep dnd-kit's defaults.
83
+ accessibility: _propTypes["default"].object
79
84
  };
80
85
  var _default = exports["default"] = DragProvider;
81
86
  //# sourceMappingURL=drag-provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"drag-provider.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_core","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DragProvider","_ref","children","onDragEnd","onDragStart","collisionDetection","modifiers","autoScroll","keyboardCoordinateGetter","keyboardCodes","_useState","useState","_useState2","_slicedToArray2","activeId","setActiveId","keyboardSensorOptions","coordinateGetter","undefined","sensors","useSensors","useSensor","PointerSensor","activationConstraint","distance","KeyboardSensor","handleDragStart","event","active","id","handleDragEnd","createElement","DndContext","propTypes","PropTypes","node","isRequired","func","arrayOf","object","shape","start","string","cancel","end","_default","exports"],"sources":["../src/drag-provider.jsx"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { DndContext, KeyboardSensor, PointerSensor, useSensor, useSensors } from '@dnd-kit/core';\n\nexport function DragProvider({\n children,\n onDragEnd,\n onDragStart,\n collisionDetection,\n modifiers,\n autoScroll,\n keyboardCoordinateGetter,\n keyboardCodes,\n}) {\n const [activeId, setActiveId] = useState(null);\n\n // Only build a keyboard sensor options object when a consumer actually customizes\n // it, so consumers that don't pass these props get dnd-kit's own defaults exactly\n // as before (arrow-key nudging, Tab ends the drag, etc.).\n const keyboardSensorOptions =\n keyboardCoordinateGetter || keyboardCodes ? { coordinateGetter: keyboardCoordinateGetter, keyboardCodes } : undefined;\n\n const sensors = useSensors(\n useSensor(PointerSensor, { activationConstraint: { distance: 8 } }),\n useSensor(KeyboardSensor, keyboardSensorOptions),\n );\n\n const handleDragStart = (event) => {\n setActiveId(event.active.id);\n if (onDragStart) {\n onDragStart(event);\n }\n };\n\n const handleDragEnd = (event) => {\n setActiveId(null);\n if (onDragEnd) {\n onDragEnd(event);\n }\n };\n\n return (\n <DndContext\n sensors={sensors}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n collisionDetection={collisionDetection}\n modifiers={modifiers}\n autoScroll={autoScroll}\n >\n {children}\n </DndContext>\n );\n}\n\nDragProvider.propTypes = {\n children: PropTypes.node.isRequired,\n onDragEnd: PropTypes.func,\n onDragStart: PropTypes.func,\n collisionDetection: PropTypes.func,\n modifiers: PropTypes.arrayOf(PropTypes.func),\n autoScroll: PropTypes.object,\n // Custom dnd-kit KeyboardSensor coordinateGetter (e.g. for Tab/Shift+Tab-based placement).\n // Omit to keep dnd-kit's default keyboard-dragging behavior.\n keyboardCoordinateGetter: PropTypes.func,\n // Overrides for dnd-kit's KeyboardSensor keyboardCodes (start/cancel/end).\n // Omit to keep dnd-kit's defaults.\n keyboardCodes: PropTypes.shape({\n start: PropTypes.arrayOf(PropTypes.string),\n cancel: PropTypes.arrayOf(PropTypes.string),\n end: PropTypes.arrayOf(PropTypes.string),\n }),\n};\n\nexport default DragProvider;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"drag-provider.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_core","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DragProvider","_ref","children","onDragEnd","onDragStart","collisionDetection","modifiers","autoScroll","keyboardCoordinateGetter","keyboardCodes","accessibility","_useState","useState","_useState2","_slicedToArray2","activeId","setActiveId","keyboardSensorOptions","coordinateGetter","undefined","sensors","useSensors","useSensor","PointerSensor","activationConstraint","distance","KeyboardSensor","handleDragStart","event","active","id","handleDragEnd","createElement","DndContext","propTypes","PropTypes","node","isRequired","func","arrayOf","object","shape","start","string","cancel","end","_default","exports"],"sources":["../src/drag-provider.jsx"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { DndContext, KeyboardSensor, PointerSensor, useSensor, useSensors } from '@dnd-kit/core';\n\nexport function DragProvider({\n children,\n onDragEnd,\n onDragStart,\n collisionDetection,\n modifiers,\n autoScroll,\n keyboardCoordinateGetter,\n keyboardCodes,\n accessibility,\n}) {\n const [activeId, setActiveId] = useState(null);\n\n // Only build a keyboard sensor options object when a consumer actually customizes\n // it, so consumers that don't pass these props get dnd-kit's own defaults exactly\n // as before (arrow-key nudging, Tab ends the drag, etc.).\n const keyboardSensorOptions =\n keyboardCoordinateGetter || keyboardCodes ? { coordinateGetter: keyboardCoordinateGetter, keyboardCodes } : undefined;\n\n const sensors = useSensors(\n useSensor(PointerSensor, { activationConstraint: { distance: 8 } }),\n useSensor(KeyboardSensor, keyboardSensorOptions),\n );\n\n const handleDragStart = (event) => {\n setActiveId(event.active.id);\n if (onDragStart) {\n onDragStart(event);\n }\n };\n\n const handleDragEnd = (event) => {\n setActiveId(null);\n if (onDragEnd) {\n onDragEnd(event);\n }\n };\n\n return (\n <DndContext\n sensors={sensors}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n collisionDetection={collisionDetection}\n modifiers={modifiers}\n autoScroll={autoScroll}\n accessibility={accessibility}\n >\n {children}\n </DndContext>\n );\n}\n\nDragProvider.propTypes = {\n children: PropTypes.node.isRequired,\n onDragEnd: PropTypes.func,\n onDragStart: PropTypes.func,\n collisionDetection: PropTypes.func,\n modifiers: PropTypes.arrayOf(PropTypes.func),\n autoScroll: PropTypes.object,\n // Custom dnd-kit KeyboardSensor coordinateGetter (e.g. for Tab/Shift+Tab-based placement).\n // Omit to keep dnd-kit's default keyboard-dragging behavior.\n keyboardCoordinateGetter: PropTypes.func,\n // Overrides for dnd-kit's KeyboardSensor keyboardCodes (start/cancel/end).\n // Omit to keep dnd-kit's defaults.\n keyboardCodes: PropTypes.shape({\n start: PropTypes.arrayOf(PropTypes.string),\n cancel: PropTypes.arrayOf(PropTypes.string),\n end: PropTypes.arrayOf(PropTypes.string),\n }),\n // Passed straight through to dnd-kit's DndContext (screenReaderInstructions,\n // announcements, container). Omit to keep dnd-kit's defaults.\n accessibility: PropTypes.object,\n};\n\nexport default DragProvider;\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-lib/drag",
3
- "version": "4.0.3-next.127+137cbc16b",
3
+ "version": "4.0.3-next.133+9dfab0ec7",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "module": "src/index.js",
@@ -26,5 +26,5 @@
26
26
  "scripts": {},
27
27
  "author": "",
28
28
  "license": "ISC",
29
- "gitHead": "137cbc16bafa6750044c9fdf5050cfc60e8423b5"
29
+ "gitHead": "9dfab0ec774d60793d94d11c5257b1aca8cdb49a"
30
30
  }
@@ -3,13 +3,14 @@ import { render, screen } from '@testing-library/react';
3
3
  import { DragProvider } from '../drag-provider';
4
4
 
5
5
  jest.mock('@dnd-kit/core', () => ({
6
- DndContext: ({ children, onDragStart, onDragEnd, sensors, collisionDetection, modifiers, autoScroll }) => (
6
+ DndContext: ({ children, onDragStart, onDragEnd, sensors, collisionDetection, modifiers, autoScroll, accessibility }) => (
7
7
  <div
8
8
  data-testid="dnd-context"
9
9
  data-has-sensors={!!sensors}
10
10
  data-has-collision-detection={!!collisionDetection}
11
11
  data-has-modifiers={!!modifiers}
12
12
  data-has-auto-scroll={!!autoScroll}
13
+ data-has-accessibility={!!accessibility}
13
14
  data-on-drag-start={typeof onDragStart === 'function' ? 'function' : 'undefined'}
14
15
  data-on-drag-end={typeof onDragEnd === 'function' ? 'function' : 'undefined'}
15
16
  >
@@ -114,12 +115,20 @@ describe('DragProvider', () => {
114
115
  expect(dndContext).toHaveAttribute('data-has-auto-scroll', 'true');
115
116
  });
116
117
 
118
+ it('should pass accessibility to DndContext', () => {
119
+ const accessibility = { screenReaderInstructions: { draggable: 'Press Space or Enter to pick up.' } };
120
+ render(<DragProvider {...defaultProps} accessibility={accessibility} />);
121
+ const dndContext = screen.getByTestId('dnd-context');
122
+ expect(dndContext).toHaveAttribute('data-has-accessibility', 'true');
123
+ });
124
+
117
125
  it('should pass all props to DndContext', () => {
118
126
  const onDragStart = jest.fn();
119
127
  const onDragEnd = jest.fn();
120
128
  const collisionDetection = jest.fn();
121
129
  const modifiers = [jest.fn()];
122
130
  const autoScroll = { enabled: true };
131
+ const accessibility = { screenReaderInstructions: { draggable: 'Press Space or Enter to pick up.' } };
123
132
 
124
133
  render(
125
134
  <DragProvider
@@ -129,6 +138,7 @@ describe('DragProvider', () => {
129
138
  collisionDetection={collisionDetection}
130
139
  modifiers={modifiers}
131
140
  autoScroll={autoScroll}
141
+ accessibility={accessibility}
132
142
  />,
133
143
  );
134
144
 
@@ -138,6 +148,7 @@ describe('DragProvider', () => {
138
148
  expect(dndContext).toHaveAttribute('data-has-collision-detection', 'true');
139
149
  expect(dndContext).toHaveAttribute('data-has-modifiers', 'true');
140
150
  expect(dndContext).toHaveAttribute('data-has-auto-scroll', 'true');
151
+ expect(dndContext).toHaveAttribute('data-has-accessibility', 'true');
141
152
  });
142
153
  });
143
154
 
@@ -171,6 +182,12 @@ describe('DragProvider', () => {
171
182
  const dndContext = screen.getByTestId('dnd-context');
172
183
  expect(dndContext).toHaveAttribute('data-has-auto-scroll', 'false');
173
184
  });
185
+
186
+ it('should work without accessibility', () => {
187
+ render(<DragProvider {...defaultProps} />);
188
+ const dndContext = screen.getByTestId('dnd-context');
189
+ expect(dndContext).toHaveAttribute('data-has-accessibility', 'false');
190
+ });
174
191
  });
175
192
 
176
193
  describe('sensors setup', () => {
@@ -11,6 +11,7 @@ export function DragProvider({
11
11
  autoScroll,
12
12
  keyboardCoordinateGetter,
13
13
  keyboardCodes,
14
+ accessibility,
14
15
  }) {
15
16
  const [activeId, setActiveId] = useState(null);
16
17
 
@@ -47,6 +48,7 @@ export function DragProvider({
47
48
  collisionDetection={collisionDetection}
48
49
  modifiers={modifiers}
49
50
  autoScroll={autoScroll}
51
+ accessibility={accessibility}
50
52
  >
51
53
  {children}
52
54
  </DndContext>
@@ -70,6 +72,9 @@ DragProvider.propTypes = {
70
72
  cancel: PropTypes.arrayOf(PropTypes.string),
71
73
  end: PropTypes.arrayOf(PropTypes.string),
72
74
  }),
75
+ // Passed straight through to dnd-kit's DndContext (screenReaderInstructions,
76
+ // announcements, container). Omit to keep dnd-kit's defaults.
77
+ accessibility: PropTypes.object,
73
78
  };
74
79
 
75
80
  export default DragProvider;