edytor 0.1.0-next.28 → 0.1.0-next.30

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/README.md CHANGED
@@ -15,7 +15,7 @@
15
15
 
16
16
  Edytor aims to be for Svelte what Slate.js is for React: a heavily customizable editor with an API to build any kind of collaborative rich text editor.
17
17
 
18
- > **Work in progress.** Edytor is a pre-release (`0.1.0-next.28`, `edytor@next` on npm) and not ready for production; the API changes between releases without a compatibility layer. The untagged `edytor@0.0.11` on npm predates the current API. Issues and PRs are welcome: when you report a bug, include the document's JSON value.
18
+ > **Work in progress.** Edytor is a pre-release (`0.1.0-next.30`, `edytor@next` on npm) and not ready for production; the API changes between releases without a compatibility layer. The untagged `edytor@0.0.11` on npm predates the current API. Issues and PRs are welcome: when you report a bug, include the document's JSON value.
19
19
 
20
20
  ## Features
21
21
 
@@ -120,27 +120,6 @@ const backdrop = (document) => {
120
120
  node.setAttribute('aria-hidden', 'true');
121
121
  return node;
122
122
  };
123
- /** How many blocks move: the badge on the drag preview and the drop indicator. */
124
- const countBadge = (document, count) => {
125
- const badge = document.createElement('span');
126
- badge.dataset.edytorDragCount = 'true';
127
- badge.textContent = String(count);
128
- Object.assign(badge.style, {
129
- position: 'absolute',
130
- top: '-8px',
131
- right: '-8px',
132
- minWidth: '18px',
133
- height: '18px',
134
- padding: '0 5px',
135
- boxSizing: 'border-box',
136
- borderRadius: '9px',
137
- background: 'rgb(35, 131, 226)',
138
- color: 'white',
139
- font: '600 11px/18px system-ui, sans-serif',
140
- textAlign: 'center'
141
- });
142
- return badge;
143
- };
144
123
  export class BlockHandleController {
145
124
  edytor;
146
125
  options;
@@ -367,9 +346,7 @@ export class BlockHandleController {
367
346
  const root = this.edytor.node;
368
347
  const nodes = group.flatMap((moved) => (moved.node ? [moved.node] : []));
369
348
  if (nativeSetDragImage && root && nodes.length) {
370
- const count = group.length;
371
- const badge = count > 1 ? countBadge(element.ownerDocument, count) : undefined;
372
- const preview = dragPreview(root, nodes, location.current.input, badge);
349
+ const preview = dragPreview(root, nodes, location.current.input);
373
350
  setCustomNativeDragPreview({
374
351
  nativeSetDragImage,
375
352
  getOffset: preview.offset,
@@ -1047,13 +1024,9 @@ export class BlockHandleController {
1047
1024
  overlay.dataset.blocked = 'true';
1048
1025
  overlay.setAttribute('aria-hidden', 'true');
1049
1026
  const count = this.group.length;
1050
- if (count > 1) {
1051
- // The count sits in the gutter at the bar's start, where the handles are.
1027
+ // How many blocks move, as data only: the bar shows no badge.
1028
+ if (count > 1)
1052
1029
  overlay.dataset.count = String(count);
1053
- const badge = countBadge(document, count);
1054
- Object.assign(badge.style, { top: `${BAR / 2 - 9}px`, right: 'auto', left: '-26px' });
1055
- overlay.append(badge);
1056
- }
1057
1030
  const color = document.defaultView
1058
1031
  ?.getComputedStyle(placement.node)
1059
1032
  .getPropertyValue('--edytor-drop-indicator-color')
@@ -21,13 +21,13 @@ export type DragPreview = {
21
21
  /**
22
22
  * The ghost of `nodes` (the dragged blocks' elements, in document order),
23
23
  * grabbed at `pointer`: a copy of each block laid out at its own width (the
24
- * widest of them; the editor's content width when none is laid out), scaled by `SCALE` from its top left, cut at `MAX_HEIGHT`, and a
25
- * count badge when more than one block moves (the one addition). No card,
26
- * background, shadow, opacity or fade: the blocks' own look. The pointer
24
+ * widest of them; the editor's content width when none is laid out), scaled by `SCALE` from its top left, cut at `MAX_HEIGHT`.
25
+ * Nothing is added (no card, background, shadow, opacity, fade or count
26
+ * badge): the blocks' own look. The pointer
27
27
  * keeps its place on the first block (a handle is left of it: a transparent
28
28
  * gutter keeps the offset positive, which every browser supports).
29
29
  */
30
30
  export declare const dragPreview: (root: HTMLElement, nodes: HTMLElement[], pointer: {
31
31
  clientX: number;
32
32
  clientY: number;
33
- }, badge?: HTMLElement) => DragPreview;
33
+ }) => DragPreview;
@@ -158,13 +158,13 @@ const contentWidth = (root) => {
158
158
  /**
159
159
  * The ghost of `nodes` (the dragged blocks' elements, in document order),
160
160
  * grabbed at `pointer`: a copy of each block laid out at its own width (the
161
- * widest of them; the editor's content width when none is laid out), scaled by `SCALE` from its top left, cut at `MAX_HEIGHT`, and a
162
- * count badge when more than one block moves (the one addition). No card,
163
- * background, shadow, opacity or fade: the blocks' own look. The pointer
161
+ * widest of them; the editor's content width when none is laid out), scaled by `SCALE` from its top left, cut at `MAX_HEIGHT`.
162
+ * Nothing is added (no card, background, shadow, opacity, fade or count
163
+ * badge): the blocks' own look. The pointer
164
164
  * keeps its place on the first block (a handle is left of it: a transparent
165
165
  * gutter keeps the offset positive, which every browser supports).
166
166
  */
167
- export const dragPreview = (root, nodes, pointer, badge) => {
167
+ export const dragPreview = (root, nodes, pointer) => {
168
168
  const { ownerDocument: document } = root;
169
169
  const first = nodes[0]?.getBoundingClientRect();
170
170
  const dx = first ? pointer.clientX - first.left : 0;
@@ -201,10 +201,6 @@ export const dragPreview = (root, nodes, pointer, badge) => {
201
201
  overflow: 'hidden'
202
202
  });
203
203
  box.append(scaled);
204
- if (badge) {
205
- Object.assign(badge.style, { top: '4px', right: '4px' });
206
- box.append(badge);
207
- }
208
204
  const element = document.createElement('div');
209
205
  element.dataset.edytorDragPreview = 'true';
210
206
  element.dataset.count = String(nodes.length);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edytor",
3
- "version": "0.1.0-next.28",
3
+ "version": "0.1.0-next.30",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/beynar/edytor.git"