@inkami/blx 0.17.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/README.md +98 -0
  2. package/dist/attributed-string/attributed-string.d.ts +37 -0
  3. package/dist/attributed-string/index.d.ts +2 -0
  4. package/dist/attributed-string/types.d.ts +13 -0
  5. package/dist/autocomplete/autocomplete-menu.d.ts +24 -0
  6. package/dist/autocomplete/index.d.ts +2 -0
  7. package/dist/autocomplete/types.d.ts +29 -0
  8. package/dist/blob-store/index.d.ts +32 -0
  9. package/dist/blob-store/types.d.ts +24 -0
  10. package/dist/block/block-controller.d.ts +205 -0
  11. package/dist/block/index.d.ts +2 -0
  12. package/dist/block/types.d.ts +15 -0
  13. package/dist/block-action-menu/block-action-menu.d.ts +62 -0
  14. package/dist/block-action-menu/index.d.ts +2 -0
  15. package/dist/block-context-menu/block-context-menu.d.ts +33 -0
  16. package/dist/block-context-menu/index.d.ts +2 -0
  17. package/dist/blx.js +16245 -0
  18. package/dist/blx.js.map +1 -0
  19. package/dist/caret/custom-caret.d.ts +30 -0
  20. package/dist/clipboard/clipboard-manager.d.ts +28 -0
  21. package/dist/clipboard/index.d.ts +2 -0
  22. package/dist/clipboard/paste-parser.d.ts +30 -0
  23. package/dist/commands/command-registry.d.ts +26 -0
  24. package/dist/commands/index.d.ts +2 -0
  25. package/dist/crdt/automerge-sync.d.ts +157 -0
  26. package/dist/crdt/crdt-log.d.ts +57 -0
  27. package/dist/crdt/index.d.ts +8 -0
  28. package/dist/crdt/remote-cursor-renderer.d.ts +28 -0
  29. package/dist/crdt/replay-ui.d.ts +34 -0
  30. package/dist/crdt/types.d.ts +47 -0
  31. package/dist/date-picker/agenda-utils.d.ts +37 -0
  32. package/dist/date-picker/date-parser.d.ts +25 -0
  33. package/dist/date-picker/date-picker.d.ts +115 -0
  34. package/dist/date-picker/index.d.ts +6 -0
  35. package/dist/drag-handle/drag-handle.d.ts +105 -0
  36. package/dist/drag-handle/index.d.ts +1 -0
  37. package/dist/editor.d.ts +864 -0
  38. package/dist/emoji-picker/emoji-data.d.ts +22 -0
  39. package/dist/emoji-picker/emoji-picker.d.ts +43 -0
  40. package/dist/emoji-picker/index.d.ts +3 -0
  41. package/dist/event-bus/event-bus.d.ts +14 -0
  42. package/dist/event-bus/index.d.ts +2 -0
  43. package/dist/event-bus/types.d.ts +320 -0
  44. package/dist/fold/fold-manager.d.ts +27 -0
  45. package/dist/fold/index.d.ts +2 -0
  46. package/dist/grapheme.d.ts +28 -0
  47. package/dist/index.d.ts +62 -0
  48. package/dist/inline-toolbar/highlight-picker.d.ts +41 -0
  49. package/dist/inline-toolbar/index.d.ts +5 -0
  50. package/dist/inline-toolbar/inline-toolbar.d.ts +97 -0
  51. package/dist/inline-toolbar/link-popover.d.ts +24 -0
  52. package/dist/keybindings/defaults.d.ts +2 -0
  53. package/dist/keybindings/index.d.ts +4 -0
  54. package/dist/keybindings/key-matcher.d.ts +41 -0
  55. package/dist/keybindings/types.d.ts +6 -0
  56. package/dist/keybindings/vim.d.ts +2 -0
  57. package/dist/markdown/block-shortcuts.d.ts +35 -0
  58. package/dist/markdown/emoticon-substitutions.d.ts +22 -0
  59. package/dist/markdown/export.d.ts +5 -0
  60. package/dist/markdown/index.d.ts +4 -0
  61. package/dist/markdown/inline-shortcuts.d.ts +13 -0
  62. package/dist/markdown/types.d.ts +29 -0
  63. package/dist/plugins/blockquote.d.ts +6 -0
  64. package/dist/plugins/checklist.d.ts +18 -0
  65. package/dist/plugins/code.d.ts +50 -0
  66. package/dist/plugins/excalidraw.d.ts +26 -0
  67. package/dist/plugins/heading.d.ts +20 -0
  68. package/dist/plugins/horizontal-rule.d.ts +5 -0
  69. package/dist/plugins/image.d.ts +19 -0
  70. package/dist/plugins/index.d.ts +28 -0
  71. package/dist/plugins/list.d.ts +18 -0
  72. package/dist/plugins/mermaid.d.ts +11 -0
  73. package/dist/plugins/paragraph.d.ts +18 -0
  74. package/dist/plugins/prism-loader.d.ts +16 -0
  75. package/dist/plugins/render-utils.d.ts +43 -0
  76. package/dist/plugins/table.d.ts +22 -0
  77. package/dist/plugins/youtube.d.ts +21 -0
  78. package/dist/schema/index.d.ts +2 -0
  79. package/dist/schema/schema-registry.d.ts +35 -0
  80. package/dist/schema/types.d.ts +67 -0
  81. package/dist/search/index.d.ts +4 -0
  82. package/dist/search/search-engine.d.ts +39 -0
  83. package/dist/search/search-ui.d.ts +59 -0
  84. package/dist/selection/index.d.ts +3 -0
  85. package/dist/selection/selection-manager.d.ts +41 -0
  86. package/dist/selection/types.d.ts +20 -0
  87. package/dist/slash-menu/index.d.ts +2 -0
  88. package/dist/slash-menu/slash-menu.d.ts +27 -0
  89. package/dist/table-of-contents/index.d.ts +1 -0
  90. package/dist/table-of-contents/table-of-contents.d.ts +74 -0
  91. package/dist/transaction/index.d.ts +2 -0
  92. package/dist/transaction/transaction.d.ts +29 -0
  93. package/dist/transaction/types.d.ts +40 -0
  94. package/dist/types.d.ts +21 -0
  95. package/dist/ui/context-menu.d.ts +103 -0
  96. package/dist/ui/dismiss.d.ts +33 -0
  97. package/dist/ui/dropdown.d.ts +81 -0
  98. package/dist/ui/floating-scroll-manager.d.ts +50 -0
  99. package/dist/ui/index.d.ts +18 -0
  100. package/dist/ui/modal.d.ts +109 -0
  101. package/dist/ui/popover.d.ts +59 -0
  102. package/dist/ui/position-fixed.d.ts +35 -0
  103. package/dist/ui/toast.d.ts +60 -0
  104. package/dist/ui/tooltip.d.ts +64 -0
  105. package/dist/undo/index.d.ts +5 -0
  106. package/dist/undo/jump-list.d.ts +37 -0
  107. package/dist/undo/types.d.ts +49 -0
  108. package/dist/undo/undo-manager.d.ts +47 -0
  109. package/dist/util/icons.d.ts +13 -0
  110. package/dist/util/id.d.ts +10 -0
  111. package/dist/viewport/block-viewport.d.ts +106 -0
  112. package/dist/viewport/index.d.ts +2 -0
  113. package/package.json +66 -0
  114. package/style.css +4670 -0
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Return the vertical center of a block's first line for gutter widget alignment.
3
+ * Non-text blocks (image, youtube, hr) have contenteditable="false" on their
4
+ * direct child — for those we use the editor's computed line-height so the
5
+ * widgets sit near the top, matching paragraph positioning.
6
+ */
7
+ export declare function firstLineCenterY(blockEl: HTMLElement, editorRoot: HTMLElement): number;
8
+ export declare class DragHandle {
9
+ private editorRoot;
10
+ private gutterEl;
11
+ private handle;
12
+ private onMoveBlock;
13
+ private onMoveBlocks;
14
+ private getSelectedBlockIds;
15
+ private onDragStart;
16
+ private onDragEnd;
17
+ private onDoubleTap;
18
+ private isBlockDraggable;
19
+ /** The block element the handle is currently positioned next to */
20
+ private hoveredBlockEl;
21
+ private _menuActive;
22
+ /** Drag state — single or multi block */
23
+ private dragBlockIds;
24
+ private dragFromIndices;
25
+ private ghost;
26
+ private ghostOffsetY;
27
+ private currentDropSlot;
28
+ private sourceHeight;
29
+ /** Original midpoints cached at drag start (immune to CSS transition drift) */
30
+ private cachedMidpoints;
31
+ /** Bound handlers for document-level listeners (so we can remove them) */
32
+ private boundDocMouseMove;
33
+ private boundDocMouseUp;
34
+ /** Bound handlers for touch-based document-level listeners */
35
+ private boundDocTouchMove;
36
+ private boundDocTouchEnd;
37
+ /** Touch drag state: timer for long-press detection */
38
+ private longPressTimer;
39
+ private longPressTriggered;
40
+ private touchStartY;
41
+ private touchStartX;
42
+ /** Delay in ms before a touch becomes a drag (long-press) */
43
+ private static LONG_PRESS_DELAY;
44
+ /** Max movement in px during long-press before it's cancelled */
45
+ private static LONG_PRESS_TOLERANCE;
46
+ /** Max interval in ms between two taps to count as double-tap */
47
+ private static DOUBLE_TAP_DELAY;
48
+ /** Timestamp of the last quick tap on the handle (for double-tap detection) */
49
+ private lastHandleTapTime;
50
+ /** Pending mouse drag: mousedown recorded but drag not started until mousemove */
51
+ private pendingMouseDrag;
52
+ private mouseDownX;
53
+ private mouseDownY;
54
+ constructor(editorRoot: HTMLElement, gutterEl: HTMLElement, onMoveBlock: (blockId: string, toIndex: number) => void, options?: {
55
+ getSelectedBlockIds?: () => string[] | null;
56
+ onMoveBlocks?: (blockIds: string[], toIndex: number) => void;
57
+ onDragStart?: () => void;
58
+ onDragEnd?: () => void;
59
+ onDoubleTap?: (blockId: string) => void;
60
+ isBlockDraggable?: (blockId: string) => boolean;
61
+ });
62
+ /** Hide the handle and clear hover state (e.g. when user starts typing) */
63
+ hide(): void;
64
+ /** Called by the editor when the block action menu opens — suppresses the drag handle */
65
+ notifyMenuOpen(): void;
66
+ /** Called by the editor when the block action menu closes */
67
+ notifyMenuClosed(): void;
68
+ destroy(): void;
69
+ private attachListeners;
70
+ private handleMouseMove;
71
+ private showHandle;
72
+ private hideHandle;
73
+ private findBlockAtY;
74
+ private handleMouseLeave;
75
+ /** Hide handle when mouse leaves it away from the editor */
76
+ private handleHandleLeave;
77
+ private positionHandle;
78
+ private handleDblClick;
79
+ private handleEditorTouchStart;
80
+ private handleHandleTouchStart;
81
+ private handleDocTouchMoveDuringLongPress;
82
+ private handleDocTouchEndDuringLongPress;
83
+ private cancelLongPress;
84
+ private cleanupLongPressListeners;
85
+ private handleMouseDown;
86
+ private handleDocMouseMove;
87
+ private handleDocMouseUp;
88
+ /**
89
+ * Begin a drag operation from the given screen coordinates.
90
+ * Called by both mousedown and touch long-press.
91
+ */
92
+ private startDrag;
93
+ /** Update drag position from screen coordinates. */
94
+ private handleDragMove;
95
+ /** Finalize the drag and apply the move. */
96
+ private handleDragEnd;
97
+ /**
98
+ * Compute drop slot (0..N) from ghost center Y using cached midpoints.
99
+ * Hysteresis biases midpoints by THRESHOLD relative to the current slot
100
+ * so the ghost must cross a midpoint by extra pixels before changing,
101
+ * preventing jitter near boundaries.
102
+ */
103
+ private computeDropSlot;
104
+ private cleanupDrag;
105
+ }
@@ -0,0 +1 @@
1
+ export { DragHandle } from "./drag-handle";