@bikdotai/bik-component-library 0.0.806 → 0.0.807-beta.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.
Files changed (55) hide show
  1. package/dist/cjs/editor/BikEditor.styles.js +8 -2
  2. package/dist/cjs/editor/BikEditor.styles.js.map +1 -1
  3. package/dist/cjs/editor/BikEditor.utils.js +1 -1
  4. package/dist/cjs/editor/BikEditor.utils.js.map +1 -1
  5. package/dist/cjs/editor/extensions/buildExtensions.js +1 -1
  6. package/dist/cjs/editor/extensions/buildExtensions.js.map +1 -1
  7. package/dist/cjs/editor/extensions/mention/MentionExtension.js +1 -1
  8. package/dist/cjs/editor/extensions/mention/MentionExtension.js.map +1 -1
  9. package/dist/cjs/editor/extensions/plainClipboard/ClipboardNormalizationExtension.js +2 -0
  10. package/dist/cjs/editor/extensions/plainClipboard/ClipboardNormalizationExtension.js.map +1 -0
  11. package/dist/cjs/editor/extensions/plainClipboard/PlainClipboardExtension.js +1 -1
  12. package/dist/cjs/editor/extensions/plainClipboard/PlainClipboardExtension.js.map +1 -1
  13. package/dist/cjs/editor/extensions/plainClipboard/pasteUtils.js +2 -0
  14. package/dist/cjs/editor/extensions/plainClipboard/pasteUtils.js.map +1 -0
  15. package/dist/cjs/editor/extensions/slashCommand/SlashCommandExtension.js +1 -1
  16. package/dist/cjs/editor/extensions/slashCommand/SlashCommandExtension.js.map +1 -1
  17. package/dist/cjs/editor/serializers/toWhatsAppText.js +1 -1
  18. package/dist/cjs/editor/serializers/toWhatsAppText.js.map +1 -1
  19. package/dist/cjs/src/components/QueryBuilder/Triggers/EVENTS/components/EventsTrigger.d.ts +1 -1
  20. package/dist/cjs/src/components/QueryBuilder/Triggers/EVENTS/selectors/useIGTriggerNameCacheSelector.d.ts +1 -1
  21. package/dist/cjs/src/components/QueryBuilder/Triggers/IG/components/IGTrigger.d.ts +1 -1
  22. package/dist/cjs/src/components/QueryBuilder/Triggers/IG/selectors/useIGTriggerNameCacheSelector.d.ts +1 -1
  23. package/dist/cjs/src/components/QueryBuilder/Triggers/components/BaseTriggerQueryBuilderNode.d.ts +2 -2
  24. package/dist/cjs/src/editor/BikEditor.utils.d.ts +15 -10
  25. package/dist/cjs/src/editor/extensions/plainClipboard/ClipboardNormalizationExtension.d.ts +7 -0
  26. package/dist/cjs/src/editor/extensions/plainClipboard/pasteUtils.d.ts +21 -0
  27. package/dist/cjs/src/editor/serializers/toWhatsAppText.d.ts +2 -2
  28. package/dist/esm/editor/BikEditor.styles.js +6 -0
  29. package/dist/esm/editor/BikEditor.styles.js.map +1 -1
  30. package/dist/esm/editor/BikEditor.utils.js +1 -1
  31. package/dist/esm/editor/BikEditor.utils.js.map +1 -1
  32. package/dist/esm/editor/extensions/buildExtensions.js +1 -1
  33. package/dist/esm/editor/extensions/buildExtensions.js.map +1 -1
  34. package/dist/esm/editor/extensions/mention/MentionExtension.js +1 -1
  35. package/dist/esm/editor/extensions/mention/MentionExtension.js.map +1 -1
  36. package/dist/esm/editor/extensions/plainClipboard/ClipboardNormalizationExtension.js +2 -0
  37. package/dist/esm/editor/extensions/plainClipboard/ClipboardNormalizationExtension.js.map +1 -0
  38. package/dist/esm/editor/extensions/plainClipboard/PlainClipboardExtension.js +1 -1
  39. package/dist/esm/editor/extensions/plainClipboard/PlainClipboardExtension.js.map +1 -1
  40. package/dist/esm/editor/extensions/plainClipboard/pasteUtils.js +2 -0
  41. package/dist/esm/editor/extensions/plainClipboard/pasteUtils.js.map +1 -0
  42. package/dist/esm/editor/extensions/slashCommand/SlashCommandExtension.js +1 -1
  43. package/dist/esm/editor/extensions/slashCommand/SlashCommandExtension.js.map +1 -1
  44. package/dist/esm/editor/serializers/toWhatsAppText.js +1 -1
  45. package/dist/esm/editor/serializers/toWhatsAppText.js.map +1 -1
  46. package/dist/esm/src/components/QueryBuilder/Triggers/EVENTS/components/EventsTrigger.d.ts +1 -1
  47. package/dist/esm/src/components/QueryBuilder/Triggers/EVENTS/selectors/useIGTriggerNameCacheSelector.d.ts +1 -1
  48. package/dist/esm/src/components/QueryBuilder/Triggers/IG/components/IGTrigger.d.ts +1 -1
  49. package/dist/esm/src/components/QueryBuilder/Triggers/IG/selectors/useIGTriggerNameCacheSelector.d.ts +1 -1
  50. package/dist/esm/src/components/QueryBuilder/Triggers/components/BaseTriggerQueryBuilderNode.d.ts +2 -2
  51. package/dist/esm/src/editor/BikEditor.utils.d.ts +15 -10
  52. package/dist/esm/src/editor/extensions/plainClipboard/ClipboardNormalizationExtension.d.ts +7 -0
  53. package/dist/esm/src/editor/extensions/plainClipboard/pasteUtils.d.ts +21 -0
  54. package/dist/esm/src/editor/serializers/toWhatsAppText.d.ts +2 -2
  55. package/package.json +1 -1
