bonsaif-ui 0.1.95 → 0.1.97

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.
@@ -16,15 +16,41 @@ export type ResolvedMention = {
16
16
  email?: string;
17
17
  display?: string;
18
18
  };
19
+ export type MentionTriggerMatch = {
20
+ query: string;
21
+ triggerIndex: number;
22
+ caretIndex: number;
23
+ };
24
+ export type MentionTriggerOptions = {
25
+ /**
26
+ * DOM-aware boundary check for the `@` at `atIndex`.
27
+ * Used so a new `@` right after a mention chip still triggers even when
28
+ * browsers omit the trailing space (chip padding looks like a gap).
29
+ */
30
+ isTriggerBoundary?: (atIndex: number) => boolean;
31
+ /** Skip `@` that already live inside a resolved mention chip. */
32
+ isInsideExistingMention?: (atIndex: number) => boolean;
33
+ };
19
34
  /**
20
35
  * Capture the @username token being typed at the caret.
21
- * Trigger only fires at start of content or after whitespace / `(`.
36
+ * Trigger only fires at start of content or after whitespace / `(`,
37
+ * or when `isTriggerBoundary` says so (e.g. after a mention chip).
22
38
  */
23
- export declare function buildMentionQueryRegex(text: string, caretIndex: number): {
39
+ export declare function buildMentionQueryRegex(text: string, caretIndex: number, options?: MentionTriggerOptions): {
24
40
  query: string;
25
41
  triggerIndex: number;
26
42
  caretIndex: number;
27
43
  } | null;
44
+ /** True when the `@` at plain offset sits inside an existing `.mention-chip`. */
45
+ export declare function isPlainOffsetInsideMentionChip(editorEl: HTMLElement, atIndex: number): boolean;
46
+ /**
47
+ * Whether `@` at plain offset is a valid new mention trigger.
48
+ * Treats `.mention-chip` boundaries like whitespace so
49
+ * `[chip]@` (missing space) still opens the picker.
50
+ */
51
+ export declare function isMentionTriggerBoundary(editorEl: HTMLElement, atIndex: number): boolean;
52
+ /** Resolve mention trigger at caret using chip-aware boundaries. */
53
+ export declare function findMentionTriggerInEditor(editorEl: HTMLElement, caretIndex: number): MentionTriggerMatch | null;
28
54
  export declare function normalizeUsername(value: string): string;
29
55
  /** Convert HTML down to plain text, keeping mention tokens intact. */
30
56
  export declare function htmlToText(html: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"mentions.d.ts","sourceRoot":"","sources":["../../src/lib/mentions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AASF;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;;;;SAsCtE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,UAE9C;AAED,sEAAsE;AACtE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,UAgBtC;AAED,mEAAmE;AACnE,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAc9D;AAED,wDAAwD;AACxD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,gBAAgB,EAAE,GAC7B,eAAe,EAAE,CAwBnB;AAED,+CAA+C;AAC/C,wBAAgB,cAAc,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE,CAS7E;AAED,2CAA2C;AAC3C,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,eAAe,EAAE,EAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACpC,eAAe,EAAE,CAGnB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUtD;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,GACb;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAqBvC;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,IAAI,EACf,MAAM,EAAE,MAAM,GACb,MAAM,CAYR;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,WAAW,EACrB,IAAI,EAAE;IACJ,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,GACA,2BAA2B,GAAG,IAAI,CAuCpC;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,QAiB5E"}
1
+ {"version":3,"file":"mentions.d.ts","sourceRoot":"","sources":["../../src/lib/mentions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAUF,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACjD,iEAAiE;IACjE,uBAAuB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;CACxD,CAAC;AAQF;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,qBAAqB;;;;SA2ChC;AAED,iFAAiF;AACjF,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,MAAM,GACd,OAAO,CAIT;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,MAAM,GACd,OAAO,CAyCT;AAED,oEAAoE;AACpE,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,WAAW,EACrB,UAAU,EAAE,MAAM,GACjB,mBAAmB,GAAG,IAAI,CAO5B;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,UAE9C;AAED,sEAAsE;AACtE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,UAgBtC;AAED,mEAAmE;AACnE,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAc9D;AAED,wDAAwD;AACxD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,gBAAgB,EAAE,GAC7B,eAAe,EAAE,CAwBnB;AAED,+CAA+C;AAC/C,wBAAgB,cAAc,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE,CAS7E;AAED,2CAA2C;AAC3C,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,eAAe,EAAE,EAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACpC,eAAe,EAAE,CAGnB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUtD;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,GACb;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAqBvC;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,IAAI,EACf,MAAM,EAAE,MAAM,GACb,MAAM,CAYR;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,WAAW,EACrB,IAAI,EAAE;IACJ,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,GACA,2BAA2B,GAAG,IAAI,CAuCpC;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,QAiB5E"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bonsaif-ui",
3
- "version": "0.1.95",
3
+ "version": "0.1.97",
4
4
  "description": "Reusable Bonsaif UI components for Bonsaif applications.",
5
5
  "type": "module",
6
6
  "author": "Bonsaif",