@@ -3,18 +3,23 @@ import { EditorSnapshot, FormatState } from './BikEditor.types';
3
3
  /**
4
4
  * Normalise HTML before passing it to TipTap.
5
5
  *
6
- * Problem: Quill uses `<p><br></p>` as a blank-line separator. TipTap's
7
- * HardBreak extension parses that `<br>` as a real `hard_break` node.
8
- * ProseMirror then also appends `<br class="ProseMirror-trailingBreak">` as a
9
- * cursor-position decoration, making the empty paragraph render at **2× line
10
- * height** instead of 1×.
11
- *
12
- * Fix: replace `<p><br></p>` `<p></p>` so TipTap stores a truly empty
13
- * paragraph. ProseMirror adds only the trailing decoration, giving the correct
14
- * 1× line height. The WA text output is unchanged (`\n` either way after
15
- * surrounding-newline collapse in `toWhatsAppText`).
6
+ * 1. Strip all `<span>` tags first (keeps inner content). This exposes
7
+ * bare `<br>` inside otherwise-empty paragraphs like Quill's
8
+ * `<p><span class="ql-cursor"><br></span></p>`.
9
+ * 2. Then convert `<p><br></p>` `<p></p>`. ProseMirror parses `<p></p>`
10
+ * as an empty paragraph node and adds its own DOM `<br>` for cursor
11
+ * positioning — one blank line, correct height. Leaving the `<br>`
12
+ * would create a `hard_break` child AND the cursor `<br>`, producing
13
+ * double-height blank lines.
16
14
  */
17
15
  export declare function normalizeHtml(html: string): string;
16
+ /**
17
+ * Convert ProseMirror's `<p></p>` empty paragraphs to the universally
18
+ * rendered `<p><br></p>` format before the HTML leaves the editor.
19
+ * Email clients, chat bubbles, and every renderer understand `<p><br></p>`
20
+ * as a visible blank line, whereas `<p></p>` collapses to zero height.
21
+ */
22
+ export declare function toPortableHtml(html: string): string;
18
23
  /**
19
24
  * Insert HTML at the current cursor position, merging the first paragraph
20
25
  * inline while preserving the block structure of subsequent paragraphs/lists.
@@ -0,0 +1,7 @@
1
+ import { Extension } from '@tiptap/core';
2
+ /**
3
+ * Lightweight paste normalizer for rich-paste editors (email).
4
+ * Fixes Google Docs' standalone `<br>` between paragraphs and collapses
5
+ * consecutive empty paragraphs — but keeps ALL formatting marks intact.
6
+ */
7
+ export declare const ClipboardNormalizationExtension: Extension<any, any>;
@@ -0,0 +1,21 @@
1
+ import { Fragment } from '@tiptap/pm/model';
2
+ export declare const TEXTBLOCK_TAGS: Set<string>;
3
+ export declare const BLOCK_SELECTOR = "p,div,h1,h2,h3,h4,h5,h6,ul,ol,li,blockquote,table,pre";
4
+ /**
5
+ * Replace `<br>` elements that sit at block level (not inside a textblock
6
+ * like `<p>`, `<li>`, etc.) with empty `<p></p>` elements. Google Docs
7
+ * puts standalone `<br>` tags between paragraphs to represent blank lines.
8
+ * Without this, ProseMirror parses them as top-level hardBreak nodes.
9
+ */
10
+ export declare function cleanBlockBrs(container: HTMLElement): void;
11
+ /**
12
+ * 1. Convert paragraphs containing only a hard_break into empty paragraphs.
13
+ * 2. Collapse consecutive empty paragraphs into one.
14
+ */
15
+ export declare function normalizeBlanks(fragment: Fragment): Fragment;
16
+ /**
17
+ * Strip only "rich" marks (link, textStyle, highlight, etc.) while keeping
18
+ * basic formatting marks (bold, italic, strike, underline, code) that
19
+ * messaging channels can represent.
20
+ */
21
+ export declare function stripRichMarks(fragment: Fragment): Fragment;
@@ -4,8 +4,8 @@
4
4
  * WhatsApp formatting:
5
5
  * *bold* _italic_ ~strikethrough~ ```monospace```
6
6
  *
7
- * Links: WhatsApp does not support custom display text for hyperlinks.
8
- * <a href="https://…">Visit us</a> → https://… (href wins, display text dropped)
7
+ * Links: WhatsApp does not support hyperlinks.
8
+ * <a href="https://…">Visit us</a> → Visit us (display text kept, href dropped)
9
9
  *
10
10
  * @example
11
11
  * const { html } = ref.current?.getContent();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bikdotai/bik-component-library",
3
- "version": "0.0.806",
3
+ "version": "0.0.807-beta.0",
4
4
  "description": "Bik Component Library",
5
5
  "repository": {
6
6
  "type": "git",